Greasy Fork

Greasy Fork is available in English.

Twitter/X Media Batch Downloader Pro

Download all images and videos from any Twitter/X account, including withheld accounts, in original quality — with just one click.

当前为 2025-10-25 提交的版本,查看 最新版本

在您安装前,Greasy Fork 希望您知道此脚本声明其包含了一些负面功能。这些功能也许会使脚本作者获利,而不能给您带来任何直接的金钱收益。

您只有在付费后才能使用脚本的全部功能。Greasy Fork 未参与到支付的流程,因此无法验证您是否获得了有价值的东西,亦无法帮助您申请退款。 脚本作者的说明: Using this script requires an active monthly subscription.

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name            Twitter/X Media Batch Downloader Pro
// @name:zh         Twitter 媒体批量下载器 Pro
// @name:ja         Twitter メディア一括ダウンローダー Pro
// @description     Download all images and videos from any Twitter/X account, including withheld accounts, in original quality — with just one click.
// @description:zh  从任何 Twitter/X 帐号(包括受限制的帐号)一键下载所有图片和视频,保持原始画质。
// @description:ja  Twitter/X のあらゆるアカウント(制限付きアカウントを含む)から、すべての画像と動画をワンクリックで元の画質のままダウンロード。
// @antifeature     payment Using this script requires an active monthly subscription.
// @icon            data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAA0jWNhQlgAADSNanVtYgAAAB5qdW1kYzJwYQARABCAAACqADibcQNjMnBhAAAANGdqdW1iAAAATWp1bWRjMm1hABEAEIAAAKoAOJtxA2Fkb2JlOnVybjp1dWlkOjAxMDUxZTgxLTdjODYtNGM2Zi05ZWI3LWQ2ODMyYjE2MDcyYQAAAAG0anVtYgAAAClqdW1kYzJhcwARABCAAACqADibcQNjMnBhLmFzc2VydGlvbnMAAAAA2Gp1bWIAAAAmanVtZGNib3IAEQAQgAAAqgA4m3EDYzJwYS5hY3Rpb25zAAAAAKpjYm9yoWdhY3Rpb25zgaNmYWN0aW9ua2MycGEuZWRpdGVkbXNvZnR3YXJlQWdlbnRtQWRvYmUgRmlyZWZseXFkaWdpdGFsU291cmNlVHlwZXhUaHR0cHM6Ly9jdi5pcHRjLm9yZy9uZXdzY29kZXMvZGlnaXRhbHNvdXJjZXR5cGUvY29tcG9zaXRlV2l0aFRyYWluZWRBbGdvcml0aG1pY01lZGlhAAAAq2p1bWIAAAAoanVtZGNib3IAEQAQgAAAqgA4m3EDYzJwYS5oYXNoLmRhdGEAAAAAe2Nib3KlamV4Y2x1c2lvbnOBomVzdGFydBghZmxlbmd0aBk0mWRuYW1lbmp1bWJmIG1hbmlmZXN0Y2FsZ2ZzaGEyNTZkaGFzaFggMD4YYfuuyS4zr1xZ43vCYDS39xrKTXMUA6ouyX7s5bZjcGFkSAAAAAAAAAAAAAACTmp1bWIAAAAkanVtZGMyY2wAEQAQgAAAqgA4m3EDYzJwYS5jbGFpbQAAAAIiY2JvcqhoZGM6dGl0bGVvR2VuZXJhdGVkIEltYWdlaWRjOmZvcm1hdGlpbWFnZS9wbmdqaW5zdGFuY2VJRHgseG1wOmlpZDoxYmQwODcyNy03YTc1LTQyNDgtODM4MS03ZjAzZTg3OTIyNjFvY2xhaW1fZ2VuZXJhdG9yeFlBZG9iZV9QaG90b3Nob3AvMjUuMC4wIChidWlsZCAyMDIzMDkwNi5yLjM3IGIxNGUzMTc7IHdpbikgYWRvYmVfYzJwYS8wLjcuNiBjMnBhLXJzLzAuMjUuMnRjbGFpbV9nZW5lcmF0b3JfaW5mb4G/ZG5hbWVvQWRvYmVfUGhv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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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
// @namespace       https://exyezed.cc
// @supportURL      https://www.patreon.com/exyezed
// @homepageURL     https://www.patreon.com/exyezed
// @version         1.0.7
// @author          exyezed
// @license         MIT
// @match           *://twitter.com/*
// @match           *://x.com/*
// @require         https://cdn.jsdelivr.net/npm/[email protected]/dayjs.min.js
// @require         https://cdn.jsdelivr.net/npm/[email protected]/dist/dexie.min.js
// @require         https://cdn.jsdelivr.net/npm/[email protected]/dist/FileSaver.min.js
// @require         https://cdn.jsdelivr.net/npm/[email protected]/i18next.min.js
// @require         https://cdn.jsdelivr.net/npm/[email protected]/dist/preact.min.js
// @require         https://cdn.jsdelivr.net/npm/[email protected]/hooks/dist/hooks.umd.js
// @require         https://cdn.jsdelivr.net/npm/@preact/[email protected]/dist/signals-core.min.js
// @require         https://cdn.jsdelivr.net/npm/@preact/[email protected]/dist/signals.min.js
// @require         https://cdn.jsdelivr.net/npm/[email protected]/umd/index.min.js
// @connect         oregon.exyezed.cc
// @connect         frankfurt.exyezed.cc
// @grant           GM_xmlhttpRequest
// @grant           unsafeWindow
// @run-at          document-start
// ==/UserScript==

(function (preact, signals, hooks, i18next, dayjs, Dexie, fileSaverEs, fflate) {
  'use strict';

  var f = 0;
  function u(e, t, n, o, i, u2) {
    t || (t = {});
    var a, c, p = t;
    if ("ref" in p) for (c in p = {}, t) "ref" == c ? a = t[c] : p[c] = t[c];
    var l = { type: e, props: p, key: n, ref: a, __k: null, __: null, __b: 0, __e: null, __c: null, constructor: void 0, __v: --f, __i: -1, __u: 0, __source: i, __self: u2 };
    if ("function" == typeof e && (a = e.defaultProps)) for (c in a) void 0 === p[c] && (p[c] = a[c]);
    return preact.options.vnode && preact.options.vnode(l), l;
  }
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var defaultAttributes = {
    outline: {
      xmlns: "http://www.w3.org/2000/svg",
      width: 24,
      height: 24,
      viewBox: "0 0 24 24",
      fill: "none",
      stroke: "currentColor",
      "stroke-width": 2,
      "stroke-linecap": "round",
      "stroke-linejoin": "round"
    },
    filled: {
      xmlns: "http://www.w3.org/2000/svg",
      width: 24,
      height: 24,
      viewBox: "0 0 24 24",
      fill: "currentColor",
      stroke: "none"
    }
  };
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  const createPreactComponent = (type, iconName, iconNamePascal, iconNode) => {
    const Component2 = ({
      color = "currentColor",
      size = 24,
      stroke = 2,
      title,
      children,
      className = "",
      class: classes = "",
      style,
      ...rest
    }) => preact.h(
      "svg",
      {
        ...defaultAttributes[type],
        width: String(size),
        height: String(size),
        class: [`tabler-icon`, `tabler-icon-${iconName}`, classes, className].join(" "),
        ...type === "filled" ? {
          fill: color
        } : {
          "stroke-width": stroke,
          stroke: color
        },
        style,
        ...rest
      },
      [
        title && preact.h("title", {}, title),
        ...iconNode.map(([tag, attrs]) => preact.h(tag, attrs)),
        ...preact.toChildArray(children)
      ]
    );
    Component2.displayName = `${iconNamePascal}`;
    return Component2;
  };
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconAlertTriangle = createPreactComponent("outline", "alert-triangle", "AlertTriangle", [["path", { "d": "M12 9v4", "key": "svg-0" }], ["path", { "d": "M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0z", "key": "svg-1" }], ["path", { "d": "M12 16h.01", "key": "svg-2" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconBook = createPreactComponent("outline", "book", "Book", [["path", { "d": "M3 19a9 9 0 0 1 9 0a9 9 0 0 1 9 0", "key": "svg-0" }], ["path", { "d": "M3 6a9 9 0 0 1 9 0a9 9 0 0 1 9 0", "key": "svg-1" }], ["path", { "d": "M3 6l0 13", "key": "svg-2" }], ["path", { "d": "M12 6l0 13", "key": "svg-3" }], ["path", { "d": "M21 6l0 13", "key": "svg-4" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconBrandChrome = createPreactComponent("outline", "brand-chrome", "BrandChrome", [["path", { "d": "M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0", "key": "svg-0" }], ["path", { "d": "M12 12m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0", "key": "svg-1" }], ["path", { "d": "M12 9h8.4", "key": "svg-2" }], ["path", { "d": "M14.598 13.5l-4.2 7.275", "key": "svg-3" }], ["path", { "d": "M9.402 13.5l-4.2 -7.275", "key": "svg-4" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconBrandPatreon = createPreactComponent("outline", "brand-patreon", "BrandPatreon", [["path", { "d": "M20 8.408c-.003 -2.299 -1.746 -4.182 -3.79 -4.862c-2.54 -.844 -5.888 -.722 -8.312 .453c-2.939 1.425 -3.862 4.545 -3.896 7.656c-.028 2.559 .22 9.297 3.92 9.345c2.75 .036 3.159 -3.603 4.43 -5.356c.906 -1.247 2.071 -1.599 3.506 -1.963c2.465 -.627 4.146 -2.626 4.142 -5.273z", "key": "svg-0" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconBrandTwitter = createPreactComponent("outline", "brand-twitter", "BrandTwitter", [["path", { "d": "M22 4.01c-1 .49 -1.98 .689 -3 .99c-1.121 -1.265 -2.783 -1.335 -4.38 -.737s-2.643 2.06 -2.62 3.737v1c-3.245 .083 -6.135 -1.395 -8 -4c0 0 -4.182 7.433 4 11c-1.872 1.247 -3.739 2.088 -6 2c3.308 1.803 6.913 2.423 10.034 1.517c3.58 -1.04 6.522 -3.723 7.651 -7.742a13.84 13.84 0 0 0 .497 -3.753c0 -.249 1.51 -2.772 1.818 -4.013z", "key": "svg-0" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconChevronLeft = createPreactComponent("outline", "chevron-left", "ChevronLeft", [["path", { "d": "M15 6l-6 6l6 6", "key": "svg-0" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconChevronRight = createPreactComponent("outline", "chevron-right", "ChevronRight", [["path", { "d": "M9 6l6 6l-6 6", "key": "svg-0" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconCircleCheck = createPreactComponent("outline", "circle-check", "CircleCheck", [["path", { "d": "M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0", "key": "svg-0" }], ["path", { "d": "M9 12l2 2l4 -4", "key": "svg-1" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconCircleX = createPreactComponent("outline", "circle-x", "CircleX", [["path", { "d": "M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0", "key": "svg-0" }], ["path", { "d": "M10 10l4 4m0 -4l-4 4", "key": "svg-1" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconCloudDown = createPreactComponent("outline", "cloud-down", "CloudDown", [["path", { "d": "M12 18.004h-5.343c-2.572 -.004 -4.657 -2.011 -4.657 -4.487c0 -2.475 2.085 -4.482 4.657 -4.482c.393 -1.762 1.794 -3.2 3.675 -3.773c1.88 -.572 3.956 -.193 5.444 1c1.488 1.19 2.162 3.007 1.77 4.769h.99c1.38 0 2.573 .813 3.13 1.99", "key": "svg-0" }], ["path", { "d": "M19 16v6", "key": "svg-1" }], ["path", { "d": "M22 19l-3 3l-3 -3", "key": "svg-2" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconCloudUp = createPreactComponent("outline", "cloud-up", "CloudUp", [["path", { "d": "M12 18.004h-5.343c-2.572 -.004 -4.657 -2.011 -4.657 -4.487c0 -2.475 2.085 -4.482 4.657 -4.482c.393 -1.762 1.794 -3.2 3.675 -3.773c1.88 -.572 3.956 -.193 5.444 1c1.488 1.19 2.162 3.007 1.77 4.769h.99c1.38 0 2.57 .811 3.128 1.986", "key": "svg-0" }], ["path", { "d": "M19 22v-6", "key": "svg-1" }], ["path", { "d": "M22 19l-3 -3l-3 3", "key": "svg-2" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconDatabaseExport = createPreactComponent("outline", "database-export", "DatabaseExport", [["path", { "d": "M4 6c0 1.657 3.582 3 8 3s8 -1.343 8 -3s-3.582 -3 -8 -3s-8 1.343 -8 3", "key": "svg-0" }], ["path", { "d": "M4 6v6c0 1.657 3.582 3 8 3c1.118 0 2.183 -.086 3.15 -.241", "key": "svg-1" }], ["path", { "d": "M20 12v-6", "key": "svg-2" }], ["path", { "d": "M4 12v6c0 1.657 3.582 3 8 3c.157 0 .312 -.002 .466 -.005", "key": "svg-3" }], ["path", { "d": "M16 19h6", "key": "svg-4" }], ["path", { "d": "M19 16l3 3l-3 3", "key": "svg-5" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconDatabaseImport = createPreactComponent("outline", "database-import", "DatabaseImport", [["path", { "d": "M4 6c0 1.657 3.582 3 8 3s8 -1.343 8 -3s-3.582 -3 -8 -3s-8 1.343 -8 3", "key": "svg-0" }], ["path", { "d": "M4 6v6c0 1.657 3.582 3 8 3c.856 0 1.68 -.05 2.454 -.144m5.546 -2.856v-6", "key": "svg-1" }], ["path", { "d": "M4 12v6c0 1.657 3.582 3 8 3c.171 0 .341 -.002 .51 -.006", "key": "svg-2" }], ["path", { "d": "M19 22v-6", "key": "svg-3" }], ["path", { "d": "M22 19l-3 -3l-3 3", "key": "svg-4" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconDatabaseSearch = createPreactComponent("outline", "database-search", "DatabaseSearch", [["path", { "d": "M4 6c0 1.657 3.582 3 8 3s8 -1.343 8 -3s-3.582 -3 -8 -3s-8 1.343 -8 3", "key": "svg-0" }], ["path", { "d": "M4 6v6c0 1.657 3.582 3 8 3m8 -3.5v-5.5", "key": "svg-1" }], ["path", { "d": "M4 12v6c0 1.657 3.582 3 8 3", "key": "svg-2" }], ["path", { "d": "M18 18m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0", "key": "svg-3" }], ["path", { "d": "M20.2 20.2l1.8 1.8", "key": "svg-4" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconDatabaseX = createPreactComponent("outline", "database-x", "DatabaseX", [["path", { "d": "M4 6c0 1.657 3.582 3 8 3s8 -1.343 8 -3s-3.582 -3 -8 -3s-8 1.343 -8 3", "key": "svg-0" }], ["path", { "d": "M4 6v6c0 1.657 3.582 3 8 3c.537 0 1.062 -.02 1.57 -.058", "key": "svg-1" }], ["path", { "d": "M20 13.5v-7.5", "key": "svg-2" }], ["path", { "d": "M4 12v6c0 1.657 3.582 3 8 3c.384 0 .762 -.01 1.132 -.03", "key": "svg-3" }], ["path", { "d": "M22 22l-5 -5", "key": "svg-4" }], ["path", { "d": "M17 22l5 -5", "key": "svg-5" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconDatabase = createPreactComponent("outline", "database", "Database", [["path", { "d": "M12 6m-8 0a8 3 0 1 0 16 0a8 3 0 1 0 -16 0", "key": "svg-0" }], ["path", { "d": "M4 6v6a8 3 0 0 0 16 0v-6", "key": "svg-1" }], ["path", { "d": "M4 12v6a8 3 0 0 0 16 0v-6", "key": "svg-2" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconDownload = createPreactComponent("outline", "download", "Download", [["path", { "d": "M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2", "key": "svg-0" }], ["path", { "d": "M7 11l5 5l5 -5", "key": "svg-1" }], ["path", { "d": "M12 4l0 12", "key": "svg-2" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconExclamationCircle = createPreactComponent("outline", "exclamation-circle", "ExclamationCircle", [["path", { "d": "M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0", "key": "svg-0" }], ["path", { "d": "M12 9v4", "key": "svg-1" }], ["path", { "d": "M12 16v.01", "key": "svg-2" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconExternalLink = createPreactComponent("outline", "external-link", "ExternalLink", [["path", { "d": "M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6", "key": "svg-0" }], ["path", { "d": "M11 13l9 -9", "key": "svg-1" }], ["path", { "d": "M15 4h5v5", "key": "svg-2" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconEyeOff = createPreactComponent("outline", "eye-off", "EyeOff", [["path", { "d": "M10.585 10.587a2 2 0 0 0 2.829 2.828", "key": "svg-0" }], ["path", { "d": "M16.681 16.673a8.717 8.717 0 0 1 -4.681 1.327c-3.6 0 -6.6 -2 -9 -6c1.272 -2.12 2.712 -3.678 4.32 -4.674m2.86 -1.146a9.055 9.055 0 0 1 1.82 -.18c3.6 0 6.6 2 9 6c-.666 1.11 -1.379 2.067 -2.138 2.87", "key": "svg-1" }], ["path", { "d": "M3 3l18 18", "key": "svg-2" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconEye = createPreactComponent("outline", "eye", "Eye", [["path", { "d": "M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0", "key": "svg-0" }], ["path", { "d": "M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6", "key": "svg-1" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconFileCode = createPreactComponent("outline", "file-code", "FileCode", [["path", { "d": "M14 3v4a1 1 0 0 0 1 1h4", "key": "svg-0" }], ["path", { "d": "M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z", "key": "svg-1" }], ["path", { "d": "M10 13l-1 2l1 2", "key": "svg-2" }], ["path", { "d": "M14 13l1 2l-1 2", "key": "svg-3" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconFileDownload = createPreactComponent("outline", "file-download", "FileDownload", [["path", { "d": "M14 3v4a1 1 0 0 0 1 1h4", "key": "svg-0" }], ["path", { "d": "M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z", "key": "svg-1" }], ["path", { "d": "M12 17v-6", "key": "svg-2" }], ["path", { "d": "M9.5 14.5l2.5 2.5l2.5 -2.5", "key": "svg-3" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconGif = createPreactComponent("outline", "gif", "Gif", [["path", { "d": "M8 8h-2a2 2 0 0 0 -2 2v4a2 2 0 0 0 2 2h2v-4h-1", "key": "svg-0" }], ["path", { "d": "M12 8v8", "key": "svg-1" }], ["path", { "d": "M16 12h3", "key": "svg-2" }], ["path", { "d": "M20 8h-4v8", "key": "svg-3" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconInfoCircle = createPreactComponent("outline", "info-circle", "InfoCircle", [["path", { "d": "M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0", "key": "svg-0" }], ["path", { "d": "M12 9h.01", "key": "svg-1" }], ["path", { "d": "M11 12h1v4h1", "key": "svg-2" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconLibraryPhoto = createPreactComponent("outline", "library-photo", "LibraryPhoto", [["path", { "d": "M7 3m0 2.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667z", "key": "svg-0" }], ["path", { "d": "M4.012 7.26a2.005 2.005 0 0 0 -1.012 1.737v10c0 1.1 .9 2 2 2h10c.75 0 1.158 -.385 1.5 -1", "key": "svg-1" }], ["path", { "d": "M17 7h.01", "key": "svg-2" }], ["path", { "d": "M7 13l3.644 -3.644a1.21 1.21 0 0 1 1.712 0l3.644 3.644", "key": "svg-3" }], ["path", { "d": "M15 12l1.644 -1.644a1.21 1.21 0 0 1 1.712 0l2.644 2.644", "key": "svg-4" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconPhotoEdit = createPreactComponent("outline", "photo-edit", "PhotoEdit", [["path", { "d": "M15 8h.01", "key": "svg-0" }], ["path", { "d": "M11 20h-4a3 3 0 0 1 -3 -3v-10a3 3 0 0 1 3 -3h10a3 3 0 0 1 3 3v4", "key": "svg-1" }], ["path", { "d": "M4 15l4 -4c.928 -.893 2.072 -.893 3 0l3 3", "key": "svg-2" }], ["path", { "d": "M14 14l1 -1c.31 -.298 .644 -.497 .987 -.596", "key": "svg-3" }], ["path", { "d": "M18.42 15.61a2.1 2.1 0 0 1 2.97 2.97l-3.39 3.42h-3v-3l3.42 -3.39z", "key": "svg-4" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconPhoto = createPreactComponent("outline", "photo", "Photo", [["path", { "d": "M15 8h.01", "key": "svg-0" }], ["path", { "d": "M3 6a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-12z", "key": "svg-1" }], ["path", { "d": "M3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5", "key": "svg-2" }], ["path", { "d": "M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3", "key": "svg-3" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconPlayerPlay = createPreactComponent("outline", "player-play", "PlayerPlay", [["path", { "d": "M7 4v16l13 -8z", "key": "svg-0" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconPlayerStop = createPreactComponent("outline", "player-stop", "PlayerStop", [["path", { "d": "M5 5m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z", "key": "svg-0" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconRestore = createPreactComponent("outline", "restore", "Restore", [["path", { "d": "M3.06 13a9 9 0 1 0 .49 -4.087", "key": "svg-0" }], ["path", { "d": "M3 4.001v5h5", "key": "svg-1" }], ["path", { "d": "M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0", "key": "svg-2" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconSettings = createPreactComponent("outline", "settings", "Settings", [["path", { "d": "M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z", "key": "svg-0" }], ["path", { "d": "M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0", "key": "svg-1" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconStack2 = createPreactComponent("outline", "stack-2", "Stack2", [["path", { "d": "M12 4l-8 4l8 4l8 -4l-8 -4", "key": "svg-0" }], ["path", { "d": "M4 12l8 4l8 -4", "key": "svg-1" }], ["path", { "d": "M4 16l8 4l8 -4", "key": "svg-2" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconTrash = createPreactComponent("outline", "trash", "Trash", [["path", { "d": "M4 7l16 0", "key": "svg-0" }], ["path", { "d": "M10 11l0 6", "key": "svg-1" }], ["path", { "d": "M14 11l0 6", "key": "svg-2" }], ["path", { "d": "M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12", "key": "svg-3" }], ["path", { "d": "M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3", "key": "svg-4" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconVideo = createPreactComponent("outline", "video", "Video", [["path", { "d": "M15 10l4.553 -2.276a1 1 0 0 1 1.447 .894v6.764a1 1 0 0 1 -1.447 .894l-4.553 -2.276v-4z", "key": "svg-0" }], ["path", { "d": "M3 6m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z", "key": "svg-1" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconWorld = createPreactComponent("outline", "world", "World", [["path", { "d": "M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0", "key": "svg-0" }], ["path", { "d": "M3.6 9h16.8", "key": "svg-1" }], ["path", { "d": "M3.6 15h16.8", "key": "svg-2" }], ["path", { "d": "M11.5 3a17 17 0 0 0 0 18", "key": "svg-3" }], ["path", { "d": "M12.5 3a17 17 0 0 1 0 18", "key": "svg-4" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconWriting = createPreactComponent("outline", "writing", "Writing", [["path", { "d": "M20 17v-12c0 -1.121 -.879 -2 -2 -2s-2 .879 -2 2v12l2 2l2 -2z", "key": "svg-0" }], ["path", { "d": "M16 7h4", "key": "svg-1" }], ["path", { "d": "M18 19h-13a2 2 0 1 1 0 -4h4a2 2 0 1 0 0 -4h-3", "key": "svg-2" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconX = createPreactComponent("outline", "x", "X", [["path", { "d": "M18 6l-12 12", "key": "svg-0" }], ["path", { "d": "M6 6l12 12", "key": "svg-1" }]]);
  /**
   * @license @tabler/icons-preact v3.35.0 - MIT
   *
   * This source code is licensed under the MIT license.
   * See the LICENSE file in the root directory of this source tree.
   */
  var IconUserFilled = createPreactComponent("filled", "user-filled", "UserFilled", [["path", { "d": "M12 2a5 5 0 1 1 -5 5l.005 -.217a5 5 0 0 1 4.995 -4.783z", "key": "svg-0" }], ["path", { "d": "M14 14a5 5 0 0 1 5 5v1a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-1a5 5 0 0 1 5 -5h4z", "key": "svg-1" }]]);
  const ar = { "common": { "Settings": "الإعدادات", "Theme": "السمة", "Change Theme": "تغيير السمة", "Language": "اللغة", "Change Language": "تغيير اللغة", "Date Time Format": "تنسيق التاريخ والوقت", "Debug": "تشخيص الأخطاء", "Global Settings": "الإعدادات العامة", "Version": "الإصدار", "Common Formats:": "التنسيقات الشائعة:", "Date Formats:": "تنسيقات التاريخ:", "Time Formats:": "تنسيقات الوقت:", "Combined Examples:": "أمثلة مجمعة:", "Localized": "محلي", "Reset Settings": "إعادة تعيين الإعدادات", "Are you sure you want to reset settings to defaults?": "هل أنت متأكد من إعادة تعيين الإعدادات إلى القيم الافتراضية؟", "Reset": "إعادة تعيين", "Cancel": "إلغاء", "Chrome": "Chrome", "Userscript": "سكريبت المستخدم", "Website": "الموقع", "Patreon": "Patreon", "Dashboard": "لوحة المراقبة", "Database": "قاعدة البيانات", "Auth": "المصادقة", "Convert Animated GIFs": "تحويل GIF", "Convert GIFs (External)": "تحويل GIF (خارجي)", "Concurrent Downloads": "التنزيلات المتزامنة", "Use 10+ only with fast internet": "استخدم 10+ فقط مع إنترنت سريع", "Smaller size, same quality": "حجم أصغر، نفس الجودة", "Larger size, same quality": "حجم أكبر، نفس الجودة", "Back": "العودة", "Please visit a profile page for auto-detection": "يرجى زيارة صفحة ملف شخصي للاكتشاف التلقائي", "Please configure authentication in the Auth tab first": "يرجى تكوين المصادقة في علامة تبويب المصادقة أولاً", "Invalid username format": "تنسيق اسم المستخدم غير صحيح", "Invalid auth token. Please check your settings.": "رمز المصادقة غير صحيح. يرجى التحقق من إعداداتك.", "Invalid Patreon auth. Please check your settings.": "مصادقة Patreon غير صحيحة. يرجى التحقق من إعداداتك.", "Failed to fetch data": "فشل في جلب البيانات", "Failed to fetch data from all APIs": "فشل جلب البيانات من جميع واجهات برمجة التطبيقات", "Failed to verify auth from all APIs": "فشل التحقق من المصادقة من جميع واجهات برمجة التطبيقات", "Failed to generate token from all APIs": "فشل إنشاء الرمز من جميع واجهات برمجة التطبيقات", "Generating token...": "جارٍ إنشاء الرمز...", "Abort": "إحباط", "Network error occurred": "حدث خطأ في الشبكة", "Request timeout - please try again": "انتهت مهلة الطلب - يرجى المحاولة مرة أخرى", "Failed to parse API response": "فشل تحليل استجابة واجهة برمجة التطبيقات", "Invalid API response structure": "بنية استجابة واجهة برمجة التطبيقات غير صالحة", "Unknown error occurred": "حدث خطأ غير معروف", "HTTP error! status: {{status}}": "خطأ HTTP! الحالة: {{status}}", "Download already in progress": "عملية التنزيل قيد التنفيذ بالفعل", "No media files found": "لم يتم العثور على ملفات وسائط", "Toggle visibility": "إظهار/إخفاء", "Close": "إغلاق", "Converting GIFs...": "...تحويل صور GIF", "Downloading...": "تحميل...", "Download": "تحميل", "Fetching...": "...جارٍ الجلب", "Fetch All": "جلب الكل", "Fetch Video": "جلب الفيديو", "Fetch Image": "جلب الصورة", "Fetch GIF": "جلب GIF", "Posts: {{posts}}": "المنشورات: {{posts}}", "Media: {{media}}": "الوسائط: {{media}}", "Current Media: {{current}} • Total Media: {{total}}": "الوسائط الحالية: {{current}} • إجمالي الوسائط: {{total}}", "Failed to download media": "فشل في تحميل الوسائط", "Demo mode is only available for @xbatchdemo": "وضع العرض التجريبي متاح فقط لـ @xbatchdemo", "Auth Token": "رمز المصادقة", "Enter your auth token": "أدخل رمز المصادقة الخاص بك", "Your authentication token for API access": "رمز المصادقة الخاص بك للوصول إلى API", "Patreon Auth": "مصادقة Patreon", "Enter your Patreon auth": "أدخل مصادقة Patreon الخاصة بك", "Your Patreon authentication key": "مفتاح مصادقة Patreon الخاص بك", "Please enter Patreon auth first": "يرجى إدخال مصادقة Patreon أولاً", "Please verify Patreon auth first": "يرجى التحقق من مصادقة Patreon أولاً", "Patreon auth verified successfully": "تم التحقق من مصادقة Patreon بنجاح", "Invalid Patreon auth": "مصادقة Patreon غير صحيحة", "Verification failed. Please try again": "فشل التحقق. يرجى المحاولة مرة أخرى", "Generating": "إنشاء", "Generate": "إنشاء", "Verify": "التحقق", "Token generated successfully": "تم إنشاء الرمز بنجاح ({{current}}/{{total}})", "Failed to generate token": "فشل في إنشاء الرمز", "Token generation failed. Please try again": "فشل إنشاء الرمز. يرجى المحاولة مرة أخرى", "Verifying": "التحقق", "Verified": "تم التحقق", "Use code": "استخدم الرمز", "for Patreon Auth, click Verify to unlock demo. Test at": 'لمصادقة Patreon، انقر "التحقق" لفتح العرض التجريبي. جرّب في', "Need help with Auth Token? See": "بحاجة إلى مساعدة بخصوص رمز المصادقة؟ راجع", "the guide": "الدليل", "Subscribe": "اشترك", "to get your Patreon Auth code and start downloading with ease!": "للحصول على رمز مصادقة Patreon والبدء في التنزيل بسهولة!", "Report bugs or request features:": "أبلغ عن الأخطاء أو اطلب الميزات:", "Import": "استيراد", "Importing...": "...استيراد", "Supports JSON and ZIP formats": "يدعم تنسيقات JSON و ZIP", "Export": "تصدير", "Export All Data": "تصدير كل البيانات", "Exporting...": "...تصدير", "Clear": "مسح", "Filter by Batch": "تصفية حسب الدفعات", "Are you sure to clear all data in the database?": "هل أنت متأكد من مسح جميع البيانات في قاعدة البيانات؟", "Delete Account Data": "حذف بيانات الحساب", "Are you sure you want to delete account data? This action cannot be undone": "هل أنت متأكد من حذف بيانات {{username}}؟ لا يمكن التراجع عن هذا الإجراء.", "Delete": "حذف", "Deleting...": "...حذف", "Overwrite": "استبدال", "Overwrite Existing Data?": "استبدال البيانات الحالية؟", "Account data for @{{username}} already exists in the database. Do you want to overwrite it?": "بيانات الحساب @{{username}} موجودة بالفعل في قاعدة البيانات. هل تريد استبدالها؟", "No accounts yet": "لا توجد حسابات بعد", "Use Dashboard to fetch data.": "استخدم لوحة المراقبة لجلب البيانات.", "Something went wrong.": "حدث خطأ ما.", "Error:": "خطأ:", "Fetch": "جلب", "Single": "مفرد", "Batch": "دفعات", "Auto Batch": "دفعات تلقائية", "Timeline": "الخط الزمني", "Media": "الوسائط", "Batch Size": "حجم الدُفعة", "Starting Batch": "الدُفعة الابتدائية", "Posts": "المنشورات", "Tweets": "التغريدات", "Replies": "الردود", "All": "الكل", "Image": "صورة", "Video": "فيديو", "GIF": "GIF", "Batch: {{page}}": "الدُفعة: {{page}}", "Start": "بدء", "Stop": "إيقاف", "Prev": "السابق", "Next": "التالي", "Download Current": "تنزيل الحالي", "Download All": "تنزيل الكل", "Use Batch/Auto Batch if single fetch fails": "استخدم الدفعات/الدفعات التلقائية إذا فشل الجلب المفرد", "Load from database": "تحميل من قاعدة البيانات", "Load database": "تحميل قاعدة البيانات", "Home": "البداية", "End": "النهاية", "Failed to load data": "فشل في تحميل البيانات", "Update": "تحديث", "Updating...": "...جارٍ التحديث", "Update will fetch the latest data and overwrite the database. Continue?": "سيقوم التحديث بجلب أحدث البيانات والكتابة فوق قاعدة البيانات. هل تريد المتابعة؟", "Followers": "المتابعون", "Following": "المتابَعون", "Joined": "تاريخ الانضمام", "Open": "فتح", "Preview": "معاينة", "View Database": "عرض قاعدة البيانات", "Converting...": "جارٍ التحويل...", "Convert & Download": "تحويل وتحميل" } };
  const de = { "common": { "Settings": "Einstellungen", "Theme": "Design", "Change Theme": "Design ändern", "Language": "Sprache", "Change Language": "Sprache ändern", "Date Time Format": "Datum-Uhrzeit-Format", "Debug": "Debug", "Global Settings": "Globale Einstellungen", "Version": "Version", "Common Formats:": "Häufige Formate:", "Date Formats:": "Datumsformate:", "Time Formats:": "Zeitformate:", "Combined Examples:": "Kombinierte Beispiele:", "Localized": "Lokalisiert", "Reset Settings": "Einstellungen zurücksetzen", "Are you sure you want to reset settings to defaults?": "Sind Sie sicher, dass Sie die Einstellungen auf Standardwerte zurücksetzen möchten?", "Reset": "Zurücksetzen", "Cancel": "Abbrechen", "Chrome": "Chrome", "Userscript": "Benutzerskript", "Website": "Webseite", "Patreon": "Patreon", "Dashboard": "Dashboard", "Database": "Datenbank", "Auth": "Authentifizierung", "Convert Animated GIFs": "GIFs konvertieren", "Convert GIFs (External)": "GIFs konvertieren (Extern)", "Concurrent Downloads": "Gleichzeitige Downloads", "Use 10+ only with fast internet": "10+ nur bei schneller Internetverbindung verwenden", "Smaller size, same quality": "Kleinere Größe, gleiche Qualität", "Larger size, same quality": "Größere Größe, gleiche Qualität", "Back": "Zurück", "Please visit a profile page for auto-detection": "Bitte besuchen Sie eine Profilseite für die automatische Erkennung", "Please configure authentication in the Auth tab first": "Bitte konfigurieren Sie zuerst die Authentifizierung im Auth-Tab", "Invalid username format": "Ungültiges Benutzernamen-Format", "Invalid auth token. Please check your settings.": "Ungültiger Auth-Token. Bitte überprüfen Sie Ihre Einstellungen.", "Invalid Patreon auth. Please check your settings.": "Ungültige Patreon-Authentifizierung. Bitte überprüfen Sie Ihre Einstellungen.", "Failed to fetch data": "Daten konnten nicht abgerufen werden", "Failed to fetch data from all APIs": "Fehler beim Abrufen der Daten von allen APIs", "Failed to verify auth from all APIs": "Fehler bei der Überprüfung der Authentifizierung über alle APIs", "Failed to generate token from all APIs": "Fehler beim Generieren des Tokens über alle APIs", "Generating token...": "Token wird generiert...", "Abort": "Abbrechen", "Network error occurred": "Es ist ein Netzwerkfehler aufgetreten", "Request timeout - please try again": "Zeitüberschreitung der Anforderung – bitte erneut versuchen", "Failed to parse API response": "API-Antwort konnte nicht analysiert werden", "Invalid API response structure": "Ungültige API-Antwortstruktur", "Unknown error occurred": "Unbekannter Fehler ist aufgetreten", "HTTP error! status: {{status}}": "HTTP-Fehler! Status: {{status}}", "Download already in progress": "Download läuft bereits", "No media files found": "Keine Mediendateien gefunden", "Toggle visibility": "Ein-/Ausblenden", "Close": "Schließen", "Converting GIFs...": "GIFs werden konvertiert...", "Downloading...": "Herunterladen...", "Download": "Herunterladen", "Fetching...": "Abrufen...", "Fetch All": "Alle abrufen", "Fetch Video": "Video abrufen", "Fetch Image": "Bild abrufen", "Fetch GIF": "GIF abrufen", "Posts: {{posts}}": "Beiträge: {{posts}}", "Media: {{media}}": "Medien: {{media}}", "Current Media: {{current}} • Total Media: {{total}}": "Aktuelle Medien: {{current}} • Medien gesamt: {{total}}", "Failed to download media": "Medien konnten nicht heruntergeladen werden", "Demo mode is only available for @xbatchdemo": "Der Demo-Modus ist nur für @xbatchdemo verfügbar", "Auth Token": "Auth-Token", "Enter your auth token": "Geben Sie Ihren Auth-Token ein", "Your authentication token for API access": "Ihr Authentifizierungs-Token für API-Zugriff", "Patreon Auth": "Patreon-Authentifizierung", "Enter your Patreon auth": "Geben Sie Ihre Patreon-Authentifizierung ein", "Your Patreon authentication key": "Ihr Patreon-Authentifizierungsschlüssel", "Please enter Patreon auth first": "Bitte geben Sie zuerst die Patreon-Authentifizierung ein", "Please verify Patreon auth first": "Bitte überprüfen Sie zuerst die Patreon-Authentifizierung", "Patreon auth verified successfully": "Patreon-Authentifizierung erfolgreich überprüft", "Invalid Patreon auth": "Ungültige Patreon-Authentifizierung", "Verification failed. Please try again": "Überprüfung fehlgeschlagen. Bitte versuchen Sie es erneut", "Generating": "Generieren", "Generate": "Generieren", "Verify": "Überprüfen", "Token generated successfully": "Token erfolgreich generiert ({{current}}/{{total}})", "Failed to generate token": "Token-Generierung fehlgeschlagen", "Token generation failed. Please try again": "Token-Generierung fehlgeschlagen. Bitte versuchen Sie es erneut", "Verifying": "Überprüfen", "Verified": "Überprüft", "Use code": "Verwenden Sie den Code", "for Patreon Auth, click Verify to unlock demo. Test at": "für die Patreon-Authentifizierung, klicken Sie auf „Überprüfen“, um die Demo freizuschalten. Testen bei", "Need help with Auth Token? See": "Benötigen Sie Hilfe mit dem Auth-Token? Siehe", "the guide": "die Anleitung", "Subscribe": "Abonnieren", "to get your Patreon Auth code and start downloading with ease!": "um Ihren Patreon-Authentifizierungscode zu erhalten und mühelos mit dem Herunterladen zu beginnen!", "Report bugs or request features:": "Fehler melden oder Funktionen anfordern:", "Import": "Importieren", "Importing...": "Importieren...", "Supports JSON and ZIP formats": "Unterstützt JSON- und ZIP-Formate", "Export": "Exportieren", "Export All Data": "Alle Daten exportieren", "Exporting...": "Exportieren...", "Clear": "Löschen", "Filter by Batch": "Nach Stapel filtern", "Are you sure to clear all data in the database?": "Sind Sie sicher, dass Sie alle Daten in der Datenbank löschen möchten?", "Delete Account Data": "Kontodaten löschen", "Are you sure you want to delete account data? This action cannot be undone": "Sind Sie sicher, dass Sie die Daten von {{username}} löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.", "Delete": "Löschen", "Deleting...": "Löschen...", "Overwrite": "Überschreiben", "Overwrite Existing Data?": "Vorhandene Daten überschreiben?", "Account data for @{{username}} already exists in the database. Do you want to overwrite it?": "Kontodaten für @{{username}} existieren bereits in der Datenbank. Möchten Sie sie überschreiben?", "No accounts yet": "Noch keine Konten", "Use Dashboard to fetch data.": "Verwenden Sie das Dashboard zum Abrufen von Daten.", "Something went wrong.": "Etwas ist schief gelaufen.", "Error:": "Fehler:", "Fetch": "Abrufen", "Single": "Einzel", "Batch": "Stapel", "Auto Batch": "Auto-Stapel", "Timeline": "Timeline", "Media": "Medien", "Batch Size": "Stapelgröße", "Starting Batch": "Startstapel", "Posts": "Beiträge", "Tweets": "Tweets", "Replies": "Antworten", "All": "Alle", "Image": "Bild", "Video": "Video", "GIF": "GIF", "Batch: {{page}}": "Stapel: {{page}}", "Start": "Start", "Stop": "Stopp", "Prev": "Zurück", "Next": "Weiter", "Download Current": "Aktuelles herunterladen", "Download All": "Alles herunterladen", "Use Batch/Auto Batch if single fetch fails": "Verwende Stapel/Auto-Stapel, wenn Einzelabruf fehlschlägt", "Load from database": "Aus Datenbank laden", "Load database": "Datenbank laden", "Home": "Anfang", "End": "Ende", "Failed to load data": "Daten konnten nicht geladen werden", "Update": "Aktualisieren", "Updating...": "Aktualisierung läuft...", "Update will fetch the latest data and overwrite the database. Continue?": "Das Update holt die neuesten Daten und überschreibt die Datenbank. Fortfahren?", "Followers": "Follower", "Following": "Folge ich", "Joined": "Beigetreten", "Open": "Öffnen", "Preview": "Vorschau", "View Database": "Datenbank anzeigen", "Converting...": "Konvertieren...", "Convert & Download": "Konvertieren & Herunterladen" } };
  const en$1 = { "common": { "Settings": "Settings", "Theme": "Theme", "Change Theme": "Change Theme", "Language": "Language", "Change Language": "Change Language", "Date Time Format": "Date Time Format", "Debug": "Debug", "Global Settings": "Global Settings", "Version": "Version", "Common Formats:": "Common Formats:", "Date Formats:": "Date Formats:", "Time Formats:": "Time Formats:", "Combined Examples:": "Combined Examples:", "Localized": "Localized", "Reset Settings": "Reset Settings", "Are you sure you want to reset settings to defaults?": "Are you sure you want to reset settings to defaults?", "Reset": "Reset", "Cancel": "Cancel", "Chrome": "Chrome", "Userscript": "Userscript", "Website": "Website", "Patreon": "Patreon", "Dashboard": "Dashboard", "Database": "Database", "Auth": "Auth", "Convert Animated GIFs": "Convert GIFs", "Convert GIFs (External)": "Convert GIFs (External)", "Concurrent Downloads": "Concurrent Downloads", "Use 10+ only with fast internet": "Use 10+ only with fast internet", "Smaller size, same quality": "Smaller size, same quality", "Larger size, same quality": "Larger size, same quality", "Back": "Back", "Please visit a profile page for auto-detection": "Please visit a profile page for auto-detection", "Please configure authentication in the Auth tab first": "Please configure authentication in the Auth tab first", "Invalid username format": "Invalid username format", "Invalid auth token. Please check your settings.": "Invalid auth token. Please check your settings.", "Invalid Patreon auth. Please check your settings.": "Invalid Patreon auth. Please check your settings.", "Failed to fetch data": "Failed to fetch data", "Failed to fetch data from all APIs": "Failed to fetch data from all APIs", "Failed to verify auth from all APIs": "Failed to verify auth from all APIs", "Failed to generate token from all APIs": "Failed to generate token from all APIs", "Generating token...": "Generating token...", "Abort": "Abort", "Network error occurred": "Network error occurred", "Request timeout - please try again": "Request timeout - please try again", "Failed to parse API response": "Failed to parse API response", "Invalid API response structure": "Invalid API response structure", "Unknown error occurred": "Unknown error occurred", "HTTP error! status: {{status}}": "HTTP error! status: {{status}}", "Download already in progress": "Download already in progress", "No media files found": "No media files found", "Toggle visibility": "Toggle visibility", "Close": "Close", "Converting GIFs...": "Converting GIFs...", "Downloading...": "Downloading...", "Download": "Download", "Fetching...": "Fetching...", "Fetch All": "Fetch All", "Fetch Video": "Fetch Video", "Fetch Image": "Fetch Image", "Fetch GIF": "Fetch GIF", "Posts: {{posts}}": "Posts: {{posts}}", "Media: {{media}}": "Media: {{media}}", "Current Media: {{current}} • Total Media: {{total}}": "Current Media: {{current}} • Total Media: {{total}}", "Failed to download media": "Failed to download media", "Demo mode is only available for @xbatchdemo": "Demo mode is only available for @xbatchdemo", "Auth Token": "Auth Token", "Enter your auth token": "Enter your auth token", "Your authentication token for API access": "Your authentication token for API access", "Patreon Auth": "Patreon Auth", "Enter your Patreon auth": "Enter your Patreon auth", "Your Patreon authentication key": "Your Patreon authentication key", "Please enter Patreon auth first": "Please enter Patreon auth first", "Please verify Patreon auth first": "Please verify Patreon auth first", "Patreon auth verified successfully": "Patreon auth verified successfully", "Invalid Patreon auth": "Invalid Patreon auth", "Verification failed. Please try again": "Verification failed. Please try again", "Generating": "Generating", "Generate": "Generate", "Verify": "Verify", "Token generated successfully": "Token generated successfully ({{current}}/{{total}})", "Failed to generate token": "Failed to generate token", "Token generation failed. Please try again": "Token generation failed. Please try again", "Verifying": "Verifying", "Verified": "Verified", "Use code": "Use code", "for Patreon Auth, click Verify to unlock demo. Test at": "for Patreon Auth, click Verify to unlock demo. Test at", "Need help with Auth Token? See": "Need help with Auth Token? See", "the guide": "the guide", "Subscribe": "Subscribe", "to get your Patreon Auth code and start downloading with ease!": "to get your Patreon Auth code and start downloading with ease!", "Report bugs or request features:": "Report bugs or request features:", "Import": "Import", "Importing...": "Importing...", "Supports JSON and ZIP formats": "Supports JSON and ZIP formats", "Export": "Export", "Export All Data": "Export All Data", "Exporting...": "Exporting...", "Clear": "Clear", "Filter by Batch": "Filter by Batch", "Are you sure to clear all data in the database?": "Are you sure to clear all data in the database?", "Delete Account Data": "Delete Account Data", "Are you sure you want to delete account data? This action cannot be undone": "Are you sure you want to delete {{username}}'s data? This action cannot be undone.", "Delete": "Delete", "Deleting...": "Deleting...", "Overwrite": "Overwrite", "Overwrite Existing Data?": "Overwrite Existing Data?", "Account data for @{{username}} already exists in the database. Do you want to overwrite it?": "Account data for @{{username}} already exists in the database. Do you want to overwrite it?", "No accounts yet": "No accounts yet", "Use Dashboard to fetch data.": "Use Dashboard to fetch data.", "Something went wrong.": "Something went wrong.", "Error:": "Error:", "Fetch": "Fetch", "Single": "Single", "Batch": "Batch", "Auto Batch": "Auto Batch", "Timeline": "Timeline", "Media": "Media", "Batch Size": "Batch Size", "Starting Batch": "Starting Batch", "Posts": "Posts", "Tweets": "Tweets", "Replies": "Replies", "All": "All", "Image": "Image", "Video": "Video", "GIF": "GIF", "Batch: {{page}}": "Batch: {{page}}", "Start": "Start", "Stop": "Stop", "Prev": "Prev", "Next": "Next", "Download Current": "Download Current", "Download All": "Download All", "Use Batch/Auto Batch if single fetch fails": "Use Batch/Auto Batch if single fetch fails", "Load from database": "Load from database", "Load database": "Load database", "Home": "Home", "End": "End", "Failed to load data": "Failed to load data", "Update": "Update", "Updating...": "Updating...", "Update will fetch the latest data and overwrite the database. Continue?": "Update will fetch the latest data and overwrite the database. Continue?", "Followers": "Followers", "Following": "Following", "Joined": "Joined", "Open": "Open", "Preview": "Preview", "View Database": "View Database", "Converting...": "Converting...", "Convert & Download": "Convert & Download" } };
  const es = { "common": { "Settings": "Configuración", "Theme": "Tema", "Change Theme": "Cambiar Tema", "Language": "Idioma", "Change Language": "Cambiar idioma", "Date Time Format": "Formato de Fecha y Hora", "Debug": "Depurar", "Global Settings": "Configuración Global", "Version": "Versión", "Common Formats:": "Formatos Comunes:", "Date Formats:": "Formatos de Fecha:", "Time Formats:": "Formatos de Hora:", "Combined Examples:": "Ejemplos Combinados:", "Localized": "Localizado", "Reset Settings": "Restablecer ajustes", "Are you sure you want to reset settings to defaults?": "¿Seguro que quieres restablecer los ajustes a los valores predeterminados?", "Reset": "Restablecer", "Cancel": "Cancelar", "Chrome": "Chrome", "Userscript": "Script de usuario", "Website": "Sitio web", "Patreon": "Patreon", "Dashboard": "Panel de Control", "Database": "Base de Datos", "Auth": "Autenticación", "Convert Animated GIFs": "Convertir GIFs", "Convert GIFs (External)": "Convertir GIFs (Externo)", "Concurrent Downloads": "Descargas simultáneas", "Use 10+ only with fast internet": "Usa 10+ solo con internet rápido", "Smaller size, same quality": "Tamaño más pequeño, misma calidad", "Larger size, same quality": "Tamaño más grande, misma calidad", "Back": "Atrás", "Please visit a profile page for auto-detection": "Visita una página de perfil para detección automática", "Please configure authentication in the Auth tab first": "Configura la autenticación en la pestaña Auth primero", "Invalid username format": "Formato de nombre de usuario no válido", "Invalid auth token. Please check your settings.": "Token de autenticación no válido. Por favor, revisa tu configuración.", "Invalid Patreon auth. Please check your settings.": "Autenticación de Patreon no válida. Por favor, revisa tu configuración.", "Failed to fetch data": "Error al obtener los datos", "Failed to fetch data from all APIs": "Error al obtener los datos de todas las APIs", "Failed to verify auth from all APIs": "Error al verificar la autenticación en todas las APIs", "Failed to generate token from all APIs": "Error al generar el token en todas las APIs", "Generating token...": "Generando token...", "Abort": "Abortar", "Network error occurred": "Se produjo un error de red", "Request timeout - please try again": "Tiempo de espera agotado: inténtalo de nuevo", "Failed to parse API response": "Error al analizar la respuesta de la API", "Invalid API response structure": "Estructura de respuesta de la API no válida", "Unknown error occurred": "Ocurrió un error desconocido", "HTTP error! status: {{status}}": "¡Error HTTP! estado: {{status}}", "Download already in progress": "Ya hay una descarga en curso", "No media files found": "No se encontraron archivos multimedia", "Toggle visibility": "Mostrar/ocultar", "Close": "Cerrar", "Converting GIFs...": "Convirtiendo GIF...", "Downloading...": "Descargando...", "Download": "Descargar", "Fetching...": "Obteniendo...", "Fetch All": "Obtener todo", "Fetch Video": "Obtener video", "Fetch Image": "Obtener imagen", "Fetch GIF": "Obtener GIF", "Posts: {{posts}}": "Publicaciones: {{posts}}", "Media: {{media}}": "Medios: {{media}}", "Current Media: {{current}} • Total Media: {{total}}": "Medios actuales: {{current}} • Medios totales: {{total}}", "Failed to download media": "Error al descargar los medios", "Demo mode is only available for @xbatchdemo": "El modo demo solo está disponible para @xbatchdemo", "Auth Token": "Token de autenticación", "Enter your auth token": "Introduce tu token de autenticación", "Your authentication token for API access": "Tu token de autenticación para acceso a la API", "Patreon Auth": "Autenticación de Patreon", "Enter your Patreon auth": "Introduce tu autenticación de Patreon", "Your Patreon authentication key": "Tu clave de autenticación de Patreon", "Please enter Patreon auth first": "Introduce primero la autenticación de Patreon", "Please verify Patreon auth first": "Verifica primero la autenticación de Patreon", "Patreon auth verified successfully": "Autenticación de Patreon verificada correctamente", "Invalid Patreon auth": "Autenticación de Patreon no válida", "Verification failed. Please try again": "La verificación falló. Inténtalo de nuevo", "Generating": "Generando", "Generate": "Generar", "Verify": "Verificar", "Token generated successfully": "Token generado correctamente ({{current}}/{{total}})", "Failed to generate token": "Error al generar el token", "Token generation failed. Please try again": "La generación del token falló. Inténtalo de nuevo", "Verifying": "Verificando", "Verified": "Verificado", "Use code": "Usa el código", "for Patreon Auth, click Verify to unlock demo. Test at": 'para la Autenticación de Patreon, haz clic en "Verificar" para desbloquear la demo. Prueba en', "Need help with Auth Token? See": "¿Necesitas ayuda con el token de autenticación? Consulta", "the guide": "la guía", "Subscribe": "Suscríbete", "to get your Patreon Auth code and start downloading with ease!": "para obtener tu código de autenticación de Patreon y empezar a descargar fácilmente.", "Report bugs or request features:": "Informa errores o solicita funciones:", "Import": "Importar", "Importing...": "Importando...", "Supports JSON and ZIP formats": "Admite formatos JSON y ZIP", "Export": "Exportar", "Export All Data": "Exportar todos los datos", "Exporting...": "Exportando...", "Clear": "Limpiar", "Filter by Batch": "Filtrar por lote", "Are you sure to clear all data in the database?": "¿Estás seguro de que quieres borrar todos los datos de la base de datos?", "Delete Account Data": "Eliminar datos de la cuenta", "Are you sure you want to delete account data? This action cannot be undone": "¿Seguro que quieres eliminar los datos de {{username}}? Esta acción no se puede deshacer.", "Delete": "Eliminar", "Deleting...": "Eliminando...", "Overwrite": "Sobrescribir", "Overwrite Existing Data?": "¿Sobrescribir datos existentes?", "Account data for @{{username}} already exists in the database. Do you want to overwrite it?": "Los datos de la cuenta @{{username}} ya existen en la base de datos. ¿Deseas sobrescribirlos?", "No accounts yet": "Todavía no hay cuentas", "Use Dashboard to fetch data.": "Usa el Panel de Control para obtener datos.", "Something went wrong.": "Algo salió mal.", "Error:": "Error:", "Fetch": "Obtener", "Single": "Único", "Batch": "Lote", "Auto Batch": "Lote automático", "Timeline": "Cronología", "Media": "Medios", "Batch Size": "Tamaño del lote", "Starting Batch": "Lote inicial", "Posts": "Publicaciones", "Tweets": "Tweets", "Replies": "Respuestas", "All": "Todo", "Image": "Imagen", "Video": "Video", "GIF": "GIF", "Batch: {{page}}": "Lote: {{page}}", "Start": "Iniciar", "Stop": "Detener", "Prev": "Anterior", "Next": "Siguiente", "Download Current": "Descargar actual", "Download All": "Descargar todo", "Use Batch/Auto Batch if single fetch fails": "Usa Lote/Lote automático si falla la obtención única", "Load from database": "Cargar desde base de datos", "Load database": "Cargar base de datos", "Home": "Inicio", "End": "Fin", "Failed to load data": "Error al cargar los datos", "Update": "Actualizar", "Updating...": "Actualizando...", "Update will fetch the latest data and overwrite the database. Continue?": "La actualización obtendrá los datos más recientes y sobrescribirá la base de datos. ¿Continuar?", "Followers": "Seguidores", "Following": "Siguiendo", "Joined": "Se unió", "Open": "Abrir", "Preview": "Vista previa", "View Database": "Ver base de datos", "Converting...": "Convirtiendo...", "Convert & Download": "Convertir y descargar" } };
  const fil = { "common": { "Settings": "Mga Setting", "Theme": "Tema", "Change Theme": "Baguhin ang Tema", "Language": "Wika", "Change Language": "Baguhin ang Wika", "Date Time Format": "Format ng Petsa at Oras", "Debug": "Debug", "Global Settings": "Pandaigdigang Mga Setting", "Version": "Bersyon", "Common Formats:": "Karaniwang Mga Format:", "Date Formats:": "Mga Format ng Petsa:", "Time Formats:": "Mga Format ng Oras:", "Combined Examples:": "Pinagsama-samang Mga Halimbawa:", "Localized": "Naka-localize", "Reset Settings": "I-reset ang mga Setting", "Are you sure you want to reset settings to defaults?": "Sigurado ka bang gusto mong i-reset ang mga setting sa default?", "Reset": "I-reset", "Cancel": "Kanselahin", "Chrome": "Chrome", "Userscript": "Userscript", "Website": "Website", "Patreon": "Patreon", "Dashboard": "Dashboard", "Database": "Database", "Auth": "Awtorisasyon", "Convert Animated GIFs": "I-convert ang GIF", "Convert GIFs (External)": "I-convert ang GIF (External)", "Concurrent Downloads": "Sabay-sabay na Pag-download", "Use 10+ only with fast internet": "Gumamit ng 10+ lamang sa mabilis na internet", "Smaller size, same quality": "Mas maliit na laki, parehong kalidad", "Larger size, same quality": "Mas malaking laki, parehong kalidad", "Back": "Bumalik", "Please visit a profile page for auto-detection": "Mangyaring bumisita sa isang profile page para sa auto-detection", "Please configure authentication in the Auth tab first": "Mangyaring i-configure muna ang authentication sa Auth tab", "Invalid username format": "Di-wastong format ng username", "Invalid auth token. Please check your settings.": "Di-wastong auth token. Mangyaring suriin ang iyong mga setting.", "Invalid Patreon auth. Please check your settings.": "Di-wastong Patreon auth. Mangyaring suriin ang iyong mga setting.", "Failed to fetch data": "Nabigong kunin ang data", "Failed to fetch data from all APIs": "Nabigong kunin ang data mula sa lahat ng APIs", "Failed to verify auth from all APIs": "Nabigong i-verify ang auth mula sa lahat ng APIs", "Failed to generate token from all APIs": "Nabigong gumawa ng token mula sa lahat ng APIs", "Generating token...": "Gumagawa ng token...", "Abort": "Itigil", "Network error occurred": "May naganap na network error", "Request timeout - please try again": "Nag-timeout ang request - mangyaring subukan muli", "Failed to parse API response": "Nabigong i-parse ang API response", "Invalid API response structure": "Di-wastong istruktura ng API response", "Unknown error occurred": "May naganap na hindi kilalang error", "HTTP error! status: {{status}}": "HTTP error! status: {{status}}", "Download already in progress": "Nagda-download na", "No media files found": "Walang nahanap na media files", "Toggle visibility": "I-toggle ang visibility", "Close": "Isara", "Converting GIFs...": "Kino-convert ang mga GIF...", "Downloading...": "Nagda-download...", "Download": "I-download", "Fetching...": "Kumukuha...", "Fetch All": "Kunin Lahat", "Fetch Video": "Kunin ang Video", "Fetch Image": "Kunin ang Larawan", "Fetch GIF": "Kunin ang GIF", "Posts: {{posts}}": "Mga Post: {{posts}}", "Media: {{media}}": "Media: {{media}}", "Current Media: {{current}} • Total Media: {{total}}": "Kasalukuyang Media: {{current}} • Kabuuang Media: {{total}}", "Failed to download media": "Nabigong i-download ang media", "Demo mode is only available for @xbatchdemo": "Ang demo mode ay available lang para sa @xbatchdemo", "Auth Token": "Auth Token", "Enter your auth token": "Ilagay ang iyong auth token", "Your authentication token for API access": "Ang iyong authentication token para sa API access", "Patreon Auth": "Patreon Auth", "Enter your Patreon auth": "Ilagay ang iyong Patreon auth", "Your Patreon authentication key": "Ang iyong Patreon authentication key", "Please enter Patreon auth first": "Mangyaring ilagay muna ang Patreon auth", "Please verify Patreon auth first": "Mangyaring i-verify muna ang Patreon auth", "Patreon auth verified successfully": "Matagumpay na na-verify ang Patreon auth", "Invalid Patreon auth": "Di-wastong Patreon auth", "Verification failed. Please try again": "Nabigo ang verification. Mangyaring subukan muli", "Generating": "Gumagawa", "Generate": "Gumawa", "Verify": "I-verify", "Token generated successfully": "Matagumpay na nagawa ang token ({{current}}/{{total}})", "Failed to generate token": "Nabigong gumawa ng token", "Token generation failed. Please try again": "Nabigo ang paggawa ng token. Mangyaring subukan muli", "Verifying": "Vine-verify", "Verified": "Na-verify na", "Use code": "Gamitin ang code", "for Patreon Auth, click Verify to unlock demo. Test at": "para sa Patreon Auth, i-click ang Verify para i-unlock ang demo. Subukan sa", "Need help with Auth Token? See": "Kailangan ng tulong sa Auth Token? Tingnan ang", "the guide": "gabay", "Subscribe": "Mag-subscribe", "to get your Patreon Auth code and start downloading with ease!": "para makuha ang iyong Patreon Auth code at magsimulang mag-download nang madali!", "Report bugs or request features:": "Mag-ulat ng mga bug o humingi ng mga feature:", "Import": "Mag-import", "Importing...": "Nag-iimport...", "Supports JSON and ZIP formats": "Sumusuporta sa JSON at ZIP formats", "Export": "Mag-export", "Export All Data": "I-export ang Lahat ng Data", "Exporting...": "Nag-eexport...", "Clear": "Burahin", "Filter by Batch": "I-filter ayon sa Batch", "Are you sure to clear all data in the database?": "Sigurado ka bang buburahin ang lahat ng data sa database?", "Delete Account Data": "Burahin ang Account Data", "Are you sure you want to delete account data? This action cannot be undone": "Sigurado ka bang buburahin ang data ni {{username}}? Hindi na ito maaaring ibalik.", "Delete": "Burahin", "Deleting...": "Binubura...", "Overwrite": "I-overwrite", "Overwrite Existing Data?": "I-overwrite ang Existing Data?", "Account data for @{{username}} already exists in the database. Do you want to overwrite it?": "Ang account data para kay @{{username}} ay umiiral na sa database. Gusto mo bang i-overwrite ito?", "No accounts yet": "Wala pang mga account", "Use Dashboard to fetch data.": "Gamitin ang Dashboard para kunin ang data.", "Something went wrong.": "May nangyaring mali.", "Error:": "Error:", "Fetch": "Kunin", "Single": "Iisa", "Batch": "Batch", "Auto Batch": "Auto Batch", "Timeline": "Timeline", "Media": "Media", "Batch Size": "Laki ng Batch", "Starting Batch": "Nagsisimulang Batch", "Posts": "Mga Post", "Tweets": "Mga Tweet", "Replies": "Mga Tugon", "All": "Lahat", "Image": "Larawan", "Video": "Video", "GIF": "GIF", "Batch: {{page}}": "Batch: {{page}}", "Start": "Simulan", "Stop": "Itigil", "Prev": "Nakaraan", "Next": "Susunod", "Download Current": "I-download ang Kasalukuyan", "Download All": "I-download Lahat", "Use Batch/Auto Batch if single fetch fails": "Gumamit ng Batch/Auto Batch kung nabigo ang single fetch", "Load from database": "Mag-load mula sa database", "Load database": "Mag-load ng database", "Home": "Home", "End": "Dulo", "Failed to load data": "Nabigong mag-load ng data", "Update": "I-update", "Updating...": "Nag-uupdate...", "Update will fetch the latest data and overwrite the database. Continue?": "Ang update ay kukuha ng pinakabagong data at i-overwrite ang database. Magpatuloy?", "Followers": "Mga Tagasunod", "Following": "Sinusundan", "Joined": "Sumali", "Open": "Buksan", "Preview": "Preview", "View Database": "Tingnan ang Database", "Converting...": "Kino-convert...", "Convert & Download": "I-convert at I-download" } };
  const fr = { "common": { "Settings": "Paramètres", "Theme": "Thème", "Change Theme": "Changer le thème", "Language": "Langue", "Change Language": "Changer la langue", "Date Time Format": "Format date et heure", "Debug": "Débogage", "Global Settings": "Paramètres globaux", "Version": "Version", "Common Formats:": "Formats courants :", "Date Formats:": "Formats de date :", "Time Formats:": "Formats d'heure :", "Combined Examples:": "Exemples combinés :", "Localized": "Localisé", "Reset Settings": "Réinitialiser les paramètres", "Are you sure you want to reset settings to defaults?": "Êtes-vous sûr de vouloir réinitialiser les paramètres par défaut ?", "Reset": "Réinitialiser", "Cancel": "Annuler", "Chrome": "Chrome", "Userscript": "Script utilisateur", "Website": "Site Web", "Patreon": "Patreon", "Dashboard": "Tableau de bord", "Database": "Base de données", "Auth": "Authentification", "Convert Animated GIFs": "Convertir des GIFs", "Convert GIFs (External)": "Convertir des GIFs (Externe)", "Concurrent Downloads": "Téléchargements simultanés", "Use 10+ only with fast internet": "Utilisez 10+ uniquement avec une connexion rapide", "Smaller size, same quality": "Taille plus petite, même qualité", "Larger size, same quality": "Taille plus grande, même qualité", "Back": "Retour", "Please visit a profile page for auto-detection": "Veuillez visiter une page de profil pour la détection automatique", "Please configure authentication in the Auth tab first": "Veuillez d'abord configurer l'authentification dans l'onglet Auth", "Invalid username format": "Format de nom d'utilisateur invalide", "Invalid auth token. Please check your settings.": "Token d'authentification invalide. Veuillez vérifier vos paramètres.", "Invalid Patreon auth. Please check your settings.": "Authentification Patreon invalide. Veuillez vérifier vos paramètres.", "Failed to fetch data": "Échec de récupération des données", "Failed to fetch data from all APIs": "Échec de récupération des données depuis toutes les API", "Failed to verify auth from all APIs": "Échec de vérification de l'authentification depuis toutes les API", "Failed to generate token from all APIs": "Échec de génération du jeton depuis toutes les API", "Generating token...": "Génération du jeton...", "Abort": "Abandonner", "Network error occurred": "Une erreur réseau s'est produite", "Request timeout - please try again": "Délai d’attente dépassé - veuillez réessayer", "Failed to parse API response": "Échec de l’analyse de la réponse de l’API", "Invalid API response structure": "Structure de réponse de l’API invalide", "Unknown error occurred": "Une erreur inconnue s'est produite", "HTTP error! status: {{status}}": "Erreur HTTP ! statut : {{status}}", "Download already in progress": "Téléchargement déjà en cours", "No media files found": "Aucun fichier multimédia trouvé", "Toggle visibility": "Afficher/masquer", "Close": "Fermer", "Converting GIFs...": "Conversion des GIFs...", "Downloading...": "Téléchargement...", "Download": "Télécharger", "Fetching...": "Récupération...", "Fetch All": "Tout récupérer", "Fetch Video": "Récupérer la vidéo", "Fetch Image": "Récupérer l'image", "Fetch GIF": "Récupérer le GIF", "Posts: {{posts}}": "Publications : {{posts}}", "Media: {{media}}": "Médias : {{media}}", "Current Media: {{current}} • Total Media: {{total}}": "Médias actuels : {{current}} • Médias totaux : {{total}}", "Failed to download media": "Échec de téléchargement des médias", "Demo mode is only available for @xbatchdemo": "Le mode démo est uniquement disponible pour @xbatchdemo", "Auth Token": "Token d'authentification", "Enter your auth token": "Entrez votre token d'authentification", "Your authentication token for API access": "Votre token d'authentification pour l'accès API", "Patreon Auth": "Authentification Patreon", "Enter your Patreon auth": "Entrez votre authentification Patreon", "Your Patreon authentication key": "Votre clé d'authentification Patreon", "Please enter Patreon auth first": "Veuillez d'abord saisir l'authentification Patreon", "Please verify Patreon auth first": "Veuillez d'abord vérifier l'authentification Patreon", "Patreon auth verified successfully": "Authentification Patreon vérifiée avec succès", "Invalid Patreon auth": "Authentification Patreon invalide", "Verification failed. Please try again": "Échec de vérification. Veuillez réessayer", "Generating": "Génération", "Generate": "Générer", "Verify": "Vérifier", "Token generated successfully": "Token généré avec succès ({{current}}/{{total}})", "Failed to generate token": "Échec de génération du token", "Token generation failed. Please try again": "Échec de génération du token. Veuillez réessayer", "Verifying": "Vérification", "Verified": "Vérifié", "Use code": "Utilisez le code", "for Patreon Auth, click Verify to unlock demo. Test at": "pour l’authentification Patreon, cliquez sur « Vérifier » pour déverrouiller la démo. Testez sur", "Need help with Auth Token? See": "Besoin d’aide avec le jeton d’authentification ? Voir", "the guide": "le guide", "Subscribe": "S’abonner", "to get your Patreon Auth code and start downloading with ease!": "pour obtenir votre code d’authentification Patreon et commencer à télécharger facilement !", "Report bugs or request features:": "Signalez des bugs ou demandez des fonctionnalités :", "Import": "Importer", "Importing...": "Importation...", "Supports JSON and ZIP formats": "Prend en charge les formats JSON et ZIP", "Export": "Exporter", "Export All Data": "Exporter toutes les données", "Exporting...": "Exportation...", "Clear": "Effacer", "Filter by Batch": "Filtrer par lot", "Are you sure to clear all data in the database?": "Êtes-vous sûr de vouloir effacer toutes les données de la base ?", "Delete Account Data": "Supprimer les données du compte", "Are you sure you want to delete account data? This action cannot be undone": "Êtes-vous sûr de vouloir supprimer les données de {{username}} ? Cette action ne peut pas être annulée.", "Delete": "Supprimer", "Deleting...": "Suppression...", "Overwrite": "Écraser", "Overwrite Existing Data?": "Écraser les données existantes ?", "Account data for @{{username}} already exists in the database. Do you want to overwrite it?": "Les données du compte @{{username}} existent déjà dans la base de données. Voulez-vous les écraser ?", "No accounts yet": "Aucun compte pour le moment", "Use Dashboard to fetch data.": "Utilisez le Tableau de bord pour récupérer les données.", "Something went wrong.": "Quelque chose s'est mal passé.", "Error:": "Erreur :", "Fetch": "Récupérer", "Single": "Unique", "Batch": "Lot", "Auto Batch": "Lot automatique", "Timeline": "Chronologie", "Media": "Médias", "Batch Size": "Taille du lot", "Starting Batch": "Lot de départ", "Posts": "Publications", "Tweets": "Tweets", "Replies": "Réponses", "All": "Tout", "Image": "Image", "Video": "Vidéo", "GIF": "GIF", "Batch: {{page}}": "Lot : {{page}}", "Start": "Démarrer", "Stop": "Arrêter", "Prev": "Précédent", "Next": "Suivant", "Download Current": "Télécharger l'actuel", "Download All": "Tout télécharger", "Use Batch/Auto Batch if single fetch fails": "Utilisez Lot/Lot automatique si la récupération unique échoue", "Load from database": "Charger depuis la base de données", "Load database": "Charger la base de données", "Home": "Début", "End": "Fin", "Failed to load data": "Échec du chargement des données", "Update": "Mettre à jour", "Updating...": "Mise à jour en cours...", "Update will fetch the latest data and overwrite the database. Continue?": "La mise à jour récupérera les dernières données et écrasera la base de données. Continuer ?", "Followers": "Abonnés", "Following": "Abonnements", "Joined": "Inscrit", "Open": "Ouvrir", "Preview": "Aperçu", "View Database": "Voir la base de données", "Converting...": "Conversion...", "Convert & Download": "Convertir et télécharger" } };
  const hi = { "common": { "Settings": "सेटिंग्स", "Theme": "थीम", "Change Theme": "थीम बदलें", "Language": "भाषा", "Change Language": "भाषा बदलें", "Date Time Format": "दिनांक समय प्रारूप", "Debug": "डिबग", "Global Settings": "वैश्विक सेटिंग्स", "Version": "संस्करण", "Common Formats:": "सामान्य प्रारूप:", "Date Formats:": "दिनांक प्रारूप:", "Time Formats:": "समय प्रारूप:", "Combined Examples:": "संयुक्त उदाहरण:", "Localized": "स्थानीयकृत", "Reset Settings": "सेटिंग्स रीसेट करें", "Are you sure you want to reset settings to defaults?": "क्या आप वाकई सेटिंग्स को डिफ़ॉल्ट पर रीसेट करना चाहते हैं?", "Reset": "रीसेट करें", "Cancel": "रद्द करें", "Chrome": "Chrome", "Userscript": "यूज़रस्क्रिप्ट", "Website": "वेबसाइट", "Patreon": "Patreon", "Dashboard": "डैशबोर्ड", "Database": "डेटाबेस", "Auth": "प्रमाणीकरण", "Convert Animated GIFs": "GIFs कन्वर्ट करें", "Convert GIFs (External)": "GIFs कन्वर्ट करें (बाहरी)", "Concurrent Downloads": "समकालिक डाउनलोड", "Use 10+ only with fast internet": "10+ का उपयोग केवल तेज़ इंटरनेट पर करें", "Smaller size, same quality": "आकार छोटा, गुणवत्ता समान", "Larger size, same quality": "आकार बड़ा, गुणवत्ता समान", "Back": "वापस", "Please visit a profile page for auto-detection": "कृपया ऑटो-डिटेक्शन के लिए प्रोफ़ाइल पेज पर जाएं", "Please configure authentication in the Auth tab first": "कृपया पहले ऑथ टैब में प्रमाणीकरण कॉन्फ़िगर करें", "Invalid username format": "अमान्य उपयोगकर्ता नाम प्रारूप", "Invalid auth token. Please check your settings.": "अमान्य ऑथ टोकन। कृपया सेटिंग्स जाँचें।", "Invalid Patreon auth. Please check your settings.": "अमान्य Patreon ऑथ। कृपया अपनी सेटिंग्स जाँचें।", "Failed to fetch data": "डेटा लाना विफल", "Failed to fetch data from all APIs": "सभी API से डेटा प्राप्त करने में विफल", "Failed to verify auth from all APIs": "सभी API से ऑथ सत्यापित करने में विफल", "Failed to generate token from all APIs": "सभी API से टोकन जनरेट करने में विफल", "Generating token...": "टोकन जेनरेट किया जा रहा है...", "Abort": "रद्द करें", "Network error occurred": "नेटवर्क त्रुटि हुई", "Request timeout - please try again": "अनुरोध का समय समाप्त — कृपया पुनः प्रयास करें", "Failed to parse API response": "API प्रतिक्रिया पार्स करने में विफल", "Invalid API response structure": "API प्रतिक्रिया संरचना अमान्य है", "Unknown error occurred": "अज्ञात त्रुटि हुई", "HTTP error! status: {{status}}": "HTTP त्रुटि! स्थिति: {{status}}", "Download already in progress": "डाउनलोड पहले से चल रहा है", "No media files found": "कोई मीडिया फ़ाइलें नहीं मिलीं", "Toggle visibility": "दिखाएँ/छुपाएँ", "Close": "बंद करें", "Converting GIFs...": "GIFs कन्वर्ट हो रहे हैं...", "Downloading...": "डाउनलोड हो रहा है...", "Download": "डाउनलोड करें", "Fetching...": "प्राप्त किया जा रहा है...", "Fetch All": "सब कुछ प्राप्त करें", "Fetch Video": "वीडियो प्राप्त करें", "Fetch Image": "छवि प्राप्त करें", "Fetch GIF": "GIF प्राप्त करें", "Posts: {{posts}}": "पोस्ट: {{posts}}", "Media: {{media}}": "मीडिया: {{media}}", "Current Media: {{current}} • Total Media: {{total}}": "वर्तमान मीडिया: {{current}} • कुल मीडिया: {{total}}", "Failed to download media": "मीडिया डाउनलोड विफल", "Demo mode is only available for @xbatchdemo": "डेमो मोड केवल @xbatchdemo के लिए उपलब्ध है", "Auth Token": "ऑथ टोकन", "Enter your auth token": "अपना ऑथ टोकन दर्ज करें", "Your authentication token for API access": "API एक्सेस के लिए आपका ऑथेंटिकेशन टोकन", "Patreon Auth": "Patreon ऑथ", "Enter your Patreon auth": "अपना Patreon ऑथ दर्ज करें", "Your Patreon authentication key": "आपकी Patreon प्रमाणीकरण कुंजी", "Please enter Patreon auth first": "कृपया पहले Patreon ऑथ दर्ज करें", "Please verify Patreon auth first": "कृपया पहले Patreon ऑथ सत्यापित करें", "Patreon auth verified successfully": "Patreon ऑथ सफलतापूर्वक सत्यापित", "Invalid Patreon auth": "अमान्य Patreon ऑथ", "Verification failed. Please try again": "सत्यापन विफल। कृपया पुनः प्रयास करें", "Generating": "उत्पन्न किया जा रहा है", "Generate": "उत्पन्न करें", "Verify": "सत्यापित करें", "Token generated successfully": "टोकन सफलतापूर्वक जनरेट हुआ ({{current}}/{{total}})", "Failed to generate token": "टोकन जनरेट करना विफल", "Token generation failed. Please try again": "टोकन जनरेशन विफल। कृपया पुनः प्रयास करें", "Verifying": "सत्यापित किया जा रहा है", "Verified": "सत्यापित", "Use code": "कोड उपयोग करें", "for Patreon Auth, click Verify to unlock demo. Test at": 'Patreon प्रमाणीकरण के लिए, डेमो अनलॉक करने हेतु "सत्यापित करें" पर क्लिक करें। परीक्षण करें:', "Need help with Auth Token? See": "ऑथ टोकन में मदद चाहिए? देखें", "the guide": "मार्गदर्शिका", "Subscribe": "सदस्यता लें", "to get your Patreon Auth code and start downloading with ease!": "अपना Patreon ऑथ कोड प्राप्त करें और आसानी से डाउनलोड शुरू करें!", "Report bugs or request features:": "बग रिपोर्ट करें या फीचर का अनुरोध करें:", "Import": "आयात करें", "Importing...": "आयात हो रहा है...", "Supports JSON and ZIP formats": "JSON और ZIP प्रारूप समर्थित हैं", "Export": "निर्यात करें", "Export All Data": "सभी डेटा निर्यात करें", "Exporting...": "निर्यात हो रहा है...", "Clear": "साफ़ करें", "Filter by Batch": "बैच द्वारा फ़िल्टर करें", "Are you sure to clear all data in the database?": "क्या आप वाकई डेटाबेस का सारा डेटा साफ़ करना चाहते हैं?", "Delete Account Data": "खाता डेटा हटाएँ", "Are you sure you want to delete account data? This action cannot be undone": "क्या आप वाकई {{username}} का डेटा हटाना चाहते हैं? यह क्रिया वापस नहीं की जा सकती।", "Delete": "हटाएं", "Deleting...": "हटा रहे हैं...", "Overwrite": "ओवरराइट करें", "Overwrite Existing Data?": "मौजूदा डेटा ओवरराइट करें?", "Account data for @{{username}} already exists in the database. Do you want to overwrite it?": "@{{username}} के लिए खाता डेटा पहले से ही डेटाबेस में मौजूद है। क्या आप इसे ओवरराइट करना चाहते हैं?", "No accounts yet": "अभी तक कोई खाता नहीं", "Use Dashboard to fetch data.": "डेटा प्राप्त करने के लिए डैशबोर्ड का उपयोग करें।", "Something went wrong.": "कुछ गलत हो गया।", "Error:": "त्रुटि:", "Fetch": "प्राप्त करें", "Single": "एकल", "Batch": "बैच", "Auto Batch": "ऑटो बैच", "Timeline": "टाइमलाइन", "Media": "मीडिया", "Batch Size": "बैच आकार", "Starting Batch": "प्रारंभिक बैच", "Posts": "पोस्ट", "Tweets": "ट्वीट्स", "Replies": "जवाब", "All": "सभी", "Image": "छवि", "Video": "वीडियो", "GIF": "GIF", "Batch: {{page}}": "बैच: {{page}}", "Start": "प्रारंभ", "Stop": "रोकें", "Prev": "पिछला", "Next": "अगला", "Download Current": "वर्तमान डाउनलोड करें", "Download All": "सभी डाउनलोड करें", "Use Batch/Auto Batch if single fetch fails": "यदि एकल प्राप्ति विफल हो, तो बैच/ऑटो बैच का उपयोग करें", "Load from database": "डेटाबेस से लोड करें", "Load database": "डेटाबेस लोड करें", "Home": "होम", "End": "अंत", "Failed to load data": "डेटा लोड करना विफल", "Update": "अपडेट करें", "Updating...": "अपडेट हो रहा है...", "Update will fetch the latest data and overwrite the database. Continue?": "अपडेट नवीनतम डेटा प्राप्त करेगा और डेटाबेस को ओवरराइट करेगा। जारी रखें?", "Followers": "फॉलोवर्स", "Following": "फॉलो कर रहे हैं", "Joined": "जुड़े", "Open": "खोलें", "Preview": "पूर्वावलोकन", "View Database": "डेटाबेस देखें", "Converting...": "कन्वर्ट हो रहा है...", "Convert & Download": "कन्वर्ट करें और डाउनलोड करें" } };
  const id = { "common": { "Settings": "Pengaturan", "Theme": "Tema", "Change Theme": "Ubah Tema", "Language": "Bahasa", "Change Language": "Ubah Bahasa", "Date Time Format": "Format Tanggal Waktu", "Debug": "Debug", "Global Settings": "Pengaturan Global", "Version": "Versi", "Common Formats:": "Format Umum:", "Date Formats:": "Format Tanggal:", "Time Formats:": "Format Waktu:", "Combined Examples:": "Contoh Gabungan:", "Localized": "Terlokalisasi", "Reset Settings": "Reset Pengaturan", "Are you sure you want to reset settings to defaults?": "Apakah Anda yakin ingin mereset pengaturan ke default?", "Reset": "Reset", "Cancel": "Batal", "Chrome": "Chrome", "Userscript": "Userscript", "Website": "Website", "Patreon": "Patreon", "Dashboard": "Dasbor", "Database": "Database", "Auth": "Autentikasi", "Convert Animated GIFs": "Konversi GIF", "Convert GIFs (External)": "Konversi GIF (Eksternal)", "Concurrent Downloads": "Unduhan Bersamaan", "Use 10+ only with fast internet": "Gunakan 10+ hanya dengan internet cepat", "Smaller size, same quality": "Ukuran lebih kecil, kualitas sama", "Larger size, same quality": "Ukuran lebih besar, kualitas sama", "Back": "Kembali", "Please visit a profile page for auto-detection": "Silakan kunjungi halaman profil untuk deteksi otomatis", "Please configure authentication in the Auth tab first": "Silakan konfigurasi autentikasi di tab Auth terlebih dahulu", "Invalid username format": "Format username tidak valid", "Invalid auth token. Please check your settings.": "Token autentikasi tidak valid. Silakan periksa pengaturan Anda.", "Invalid Patreon auth. Please check your settings.": "Autentikasi Patreon tidak valid. Silakan periksa pengaturan Anda.", "Failed to fetch data": "Gagal mengambil data", "Failed to fetch data from all APIs": "Gagal mengambil data dari semua API", "Failed to verify auth from all APIs": "Gagal memverifikasi autentikasi dari semua API", "Failed to generate token from all APIs": "Gagal menghasilkan token dari semua API", "Generating token...": "Menghasilkan token...", "Abort": "Batalkan", "Network error occurred": "Terjadi kesalahan jaringan", "Request timeout - please try again": "Permintaan timeout - silakan coba lagi", "Failed to parse API response": "Gagal mem-parsing respons API", "Invalid API response structure": "Struktur respons API tidak valid", "Unknown error occurred": "Terjadi kesalahan yang tidak diketahui", "HTTP error! status: {{status}}": "Kesalahan HTTP! status: {{status}}", "Download already in progress": "Unduhan sudah berlangsung", "No media files found": "Tidak ada file media ditemukan", "Toggle visibility": "Alihkan visibilitas", "Close": "Tutup", "Converting GIFs...": "Mengonversi GIF...", "Downloading...": "Mengunduh...", "Download": "Unduh", "Fetching...": "Mengambil...", "Fetch All": "Ambil Semua", "Fetch Video": "Ambil Video", "Fetch Image": "Ambil Gambar", "Fetch GIF": "Ambil GIF", "Posts: {{posts}}": "Postingan: {{posts}}", "Media: {{media}}": "Media: {{media}}", "Current Media: {{current}} • Total Media: {{total}}": "Media Saat Ini: {{current}} • Total Media: {{total}}", "Failed to download media": "Gagal mengunduh media", "Demo mode is only available for @xbatchdemo": "Mode demo hanya tersedia untuk @xbatchdemo", "Auth Token": "Token Autentikasi", "Enter your auth token": "Masukkan token autentikasi Anda", "Your authentication token for API access": "Token autentikasi Anda untuk akses API", "Patreon Auth": "Autentikasi Patreon", "Enter your Patreon auth": "Masukkan autentikasi Patreon Anda", "Your Patreon authentication key": "Kunci autentikasi Patreon Anda", "Please enter Patreon auth first": "Silakan masukkan autentikasi Patreon terlebih dahulu", "Please verify Patreon auth first": "Silakan verifikasi autentikasi Patreon terlebih dahulu", "Patreon auth verified successfully": "Autentikasi Patreon berhasil diverifikasi", "Invalid Patreon auth": "Autentikasi Patreon tidak valid", "Verification failed. Please try again": "Verifikasi gagal. Silakan coba lagi", "Generating": "Menghasilkan", "Generate": "Hasilkan", "Verify": "Verifikasi", "Token generated successfully": "Token berhasil dihasilkan ({{current}}/{{total}})", "Failed to generate token": "Gagal menghasilkan token", "Token generation failed. Please try again": "Pembuatan token gagal. Silakan coba lagi", "Verifying": "Memverifikasi", "Verified": "Terverifikasi", "Use code": "Gunakan kode", "for Patreon Auth, click Verify to unlock demo. Test at": "untuk Autentikasi Patreon, klik Verifikasi untuk membuka demo. Tes di", "Need help with Auth Token? See": "Butuh bantuan dengan Token Autentikasi? Lihat", "the guide": "panduannya", "Subscribe": "Berlangganan", "to get your Patreon Auth code and start downloading with ease!": "untuk mendapatkan kode Autentikasi Patreon dan mulai mengunduh dengan mudah!", "Report bugs or request features:": "Laporkan bug atau minta fitur:", "Import": "Impor", "Importing...": "Mengimpor...", "Supports JSON and ZIP formats": "Mendukung format JSON dan ZIP", "Export": "Ekspor", "Export All Data": "Ekspor Semua Data", "Exporting...": "Mengekspor...", "Clear": "Hapus", "Filter by Batch": "Filter berdasarkan Batch", "Are you sure to clear all data in the database?": "Apakah Anda yakin ingin menghapus semua data di database?", "Delete Account Data": "Hapus Data Akun", "Are you sure you want to delete account data? This action cannot be undone": "Apakah Anda yakin ingin menghapus data {{username}}? Tindakan ini tidak dapat dibatalkan.", "Delete": "Hapus", "Deleting...": "Menghapus...", "Overwrite": "Timpa", "Overwrite Existing Data?": "Timpa Data yang Ada?", "Account data for @{{username}} already exists in the database. Do you want to overwrite it?": "Data akun untuk @{{username}} sudah ada di database. Apakah Anda ingin menimpanya?", "No accounts yet": "Belum ada akun", "Use Dashboard to fetch data.": "Gunakan Dasbor untuk mengambil data.", "Something went wrong.": "Terjadi kesalahan.", "Error:": "Kesalahan:", "Fetch": "Ambil", "Single": "Tunggal", "Batch": "Batch", "Auto Batch": "Batch Otomatis", "Timeline": "Timeline", "Media": "Media", "Batch Size": "Ukuran Batch", "Starting Batch": "Batch Awal", "Posts": "Postingan", "Tweets": "Tweet", "Replies": "Balasan", "All": "Semua", "Image": "Gambar", "Video": "Video", "GIF": "GIF", "Batch: {{page}}": "Batch: {{page}}", "Start": "Mulai", "Stop": "Berhenti", "Prev": "Sebelumnya", "Next": "Selanjutnya", "Download Current": "Unduh Saat Ini", "Download All": "Unduh Semua", "Use Batch/Auto Batch if single fetch fails": "Gunakan Batch/Batch Otomatis jika pengambilan tunggal gagal", "Load from database": "Muat dari database", "Load database": "Muat database", "Home": "Beranda", "End": "Akhir", "Failed to load data": "Gagal memuat data", "Update": "Perbarui", "Updating...": "Memperbarui...", "Update will fetch the latest data and overwrite the database. Continue?": "Pembaruan akan mengambil data terbaru dan menimpa database. Lanjutkan?", "Followers": "Pengikut", "Following": "Mengikuti", "Joined": "Bergabung", "Open": "Buka", "Preview": "Pratinjau", "View Database": "Lihat Database", "Converting...": "Mengonversi...", "Convert & Download": "Konversi & Unduh" } };
  const it = { "common": { "Settings": "Impostazioni", "Theme": "Tema", "Change Theme": "Cambia Tema", "Language": "Lingua", "Change Language": "Cambia Lingua", "Date Time Format": "Formato Data Ora", "Debug": "Debug", "Global Settings": "Impostazioni Globali", "Version": "Versione", "Common Formats:": "Formati Comuni:", "Date Formats:": "Formati Data:", "Time Formats:": "Formati Ora:", "Combined Examples:": "Esempi Combinati:", "Localized": "Localizzato", "Reset Settings": "Ripristina Impostazioni", "Are you sure you want to reset settings to defaults?": "Sei sicuro di voler ripristinare le impostazioni predefinite?", "Reset": "Ripristina", "Cancel": "Annulla", "Chrome": "Chrome", "Userscript": "Userscript", "Website": "Sito Web", "Patreon": "Patreon", "Dashboard": "Dashboard", "Database": "Database", "Auth": "Autenticazione", "Convert Animated GIFs": "Converti GIF", "Convert GIFs (External)": "Converti GIF (Esterno)", "Concurrent Downloads": "Download Simultanei", "Use 10+ only with fast internet": "Usa 10+ solo con internet veloce", "Smaller size, same quality": "Dimensione ridotta, stessa qualità", "Larger size, same quality": "Dimensione maggiore, stessa qualità", "Back": "Indietro", "Please visit a profile page for auto-detection": "Visita una pagina profilo per il rilevamento automatico", "Please configure authentication in the Auth tab first": "Configura prima l'autenticazione nella scheda Auth", "Invalid username format": "Formato nome utente non valido", "Invalid auth token. Please check your settings.": "Token di autenticazione non valido. Controlla le impostazioni.", "Invalid Patreon auth. Please check your settings.": "Autenticazione Patreon non valida. Controlla le impostazioni.", "Failed to fetch data": "Impossibile recuperare i dati", "Failed to fetch data from all APIs": "Impossibile recuperare i dati da tutte le API", "Failed to verify auth from all APIs": "Impossibile verificare l'autenticazione da tutte le API", "Failed to generate token from all APIs": "Impossibile generare il token da tutte le API", "Generating token...": "Generazione token...", "Abort": "Interrompi", "Network error occurred": "Si è verificato un errore di rete", "Request timeout - please try again": "Timeout della richiesta - riprova", "Failed to parse API response": "Impossibile analizzare la risposta API", "Invalid API response structure": "Struttura risposta API non valida", "Unknown error occurred": "Si è verificato un errore sconosciuto", "HTTP error! status: {{status}}": "Errore HTTP! stato: {{status}}", "Download already in progress": "Download già in corso", "No media files found": "Nessun file multimediale trovato", "Toggle visibility": "Attiva/disattiva visibilità", "Close": "Chiudi", "Converting GIFs...": "Conversione GIF...", "Downloading...": "Download in corso...", "Download": "Scarica", "Fetching...": "Recupero...", "Fetch All": "Recupera Tutto", "Fetch Video": "Recupera Video", "Fetch Image": "Recupera Immagine", "Fetch GIF": "Recupera GIF", "Posts: {{posts}}": "Post: {{posts}}", "Media: {{media}}": "Media: {{media}}", "Current Media: {{current}} • Total Media: {{total}}": "Media Corrente: {{current}} • Media Totale: {{total}}", "Failed to download media": "Impossibile scaricare i media", "Demo mode is only available for @xbatchdemo": "La modalità demo è disponibile solo per @xbatchdemo", "Auth Token": "Token di Autenticazione", "Enter your auth token": "Inserisci il tuo token di autenticazione", "Your authentication token for API access": "Il tuo token di autenticazione per l'accesso API", "Patreon Auth": "Autenticazione Patreon", "Enter your Patreon auth": "Inserisci la tua autenticazione Patreon", "Your Patreon authentication key": "La tua chiave di autenticazione Patreon", "Please enter Patreon auth first": "Inserisci prima l'autenticazione Patreon", "Please verify Patreon auth first": "Verifica prima l'autenticazione Patreon", "Patreon auth verified successfully": "Autenticazione Patreon verificata con successo", "Invalid Patreon auth": "Autenticazione Patreon non valida", "Verification failed. Please try again": "Verifica fallita. Riprova", "Generating": "Generazione", "Generate": "Genera", "Verify": "Verifica", "Token generated successfully": "Token generato con successo ({{current}}/{{total}})", "Failed to generate token": "Impossibile generare il token", "Token generation failed. Please try again": "Generazione token fallita. Riprova", "Verifying": "Verifica in corso", "Verified": "Verificato", "Use code": "Usa il codice", "for Patreon Auth, click Verify to unlock demo. Test at": "per l'autenticazione Patreon, clicca Verifica per sbloccare la demo. Testa su", "Need help with Auth Token? See": "Hai bisogno di aiuto con il Token di Autenticazione? Vedi", "the guide": "la guida", "Subscribe": "Abbonati", "to get your Patreon Auth code and start downloading with ease!": "per ottenere il tuo codice di autenticazione Patreon e iniziare a scaricare facilmente!", "Report bugs or request features:": "Segnala bug o richiedi funzionalità:", "Import": "Importa", "Importing...": "Importazione...", "Supports JSON and ZIP formats": "Supporta formati JSON e ZIP", "Export": "Esporta", "Export All Data": "Esporta Tutti i Dati", "Exporting...": "Esportazione...", "Clear": "Cancella", "Filter by Batch": "Filtra per Batch", "Are you sure to clear all data in the database?": "Sei sicuro di voler cancellare tutti i dati nel database?", "Delete Account Data": "Elimina Dati Account", "Are you sure you want to delete account data? This action cannot be undone": "Sei sicuro di voler eliminare i dati di {{username}}? Questa azione non può essere annullata.", "Delete": "Elimina", "Deleting...": "Eliminazione...", "Overwrite": "Sovrascrivi", "Overwrite Existing Data?": "Sovrascrivere i Dati Esistenti?", "Account data for @{{username}} already exists in the database. Do you want to overwrite it?": "I dati dell'account per @{{username}} esistono già nel database. Vuoi sovrascriverli?", "No accounts yet": "Nessun account ancora", "Use Dashboard to fetch data.": "Usa la Dashboard per recuperare i dati.", "Something went wrong.": "Qualcosa è andato storto.", "Error:": "Errore:", "Fetch": "Recupera", "Single": "Singolo", "Batch": "Batch", "Auto Batch": "Batch Automatico", "Timeline": "Timeline", "Media": "Media", "Batch Size": "Dimensione Batch", "Starting Batch": "Batch Iniziale", "Posts": "Post", "Tweets": "Tweet", "Replies": "Risposte", "All": "Tutto", "Image": "Immagine", "Video": "Video", "GIF": "GIF", "Batch: {{page}}": "Batch: {{page}}", "Start": "Avvia", "Stop": "Ferma", "Prev": "Prec", "Next": "Succ", "Download Current": "Scarica Corrente", "Download All": "Scarica Tutto", "Use Batch/Auto Batch if single fetch fails": "Usa Batch/Batch Automatico se il recupero singolo fallisce", "Load from database": "Carica dal database", "Load database": "Carica database", "Home": "Home", "End": "Fine", "Failed to load data": "Impossibile caricare i dati", "Update": "Aggiorna", "Updating...": "Aggiornamento...", "Update will fetch the latest data and overwrite the database. Continue?": "L'aggiornamento recupererà i dati più recenti e sovrascriverà il database. Continuare?", "Followers": "Follower", "Following": "Seguiti", "Joined": "Iscritto", "Open": "Apri", "Preview": "Anteprima", "View Database": "Visualizza Database", "Converting...": "Conversione...", "Convert & Download": "Converti e Scarica" } };
  const ja = { "common": { "Settings": "設定", "Theme": "テーマ", "Change Theme": "テーマを変更", "Language": "言語", "Change Language": "言語を変更", "Date Time Format": "日時フォーマット", "Debug": "デバッグ", "Global Settings": "グローバル設定", "Version": "バージョン", "Common Formats:": "一般的な形式:", "Date Formats:": "日付形式:", "Time Formats:": "時刻形式:", "Combined Examples:": "組み合わせ例:", "Localized": "ローカライズ済み", "Reset Settings": "設定のリセット", "Are you sure you want to reset settings to defaults?": "設定をデフォルトにリセットしてもよろしいですか?", "Reset": "リセット", "Cancel": "キャンセル", "Chrome": "Chrome", "Userscript": "ユーザースクリプト", "Website": "ウェブサイト", "Patreon": "Patreon", "Dashboard": "ダッシュボード", "Database": "データベース", "Auth": "認証", "Convert Animated GIFs": "GIFを変換", "Convert GIFs (External)": "GIFを変換(外部)", "Concurrent Downloads": "同時ダウンロード数", "Use 10+ only with fast internet": "10以上は高速なインターネット環境でのみ使用してください", "Smaller size, same quality": "サイズは小さく、品質は同じです", "Larger size, same quality": "サイズは大きく、品質は同じです", "Back": "戻る", "Please visit a profile page for auto-detection": "プロフィールページを訪問して自動検出してください", "Please configure authentication in the Auth tab first": "最初に認証タブで認証を設定してください", "Invalid username format": "無効なユーザー名形式", "Invalid auth token. Please check your settings.": "無効な認証トークンです。設定を確認してください。", "Invalid Patreon auth. Please check your settings.": "無効なPatreon認証です。設定を確認してください。", "Failed to fetch data": "データ取得に失敗しました", "Failed to fetch data from all APIs": "すべてのAPIからデータ取得に失敗しました", "Failed to verify auth from all APIs": "すべてのAPIで認証の検証に失敗しました", "Failed to generate token from all APIs": "すべてのAPIでトークン生成に失敗しました", "Generating token...": "トークン生成中...", "Abort": "中止", "Network error occurred": "ネットワークエラーが発生しました", "Request timeout - please try again": "リクエストがタイムアウトしました。もう一度お試しください", "Failed to parse API response": "API 応答の解析に失敗しました", "Invalid API response structure": "無効な API 応答構造です", "Unknown error occurred": "不明なエラーが発生しました", "HTTP error! status: {{status}}": "HTTP エラー! ステータス: {{status}}", "Download already in progress": "ダウンロードはすでに進行中です", "No media files found": "メディアファイルが見つかりません", "Toggle visibility": "表示/非表示を切り替え", "Close": "閉じる", "Converting GIFs...": "GIF変換中...", "Downloading...": "ダウンロード中...", "Download": "ダウンロード", "Fetching...": "取得中...", "Fetch All": "すべて取得", "Fetch Video": "ビデオを取得", "Fetch Image": "画像を取得", "Fetch GIF": "GIFを取得", "Posts: {{posts}}": "投稿: {{posts}}", "Media: {{media}}": "メディア: {{media}}", "Current Media: {{current}} • Total Media: {{total}}": "現在のメディア: {{current}} • 合計メディア: {{total}}", "Failed to download media": "メディアダウンロードに失敗しました", "Demo mode is only available for @xbatchdemo": "デモモードは @xbatchdemo のみ利用できます", "Auth Token": "認証トークン", "Enter your auth token": "認証トークンを入力", "Your authentication token for API access": "APIアクセス用の認証トークン", "Patreon Auth": "Patreon認証", "Enter your Patreon auth": "Patreon認証を入力", "Your Patreon authentication key": "Patreon認証キー", "Please enter Patreon auth first": "最初にPatreon認証を入力してください", "Please verify Patreon auth first": "最初にPatreon認証を確認してください", "Patreon auth verified successfully": "Patreon認証が正常に確認されました", "Invalid Patreon auth": "無効なPatreon認証", "Verification failed. Please try again": "検証に失敗しました。再試行してください", "Generating": "生成中", "Generate": "生成", "Verify": "確認", "Token generated successfully": "トークンが正常に生成されました ({{current}}/{{total}})", "Failed to generate token": "トークン生成に失敗しました", "Token generation failed. Please try again": "トークン生成に失敗しました。再試行してください", "Verifying": "確認中", "Verified": "確認済み", "Use code": "コードを使用", "for Patreon Auth, click Verify to unlock demo. Test at": "Patreon 認証用。デモを有効にするには「確認」をクリック。テスト先:", "Need help with Auth Token? See": "認証トークンでお困りですか?こちらをご覧ください:", "the guide": "ガイド", "Subscribe": "購読する", "to get your Patreon Auth code and start downloading with ease!": "Patreon 認証コードを入手して、簡単にダウンロードを開始しましょう!", "Report bugs or request features:": "バグ報告や機能リクエストはこちら:", "Import": "インポート", "Importing...": "インポート中...", "Supports JSON and ZIP formats": "JSON および ZIP 形式をサポート", "Export": "エクスポート", "Export All Data": "すべてのデータをエクスポート", "Exporting...": "エクスポート中...", "Clear": "クリア", "Filter by Batch": "バッチでフィルター", "Are you sure to clear all data in the database?": "データベースのすべてのデータをクリアしてもよろしいですか?", "Delete Account Data": "アカウントデータの削除", "Are you sure you want to delete account data? This action cannot be undone": "{{username}}のデータを削除してもよろしいですか?この操作は元に戻せません。", "Delete": "削除", "Deleting...": "削除中...", "Overwrite": "上書き", "Overwrite Existing Data?": "既存のデータを上書きしますか?", "Account data for @{{username}} already exists in the database. Do you want to overwrite it?": "@{{username}} のアカウントデータは既にデータベースに存在します。上書きしますか?", "No accounts yet": "まだアカウントがありません", "Use Dashboard to fetch data.": "ダッシュボードを使用してデータを取得してください。", "Something went wrong.": "何かが間違っています。", "Error:": "エラー:", "Fetch": "取得", "Single": "シングル", "Batch": "バッチ", "Auto Batch": "自動バッチ", "Timeline": "タイムライン", "Media": "メディア", "Batch Size": "バッチサイズ", "Starting Batch": "開始バッチ", "Posts": "投稿", "Tweets": "ツイート", "Replies": "返信", "All": "すべて", "Image": "画像", "Video": "ビデオ", "GIF": "GIF", "Batch: {{page}}": "バッチ: {{page}}", "Start": "開始", "Stop": "停止", "Prev": "前へ", "Next": "次へ", "Download Current": "現在をダウンロード", "Download All": "すべてダウンロード", "Use Batch/Auto Batch if single fetch fails": "単一取得が失敗した場合はバッチ/自動バッチを使用してください", "Load from database": "データベースから読み込む", "Load database": "データベースを読み込む", "Home": "先頭", "End": "末尾", "Failed to load data": "データの読み込みに失敗しました", "Update": "更新", "Updating...": "更新中...", "Update will fetch the latest data and overwrite the database. Continue?": "更新により最新データを取得し、データベースを上書きします。続行しますか?", "Followers": "フォロワー", "Following": "フォロー中", "Joined": "参加日", "Open": "開く", "Preview": "プレビュー", "View Database": "データベースを表示", "Converting...": "変換中...", "Convert & Download": "変換してダウンロード" } };
  const ko = { "common": { "Settings": "설정", "Theme": "테마", "Change Theme": "테마 변경", "Language": "언어", "Change Language": "언어 변경", "Date Time Format": "날짜 시간 형식", "Debug": "디버그", "Global Settings": "전역 설정", "Version": "버전", "Common Formats:": "일반 형식:", "Date Formats:": "날짜 형식:", "Time Formats:": "시간 형식:", "Combined Examples:": "결합 예시:", "Localized": "현지화됨", "Reset Settings": "설정 재설정", "Are you sure you want to reset settings to defaults?": "설정을 기본값으로 재설정하시겠습니까?", "Reset": "재설정", "Cancel": "취소", "Chrome": "Chrome", "Userscript": "유저스크립트", "Website": "웹사이트", "Patreon": "Patreon", "Dashboard": "대시보드", "Database": "데이터베이스", "Auth": "인증", "Convert Animated GIFs": "GIF 변환", "Convert GIFs (External)": "GIF 변환 (외부)", "Concurrent Downloads": "동시 다운로드", "Use 10+ only with fast internet": "빠른 인터넷에서만 10+를 사용하세요", "Smaller size, same quality": "더 작은 용량, 동일한 품질", "Larger size, same quality": "더 큰 용량, 동일한 품질", "Back": "뒤로", "Please visit a profile page for auto-detection": "자동 감지를 위해 프로필 페이지를 방문해주세요", "Please configure authentication in the Auth tab first": "먼저 Auth 탭에서 인증을 구성해주세요", "Invalid username format": "잘못된 사용자명 형식", "Invalid auth token. Please check your settings.": "잘못된 인증 토큰입니다. 설정을 확인해주세요.", "Invalid Patreon auth. Please check your settings.": "잘못된 Patreon 인증입니다. 설정을 확인해주세요.", "Failed to fetch data": "데이터 가져오기 실패", "Failed to fetch data from all APIs": "모든 API에서 데이터를 가져오지 못했습니다", "Failed to verify auth from all APIs": "모든 API에서 인증 확인에 실패했습니다", "Failed to generate token from all APIs": "모든 API에서 토큰 생성에 실패했습니다", "Generating token...": "토큰 생성 중...", "Abort": "중단", "Network error occurred": "네트워크 오류가 발생했습니다", "Request timeout - please try again": "요청 시간 초과 - 다시 시도해 주세요", "Failed to parse API response": "API 응답을 파싱하지 못했습니다", "Invalid API response structure": "잘못된 API 응답 구조입니다", "Unknown error occurred": "알 수 없는 오류가 발생했습니다", "HTTP error! status: {{status}}": "HTTP 오류! 상태: {{status}}", "Download already in progress": "다운로드가 이미 진행 중입니다", "No media files found": "미디어 파일을 찾을 수 없습니다", "Toggle visibility": "표시/숨기기", "Close": "닫기", "Converting GIFs...": "GIF 변환 중...", "Downloading...": "다운로드 중...", "Download": "다운로드", "Fetching...": "가져오는 중...", "Fetch All": "전체 가져오기", "Fetch Video": "비디오 가져오기", "Fetch Image": "이미지 가져오기", "Fetch GIF": "GIF 가져오기", "Posts: {{posts}}": "게시물: {{posts}}", "Media: {{media}}": "미디어: {{media}}", "Current Media: {{current}} • Total Media: {{total}}": "현재 미디어: {{current}} • 전체 미디어: {{total}}", "Failed to download media": "미디어 다운로드 실패", "Demo mode is only available for @xbatchdemo": "데모 모드는 @xbatchdemo에게만 제공됩니다", "Auth Token": "인증 토큰", "Enter your auth token": "인증 토큰을 입력하세요", "Your authentication token for API access": "API 접근을 위한 인증 토큰", "Patreon Auth": "Patreon 인증", "Enter your Patreon auth": "Patreon 인증을 입력하세요", "Your Patreon authentication key": "Patreon 인증 키", "Please enter Patreon auth first": "먼저 Patreon 인증을 입력해주세요", "Please verify Patreon auth first": "먼저 Patreon 인증을 확인해주세요", "Patreon auth verified successfully": "Patreon 인증이 성공적으로 확인되었습니다", "Invalid Patreon auth": "잘못된 Patreon 인증", "Verification failed. Please try again": "확인 실패. 다시 시도해주세요", "Generating": "생성 중", "Generate": "생성", "Verify": "확인", "Token generated successfully": "토큰이 성공적으로 생성되었습니다 ({{current}}/{{total}})", "Failed to generate token": "토큰 생성 실패", "Token generation failed. Please try again": "토큰 생성 실패. 다시 시도해주세요", "Verifying": "확인 중", "Verified": "확인됨", "Use code": "코드를 사용", "for Patreon Auth, click Verify to unlock demo. Test at": "Patreon 인증용입니다. 데모를 해제하려면 ‘확인’을 클릭하세요. 테스트:", "Need help with Auth Token? See": "인증 토큰이 필요하신가요? 다음을 참조하세요:", "the guide": "가이드", "Subscribe": "구독하기", "to get your Patreon Auth code and start downloading with ease!": "Patreon 인증 코드를 받아 손쉽게 다운로드를 시작하세요!", "Report bugs or request features:": "버그 신고 또는 기능 요청:", "Import": "가져오기", "Importing...": "가져오는 중...", "Supports JSON and ZIP formats": "JSON 및 ZIP 형식 지원", "Export": "내보내기", "Export All Data": "모든 데이터 내보내기", "Exporting...": "내보내는 중...", "Clear": "삭제", "Filter by Batch": "배치별 필터", "Are you sure to clear all data in the database?": "데이터베이스의 모든 데이터를 삭제하시겠습니까?", "Delete Account Data": "계정 데이터 삭제", "Are you sure you want to delete account data? This action cannot be undone": "{{username}}의 데이터를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.", "Delete": "삭제", "Deleting...": "삭제 중...", "Overwrite": "덮어쓰기", "Overwrite Existing Data?": "기존 데이터를 덮어쓰시겠습니까?", "Account data for @{{username}} already exists in the database. Do you want to overwrite it?": "@{{username}}의 계정 데이터가 이미 데이터베이스에 존재합니다. 덮어쓰시겠습니까?", "No accounts yet": "아직 계정이 없습니다", "Use Dashboard to fetch data.": "대시보드를 사용하여 데이터를 가져와주세요.", "Something went wrong.": "문제가 발생했습니다.", "Error:": "오류:", "Fetch": "가져오기", "Single": "단일", "Batch": "배치", "Auto Batch": "자동 배치", "Timeline": "타임라인", "Media": "미디어", "Batch Size": "배치 크기", "Starting Batch": "시작 배치", "Posts": "게시물", "Tweets": "트윗", "Replies": "답글", "All": "전체", "Image": "이미지", "Video": "비디오", "GIF": "GIF", "Batch: {{page}}": "배치: {{page}}", "Start": "시작", "Stop": "중지", "Prev": "이전", "Next": "다음", "Download Current": "현재 다운로드", "Download All": "모두 다운로드", "Use Batch/Auto Batch if single fetch fails": "단일 가져오기가 실패하면 배치/자동 배치를 사용하세요", "Load from database": "데이터베이스에서 불러오기", "Load database": "데이터베이스 불러오기", "Home": "처음", "End": "끝", "Failed to load data": "데이터 불러오기 실패", "Update": "업데이트", "Updating...": "업데이트 중...", "Update will fetch the latest data and overwrite the database. Continue?": "업데이트는 최신 데이터를 가져와 데이터베이스를 덮어씁니다. 계속하시겠습니까?", "Followers": "팔로워", "Following": "팔로잉", "Joined": "가입일", "Open": "열기", "Preview": "미리보기", "View Database": "데이터베이스 보기", "Converting...": "변환 중...", "Convert & Download": "변환 및 다운로드" } };
  const nl = { "common": { "Settings": "Instellingen", "Theme": "Thema", "Change Theme": "Verander Thema", "Language": "Taal", "Change Language": "Verander Taal", "Date Time Format": "Datum Tijd Formaat", "Debug": "Debug", "Global Settings": "Algemene Instellingen", "Version": "Versie", "Common Formats:": "Veelgebruikte Formaten:", "Date Formats:": "Datumformaten:", "Time Formats:": "Tijdformaten:", "Combined Examples:": "Gecombineerde Voorbeelden:", "Localized": "Gelokaliseerd", "Reset Settings": "Reset Instellingen", "Are you sure you want to reset settings to defaults?": "Weet je zeker dat je de instellingen wilt resetten naar standaard?", "Reset": "Reset", "Cancel": "Annuleren", "Chrome": "Chrome", "Userscript": "Userscript", "Website": "Website", "Patreon": "Patreon", "Dashboard": "Dashboard", "Database": "Database", "Auth": "Authenticatie", "Convert Animated GIFs": "Converteer GIF's", "Convert GIFs (External)": "Converteer GIF's (Extern)", "Concurrent Downloads": "Gelijktijdige Downloads", "Use 10+ only with fast internet": "Gebruik 10+ alleen met snel internet", "Smaller size, same quality": "Kleinere grootte, zelfde kwaliteit", "Larger size, same quality": "Grotere grootte, zelfde kwaliteit", "Back": "Terug", "Please visit a profile page for auto-detection": "Bezoek een profielpagina voor automatische detectie", "Please configure authentication in the Auth tab first": "Configureer eerst de authenticatie in het Auth-tabblad", "Invalid username format": "Ongeldige gebruikersnaam", "Invalid auth token. Please check your settings.": "Ongeldig authenticatietoken. Controleer je instellingen.", "Invalid Patreon auth. Please check your settings.": "Ongeldige Patreon-authenticatie. Controleer je instellingen.", "Failed to fetch data": "Kan gegevens niet ophalen", "Failed to fetch data from all APIs": "Kan gegevens niet ophalen van alle API's", "Failed to verify auth from all APIs": "Kan authenticatie niet verifiëren van alle API's", "Failed to generate token from all APIs": "Kan token niet genereren van alle API's", "Generating token...": "Token genereren...", "Abort": "Afbreken", "Network error occurred": "Netwerkfout opgetreden", "Request timeout - please try again": "Time-out verzoek - probeer opnieuw", "Failed to parse API response": "Kan API-reactie niet parseren", "Invalid API response structure": "Ongeldige API-reactiestructuur", "Unknown error occurred": "Onbekende fout opgetreden", "HTTP error! status: {{status}}": "HTTP-fout! status: {{status}}", "Download already in progress": "Download al bezig", "No media files found": "Geen mediabestanden gevonden", "Toggle visibility": "Schakel zichtbaarheid", "Close": "Sluiten", "Converting GIFs...": "GIF's converteren...", "Downloading...": "Downloaden...", "Download": "Downloaden", "Fetching...": "Ophalen...", "Fetch All": "Alles Ophalen", "Fetch Video": "Video Ophalen", "Fetch Image": "Afbeelding Ophalen", "Fetch GIF": "GIF Ophalen", "Posts: {{posts}}": "Berichten: {{posts}}", "Media: {{media}}": "Media: {{media}}", "Current Media: {{current}} • Total Media: {{total}}": "Huidige Media: {{current}} • Totale Media: {{total}}", "Failed to download media": "Kan media niet downloaden", "Demo mode is only available for @xbatchdemo": "Demomodus is alleen beschikbaar voor @xbatchdemo", "Auth Token": "Authenticatietoken", "Enter your auth token": "Voer je authenticatietoken in", "Your authentication token for API access": "Je authenticatietoken voor API-toegang", "Patreon Auth": "Patreon Authenticatie", "Enter your Patreon auth": "Voer je Patreon-authenticatie in", "Your Patreon authentication key": "Je Patreon-authenticatiesleutel", "Please enter Patreon auth first": "Voer eerst Patreon-authenticatie in", "Please verify Patreon auth first": "Verifieer eerst Patreon-authenticatie", "Patreon auth verified successfully": "Patreon-authenticatie succesvol geverifieerd", "Invalid Patreon auth": "Ongeldige Patreon-authenticatie", "Verification failed. Please try again": "Verificatie mislukt. Probeer opnieuw", "Generating": "Genereren", "Generate": "Genereren", "Verify": "Verifiëren", "Token generated successfully": "Token succesvol gegenereerd ({{current}}/{{total}})", "Failed to generate token": "Kan token niet genereren", "Token generation failed. Please try again": "Tokengeneratie mislukt. Probeer opnieuw", "Verifying": "Verifiëren", "Verified": "Geverifieerd", "Use code": "Gebruik code", "for Patreon Auth, click Verify to unlock demo. Test at": "voor Patreon Auth, klik op Verifiëren om demo te ontgrendelen. Test op", "Need help with Auth Token? See": "Hulp nodig met Authenticatietoken? Zie", "the guide": "de handleiding", "Subscribe": "Abonneren", "to get your Patreon Auth code and start downloading with ease!": "om je Patreon Auth-code te krijgen en gemakkelijk te beginnen met downloaden!", "Report bugs or request features:": "Rapporteer bugs of vraag functies aan:", "Import": "Importeren", "Importing...": "Importeren...", "Supports JSON and ZIP formats": "Ondersteunt JSON en ZIP formaten", "Export": "Exporteren", "Export All Data": "Alle Gegevens Exporteren", "Exporting...": "Exporteren...", "Clear": "Wissen", "Filter by Batch": "Filter op Batch", "Are you sure to clear all data in the database?": "Weet je zeker dat je alle gegevens in de database wilt wissen?", "Delete Account Data": "Accountgegevens Verwijderen", "Are you sure you want to delete account data? This action cannot be undone": "Weet je zeker dat je de gegevens van {{username}} wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.", "Delete": "Verwijderen", "Deleting...": "Verwijderen...", "Overwrite": "Overschrijven", "Overwrite Existing Data?": "Bestaande Gegevens Overschrijven?", "Account data for @{{username}} already exists in the database. Do you want to overwrite it?": "Accountgegevens voor @{{username}} bestaan al in de database. Wil je deze overschrijven?", "No accounts yet": "Nog geen accounts", "Use Dashboard to fetch data.": "Gebruik Dashboard om gegevens op te halen.", "Something went wrong.": "Er is iets misgegaan.", "Error:": "Fout:", "Fetch": "Ophalen", "Single": "Enkel", "Batch": "Batch", "Auto Batch": "Auto Batch", "Timeline": "Tijdlijn", "Media": "Media", "Batch Size": "Batch Grootte", "Starting Batch": "Start Batch", "Posts": "Berichten", "Tweets": "Tweets", "Replies": "Antwoorden", "All": "Alles", "Image": "Afbeelding", "Video": "Video", "GIF": "GIF", "Batch: {{page}}": "Batch: {{page}}", "Start": "Start", "Stop": "Stop", "Prev": "Vorige", "Next": "Volgende", "Download Current": "Huidige Downloaden", "Download All": "Alles Downloaden", "Use Batch/Auto Batch if single fetch fails": "Gebruik Batch/Auto Batch als enkele ophaal mislukt", "Load from database": "Laden vanuit database", "Load database": "Database laden", "Home": "Home", "End": "Einde", "Failed to load data": "Kan gegevens niet laden", "Update": "Bijwerken", "Updating...": "Bijwerken...", "Update will fetch the latest data and overwrite the database. Continue?": "Bijwerken haalt de laatste gegevens op en overschrijft de database. Doorgaan?", "Followers": "Volgers", "Following": "Volgend", "Joined": "Lid sinds", "Open": "Openen", "Preview": "Voorbeeld", "View Database": "Database Bekijken", "Converting...": "Converteren...", "Convert & Download": "Converteren & Downloaden" } };
  const pt = { "common": { "Settings": "Configurações", "Theme": "Tema", "Change Theme": "Alterar Tema", "Language": "Idioma", "Change Language": "Alterar Idioma", "Date Time Format": "Formato de Data e Hora", "Debug": "Depurar", "Global Settings": "Configurações Globais", "Version": "Versão", "Common Formats:": "Formatos Comuns:", "Date Formats:": "Formatos de Data:", "Time Formats:": "Formatos de Hora:", "Combined Examples:": "Exemplos Combinados:", "Localized": "Localizado", "Reset Settings": "Redefinir configurações", "Are you sure you want to reset settings to defaults?": "Tem certeza de que deseja redefinir as configurações para o padrão?", "Reset": "Redefinir", "Cancel": "Cancelar", "Chrome": "Chrome", "Userscript": "Script de usuário", "Website": "Site", "Patreon": "Patreon", "Dashboard": "Painel", "Database": "Banco de Dados", "Auth": "Autenticação", "Convert Animated GIFs": "Converter GIFs", "Convert GIFs (External)": "Converter GIFs (Externo)", "Concurrent Downloads": "Downloads simultâneos", "Use 10+ only with fast internet": "Use 10+ apenas com internet rápida", "Smaller size, same quality": "Tamanho menor, mesma qualidade", "Larger size, same quality": "Tamanho maior, mesma qualidade", "Back": "Voltar", "Please visit a profile page for auto-detection": "Visite uma página de perfil para detecção automática", "Please configure authentication in the Auth tab first": "Configure a autenticação na aba Auth primeiro", "Invalid username format": "Formato de nome de usuário inválido", "Invalid auth token. Please check your settings.": "Token de autenticação inválido. Verifique suas configurações.", "Invalid Patreon auth. Please check your settings.": "Autenticação do Patreon inválida. Verifique suas configurações.", "Failed to fetch data": "Falha ao buscar os dados", "Failed to fetch data from all APIs": "Falha ao buscar os dados em todas as APIs", "Failed to verify auth from all APIs": "Falha ao verificar a autenticação em todas as APIs", "Failed to generate token from all APIs": "Falha ao gerar o token em todas as APIs", "Generating token...": "Gerando token...", "Abort": "Abortar", "Network error occurred": "Ocorreu um erro de rede", "Request timeout - please try again": "Tempo de requisição esgotado - tente novamente", "Failed to parse API response": "Falha ao analisar a resposta da API", "Invalid API response structure": "Estrutura de resposta da API inválida", "Unknown error occurred": "Ocorreu um erro desconhecido", "HTTP error! status: {{status}}": "Erro HTTP! status: {{status}}", "Download already in progress": "Download já em andamento", "No media files found": "Nenhum arquivo de mídia encontrado", "Toggle visibility": "Mostrar/ocultar", "Close": "Fechar", "Converting GIFs...": "Convertendo GIFs...", "Downloading...": "Baixando...", "Download": "Baixar", "Fetching...": "Obtendo...", "Fetch All": "Obter tudo", "Fetch Video": "Obter vídeo", "Fetch Image": "Obter imagem", "Fetch GIF": "Obter GIF", "Posts: {{posts}}": "Publicações: {{posts}}", "Media: {{media}}": "Mídia: {{media}}", "Current Media: {{current}} • Total Media: {{total}}": "Mídia atual: {{current}} • Mídia total: {{total}}", "Failed to download media": "Falha ao baixar a mídia", "Demo mode is only available for @xbatchdemo": "O modo demonstração está disponível apenas para @xbatchdemo", "Auth Token": "Token de autenticação", "Enter your auth token": "Insira seu token de autenticação", "Your authentication token for API access": "Seu token de autenticação para acesso à API", "Patreon Auth": "Autenticação do Patreon", "Enter your Patreon auth": "Insira sua autenticação do Patreon", "Your Patreon authentication key": "Sua chave de autenticação do Patreon", "Please enter Patreon auth first": "Insira primeiro a autenticação do Patreon", "Please verify Patreon auth first": "Verifique primeiro a autenticação do Patreon", "Patreon auth verified successfully": "Autenticação do Patreon verificada com sucesso", "Invalid Patreon auth": "Autenticação do Patreon inválida", "Verification failed. Please try again": "Falha na verificação. Tente novamente", "Generating": "Gerando", "Generate": "Gerar", "Verify": "Verificar", "Token generated successfully": "Token gerado com sucesso ({{current}}/{{total}})", "Failed to generate token": "Falha ao gerar o token", "Token generation failed. Please try again": "Falha na geração do token. Tente novamente", "Verifying": "Verificando", "Verified": "Verificado", "Use code": "Use o código", "for Patreon Auth, click Verify to unlock demo. Test at": 'para Autenticação do Patreon, clique em "Verificar" para desbloquear a demonstração. Teste em', "Need help with Auth Token? See": "Precisa de ajuda com o token de autenticação? Veja", "the guide": "o guia", "Subscribe": "Assine", "to get your Patreon Auth code and start downloading with ease!": "para obter seu código de autenticação do Patreon e começar a baixar com facilidade!", "Report bugs or request features:": "Relate bugs ou solicite recursos:", "Import": "Importar", "Importing...": "Importando...", "Supports JSON and ZIP formats": "Suporta formatos JSON e ZIP", "Export": "Exportar", "Export All Data": "Exportar todos os dados", "Exporting...": "Exportando...", "Clear": "Limpar", "Filter by Batch": "Filtrar por lote", "Are you sure to clear all data in the database?": "Tem certeza de que deseja limpar todos os dados do banco de dados?", "Delete Account Data": "Excluir dados da conta", "Are you sure you want to delete account data? This action cannot be undone": "Tem certeza de que deseja excluir os dados de {{username}}? Esta ação não pode ser desfeita.", "Delete": "Excluir", "Deleting...": "Excluindo...", "Overwrite": "Substituir", "Overwrite Existing Data?": "Substituir dados existentes?", "Account data for @{{username}} already exists in the database. Do you want to overwrite it?": "Os dados da conta @{{username}} já existem no banco de dados. Deseja substituí-los?", "No accounts yet": "Ainda não há contas", "Use Dashboard to fetch data.": "Use o Painel para buscar os dados.", "Something went wrong.": "Algo deu errado.", "Error:": "Erro:", "Fetch": "Buscar", "Single": "Único", "Batch": "Lote", "Auto Batch": "Lote automático", "Timeline": "Linha do tempo", "Media": "Mídia", "Batch Size": "Tamanho do lote", "Starting Batch": "Lote inicial", "Posts": "Publicações", "Tweets": "Tweets", "Replies": "Respostas", "All": "Tudo", "Image": "Imagem", "Video": "Vídeo", "GIF": "GIF", "Batch: {{page}}": "Lote: {{page}}", "Start": "Iniciar", "Stop": "Parar", "Prev": "Anterior", "Next": "Próximo", "Download Current": "Baixar atual", "Download All": "Baixar tudo", "Use Batch/Auto Batch if single fetch fails": "Use Lote/Lote automático se a busca única falhar", "Load from database": "Carregar do banco de dados", "Load database": "Carregar banco de dados", "Home": "Início", "End": "Fim", "Failed to load data": "Falha ao carregar os dados", "Update": "Atualizar", "Updating...": "Atualizando...", "Update will fetch the latest data and overwrite the database. Continue?": "A atualização buscará os dados mais recentes e sobrescreverá o banco de dados. Continuar?", "Followers": "Seguidores", "Following": "Seguindo", "Joined": "Entrou em", "Open": "Abrir", "Preview": "Visualizar", "View Database": "Ver banco de dados", "Converting...": "Convertendo...", "Convert & Download": "Converter e baixar" } };
  const ru = { "common": { "Settings": "Настройки", "Theme": "Тема", "Change Theme": "Изменить тему", "Language": "Язык", "Change Language": "Изменить язык", "Date Time Format": "Формат даты и времени", "Debug": "Отладка", "Global Settings": "Глобальные настройки", "Version": "Версия", "Common Formats:": "Общие форматы:", "Date Formats:": "Форматы дат:", "Time Formats:": "Форматы времени:", "Combined Examples:": "Комбинированные примеры:", "Localized": "Локализованный", "Reset Settings": "Сбросить настройки", "Are you sure you want to reset settings to defaults?": "Вы уверены, что хотите сбросить настройки к значениям по умолчанию?", "Reset": "Сброс", "Cancel": "Отмена", "Chrome": "Chrome", "Userscript": "Пользовательский скрипт", "Website": "Сайт", "Patreon": "Patreon", "Dashboard": "Панель управления", "Database": "База данных", "Auth": "Аутентификация", "Convert Animated GIFs": "Конвертировать GIF", "Convert GIFs (External)": "Конвертировать GIF (внешний)", "Concurrent Downloads": "Одновременные загрузки", "Use 10+ only with fast internet": "Используйте 10+ только при быстром интернете", "Smaller size, same quality": "Меньший размер, то же качество", "Larger size, same quality": "Больший размер, то же качество", "Back": "Назад", "Please visit a profile page for auto-detection": "Посетите страницу профиля для автоопределения", "Please configure authentication in the Auth tab first": "Сначала настройте аутентификацию на вкладке Auth", "Invalid username format": "Недопустимый формат имени пользователя", "Invalid auth token. Please check your settings.": "Недействительный токен аутентификации. Проверьте настройки.", "Invalid Patreon auth. Please check your settings.": "Недействительная авторизация Patreon. Проверьте настройки.", "Failed to fetch data": "Не удалось получить данные", "Failed to fetch data from all APIs": "Не удалось получить данные со всех API", "Failed to verify auth from all APIs": "Не удалось проверить авторизацию через все API", "Failed to generate token from all APIs": "Не удалось сгенерировать токен через все API", "Generating token...": "Генерация токена...", "Abort": "Отменить", "Network error occurred": "Произошла сетевая ошибка", "Request timeout - please try again": "Время ожидания запроса истекло — попробуйте снова", "Failed to parse API response": "Не удалось разобрать ответ API", "Invalid API response structure": "Недопустимая структура ответа API", "Unknown error occurred": "Произошла неизвестная ошибка", "HTTP error! status: {{status}}": "Ошибка HTTP! статус: {{status}}", "Download already in progress": "Загрузка уже выполняется", "No media files found": "Медиафайлы не найдены", "Toggle visibility": "Показать/скрыть", "Close": "Закрыть", "Converting GIFs...": "Конвертация GIF...", "Downloading...": "Загрузка...", "Download": "Скачать", "Fetching...": "Получение...", "Fetch All": "Получить всё", "Fetch Video": "Получить видео", "Fetch Image": "Получить изображение", "Fetch GIF": "Получить GIF", "Posts: {{posts}}": "Публикации: {{posts}}", "Media: {{media}}": "Медиа: {{media}}", "Current Media: {{current}} • Total Media: {{total}}": "Текущая медиа: {{current}} • Всего медиа: {{total}}", "Failed to download media": "Не удалось скачать медиа", "Demo mode is only available for @xbatchdemo": "Демо-режим доступен только для @xbatchdemo", "Auth Token": "Токен аутентификации", "Enter your auth token": "Введите токен аутентификации", "Your authentication token for API access": "Ваш токен аутентификации для доступа к API", "Patreon Auth": "Авторизация Patreon", "Enter your Patreon auth": "Введите авторизацию Patreon", "Your Patreon authentication key": "Ваш ключ аутентификации Patreon", "Please enter Patreon auth first": "Сначала введите авторизацию Patreon", "Please verify Patreon auth first": "Сначала подтвердите авторизацию Patreon", "Patreon auth verified successfully": "Авторизация Patreon успешно проверена", "Invalid Patreon auth": "Недействительная авторизация Patreon", "Verification failed. Please try again": "Не удалось выполнить проверку. Попробуйте ещё раз", "Generating": "Генерация...", "Generate": "Создать", "Verify": "Проверить", "Token generated successfully": "Токен успешно сгенерирован ({{current}}/{{total}})", "Failed to generate token": "Не удалось сгенерировать токен", "Token generation failed. Please try again": "Не удалось сгенерировать токен. Попробуйте ещё раз", "Verifying": "Проверка...", "Verified": "Проверено", "Use code": "Используйте код", "for Patreon Auth, click Verify to unlock demo. Test at": "для аутентификации Patreon, нажмите «Проверить», чтобы разблокировать демо. Тест:", "Need help with Auth Token? See": "Нужна помощь с токеном аутентификации? См.", "the guide": "руководство", "Subscribe": "Подписаться", "to get your Patreon Auth code and start downloading with ease!": "чтобы получить код аутентификации Patreon и с лёгкостью начать скачивание!", "Report bugs or request features:": "Сообщить об ошибках или запросить функции:", "Import": "Импорт", "Importing...": "Импорт...", "Supports JSON and ZIP formats": "Поддерживает форматы JSON и ZIP", "Export": "Экспорт", "Export All Data": "Экспортировать все данные", "Exporting...": "Экспорт...", "Clear": "Очистить", "Filter by Batch": "Фильтр по пакетам", "Are you sure to clear all data in the database?": "Вы уверены, что хотите очистить все данные в базе данных?", "Delete Account Data": "Удалить данные аккаунта", "Are you sure you want to delete account data? This action cannot be undone": "Вы уверены, что хотите удалить данные {{username}}? Это действие нельзя отменить.", "Delete": "Удалить", "Deleting...": "Удаление...", "Overwrite": "Перезаписать", "Overwrite Existing Data?": "Перезаписать существующие данные?", "Account data for @{{username}} already exists in the database. Do you want to overwrite it?": "Данные аккаунта @{{username}} уже существуют в базе данных. Перезаписать их?", "No accounts yet": "Пока нет аккаунтов", "Use Dashboard to fetch data.": "Используйте панель, чтобы получить данные.", "Something went wrong.": "Что-то пошло не так.", "Error:": "Ошибка:", "Fetch": "Получить", "Single": "Одиночный", "Batch": "Пакет", "Auto Batch": "Автопакет", "Timeline": "Лента", "Media": "Медиа", "Batch Size": "Размер пакета", "Starting Batch": "Начальный пакет", "Posts": "Публикации", "Tweets": "Твиты", "Replies": "Ответы", "All": "Все", "Image": "Изображение", "Video": "Видео", "GIF": "GIF", "Batch: {{page}}": "Пакет: {{page}}", "Start": "Старт", "Stop": "Стоп", "Prev": "Назад", "Next": "Далее", "Download Current": "Скачать текущее", "Download All": "Скачать всё", "Use Batch/Auto Batch if single fetch fails": "Используйте пакет/автопакет, если одиночное получение не удалось", "Load from database": "Загрузить из базы данных", "Load database": "Загрузить базу данных", "Home": "Начало", "End": "Конец", "Failed to load data": "Не удалось загрузить данные", "Update": "Обновить", "Updating...": "Обновление...", "Update will fetch the latest data and overwrite the database. Continue?": "Обновление получит последние данные и перезапишет базу данных. Продолжить?", "Followers": "Подписчики", "Following": "Подписки", "Joined": "Дата регистрации", "Open": "Открыть", "Preview": "Предпросмотр", "View Database": "Просмотреть базу данных", "Converting...": "Конвертация...", "Convert & Download": "Конвертировать и скачать" } };
  const th = { "common": { "Settings": "การตั้งค่า", "Theme": "ธีม", "Change Theme": "เปลี่ยนธีม", "Language": "ภาษา", "Change Language": "เปลี่ยนภาษา", "Date Time Format": "รูปแบบวันที่และเวลา", "Debug": "ดีบัก", "Global Settings": "การตั้งค่าทั่วไป", "Version": "เวอร์ชัน", "Common Formats:": "รูปแบบทั่วไป:", "Date Formats:": "รูปแบบวันที่:", "Time Formats:": "รูปแบบเวลา:", "Combined Examples:": "ตัวอย่างรวม:", "Localized": "แปลเป็นภาษาท้องถิ่น", "Reset Settings": "รีเซ็ตการตั้งค่า", "Are you sure you want to reset settings to defaults?": "คุณแน่ใจหรือไม่ว่าต้องการรีเซ็ตการตั้งค่าเป็นค่าเริ่มต้น?", "Reset": "รีเซ็ต", "Cancel": "ยกเลิก", "Chrome": "Chrome", "Userscript": "Userscript", "Website": "เว็บไซต์", "Patreon": "Patreon", "Dashboard": "แดชบอร์ด", "Database": "ฐานข้อมูล", "Auth": "การยืนยันตัวตน", "Convert Animated GIFs": "แปลง GIF", "Convert GIFs (External)": "แปลง GIF (ภายนอก)", "Concurrent Downloads": "ดาวน์โหลดพร้อมกัน", "Use 10+ only with fast internet": "ใช้ 10+ เฉพาะกับอินเทอร์เน็ตเร็วเท่านั้น", "Smaller size, same quality": "ขนาดเล็กลง คุณภาพเท่าเดิม", "Larger size, same quality": "ขนาดใหญ่ขึ้น คุณภาพเท่าเดิม", "Back": "กลับ", "Please visit a profile page for auto-detection": "โปรดไปที่หน้าโปรไฟล์สำหรับการตรวจจับอัตโนมัติ", "Please configure authentication in the Auth tab first": "โปรดกำหนดค่าการยืนยันตัวตนในแท็บ Auth ก่อน", "Invalid username format": "รูปแบบชื่อผู้ใช้ไม่ถูกต้อง", "Invalid auth token. Please check your settings.": "โทเค็นการยืนยันตัวตนไม่ถูกต้อง โปรดตรวจสอบการตั้งค่าของคุณ", "Invalid Patreon auth. Please check your settings.": "การยืนยันตัวตน Patreon ไม่ถูกต้อง โปรดตรวจสอบการตั้งค่าของคุณ", "Failed to fetch data": "ไม่สามารถดึงข้อมูล", "Failed to fetch data from all APIs": "ไม่สามารถดึงข้อมูลจาก API ทั้งหมด", "Failed to verify auth from all APIs": "ไม่สามารถยืนยันตัวตนจาก API ทั้งหมด", "Failed to generate token from all APIs": "ไม่สามารถสร้างโทเค็นจาก API ทั้งหมด", "Generating token...": "กำลังสร้างโทเค็น...", "Abort": "ยกเลิก", "Network error occurred": "เกิดข้อผิดพลาดเครือข่าย", "Request timeout - please try again": "คำขอหมดเวลา - โปรดลองอีกครั้ง", "Failed to parse API response": "ไม่สามารถแยกวิเคราะห์การตอบกลับของ API", "Invalid API response structure": "โครงสร้างการตอบกลับของ API ไม่ถูกต้อง", "Unknown error occurred": "เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ", "HTTP error! status: {{status}}": "ข้อผิดพลาด HTTP! สถานะ: {{status}}", "Download already in progress": "กำลังดาวน์โหลดอยู่แล้ว", "No media files found": "ไม่พบไฟล์สื่อ", "Toggle visibility": "สลับการมองเห็น", "Close": "ปิด", "Converting GIFs...": "กำลังแปลง GIF...", "Downloading...": "กำลังดาวน์โหลด...", "Download": "ดาวน์โหลด", "Fetching...": "กำลังดึงข้อมูล...", "Fetch All": "ดึงทั้งหมด", "Fetch Video": "ดึงวิดีโอ", "Fetch Image": "ดึงรูปภาพ", "Fetch GIF": "ดึง GIF", "Posts: {{posts}}": "โพสต์: {{posts}}", "Media: {{media}}": "สื่อ: {{media}}", "Current Media: {{current}} • Total Media: {{total}}": "สื่อปัจจุบัน: {{current}} • สื่อทั้งหมด: {{total}}", "Failed to download media": "ไม่สามารถดาวน์โหลดสื่อ", "Demo mode is only available for @xbatchdemo": "โหมดสาธิตใช้ได้เฉพาะสำหรับ @xbatchdemo เท่านั้น", "Auth Token": "โทเค็นการยืนยันตัวตน", "Enter your auth token": "ป้อนโทเค็นการยืนยันตัวตนของคุณ", "Your authentication token for API access": "โทเค็นการยืนยันตัวตนของคุณสำหรับการเข้าถึง API", "Patreon Auth": "การยืนยันตัวตน Patreon", "Enter your Patreon auth": "ป้อนการยืนยันตัวตน Patreon ของคุณ", "Your Patreon authentication key": "คีย์การยืนยันตัวตน Patreon ของคุณ", "Please enter Patreon auth first": "โปรดป้อนการยืนยันตัวตน Patreon ก่อน", "Please verify Patreon auth first": "โปรดยืนยันการยืนยันตัวตน Patreon ก่อน", "Patreon auth verified successfully": "ยืนยันการยืนยันตัวตน Patreon สำเร็จ", "Invalid Patreon auth": "การยืนยันตัวตน Patreon ไม่ถูกต้อง", "Verification failed. Please try again": "การยืนยันล้มเหลว โปรดลองอีกครั้ง", "Generating": "กำลังสร้าง", "Generate": "สร้าง", "Verify": "ยืนยัน", "Token generated successfully": "สร้างโทเค็นสำเร็จ ({{current}}/{{total}})", "Failed to generate token": "ไม่สามารถสร้างโทเค็น", "Token generation failed. Please try again": "การสร้างโทเค็นล้มเหลว โปรดลองอีกครั้ง", "Verifying": "กำลังยืนยัน", "Verified": "ยืนยันแล้ว", "Use code": "ใช้รหัส", "for Patreon Auth, click Verify to unlock demo. Test at": "สำหรับการยืนยันตัวตน Patreon คลิกยืนยันเพื่อปลดล็อกสาธิต ทดสอบที่", "Need help with Auth Token? See": "ต้องการความช่วยเหลือเกี่ยวกับโทเค็นการยืนยันตัวตนหรือไม่? ดู", "the guide": "คู่มือ", "Subscribe": "สมัครสมาชิก", "to get your Patreon Auth code and start downloading with ease!": "เพื่อรับรหัสการยืนยันตัวตน Patreon และเริ่มดาวน์โหลดได้อย่างง่ายดาย!", "Report bugs or request features:": "รายงานบั๊กหรือขอฟีเจอร์:", "Import": "นำเข้า", "Importing...": "กำลังนำเข้า...", "Supports JSON and ZIP formats": "รองรับรูปแบบ JSON และ ZIP", "Export": "ส่งออก", "Export All Data": "ส่งออกข้อมูลทั้งหมด", "Exporting...": "กำลังส่งออก...", "Clear": "ล้าง", "Filter by Batch": "กรองตามแบทช์", "Are you sure to clear all data in the database?": "คุณแน่ใจหรือไม่ที่จะล้างข้อมูลทั้งหมดในฐานข้อมูล?", "Delete Account Data": "ลบข้อมูลบัญชี", "Are you sure you want to delete account data? This action cannot be undone": "คุณแน่ใจหรือไม่ที่จะลบข้อมูล {{username}}? การกระทำนี้ไม่สามารถยกเลิกได้", "Delete": "ลบ", "Deleting...": "กำลังลบ...", "Overwrite": "เขียนทับ", "Overwrite Existing Data?": "เขียนทับข้อมูลที่มีอยู่?", "Account data for @{{username}} already exists in the database. Do you want to overwrite it?": "ข้อมูลบัญชีสำหรับ @{{username}} มีอยู่แล้วในฐานข้อมูล คุณต้องการเขียนทับหรือไม่?", "No accounts yet": "ยังไม่มีบัญชี", "Use Dashboard to fetch data.": "ใช้แดชบอร์ดเพื่อดึงข้อมูล", "Something went wrong.": "เกิดข้อผิดพลาดบางอย่าง", "Error:": "ข้อผิดพลาด:", "Fetch": "ดึง", "Single": "เดี่ยว", "Batch": "แบทช์", "Auto Batch": "แบทช์อัตโนมัติ", "Timeline": "ไทม์ไลน์", "Media": "สื่อ", "Batch Size": "ขนาดแบทช์", "Starting Batch": "แบทช์เริ่มต้น", "Posts": "โพสต์", "Tweets": "ทวีต", "Replies": "ตอบกลับ", "All": "ทั้งหมด", "Image": "รูปภาพ", "Video": "วิดีโอ", "GIF": "GIF", "Batch: {{page}}": "แบทช์: {{page}}", "Start": "เริ่ม", "Stop": "หยุด", "Prev": "ก่อนหน้า", "Next": "ถัดไป", "Download Current": "ดาวน์โหลดปัจจุบัน", "Download All": "ดาวน์โหลดทั้งหมด", "Use Batch/Auto Batch if single fetch fails": "ใช้แบทช์/แบทช์อัตโนมัติหากการดึงเดี่ยวล้มเหลว", "Load from database": "โหลดจากฐานข้อมูล", "Load database": "โหลดฐานข้อมูล", "Home": "หน้าแรก", "End": "สิ้นสุด", "Failed to load data": "ไม่สามารถโหลดข้อมูล", "Update": "อัปเดต", "Updating...": "กำลังอัปเดต...", "Update will fetch the latest data and overwrite the database. Continue?": "การอัปเดตจะดึงข้อมูลล่าสุดและเขียนทับฐานข้อมูล ดำเนินการต่อหรือไม่?", "Followers": "ผู้ติดตาม", "Following": "กำลังติดตาม", "Joined": "เข้าร่วม", "Open": "เปิด", "Preview": "ดูตัวอย่าง", "View Database": "ดูฐานข้อมูล", "Converting...": "กำลังแปลง...", "Convert & Download": "แปลงและดาวน์โหลด" } };
  const tr = { "common": { "Settings": "Ayarlar", "Theme": "Tema", "Change Theme": "Tema Değiştir", "Language": "Dil", "Change Language": "Dil Değiştir", "Date Time Format": "Tarih Saat Formatı", "Debug": "Hata Ayıklama", "Global Settings": "Genel Ayarlar", "Version": "Sürüm", "Common Formats:": "Yaygın Formatlar:", "Date Formats:": "Tarih Formatları:", "Time Formats:": "Saat Formatları:", "Combined Examples:": "Birleşik Örnekler:", "Localized": "Yerelleştirilmiş", "Reset Settings": "Ayarları Sıfırla", "Are you sure you want to reset settings to defaults?": "Ayarları varsayılanlara sıfırlamak istediğinizden emin misiniz?", "Reset": "Sıfırla", "Cancel": "İptal", "Chrome": "Chrome", "Userscript": "Kullanıcı Betiği", "Website": "Web Sitesi", "Patreon": "Patreon", "Dashboard": "Kontrol Paneli", "Database": "Veritabanı", "Auth": "Kimlik Doğrulama", "Convert Animated GIFs": "GIF Dönüştür", "Convert GIFs (External)": "GIF Dönüştür (Harici)", "Concurrent Downloads": "Eşzamanlı İndirmeler", "Use 10+ only with fast internet": "10+'ı yalnızca hızlı internetle kullanın", "Smaller size, same quality": "Daha küçük boyut, aynı kalite", "Larger size, same quality": "Daha büyük boyut, aynı kalite", "Back": "Geri", "Please visit a profile page for auto-detection": "Otomatik algılama için lütfen bir profil sayfasını ziyaret edin", "Please configure authentication in the Auth tab first": "Lütfen önce Kimlik Doğrulama sekmesinde kimlik doğrulamayı yapılandırın", "Invalid username format": "Geçersiz kullanıcı adı formatı", "Invalid auth token. Please check your settings.": "Geçersiz kimlik doğrulama jetonu. Lütfen ayarlarınızı kontrol edin.", "Invalid Patreon auth. Please check your settings.": "Geçersiz Patreon kimlik doğrulaması. Lütfen ayarlarınızı kontrol edin.", "Failed to fetch data": "Veri alınamadı", "Failed to fetch data from all APIs": "Tüm API'lerden veri alınamadı", "Failed to verify auth from all APIs": "Tüm API'lerden kimlik doğrulama doğrulanamadı", "Failed to generate token from all APIs": "Tüm API'lerden jeton oluşturulamadı", "Generating token...": "Jeton oluşturuluyor...", "Abort": "İptal Et", "Network error occurred": "Ağ hatası oluştu", "Request timeout - please try again": "İstek zaman aşımına uğradı - lütfen tekrar deneyin", "Failed to parse API response": "API yanıtı ayrıştırılamadı", "Invalid API response structure": "Geçersiz API yanıt yapısı", "Unknown error occurred": "Bilinmeyen bir hata oluştu", "HTTP error! status: {{status}}": "HTTP hatası! durum: {{status}}", "Download already in progress": "İndirme zaten devam ediyor", "No media files found": "Medya dosyası bulunamadı", "Toggle visibility": "Görünürlüğü değiştir", "Close": "Kapat", "Converting GIFs...": "GIF'ler dönüştürülüyor...", "Downloading...": "İndiriliyor...", "Download": "İndir", "Fetching...": "Alınıyor...", "Fetch All": "Tümünü Al", "Fetch Video": "Video Al", "Fetch Image": "Resim Al", "Fetch GIF": "GIF Al", "Posts: {{posts}}": "Gönderiler: {{posts}}", "Media: {{media}}": "Medya: {{media}}", "Current Media: {{current}} • Total Media: {{total}}": "Mevcut Medya: {{current}} • Toplam Medya: {{total}}", "Failed to download media": "Medya indirilemedi", "Demo mode is only available for @xbatchdemo": "Demo modu yalnızca @xbatchdemo için kullanılabilir", "Auth Token": "Kimlik Doğrulama Jetonu", "Enter your auth token": "Kimlik doğrulama jetonunuzu girin", "Your authentication token for API access": "API erişimi için kimlik doğrulama jetonunuz", "Patreon Auth": "Patreon Kimlik Doğrulaması", "Enter your Patreon auth": "Patreon kimlik doğrulamanızı girin", "Your Patreon authentication key": "Patreon kimlik doğrulama anahtarınız", "Please enter Patreon auth first": "Lütfen önce Patreon kimlik doğrulamasını girin", "Please verify Patreon auth first": "Lütfen önce Patreon kimlik doğrulamasını doğrulayın", "Patreon auth verified successfully": "Patreon kimlik doğrulaması başarıyla doğrulandı", "Invalid Patreon auth": "Geçersiz Patreon kimlik doğrulaması", "Verification failed. Please try again": "Doğrulama başarısız. Lütfen tekrar deneyin", "Generating": "Oluşturuluyor", "Generate": "Oluştur", "Verify": "Doğrula", "Token generated successfully": "Jeton başarıyla oluşturuldu ({{current}}/{{total}})", "Failed to generate token": "Jeton oluşturulamadı", "Token generation failed. Please try again": "Jeton oluşturma başarısız. Lütfen tekrar deneyin", "Verifying": "Doğrulanıyor", "Verified": "Doğrulandı", "Use code": "Kodu kullan", "for Patreon Auth, click Verify to unlock demo. Test at": "Patreon Kimlik Doğrulaması için, demoyu açmak için Doğrula'ya tıklayın. Test edin:", "Need help with Auth Token? See": "Kimlik Doğrulama Jetonu için yardıma mı ihtiyacınız var? Bakın:", "the guide": "kılavuz", "Subscribe": "Abone Ol", "to get your Patreon Auth code and start downloading with ease!": "Patreon Kimlik Doğrulama kodunuzu almak ve kolayca indirmeye başlamak için!", "Report bugs or request features:": "Hata bildirin veya özellik isteyin:", "Import": "İçe Aktar", "Importing...": "İçe aktarılıyor...", "Supports JSON and ZIP formats": "JSON ve ZIP formatlarını destekler", "Export": "Dışa Aktar", "Export All Data": "Tüm Verileri Dışa Aktar", "Exporting...": "Dışa aktarılıyor...", "Clear": "Temizle", "Filter by Batch": "Toplu İşleme Göre Filtrele", "Are you sure to clear all data in the database?": "Veritabanındaki tüm verileri temizlemek istediğinizden emin misiniz?", "Delete Account Data": "Hesap Verilerini Sil", "Are you sure you want to delete account data? This action cannot be undone": "{{username}} verilerini silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.", "Delete": "Sil", "Deleting...": "Siliniyor...", "Overwrite": "Üzerine Yaz", "Overwrite Existing Data?": "Mevcut Verilerin Üzerine Yazılsın mı?", "Account data for @{{username}} already exists in the database. Do you want to overwrite it?": "@{{username}} için hesap verileri veritabanında zaten mevcut. Üzerine yazmak istiyor musunuz?", "No accounts yet": "Henüz hesap yok", "Use Dashboard to fetch data.": "Veri almak için Kontrol Panelini kullanın.", "Something went wrong.": "Bir şeyler ters gitti.", "Error:": "Hata:", "Fetch": "Al", "Single": "Tekil", "Batch": "Toplu İşlem", "Auto Batch": "Otomatik Toplu İşlem", "Timeline": "Zaman Çizelgesi", "Media": "Medya", "Batch Size": "Toplu İşlem Boyutu", "Starting Batch": "Başlangıç Toplu İşlemi", "Posts": "Gönderiler", "Tweets": "Tweet'ler", "Replies": "Yanıtlar", "All": "Tümü", "Image": "Resim", "Video": "Video", "GIF": "GIF", "Batch: {{page}}": "Toplu İşlem: {{page}}", "Start": "Başlat", "Stop": "Durdur", "Prev": "Önceki", "Next": "Sonraki", "Download Current": "Mevcut'u İndir", "Download All": "Tümünü İndir", "Use Batch/Auto Batch if single fetch fails": "Tekil alma başarısız olursa Toplu İşlem/Otomatik Toplu İşlem kullanın", "Load from database": "Veritabanından yükle", "Load database": "Veritabanını yükle", "Home": "Ana Sayfa", "End": "Son", "Failed to load data": "Veri yüklenemedi", "Update": "Güncelle", "Updating...": "Güncelleniyor...", "Update will fetch the latest data and overwrite the database. Continue?": "Güncelleme en son verileri alacak ve veritabanının üzerine yazacak. Devam edilsin mi?", "Followers": "Takipçiler", "Following": "Takip Edilenler", "Joined": "Katıldı", "Open": "Aç", "Preview": "Önizleme", "View Database": "Veritabanını Görüntüle", "Converting...": "Dönüştürülüyor...", "Convert & Download": "Dönüştür ve İndir" } };
  const vi = { "common": { "Settings": "Cài đặt", "Theme": "Giao diện", "Change Theme": "Đổi giao diện", "Language": "Ngôn ngữ", "Change Language": "Đổi ngôn ngữ", "Date Time Format": "Định dạng ngày giờ", "Debug": "Gỡ lỗi", "Global Settings": "Cài đặt chung", "Version": "Phiên bản", "Common Formats:": "Định dạng phổ biến:", "Date Formats:": "Định dạng ngày:", "Time Formats:": "Định dạng giờ:", "Combined Examples:": "Ví dụ kết hợp:", "Localized": "Đã bản địa hóa", "Reset Settings": "Đặt lại cài đặt", "Are you sure you want to reset settings to defaults?": "Bạn có chắc muốn đặt lại cài đặt về mặc định không?", "Reset": "Đặt lại", "Cancel": "Hủy", "Chrome": "Chrome", "Userscript": "Userscript", "Website": "Trang web", "Patreon": "Patreon", "Dashboard": "Bảng điều khiển", "Database": "Cơ sở dữ liệu", "Auth": "Xác thực", "Convert Animated GIFs": "Chuyển đổi GIF", "Convert GIFs (External)": "Chuyển đổi GIF (Bên ngoài)", "Concurrent Downloads": "Tải xuống đồng thời", "Use 10+ only with fast internet": "Chỉ sử dụng 10+ với internet nhanh", "Smaller size, same quality": "Kích thước nhỏ hơn, chất lượng tương tự", "Larger size, same quality": "Kích thước lớn hơn, chất lượng tương tự", "Back": "Quay lại", "Please visit a profile page for auto-detection": "Vui lòng truy cập trang hồ sơ để tự động phát hiện", "Please configure authentication in the Auth tab first": "Vui lòng cấu hình xác thực trong tab Xác thực trước", "Invalid username format": "Định dạng tên người dùng không hợp lệ", "Invalid auth token. Please check your settings.": "Token xác thực không hợp lệ. Vui lòng kiểm tra cài đặt của bạn.", "Invalid Patreon auth. Please check your settings.": "Xác thực Patreon không hợp lệ. Vui lòng kiểm tra cài đặt của bạn.", "Failed to fetch data": "Không thể lấy dữ liệu", "Failed to fetch data from all APIs": "Không thể lấy dữ liệu từ tất cả các API", "Failed to verify auth from all APIs": "Không thể xác minh xác thực từ tất cả các API", "Failed to generate token from all APIs": "Không thể tạo token từ tất cả các API", "Generating token...": "Đang tạo token...", "Abort": "Hủy bỏ", "Network error occurred": "Đã xảy ra lỗi mạng", "Request timeout - please try again": "Yêu cầu hết thời gian - vui lòng thử lại", "Failed to parse API response": "Không thể phân tích phản hồi API", "Invalid API response structure": "Cấu trúc phản hồi API không hợp lệ", "Unknown error occurred": "Đã xảy ra lỗi không xác định", "HTTP error! status: {{status}}": "Lỗi HTTP! trạng thái: {{status}}", "Download already in progress": "Đang tải xuống", "No media files found": "Không tìm thấy tệp phương tiện", "Toggle visibility": "Chuyển đổi hiển thị", "Close": "Đóng", "Converting GIFs...": "Đang chuyển đổi GIF...", "Downloading...": "Đang tải xuống...", "Download": "Tải xuống", "Fetching...": "Đang lấy...", "Fetch All": "Lấy tất cả", "Fetch Video": "Lấy video", "Fetch Image": "Lấy hình ảnh", "Fetch GIF": "Lấy GIF", "Posts: {{posts}}": "Bài viết: {{posts}}", "Media: {{media}}": "Phương tiện: {{media}}", "Current Media: {{current}} • Total Media: {{total}}": "Phương tiện hiện tại: {{current}} • Tổng phương tiện: {{total}}", "Failed to download media": "Không thể tải xuống phương tiện", "Demo mode is only available for @xbatchdemo": "Chế độ demo chỉ khả dụng cho @xbatchdemo", "Auth Token": "Token xác thực", "Enter your auth token": "Nhập token xác thực của bạn", "Your authentication token for API access": "Token xác thực của bạn để truy cập API", "Patreon Auth": "Xác thực Patreon", "Enter your Patreon auth": "Nhập xác thực Patreon của bạn", "Your Patreon authentication key": "Khóa xác thực Patreon của bạn", "Please enter Patreon auth first": "Vui lòng nhập xác thực Patreon trước", "Please verify Patreon auth first": "Vui lòng xác minh xác thực Patreon trước", "Patreon auth verified successfully": "Xác thực Patreon thành công", "Invalid Patreon auth": "Xác thực Patreon không hợp lệ", "Verification failed. Please try again": "Xác minh thất bại. Vui lòng thử lại", "Generating": "Đang tạo", "Generate": "Tạo", "Verify": "Xác minh", "Token generated successfully": "Tạo token thành công ({{current}}/{{total}})", "Failed to generate token": "Không thể tạo token", "Token generation failed. Please try again": "Tạo token thất bại. Vui lòng thử lại", "Verifying": "Đang xác minh", "Verified": "Đã xác minh", "Use code": "Sử dụng mã", "for Patreon Auth, click Verify to unlock demo. Test at": "cho Xác thực Patreon, nhấp Xác minh để mở khóa demo. Thử nghiệm tại", "Need help with Auth Token? See": "Cần trợ giúp với Token xác thực? Xem", "the guide": "hướng dẫn", "Subscribe": "Đăng ký", "to get your Patreon Auth code and start downloading with ease!": "để nhận mã Xác thực Patreon và bắt đầu tải xuống dễ dàng!", "Report bugs or request features:": "Báo cáo lỗi hoặc yêu cầu tính năng:", "Import": "Nhập", "Importing...": "Đang nhập...", "Supports JSON and ZIP formats": "Hỗ trợ định dạng JSON và ZIP", "Export": "Xuất", "Export All Data": "Xuất tất cả dữ liệu", "Exporting...": "Đang xuất...", "Clear": "Xóa", "Filter by Batch": "Lọc theo đợt", "Are you sure to clear all data in the database?": "Bạn có chắc muốn xóa tất cả dữ liệu trong cơ sở dữ liệu không?", "Delete Account Data": "Xóa dữ liệu tài khoản", "Are you sure you want to delete account data? This action cannot be undone": "Bạn có chắc muốn xóa dữ liệu của {{username}} không? Hành động này không thể hoàn tác.", "Delete": "Xóa", "Deleting...": "Đang xóa...", "Overwrite": "Ghi đè", "Overwrite Existing Data?": "Ghi đè dữ liệu hiện có?", "Account data for @{{username}} already exists in the database. Do you want to overwrite it?": "Dữ liệu tài khoản cho @{{username}} đã tồn tại trong cơ sở dữ liệu. Bạn có muốn ghi đè không?", "No accounts yet": "Chưa có tài khoản", "Use Dashboard to fetch data.": "Sử dụng Bảng điều khiển để lấy dữ liệu.", "Something went wrong.": "Đã xảy ra lỗi.", "Error:": "Lỗi:", "Fetch": "Lấy", "Single": "Đơn lẻ", "Batch": "Đợt", "Auto Batch": "Đợt tự động", "Timeline": "Dòng thời gian", "Media": "Phương tiện", "Batch Size": "Kích thước đợt", "Starting Batch": "Đợt bắt đầu", "Posts": "Bài viết", "Tweets": "Tweet", "Replies": "Phản hồi", "All": "Tất cả", "Image": "Hình ảnh", "Video": "Video", "GIF": "GIF", "Batch: {{page}}": "Đợt: {{page}}", "Start": "Bắt đầu", "Stop": "Dừng", "Prev": "Trước", "Next": "Tiếp", "Download Current": "Tải xuống hiện tại", "Download All": "Tải xuống tất cả", "Use Batch/Auto Batch if single fetch fails": "Sử dụng Đợt/Đợt tự động nếu lấy đơn lẻ thất bại", "Load from database": "Tải từ cơ sở dữ liệu", "Load database": "Tải cơ sở dữ liệu", "Home": "Trang chủ", "End": "Kết thúc", "Failed to load data": "Không thể tải dữ liệu", "Update": "Cập nhật", "Updating...": "Đang cập nhật...", "Update will fetch the latest data and overwrite the database. Continue?": "Cập nhật sẽ lấy dữ liệu mới nhất và ghi đè cơ sở dữ liệu. Tiếp tục?", "Followers": "Người theo dõi", "Following": "Đang theo dõi", "Joined": "Đã tham gia", "Open": "Mở", "Preview": "Xem trước", "View Database": "Xem cơ sở dữ liệu", "Converting...": "Đang chuyển đổi...", "Convert & Download": "Chuyển đổi và Tải xuống" } };
  const zh_Hans = { "common": { "Settings": "设置", "Theme": "主题", "Change Theme": "更改主题", "Language": "语言", "Change Language": "更改语言", "Date Time Format": "日期时间格式", "Debug": "调试开关", "Global Settings": "全局设置", "Version": "版本", "Common Formats:": "常用格式:", "Date Formats:": "日期格式:", "Time Formats:": "时间格式:", "Combined Examples:": "组合示例:", "Localized": "本地化", "Reset Settings": "重置设置", "Are you sure you want to reset settings to defaults?": "确定要将设置重置为默认值吗?", "Reset": "重置", "Cancel": "取消", "Chrome": "Chrome", "Userscript": "用户脚本", "Website": "网站", "Patreon": "Patreon", "Dashboard": "仪表板", "Database": "数据库", "Auth": "认证", "Convert Animated GIFs": "转换 GIF", "Convert GIFs (External)": "转换 GIF(外部)", "Concurrent Downloads": "并发下载", "Use 10+ only with fast internet": "仅在网络快速时使用 10+", "Smaller size, same quality": "体积更小,质量相同", "Larger size, same quality": "体积更大,质量相同", "Back": "返回", "Please visit a profile page for auto-detection": "请访问个人资料页面进行自动检测", "Please configure authentication in the Auth tab first": "请先在认证选项卡中配置身份验证", "Invalid username format": "无效的用户名格式", "Invalid auth token. Please check your settings.": "无效的认证令牌,请检查您的设置。", "Invalid Patreon auth. Please check your settings.": "无效的 Patreon 认证,请检查您的设置。", "Failed to fetch data": "获取数据失败", "Failed to fetch data from all APIs": "所有 API 均无法获取数据", "Failed to verify auth from all APIs": "所有 API 均无法验证认证", "Failed to generate token from all APIs": "所有 API 均无法生成令牌", "Generating token...": "正在生成令牌...", "Abort": "中止", "Network error occurred": "发生网络错误", "Request timeout - please try again": "请求超时 - 请重试", "Failed to parse API response": "解析 API 响应失败", "Invalid API response structure": "无效的 API 响应结构", "Unknown error occurred": "发生未知错误", "HTTP error! status: {{status}}": "HTTP 错误!状态:{{status}}", "Download already in progress": "下载已在进行中", "No media files found": "未找到媒体文件", "Toggle visibility": "显示/隐藏", "Close": "关闭", "Converting GIFs...": "正在转换 GIF...", "Downloading...": "正在下载...", "Download": "下载", "Fetching...": "正在获取...", "Fetch All": "获取全部", "Fetch Video": "获取视频", "Fetch Image": "获取图片", "Fetch GIF": "获取 GIF", "Posts: {{posts}}": "帖子:{{posts}}", "Media: {{media}}": "媒体:{{media}}", "Current Media: {{current}} • Total Media: {{total}}": "当前媒体:{{current}} • 总媒体:{{total}}", "Failed to download media": "下载媒体失败", "Demo mode is only available for @xbatchdemo": "演示模式仅适用于 @xbatchdemo", "Auth Token": "认证令牌", "Enter your auth token": "输入您的认证令牌", "Your authentication token for API access": "用于 API 访问的身份验证令牌", "Patreon Auth": "Patreon 认证", "Enter your Patreon auth": "输入您的 Patreon 认证", "Your Patreon authentication key": "您的 Patreon 身份验证密钥", "Please enter Patreon auth first": "请先输入 Patreon 认证", "Please verify Patreon auth first": "请先验证 Patreon 认证", "Patreon auth verified successfully": "Patreon 认证验证成功", "Invalid Patreon auth": "无效的 Patreon 认证", "Verification failed. Please try again": "验证失败,请重试", "Generating": "正在生成", "Generate": "生成", "Verify": "验证", "Token generated successfully": "令牌生成成功 ({{current}}/{{total}})", "Failed to generate token": "生成令牌失败", "Token generation failed. Please try again": "令牌生成失败,请重试", "Verifying": "正在验证", "Verified": "已验证", "Use code": "使用代码", "for Patreon Auth, click Verify to unlock demo. Test at": "用于 Patreon 认证,点击“验证”以解锁演示。测试地址:", "Need help with Auth Token? See": "需要获取认证令牌的帮助?请查看", "the guide": "指南", "Subscribe": "订阅", "to get your Patreon Auth code and start downloading with ease!": "即可获取您的 Patreon 认证码,轻松开始下载!", "Report bugs or request features:": "报告问题或请求功能:", "Import": "导入", "Importing...": "正在导入...", "Supports JSON and ZIP formats": "支持 JSON 和 ZIP 格式", "Export": "导出", "Export All Data": "导出全部数据", "Exporting...": "正在导出...", "Clear": "清空", "Filter by Batch": "按批次过滤", "Are you sure to clear all data in the database?": "确定要清空数据库中的所有数据吗?", "Delete Account Data": "删除账户数据", "Are you sure you want to delete account data? This action cannot be undone": "您确定要删除 {{username}} 的数据吗?此操作无法撤销。", "Delete": "删除", "Deleting...": "正在删除...", "Overwrite": "覆盖", "Overwrite Existing Data?": "覆盖现有数据?", "Account data for @{{username}} already exists in the database. Do you want to overwrite it?": "账户 @{{username}} 的数据已存在于数据库中。您要覆盖吗?", "No accounts yet": "尚未有账户", "Use Dashboard to fetch data.": "使用仪表板获取数据。", "Something went wrong.": "出错了。", "Error:": "错误:", "Fetch": "获取", "Single": "单次", "Batch": "批量", "Auto Batch": "自动批量", "Timeline": "时间线", "Media": "媒体", "Batch Size": "批量大小", "Starting Batch": "起始批次", "Posts": "帖子", "Tweets": "推文", "Replies": "回复", "All": "全部", "Image": "图片", "Video": "视频", "GIF": "GIF", "Batch: {{page}}": "批次:{{page}}", "Start": "开始", "Stop": "停止", "Prev": "上一页", "Next": "下一页", "Download Current": "下载当前", "Download All": "下载全部", "Use Batch/Auto Batch if single fetch fails": "若单次获取失败,请使用批量/自动批量", "Load from database": "从数据库加载", "Load database": "加载数据库", "Home": "首页", "End": "末页", "Failed to load data": "加载数据失败", "Update": "更新", "Updating...": "更新中...", "Update will fetch the latest data and overwrite the database. Continue?": "更新将获取最新数据并覆盖数据库。继续吗?", "Followers": "粉丝", "Following": "正在关注", "Joined": "加入时间", "Open": "打开", "Preview": "预览", "View Database": "查看数据库", "Converting...": "转换中...", "Convert & Download": "转换并下载" } };
  const resources = {
    "ar": ar,
    "de": de,
    "en": en$1,
    "es": es,
    "fil": fil,
    "fr": fr,
    "hi": hi,
    "id": id,
    "it": it,
    "ja": ja,
    "ko": ko,
    "nl": nl,
    "pt": pt,
    "ru": ru,
    "th": th,
    "tr": tr,
    "vi": vi,
    "zh-Hans": zh_Hans
  };
  const logLinesSignal = signals.signal([]);
  const APP_NAME = "twitter-x-media-batch-downloader-pro";
  class Logger {
    index = 0;
    buffer = [];
    bufferTimer = null;
    isDebugEnabled() {
      try {
        const { options: options2 } = require("@/core/options");
        return options2.get("debug") ?? false;
      } catch {
        return false;
      }
    }
    info(line, ...args) {
      if (this.isDebugEnabled()) {
        console.info(`[${APP_NAME}]`, line, ...args);
        this.writeBuffer({ type: "info", line, index: this.index++ });
      }
    }
    warn(line, ...args) {
      if (this.isDebugEnabled()) {
        console.warn(`[${APP_NAME}]`, line, ...args);
        this.writeBuffer({ type: "warn", line, index: this.index++ });
      }
    }
    error(line, ...args) {
      console.error(`[${APP_NAME}]`, line, ...args);
      this.writeBuffer({ type: "error", line, index: this.index++ });
    }
    errorWithBanner(msg, err, ...args) {
      this.error(
        `${msg} (Message: ${err?.message ?? "none"})
  Report bugs: [email protected]`,
        ...args
      );
    }
    debug(...args) {
      if (this.isDebugEnabled()) {
        console.debug(`[${APP_NAME}]`, ...args);
      }
    }
    writeBuffer(log) {
      this.buffer.push(log);
      if (this.bufferTimer) {
        clearTimeout(this.bufferTimer);
      }
      this.bufferTimer = window.setTimeout(() => {
        this.bufferTimer = null;
        this.flushBuffer();
      }, 0);
    }
    flushBuffer() {
      logLinesSignal.value = [...logLinesSignal.value, ...this.buffer];
      this.buffer = [];
    }
  }
  const logger = new Logger();
  function safeJSONParse(text) {
    try {
      return JSON.parse(text);
    } catch (e) {
      logger.error(e.message);
      return null;
    }
  }
  function cx(...classNames) {
    return classNames.filter(Boolean).join(" ");
  }
  function isEqual(obj1, obj2) {
    return JSON.stringify(obj1) === JSON.stringify(obj2);
  }
  function formatDateTime(date, format) {
    if (typeof date === "number" || typeof date === "string") {
      date = dayjs(date);
    }
    return date.format(format);
  }
  function sanitizeFilename(name) {
    return name.replace(/[\\/:*?"<>|]/g, "-").replace(/\s+/g, "_").replace(/_+/g, "_").replace(/^_+|_+$/g, "");
  }
  const version = "1.0.7";
  const pkg = {
    version
  };
  const DEFAULT_APP_OPTIONS = {
    theme: "light",
    debug: false,
    showControlPanel: true,
    disabledExtensions: [
      "HomeTimelineModule",
      "ListTimelineModule",
      "ListSubscribersModule",
      "ListMembersModule"
    ],
    dateTimeFormat: "YYYY-MM-DD HH:mm:ss Z",
    filenamePattern: "{screen_name}_{id}_{type}_{num}_{date}.{ext}",
    language: "",
    version: pkg.version,
    convertAnimatedGifs: true,
    convertGifsExternal: false,
    downloadConcurrency: 1,
    fetchMode: "single",
    timelineType: "media",
    mediaType: "all",
    batchSize: 100,
    startingBatch: 0
  };
  const THEMES = [
    "abyss",
    "acid",
    "aqua",
    "autumn",
    "black",
    "bumblebee",
    "business",
    "caramellatte",
    "cmyk",
    "coffee",
    "corporate",
    "cupcake",
    "cyberpunk",
    "dark",
    "dim",
    "dracula",
    "emerald",
    "fantasy",
    "forest",
    "garden",
    "halloween",
    "lemonade",
    "light",
    "lofi",
    "luxury",
    "night",
    "nord",
    "pastel",
    "retro",
    "silk",
    "sunset",
    "synthwave",
    "valentine",
    "winter",
    "wireframe"
  ];
  const LOCAL_STORAGE_KEY = "twitter-x-media-batch-downloader-pro";
  class AppOptionsManager {
    appOptions = { ...DEFAULT_APP_OPTIONS };
    previous = { ...DEFAULT_APP_OPTIONS };
    signal = new signals.Signal(0);
    constructor() {
      this.loadAppOptions();
    }
    get(key, defaultValue) {
      return this.appOptions[key] ?? defaultValue;
    }
    set(key, value) {
      this.appOptions[key] = value;
      this.saveAppOptions();
    }
    loadAppOptions() {
      this.appOptions = {
        ...this.appOptions,
        ...safeJSONParse(localStorage.getItem(LOCAL_STORAGE_KEY) || "{}")
      };
      let migrated = false;
      const tt = String(this.appOptions.timelineType ?? "");
      if (tt === "posts") {
        this.appOptions.timelineType = "timeline";
        migrated = true;
      } else if (tt === "replies") {
        this.appOptions.timelineType = "with_replies";
        migrated = true;
      }
      if (migrated) {
        logger.info("App options migrated: timelineType updated to new slugs");
        setTimeout(() => this.saveAppOptions(), 0);
      }
      const oldVersion = this.appOptions.version ?? "";
      const newVersion = DEFAULT_APP_OPTIONS.version;
      if (newVersion.startsWith("1.1") && oldVersion.startsWith("1.0")) {
        this.appOptions.disabledExtensions = [
          ...this.appOptions.disabledExtensions ?? [],
          "HomeTimelineModule",
          "ListTimelineModule"
        ];
        logger.info(`App options migrated from v${oldVersion} to v${newVersion}`);
        setTimeout(() => this.saveAppOptions(), 0);
      }
      this.previous = { ...this.appOptions };
      logger.info("App options loaded", this.appOptions);
      this.signal.value++;
    }
    saveAppOptions() {
      const oldValue = this.previous;
      const newValue = {
        ...this.appOptions,
        version: pkg.version
      };
      if (isEqual(oldValue, newValue)) {
        return;
      }
      this.appOptions = newValue;
      localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(this.appOptions));
      this.previous = { ...this.appOptions };
      logger.debug("App options saved", this.appOptions);
      this.signal.value++;
    }
  }
  const appOptionsManager = new AppOptionsManager();
  const LANGUAGES_CONFIG = {
    ar: {
      name: "العربية",
      nameEn: "Arabic (العربية)",
      test: (code) => /^ar/.test(code)
    },
    "zh-Hans": {
      name: "中文",
      nameEn: "Chinese (中文)",
      test: (code) => /^zh/.test(code)
    },
    nl: {
      name: "Nederlands",
      nameEn: "Dutch (Nederlands)",
      test: (code) => /^nl/.test(code)
    },
    en: {
      name: "English",
      nameEn: "English",
      test: (code) => /^en/.test(code)
    },
    fil: {
      name: "Filipino",
      nameEn: "Filipino",
      test: (code) => /^fil/.test(code)
    },
    fr: {
      name: "Français",
      nameEn: "French (Français)",
      test: (code) => /^fr/.test(code)
    },
    de: {
      name: "Deutsch",
      nameEn: "German (Deutsch)",
      test: (code) => /^de/.test(code)
    },
    hi: {
      name: "हिन्दी",
      nameEn: "Hindi (हिन्दी)",
      test: (code) => /^hi/.test(code)
    },
    id: {
      name: "Bahasa Indonesia",
      nameEn: "Indonesian (Bahasa Indonesia)",
      test: (code) => /^id/.test(code)
    },
    it: {
      name: "Italiano",
      nameEn: "Italian (Italiano)",
      test: (code) => /^it/.test(code)
    },
    ja: {
      name: "日本語",
      nameEn: "Japanese (日本語)",
      test: (code) => /^ja/.test(code)
    },
    ko: {
      name: "한국어",
      nameEn: "Korean (한국어)",
      test: (code) => /^ko/.test(code)
    },
    pt: {
      name: "Português",
      nameEn: "Portuguese (Português)",
      test: (code) => /^pt/.test(code)
    },
    ru: {
      name: "Русский",
      nameEn: "Russian (Русский)",
      test: (code) => /^ru/.test(code)
    },
    es: {
      name: "Español",
      nameEn: "Spanish (Español)",
      test: (code) => /^es/.test(code)
    },
    th: {
      name: "ไทย",
      nameEn: "Thai (ไทย)",
      test: (code) => /^th/.test(code)
    },
    tr: {
      name: "Türkçe",
      nameEn: "Turkish (Türkçe)",
      test: (code) => /^tr/.test(code)
    },
    vi: {
      name: "Tiếng Việt",
      nameEn: "Vietnamese (Tiếng Việt)",
      test: (code) => /^vi/.test(code)
    }
  };
  function detectBrowserLanguage() {
    const language = window.navigator.language || "en";
    for (const [langTag, langConf] of Object.entries(LANGUAGES_CONFIG)) {
      if (langConf.test(language)) {
        return langTag;
      }
    }
    return language;
  }
  const languageDetector = {
    type: "languageDetector",
    detect: function() {
      return appOptionsManager.get("language") || detectBrowserLanguage();
    }
  };
  function initI18n() {
    if (i18next.isInitialized) {
      return i18next;
    }
    i18next.on("languageChanged", (lng) => {
      if (!appOptionsManager.get("language")) {
        appOptionsManager.set("language", lng);
      }
    });
    i18next.use(languageDetector).init({
      initImmediate: true,
      defaultNS: "common",
      fallbackLng: "en",
      nsSeparator: "::",
      debug: appOptionsManager.get("debug"),
      resources
    });
    return i18next;
  }
  function useTranslation(ns) {
    const i18n = initI18n();
    const [t, setT] = hooks.useState(() => i18n.getFixedT(null, ns ?? null));
    const isMountedRef = hooks.useRef(true);
    const previousNamespaceRef = hooks.useRef(ns);
    hooks.useEffect(() => {
      isMountedRef.current = true;
      if (previousNamespaceRef.current !== ns) {
        previousNamespaceRef.current = ns;
        setT(() => i18n.getFixedT(null, ns ?? null));
      }
      function boundReset() {
        if (isMountedRef.current) {
          setT(() => i18n.getFixedT(null, ns ?? null));
        }
      }
      i18n.on("languageChanged", boundReset);
      return () => {
        isMountedRef.current = false;
        i18n.off("languageChanged", boundReset);
      };
    }, [ns]);
    return { t, i18n };
  }
  function Trans({ i18nKey, ns = "common" }) {
    const { t } = useTranslation(ns);
    return u("span", { children: t(i18nKey) });
  }
  class ErrorBoundary extends preact.Component {
    state = { error: null };
    static getDerivedStateFromError(err) {
      return { error: err.message };
    }
    componentDidCatch(err) {
      logger.error(err.message, err);
      this.setState({ error: err.message });
    }
    render() {
      const i18n = initI18n();
      const isArabic = (i18n.language || "").startsWith("ar");
      if (this.state.error) {
        return u("div", { class: "alert alert-error alert-soft p-2", children: [
u(IconExclamationCircle, {}),
u("div", { dir: isArabic ? "rtl" : void 0, children: [
u("h3", { class: "font-bold leading-normal", children: u(Trans, { ns: "common", i18nKey: "Something went wrong." }) }),
u("p", { class: "text-xs", children: [
u(Trans, { ns: "common", i18nKey: "Error:" }),
              " ",
              this.state.error
            ] })
          ] })
        ] });
      }
      return this.props.children;
    }
  }
  const API_CONFIG = {
    primary: "https://oregon.exyezed.cc",
    alternate: "https://frankfurt.exyezed.cc",
    timeout: 6e4
  };
  const mediaDownloaderAPI = {
    async fetchMediaData(username, authToken, patreonAuth, params) {
      const timelineType = params?.timelineType ?? "media";
      const batchSize = params?.batchSize ?? 100;
      const startingBatch = params?.startingBatch ?? 0;
      const mediaType = params?.mediaType ?? "all";
      const fetchMode = params?.fetchMode;
      let endpoint;
      if (patreonAuth === "xbatchdemo") {
        endpoint = `/demo/media/all/xbatchdemo/${authToken}/xbatchdemo`;
      } else if (fetchMode === "single") {
        endpoint = `/metadata/${encodeURIComponent(timelineType)}/${encodeURIComponent(mediaType)}/${encodeURIComponent(username)}/${encodeURIComponent(authToken)}/${encodeURIComponent(patreonAuth)}`;
      } else {
        endpoint = `/metadata/${encodeURIComponent(timelineType)}/${encodeURIComponent(String(batchSize))}/${encodeURIComponent(String(startingBatch))}/${encodeURIComponent(mediaType)}/${encodeURIComponent(username)}/${encodeURIComponent(authToken)}/${encodeURIComponent(patreonAuth)}`;
      }
      try {
        const response = await this.makeRequest(API_CONFIG.primary + endpoint);
        return response;
      } catch (primaryError) {
        console.warn("Primary API failed, trying alternate:", primaryError);
        try {
          const response = await this.makeRequest(API_CONFIG.alternate + endpoint);
          return response;
        } catch (alternateError) {
          console.error("All APIs failed:", { primaryError, alternateError });
          throw new Error("Failed to fetch data from all APIs");
        }
      }
    },
    async makeRequest(url) {
      return new Promise((resolve, reject) => {
        if (typeof GM_xmlhttpRequest !== "undefined") {
          GM_xmlhttpRequest({
            method: "GET",
            url,
            timeout: API_CONFIG.timeout,
            headers: {
              "Accept": "application/json",
              "Content-Type": "application/json"
            },
            onload: (response) => {
              try {
                if (response.status !== 200) {
                  reject(new Error(`HTTP error! status: ${response.status}`));
                  return;
                }
                const data = JSON.parse(response.responseText);
                if (!this.validateResponse(data)) {
                  reject(new Error("Invalid API response structure"));
                  return;
                }
                resolve(data);
              } catch (parseError) {
                reject(new Error("Failed to parse API response"));
              }
            },
            onerror: () => {
              reject(new Error("Network error occurred"));
            },
            ontimeout: () => {
              reject(new Error("Request timeout - please try again"));
            }
          });
        } else {
          this.makeRequestWithFetch(url).then(resolve).catch(reject);
        }
      });
    },
    async makeRequestWithFetch(url) {
      const controller = new AbortController();
      const timeoutId = setTimeout(() => controller.abort(), API_CONFIG.timeout);
      try {
        const response = await fetch(url, {
          method: "GET",
          signal: controller.signal,
          headers: {
            "Accept": "application/json",
            "Content-Type": "application/json"
          }
        });
        clearTimeout(timeoutId);
        if (!response.ok) {
          throw new Error(`HTTP error! status: ${response.status}`);
        }
        const data = await response.json();
        if (!this.validateResponse(data)) {
          throw new Error("Invalid API response structure");
        }
        return data;
      } catch (error) {
        clearTimeout(timeoutId);
        if (error instanceof Error) {
          if (error.name === "AbortError") {
            throw new Error("Request timeout - please try again");
          }
          throw error;
        }
        throw new Error("Unknown error occurred");
      }
    },
    validateResponse(data) {
      return data && typeof data === "object" && data.account_info && typeof data.account_info === "object" && data.metadata && typeof data.metadata === "object" && Array.isArray(data.timeline);
    },
    formatUsername(username) {
      return username.replace(/^@/, "").trim().toLowerCase();
    },
    validateUsername(username) {
      const cleanUsername = this.formatUsername(username);
      return /^[a-zA-Z0-9_]{1,15}$/.test(cleanUsername);
    },
    validateAuthToken(token) {
      return token.trim().length > 10;
    },
    validatePatreonAuth(auth) {
      return auth.trim().length > 0;
    },
    async verifyPatreonAuth(patreonAuth) {
      if (patreonAuth === "xbatchdemo") {
        return { valid: true };
      }
      const endpoint = `/verify/${patreonAuth}`;
      try {
        const response = await this.makeAuthRequest(API_CONFIG.primary + endpoint);
        return response;
      } catch (primaryError) {
        console.warn("Primary API failed, trying alternate:", primaryError);
        try {
          const response = await this.makeAuthRequest(API_CONFIG.alternate + endpoint);
          return response;
        } catch (alternateError) {
          console.error("All APIs failed:", { primaryError, alternateError });
          throw new Error("Failed to verify auth from all APIs");
        }
      }
    },
    async generateAuthToken(patreonAuth) {
      const endpoint = `/token/${patreonAuth}`;
      try {
        const response = await this.makeAuthRequest(API_CONFIG.primary + endpoint);
        return response;
      } catch (primaryError) {
        console.warn("Primary API failed, trying alternate:", primaryError);
        try {
          const response = await this.makeAuthRequest(API_CONFIG.alternate + endpoint);
          return response;
        } catch (alternateError) {
          console.error("All APIs failed:", { primaryError, alternateError });
          throw new Error("Failed to generate token from all APIs");
        }
      }
    },
    async makeAuthRequest(url) {
      return new Promise((resolve, reject) => {
        if (typeof GM_xmlhttpRequest !== "undefined") {
          GM_xmlhttpRequest({
            method: "GET",
            url,
            timeout: API_CONFIG.timeout,
            headers: {
              "Accept": "application/json",
              "Content-Type": "application/json"
            },
            onload: (response) => {
              try {
                if (response.status !== 200) {
                  reject(new Error(`HTTP error! status: ${response.status}`));
                  return;
                }
                const data = JSON.parse(response.responseText);
                resolve(data);
              } catch (parseError) {
                reject(new Error("Failed to parse API response"));
              }
            },
            onerror: () => {
              reject(new Error("Network error occurred"));
            },
            ontimeout: () => {
              reject(new Error("Request timeout - please try again"));
            }
          });
        } else {
          this.makeAuthRequestWithFetch(url).then(resolve).catch(reject);
        }
      });
    },
    async makeAuthRequestWithFetch(url) {
      const controller = new AbortController();
      const timeoutId = setTimeout(() => controller.abort(), API_CONFIG.timeout);
      try {
        const response = await fetch(url, {
          method: "GET",
          signal: controller.signal,
          headers: {
            "Accept": "application/json",
            "Content-Type": "application/json"
          }
        });
        clearTimeout(timeoutId);
        if (!response.ok) {
          throw new Error(`HTTP error! status: ${response.status}`);
        }
        const data = await response.json();
        return data;
      } catch (error) {
        clearTimeout(timeoutId);
        if (error instanceof Error) {
          if (error.name === "AbortError") {
            throw new Error("Request timeout - please try again");
          }
          throw error;
        }
        throw new Error("Unknown error occurred");
      }
    }
  };
  class MediaDownloaderDB extends Dexie {
    accounts;
    auth_settings;
    constructor() {
      super("TwitterXMediaBatchDownloaderPro");
      this.version(1).stores({
        accounts: "++id, username, cached_at",
        auth_settings: "++id"
      });
      this.version(2).stores({
        accounts: "++id, username, cached_at, batch_identifier",
        auth_settings: "++id"
      });
    }
  }
  const mediaDB = new MediaDownloaderDB();
  const dbState = {
    totalAccounts: signals.signal(0),
    dbChangeSignal: signals.signal(0)
  };
  async function updateTotalCount() {
    try {
      dbState.totalAccounts.value = await mediaDB.accounts.count();
    } catch {
    }
  }
  const mediaDownloaderDB = {
    async saveAccount(data) {
      const account = {
        ...data,
        cached_at: Date.now()
      };
      let existing;
      if (account.batch_mode && account.batch_mode !== "single") {
        const batchAccounts = await mediaDB.accounts.where("username").equals(data.username).filter((acc) => !!(acc.batch_mode && acc.batch_mode !== "single")).toArray();
        if (batchAccounts.length > 0) {
          batchAccounts.sort((a, b) => b.cached_at - a.cached_at);
          existing = batchAccounts[0];
        }
      } else {
        existing = await mediaDB.accounts.where("username").equals(data.username).filter((acc) => !acc.batch_mode || acc.batch_mode === "single").first();
      }
      let id2;
      if (existing) {
        await mediaDB.accounts.update(existing.id, account);
        id2 = existing.id;
      } else {
        id2 = await mediaDB.accounts.add(account);
      }
      await updateTotalCount();
      dbState.dbChangeSignal.value++;
      return id2;
    },
    async insertAccount(data) {
      const id2 = await mediaDB.accounts.add(data);
      await updateTotalCount();
      dbState.dbChangeSignal.value++;
      return id2;
    },
    async getAccounts(page = 1, limit = 3, filterByBatch = false) {
      const offset = (page - 1) * limit;
      let collection = mediaDB.accounts.orderBy("cached_at").reverse();
      if (filterByBatch) {
        collection = collection.filter((acc) => !!(acc.batch_mode && acc.batch_mode !== "single"));
      }
      return await collection.offset(offset).limit(limit).toArray();
    },
    async getAccountsCount(filterByBatch = false) {
      if (filterByBatch) {
        return await mediaDB.accounts.filter((acc) => !!(acc.batch_mode && acc.batch_mode !== "single")).count();
      }
      return await mediaDB.accounts.count();
    },
    async getAccountByUsername(username) {
      return await mediaDB.accounts.where("username").equals(username).first();
    },
    async getAccountsByUsername(username) {
      return await mediaDB.accounts.where("username").equals(username).reverse().sortBy("cached_at");
    },
    async getAccountsByUsernameAndMode(username, mode) {
      if (mode === "single") {
        const account = await mediaDB.accounts.where("username").equals(username).filter((acc) => !acc.batch_mode || acc.batch_mode === "single").first();
        return account ? [account] : [];
      } else {
        return await mediaDB.accounts.where("username").equals(username).filter((acc) => !!(acc.batch_mode && acc.batch_mode !== "single")).toArray();
      }
    },
    async updateAccount(id2, data) {
      await mediaDB.accounts.update(id2, data);
      dbState.dbChangeSignal.value++;
    },
    async deleteAccount(id2) {
      await mediaDB.accounts.delete(id2);
      await updateTotalCount();
      dbState.dbChangeSignal.value++;
    },
    async saveAuthSettings(authToken, patreonAuth) {
      const existing = await mediaDB.auth_settings.toCollection().first();
      const base = existing ? { ...existing } : {};
      const settings = {
        ...base,
        auth_token: authToken,
        patreon_auth: patreonAuth,
        updated_at: Date.now(),
        patreon_verified: base.patreon_verified && base.patreon_verified_auth === patreonAuth ? base.patreon_verified : false,
        patreon_verified_auth: base.patreon_verified && base.patreon_verified_auth === patreonAuth ? base.patreon_verified_auth : patreonAuth
      };
      if (existing) {
        await mediaDB.auth_settings.update(existing.id, settings);
        return existing.id;
      } else {
        return await mediaDB.auth_settings.add(settings);
      }
    },
    async setPatreonVerified(verified) {
      const existing = await mediaDB.auth_settings.toCollection().first();
      if (existing) {
        await mediaDB.auth_settings.update(existing.id, {
          patreon_verified: verified,
          patreon_verified_auth: existing.patreon_auth,
          updated_at: Date.now()
        });
      } else {
        await mediaDB.auth_settings.add({
          auth_token: "",
          patreon_auth: "",
          patreon_verified: verified,
          patreon_verified_auth: "",
          updated_at: Date.now()
        });
      }
    },
    async getAuthSettings() {
      return await mediaDB.auth_settings.toCollection().first();
    },
    async getAllAccounts() {
      return await mediaDB.accounts.orderBy("cached_at").reverse().toArray();
    },
    async clearAll() {
      await mediaDB.accounts.clear();
      dbState.totalAccounts.value = 0;
      dbState.dbChangeSignal.value++;
    }
  };
  class Crc32 {
    constructor() {
      this.crc = -1;
    }
    append(data) {
      var crc = this.crc | 0;
      var table = this.table;
      for (var offset = 0, len = data.length | 0; offset < len; offset++) {
        crc = crc >>> 8 ^ table[(crc ^ data[offset]) & 255];
      }
      this.crc = crc;
    }
    get() {
      return ~this.crc;
    }
  }
  Crc32.prototype.table = (() => {
    var i;
    var j2;
    var t;
    var table = [];
    for (i = 0; i < 256; i++) {
      t = i;
      for (j2 = 0; j2 < 8; j2++) {
        t = t & 1 ? t >>> 1 ^ 3988292384 : t >>> 1;
      }
      table[i] = t;
    }
    return table;
  })();
  const getDataHelper = (byteLength) => {
    var uint8 = new Uint8Array(byteLength);
    return {
      array: uint8,
      view: new DataView(uint8.buffer)
    };
  };
  const pump = (zipObj) => zipObj.reader.read().then((chunk) => {
    if (chunk.done) return zipObj.writeFooter();
    const outputData = chunk.value;
    zipObj.crc.append(outputData);
    zipObj.uncompressedLength += outputData.length;
    zipObj.compressedLength += outputData.length;
    zipObj.ctrl.enqueue(outputData);
  });
  function createWriter(underlyingSource) {
    const files = Object.create(null);
    const filenames = [];
    const encoder = new TextEncoder();
    let offset = 0;
    let activeZipIndex = 0;
    let ctrl;
    let activeZipObject, closed;
    function next() {
      activeZipIndex++;
      activeZipObject = files[filenames[activeZipIndex]];
      if (activeZipObject) processNextChunk();
      else if (closed) closeZip();
    }
    var zipWriter = {
      enqueue(fileLike) {
        if (closed)
          throw new TypeError(
            "Cannot enqueue a chunk into a readable stream that is closed or has been requested to be closed"
          );
        let name = fileLike.name.trim();
        const date = new Date(
          typeof fileLike.lastModified === "undefined" ? Date.now() : fileLike.lastModified
        );
        if (fileLike.directory && !name.endsWith("/")) name += "/";
        if (files[name]) throw new Error("File already exists.");
        const nameBuf = encoder.encode(name);
        filenames.push(name);
        const zipObject = files[name] = {
          level: 0,
          ctrl,
          directory: !!fileLike.directory,
          nameBuf,
          comment: encoder.encode(fileLike.comment || ""),
          compressedLength: 0,
          uncompressedLength: 0,
          writeHeader() {
            var header = getDataHelper(26);
            var data = getDataHelper(30 + nameBuf.length);
            zipObject.offset = offset;
            zipObject.header = header;
            if (zipObject.level !== 0 && !zipObject.directory) {
              header.view.setUint16(4, 2048);
            }
            header.view.setUint32(0, 335546376);
            header.view.setUint16(
              6,
              (date.getHours() << 6 | date.getMinutes()) << 5 | date.getSeconds() / 2,
              true
            );
            header.view.setUint16(
              8,
              (date.getFullYear() - 1980 << 4 | date.getMonth() + 1) << 5 | date.getDate(),
              true
            );
            header.view.setUint16(22, nameBuf.length, true);
            data.view.setUint32(0, 1347093252);
            data.array.set(header.array, 4);
            data.array.set(nameBuf, 30);
            offset += data.array.length;
            ctrl.enqueue(data.array);
          },
          writeFooter() {
            var footer = getDataHelper(16);
            footer.view.setUint32(0, 1347094280);
            if (zipObject.crc) {
              zipObject.header.view.setUint32(10, zipObject.crc.get(), true);
              zipObject.header.view.setUint32(14, zipObject.compressedLength, true);
              zipObject.header.view.setUint32(18, zipObject.uncompressedLength, true);
              footer.view.setUint32(4, zipObject.crc.get(), true);
              footer.view.setUint32(8, zipObject.compressedLength, true);
              footer.view.setUint32(12, zipObject.uncompressedLength, true);
            }
            ctrl.enqueue(footer.array);
            offset += zipObject.compressedLength + 16;
            next();
          },
          fileLike
        };
        if (!activeZipObject) {
          activeZipObject = zipObject;
          processNextChunk();
        }
      },
      close() {
        if (closed)
          throw new TypeError(
            "Cannot close a readable stream that has already been requested to be closed"
          );
        if (!activeZipObject) closeZip();
        closed = true;
      }
    };
    function closeZip() {
      var length = 0;
      var index = 0;
      var indexFilename, file;
      for (indexFilename = 0; indexFilename < filenames.length; indexFilename++) {
        file = files[filenames[indexFilename]];
        length += 46 + file.nameBuf.length + file.comment.length;
      }
      const data = getDataHelper(length + 22);
      for (indexFilename = 0; indexFilename < filenames.length; indexFilename++) {
        file = files[filenames[indexFilename]];
        data.view.setUint32(index, 1347092738);
        data.view.setUint16(index + 4, 5120);
        data.array.set(file.header.array, index + 6);
        data.view.setUint16(index + 32, file.comment.length, true);
        if (file.directory) {
          data.view.setUint8(index + 38, 16);
        }
        data.view.setUint32(index + 42, file.offset, true);
        data.array.set(file.nameBuf, index + 46);
        data.array.set(file.comment, index + 46 + file.nameBuf.length);
        index += 46 + file.nameBuf.length + file.comment.length;
      }
      data.view.setUint32(index, 1347093766);
      data.view.setUint16(index + 8, filenames.length, true);
      data.view.setUint16(index + 10, filenames.length, true);
      data.view.setUint32(index + 12, length, true);
      data.view.setUint32(index + 16, offset, true);
      ctrl.enqueue(data.array);
      ctrl.close();
    }
    function processNextChunk() {
      if (!activeZipObject) return;
      if (activeZipObject.directory)
        return activeZipObject.writeFooter(activeZipObject.writeHeader());
      if (activeZipObject.reader) return pump(activeZipObject);
      if (activeZipObject.fileLike.stream) {
        activeZipObject.crc = new Crc32();
        activeZipObject.reader = activeZipObject.fileLike.stream().getReader();
        activeZipObject.writeHeader();
      } else next();
    }
    return new ReadableStream({
      start: (c) => {
        ctrl = c;
        if (underlyingSource.start) Promise.resolve(underlyingSource.start(zipWriter));
      },
      pull() {
        return processNextChunk() || underlyingSource.pull && Promise.resolve(underlyingSource.pull(zipWriter));
      }
    });
  }
  function isFSASupported() {
    return "showSaveFilePicker" in window;
  }
  async function getDownloadStream(filename, useNativePicker = true) {
    if (isFSASupported() && useNativePicker) {
      try {
        logger.info(`Using File System Access API for ${filename}`);
        const fileHandle = await window.showSaveFilePicker({
          suggestedName: filename,
          types: [
            {
              description: "ZIP Archive",
              accept: { "application/zip": [".zip"] }
            }
          ]
        });
        const writable = await fileHandle.createWritable();
        logger.info("FSA writable stream created successfully");
        return writable;
      } catch (error) {
        if (error.name === "AbortError") {
          logger.info("User cancelled file picker");
          throw new Error("Download cancelled");
        }
        logger.warn(`FSA failed, falling back to StreamSaver: ${error.message}`);
      }
    }
    logger.warn("FSA not available, will use blob fallback");
    throw new Error("FSA_NOT_AVAILABLE");
  }
  async function streamToFile(readableStream, filename, useNativePicker = true, onProgress) {
    try {
      const writableStream = await getDownloadStream(filename, useNativePicker);
      if (onProgress) ;
      else {
        await readableStream.pipeTo(writableStream);
      }
      logger.info(`Streaming download completed via FSA: ${filename}`);
    } catch (error) {
      if (error.message === "FSA_NOT_AVAILABLE" || error.name === "AbortError") {
        if (error.name === "AbortError") {
          throw error;
        }
        logger.info(`Fallback to blob download for: ${filename}`);
        await streamToBlobDownload(readableStream, filename, onProgress);
      } else {
        throw error;
      }
    }
  }
  async function streamToBlobDownload(readableStream, filename, onProgress) {
    const chunks = [];
    let bytesWritten = 0;
    const reader = readableStream.getReader();
    try {
      while (true) {
        const { done, value } = await reader.read();
        if (done) break;
        chunks.push(value);
        bytesWritten += value.byteLength || value.length || 0;
        if (onProgress) ;
      }
    } finally {
      reader.releaseLock();
    }
    const blob = new Blob(chunks);
    fileSaverEs.saveAs(blob, filename);
    logger.info(`Blob download completed: ${filename} (${bytesWritten} bytes)`);
  }
  async function zipStreamDownload(zipFilename, files, onProgress, rateLimit = 1e3, concurrency = 1, abortSignal) {
    let current = 0;
    const total = files.length;
    if (concurrency <= 1) {
      const fileIterator = files.values();
      const readableZipStream2 = createWriter({
        async pull(ctrl) {
          if (abortSignal?.aborted) {
            logger.info(`Download aborted. Zipping ${current} files that were downloaded.`);
            ctrl.close();
            return;
          }
          const fileInfo = fileIterator.next();
          if (fileInfo.done) {
            ctrl.close();
          } else {
            const { filename, url } = fileInfo.value;
            const start = Date.now();
            logger.debug(`Start downloading ${filename} from ${url}`);
            try {
              const res = await fetch(url);
              if (abortSignal?.aborted) {
                logger.info(`Download aborted. Zipping ${current} files that were downloaded.`);
                ctrl.close();
                return;
              }
              ctrl.enqueue({
                name: filename,
                stream: () => res.body
              });
              onProgress?.(++current, total, fileInfo.value);
              logger.debug(`Finished downloading ${filename} in ${Date.now() - start}ms`);
              await new Promise((resolve) => setTimeout(resolve, rateLimit));
            } catch (error) {
              if (abortSignal?.aborted) {
                logger.info(`Download aborted. Zipping ${current} files that were downloaded.`);
                ctrl.close();
                return;
              }
              throw error;
            }
          }
        }
      });
      logger.info(`Exporting to ZIP file: ${zipFilename}`);
      logger.info(`Using ${isFSASupported() ? "File System Access API" : "StreamSaver.js"} for streaming`);
      await streamToFile(readableZipStream2, zipFilename);
      return;
    }
    let completed = 0;
    let fileIndex = 0;
    const queue = [];
    let resolveNext = null;
    let isZipClosed = false;
    const downloadWorker = async () => {
      while (fileIndex < files.length) {
        if (abortSignal?.aborted) {
          logger.info("Download aborted, stopping worker");
          fileIndex = files.length;
          break;
        }
        const currentFileIndex = fileIndex++;
        const file = files[currentFileIndex];
        if (!file) continue;
        const start = Date.now();
        logger.debug(`Start downloading ${file.filename} from ${file.url}`);
        try {
          const fetchPromise = fetch(file.url);
          const abortCheckInterval = 100;
          const res = await Promise.race([
            fetchPromise,
            new Promise((_, reject) => {
              const checkInterval = setInterval(() => {
                if (abortSignal?.aborted) {
                  clearInterval(checkInterval);
                  reject(new Error("Download aborted"));
                }
              }, abortCheckInterval);
              fetchPromise.finally(() => clearInterval(checkInterval));
            })
          ]);
          if (abortSignal?.aborted) {
            logger.info("Download aborted after fetching file, stopping");
            fileIndex = files.length;
            break;
          }
          const body = res.body;
          if (!body) {
            logger.error(`No response body for ${file.filename}`);
            continue;
          }
          queue.push({
            name: file.filename,
            stream: () => body,
            original: file
          });
          logger.debug(`Finished downloading ${file.filename} in ${Date.now() - start}ms`);
          if (resolveNext) {
            const resolve = resolveNext;
            resolveNext = null;
            resolve();
          }
        } catch (error) {
          if (abortSignal?.aborted) {
            logger.info("Download aborted during fetch, stopping");
            fileIndex = files.length;
            break;
          }
          logger.error(`Failed to download ${file.filename}:`, error);
        }
      }
      if (resolveNext && !isZipClosed) {
        const resolve = resolveNext;
        resolveNext = null;
        resolve();
      }
    };
    const workers = Array.from({ length: Math.min(concurrency, files.length) }, () => downloadWorker());
    const readableZipStream = createWriter({
      async pull(ctrl) {
        if (abortSignal?.aborted && queue.length === 0) {
          isZipClosed = true;
          logger.info(`Download aborted. Zipping ${completed} files that were downloaded.`);
          ctrl.close();
          return;
        }
        while (queue.length === 0 && fileIndex < files.length && !abortSignal?.aborted) {
          await new Promise((resolve) => {
            resolveNext = resolve;
          });
          if (abortSignal?.aborted) {
            break;
          }
        }
        if (queue.length > 0) {
          const fileData = queue.shift();
          if (fileData) {
            ctrl.enqueue({
              name: fileData.name,
              stream: fileData.stream
            });
            onProgress?.(++completed, total, fileData.original);
          }
        } else if (fileIndex >= files.length || abortSignal?.aborted) {
          isZipClosed = true;
          if (abortSignal?.aborted) {
            logger.info(`Download aborted. Zipping ${completed} files that were downloaded.`);
          }
          ctrl.close();
        }
      }
    });
    logger.info(`Exporting to ZIP file: ${zipFilename}`);
    logger.info(`Using ${isFSASupported() ? "File System Access API" : "StreamSaver.js"} for streaming`);
    logger.info(`Download concurrency: ${concurrency}`);
    await Promise.all([
      streamToFile(readableZipStream, zipFilename),
      ...workers
    ]);
  }
  function getGifShotOptions() {
    return {
      sampleInterval: 10,
      numWorkers: 2,
      numFrames: 30,
      interval: 0.1,
      frameDuration: 0.1,
      crossOrigin: "anonymous"
    };
  }
  function getDefaultExportFromCjs(x) {
    return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
  }
  var gifshot$1 = { exports: {} };
  var hasRequiredGifshot;
  function requireGifshot() {
    if (hasRequiredGifshot) return gifshot$1.exports;
    hasRequiredGifshot = 1;
    (function(module, exports) {
      (function(window2, document2, navigator, undefined$1) {
        var utils = {
          URL: window2.URL || window2.webkitURL || window2.mozURL || window2.msURL,
          getUserMedia: (function() {
            var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
            return getUserMedia ? getUserMedia.bind(navigator) : getUserMedia;
          })(),
          requestAnimFrame: window2.requestAnimationFrame || window2.webkitRequestAnimationFrame || window2.mozRequestAnimationFrame || window2.oRequestAnimationFrame || window2.msRequestAnimationFrame,
          requestTimeout: function requestTimeout(callback, delay) {
            callback = callback || utils.noop;
            delay = delay || 0;
            if (!utils.requestAnimFrame) {
              return setTimeout(callback, delay);
            }
            var start = ( new Date()).getTime();
            var handle = new Object();
            var requestAnimFrame = utils.requestAnimFrame;
            var loop = function loop2() {
              var current = ( new Date()).getTime();
              var delta = current - start;
              delta >= delay ? callback.call() : handle.value = requestAnimFrame(loop2);
            };
            handle.value = requestAnimFrame(loop);
            return handle;
          },
          Blob: window2.Blob || window2.BlobBuilder || window2.WebKitBlobBuilder || window2.MozBlobBuilder || window2.MSBlobBuilder,
          btoa: (function() {
            var btoa = window2.btoa || function(input) {
              var output = "";
              var i = 0;
              var l = input.length;
              var key = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
              var chr1 = void 0;
              var chr2 = void 0;
              var chr3 = void 0;
              var enc1 = void 0;
              var enc2 = void 0;
              var enc3 = void 0;
              var enc4 = void 0;
              while (i < l) {
                chr1 = input.charCodeAt(i++);
                chr2 = input.charCodeAt(i++);
                chr3 = input.charCodeAt(i++);
                enc1 = chr1 >> 2;
                enc2 = (chr1 & 3) << 4 | chr2 >> 4;
                enc3 = (chr2 & 15) << 2 | chr3 >> 6;
                enc4 = chr3 & 63;
                if (isNaN(chr2)) {
                  enc3 = enc4 = 64;
                } else if (isNaN(chr3)) {
                  enc4 = 64;
                }
                output = output + key.charAt(enc1) + key.charAt(enc2) + key.charAt(enc3) + key.charAt(enc4);
              }
              return output;
            };
            return btoa ? btoa.bind(window2) : utils.noop;
          })(),
          isObject: function isObject(obj) {
            return obj && Object.prototype.toString.call(obj) === "[object Object]";
          },
          isEmptyObject: function isEmptyObject(obj) {
            return utils.isObject(obj) && !Object.keys(obj).length;
          },
          isArray: function isArray(arr) {
            return arr && Array.isArray(arr);
          },
          isFunction: function isFunction(func) {
            return func && typeof func === "function";
          },
          isElement: function isElement(elem) {
            return elem && elem.nodeType === 1;
          },
          isString: function isString(value) {
            return typeof value === "string" || Object.prototype.toString.call(value) === "[object String]";
          },
          isSupported: {
            canvas: function canvas() {
              var el = document2.createElement("canvas");
              return el && el.getContext && el.getContext("2d");
            },
            webworkers: function webworkers() {
              return window2.Worker;
            },
            blob: function blob() {
              return utils.Blob;
            },
            Uint8Array: function Uint8Array2() {
              return window2.Uint8Array;
            },
            Uint32Array: function Uint32Array2() {
              return window2.Uint32Array;
            },
            videoCodecs: (function() {
              var testEl = document2.createElement("video");
              var supportObj = {
                "mp4": false,
                "h264": false,
                "ogv": false,
                "ogg": false,
                "webm": false
              };
              try {
                if (testEl && testEl.canPlayType) {
                  supportObj.mp4 = testEl.canPlayType('video/mp4; codecs="mp4v.20.8"') !== "";
                  supportObj.h264 = (testEl.canPlayType('video/mp4; codecs="avc1.42E01E"') || testEl.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"')) !== "";
                  supportObj.ogv = testEl.canPlayType('video/ogg; codecs="theora"') !== "";
                  supportObj.ogg = testEl.canPlayType('video/ogg; codecs="theora"') !== "";
                  supportObj.webm = testEl.canPlayType('video/webm; codecs="vp8, vorbis"') !== -1;
                }
              } catch (e) {
              }
              return supportObj;
            })()
          },
          noop: function noop2() {
          },
          each: function each(collection, callback) {
            var x = void 0;
            var len = void 0;
            if (utils.isArray(collection)) {
              x = -1;
              len = collection.length;
              while (++x < len) {
                if (callback(x, collection[x]) === false) {
                  break;
                }
              }
            } else if (utils.isObject(collection)) {
              for (x in collection) {
                if (collection.hasOwnProperty(x)) {
                  if (callback(x, collection[x]) === false) {
                    break;
                  }
                }
              }
            }
          },
          mergeOptions: function mergeOptions(defaultOptions2, userOptions) {
            if (!utils.isObject(defaultOptions2) || !utils.isObject(userOptions) || !Object.keys) {
              return;
            }
            var newObj = {};
            utils.each(defaultOptions2, function(key, val) {
              newObj[key] = defaultOptions2[key];
            });
            utils.each(userOptions, function(key, val) {
              var currentUserOption = userOptions[key];
              if (!utils.isObject(currentUserOption)) {
                newObj[key] = currentUserOption;
              } else {
                if (!defaultOptions2[key]) {
                  newObj[key] = currentUserOption;
                } else {
                  newObj[key] = utils.mergeOptions(defaultOptions2[key], currentUserOption);
                }
              }
            });
            return newObj;
          },
          setCSSAttr: function setCSSAttr(elem, attr, val) {
            if (!utils.isElement(elem)) {
              return;
            }
            if (utils.isString(attr) && utils.isString(val)) {
              elem.style[attr] = val;
            } else if (utils.isObject(attr)) {
              utils.each(attr, function(key, val2) {
                elem.style[key] = val2;
              });
            }
          },
          removeElement: function removeElement(node) {
            if (!utils.isElement(node)) {
              return;
            }
            if (node.parentNode) {
              node.parentNode.removeChild(node);
            }
          },
          createWebWorker: function createWebWorker(content) {
            if (!utils.isString(content)) {
              return {};
            }
            try {
              var blob = new utils.Blob([content], {
                "type": "text/javascript"
              });
              var objectUrl = utils.URL.createObjectURL(blob);
              var worker = new Worker(objectUrl);
              return {
                "objectUrl": objectUrl,
                "worker": worker
              };
            } catch (e) {
              return "" + e;
            }
          },
          getExtension: function getExtension(src) {
            return src.substr(src.lastIndexOf(".") + 1, src.length);
          },
          getFontSize: function getFontSize() {
            var options2 = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {};
            if (!document2.body || options2.resizeFont === false) {
              return options2.fontSize;
            }
            var text = options2.text;
            var containerWidth = options2.gifWidth;
            var fontSize = parseInt(options2.fontSize, 10);
            var minFontSize = parseInt(options2.minFontSize, 10);
            var div = document2.createElement("div");
            var span = document2.createElement("span");
            div.setAttribute("width", containerWidth);
            div.appendChild(span);
            span.innerHTML = text;
            span.style.fontSize = fontSize + "px";
            span.style.textIndent = "-9999px";
            span.style.visibility = "hidden";
            document2.body.appendChild(span);
            while (span.offsetWidth > containerWidth && fontSize >= minFontSize) {
              span.style.fontSize = --fontSize + "px";
            }
            document2.body.removeChild(span);
            return fontSize + "px";
          },
          webWorkerError: false
        };
        var utils$2 = Object.freeze({
          default: utils
        });
        var error = {
          validate: function validate(skipObj) {
            skipObj = utils.isObject(skipObj) ? skipObj : {};
            var errorObj = {};
            utils.each(error.validators, function(indece, currentValidator) {
              var errorCode = currentValidator.errorCode;
              if (!skipObj[errorCode] && !currentValidator.condition) {
                errorObj = currentValidator;
                errorObj.error = true;
                return false;
              }
            });
            delete errorObj.condition;
            return errorObj;
          },
          isValid: function isValid(skipObj) {
            var errorObj = error.validate(skipObj);
            var isValid2 = errorObj.error !== true ? true : false;
            return isValid2;
          },
          validators: [{
            condition: utils.isFunction(utils.getUserMedia),
            errorCode: "getUserMedia",
            errorMsg: "The getUserMedia API is not supported in your browser"
          }, {
            condition: utils.isSupported.canvas(),
            errorCode: "canvas",
            errorMsg: "Canvas elements are not supported in your browser"
          }, {
            condition: utils.isSupported.webworkers(),
            errorCode: "webworkers",
            errorMsg: "The Web Workers API is not supported in your browser"
          }, {
            condition: utils.isFunction(utils.URL),
            errorCode: "window.URL",
            errorMsg: "The window.URL API is not supported in your browser"
          }, {
            condition: utils.isSupported.blob(),
            errorCode: "window.Blob",
            errorMsg: "The window.Blob File API is not supported in your browser"
          }, {
            condition: utils.isSupported.Uint8Array(),
            errorCode: "window.Uint8Array",
            errorMsg: "The window.Uint8Array function constructor is not supported in your browser"
          }, {
            condition: utils.isSupported.Uint32Array(),
            errorCode: "window.Uint32Array",
            errorMsg: "The window.Uint32Array function constructor is not supported in your browser"
          }],
          messages: {
            videoCodecs: {
              errorCode: "videocodec",
              errorMsg: "The video codec you are trying to use is not supported in your browser"
            }
          }
        };
        var error$2 = Object.freeze({
          default: error
        });
        var noop = function noop2() {
        };
        var defaultOptions = {
          sampleInterval: 10,
          numWorkers: 2,
          filter: "",
          gifWidth: 200,
          gifHeight: 200,
          interval: 0.1,
          numFrames: 10,
          frameDuration: 1,
          keepCameraOn: false,
          images: [],
          video: null,
          webcamVideoElement: null,
          cameraStream: null,
          text: "",
          fontWeight: "normal",
          fontSize: "16px",
          minFontSize: "10px",
          resizeFont: false,
          fontFamily: "sans-serif",
          fontColor: "#ffffff",
          textAlign: "center",
          textBaseline: "bottom",
          textXCoordinate: null,
          textYCoordinate: null,
          progressCallback: noop,
          completeCallback: noop,
          saveRenderingContexts: false,
          savedRenderingContexts: [],
          crossOrigin: "Anonymous"
        };
        var defaultOptions$2 = Object.freeze({
          default: defaultOptions
        });
        function isSupported() {
          return error.isValid();
        }
        function isWebCamGIFSupported() {
          return error.isValid();
        }
        function isSupported$1() {
          var options2 = {
            getUserMedia: true
          };
          return error.isValid(options2);
        }
        function isExistingVideoGIFSupported(codecs) {
          var hasValidCodec = false;
          if (utils.isArray(codecs) && codecs.length) {
            utils.each(codecs, function(indece, currentCodec) {
              if (utils.isSupported.videoCodecs[currentCodec]) {
                hasValidCodec = true;
              }
            });
            if (!hasValidCodec) {
              return false;
            }
          } else if (utils.isString(codecs) && codecs.length) {
            if (!utils.isSupported.videoCodecs[codecs]) {
              return false;
            }
          }
          return error.isValid({
            "getUserMedia": true
          });
        }
        function NeuQuant() {
          var netsize = 256;
          var prime1 = 499;
          var prime2 = 491;
          var prime3 = 487;
          var prime4 = 503;
          var minpicturebytes = 3 * prime4;
          var maxnetpos = netsize - 1;
          var netbiasshift = 4;
          var ncycles = 100;
          var intbiasshift = 16;
          var intbias = 1 << intbiasshift;
          var gammashift = 10;
          var betashift = 10;
          var beta = intbias >> betashift;
          var betagamma = intbias << gammashift - betashift;
          var initrad = netsize >> 3;
          var radiusbiasshift = 6;
          var radiusbias = 1 << radiusbiasshift;
          var initradius = initrad * radiusbias;
          var radiusdec = 30;
          var alphabiasshift = 10;
          var initalpha = 1 << alphabiasshift;
          var alphadec;
          var radbiasshift = 8;
          var radbias = 1 << radbiasshift;
          var alpharadbshift = alphabiasshift + radbiasshift;
          var alpharadbias = 1 << alpharadbshift;
          var thepicture;
          var lengthcount;
          var samplefac;
          var network;
          var netindex = [];
          var bias = [];
          var freq = [];
          var radpower = [];
          function NeuQuantConstructor(thepic, len, sample) {
            var i;
            var p;
            thepicture = thepic;
            lengthcount = len;
            samplefac = sample;
            network = new Array(netsize);
            for (i = 0; i < netsize; i++) {
              network[i] = new Array(4);
              p = network[i];
              p[0] = p[1] = p[2] = (i << netbiasshift + 8) / netsize | 0;
              freq[i] = intbias / netsize | 0;
              bias[i] = 0;
            }
          }
          function colorMap() {
            var map2 = [];
            var index = new Array(netsize);
            for (var i = 0; i < netsize; i++) {
              index[network[i][3]] = i;
            }
            var k = 0;
            for (var l = 0; l < netsize; l++) {
              var j2 = index[l];
              map2[k++] = network[j2][0];
              map2[k++] = network[j2][1];
              map2[k++] = network[j2][2];
            }
            return map2;
          }
          function inxbuild() {
            var i;
            var j2;
            var smallpos;
            var smallval;
            var p;
            var q2;
            var previouscol;
            var startpos;
            previouscol = 0;
            startpos = 0;
            for (i = 0; i < netsize; i++) {
              p = network[i];
              smallpos = i;
              smallval = p[1];
              for (j2 = i + 1; j2 < netsize; j2++) {
                q2 = network[j2];
                if (q2[1] < smallval) {
                  smallpos = j2;
                  smallval = q2[1];
                }
              }
              q2 = network[smallpos];
              if (i != smallpos) {
                j2 = q2[0];
                q2[0] = p[0];
                p[0] = j2;
                j2 = q2[1];
                q2[1] = p[1];
                p[1] = j2;
                j2 = q2[2];
                q2[2] = p[2];
                p[2] = j2;
                j2 = q2[3];
                q2[3] = p[3];
                p[3] = j2;
              }
              if (smallval != previouscol) {
                netindex[previouscol] = startpos + i >> 1;
                for (j2 = previouscol + 1; j2 < smallval; j2++) {
                  netindex[j2] = i;
                }
                previouscol = smallval;
                startpos = i;
              }
            }
            netindex[previouscol] = startpos + maxnetpos >> 1;
            for (j2 = previouscol + 1; j2 < 256; j2++) {
              netindex[j2] = maxnetpos;
            }
          }
          function learn() {
            var i;
            var j2;
            var b;
            var g2;
            var r;
            var radius;
            var rad;
            var alpha;
            var step;
            var delta;
            var samplepixels;
            var p;
            var pix;
            var lim;
            if (lengthcount < minpicturebytes) {
              samplefac = 1;
            }
            alphadec = 30 + (samplefac - 1) / 3;
            p = thepicture;
            pix = 0;
            lim = lengthcount;
            samplepixels = lengthcount / (3 * samplefac);
            delta = samplepixels / ncycles | 0;
            alpha = initalpha;
            radius = initradius;
            rad = radius >> radiusbiasshift;
            if (rad <= 1) {
              rad = 0;
            }
            for (i = 0; i < rad; i++) {
              radpower[i] = alpha * ((rad * rad - i * i) * radbias / (rad * rad));
            }
            if (lengthcount < minpicturebytes) {
              step = 3;
            } else if (lengthcount % prime1 !== 0) {
              step = 3 * prime1;
            } else {
              if (lengthcount % prime2 !== 0) {
                step = 3 * prime2;
              } else {
                if (lengthcount % prime3 !== 0) {
                  step = 3 * prime3;
                } else {
                  step = 3 * prime4;
                }
              }
            }
            i = 0;
            while (i < samplepixels) {
              b = (p[pix + 0] & 255) << netbiasshift;
              g2 = (p[pix + 1] & 255) << netbiasshift;
              r = (p[pix + 2] & 255) << netbiasshift;
              j2 = contest(b, g2, r);
              altersingle(alpha, j2, b, g2, r);
              if (rad !== 0) {
                alterneigh(rad, j2, b, g2, r);
              }
              pix += step;
              if (pix >= lim) {
                pix -= lengthcount;
              }
              i++;
              if (delta === 0) {
                delta = 1;
              }
              if (i % delta === 0) {
                alpha -= alpha / alphadec;
                radius -= radius / radiusdec;
                rad = radius >> radiusbiasshift;
                if (rad <= 1) {
                  rad = 0;
                }
                for (j2 = 0; j2 < rad; j2++) {
                  radpower[j2] = alpha * ((rad * rad - j2 * j2) * radbias / (rad * rad));
                }
              }
            }
          }
          function map(b, g2, r) {
            var i;
            var j2;
            var dist;
            var a;
            var bestd;
            var p;
            var best;
            bestd = 1e3;
            best = -1;
            i = netindex[g2];
            j2 = i - 1;
            while (i < netsize || j2 >= 0) {
              if (i < netsize) {
                p = network[i];
                dist = p[1] - g2;
                if (dist >= bestd) {
                  i = netsize;
                } else {
                  i++;
                  if (dist < 0) {
                    dist = -dist;
                  }
                  a = p[0] - b;
                  if (a < 0) {
                    a = -a;
                  }
                  dist += a;
                  if (dist < bestd) {
                    a = p[2] - r;
                    if (a < 0) {
                      a = -a;
                    }
                    dist += a;
                    if (dist < bestd) {
                      bestd = dist;
                      best = p[3];
                    }
                  }
                }
              }
              if (j2 >= 0) {
                p = network[j2];
                dist = g2 - p[1];
                if (dist >= bestd) {
                  j2 = -1;
                } else {
                  j2--;
                  if (dist < 0) {
                    dist = -dist;
                  }
                  a = p[0] - b;
                  if (a < 0) {
                    a = -a;
                  }
                  dist += a;
                  if (dist < bestd) {
                    a = p[2] - r;
                    if (a < 0) {
                      a = -a;
                    }
                    dist += a;
                    if (dist < bestd) {
                      bestd = dist;
                      best = p[3];
                    }
                  }
                }
              }
            }
            return best;
          }
          function process() {
            learn();
            unbiasnet();
            inxbuild();
            return colorMap();
          }
          function unbiasnet() {
            var i;
            for (i = 0; i < netsize; i++) {
              network[i][0] >>= netbiasshift;
              network[i][1] >>= netbiasshift;
              network[i][2] >>= netbiasshift;
              network[i][3] = i;
            }
          }
          function alterneigh(rad, i, b, g2, r) {
            var j2;
            var k;
            var lo;
            var hi2;
            var a;
            var m;
            var p;
            lo = i - rad;
            if (lo < -1) {
              lo = -1;
            }
            hi2 = i + rad;
            if (hi2 > netsize) {
              hi2 = netsize;
            }
            j2 = i + 1;
            k = i - 1;
            m = 1;
            while (j2 < hi2 || k > lo) {
              a = radpower[m++];
              if (j2 < hi2) {
                p = network[j2++];
                try {
                  p[0] -= a * (p[0] - b) / alpharadbias | 0;
                  p[1] -= a * (p[1] - g2) / alpharadbias | 0;
                  p[2] -= a * (p[2] - r) / alpharadbias | 0;
                } catch (e) {
                }
              }
              if (k > lo) {
                p = network[k--];
                try {
                  p[0] -= a * (p[0] - b) / alpharadbias | 0;
                  p[1] -= a * (p[1] - g2) / alpharadbias | 0;
                  p[2] -= a * (p[2] - r) / alpharadbias | 0;
                } catch (e) {
                }
              }
            }
          }
          function altersingle(alpha, i, b, g2, r) {
            var n = network[i];
            var alphaMult = alpha / initalpha;
            n[0] -= alphaMult * (n[0] - b) | 0;
            n[1] -= alphaMult * (n[1] - g2) | 0;
            n[2] -= alphaMult * (n[2] - r) | 0;
          }
          function contest(b, g2, r) {
            var i;
            var dist;
            var a;
            var biasdist;
            var betafreq;
            var bestpos;
            var bestbiaspos;
            var bestd;
            var bestbiasd;
            var n;
            bestd = 2147483647;
            bestbiasd = bestd;
            bestpos = -1;
            bestbiaspos = bestpos;
            for (i = 0; i < netsize; i++) {
              n = network[i];
              dist = n[0] - b;
              if (dist < 0) {
                dist = -dist;
              }
              a = n[1] - g2;
              if (a < 0) {
                a = -a;
              }
              dist += a;
              a = n[2] - r;
              if (a < 0) {
                a = -a;
              }
              dist += a;
              if (dist < bestd) {
                bestd = dist;
                bestpos = i;
              }
              biasdist = dist - (bias[i] >> intbiasshift - netbiasshift);
              if (biasdist < bestbiasd) {
                bestbiasd = biasdist;
                bestbiaspos = i;
              }
              betafreq = freq[i] >> betashift;
              freq[i] -= betafreq;
              bias[i] += betafreq << gammashift;
            }
            freq[bestpos] += beta;
            bias[bestpos] -= betagamma;
            return bestbiaspos;
          }
          NeuQuantConstructor.apply(this, arguments);
          var exports2 = {};
          exports2.map = map;
          exports2.process = process;
          return exports2;
        }
        function workerCode() {
          var self = this;
          try {
            self.onmessage = function(ev) {
              var data = ev.data || {};
              var response;
              if (data.gifshot) {
                response = workerMethods.run(data);
                postMessage(response);
              }
            };
          } catch (e) {
          }
          var workerMethods = {
            dataToRGB: function dataToRGB(data, width, height) {
              var length = width * height * 4;
              var i = 0;
              var rgb = [];
              while (i < length) {
                rgb.push(data[i++]);
                rgb.push(data[i++]);
                rgb.push(data[i++]);
                i++;
              }
              return rgb;
            },
            componentizedPaletteToArray: function componentizedPaletteToArray(paletteRGB) {
              paletteRGB = paletteRGB || [];
              var paletteArray = [];
              for (var i = 0; i < paletteRGB.length; i += 3) {
                var r = paletteRGB[i];
                var g2 = paletteRGB[i + 1];
                var b = paletteRGB[i + 2];
                paletteArray.push(r << 16 | g2 << 8 | b);
              }
              return paletteArray;
            },
"processFrameWithQuantizer": function processFrameWithQuantizer(imageData, width, height, sampleInterval) {
              var rgbComponents = this.dataToRGB(imageData, width, height);
              var nq = new NeuQuant(rgbComponents, rgbComponents.length, sampleInterval);
              var paletteRGB = nq.process();
              var paletteArray = new Uint32Array(this.componentizedPaletteToArray(paletteRGB));
              var numberPixels = width * height;
              var indexedPixels = new Uint8Array(numberPixels);
              var k = 0;
              for (var i = 0; i < numberPixels; i++) {
                var r = rgbComponents[k++];
                var g2 = rgbComponents[k++];
                var b = rgbComponents[k++];
                indexedPixels[i] = nq.map(r, g2, b);
              }
              return {
                pixels: indexedPixels,
                palette: paletteArray
              };
            },
            "run": function run(frame) {
              frame = frame || {};
              var _frame = frame, height = _frame.height;
              _frame.palette;
              var sampleInterval = _frame.sampleInterval, width = _frame.width;
              var imageData = frame.data;
              return this.processFrameWithQuantizer(imageData, width, height, sampleInterval);
            }
          };
          return workerMethods;
        }
        function gifWriter(buf, width, height, gopts) {
          var p = 0;
          gopts = gopts === undefined$1 ? {} : gopts;
          var loop_count = gopts.loop === undefined$1 ? null : gopts.loop;
          var global_palette = gopts.palette === undefined$1 ? null : gopts.palette;
          if (width <= 0 || height <= 0 || width > 65535 || height > 65535) throw "Width/Height invalid.";
          function check_palette_and_num_colors(palette) {
            var num_colors = palette.length;
            if (num_colors < 2 || num_colors > 256 || num_colors & num_colors - 1) throw "Invalid code/color length, must be power of 2 and 2 .. 256.";
            return num_colors;
          }
          buf[p++] = 71;
          buf[p++] = 73;
          buf[p++] = 70;
          buf[p++] = 56;
          buf[p++] = 57;
          buf[p++] = 97;
          var gp_num_colors_pow2 = 0;
          var background = 0;
          buf[p++] = width & 255;
          buf[p++] = width >> 8 & 255;
          buf[p++] = height & 255;
          buf[p++] = height >> 8 & 255;
          buf[p++] = (global_palette !== null ? 128 : 0) |
gp_num_colors_pow2;
          buf[p++] = background;
          buf[p++] = 0;
          if (loop_count !== null) {
            if (loop_count < 0 || loop_count > 65535) throw "Loop count invalid.";
            buf[p++] = 33;
            buf[p++] = 255;
            buf[p++] = 11;
            buf[p++] = 78;
            buf[p++] = 69;
            buf[p++] = 84;
            buf[p++] = 83;
            buf[p++] = 67;
            buf[p++] = 65;
            buf[p++] = 80;
            buf[p++] = 69;
            buf[p++] = 50;
            buf[p++] = 46;
            buf[p++] = 48;
            buf[p++] = 3;
            buf[p++] = 1;
            buf[p++] = loop_count & 255;
            buf[p++] = loop_count >> 8 & 255;
            buf[p++] = 0;
          }
          var ended = false;
          this.addFrame = function(x, y, w, h2, indexed_pixels, opts) {
            if (ended === true) {
              --p;
              ended = false;
            }
            opts = opts === undefined$1 ? {} : opts;
            if (x < 0 || y < 0 || x > 65535 || y > 65535) throw "x/y invalid.";
            if (w <= 0 || h2 <= 0 || w > 65535 || h2 > 65535) throw "Width/Height invalid.";
            if (indexed_pixels.length < w * h2) throw "Not enough pixels for the frame size.";
            var using_local_palette = true;
            var palette = opts.palette;
            if (palette === undefined$1 || palette === null) {
              using_local_palette = false;
              palette = global_palette;
            }
            if (palette === undefined$1 || palette === null) throw "Must supply either a local or global palette.";
            var num_colors = check_palette_and_num_colors(palette);
            var min_code_size = 0;
            while (num_colors >>= 1) {
              ++min_code_size;
            }
            num_colors = 1 << min_code_size;
            var delay = opts.delay === undefined$1 ? 0 : opts.delay;
            var disposal = opts.disposal === undefined$1 ? 0 : opts.disposal;
            if (disposal < 0 || disposal > 3)
              throw "Disposal out of range.";
            var use_transparency = false;
            var transparent_index = 0;
            if (opts.transparent !== undefined$1 && opts.transparent !== null) {
              use_transparency = true;
              transparent_index = opts.transparent;
              if (transparent_index < 0 || transparent_index >= num_colors) throw "Transparent color index.";
            }
            if (disposal !== 0 || use_transparency || delay !== 0) {
              buf[p++] = 33;
              buf[p++] = 249;
              buf[p++] = 4;
              buf[p++] = disposal << 2 | (use_transparency === true ? 1 : 0);
              buf[p++] = delay & 255;
              buf[p++] = delay >> 8 & 255;
              buf[p++] = transparent_index;
              buf[p++] = 0;
            }
            buf[p++] = 44;
            buf[p++] = x & 255;
            buf[p++] = x >> 8 & 255;
            buf[p++] = y & 255;
            buf[p++] = y >> 8 & 255;
            buf[p++] = w & 255;
            buf[p++] = w >> 8 & 255;
            buf[p++] = h2 & 255;
            buf[p++] = h2 >> 8 & 255;
            buf[p++] = using_local_palette === true ? 128 | min_code_size - 1 : 0;
            if (using_local_palette === true) {
              for (var i = 0, il = palette.length; i < il; ++i) {
                var rgb = palette[i];
                buf[p++] = rgb >> 16 & 255;
                buf[p++] = rgb >> 8 & 255;
                buf[p++] = rgb & 255;
              }
            }
            p = GifWriterOutputLZWCodeStream(buf, p, min_code_size < 2 ? 2 : min_code_size, indexed_pixels);
          };
          this.end = function() {
            if (ended === false) {
              buf[p++] = 59;
              ended = true;
            }
            return p;
          };
          function GifWriterOutputLZWCodeStream(buf2, p2, min_code_size, index_stream) {
            buf2[p2++] = min_code_size;
            var cur_subblock = p2++;
            var clear_code = 1 << min_code_size;
            var code_mask = clear_code - 1;
            var eoi_code = clear_code + 1;
            var next_code = eoi_code + 1;
            var cur_code_size = min_code_size + 1;
            var cur_shift = 0;
            var cur = 0;
            function emit_bytes_to_buffer(bit_block_size) {
              while (cur_shift >= bit_block_size) {
                buf2[p2++] = cur & 255;
                cur >>= 8;
                cur_shift -= 8;
                if (p2 === cur_subblock + 256) {
                  buf2[cur_subblock] = 255;
                  cur_subblock = p2++;
                }
              }
            }
            function emit_code(c) {
              cur |= c << cur_shift;
              cur_shift += cur_code_size;
              emit_bytes_to_buffer(8);
            }
            var ib_code = index_stream[0] & code_mask;
            var code_table = {};
            emit_code(clear_code);
            for (var i = 1, il = index_stream.length; i < il; ++i) {
              var k = index_stream[i] & code_mask;
              var cur_key = ib_code << 8 | k;
              var cur_code = code_table[cur_key];
              if (cur_code === undefined$1) {
                cur |= ib_code << cur_shift;
                cur_shift += cur_code_size;
                while (cur_shift >= 8) {
                  buf2[p2++] = cur & 255;
                  cur >>= 8;
                  cur_shift -= 8;
                  if (p2 === cur_subblock + 256) {
                    buf2[cur_subblock] = 255;
                    cur_subblock = p2++;
                  }
                }
                if (next_code === 4096) {
                  emit_code(clear_code);
                  next_code = eoi_code + 1;
                  cur_code_size = min_code_size + 1;
                  code_table = {};
                } else {
                  if (next_code >= 1 << cur_code_size) ++cur_code_size;
                  code_table[cur_key] = next_code++;
                }
                ib_code = k;
              } else {
                ib_code = cur_code;
              }
            }
            emit_code(ib_code);
            emit_code(eoi_code);
            emit_bytes_to_buffer(1);
            if (cur_subblock + 1 === p2) {
              buf2[cur_subblock] = 0;
            } else {
              buf2[cur_subblock] = p2 - cur_subblock - 1;
              buf2[p2++] = 0;
            }
            return p2;
          }
        }
        var noop$2 = function noop2() {
        };
        var AnimatedGIF = function AnimatedGIF2(options2) {
          this.canvas = null;
          this.ctx = null;
          this.repeat = 0;
          this.frames = [];
          this.numRenderedFrames = 0;
          this.onRenderCompleteCallback = noop$2;
          this.onRenderProgressCallback = noop$2;
          this.workers = [];
          this.availableWorkers = [];
          this.generatingGIF = false;
          this.options = options2;
          this.initializeWebWorkers(options2);
        };
        AnimatedGIF.prototype = {
          "workerMethods": workerCode(),
          "initializeWebWorkers": function initializeWebWorkers(options2) {
            var self = this;
            var processFrameWorkerCode = NeuQuant.toString() + "(" + workerCode.toString() + "());";
            var webWorkerObj = void 0;
            var objectUrl = void 0;
            var webWorker = void 0;
            var numWorkers = void 0;
            var x = -1;
            var workerError = "";
            numWorkers = options2.numWorkers;
            while (++x < numWorkers) {
              webWorkerObj = utils.createWebWorker(processFrameWorkerCode);
              if (utils.isObject(webWorkerObj)) {
                objectUrl = webWorkerObj.objectUrl;
                webWorker = webWorkerObj.worker;
                self.workers.push({
                  worker: webWorker,
                  objectUrl
                });
                self.availableWorkers.push(webWorker);
              } else {
                workerError = webWorkerObj;
                utils.webWorkerError = !!webWorkerObj;
              }
            }
            this.workerError = workerError;
            this.canvas = document2.createElement("canvas");
            this.canvas.width = options2.gifWidth;
            this.canvas.height = options2.gifHeight;
            this.ctx = this.canvas.getContext("2d");
            this.frames = [];
          },
getWorker: function getWorker() {
            return this.availableWorkers.pop();
          },
freeWorker: function freeWorker(worker) {
            this.availableWorkers.push(worker);
          },
          byteMap: (function() {
            var byteMap = [];
            for (var i = 0; i < 256; i++) {
              byteMap[i] = String.fromCharCode(i);
            }
            return byteMap;
          })(),
          bufferToString: function bufferToString(buffer) {
            var numberValues = buffer.length;
            var str = "";
            var x = -1;
            while (++x < numberValues) {
              str += this.byteMap[buffer[x]];
            }
            return str;
          },
          onFrameFinished: function onFrameFinished(progressCallback) {
            var self = this;
            var frames = self.frames;
            var options2 = self.options;
            var hasExistingImages = !!(options2.images || []).length;
            var allDone = frames.every(function(frame) {
              return !frame.beingProcessed && frame.done;
            });
            self.numRenderedFrames++;
            if (hasExistingImages) {
              progressCallback(self.numRenderedFrames / frames.length);
            }
            self.onRenderProgressCallback(self.numRenderedFrames * 0.75 / frames.length);
            if (allDone) {
              if (!self.generatingGIF) {
                self.generateGIF(frames, self.onRenderCompleteCallback);
              }
            } else {
              utils.requestTimeout(function() {
                self.processNextFrame();
              }, 1);
            }
          },
          processFrame: function processFrame(position) {
            var AnimatedGifContext = this;
            this.options;
            var _options = this.options, progressCallback = _options.progressCallback, sampleInterval = _options.sampleInterval;
            var frames = this.frames;
            var frame = void 0;
            var worker = void 0;
            var done = function done2() {
              var ev = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {};
              var data = ev.data;
              delete frame.data;
              frame.pixels = Array.prototype.slice.call(data.pixels);
              frame.palette = Array.prototype.slice.call(data.palette);
              frame.done = true;
              frame.beingProcessed = false;
              AnimatedGifContext.freeWorker(worker);
              AnimatedGifContext.onFrameFinished(progressCallback);
            };
            frame = frames[position];
            if (frame.beingProcessed || frame.done) {
              this.onFrameFinished();
              return;
            }
            frame.sampleInterval = sampleInterval;
            frame.beingProcessed = true;
            frame.gifshot = true;
            worker = this.getWorker();
            if (worker) {
              worker.onmessage = done;
              worker.postMessage(frame);
            } else {
              done({
                "data": AnimatedGifContext.workerMethods.run(frame)
              });
            }
          },
          startRendering: function startRendering(completeCallback) {
            this.onRenderCompleteCallback = completeCallback;
            for (var i = 0; i < this.options.numWorkers && i < this.frames.length; i++) {
              this.processFrame(i);
            }
          },
          processNextFrame: function processNextFrame() {
            var position = -1;
            for (var i = 0; i < this.frames.length; i++) {
              var frame = this.frames[i];
              if (!frame.done && !frame.beingProcessed) {
                position = i;
                break;
              }
            }
            if (position >= 0) {
              this.processFrame(position);
            }
          },

generateGIF: function generateGIF(frames, callback) {
            var buffer = [];
            var gifOptions = {
              loop: this.repeat
            };
            var options2 = this.options;
            var interval = options2.interval;
            var frameDuration = options2.frameDuration;
            var existingImages2 = options2.images;
            var hasExistingImages = !!existingImages2.length;
            var height = options2.gifHeight;
            var width = options2.gifWidth;
            var gifWriter$$1 = new gifWriter(buffer, width, height, gifOptions);
            var onRenderProgressCallback = this.onRenderProgressCallback;
            var delay = hasExistingImages ? interval * 100 : 0;
            var bufferToString = void 0;
            var gif = void 0;
            this.generatingGIF = true;
            utils.each(frames, function(iterator, frame) {
              var framePalette = frame.palette;
              onRenderProgressCallback(0.75 + 0.25 * frame.position * 1 / frames.length);
              for (var i = 0; i < frameDuration; i++) {
                gifWriter$$1.addFrame(0, 0, width, height, frame.pixels, {
                  palette: framePalette,
                  delay
                });
              }
            });
            gifWriter$$1.end();
            onRenderProgressCallback(1);
            this.frames = [];
            this.generatingGIF = false;
            if (utils.isFunction(callback)) {
              bufferToString = this.bufferToString(buffer);
              gif = "data:image/gif;base64," + utils.btoa(bufferToString);
              callback(gif);
            }
          },
setRepeat: function setRepeat(r) {
            this.repeat = r;
          },
          addFrame: function addFrame(element, gifshotOptions) {
            gifshotOptions = utils.isObject(gifshotOptions) ? gifshotOptions : {};
            var self = this;
            var ctx = self.ctx;
            var options2 = self.options;
            var width = options2.gifWidth;
            var height = options2.gifHeight;
            var fontSize = utils.getFontSize(gifshotOptions);
            var _gifshotOptions = gifshotOptions, filter = _gifshotOptions.filter, fontColor = _gifshotOptions.fontColor, fontFamily = _gifshotOptions.fontFamily, fontWeight = _gifshotOptions.fontWeight;
            _gifshotOptions.gifHeight;
            _gifshotOptions.gifWidth;
            var text = _gifshotOptions.text, textAlign = _gifshotOptions.textAlign, textBaseline = _gifshotOptions.textBaseline;
            var textXCoordinate = gifshotOptions.textXCoordinate ? gifshotOptions.textXCoordinate : textAlign === "left" ? 1 : textAlign === "right" ? width : width / 2;
            var textYCoordinate = gifshotOptions.textYCoordinate ? gifshotOptions.textYCoordinate : textBaseline === "top" ? 1 : textBaseline === "center" ? height / 2 : height;
            var font = fontWeight + " " + fontSize + " " + fontFamily;
            var imageData = void 0;
            try {
              ctx.filter = filter;
              ctx.drawImage(element, 0, 0, width, height);
              if (text) {
                ctx.font = font;
                ctx.fillStyle = fontColor;
                ctx.textAlign = textAlign;
                ctx.textBaseline = textBaseline;
                ctx.fillText(text, textXCoordinate, textYCoordinate);
              }
              imageData = ctx.getImageData(0, 0, width, height);
              self.addFrameImageData(imageData);
            } catch (e) {
              return "" + e;
            }
          },
          addFrameImageData: function addFrameImageData() {
            var imageData = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {};
            var frames = this.frames;
            var imageDataArray = imageData.data;
            this.frames.push({
              "data": imageDataArray,
              "width": imageData.width,
              "height": imageData.height,
              "palette": null,
              "dithering": null,
              "done": false,
              "beingProcessed": false,
              "position": frames.length
            });
          },
          onRenderProgress: function onRenderProgress(callback) {
            this.onRenderProgressCallback = callback;
          },
          isRendering: function isRendering() {
            return this.generatingGIF;
          },
          getBase64GIF: function getBase64GIF2(completeCallback) {
            var self = this;
            var onRenderComplete = function onRenderComplete2(gif) {
              self.destroyWorkers();
              utils.requestTimeout(function() {
                completeCallback(gif);
              }, 0);
            };
            self.startRendering(onRenderComplete);
          },
          destroyWorkers: function destroyWorkers() {
            if (this.workerError) {
              return;
            }
            var workers = this.workers;
            utils.each(workers, function(iterator, workerObj) {
              var worker = workerObj.worker;
              var objectUrl = workerObj.objectUrl;
              worker.terminate();
              utils.URL.revokeObjectURL(objectUrl);
            });
          }
        };
        function getBase64GIF(animatedGifInstance, callback) {
          animatedGifInstance.getBase64GIF(function(image) {
            callback({
              error: false,
              errorCode: "",
              errorMsg: "",
              image
            });
          });
        }
        function existingImages() {
          var obj = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {};
          var callback = obj.callback, images = obj.images, options2 = obj.options;
          var imagesLength = obj.imagesLength;
          var skipObj = {
            "getUserMedia": true,
            "window.URL": true
          };
          var errorObj = error.validate(skipObj);
          var loadedImages = [];
          var loadedImagesLength = 0;
          var tempImage = void 0;
          var ag = void 0;
          if (errorObj.error) {
            return callback(errorObj);
          }
          ag = new AnimatedGIF(options2);
          utils.each(images, function(index, image) {
            var currentImage = image;
            if (image.src) {
              currentImage = currentImage.src;
            }
            if (utils.isElement(currentImage)) {
              if (options2.crossOrigin) {
                currentImage.crossOrigin = options2.crossOrigin;
              }
              loadedImages[index] = currentImage;
              loadedImagesLength += 1;
              if (loadedImagesLength === imagesLength) {
                addLoadedImagesToGif();
              }
            } else if (utils.isString(currentImage)) {
              tempImage = new Image();
              if (options2.crossOrigin) {
                tempImage.crossOrigin = options2.crossOrigin;
              }
              (function(tempImage2) {
                if (image.text) {
                  tempImage2.text = image.text;
                }
                tempImage2.onerror = function(e) {
                  var obj2 = void 0;
                  --imagesLength;
                  if (imagesLength === 0) {
                    obj2 = {};
                    obj2.error = "None of the requested images was capable of being retrieved";
                    return callback(obj2);
                  }
                };
                tempImage2.onload = function(e) {
                  if (image.text) {
                    loadedImages[index] = {
                      img: tempImage2,
                      text: tempImage2.text
                    };
                  } else {
                    loadedImages[index] = tempImage2;
                  }
                  loadedImagesLength += 1;
                  if (loadedImagesLength === imagesLength) {
                    addLoadedImagesToGif();
                  }
                  utils.removeElement(tempImage2);
                };
                tempImage2.src = currentImage;
              })(tempImage);
              utils.setCSSAttr(tempImage, {
                position: "fixed",
                opacity: "0"
              });
              document2.body.appendChild(tempImage);
            }
          });
          function addLoadedImagesToGif() {
            utils.each(loadedImages, function(index, loadedImage) {
              if (loadedImage) {
                if (loadedImage.text) {
                  ag.addFrame(loadedImage.img, options2, loadedImage.text);
                } else {
                  ag.addFrame(loadedImage, options2);
                }
              }
            });
            getBase64GIF(ag, callback);
          }
        }
        var noop$3 = function noop2() {
        };
        var screenShot = {
          getGIF: function getGIF() {
            var options2 = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {};
            var callback = arguments[1];
            callback = utils.isFunction(callback) ? callback : noop$3;
            var canvas = document2.createElement("canvas");
            var context = void 0;
            var existingImages2 = options2.images;
            var hasExistingImages = !!existingImages2.length;
            var cameraStream = options2.cameraStream, crop = options2.crop, filter = options2.filter, fontColor = options2.fontColor, fontFamily = options2.fontFamily, fontWeight = options2.fontWeight, keepCameraOn = options2.keepCameraOn;
            options2.numWorkers;
            var progressCallback = options2.progressCallback, saveRenderingContexts = options2.saveRenderingContexts, savedRenderingContexts = options2.savedRenderingContexts, text = options2.text, textAlign = options2.textAlign, textBaseline = options2.textBaseline, videoElement = options2.videoElement, videoHeight = options2.videoHeight, videoWidth = options2.videoWidth, webcamVideoElement = options2.webcamVideoElement;
            var gifWidth = Number(options2.gifWidth);
            var gifHeight = Number(options2.gifHeight);
            var interval = Number(options2.interval);
            Number(options2.sampleInterval);
            var waitBetweenFrames = hasExistingImages ? 0 : interval * 1e3;
            var renderingContextsToSave = [];
            var numFrames = savedRenderingContexts.length ? savedRenderingContexts.length : options2.numFrames;
            var pendingFrames = numFrames;
            var ag = new AnimatedGIF(options2);
            var fontSize = utils.getFontSize(options2);
            var textXCoordinate = options2.textXCoordinate ? options2.textXCoordinate : textAlign === "left" ? 1 : textAlign === "right" ? gifWidth : gifWidth / 2;
            var textYCoordinate = options2.textYCoordinate ? options2.textYCoordinate : textBaseline === "top" ? 1 : textBaseline === "center" ? gifHeight / 2 : gifHeight;
            var font = fontWeight + " " + fontSize + " " + fontFamily;
            var sourceX = crop ? Math.floor(crop.scaledWidth / 2) : 0;
            var sourceWidth = crop ? videoWidth - crop.scaledWidth : 0;
            var sourceY = crop ? Math.floor(crop.scaledHeight / 2) : 0;
            var sourceHeight = crop ? videoHeight - crop.scaledHeight : 0;
            var captureFrames = function captureSingleFrame() {
              var framesLeft = pendingFrames - 1;
              if (savedRenderingContexts.length) {
                context.putImageData(savedRenderingContexts[numFrames - pendingFrames], 0, 0);
                finishCapture();
              } else {
                drawVideo();
              }
              function drawVideo() {
                try {
                  if (sourceWidth > videoWidth) {
                    sourceWidth = videoWidth;
                  }
                  if (sourceHeight > videoHeight) {
                    sourceHeight = videoHeight;
                  }
                  if (sourceX < 0) {
                    sourceX = 0;
                  }
                  if (sourceY < 0) {
                    sourceY = 0;
                  }
                  context.filter = filter;
                  context.drawImage(videoElement, sourceX, sourceY, sourceWidth, sourceHeight, 0, 0, gifWidth, gifHeight);
                  finishCapture();
                } catch (e) {
                  if (e.name === "NS_ERROR_NOT_AVAILABLE") {
                    utils.requestTimeout(drawVideo, 100);
                  } else {
                    throw e;
                  }
                }
              }
              function finishCapture() {
                var imageData = void 0;
                if (saveRenderingContexts) {
                  renderingContextsToSave.push(context.getImageData(0, 0, gifWidth, gifHeight));
                }
                if (text) {
                  context.font = font;
                  context.fillStyle = fontColor;
                  context.textAlign = textAlign;
                  context.textBaseline = textBaseline;
                  context.fillText(text, textXCoordinate, textYCoordinate);
                }
                imageData = context.getImageData(0, 0, gifWidth, gifHeight);
                ag.addFrameImageData(imageData);
                pendingFrames = framesLeft;
                progressCallback((numFrames - pendingFrames) / numFrames);
                if (framesLeft > 0) {
                  utils.requestTimeout(captureSingleFrame, waitBetweenFrames);
                }
                if (!pendingFrames) {
                  ag.getBase64GIF(function(image) {
                    callback({
                      "error": false,
                      "errorCode": "",
                      "errorMsg": "",
                      "image": image,
                      "cameraStream": cameraStream,
                      "videoElement": videoElement,
                      "webcamVideoElement": webcamVideoElement,
                      "savedRenderingContexts": renderingContextsToSave,
                      "keepCameraOn": keepCameraOn
                    });
                  });
                }
              }
            };
            numFrames = numFrames !== undefined$1 ? numFrames : 10;
            interval = interval !== undefined$1 ? interval : 0.1;
            canvas.width = gifWidth;
            canvas.height = gifHeight;
            context = canvas.getContext("2d");
            (function capture() {
              if (!savedRenderingContexts.length && videoElement.currentTime === 0) {
                utils.requestTimeout(capture, 100);
                return;
              }
              captureFrames();
            })();
          },
          getCropDimensions: function getCropDimensions() {
            var obj = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {};
            var width = obj.videoWidth;
            var height = obj.videoHeight;
            var gifWidth = obj.gifWidth;
            var gifHeight = obj.gifHeight;
            var result = {
              width: 0,
              height: 0,
              scaledWidth: 0,
              scaledHeight: 0
            };
            if (width > height) {
              result.width = Math.round(width * (gifHeight / height)) - gifWidth;
              result.scaledWidth = Math.round(result.width * (height / gifHeight));
            } else {
              result.height = Math.round(height * (gifWidth / width)) - gifHeight;
              result.scaledHeight = Math.round(result.height * (width / gifWidth));
            }
            return result;
          }
        };
        var videoStream = {
          loadedData: false,
          defaultVideoDimensions: {
            width: 640,
            height: 480
          },
          findVideoSize: function findVideoSizeMethod(obj) {
            findVideoSizeMethod.attempts = findVideoSizeMethod.attempts || 0;
            var cameraStream = obj.cameraStream, completedCallback = obj.completedCallback, videoElement = obj.videoElement;
            if (!videoElement) {
              return;
            }
            if (videoElement.videoWidth > 0 && videoElement.videoHeight > 0) {
              videoElement.removeEventListener("loadeddata", videoStream.findVideoSize);
              completedCallback({
                videoElement,
                cameraStream,
                videoWidth: videoElement.videoWidth,
                videoHeight: videoElement.videoHeight
              });
            } else {
              if (findVideoSizeMethod.attempts < 10) {
                findVideoSizeMethod.attempts += 1;
                utils.requestTimeout(function() {
                  videoStream.findVideoSize(obj);
                }, 400);
              } else {
                completedCallback({
                  videoElement,
                  cameraStream,
                  videoWidth: videoStream.defaultVideoDimensions.width,
                  videoHeight: videoStream.defaultVideoDimensions.height
                });
              }
            }
          },
          onStreamingTimeout: function onStreamingTimeout(callback) {
            if (utils.isFunction(callback)) {
              callback({
                error: true,
                errorCode: "getUserMedia",
                errorMsg: "There was an issue with the getUserMedia API - Timed out while trying to start streaming",
                image: null,
                cameraStream: {}
              });
            }
          },
          stream: function stream(obj) {
            var existingVideo2 = utils.isArray(obj.existingVideo) ? obj.existingVideo[0] : obj.existingVideo;
            var cameraStream = obj.cameraStream, completedCallback = obj.completedCallback, streamedCallback = obj.streamedCallback, videoElement = obj.videoElement;
            if (utils.isFunction(streamedCallback)) {
              streamedCallback();
            }
            if (existingVideo2) {
              if (utils.isString(existingVideo2)) {
                videoElement.src = existingVideo2;
                videoElement.innerHTML = '<source src="' + existingVideo2 + '" type="video/' + utils.getExtension(existingVideo2) + '" />';
              } else if (existingVideo2 instanceof Blob) {
                try {
                  videoElement.src = utils.URL.createObjectURL(existingVideo2);
                } catch (e) {
                }
                videoElement.innerHTML = '<source src="' + existingVideo2 + '" type="' + existingVideo2.type + '" />';
              }
            } else if (videoElement.mozSrcObject) {
              videoElement.mozSrcObject = cameraStream;
            } else if (utils.URL) {
              try {
                videoElement.srcObject = cameraStream;
                videoElement.src = utils.URL.createObjectURL(cameraStream);
              } catch (e) {
                videoElement.srcObject = cameraStream;
              }
            }
            videoElement.play();
            utils.requestTimeout(function checkLoadedData() {
              checkLoadedData.count = checkLoadedData.count || 0;
              if (videoStream.loadedData === true) {
                videoStream.findVideoSize({
                  videoElement,
                  cameraStream,
                  completedCallback
                });
                videoStream.loadedData = false;
              } else {
                checkLoadedData.count += 1;
                if (checkLoadedData.count > 10) {
                  videoStream.findVideoSize({
                    videoElement,
                    cameraStream,
                    completedCallback
                  });
                } else {
                  checkLoadedData();
                }
              }
            }, 0);
          },
          startStreaming: function startStreaming(obj) {
            var errorCallback = utils.isFunction(obj.error) ? obj.error : utils.noop;
            var streamedCallback = utils.isFunction(obj.streamed) ? obj.streamed : utils.noop;
            var completedCallback = utils.isFunction(obj.completed) ? obj.completed : utils.noop;
            var crossOrigin = obj.crossOrigin, existingVideo2 = obj.existingVideo, lastCameraStream = obj.lastCameraStream, options2 = obj.options, webcamVideoElement = obj.webcamVideoElement;
            var videoElement = utils.isElement(existingVideo2) ? existingVideo2 : webcamVideoElement ? webcamVideoElement : document2.createElement("video");
            if (crossOrigin) {
              videoElement.crossOrigin = options2.crossOrigin;
            }
            videoElement.autoplay = true;
            videoElement.loop = true;
            videoElement.muted = true;
            videoElement.addEventListener("loadeddata", function(event) {
              videoStream.loadedData = true;
              if (options2.offset) {
                videoElement.currentTime = options2.offset;
              }
            });
            if (existingVideo2) {
              videoStream.stream({
                videoElement,
                existingVideo: existingVideo2,
                completedCallback
              });
            } else if (lastCameraStream) {
              videoStream.stream({
                videoElement,
                cameraStream: lastCameraStream,
                streamedCallback,
                completedCallback
              });
            } else {
              utils.getUserMedia({
                video: true
              }, function(stream) {
                videoStream.stream({
                  videoElement,
                  cameraStream: stream,
                  streamedCallback,
                  completedCallback
                });
              }, errorCallback);
            }
          },
          startVideoStreaming: function startVideoStreaming(callback) {
            var options2 = arguments.length > 1 && arguments[1] !== undefined$1 ? arguments[1] : {};
            var timeoutLength = options2.timeout !== undefined$1 ? options2.timeout : 0;
            var originalCallback = options2.callback;
            var webcamVideoElement = options2.webcamVideoElement;
            var noGetUserMediaSupportTimeout = void 0;
            if (timeoutLength > 0) {
              noGetUserMediaSupportTimeout = utils.requestTimeout(function() {
                videoStream.onStreamingTimeout(originalCallback);
              }, 1e4);
            }
            videoStream.startStreaming({
              error: function error2() {
                originalCallback({
                  error: true,
                  errorCode: "getUserMedia",
                  errorMsg: "There was an issue with the getUserMedia API - the user probably denied permission",
                  image: null,
                  cameraStream: {}
                });
              },
              streamed: function streamed() {
                clearTimeout(noGetUserMediaSupportTimeout);
              },
              completed: function completed() {
                var obj = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {};
                var cameraStream = obj.cameraStream, videoElement = obj.videoElement, videoHeight = obj.videoHeight, videoWidth = obj.videoWidth;
                callback({
                  cameraStream,
                  videoElement,
                  videoHeight,
                  videoWidth
                });
              },
              lastCameraStream: options2.lastCameraStream,
              webcamVideoElement,
              crossOrigin: options2.crossOrigin,
              options: options2
            });
          },
          stopVideoStreaming: function stopVideoStreaming2(obj) {
            obj = utils.isObject(obj) ? obj : {};
            var _obj = obj, keepCameraOn = _obj.keepCameraOn, videoElement = _obj.videoElement, webcamVideoElement = _obj.webcamVideoElement;
            var cameraStream = obj.cameraStream || {};
            var cameraStreamTracks = cameraStream.getTracks ? cameraStream.getTracks() || [] : [];
            var hasCameraStreamTracks = !!cameraStreamTracks.length;
            var firstCameraStreamTrack = cameraStreamTracks[0];
            if (!keepCameraOn && hasCameraStreamTracks) {
              if (utils.isFunction(firstCameraStreamTrack.stop)) {
                firstCameraStreamTrack.stop();
              }
            }
            if (utils.isElement(videoElement) && !webcamVideoElement) {
              videoElement.pause();
              if (utils.isFunction(utils.URL.revokeObjectURL) && !utils.webWorkerError) {
                if (videoElement.src) {
                  utils.URL.revokeObjectURL(videoElement.src);
                }
              }
              utils.removeElement(videoElement);
            }
          }
        };
        function stopVideoStreaming(options2) {
          options2 = utils.isObject(options2) ? options2 : {};
          videoStream.stopVideoStreaming(options2);
        }
        function createAndGetGIF(obj, callback) {
          var options2 = obj.options || {};
          var images = options2.images, video = options2.video;
          var gifWidth = Number(options2.gifWidth);
          var gifHeight = Number(options2.gifHeight);
          Number(options2.numFrames);
          var cameraStream = obj.cameraStream, videoElement = obj.videoElement, videoWidth = obj.videoWidth, videoHeight = obj.videoHeight;
          var cropDimensions = screenShot.getCropDimensions({
            videoWidth,
            videoHeight,
            gifHeight,
            gifWidth
          });
          var completeCallback = callback;
          options2.crop = cropDimensions;
          options2.videoElement = videoElement;
          options2.videoWidth = videoWidth;
          options2.videoHeight = videoHeight;
          options2.cameraStream = cameraStream;
          if (!utils.isElement(videoElement)) {
            return;
          }
          videoElement.width = gifWidth + cropDimensions.width;
          videoElement.height = gifHeight + cropDimensions.height;
          if (!options2.webcamVideoElement) {
            utils.setCSSAttr(videoElement, {
              position: "fixed",
              opacity: "0"
            });
            document2.body.appendChild(videoElement);
          }
          videoElement.play();
          screenShot.getGIF(options2, function(obj2) {
            if ((!images || !images.length) && (!video || !video.length)) {
              stopVideoStreaming(obj2);
            }
            completeCallback(obj2);
          });
        }
        function existingVideo() {
          var obj = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {};
          var callback = obj.callback, existingVideo2 = obj.existingVideo, options2 = obj.options;
          var skipObj = {
            getUserMedia: true,
            "window.URL": true
          };
          var errorObj = error.validate(skipObj);
          var videoType = void 0;
          var videoSrc = void 0;
          if (errorObj.error) {
            return callback(errorObj);
          }
          if (utils.isElement(existingVideo2) && existingVideo2.src) {
            videoSrc = existingVideo2.src;
            videoType = utils.getExtension(videoSrc);
            if (!utils.isSupported.videoCodecs[videoType]) {
              return callback(error.messages.videoCodecs);
            }
          } else if (utils.isArray(existingVideo2)) {
            utils.each(existingVideo2, function(iterator, videoSrc2) {
              if (videoSrc2 instanceof Blob) {
                videoType = videoSrc2.type.substr(videoSrc2.type.lastIndexOf("/") + 1, videoSrc2.length);
              } else {
                videoType = videoSrc2.substr(videoSrc2.lastIndexOf(".") + 1, videoSrc2.length);
              }
              if (utils.isSupported.videoCodecs[videoType]) {
                existingVideo2 = videoSrc2;
                return false;
              }
            });
          }
          videoStream.startStreaming({
            completed: function completed(obj2) {
              obj2.options = options2 || {};
              createAndGetGIF(obj2, callback);
            },
            existingVideo: existingVideo2,
            crossOrigin: options2.crossOrigin,
            options: options2
          });
        }
        function existingWebcam() {
          var obj = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {};
          var callback = obj.callback, lastCameraStream = obj.lastCameraStream, options2 = obj.options, webcamVideoElement = obj.webcamVideoElement;
          if (!isWebCamGIFSupported()) {
            return callback(error.validate());
          }
          if (options2.savedRenderingContexts.length) {
            screenShot.getGIF(options2, function(obj2) {
              callback(obj2);
            });
            return;
          }
          videoStream.startVideoStreaming(function() {
            var obj2 = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {};
            obj2.options = options2 || {};
            createAndGetGIF(obj2, callback);
          }, {
            lastCameraStream,
            callback,
            webcamVideoElement,
            crossOrigin: options2.crossOrigin
          });
        }
        function createGIF(userOptions, callback) {
          callback = utils.isFunction(userOptions) ? userOptions : callback;
          userOptions = utils.isObject(userOptions) ? userOptions : {};
          if (!utils.isFunction(callback)) {
            return;
          }
          var options2 = utils.mergeOptions(defaultOptions, userOptions) || {};
          var lastCameraStream = userOptions.cameraStream;
          var images = options2.images;
          var imagesLength = images ? images.length : 0;
          var video = options2.video;
          var webcamVideoElement = options2.webcamVideoElement;
          options2 = utils.mergeOptions(options2, {
            "gifWidth": Math.floor(options2.gifWidth),
            "gifHeight": Math.floor(options2.gifHeight)
          });
          if (imagesLength) {
            existingImages({
              "images": images,
              "imagesLength": imagesLength,
              "callback": callback,
              "options": options2
            });
          } else if (video) {
            existingVideo({
              "existingVideo": video,
              callback,
              options: options2
            });
          } else {
            existingWebcam({
              lastCameraStream,
              callback,
              webcamVideoElement,
              options: options2
            });
          }
        }
        function takeSnapShot(userOptions, callback) {
          callback = utils.isFunction(userOptions) ? userOptions : callback;
          userOptions = utils.isObject(userOptions) ? userOptions : {};
          if (!utils.isFunction(callback)) {
            return;
          }
          var mergedOptions = utils.mergeOptions(defaultOptions, userOptions);
          var options2 = utils.mergeOptions(mergedOptions, {
            "interval": 0.1,
            "numFrames": 1,
            "gifWidth": Math.floor(mergedOptions.gifWidth),
            "gifHeight": Math.floor(mergedOptions.gifHeight)
          });
          createGIF(options2, callback);
        }
        var API = {
          "utils": utils$2,
          "error": error$2,
          "defaultOptions": defaultOptions$2,
          "createGIF": createGIF,
          "takeSnapShot": takeSnapShot,
          "stopVideoStreaming": stopVideoStreaming,
          "isSupported": isSupported,
          "isWebCamGIFSupported": isWebCamGIFSupported,
          "isExistingVideoGIFSupported": isExistingVideoGIFSupported,
          "isExistingImagesGIFSupported": isSupported$1,
          "VERSION": "0.4.5"
        };
        {
          module.exports = API;
        }
      })(typeof window !== "undefined" ? window : {}, typeof document !== "undefined" ? document : { createElement: function() {
      } }, typeof window !== "undefined" ? window.navigator : {});
    })(gifshot$1);
    return gifshot$1.exports;
  }
  var gifshotExports = requireGifshot();
  const gifshot = getDefaultExportFromCjs(gifshotExports);
  class MediaDownloader {
    isDownloading = false;
    createdBlobUrls = [];
    abortController = null;
    async downloadAccountMedia(account, onProgress, batchInfo) {
      if (this.isDownloading) {
        throw new Error("Download already in progress");
      }
      this.isDownloading = true;
      this.abortController = new AbortController();
      try {
        const timeline = account.timeline;
        const username = account.username;
        const downloadDate = formatDateTime(Date.now(), "YYYYMMDD_HHmmss");
        let zipFilename;
        if (batchInfo && (batchInfo.mode === "batch" || batchInfo.mode === "auto")) {
          if (batchInfo.page !== void 0) {
            zipFilename = `${username}_${downloadDate}_Batch${batchInfo.page}.zip`;
          } else {
            zipFilename = `${username}_${downloadDate}_Batch.zip`;
          }
        } else {
          zipFilename = `${username}_${downloadDate}.zip`;
        }
        const files = this.createFileList(timeline, username);
        if (files.length === 0) {
          throw new Error("No media files found");
        }
        const shouldConvertGifs = appOptionsManager.get("convertAnimatedGifs") ?? true;
        if (shouldConvertGifs) {
          await this.downloadWithGifConversion(zipFilename, files, onProgress);
        } else {
          const progressCallback = (current, total, file) => {
            const percentage = Math.round(current / total * 100);
            onProgress?.({
              current,
              total,
              percentage,
              currentFile: file?.filename,
              converting: false
            });
          };
          await zipStreamDownload(
            zipFilename,
            files,
            progressCallback,
            500,
            appOptionsManager.get("downloadConcurrency") ?? 1,
            this.abortController?.signal
          );
        }
      } catch (error) {
        if (error?.message !== "Download aborted") {
          throw error;
        }
        logger.info("Download was aborted by user. Files already downloaded will be zipped.");
      } finally {
        this.isDownloading = false;
        this.abortController = null;
        this.createdBlobUrls.forEach((url) => {
          URL.revokeObjectURL(url);
        });
        this.createdBlobUrls = [];
      }
    }
    createFileList(timeline, username) {
      const files = [];
      const usedFilenames = new Set();
      const mediaGroups = {
        photo: timeline.filter((item) => item.type === "photo"),
        video: timeline.filter((item) => item.type === "video"),
        animated_gif: timeline.filter((item) => item.type === "animated_gif")
      };
      Object.entries(mediaGroups).forEach(([type, items]) => {
        if (items.length === 0) return;
        const folderName = type === "photo" ? "image" : type === "animated_gif" ? "gif" : type;
        items.forEach((item) => {
          const extension = this.getFileExtension(item);
          const baseFilename = `${username}_${this.formatDateForFilename(item.date)}_${item.tweet_id}`;
          const filename = this.getUniqueFilename(baseFilename, extension, usedFilenames);
          const fullPath = `${folderName}/${filename}`;
          files.push({
            filename: fullPath,
            url: item.url
          });
          usedFilenames.add(filename);
        });
      });
      return files;
    }
    getFileExtension(item) {
      switch (item.type) {
        case "photo":
          const photoMatch = item.url.match(/format=(\w+)/);
          return photoMatch?.[1] || "jpg";
        case "video":
          return "mp4";
        case "animated_gif":
          const shouldConvertGifs = appOptionsManager.get("convertAnimatedGifs") ?? true;
          return shouldConvertGifs ? "gif" : "mp4";
        default:
          return "unknown";
      }
    }
    formatDateForFilename(dateStr) {
      const m = dateStr.match(/(\d{4})-(\d{2})-(\d{2}).*?(\d{2}):(\d{2}):(\d{2})/);
      if (m) {
        const [, y, mo, d, h2, mi, s] = m;
        return `${y}${mo}${d}_${h2}${mi}${s}`;
      }
      const d2 = new Date(dateStr);
      if (!isNaN(d2.getTime())) {
        const pad = (n) => String(n).padStart(2, "0");
        return `${d2.getFullYear()}${pad(d2.getMonth() + 1)}${pad(d2.getDate())}_${pad(d2.getHours())}${pad(d2.getMinutes())}${pad(d2.getSeconds())}`;
      }
      return dateStr.replace(/\D/g, "");
    }
    getUniqueFilename(baseFilename, extension, usedFilenames) {
      let filename = `${baseFilename}.${extension}`;
      let counter = 1;
      while (usedFilenames.has(filename)) {
        filename = `${baseFilename}_${counter}.${extension}`;
        counter++;
      }
      return filename;
    }
    isDownloadInProgress() {
      return this.isDownloading;
    }
    abortDownload() {
      if (this.abortController) {
        this.abortController.abort();
      }
    }
    async downloadWithGifConversion(zipFilename, files, onProgress) {
      const gifFiles = files.filter((f2) => f2.filename.startsWith("gif/"));
      for (let i = 0; i < gifFiles.length; i++) {
        const gifFile = gifFiles[i];
        if (!gifFile) continue;
        const conversionProgress = Math.round((i + 1) / gifFiles.length * 50);
        onProgress?.({
          current: i,
          total: gifFiles.length,
          percentage: conversionProgress,
          currentFile: gifFile.filename,
          converting: true
        });
        try {
          const gifData = await this.convertVideoToGif(gifFile.url);
          if (gifData) {
            gifFile.url = gifData;
          }
        } catch (error) {
          console.warn("Failed to convert GIF:", error);
        }
      }
      const downloadProgressCallback = (current, total, file) => {
        const downloadProgress = 50 + Math.round(current / total * 50);
        onProgress?.({
          current,
          total,
          percentage: downloadProgress,
          currentFile: file?.filename,
          converting: false
        });
      };
      await zipStreamDownload(
        zipFilename,
        files,
        downloadProgressCallback,
        500,
        appOptionsManager.get("downloadConcurrency") ?? 1,
        this.abortController?.signal
      );
    }
    convertVideoToGif(videoUrl) {
      return new Promise((resolve) => {
        if (!gifshot.isExistingVideoGIFSupported()) {
          console.warn("GIF conversion not supported in this browser");
          resolve(null);
          return;
        }
        const gifOptions = getGifShotOptions();
        {
          this.getVideoDimensions(videoUrl).then(({ width, height }) => {
            gifshot.createGIF({
              video: videoUrl,
              gifWidth: width,
              gifHeight: height,
              ...gifOptions
            }, (obj) => {
              this.handleGifConversionResult(obj, resolve);
            });
          }).catch((error) => {
            console.error("Failed to get video dimensions:", error);
            gifshot.createGIF({
              video: videoUrl,
              ...gifOptions
            }, (obj) => {
              this.handleGifConversionResult(obj, resolve);
            });
          });
        }
      });
    }
    handleGifConversionResult(obj, resolve) {
      if (obj.error) {
        console.error("GIF conversion failed:", obj.errorMsg);
        resolve(null);
      } else if (obj.image) {
        try {
          const dataUrl = obj.image;
          const base64Data = dataUrl.split(",")[1];
          if (!base64Data) {
            resolve(null);
            return;
          }
          const byteCharacters = atob(base64Data);
          const byteNumbers = new Array(byteCharacters.length);
          for (let i = 0; i < byteCharacters.length; i++) {
            byteNumbers[i] = byteCharacters.charCodeAt(i);
          }
          const byteArray = new Uint8Array(byteNumbers);
          const blob = new Blob([byteArray], { type: "image/gif" });
          const blobUrl = URL.createObjectURL(blob);
          this.createdBlobUrls.push(blobUrl);
          resolve(blobUrl);
        } catch (error) {
          console.error("Failed to create blob URL:", error);
          resolve(null);
        }
      } else {
        resolve(null);
      }
    }
    getVideoDimensions(videoUrl) {
      return new Promise((resolve, reject) => {
        const video = document.createElement("video");
        video.crossOrigin = "anonymous";
        video.onloadedmetadata = () => {
          const width = video.videoWidth;
          const height = video.videoHeight;
          video.remove();
          if (width && height) {
            resolve({ width, height });
          } else {
            reject(new Error("Could not determine video dimensions"));
          }
        };
        video.onerror = () => {
          video.remove();
          reject(new Error("Failed to load video for dimension detection"));
        };
        setTimeout(() => {
          video.remove();
          reject(new Error("Timeout while detecting video dimensions"));
        }, 1e4);
        video.src = videoUrl;
      });
    }
  }
  const mediaDownloader = new MediaDownloader();
  const urlParser = {
    getCurrentUsername() {
      try {
        const pathname = window.location.pathname;
        const pathParts = pathname.replace(/^\/+/, "").split("/");
        const username = pathParts[0];
        if (!username) return null;
        const skipPaths = [
          "i",
          "home",
          "explore",
          "notifications",
          "messages",
          "settings",
          "compose",
          "search",
          "hashtag",
          "lists",
          "moments",
          "bookmarks",
          "profile",
          "login",
          "logout",
          "signup",
          "welcome",
          "help",
          "tos",
          "privacy",
          "about",
          "download",
          "jobs",
          "ads",
          "analytics",
          "connect",
          "intent",
          "oauth",
          "account",
          "share"
        ];
        if (skipPaths.includes(username.toLowerCase())) {
          return null;
        }
        if (this.isValidUsername(username)) {
          return username;
        }
        return null;
      } catch (error) {
        console.error("Error parsing URL for username:", error);
        return null;
      }
    },
    isValidUsername(username) {
      if (!username || typeof username !== "string") return false;
      const cleanUsername = username.replace(/^@/, "");
      return /^[a-zA-Z0-9_]{1,15}$/.test(cleanUsername);
    },
    isUserProfilePage() {
      const username = this.getCurrentUsername();
      if (!username) return false;
      const pathname = window.location.pathname;
      const pathParts = pathname.replace(/^\/+/, "").split("/");
      if (pathParts.length === 1) ;
      if (pathParts.length === 2 && pathParts[1] === "") ;
      const profileTabs = ["with_replies", "media", "likes", "followers", "following"];
      if (pathParts.length === 2 && pathParts[1] && profileTabs.includes(pathParts[1])) {
        return true;
      }
      return false;
    },
    onUrlChange(callback) {
      let currentUrl = window.location.href;
      const checkUrlChange = () => {
        const newUrl = window.location.href;
        if (newUrl !== currentUrl) {
          currentUrl = newUrl;
          const username = this.getCurrentUsername();
          callback(username);
        }
      };
      const interval = setInterval(checkUrlChange, 1e3);
      const handlePopState = () => {
        setTimeout(() => {
          const username = this.getCurrentUsername();
          callback(username);
        }, 100);
      };
      window.addEventListener("popstate", handlePopState);
      return () => {
        clearInterval(interval);
        window.removeEventListener("popstate", handlePopState);
      };
    },
    getProfileInfo() {
      return {
        username: this.getCurrentUsername(),
        isProfilePage: this.isUserProfilePage()
      };
    }
  };
  const dashboardState = {
    username: signals.signal(""),
    accountData: signals.signal(null),
    showAccountInfo: signals.signal(false),
    currentAccountUsername: signals.signal(null),
    isLoading: signals.signal(false),
    errorMessage: signals.signal(""),
    isDownloading: signals.signal(false),
    downloadProgress: signals.signal(0),
    downloadError: signals.signal(""),
    isConverting: signals.signal(false),
    currentFile: signals.signal(""),
    downloadingType: signals.signal(null),
    downloadCurrent: signals.signal(0),
    downloadTotal: signals.signal(0),
    detectedUsername: signals.signal(null),
    isProfilePage: signals.signal(false),
    currentPage: signals.signal(0),
    hasMore: signals.signal(false),
    isAutoBatching: signals.signal(false),
    isPaused: signals.signal(false),
    aggregatedTimeline: signals.signal([]),
    currentBatchTimeline: signals.signal([]),
    aggregatedCount: signals.signal(0),
    fetchedPages: signals.signal([]),
    pageMediaCounts: signals.signal({}),
    loadingDirection: signals.signal(null),
    resetForNewAccount(newUsername) {
      const currentUsername = this.currentAccountUsername.value;
      if (currentUsername && newUsername && currentUsername !== newUsername) {
        this.username.value = "";
        this.accountData.value = null;
        this.showAccountInfo.value = false;
        this.isLoading.value = false;
        this.errorMessage.value = "";
        this.downloadProgress.value = 0;
        this.downloadError.value = "";
        this.isDownloading.value = false;
        this.isConverting.value = false;
        this.currentFile.value = "";
        this.downloadingType.value = null;
        this.downloadCurrent.value = 0;
        this.downloadTotal.value = 0;
        this.currentPage.value = 0;
        this.hasMore.value = false;
        this.isAutoBatching.value = false;
        this.isPaused.value = false;
        this.aggregatedTimeline.value = [];
        this.currentBatchTimeline.value = [];
        this.aggregatedCount.value = 0;
        this.fetchedPages.value = [];
        this.pageMediaCounts.value = {};
        this.loadingDirection.value = null;
      }
      this.currentAccountUsername.value = newUsername;
    },
    resetInteractionStates() {
      this.isLoading.value = false;
      this.errorMessage.value = "";
      this.downloadProgress.value = 0;
      this.downloadError.value = "";
      this.isDownloading.value = false;
      this.isConverting.value = false;
      this.currentFile.value = "";
      this.downloadingType.value = null;
      this.downloadCurrent.value = 0;
      this.downloadTotal.value = 0;
    }
  };
  const authState = {
    patreonVerified: signals.signal(false),
    patreonAuth: signals.signal(""),
    authToken: signals.signal("")
  };
  function g(n, t) {
    for (var e in t) n[e] = t[e];
    return n;
  }
  function E(n, t) {
    for (var e in n) if ("__source" !== e && !(e in t)) return true;
    for (var r in t) if ("__source" !== r && n[r] !== t[r]) return true;
    return false;
  }
  function N(n, t) {
    this.props = n, this.context = t;
  }
  (N.prototype = new preact.Component()).isPureReactComponent = true, N.prototype.shouldComponentUpdate = function(n, t) {
    return E(this.props, n) || E(this.state, t);
  };
  var T = preact.options.__b;
  preact.options.__b = function(n) {
    n.type && n.type.__f && n.ref && (n.props.ref = n.ref, n.ref = null), T && T(n);
  };
  var F = preact.options.__e;
  preact.options.__e = function(n, t, e, r) {
    if (n.then) {
      for (var u2, o = t; o = o.__; ) if ((u2 = o.__c) && u2.__c) return null == t.__e && (t.__e = e.__e, t.__k = e.__k), u2.__c(n, t);
    }
    F(n, t, e, r);
  };
  var U = preact.options.unmount;
  function V(n, t, e) {
    return n && (n.__c && n.__c.__H && (n.__c.__H.__.forEach(function(n2) {
      "function" == typeof n2.__c && n2.__c();
    }), n.__c.__H = null), null != (n = g({}, n)).__c && (n.__c.__P === e && (n.__c.__P = t), n.__c.__e = true, n.__c = null), n.__k = n.__k && n.__k.map(function(n2) {
      return V(n2, t, e);
    })), n;
  }
  function W(n, t, e) {
    return n && e && (n.__v = null, n.__k = n.__k && n.__k.map(function(n2) {
      return W(n2, t, e);
    }), n.__c && n.__c.__P === t && (n.__e && e.appendChild(n.__e), n.__c.__e = true, n.__c.__P = e)), n;
  }
  function P() {
    this.__u = 0, this.o = null, this.__b = null;
  }
  function j(n) {
    var t = n.__.__c;
    return t && t.__a && t.__a(n);
  }
  function B() {
    this.i = null, this.l = null;
  }
  preact.options.unmount = function(n) {
    var t = n.__c;
    t && t.__R && t.__R(), t && 32 & n.__u && (n.type = null), U && U(n);
  }, (P.prototype = new preact.Component()).__c = function(n, t) {
    var e = t.__c, r = this;
    null == r.o && (r.o = []), r.o.push(e);
    var u2 = j(r.__v), o = false, i = function() {
      o || (o = true, e.__R = null, u2 ? u2(l) : l());
    };
    e.__R = i;
    var l = function() {
      if (!--r.__u) {
        if (r.state.__a) {
          var n2 = r.state.__a;
          r.__v.__k[0] = W(n2, n2.__c.__P, n2.__c.__O);
        }
        var t2;
        for (r.setState({ __a: r.__b = null }); t2 = r.o.pop(); ) t2.forceUpdate();
      }
    };
    r.__u++ || 32 & t.__u || r.setState({ __a: r.__b = r.__v.__k[0] }), n.then(i, i);
  }, P.prototype.componentWillUnmount = function() {
    this.o = [];
  }, P.prototype.render = function(n, e) {
    if (this.__b) {
      if (this.__v.__k) {
        var r = document.createElement("div"), o = this.__v.__k[0].__c;
        this.__v.__k[0] = V(this.__b, r, o.__O = o.__P);
      }
      this.__b = null;
    }
    var i = e.__a && preact.createElement(preact.Fragment, null, n.fallback);
    return i && (i.__u &= -33), [preact.createElement(preact.Fragment, null, e.__a ? null : n.children), i];
  };
  var H = function(n, t, e) {
    if (++e[1] === e[0] && n.l.delete(t), n.props.revealOrder && ("t" !== n.props.revealOrder[0] || !n.l.size)) for (e = n.i; e; ) {
      for (; e.length > 3; ) e.pop()();
      if (e[1] < e[0]) break;
      n.i = e = e[2];
    }
  };
  function Z(n) {
    return this.getChildContext = function() {
      return n.context;
    }, n.children;
  }
  function Y(n) {
    var e = this, r = n.h;
    if (e.componentWillUnmount = function() {
      preact.render(null, e.v), e.v = null, e.h = null;
    }, e.h && e.h !== r && e.componentWillUnmount(), !e.v) {
      for (var u2 = e.__v; null !== u2 && !u2.__m && null !== u2.__; ) u2 = u2.__;
      e.h = r, e.v = { nodeType: 1, parentNode: r, childNodes: [], __k: { __m: u2.__m }, contains: function() {
        return true;
      }, insertBefore: function(n2, t) {
        this.childNodes.push(n2), e.h.insertBefore(n2, t);
      }, removeChild: function(n2) {
        this.childNodes.splice(this.childNodes.indexOf(n2) >>> 1, 1), e.h.removeChild(n2);
      } };
    }
    preact.render(preact.createElement(Z, { context: e.context }, n.__v), e.v);
  }
  function $(n, e) {
    var r = preact.createElement(Y, { __v: n, h: e });
    return r.containerInfo = e, r;
  }
  (B.prototype = new preact.Component()).__a = function(n) {
    var t = this, e = j(t.__v), r = t.l.get(n);
    return r[0]++, function(u2) {
      var o = function() {
        t.props.revealOrder ? (r.push(u2), H(t, n, r)) : u2();
      };
      e ? e(o) : o();
    };
  }, B.prototype.render = function(n) {
    this.i = null, this.l = new Map();
    var t = preact.toChildArray(n.children);
    n.revealOrder && "b" === n.revealOrder[0] && t.reverse();
    for (var e = t.length; e--; ) this.l.set(t[e], this.i = [1, 0, this.i]);
    return n.children;
  }, B.prototype.componentDidUpdate = B.prototype.componentDidMount = function() {
    var n = this;
    this.l.forEach(function(t, e) {
      H(n, e, t);
    });
  };
  var q = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103, G = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/, J = /^on(Ani|Tra|Tou|BeforeInp|Compo)/, K = /[A-Z0-9]/g, Q = "undefined" != typeof document, X = function(n) {
    return ("undefined" != typeof Symbol && "symbol" == typeof Symbol() ? /fil|che|rad/ : /fil|che|ra/).test(n);
  };
  preact.Component.prototype.isReactComponent = {}, ["componentWillMount", "componentWillReceiveProps", "componentWillUpdate"].forEach(function(t) {
    Object.defineProperty(preact.Component.prototype, t, { configurable: true, get: function() {
      return this["UNSAFE_" + t];
    }, set: function(n) {
      Object.defineProperty(this, t, { configurable: true, writable: true, value: n });
    } });
  });
  var en = preact.options.event;
  function rn() {
  }
  function un() {
    return this.cancelBubble;
  }
  function on() {
    return this.defaultPrevented;
  }
  preact.options.event = function(n) {
    return en && (n = en(n)), n.persist = rn, n.isPropagationStopped = un, n.isDefaultPrevented = on, n.nativeEvent = n;
  };
  var cn = { enumerable: false, configurable: true, get: function() {
    return this.class;
  } }, fn = preact.options.vnode;
  preact.options.vnode = function(n) {
    "string" == typeof n.type && (function(n2) {
      var t = n2.props, e = n2.type, u2 = {}, o = -1 === e.indexOf("-");
      for (var i in t) {
        var l = t[i];
        if (!("value" === i && "defaultValue" in t && null == l || Q && "children" === i && "noscript" === e || "class" === i || "className" === i)) {
          var c = i.toLowerCase();
          "defaultValue" === i && "value" in t && null == t.value ? i = "value" : "download" === i && true === l ? l = "" : "translate" === c && "no" === l ? l = false : "o" === c[0] && "n" === c[1] ? "ondoubleclick" === c ? i = "ondblclick" : "onchange" !== c || "input" !== e && "textarea" !== e || X(t.type) ? "onfocus" === c ? i = "onfocusin" : "onblur" === c ? i = "onfocusout" : J.test(i) && (i = c) : c = i = "oninput" : o && G.test(i) ? i = i.replace(K, "-$&").toLowerCase() : null === l && (l = void 0), "oninput" === c && u2[i = c] && (i = "oninputCapture"), u2[i] = l;
        }
      }
      "select" == e && u2.multiple && Array.isArray(u2.value) && (u2.value = preact.toChildArray(t.children).forEach(function(n3) {
        n3.props.selected = -1 != u2.value.indexOf(n3.props.value);
      })), "select" == e && null != u2.defaultValue && (u2.value = preact.toChildArray(t.children).forEach(function(n3) {
        n3.props.selected = u2.multiple ? -1 != u2.defaultValue.indexOf(n3.props.value) : u2.defaultValue == n3.props.value;
      })), t.class && !t.className ? (u2.class = t.class, Object.defineProperty(u2, "className", cn)) : (t.className && !t.class || t.class && t.className) && (u2.class = u2.className = t.className), n2.props = u2;
    })(n), n.$$typeof = q, fn && fn(n);
  };
  var an = preact.options.__r;
  preact.options.__r = function(n) {
    an && an(n), n.__c;
  };
  var sn = preact.options.diffed;
  preact.options.diffed = function(n) {
    sn && sn(n);
    var t = n.props, e = n.__e;
    null != e && "textarea" === n.type && "value" in t && t.value !== e.value && (e.value = null == t.value ? "" : t.value);
  };
  function Title() {
    return u("h2", { class: "text-lg font-bold", children: [
      "Twitter/X Media Batch Downloader ",
u("span", { class: "text-warning", children: "Pro" })
    ] });
  }
  function Modal({ show, onClose, title, children, class: className, actions }) {
    if (!show) {
      return null;
    }
    const modalContent = u("dialog", { class: "modal", open: true, onClose: () => onClose?.(), children: [
u("div", { class: cx("modal-box transition-all duration-300 ease-in-out", className), children: [
u("div", { class: "flex items-center justify-between mb-4", children: [
          title ? u("h2", { class: "text-lg font-bold", children: title }) : u("span", {}),
u("div", { class: "flex items-center gap-2", children: [
            actions,
u("form", { method: "dialog", children: u(
              "button",
              {
                class: "btn btn-sm btn-circle btn-ghost",
                "aria-label": "Close",
                children: u(IconX, { size: 18 })
              }
            ) })
          ] })
        ] }),
u(ErrorBoundary, { children })
      ] }),
u("form", { method: "dialog", class: "modal-backdrop", children: u("button", { "aria-label": "Close", children: "close" }) })
    ] });
    const portalTarget = document.getElementById("tmd-root")?.shadowRoot?.getElementById("tmd-portal-root") || document.getElementById("tmd-root")?.shadowRoot || document.body;
    return $(modalContent, portalTarget);
  }
  function playSuccessSound() {
    try {
      const audioContext = new (window.AudioContext || window.webkitAudioContext)();
      const oscillator = audioContext.createOscillator();
      const gainNode = audioContext.createGain();
      oscillator.connect(gainNode);
      gainNode.connect(audioContext.destination);
      oscillator.frequency.value = 800;
      oscillator.type = "sine";
      gainNode.gain.setValueAtTime(0.3, audioContext.currentTime);
      gainNode.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + 0.3);
      oscillator.start(audioContext.currentTime);
      oscillator.stop(audioContext.currentTime + 0.3);
      setTimeout(() => {
        const oscillator2 = audioContext.createOscillator();
        const gainNode2 = audioContext.createGain();
        oscillator2.connect(gainNode2);
        gainNode2.connect(audioContext.destination);
        oscillator2.frequency.value = 1e3;
        oscillator2.type = "sine";
        gainNode2.gain.setValueAtTime(0.3, audioContext.currentTime);
        gainNode2.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + 0.3);
        oscillator2.start(audioContext.currentTime);
        oscillator2.stop(audioContext.currentTime + 0.3);
      }, 100);
    } catch (error) {
      console.warn("Failed to play success sound:", error);
    }
  }
  function playErrorSound() {
    try {
      const audioContext = new (window.AudioContext || window.webkitAudioContext)();
      const oscillator = audioContext.createOscillator();
      const gainNode = audioContext.createGain();
      oscillator.connect(gainNode);
      gainNode.connect(audioContext.destination);
      oscillator.frequency.value = 200;
      oscillator.type = "sawtooth";
      gainNode.gain.setValueAtTime(0.3, audioContext.currentTime);
      gainNode.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + 0.4);
      oscillator.start(audioContext.currentTime);
      oscillator.stop(audioContext.currentTime + 0.4);
    } catch (error) {
      console.warn("Failed to play error sound:", error);
    }
  }
  function Dashboard({ loadFromDatabaseUsername } = {}) {
    const { t, i18n } = useTranslation();
    const isArabic = (i18n.language || "").startsWith("ar");
    const {
      accountData,
      showAccountInfo,
      detectedUsername,
      isProfilePage,
      isLoading,
      errorMessage,
      isDownloading,
      downloadProgress,
      downloadError,
      isConverting,
      currentFile,
      downloadCurrent,
      downloadTotal
    } = dashboardState;
    const showOverwriteModal = signals.useSignal(false);
    const pendingFetchUsername = signals.useSignal("");
    const pendingFetchParams = signals.useSignal(null);
    const convertGifsExternal = signals.useSignal(appOptionsManager.get("convertGifsExternal") ?? false);
    const mediaType = signals.useSignal(appOptionsManager.get("mediaType") ?? "all");
    const fetchMode = signals.useSignal(appOptionsManager.get("fetchMode") ?? "single");
    const isLoadingFromDB = signals.useSignal(false);
    const hasDBData = signals.useSignal(false);
    const isLoadedFromDB = signals.useSignal(false);
    const isUpdating = signals.useSignal(false);
    const showUpdateConfirmModal = signals.useSignal(false);
    const isRetrying = signals.useSignal(false);
    const retryAbortController = signals.useSignal(null);
    const retryTokenCurrent = signals.useSignal(0);
    const retryTokenTotal = signals.useSignal(0);
    hooks.useEffect(() => {
      const updateUsernameFromUrl = () => {
        const profileInfo = urlParser.getProfileInfo();
        const newDetectedUsername = profileInfo.username;
        dashboardState.resetForNewAccount(newDetectedUsername);
        detectedUsername.value = newDetectedUsername;
        isProfilePage.value = profileInfo.isProfilePage;
        if (newDetectedUsername) {
          checkDBData(newDetectedUsername);
        } else {
          hasDBData.value = false;
        }
      };
      updateUsernameFromUrl();
      (async () => {
        try {
          const settings = await mediaDownloaderDB.getAuthSettings();
          authState.patreonVerified.value = Boolean(settings?.patreon_verified);
          authState.patreonAuth.value = settings?.patreon_auth || "";
        } catch {
        }
      })();
      const cleanup = urlParser.onUrlChange(() => {
        updateUsernameFromUrl();
      });
      return cleanup;
    }, []);
    hooks.useEffect(() => {
      appOptionsManager.signal.subscribe(() => {
        convertGifsExternal.value = appOptionsManager.get("convertGifsExternal") ?? false;
        mediaType.value = appOptionsManager.get("mediaType") ?? "all";
        fetchMode.value = appOptionsManager.get("fetchMode") ?? "single";
      });
    }, []);
    const checkDBData = async (username) => {
      try {
        const cleanUsername = mediaDownloaderAPI.formatUsername(username);
        const fetchMode2 = appOptionsManager.get("fetchMode") ?? "single";
        let count = 0;
        if (fetchMode2 === "single") {
          const singleAccount = await mediaDB.accounts.where("username").equals(cleanUsername).filter((acc) => !acc.batch_mode || acc.batch_mode === "single").count();
          count = singleAccount;
        } else {
          const batchCount = await mediaDB.accounts.where("username").equals(cleanUsername).filter((acc) => !!(acc.batch_mode && acc.batch_mode !== "single")).count();
          count = batchCount;
        }
        hasDBData.value = count > 0;
      } catch {
        hasDBData.value = false;
      }
    };
    hooks.useEffect(() => {
      const unsubscribe = appOptionsManager.signal.subscribe(() => {
        if (detectedUsername.value) {
          checkDBData(detectedUsername.value);
        }
      });
      return unsubscribe;
    }, []);
    hooks.useEffect(() => {
      if (detectedUsername.value) {
        checkDBData(detectedUsername.value);
      }
    }, [dbState.dbChangeSignal.value]);
    hooks.useEffect(() => {
      if (loadFromDatabaseUsername && loadFromDatabaseUsername.value) {
        const username = loadFromDatabaseUsername.value;
        loadFromDatabaseUsername.value = "";
        detectedUsername.value = username;
        handleLoadFromDatabase();
      }
    }, [loadFromDatabaseUsername?.value]);
    const stopRetry = () => {
      isRetrying.value = false;
      isLoading.value = false;
      if (retryAbortController.value) {
        retryAbortController.value.abort();
        retryAbortController.value = null;
      }
      errorMessage.value = "";
    };
    const retryWithTokenGeneration = async (cleanUsername, authSettings) => {
      const controller = new AbortController();
      retryAbortController.value = controller;
      isRetrying.value = true;
      while (isRetrying.value && !controller.signal.aborted) {
        if (!isRetrying.value || controller.signal.aborted) {
          break;
        }
        try {
          console.log("Attempting to generate new token...");
          const tokenResult = await mediaDownloaderAPI.generateAuthToken(authSettings.patreon_auth);
          retryTokenCurrent.value = tokenResult.current_index || 0;
          retryTokenTotal.value = tokenResult.total_tokens || 0;
          if (!isRetrying.value || controller.signal.aborted) {
            break;
          }
          authSettings.auth_token = tokenResult.auth_token;
          authState.authToken.value = tokenResult.auth_token;
          await mediaDownloaderDB.saveAuthSettings(
            tokenResult.auth_token,
            authSettings.patreon_auth
          );
          if (!isRetrying.value || controller.signal.aborted) {
            break;
          }
          await mediaDownloaderDB.setPatreonVerified(true);
          if (!isRetrying.value || controller.signal.aborted) {
            break;
          }
          console.log("Attempting to fetch with new token...");
          isRetrying.value = false;
          await handleFetchMedia(true);
          retryAbortController.value = null;
          return;
        } catch (error) {
          console.error("Retry attempt failed:", error);
          if (!isRetrying.value || controller.signal.aborted) {
            break;
          }
          console.log("Waiting 2 seconds before next retry...");
          const waitCompleted = await new Promise((resolve) => {
            const timeoutId = setTimeout(() => {
              cleanup();
              resolve(true);
            }, 2e3);
            const checkInterval = setInterval(() => {
              if (!isRetrying.value || controller.signal.aborted) {
                cleanup();
                resolve(false);
              }
            }, 100);
            const cleanup = () => {
              clearTimeout(timeoutId);
              clearInterval(checkInterval);
            };
          });
          if (!waitCompleted) {
            console.log("Wait interrupted, stopping retry");
            break;
          }
          console.log("Retrying...");
        }
      }
      console.log("Retry loop ended");
      isRetrying.value = false;
      retryAbortController.value = null;
    };
    const handleFetchMedia = async (skipOverwriteCheck = false) => {
      const rawUsername = detectedUsername.value || "";
      if (!rawUsername) {
        errorMessage.value = t("Please visit a profile page for auto-detection");
        playErrorSound();
        setTimeout(() => errorMessage.value = "", 2e3);
        return;
      }
      const authSettings = await mediaDownloaderDB.getAuthSettings();
      if (!authSettings) {
        errorMessage.value = t("Please configure authentication in the Auth tab first");
        playErrorSound();
        setTimeout(() => errorMessage.value = "", 2e3);
        return;
      }
      const cleanUsername = mediaDownloaderAPI.formatUsername(rawUsername);
      if ((authSettings.patreon_auth || "").trim() === "xbatchdemo" && cleanUsername !== "xbatchdemo") {
        errorMessage.value = t("Demo mode is only available for @xbatchdemo");
        playErrorSound();
        setTimeout(() => errorMessage.value = "", 2e3);
        return;
      }
      if (!mediaDownloaderAPI.validateUsername(cleanUsername)) {
        errorMessage.value = t("Invalid username format");
        playErrorSound();
        setTimeout(() => errorMessage.value = "", 2e3);
        return;
      }
      if (!mediaDownloaderAPI.validateAuthToken(authSettings.auth_token)) {
        errorMessage.value = t("Invalid auth token. Please check your settings.");
        playErrorSound();
        setTimeout(() => errorMessage.value = "", 2e3);
        return;
      }
      if (!mediaDownloaderAPI.validatePatreonAuth(authSettings.patreon_auth)) {
        errorMessage.value = t("Invalid Patreon auth. Please check your settings.");
        playErrorSound();
        setTimeout(() => errorMessage.value = "", 2e3);
        return;
      }
      const fetchMode2 = appOptionsManager.get("fetchMode") ?? "single";
      if (!skipOverwriteCheck) {
        const existingAccounts = await mediaDownloaderDB.getAccountsByUsernameAndMode(cleanUsername, fetchMode2);
        if (existingAccounts.length > 0) {
          pendingFetchUsername.value = cleanUsername;
          pendingFetchParams.value = { authSettings };
          showOverwriteModal.value = true;
          return;
        }
      }
      const timelineType = appOptionsManager.get("timelineType") ?? "media";
      const mediaType2 = appOptionsManager.get("mediaType") ?? "all";
      const batchSize = appOptionsManager.get("batchSize") ?? 100;
      const startingBatch = appOptionsManager.get("startingBatch") ?? 0;
      const resetBatchState = () => {
        dashboardState.currentPage.value = startingBatch;
        dashboardState.hasMore.value = false;
        dashboardState.isAutoBatching.value = false;
        dashboardState.isPaused.value = false;
        dashboardState.aggregatedTimeline.value = [];
        dashboardState.currentBatchTimeline.value = [];
        dashboardState.aggregatedCount.value = 0;
        dashboardState.fetchedPages.value = [];
        dashboardState.pageMediaCounts.value = {};
      };
      const fetchPage = async (page, reveal = false) => {
        isLoading.value = true;
        errorMessage.value = "";
        try {
          const data = await mediaDownloaderAPI.fetchMediaData(
            cleanUsername,
            authSettings.auth_token,
            authSettings.patreon_auth,
            {
              timelineType,
              batchSize,
              startingBatch: page,
              mediaType: mediaType2,
              fetchMode: fetchMode2
            }
          );
          accountData.value = data;
          dashboardState.currentBatchTimeline.value = data.timeline;
          dashboardState.hasMore.value = Boolean(data?.metadata?.has_more);
          dashboardState.currentPage.value = data?.metadata?.page ?? page;
          const seen = new Set(dashboardState.aggregatedTimeline.value.map((i) => `${i.tweet_id}|${i.url}`));
          const merged = [...dashboardState.aggregatedTimeline.value];
          if (!dashboardState.fetchedPages.value.includes(page)) {
            dashboardState.fetchedPages.value = [...dashboardState.fetchedPages.value, page];
            let newMediaCount = 0;
            for (const item of data.timeline) {
              const key = `${item.tweet_id}|${item.url}`;
              if (!seen.has(key)) {
                seen.add(key);
                merged.push(item);
                newMediaCount++;
              }
            }
            dashboardState.pageMediaCounts.value = {
              ...dashboardState.pageMediaCounts.value,
              [page]: newMediaCount
            };
            dashboardState.aggregatedTimeline.value = merged;
            dashboardState.aggregatedCount.value = merged.length;
          }
          if (reveal) {
            showAccountInfo.value = true;
          }
        } catch (error) {
          console.error("Fetch error:", error);
          const raw = error instanceof Error ? error.message : "";
          const httpMatch = raw.match(/^HTTP error! status: (\d+)/);
          const msg = httpMatch ? t("HTTP error! status: {{status}}", { status: httpMatch[1] }) : (raw ? t(raw) : "") || t("Failed to fetch data");
          errorMessage.value = msg;
          playErrorSound();
          setTimeout(() => errorMessage.value = "", 2e3);
          throw error;
        } finally {
          isLoading.value = false;
        }
      };
      try {
        resetBatchState();
        isLoadedFromDB.value = false;
        if (fetchMode2 === "single") {
          await fetchPage(startingBatch, true);
        } else if (fetchMode2 === "batch") {
          await fetchPage(startingBatch, true);
        } else {
          dashboardState.isAutoBatching.value = true;
          await fetchPage(startingBatch, true);
          await runAutoLoop();
        }
        if (accountData.value) {
          try {
            const batchIdentifier = fetchMode2 !== "single" ? `${cleanUsername}_${fetchMode2}_${Date.now()}` : void 0;
            const timelineToSave = fetchMode2 !== "single" && dashboardState.aggregatedTimeline.value.length > 0 ? dashboardState.aggregatedTimeline.value : accountData.value.timeline;
            const metadataToSave = fetchMode2 !== "single" && dashboardState.aggregatedTimeline.value.length > 0 ? { ...accountData.value.metadata, new_entries: dashboardState.aggregatedCount.value } : accountData.value.metadata;
            await mediaDownloaderDB.saveAccount({
              username: cleanUsername,
              account_info: accountData.value.account_info,
              metadata: metadataToSave,
              timeline: timelineToSave,
              batch_mode: fetchMode2,
              batch_identifier: batchIdentifier,
              timeline_type: timelineType,
              media_type: mediaType2
            });
            await checkDBData(cleanUsername);
          } catch (error) {
            console.error("Failed to save to database:", error);
          }
        }
      } catch (error) {
        const raw = error instanceof Error ? error.message : "";
        const isDemoMode = (authSettings.patreon_auth || "").trim() === "xbatchdemo";
        if (raw === "Failed to fetch data from all APIs" && !isRetrying.value && !isDemoMode) {
          errorMessage.value = "";
          retryWithTokenGeneration(cleanUsername, authSettings);
        } else if (isDemoMode && raw === "Failed to fetch data from all APIs") {
          const httpMatch = raw.match(/^HTTP error! status: (\d+)/);
          const msg = httpMatch ? t("HTTP error! status: {{status}}", { status: httpMatch[1] }) : (raw ? t(raw) : "") || t("Failed to fetch data");
          errorMessage.value = msg;
          playErrorSound();
          setTimeout(() => errorMessage.value = "", 2e3);
        }
      }
    };
    const confirmOverwrite = async () => {
      showOverwriteModal.value = false;
      pendingFetchUsername.value = "";
      pendingFetchParams.value = null;
      await handleFetchMedia(true);
    };
    const cancelOverwrite = () => {
      showOverwriteModal.value = false;
      pendingFetchUsername.value = "";
      pendingFetchParams.value = null;
    };
    const handleLoadFromDatabase = async () => {
      const rawUsername = detectedUsername.value || "";
      if (!rawUsername) {
        errorMessage.value = t("Please visit a profile page for auto-detection");
        playErrorSound();
        setTimeout(() => errorMessage.value = "", 2e3);
        return;
      }
      const cleanUsername = mediaDownloaderAPI.formatUsername(rawUsername);
      isLoadingFromDB.value = true;
      try {
        const fetchMode2 = appOptionsManager.get("fetchMode") ?? "single";
        let accounts;
        if (fetchMode2 === "single") {
          const singleAccount = await mediaDB.accounts.where("username").equals(cleanUsername).filter((acc) => !acc.batch_mode || acc.batch_mode === "single").reverse().sortBy("cached_at");
          accounts = singleAccount;
        } else {
          const batchAccounts = await mediaDB.accounts.where("username").equals(cleanUsername).filter((acc) => !!(acc.batch_mode && acc.batch_mode !== "single")).reverse().sortBy("cached_at");
          accounts = batchAccounts;
        }
        if (accounts.length === 0) {
          return;
        }
        const latestAccount = accounts[0];
        accountData.value = {
          account_info: latestAccount.account_info,
          metadata: latestAccount.metadata,
          timeline: latestAccount.timeline
        };
        dashboardState.currentBatchTimeline.value = latestAccount.timeline;
        dashboardState.aggregatedTimeline.value = latestAccount.timeline;
        dashboardState.aggregatedCount.value = latestAccount.timeline.length;
        showAccountInfo.value = true;
        isLoadedFromDB.value = true;
        if (detectedUsername.value) {
          await checkDBData(detectedUsername.value);
        }
      } catch (error) {
        console.error("Failed to load from database:", error);
        errorMessage.value = t("Failed to load data");
        playErrorSound();
        setTimeout(() => errorMessage.value = "", 2e3);
      } finally {
        isLoadingFromDB.value = false;
      }
    };
    const runAutoLoop = async () => {
      try {
        while (dashboardState.isAutoBatching.value && dashboardState.hasMore.value) {
          try {
            isLoading.value = true;
            const rawUsername = dashboardState.detectedUsername.value || "";
            const authSettings = await mediaDownloaderDB.getAuthSettings();
            if (!rawUsername || !authSettings) break;
            const cleanUsername = mediaDownloaderAPI.formatUsername(rawUsername);
            const timelineType = appOptionsManager.get("timelineType") ?? "media";
            const mediaType2 = appOptionsManager.get("mediaType") ?? "all";
            const batchSize = appOptionsManager.get("batchSize") ?? 100;
            const page = dashboardState.currentPage.value + 1;
            const data = await mediaDownloaderAPI.fetchMediaData(
              cleanUsername,
              authSettings.auth_token,
              authSettings.patreon_auth,
              {
                timelineType,
                batchSize,
                startingBatch: page,
                mediaType: mediaType2
              }
            );
            accountData.value = data;
            dashboardState.currentBatchTimeline.value = data.timeline;
            dashboardState.hasMore.value = Boolean(data?.metadata?.has_more);
            dashboardState.currentPage.value = data?.metadata?.page ?? page;
            const seen = new Set(dashboardState.aggregatedTimeline.value.map((i) => `${i.tweet_id}|${i.url}`));
            const merged = [...dashboardState.aggregatedTimeline.value];
            if (!dashboardState.fetchedPages.value.includes(page)) {
              dashboardState.fetchedPages.value = [...dashboardState.fetchedPages.value, page];
              let newMediaCount = 0;
              for (const item of data.timeline) {
                const key = `${item.tweet_id}|${item.url}`;
                if (!seen.has(key)) {
                  seen.add(key);
                  merged.push(item);
                  newMediaCount++;
                }
              }
              dashboardState.pageMediaCounts.value = {
                ...dashboardState.pageMediaCounts.value,
                [page]: newMediaCount
              };
              dashboardState.aggregatedTimeline.value = merged;
              dashboardState.aggregatedCount.value = merged.length;
              await saveAggregatedData();
            }
          } catch (error) {
            console.error("Auto batch error:", error);
            break;
          } finally {
            isLoading.value = false;
          }
        }
      } finally {
        dashboardState.isAutoBatching.value = false;
      }
    };
    const saveAggregatedData = async () => {
      if (!accountData.value) return;
      const fetchMode2 = appOptionsManager.get("fetchMode") ?? "single";
      const rawUsername = detectedUsername.value || "";
      if (fetchMode2 !== "single" && rawUsername && dashboardState.aggregatedTimeline.value.length > 0) {
        try {
          const cleanUsername = mediaDownloaderAPI.formatUsername(rawUsername);
          const timelineType = appOptionsManager.get("timelineType") ?? "media";
          const mediaType2 = appOptionsManager.get("mediaType") ?? "all";
          const batchIdentifier = `${cleanUsername}_${fetchMode2}_${Date.now()}`;
          await mediaDownloaderDB.saveAccount({
            username: cleanUsername,
            account_info: accountData.value.account_info,
            metadata: { ...accountData.value.metadata, new_entries: dashboardState.aggregatedCount.value },
            timeline: dashboardState.aggregatedTimeline.value,
            batch_mode: fetchMode2,
            batch_identifier: batchIdentifier,
            timeline_type: timelineType,
            media_type: mediaType2
          });
          await checkDBData(cleanUsername);
        } catch (error) {
          console.error("Failed to save aggregated data:", error);
        }
      }
    };
    const handleBack = async () => {
      if (accountData.value && !isLoadedFromDB.value) {
        await saveAggregatedData();
      }
      showAccountInfo.value = false;
      accountData.value = null;
      isLoadedFromDB.value = false;
      dashboardState.resetInteractionStates();
    };
    const handleUpdateDataClick = () => {
      showUpdateConfirmModal.value = true;
    };
    const cancelUpdate = () => {
      showUpdateConfirmModal.value = false;
    };
    const confirmUpdate = async () => {
      showUpdateConfirmModal.value = false;
      await handleUpdateData();
    };
    const handleUpdateData = async () => {
      isUpdating.value = true;
      const rawUsername = detectedUsername.value || "";
      if (!rawUsername) {
        errorMessage.value = t("Please visit a profile page for auto-detection");
        playErrorSound();
        setTimeout(() => errorMessage.value = "", 2e3);
        return;
      }
      const authSettings = await mediaDownloaderDB.getAuthSettings();
      if (!authSettings) {
        errorMessage.value = t("Please configure authentication in the Auth tab first");
        playErrorSound();
        setTimeout(() => errorMessage.value = "", 2e3);
        return;
      }
      const cleanUsername = mediaDownloaderAPI.formatUsername(rawUsername);
      const fetchMode2 = appOptionsManager.get("fetchMode") ?? "single";
      const timelineType = appOptionsManager.get("timelineType") ?? "media";
      const mediaType2 = appOptionsManager.get("mediaType") ?? "all";
      const batchSize = appOptionsManager.get("batchSize") ?? 100;
      const startingBatch = appOptionsManager.get("startingBatch") ?? 0;
      const resetBatchState = () => {
        dashboardState.currentPage.value = startingBatch;
        dashboardState.hasMore.value = false;
        dashboardState.isAutoBatching.value = false;
        dashboardState.isPaused.value = false;
        dashboardState.aggregatedTimeline.value = [];
        dashboardState.currentBatchTimeline.value = [];
        dashboardState.aggregatedCount.value = 0;
        dashboardState.fetchedPages.value = [];
        dashboardState.pageMediaCounts.value = {};
      };
      const fetchPage = async (page, reveal = false) => {
        isLoading.value = true;
        errorMessage.value = "";
        try {
          const data = await mediaDownloaderAPI.fetchMediaData(
            cleanUsername,
            authSettings.auth_token,
            authSettings.patreon_auth,
            {
              timelineType,
              batchSize,
              startingBatch: page,
              mediaType: mediaType2,
              fetchMode: fetchMode2
            }
          );
          accountData.value = data;
          dashboardState.currentBatchTimeline.value = data.timeline;
          dashboardState.hasMore.value = Boolean(data?.metadata?.has_more);
          dashboardState.currentPage.value = data?.metadata?.page ?? page;
          const seen = new Set(dashboardState.aggregatedTimeline.value.map((i) => `${i.tweet_id}|${i.url}`));
          const merged = [...dashboardState.aggregatedTimeline.value];
          if (!dashboardState.fetchedPages.value.includes(page)) {
            dashboardState.fetchedPages.value = [...dashboardState.fetchedPages.value, page];
            let newMediaCount = 0;
            for (const item of data.timeline) {
              const key = `${item.tweet_id}|${item.url}`;
              if (!seen.has(key)) {
                seen.add(key);
                merged.push(item);
                newMediaCount++;
              }
            }
            dashboardState.pageMediaCounts.value = {
              ...dashboardState.pageMediaCounts.value,
              [page]: newMediaCount
            };
            dashboardState.aggregatedTimeline.value = merged;
            dashboardState.aggregatedCount.value = merged.length;
          }
          if (reveal) {
            showAccountInfo.value = true;
          }
          try {
            const batchIdentifier = fetchMode2 !== "single" ? `${cleanUsername}_${fetchMode2}_${Date.now()}` : void 0;
            await mediaDownloaderDB.saveAccount({
              username: cleanUsername,
              account_info: data.account_info,
              metadata: data.metadata,
              timeline: data.timeline,
              batch_mode: fetchMode2,
              batch_identifier: batchIdentifier,
              timeline_type: timelineType,
              media_type: mediaType2
            });
            await checkDBData(cleanUsername);
          } catch {
          }
        } catch (error) {
          console.error("Fetch error:", error);
          const raw = error instanceof Error ? error.message : "";
          const httpMatch = raw.match(/^HTTP error! status: (\d+)/);
          const msg = httpMatch ? t("HTTP error! status: {{status}}", { status: httpMatch[1] }) : (raw ? t(raw) : "") || t("Failed to fetch data");
          errorMessage.value = msg;
          playErrorSound();
          setTimeout(() => errorMessage.value = "", 2e3);
          throw error;
        } finally {
          isLoading.value = false;
        }
      };
      try {
        resetBatchState();
        isLoadedFromDB.value = false;
        if (fetchMode2 === "single") {
          await fetchPage(startingBatch, true);
        } else if (fetchMode2 === "batch") {
          await fetchPage(startingBatch, true);
        } else {
          dashboardState.isAutoBatching.value = true;
          await fetchPage(startingBatch, true);
          await runAutoLoop();
        }
      } catch {
      } finally {
        isUpdating.value = false;
      }
    };
    const handleDownloadMedia = async () => {
      if (!accountData.value) return;
      try {
        dashboardState.downloadingType.value = "all";
        isDownloading.value = true;
        downloadError.value = "";
        downloadProgress.value = 0;
        const aggregatedTimeline = dashboardState.aggregatedTimeline.value.length > 0 ? dashboardState.aggregatedTimeline.value : accountData.value.timeline;
        const account = {
          username: accountData.value.account_info.name,
          account_info: accountData.value.account_info,
          metadata: accountData.value.metadata,
          timeline: aggregatedTimeline,
          cached_at: Date.now()
        };
        const fetchMode2 = appOptionsManager.get("fetchMode") ?? "single";
        const batchInfo = fetchMode2 !== "single" ? { mode: fetchMode2 } : void 0;
        await mediaDownloader.downloadAccountMedia(account, (progress) => {
          downloadProgress.value = progress.percentage;
          isConverting.value = progress.converting || false;
          currentFile.value = progress.currentFile || "";
          dashboardState.downloadCurrent.value = progress.current;
          dashboardState.downloadTotal.value = progress.total;
        }, batchInfo);
        playSuccessSound();
      } catch (error) {
        console.error("Download error:", error);
        const raw = error instanceof Error ? error.message : "";
        const httpMatch = raw.match(/^HTTP error! status: (\d+)/);
        const msg = httpMatch ? t("HTTP error! status: {{status}}", { status: httpMatch[1] }) : (raw ? t(raw) : "") || t("Failed to download media");
        downloadError.value = msg;
        playErrorSound();
        setTimeout(() => downloadError.value = "", 2e3);
      } finally {
        dashboardState.downloadingType.value = null;
        isDownloading.value = false;
        downloadProgress.value = 0;
        isConverting.value = false;
        currentFile.value = "";
        dashboardState.downloadCurrent.value = 0;
        dashboardState.downloadTotal.value = 0;
      }
    };
    const handleDownloadCurrent = async () => {
      if (!accountData.value) return;
      try {
        dashboardState.downloadingType.value = "current";
        isDownloading.value = true;
        downloadError.value = "";
        downloadProgress.value = 0;
        const currentTimeline = dashboardState.currentBatchTimeline.value.length > 0 ? dashboardState.currentBatchTimeline.value : accountData.value.timeline;
        const account = {
          username: accountData.value.account_info.name,
          account_info: accountData.value.account_info,
          metadata: accountData.value.metadata,
          timeline: currentTimeline,
          cached_at: Date.now()
        };
        const fetchMode2 = appOptionsManager.get("fetchMode") ?? "single";
        const currentPage = dashboardState.currentPage.value;
        const batchInfo = fetchMode2 !== "single" ? { mode: fetchMode2, page: currentPage } : void 0;
        await mediaDownloader.downloadAccountMedia(account, (progress) => {
          downloadProgress.value = progress.percentage;
          isConverting.value = progress.converting || false;
          currentFile.value = progress.currentFile || "";
          dashboardState.downloadCurrent.value = progress.current;
          dashboardState.downloadTotal.value = progress.total;
        }, batchInfo);
        playSuccessSound();
      } catch (error) {
        console.error("Download error:", error);
        const raw = error instanceof Error ? error.message : "";
        const httpMatch = raw.match(/^HTTP error! status: (\d+)/);
        const msg = httpMatch ? t("HTTP error! status: {{status}}", { status: httpMatch[1] }) : (raw ? t(raw) : "") || t("Failed to download media");
        downloadError.value = msg;
        playErrorSound();
        setTimeout(() => downloadError.value = "", 2e3);
      } finally {
        dashboardState.downloadingType.value = null;
        isDownloading.value = false;
        downloadProgress.value = 0;
        isConverting.value = false;
        currentFile.value = "";
        dashboardState.downloadCurrent.value = 0;
        dashboardState.downloadTotal.value = 0;
      }
    };
    const handlePrevBatch = async () => {
      const page = dashboardState.currentPage.value;
      if (page <= 0) return;
      const p = page - 1;
      await handleNavigateBatch(p);
    };
    const handleNextBatch = async () => {
      const p = dashboardState.currentPage.value + 1;
      await handleNavigateBatch(p);
    };
    const handleNavigateBatch = async (page) => {
      const rawUsername = dashboardState.detectedUsername.value || "";
      const authSettings = await mediaDownloaderDB.getAuthSettings();
      if (!rawUsername || !authSettings) return;
      const cleanUsername = mediaDownloaderAPI.formatUsername(rawUsername);
      const timelineType = appOptionsManager.get("timelineType") ?? "media";
      const mediaType2 = appOptionsManager.get("mediaType") ?? "all";
      const batchSize = appOptionsManager.get("batchSize") ?? 100;
      try {
        isLoading.value = true;
        const data = await mediaDownloaderAPI.fetchMediaData(
          cleanUsername,
          authSettings.auth_token,
          authSettings.patreon_auth,
          {
            timelineType,
            batchSize,
            startingBatch: page,
            mediaType: mediaType2
          }
        );
        accountData.value = data;
        dashboardState.currentBatchTimeline.value = data.timeline;
        dashboardState.hasMore.value = Boolean(data?.metadata?.has_more);
        dashboardState.currentPage.value = data?.metadata?.page ?? page;
        const seen = new Set(dashboardState.aggregatedTimeline.value.map((i) => `${i.tweet_id}|${i.url}`));
        const merged = [...dashboardState.aggregatedTimeline.value];
        if (!dashboardState.fetchedPages.value.includes(page)) {
          dashboardState.fetchedPages.value = [...dashboardState.fetchedPages.value, page];
          let newMediaCount = 0;
          for (const item of data.timeline) {
            const key = `${item.tweet_id}|${item.url}`;
            if (!seen.has(key)) {
              seen.add(key);
              merged.push(item);
              newMediaCount++;
            }
          }
          dashboardState.pageMediaCounts.value = {
            ...dashboardState.pageMediaCounts.value,
            [page]: newMediaCount
          };
          dashboardState.aggregatedTimeline.value = merged;
          dashboardState.aggregatedCount.value = merged.length;
          await saveAggregatedData();
        }
      } catch (error) {
        console.error("Navigate batch error:", error);
      } finally {
        isLoading.value = false;
        dashboardState.loadingDirection.value = null;
      }
    };
    const handleStartStop = async () => {
      const running = dashboardState.isAutoBatching.value;
      if (running) {
        dashboardState.isAutoBatching.value = false;
      } else {
        dashboardState.isAutoBatching.value = true;
        await runAutoLoop();
      }
    };
    if (showAccountInfo.value && accountData.value) {
      const account = accountData.value.account_info;
      const metadata = accountData.value.metadata;
      return u(preact.Fragment, { children: [
u("div", { class: "space-y-6", children: [
u("div", { class: "flex items-center gap-4 mb-6", children: [
u("div", { class: "flex items-center gap-2", children: [
u("button", { class: "btn btn-sm", onClick: handleBack, children: [
u(IconChevronLeft, { size: 16 }),
                t("Back")
              ] }),
              (isLoadedFromDB.value || isUpdating.value) && u("button", { class: "btn btn-accent btn-sm", onClick: handleUpdateDataClick, disabled: isLoading.value, children: isLoading.value && isUpdating.value ? u(preact.Fragment, { children: [
u("span", { class: "loading loading-spinner loading-xs" }),
                t("Updating...")
              ] }) : u(preact.Fragment, { children: [
u(IconCloudUp, { size: 16 }),
                t("Update")
              ] }) })
            ] }),
u("div", { class: "ml-auto flex items-center gap-2", children: (() => {
              if (isLoadedFromDB.value) {
                return null;
              }
              const page = dashboardState.currentPage.value;
              const isPrevLoading = isLoading.value && dashboardState.loadingDirection.value === "prev";
              const isNextLoading = isLoading.value && dashboardState.loadingDirection.value === "next";
              if (fetchMode.value === "batch") {
                return u(preact.Fragment, { children: [
u("button", { class: "btn btn-primary btn-sm", onClick: () => {
                    dashboardState.loadingDirection.value = "prev";
                    handlePrevBatch();
                  }, disabled: isLoading.value || page <= 0, children: [
                    isPrevLoading ? u("span", { class: "loading loading-spinner loading-xs" }) : u(IconChevronLeft, { size: 16 }),
                    t("Prev")
                  ] }),
u("button", { class: "btn btn-primary btn-sm", onClick: () => {
                    dashboardState.loadingDirection.value = "next";
                    handleNextBatch();
                  }, disabled: isLoading.value || !dashboardState.hasMore.value, children: [
                    isNextLoading ? u("span", { class: "loading loading-spinner loading-xs" }) : u(IconChevronRight, { size: 16 }),
                    t("Next")
                  ] })
                ] });
              }
              if (fetchMode.value === "auto") {
                const running = dashboardState.isAutoBatching.value;
                return u(preact.Fragment, { children: u("button", { class: "btn btn-secondary btn-sm", onClick: handleStartStop, children: [
                  isLoading.value ? u("span", { class: "loading loading-spinner loading-xs" }) : running ? u(IconPlayerStop, { size: 16 }) : u(IconPlayerPlay, { size: 16 }),
                  running ? t("Stop") : t("Start")
                ] }) });
              }
              return null;
            })() })
          ] }),
u("div", { class: "card bg-base-200 card-border", children: u("div", { class: "card-body p-4", children: u("div", { class: "flex items-center gap-4", children: [
u("div", { class: "avatar", children: u("div", { class: "w-16 rounded-box", children: u(
              "img",
              {
                src: account.profile_image,
                alt: account.nick,
                onError: (e) => {
                  const target = e.target;
                  target.src = 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="gray"%3E%3Ccircle cx="12" cy="12" r="10"/%3E%3C/svg%3E';
                }
              }
            ) }) }),
u("div", { class: "flex-grow", children: [
u("div", { class: "flex items-center gap-2", children: [
u("h3", { class: "font-semibold text-base", children: account.nick }),
                (() => {
                  if (isLoadedFromDB.value) {
                    return null;
                  }
                  const page = dashboardState.currentPage.value;
                  if (fetchMode.value === "batch") {
                    return u("div", { class: "badge badge-soft badge-primary badge-sm", children: isLoading.value ? t("Fetching...") : t("Batch: {{page}}", { page }) });
                  }
                  if (fetchMode.value === "auto") {
                    return u("div", { class: "badge badge-soft badge-secondary badge-sm", children: isLoading.value ? t("Fetching...") : t("Batch: {{page}}", { page }) });
                  }
                  return null;
                })()
              ] }),
u("p", { class: "text-sm opacity-70", children: [
                "@",
                account.name
              ] }),
u("p", { class: "text-sm opacity-50 mt-1", children: [
                t("Posts: {{posts}}", { posts: account.statuses_count.toLocaleString() }),
                " • ",
                (() => {
                  if (isLoadedFromDB.value) {
                    return t("Media: {{media}}", { media: metadata.new_entries.toLocaleString() });
                  }
                  if (fetchMode.value !== "single") {
                    const currentCount = dashboardState.currentBatchTimeline.value?.length || 0;
                    const currentPage = dashboardState.currentPage.value;
                    const pageMediaCounts = dashboardState.pageMediaCounts.value;
                    const fetchedPages = dashboardState.fetchedPages.value;
                    const relevantPages = fetchedPages.filter((p) => p <= currentPage);
                    const totalCount = relevantPages.reduce((sum, page) => {
                      return sum + (pageMediaCounts[page] || 0);
                    }, 0);
                    return t("Current Media: {{current}} • Total Media: {{total}}", {
                      current: currentCount.toLocaleString(),
                      total: totalCount.toLocaleString()
                    });
                  }
                  return t("Media: {{media}}", { media: metadata.new_entries.toLocaleString() });
                })()
              ] })
            ] })
          ] }) }) }),
u("div", { class: "space-y-4", children: [
            isDownloading.value && u("div", { class: "space-y-2", children: [
u("div", { class: "flex justify-between text-sm", children: [
u("span", { children: [
                  isConverting.value ? t("Converting GIFs...") : t("Downloading..."),
                  downloadTotal.value > 0 && ` (${downloadCurrent.value.toLocaleString()}/${downloadTotal.value.toLocaleString()})`
                ] }),
u("span", { children: [
                  downloadProgress.value,
                  "%"
                ] })
              ] }),
u("progress", { class: "progress progress-primary w-full", value: downloadProgress.value, max: "100" }),
              currentFile.value && u("div", { class: "text-xs opacity-70 truncate", children: currentFile.value })
            ] }),
u("div", { class: "flex justify-center gap-2", children: isDownloading.value ? u(
              "button",
              {
                class: "btn btn-error btn-sm",
                onClick: () => mediaDownloader.abortDownload(),
                children: [
u(IconPlayerStop, { size: 16 }),
                  t("Stop")
                ]
              }
            ) : u(preact.Fragment, { children: [
              (() => {
                if (isLoadedFromDB.value) {
                  return null;
                }
                if (fetchMode.value !== "single") {
                  const currentCount = dashboardState.currentBatchTimeline.value?.length || 0;
                  return u(
                    "button",
                    {
                      class: "btn btn-sm",
                      onClick: handleDownloadCurrent,
                      disabled: currentCount === 0,
                      children: [
u(IconDownload, { size: 16 }),
                        t("Download Current")
                      ]
                    }
                  );
                }
                return null;
              })(),
              (() => {
                const labelKey = fetchMode.value === "single" ? "Download" : "Download All";
                return u(
                  "button",
                  {
                    class: "btn btn-neutral btn-sm",
                    onClick: handleDownloadMedia,
                    disabled: (dashboardState.aggregatedCount.value || metadata.new_entries) === 0,
                    children: [
u(IconDownload, { size: 16 }),
                      t(labelKey)
                    ]
                  }
                );
              })()
            ] }) }),
            downloadError.value && u("div", { role: "alert", class: "alert alert-error alert-soft", children: [
u(IconCircleX, { size: 20 }),
u("span", { dir: isArabic ? "rtl" : void 0, children: downloadError.value })
            ] })
          ] })
        ] }),
u(Modal, { show: showUpdateConfirmModal.value, onClose: cancelUpdate, title: t("Update"), class: "max-w-sm", children: u("div", { class: "space-y-2", children: [
u("p", { class: `text-sm${isArabic ? " text-right" : ""}`, dir: isArabic ? "rtl" : void 0, children: t("Update will fetch the latest data and overwrite the database. Continue?") }),
u("div", { class: "modal-action", children: [
u(
              "button",
              {
                class: "btn btn-sm btn-ghost",
                onClick: cancelUpdate,
                children: t("Cancel")
              }
            ),
u(
              "button",
              {
                class: "btn btn-sm btn-warning",
                onClick: confirmUpdate,
                children: [
u(IconCloudUp, { size: 16 }),
                  t("Update")
                ]
              }
            )
          ] })
        ] }) })
      ] });
    }
    const handleExternalConvert = async () => {
      const rawUsername = detectedUsername.value || "";
      if (!rawUsername) {
        errorMessage.value = t("Please visit a profile page for auto-detection");
        setTimeout(() => errorMessage.value = "", 2e3);
        return;
      }
      const authSettings = await mediaDownloaderDB.getAuthSettings();
      if (!authSettings) {
        errorMessage.value = t("Please configure authentication in the Auth tab first");
        setTimeout(() => errorMessage.value = "", 2e3);
        return;
      }
      const cleanUsername = mediaDownloaderAPI.formatUsername(rawUsername);
      if (!mediaDownloaderAPI.validateUsername(cleanUsername)) {
        errorMessage.value = t("Invalid username format");
        setTimeout(() => errorMessage.value = "", 2e3);
        return;
      }
      const patreonAuth = authSettings.patreon_auth || "";
      const authToken = authSettings.auth_token || "";
      if (!patreonAuth || !authToken) {
        errorMessage.value = t("Please configure authentication in the Auth tab first");
        setTimeout(() => errorMessage.value = "", 2e3);
        return;
      }
      let url;
      if (patreonAuth.trim() === "xbatchdemo") {
        url = `https://convert.exyezed.cc/demo/xbatchdemo/${encodeURIComponent(authToken)}/xbatchdemo`;
      } else {
        url = `https://convert.exyezed.cc/${encodeURIComponent(patreonAuth)}/${encodeURIComponent(authToken)}/${encodeURIComponent(cleanUsername)}`;
      }
      window.open(url, "_blank", "noopener,noreferrer");
    };
    return u("div", { class: "space-y-4", children: [
u("div", { class: "space-y-4", children: [
        isRetrying.value && u("div", { role: "alert", class: "alert alert-info alert-soft", children: [
u("span", { class: "loading loading-spinner loading-sm" }),
u("span", { dir: isArabic ? "rtl" : void 0, children: [
            t("Generating token..."),
            " ",
            retryTokenTotal.value > 0 && `(${retryTokenCurrent.value}/${retryTokenTotal.value})`
          ] })
        ] }),
u("div", { role: "alert", class: `alert alert-soft ${!authState.patreonVerified.value ? "alert-warning" : "alert-info"}`, children: [
          !authState.patreonVerified.value ? u(IconAlertTriangle, { size: 20 }) : u(IconUserFilled, { size: 20 }),
u("div", { class: "flex-1", dir: isArabic ? "rtl" : void 0, children: !authState.patreonVerified.value ? u("div", { children: t("Please verify Patreon auth first") }) : detectedUsername.value ? u("div", { children: u("span", { dir: "ltr", children: [
            "@",
            detectedUsername.value
          ] }) }) : u("div", { class: "font-semibold", children: t("Please visit a profile page for auto-detection") }) }),
          detectedUsername.value && hasDBData.value && authState.patreonVerified.value && u("div", { class: "tooltip tooltip-left", "data-tip": t("Load from database"), children: u(
            "button",
            {
              class: "btn btn-sm btn-square btn-soft btn-info",
              onClick: handleLoadFromDatabase,
              disabled: isLoadingFromDB.value || !detectedUsername.value,
              "aria-label": t("Load from database"),
              children: isLoadingFromDB.value ? u("span", { class: "loading loading-spinner loading-xs" }) : u(IconDatabaseImport, { size: 16 })
            }
          ) })
        ] }),
u("div", { class: "flex justify-center", children: u("div", { class: "join", children: [
u(
            "button",
            {
              class: `btn btn-sm join-item ${isRetrying.value ? "btn-error" : "btn-neutral"}`,
              onClick: () => isRetrying.value ? stopRetry() : handleFetchMedia(),
              disabled: isLoading.value && !isRetrying.value || !detectedUsername.value || !authState.patreonVerified.value,
              children: (() => {
                if (isRetrying.value) {
                  return u(preact.Fragment, { children: [
u(IconPlayerStop, { size: 16 }),
                    t("Abort")
                  ] });
                }
                const fetchKey = mediaType.value === "all" ? "Fetch All" : mediaType.value === "video" ? "Fetch Video" : mediaType.value === "image" ? "Fetch Image" : mediaType.value === "gif" ? "Fetch GIF" : "Fetch";
                if (isLoading.value) {
                  return u(preact.Fragment, { children: [
u("span", { class: "loading loading-spinner loading-xs" }),
                    t("Fetching...")
                  ] });
                }
                return u(preact.Fragment, { children: [
u(IconCloudDown, { size: 16 }),
                  t(fetchKey)
                ] });
              })()
            }
          ),
          convertGifsExternal.value ? u(
            "button",
            {
              class: "btn btn-accent btn-sm join-item",
              onClick: handleExternalConvert,
              disabled: !detectedUsername.value || !authState.patreonVerified.value,
              children: [
u(IconPhotoEdit, { size: 16 }),
                t("Convert Animated GIFs")
              ]
            }
          ) : null
        ] }) }),
        errorMessage.value && u("div", { role: "alert", class: "alert alert-error alert-soft", children: [
u(IconCircleX, { size: 20 }),
u("span", { dir: isArabic ? "rtl" : void 0, children: errorMessage.value })
        ] })
      ] }),
u(Modal, { show: showOverwriteModal.value, onClose: cancelOverwrite, title: t("Overwrite Existing Data?"), class: "max-w-sm", children: u("div", { class: "space-y-2", children: [
u("p", { class: `text-sm${isArabic ? " text-right" : ""}`, dir: isArabic ? "rtl" : void 0, children: t("Account data for @{{username}} already exists in the database. Do you want to overwrite it?", { username: pendingFetchUsername.value }) }),
u("div", { class: "modal-action", children: [
u(
            "button",
            {
              class: "btn btn-sm btn-ghost",
              onClick: cancelOverwrite,
              children: t("Cancel")
            }
          ),
u(
            "button",
            {
              class: "btn btn-sm btn-warning",
              onClick: confirmOverwrite,
              children: [
u(IconWriting, { size: 16 }),
                t("Overwrite")
              ]
            }
          )
        ] })
      ] }) })
    ] });
  }
  function ViewDatabaseModal({ isOpen, onClose, account, onDeleteEntry, onLoadDatabase }) {
    const { t } = useTranslation();
    const typeFilter = signals.useSignal("all");
    const currentPage = signals.useSignal(1);
    const deletingEntry = signals.useSignal("");
    const previewUrl = signals.useSignal("");
    const previewType = signals.useSignal("");
    const previewIndex = signals.useSignal(-1);
    const touchStartX = hooks.useRef(0);
    const touchEndX = hooks.useRef(0);
    const previousAccountId = hooks.useRef(void 0);
    const downloadingFiles = signals.useSignal( new Set());
    const convertingFiles = signals.useSignal( new Set());
    hooks.useEffect(() => {
      if (account?.id !== previousAccountId.current) {
        typeFilter.value = "all";
        currentPage.value = 1;
        previousAccountId.current = account?.id;
      }
    }, [account?.id]);
    if (!account) return null;
    const ITEMS_PER_PAGE = 5;
    const filteredTimeline = typeFilter.value === "all" ? account.timeline : account.timeline.filter((item) => item.type === typeFilter.value);
    const totalPages = Math.ceil(filteredTimeline.length / ITEMS_PER_PAGE);
    const startIndex = (currentPage.value - 1) * ITEMS_PER_PAGE;
    const endIndex = startIndex + ITEMS_PER_PAGE;
    const currentItems = filteredTimeline.slice(startIndex, endIndex);
    const handleTypeFilter = (type) => {
      typeFilter.value = type;
      currentPage.value = 1;
    };
    const handleOpenFile = (url) => {
      window.open(url, "_blank", "noopener,noreferrer");
    };
    const handleDownloadFile = async (url, date, type, tweetId) => {
      const fileKey = `${tweetId}_${url}`;
      if (downloadingFiles.value.has(fileKey)) {
        return;
      }
      try {
        downloadingFiles.value = new Set([...downloadingFiles.value, fileKey]);
        const shouldConvertGif = type === "animated_gif" && (appOptionsManager.get("convertAnimatedGifs") ?? true);
        let finalBlob;
        let ext = "jpg";
        if (shouldConvertGif) {
          convertingFiles.value = new Set([...convertingFiles.value, fileKey]);
          try {
            const gifBlob = await convertVideoToGif(url);
            if (gifBlob) {
              finalBlob = gifBlob;
              ext = "gif";
            } else {
              const response = await fetch(url);
              finalBlob = await response.blob();
              ext = "mp4";
            }
          } catch (error) {
            console.warn("GIF conversion failed, downloading original:", error);
            const response = await fetch(url);
            finalBlob = await response.blob();
            ext = "mp4";
          } finally {
            convertingFiles.value = new Set([...convertingFiles.value].filter((k) => k !== fileKey));
          }
        } else {
          const response = await fetch(url);
          finalBlob = await response.blob();
          if (type === "photo") {
            const photoMatch = url.match(/format=(\w+)/);
            ext = photoMatch?.[1] || "jpg";
          } else if (type === "video") {
            ext = "mp4";
          } else if (type === "animated_gif") {
            ext = "mp4";
          }
        }
        const formatDateForFilename = (dateStr2) => {
          const m = dateStr2.match(/(\d{4})-(\d{2})-(\d{2}).*?(\d{2}):(\d{2}):(\d{2})/);
          if (m) {
            const [, y, mo, d, h2, mi, s] = m;
            return `${y}${mo}${d}_${h2}${mi}${s}`;
          }
          const d2 = new Date(dateStr2);
          if (!isNaN(d2.getTime())) {
            const pad = (n) => String(n).padStart(2, "0");
            return `${d2.getFullYear()}${pad(d2.getMonth() + 1)}${pad(d2.getDate())}_${pad(d2.getHours())}${pad(d2.getMinutes())}${pad(d2.getSeconds())}`;
          }
          return dateStr2.replace(/\D/g, "");
        };
        const dateStr = formatDateForFilename(date);
        const filename = `${account.username}_${dateStr}_${tweetId}.${ext}`;
        const link = document.createElement("a");
        link.href = URL.createObjectURL(finalBlob);
        link.download = filename;
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
        URL.revokeObjectURL(link.href);
      } catch (error) {
        console.error("Failed to download file:", error);
      } finally {
        downloadingFiles.value = new Set([...downloadingFiles.value].filter((k) => k !== fileKey));
      }
    };
    const convertVideoToGif = (videoUrl) => {
      return new Promise((resolve) => {
        if (!gifshot.isExistingVideoGIFSupported()) {
          console.warn("GIF conversion not supported in this browser");
          resolve(null);
          return;
        }
        const gifOptions = getGifShotOptions();
        {
          getVideoDimensions(videoUrl).then(({ width, height }) => {
            gifshot.createGIF({
              video: videoUrl,
              gifWidth: width,
              gifHeight: height,
              ...gifOptions
            }, (obj) => {
              handleGifConversionResult(obj, resolve);
            });
          }).catch((error) => {
            console.error("Failed to get video dimensions:", error);
            gifshot.createGIF({
              video: videoUrl,
              ...gifOptions
            }, (obj) => {
              handleGifConversionResult(obj, resolve);
            });
          });
        }
      });
    };
    const handleGifConversionResult = (obj, resolve) => {
      if (obj.error) {
        console.error("GIF conversion failed:", obj.errorMsg);
        resolve(null);
      } else if (obj.image) {
        try {
          const dataUrl = obj.image;
          const base64Data = dataUrl.split(",")[1];
          if (!base64Data) {
            resolve(null);
            return;
          }
          const byteCharacters = atob(base64Data);
          const byteNumbers = new Array(byteCharacters.length);
          for (let i = 0; i < byteCharacters.length; i++) {
            byteNumbers[i] = byteCharacters.charCodeAt(i);
          }
          const byteArray = new Uint8Array(byteNumbers);
          const blob = new Blob([byteArray], { type: "image/gif" });
          resolve(blob);
        } catch (error) {
          console.error("Failed to create blob:", error);
          resolve(null);
        }
      } else {
        resolve(null);
      }
    };
    const getVideoDimensions = (videoUrl) => {
      return new Promise((resolve, reject) => {
        const video = document.createElement("video");
        video.crossOrigin = "anonymous";
        video.onloadedmetadata = () => {
          const width = video.videoWidth;
          const height = video.videoHeight;
          video.remove();
          if (width && height) {
            resolve({ width, height });
          } else {
            reject(new Error("Could not determine video dimensions"));
          }
        };
        video.onerror = () => {
          video.remove();
          reject(new Error("Failed to load video for dimension detection"));
        };
        video.src = videoUrl;
      });
    };
    const handleDeleteEntry = async (tweetId, url) => {
      const key = `${tweetId}|${url}`;
      deletingEntry.value = key;
      try {
        await onDeleteEntry(tweetId, url);
      } finally {
        deletingEntry.value = "";
      }
    };
    const getTypeIcon = (type) => {
      switch (type) {
        case "photo":
          return u(IconPhoto, { size: 16 });
        case "video":
          return u(IconVideo, { size: 16 });
        case "animated_gif":
          return u(IconGif, { size: 16 });
        default:
          return null;
      }
    };
    const formatDate = (timestamp) => {
      const fmt = appOptionsManager.get("dateTimeFormat") || "YYYY-MM-DD HH:mm:ss";
      return dayjs(timestamp).format(fmt);
    };
    const handleSwipeLeft = () => {
      if (previewIndex.value < filteredTimeline.length - 1) {
        const nextItem = filteredTimeline[previewIndex.value + 1];
        if (nextItem) {
          previewIndex.value = previewIndex.value + 1;
          previewUrl.value = nextItem.url;
          previewType.value = nextItem.type;
        }
      }
    };
    const handleSwipeRight = () => {
      if (previewIndex.value > 0) {
        const prevItem = filteredTimeline[previewIndex.value - 1];
        if (prevItem) {
          previewIndex.value = previewIndex.value - 1;
          previewUrl.value = prevItem.url;
          previewType.value = prevItem.type;
        }
      }
    };
    const handleTouchStart = (e) => {
      if (e.touches[0]) {
        touchStartX.current = e.touches[0].clientX;
        touchEndX.current = e.touches[0].clientX;
      }
    };
    const handleTouchMove = (e) => {
      if (e.touches[0]) {
        touchEndX.current = e.touches[0].clientX;
      }
    };
    const handleTouchEnd = () => {
      if (touchStartX.current === 0 || touchEndX.current === 0) {
        touchStartX.current = 0;
        touchEndX.current = 0;
        return;
      }
      const swipeThreshold = 50;
      const diff = touchStartX.current - touchEndX.current;
      if (Math.abs(diff) > swipeThreshold) {
        if (diff > 0) {
          handleSwipeLeft();
        } else {
          handleSwipeRight();
        }
      }
      touchStartX.current = 0;
      touchEndX.current = 0;
    };
    hooks.useEffect(() => {
      if (!previewUrl.value) return;
      const handleKeyDown = (e) => {
        if (e.key === "ArrowLeft" && previewIndex.value > 0) {
          const prevItem = filteredTimeline[previewIndex.value - 1];
          if (prevItem) {
            previewIndex.value = previewIndex.value - 1;
            previewUrl.value = prevItem.url;
            previewType.value = prevItem.type;
          }
        } else if (e.key === "ArrowRight" && previewIndex.value < filteredTimeline.length - 1) {
          const nextItem = filteredTimeline[previewIndex.value + 1];
          if (nextItem) {
            previewIndex.value = previewIndex.value + 1;
            previewUrl.value = nextItem.url;
            previewType.value = nextItem.type;
          }
        } else if (e.key === "Escape") {
          previewUrl.value = "";
          previewType.value = "";
          previewIndex.value = -1;
        }
      };
      window.addEventListener("keydown", handleKeyDown);
      return () => window.removeEventListener("keydown", handleKeyDown);
    }, [previewUrl.value, previewIndex.value, filteredTimeline]);
    return u(preact.Fragment, { children: [
u(Modal, { show: isOpen, onClose, title: t("Database"), children: u("div", { class: "space-y-4", children: [
u("div", { class: "card bg-base-200 border border-base-300", children: u("div", { class: "card-body p-4", children: u("div", { class: "flex items-center gap-4", children: [
u("div", { class: "avatar", children: u("div", { class: "w-16 rounded-box", children: u(
            "img",
            {
              src: account.account_info.profile_image,
              alt: account.account_info.nick,
              onError: (e) => {
                const target = e.target;
                target.src = 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="gray"%3E%3Ccircle cx="12" cy="12" r="10"/%3E%3C/svg%3E';
              }
            }
          ) }) }),
u("div", { class: "flex-grow", children: [
u("h3", { class: "font-semibold text-base", children: [
              account.account_info.nick,
              " ",
u("span", { class: "font-normal opacity-70", children: [
                "(@",
                account.username,
                ")"
              ] })
            ] }),
u("p", { class: "text-xs opacity-60 mb-1", children: [
u("span", { class: "font-bold", children: t("Joined") }),
              " ",
              formatDateTime(account.account_info.date, appOptionsManager.get("dateTimeFormat") || "YYYY-MM-DD HH:mm:ss")
            ] }),
u("div", { class: "flex gap-3 text-xs opacity-60", children: [
u("span", { children: [
u("span", { class: "font-bold", children: account.account_info.statuses_count.toLocaleString() }),
                " ",
                t("Posts")
              ] }),
u("span", { children: [
u("span", { class: "font-bold", children: account.account_info.followers_count.toLocaleString() }),
                " ",
                t("Followers")
              ] }),
u("span", { children: [
u("span", { class: "font-bold", children: account.account_info.friends_count.toLocaleString() }),
                " ",
                t("Following")
              ] })
            ] })
          ] }),
          onLoadDatabase && u("div", { class: "tooltip tooltip-left", "data-tip": t("Load database"), children: u(
            "button",
            {
              class: "btn btn-sm btn-square btn-soft btn-info",
              onClick: onLoadDatabase,
              "aria-label": t("Load database"),
              children: u(IconDatabaseImport, { size: 16 })
            }
          ) })
        ] }) }) }),
u("div", { class: "flex items-center gap-2 justify-between", children: [
u("div", { class: "flex items-center gap-2", children: [
u("div", { class: "tooltip", "data-tip": `${t("All")} (${account.timeline.length.toLocaleString()})`, children: u(
              "button",
              {
                class: `btn btn-sm btn-square ${typeFilter.value === "all" ? "btn-neutral" : "btn-ghost"}`,
                onClick: () => handleTypeFilter("all"),
                "aria-label": t("All"),
                children: u(IconLibraryPhoto, { size: 18 })
              }
            ) }),
u("div", { class: "tooltip", "data-tip": `${t("Image")} (${account.timeline.filter((i) => i.type === "photo").length.toLocaleString()})`, children: u(
              "button",
              {
                class: `btn btn-sm btn-square ${typeFilter.value === "photo" ? "btn-primary" : "btn-ghost"}`,
                onClick: () => handleTypeFilter("photo"),
                "aria-label": t("Image"),
                children: u(IconPhoto, { size: 18 })
              }
            ) }),
u("div", { class: "tooltip", "data-tip": `${t("Video")} (${account.timeline.filter((i) => i.type === "video").length.toLocaleString()})`, children: u(
              "button",
              {
                class: `btn btn-sm btn-square ${typeFilter.value === "video" ? "btn-secondary" : "btn-ghost"}`,
                onClick: () => handleTypeFilter("video"),
                "aria-label": t("Video"),
                children: u(IconVideo, { size: 18 })
              }
            ) }),
u("div", { class: "tooltip", "data-tip": `${t("GIF")} (${account.timeline.filter((i) => i.type === "animated_gif").length.toLocaleString()})`, children: u(
              "button",
              {
                class: `btn btn-sm btn-square ${typeFilter.value === "animated_gif" ? "btn-accent" : "btn-ghost"}`,
                onClick: () => handleTypeFilter("animated_gif"),
                "aria-label": t("GIF"),
                children: u(IconGif, { size: 18 })
              }
            ) })
          ] }),
          totalPages > 1 && u("div", { class: "join", children: [
u("div", { class: "tooltip tooltip-left", "data-tip": t("Home"), children: u(
              "button",
              {
                class: "join-item btn btn-sm",
                onClick: () => currentPage.value = 1,
                disabled: currentPage.value === 1,
                "aria-label": t("Home"),
                children: "«"
              }
            ) }),
u("div", { class: "tooltip tooltip-left", "data-tip": t("End"), children: u(
              "button",
              {
                class: "join-item btn btn-sm",
                onClick: () => currentPage.value = totalPages,
                disabled: currentPage.value === totalPages,
                "aria-label": t("End"),
                children: "»"
              }
            ) })
          ] })
        ] }),
u("div", { class: "space-y-4", children: currentItems.map((item) => {
          const key = `${item.tweet_id}|${item.url}`;
          const fileKey = `${item.tweet_id}_${item.url}`;
          const isDeleting = deletingEntry.value === key;
          const isDownloading = downloadingFiles.value.has(fileKey);
          const isConverting = convertingFiles.value.has(fileKey);
          return u("div", { class: "relative w-full", children: [
u(
              "button",
              {
                class: "btn btn-circle btn-xs btn-error absolute -top-2 -right-2 z-10",
                onClick: () => handleDeleteEntry(item.tweet_id, item.url),
                disabled: isDeleting || isDownloading,
                children: isDeleting ? u("span", { class: "loading loading-spinner loading-xs" }) : u(IconTrash, { size: 12 })
              }
            ),
u("div", { class: "card bg-base-200 border border-base-300", children: u("div", { class: "card-body p-3", children: u("div", { class: "flex items-center gap-3", children: [
u("div", { class: "flex-shrink-0", children: u("div", { class: `btn btn-xs btn-square btn-soft no-animation pointer-events-none ${item.type === "photo" ? "btn-primary" : item.type === "video" ? "btn-secondary" : "btn-accent"}`, children: getTypeIcon(item.type) }) }),
u("div", { class: "flex-grow min-w-0", children: [
u(
                  "a",
                  {
                    class: "link link-hover text-sm font-mono",
                    href: `https://x.com/${account.username}/status/${item.tweet_id}`,
                    target: "_blank",
                    rel: "noopener noreferrer",
                    children: item.tweet_id
                  }
                ),
u("p", { class: "text-xs opacity-60", children: formatDate(item.date) })
              ] }),
u("div", { class: "flex-shrink-0 flex items-center gap-1", children: [
u("div", { class: "tooltip tooltip-left", "data-tip": t("Preview"), children: u(
                  "button",
                  {
                    class: "btn btn-xs btn-square",
                    onClick: () => {
                      const itemIndex = filteredTimeline.findIndex((i) => `${i.tweet_id}|${i.url}` === key);
                      previewIndex.value = itemIndex;
                      previewUrl.value = item.url;
                      previewType.value = item.type;
                    },
                    "aria-label": t("Preview"),
                    disabled: isDeleting,
                    children: u(IconEye, { size: 14 })
                  }
                ) }),
u("div", { class: "tooltip tooltip-left", "data-tip": t("Open"), children: u(
                  "button",
                  {
                    class: "btn btn-xs btn-square",
                    onClick: () => handleOpenFile(item.url),
                    "aria-label": t("Open"),
                    disabled: isDeleting,
                    children: u(IconExternalLink, { size: 14 })
                  }
                ) }),
u("div", { class: "tooltip tooltip-left", "data-tip": isConverting ? t("Converting...") : item.type === "animated_gif" && (appOptionsManager.get("convertAnimatedGifs") ?? true) ? t("Convert & Download") : t("Download"), children: u(
                  "button",
                  {
                    class: `btn btn-xs btn-square ${isConverting ? "btn-warning" : "btn-success"}`,
                    onClick: () => handleDownloadFile(item.url, item.date, item.type, item.tweet_id),
                    "aria-label": isConverting ? t("Converting...") : item.type === "animated_gif" && (appOptionsManager.get("convertAnimatedGifs") ?? true) ? t("Convert & Download") : t("Download"),
                    disabled: isDeleting || isDownloading,
                    children: isDownloading ? u("span", { class: "loading loading-spinner loading-xs" }) : u(IconFileDownload, { size: 14 })
                  }
                ) })
              ] })
            ] }) }) })
          ] }, key);
        }) }),
        totalPages > 1 && u("div", { class: "flex justify-center", children: u("div", { class: "join", children: [
u(
            "button",
            {
              class: "join-item btn btn-sm",
              onClick: () => currentPage.value = Math.max(1, currentPage.value - 1),
              disabled: currentPage.value === 1,
              children: "«"
            }
          ),
u("button", { class: "join-item btn btn-sm", children: [
            currentPage.value,
            "/",
            totalPages
          ] }),
u(
            "button",
            {
              class: "join-item btn btn-sm",
              onClick: () => currentPage.value = Math.min(totalPages, currentPage.value + 1),
              disabled: currentPage.value === totalPages,
              children: "»"
            }
          )
        ] }) }),
        filteredTimeline.length === 0 && u("div", { class: "text-center py-8 opacity-50", children: u("p", { children: t("No media files found") }) })
      ] }) }),
      previewUrl.value && $(
u(
          "div",
          {
            class: "fixed inset-0 bg-black/90 backdrop-blur-sm flex items-center justify-center z-[1000]",
            onTouchStart: handleTouchStart,
            onTouchMove: handleTouchMove,
            onTouchEnd: handleTouchEnd,
            children: [
u(
                "button",
                {
                  class: "btn btn-square btn-error absolute top-4 right-4 z-10",
                  onClick: () => {
                    previewUrl.value = "";
                    previewType.value = "";
                    previewIndex.value = -1;
                  },
                  "aria-label": t("Close"),
                  children: u(IconX, { size: 24 })
                }
              ),
u("div", { class: "absolute bottom-4 left-1/2 transform -translate-x-1/2 btn btn-neutral", children: u("span", { class: "text-base", children: [
                (previewIndex.value + 1).toLocaleString(),
                " / ",
                filteredTimeline.length.toLocaleString()
              ] }) }),
              previewIndex.value > 0 && u(
                "button",
                {
                  class: "btn btn-circle btn-lg btn-neutral absolute left-4 hidden md:flex",
                  onClick: () => {
                    const prevItem = filteredTimeline[previewIndex.value - 1];
                    if (prevItem) {
                      previewIndex.value = previewIndex.value - 1;
                      previewUrl.value = prevItem.url;
                      previewType.value = prevItem.type;
                    }
                  },
                  "aria-label": t("Prev"),
                  children: u(IconChevronLeft, { size: 32 })
                }
              ),
              previewIndex.value < filteredTimeline.length - 1 && u(
                "button",
                {
                  class: "btn btn-circle btn-lg btn-neutral absolute right-4 hidden md:flex",
                  onClick: () => {
                    const nextItem = filteredTimeline[previewIndex.value + 1];
                    if (nextItem) {
                      previewIndex.value = previewIndex.value + 1;
                      previewUrl.value = nextItem.url;
                      previewType.value = nextItem.type;
                    }
                  },
                  "aria-label": t("Next"),
                  children: u(IconChevronRight, { size: 32 })
                }
              ),
              previewType.value === "photo" ? u(
                "img",
                {
                  src: previewUrl.value,
                  alt: "Preview",
                  class: "max-w-full max-h-full object-contain"
                }
              ) : u(
                "video",
                {
                  src: previewUrl.value,
                  controls: true,
                  autoplay: true,
                  class: "max-w-full max-h-full"
                }
              )
            ]
          }
        ),
        document.getElementById("tmd-root")?.shadowRoot?.getElementById("tmd-portal-root") || document.getElementById("tmd-root")?.shadowRoot || document.body
      )
    ] });
  }
  function Database({ isVisible, onCountChange, onLoadToDashboard } = {}) {
    const { t, i18n } = useTranslation();
    const isArabic = (i18n.language || "").startsWith("ar");
    const accounts = signals.useSignal([]);
    const currentPage = signals.useSignal(1);
    const totalPages = signals.useSignal(1);
    const isLoading = signals.useSignal(true);
    const exportingId = signals.useSignal(null);
    const deletingId = signals.useSignal(null);
    const accountToDelete = signals.useSignal(null);
    const showDeleteModal = signals.useSignal(false);
    const isImporting = signals.useSignal(false);
    const isExportingAll = signals.useSignal(false);
    const totalCount = signals.useSignal(0);
    const showClearModal = signals.useSignal(false);
    const isClearingAll = signals.useSignal(false);
    const fileInputRef = hooks.useRef(null);
    const filterByBatch = signals.useSignal(false);
    const hasInitialLoad = signals.useSignal(false);
    const showViewModal = signals.useSignal(false);
    const viewingAccount = signals.useSignal(null);
    const batchCount = signals.useSignal(0);
    const handleImportClick = () => fileInputRef.current?.click();
    const processJsonFile = async (text, fileName) => {
      try {
        const data = JSON.parse(text);
        const account = {
          username: data.username,
          account_info: data.account_info,
          metadata: data.metadata,
          timeline: data.timeline,
          cached_at: data.cached_at || Date.now(),
          batch_mode: data.batch_mode,
          batch_identifier: data.batch_identifier,
          timeline_type: data.timeline_type,
          media_type: data.media_type
        };
        if (!account.username || !account.account_info || !account.metadata || !Array.isArray(account.timeline)) {
          console.warn("Skipped invalid account export file:", fileName);
          return;
        }
        await mediaDownloaderDB.insertAccount(account);
        playSuccessSound();
      } catch (err) {
        console.error("Failed to process file:", fileName, err);
        playErrorSound();
      }
    };
    const importAccounts = async (files) => {
      isImporting.value = true;
      try {
        for (const file of Array.from(files)) {
          try {
            if (file.name.toLowerCase().endsWith(".zip")) {
              const arrayBuffer = await file.arrayBuffer();
              const uint8Array = new Uint8Array(arrayBuffer);
              fflate.unzip(uint8Array, async (err, unzipped) => {
                if (err) {
                  console.error("Failed to unzip file:", file.name, err);
                  return;
                }
                for (const [fileName, fileData] of Object.entries(unzipped)) {
                  if (fileName.toLowerCase().endsWith(".json")) {
                    const text = new TextDecoder().decode(fileData);
                    await processJsonFile(text, fileName);
                  }
                }
                await loadAccounts();
                currentPage.value = 1;
              });
            } else if (file.name.toLowerCase().endsWith(".json")) {
              const text = await file.text();
              await processJsonFile(text, file.name);
            } else {
              console.warn("Skipped unsupported file type:", file.name);
            }
          } catch (err) {
            console.error("Failed to import file:", file.name, err);
          }
        }
        await loadAccounts();
        currentPage.value = 1;
      } finally {
        isImporting.value = false;
      }
    };
    const onFilesSelected = async (e) => {
      const input = e.currentTarget;
      const files = input.files;
      if (files && files.length) {
        await importAccounts(files);
      }
      input.value = "";
    };
    const ITEMS_PER_PAGE = 3;
    const dateFormat = signals.useSignal(appOptionsManager.get("dateTimeFormat"));
    hooks.useEffect(() => {
      appOptionsManager.signal.subscribe(() => {
        dateFormat.value = appOptionsManager.get("dateTimeFormat");
      });
    }, []);
    hooks.useEffect(() => {
      loadAccounts();
    }, [currentPage.value]);
    hooks.useEffect(() => {
      currentPage.value = 1;
      loadAccounts();
    }, [filterByBatch.value]);
    hooks.useEffect(() => {
      if (isVisible && !hasInitialLoad.value) {
        loadAccounts();
      }
    }, [isVisible]);
    hooks.useEffect(() => {
      if (hasInitialLoad.value) {
        loadAccounts();
      }
    }, [dbState.dbChangeSignal.value]);
    const loadAccounts = async () => {
      try {
        isLoading.value = true;
        const [accountsData, totalCountValue, batchCountValue] = await Promise.all([
          mediaDownloaderDB.getAccounts(currentPage.value, ITEMS_PER_PAGE, filterByBatch.value),
          mediaDownloaderDB.getAccountsCount(filterByBatch.value),
          mediaDownloaderDB.getAccountsCount(true)
        ]);
        accounts.value = accountsData;
        totalCount.value = totalCountValue;
        batchCount.value = batchCountValue;
        totalPages.value = Math.ceil(totalCountValue / ITEMS_PER_PAGE);
        onCountChange?.(totalCountValue);
        hasInitialLoad.value = true;
      } catch (error) {
        console.error("Failed to load accounts:", error);
      } finally {
        isLoading.value = false;
      }
    };
    const exportAccount = async (account) => {
      if (!account.id) return;
      try {
        exportingId.value = account.id;
        const fmt = dateFormat.value || appOptionsManager.get("dateTimeFormat") || "YYYY-MM-DD HH:mm:ss";
        const now = dayjs();
        const exportData = {
          username: account.username,
          account_info: account.account_info,
          metadata: account.metadata,
          timeline: account.timeline,
          cached_at: account.cached_at,
          batch_mode: account.batch_mode,
          batch_identifier: account.batch_identifier,
          timeline_type: account.timeline_type,
          media_type: account.media_type,
          cached_at_formatted: dayjs(account.cached_at).format(fmt),
          exported_at: now.valueOf(),
          exported_at_formatted: now.format(fmt),
          date_time_format: fmt
        };
        const filenameTs = now.format("YYYYMMDD_HHmmss");
        const batchSuffix = account.batch_mode && account.batch_mode !== "single" ? "_Batch" : "";
        const filename = `${sanitizeFilename(account.username)}_${filenameTs}${batchSuffix}.json`;
        const blob = new Blob([JSON.stringify(exportData, null, 2)], {
          type: "application/json"
        });
        fileSaverEs.saveAs(blob, filename);
        playSuccessSound();
      } catch (error) {
        console.error("Failed to export account:", error);
        playErrorSound();
      } finally {
        exportingId.value = null;
      }
    };
    const openDeleteDialog = (account) => {
      console.log("Opening delete dialog for:", account.username);
      accountToDelete.value = account;
      showDeleteModal.value = true;
    };
    const confirmDelete = async () => {
      const account = accountToDelete.value;
      if (!account?.id) return;
      try {
        deletingId.value = account.id;
        await mediaDownloaderDB.deleteAccount(account.id);
        await loadAccounts();
        showDeleteModal.value = false;
        playSuccessSound();
      } catch (error) {
        console.error("Failed to delete account:", error);
        playErrorSound();
      } finally {
        deletingId.value = null;
        accountToDelete.value = null;
      }
    };
    const closeDeleteDialog = () => {
      showDeleteModal.value = false;
      accountToDelete.value = null;
    };
    const openClearDialog = () => {
      showClearModal.value = true;
    };
    const closeClearDialog = () => {
      showClearModal.value = false;
    };
    const handleDeleteEntry = async (tweetId, url) => {
      if (!viewingAccount.value?.id) return;
      try {
        const account = viewingAccount.value;
        const updatedTimeline = account.timeline.filter(
          (item) => !(item.tweet_id === tweetId && item.url === url)
        );
        await mediaDownloaderDB.updateAccount(account.id, {
          ...account,
          timeline: updatedTimeline,
          metadata: {
            ...account.metadata,
            new_entries: updatedTimeline.length
          }
        });
        viewingAccount.value = {
          ...account,
          timeline: updatedTimeline,
          metadata: {
            ...account.metadata,
            new_entries: updatedTimeline.length
          }
        };
        await loadAccounts();
        playSuccessSound();
      } catch (error) {
        console.error("Failed to delete entry:", error);
        playErrorSound();
      }
    };
    const handleLoadDatabase = () => {
      if (!viewingAccount.value?.username || !onLoadToDashboard) return;
      const username = viewingAccount.value.username;
      showViewModal.value = false;
      requestAnimationFrame(() => {
        onLoadToDashboard(username);
        viewingAccount.value = null;
      });
    };
    const confirmClearAll = async () => {
      try {
        isClearingAll.value = true;
        await mediaDownloaderDB.clearAll();
        currentPage.value = 1;
        await loadAccounts();
        showClearModal.value = false;
        playSuccessSound();
      } catch (error) {
        console.error("Failed to clear database:", error);
        playErrorSound();
      } finally {
        isClearingAll.value = false;
      }
    };
    const formatDate = (timestamp) => {
      const fmt = dateFormat.value || appOptionsManager.get("dateTimeFormat") || "YYYY-MM-DD HH:mm:ss";
      return dayjs(timestamp).format(fmt);
    };
    const formatTimeAgo = (timestamp) => {
      const now = dayjs();
      const then = dayjs(timestamp);
      const diff = now.diff(then, "second");
      const years = Math.floor(diff / (365 * 24 * 60 * 60));
      const days = Math.floor(diff % (365 * 24 * 60 * 60) / (24 * 60 * 60));
      const hours = Math.floor(diff % (24 * 60 * 60) / (60 * 60));
      const minutes = Math.floor(diff % (60 * 60) / 60);
      const seconds = diff % 60;
      const parts = [];
      if (years > 0) parts.push(`${years}y`);
      if (days > 0) parts.push(`${days}d`);
      if (hours > 0) parts.push(`${hours}h`);
      if (minutes > 0) parts.push(`${minutes}m`);
      if (seconds > 0 && parts.length === 0) parts.push(`${seconds}s`);
      return parts.slice(0, 2).join(" ") + " ago";
    };
    const goToPage = (page) => {
      if (page >= 1 && page <= totalPages.value) {
        currentPage.value = page;
      }
    };
    const exportAllAccounts = async () => {
      try {
        isExportingAll.value = true;
        const allAccounts = await mediaDownloaderDB.getAllAccounts();
        if (!allAccounts.length) return;
        const fmt = dateFormat.value || appOptionsManager.get("dateTimeFormat") || "YYYY-MM-DD HH:mm:ss";
        const now = dayjs();
        const exportTs = now.format("YYYYMMDD_HHmmss");
        const files = allAccounts.map((account) => {
          const exportData = {
            username: account.username,
            account_info: account.account_info,
            metadata: account.metadata,
            timeline: account.timeline,
            cached_at: account.cached_at,
            batch_mode: account.batch_mode,
            batch_identifier: account.batch_identifier,
            timeline_type: account.timeline_type,
            media_type: account.media_type,
            cached_at_formatted: dayjs(account.cached_at).format(fmt),
            exported_at: now.valueOf(),
            exported_at_formatted: now.format(fmt),
            date_time_format: fmt
          };
          const batchSuffix = account.batch_mode && account.batch_mode !== "single" ? "_Batch" : "";
          const fileName = `${sanitizeFilename(account.username)}_${exportTs}${batchSuffix}.json`;
          const content = JSON.stringify(exportData, null, 2);
          const blob = new Blob([content], { type: "application/json" });
          return { name: fileName, blob };
        });
        let index = 0;
        const readableZipStream = createWriter({
          pull(ctrl) {
            if (index >= files.length) {
              ctrl.close();
              return;
            }
            const file = files[index];
            if (!file) {
              ctrl.close();
              return;
            }
            index += 1;
            ctrl.enqueue({
              name: file.name,
              stream: () => file.blob.stream()
            });
          }
        });
        const chunks = [];
        const writableOutputStream = new WritableStream({
          write(chunk) {
            chunks.push(chunk);
          }
        });
        await readableZipStream.pipeTo(writableOutputStream);
        const arrayBuffer = await new Blob(chunks).arrayBuffer();
        const zipBlob = new Blob([arrayBuffer]);
        const zipFilename = `twitter-x-media-batch-downloader-pro_${exportTs}.zip`;
        fileSaverEs.saveAs(zipBlob, zipFilename);
        playSuccessSound();
      } catch (error) {
        console.error("Failed to export all accounts:", error);
        playErrorSound();
      } finally {
        isExportingAll.value = false;
      }
    };
    if (isLoading.value) {
      return u("div", { class: "space-y-6", children: [
u("div", { class: "flex items-center justify-between", children: [
u("div", { class: "flex items-center gap-2", children: [
u("div", { class: "skeleton h-8 w-24" }),
u("div", { class: "skeleton h-8 w-24" })
          ] }),
u("div", { class: "flex items-center gap-2", children: [
u("div", { class: "skeleton h-8 w-8" }),
u("div", { class: "skeleton h-8 w-8" })
          ] })
        ] }),
        [1, 2, 3].map((i) => u("div", { class: "card bg-base-200 border border-base-300 w-full", children: u("div", { class: "card-body p-4", children: u("div", { class: "flex items-center gap-4", children: [
u("div", { class: "skeleton w-16 h-16 rounded-xl shrink-0" }),
u("div", { class: "flex-grow space-y-2", children: [
u("div", { class: "skeleton h-4 w-32" }),
u("div", { class: "skeleton h-3 w-24" }),
u("div", { class: "flex gap-2", children: [
u("div", { class: "skeleton h-5 w-16" }),
u("div", { class: "skeleton h-5 w-16" }),
u("div", { class: "skeleton h-5 w-12" })
            ] }),
u("div", { class: "skeleton h-3 w-40" })
          ] }),
u("div", { class: "skeleton w-8 h-8 rounded-lg shrink-0" })
        ] }) }) }, i))
      ] });
    }
    return u(preact.Fragment, { children: [
u("div", { class: "space-y-6", children: [
u("div", { class: "flex items-center justify-between", children: [
u("div", { class: "flex items-center gap-2", children: [
u(
              "input",
              {
                type: "file",
                class: "hidden",
                ref: fileInputRef,
                accept: ".json,.zip,application/json,application/zip",
                multiple: true,
                onChange: onFilesSelected
              }
            ),
u("div", { class: "tooltip tooltip-right", "data-tip": t("Supports JSON and ZIP formats"), children: u(
              "button",
              {
                class: "btn btn-primary btn-sm",
                onClick: handleImportClick,
                disabled: isImporting.value,
                children: isImporting.value ? u(preact.Fragment, { children: [
u("span", { class: "loading loading-spinner loading-xs" }),
                  t("Importing...")
                ] }) : u(preact.Fragment, { children: [
u(IconDatabaseImport, { size: 16 }),
                  t("Import")
                ] })
              }
            ) }),
u("div", { class: "tooltip tooltip-right", "data-tip": t("Export All Data"), children: u(
              "button",
              {
                class: "btn btn-secondary btn-sm",
                onClick: async () => {
                  await exportAllAccounts();
                },
                "aria-label": t("Export All Data"),
                disabled: isExportingAll.value || isImporting.value || totalCount.value === 0,
                children: isExportingAll.value ? u(preact.Fragment, { children: [
u("span", { class: "loading loading-spinner loading-xs" }),
                  t("Exporting...")
                ] }) : u(preact.Fragment, { children: [
u(IconDatabaseExport, { size: 16 }),
                  t("Export")
                ] })
              }
            ) })
          ] }),
u("div", { class: "flex items-center gap-2", children: [
u("div", { class: "tooltip tooltip-left", "data-tip": t("Filter by Batch"), children: u(
              "button",
              {
                class: `btn btn-sm btn-square ${filterByBatch.value ? "btn-active btn-info" : "btn"}`,
                "aria-label": t("Filter by Batch"),
                onClick: () => filterByBatch.value = !filterByBatch.value,
                disabled: isImporting.value || isExportingAll.value || isClearingAll.value || batchCount.value === 0,
                children: u(IconStack2, { size: 16 })
              }
            ) }),
u("div", { class: "tooltip tooltip-left", "data-tip": t("Clear"), children: u(
              "button",
              {
                class: "btn btn-warning btn-sm btn-square",
                "aria-label": t("Clear"),
                onClick: openClearDialog,
                disabled: isImporting.value || isExportingAll.value || isClearingAll.value || totalCount.value === 0,
                children: u(IconDatabaseX, { size: 16 })
              }
            ) })
          ] })
        ] }),
        accounts.value.map((account) => u("div", { class: "relative w-full", children: [
u(
            "button",
            {
              class: "btn btn-circle btn-xs btn-error absolute -top-2 -right-2 z-10",
              onClick: () => openDeleteDialog(account),
              children: deletingId.value === account.id ? u("span", { class: "loading loading-spinner loading-xs" }) : u(IconTrash, { size: 12 })
            }
          ),
u("div", { class: "card bg-base-200 border border-base-300 w-full", children: u("div", { class: "card-body p-4", children: u("div", { class: "flex items-center gap-4", children: [
u("div", { class: "avatar", children: u("div", { class: "w-16 rounded-xl", children: u(
              "img",
              {
                src: account.account_info.profile_image,
                alt: account.account_info.nick,
                onError: (e) => {
                  const target = e.target;
                  target.src = 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="gray"%3E%3Ccircle cx="12" cy="12" r="10"/%3E%3C/svg%3E';
                }
              }
            ) }) }),
u("div", { class: "flex-grow", children: [
u("div", { class: "flex items-center gap-2", children: [
u("h3", { class: "font-semibold text-base", children: account.account_info.nick }),
                account.batch_mode && account.batch_mode !== "single" && u("div", { class: "badge badge-soft badge-info badge-sm", children: t("Batch") })
              ] }),
u("p", { class: "text-sm opacity-70", children: u(
                "a",
                {
                  class: "link link-hover",
                  href: `https://x.com/${account.username}`,
                  target: "_blank",
                  rel: "noopener noreferrer",
                  children: [
                    "@",
                    account.username
                  ]
                }
              ) }),
u("div", { class: "flex gap-2 mt-1", children: [
                account.timeline_type && u("div", { class: "badge badge-soft badge-primary badge-sm", children: t(account.timeline_type === "media" ? "Media" : account.timeline_type === "timeline" ? "Timeline" : account.timeline_type === "tweets" ? "Tweets" : "Replies") }),
                account.media_type && u("div", { class: "badge badge-soft badge-secondary badge-sm", children: t(account.media_type === "all" ? "All" : account.media_type === "image" ? "Image" : account.media_type === "video" ? "Video" : "GIF") }),
u("div", { class: "badge badge-soft badge-accent badge-sm", children: account.metadata.new_entries.toLocaleString() })
              ] }),
u("p", { class: "text-xs opacity-50 mt-1", children: formatDate(account.cached_at) }),
u("p", { class: "text-xs opacity-40 mt-0.5", children: formatTimeAgo(account.cached_at) })
            ] }),
u("div", { class: "flex items-center gap-1", children: [
u("div", { class: "tooltip tooltip-left", "data-tip": t("View Database"), children: u(
                "button",
                {
                  class: "btn btn-sm btn-square",
                  "aria-label": t("View Database"),
                  onClick: () => {
                    viewingAccount.value = account;
                    showViewModal.value = true;
                  },
                  disabled: deletingId.value === account.id,
                  children: u(IconDatabaseSearch, { size: 16 })
                }
              ) }),
u("div", { class: "tooltip tooltip-left", "data-tip": t("Export"), children: u(
                "button",
                {
                  class: "btn btn-accent btn-sm btn-square",
                  "aria-label": t("Export"),
                  onClick: () => exportAccount(account),
                  disabled: exportingId.value === account.id || deletingId.value === account.id,
                  children: exportingId.value === account.id ? u("span", { class: "loading loading-spinner loading-xs" }) : u(IconDatabaseExport, { size: 16 })
                }
              ) })
            ] })
          ] }) }) })
        ] }, account.id)),
        accounts.value.length === 0 && u("div", { class: "text-center", children: [
u("div", { class: "opacity-50 mb-2", children: u(IconDatabase, { size: 36, class: "mx-auto" }) }),
u("p", { class: "text-sm font-medium mb-1", children: t("No accounts yet") }),
u("p", { class: "text-xs opacity-70", children: t("Use Dashboard to fetch data.") })
        ] }),
        totalPages.value > 1 && u("div", { class: "flex justify-center", children: u("div", { class: "join", children: [
u(
            "button",
            {
              class: "join-item btn btn-sm",
              onClick: () => goToPage(currentPage.value - 1),
              disabled: currentPage.value === 1,
              children: "«"
            }
          ),
u("button", { class: "join-item btn btn-sm", children: [
            currentPage.value,
            "/",
            totalPages.value
          ] }),
u(
            "button",
            {
              class: "join-item btn btn-sm",
              onClick: () => goToPage(currentPage.value + 1),
              disabled: currentPage.value === totalPages.value,
              children: "»"
            }
          )
        ] }) })
      ] }),
u(Modal, { show: showDeleteModal.value, onClose: closeDeleteDialog, title: t("Delete Account Data"), class: "max-w-sm", children: u("div", { class: "space-y-2", children: [
u("p", { class: `text-sm${isArabic ? " text-right" : ""}`, dir: isArabic ? "rtl" : void 0, children: t("Are you sure you want to delete account data? This action cannot be undone", { username: accountToDelete.value?.username || "" }) }),
u("div", { class: "modal-action", children: [
u(
            "button",
            {
              class: "btn btn-sm btn-ghost",
              onClick: closeDeleteDialog,
              children: t("Cancel")
            }
          ),
u(
            "button",
            {
              class: "btn btn-sm btn-error",
              onClick: confirmDelete,
              disabled: deletingId.value === accountToDelete.value?.id,
              children: deletingId.value === accountToDelete.value?.id ? u(preact.Fragment, { children: [
u("span", { class: "loading loading-spinner loading-xs" }),
                t("Deleting...")
              ] }) : u(preact.Fragment, { children: [
u(IconTrash, { size: 16 }),
                t("Delete")
              ] })
            }
          )
        ] })
      ] }) }),
u(Modal, { show: showClearModal.value, onClose: closeClearDialog, title: t("Clear"), class: "max-w-sm", children: u("div", { class: "space-y-2", children: [
u("p", { class: `text-sm${isArabic ? " text-right" : ""}`, dir: isArabic ? "rtl" : void 0, children: t("Are you sure to clear all data in the database?") }),
u("div", { class: "modal-action", children: [
u(
            "button",
            {
              class: "btn btn-sm btn-ghost",
              onClick: closeClearDialog,
              children: t("Cancel")
            }
          ),
u(
            "button",
            {
              class: "btn btn-sm btn-warning",
              onClick: confirmClearAll,
              disabled: isClearingAll.value,
              children: isClearingAll.value ? u(preact.Fragment, { children: [
u("span", { class: "loading loading-spinner loading-xs" }),
                t("Deleting...")
              ] }) : u(preact.Fragment, { children: [
u(IconDatabaseX, { size: 16 }),
                t("Clear")
              ] })
            }
          )
        ] })
      ] }) }),
u(
        ViewDatabaseModal,
        {
          isOpen: showViewModal.value,
          onClose: () => {
            showViewModal.value = false;
            viewingAccount.value = null;
          },
          account: viewingAccount.value,
          onDeleteEntry: handleDeleteEntry,
          onLoadDatabase: handleLoadDatabase
        }
      )
    ] });
  }
  function Auth() {
    const { t, i18n } = useTranslation();
    const isArabic = (i18n.language || "").startsWith("ar");
    const authToken = signals.useSignal("");
    const patreonAuth = signals.useSignal("");
    const showAuthToken = signals.useSignal(false);
    const showPatreonAuth = signals.useSignal(false);
    const isPatreonValid = signals.useSignal(false);
    const isVerifying = signals.useSignal(false);
    const isGenerating = signals.useSignal(false);
    const verificationMessage = signals.useSignal("");
    const verificationSuccess = signals.useSignal(false);
    const generationMessage = signals.useSignal("");
    const generationSuccess = signals.useSignal(false);
    hooks.useEffect(() => {
      loadAuthSettings();
    }, []);
    hooks.useEffect(() => {
      const updateLocalToken = () => {
        if (authState.authToken.value && authState.authToken.value !== authToken.value) {
          authToken.value = authState.authToken.value;
        }
      };
      updateLocalToken();
      const unsubscribe = authState.authToken.subscribe(updateLocalToken);
      return unsubscribe;
    }, []);
    const loadAuthSettings = async () => {
      try {
        const settings = await mediaDownloaderDB.getAuthSettings();
        if (settings) {
          authToken.value = settings.auth_token;
          patreonAuth.value = settings.patreon_auth;
          isPatreonValid.value = Boolean(settings.patreon_verified) && settings.patreon_verified_auth === settings.patreon_auth;
          authState.authToken.value = settings.auth_token;
          authState.patreonAuth.value = settings.patreon_auth;
          authState.patreonVerified.value = isPatreonValid.value;
        }
      } catch (error) {
        console.error("Failed to load auth settings:", error);
      }
    };
    const autoSaveAuthToken = async (value) => {
      try {
        await mediaDownloaderDB.saveAuthSettings(value, patreonAuth.value);
        authState.authToken.value = value;
      } catch (error) {
        console.error("Failed to auto-save auth token:", error);
      }
    };
    const autoSavePatreonAuth = async (value) => {
      try {
        await mediaDownloaderDB.saveAuthSettings(authToken.value, value);
        await mediaDownloaderDB.setPatreonVerified(false);
        authState.patreonAuth.value = value;
        authState.patreonVerified.value = false;
      } catch (error) {
        console.error("Failed to auto-save patreon auth:", error);
      }
      isPatreonValid.value = false;
      verificationMessage.value = "";
    };
    const verifyPatreonAuth = async () => {
      if (!patreonAuth.value.trim()) {
        verificationMessage.value = t("Please enter Patreon auth first");
        setTimeout(() => verificationMessage.value = "", 2e3);
        return;
      }
      try {
        isVerifying.value = true;
        verificationMessage.value = "";
        const data = await mediaDownloaderAPI.verifyPatreonAuth(patreonAuth.value);
        isPatreonValid.value = data.valid;
        await mediaDownloaderDB.setPatreonVerified(data.valid);
        authState.patreonVerified.value = data.valid;
        verificationSuccess.value = data.valid;
        verificationMessage.value = data.valid ? t("Patreon auth verified successfully") : t("Invalid Patreon auth");
        if (data.valid) {
          playSuccessSound();
        } else {
          playErrorSound();
        }
        setTimeout(() => verificationMessage.value = "", 2e3);
      } catch (error) {
        console.error("Verification error:", error);
        const raw = error instanceof Error ? error.message : "";
        const httpMatch = raw.match(/^HTTP error! status: (\d+)/);
        const msg = httpMatch ? t("HTTP error! status: {{status}}", { status: httpMatch[1] }) : (raw ? t(raw) : "") || t("Verification failed. Please try again");
        verificationSuccess.value = false;
        verificationMessage.value = msg;
        playErrorSound();
        setTimeout(() => verificationMessage.value = "", 2e3);
      } finally {
        isVerifying.value = false;
      }
    };
    const generateAuthToken = async () => {
      if (!isPatreonValid.value) {
        generationMessage.value = t("Please verify Patreon auth first");
        setTimeout(() => generationMessage.value = "", 2e3);
        return;
      }
      try {
        isGenerating.value = true;
        generationMessage.value = "";
        const data = await mediaDownloaderAPI.generateAuthToken(patreonAuth.value);
        if (data.auth_token) {
          authToken.value = data.auth_token;
          await autoSaveAuthToken(data.auth_token);
          authState.authToken.value = data.auth_token;
          generationSuccess.value = true;
          generationMessage.value = t("Token generated successfully", { current: data.current_index, total: data.total_tokens });
          playSuccessSound();
        } else {
          generationSuccess.value = false;
          generationMessage.value = t("Failed to generate token");
          playErrorSound();
        }
        setTimeout(() => generationMessage.value = "", 2e3);
      } catch (error) {
        console.error("Generation error:", error);
        const raw = error instanceof Error ? error.message : "";
        const httpMatch = raw.match(/^HTTP error! status: (\d+)/);
        const msg = httpMatch ? t("HTTP error! status: {{status}}", { status: httpMatch[1] }) : (raw ? t(raw) : "") || t("Token generation failed. Please try again");
        generationSuccess.value = false;
        generationMessage.value = msg;
        playErrorSound();
        setTimeout(() => generationMessage.value = "", 2e3);
      } finally {
        isGenerating.value = false;
      }
    };
    return u("div", { class: "space-y-6", children: u("div", { class: "space-y-4", children: [
u("div", { children: [
u("label", { class: "label mb-1", children: u("span", { class: "text-sm", children: t("Patreon Auth") }) }),
u("div", { class: "join w-full", children: [
u("div", { class: "flex-1", children: u("label", { class: "input input-bordered input-sm join-item flex items-center gap-2 w-full", children: [
u("svg", { class: "h-4 w-4 opacity-50", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: u(
              "g",
              {
                strokeLinejoin: "round",
                strokeLinecap: "round",
                strokeWidth: "2.5",
                fill: "none",
                stroke: "currentColor",
                children: [
u("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10" }),
u("path", { d: "m9 12 2 2 4-4" })
                ]
              }
            ) }),
u(
              "input",
              {
                type: showPatreonAuth.value ? "text" : "password",
                class: "grow font-mono",
                placeholder: t("Enter your Patreon auth"),
                value: patreonAuth.value,
                onInput: (e) => {
                  const value = e.target.value;
                  patreonAuth.value = value;
                  autoSavePatreonAuth(value);
                }
              }
            ),
u(
              "span",
              {
                class: "cursor-pointer opacity-70 hover:opacity-100",
                onClick: () => showPatreonAuth.value = !showPatreonAuth.value,
                "aria-label": t("Toggle visibility"),
                children: showPatreonAuth.value ? u(IconEyeOff, { size: 14 }) : u(IconEye, { size: 14 })
              }
            )
          ] }) }),
u(
            "button",
            {
              class: `btn btn-sm join-item w-28 ${isPatreonValid.value ? "btn-success" : "btn-neutral"}`,
              onClick: verifyPatreonAuth,
              disabled: isVerifying.value || !patreonAuth.value.trim(),
              children: isVerifying.value ? u(preact.Fragment, { children: [
u("span", { class: "loading loading-spinner loading-xs" }),
                t("Verifying"),
                "..."
              ] }) : isPatreonValid.value ? u(preact.Fragment, { children: [
u(IconCircleCheck, { size: 16 }),
                t("Verified")
              ] }) : t("Verify")
            }
          )
        ] }),
        verificationMessage.value && u("div", { role: "alert", class: `alert alert-soft mt-2 ${verificationSuccess.value ? "alert-success" : "alert-error"}`, children: [
          verificationSuccess.value ? u(IconCircleCheck, { size: 20 }) : u(IconCircleX, { size: 20 }),
u("span", { dir: isArabic ? "rtl" : void 0, children: verificationMessage.value })
        ] })
      ] }),
u("div", { children: [
u("label", { class: "label mb-1", children: u("span", { class: "text-sm", children: t("Auth Token") }) }),
u("div", { class: "join w-full", children: [
u("div", { class: "flex-1", children: u("label", { class: "input input-bordered input-sm join-item flex items-center gap-2 w-full", children: [
u("svg", { class: "h-4 w-4 opacity-50", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: u(
              "g",
              {
                strokeLinejoin: "round",
                strokeLinecap: "round",
                strokeWidth: "2.5",
                fill: "none",
                stroke: "currentColor",
                children: [
u("rect", { width: "18", height: "11", x: "3", y: "11", rx: "2", ry: "2" }),
u("circle", { cx: "12", cy: "12", r: "2" }),
u("path", { d: "M7 11V7a5 5 0 0 1 10 0v4" })
                ]
              }
            ) }),
u(
              "input",
              {
                type: showAuthToken.value ? "text" : "password",
                class: "grow font-mono",
                placeholder: t("Enter your auth token"),
                value: authToken.value,
                onInput: (e) => {
                  const value = e.target.value;
                  authToken.value = value;
                  autoSaveAuthToken(value);
                }
              }
            ),
u(
              "span",
              {
                class: "cursor-pointer opacity-70 hover:opacity-100",
                onClick: () => showAuthToken.value = !showAuthToken.value,
                "aria-label": t("Toggle visibility"),
                children: showAuthToken.value ? u(IconEyeOff, { size: 14 }) : u(IconEye, { size: 14 })
              }
            )
          ] }) }),
u(
            "button",
            {
              class: "btn btn-neutral btn-sm join-item w-28",
              onClick: generateAuthToken,
              disabled: isGenerating.value || !isPatreonValid.value || patreonAuth.value.trim() === "xbatchdemo",
              children: isGenerating.value ? u(preact.Fragment, { children: [
u("span", { class: "loading loading-spinner loading-xs" }),
                t("Generating"),
                "..."
              ] }) : t("Generate")
            }
          )
        ] }),
        generationMessage.value && u("div", { role: "alert", class: `alert alert-soft mt-2 ${generationSuccess.value ? "alert-success" : "alert-error"}`, children: [
          generationSuccess.value ? u(IconCircleCheck, { size: 20 }) : u(IconCircleX, { size: 20 }),
u("span", { dir: isArabic ? "rtl" : void 0, children: generationMessage.value })
        ] })
      ] }),
u("div", { class: `mt-3 rounded-box bg-base-200 p-2 text-xs space-y-1 ${isArabic ? "text-right" : ""}`, dir: isArabic ? "rtl" : void 0, children: [
u("div", { children: [
          "• ",
          t("Use code"),
          " ",
u(
            "button",
            {
              type: "button",
              class: "text-primary opacity-80 hover:opacity-100 cursor-pointer",
              onClick: () => {
                patreonAuth.value = "xbatchdemo";
                autoSavePatreonAuth("xbatchdemo");
              },
              children: "xbatchdemo"
            }
          ),
          " ",
          t("for Patreon Auth, click Verify to unlock demo. Test at"),
          " ",
u("a", { class: "text-primary opacity-80 hover:opacity-100", href: "https://x.com/xbatchdemo", target: "_blank", rel: "noopener noreferrer", dir: "ltr", children: " @xbatchdemo" })
        ] }),
u("div", { children: [
          "• ",
          t("Need help with Auth Token? See"),
          " ",
u("a", { class: "text-primary opacity-80 hover:opacity-100", href: "https://www.patreon.com/posts/how-to-obtain-127206894", target: "_blank", rel: "noopener noreferrer", children: t("the guide") })
        ] }),
u("div", { children: [
          "• ",
u("a", { class: "text-primary opacity-80 hover:opacity-100", href: "https://www.patreon.com/exyezed/membership", target: "_blank", rel: "noopener noreferrer", children: t("Subscribe") }),
          " ",
          t("to get your Patreon Auth code and start downloading with ease!")
        ] }),
u("div", { children: [
          "• ",
          t("Report bugs or request features:"),
          " ",
u("a", { class: "text-primary opacity-80 hover:opacity-100", href: "mailto:[email protected]", children: "[email protected]" })
        ] })
      ] })
    ] }) });
  }
  function Settings() {
    const { t } = useTranslation();
    const [, force] = hooks.useState(0);
    const fetchMode = appOptionsManager.get("fetchMode") ?? "single";
    const isBatching = fetchMode !== "single";
    return u("div", { class: "space-y-4", children: [
u("div", { class: "flex items-center justify-between", children: [
u("span", { class: "text-sm flex items-center gap-1", children: [
          t("Fetch"),
u("div", { class: "tooltip tooltip-right", "data-tip": t("Use Batch/Auto Batch if single fetch fails"), children: u(IconInfoCircle, { size: 14, class: "opacity-70" }) })
        ] }),
u("div", { class: "flex flex-wrap items-center gap-3 justify-start", children: ["single", "batch", "auto"].map((mode) => u("label", { class: "label cursor-pointer gap-2", children: [
u(
            "input",
            {
              type: "radio",
              name: "fetch-mode",
              class: "radio radio-sm radio-primary",
              checked: (appOptionsManager.get("fetchMode") ?? "single") === mode,
              onChange: () => {
                appOptionsManager.set("fetchMode", mode);
                force((x) => x + 1);
              }
            }
          ),
u("span", { class: "label-text capitalize text-xs", children: mode === "auto" ? t("Auto Batch") : mode === "batch" ? t("Batch") : t("Single") })
        ] }, mode)) })
      ] }),
u("div", { class: "flex items-center justify-between", children: [
u("span", { class: "text-sm", children: t("Batch Size") }),
u(
          "input",
          {
            type: "text",
            class: `input input-bordered input-sm w-12 text-right ${!isBatching ? "opacity-50" : ""}`,
            value: String(appOptionsManager.get("batchSize") ?? 100),
            onInput: (e) => {
              const raw = e.target.value;
              const digits = raw.replace(/\D+/g, "");
              const v = parseInt(digits || "100", 10);
              const safe = Number.isFinite(v) && v >= 1 ? v : 100;
              appOptionsManager.set("batchSize", safe);
              force((x) => x + 1);
            },
            disabled: !isBatching
          }
        )
      ] }),
u("div", { class: "flex items-center justify-between", children: [
u("span", { class: "text-sm", children: t("Starting Batch") }),
u(
          "input",
          {
            type: "text",
            class: `input input-bordered input-sm w-12 text-right ${!isBatching ? "opacity-50" : ""}`,
            value: String(appOptionsManager.get("startingBatch") ?? 0),
            onInput: (e) => {
              const raw = e.target.value;
              const digits = raw.replace(/\D+/g, "");
              const v = parseInt(digits || "0", 10);
              const safe = Number.isFinite(v) && v >= 0 ? v : 0;
              appOptionsManager.set("startingBatch", safe);
              force((x) => x + 1);
            },
            disabled: !isBatching
          }
        )
      ] }),
u("div", { class: "divider my-2" }),
u("div", { class: "flex items-center justify-between", children: [
u("span", { class: "text-sm", children: t("Timeline") }),
u("div", { class: "flex flex-wrap items-center gap-3 justify-start", children: [
          { value: "media", label: "Media" },
          { value: "timeline", label: "Posts" },
          { value: "tweets", label: "Tweets" },
          { value: "with_replies", label: "Replies" }
        ].map((opt) => u("label", { class: "label cursor-pointer gap-2", children: [
u(
            "input",
            {
              type: "radio",
              name: "timeline-type",
              class: "radio radio-sm radio-primary",
              checked: (appOptionsManager.get("timelineType") ?? "media") === opt.value,
              onChange: () => {
                appOptionsManager.set("timelineType", opt.value);
                force((x) => x + 1);
              }
            }
          ),
u("span", { class: "label-text capitalize text-xs", children: t(opt.label) })
        ] }, opt.value)) })
      ] }),
u("div", { class: "flex items-center justify-between", children: [
u("span", { class: "text-sm", children: t("Media") }),
u("div", { class: "flex flex-wrap items-center gap-3 justify-start", children: [
          { value: "all", label: "All" },
          { value: "image", label: "Image" },
          { value: "video", label: "Video" },
          { value: "gif", label: "GIF" }
        ].map((opt) => u("label", { class: "label cursor-pointer gap-2", children: [
u(
            "input",
            {
              type: "radio",
              name: "media-type",
              class: "radio radio-sm radio-primary",
              checked: (appOptionsManager.get("mediaType") ?? "all") === opt.value,
              onChange: () => {
                appOptionsManager.set("mediaType", opt.value);
                force((x) => x + 1);
              }
            }
          ),
u("span", { class: "label-text capitalize text-xs", children: t(opt.label) })
        ] }, opt.value)) })
      ] }),
u("div", { class: "divider my-2" }),
u("div", { class: "flex justify-between items-center", children: [
u("span", { class: "text-sm flex items-center gap-1", children: [
          t("Convert Animated GIFs"),
u("div", { class: "tooltip tooltip-right", "data-tip": t("Larger size, same quality"), children: u(IconInfoCircle, { size: 14, class: "opacity-70" }) })
        ] }),
u(
          "input",
          {
            type: "checkbox",
            class: "toggle toggle-primary",
            checked: appOptionsManager.get("convertAnimatedGifs") ?? true,
            onChange: (e) => {
              const checked = e.target.checked;
              appOptionsManager.set("convertAnimatedGifs", checked);
              if (checked) {
                appOptionsManager.set("convertGifsExternal", false);
              }
              force((x) => x + 1);
            }
          }
        )
      ] }),
u("div", { class: "flex justify-between items-center", children: [
u("span", { class: "text-sm flex items-center gap-1", children: [
          t("Convert GIFs (External)"),
u("div", { class: "tooltip tooltip-right", "data-tip": t("Smaller size, same quality"), children: u(IconInfoCircle, { size: 14, class: "opacity-70" }) })
        ] }),
u(
          "input",
          {
            type: "checkbox",
            class: "toggle toggle-primary",
            checked: appOptionsManager.get("convertGifsExternal") ?? false,
            onChange: (e) => {
              const checked = e.target.checked;
              appOptionsManager.set("convertGifsExternal", checked);
              if (checked) {
                appOptionsManager.set("convertAnimatedGifs", false);
              }
              force((x) => x + 1);
            }
          }
        )
      ] }),
u("div", { class: "flex items-center justify-between", children: [
u("span", { class: "text-sm flex items-center gap-1", children: [
          t("Concurrent Downloads"),
u("div", { class: "tooltip tooltip-right", "data-tip": t("Use 10+ only with fast internet"), children: u(IconInfoCircle, { size: 14, class: "opacity-70" }) })
        ] }),
u("div", { class: "flex-1", children: u("div", { class: "flex justify-end", children: (() => {
          const allowed = Array.from({ length: 10 }, (_, i) => (i + 1) * 5);
          appOptionsManager.get("downloadConcurrency") ?? 10;
          allowed[0] ?? 10;
          for (const v of allowed) {
          }
          return u(
            "input",
            {
              type: "text",
              class: "input input-bordered input-sm w-12 text-right",
              value: String(appOptionsManager.get("downloadConcurrency") ?? 10),
              onInput: (e) => {
                const raw = e.target.value;
                const digits = raw.replace(/\D+/g, "");
                const v = parseInt(digits || "10", 10);
                const safe = Number.isFinite(v) && v >= 1 ? v : 10;
                appOptionsManager.set("downloadConcurrency", safe);
                force((x) => x + 1);
              },
              "aria-label": t("Concurrent Downloads")
            }
          );
        })() }) })
      ] })
    ] });
  }
  function ThemeSelector({
    dropdownClasses = "",
    btnClasses = "btn-ghost",
    contentClasses = "mt-16"
  }) {
    const { t } = useTranslation();
    const currentTheme = signals.useSignal(appOptionsManager.get("theme"));
    hooks.useEffect(() => {
      const unsub = appOptionsManager.signal.subscribe(() => {
        currentTheme.value = appOptionsManager.get("theme");
      });
      return () => {
        try {
          unsub?.();
        } catch {
        }
      };
    }, []);
    hooks.useEffect(() => {
      document.documentElement.setAttribute("data-theme", currentTheme.value || "light");
    }, [currentTheme.value]);
    const handleThemeChange = (theme) => {
      currentTheme.value = theme;
      appOptionsManager.set("theme", theme);
      document.documentElement.setAttribute("data-theme", theme);
    };
    return u("div", { class: cx("dropdown dropdown-end block", dropdownClasses), children: [
u(
        "div",
        {
          tabIndex: 0,
          role: "button",
          class: cx("btn group btn-sm gap-1.5 px-1.5 justify-start", btnClasses),
          "aria-label": t("Change Theme"),
          children: [
u("div", { class: "bg-base-100 group-hover:border-base-content/20 border-base-content/10 grid shrink-0 grid-cols-2 gap-0.5 rounded-md border p-1 transition-colors", children: [
u("div", { class: "bg-base-content size-1 rounded-full" }),
u("div", { class: "bg-primary size-1 rounded-full" }),
u("div", { class: "bg-secondary size-1 rounded-full" }),
u("div", { class: "bg-accent size-1 rounded-full" })
            ] }),
u("div", { class: "w-24 truncate text-xs capitalize text-left", children: currentTheme.value || "light" }),
u(
              "svg",
              {
                width: "12px",
                height: "12px",
                class: "mt-px hidden size-2 fill-current opacity-60 sm:inline-block ml-auto",
                xmlns: "http://www.w3.org/2000/svg",
                viewBox: "0 0 2048 2048",
                children: u("path", { d: "M1799 349l242 241-1017 1017L7 590l242-241 775 775 775-775z" })
              }
            )
          ]
        }
      ),
u(
        "div",
        {
          tabIndex: 0,
          class: cx(
            "dropdown-content bg-base-200 text-base-content rounded-box mt-2 max-h-60 overflow-y-auto border-[length:var(--border)] border-white/5 shadow-2xl outline-[length:var(--border)] outline-black/5",
            contentClasses
          ),
          children: u("ul", { class: "menu w-56", children: [
u("li", { class: "menu-title text-xs", children: t("Change Theme") }),
            THEMES.map((theme) => u("li", { children: u(
              "button",
              {
                class: cx(
                  "gap-3 px-2",
                  currentTheme.value === theme && "[&_svg]:visible"
                ),
                onClick: () => handleThemeChange(theme),
                children: [
u(
                    "div",
                    {
                      "data-theme": theme,
                      class: "bg-base-100 grid shrink-0 grid-cols-2 gap-0.5 rounded-md p-1 shadow-sm",
                      children: [
u("div", { class: "bg-base-content size-1 rounded-full" }),
u("div", { class: "bg-primary size-1 rounded-full" }),
u("div", { class: "bg-secondary size-1 rounded-full" }),
u("div", { class: "bg-accent size-1 rounded-full" })
                      ]
                    }
                  ),
u("div", { class: "w-32 truncate capitalize", children: theme }),
u(
                    "svg",
                    {
                      xmlns: "http://www.w3.org/2000/svg",
                      width: "16",
                      height: "16",
                      viewBox: "0 0 24 24",
                      fill: "currentColor",
                      class: "invisible h-3 w-3 shrink-0",
                      children: u("path", { d: "M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z" })
                    }
                  )
                ]
              }
            ) }, theme))
          ] })
        }
      )
    ] });
  }
  const flagUS = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-us'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23bd3d44'%20d='M0%200h640v480H0'/%3e%3cpath%20stroke='%23fff'%20stroke-width='37'%20d='M0%2055.3h640M0%20129h640M0%20203h640M0%20277h640M0%20351h640M0%20425h640'/%3e%3cpath%20fill='%23192f5d'%20d='M0%200h364.8v258.5H0'/%3e%3cmarker%20id='us-a'%20markerHeight='30'%20markerWidth='30'%3e%3cpath%20fill='%23fff'%20d='m14%200%209%2027L0%2010h28L5%2027z'/%3e%3c/marker%3e%3cpath%20fill='none'%20marker-mid='url(%23us-a)'%20d='m0%200%2016%2011h61%2061%2061%2061%2060L47%2037h61%2061%2060%2061L16%2063h61%2061%2061%2061%2060L47%2089h61%2061%2060%2061L16%20115h61%2061%2061%2061%2060L47%20141h61%2061%2060%2061L16%20166h61%2061%2061%2061%2060L47%20192h61%2061%2060%2061L16%20218h61%2061%2061%2061%2060z'/%3e%3c/svg%3e";
  const flagCN = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-cn'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cpath%20id='cn-a'%20fill='%23ff0'%20d='M-.6.8%200-1%20.6.8-1-.3h2z'/%3e%3c/defs%3e%3cpath%20fill='%23ee1c25'%20d='M0%200h640v480H0z'/%3e%3cuse%20xlink:href='%23cn-a'%20width='30'%20height='20'%20transform='matrix(71.9991%200%200%2072%20120%20120)'/%3e%3cuse%20xlink:href='%23cn-a'%20width='30'%20height='20'%20transform='matrix(-12.33562%20-20.5871%2020.58684%20-12.33577%20240.3%2048)'/%3e%3cuse%20xlink:href='%23cn-a'%20width='30'%20height='20'%20transform='matrix(-3.38573%20-23.75998%2023.75968%20-3.38578%20288%2095.8)'/%3e%3cuse%20xlink:href='%23cn-a'%20width='30'%20height='20'%20transform='matrix(6.5991%20-23.0749%2023.0746%206.59919%20288%20168)'/%3e%3cuse%20xlink:href='%23cn-a'%20width='30'%20height='20'%20transform='matrix(14.9991%20-18.73557%2018.73533%2014.99929%20240%20216)'/%3e%3c/svg%3e";
  const flagSA = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-sa'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='sa-a'%3e%3cpath%20fill-opacity='.7'%20d='M-85.3%200h682.6v512H-85.3z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23sa-a)'%20transform='translate(80)scale(.9375)'%3e%3cpath%20fill='%23165d31'%20d='M-128%200h768v512h-768z'/%3e%3cpath%20fill='%23fff'%20d='M65.5%20145.1c-.8%2012-2%2033%208.3%2035.2%2012.3%201.2%205.5-20.8%2010-24.8.8-2%202.3-2%202.4.5v18.7c0%206%204%207.8%207%209%203.2-.2%205.4%200%206.6%203l1.6%2032.3s7.4%202.2%207.8-18.1c.3-12-2.4-21.9-.8-24.2%200-2.3%203-2.4%205-1.3%203.2%202.2%204.6%205%209.6%204%207.6-2.2%2012.2-5.9%2012.3-11.7a47%2047%200%200%200-3.5-16.6c.4-1-1.4-3.7-1-4.7%201.3%202.2%203.4%202%203.8%200-1.3-4.2-3.3-8.3-6.5-10-2.7-2.4-6.7-2-8%203-.8%205.7%202%2012.4%206.1%2018%20.9%202.1%202.1%205.7%201.6%208.9q-3.4%201.8-6.3-1.2s-6-4.5-6-5.6c1.6-10.2.3-11.4-.6-14.3-.6-3.9-2.5-5.2-4-7.8-1.5-1.6-3.5-1.6-4.5%200-2.7%204.6-1.4%2014.5.5%2019%201.4%204.1%203.5%206.7%202.5%206.7-.8%202.3-2.5%201.7-3.8-1a67%2067%200%200%201-2.1-17.4c-.5-4.6-1.1-14.4-4.2-17-1.8-2.4-4.5-1.2-5.5%201a82%2082%200%200%200%20.3%2013.4c2%207.4%202.7%2014%203.7%2021.5.3%2010.1-5.8%204.4-5.5-.7a45%2045%200%200%200-.3-19.4c-1-2.6-2.1-3.2-4.6-2.8-1.9%200-6.8%205.3-8.2%2014.3%200%200-1.2%204.6-1.7%208.7-.7%204.6-3.7%208-5.9-.6-1.8-6.3-3-21.6-6-18z'/%3e%3cpath%20fill='%23fff'%20d='m99%20194.2-32%2015.4c.3-7.3%2015.1-20.4%2025.3-20.5%206.5.1%204.9%202.5%206.6%205.1z'/%3e%3cpath%20fill='%23fff'%20d='M93.3%20204.2c-16.8%2043.5%2039.5%2049.6%2045.8%201.8.6-2%203-3.9%203.4-.7-1.3%2043.3-43.6%2046.2-50.8%2032.6a42%2042%200%200%201-2.5-14.6c-1-8.5-5.5-5.2-6.2%203.2-.7%204.7-.5%206-.5%2010.5%202.2%2034.2%2056.7%2019.5%2065.6-8.7%204.7-15.6-.8-27.1%201.7-27.1%205.4%205.8%2013%20.8%2014.7-1.2.7-1%202.5-1.7%203.7-.4%204.2%203%2011.6%201.6%2013.2-3.7q1.4-8%201.8-16.2c-3.5%201-6%201.7-6.3%203.2l-.7%204.6c-.3%201.5-3.2%201.5-3.4-.4-1.3-6-6.7-6.7-10%202.5-2.1%201.8-6.1%202.2-6.5-.5.5-6.2-2-7-7-4.1l-4.8-36.2c2%200%204%201.5%205.9-.9-2-6.5-6.5-19.7-9-20.7-1.1-1.4-2.1-.5-3.7-.1-2.6.8-5%203-4.2%207.4%203%2018.8%205%2033.1%208.1%2052%20.5%202.1-1.3%205-3.7%204.7-4-2.7-5-8.2-12-8-5%200-10.6%205.5-11.3%2010.7-.9%204.2-1.2%208.7%200%2012.3%203.5%204.2%207.7%203.8%2011.4%202.9%203-1.3%205.5-4.3%206.6-3.6.7.9.1%2010.9-14.3%2018.5-8.7%204-15.7%204.8-19.4-2.3-2.3-4.5.2-21.4-5.6-17.5'/%3e%3cpath%20fill='%23fff'%20d='M165%20160c3.3-1.2%2019.3-19.6%2019.3-19.6l-2.4-2q-1.3-1.1%200-2.2c4-2.4%202.7-7.4.7-9.8a10%2010%200%200%200-8.7.1c-2.8%202.7-3.4%207-1.2%209.6%202.1%201%204.2%203.2%202.8%204.4-6.6%207-24.5%2019.1-22.4%2019.5.4.6%2011.5.6%2011.8%200zm-97%2065c-6%209.6-6.5%2023.9-3.2%2028.2%201.8%202%204.7%202.9%206.8%202.2%203.8-1.6%205.5-9.3%204.6-12q-1.8-3-3.6-.7c-2.6%205.4-3.7%201.7-4-1.3a70%2070%200%200%201%20.8-15.2c.7-4.2%200-3-1.4-1.2m257.1-15.3c-5.8-12.6-13.9-25-16.4-29.7a558%20558%200%200%200-24.8-36c-6.2-7.4%2010.2%203.1-2-11.7l-8.9-7.5c-2-1.4-6.8-4-7.6.2-.4%203.8-.2%205.8.4%208.9.5%202%203.5%205.5%205%207.5a565%20565%200%200%201%2053.8%2086.5c2.6-1.3%202-16.1.5-18.2'/%3e%3cpath%20fill='%23fff'%20d='M299.6%20251.5c-1.2%201.3%202.8%206.8%208%206.8%208.6-1%2016.2-5.8%2023.2-18.6a33%2033%200%200%200%205.3-14.2%20317%20317%200%200%200-5.8-72.4c-.3-2%200-4.4.2-5%20.6-.7%202.5%200%203.5-1.7%201.5-1.5-4-14-7-18.7-1-2.2-1.5-3.6-3.3.2a27%2027%200%200%200-3%2013.6c4.1%2028.5%205.4%2053.4%208%2081.9.3%202.8-.1%206.8-2%208.4a80%2080%200%200%201-27.1%2019.7m116.5-.1c-6.2%203.6-6.2%207.7-1.2%207.8%208.6-1%2018.8-1.7%2025.8-12.3a41%2041%200%200%200%204.2-16%20303%20303%200%200%200-4.7-71.4c-.2-2-1.1-6.7-.8-7.3.6-1.4%203.4.1%204.4-1.5%201.4-1.5-7.3-12.7-10.4-17.5-1-2.2-1.4-3.6-3.3.2a22%2022%200%200%200-1.8%2013.6c4.6%2031%208%2054.2%208.7%2081.6-.4%202.6-.5%204-1.7%207.3-2.7%203.4-5.7%207.8-8.5%209.9-2.8%202-8.8%204-10.7%205.6'/%3e%3cpath%20fill='%23fff'%20d='M420.7%20223.7q.1-10.9-.1-19a34%2034%200%200%200-3-13.5c-1.8-4.1-.7-7.4-1.6-11.8-.8-4.4-.6-11-1.8-16.1-.4-2-1.4-8.5-1.1-9.2.5-1.4%202.4%200%203.4-1.6%201.4-1.5-5-18-8.2-22.7-1.1-2.1-3.3-1.4-5.8%202-2.5%202.3-1.6%207.4-.6%2012.3%206.1%2032.3%2010.8%2061.6%209.8%2092.3-.4%202.6%209-7.8%209-12.7m-45.7-40c-3.9-.2-12-7.7-14.4-12a8%208%200%200%201%20.4-6.5c1.5-1%203.7-2%205.4-1%200%200%201.7%202.4%201.4%202.7%202%201%203%20.5%203.2-.4.1-1.5-.6-2.4-.6-4%20.9-4.6%206-5.3%208-2.4%201.4%201.8%202%205.5%202.1%208%200%201.3-2-.2-3.3%200-1.1.4-1.4%201.8-1.5%203-.2%203.3-.6%208.6-.7%2012.5zm-71.8%2048c1-9.8-.4-27.3-.5-33.1A477%20477%200%200%200%20299%20154c-1.2-8.4%203.4.9%202.8-4-1.5-8.3-6.1-14-11.6-21.5-1.7-2.5-1.7-3-4.4.6-3%206.7-.4%2011.4.4%2016.7%203.9%2017.2%206.2%2033%207.3%2048.7a393%20393%200%200%201%20.4%2049c3%20.1%207.6-4.7%209.3-11.8'/%3e%3cpath%20fill='%23fff'%20d='M434%20216c-6.9-11.6-17.2-24-20-28.7a658%20658%200%200%200-29.2-37.8c-8.5-9%204-1.5-1.6-8.5-4.7-5.1-6-6.8-10.1-9.9-2-1.3-3.2-3.8-4%20.5a83%2083%200%200%200-.2%2011.2c0%201.7%201.8%205%203.4%207%2020.7%2025.5%2043.4%2051.5%2061.6%2084.2%202.6-1.3%201.7-16%200-18z'/%3e%3cpath%20fill='%23165d31'%20d='M122.6%20194.7c-.5.9-1.6%202-1.2%203.1q1%201.4%202.6%201.3c1.1%200%202.7.3%203-.3q1-1.2.6-3.3c-1.2-3-4.4-1.8-5-.8'/%3e%3cpath%20fill='%23fff'%20d='M354.2%20362.5c9.2.4%2015.2.5%2023.3%201.4l9.6-1c10.6-1%2011%2015.1%2011%2015.1%200%209.5-3.7%2010-8.4%2011-2.7.4-4-1.6-5.5-3.6a14%2014%200%200%201-7%20.4l-11.5-.5c-4-.3-6.2.5-10.3.1-.8%201.3-2%203.1-4.4%202.6-2-.3-4.5-6-3.8-10.5%201.5-3.2%201-2.1%201-3.5-37.6-1-75.5-2.7-112.3-2.2-28.8.1-57.2%201.3-85.7%202.5-15.2-.2-26.8-2.6-34.8-14.3.8%200%2038.8%202.1%2049.9%201.4%2020.5-.2%2039.3-1.9%2060.2-2.5%2041.2.7%2082.1.7%20123.3%203.6-4-2.7-4-9%202-10.6.5-.4.8%203.1%201.7%203%204.9-.3%202.7%206.3%201.7%207.6M188.6%20135.3c-6.2%2017.8%203.6%2037.4%2010.4%2035.5%205%202%208-7.4%2010-17.6%201.5-2.9%202.5-3.2%203.2-1.7-.2%2013.6%201%2016.7%204.5%2020.8%207.8%206%2014.3.8%2014.8.3l6-6.1q2.2-2.2%205.1-.3c1.9%201.7%201.6%204.6%205.6%206.6%203.4%201.4%2010.5.4%2012.2-2.5%202.2-3.9%202.8-5.2%203.8-6.6%201.6-2.1%204.3-1.2%204.3-.5-.3%201.2-1.9%202.3-.8%204.5%202%201.4%202.4.5%203.5.2%204-2%207-10.6%207-10.6.1-3.2-1.7-3-2.9-2.2l-3.1%202.1c-2%20.3-5.7%201.6-7.6-1.3-1.9-3.4-1.9-8.3-3.3-11.8%200-.2-2.6-5.5-.2-5.8%201.2.2%203.7.9%204.1-1.2%201.2-2.1-2.6-8-5.3-11-2.3-2.5-5.5-2.8-8.6-.2-2.2%202-1.9%204.2-2.3%206.3a10%2010%200%200%200%202%208.7c2.2%204.2%206.1%209.7%204.8%2017.5%200%200-2.3%203.6-6.3%203.1-1.7-.3-4.4-1-5.8-11.8-1.1-8%20.2-19.4-3.2-24.7-1.3-3.3-2.2-6.4-5.2-.9-.8%202.2-4.3%205.5-1.8%2012.2a36%2036%200%200%201%202%2019c-1.5%202.2-1.8%202.9-3.7%205-2.6%203-5.5%202.2-7.7%201.1-2-1.3-3.6-2-4.6-6.5.2-7%20.6-18.5-.7-20.9-1.9-3.8-5-2.4-6.3-1.2a48%2048%200%200%200-11.5%2023.5c-1.8%205.8-3.7%204.1-5%201.8-3.2-3-3.5-26.7-7.4-22.8'/%3e%3cpath%20fill='%23fff'%20d='M207.4%20174.1c2.9-2%201.6-3.4%205.8.8a72%2072%200%200%201%209.2%2031.3c-.2%202.6%201.6%204.2%202.5%203.6.4-6%2015.1-14.4%2028.6-15.6%202-.5%201-4.4%201.3-6.4-.8-7.5%204.2-14.3%2011.2-14.8%209.6%201.4%2012.8%206.5%2013%2014.2-1.1%2015-16.7%2017.5-25.4%2018.7-1.3.5-1.9%201.1%200%201.8l36.6.2%201.9%201c.2%201-.6.2-2%202.6a30%2030%200%200%200-3.7%2011.5c-10.9%203.6-22.2%205-33.6%206.5-4%202-6%204.7-5.2%207.7%201.4%203.3%2010.2%206.7%2010.2%206.8%201.7%201%203.6%203.5-.5%208.6-17.8-.8-31.7-8.4-36.5-19.1-1.4-1.1-3%200-4%201.4-7%209-13.8%2017-25.7%2021.4-7%201.8-14.3-1.1-17.7-5.7-2.3-2.7-2.2-5.6-3-6.2-3.9%201.7-36.9%2015.7-32.7%209.1%208-8.5%2022-14.9%2034.2-23.3.9-2.9%202.5-12.5%207.3-15.6.3%200-.7%205.6-.6%208%200%202-.2%202.7.2%202.2.9-.5%2015.7-12.2%2017-15.8%201.4-2%20.3-7.2.3-7.4-2.8-7.2-6.7-7.8-8.1-11.4-1.3-4.7-.7-10.1%202-11.7q3.7-3.1%207.9.5c3%202.7%205.6%208%206.4%2011.9-.5%201.5-4-1-5-.3a16%2016%200%200%201%203.7%207.8c2%208.2%201.4%2011.4-.6%2016.7-6.6%2013.9-15%2018-22.4%2023.2-.2%200-.3%203.5%202.4%205.4%201%201%204.9%201.5%209.4%200a55%2055%200%200%200%2022.3-23.3%2051%2051%200%200%200-2.4-22.2c-2.9-6.7-6.3-16.2-6.3-16.4-.1-4.2.2-5.6%202-7.7m-95.8-38.6c4.2%202%2012.2%201.1%2011.8-5.7l-.2-3.1c-.8-2-3.2-1.5-3.7.5-.2.7.3%201.8-.3%202.1-.4.4-1.7.2-1.7-1.7q-.1-1-.7-1.6-.2-.2-.9-.2c-.6%200-.6.1-.9.6l-.3%201.6q-.1.9-.8%201c-.6%200-.5%200-1-.2q-.4-.3-.5-1l-.3-1.6q-.3-.4-1-.6c-2.3%200-2.5%202.7-2.3%203.7-.2.2-.3%204.9%202.8%206.2'/%3e%3cpath%20fill='%23fff'%20d='M235.1%20187.7c4.2%202%2014.3.9%2011.8-5.6l-.2-3.2c-.9-2-3.2-1.5-3.7.6-.2.6.3%201.7-.4%202-.3.4-1.7.2-1.6-1.6q-.1-1-.7-1.7-.3-.2-1-.2c-.5%200-.5.2-.8.7q-.3.7-.3%201.6-.2.8-.9%201c-.5%200-.4%200-.8-.3q-.5-.3-.6-.9l-.3-1.6q-.3-.5-1-.6c-2.3%200-2.5%202.6-2.4%203.6-.1.2-.2%205%203%206.2zm72-21.6c4.2%202%2012.1%201.1%2011.8-5.6l-.2-3.2c-.9-2-3.2-1.5-3.7.5-.2.7.3%201.8-.4%202.2-.3.3-1.7.1-1.6-1.8q-.1-1-.7-1.6-.3-.2-1-.2t-.8.7l-.3%201.5q-.1%201-.9%201c-.8%200-.4%200-.8-.2q-.5-.3-.6-.9%200-1-.3-1.7-.4-.4-1-.5c-2.3%200-2.5%202.6-2.4%203.6-.1.2-.2%204.9%203%206.2zm37.3%2054.3c-7.3%208.3-4.1%2022-2.4%2025%202.4%204.8%204.3%207.9%209%2010.3%204.3%203.1%207.7%201.2%209.5-1%204.3-4.5%204.4-16%206.4-18.2%201.4-4.2%205-3.5%206.7-1.6a17%2017%200%200%200%206.2%205.3c4%203.5%208.8%204.2%2013.6%201%203.2-1.9%205.3-4.2%207.2-8.9%202-5.6%201-31.6.5-47l-4.2-21.5c0-.2-.5-10.2-1-12.5%200-1-.3-1.3.7-1.2%201.1%201%201.2%201%202%201.3%201%20.2%202-1.7%201.3-3.3l-10-18.6c-.8-.8-1.9-1.6-3.2.2a7%207%200%200%200-2.4%205.5l1.3%2013.3%204%2022.6c1.3%2016%201.6%2029.2%202.9%2045.3-.2%206.8-2.3%2012.7-4.3%2013.6%200%200-3%201.7-5-.2-1.5-.6-7.4-9.9-7.4-9.9-3-2.7-5-2-7.1%200-6%205.8-8.6%2016.4-12.7%2023.8-1%201.7-4%203-7.2-.1-8.2-11.3-3.4-27.3-4.4-23.2M309%20126.7c3.8%201.5%206.4%209.2%205.6%2013-.8%204.5-2.8%209.5-4.2%208.9-1.6-.6%201-4.6-.5-8.8-.8-2.8-6-7.8-5.4-9.2-1-3.1%202.2-4.5%204.5-4z'/%3e%3cpath%20fill='%23fff'%20d='M356.6%20225c.7-9.2-.6-14.8-.8-20.2s-6.1-46.6-7.3-50.6c-1.5-7.8%205.7-1%204.9-5.6-2.5-5.6-8.6-13.9-10.5-18.8-1.2-2-.7-4-3.3-.5a42%2042%200%200%200-2.3%2019.2c6.2%2032.3%2012.5%2059.1%2011.5%2089.8%203%200%206.3-6.7%207.8-13.3m64.4-85.3c3.5%201.7%205.5%2011.3%205.1%2014-.7%205-2.5%2010.4-3.8%209.7-1.5-.6.3-7.4-.4-9.5-.8-3-5.5-8.4-5-10-1-3.4%202-4.8%204.1-4.2m-255.7%2067.9c3.3%201.3%205.3%208.3%205%2010.3-.8%203.7-2.5%207.7-3.8%207.1-1.3-.4.3-5.4-.3-7-.3-3.7-4.9-5.7-4.8-7.3-.8-3%202-3.5%204-3.1z'/%3e%3cpath%20fill='%23165d31'%20d='M244.9%20218.2c4.2.2%206.3%203.6%202.4%205-4%201.3-7.7%202.4-7.8%208%201.5%208-2%205.2-4%204.2-2.4-1.8-9.2-6-10.2-15-.1-2.1%201.6-4%204.3-4%204%201.1%2010%201.2%2015.3%201.8'/%3e%3cpath%20fill='%23fff'%20d='M77.4%20124.4c4.8%201.4%205.1%208.6%204.8%2010.7-.7%203.8-2.4%207.9-3.6%207.4-1.4-.5%200-5.7-.7-7.3-.7-2.2-4.8-6.4-4.4-7.6-.9-2.5%202-3.7%203.9-3.2m95.9%2033.6c-3.8%202-5.2%208-2.9%2011.6%202.2%203%205.6%201.9%206%201.9%203.7.4%205.9-6.9%205.9-6.9s.1-2-4.2%201.9c-1.9.3-2-.4-2.5-1.4a9%209%200%200%201%20.5-5.7c.7-1.8-.7-2.6-2.8-1.4m28-36.4c-2%201.3-5.7%205.2-5.8%209.6-.1%202.5-.6%202.5%201%204%201.3%201.8%202.4%201.7%204.8.4a5%205%200%200%200%202.3-3.4c.6-2.8-3%201.4-3.4-1.8-.8-3%201.5-4.2%203.7-7%200-2%200-3.3-2.7-1.8zm22.4%204a60%2060%200%200%200-1.6%2011.1c-.6%202.8%203%204%204.5.4%202.4-6.5%202.4-9.3%202.6-12-.7-4.3-3.6-4.2-5.5.5m142%2072.3c.4-.5%2020-14.4%2020-14.4%202-.7%201.5%207.2.6%207.1a78%2078%200%200%201-20.7%2014.3c-1%20.7-1.9-5.3%200-7zm17.7-.2c3.5%201.7%204.9%2011.8%204.5%2014.5%200%205.4-3.3%209.6-4.7%209-1.4-.7.2-6.7-.5-8.8-.8-3-3.7-8.5-3.2-10.1-1-3.4%201.8-5.2%204-4.6zm-116%2043.4a26%2026%200%200%201%205.6-4.9c2-1%203.8.8%203.7.7.3%202-1.2%203.7-.7%206.3.4%201%20.7%202.2%202.6%201.8%203.1-2.5%206-2.7%209-2.8%202.5.1%202.6%204.2%201%204.2-5.7%201.2-8.2%202.8-12.3%204.3-2%201.2-3.6-.3-3.6-.4s-1.1-1.1-.4-3.7q.3-3.2-2.4-3c-1.2.8-2.4%201.2-3-.3q-.6-1.4.5-2.2m136.6%205.4c.8%201%201.4%202-.1%203.8l-3.7%203.2c-.6%201-1%202.8%201%203.3%203.6%201%2012-4.5%2012-4.6%201.4-1%201-3%20.8-3-.8-.9-2.6-.3-3.8-.5-.6%200-2.5-.2-1.6-2a11%2011%200%200%200%201.6-2.9q.9-1.7-2-2.7c-2.1-.4-3-.2-5.3%200q-1.6.2-1.9%202.3c.1%202.3%201.5%202.2%203%203z'/%3e%3cpath%20fill='%23165d31'%20d='M268.1%20189.7c-.5%201-2.3%201-4%200s-2.7-2.6-2.1-3.5%202.3-.9%204%200%202.6%202.6%202.1%203.5m-89-53.6c-1%20.3-2.4-.6-3-2s-.3-2.6.7-2.9%202.3.7%203%202%20.3%202.7-.8%203zM355.2%20375c9.4.4%2018.2%200%2027.5.5%201.7%201.5.5%205-.6%204.8l-7.8-.3c-.1-3-7.7-2.5-7.5.1-4.1.5-7.8-.1-12-.3-1.2-1.5-1-4.2.4-4.8'/%3e%3c/g%3e%3c/svg%3e";
  const flagJP = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-jp'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='jp-a'%3e%3cpath%20fill-opacity='.7'%20d='M-88%2032h640v480H-88z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%20clip-path='url(%23jp-a)'%20transform='translate(88%20-32)'%3e%3cpath%20fill='%23fff'%20d='M-128%2032h720v480h-720z'/%3e%3ccircle%20cx='523.1'%20cy='344.1'%20r='194.9'%20fill='%23bc002d'%20transform='translate(-168.4%208.6)scale(.76554)'/%3e%3c/g%3e%3c/svg%3e";
  const flagKR = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-kr'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='kr-a'%3e%3cpath%20fill-opacity='.7'%20d='M-95.8-.4h682.7v512H-95.8z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23kr-a)'%20transform='translate(89.8%20.4)scale(.9375)'%3e%3cpath%20fill='%23fff'%20d='M-95.8-.4H587v512H-95.8Z'/%3e%3cg%20transform='rotate(-56.3%20361.6%20-101.3)scale(10.66667)'%3e%3cg%20id='kr-c'%3e%3cpath%20id='kr-b'%20fill='%23000001'%20d='M-6-26H6v2H-6Zm0%203H6v2H-6Zm0%203H6v2H-6Z'/%3e%3cuse%20xlink:href='%23kr-b'%20width='100%25'%20height='100%25'%20y='44'/%3e%3c/g%3e%3cpath%20stroke='%23fff'%20d='M0%2017v10'/%3e%3cpath%20fill='%23cd2e3a'%20d='M0-12a12%2012%200%200%201%200%2024Z'/%3e%3cpath%20fill='%230047a0'%20d='M0-12a12%2012%200%200%200%200%2024A6%206%200%200%200%200%200Z'/%3e%3ccircle%20cy='-6'%20r='6'%20fill='%23cd2e3a'/%3e%3c/g%3e%3cg%20transform='rotate(-123.7%20191.2%2062.2)scale(10.66667)'%3e%3cuse%20xlink:href='%23kr-c'%20width='100%25'%20height='100%25'/%3e%3cpath%20stroke='%23fff'%20d='M0-23.5v3M0%2017v3.5m0%203v3'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
  const flagFR = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-fr'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23000091'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23e1000f'%20d='M426.7%200H640v480H426.7z'/%3e%3c/svg%3e";
  const flagDE = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-de'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fc0'%20d='M0%20320h640v160H0z'/%3e%3cpath%20fill='%23000001'%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='red'%20d='M0%20160h640v160H0z'/%3e%3c/svg%3e";
  const flagIN = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-in'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23f93'%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20160h640v160H0z'/%3e%3cpath%20fill='%23128807'%20d='M0%20320h640v160H0z'/%3e%3cg%20transform='matrix(3.2%200%200%203.2%20320%20240)'%3e%3ccircle%20r='20'%20fill='%23008'/%3e%3ccircle%20r='17.5'%20fill='%23fff'/%3e%3ccircle%20r='3.5'%20fill='%23008'/%3e%3cg%20id='in-d'%3e%3cg%20id='in-c'%3e%3cg%20id='in-b'%3e%3cg%20id='in-a'%20fill='%23008'%3e%3ccircle%20r='.9'%20transform='rotate(7.5%20-8.8%20133.5)'/%3e%3cpath%20d='M0%2017.5.6%207%200%202l-.6%205z'/%3e%3c/g%3e%3cuse%20xlink:href='%23in-a'%20width='100%25'%20height='100%25'%20transform='rotate(15)'/%3e%3c/g%3e%3cuse%20xlink:href='%23in-b'%20width='100%25'%20height='100%25'%20transform='rotate(30)'/%3e%3c/g%3e%3cuse%20xlink:href='%23in-c'%20width='100%25'%20height='100%25'%20transform='rotate(60)'/%3e%3c/g%3e%3cuse%20xlink:href='%23in-d'%20width='100%25'%20height='100%25'%20transform='rotate(120)'/%3e%3cuse%20xlink:href='%23in-d'%20width='100%25'%20height='100%25'%20transform='rotate(-120)'/%3e%3c/g%3e%3c/svg%3e";
  const flagPT = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20id='flag-icons-pt'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='red'%20d='M256%200h384v480H256z'/%3e%3cpath%20fill='%23060'%20d='M0%200h256v480H0z'/%3e%3cg%20fill='%23ff0'%20fill-rule='evenodd'%20stroke='%23000'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='.6'%3e%3cpath%20d='M339.5%20306.2c-32.3-1-180-93.2-181-108l8.1-13.5c14.7%2021.3%20165.7%20111%20180.6%20107.8z'/%3e%3cpath%20d='M164.9%20182.8c-2.9%207.8%2038.6%2033.4%2088.4%2063.8s92.9%2049%2096%2046.4l1.5-2.8q-.9%201.6-4.3.6c-13.5-3.9-48.6-20-92.1-46.4-43.6-26.4-81.4-50.7-87.3-61a6%206%200%200%201-.6-3.1h-.2l-1.2%202.2zm175.3%20123.8q-.7%201.3-3.5.8c-12-1.3-48.6-19.1-91.9-45-50.4-30.2-92-57.6-87.4-64.8l1.2-2.2.2.1c-4%2012.2%2082.1%2061.4%2087.2%2064.6%2049.8%2030.8%2091.8%2048.9%2095.5%2044.2z'/%3e%3cpath%20d='M256.2%20207.2c32.2-.3%2072-4.4%2095-13.6l-5-8c-13.5%207.5-53.5%2012.5-90.3%2013.2-43.4-.4-74.1-4.5-89.5-14.8l-4.6%208.6c28.2%2012%2057.2%2014.5%2094.4%2014.6'/%3e%3cpath%20d='M352.5%20193.8c-.8%201.3-15.8%206.4-37.8%2010.2a381%20381%200%200%201-58.6%204.3%20416%20416%200%200%201-56.2-3.6c-23.1-3.6-35-8.6-39.5-10.4l1.1-2.2c12.7%205%2024.7%208%2038.7%2010.2A412%20412%200%200%200%20256%20206a392%20392%200%200%200%2058.3-4.3c22.5-3.7%2034.8-8.4%2036.6-10.5zm-4.4-8.1c-2.4%202-14.6%206.3-36%209.7a388%20388%200%200%201-55.8%204c-22%200-40.1-1.6-53.8-3.6-21.8-2.8-33.4-8-37.6-9.4l1.3-2.2c3.3%201.7%2014.4%206.2%2036.5%209.3a385%20385%200%200%200%2053.6%203.4%20384%20384%200%200%200%2055.4-4c21.5-3%2033.1-8.4%2034.9-9.8zM150.3%20246c19.8%2010.7%2063.9%2016%20105.6%2016.4%2038%20.1%2087.4-5.8%20105.9-15.6l-.5-10.7c-5.8%209-58.8%2017.7-105.8%2017.4s-90.7-7.6-105.3-17v9.5'/%3e%3cpath%20d='M362.8%20244.5v2.5c-2.8%203.4-20.2%208.4-42%2012a434%20434%200%200%201-65.4%204.4%20400%20400%200%200%201-62-4.3%20155%20155%200%200%201-44.4-12v-2.9c9.7%206.4%2035.9%2011.2%2044.7%2012.6%2015.8%202.4%2036.1%204.2%2061.7%204.2%2026.9%200%2048.4-1.9%2065-4.4%2015.7-2.3%2038-8.2%2042.4-12.1m0-9v2.5c-2.8%203.3-20.2%208.3-42%2011.9a434%20434%200%200%201-65.4%204.5%20414%20414%200%200%201-62-4.3%20155%20155%200%200%201-44.4-12v-3c9.7%206.5%2036%2011.2%2044.7%2012.6a408%20408%200%200%200%2061.7%204.3c26.9%200%2048.5-2%2065-4.5%2015.7-2.2%2038-8.1%2042.4-12m-107%2068.8c-45.6-.2-84.7-12.4-93-14.4l6%209.4a250%20250%200%200%200%2087.4%2014.3c34.7-1%2065-3.7%2086.3-14.1l6.2-9.8c-14.5%206.9-64%2014.6-93%2014.6'/%3e%3cpath%20d='m344.9%20297.3-2.8%204c-10%203.6-26%207.4-32.6%208.4a296%20296%200%200%201-53.7%205c-40.4-.6-73.5-8.5-89-15.3l-1.3-2.1.2-.4%202.1.9a287%20287%200%200%200%2088.2%2014.5c18.8%200%2037.5-2.1%2052.6-4.8%2023.2-4.7%2032.6-8.2%2035.5-9.8l.7-.4zm5.3-8.8-2%203.5c-5.4%202-20%206.2-41.3%209.2-14%201.9-22.7%203.8-50.6%204.3a347%20347%200%200%201-94.2-14L161%20289a390%20390%200%200%200%2095.4%2014c25.5-.5%2036.4-2.4%2050.3-4.3%2024.8-3.8%2037.3-8%2041-9.1v-.2l2.6-1z'/%3e%3cpath%20d='M350.8%20237.6c.1%2030-15.3%2057-27.6%2068.8a99%2099%200%200%201-67.8%2028.2c-30.3.5-58.8-19.2-66.5-27.9a101%20101%200%200%201-27.5-67.4c1.8-32.8%2014.7-55.6%2033.3-71.3a100%20100%200%200%201%2064.2-22.7%2098%2098%200%200%201%2071%2035.6c12.5%2015.2%2018%2031.7%2020.9%2056.7M255.6%20135a106%20106%200%200%201%20106%20105.2%20105.6%20105.6%200%201%201-211.4%200c-.1-58%2047.3-105.2%20105.4-105.2'/%3e%3cpath%20d='M255.9%20134.5c58.2%200%20105.6%2047.4%20105.6%20105.6S314.1%20345.7%20256%20345.7s-105.6-47.4-105.6-105.6S197.8%20134.5%20256%20134.5zM152.6%20240c0%2056.8%2046.7%20103.3%20103.3%20103.3S359.2%20296.8%20359.2%20240s-46.7-103.3-103.3-103.3S152.6%20183.2%20152.6%20240'/%3e%3cpath%20d='M256%20143.3a97%2097%200%200%201%2096.7%2096.7%2097%2097%200%200%201-96.7%2096.8c-53%200-96.7-43.6-96.7-96.8a97%2097%200%200%201%2096.7-96.7M161.6%20240c0%2052%2042.6%2094.4%2094.4%2094.4s94.4-42.5%2094.4-94.4-42.6-94.4-94.4-94.4a95%2095%200%200%200-94.4%2094.4'/%3e%3cpath%20d='M260.3%20134h-9.1v212.3h9z'/%3e%3cpath%20d='M259.3%20132.8h2.3v214.7h-2.2V132.8zm-9%200h2.4v214.7h-2.3z'/%3e%3cpath%20d='M361.6%20244.2v-7.8l-6.4-6-36.3-9.6-52.2-5.3-63%203.2-44.8%2010.6-9%206.7v7.9l22.9-10.3%2054.4-8.5h52.3l38.4%204.2%2026.6%206.4z'/%3e%3cpath%20d='M256%20223.8c24.9%200%2049%202.3%2068.3%206%2019.8%204%2033.7%209%2038.5%2014.5v2.8c-5.8-7-24.5-12-39-15-19-3.6-43-6-67.9-6-26.1%200-50.5%202.6-69.3%206.2-15%203-35.1%209-37.6%2014.8v-2.9c1.3-4%2016.3-10%2037.3-14.3%2018.9-3.7%2043.3-6.1%2069.6-6.1zm0-9.1a383%20383%200%200%201%2068.3%206c19.8%204%2033.7%209%2038.5%2014.6v2.7c-5.8-6.9-24.5-12-39-14.9-19-3.7-43-6-67.9-6a376%20376%200%200%200-69.2%206.2c-14.5%202.7-35.4%208.9-37.7%2014.7v-2.8c1.4-4%2016.6-10.3%2037.3-14.3%2019-3.7%2043.3-6.2%2069.7-6.2m-.6-46.2c39.3-.2%2073.6%205.5%2089.3%2013.5l5.7%2010c-13.6-7.4-50.6-15-94.9-14-36.1.3-74.7%204-94%2014.4l6.8-11.4c15.9-8.3%2053.3-12.5%2087.1-12.5'/%3e%3cpath%20d='M256%20176.7a354%20354%200%200%201%2061.3%204.3c16%203%2031.3%207.4%2033.5%209.8l1.7%203c-5.3-3.4-18.6-7.3-35.6-10.5s-38.7-4.3-61-4.2c-25.3-.1-45%201.2-61.8%204.2a109%20109%200%200%200-33.3%2010.3l1.7-3.1c6-3%2015.3-6.7%2031.1-9.6%2017.5-3.2%2037.4-4.1%2062.4-4.2m0-9c21.4-.2%2042.6%201%2059.1%204a96%2096%200%200%201%2030.6%2010l2.5%204c-4.2-4.7-20-9.2-34.1-11.6-16.4-2.9-36.7-4-58.1-4.2a361%20361%200%200%200-59.5%204.4%2097%2097%200%200%200-29.6%209.1l2.2-3.3c5.8-3%2015.2-5.8%2027-8.1a357%20357%200%200%201%2059.9-4.4zM308.4%20284a276%20276%200%200%200-52.5-4c-65.5.8-86.6%2013.5-89.2%2017.3l-5-8c16.8-12%2052.4-18.8%2094.6-18.2q32.9.5%2056.6%205l-4.5%208'/%3e%3cpath%20d='M255.6%20278.9c18.2.3%2036%201%2053.3%204.2l-1.2%202.2c-16-3-33.2-4-52-4-24.3-.2-48.7%202.1-70%208.2-6.7%201.9-17.8%206.2-19%209.8l-1.2-2c.4-2.2%207-6.6%2019.6-10%2024.4-7%2047.2-8.3%2070.5-8.4m.8-9.2a327%20327%200%200%201%2057.3%205l-1.3%202.3a299%20299%200%200%200-56-4.9c-24.2%200-49.9%201.8-73.3%208.6-7.5%202.2-20.6%207-21%2010.7l-1.2-2.2c.2-3.4%2011.5-7.9%2021.7-10.8%2023.5-6.9%2049.3-8.6%2073.8-8.7'/%3e%3cpath%20d='m349.4%20290.5-7.8%2012.3-22.7-20.1-58.6-39.5-66.2-36.3-34.3-11.7%207.3-13.6%202.5-1.3%2021.3%205.3%2070.4%2036.3%2040.6%2025.6L336%20272l13.9%2016z'/%3e%3cpath%20d='M158.6%20195.5c6-4%2050.2%2015.6%2096.6%2043.6%2046.1%2028%2090.3%2059.6%2086.3%2065.5l-1.3%202.1-.6.5c.1-.1.8-1%200-3.1-2-6.5-33.4-31.5-85.3-62.9-50.7-30.1-92.9-48.3-97-43.1zM351%20290.4c3.8-7.6-37.2-38.5-88.1-68.6-52-29.5-89.6-46.9-96.5-41.7L165%20183l.4-.5c1.2-1%203.3-1%204.2-1%2011.8.2%2045.5%2015.7%2092.8%2042.8%2020.8%2012%2087.6%2055%2087.3%2067%200%201%20.1%201.2-.3%201.8l1.7-2.6z'/%3e%3c/g%3e%3cg%20transform='translate(0%2026.7)scale(1.06667)'%3e%3cpath%20fill='%23fff'%20stroke='%23000'%20stroke-width='.7'%20d='M180.6%20211a59%2059%200%200%200%2017.5%2041.7%2059%2059%200%200%200%2041.8%2017.6%2059%2059%200%200%200%2042-17.4%2059%2059%200%200%200%2017.4-41.8v-79.2l-118.7-.2z'/%3e%3cpath%20fill='red'%20stroke='%23000'%20stroke-width='.5'%20d='M183%20211.1a56%2056%200%200%200%2016.8%2040%2057%2057%200%200%200%2040.2%2016.8%2057%2057%200%200%200%2040.2-16.6%2056%2056%200%200%200%2016.7-40v-77H183v76.8m91-53.7v48.9l-.1%205.1a33%2033%200%200%201-10%2024%2034%2034%200%200%201-24%2010c-9.4%200-17.7-4-23.9-10.2a34%2034%200%200%201-10-24v-54z'/%3e%3cg%20id='pt-e'%3e%3cg%20id='pt-d'%20fill='%23ff0'%20stroke='%23000'%20stroke-width='.5'%3e%3cpath%20stroke='none'%20d='M190.2%20154.4c.1-5.5%204-6.8%204-6.8.1%200%204.3%201.4%204.3%206.9z'/%3e%3cpath%20d='m186.8%20147.7-.7%206.3h4.2c0-5.2%204-6%204-6%20.1%200%204%201.1%204.1%206h4.2l-.8-6.4zm-1%206.4h17q.5%200%20.6.7%200%20.8-.6.8h-17q-.5%200-.6-.8%200-.7.7-.7z'/%3e%3cpath%20d='M192%20154c0-3.3%202.3-4.2%202.3-4.2s2.3%201%202.3%204.2H192m-5.8-9h16.3q.5.1.6.8%200%20.5-.6.6h-16.3q-.5%200-.6-.7%200-.5.6-.6zm.4%201.5H202q.5%200%20.6.7t-.6.7h-15.5q-.6%200-.6-.7t.6-.7zm5-10.6h1.2v.8h.9v-.8h1.3v.9h.9v-1h1.2v2q0%20.6-.5.6h-4.4q-.5%200-.6-.5zm4.6%202.7.3%206.4h-4.3l.3-6.5h3.7'/%3e%3cpath%20id='pt-a'%20d='M191%20141.6v3.4h-4v-3.4z'/%3e%3cuse%20xlink:href='%23pt-a'%20width='100%25'%20height='100%25'%20x='10.6'/%3e%3cpath%20id='pt-b'%20d='M186.3%20139h1.2v1h.9v-1h1.2v1h.9v-1h1.2v2q0%20.6-.5.6h-4.3l-.6-.6z'/%3e%3cuse%20xlink:href='%23pt-b'%20width='100%25'%20height='100%25'%20x='10.6'/%3e%3cpath%20fill='%23000001'%20stroke='none'%20d='M193.9%20140.6c0-.6.9-.6.9%200v1.6h-.9z'/%3e%3cpath%20id='pt-c'%20fill='%23000001'%20stroke='none'%20d='M188.6%20142.8c0-.6.8-.6.8%200v1.2h-.8z'/%3e%3cuse%20xlink:href='%23pt-c'%20width='100%25'%20height='100%25'%20x='10.6'/%3e%3c/g%3e%3cuse%20xlink:href='%23pt-d'%20width='100%25'%20height='100%25'%20y='46.3'/%3e%3cuse%20xlink:href='%23pt-d'%20width='100%25'%20height='100%25'%20transform='rotate(-45.2%20312.8%20180)'/%3e%3c/g%3e%3cuse%20xlink:href='%23pt-d'%20width='100%25'%20height='100%25'%20x='45.7'/%3e%3cuse%20xlink:href='%23pt-e'%20width='100%25'%20height='100%25'%20transform='matrix(-1%200%200%201%20479.8%200)'/%3e%3cg%20id='pt-f'%20fill='%23fff'%3e%3cpath%20fill='%23039'%20d='M232.6%20202.4a8%208%200%200%200%202.2%205.7%207%207%200%200%200%205.3%202.4q3.2-.2%205.3-2.4a8%208%200%200%200%202.2-5.7v-10.8h-15z'/%3e%3ccircle%20cx='236.1'%20cy='195.7'%20r='1.5'/%3e%3ccircle%20cx='244.4'%20cy='195.7'%20r='1.5'/%3e%3ccircle%20cx='240.2'%20cy='199.7'%20r='1.5'/%3e%3ccircle%20cx='236.1'%20cy='203.9'%20r='1.5'/%3e%3ccircle%20cx='244.4'%20cy='203.9'%20r='1.5'/%3e%3c/g%3e%3cuse%20xlink:href='%23pt-f'%20width='100%25'%20height='100%25'%20y='-26'/%3e%3cuse%20xlink:href='%23pt-f'%20width='100%25'%20height='100%25'%20x='-20.8'/%3e%3cuse%20xlink:href='%23pt-f'%20width='100%25'%20height='100%25'%20x='20.8'/%3e%3cuse%20xlink:href='%23pt-f'%20width='100%25'%20height='100%25'%20y='25.8'/%3e%3c/g%3e%3c/svg%3e";
  const flagRU = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ru'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='%230039a6'%20d='M0%20160h640v160H0z'/%3e%3cpath%20fill='%23d52b1e'%20d='M0%20320h640v160H0z'/%3e%3c/svg%3e";
  const flagES = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-es'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23AA151B'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23F1BF00'%20d='M0%20120h640v240H0z'/%3e%3cpath%20fill='%23ad1519'%20d='m127.3%20213.3-.8-.1-1-1-.7-.4-.6-.8s-.7-1.1-.4-2q.5-1.2%201.4-1.5l1.5-.5%201-.4%201.3-.3.5-.3%201-.2%201-.2%201.6.1h4.8c.4%200%201.2.3%201.4.4l2%20.7c.5.1%201.6.3%202.2.6q.8.5%201.1%201l.5%201v1.1l-.5.8-.6%201-.8.6s-.5.5-1%20.4-4.8-.8-7.6-.8-7.3.9-7.3.9'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.3'%20d='m127.3%20213.3-.8-.1-1-1-.7-.4-.6-.8s-.7-1.1-.4-2q.5-1.2%201.4-1.5l1.5-.5%201-.4%201.3-.3.5-.3%201-.2%201-.2%201.6.1h4.8c.4%200%201.2.3%201.4.4l2%20.7c.5.1%201.6.3%202.2.6q.8.5%201.1%201l.5%201v1.1l-.5.8-.6%201-.8.6s-.5.5-1%20.4-4.8-.8-7.6-.8-7.3.9-7.3.9z'/%3e%3cpath%20fill='%23c8b100'%20d='M133.3%20207q.1-2.1%201.3-2.3%201.3.1%201.4%202.4c0%201.3-.6%202.4-1.4%202.4s-1.3-1.1-1.3-2.5'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M133.3%20207q.1-2.1%201.3-2.3%201.3.1%201.4%202.4c0%201.3-.6%202.4-1.4%202.4s-1.3-1.1-1.3-2.5z'/%3e%3cpath%20fill='%23c8b100'%20d='M134%20207q0-2%20.7-2.1c.3%200%20.6%201%20.6%202.1q0%202-.6%202.2c-.4%200-.6-1-.6-2.2'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M134%20207q0-2%20.7-2.1c.3%200%20.6%201%20.6%202.1q0%202-.6%202.2c-.4%200-.6-1-.6-2.2z'/%3e%3cpath%20fill='%23c8b100'%20d='M133.8%20204.5q.1-.7.8-.8%201%200%201%20.8-.1.8-1%20.9c-.9.1-.8-.4-.8-.9'/%3e%3cpath%20fill='%23c8b100'%20d='M135.3%20204.2v.6h-1.4v-.6h.5V203h-.7v-.6h.7v-.5h.5v.5h.6v.6h-.6v1.2z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M135.3%20204.2v.6h-1.4v-.6h.5V203h-.7v-.6h.7v-.5h.5v.5h.6v.6h-.6v1.2h.4'/%3e%3cpath%20fill='%23c8b100'%20d='M135.9%20204.2v.6h-2.5v-.6h1V203h-.7v-.6h.7v-.5h.5v.5h.6v.6h-.6v1.2z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M135.9%20204.2v.6h-2.5v-.6h1V203h-.7v-.6h.7v-.5h.5v.5h.6v.6h-.6v1.2h1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M134.9%20203.7q.6.2.6.8-.1.8-.8.9-1%200-1-.9%200-.6.7-.8'/%3e%3cpath%20fill='%23c8b100'%20d='M134.7%20213.2H130v-1.1l-.3-1.2-.2-1.5c-1.3-1.7-2.5-2.8-2.9-2.5q.1-.5.5-.7c1.1-.7%203.5%201%205.2%203.6l.5.7h3.8l.4-.7c1.8-2.7%204.1-4.3%205.2-3.6q.4.2.5.7c-.4-.3-1.6.8-2.9%202.5l-.2%201.5-.2%201.2-.1%201.1z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M134.7%20213.2H130v-1.1l-.3-1.2-.2-1.5c-1.3-1.7-2.5-2.8-2.9-2.5q.1-.5.5-.7c1.1-.7%203.5%201%205.2%203.6l.5.7h3.8l.4-.7c1.8-2.7%204.1-4.3%205.2-3.6q.4.2.5.7c-.4-.3-1.6.8-2.9%202.5l-.2%201.5-.2%201.2-.1%201.1z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M126.8%20206.8c1-.5%203%201.1%204.6%203.6m11-3.6c-.8-.5-2.8%201.1-4.5%203.6'/%3e%3cpath%20fill='%23c8b100'%20d='m127.8%20215.3-.5-1a27%2027%200%200%201%2014.7%200l-.5.8-.3.8a23%2023%200%200%200-6.6-.8c-2.6%200-5.2.3-6.5.8z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m127.8%20215.3-.5-1a27%2027%200%200%201%2014.7%200l-.5.8-.3.8a23%2023%200%200%200-6.6-.8c-2.6%200-5.2.3-6.5.8l-.3-.6'/%3e%3cpath%20fill='%23c8b100'%20d='M134.6%20217.7c2.4%200%205-.4%205.9-.6q1-.3%201-.8%200-.3-.4-.4c-1.4-.5-4-.8-6.5-.8s-5%20.3-6.4.8q-.3%200-.4.3%200%20.6%201%20.9c1%20.2%203.5.6%205.8.6'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M134.6%20217.7c2.4%200%205-.4%205.9-.6q1-.3%201-.8%200-.3-.4-.4c-1.4-.5-4-.8-6.5-.8s-5%20.3-6.4.8q-.3%200-.4.3%200%20.6%201%20.9c1%20.2%203.5.6%205.8.6z'/%3e%3cpath%20fill='%23c8b100'%20d='m142.1%20213.2-.5-.5s-.6.3-1.3.2c-.6%200-.9-1-.9-1s-.7.7-1.3.7-1-.6-1-.6-.7.5-1.3.4-1.2-.8-1.2-.8-.6.8-1.2.8c-.6.1-1-.5-1-.5s-.4.6-1.1.7-1.4-.6-1.4-.6-.5.7-1%201c-.5%200-1.2-.4-1.2-.4l-.2.5-.3.1.2.5a27%2027%200%200%201%207.2-.9q4.5%200%207.4%201z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m142.1%20213.2-.5-.5s-.6.3-1.3.2c-.6%200-.9-1-.9-1s-.7.7-1.3.7-1-.6-1-.6-.7.5-1.3.4-1.2-.8-1.2-.8-.6.8-1.2.8c-.6.1-1-.5-1-.5s-.4.6-1.1.7-1.4-.6-1.4-.6-.5.7-1%201c-.5%200-1.2-.4-1.2-.4l-.2.5-.3.1.2.5a27%2027%200%200%201%207.2-.9q4.5%200%207.4%201z'/%3e%3cpath%20fill='%23c8b100'%20d='M134.7%20210.7h.2v.4q0%201%201%201a1%201%200%200%200%201-.7l.2-.3v.4q.3.8%201.1.8%201%200%201-1v-.1l.4-.4.2.5-.1.4a1%201%200%200%200%201%201q.6%200%20.9-.5l.2-.2v.3q0%20.5.4.7l1-.4.7-.7v.4s-.5.8-1%201q-.3.4-.8.3-.5%200-.7-.6-.3.3-.7.2-1%200-1.4-.8-.5.5-1.1.5a2%202%200%200%201-1.2-.6l-1%20.4a2%202%200%200%201-1.3-.6%201.6%201.6%200%200%201-2.4.2%202%202%200%200%201-1.2.6l-1.1-.5q-.4.8-1.4.8l-.7-.2q-.2.5-.7.6t-.9-.2l-1-1%20.1-.5.8.7q.8.5.9.4.4-.1.4-.7v-.3l.2.2q.3.5.9.5a1%201%200%200%200%201-1v-.9l.4.4v.1q.1%201%201%201t1.1-.9v-.3l.2.3q.3.6%201%20.7%201%200%201.1-1v-.3h.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M134.7%20210.7h.2v.4q0%201%201%201a1%201%200%200%200%201-.7l.2-.3v.4q.3.8%201.1.8%201%200%201-1v-.1l.4-.4.2.5-.1.4a1%201%200%200%200%201%201q.6%200%20.9-.5l.2-.2v.3q0%20.5.4.7l1-.4.7-.7v.4s-.5.8-1%201q-.3.4-.8.3-.5%200-.7-.6-.3.3-.7.2-1%200-1.4-.8-.5.5-1.1.5a2%202%200%200%201-1.2-.6l-1%20.4a2%202%200%200%201-1.3-.6%201.6%201.6%200%200%201-2.4.2%202%202%200%200%201-1.2.6l-1.1-.5q-.4.8-1.4.8l-.7-.2q-.2.5-.7.6t-.9-.2l-1-1%20.1-.5.8.7q.8.5.9.4.4-.1.4-.7v-.3l.2.2q.3.5.9.5a1%201%200%200%200%201-1v-.9l.4.4v.1q.1%201%201%201t1.1-.9v-.3l.2.3q.3.6%201%20.7%201%200%201.1-1v-.3h.3z'/%3e%3cpath%20fill='%23c8b100'%20d='M134.6%20213.3q-4.5%200-7.3%201l-.3-.2.1-.3a27%2027%200%200%201%207.5-1q4.6%200%207.6%201l.1.3-.3.2a27%2027%200%200%200-7.4-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.3'%20d='M134.6%20213.3q-4.5%200-7.3%201l-.3-.2.1-.3a27%2027%200%200%201%207.5-1q4.6%200%207.6%201l.1.3-.3.2a27%2027%200%200%200-7.4-1z'/%3e%3cpath%20fill='%23fff'%20d='M131.8%20214.4q0-.4.5-.4a.4.4%200%200%201%20.4.4q0%20.3-.4.4a.4.4%200%200%201-.5-.4'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M131.8%20214.4q0-.4.5-.4a.4.4%200%200%201%20.4.4q0%20.3-.4.4a.4.4%200%200%201-.5-.4z'/%3e%3cpath%20fill='%23ad1519'%20d='M134.7%20214.5h-1q-.2%200-.3-.3l.3-.3h2l.2.3-.3.3h-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M134.7%20214.5h-1q-.2%200-.3-.3l.3-.3h2l.2.3-.3.3h-1'/%3e%3cpath%20fill='%23058e6e'%20d='M130%20214.9h-.7q-.2%200-.3-.2l.2-.3.7-.1.7-.1q.3%200%20.4.2a.3.3%200%200%201-.3.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M130%20214.9h-.7q-.2%200-.3-.2l.2-.3.7-.1.7-.1q.3%200%20.4.2a.3.3%200%200%201-.3.4h-.7'/%3e%3cpath%20fill='%23ad1519'%20d='m127.3%20215.3.3-.4h.7l-.4.6z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m127.3%20215.3.3-.4h.7l-.4.6-.6-.2'/%3e%3cpath%20fill='%23fff'%20d='M136.6%20214.4q0-.4.4-.4a.4.4%200%200%201%20.5.4.4.4%200%200%201-.5.4.4.4%200%200%201-.4-.4'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M136.6%20214.4q0-.4.4-.4a.4.4%200%200%201%20.5.4.4.4%200%200%201-.5.4.4.4%200%200%201-.4-.4z'/%3e%3cpath%20fill='%23058e6e'%20d='M139.3%20214.9h.6a.3.3%200%200%200%20.4-.2l-.3-.3-.6-.1-.7-.1q-.3%200-.4.2%200%20.3.3.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M139.3%20214.9h.6a.3.3%200%200%200%20.4-.2l-.3-.3-.6-.1-.7-.1q-.3%200-.4.2%200%20.3.3.4h.7'/%3e%3cpath%20fill='%23ad1519'%20d='m142%20215.4-.3-.5h-.7l.3.6z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m142%20215.4-.3-.5h-.7l.3.6.6-.1'/%3e%3cpath%20fill='%23ad1519'%20d='M134.6%20217.1a25%2025%200%200%201-6-.6%2026%2026%200%200%201%2012.1%200q-2.5.6-6%20.6'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.3'%20d='M134.6%20217.1a25%2025%200%200%201-6-.6%2026%2026%200%200%201%2012.1%200q-2.5.6-6%20.6z'/%3e%3cpath%20fill='%23c8b100'%20d='m142%20212-.1-.3q-.3%200-.4.2%200%20.4.2.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m142%20212-.1-.3q-.3%200-.4.2%200%20.4.2.4z'/%3e%3cpath%20fill='%23c8b100'%20d='M137.3%20211.2q0-.3-.2-.4l-.2.3q0%20.3.2.4l.3-.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M137.3%20211.2q0-.3-.2-.4l-.2.3q0%20.3.2.4l.3-.3z'/%3e%3cpath%20fill='%23c8b100'%20d='m132%20211.2.1-.4q.3%200%20.3.3t-.2.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m132%20211.2.1-.4q.3%200%20.3.3t-.2.4z'/%3e%3cpath%20fill='%23c8b100'%20d='m127.3%20212%20.1-.3q.3%200%20.4.2%200%20.4-.2.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m127.3%20212%20.1-.3q.3%200%20.4.2%200%20.4-.2.4z'/%3e%3cpath%20fill='%23c8b100'%20d='m134.6%20208.5-.8.5.6%201.3.2.1.2-.1.7-1.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m134.6%20208.5-.8.5.6%201.3.2.1.2-.1.7-1.3-.9-.5'/%3e%3cpath%20fill='%23c8b100'%20d='m132.8%20210.5.4.5%201.3-.4.1-.2-.1-.2-1.3-.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m132.8%20210.5.4.5%201.3-.4.1-.2-.1-.2-1.3-.3-.4.6'/%3e%3cpath%20fill='%23c8b100'%20d='m136.4%20210.5-.3.5-1.3-.4-.2-.2.2-.2%201.3-.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m136.4%20210.5-.3.5-1.3-.4-.2-.2.2-.2%201.3-.3.3.6'/%3e%3cpath%20fill='%23c8b100'%20d='m129.3%20209-.7.7.9%201%20.2.1.1-.1.3-1.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m129.3%20209-.7.7.9%201%20.2.1.1-.1.3-1.3-.8-.3'/%3e%3cpath%20fill='%23c8b100'%20d='m128%20211.2.4.5%201.2-.6v-.2l-.1-.2-1.3-.1-.3.6'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m128%20211.2.4.5%201.2-.6v-.2l-.1-.2-1.3-.1-.3.6'/%3e%3cpath%20fill='%23c8b100'%20d='m131.5%20210.5-.3.6H130l-.2-.2.1-.3%201.2-.6z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m131.5%20210.5-.3.6H130l-.2-.2.1-.3%201.2-.6.5.5'/%3e%3cpath%20fill='%23c8b100'%20d='M126.6%20211.4v.6l-1.4.2-.2-.1v-.2l1-.9z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M126.6%20211.4v.6l-1.4.2-.2-.1v-.2l1-.9.6.4'/%3e%3cpath%20fill='%23c8b100'%20d='M129.2%20210.9q0-.5.5-.5t.5.5l-.5.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M129.2%20210.9q0-.5.5-.5t.5.5l-.5.4z'/%3e%3cpath%20fill='%23c8b100'%20d='m140%20209%20.7.7-.9%201-.2.1-.1-.1-.3-1.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m140%20209%20.7.7-.9%201-.2.1-.1-.1-.3-1.3.8-.3'/%3e%3cpath%20fill='%23c8b100'%20d='m141.4%20211.2-.5.5-1.2-.6v-.2l.1-.2%201.3-.1z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m141.4%20211.2-.5.5-1.2-.6v-.2l.1-.2%201.3-.1.3.6'/%3e%3cpath%20fill='%23c8b100'%20d='m137.8%20210.5.3.6h1.3l.2-.2-.1-.3-1.2-.6z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m137.8%20210.5.3.6h1.3l.2-.2-.1-.3-1.2-.6-.5.5'/%3e%3cpath%20fill='%23c8b100'%20d='m142.5%20211.4.1.6%201.3.2.2-.1v-.2l-1-.9z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m142.5%20211.4.1.6%201.3.2.2-.1v-.2l-1-.9-.6.4'/%3e%3cpath%20fill='%23c8b100'%20d='m134.2%20210.4.4-.4q.5%200%20.5.4l-.5.5z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m134.2%20210.4.4-.4q.5%200%20.5.4l-.5.5z'/%3e%3cpath%20fill='%23c8b100'%20d='M139.1%20210.9q.1-.5.5-.5l.5.5-.5.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M139.1%20210.9q.1-.5.5-.5l.5.5-.5.4z'/%3e%3cpath%20fill='%23c8b100'%20d='m124.8%20212.2-.6-.7c-.2-.2-.7-.3-.7-.3q0-.2.6-.3l.4.2v-.2s.3%200%20.4.3v1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m124.8%20212.2-.6-.7c-.2-.2-.7-.3-.7-.3q0-.2.6-.3l.4.2v-.2s.3%200%20.4.3v1z'/%3e%3cpath%20fill='%23c8b100'%20d='M124.8%20212q.3-.3.5%200t.2.5l-.5-.1q-.3-.2-.2-.5'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M124.8%20212q.3-.3.5%200t.2.5l-.5-.1q-.3-.2-.2-.5z'/%3e%3cpath%20fill='%23c8b100'%20d='m144.3%20212.2.6-.7.7-.3q0-.2-.6-.3l-.4.2v-.2s-.3%200-.4.3v.7z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m144.3%20212.2.6-.7.7-.3q0-.2-.6-.3l-.4.2v-.2s-.3%200-.4.3v.7z'/%3e%3cpath%20fill='%23c8b100'%20d='M144.3%20212q-.1-.3-.5%200-.3.2-.1.5l.5-.1q.3-.2.1-.5'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M144.3%20212q-.1-.3-.5%200-.3.2-.1.5l.5-.1q.3-.2.1-.5z'/%3e%3cpath%20fill='%23c8b100'%20d='M124%20223h21.4v-5.5H124z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M124%20223h21.4v-5.5H124z'/%3e%3cpath%20fill='%23c8b100'%20d='M126.2%20226.8h16.9a1.4%201.4%200%200%201-1-1.2q.1-1%201-1.3h-16.9q1%20.3%201%201.3a1.3%201.3%200%200%201-1%201.2'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.4'%20d='M126.2%20226.8h16.9a1.4%201.4%200%200%201-1-1.2q.1-1%201-1.3h-16.9q1%20.3%201%201.3a1.3%201.3%200%200%201-1%201.2z'/%3e%3cpath%20fill='%23c8b100'%20d='M126.6%20226.8h16q1%200%201%20.7t-1%20.8h-16q-.9-.1-1-.8%200-1%201-.8'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M126.6%20226.8h16q1%200%201%20.7t-1%20.8h-16q-.9-.1-1-.8%200-1%201-.8z'/%3e%3cpath%20fill='%23c8b100'%20d='M126.6%20223h16q1%20.1%201%20.7t-1%20.6h-16q-.9%200-1-.6.1-.5%201-.6'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M126.6%20223h16q1%20.1%201%20.7t-1%20.6h-16q-.9%200-1-.6.1-.5%201-.6z'/%3e%3cpath%20fill='%23005bbf'%20d='M149.6%20317.4q-2.2%200-3.7-.8a8%208%200%200%200-3.8-.8q-2.1%200-3.7.8a8%208%200%200%201-3.8.8q-2.3%200-3.7-.8a8%208%200%200%200-3.7-.8%208%208%200%200%200-3.7.8%208%208%200%200%201-3.8.8v2.4q2.3%200%203.8-.9a8%208%200%200%201%203.7-.8q2.2%200%203.7.8c1.5.8%202.2.9%203.7.9a8%208%200%200%200%203.8-.9q1.6-.8%203.7-.8%202.3%200%203.8.8c1.5.8%202.2.9%203.7.9z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M149.6%20317.4q-2.2%200-3.7-.8a8%208%200%200%200-3.8-.8q-2.1%200-3.7.8a8%208%200%200%201-3.8.8q-2.3%200-3.7-.8a8%208%200%200%200-3.7-.8%208%208%200%200%200-3.7.8%208%208%200%200%201-3.8.8v2.4q2.3%200%203.8-.9a8%208%200%200%201%203.7-.8q2.2%200%203.7.8c1.5.8%202.2.9%203.7.9a8%208%200%200%200%203.8-.9q1.6-.8%203.7-.8%202.3%200%203.8.8c1.5.8%202.2.9%203.7.9z'/%3e%3cpath%20fill='%23ccc'%20d='M149.6%20319.8a8%208%200%200%201-3.7-.9%208%208%200%200%200-3.8-.8q-2.1%200-3.7.8c-1.6.8-2.3.9-3.8.9s-2.8-.4-3.7-.9a8%208%200%200%200-3.7-.8%208%208%200%200%200-3.7.8q-1.5.8-3.8.9v2.3q2.3%200%203.8-.9a8%208%200%200%201%203.7-.7q2.2%200%203.7.7a8%208%200%200%200%207.5%200%209%209%200%200%201%207.5.1%208%208%200%200%200%203.7.8z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M149.6%20319.8a8%208%200%200%201-3.7-.9%208%208%200%200%200-3.8-.8q-2.1%200-3.7.8c-1.6.8-2.3.9-3.8.9s-2.8-.4-3.7-.9a8%208%200%200%200-3.7-.8%208%208%200%200%200-3.7.8q-1.5.8-3.8.9v2.3q2.3%200%203.8-.9a8%208%200%200%201%203.7-.7q2.2%200%203.7.7a8%208%200%200%200%207.5%200%209%209%200%200%201%207.5.1%208%208%200%200%200%203.7.8v-2.3'/%3e%3cpath%20fill='%23005bbf'%20d='M149.6%20322a7%207%200%200%201-3.7-.8%208%208%200%200%200-3.8-.7q-2.1%200-3.7.7-1.5.9-3.8.9c-2.3%200-2.8-.4-3.7-.9a8%208%200%200%200-3.7-.8%208%208%200%200%200-3.7.8q-1.5.8-3.8.9v2.3q2.3%200%203.8-.9a10%2010%200%200%201%207.4%200%207%207%200%200%200%203.7.9%208%208%200%200%200%203.8-.8q1.6-.8%203.7-.8%202.3%200%203.8.8c1.5.8%202.2.8%203.7.8z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M149.6%20322a7%207%200%200%201-3.7-.8%208%208%200%200%200-3.8-.7q-2.1%200-3.7.7-1.5.9-3.8.9c-2.3%200-2.8-.4-3.7-.9a8%208%200%200%200-3.7-.8%208%208%200%200%200-3.7.8q-1.5.8-3.8.9v2.3q2.3%200%203.8-.9a10%2010%200%200%201%207.4%200%207%207%200%200%200%203.7.9%208%208%200%200%200%203.8-.8q1.6-.8%203.7-.8%202.3%200%203.8.8c1.5.8%202.2.8%203.7.8V322'/%3e%3cpath%20fill='%23ccc'%20d='M149.6%20326.7a8%208%200%200%201-3.7-.8q-1.6-.8-3.7-.8a8%208%200%200%200-3.8.8q-1.5.8-3.8.8a7%207%200%200%201-3.7-.9%208%208%200%200%200-3.7-.7q-2.2%200-3.7.8c-1.5.8-2.3.8-3.8.8v-2.3a8%208%200%200%200%203.8-.9%2010%2010%200%200%201%207.4%200%208%208%200%200%200%203.7.9%208%208%200%200%200%203.8-.8q1.5-.8%203.8-.8t3.7.8c1.5.8%202.3.8%203.7.8z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M149.6%20326.7a8%208%200%200%201-3.7-.8q-1.6-.8-3.7-.8a8%208%200%200%200-3.8.8q-1.5.8-3.8.8a7%207%200%200%201-3.7-.9%208%208%200%200%200-3.7-.7q-2.2%200-3.7.8c-1.5.8-2.3.8-3.8.8v-2.3a8%208%200%200%200%203.8-.9%2010%2010%200%200%201%207.4%200%208%208%200%200%200%203.7.9%208%208%200%200%200%203.8-.8q1.5-.8%203.8-.8t3.7.8c1.5.8%202.3.8%203.7.8v2.3'/%3e%3cpath%20fill='%23005bbf'%20d='M149.6%20329a8%208%200%200%201-3.7-.8q-1.6-.8-3.7-.8a8%208%200%200%200-3.8.8q-1.5.8-3.8.8a7%207%200%200%201-3.7-.9%208%208%200%200%200-3.7-.7q-2.2%200-3.7.8c-1.5.8-2.3.8-3.8.8v-2.3a8%208%200%200%200%203.8-.8q1.5-.8%203.7-.8t3.7.7a8%208%200%200%200%207.5%200q1.5-.6%203.8-.7t3.7.8c1.5.8%202.2.8%203.7.8z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M149.6%20329a8%208%200%200%201-3.7-.8q-1.6-.8-3.7-.8a8%208%200%200%200-3.8.8q-1.5.8-3.8.8a7%207%200%200%201-3.7-.9%208%208%200%200%200-3.7-.7q-2.2%200-3.7.8c-1.5.8-2.3.8-3.8.8v-2.3a8%208%200%200%200%203.8-.8q1.5-.8%203.7-.8t3.7.7a8%208%200%200%200%207.5%200q1.5-.6%203.8-.7t3.7.8c1.5.8%202.2.8%203.7.8z'/%3e%3cpath%20fill='%23c8b100'%20d='m126.2%20308%20.2.5c0%201.5-1.3%202.6-2.7%202.6h22a3%203%200%200%201-2.7-2.6v-.5z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.4'%20d='m126.2%20308%20.2.5c0%201.5-1.3%202.6-2.7%202.6h22a3%203%200%200%201-2.7-2.6v-.5z'/%3e%3cpath%20fill='%23c8b100'%20d='M126.6%20306.5h16q1%200%201%20.8%200%20.6-1%20.7h-16q-.9%200-1-.8.1-.6%201-.7'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M126.6%20306.5h16q1%200%201%20.8%200%20.6-1%20.7h-16q-.9%200-1-.8.1-.6%201-.7z'/%3e%3cpath%20fill='%23c8b100'%20d='M123.7%20316.7h22V311h-22z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M123.7%20316.7h22V311h-22z'/%3e%3cpath%20fill='%23ad1519'%20d='M122%20286.7c-2.2%201.2-3.7%202.5-3.4%203.2q.2.8%201.8%201.6c1.5%201.1%202.5%203%201.7%204a5.5%205.5%200%200%200-.1-8.8'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M122%20286.7c-2.2%201.2-3.7%202.5-3.4%203.2q.2.8%201.8%201.6c1.5%201.1%202.5%203%201.7%204a5.5%205.5%200%200%200-.1-8.8z'/%3e%3cpath%20fill='%23ccc'%20d='M126.8%20305.6h15.6V229h-15.6v76.5z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M138%20229.2v76.3m1.7-76.3v76.3m-12.9%200h15.6v-76.4h-15.6v76.5z'/%3e%3cpath%20fill='%23ad1519'%20d='M158.4%20257.7a50%2050%200%200%200-23.3-2c-9.4%201.6-16.5%205.3-15.9%208.4v.2l-3.5-8.2c-.6-3.3%207.2-7.5%2017.6-9.2a43%2043%200%200%201%209.2-.7c6.6%200%2012.4.8%2015.8%202.1v9.4'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.4'%20d='M158.4%20257.7a50%2050%200%200%200-23.3-2c-9.4%201.6-16.5%205.3-15.9%208.4v.2l-3.5-8.2c-.6-3.3%207.2-7.5%2017.6-9.2a43%2043%200%200%201%209.2-.7c6.6%200%2012.4.8%2015.8%202.1v9.4'/%3e%3cpath%20fill='%23ad1519'%20d='M126.8%20267.3c-4.3-.3-7.3-1.4-7.6-3.2q-.3-2.2%203.8-4.5l3.8.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M126.8%20267.3c-4.3-.3-7.3-1.4-7.6-3.2q-.3-2.2%203.8-4.5l3.8.3v7.4'/%3e%3cpath%20fill='%23ad1519'%20d='M142.5%20261.5q4.1.6%205.7%201.9l.1.2c.5%201-1.9%203-5.9%205.4v-7.5'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M142.5%20261.5q4.1.6%205.7%201.9l.1.2c.5%201-1.9%203-5.9%205.4v-7.5'/%3e%3cpath%20fill='%23ad1519'%20d='M117.1%20282c-.4-1.2%203.8-3.6%209.8-5.8l7.8-3.2c8.3-3.7%2014.4-7.9%2013.6-9.4v-.2c.4.4%201%208%201%208%20.8%201.3-4.8%205.5-12.4%209.1-2.5%201.2-7.6%203-10%204-4.4%201.4-8.7%204.3-8.3%205.3l-1.5-7.7'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.4'%20d='M117.1%20282c-.4-1.2%203.8-3.6%209.8-5.8l7.8-3.2c8.3-3.7%2014.4-7.9%2013.6-9.4v-.2c.4.4%201%208%201%208%20.8%201.3-4.8%205.5-12.4%209.1-2.5%201.2-7.6%203-10%204-4.4%201.4-8.7%204.3-8.3%205.3l-1.5-7.7z'/%3e%3cpath%20fill='%23c8b100'%20d='M125.8%20254c1.9-.6%203.1-1.5%202.5-3q-.6-1.3-2.8-.6l-2.6%201%202.3%205.8.8-.3.8-.3zm-1.2-2.7.7-.3q1-.3%201.4.8.4.8-.5%201.5l-.6.3zm7.3-2.5-.9.3h-.8l1.3%206.1%204.3-.8-.2-.4v-.4l-2.5.6zm8.4%205.2q1.2-3.3%202.7-6.4h-1l-1.8%204.6-2.4-4.3-1%20.1h-1l3.5%206zm8.8-4.7.4-.9a3%203%200%200%200-1.7-.6q-2.6%200-2.8%201.7c-.2%202.1%203.2%202%203%203.4q-.2%201-1.4.8-1.3%200-1.4-1.2h-.3l-.4%201.1a4%204%200%200%200%201.8.6q2.7.2%203.2-1.7c.2-2-3.3-2.1-3.1-3.4q0-.8%201.3-.7%201%200%201.2.9z'/%3e%3cpath%20fill='%23ad1519'%20d='M277.9%20211.6s-.7.8-1.3.9c-.5%200-1.1-.5-1.1-.5s-.5.5-1%20.6-1.4-.6-1.4-.6l-1%201-1.1-.3c-.1-.1-.3.4-.7.6h-.4l-.6-.4-.7-.7-.5-.3-.4-1v-.5q0-1%202.2-1.7a4%204%200%200%201%202%200q.9-.8%203-.8c2.1%200%202.4.3%203%20.7a6%206%200%200%201%202.9-.7q2.1%200%203%20.8.8-.3%202%200%202.2.6%202.2%201.7v.5l-.4%201-.6.3-.6.7-.6.3s-.3.2-.4%200q-.6-.3-.7-.5c-.1-.2-.6.4-1%20.2s-1-1-1-1-.9.8-1.4.7c-.6-.1-1-.6-1-.6s-.7.6-1.2.5-1.2-.9-1.2-.9'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M277.9%20211.6s-.7.8-1.3.9c-.5%200-1.1-.5-1.1-.5s-.5.5-1%20.6-1.4-.6-1.4-.6l-1%201-1.1-.3c-.1-.1-.3.4-.7.6h-.4l-.6-.4-.7-.7-.5-.3-.4-1v-.5q0-1%202.2-1.7a4%204%200%200%201%202%200q.9-.8%203-.8c2.1%200%202.4.3%203%20.7a6%206%200%200%201%202.9-.7q2.1%200%203%20.8.8-.3%202%200%202.2.6%202.2%201.7v.5l-.4%201-.6.3-.6.7-.6.3s-.3.2-.4%200q-.6-.3-.7-.5c-.1-.2-.6.4-1%20.2s-1-1-1-1-.9.8-1.4.7c-.6-.1-1-.6-1-.6s-.7.6-1.2.5-1.2-.9-1.2-.9z'/%3e%3cpath%20fill='%23c8b100'%20d='M276.5%20207.6c0-1%20.6-2%201.3-2s1.3%201%201.3%202-.5%201.8-1.3%201.8q-1.2-.1-1.3-1.9'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M276.5%20207.6c0-1%20.6-2%201.3-2s1.3%201%201.3%202-.5%201.8-1.3%201.8q-1.2-.1-1.3-1.9z'/%3e%3cpath%20fill='%23c8b100'%20d='M277.3%20207.6q0-1.7.5-1.8.6.2.7%201.8c.1%201.6-.3%201.7-.6%201.7q-.6-.2-.6-1.8'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M277.3%20207.6q0-1.7.5-1.8.6.2.7%201.8c.1%201.6-.3%201.7-.6%201.7q-.6-.2-.6-1.8z'/%3e%3cpath%20fill='%23c8b100'%20d='m271%20215.3-.5-1a27%2027%200%200%201%2014.8%200l-.6.8-.3.8a23%2023%200%200%200-6.6-.8c-2.6%200-5.2.3-6.6.8z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m271%20215.3-.5-1a27%2027%200%200%201%2014.8%200l-.6.8-.3.8a23%2023%200%200%200-6.6-.8c-2.6%200-5.2.3-6.6.8l-.2-.6'/%3e%3cpath%20fill='%23c8b100'%20d='M277.8%20217.7c2.4%200%205-.4%205.9-.6q1-.3%201-.8%200-.3-.4-.4a24%2024%200%200%200-6.5-.8c-2.5%200-5%20.3-6.4.8q-.3%200-.4.3%200%20.6%201%20.9c1%20.2%203.5.6%205.8.6'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M277.8%20217.7c2.4%200%205-.4%205.9-.6q1-.3%201-.8%200-.3-.4-.4a24%2024%200%200%200-6.5-.8c-2.5%200-5%20.3-6.4.8q-.3%200-.4.3%200%20.6%201%20.9c1%20.2%203.5.6%205.8.6z'/%3e%3cpath%20fill='%23fff'%20d='M283.5%20208.4q0-.3.4-.4.5%200%20.5.4t-.5.4a.4.4%200%200%201-.4-.4'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.2'%20d='M283.5%20208.4q0-.3.4-.4.5%200%20.5.4t-.5.4a.4.4%200%200%201-.4-.4zm-.2-1.4a.4.4%200%200%201%20.4-.4q.4%200%20.4.4t-.4.4a.4.4%200%200%201-.4-.4zm-1.1-1q0-.3.4-.3t.4.4-.4.4a.4.4%200%200%201-.4-.5zm-1.4-.4q0-.3.4-.4.5%200%20.5.4t-.4.4q-.5-.1-.5-.4zm-1.4%200q0-.3.5-.3t.4.4q0%20.3-.4.4a.4.4%200%200%201-.5-.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linecap='round'%20stroke-width='.3'%20d='m287.8%20211.2.2-1a2.7%202.7%200%200%200-2.7-2.8q-.8%200-1.3.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m283%20209.2.2-.8q-.2-1.8-2.5-2-1%200-1.6.4'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.2'%20d='M288.2%20210q0-.5.4-.5t.4.4-.4.4q-.5%200-.4-.4zm-.2-1.6q0-.3.4-.4a.4.4%200%200%201%20.5.4q0%20.3-.4.4-.5%200-.5-.4zm-1-1.1a.4.4%200%200%201%20.5-.4q.3%200%20.4.4a.4.4%200%200%201-.4.4.4.4%200%200%201-.5-.4zm-1.3-.7q0-.4.5-.4t.4.4q0%20.5-.4.5a.4.4%200%200%201-.5-.5zm-1.4.1q0-.3.5-.4.6%200%20.4.4t-.4.4q-.4-.1-.5-.4z'/%3e%3cpath%20fill='%23c8b100'%20d='m285.3%20213.2-.5-.5s-.6.3-1.3.2c-.6%200-.9-1-.9-1s-.7.7-1.3.7-1-.6-1-.6-.7.5-1.3.4-1.2-.8-1.2-.8-.6.8-1.2.8c-.6.1-1-.5-1-.5s-.3.6-1.1.7-1.4-.6-1.4-.6-.4.7-1%201c-.5%200-1.2-.4-1.2-.4l-.1.5-.3.1.1.5a27%2027%200%200%201%207.3-.9q4.3%200%207.3%201l.2-.6'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m285.3%20213.2-.5-.5s-.6.3-1.3.2c-.6%200-.9-1-.9-1s-.7.7-1.3.7-1-.6-1-.6-.7.5-1.3.4-1.2-.8-1.2-.8-.6.8-1.2.8c-.6.1-1-.5-1-.5s-.3.6-1.1.7-1.4-.6-1.4-.6-.4.7-1%201c-.5%200-1.2-.4-1.2-.4l-.1.5-.3.1.1.5a27%2027%200%200%201%207.3-.9q4.3%200%207.3%201l.2-.6z'/%3e%3cpath%20fill='%23fff'%20d='M271.3%20208.4q0-.3.4-.4.5%200%20.4.4a.4.4%200%200%201-.4.4.4.4%200%200%201-.4-.4'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.2'%20d='M271.3%20208.4q0-.3.4-.4.5%200%20.4.4a.4.4%200%200%201-.4.4.4.4%200%200%201-.4-.4zm.2-1.4q0-.4.4-.4t.5.4q0%20.5-.5.4a.4.4%200%200%201-.4-.4zm1-1q.1-.3.5-.3t.5.4q0%20.3-.5.4a.4.4%200%200%201-.4-.5zm1.4-.4q0-.3.5-.4.6%200%20.4.4t-.4.4q-.4-.1-.5-.4zm1.4%200q0-.3.5-.3.3%200%20.4.4%200%20.3-.4.4a.4.4%200%200%201-.5-.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linecap='round'%20stroke-width='.3'%20d='m267.8%20211.2-.2-1a2.7%202.7%200%200%201%202.7-2.8q.8%200%201.4.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m272.7%20209.2-.3-.8c0-1%201.2-2%202.6-2a3%203%200%200%201%201.5.4'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.2'%20d='M266.6%20210q0-.5.4-.5t.4.4a.4.4%200%200%201-.4.4q-.3%200-.4-.4zm.1-1.6q.1-.3.5-.4.5%200%20.4.4t-.4.4q-.4-.1-.4-.4zm1-1.1q0-.4.5-.4a.4.4%200%200%201%20.4.4.4.4%200%200%201-.4.4.4.4%200%200%201-.5-.4zm1.3-.7q0-.4.5-.4.3%200%20.4.4%200%20.5-.4.5a.4.4%200%200%201-.5-.5zm1.4.1q0-.3.5-.4a.4.4%200%200%201%20.4.4.4.4%200%200%201-.4.4q-.5%200-.5-.4z'/%3e%3cpath%20fill='%23c8b100'%20d='M277.9%20210.7h.2v.4q.1%201%201%201a1%201%200%200%200%201-.7l.2-.3v.4q.3.8%201.1.8%201%200%201-1v-.1l.4-.4.2.5-.1.4a1%201%200%200%200%201%201q.6%200%20.9-.5l.2-.2v.3q0%20.5.4.7l1-.4c1-.5.7-.7.7-.7v.4s-.5.8-1%201q-.3.4-.8.3-.5%200-.7-.6l-.7.2q-1%200-1.4-.8l-1.1.5q-.8%200-1.2-.6l-1%20.4q-.9%200-1.4-.6-.4.6-1.2.6-.6%200-1-.4a2%202%200%200%201-1.3.6q-.6%200-1.1-.5-.4.8-1.4.8-.4%200-.7-.2-.2.5-.7.6t-.9-.2l-1-1%20.1-.5.8.7q.8.5.9.4.4-.1.4-.7v-.3l.2.2q.3.5.9.5a1%201%200%200%200%201-1v-.9l.4.4v.1q.1%201%201%201t1.1-.9v-.3l.2.3q.4.6%201%20.7%201%200%201.1-1v-.3h.2'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M277.9%20210.7h.2v.4q.1%201%201%201a1%201%200%200%200%201-.7l.2-.3v.4q.3.8%201.1.8%201%200%201-1v-.1l.4-.4.2.5-.1.4a1%201%200%200%200%201%201q.6%200%20.9-.5l.2-.2v.3q0%20.5.4.7l1-.4c1-.5.7-.7.7-.7v.4s-.5.8-1%201q-.3.4-.8.3-.5%200-.7-.6l-.7.2q-1%200-1.4-.8l-1.1.5q-.8%200-1.2-.6l-1%20.4q-.9%200-1.4-.6-.4.6-1.2.6-.6%200-1-.4a2%202%200%200%201-1.3.6q-.6%200-1.1-.5-.4.8-1.4.8-.4%200-.7-.2-.2.5-.7.6t-.9-.2l-1-1%20.1-.5.8.7q.8.5.9.4.4-.1.4-.7v-.3l.2.2q.3.5.9.5a1%201%200%200%200%201-1v-.9l.4.4v.1q.1%201%201%201t1.1-.9v-.3l.2.3q.4.6%201%20.7%201%200%201.1-1v-.3h.2z'/%3e%3cpath%20fill='%23c8b100'%20d='M277.8%20213.3q-4.5%200-7.3%201l-.3-.2.1-.3q3-1%207.5-1t7.6%201l.1.3-.3.2a27%2027%200%200%200-7.4-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M277.8%20213.3q-4.5%200-7.3%201l-.3-.2.1-.3q3-1%207.5-1t7.6%201l.1.3-.3.2a27%2027%200%200%200-7.4-1z'/%3e%3cpath%20fill='%23fff'%20d='M275%20214.4q0-.4.5-.4a.4.4%200%200%201%20.4.4.4.4%200%200%201-.4.4q-.5%200-.5-.4'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M275%20214.4q0-.4.5-.4a.4.4%200%200%201%20.4.4.4.4%200%200%201-.4.4q-.5%200-.5-.4z'/%3e%3cpath%20fill='%23ad1519'%20d='M277.9%20214.5h-1q-.2%200-.3-.3l.3-.3h2l.2.3-.3.3h-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M277.9%20214.5h-1q-.2%200-.3-.3l.3-.3h2l.2.3-.3.3h-1'/%3e%3cpath%20fill='%23058e6e'%20d='M273.2%20214.9h-.6a.3.3%200%200%201-.4-.2l.3-.3.6-.1.7-.1q.3%200%20.4.2a.3.3%200%200%201-.3.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M273.2%20214.9h-.6a.3.3%200%200%201-.4-.2l.3-.3.6-.1.7-.1q.3%200%20.4.2a.3.3%200%200%201-.3.4h-.7'/%3e%3cpath%20fill='%23ad1519'%20d='m270.5%20215.3.3-.4h.7l-.4.6z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m270.5%20215.3.3-.4h.7l-.4.6-.6-.2'/%3e%3cpath%20fill='%23fff'%20d='M279.8%20214.4q0-.4.4-.4t.5.4q0%20.3-.5.4a.4.4%200%200%201-.4-.4'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M279.8%20214.4q0-.4.4-.4t.5.4q0%20.3-.5.4a.4.4%200%200%201-.4-.4z'/%3e%3cpath%20fill='%23058e6e'%20d='M282.5%20214.9h.7l.3-.2-.2-.3-.7-.1-.7-.1q-.3%200-.4.2%200%20.3.3.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M282.5%20214.9h.7l.3-.2-.2-.3-.7-.1-.7-.1q-.3%200-.4.2%200%20.3.3.4h.7'/%3e%3cpath%20fill='%23ad1519'%20d='m285.1%20215.4-.2-.5h-.7l.3.6z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m285.1%20215.4-.2-.5h-.7l.3.6.6-.1'/%3e%3cpath%20fill='%23ad1519'%20d='M277.8%20217.1a25%2025%200%200%201-6-.6%2025%2025%200%200%201%206-.7q3.6%200%206.1.7-2.5.6-6%20.6'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.3'%20d='M277.8%20217.1a25%2025%200%200%201-6-.6%2025%2025%200%200%201%206-.7q3.6%200%206.1.7-2.5.6-6%20.6z'/%3e%3cpath%20fill='%23c8b100'%20d='m285.2%20212-.1-.3q-.3%200-.4.2l.1.4q.3%200%20.4-.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m285.2%20212-.1-.3q-.3%200-.4.2l.1.4q.3%200%20.4-.3z'/%3e%3cpath%20fill='%23c8b100'%20d='M280.6%20211.2q0-.3-.3-.4l-.2.3q0%20.3.2.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M280.6%20211.2q0-.3-.3-.4l-.2.3q0%20.3.2.4z'/%3e%3cpath%20fill='%23c8b100'%20d='M275.2%20211.2q0-.3.2-.4l.3.3-.2.4q-.3%200-.3-.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M275.2%20211.2q0-.3.2-.4l.3.3-.2.4q-.3%200-.3-.3z'/%3e%3cpath%20fill='%23c8b100'%20d='m270.5%20212%20.1-.3q.3%200%20.4.2l-.1.4q-.3%200-.4-.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m270.5%20212%20.1-.3q.3%200%20.4.2l-.1.4q-.3%200-.4-.3z'/%3e%3cpath%20fill='%23c8b100'%20d='m277.8%20208.5-.8.5.6%201.3.2.1.3-.1.6-1.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m277.8%20208.5-.8.5.6%201.3.2.1.3-.1.6-1.3-.9-.5'/%3e%3cpath%20fill='%23c8b100'%20d='m276%20210.5.4.5%201.3-.4.1-.2-.1-.2-1.3-.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m276%20210.5.4.5%201.3-.4.1-.2-.1-.2-1.3-.3-.4.6'/%3e%3cpath%20fill='%23c8b100'%20d='m279.6%20210.5-.3.5-1.3-.4-.1-.2v-.2l1.4-.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m279.6%20210.5-.3.5-1.3-.4-.1-.2v-.2l1.4-.3.4.6'/%3e%3cpath%20fill='%23c8b100'%20d='m272.5%20209-.7.7.9%201%20.2.1.2-.1.2-1.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m272.5%20209-.7.7.9%201%20.2.1.2-.1.2-1.3-.8-.3'/%3e%3cpath%20fill='%23c8b100'%20d='m271.1%20211.2.5.5%201.2-.6v-.2l-.1-.2-1.3-.1z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m271.1%20211.2.5.5%201.2-.6v-.2l-.1-.2-1.3-.1-.3.6'/%3e%3cpath%20fill='%23c8b100'%20d='m274.7%20210.5-.3.6h-1.3l-.2-.2.1-.3%201.2-.6z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m274.7%20210.5-.3.6h-1.3l-.2-.2.1-.3%201.2-.6.5.5'/%3e%3cpath%20fill='%23c8b100'%20d='M269.8%20211.4v.6l-1.4.2-.2-.1v-.2l1-.9z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M269.8%20211.4v.6l-1.4.2-.2-.1v-.2l1-.9.6.4'/%3e%3cpath%20fill='%23c8b100'%20d='M272.4%20210.9q0-.5.5-.5l.5.5-.5.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M272.4%20210.9q0-.5.5-.5l.5.5-.5.4z'/%3e%3cpath%20fill='%23c8b100'%20d='m283.2%20209%20.7.7-.9%201-.2.1-.1-.1-.3-1.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m283.2%20209%20.7.7-.9%201-.2.1-.1-.1-.3-1.3.8-.3'/%3e%3cpath%20fill='%23c8b100'%20d='m284.6%20211.2-.5.5-1.2-.6v-.2l.1-.2%201.3-.1z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m284.6%20211.2-.5.5-1.2-.6v-.2l.1-.2%201.3-.1.3.6'/%3e%3cpath%20fill='%23c8b100'%20d='m281%20210.5.3.6h1.3l.2-.2-.1-.3-1.2-.6z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m281%20210.5.3.6h1.3l.2-.2-.1-.3-1.2-.6-.5.5'/%3e%3cpath%20fill='%23c8b100'%20d='M285.7%20211.4v.6l1.4.2.2-.1v-.2l-1-.9z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M285.7%20211.4v.6l1.4.2.2-.1v-.2l-1-.9-.6.4'/%3e%3cpath%20fill='%23c8b100'%20d='M277.4%20210.4q0-.3.5-.4.4%200%20.4.4t-.4.5z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M277.4%20210.4q0-.3.5-.4.4%200%20.4.4t-.4.5z'/%3e%3cpath%20fill='%23c8b100'%20d='M282.3%20210.9q.1-.5.5-.5t.5.5q0%20.6-.5.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M282.3%20210.9q.1-.5.5-.5t.5.5q0%20.6-.5.4z'/%3e%3cpath%20fill='%23c8b100'%20d='M277%20205.4q.1-.8.8-.8%201%200%201%20.8c0%20.8-.5.8-1%20.8a1%201%200%200%201-.8-.8'/%3e%3cpath%20fill='%23c8b100'%20d='M278.5%20205.1v.6H277v-.6h.4v-1.3h-.5v-.5h.5v-.6h.6v.6h.6v.6h-.6v1.2h.4'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M278.5%20205.1v.6H277v-.6h.4v-1.3h-.5v-.5h.5v-.6h.6v.6h.6v.6h-.6v1.2h.4z'/%3e%3cpath%20fill='%23c8b100'%20d='M279%20205.1v.6h-2.4v-.6h1v-1.3h-.7v-.5h.6v-.6h.6v.6h.6v.6h-.6v1.2h1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M278.1%20204.6q.6.1.6.8t-.9.8a1%201%200%200%201-.8-.8q0-.6.6-.8'/%3e%3cpath%20fill='%23c8b100'%20d='m268%20212.2-.6-.7-.7-.3q0-.2.6-.3.3%200%20.4.2v-.2s.3%200%20.4.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m268%20212.2-.6-.7-.7-.3q0-.2.6-.3.3%200%20.4.2v-.2s.3%200%20.4.3z'/%3e%3cpath%20fill='%23c8b100'%20d='M268%20212q.3-.3.5%200%20.4.2.1.5l-.5-.1q-.2-.2%200-.5'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M268%20212q.3-.3.5%200%20.4.2.1.5l-.5-.1q-.2-.2%200-.5z'/%3e%3cpath%20fill='%23c8b100'%20d='m287.5%20212.2.6-.7c.2-.2.7-.3.7-.3q0-.2-.6-.3l-.4.2v-.2s-.3%200-.4.3v.7z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m287.5%20212.2.6-.7c.2-.2.7-.3.7-.3q0-.2-.6-.3l-.4.2v-.2s-.3%200-.4.3v.7z'/%3e%3cpath%20fill='%23c8b100'%20d='M287.5%20212q-.2-.3-.5%200t-.1.5l.5-.1q.3-.2.1-.5'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M287.5%20212q-.2-.3-.5%200t-.1.5l.5-.1q.3-.2.1-.5z'/%3e%3cpath%20fill='%23c8b100'%20d='M267.2%20223h21.4v-5.5h-21.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M267.2%20223h21.4v-5.5h-21.4z'/%3e%3cpath%20fill='%23c8b100'%20d='M286.3%20226.8h-16.9q1-.4%201-1.2%200-1-1-1.3h17-.1q-1%20.3-1%201.3%200%20.8%201%201.2'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.4'%20d='M286.3%20226.8h-16.9q1-.4%201-1.2%200-1-1-1.3h17-.1q-1%20.3-1%201.3%200%20.8%201%201.2z'/%3e%3cpath%20fill='%23c8b100'%20d='M269.9%20226.8h16q1%200%201%20.7t-1%20.8h-16q-1-.1-1-.8.1-1%201-.8'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M269.9%20226.8h16q1%200%201%20.7t-1%20.8h-16q-1-.1-1-.8.1-1%201-.8z'/%3e%3cpath%20fill='%23c8b100'%20d='M269.9%20223h16q1%20.1%201%20.7t-1%20.6h-16q-1%200-1-.6t1-.6'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M269.9%20223h16q1%20.1%201%20.7t-1%20.6h-16q-1%200-1-.6t1-.6z'/%3e%3cpath%20fill='%23005bbf'%20d='M263%20317.4q2.1%200%203.7-.8a8%208%200%200%201%203.7-.8q2.2%200%203.8.8c1.6.8%202.3.8%203.7.8q2.3%200%203.8-.8a8%208%200%200%201%203.6-.8%208%208%200%200%201%203.7.8q1.6.8%203.8.8v2.4a8%208%200%200%201-3.8-.9%208%208%200%200%200-3.7-.8q-2.2%200-3.6.8-1.5.8-3.8.9a8%208%200%200%201-3.7-.9%208%208%200%200%200-3.8-.8%208%208%200%200%200-3.7.8q-1.5.8-3.8.9v-2.4'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M263%20317.4q2.1%200%203.7-.8a8%208%200%200%201%203.7-.8q2.2%200%203.8.8c1.6.8%202.3.8%203.7.8q2.3%200%203.8-.8a8%208%200%200%201%203.6-.8%208%208%200%200%201%203.7.8q1.6.8%203.8.8v2.4a8%208%200%200%201-3.8-.9%208%208%200%200%200-3.7-.8q-2.2%200-3.6.8-1.5.8-3.8.9a8%208%200%200%201-3.7-.9%208%208%200%200%200-3.8-.8%208%208%200%200%200-3.7.8q-1.5.8-3.8.9v-2.4z'/%3e%3cpath%20fill='%23ccc'%20d='M263%20319.8q2.1%200%203.7-.9c1.6-.9%202.3-.8%203.7-.8q2.2%200%203.8.8c1.6.8%202.3.9%203.7.9a8%208%200%200%200%203.8-.9%208%208%200%200%201%203.6-.8q2.3%200%203.7.8%201.6.8%203.8.9v2.3a8%208%200%200%201-3.8-.9%208%208%200%200%200-3.7-.7q-2.2%200-3.6.7-1.5.8-3.8.9a7%207%200%200%201-3.7-.9q-1.5-.6-3.8-.7a8%208%200%200%200-3.7.7%208%208%200%200%201-3.8.9v-2.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M263%20319.8q2.1%200%203.7-.9c1.6-.9%202.3-.8%203.7-.8q2.2%200%203.8.8c1.6.8%202.3.9%203.7.9a8%208%200%200%200%203.8-.9%208%208%200%200%201%203.6-.8q2.3%200%203.7.8%201.6.8%203.8.9v2.3a8%208%200%200%201-3.8-.9%208%208%200%200%200-3.7-.7q-2.2%200-3.6.7-1.5.8-3.8.9a7%207%200%200%201-3.7-.9q-1.5-.6-3.8-.7a8%208%200%200%200-3.7.7%208%208%200%200%201-3.8.9v-2.3'/%3e%3cpath%20fill='%23005bbf'%20d='M263%20322q2.1%200%203.7-.8%201.6-.6%203.7-.7%202.2%200%203.8.7c1.6.7%202.3.9%203.7.9a8%208%200%200%200%203.8-.9%208%208%200%200%201%203.6-.8%208%208%200%200%201%203.7.8q1.6.8%203.8.9v2.3a8%208%200%200%201-3.8-.9%208%208%200%200%200-3.7-.7q-2.2%200-3.6.7-1.5.9-3.8.9t-3.7-.8a8%208%200%200%200-3.8-.8%208%208%200%200%200-3.7.8q-1.5.8-3.8.8V322'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M263%20322q2.1%200%203.7-.8%201.6-.6%203.7-.7%202.2%200%203.8.7c1.6.7%202.3.9%203.7.9a8%208%200%200%200%203.8-.9%208%208%200%200%201%203.6-.8%208%208%200%200%201%203.7.8q1.6.8%203.8.9v2.3a8%208%200%200%201-3.8-.9%208%208%200%200%200-3.7-.7q-2.2%200-3.6.7-1.5.9-3.8.9t-3.7-.8a8%208%200%200%200-3.8-.8%208%208%200%200%200-3.7.8q-1.5.8-3.8.8V322'/%3e%3cpath%20fill='%23ccc'%20d='M263%20326.7a8%208%200%200%200%203.7-.8q1.6-.8%203.7-.8%202.2%200%203.8.8c1.6.8%202.3.8%203.7.8q2.3%200%203.8-.9a8%208%200%200%201%203.6-.7q2.3%200%203.7.8a8%208%200%200%200%203.8.8v-2.3a8%208%200%200%201-3.8-.9%208%208%200%200%200-3.7-.7q-2.2%200-3.6.7-1.5.8-3.8.9t-3.7-.8a8%208%200%200%200-3.8-.8%208%208%200%200%200-3.7.8q-1.5.8-3.8.8v2.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M263%20326.7a8%208%200%200%200%203.7-.8q1.6-.8%203.7-.8%202.2%200%203.8.8c1.6.8%202.3.8%203.7.8q2.3%200%203.8-.9a8%208%200%200%201%203.6-.7q2.3%200%203.7.8a8%208%200%200%200%203.8.8v-2.3a8%208%200%200%201-3.8-.9%208%208%200%200%200-3.7-.7q-2.2%200-3.6.7-1.5.8-3.8.9t-3.7-.8a8%208%200%200%200-3.8-.8%208%208%200%200%200-3.7.8q-1.5.8-3.8.8v2.3'/%3e%3cpath%20fill='%23005bbf'%20d='M263%20329a8%208%200%200%200%203.7-.8q1.6-.8%203.7-.8%202.2%200%203.8.8c1.6.8%202.3.8%203.7.8a8%208%200%200%200%203.8-.9%208%208%200%200%201%203.6-.7q2.3%200%203.7.8%201.6.8%203.8.8v-2.3a8%208%200%200%201-3.8-.8%208%208%200%200%200-3.7-.8%208%208%200%200%200-3.6.7%208%208%200%200%201-3.8.9q-2.2%200-3.7-.8t-3.8-.8q-2.1%200-3.7.8c-1.6.8-2.3.8-3.8.8v2.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M263%20329a8%208%200%200%200%203.7-.8q1.6-.8%203.7-.8%202.2%200%203.8.8c1.6.8%202.3.8%203.7.8a8%208%200%200%200%203.8-.9%208%208%200%200%201%203.6-.7q2.3%200%203.7.8%201.6.8%203.8.8v-2.3a8%208%200%200%201-3.8-.8%208%208%200%200%200-3.7-.8%208%208%200%200%200-3.6.7%208%208%200%200%201-3.8.9q-2.2%200-3.7-.8t-3.8-.8q-2.1%200-3.7.8c-1.6.8-2.3.8-3.8.8v2.3z'/%3e%3cpath%20fill='%23c8b100'%20d='m286.3%20308-.1.5c0%201.5%201.2%202.6%202.7%202.6h-22c1.5%200%202.7-1.2%202.7-2.6l-.1-.5z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.4'%20d='m286.3%20308-.1.5c0%201.5%201.2%202.6%202.7%202.6h-22c1.5%200%202.7-1.2%202.7-2.6l-.1-.5z'/%3e%3cpath%20fill='%23c8b100'%20d='M269.9%20306.5h16q1%200%201%20.8%200%20.6-1%20.7h-16q-1%200-1-.8.1-.6%201-.7'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M269.9%20306.5h16q1%200%201%20.8%200%20.6-1%20.7h-16q-1%200-1-.8.1-.6%201-.7z'/%3e%3cpath%20fill='%23c8b100'%20d='M266.9%20316.7h22V311h-22z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M266.9%20316.7h22V311h-22z'/%3e%3cpath%20fill='%23ad1519'%20d='M290.6%20286.7c2.1%201.2%203.6%202.5%203.4%203.2q-.2.8-1.8%201.6c-1.6%201.1-2.5%203-1.8%204a5.5%205.5%200%200%201%20.2-8.8'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M290.6%20286.7c2.1%201.2%203.6%202.5%203.4%203.2q-.2.8-1.8%201.6c-1.6%201.1-2.5%203-1.8%204a5.5%205.5%200%200%201%20.2-8.8z'/%3e%3cpath%20fill='%23ccc'%20d='M270.1%20305.6h15.6V229h-15.6v76.5z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M281.4%20229.1v76.3m1.8-76.3v76.3m-13%20.2h15.5V229h-15.6v76.5z'/%3e%3cpath%20fill='%23ad1519'%20d='M254.2%20257.7a50%2050%200%200%201%2023.3-2c9.3%201.6%2016.4%205.3%2015.9%208.4v.2l3.5-8.2c.6-3.3-7.3-7.5-17.6-9.2a54%2054%200%200%200-9.2-.7c-6.7%200-12.4.8-15.9%202.1z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.4'%20d='M254.2%20257.7a50%2050%200%200%201%2023.3-2c9.3%201.6%2016.4%205.3%2015.9%208.4v.2l3.5-8.2c.6-3.3-7.3-7.5-17.6-9.2a54%2054%200%200%200-9.2-.7c-6.7%200-12.4.8-15.9%202.1v9.4'/%3e%3cpath%20fill='%23ad1519'%20d='M285.7%20267.3c4.4-.3%207.3-1.4%207.7-3.2q.2-2.2-3.8-4.5l-3.9.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M285.7%20267.3c4.4-.3%207.3-1.4%207.7-3.2q.2-2.2-3.8-4.5l-3.9.3v7.4'/%3e%3cpath%20fill='%23ad1519'%20d='M270%20261.5a13%2013%200%200%200-5.7%201.9v.2c-.5%201%201.8%203%205.8%205.4v-7.5'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M270%20261.5a13%2013%200%200%200-5.7%201.9v.2c-.5%201%201.8%203%205.8%205.4v-7.5'/%3e%3cpath%20fill='%23ad1519'%20d='M295.4%20282c.4-1.2-3.8-3.6-9.7-5.8-2.8-1-5-2-7.8-3.2-8.3-3.7-14.4-7.9-13.6-9.4v-.2c-.4.4-1%208-1%208-.8%201.3%204.8%205.5%2012.4%209.1%202.4%201.2%207.6%203%2010%204%204.3%201.4%208.7%204.3%208.3%205.3l1.4-7.7'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.4'%20d='M295.4%20282c.4-1.2-3.8-3.6-9.7-5.8-2.8-1-5-2-7.8-3.2-8.3-3.7-14.4-7.9-13.6-9.4v-.2c-.4.4-1%208-1%208-.8%201.3%204.8%205.5%2012.4%209.1%202.4%201.2%207.6%203%2010%204%204.3%201.4%208.7%204.3%208.3%205.3l1.4-7.7z'/%3e%3cpath%20fill='%23c8b100'%20d='m263.9%20254.4%202.1-6.6h-.5l-.5.1-1.4%204.8q-1.6-2-2.7-4.1l-1%20.2h-1l4%205.7h.5zm6-6.6h-1.8v6.2h4.2v-.7h-2.6zm6.8%201%202%20.3v-.7l-5.8-.5v.8h2l-.4%205.6h1.6l.5-5.4m2.4%206%20.8.2.8.2.7-2.9.6%201.2.8%202.1%201%20.2q.6%200%201%20.3l-.3-.7-1.3-2.9q1.6%200%202.1-1.2.3-.8-.7-1.5-.8-.4-1.7-.5l-2.4-.5zm3-5.2c.7.2%201.5.3%201.5%201v.5q-.5%201.3-2%20.9zm8%207-.2%202%20.8.5.9.5.5-7-.7-.3-6.1%203.8.5.3.4.2%201.7-1.2%202.3%201.3zm-1.7-1.5%202-1.4-.2%202.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.1'%20d='M182.2%20192.4c0-1%201-2%202-2s2.2%201%202.2%202c0%201.1-1%202-2.1%202a2%202%200%200%201-2.1-2z'/%3e%3cpath%20fill='%23ad1519'%20stroke='%23000'%20stroke-width='.3'%20d='M205.7%20175.4c6.3%200%2012%201%2015.7%202.4a32%2032%200%200%200%2014.6%202.3c2.7%200%206.5.8%2010.3%202.4a27%2027%200%200%201%207.4%204.7l-1.5%201.4-.4%203.8-4.1%204.7-2%201.8-5%203.9-2.5.2-.7%202.1-31.6-3.7-31.7%203.7-.8-2.1-2.5-.2-4.9-4-2-1.7-4.1-4.7-.5-3.8-1.5-1.4a28%2028%200%200%201%207.5-4.7%2026%2026%200%200%201%2010.2-2.4q3%20.3%206.6-.2a30%2030%200%200%200%208-2q5.6-2.4%2015.5-2.5z'/%3e%3cpath%20fill='%23c8b100'%20stroke='%23000'%20stroke-width='.4'%20d='M206.2%20217.1c-11.8%200-22.4-1.4-29.9-3.6a1%201%200%200%201-.8-1.2q0-.8.8-1.2a109%20109%200%200%201%2029.9-3.6c11.7%200%2022.3%201.4%2029.8%203.6a1.3%201.3%200%200%201%200%202.4c-7.5%202.2-18%203.6-29.8%203.6'/%3e%3cpath%20fill='%23ad1519'%20d='M206.1%20215.6c-10.6%200-20.2-1.2-27.5-3.1%207.3-2%2016.9-3%2027.5-3.1a115%20115%200%200%201%2027.6%203c-7.3%202-17%203.2-27.6%203.2'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.1'%20d='M206.9%20215.7v-6.3m-1.7%206.3v-6.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.2'%20d='M203.6%20215.7v-6.3m-1.6%206.3v-6.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M200.6%20215.7v-6.3m-2.8%205.9v-5.7m1.3%205.8v-6m-3.8%205.6v-5.2m1.3%205.4v-5.6'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M192%20214.8V210m1%204.7V210m1.2%205v-5m-3.4%204.7v-4.5'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.5'%20d='M189.7%20214.5v-4.2m-1.2%204.1v-4'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.6'%20d='M186%20214v-3m1.3%203.2v-3.5m-2.5%203.1V211'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.7'%20d='M183.7%20213.6v-2.3m-1.3%202v-1.8m-1.2%201.6v-1.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.9'%20d='M179.8%20212.8v-.7'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.1'%20d='M213.7%20215.3v-5.8m-2.9%206v-6.1m-2.1%206.2v-6.3'/%3e%3cpath%20fill='%23c8b100'%20stroke='%23000'%20stroke-width='.4'%20d='M206%20207.4a108%20108%200%200%200-30%203.9c.6-.3.5-1-.3-3-1-2.5-2.4-2.4-2.4-2.4%208.3-2.5%2020-4%2032.8-4a123%20123%200%200%201%2033%204s-1.5-.1-2.5%202.3q-1.2%202.8-.2%203c-7.5-2.2-18.4-3.7-30.3-3.7'/%3e%3cpath%20fill='%23c8b100'%20stroke='%23000'%20stroke-width='.4'%20d='M206.1%20201.9c-12.9%200-24.5%201.5-32.8%204a1%201%200%200%201-1.3-.6%201%201%200%200%201%20.7-1.3%20121%20121%200%200%201%2033.4-4.2c13.2%200%2025.2%201.7%2033.5%204.2q1%20.4.7%201.3t-1.3.6c-8.4-2.5-20-4-32.9-4'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.4'%20d='M206.1%20215.6c-10.6%200-20.2-1.2-27.5-3.1%207.3-2%2016.9-3%2027.5-3.1a115%20115%200%200%201%2027.6%203c-7.3%202-17%203.2-27.6%203.2z'/%3e%3cpath%20fill='%23fff'%20stroke='%23000'%20stroke-width='.4'%20d='M197%20204.8q0-.9%201-1%20.9.1%201%201%200%201.2-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='%23ad1519'%20stroke='%23000'%20stroke-width='.4'%20d='M206.1%20205.6H203a1%201%200%200%201%200-2h6.4q.9.1%201%201%200%201.2-1%201h-3.2'/%3e%3cpath%20fill='%23058e6e'%20stroke='%23000'%20stroke-width='.4'%20d='m190.3%20206.5-2.3.2q-.9%200-1.2-.8a1%201%200%200%201%201-1.1l2.2-.3%202.4-.3q.9%200%201.1.9%200%20.9-.9%201l-2.3.4'/%3e%3cpath%20fill='%23fff'%20stroke='%23000'%20stroke-width='.4'%20d='M181%20206.7q.1-1%201.1-1t1%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='%23ad1519'%20stroke='%23000'%20stroke-width='.4'%20d='m174%20208.5%201.2-1.6%203.3.4-2.6%202-1.8-.8'/%3e%3cpath%20fill='%23058e6e'%20stroke='%23000'%20stroke-width='.4'%20d='m222%20206.5%202.3.2q.9%200%201.1-.8a1%201%200%200%200-.9-1.1l-2.2-.3-2.4-.3a1%201%200%200%200-1.1.9q0%20.9.9%201l2.3.4'/%3e%3cpath%20fill='%23fff'%20stroke='%23000'%20stroke-width='.4'%20d='M213.3%20204.8q0-.9%201-1c1-.1%201%20.5%201%201s-.4%201-1%201a1%201%200%200%201-1-1m15.8%201.9q.1-1%201-1t1.1%201q0%20.9-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='%23ad1519'%20stroke='%23000'%20stroke-width='.4'%20d='m238.2%20208.5-1.1-1.6-3.3.4%202.6%202%201.8-.8'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M177.3%20212.8c7.4-2.1%2017.6-3.4%2028.8-3.4%2011.3%200%2021.4%201.3%2028.9%203.4'/%3e%3cpath%20fill='%23c8b100'%20d='m182.3%20183.8%201.4%201%202-3.2a7%207%200%200%201-3.6-7.2c.2-4.1%205.2-7.6%2011.7-7.6q5%20.1%208.5%202.4l.2-1.8a17%2017%200%200%200-8.7-2.1c-7.4%200-13.2%204.1-13.5%209.1a9%209%200%200%200%203%207.6z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='m182.3%20183.8%201.4%201%202-3.2a7%207%200%200%201-3.6-7.2c.2-4.1%205.2-7.6%2011.7-7.6q5%20.1%208.5%202.4l.2-1.8a17%2017%200%200%200-8.7-2.1c-7.4%200-13.2%204.1-13.5%209.1a9%209%200%200%200%203%207.6l-1%201.8'/%3e%3cpath%20fill='%23c8b100'%20d='M182.4%20183.8a9%209%200%200%201-4-7.3q.2-5%205.3-8a9%209%200%200%200-3.4%206.8%209%209%200%200%200%203%206.7z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M182.4%20183.8a9%209%200%200%201-4-7.3q.2-5%205.3-8a9%209%200%200%200-3.4%206.8%209%209%200%200%200%203%206.7l-.9%201.8'/%3e%3cpath%20fill='%23c8b100'%20d='M160.1%20187.1a9%209%200%200%201-2.3-5.9q0-2%201-3.8c2-4.2%208.4-7.2%2016-7.2q3%200%205.9.6l-1%201.4a26%2026%200%200%200-4.9-.4c-7%200-12.8%202.7-14.5%206.3a7%207%200%200%200-.7%203.1%207%207%200%200%200%202.7%205.6l-2.6%204.1-1.3-1z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M160.1%20187.1a9%209%200%200%201-2.3-5.9q0-2%201-3.8c2-4.2%208.4-7.2%2016-7.2q3%200%205.9.6l-1%201.4a26%2026%200%200%200-4.9-.4c-7%200-12.8%202.7-14.5%206.3a7%207%200%200%200-.7%203.1%207%207%200%200%200%202.7%205.6l-2.6%204.1-1.3-1z'/%3e%3cpath%20fill='%23c8b100'%20d='M162.7%20173.3a11%2011%200%200%200-4%204.1%209%209%200%200%200-.9%203.8q.1%203.5%202.3%205.9l-1.5%202.5a10%2010%200%200%201-2.3-6.5c0-4%202.5-7.5%206.4-9.8'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M162.7%20173.3a11%2011%200%200%200-4%204.1%209%209%200%200%200-.9%203.8q.1%203.5%202.3%205.9l-1.5%202.5a10%2010%200%200%201-2.3-6.5c0-4%202.5-7.5%206.4-9.8z'/%3e%3cpath%20fill='%23c8b100'%20d='M206%20164.4c1.7%200%203.2%201.1%203.5%202.6q.4%202.1.4%204.5v1.1c.1%203.3.6%206.3%201.3%208.1l-5.2%205-5.2-5c.7-1.8%201.2-4.8%201.3-8.1v-1.1q0-2.4.4-4.5c.3-1.5%201.8-2.6%203.5-2.6'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M206%20164.4c1.7%200%203.2%201.1%203.5%202.6q.4%202.1.4%204.5v1.1c.1%203.3.6%206.3%201.3%208.1l-5.2%205-5.2-5c.7-1.8%201.2-4.8%201.3-8.1v-1.1q0-2.4.4-4.5c.3-1.5%201.8-2.6%203.5-2.6z'/%3e%3cpath%20fill='%23c8b100'%20d='M206%20166q1.6.1%201.8%201.4.3%201.8.4%204.2v1q.2%205%201.2%207.7l-3.4%203.2-3.4-3.2q1-2.7%201.2-7.7v-1l.4-4.2a2%202%200%200%201%201.8-1.4'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M206%20166q1.6.1%201.8%201.4.3%201.8.4%204.2v1q.2%205%201.2%207.7l-3.4%203.2-3.4-3.2q1-2.7%201.2-7.7v-1l.4-4.2a2%202%200%200%201%201.8-1.4z'/%3e%3cpath%20fill='%23c8b100'%20d='m229.7%20183.8-1.3%201-2-3.2a7%207%200%200%200%203.6-6.3v-.9c-.2-4.1-5.3-7.6-11.7-7.6a15%2015%200%200%200-8.5%202.4l-.2-1.8a17%2017%200%200%201%208.7-2.1c7.4%200%2013.2%204.1%2013.4%209.1a9%209%200%200%201-3%207.6z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='m229.7%20183.8-1.3%201-2-3.2a7%207%200%200%200%203.6-6.3v-.9c-.2-4.1-5.3-7.6-11.7-7.6a15%2015%200%200%200-8.5%202.4l-.2-1.8a17%2017%200%200%201%208.7-2.1c7.4%200%2013.2%204.1%2013.4%209.1a9%209%200%200%201-3%207.6l1%201.8'/%3e%3cpath%20fill='%23c8b100'%20d='M229.6%20183.8a9%209%200%200%200%204.1-7.3c0-3.2-2.1-6.1-5.3-8a9%209%200%200%201%203.4%206.8%209%209%200%200%201-3.2%206.7z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M229.6%20183.8a9%209%200%200%200%204.1-7.3c0-3.2-2.1-6.1-5.3-8a9%209%200%200%201%203.4%206.8%209%209%200%200%201-3.2%206.7l1%201.8'/%3e%3cpath%20fill='%23c8b100'%20d='M252%20187.1a9%209%200%200%200%202.2-5.9%209%209%200%200%200-.9-3.8c-2-4.2-8.4-7.2-16-7.2a29%2029%200%200%200-6%20.6l1%201.4a25%2025%200%200%201%205-.4c7%200%2012.8%202.7%2014.4%206.3q.7%201.5.7%203.1a7%207%200%200%201-2.6%205.6l2.5%204.1%201.3-1z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M252%20187.1a9%209%200%200%200%202.2-5.9%209%209%200%200%200-.9-3.8c-2-4.2-8.4-7.2-16-7.2a29%2029%200%200%200-6%20.6l1%201.4a25%2025%200%200%201%205-.4c7%200%2012.8%202.7%2014.4%206.3q.7%201.5.7%203.1a7%207%200%200%201-2.6%205.6l2.5%204.1%201.3-1z'/%3e%3cpath%20fill='%23c8b100'%20d='M249.3%20173.3a11%2011%200%200%201%204%204.1%209%209%200%200%201%20.9%203.8%209%209%200%200%201-2.3%205.9l1.6%202.5a10%2010%200%200%200%202.3-6.5c0-4-2.6-7.5-6.5-9.8'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M249.3%20173.3a11%2011%200%200%201%204%204.1%209%209%200%200%201%20.9%203.8%209%209%200%200%201-2.3%205.9l1.6%202.5a10%2010%200%200%200%202.3-6.5c0-4-2.6-7.5-6.5-9.8z'/%3e%3cpath%20fill='%23fff'%20d='M204.2%20181.4q.1-1.7%201.8-1.8c1.7-.1%201.9.8%201.9%201.8s-.9%201.7-1.9%201.7a2%202%200%200%201-1.8-1.7'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M204.2%20181.4q.1-1.7%201.8-1.8c1.7-.1%201.9.8%201.9%201.8s-.9%201.7-1.9%201.7a2%202%200%200%201-1.8-1.7z'/%3e%3cpath%20fill='%23fff'%20stroke='%23000'%20stroke-width='.4'%20d='M204.2%20178q.1-1.7%201.8-1.8c1.7-.1%201.9.8%201.9%201.8s-.9%201.7-1.9%201.7a2%202%200%200%201-1.8-1.7m.4-3.7q.1-1.2%201.4-1.3%201.4.1%201.5%201.3-.1%201.3-1.5%201.4c-1.4.1-1.4-.6-1.4-1.4m.4-3.3q0-.9%201-1c1-.1%201%20.5%201%201s-.4%201-1%201a1%201%200%200%201-1-1m.2-2.8q.1-.8.8-.8t.9.8q0%20.7-.9.8a1%201%200%200%201-.8-.8'/%3e%3cpath%20fill='%23c8b100'%20stroke='%23000'%20stroke-width='.4'%20d='m206.2%20191.8%201.2.2a4.6%204.6%200%200%200%204.5%206%205%205%200%200%200%204.4-3c.1%200%20.5-1.7.7-1.7s.1%201.8.2%201.7c.3%202.3%202.4%203.8%204.7%203.8a4.6%204.6%200%200%200%204.7-5l1.5-1.5.7%202a4%204%200%200%200-.4%201.9%204.4%204.4%200%200%200%204.5%204.2q2.5%200%203.8-1.9l.9-1.2v1.5c0%201.5.6%202.8%202%203%200%200%201.7.1%204-1.6%202.1-1.7%203.3-3.1%203.3-3.1l.2%201.7s-1.8%202.8-3.8%204c-1%20.6-2.7%201.3-4%201q-2.1-.5-3-2.6a7%207%200%200%201-3.3%201%207%207%200%200%201-6.1-3.7%207%207%200%200%201-10.4-.3%207%207%200%200%201-4.6%201.8%207%207%200%200%201-5.7-3%207%207%200%200%201-5.7%203%207%207%200%200%201-4.7-1.8%207%207%200%200%201-10.4.3%207%207%200%200%201-6%203.7%207%207%200%200%201-3.4-1q-.8%202.1-3%202.7c-1.2.2-2.9-.5-4-1.1-2-1.2-3.8-4-3.8-4l.2-1.7s1.2%201.4%203.4%203.1%203.9%201.6%203.9%201.6c1.4-.2%202-1.5%202-3v-1.5l1%201.2a5%205%200%200%200%203.7%202c2.5%200%204.5-2%204.5-4.3a4%204%200%200%200-.4-2l.8-1.9%201.5%201.5v.6c0%202.4%202%204.4%204.6%204.4%202.4%200%204.4-1.5%204.7-3.8%200%200%200-1.6.2-1.7s.6%201.7.7%201.6a5%205%200%200%200%204.5%203.1%204.6%204.6%200%200%200%204.5-6l1.2-.2'/%3e%3cpath%20fill='%23fff'%20stroke='%23000'%20stroke-width='.4'%20d='M238.6%20197.7q.4-1.4-.6-1.8-.9-.2-1.5%201.1-.4%201.4.6%201.8.9.2%201.5-1.1m-20.5-4c0-.8-.3-1.6-1-1.6q-.8%200-1.2%201.4%200%201.3.9%201.6%201-.1%201.3-1.4m-23.9%200c0-.8.4-1.6%201-1.6q1%200%201.2%201.4%200%201.3-.9%201.6-1-.1-1.2-1.4m-20.6%204q-.3-1.4.6-1.8%201-.2%201.5%201.1t-.5%201.8q-1%20.2-1.6-1.1'/%3e%3cpath%20fill='%23c8b100'%20stroke='%23000'%20stroke-width='.4'%20d='M182.7%20184a5%205%200%200%201%202.2%202.9s0-.3.6-.6%201-.3%201-.3l-.1%201.3-.3%202.2-.7%201.6a2%202%200%200%200-1.5-.4%202%202%200%200%200-1.2.9s-.7-.6-1.2-1.3l-1.1-2-.7-1.1s.5-.2%201.1%200q.9.1.8.2a5%205%200%200%201%201-3.4m.4%209.8-.6-1q0-.7.3-1.2s-.9-.5-1.8-.7c-.7-.2-2-.2-2.3-.2h-1l.2.5.5.7a5%205%200%200%200-3%202%205%205%200%200%200%203.5%201l-.2.8v.6l1-.4c.3-.1%201.5-.5%202-1%20.8-.4%201.5-1.1%201.5-1.1m2.7-.5.2-1.1-.6-1%201.4-1.3%202-.9%201.1-.4v.6l-.2.8a5%205%200%200%201%203.4%201%205%205%200%200%201-2.9%202l.7%201.2h-1c-.4%200-1.6%200-2.3-.2l-1.8-.7'/%3e%3cpath%20fill='%23ad1519'%20stroke='%23000'%20stroke-width='.4'%20d='M182.2%20192.4c0-1%201-2%202-2s2.2%201%202.2%202c0%201.1-1%202-2.1%202a2%202%200%200%201-2.1-2'/%3e%3cpath%20fill='%23c8b100'%20stroke='%23000'%20stroke-width='.4'%20d='M206.1%20180.8a6%206%200%200%201%201.9%203.7s.2-.3.9-.5q1.1-.3%201.2-.2l-.5%201.4-.8%202.4-1%201.7a2%202%200%200%200-1.7-.7q-1%200-1.6.7-.2-.1-1-1.7l-.8-2.4-.5-1.4%201.2.2q1%20.4.9.5.2-2.2%201.8-3.7'/%3e%3cpath%20fill='%23c8b100'%20stroke='%23000'%20stroke-width='.4'%20d='M204.6%20191.8a2%202%200%200%201-.5-1.2q0-.8.4-1.3s-.8-.7-1.8-1c-.7-.4-2-.7-2.5-.7l-1.2-.2.2.6.4.9a6%206%200%200%200-3.7%201.7q1.6%201.5%203.7%201.6l-.4%201-.2.6%201.2-.2c.4-.1%201.8-.4%202.5-.7%201-.4%201.9-1%201.9-1m3%200a2%202%200%200%200%20.1-2.6s.9-.7%201.8-1a8%208%200%200%201%202.5-.7l1.2-.3-.1.7-.4.9q2.2.2%203.6%201.7a6%206%200%200%201-3.6%201.6l.5%201.6-1.2-.2-2.5-.7c-1-.4-1.8-1-1.8-1m22-8a5%205%200%200%200-2.2%203l-.7-.6-1-.3.2%201.3c0%20.3%200%201.3.3%202.2q.4%201.6.6%201.6a2%202%200%200%201%201.5-.4q.9.2%201.3.9l1.1-1.3q1-1.4%201.1-2l.7-1.1s-.4-.2-1%200l-1%20.2a5%205%200%200%200-1-3.4m-.3%209.8q.5-.4.6-1l-.2-1.2s.8-.5%201.7-.7c.7-.2%202-.2%202.3-.2h1.1l-.3.5-.4.7a5%205%200%200%201%202.9%202%205%205%200%200%201-3.5%201l.2.8v.6l-1-.4c-.3-.1-1.4-.5-2-1-.8-.4-1.4-1.1-1.4-1.1m-2.8-.5-.2-1.1q0-.7.6-1s-.6-.8-1.4-1.3c-.6-.4-1.7-.8-2-.9l-1-.4v.6l.2.8a5%205%200%200%200-3.5%201q1%201.4%203%202l-.5.7-.3.5h1c.4%200%201.7%200%202.3-.2l1.8-.7'/%3e%3cpath%20fill='%23ad1519'%20stroke='%23000'%20stroke-width='.4'%20d='M226%20192.4c0-1%201-2%202-2s2.1%201%202.1%202a2%202%200%200%201-2%202%202%202%200%200%201-2.1-2m23.2%204.4c-.4-.5-1.4-.4-2.2.2q-1.2%201.2-.5%202.2%201%20.8%202.3-.3c.7-.6%201-1.6.5-2'/%3e%3cpath%20fill='%23c8b100'%20stroke='%23000'%20stroke-width='.4'%20d='m246.3%20198%20.7-1c.7-.6%201.8-.7%202.3-.2l.1.2s1-2%202.3-2.6%203.4-.5%203.4-.5a3%203%200%200%200-2.9-2.8%203%203%200%200%200-2.4%201l-.2-1s-1.3.3-1.9%201.8%200%203.6%200%203.6-.3-.9-.7-1.5a8%208%200%200%200-2.4-1.6l-1.3-.7-.1.5v.8a8%208%200%200%200-3.7.5%205%205%200%200%200%202.5%202.2l-.8.7-.4.5%201.3.2%202.5.2%201.7-.2m-80.3%200q0-.6-.7-1c-.7-.7-1.7-.8-2.2-.3l-.2.3s-1-2-2.3-2.7-3.3-.5-3.3-.5a3%203%200%200%201%202.8-2.8q1.6%200%202.4%201l.2-1s1.3.3%202%201.8c.5%201.5-.1%203.6-.1%203.6s.3-.9.8-1.5a8%208%200%200%201%202.4-1.6l1.3-.7v1.3a8%208%200%200%201%203.7.5%205%205%200%200%201-2.5%202.2l.8.7.4.5-1.2.2-2.6.2-1.7-.2'/%3e%3cpath%20fill='%23ad1519'%20stroke='%23000'%20stroke-width='.4'%20d='M163%20196.8q1-.7%202.4.3%201.2%201%20.4%202c-.5.6-1.5.5-2.2-.2s-1-1.6-.5-2m41-6.3q.2-1.8%202-2c1.8-.2%202.1.9%202.1%202%200%201-1%202-2%202a2%202%200%200%201-2.1-2'/%3e%3cpath%20fill='%23005bbf'%20stroke='%23000'%20stroke-width='.3'%20d='M201.8%20160.6c0-2.2%201.9-4%204.3-4s4.2%201.8%204.2%204-1.9%204-4.3%204a4%204%200%200%201-4.2-4'/%3e%3cpath%20fill='%23c8b100'%20stroke='%23000'%20stroke-width='.3'%20d='M205%20149.3v2.2h-2.4v2.2h2.3v6.3H202l-.2.6q0%20.9.3%201.6h7.9q.3-.7.3-1.6l-.2-.6h-2.8v-6.3h2.3v-2.2h-2.3v-2.2z'/%3e%3cpath%20fill='%23ccc'%20d='M206.5%20330.6a82%2082%200%200%201-35.5-8.2%2023%2023%200%200%201-12.8-20.4v-32h96.4v32a23%2023%200%200%201-12.8%2020.4%2081%2081%200%200%201-35.3%208.2'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.5'%20d='M206.5%20330.6a82%2082%200%200%201-35.5-8.2%2023%2023%200%200%201-12.8-20.4v-32h96.4v32a23%2023%200%200%201-12.8%2020.4%2081%2081%200%200%201-35.3%208.2z'/%3e%3cpath%20fill='%23ccc'%20d='M206.3%20270h48.3v-53.5h-48.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.5'%20d='M206.3%20270h48.3v-53.5h-48.3z'/%3e%3cpath%20fill='%23ad1519'%20d='M206.3%20302c0%2012.6-10.7%2022.9-24%2022.9s-24.2-10.3-24.2-23v-32h48.2v32'/%3e%3cpath%20fill='%23c8b100'%20stroke='%23000'%20stroke-width='.5'%20d='M168.6%20320.9c1.5.8%203.6%202%205.8%202.6l-.1-54.7h-5.7z'/%3e%3cpath%20fill='%23c8b100'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.5'%20d='M158%20301.6a24%2024%200%200%200%205.5%2015v-47.5h-5.4z'/%3e%3cpath%20fill='%23c7b500'%20stroke='%23000'%20stroke-width='.5'%20d='M179.4%20324.7a27%2027%200%200%200%205.6%200v-55.9h-5.6v56z'/%3e%3cpath%20fill='%23c8b100'%20stroke='%23000'%20stroke-width='.5'%20d='M190%20323.5a19%2019%200%200%200%205.8-2.5v-52.2H190z'/%3e%3cpath%20fill='%23ad1519'%20d='M158.1%20270h48.2v-53.5H158z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.5'%20d='M158.1%20270h48.2v-53.5H158z'/%3e%3cpath%20fill='%23c8b100'%20stroke='%23000'%20stroke-width='.5'%20d='M201%20316c2.4-2%204.6-6.8%205.4-12.2l.1-35H201l.1%2047.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.5'%20d='M206.3%20302c0%2012.6-10.7%2022.9-24%2022.9s-24.2-10.3-24.2-23v-32h48.2v32'/%3e%3cpath%20fill='%23ad1519'%20d='M254.6%20270v32c0%2012.6-10.8%2022.9-24.1%2022.9s-24.2-10.3-24.2-23v-32h48.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.5'%20d='M254.6%20270v32c0%2012.6-10.8%2022.9-24.1%2022.9s-24.2-10.3-24.2-23v-32h48.3'/%3e%3cpath%20fill='%23c8b100'%20d='m215.1%20294.1.1.5q-.1%201-1.1%201a1%201%200%200%201-1.1-1v-.5h-1.5a2.5%202.5%200%200%200%201.8%202.9v3.9h1.6V297a3%203%200%200%200%201.7-1.6h4.4v-1.2zm21.8%200v1.2h-4l-.3.6%204.6%205.2-1.2%201-4.6-5.3-.2.1v8.7h-1.6V297h-.2l-4.8%205.2-1.2-1%204.7-5.3-.2-.4h-4V294h13zm2.6%200v1.2h4.4q.5%201.2%201.7%201.6v3.9h1.6V297a3%203%200%200%200%201.8-2.4v-.5h-1.6l.1.5q-.1%201-1%201-1.1%200-1.2-1l.1-.5zm-6.7%2022.1a16%2016%200%200%200%203.7-1l.8%201.4a18%2018%200%200%201-4.3%201.2%203%203%200%200%201-2.6%202%203%203%200%200%201-2.5-2%2018%2018%200%200%201-4.6-1.2l.8-1.4q2%20.8%204%201a3%203%200%200%201%201.5-1.3v-6.7h1.6v6.7q1.1.3%201.6%201.4zm-11-2.2-.8%201.4a17%2017%200%200%201-3.6-3.1q-1.4.3-2.5-.5a2.4%202.4%200%200%201-.3-3.5l.1-.1a15%2015%200%200%201-1.3-4.8h1.7a13%2013%200%200%200%201%204q.8%200%201.4.2l4.1-4.5%201.3%201-4.1%204.5q.8%201.5-.1%202.8a15%2015%200%200%200%203.1%202.6m-6-4.8q.6-.7%201.5%200c.9.7.5%201%20.1%201.4a1%201%200%200%201-1.6.1%201%201%200%200%201%200-1.5m-2.2-4.5-1.6-.3-.3-4.3%201.7-.6v2.5q0%201.4.2%202.7m1.4-5.3%201.7.4v2.2c0-.8.3%202.1.3%202.1l-1.7.6-.3-2.7zm5.6%2013.7a16%2016%200%200%200%204.8%202.6l.4-1.6a14%2014%200%200%201-4-2zm-.8%201.4a17%2017%200%200%200%204.8%202.6l-1.2%201.1a19%2019%200%200%201-4-2zm2.2-9.4%201.6.7%203-3.3-1-1.4zm-1.3-1-1-1.4%203-3.3%201.6.7zm18.1%209.9.8%201.4a17%2017%200%200%200%203.6-3.1q1.4.3%202.5-.5a2.4%202.4%200%200%200%20.3-3.5l-.1-.1a15%2015%200%200%200%201.3-4.8h-1.7a13%2013%200%200%201-1%204l-1.4.2-4.1-4.5-1.3%201%204.1%204.5a2.4%202.4%200%200%200%20.1%202.8%2015%2015%200%200%201-3.1%202.6m6-4.8a1%201%200%200%200-1.5%200%201%201%200%200%200-.1%201.4%201%201%200%200%200%201.6.1%201%201%200%200%200%200-1.5m2.2-4.5%201.6-.3.3-4.3-1.7-.6v2.5q0%201.5-.2%202.8zm-1.4-5.3-1.7.4v2.2c0-.8-.3%202.1-.3%202.1l1.7.6.3-2.7zm-5.6%2013.7a16%2016%200%200%201-4.8%202.6l-.4-1.6a14%2014%200%200%200%204-2zm.8%201.4a17%2017%200%200%201-4.8%202.6l1.2%201.1a19%2019%200%200%200%204-2zm-2.2-9.4-1.6.7-2.9-3.3%201-1.4zm1.3-1%201-1.4-3-3.3-1.6.7zm-20.1-8.7.5%201.6h4.5l.5-1.6zm21.1%200-.5%201.6h-4.5l-.5-1.6zm-11.6%2021.9q.1-1%201.1-1a1%201%200%200%201%201.1%201q-.1%201-1%201a1%201%200%200%201-1.2-1m1.9-7.8%201.7-.4v-4.3l-1.7-.5zm-1.6%200-1.7-.4v-4.3l1.7-.5z'/%3e%3cpath%20fill='%23c8b100'%20d='M211.5%20294.2q.4-1.5%201.8-2V287h1.6v5.3q1.3.5%201.7%201.6h4.4v.3h-6a1%201%200%200%200-1-.6q-.6%200-1%20.6zm12.2%200v-.3h4.1l.2-.3-5-5.7%201.2-1%205%205.6.2-.1V285h1.6v7.3h.3l4.9-5.5%201.2%201-4.9%205.5.3.6h4v.3zm21.6%200a1%201%200%200%201%201-.6q.7%200%201%20.6h1.6q-.4-1.5-1.8-2V287h-1.6v5.3q-1.2.4-1.7%201.6h-4.4v.3zm-30.2-15%206%206.8%201.3-1-6.1-6.7.3-.6h4.4V276h-4.4a3%203%200%200%200-2.5-1.7%202.6%202.6%200%200%200-2.7%202.5%203%203%200%200%200%201.8%202.4v5.2h1.6v-5.2zm32%200v5.3h-1.7v-5.2l-.4-.2-6%206.8-1.3-1%206.2-6.9-.1-.3h-4.5V276h4.5a3%203%200%200%201%202.4-1.7%202.6%202.6%200%200%201%202.7%202.5%202.5%202.5%200%200%201-1.9%202.4zm-16.1%200v3.3h-1.7v-3.2a3%203%200%200%201-1.7-1.6h-4V276h4a3%203%200%200%201%202.5-1.7q2%20.1%202.5%201.7h4v1.6h-4a3%203%200%200%201-1.6%201.6m-17.8%204-1.7.4v4.3l1.7.5zm1.6%200%201.7.4v4.3l-1.7.5zm30.6%200-1.7.4v4.3l1.7.5zm1.6%200%201.7.4v4.3l-1.7.5zm-25.5.8%201.6-.7%202.9%203.3-1%201.4zm-1.3%201-1%201.4%203%203.3%201.6-.7zm18.5-1.1-1.6-.7-3%203.3%201%201.4zm1.2%201%201%201.4-3%203.3-1.5-.7zm-20.3%209%20.5-1.6h4.5l.5%201.6zm-6.7-17q0-1%201.2-1a1%201%200%200%201%201%201q0%201-1%201a1%201%200%200%201-1.2-1m12.1.8-.5%201.6H220l-.5-1.6zm0-1.6-.5-1.6H220l-.5%201.6zm15.7%2017.8-.5-1.6h-4.5l-.5%201.6zm4.4-17q.1-1%201.1-1a1%201%200%200%201%201.1%201q-.1%201-1%201a1%201%200%200%201-1.2-1m-16.1%200q.1-1%201.1-1a1%201%200%200%201%201.1%201q-.1%201-1.1%201a1%201%200%200%201-1.1-1m6.2.8.5%201.6h4.6l.5-1.6zm0-1.6.5-1.6h4.6l.5%201.6zm-5.9%205-1.7.5v4.3l1.7.5V281m1.7%200%201.6.5v4.3l-1.6.5z'/%3e%3cpath%20fill='none'%20stroke='%23c8b100'%20stroke-width='.3'%20d='M232.7%20316.3a16%2016%200%200%200%203.7-1.1l.8%201.4a18%2018%200%200%201-4.3%201.2%203%203%200%200%201-2.6%202%203%203%200%200%201-2.5-2%2018%2018%200%200%201-4.6-1.2l.8-1.4q2%20.8%204%201a3%203%200%200%201%201.5-1.3v-6.7h1.6v6.7q1.1.3%201.6%201.4zm-4.7-20.4-.2-.5h-4V294h4l.2-.4-5-5.6%201.2-1%205%205.5h.2V285h1.7v7.3h.2l4.9-5.5%201.2%201-4.9%205.5.3.6h4v1.5h-4q0%20.3-.3.5l4.7%205.3-1.3%201-4.6-5.3-.2.1v8.7h-1.6V297l-.2-.1-4.8%205.3-1.2-1%204.7-5.3m-12.8-16.7%206%206.8%201.3-1-6.1-6.7.3-.6h4.4V276h-4.4a3%203%200%200%200-2.5-1.7%202.6%202.6%200%200%200-2.6%202.5%203%203%200%200%200%201.7%202.4v5.2h1.6v-5.2zm6.5%2034.8-.8%201.4a17%2017%200%200%201-3.6-3.1q-1.4.3-2.5-.5a2.4%202.4%200%200%201-.3-3.5l.1-.1a15%2015%200%200%201-1.2-4.8h1.6a13%2013%200%200%200%201%204q.8%200%201.4.2l4.1-4.5%201.3%201-4.1%204.5q.8%201.5-.1%202.8a15%2015%200%200%200%203.1%202.6zm-8.4-13.1V297a3%203%200%200%201-1.8-2.4q.2-1.6%201.8-2.4V287h1.6v5.3q1.3.4%201.7%201.6h4.4v1.5h-4.4a3%203%200%200%201-1.6%201.6v3.9h-1.7m2.3%208.3q.7-.7%201.6%200c.9.7.5%201%20.1%201.4a1%201%200%200%201-1.6.1%201%201%200%200%201%200-1.5zm-2-4.5-1.7-.3-.3-4.3%201.7-.6v2.5q0%201.4.3%202.7zm1.4-5.3%201.6.4v2.2c0-.8.3%202.1.3%202.1l-1.7.6-.3-2.7v-2.6zm5.5%2013.7a16%2016%200%200%200%204.8%202.6l.4-1.6a14%2014%200%200%201-4-2l-1.2%201m-.8%201.4a17%2017%200%200%200%204.8%202.6l-1.2%201.1a19%2019%200%200%201-4-2l.4-1.7'/%3e%3cpath%20fill='none'%20stroke='%23c8b100'%20stroke-width='.3'%20d='m221.9%20305.1%201.6.7%203-3.3-1-1.4-3.6%204m-1.3-1-1-1.4%203-3.3%201.6.7-3.6%204m-7.6-9.5q.1-1%201-1%201.1.1%201.2%201-.1%201-1.1%201.1a1%201%200%200%201-1.1-1zm25.7%2019.4.8%201.4a17%2017%200%200%200%203.6-3.1q1.4.3%202.6-.5a2.4%202.4%200%200%200%20.2-3.5l-.1-.1a15%2015%200%200%200%201.3-4.8h-1.7a13%2013%200%200%201-1%204l-1.4.2-4.1-4.5-1.3%201%204.1%204.5a2.4%202.4%200%200%200%20.1%202.8%2015%2015%200%200%201-3%202.6zm8.4-13.1V297a3%203%200%200%200%201.8-2.4q0-1.6-1.8-2.4V287h-1.6v5.3q-1.2.4-1.7%201.6h-4.4v1.5h4.4q.5%201.2%201.7%201.6v3.9zm-2.3%208.3a1%201%200%200%200-1.6%200%201%201%200%200%200-.1%201.4%201%201%200%200%200%201.6.1%201%201%200%200%200%200-1.5zm2-4.5%201.7-.3.3-4.3-1.7-.6v2.5q0%201.4-.2%202.7zm-1.3-5.3-1.7.4v2.2c0-.8-.3%202.1-.3%202.1l1.7.6.3-2.7v-2.6m1.6-20.1v5.2h-1.6v-5.2l-.4-.2-6%206.8-1.2-1%206-7v-.2h-4.5V276h4.4a3%203%200%200%201%202.5-1.7%202.6%202.6%200%200%201%202.6%202.5%203%203%200%200%201-1.8%202.4zm-16%200v3.2h-1.7v-3.2a3%203%200%200%201-1.7-1.6h-4V276h4q.7-1.6%202.5-1.7c1.8-.1%202.2.7%202.5%201.7h4v1.6h-4a3%203%200%200%201-1.6%201.6zm8.8%2033.8a16%2016%200%200%201-4.8%202.6l-.4-1.6a14%2014%200%200%200%204-2l1.2%201m.8%201.4a17%2017%200%200%201-4.8%202.6l1.2%201.1a19%2019%200%200%200%204-2l-.4-1.7m-27.4-31.4-1.7.5v4.3l1.7.5v-5.2m1.7%200%201.6.4v4.3l-1.6.5V283m30.5%200-1.7.5v4.3l1.7.5V283'/%3e%3cpath%20fill='none'%20stroke='%23c8b100'%20stroke-width='.3'%20d='m247.1%20283.1%201.7.5v4.3l-1.7.5V283m-8.6%2022-1.6.7-2.9-3.3%201-1.4%203.5%204m1.3-1%201-1.4-3-3.3-1.6.7%203.6%204m-18.2-20%201.6-.7%203%203.3-1%201.4-3.6-4m-1.3%201-1%201.4%203%203.3%201.6-.7-3.6-4m18.5-1.1-1.6-.7-3%203.3%201%201.4%203.6-4m1.2%201%201%201.4-3%203.2-1.5-.6%203.5-4m-20.3%209%20.5-1.6h4.5l.5%201.6h-5.5m0%201.5.5%201.6h4.5l.5-1.6h-5.5M213%20277q0-1%201.2-1%201%200%201%201c0%201-.4%201-1%201a1%201%200%200%201-1.2-1zm12.1.8-.5%201.6h-4.5l-.5-1.6h5.5m0-1.6-.5-1.6h-4.5l-.5%201.6h5.5m20.1%2018.5q.1-.9%201.1-1%201%20.1%201.1%201-.1%201-1%201.1a1%201%200%200%201-1.2-1zm-4.4-.7-.5-1.6h-4.5l-.5%201.6h5.5m0%201.5-.5%201.6h-4.5l-.5-1.6h5.5m-11.6%2021.9q.1-1%201.1-1t1.1%201c.1%201-.5%201-1%201a1%201%200%200%201-1.2-1zm1.9-7.8%201.7-.4v-4.3l-1.7-.5v5.2m-1.6%200-1.7-.4v-4.3l1.7-.5v5.2m15.7-32.6q.1-1%201.1-1a1%201%200%200%201%201.1%201q-.1%201-1%201a1%201%200%200%201-1.2-1zm-16.1%200q.1-1%201.1-1a1%201%200%200%201%201.1%201q-.1%201-1%201a1%201%200%200%201-1.2-1zm6.2.8.5%201.6h4.6l.5-1.6h-5.5m0-1.6.4-1.6h4.6l.5%201.6h-5.5m-6%205-1.6.5v4.3l1.6.5V281m1.7%200%201.6.5v4.3l-1.6.5V281'/%3e%3cpath%20fill='%23058e6e'%20d='M227.7%20294.7a2.6%202.6%200%200%201%202.6-2.5%202.6%202.6%200%200%201%202.6%202.5%202.6%202.6%200%200%201-2.6%202.4c-1.4%200-2.6-1-2.6-2.4'/%3e%3cpath%20fill='%23db4446'%20d='M230.9%20229.7v-.6l.1-.3-2.3-.1a6%206%200%200%201-2.3-1.2q-1-1-1.6-1.2c-1.3-.2-2.3.4-2.3.4s1%20.4%201.7%201.3%201.5%201.3%201.8%201.4c.6.2%202.6%200%203.1.1z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M230.9%20229.7v-.6l.1-.3-2.3-.1a6%206%200%200%201-2.3-1.2q-1-1-1.6-1.2c-1.3-.2-2.3.4-2.3.4s1%20.4%201.7%201.3%201.5%201.3%201.8%201.4c.6.2%202.6%200%203.1.1z'/%3e%3cpath%20fill='%23ed72aa'%20stroke='%23000'%20stroke-width='.4'%20d='M238.1%20227.5v1.4c.2.6-.1%201.2%200%201.5q0%20.5.3.9l.2.9-.7-.5-.6-.4v1l.6%201.1%201%201.3c.2.5.1%201.4.1%201.4s-.4-.7-.8-.8l-1.2-.7s.7.8.7%201.5l-.3%201.6c-.1.2-.3-.7-.8-1.1l-1-.9s.4%201.2.4%202v2.3l-.9-1-1-.7c0-.2.5.6.6%201.1s.3%202.3%201.8%204.5c1%201.3%202.3%203.6%205.3%202.9s1.9-4.8%201.3-6.7a17%2017%200%200%201-1-4.6c0-.8.6-2.9.5-3.3a8%208%200%200%201%20.2-3.1l.9-2.3.4-1.3.1-1.3.7%201.3.1%201.5s.1-1%201-1.6%201.8-1.1%202-1.4l.3-.5c-.1%200%200%201.8-.6%202.6l-1.7%202s.7-.3%201.2-.3h.9s-.6.4-1.4%201.6c-.8%201-.5%201.2-1%202.1s-1%201-1.7%201.5c-1%20.8-.5%204.2-.4%204.7.2.5%202%204.5%202%205.5s.2%203.2-1.5%204.6c-1.1%201-3%201-3.4%201.2-.4.3-1.2%201.1-1.2%202.8s.6%202%201%202.4c.6.5%201.2.2%201.3.6l.5.7q.3.3.2.8c0%20.3-.8%201.1-1.1%201.7l-.8%202.4c0%20.2-.1%201%20.1%201.3%200%200%20.9%201%20.3%201.2-.4.2-.8-.2-1-.2l-.9.5q-.3-.1-.4-.8l-.1-.7q-.3%200-.4.5c0%20.2%200%20.8-.3.8l-.8-.5c-.2%200-.8-.2-.8-.4q.1-.6.7-1%20.8-.1.5-.5t-.7%200c-.3.4-.8%200-.7-.2v-.8c0-.2-.4-.5.1-.8s.8.2%201.4.1q.8%200%201-.6.3-.6-.2-1.4l-.9-.8-.3-.9v2.2l-.7-.8c-.3-.3-.6-1.3-.6-1.3v1.3l.2.8c-.1.1-.8-.7-1-.8l-1-1-.4-1.4v-1.5l.4-1h-1.4c-.7%200-1.2-.3-1.5.2q-.4.8.2%202.8.5%201.8.4%202.1l-.7.8h-.9l-1.2-.3h-1.3l-1.1-.3c-.3.1-.8.3-.6.7q.1.8-.5.7l-.9-.2q-.8%200-.8-.4t.4-.7q.3-.5%200-.5h-.6q-.3.4-.8.4-.3-.1-.4-1c-.1-.9-.7-1.2%200-1.1.5%200%201.3.4%201.4%200q.2-.4-.2-.7c-.4-.3-.8-.4-.3-.7l.7-.5c.1-.2.4-.8.7-.6.6.2%200%20.7.6%201.3s1%201%202%20.8q1.4%200%201.3-.5l-.1-1v-1s-.4.3-.5.6l-.4.8v-2l-.2-.8-.3.9-.1%201s-.7-.5-.5-1.5l.1-2c.2-.3.7-1.5%202-1.6h2.6l2-.3s-2.8-1.4-3.5-1.9a10%2010%200%200%201-2-2l-.6-1.6s-.5%200-1%20.3l-1.2%201-.7%201%20.1-1.2v-.8s-.4%201.2-1%201.7l-1.4%201v-.8l.2-1s-.4.8-1.1%201c-.7%200-1.8%200-1.9.4q.2.8%200%201.4c0%20.3-.4.5-.4.5l-.8-.4-.7.2c-.1.1-.3-.4-.2-.7s.7-.6.5-.8l-.8.2c-.3.1-.8.3-.8-.2q.2-.6%200-1%200-.4.2-.6l1.2-.1q0-.4-.8-.6-1-.2-.5-.8.3-.2.5-.6c.1-.2.2-.7.7-.5.5.3.4.8%201%201a4%204%200%200%200%202-.2l1.5-1%201.5-1-1-.8q-.5-.7-1-1l-1.8-.6-1.7-.5.8-.3q.4-.5.8-.6h.3-1.4c-.3-.1-1-.6-1.3-.6l-.8.1s.8-.4%201.4-.5l1-.1s-.9-.3-1.1-.6l-.6-1q-.2-.3-.6-.5l-1%20.3q-.6%200-.6-.6l-.1-.5c-.2-.3-.6-.8-.2-1h1.4q-.2-.4-.8-.8c-.4-.2-1-.5-.7-.8l.8-.5c.2-.3.3-1%20.7-.7.4.2.8%201.2%201.1%201.1s.3-.8.3-1c0-.4%200-1%20.2-.9l1%20.5q.8-.1%201%20.2%200%20.5-.6%201-.4.6-.3%201.4.4%201%201.2%201.4t1.7.9c.5.3%201.7%201.2%202.1%201.3l.8.4s.5-.2%201.1-.2%202.1%200%202.6-.2%201.3-.6%201-1c-.1-.6-1.3-1-1.2-1.4q0-.5%201.2-.4c.8%200%201.8.1%202-1q.5-1.4-.8-1.8c-1-.2-1.8-.2-2-1q-.4-1-.2-1.1.3-.3%201.4-.4%201.3%200%201.9-.2l.6-.9c.3-.2%201.4-.4%201.4-.4s1.4.7%202.7%201.7l2.2%202.1'/%3e%3cpath%20d='m228.1%20226.8-.2-.6v-.3s.8%200%20.7.3q0%20.2-.3.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m228.1%20226.8-.2-.6v-.3s.8%200%20.7.3q0%20.2-.3.3z'/%3e%3cpath%20d='M232%20225.4v-.4s.7%200%201%20.3c.5.4.9%201%20.9%201l-.8-.4h-.5l-.3-.1v-.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.1'%20d='M232%20225.4v-.4s.7%200%201%20.3c.5.4.9%201%20.9%201l-.8-.4h-.5l-.3-.1v-.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m237.3%20231.3-.4-.7-.3-.4'/%3e%3cpath%20fill='%23db4446'%20d='M217.4%20226.6s.5.4.8.4h.8s.2-.5.1-.8c-.2-1.2-1.2-1.4-1.2-1.4s.3.7.1%201z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M217.4%20226.6s.5.4.8.4h.8s.2-.5.1-.8c-.2-1.2-1.2-1.4-1.2-1.4s.3.7.1%201z'/%3e%3cpath%20fill='%23db4446'%20d='M215.2%20227.6s-.4-.7-1.3-.6-1.4.8-1.4.8h1.2c.3.3.4%201%20.4%201l.7-.6z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M215.2%20227.6s-.4-.7-1.3-.6-1.4.8-1.4.8h1.2c.3.3.4%201%20.4%201l.7-.6z'/%3e%3cpath%20fill='%23db4446'%20d='M214.2%20230.6s-.8.1-1.2.6-.3%201.3-.3%201.3.4-.5.9-.5l1%20.2-.1-.8z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M214.2%20230.6s-.8.1-1.2.6-.3%201.3-.3%201.3.4-.5.9-.5l1%20.2-.1-.8z'/%3e%3cpath%20d='m228.2%20230.5.3-.5.3.5z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m228.2%20230.5.3-.5.3.5h-.7'/%3e%3cpath%20d='m229%20230.5.3-.5.4.5z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m229%20230.5.3-.5.4.5h-.8'/%3e%3cpath%20d='m228.6%20227.3.8.3-.7.4-.1-.6'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m228.6%20227.3.8.3-.7.4-.1-.6'/%3e%3cpath%20d='m229.5%20227.6.7.2-.5.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m229.5%20227.6.7.2-.5.4-.2-.6'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M224.2%20233.7s-.7.2-1%20.6q-.4.9-.3%201c.1.1.6-.5%201.5-.3l1.2.3%201.3-.3s-.7.8-.7%201.3l.2%201.1c0%20.7-.6%201.6-.6%201.6l1-.3%201.7-.8.9-1s-.2%201%200%201.4l.2%201.6.8-.6q.5-.2.9-.7l.3-1s0%20.8.4%201.3l.6%201.6s.3-.8.6-1.1l.7-1-.1-.9.4.8m-11%20.6s.5-.8%201-1l1.1-.8.9-.4m1%205%201.3-.8%201-1'/%3e%3cpath%20fill='%23db4446'%20d='M216.6%20240.4s-.4-.5-1.1-.3c-.7%200-1.2.9-1.2.9s.6-.2%201-.1.6.4.6.4l.4-.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M216.6%20240.4s-.4-.5-1.1-.3c-.7%200-1.2.9-1.2.9s.6-.2%201-.1.6.4.6.4l.4-.4z'/%3e%3cpath%20fill='%23db4446'%20d='M215.8%20243.2s-.6%200-1.1.3c-.5.4-.5%201.2-.5%201.2s.4-.4.8-.3l.9.2v-.6c.2-.4-.1-.8-.1-.8'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M215.8%20243.2s-.6%200-1.1.3c-.5.4-.5%201.2-.5%201.2s.4-.4.8-.3l.9.2v-.6c.2-.4-.1-.8-.1-.8z'/%3e%3cpath%20fill='%23db4446'%20d='M217.2%20245.8s0%20.8.3%201.3c.4.5%201.1.5%201.1.5l-.3-.7.3-.8q.1-.1-.7-.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M217.2%20245.8s0%20.8.3%201.3c.4.5%201.1.5%201.1.5l-.3-.7.3-.8q.1-.1-.7-.3zm16%201.3s2%201.2%201.9%202.2c0%201-1%202.3-1%202.3'/%3e%3cpath%20fill='%23db4446'%20d='M224.2%20252.6s-.4-.6-1.1-.6-1.4.7-1.4.7.8-.1%201%20.2l.5.6.5-.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M224.2%20252.6s-.4-.6-1.1-.6-1.4.7-1.4.7.8-.1%201%20.2l.5.6.5-.3z'/%3e%3cpath%20fill='%23db4446'%20d='M222.2%20255.3s-1-.1-1.4.3-.4%201.3-.4%201.3.6-.6%201-.5q.9.1%201%20.3v-.7l-.3-.7'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M222.2%20255.3s-1-.1-1.4.3-.4%201.3-.4%201.3.6-.6%201-.5q.9.1%201%20.3v-.7l-.3-.7z'/%3e%3cpath%20fill='%23db4446'%20d='M224%20258.1s-.3.7%200%201.1%201%20.8%201%20.8-.3-.4-.2-.8c.1-.3.7-.8.7-.8l-1.4-.2'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M224%20258.1s-.3.7%200%201.1%201%20.8%201%20.8-.3-.4-.2-.8c.1-.3.7-.8.7-.8l-1.4-.2z'/%3e%3cpath%20fill='%23db4446'%20d='M236%20259.3s-.8-.2-1.2%200c-.5.3-.8%201.4-.8%201.4s.7-.6%201.2-.5q.9.1%201%20.3v-.8z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M236%20259.3s-.8-.2-1.2%200c-.5.3-.8%201.4-.8%201.4s.7-.6%201.2-.5q.9.1%201%20.3v-.8z'/%3e%3cpath%20fill='%23db4446'%20d='M236.4%20262.2s-.6.6-.4%201.1l.6%201s0-.7.2-1l1-.3-.7-.5z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M236.4%20262.2s-.6.6-.4%201.1l.6%201s0-.7.2-1l1-.3-.7-.5z'/%3e%3cpath%20fill='%23db4446'%20d='M239.4%20263s-.3.8.2%201.3l1%20.5q-.2-.3-.2-1.1.3-.7.5-.7l-.8-.2-.7.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M239.4%20263s-.3.8.2%201.3l1%20.5q-.2-.3-.2-1.1.3-.7.5-.7l-.8-.2-.7.3z'/%3e%3cpath%20fill='%23ffd691'%20stroke='%23000'%20stroke-width='.5'%20d='M208.8%20316.4q3%201%203%203.8c0%202.3-2.2%204-5%204-3%200-5.3-1.7-5.3-4%200-1.7%201-3.6%203-3.8l-.2-.4-.7-.7h1.2l.8.5.5-.7.6-.5.6.6.3.5.7-.4.8-.3s0%20.4-.2.7l-.1.7'/%3e%3cpath%20fill='%23058e6e'%20stroke='%23000'%20stroke-width='.5'%20d='M206.3%20326.7s-3.8-2.6-5.5-3c-2-.4-4.5%200-5.5%200%200%200%201.2.8%201.8%201.4.5.5%202.3%201.5%203.3%201.8%203%20.8%206-.2%206-.2m1%20.2s2.4-2.5%205-2.9c3-.4%205%20.3%206.2.6l-1.5.8c-.5.3-2%201.5-4%201.6-2%200-4.4-.3-4.8-.2l-.9.1'/%3e%3cpath%20fill='%23ad1519'%20stroke='%23000'%20stroke-width='.5'%20d='M206.7%20323.8a5%205%200%200%201%200-7.1%205%205%200%200%201%201.5%203.5%205%205%200%200%201-1.5%203.6'/%3e%3cpath%20fill='%23058e6e'%20stroke='%23000'%20stroke-width='.5'%20d='M205.7%20329s.6-1.5.6-2.7l-.1-2.1h.8s.3%201.1.3%202l-.1%202.4-.7.1-.8.3'/%3e%3cpath%20fill='%23fff'%20d='M254%20190.7q.1-.9%201-1%201%20.1%201.1%201-.1%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M254%20190.7q.1-.9%201-1%201%20.1%201.1%201-.1%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M255.4%20188.2q.1-1%201.1-1t1%201c0%201-.4%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M255.4%20188.2q.1-1%201.1-1t1%201c0%201-.4%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M256.4%20185.2q.1-.9%201-1%201%20.1%201.1%201c.1.9-.5%201-1%201a1%201%200%200%201-1.1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M256.4%20185.2q.1-.9%201-1%201%20.1%201.1%201c.1.9-.5%201-1%201a1%201%200%200%201-1.1-1z'/%3e%3cpath%20fill='%23fff'%20d='M256.5%20182q.1-.9%201-1%201%20.1%201.1%201-.1%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M256.5%20182q.1-.9%201-1%201%20.1%201.1%201-.1%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M255.7%20179q.1-1%201-1%201.1%200%201.2%201c.1%201-.5%201-1.1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M255.7%20179q.1-1%201-1%201.1%200%201.2%201c.1%201-.5%201-1.1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M254.1%20176.1q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M254.1%20176.1q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M252%20173.8q0-1%201-1c1%200%201%20.4%201%201s-.4%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M252%20173.8q0-1%201-1c1%200%201%20.4%201%201s-.4%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M249.4%20171.8q.1-.9%201.1-1a1%201%200%200%201%200%202q-1%200-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M249.4%20171.8q.1-.9%201.1-1a1%201%200%200%201%200%202q-1%200-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M246.5%20170.3q0-1%201-1c1%200%201%20.4%201%201s-.4%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M246.5%20170.3q0-1%201-1c1%200%201%20.4%201%201s-.4%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M243.3%20169.1q.1-.9%201.1-1a1%201%200%200%201%200%202%201%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M243.3%20169.1q.1-.9%201.1-1a1%201%200%200%201%200%202%201%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M239.9%20168.5q0-.9%201-1c1-.1%201%20.5%201%201s-.4%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M239.9%20168.5q0-.9%201-1c1-.1%201%20.5%201%201s-.4%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M236.6%20168.3q0-.9%201-1c1-.1%201%20.5%201%201s-.4%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M236.6%20168.3q0-.9%201-1c1-.1%201%20.5%201%201s-.4%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M233.3%20168.5q.1-1%201-1t1.1%201c.1%201-.4%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M233.3%20168.5q.1-1%201-1t1.1%201c.1%201-.4%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M230.1%20168.5q.1-1%201-1t1.1%201c.1%201-.5%201-1%201a1%201%200%200%201-1.1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M230.1%20168.5q.1-1%201-1t1.1%201c.1%201-.5%201-1%201a1%201%200%200%201-1.1-1z'/%3e%3cpath%20fill='%23fff'%20stroke='%23000'%20stroke-width='.4'%20d='M231.7%20171.2q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1-1m.6%203.1q0-1%201-1c1%200%201%20.4%201%201q0%20.9-1%201a1%201%200%200%201-1-1m0%203q.2-.9%201.1-1a1%201%200%200%201%200%202%201%201%200%200%201-1-1m-1%202.8q.1-.9%201-1%201%20.1%201.1%201%200%201-1%201a1%201%200%200%201-1-1m-1.9%202.6q.1-.9%201-1%201.1.1%201.2%201%200%201.2-1.1%201-1%200-1-1'/%3e%3cpath%20fill='%23fff'%20d='M227.6%20166.5q.1-.9%201.1-1a1%201%200%200%201%200%202%201%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M227.6%20166.5q.1-.9%201.1-1a1%201%200%200%201%200%202%201%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M224.8%20165q0-1%201-1c1%200%201%20.4%201%201s-.4%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M224.8%20165q0-1%201-1c1%200%201%20.4%201%201s-.4%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M221.6%20164q.1-1%201-1t1.1%201q-.1.9-1%201-1-.1-1.1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M221.6%20164q.1-1%201-1t1.1%201q-.1.9-1%201-1-.1-1.1-1z'/%3e%3cpath%20fill='%23fff'%20d='M218.3%20163.4q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1.1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M218.3%20163.4q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1.1-1z'/%3e%3cpath%20fill='%23fff'%20d='M215%20163.5q.1-1%201.1-1t1%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M215%20163.5q.1-1%201.1-1t1%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M211.7%20164q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M211.7%20164q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M208.6%20165.1q.1-.9%201-1%201%20.1%201.1%201c.1.9-.5%201-1%201a1%201%200%200%201-1.1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M208.6%20165.1q.1-.9%201-1%201%20.1%201.1%201c.1.9-.5%201-1%201a1%201%200%200%201-1.1-1z'/%3e%3cpath%20fill='%23fff'%20d='M156%20190.7q0-.9%201-1c1-.1%201%20.5%201%201q0%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M156%20190.7q0-.9%201-1c1-.1%201%20.5%201%201q0%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M154.5%20188.2q.1-1%201-1t1%201c0%201-.4%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M154.5%20188.2q.1-1%201-1t1%201c0%201-.4%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M153.5%20185.2q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M153.5%20185.2q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M153.4%20182q.1-.9%201-1%201%20.1%201.1%201-.1%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M153.4%20182q.1-.9%201-1%201%20.1%201.1%201-.1%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M154.2%20179q.1-1%201-1t1%201c0%201-.4%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M154.2%20179q.1-1%201-1t1%201c0%201-.4%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M155.8%20176.1q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M155.8%20176.1q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M158%20173.8q0-1%201-1c1%200%201%20.4%201%201s-.4%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M158%20173.8q0-1%201-1c1%200%201%20.4%201%201s-.4%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M160.5%20171.8q0-.9%201-1c1-.1%201%20.5%201%201s-.4%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M160.5%20171.8q0-.9%201-1c1-.1%201%20.5%201%201s-.4%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M163.5%20170.3q0-1%201-1c1%200%201%20.4%201%201s-.4%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M163.5%20170.3q0-1%201-1c1%200%201%20.4%201%201s-.4%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M166.6%20169.1q.1-.9%201-1a1%201%200%200%201%200%202%201%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M166.6%20169.1q.1-.9%201-1a1%201%200%200%201%200%202%201%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M170%20168.5q.1-.9%201.1-1a1%201%200%200%201%200%202q-1%200-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M170%20168.5q.1-.9%201.1-1a1%201%200%200%201%200%202q-1%200-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M173.4%20168.3q0-.9%201-1c1-.1%201%20.5%201%201s-.4%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M173.4%20168.3q0-.9%201-1c1-.1%201%20.5%201%201s-.4%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M176.6%20168.5q.1-1%201-1t1.1%201c.1%201-.5%201-1%201a1%201%200%200%201-1.1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M176.6%20168.5q.1-1%201-1t1.1%201c.1%201-.5%201-1%201a1%201%200%200%201-1.1-1z'/%3e%3cpath%20fill='%23fff'%20d='M179.8%20168.5q.1-1%201-1%201.1%200%201.2%201c.1%201-.5%201-1.1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M179.8%20168.5q.1-1%201-1%201.1%200%201.2%201c.1%201-.5%201-1.1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20stroke='%23000'%20stroke-width='.4'%20d='M178.2%20171.2q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1-1m-.7%203.1q0-1%201-1c1%200%201%20.4%201%201q0%20.9-1%201a1%201%200%200%201-1-1m-.2%203q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1-1m.9%202.8q.1-.9%201-1%201%20.1%201.1%201-.1%201-1%201a1%201%200%200%201-1.1-1m1.8%202.6q.1-.9%201-1a1%201%200%200%201%200%202%201%201%200%200%201-1-1'/%3e%3cpath%20fill='%23fff'%20d='M182.3%20166.5q.1-.9%201-1a1%201%200%200%201%200%202%201%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M182.3%20166.5q.1-.9%201-1a1%201%200%200%201%200%202%201%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M185.2%20165q0-1%201-1c1%200%201%20.4%201%201s-.4%201-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M185.2%20165q0-1%201-1c1%200%201%20.4%201%201s-.4%201-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M188.3%20164q.1-1%201-1t1.1%201q0%20.9-1%201c-1%20.1-1-.5-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M188.3%20164q.1-1%201-1t1.1%201q0%20.9-1%201c-1%20.1-1-.5-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M191.6%20163.4q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M191.6%20163.4q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M194.9%20163.5q0-1%201-1c1%200%201%20.4%201%201q0%20.9-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M194.9%20163.5q0-1%201-1c1%200%201%20.4%201%201q0%20.9-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M198.2%20164q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M198.2%20164q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23fff'%20d='M201.3%20165.1q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1-1'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.4'%20d='M201.3%20165.1q.1-.9%201-1%201%20.1%201.1%201%200%201.2-1%201a1%201%200%200%201-1-1z'/%3e%3cpath%20fill='%23c8b100'%20stroke='%23000'%20stroke-width='.4'%20d='M174.7%20228.9h-1v-1h-1.5v3.6h1.6v2.5h-3.4v7h1.8v14.3h-3.5v7.3h27.2v-7.3h-3.5V241h1.8v-7h-3.4v-2.5h1.6V228h-1.6v.9h-.8v-1h-1.6v1h-1.1v-1h-1.6v3.6h1.6v2.5H184v-7.8h1.7v-3.5H184v.9h-1v-1h-1.5v1h-.9v-1H179v3.6h1.7v7.8h-3.3v-2.5h1.6V228h-1.6v.9h-.9v-1h-1.8zm-6%2033.7H196m-27.3-1.8H196m-27.3-1.8H196m-27.3-1.7H196m-27.3-2H196m-23.8-1.6h20.2m-20.2-1.8h20.2m-20.2-2h20.2m-20.2-1.7h20.2m-20.2-1.8h20.2m-20.2-1.8h20.2m-20.2-1.7h20.2m-22-1.8h23.8m-23.8-1.8h23.8m-23.8-1.8h23.8m-23.8-1.8h23.8m-20.4-1.7h17m-10.2-1.8h3.4m-3.4-1.8h3.4m-3.4-1.8h3.4m-3.4-1.7h3.4m-5.1-2.2h6.8m-12%207.5h3.6m-5-2.2h6.6m-6.7%2032.6v-1.8m0-1.8v-1.7m-1.8%201.7v1.8m3.4%200V259m1.7%203.6v-1.8m0-1.8v-1.7m0-2v-1.6m0-1.8v-2m-1.7%207.4v-2m-3.4%202v-2m7%200v2m1.5-2v-1.6m-5.1-1.8v1.8m3.5-1.8v1.8m3.3-1.8v1.8M179%20252v-2m1.7-1.7v1.7m0-5.3v1.8m-1.7-3.6v1.8m1.7-3.5v1.7m-3.3-1.7v1.7m-3.5-1.7v1.7m-1.6-3.5v1.8m3.3-1.8v1.8m3.4-1.8v1.8m1.7-3.6v1.8m-3.3-1.8v1.8m-3.5-1.8v1.8m-1.6-3.6v1.8m6.7-1.8v1.8m-3.4-5.3v1.8m15.3-1.8h-3.5m5-2.2h-6.6m6.7%2032.6v-1.8m0-1.8v-1.7m1.8%201.7v1.8m-3.4%200V259m-1.7%203.6v-1.8m0-1.8v-1.7m0-2v-1.6m0-1.8v-2m1.7%207.4v-2m3.4%202v-2m-7%200v2m-1.5-2v-1.6m5.1-1.8v1.8m-3.5-1.8v1.8m-3.3-1.8v1.8m1.7-1.8v-2m-1.7-1.7v1.7m0-5.3v1.8m1.7-3.6v1.8m-1.7-3.5v1.7m3.3-1.7v1.7m3.5-1.7v1.7m1.6-3.5v1.8m-3.3-1.8v1.8m-3.4-1.8v1.8m-1.7-3.6v1.8m3.3-1.8v1.8m3.5-1.8v1.8m1.6-3.6v1.8m-6.7-1.8v1.8m3.4-5.3v1.8m-7%2018v-2m0-5.4v-1.8m0%205.4v-1.8m0-5.3v-1.8m0-1.8v-1.7m0-3.6v-1.8m0-1.7v-1.8m-8.3%204.6h3.5m3.3-5.3h3.4m3.3%205.3h3.5'/%3e%3cpath%20fill='%23c8b100'%20stroke='%23000'%20stroke-width='.4'%20d='M186.8%20262.6v-4.7c0-.8-.4-3.5-4.6-3.5-4%200-4.4%202.7-4.4%203.5v4.7z'/%3e%3cpath%20fill='%23c8b100'%20stroke='%23000'%20stroke-width='.4'%20d='m179.3%20258.2-2.2-.3c0-.9.2-2.2.9-2.6l2%201.5c-.3.2-.7%201-.7%201.4zm6%200%202.2-.3c0-.9-.2-2.2-.9-2.6l-2%201.5c.3.2.7%201%20.7%201.4zm-2.2-2.3%201-2-2-.4-1.7.4%201.1%202zm-4.2-5.5v-4.9c0-1.3-1-2.4-2.5-2.4s-2.4%201-2.4%202.4v4.9zm6.8%200v-4.9c0-1.3%201-2.4%202.5-2.4s2.4%201%202.4%202.4v4.9zm-1.7-12%20.4-4.4h-4.2l.2%204.4zm3.3%200-.4-4.4h4.4l-.5%204.4zm-10%200%20.2-4.4h-4.2l.5%204.4z'/%3e%3cpath%20fill='%230039f0'%20d='M185.3%20262.6v-4c0-.7-.5-2.7-3.1-2.7-2.4%200-2.9%202-2.9%202.7v4zm-6.9-12.7v-4.2c0-1-.6-2.2-2-2.2s-2%201.1-2%202.2v4.3h4zm7.8%200v-4.2c0-1%20.7-2.2%202-2.2s2%201.1%202%202.2v4.3h-4z'/%3e%3cpath%20fill='%23ad1519'%20d='M190.8%20269.8c0-9.7%207-17.6%2015.6-17.6s15.6%207.9%2015.6%2017.6-7%2017.5-15.6%2017.5-15.6-7.8-15.6-17.5'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.6'%20d='M190.8%20269.8c0-9.7%207-17.6%2015.6-17.6s15.6%207.9%2015.6%2017.6-7%2017.5-15.6%2017.5-15.6-7.8-15.6-17.5z'/%3e%3cpath%20fill='%23005bbf'%20d='M195.4%20269.7c0-7%205-12.8%2011-12.8s11%205.7%2011%2012.8-5%2013-11%2013-11-5.8-11-13'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.6'%20d='M195.4%20269.7c0-7%205-12.8%2011-12.8s11%205.7%2011%2012.8-5%2013-11%2013-11-5.8-11-13z'/%3e%3cpath%20fill='%23c8b100'%20d='M201.2%20260.9s-1.3%201.4-1.3%202.7a6%206%200%200%200%20.6%202.4q-.4-.8-1.4-.8-1.3.1-1.4%201.3l.2.8.5.9q.2-.5%201-.5%201.1%200%201%201v.2h-1.2v1h1l-.8%201.5%201-.4.8.9.8-.9%201%20.4-.7-1.5h1v-1h-1.1v-.3a1%201%200%200%201%201-1q.6%200%201%20.6l.4-1%20.2-.7a1.4%201.4%200%200%200-1.4-1.3q-1%200-1.4.9s.6-1.2.6-2.5-1.4-2.7-1.4-2.7'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.3'%20d='M201.2%20260.9s-1.3%201.4-1.3%202.7a6%206%200%200%200%20.6%202.4q-.4-.8-1.4-.8-1.3.1-1.4%201.3l.2.8.5.9q.2-.5%201-.5%201.1%200%201%201v.2h-1.2v1h1l-.8%201.5%201-.4.8.9.8-.9%201%20.4-.7-1.5h1v-1h-1.1v-.3a1%201%200%200%201%201-1q.6%200%201%20.6l.4-1%20.2-.7a1.4%201.4%200%200%200-1.4-1.3q-1%200-1.4.9s.6-1.2.6-2.5-1.4-2.7-1.4-2.7z'/%3e%3cpath%20fill='%23c8b100'%20d='M199.2%20269.9h4.1v-1h-4.1z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M199.2%20269.9h4.1v-1h-4.1z'/%3e%3cpath%20fill='%23c8b100'%20d='M211.4%20260.9s-1.3%201.4-1.3%202.7.6%202.4.6%202.4q-.3-.8-1.4-.8-1.3.1-1.4%201.3l.2.8.5.9q.3-.5%201-.5a1%201%200%200%201%201%201v.2h-1.2v1h1l-.8%201.5%201-.4.8.9.8-.9%201%20.4-.7-1.5h1v-1h-1.1v-.3a1%201%200%200%201%201-1q.7%200%201%20.6l.4-1%20.2-.7a1.4%201.4%200%200%200-1.4-1.3q-1%200-1.4.9s.6-1.2.6-2.5-1.4-2.7-1.4-2.7'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.3'%20d='M211.4%20260.9s-1.3%201.4-1.3%202.7.6%202.4.6%202.4q-.3-.8-1.4-.8-1.3.1-1.4%201.3l.2.8.5.9q.3-.5%201-.5a1%201%200%200%201%201%201v.2h-1.2v1h1l-.8%201.5%201-.4.8.9.8-.9%201%20.4-.7-1.5h1v-1h-1.1v-.3a1%201%200%200%201%201-1q.7%200%201%20.6l.4-1%20.2-.7a1.4%201.4%200%200%200-1.4-1.3q-1%200-1.4.9s.6-1.2.6-2.5-1.4-2.7-1.4-2.7z'/%3e%3cpath%20fill='%23c8b100'%20d='M209.4%20269.9h4.1v-1h-4.1z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M209.4%20269.9h4.1v-1h-4.1z'/%3e%3cpath%20fill='%23c8b100'%20d='M206.3%20269.6s-1.3%201.5-1.3%202.8.6%202.4.6%202.4q-.3-.8-1.4-.9-1.3.1-1.4%201.4l.2.7.5%201q.2-.6%201-.6a1%201%200%200%201%201%201v.3h-1.2v1h1l-.8%201.5%201-.4.8.9.8-1%201%20.5-.7-1.5h1v-1h-1.1v-.3a1%201%200%200%201%201-1q.6%200%20.9.6l.5-1%20.2-.7a1.4%201.4%200%200%200-1.4-1.4q-1%200-1.4%201s.6-1.2.6-2.5-1.4-2.7-1.4-2.7'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-linejoin='round'%20stroke-width='.3'%20d='M206.3%20269.6s-1.3%201.5-1.3%202.8.6%202.4.6%202.4q-.3-.8-1.4-.9-1.3.1-1.4%201.4l.2.7.5%201q.2-.6%201-.6a1%201%200%200%201%201%201v.3h-1.2v1h1l-.8%201.5%201-.4.8.9.8-1%201%20.5-.7-1.5h1v-1h-1.1v-.3a1%201%200%200%201%201-1q.6%200%20.9.6l.5-1%20.2-.7a1.4%201.4%200%200%200-1.4-1.4q-1%200-1.4%201s.6-1.2.6-2.5-1.4-2.7-1.4-2.7z'/%3e%3cpath%20fill='%23c8b100'%20d='M204.3%20278.6h4.1v-1h-4.1z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M204.3%20278.6h4.1v-1h-4.1z'/%3e%3cpath%20fill='%23c8b100'%20d='M237.6%20223.4h-.3l-.3.4q-.4.3-.8%200l-.1-.4h-.5q-.4-.3-.1-.7v-.5h-.3l-.1.2q-.3.4-.7.2v-.2h-.3c-.5.2-.7-1-.7-1.2l-.2.2s.2.7.1%201.2l-.3%201.2a9%209%200%200%201%202.9%201.6%209%209%200%200%201%202.2%202.3l1.2-.5c.6-.2%201.3-.2%201.3-.2l.2-.2c-.3%200-1.5.1-1.5-.4v-.2h-.2q-.3-.3%200-.7l.2-.1v-.3h-.3l-.2.1q-.4.5-.8%200l-.1-.4h-.5q-.4-.3%200-.8l.2-.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M237.6%20223.4h-.3l-.3.4q-.4.3-.8%200l-.1-.4h-.5q-.4-.3-.1-.7v-.5h-.3l-.1.2q-.3.4-.7.2v-.2h-.3c-.5.2-.7-1-.7-1.2l-.2.2s.2.7.1%201.2l-.3%201.2a9%209%200%200%201%202.9%201.6%209%209%200%200%201%202.2%202.3l1.2-.5c.6-.2%201.3-.2%201.3-.2l.2-.2c-.3%200-1.5.1-1.5-.4v-.2h-.2q-.3-.3%200-.7l.2-.1v-.3h-.3l-.2.1q-.4.5-.8%200l-.1-.4h-.5q-.4-.3%200-.8l.2-.3z'/%3e%3cpath%20d='M235.4%20224h.2v.3h-.1q-.1-.1%200-.2'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.1'%20d='M235.4%20224h.2v.3h-.1q-.1-.1%200-.2z'/%3e%3cpath%20d='m236.3%20224.8-.3-.2v-.2h.1l.4.3.3.2v.2h-.2z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.1'%20d='m236.3%20224.8-.3-.2v-.2h.1l.4.3.3.2v.2h-.2l-.3-.3'/%3e%3cpath%20d='m234.6%20223.7-.2-.2s-.1%200%200-.1l.3.1.3.1v.2h-.1z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.1'%20d='m234.6%20223.7-.2-.2s-.1%200%200-.1l.3.1.3.1v.2h-.1l-.3-.1'/%3e%3cpath%20d='M233.7%20223h.2v.2h-.2s-.1-.1%200-.2'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.1'%20d='M233.7%20223h.2v.2h-.2s-.1-.1%200-.2z'/%3e%3cpath%20d='M237.3%20225.5v-.2h-.3l.1.2z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.1'%20d='M237.3%20225.5v-.2h-.3l.1.2z'/%3e%3cpath%20d='m237.9%20226.2.2.2h.1v-.2l-.2-.2-.2-.2h-.1v.2z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.1'%20d='m237.9%20226.2.2.2h.1v-.2l-.2-.2-.2-.2h-.1v.2l.2.2'/%3e%3cpath%20d='M238.8%20227v-.3h-.3v.2h.3'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.1'%20d='M238.8%20227v-.3h-.3v.2h.3z'/%3e%3cpath%20fill='%23c8b100'%20d='M236.2%20221.1h-.6l-.1.9v.1h.2l.7-.5-.3-.5'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M236.2%20221.1h-.6l-.1.9v.1h.2l.7-.5-.3-.5'/%3e%3cpath%20fill='%23c8b100'%20d='M234.6%20221.6v.5l.9.1h.1v-.2l-.5-.7z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M234.6%20221.6v.5l.9.1h.1v-.2l-.5-.7-.5.3'/%3e%3cpath%20fill='%23c8b100'%20d='m236.4%20222.6-.4.3-.6-.7v-.1h1.1z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m236.4%20222.6-.4.3-.6-.7v-.1h1.1v.5'/%3e%3cpath%20fill='%23c8b100'%20d='M235.3%20222h.4v.3h-.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M235.3%20222h.4v.3h-.3z'/%3e%3cpath%20fill='%23c8b100'%20d='m233.2%20221.1-.2-.7-.4-.4s.4-.2.8.1%200%20.9%200%20.9z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m233.2%20221.1-.2-.7-.4-.4s.4-.2.8.1%200%20.9%200%20.9z'/%3e%3cpath%20fill='%23c8b100'%20d='m234.2%20221.4-.4.4-.6-.6v-.2h1z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m234.2%20221.4-.4.4-.6-.6v-.2h1v.4'/%3e%3cpath%20fill='%23c8b100'%20d='m233.1%20221%20.3-.1v.3q0%20.3-.2.2z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m233.1%20221%20.3-.1v.3q0%20.3-.2.2z'/%3e%3cpath%20fill='%23c8b100'%20d='M238.3%20222.5h-.5l-.3.7v.2h.2l.8-.4z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M238.3%20222.5h-.5l-.3.7v.2h.2l.8-.4-.2-.5'/%3e%3cpath%20fill='%23c8b100'%20d='M236.7%20222.8v.5l.8.2h.1v-.2l-.4-.7z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M236.7%20222.8v.5l.8.2h.1v-.2l-.4-.7-.5.2'/%3e%3cpath%20fill='%23c8b100'%20d='m238.4%20224-.5.2-.4-.7v-.2h.1l.9.2z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m238.4%20224-.5.2-.4-.7v-.2h.1l.9.2-.1.5'/%3e%3cpath%20fill='%23c8b100'%20d='M237.3%20223.2h.4v.4h-.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M237.3%20223.2h.4v.4h-.3z'/%3e%3cpath%20fill='%23c8b100'%20d='m240.2%20224.3.1.5-.8.3h-.2v-.2l.4-.8z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m240.2%20224.3.1.5-.8.3h-.2v-.2l.4-.8.5.2'/%3e%3cpath%20fill='%23c8b100'%20d='m240%20225.8-.5.1-.3-.8v-.1h.2l.8.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m240%20225.8-.5.1-.3-.8v-.1h.2l.8.3-.1.5'/%3e%3cpath%20fill='%23c8b100'%20d='m238.6%20224.3-.2.5.9.3h.1v-.1l-.3-.8z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m238.6%20224.3-.2.5.9.3h.1v-.1l-.3-.8-.5.1'/%3e%3cpath%20fill='%23c8b100'%20d='M239.5%20225.2v-.3h-.4v.3z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M239.5%20225.2v-.3h-.4v.3z'/%3e%3cpath%20fill='%23c8b100'%20d='M240.8%20227h.8l.5.3s.1-.4-.3-.7c-.3-.3-.8.2-.8.2z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M240.8%20227h.8l.5.3s.1-.4-.3-.7c-.3-.3-.8.2-.8.2z'/%3e%3cpath%20fill='%23c8b100'%20d='m240.3%20226.1-.3.5.8.5v-.1h.2l-.1-1z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='m240.3%20226.1-.3.5.8.5v-.1h.2l-.1-1-.6.1'/%3e%3cpath%20fill='%23c8b100'%20d='M241%20227s.1-.1%200-.2h-.3q-.3%200-.1.2z'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.3'%20d='M241%20227s.1-.1%200-.2h-.3q-.3%200-.1.2zm38-21.9v.6h-2.4v-.6h1v-1.3h-.7v-.5h.6v-.6h.6v.6h.6v.6h-.6v1.2h1'/%3e%3cpath%20fill='none'%20d='M134.4%20217.1v-1.2m-.4%201.2v-1.2m-.2%201.2v-1.2m-.3%201.2v-1.2'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.1'%20d='M133.2%20217.1v-1.2m-.5%201.1v-1m.2%201v-1m-.7%201v-1m.2%201v-1m-.9%201v-1m.2%201v-1m.3%201v-1m-.7%201v-1m-.3.9v-.8m-.1.8v-.8m-.5.7v-.6m.2.6v-.6m-.4.5v-.5m-.2.5v-.4m-.3.3v-.3m-.3.3v-.2'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.2'%20d='M129.2%20216.6v-.2'/%3e%3cpath%20fill='none'%20d='M135.7%20217v-1m-.5%201v-1m-.4%201.2V216m143%201.1V216m-.4%201.1V216m-.3%201.1V216m-.3%201.2V216'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.1'%20d='M276.6%20217.1V216m-.6%201v-1m.3%201v-1m-.8%201v-1m.3%201v-1m-.9%201v-1m.2%201v-1m.2%201v-1m-.6%201v-1m-.3.9v-.8m-.2.8v-.8m-.4.7v-.6m.2.6v-.6m-.5.6v-.6m-.2.5v-.4m-.3.4v-.4m-.2.3v-.2'/%3e%3cpath%20fill='none'%20stroke='%23000'%20stroke-width='.2'%20d='M272.6%20216.6v-.2'/%3e%3cpath%20fill='none'%20d='M279.1%20217v-1m-.6%201v-1m-.4%201.1V216'/%3e%3c/svg%3e";
  const flagPH = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-ph'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%230038a8'%20d='M0%200h640v240H0z'/%3e%3cpath%20fill='%23ce1126'%20d='M0%20240h640v240H0z'/%3e%3cpath%20fill='%23fff'%20d='M415.7%20240%200%20480V0'/%3e%3cpath%20fill='%23fcd116'%20d='M26.7%2042.4%2041%2055l16.6-9.2-7.4%2017.5%2014%2013-19-1.6-8.1%2017.2-4.3-18.5L14%2071l16.3-10zm323.8%20172.3.4%2019%2018%206.3-18%206.2-.4%2019-11.5-15.1-18.2%205.5%2010.8-15.6-10.8-15.6%2018.2%205.5zM37.2%20388.1l8%2017.2%2019-1.6-13.9%2013%207.4%2017.5-16.6-9.1-14.4%2012.4%203.6-18.7L14%20409l18.9-2.4zm114.2-249-6.2%206.2%203.1%2047-3%20.3-5.7-42.9-5.1%205%207.6%2038.4a48%2048%200%200%200-17.2%207.1l-21.7-32.4H96l26.4%2034.3-2.4%202-31.1-35.5h-8.8v8.8l35.4%2031-2%202.5-34.3-26.3v7.1l32.5%2021.7q-5.2%207.8-7.1%2017.2L66.3%20223l-5.1%205%2042.9%205.7q-.3%201.6-.3%203.1l-47-3-6.2%206.2%206.2%206.2%2047-3.1.3%203.1-42.9%205.7%205%205%2038.4-7.6a48%2048%200%200%200%207.1%2017.2l-32.5%2021.7v7.2l34.3-26.3%202%202.4-35.4%2031v8.8H89l31-35.4%202.5%202L96%20312.2h7.2l21.7-32.5q7.8%205.2%2017.2%207.1l-7.6%2038.4%205%205%205.7-42.9q1.5.3%203.1.3l-3%2047%206.1%206.2%206.3-6.2-3.1-47%203-.3%205.7%2043%205.1-5.1-7.6-38.4a48%2048%200%200%200%2017.2-7.1l21.7%2032.5h7.2l-26.4-34.3%202.4-2%2031.1%2035.4h8.8v-8.8l-35.4-31%202-2.4%2034.3%2026.3v-7.2l-32.5-21.7q5.2-7.8%207.1-17.2l38.3%207.6%205.1-5-42.9-5.7q.3-1.5.3-3.1l47%203%206.2-6.1-6.2-6.2-47%203-.3-3%2042.9-5.7-5-5-38.4%207.5a48%2048%200%200%200-7.1-17.2l32.5-21.7v-7.1l-34.3%2026.3-2-2.4%2035.4-31v-8.9H214l-31%2035.5-2.5-2%2026.4-34.3h-7.2L178%20200.2q-7.8-5.2-17.2-7.1l7.6-38.3-5-5-5.7%2042.8-3.1-.3%203-47z'/%3e%3c/svg%3e";
  const flagID = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-id'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23e70011'%20d='M0%200h640v240H0Z'/%3e%3cpath%20fill='%23fff'%20d='M0%20240h640v240H0Z'/%3e%3c/svg%3e";
  const flagIT = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-it'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%20stroke-width='1pt'%3e%3cpath%20fill='%23fff'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23009246'%20d='M0%200h213.3v480H0z'/%3e%3cpath%20fill='%23ce2b37'%20d='M426.7%200H640v480H426.7z'/%3e%3c/g%3e%3c/svg%3e";
  const flagNL = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-nl'%20viewBox='0%200%20640%20480'%3e%3cpath%20fill='%23ae1c28'%20d='M0%200h640v160H0z'/%3e%3cpath%20fill='%23fff'%20d='M0%20160h640v160H0z'/%3e%3cpath%20fill='%2321468b'%20d='M0%20320h640v160H0z'/%3e%3c/svg%3e";
  const flagTH = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-th'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23f4f5f8'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%232d2a4a'%20d='M0%20162.5h640v160H0z'/%3e%3cpath%20fill='%23a51931'%20d='M0%200h640v82.5H0zm0%20400h640v80H0z'/%3e%3c/g%3e%3c/svg%3e";
  const flagTR = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-tr'%20viewBox='0%200%20640%20480'%3e%3cg%20fill-rule='evenodd'%3e%3cpath%20fill='%23e30a17'%20d='M0%200h640v480H0z'/%3e%3cpath%20fill='%23fff'%20d='M407%20247.5c0%2066.2-54.6%20119.9-122%20119.9s-122-53.7-122-120%2054.6-119.8%20122-119.8%20122%2053.7%20122%20119.9'/%3e%3cpath%20fill='%23e30a17'%20d='M413%20247.5c0%2053-43.6%2095.9-97.5%2095.9s-97.6-43-97.6-96%2043.7-95.8%2097.6-95.8%2097.6%2042.9%2097.6%2095.9z'/%3e%3cpath%20fill='%23fff'%20d='m430.7%20191.5-1%2044.3-41.3%2011.2%2040.8%2014.5-1%2040.7%2026.5-31.8%2040.2%2014-23.2-34.1%2028.3-33.9-43.5%2012-25.8-37z'/%3e%3c/g%3e%3c/svg%3e";
  const flagVN = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='flag-icons-vn'%20viewBox='0%200%20640%20480'%3e%3cdefs%3e%3cclipPath%20id='vn-a'%3e%3cpath%20fill-opacity='.7'%20d='M-85.3%200h682.6v512H-85.3z'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20fill-rule='evenodd'%20clip-path='url(%23vn-a)'%20transform='translate(80)scale(.9375)'%3e%3cpath%20fill='%23da251d'%20d='M-128%200h768v512h-768z'/%3e%3cpath%20fill='%23ff0'%20d='M349.6%20381%20260%20314.3l-89%2067.3L204%20272l-89-67.7%20110.1-1%2034.2-109.4L294%20203l110.1.1-88.5%2068.4%2033.9%20109.6z'/%3e%3c/g%3e%3c/svg%3e";
  const FLAG_MAP = {
    en: flagUS,
    "zh-Hans": flagCN,
    ar: flagSA,
    ja: flagJP,
    ko: flagKR,
    fr: flagFR,
    de: flagDE,
    hi: flagIN,
    pt: flagPT,
    ru: flagRU,
    es: flagES,
    fil: flagPH,
    id: flagID,
    it: flagIT,
    nl: flagNL,
    th: flagTH,
    tr: flagTR,
    vi: flagVN
  };
  function LanguageSelector({
    dropdownClasses = "",
    btnClasses = "btn-ghost",
    contentClasses = "mt-16"
  }) {
    const { t, i18n } = useTranslation();
    const currentLang = signals.useSignal(appOptionsManager.get("language") || i18n.language || "en");
    hooks.useEffect(() => {
      const onLng = (lng) => {
        currentLang.value = lng || appOptionsManager.get("language") || "en";
      };
      i18n.on("languageChanged", onLng);
      const unsub = appOptionsManager.signal.subscribe(() => {
        const optLng = appOptionsManager.get("language");
        if (optLng && optLng !== currentLang.value) currentLang.value = optLng;
      });
      return () => {
        try {
          i18n.off("languageChanged", onLng);
        } catch {
        }
        try {
          unsub?.();
        } catch {
        }
      };
    }, []);
    const setLanguage = (code) => {
      currentLang.value = code;
      appOptionsManager.set("language", code);
      i18n.changeLanguage(code);
    };
    const currentLabel = LANGUAGES_CONFIG[currentLang.value]?.nameEn || currentLang.value;
    const currentFlag = FLAG_MAP[currentLang.value] || flagUS;
    return u("div", { class: cx("dropdown dropdown-end block", dropdownClasses), children: [
u(
        "div",
        {
          tabIndex: 0,
          role: "button",
          class: cx("btn group btn-sm gap-1.5 px-1.5 justify-start", btnClasses),
          "aria-label": t("Change Language"),
          children: [
u("div", { class: "w-5 flex items-center justify-center", children: u("img", { src: currentFlag, alt: "", class: "h-3 w-4 rounded-sm object-cover border border-base-content/10 bg-base-100" }) }),
u("div", { class: "w-24 truncate text-xs text-left", children: currentLabel }),
u(
              "svg",
              {
                width: "12px",
                height: "12px",
                class: "mt-px hidden size-2 fill-current opacity-60 sm:inline-block ml-auto",
                xmlns: "http://www.w3.org/2000/svg",
                viewBox: "0 0 2048 2048",
                children: u("path", { d: "M1799 349l242 241-1017 1017L7 590l242-241 775 775 775-775z" })
              }
            )
          ]
        }
      ),
u(
        "div",
        {
          tabIndex: 0,
          class: cx(
            "dropdown-content bg-base-200 text-base-content rounded-box mt-2 max-h-60 overflow-y-auto border-[length:var(--border)] border-white/5 shadow-2xl outline-[length:var(--border)] outline-black/5",
            contentClasses
          ),
          children: u("ul", { class: "menu w-64", children: [
u("li", { class: "menu-title text-xs", children: t("Change Language") }),
            Object.entries(LANGUAGES_CONFIG).map(([langTag, langConf]) => u("li", { children: u(
              "button",
              {
                class: cx("gap-3 px-2", currentLang.value === langTag && "[&_svg]:visible"),
                onClick: () => setLanguage(langTag),
                children: [
u("img", { src: FLAG_MAP[langTag] || flagUS, alt: "", class: "h-3 w-4 rounded-sm object-cover border border-base-content/10 bg-base-100" }),
u("div", { class: "flex-1 min-w-0 truncate", children: langConf.nameEn }),
u(
                    "svg",
                    {
                      xmlns: "http://www.w3.org/2000/svg",
                      width: "16",
                      height: "16",
                      viewBox: "0 0 24 24",
                      fill: "currentColor",
                      class: "invisible h-3 w-3 shrink-0",
                      children: u("path", { d: "M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z" })
                    }
                  )
                ]
              }
            ) }, langTag))
          ] })
        }
      )
    ] });
  }
  var localizedFormat$2 = { exports: {} };
  var localizedFormat$1 = localizedFormat$2.exports;
  var hasRequiredLocalizedFormat;
  function requireLocalizedFormat() {
    if (hasRequiredLocalizedFormat) return localizedFormat$2.exports;
    hasRequiredLocalizedFormat = 1;
    (function(module, exports) {
      !(function(e, t) {
        module.exports = t();
      })(localizedFormat$1, (function() {
        var e = { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" };
        return function(t, o, n) {
          var r = o.prototype, i = r.format;
          n.en.formats = e, r.format = function(t2) {
            void 0 === t2 && (t2 = "YYYY-MM-DDTHH:mm:ssZ");
            var o2 = this.$locale().formats, n2 = (function(t3, o3) {
              return t3.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, (function(t4, n3, r2) {
                var i2 = r2 && r2.toUpperCase();
                return n3 || o3[r2] || e[r2] || o3[i2].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, (function(e2, t5, o4) {
                  return t5 || o4.slice(1);
                }));
              }));
            })(t2, void 0 === o2 ? {} : o2);
            return i.call(this, n2);
          };
        };
      }));
    })(localizedFormat$2);
    return localizedFormat$2.exports;
  }
  var localizedFormatExports = requireLocalizedFormat();
  const localizedFormat = getDefaultExportFromCjs(localizedFormatExports);
  dayjs.extend(localizedFormat);
  function GlobalSettingsModal({ isOpen, onClose }) {
    const { t, i18n } = useTranslation();
    const isArabic = (i18n.language || "").startsWith("ar");
    const showResetConfirm = signals.useSignal(false);
    const now = dayjs();
    const dateExamples = [
      { token: "YYYY-MM-DD", value: now.format("YYYY-MM-DD"), localized: false },
      { token: "DD/MM/YYYY", value: now.format("DD/MM/YYYY"), localized: false },
      { token: "MMM DD, YYYY", value: now.format("MMM DD, YYYY"), localized: false },
      { token: "L", value: now.format("L"), localized: true },
      { token: "LL", value: now.format("LL"), localized: true }
    ];
    const timeExamples = [
      { token: "HH:mm:ss", value: now.format("HH:mm:ss"), localized: false },
      { token: "hh:mm A", value: now.format("hh:mm A"), localized: false },
      { token: "LT", value: now.format("LT"), localized: true },
      { token: "LTS", value: now.format("LTS"), localized: true }
    ];
    const combinedExamples = [
      { token: "YYYY-MM-DD HH:mm:ss Z", value: now.format("YYYY-MM-DD HH:mm:ss Z"), localized: false },
      { token: "MMM DD, YYYY [at] hh:mm A", value: now.format("MMM DD, YYYY [at] hh:mm A"), localized: false },
      { token: "LLL", value: now.format("LLL"), localized: true }
    ];
    return u(
      Modal,
      {
        show: isOpen,
        onClose,
        title: t("Global Settings"),
        actions: u(
          "button",
          {
            class: "btn btn-sm btn-circle btn-ghost",
            onClick: () => showResetConfirm.value = true,
            children: u(IconRestore, { size: 16 })
          }
        ),
        children: [
u("div", { class: "space-y-4", children: [
u("div", { class: "flex justify-between items-center", children: [
u("span", { class: "text-sm", children: t("Theme") }),
u(
                ThemeSelector,
                {
                  dropdownClasses: "",
                  btnClasses: "btn-sm",
                  contentClasses: "mt-2"
                }
              )
            ] }),
u("div", { class: "flex justify-between items-center", children: [
u("span", { class: "text-sm", children: t("Language") }),
u(
                LanguageSelector,
                {
                  dropdownClasses: "",
                  btnClasses: "btn-sm",
                  contentClasses: "mt-2"
                }
              )
            ] }),
u("div", { class: "flex justify-between items-center", children: [
u("div", { class: "flex items-center", children: u("span", { class: "text-sm", children: t("Date Time Format") }) }),
u(
                "input",
                {
                  type: "text",
                  class: "input input-bordered input-sm w-52",
                  value: appOptionsManager.get("dateTimeFormat"),
                  onChange: (e) => {
                    appOptionsManager.set("dateTimeFormat", e.target?.value);
                  }
                }
              )
            ] }),
u("div", { class: "flex justify-between items-center", children: [
u("span", { class: "text-sm", children: t("Debug") }),
u(
                "input",
                {
                  type: "checkbox",
                  class: "toggle toggle-primary",
                  checked: appOptionsManager.get("debug"),
                  onChange: (e) => {
                    appOptionsManager.set("debug", e.target?.checked);
                  }
                }
              )
            ] }),
u("div", { class: `mt-1 rounded-box bg-base-200 p-2 text-xs relative ${isArabic ? "text-right" : ""}`, dir: isArabic ? "rtl" : void 0, children: [
u("div", { class: "font-semibold mb-2", children: t("Common Formats:") }),
u(
                "a",
                {
                  href: "https://day.js.org/docs/en/display/format",
                  target: "_blank",
                  rel: "noopener noreferrer",
                  class: `absolute ${isArabic ? "left-2" : "right-2"} top-2 cursor-pointer opacity-70 hover:opacity-100`,
                  children: u(IconBook, { size: 14 })
                }
              ),
u("div", { class: "grid gap-3 sm:grid-cols-2", children: [
u("div", { children: [
u("div", { class: "font-medium mb-1", children: t("Date Formats:") }),
u("ul", { class: "space-y-1.5", children: dateExamples.map((ex) => u("li", { class: "flex items-center gap-2.5", children: [
u("span", { class: "font-mono px-2 py-0.5 rounded border border-base-300 bg-base-200/70 text-base-content/90", dir: "ltr", children: ex.token }),
u("span", { class: "opacity-60", children: isArabic ? "←" : "→" }),
u("span", { dir: "ltr", children: ex.value }),
                    ex.localized ? u("span", { class: "opacity-60", children: [
                      " (",
                      t("Localized"),
                      ")"
                    ] }) : null
                  ] }, ex.token)) })
                ] }),
u("div", { children: [
u("div", { class: "font-medium mb-1", children: t("Time Formats:") }),
u("ul", { class: "space-y-1.5", children: timeExamples.map((ex) => u("li", { class: "flex items-center gap-2.5", children: [
u("span", { class: "font-mono px-2 py-0.5 rounded border border-base-300 bg-base-200/70 text-base-content/90", dir: "ltr", children: ex.token }),
u("span", { class: "opacity-60", children: isArabic ? "←" : "→" }),
u("span", { dir: "ltr", children: ex.value }),
                    ex.localized ? u("span", { class: "opacity-60", children: [
                      " (",
                      t("Localized"),
                      ")"
                    ] }) : null
                  ] }, ex.token)) })
                ] })
              ] }),
u("div", { class: "divider my-2" }),
u("div", { children: [
u("div", { class: "font-medium mb-1", children: t("Combined Examples:") }),
u("ul", { class: "space-y-1.5", children: combinedExamples.map((ex) => u("li", { class: "flex items-center gap-2.5", children: [
u("span", { class: "font-mono px-2 py-0.5 rounded border border-base-300 bg-base-200/70 text-base-content/90", dir: "ltr", children: ex.token }),
u("span", { class: "opacity-60", children: isArabic ? "←" : "→" }),
u("span", { class: "break-all", dir: "ltr", children: ex.value }),
                  ex.localized ? u("span", { class: "opacity-60", children: [
                    " (",
                    t("Localized"),
                    ")"
                  ] }) : null
                ] }, ex.token)) })
              ] })
            ] })
          ] }),
u("div", { class: `rounded-box bg-base-200 p-2 text-xs mt-3 flex items-center justify-between ${isArabic ? "flex-row-reverse" : ""}`, children: [
u("div", { children: [
u("span", { class: "font-semibold", children: [
                t("Version"),
                ":"
              ] }),
              " ",
u("span", { class: "opacity-80", children: pkg.version })
            ] }),
u("div", { class: `flex items-center gap-4 ${isArabic ? "flex-row-reverse" : ""}`, children: [
              typeof GM_info !== "undefined" && GM_info?.scriptHandler ? u(
                "a",
                {
                  class: "flex items-center gap-1 opacity-80 hover:opacity-100",
                  href: "https://chromewebstore.google.com/detail/aboccmnimgpjehlplnanplbhlccohhhn",
                  target: "_blank",
                  rel: "noopener noreferrer",
                  children: [
u(IconBrandChrome, { size: 14 }),
                    " ",
                    t("Chrome")
                  ]
                }
              ) : u(
                "a",
                {
                  class: "flex items-center gap-1 opacity-80 hover:opacity-100",
                  href: "http://greasyfork.icu/en/scripts/551198",
                  target: "_blank",
                  rel: "noopener noreferrer",
                  children: [
u(IconFileCode, { size: 14 }),
                    " ",
                    t("Userscript")
                  ]
                }
              ),
u(
                "a",
                {
                  class: "flex items-center gap-1 opacity-80 hover:opacity-100",
                  href: "https://exyezed.cc",
                  target: "_blank",
                  rel: "noopener noreferrer",
                  children: [
u(IconWorld, { size: 14 }),
                    " ",
                    t("Website")
                  ]
                }
              ),
u(
                "a",
                {
                  class: "flex items-center gap-1 opacity-80 hover:opacity-100",
                  href: "https://patreon.com/exyezed",
                  target: "_blank",
                  rel: "noopener noreferrer",
                  children: [
u(IconBrandPatreon, { size: 14 }),
                    " ",
                    t("Patreon")
                  ]
                }
              )
            ] })
          ] }),
u(Modal, { show: showResetConfirm.value, onClose: () => showResetConfirm.value = false, title: t("Reset Settings"), class: "max-w-sm", children: u("div", { class: "space-y-2", children: [
u("p", { class: `text-sm${isArabic ? " text-right" : ""}`, dir: isArabic ? "rtl" : void 0, children: t("Are you sure you want to reset settings to defaults?") }),
u("div", { class: "modal-action", children: [
u("button", { class: "btn btn-sm btn-ghost", onClick: () => showResetConfirm.value = false, children: t("Cancel") }),
u(
                "button",
                {
                  class: "btn btn-sm btn-warning",
                  onClick: () => {
                    appOptionsManager.set("theme", "light");
                    appOptionsManager.set("language", "en");
                    appOptionsManager.set("debug", false);
                    appOptionsManager.set("dateTimeFormat", "YYYY-MM-DD HH:mm:ss Z");
                    appOptionsManager.set("fetchMode", "single");
                    appOptionsManager.set("batchSize", 100);
                    appOptionsManager.set("startingBatch", 0);
                    appOptionsManager.set("timelineType", "media");
                    appOptionsManager.set("mediaType", "all");
                    appOptionsManager.set("convertAnimatedGifs", false);
                    appOptionsManager.set("convertGifsExternal", false);
                    appOptionsManager.set("downloadConcurrency", 1);
                    i18n.changeLanguage("en");
                    showResetConfirm.value = false;
                  },
                  children: u("span", { class: "flex items-center gap-2", children: [
u(IconRestore, { size: 16 }),
                    t("Reset")
                  ] })
                }
              )
            ] })
          ] }) })
        ]
      }
    );
  }
  function MediaDownloaderModal({ isOpen, onClose }) {
    const { t } = useTranslation();
    const activeTab = signals.useSignal("dashboard");
    const showGlobalSettings = signals.useSignal(false);
    const loadFromDatabaseUsername = signals.useSignal("");
    hooks.useEffect(() => {
      (async () => {
        try {
          const n = await mediaDownloaderDB.getAccountsCount();
          dbState.totalAccounts.value = n;
        } catch {
        }
      })();
    }, []);
    if (!isOpen) return null;
    const tabs = [
      { id: "dashboard", label: t("Dashboard") },
      { id: "auth", label: t("Auth") },
      { id: "settings", label: t("Settings") },
      { id: "database", label: t("Database") }
    ];
    return u("div", { class: "modal modal-open", children: [
u("div", { class: "modal-box transition-all duration-300 ease-in-out", children: [
u("div", { class: "flex items-center justify-between mb-4", children: [
u(Title, {}),
u("div", { class: "flex items-center gap-2", children: [
u(
              "button",
              {
                class: "btn btn-sm btn-circle btn-ghost",
                onClick: () => showGlobalSettings.value = true,
                children: u(IconSettings, { size: 18 })
              }
            ),
u(
              "button",
              {
                class: "btn btn-sm btn-circle btn-ghost",
                onClick: onClose,
                children: u(IconX, { size: 18 })
              }
            )
          ] })
        ] }),
u("div", { role: "tablist", class: "tabs tabs-lift mb-4", children: tabs.map((tab) => {
          const isActive = activeTab.value === tab.id;
          const isDatabase = tab.id === "database";
          const cls = `tab ${isActive ? "tab-active" : ""} ${isDatabase ? "relative" : ""}`;
          return u(
            "a",
            {
              role: "tab",
              class: cls,
              onClick: () => activeTab.value = tab.id,
              children: [
                tab.label,
                isDatabase && dbState.totalAccounts.value > 0 && u("span", { class: "badge badge-accent badge-sm absolute -top-2 -right-2", children: dbState.totalAccounts.value })
              ]
            },
            tab.id
          );
        }) }),
u("div", { class: "flex-1 transition-[height,max-height] duration-300 ease-in-out", children: [
u("div", { class: activeTab.value === "dashboard" ? "block" : "hidden", children: u(
            Dashboard,
            {
              loadFromDatabaseUsername
            }
          ) }),
u("div", { class: activeTab.value === "database" ? "block" : "hidden", children: u(
            Database,
            {
              isVisible: activeTab.value === "database",
              onLoadToDashboard: (username) => {
                loadFromDatabaseUsername.value = username;
                activeTab.value = "dashboard";
              }
            }
          ) }),
u("div", { class: activeTab.value === "auth" ? "block" : "hidden", children: u(Auth, {}) }),
u("div", { class: activeTab.value === "settings" ? "block" : "hidden", children: u(Settings, {}) })
        ] })
      ] }),
u("div", { class: "modal-backdrop", onClick: onClose }),
u(
        GlobalSettingsModal,
        {
          isOpen: showGlobalSettings.value,
          onClose: () => showGlobalSettings.value = false
        }
      )
    ] });
  }
  function MediaDownloaderApp() {
    useTranslation();
    const currentTheme = signals.useSignal(appOptionsManager.get("theme"));
    const showMediaDownloader = signals.useSignal(false);
    const toggleMediaDownloader = () => {
      showMediaDownloader.value = !showMediaDownloader.value;
    };
    appOptionsManager.signal.subscribe(() => {
      currentTheme.value = appOptionsManager.get("theme");
    });
    return u(preact.Fragment, { children: [
u("style", { children: `
          @keyframes sparkle {
            0%, 100% { filter: drop-shadow(0 0 8px rgba(29, 155, 240, 0.8)) drop-shadow(0 0 16px rgba(29, 155, 240, 0.6)); }
            50% { filter: drop-shadow(0 0 12px rgba(29, 155, 240, 1)) drop-shadow(0 0 20px rgba(29, 155, 240, 0.8)) drop-shadow(0 0 28px rgba(29, 155, 240, 0.6)); }
          }
          .sparkle-icon {
            animation: sparkle 2s ease-in-out infinite;
          }
        ` }),
u(
        "div",
        {
          onClick: toggleMediaDownloader,
          class: `sparkle-icon fixed top-[50%] left-[-15px] cursor-pointer transition-all duration-300 z-50 ${showMediaDownloader.value ? "translate-x-[15px] rotate-[15deg]" : ""} hover:translate-x-[15px] hover:rotate-[15deg]`,
          children: [
u(IconBrandTwitter, { size: 48, "stroke-width": 1.25, class: "text-white" }),
            dashboardState.isDownloading.value && !showMediaDownloader.value && u("div", { class: "absolute -bottom-1 -right-1 flex items-center justify-center", children: u(
              "div",
              {
                class: "radial-progress text-info bg-base-100",
                style: `--value:${dashboardState.downloadProgress.value}; --size:2rem; --thickness:4px;`,
                role: "progressbar",
                "aria-valuenow": Math.round(dashboardState.downloadProgress.value),
                children: u("span", { class: "text-[10px] font-bold", children: Math.round(dashboardState.downloadProgress.value) })
              }
            ) })
          ]
        }
      ),
u("div", { "data-theme": currentTheme.value, children: [
u(ErrorBoundary, { children: u(
          MediaDownloaderModal,
          {
            isOpen: showMediaDownloader.value,
            onClose: () => showMediaDownloader.value = false
          }
        ) }),
u("div", { id: "tmd-portal-root" })
      ] })
    ] });
  }
  const styles = `/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-normal:1.5;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:where(:root),:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}}:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=dark]:checked),[data-theme=dark]{color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=cupcake]:checked),[data-theme=cupcake]{color-scheme:light;--color-base-100:oklch(97.788% .004 56.375);--color-base-200:oklch(93.982% .007 61.449);--color-base-300:oklch(91.586% .006 53.44);--color-base-content:oklch(23.574% .066 313.189);--color-primary:oklch(85% .138 181.071);--color-primary-content:oklch(43% .078 188.216);--color-secondary:oklch(89% .061 343.231);--color-secondary-content:oklch(45% .187 3.815);--color-accent:oklch(90% .076 70.697);--color-accent-content:oklch(47% .157 37.304);--color-neutral:oklch(27% .006 286.033);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(68% .169 237.323);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(69% .17 162.48);--color-success-content:oklch(26% .051 172.552);--color-warning:oklch(79% .184 86.047);--color-warning-content:oklch(28% .066 53.813);--color-error:oklch(64% .246 16.439);--color-error-content:oklch(27% .105 12.094);--radius-selector:1rem;--radius-field:2rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:2px;--depth:1;--noise:0}:root:has(input.theme-controller[value=bumblebee]:checked),[data-theme=bumblebee]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(97% 0 0);--color-base-300:oklch(92% 0 0);--color-base-content:oklch(20% 0 0);--color-primary:oklch(85% .199 91.936);--color-primary-content:oklch(42% .095 57.708);--color-secondary:oklch(75% .183 55.934);--color-secondary-content:oklch(40% .123 38.172);--color-accent:oklch(0% 0 0);--color-accent-content:oklch(100% 0 0);--color-neutral:oklch(37% .01 67.558);--color-neutral-content:oklch(92% .003 48.717);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(39% .09 240.876);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(70% .191 22.216);--color-error-content:oklch(39% .141 25.723);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=emerald]:checked),[data-theme=emerald]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(93% 0 0);--color-base-300:oklch(86% 0 0);--color-base-content:oklch(35.519% .032 262.988);--color-primary:oklch(76.662% .135 153.45);--color-primary-content:oklch(33.387% .04 162.24);--color-secondary:oklch(61.302% .202 261.294);--color-secondary-content:oklch(100% 0 0);--color-accent:oklch(72.772% .149 33.2);--color-accent-content:oklch(0% 0 0);--color-neutral:oklch(35.519% .032 262.988);--color-neutral-content:oklch(98.462% .001 247.838);--color-info:oklch(72.06% .191 231.6);--color-info-content:oklch(0% 0 0);--color-success:oklch(64.8% .15 160);--color-success-content:oklch(0% 0 0);--color-warning:oklch(84.71% .199 83.87);--color-warning-content:oklch(0% 0 0);--color-error:oklch(71.76% .221 22.18);--color-error-content:oklch(0% 0 0);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=corporate]:checked),[data-theme=corporate]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(93% 0 0);--color-base-300:oklch(86% 0 0);--color-base-content:oklch(22.389% .031 278.072);--color-primary:oklch(58% .158 241.966);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(55% .046 257.417);--color-secondary-content:oklch(100% 0 0);--color-accent:oklch(60% .118 184.704);--color-accent-content:oklch(100% 0 0);--color-neutral:oklch(0% 0 0);--color-neutral-content:oklch(100% 0 0);--color-info:oklch(60% .126 221.723);--color-info-content:oklch(100% 0 0);--color-success:oklch(62% .194 149.214);--color-success-content:oklch(100% 0 0);--color-warning:oklch(85% .199 91.936);--color-warning-content:oklch(0% 0 0);--color-error:oklch(70% .191 22.216);--color-error-content:oklch(0% 0 0);--radius-selector:.25rem;--radius-field:.25rem;--radius-box:.25rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=synthwave]:checked),[data-theme=synthwave]{color-scheme:dark;--color-base-100:oklch(15% .09 281.288);--color-base-200:oklch(20% .09 281.288);--color-base-300:oklch(25% .09 281.288);--color-base-content:oklch(78% .115 274.713);--color-primary:oklch(71% .202 349.761);--color-primary-content:oklch(28% .109 3.907);--color-secondary:oklch(82% .111 230.318);--color-secondary-content:oklch(29% .066 243.157);--color-accent:oklch(75% .183 55.934);--color-accent-content:oklch(26% .079 36.259);--color-neutral:oklch(45% .24 277.023);--color-neutral-content:oklch(87% .065 274.039);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(77% .152 181.912);--color-success-content:oklch(27% .046 192.524);--color-warning:oklch(90% .182 98.111);--color-warning-content:oklch(42% .095 57.708);--color-error:oklch(73.7% .121 32.639);--color-error-content:oklch(23.501% .096 290.329);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=retro]:checked),[data-theme=retro]{color-scheme:light;--color-base-100:oklch(91.637% .034 90.515);--color-base-200:oklch(88.272% .049 91.774);--color-base-300:oklch(84.133% .065 90.856);--color-base-content:oklch(41% .112 45.904);--color-primary:oklch(80% .114 19.571);--color-primary-content:oklch(39% .141 25.723);--color-secondary:oklch(92% .084 155.995);--color-secondary-content:oklch(44% .119 151.328);--color-accent:oklch(68% .162 75.834);--color-accent-content:oklch(41% .112 45.904);--color-neutral:oklch(44% .011 73.639);--color-neutral-content:oklch(86% .005 56.366);--color-info:oklch(58% .158 241.966);--color-info-content:oklch(96% .059 95.617);--color-success:oklch(51% .096 186.391);--color-success-content:oklch(96% .059 95.617);--color-warning:oklch(64% .222 41.116);--color-warning-content:oklch(96% .059 95.617);--color-error:oklch(70% .191 22.216);--color-error-content:oklch(40% .123 38.172);--radius-selector:.25rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=cyberpunk]:checked),[data-theme=cyberpunk]{color-scheme:light;--color-base-100:oklch(94.51% .179 104.32);--color-base-200:oklch(91.51% .179 104.32);--color-base-300:oklch(85.51% .179 104.32);--color-base-content:oklch(0% 0 0);--color-primary:oklch(74.22% .209 6.35);--color-primary-content:oklch(14.844% .041 6.35);--color-secondary:oklch(83.33% .184 204.72);--color-secondary-content:oklch(16.666% .036 204.72);--color-accent:oklch(71.86% .217 310.43);--color-accent-content:oklch(14.372% .043 310.43);--color-neutral:oklch(23.04% .065 269.31);--color-neutral-content:oklch(94.51% .179 104.32);--color-info:oklch(72.06% .191 231.6);--color-info-content:oklch(0% 0 0);--color-success:oklch(64.8% .15 160);--color-success-content:oklch(0% 0 0);--color-warning:oklch(84.71% .199 83.87);--color-warning-content:oklch(0% 0 0);--color-error:oklch(71.76% .221 22.18);--color-error-content:oklch(0% 0 0);--radius-selector:0rem;--radius-field:0rem;--radius-box:0rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=valentine]:checked),[data-theme=valentine]{color-scheme:light;--color-base-100:oklch(97% .014 343.198);--color-base-200:oklch(94% .028 342.258);--color-base-300:oklch(89% .061 343.231);--color-base-content:oklch(52% .223 3.958);--color-primary:oklch(65% .241 354.308);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(62% .265 303.9);--color-secondary-content:oklch(97% .014 308.299);--color-accent:oklch(82% .111 230.318);--color-accent-content:oklch(39% .09 240.876);--color-neutral:oklch(40% .153 2.432);--color-neutral-content:oklch(89% .061 343.231);--color-info:oklch(86% .127 207.078);--color-info-content:oklch(44% .11 240.79);--color-success:oklch(84% .143 164.978);--color-success-content:oklch(43% .095 166.913);--color-warning:oklch(75% .183 55.934);--color-warning-content:oklch(26% .079 36.259);--color-error:oklch(63% .237 25.331);--color-error-content:oklch(97% .013 17.38);--radius-selector:1rem;--radius-field:2rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=halloween]:checked),[data-theme=halloween]{color-scheme:dark;--color-base-100:oklch(21% .006 56.043);--color-base-200:oklch(14% .004 49.25);--color-base-300:oklch(0% 0 0);--color-base-content:oklch(84.955% 0 0);--color-primary:oklch(77.48% .204 60.62);--color-primary-content:oklch(19.693% .004 196.779);--color-secondary:oklch(45.98% .248 305.03);--color-secondary-content:oklch(89.196% .049 305.03);--color-accent:oklch(64.8% .223 136.073);--color-accent-content:oklch(0% 0 0);--color-neutral:oklch(24.371% .046 65.681);--color-neutral-content:oklch(84.874% .009 65.681);--color-info:oklch(54.615% .215 262.88);--color-info-content:oklch(90.923% .043 262.88);--color-success:oklch(62.705% .169 149.213);--color-success-content:oklch(12.541% .033 149.213);--color-warning:oklch(66.584% .157 58.318);--color-warning-content:oklch(13.316% .031 58.318);--color-error:oklch(65.72% .199 27.33);--color-error-content:oklch(13.144% .039 27.33);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=garden]:checked),[data-theme=garden]{color-scheme:light;--color-base-100:oklch(92.951% .002 17.197);--color-base-200:oklch(86.445% .002 17.197);--color-base-300:oklch(79.938% .001 17.197);--color-base-content:oklch(16.961% .001 17.32);--color-primary:oklch(62.45% .278 3.836);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(48.495% .11 355.095);--color-secondary-content:oklch(89.699% .022 355.095);--color-accent:oklch(56.273% .054 154.39);--color-accent-content:oklch(100% 0 0);--color-neutral:oklch(24.155% .049 89.07);--color-neutral-content:oklch(92.951% .002 17.197);--color-info:oklch(72.06% .191 231.6);--color-info-content:oklch(0% 0 0);--color-success:oklch(64.8% .15 160);--color-success-content:oklch(0% 0 0);--color-warning:oklch(84.71% .199 83.87);--color-warning-content:oklch(0% 0 0);--color-error:oklch(71.76% .221 22.18);--color-error-content:oklch(0% 0 0);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=forest]:checked),[data-theme=forest]{color-scheme:dark;--color-base-100:oklch(20.84% .008 17.911);--color-base-200:oklch(18.522% .007 17.911);--color-base-300:oklch(16.203% .007 17.911);--color-base-content:oklch(83.768% .001 17.911);--color-primary:oklch(68.628% .185 148.958);--color-primary-content:oklch(0% 0 0);--color-secondary:oklch(69.776% .135 168.327);--color-secondary-content:oklch(13.955% .027 168.327);--color-accent:oklch(70.628% .119 185.713);--color-accent-content:oklch(14.125% .023 185.713);--color-neutral:oklch(30.698% .039 171.364);--color-neutral-content:oklch(86.139% .007 171.364);--color-info:oklch(72.06% .191 231.6);--color-info-content:oklch(0% 0 0);--color-success:oklch(64.8% .15 160);--color-success-content:oklch(0% 0 0);--color-warning:oklch(84.71% .199 83.87);--color-warning-content:oklch(0% 0 0);--color-error:oklch(71.76% .221 22.18);--color-error-content:oklch(0% 0 0);--radius-selector:1rem;--radius-field:2rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=aqua]:checked),[data-theme=aqua]{color-scheme:dark;--color-base-100:oklch(37% .146 265.522);--color-base-200:oklch(28% .091 267.935);--color-base-300:oklch(22% .091 267.935);--color-base-content:oklch(90% .058 230.902);--color-primary:oklch(85.661% .144 198.645);--color-primary-content:oklch(40.124% .068 197.603);--color-secondary:oklch(60.682% .108 309.782);--color-secondary-content:oklch(96% .016 293.756);--color-accent:oklch(93.426% .102 94.555);--color-accent-content:oklch(18.685% .02 94.555);--color-neutral:oklch(27% .146 265.522);--color-neutral-content:oklch(80% .146 265.522);--color-info:oklch(54.615% .215 262.88);--color-info-content:oklch(90.923% .043 262.88);--color-success:oklch(62.705% .169 149.213);--color-success-content:oklch(12.541% .033 149.213);--color-warning:oklch(66.584% .157 58.318);--color-warning-content:oklch(27% .077 45.635);--color-error:oklch(73.95% .19 27.33);--color-error-content:oklch(14.79% .038 27.33);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=lofi]:checked),[data-theme=lofi]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(97% 0 0);--color-base-300:oklch(94% 0 0);--color-base-content:oklch(0% 0 0);--color-primary:oklch(15.906% 0 0);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(21.455% .001 17.278);--color-secondary-content:oklch(100% 0 0);--color-accent:oklch(26.861% 0 0);--color-accent-content:oklch(100% 0 0);--color-neutral:oklch(0% 0 0);--color-neutral-content:oklch(100% 0 0);--color-info:oklch(79.54% .103 205.9);--color-info-content:oklch(15.908% .02 205.9);--color-success:oklch(90.13% .153 164.14);--color-success-content:oklch(18.026% .03 164.14);--color-warning:oklch(88.37% .135 79.94);--color-warning-content:oklch(17.674% .027 79.94);--color-error:oklch(78.66% .15 28.47);--color-error-content:oklch(15.732% .03 28.47);--radius-selector:2rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=pastel]:checked),[data-theme=pastel]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98.462% .001 247.838);--color-base-300:oklch(92.462% .001 247.838);--color-base-content:oklch(20% 0 0);--color-primary:oklch(90% .063 306.703);--color-primary-content:oklch(49% .265 301.924);--color-secondary:oklch(89% .058 10.001);--color-secondary-content:oklch(51% .222 16.935);--color-accent:oklch(90% .093 164.15);--color-accent-content:oklch(50% .118 165.612);--color-neutral:oklch(55% .046 257.417);--color-neutral-content:oklch(92% .013 255.508);--color-info:oklch(86% .127 207.078);--color-info-content:oklch(52% .105 223.128);--color-success:oklch(87% .15 154.449);--color-success-content:oklch(52% .154 150.069);--color-warning:oklch(83% .128 66.29);--color-warning-content:oklch(55% .195 38.402);--color-error:oklch(80% .114 19.571);--color-error-content:oklch(50% .213 27.518);--radius-selector:1rem;--radius-field:2rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:2px;--depth:0;--noise:0}:root:has(input.theme-controller[value=fantasy]:checked),[data-theme=fantasy]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(93% 0 0);--color-base-300:oklch(86% 0 0);--color-base-content:oklch(27.807% .029 256.847);--color-primary:oklch(37.45% .189 325.02);--color-primary-content:oklch(87.49% .037 325.02);--color-secondary:oklch(53.92% .162 241.36);--color-secondary-content:oklch(90.784% .032 241.36);--color-accent:oklch(75.98% .204 56.72);--color-accent-content:oklch(15.196% .04 56.72);--color-neutral:oklch(27.807% .029 256.847);--color-neutral-content:oklch(85.561% .005 256.847);--color-info:oklch(72.06% .191 231.6);--color-info-content:oklch(0% 0 0);--color-success:oklch(64.8% .15 160);--color-success-content:oklch(0% 0 0);--color-warning:oklch(84.71% .199 83.87);--color-warning-content:oklch(0% 0 0);--color-error:oklch(71.76% .221 22.18);--color-error-content:oklch(0% 0 0);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=wireframe]:checked),[data-theme=wireframe]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(97% 0 0);--color-base-300:oklch(94% 0 0);--color-base-content:oklch(20% 0 0);--color-primary:oklch(87% 0 0);--color-primary-content:oklch(26% 0 0);--color-secondary:oklch(87% 0 0);--color-secondary-content:oklch(26% 0 0);--color-accent:oklch(87% 0 0);--color-accent-content:oklch(26% 0 0);--color-neutral:oklch(87% 0 0);--color-neutral-content:oklch(26% 0 0);--color-info:oklch(44% .11 240.79);--color-info-content:oklch(90% .058 230.902);--color-success:oklch(43% .095 166.913);--color-success-content:oklch(90% .093 164.15);--color-warning:oklch(47% .137 46.201);--color-warning-content:oklch(92% .12 95.746);--color-error:oklch(44% .177 26.899);--color-error-content:oklch(88% .062 18.334);--radius-selector:0rem;--radius-field:.25rem;--radius-box:.25rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=black]:checked),[data-theme=black]{color-scheme:dark;--color-base-100:oklch(0% 0 0);--color-base-200:oklch(19% 0 0);--color-base-300:oklch(22% 0 0);--color-base-content:oklch(87.609% 0 0);--color-primary:oklch(35% 0 0);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(35% 0 0);--color-secondary-content:oklch(100% 0 0);--color-accent:oklch(35% 0 0);--color-accent-content:oklch(100% 0 0);--color-neutral:oklch(35% 0 0);--color-neutral-content:oklch(100% 0 0);--color-info:oklch(45.201% .313 264.052);--color-info-content:oklch(89.04% .062 264.052);--color-success:oklch(51.975% .176 142.495);--color-success-content:oklch(90.395% .035 142.495);--color-warning:oklch(96.798% .211 109.769);--color-warning-content:oklch(19.359% .042 109.769);--color-error:oklch(62.795% .257 29.233);--color-error-content:oklch(12.559% .051 29.233);--radius-selector:0rem;--radius-field:0rem;--radius-box:0rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=luxury]:checked),[data-theme=luxury]{color-scheme:dark;--color-base-100:oklch(14.076% .004 285.822);--color-base-200:oklch(20.219% .004 308.229);--color-base-300:oklch(23.219% .004 308.229);--color-base-content:oklch(75.687% .123 76.89);--color-primary:oklch(100% 0 0);--color-primary-content:oklch(20% 0 0);--color-secondary:oklch(27.581% .064 261.069);--color-secondary-content:oklch(85.516% .012 261.069);--color-accent:oklch(36.674% .051 338.825);--color-accent-content:oklch(87.334% .01 338.825);--color-neutral:oklch(24.27% .057 59.825);--color-neutral-content:oklch(93.203% .089 90.861);--color-info:oklch(79.061% .121 237.133);--color-info-content:oklch(15.812% .024 237.133);--color-success:oklch(78.119% .192 132.154);--color-success-content:oklch(15.623% .038 132.154);--color-warning:oklch(86.127% .136 102.891);--color-warning-content:oklch(17.225% .027 102.891);--color-error:oklch(71.753% .176 22.568);--color-error-content:oklch(14.35% .035 22.568);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=dracula]:checked),[data-theme=dracula]{color-scheme:dark;--color-base-100:oklch(28.822% .022 277.508);--color-base-200:oklch(26.805% .02 277.508);--color-base-300:oklch(24.787% .019 277.508);--color-base-content:oklch(97.747% .007 106.545);--color-primary:oklch(75.461% .183 346.812);--color-primary-content:oklch(15.092% .036 346.812);--color-secondary:oklch(74.202% .148 301.883);--color-secondary-content:oklch(14.84% .029 301.883);--color-accent:oklch(83.392% .124 66.558);--color-accent-content:oklch(16.678% .024 66.558);--color-neutral:oklch(39.445% .032 275.524);--color-neutral-content:oklch(87.889% .006 275.524);--color-info:oklch(88.263% .093 212.846);--color-info-content:oklch(17.652% .018 212.846);--color-success:oklch(87.099% .219 148.024);--color-success-content:oklch(17.419% .043 148.024);--color-warning:oklch(95.533% .134 112.757);--color-warning-content:oklch(19.106% .026 112.757);--color-error:oklch(68.22% .206 24.43);--color-error-content:oklch(13.644% .041 24.43);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=cmyk]:checked),[data-theme=cmyk]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(95% 0 0);--color-base-300:oklch(90% 0 0);--color-base-content:oklch(20% 0 0);--color-primary:oklch(71.772% .133 239.443);--color-primary-content:oklch(14.354% .026 239.443);--color-secondary:oklch(64.476% .202 359.339);--color-secondary-content:oklch(12.895% .04 359.339);--color-accent:oklch(94.228% .189 105.306);--color-accent-content:oklch(18.845% .037 105.306);--color-neutral:oklch(21.778% 0 0);--color-neutral-content:oklch(84.355% 0 0);--color-info:oklch(68.475% .094 217.284);--color-info-content:oklch(13.695% .018 217.284);--color-success:oklch(46.949% .162 321.406);--color-success-content:oklch(89.389% .032 321.406);--color-warning:oklch(71.236% .159 52.023);--color-warning-content:oklch(14.247% .031 52.023);--color-error:oklch(62.013% .208 28.717);--color-error-content:oklch(12.402% .041 28.717);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=autumn]:checked),[data-theme=autumn]{color-scheme:light;--color-base-100:oklch(95.814% 0 0);--color-base-200:oklch(89.107% 0 0);--color-base-300:oklch(82.4% 0 0);--color-base-content:oklch(19.162% 0 0);--color-primary:oklch(40.723% .161 17.53);--color-primary-content:oklch(88.144% .032 17.53);--color-secondary:oklch(61.676% .169 23.865);--color-secondary-content:oklch(12.335% .033 23.865);--color-accent:oklch(73.425% .094 60.729);--color-accent-content:oklch(14.685% .018 60.729);--color-neutral:oklch(54.367% .037 51.902);--color-neutral-content:oklch(90.873% .007 51.902);--color-info:oklch(69.224% .097 207.284);--color-info-content:oklch(13.844% .019 207.284);--color-success:oklch(60.995% .08 174.616);--color-success-content:oklch(12.199% .016 174.616);--color-warning:oklch(70.081% .164 56.844);--color-warning-content:oklch(14.016% .032 56.844);--color-error:oklch(53.07% .241 24.16);--color-error-content:oklch(90.614% .048 24.16);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=business]:checked),[data-theme=business]{color-scheme:dark;--color-base-100:oklch(24.353% 0 0);--color-base-200:oklch(22.648% 0 0);--color-base-300:oklch(20.944% 0 0);--color-base-content:oklch(84.87% 0 0);--color-primary:oklch(41.703% .099 251.473);--color-primary-content:oklch(88.34% .019 251.473);--color-secondary:oklch(64.092% .027 229.389);--color-secondary-content:oklch(12.818% .005 229.389);--color-accent:oklch(67.271% .167 35.791);--color-accent-content:oklch(13.454% .033 35.791);--color-neutral:oklch(27.441% .013 253.041);--color-neutral-content:oklch(85.488% .002 253.041);--color-info:oklch(62.616% .143 240.033);--color-info-content:oklch(12.523% .028 240.033);--color-success:oklch(70.226% .094 156.596);--color-success-content:oklch(14.045% .018 156.596);--color-warning:oklch(77.482% .115 81.519);--color-warning-content:oklch(15.496% .023 81.519);--color-error:oklch(51.61% .146 29.674);--color-error-content:oklch(90.322% .029 29.674);--radius-selector:0rem;--radius-field:.25rem;--radius-box:.25rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=acid]:checked),[data-theme=acid]{color-scheme:light;--color-base-100:oklch(98% 0 0);--color-base-200:oklch(95% 0 0);--color-base-300:oklch(91% 0 0);--color-base-content:oklch(0% 0 0);--color-primary:oklch(71.9% .357 330.759);--color-primary-content:oklch(14.38% .071 330.759);--color-secondary:oklch(73.37% .224 48.25);--color-secondary-content:oklch(14.674% .044 48.25);--color-accent:oklch(92.78% .264 122.962);--color-accent-content:oklch(18.556% .052 122.962);--color-neutral:oklch(21.31% .128 278.68);--color-neutral-content:oklch(84.262% .025 278.68);--color-info:oklch(60.72% .227 252.05);--color-info-content:oklch(12.144% .045 252.05);--color-success:oklch(85.72% .266 158.53);--color-success-content:oklch(17.144% .053 158.53);--color-warning:oklch(91.01% .212 100.5);--color-warning-content:oklch(18.202% .042 100.5);--color-error:oklch(64.84% .293 29.349);--color-error-content:oklch(12.968% .058 29.349);--radius-selector:1rem;--radius-field:1rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=lemonade]:checked),[data-theme=lemonade]{color-scheme:light;--color-base-100:oklch(98.71% .02 123.72);--color-base-200:oklch(91.8% .018 123.72);--color-base-300:oklch(84.89% .017 123.72);--color-base-content:oklch(19.742% .004 123.72);--color-primary:oklch(58.92% .199 134.6);--color-primary-content:oklch(11.784% .039 134.6);--color-secondary:oklch(77.75% .196 111.09);--color-secondary-content:oklch(15.55% .039 111.09);--color-accent:oklch(85.39% .201 100.73);--color-accent-content:oklch(17.078% .04 100.73);--color-neutral:oklch(30.98% .075 108.6);--color-neutral-content:oklch(86.196% .015 108.6);--color-info:oklch(86.19% .047 224.14);--color-info-content:oklch(17.238% .009 224.14);--color-success:oklch(86.19% .047 157.85);--color-success-content:oklch(17.238% .009 157.85);--color-warning:oklch(86.19% .047 102.15);--color-warning-content:oklch(17.238% .009 102.15);--color-error:oklch(86.19% .047 25.85);--color-error-content:oklch(17.238% .009 25.85);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=night]:checked),[data-theme=night]{color-scheme:dark;--color-base-100:oklch(20.768% .039 265.754);--color-base-200:oklch(19.314% .037 265.754);--color-base-300:oklch(17.86% .034 265.754);--color-base-content:oklch(84.153% .007 265.754);--color-primary:oklch(75.351% .138 232.661);--color-primary-content:oklch(15.07% .027 232.661);--color-secondary:oklch(68.011% .158 276.934);--color-secondary-content:oklch(13.602% .031 276.934);--color-accent:oklch(72.36% .176 350.048);--color-accent-content:oklch(14.472% .035 350.048);--color-neutral:oklch(27.949% .036 260.03);--color-neutral-content:oklch(85.589% .007 260.03);--color-info:oklch(68.455% .148 237.251);--color-info-content:oklch(0% 0 0);--color-success:oklch(78.452% .132 181.911);--color-success-content:oklch(15.69% .026 181.911);--color-warning:oklch(83.242% .139 82.95);--color-warning-content:oklch(16.648% .027 82.95);--color-error:oklch(71.785% .17 13.118);--color-error-content:oklch(14.357% .034 13.118);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=coffee]:checked),[data-theme=coffee]{color-scheme:dark;--color-base-100:oklch(24% .023 329.708);--color-base-200:oklch(21% .021 329.708);--color-base-300:oklch(16% .019 329.708);--color-base-content:oklch(72.354% .092 79.129);--color-primary:oklch(71.996% .123 62.756);--color-primary-content:oklch(14.399% .024 62.756);--color-secondary:oklch(34.465% .029 199.194);--color-secondary-content:oklch(86.893% .005 199.194);--color-accent:oklch(42.621% .074 224.389);--color-accent-content:oklch(88.524% .014 224.389);--color-neutral:oklch(16.51% .015 326.261);--color-neutral-content:oklch(83.302% .003 326.261);--color-info:oklch(79.49% .063 184.558);--color-info-content:oklch(15.898% .012 184.558);--color-success:oklch(74.722% .072 131.116);--color-success-content:oklch(14.944% .014 131.116);--color-warning:oklch(88.15% .14 87.722);--color-warning-content:oklch(17.63% .028 87.722);--color-error:oklch(77.318% .128 31.871);--color-error-content:oklch(15.463% .025 31.871);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=winter]:checked),[data-theme=winter]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(97.466% .011 259.822);--color-base-300:oklch(93.268% .016 262.751);--color-base-content:oklch(41.886% .053 255.824);--color-primary:oklch(56.86% .255 257.57);--color-primary-content:oklch(91.372% .051 257.57);--color-secondary:oklch(42.551% .161 282.339);--color-secondary-content:oklch(88.51% .032 282.339);--color-accent:oklch(59.939% .191 335.171);--color-accent-content:oklch(11.988% .038 335.171);--color-neutral:oklch(19.616% .063 257.651);--color-neutral-content:oklch(83.923% .012 257.651);--color-info:oklch(88.127% .085 214.515);--color-info-content:oklch(17.625% .017 214.515);--color-success:oklch(80.494% .077 197.823);--color-success-content:oklch(16.098% .015 197.823);--color-warning:oklch(89.172% .045 71.47);--color-warning-content:oklch(17.834% .009 71.47);--color-error:oklch(73.092% .11 20.076);--color-error-content:oklch(14.618% .022 20.076);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=dim]:checked),[data-theme=dim]{color-scheme:dark;--color-base-100:oklch(30.857% .023 264.149);--color-base-200:oklch(28.036% .019 264.182);--color-base-300:oklch(26.346% .018 262.177);--color-base-content:oklch(82.901% .031 222.959);--color-primary:oklch(86.133% .141 139.549);--color-primary-content:oklch(17.226% .028 139.549);--color-secondary:oklch(73.375% .165 35.353);--color-secondary-content:oklch(14.675% .033 35.353);--color-accent:oklch(74.229% .133 311.379);--color-accent-content:oklch(14.845% .026 311.379);--color-neutral:oklch(24.731% .02 264.094);--color-neutral-content:oklch(82.901% .031 222.959);--color-info:oklch(86.078% .142 206.182);--color-info-content:oklch(17.215% .028 206.182);--color-success:oklch(86.171% .142 166.534);--color-success-content:oklch(17.234% .028 166.534);--color-warning:oklch(86.163% .142 94.818);--color-warning-content:oklch(17.232% .028 94.818);--color-error:oklch(82.418% .099 33.756);--color-error-content:oklch(16.483% .019 33.756);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=nord]:checked),[data-theme=nord]{color-scheme:light;--color-base-100:oklch(95.127% .007 260.731);--color-base-200:oklch(93.299% .01 261.788);--color-base-300:oklch(89.925% .016 262.749);--color-base-content:oklch(32.437% .022 264.182);--color-primary:oklch(59.435% .077 254.027);--color-primary-content:oklch(11.887% .015 254.027);--color-secondary:oklch(69.651% .059 248.687);--color-secondary-content:oklch(13.93% .011 248.687);--color-accent:oklch(77.464% .062 217.469);--color-accent-content:oklch(15.492% .012 217.469);--color-neutral:oklch(45.229% .035 264.131);--color-neutral-content:oklch(89.925% .016 262.749);--color-info:oklch(69.207% .062 332.664);--color-info-content:oklch(13.841% .012 332.664);--color-success:oklch(76.827% .074 131.063);--color-success-content:oklch(15.365% .014 131.063);--color-warning:oklch(85.486% .089 84.093);--color-warning-content:oklch(17.097% .017 84.093);--color-error:oklch(60.61% .12 15.341);--color-error-content:oklch(12.122% .024 15.341);--radius-selector:1rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=sunset]:checked),[data-theme=sunset]{color-scheme:dark;--color-base-100:oklch(22% .019 237.69);--color-base-200:oklch(20% .019 237.69);--color-base-300:oklch(18% .019 237.69);--color-base-content:oklch(77.383% .043 245.096);--color-primary:oklch(74.703% .158 39.947);--color-primary-content:oklch(14.94% .031 39.947);--color-secondary:oklch(72.537% .177 2.72);--color-secondary-content:oklch(14.507% .035 2.72);--color-accent:oklch(71.294% .166 299.844);--color-accent-content:oklch(14.258% .033 299.844);--color-neutral:oklch(26% .019 237.69);--color-neutral-content:oklch(70% .019 237.69);--color-info:oklch(85.559% .085 206.015);--color-info-content:oklch(17.111% .017 206.015);--color-success:oklch(85.56% .085 144.778);--color-success-content:oklch(17.112% .017 144.778);--color-warning:oklch(85.569% .084 74.427);--color-warning-content:oklch(17.113% .016 74.427);--color-error:oklch(85.511% .078 16.886);--color-error-content:oklch(17.102% .015 16.886);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=caramellatte]:checked),[data-theme=caramellatte]{color-scheme:light;--color-base-100:oklch(98% .016 73.684);--color-base-200:oklch(95% .038 75.164);--color-base-300:oklch(90% .076 70.697);--color-base-content:oklch(40% .123 38.172);--color-primary:oklch(0% 0 0);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(22.45% .075 37.85);--color-secondary-content:oklch(90% .076 70.697);--color-accent:oklch(46.44% .111 37.85);--color-accent-content:oklch(90% .076 70.697);--color-neutral:oklch(55% .195 38.402);--color-neutral-content:oklch(98% .016 73.684);--color-info:oklch(42% .199 265.638);--color-info-content:oklch(90% .076 70.697);--color-success:oklch(43% .095 166.913);--color-success-content:oklch(90% .076 70.697);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(70% .191 22.216);--color-error-content:oklch(39% .141 25.723);--radius-selector:2rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:2px;--depth:1;--noise:1}:root:has(input.theme-controller[value=abyss]:checked),[data-theme=abyss]{color-scheme:dark;--color-base-100:oklch(20% .08 209);--color-base-200:oklch(15% .08 209);--color-base-300:oklch(10% .08 209);--color-base-content:oklch(90% .076 70.697);--color-primary:oklch(92% .2653 125);--color-primary-content:oklch(50% .2653 125);--color-secondary:oklch(83.27% .0764 298.3);--color-secondary-content:oklch(43.27% .0764 298.3);--color-accent:oklch(43% 0 0);--color-accent-content:oklch(98% 0 0);--color-neutral:oklch(30% .08 209);--color-neutral-content:oklch(90% .076 70.697);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(79% .209 151.711);--color-success-content:oklch(26% .065 152.934);--color-warning:oklch(84.8% .1962 84.62);--color-warning-content:oklch(44.8% .1962 84.62);--color-error:oklch(65% .1985 24.22);--color-error-content:oklch(27% .1985 24.22);--radius-selector:2rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=silk]:checked),[data-theme=silk]{color-scheme:light;--color-base-100:oklch(97% .0035 67.78);--color-base-200:oklch(95% .0081 61.42);--color-base-300:oklch(90% .0081 61.42);--color-base-content:oklch(40% .0081 61.42);--color-primary:oklch(23.27% .0249 284.3);--color-primary-content:oklch(94.22% .2505 117.44);--color-secondary:oklch(23.27% .0249 284.3);--color-secondary-content:oklch(73.92% .2135 50.94);--color-accent:oklch(23.27% .0249 284.3);--color-accent-content:oklch(88.92% .2061 189.9);--color-neutral:oklch(20% 0 0);--color-neutral-content:oklch(80% .0081 61.42);--color-info:oklch(80.39% .1148 241.68);--color-info-content:oklch(30.39% .1148 241.68);--color-success:oklch(83.92% .0901 136.87);--color-success-content:oklch(23.92% .0901 136.87);--color-warning:oklch(83.92% .1085 80);--color-warning-content:oklch(43.92% .1085 80);--color-error:oklch(75.1% .1814 22.37);--color-error-content:oklch(35.1% .1814 22.37);--radius-selector:2rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:2px;--depth:1;--noise:0}:root{--fx-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.34' numOctaves='4' stitchTiles='stitch'%3E%3C/feTurbulence%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23a)' opacity='0.2'%3E%3C/rect%3E%3C/svg%3E");scrollbar-color:currentColor #0000}@supports (color:color-mix(in lab,red,red)){:root{scrollbar-color:color-mix(in oklch,currentColor 35%,#0000)#0000}}@property --radialprogress{syntax: "<percentage>"; inherits: true; initial-value: 0%;}:root:has(.modal-open,.modal[open],.modal:target,.modal-toggle:checked),:root:has(.drawer:not([class*=drawer-open])>.drawer-toggle:checked){--page-has-backdrop:1;overflow:hidden}@media not all and (min-width:40rem){:root:has(.sm\\:drawer-open>.drawer-toggle:checked){--page-has-backdrop:1;overflow:hidden}}@media not all and (min-width:48rem){:root:has(.md\\:drawer-open>.drawer-toggle:checked){--page-has-backdrop:1;overflow:hidden}}@media not all and (min-width:64rem){:root:has(.lg\\:drawer-open>.drawer-toggle:checked){--page-has-backdrop:1;overflow:hidden}}@media not all and (min-width:80rem){:root:has(.xl\\:drawer-open>.drawer-toggle:checked){--page-has-backdrop:1;overflow:hidden}}@media not all and (min-width:96rem){:root:has(.\\32xl\\:drawer-open>.drawer-toggle:checked){--page-has-backdrop:1;overflow:hidden}}@media(min-width:40rem){:root:has(.max-sm\\:drawer-open>.drawer-toggle:checked){--page-has-backdrop:1;overflow:hidden}}@media(min-width:48rem){:root:has(.max-md\\:drawer-open>.drawer-toggle:checked){--page-has-backdrop:1;overflow:hidden}}@media(min-width:64rem){:root:has(.max-lg\\:drawer-open>.drawer-toggle:checked){--page-has-backdrop:1;overflow:hidden}}@media(min-width:80rem){:root:has(.max-xl\\:drawer-open>.drawer-toggle:checked){--page-has-backdrop:1;overflow:hidden}}@media(min-width:96rem){:root:has(.max-2xl\\:drawer-open>.drawer-toggle:checked){--page-has-backdrop:1;overflow:hidden}}:root:has(.modal-open,.modal[open],.modal:target,.modal-toggle:checked,.drawer:not(.drawer-open)>.drawer-toggle:checked){background-image:linear-gradient(var(--root-bg),var(--root-bg));background-color:var(--root-bg)}@supports (color:color-mix(in lab,red,red)){:root:has(.modal-open,.modal[open],.modal:target,.modal-toggle:checked,.drawer:not(.drawer-open)>.drawer-toggle:checked){background-color:color-mix(in srgb,var(--root-bg),oklch(0% 0 0) calc(var(--page-has-backdrop,0)*40%))}}:root:has(.modal-open,.modal[open],.modal:target,.modal-toggle:checked,.drawer:not(.drawer-open)>.drawer-toggle:checked){scrollbar-gutter:stable;scrollbar-gutter:if(style(--page-has-scroll: 1): stable; else: unset);animation:forwards set-page-has-scroll;animation-timeline:scroll()}@keyframes set-page-has-scroll{0%,to{--page-has-scroll:1}}:root,[data-theme]{background-color:var(--root-bg,var(--color-base-100));color:var(--color-base-content)}:where(:root,[data-theme]){--root-bg:var(--color-base-100)}}@layer components;@layer utilities{@layer daisyui.component{.diff{webkit-user-select:none;-webkit-user-select:none;user-select:none;direction:ltr;grid-template-rows:1fr 1.8rem 1fr;grid-template-columns:auto 1fr;width:100%;display:grid;position:relative;overflow:hidden;container-type:inline-size}.diff:focus-visible,.diff:has(.diff-item-1:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content)}.diff:focus-visible .diff-resizer{min-width:95cqi;max-width:95cqi}.diff:has(.diff-item-1:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px}.diff:has(.diff-item-1:focus-visible) .diff-resizer{min-width:5cqi;max-width:5cqi}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){.diff:focus .diff-resizer{min-width:5cqi;max-width:5cqi}.diff:has(.diff-item-1:focus) .diff-resizer{min-width:95cqi;max-width:95cqi}}.modal{pointer-events:none;visibility:hidden;width:100%;max-width:none;height:100%;max-height:none;color:inherit;transition:visibility .3s allow-discrete,background-color .3s ease-out,opacity .1s ease-out;overscroll-behavior:contain;z-index:999;scrollbar-gutter:auto;background-color:#0000;place-items:center;margin:0;padding:0;display:grid;position:fixed;inset:0;overflow:clip}.modal::backdrop{display:none}.tooltip{--tt-bg:var(--color-neutral);--tt-off: calc(100% + .5rem) ;--tt-tail: calc(100% + 1px + .25rem) ;display:inline-block;position:relative}.tooltip>.tooltip-content,.tooltip[data-tip]:before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;position:absolute}@media(prefers-reduced-motion:no-preference){.tooltip>.tooltip-content,.tooltip[data-tip]:before,.tooltip:after{transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms}}.tooltip:after{opacity:0;background-color:var(--tt-bg);content:"";pointer-events:none;--mask-tooltip:url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");width:.625rem;height:.25rem;-webkit-mask-position:-1px 0;mask-position:-1px 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:var(--mask-tooltip);mask-image:var(--mask-tooltip);display:block;position:absolute}:is(.tooltip.tooltip-open,.tooltip[data-tip]:not([data-tip=""]):hover,.tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.tooltip:has(:focus-visible))>.tooltip-content,:is(.tooltip.tooltip-open,.tooltip[data-tip]:not([data-tip=""]):hover,.tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.tooltip:has(:focus-visible))[data-tip]:before,:is(.tooltip.tooltip-open,.tooltip[data-tip]:not([data-tip=""]):hover,.tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.tooltip:has(:focus-visible)):after{opacity:1;--tt-pos:0rem}@media(prefers-reduced-motion:no-preference){:is(.tooltip.tooltip-open,.tooltip[data-tip]:not([data-tip=""]):hover,.tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.tooltip:has(:focus-visible))>.tooltip-content,:is(.tooltip.tooltip-open,.tooltip[data-tip]:not([data-tip=""]):hover,.tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.tooltip:has(:focus-visible))[data-tip]:before,:is(.tooltip.tooltip-open,.tooltip[data-tip]:not([data-tip=""]):hover,.tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.tooltip:has(:focus-visible)):after{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}.tab{cursor:pointer;appearance:none;text-align:center;webkit-user-select:none;-webkit-user-select:none;user-select:none;flex-wrap:wrap;justify-content:center;align-items:center;display:inline-flex;position:relative}@media(hover:hover){.tab:hover{color:var(--color-base-content)}}.tab{--tab-p:1rem;--tab-bg:var(--color-base-100);--tab-border-color:var(--color-base-300);--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:0;--tab-radius-ee:0;--tab-order:0;--tab-radius-min:calc(.75rem - var(--border));order:var(--tab-order);height:var(--tab-height);border-color:#0000;padding-inline-start:var(--tab-p);padding-inline-end:var(--tab-p);font-size:.875rem}.tab:is(input[type=radio]){min-width:fit-content}.tab:is(input[type=radio]):after{--tw-content:attr(aria-label);content:var(--tw-content)}.tab:is(label){position:relative}.tab:is(label) input{cursor:pointer;appearance:none;opacity:0;position:absolute;inset:0}:is(.tab:checked,.tab:is(label:has(:checked)),.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content{height:calc(100% - var(--tab-height) + var(--border));display:block}.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:color-mix(in oklab,var(--color-base-content)50%,transparent)}}.tab:not(input):empty{cursor:default;flex-grow:1}.tab:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.tab:focus{outline-offset:2px;outline:2px solid #0000}}.tab:focus-visible,.tab:is(label:has(:checked:focus-visible)){outline-offset:-5px;outline:2px solid}.tab[disabled]{pointer-events:none;opacity:.4}.menu{--menu-active-fg:var(--color-neutral-content);--menu-active-bg:var(--color-neutral);flex-flow:column wrap;width:fit-content;padding:.5rem;font-size:.875rem;display:flex}.menu :where(li ul){white-space:nowrap;margin-inline-start:1rem;padding-inline-start:.5rem;position:relative}.menu :where(li ul):before{background-color:var(--color-base-content);opacity:.1;width:var(--border);content:"";inset-inline-start:0;position:absolute;top:.75rem;bottom:.75rem}.menu :where(li>.menu-dropdown:not(.menu-dropdown-show)){display:none}.menu :where(li:not(.menu-title)>:not(ul,details,.menu-title,.btn)),.menu :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);text-align:start;text-wrap:balance;-webkit-user-select:none;user-select:none;grid-auto-columns:minmax(auto,max-content) auto max-content;grid-auto-flow:column;align-content:flex-start;align-items:center;gap:.5rem;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:grid}.menu :where(li>details>summary){--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.menu :where(li>details>summary){outline-offset:2px;outline:2px solid #0000}}.menu :where(li>details>summary)::-webkit-details-marker{display:none}:is(.menu :where(li>details>summary),.menu :where(li>.menu-dropdown-toggle)):after{content:"";transform-origin:50%;pointer-events:none;justify-self:flex-end;width:.375rem;height:.375rem;transition-property:rotate,translate;transition-duration:.2s;display:block;translate:0 -1px;rotate:-135deg;box-shadow:inset 2px 2px}.menu :where(li>details[open]>summary):after,.menu :where(li>.menu-dropdown-toggle.menu-dropdown-show):after{translate:0 1px;rotate:45deg}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{color:var(--color-base-content);--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){box-shadow:inset 0 1px #00000003,inset 0 -1px #ffffff03}.menu :where(li:empty){background-color:var(--color-base-content);opacity:.1;height:1px;margin:.5rem 1rem}.menu :where(li){flex-flow:column wrap;flex-shrink:0;align-items:stretch;display:flex;position:relative}.menu :where(li) .badge{justify-self:flex-end}.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{outline-offset:2px;outline:2px solid #0000}}.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{color:var(--menu-active-fg);background-color:var(--menu-active-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise)}:is(.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):not(:is(.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):active){box-shadow:0 2px calc(var(--depth)*3px) -2px var(--menu-active-bg)}.menu :where(li).menu-disabled{pointer-events:none;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.menu :where(li).menu-disabled{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.menu .dropdown:focus-within .menu-dropdown-toggle:after{translate:0 1px;rotate:45deg}.menu .dropdown-content{margin-top:.5rem;padding:.5rem}.menu .dropdown-content:before{display:none}.dropdown{position-area:var(--anchor-v,bottom)var(--anchor-h,span-right);display:inline-block;position:relative}.dropdown>:not(summary):focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.dropdown>:not(summary):focus{outline-offset:2px;outline:2px solid #0000}}.dropdown .dropdown-content{position:absolute}.dropdown:not(details,.dropdown-open,.dropdown-hover:hover,:focus-within) .dropdown-content,.dropdown.dropdown-hover:not(:hover) [tabindex]:first-child:focus:not(:focus-visible)~.dropdown-content{transform-origin:top;opacity:0;display:none;scale:95%}.dropdown[popover],.dropdown .dropdown-content{z-index:999}@media(prefers-reduced-motion:no-preference){.dropdown[popover],.dropdown .dropdown-content{transition-behavior:allow-discrete;transition-property:opacity,scale,display;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s dropdown}}@starting-style{.dropdown[popover],.dropdown .dropdown-content{opacity:0;scale:95%}}:is(.dropdown.dropdown-open,.dropdown:not(.dropdown-hover):focus,.dropdown:focus-within)>[tabindex]:first-child{pointer-events:none}:is(.dropdown.dropdown-open,.dropdown:not(.dropdown-hover):focus,.dropdown:focus-within) .dropdown-content{opacity:1}.dropdown.dropdown-hover:hover .dropdown-content{opacity:1;scale:100%}.dropdown:is(details) summary::-webkit-details-marker{display:none}:is(.dropdown.dropdown-open,.dropdown:focus,.dropdown:focus-within) .dropdown-content{scale:100%}.dropdown:where([popover]){background:0 0}.dropdown[popover]{color:inherit;position:fixed}@supports not (position-area:bottom){.dropdown[popover]{margin:auto}.dropdown[popover].dropdown-open:not(:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}.dropdown[popover]::backdrop{background-color:oklab(0% none none/.3)}}.dropdown[popover]:not(.dropdown-open,:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}:where(.btn){width:unset}.btn{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;webkit-user-select:none;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0/calc(var(--depth)*.15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0/calc(var(--depth)*6%)) inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:var(--btn-bg);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex}@supports (color:color-mix(in lab,red,red)){.btn{--btn-border:color-mix(in oklab,var(--btn-bg),#000 calc(var(--depth)*5%))}}.btn{--btn-shadow:0 3px 2px -2px var(--btn-bg),0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab,red,red)){.btn{--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000)}}.btn{--btn-noise:var(--fx-noise)}@media(hover:hover){.btn:hover{--btn-bg:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab,red,red)){.btn:hover{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}}.btn:focus-visible,.btn:has(:focus-visible){isolation:isolate;outline-width:2px;outline-style:solid}.btn:active:not(.btn-active){--btn-bg:var(--btn-color,var(--color-base-200));translate:0 .5px}@supports (color:color-mix(in lab,red,red)){.btn:active:not(.btn-active){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 5%)}}.btn:active:not(.btn-active){--btn-border:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab,red,red)){.btn:active:not(.btn-active){--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}.btn:active:not(.btn-active){--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0)}.btn:is(input[type=checkbox],input[type=radio]){appearance:none}.btn:is(input[type=checkbox],input[type=radio]):after{--tw-content:attr(aria-label);content:var(--tw-content)}.btn:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}.loading{pointer-events:none;aspect-ratio:1;vertical-align:middle;width:calc(var(--size-selector,.25rem)*6);background-color:currentColor;display:inline-block;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.radial-progress{height:var(--size);width:var(--size);vertical-align:middle;box-sizing:content-box;--value:0;--size:5rem;--thickness:calc(var(--size)/10);--radialprogress:calc(var(--value)*1%);background-color:#0000;border-radius:3.40282e38px;place-content:center;transition:--radialprogress .3s linear;display:inline-grid;position:relative}.radial-progress:before{content:"";background:radial-gradient(farthest-side,currentColor 98%,#0000)top/var(--thickness)var(--thickness)no-repeat,conic-gradient(currentColor var(--radialprogress),#0000 0);webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - var(--thickness)),#000 calc(100% + .5px - var(--thickness)));-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - var(--thickness)),#000 calc(100% + .5px - var(--thickness)));mask:radial-gradient(farthest-side,#0000 calc(100% - var(--thickness)),#000 calc(100% + .5px - var(--thickness)));border-radius:3.40282e38px;position:absolute;inset:0}.radial-progress:after{content:"";inset:calc(50% - var(--thickness)/2);transform:rotate(calc(var(--value)*3.6deg - 90deg))translate(calc(var(--size)/2 - 50%));background-color:currentColor;border-radius:3.40282e38px;transition:transform .3s linear;position:absolute}.list{flex-direction:column;font-size:.875rem;display:flex}.list .list-row{--list-grid-cols:minmax(0,auto)1fr;border-radius:var(--radius-box);word-break:break-word;grid-auto-flow:column;grid-template-columns:var(--list-grid-cols);gap:1rem;padding:1rem;display:grid;position:relative}:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{content:"";border-bottom:var(--border)solid;inset-inline:var(--radius-box);border-color:var(--color-base-content);position:absolute;bottom:0}@supports (color:color-mix(in lab,red,red)){:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{border-color:color-mix(in oklab,var(--color-base-content)5%,transparent)}}.toast{translate:var(--toast-x,0)var(--toast-y,0);inset-inline:auto 1rem;background-color:#0000;flex-direction:column;gap:.5rem;width:max-content;max-width:calc(100vw - 2rem);display:flex;position:fixed;top:auto;bottom:1rem}@media(prefers-reduced-motion:no-preference){.toast>*{animation:.25s ease-out toast}}.toggle{border:var(--border)solid currentColor;color:var(--input-color);cursor:pointer;appearance:none;vertical-align:middle;webkit-user-select:none;-webkit-user-select:none;user-select:none;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--toggle-p),var(--radius-selector-max)) + min(var(--border),var(--radius-selector-max)));padding:var(--toggle-p);flex-shrink:0;grid-template-columns:0fr 1fr 1fr;place-content:center;display:inline-grid;position:relative;box-shadow:inset 0 1px}@supports (color:color-mix(in lab,red,red)){.toggle{box-shadow:0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000) inset}}.toggle{--input-color:var(--color-base-content);transition:color .3s,grid-template-columns .2s}@supports (color:color-mix(in lab,red,red)){.toggle{--input-color:color-mix(in oklab,var(--color-base-content)50%,#0000)}}.toggle{--toggle-p:calc(var(--size)*.125);--size:calc(var(--size-selector,.25rem)*6);width:calc((var(--size)*2) - (var(--border) + var(--toggle-p))*2);height:var(--size)}.toggle>*{z-index:1;cursor:pointer;appearance:none;background-color:#0000;border:none;grid-column:2/span 1;grid-row-start:1;height:100%;padding:.125rem;transition:opacity .2s,rotate .4s}.toggle>:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.toggle>:focus{outline-offset:2px;outline:2px solid #0000}}.toggle>:nth-child(2){color:var(--color-base-100);rotate:none}.toggle>:nth-child(3){color:var(--color-base-100);opacity:0;rotate:-15deg}.toggle:has(:checked)>:nth-child(2){opacity:0;rotate:15deg}.toggle:has(:checked)>:nth-child(3){opacity:1;rotate:none}.toggle:before{aspect-ratio:1;border-radius:var(--radius-selector);--tw-content:"";content:var(--tw-content);height:100%;box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px currentColor;background-color:currentColor;grid-row-start:1;grid-column-start:2;transition:background-color .1s,translate .2s,inset-inline-start .2s;position:relative;inset-inline-start:0;translate:0}@supports (color:color-mix(in lab,red,red)){.toggle:before{box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000)}}.toggle:before{background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise)}@media(forced-colors:active){.toggle:before{outline-style:var(--tw-outline-style);outline-offset:-1px;outline-width:1px}}@media print{.toggle:before{outline-offset:-1rem;outline:.25rem solid}}.toggle:focus-visible,.toggle:has(:focus-visible){outline-offset:2px;outline:2px solid}.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked){background-color:var(--color-base-100);--input-color:var(--color-base-content);grid-template-columns:1fr 1fr 0fr}:is(.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked)):before{background-color:currentColor}@starting-style{:is(.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked)):before{opacity:0}}.toggle:indeterminate{grid-template-columns:.5fr 1fr .5fr}.toggle:disabled{cursor:not-allowed;opacity:.3}.toggle:disabled:before{border:var(--border)solid currentColor;background-color:#0000}.input{cursor:text;border:var(--border)solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;width:clamp(3rem,20rem,100%);height:var(--size);font-size:max(var(--font-size,.875rem),.875rem);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.5rem;padding-inline:.75rem;display:inline-flex;position:relative}@supports (color:color-mix(in lab,red,red)){.input{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset}}.input{--size:calc(var(--size-field,.25rem)*10);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.input{--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000)}}.input:where(input){display:inline-flex}.input :where(input){appearance:none;background-color:#0000;border:none;width:100%;height:100%;display:inline-flex}.input :where(input):focus,.input :where(input):focus-within{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.input :where(input):focus,.input :where(input):focus-within{outline-offset:2px;outline:2px solid #0000}}.input :where(input[type=url]),.input :where(input[type=email]){direction:ltr}.input :where(input[type=date]){display:inline-flex}.input:focus,.input:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.input:focus,.input:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)}}.input:focus,.input:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}@media(pointer:coarse){@supports (-webkit-touch-callout:none){.input:focus,.input:focus-within{--font-size:1rem}}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{color:color-mix(in oklab,var(--color-base-content)40%,transparent)}}:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{box-shadow:none}.input:has(>input[disabled])>input[disabled]{cursor:not-allowed}.input::-webkit-date-and-time-value{text-align:inherit}.input[type=number]::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}.input::-webkit-calendar-picker-indicator{position:absolute;inset-inline-end:.75em}.input:has(>input[type=date]) :where(input[type=date]){webkit-appearance:none;appearance:none;display:inline-flex}.input:has(>input[type=date]) input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;width:1em;height:1em;position:absolute;inset-inline-end:.75em}.table{border-radius:var(--radius-box);text-align:left;width:100%;font-size:.875rem;position:relative}.table:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}@media(hover:hover){:is(.table tr.row-hover,.table tr.row-hover:nth-child(2n)):hover{background-color:var(--color-base-200)}}.table :where(th,td){vertical-align:middle;padding-block:.75rem;padding-inline:1rem}.table :where(thead,tfoot){white-space:nowrap;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.table :where(thead,tfoot){color:color-mix(in oklab,var(--color-base-content)60%,transparent)}}.table :where(thead,tfoot){font-size:.875rem;font-weight:600}.table :where(tfoot){border-top:var(--border)solid var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.table :where(tfoot){border-top:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}}.table :where(.table-pin-rows thead tr){z-index:1;background-color:var(--color-base-100);position:sticky;top:0}.table :where(.table-pin-rows tfoot tr){z-index:1;background-color:var(--color-base-100);position:sticky;bottom:0}.table :where(.table-pin-cols tr th){background-color:var(--color-base-100);position:sticky;left:0;right:0}.table :where(thead tr,tbody tr:not(:last-child)){border-bottom:var(--border)solid var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.table :where(thead tr,tbody tr:not(:last-child)){border-bottom:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}}.range{appearance:none;webkit-appearance:none;--range-thumb:var(--color-base-100);--range-thumb-size:calc(var(--size-selector,.25rem)*6);--range-progress:currentColor;--range-fill:1;--range-p:.25rem;--range-bg:currentColor}@supports (color:color-mix(in lab,red,red)){.range{--range-bg:color-mix(in oklab,currentColor 10%,#0000)}}.range{cursor:pointer;vertical-align:middle;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));width:clamp(3rem,20rem,100%);height:var(--range-thumb-size);background-color:#0000;border:none;overflow:hidden}[dir=rtl] .range{--range-dir:-1}.range:focus{outline:none}.range:focus-visible{outline-offset:2px;outline:2px solid}.range::-webkit-slider-runnable-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size)*.5)}@media(forced-colors:active){.range::-webkit-slider-runnable-track{border:1px solid}.range::-moz-range-track{border:1px solid}}.range::-webkit-slider-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p)solid;appearance:none;webkit-appearance:none;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px currentColor,0 0 0 2rem var(--range-thumb) inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2)) 0 0 calc(100rem*var(--range-fill));background-color:currentColor;position:relative;top:50%;transform:translateY(-50%)}@supports (color:color-mix(in lab,red,red)){.range::-webkit-slider-thumb{box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000),0 0 0 2rem var(--range-thumb) inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2)) 0 0 calc(100rem*var(--range-fill))}}.range::-moz-range-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size)*.5)}.range::-moz-range-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p)solid;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px currentColor,0 0 0 2rem var(--range-thumb) inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2)) 0 0 calc(100rem*var(--range-fill));background-color:currentColor;position:relative;top:50%}@supports (color:color-mix(in lab,red,red)){.range::-moz-range-thumb{box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000),0 0 0 2rem var(--range-thumb) inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2)) 0 0 calc(100rem*var(--range-fill))}}.range:disabled{cursor:not-allowed;opacity:.3}.select{border:var(--border)solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;white-space:nowrap;text-overflow:ellipsis;box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16.1px) calc(1px + 50%);background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.375rem;padding-inline:.75rem 1.75rem;font-size:.875rem;display:inline-flex;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.select{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset}}.select{border-color:var(--input-color);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.select{--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000)}}.select{--size:calc(var(--size-field,.25rem)*10)}[dir=rtl] .select{background-position:12px calc(1px + 50%),16px calc(1px + 50%)}[dir=rtl] .select::picker(select){translate:.5rem}[dir=rtl] .select select::picker(select){translate:.5rem}.select[multiple]{background-image:none;height:auto;padding-block:.75rem;padding-inline-end:.75rem;overflow:auto}.select select{appearance:none;width:calc(100% + 2.75rem);height:calc(100% - calc(var(--border)*2));background:inherit;border-radius:inherit;border-style:none;align-items:center;margin-inline:-.75rem -1.75rem;padding-inline:.75rem 1.75rem}.select select:focus,.select select:focus-within{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.select select:focus,.select select:focus-within{outline-offset:2px;outline:2px solid #0000}}.select select:not(:last-child){background-image:none;margin-inline-end:-1.375rem}.select:focus,.select:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.select:focus,.select:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)}}.select:focus,.select:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select{color:color-mix(in oklab,var(--color-base-content)40%,transparent)}}:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select)::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select)::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.select:has(>select[disabled])>select[disabled]{cursor:not-allowed}@supports (appearance:base-select){.select,.select select{appearance:base-select}:is(.select,.select select)::picker(select){appearance:base-select}}:is(.select,.select select)::picker(select){color:inherit;border:var(--border)solid var(--color-base-200);border-radius:var(--radius-box);background-color:inherit;max-height:min(24rem,70dvh);box-shadow:0 2px calc(var(--depth)*3px) -2px #0003;box-shadow:0 20px 25px -5px rgb(0 0 0/calc(var(--depth)*.1)),0 8px 10px -6px rgb(0 0 0/calc(var(--depth)*.1));margin-block:.5rem;margin-inline:.5rem;padding:.5rem;translate:-.5rem}:is(.select,.select select)::picker-icon{display:none}:is(.select,.select select) optgroup{padding-top:.5em}:is(.select,.select select) optgroup option:first-child{margin-top:.5em}:is(.select,.select select) option{border-radius:var(--radius-field);white-space:normal;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{outline-offset:2px;outline:2px solid #0000}}:is(.select,.select select) option:not(:disabled):active{background-color:var(--color-neutral);color:var(--color-neutral-content);box-shadow:0 2px calc(var(--depth)*3px) -2px var(--color-neutral)}.diff-resizer{z-index:1;resize:horizontal;opacity:0;cursor:ew-resize;transform-origin:100% 100%;clip-path:inset(calc(100% - .75rem) 0 0 calc(100% - .75rem));grid-row-start:2;grid-column-start:1;width:50cqi;min-width:1rem;max-width:calc(100cqi - 1rem);height:1rem;transition:min-width .3s ease-out,max-width .3s ease-out;position:relative;overflow:hidden;transform:scaleY(3)translate(.35rem,.35rem)}.timeline{display:flex;position:relative}.timeline>li{grid-template-rows:var(--timeline-row-start,minmax(0,1fr))auto var(--timeline-row-end,minmax(0,1fr));grid-template-columns:var(--timeline-col-start,minmax(0,1fr))auto var(--timeline-col-end,minmax(0,1fr));flex-shrink:0;align-items:center;display:grid;position:relative}.timeline>li>hr{border:none;width:100%}.timeline>li>hr:first-child{grid-row-start:2;grid-column-start:1}.timeline>li>hr:last-child{grid-area:2/3/auto/none}@media print{.timeline>li>hr{border:.1px solid var(--color-base-300)}}.timeline :where(hr){background-color:var(--color-base-300);height:.25rem}.timeline:has(.timeline-middle hr):first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.timeline:has(.timeline-middle hr):last-child,.timeline:not(:has(.timeline-middle)) :first-child hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}.timeline:not(:has(.timeline-middle)) :last-child hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.avatar{vertical-align:middle;display:inline-flex;position:relative}.avatar>div{aspect-ratio:1;display:block;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.checkbox{border:var(--border)solid var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.checkbox{border:var(--border)solid var(--input-color,color-mix(in oklab,var(--color-base-content)20%,#0000))}}.checkbox{cursor:pointer;appearance:none;border-radius:var(--radius-selector);vertical-align:middle;color:var(--color-base-content);box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 0 #0000 inset,0 0 #0000;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);flex-shrink:0;padding:.25rem;transition:background-color .2s,box-shadow .2s;display:inline-block;position:relative}.checkbox:before{--tw-content:"";content:var(--tw-content);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);width:100%;height:100%;box-shadow:0 3px oklch(100% 0 0/calc(var(--depth)*.1)) inset;background-color:currentColor;font-size:1rem;line-height:.75;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s;display:block;rotate:45deg}.checkbox:focus-visible{outline:2px solid var(--input-color,currentColor);outline-offset:2px}.checkbox:checked,.checkbox[aria-checked=true]{background-color:var(--input-color,#0000);box-shadow:0 0 #0000 inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1))}:is(.checkbox:checked,.checkbox[aria-checked=true]):before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1}@media(forced-colors:active){:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}@media print{:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}.checkbox:indeterminate{background-color:var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.checkbox:indeterminate{background-color:var(--input-color,color-mix(in oklab,var(--color-base-content)20%,#0000))}}.checkbox:indeterminate:before{opacity:1;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%);translate:0 -35%;rotate:none}.radio{cursor:pointer;appearance:none;vertical-align:middle;border:var(--border)solid var(--input-color,currentColor);border-radius:3.40282e38px;flex-shrink:0;padding:.25rem;display:inline-block;position:relative}@supports (color:color-mix(in lab,red,red)){.radio{border:var(--border)solid var(--input-color,color-mix(in srgb,currentColor 20%,#0000))}}.radio{box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1)) inset;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);color:var(--input-color,currentColor)}.radio:before{--tw-content:"";content:var(--tw-content);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);border-radius:3.40282e38px;width:100%;height:100%;display:block}.radio:focus-visible{outline:2px solid}.radio:checked,.radio[aria-checked=true]{background-color:var(--color-base-100);border-color:currentColor}@media(prefers-reduced-motion:no-preference){.radio:checked,.radio[aria-checked=true]{animation:.2s ease-out radio}}:is(.radio:checked,.radio[aria-checked=true]):before{box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1));background-color:currentColor}@media(forced-colors:active){:is(.radio:checked,.radio[aria-checked=true]):before{outline-style:var(--tw-outline-style);outline-offset:-1px;outline-width:1px}}@media print{:is(.radio:checked,.radio[aria-checked=true]):before{outline-offset:-1rem;outline:.25rem solid}}.rating{vertical-align:middle;display:inline-flex;position:relative}.rating input{appearance:none;border:none}.rating :where(*){background-color:var(--color-base-content);opacity:.2;border-radius:0;width:1.5rem;height:1.5rem}@media(prefers-reduced-motion:no-preference){.rating :where(*){animation:.25s ease-out rating}}.rating :where(*):is(input){cursor:pointer}.rating .rating-hidden{background-color:#0000;width:.5rem}.rating input[type=radio]:checked{background-image:none}.rating :checked,.rating [aria-checked=true],.rating [aria-current=true],.rating :has(~:checked,~[aria-checked=true],~[aria-current=true]){opacity:1}.rating :focus-visible{scale:1.1}@media(prefers-reduced-motion:no-preference){.rating :focus-visible{transition:scale .2s ease-out}}.rating :active:focus{animation:none;scale:1.1}.card{border-radius:var(--radius-box);outline-offset:2px;outline:0 solid #0000;flex-direction:column;transition:outline .2s ease-in-out;display:flex;position:relative}.card:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.card:focus{outline-offset:2px;outline:2px solid #0000}}.card:focus-visible{outline-color:currentColor}.card :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:inherit;border-end-end-radius:unset;border-end-start-radius:unset;overflow:hidden}.card :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:unset;border-end-end-radius:inherit;border-end-start-radius:inherit;overflow:hidden}.card figure{justify-content:center;align-items:center;display:flex}.card:has(>input:is(input[type=checkbox],input[type=radio])){cursor:pointer;-webkit-user-select:none;user-select:none}.card:has(>:checked){outline:2px solid}.progress{appearance:none;border-radius:var(--radius-box);background-color:currentColor;width:100%;height:.5rem;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.progress{background-color:color-mix(in oklab,currentcolor 20%,transparent)}}.progress{color:var(--color-base-content)}.progress:indeterminate{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%}@media(prefers-reduced-motion:no-preference){.progress:indeterminate{animation:5s ease-in-out infinite progress}}@supports ((-moz-appearance:none)){.progress:indeterminate::-moz-progress-bar{background-color:#0000}@media(prefers-reduced-motion:no-preference){.progress:indeterminate::-moz-progress-bar{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress}}.progress::-moz-progress-bar{border-radius:var(--radius-box);background-color:currentColor}}@supports ((-webkit-appearance:none)){.progress::-webkit-progress-bar{border-radius:var(--radius-box);background-color:#0000}.progress::-webkit-progress-value{border-radius:var(--radius-box);background-color:currentColor}}.textarea{border:var(--border)solid #0000;appearance:none;border-radius:var(--radius-field);background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);min-height:5rem;font-size:max(var(--font-size,.875rem),.875rem);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset;flex-shrink:1;padding-block:.5rem;padding-inline:.75rem}@supports (color:color-mix(in lab,red,red)){.textarea{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset}}.textarea{--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.textarea{--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000)}}.textarea textarea{appearance:none;background-color:#0000;border:none}.textarea textarea:focus,.textarea textarea:focus-within{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.textarea textarea:focus,.textarea textarea:focus-within{outline-offset:2px;outline:2px solid #0000}}.textarea:focus,.textarea:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.textarea:focus,.textarea:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)}}.textarea:focus,.textarea:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}@media(pointer:coarse){@supports (-webkit-touch-callout:none){.textarea:focus,.textarea:focus-within{--font-size:1rem}}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){color:color-mix(in oklab,var(--color-base-content)40%,transparent)}}:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){box-shadow:none}.textarea:has(>textarea[disabled])>textarea[disabled]{cursor:not-allowed}.stack{grid-template-rows:3px 4px 1fr 4px 3px;grid-template-columns:3px 4px 1fr 4px 3px;display:inline-grid}.stack>*{width:100%;height:100%}.stack>:nth-child(n+2){opacity:.7;width:100%}.stack>:nth-child(2){z-index:2;opacity:.9}.stack>:first-child{z-index:3;width:100%}.modal-backdrop{color:#0000;z-index:-1;grid-row-start:1;grid-column-start:1;place-self:stretch stretch;display:grid}.modal-backdrop button{cursor:pointer}.tab-content{order:var(--tabcontent-order);--tabcontent-radius-ss:var(--radius-box);--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box);--tabcontent-order:1;width:100%;margin:var(--tabcontent-margin);border-color:#0000;border-width:var(--border);border-start-start-radius:var(--tabcontent-radius-ss);border-start-end-radius:var(--tabcontent-radius-se);border-end-end-radius:var(--tabcontent-radius-ee);border-end-start-radius:var(--tabcontent-radius-es);display:none}.modal-box{background-color:var(--color-base-100);border-top-left-radius:var(--modal-tl,var(--radius-box));border-top-right-radius:var(--modal-tr,var(--radius-box));border-bottom-left-radius:var(--modal-bl,var(--radius-box));border-bottom-right-radius:var(--modal-br,var(--radius-box));opacity:0;overscroll-behavior:contain;grid-row-start:1;grid-column-start:1;width:91.6667%;max-width:32rem;max-height:100vh;padding:1.5rem;transition:translate .3s ease-out,scale .3s ease-out,opacity .2s ease-out 50ms,box-shadow .3s ease-out;overflow-y:auto;scale:95%;box-shadow:0 25px 50px -12px #00000040}.timeline-middle{grid-row-start:2;grid-column-start:2}.divider{white-space:nowrap;height:1rem;margin:var(--divider-m,1rem 0);--divider-color:var(--color-base-content);flex-direction:row;align-self:stretch;align-items:center;display:flex}@supports (color:color-mix(in lab,red,red)){.divider{--divider-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.divider:before,.divider:after{content:"";background-color:var(--divider-color);flex-grow:1;width:100%;height:.125rem}@media print{.divider:before,.divider:after{border:.5px solid}}.divider:not(:empty){gap:1rem}.filter{flex-wrap:wrap;display:flex}.filter input[type=radio]{width:auto}.filter input{opacity:1;transition:margin .1s,opacity .3s,padding .3s,border-width .1s;overflow:hidden;scale:1}.filter input:not(:last-child){margin-inline-end:.25rem}.filter input.filter-reset{aspect-ratio:1}.filter input.filter-reset:after{--tw-content:"×";content:var(--tw-content)}.filter:not(:has(input:checked:not(.filter-reset))) .filter-reset,.filter:not(:has(input:checked:not(.filter-reset))) input[type=reset],.filter:has(input:checked:not(.filter-reset)) input:not(:checked,.filter-reset,input[type=reset]){opacity:0;border-width:0;width:0;margin-inline:0;padding-inline:0;scale:0}.label{white-space:nowrap;color:currentColor;align-items:center;gap:.375rem;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.label{color:color-mix(in oklab,currentcolor 60%,transparent)}}.label:has(input){cursor:pointer}.label:is(.input>*,.select>*){white-space:nowrap;height:calc(100% - .5rem);font-size:inherit;align-items:center;padding-inline:.75rem;display:flex}.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border)solid currentColor;margin-inline:-.75rem .75rem}@supports (color:color-mix(in lab,red,red)){.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border)solid color-mix(in oklab,currentColor 10%,#0000)}}.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border)solid currentColor;margin-inline:.75rem -.75rem}@supports (color:color-mix(in lab,red,red)){.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border)solid color-mix(in oklab,currentColor 10%,#0000)}}.modal-action{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.status{aspect-ratio:1;border-radius:var(--radius-selector);background-color:var(--color-base-content);width:.5rem;height:.5rem;display:inline-block}@supports (color:color-mix(in lab,red,red)){.status{background-color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.status{vertical-align:middle;color:#0000004d;background-position:50%;background-repeat:no-repeat}@supports (color:color-mix(in lab,red,red)){.status{color:color-mix(in oklab,var(--color-black)30%,transparent)}}.status{background-image:radial-gradient(circle at 35% 30%,oklch(1 0 0/calc(var(--depth)*.5)),#0000);box-shadow:0 2px 3px -1px}@supports (color:color-mix(in lab,red,red)){.status{box-shadow:0 2px 3px -1px color-mix(in oklab,currentColor calc(var(--depth)*100%),#0000)}}.badge{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border)solid var(--badge-color,var(--color-base-200));width:fit-content;padding-inline:calc(.25rem*3 - var(--border));background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.tabs{--tabs-height:auto;--tabs-direction:row;--tab-height:calc(var(--size-field,.25rem)*10);height:var(--tabs-height);flex-wrap:wrap;flex-direction:var(--tabs-direction);display:flex}.footer{grid-auto-flow:row;place-items:start;gap:2.5rem 1rem;width:100%;font-size:.875rem;line-height:1.25rem;display:grid}.footer>*{place-items:start;gap:.5rem;display:grid}.footer.footer-center{text-align:center;grid-auto-flow:column dense;place-items:center}.footer.footer-center>*{place-items:center}.card-body{padding:var(--card-p,1.5rem);font-size:var(--card-fs,.875rem);flex-direction:column;flex:auto;gap:.5rem;display:flex}.card-body :where(p){flex-grow:1}.alert{--alert-border-color:var(--color-base-200);border-radius:var(--radius-box);color:var(--color-base-content);background-color:var(--alert-color,var(--color-base-200));text-align:start;background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);box-shadow:0 3px 0 -2px oklch(100% 0 0/calc(var(--depth)*.08)) inset,0 1px #000,0 4px 3px -2px oklch(0% 0 0/calc(var(--depth)*.08));border-style:solid;grid-template-columns:auto;grid-auto-flow:column;justify-content:start;place-items:center start;gap:1rem;padding-block:.75rem;padding-inline:1rem;font-size:.875rem;line-height:1.25rem;display:grid}@supports (color:color-mix(in lab,red,red)){.alert{box-shadow:0 3px 0 -2px oklch(100% 0 0/calc(var(--depth)*.08)) inset,0 1px color-mix(in oklab,color-mix(in oklab,#000 20%,var(--alert-color,var(--color-base-200)))calc(var(--depth)*20%),#0000),0 4px 3px -2px oklch(0% 0 0/calc(var(--depth)*.08))}}.alert:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}.skeleton{border-radius:var(--radius-box);background-color:var(--color-base-300)}@media(prefers-reduced-motion:reduce){.skeleton{transition-duration:15s}}.skeleton{will-change:background-position;background-image:linear-gradient(105deg,#0000 0% 40%,var(--color-base-100)50%,#0000 60% 100%);background-position-x:-50%;background-repeat:no-repeat;background-size:200%}@media(prefers-reduced-motion:no-preference){.skeleton{animation:1.8s ease-in-out infinite skeleton}}.link{cursor:pointer;text-decoration-line:underline}.link:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.link:focus{outline-offset:2px;outline:2px solid #0000}}.link:focus-visible{outline-offset:2px;outline:2px solid}.menu-title{color:var(--color-base-content);padding-block:.5rem;padding-inline:.75rem}@supports (color:color-mix(in lab,red,red)){.menu-title{color:color-mix(in oklab,var(--color-base-content)40%,transparent)}}.menu-title{font-size:.875rem;font-weight:600}}@layer daisyui.modifier{.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal{pointer-events:auto;visibility:visible;opacity:1;transition:visibility 0s allow-discrete,background-color .3s ease-out,opacity .1s ease-out;background-color:#0006}:is(.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal) .modal-box{opacity:1;translate:0;scale:1}@starting-style{.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal{opacity:0}}.tooltip>.tooltip-content,.tooltip[data-tip]:before{transform:translate(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off)50%}.tooltip:after{transform:translate(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail)50%}.btn:disabled:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn:disabled:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.btn:disabled:not(.btn-link,.btn-ghost){box-shadow:none}.btn:disabled{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn:disabled{--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}@media(hover:hover){.btn:disabled:hover{pointer-events:none;background-color:var(--color-neutral)}@supports (color:color-mix(in lab,red,red)){.btn:disabled:hover{background-color:color-mix(in oklab,var(--color-neutral)20%,transparent)}}.btn:disabled:hover{--btn-border:#0000;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn:disabled:hover{--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}.btn[disabled]:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn[disabled]:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.btn[disabled]:not(.btn-link,.btn-ghost){box-shadow:none}.btn[disabled]{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn[disabled]{--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}@media(hover:hover){.btn[disabled]:hover{pointer-events:none;background-color:var(--color-neutral)}@supports (color:color-mix(in lab,red,red)){.btn[disabled]:hover{background-color:color-mix(in oklab,var(--color-neutral)20%,transparent)}}.btn[disabled]:hover{--btn-border:#0000;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn[disabled]:hover{--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}.tabs-lift{--tabs-height:auto;--tabs-direction:row}.tabs-lift>.tab{--tab-border:0 0 var(--border)0;--tab-radius-ss:min(var(--radius-field),var(--tab-radius-min));--tab-radius-se:min(var(--radius-field),var(--tab-radius-min));--tab-radius-es:0;--tab-radius-ee:0;--tab-paddings:var(--border)var(--tab-p)0 var(--tab-p);--tab-border-colors:#0000 #0000 var(--tab-border-color)#0000;--tab-corner-width: calc(100% + min(var(--radius-field),var(--tab-radius-min))*2) ;--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;border-width:var(--tab-border);padding:var(--tab-paddings);border-color:var(--tab-border-colors);border-start-start-radius:var(--tab-radius-ss);border-start-end-radius:var(--tab-radius-se);border-end-end-radius:var(--tab-radius-ee);border-end-start-radius:var(--tab-radius-es)}.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked)){--tab-border:var(--border)var(--border)0 var(--border);--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color);--tab-paddings:0 calc(var(--tab-p) - var(--border))var(--border)calc(var(--tab-p) - var(--border));--tab-inset:auto auto 0 auto;--tab-grad:calc(69% - var(--border));--radius-start:radial-gradient(circle at top left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at top right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));background-color:var(--tab-bg)}:is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):before{z-index:1;content:"";width:var(--tab-corner-width);height:var(--tab-corner-height);background-position:var(--tab-corner-position);background-image:var(--radius-start),var(--radius-end);background-size:min(var(--radius-field),var(--tab-radius-min))min(var(--radius-field),var(--tab-radius-min));inset:var(--tab-inset);background-repeat:no-repeat;display:block;position:absolute}:is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):first-child:before{--radius-start:none}[dir=rtl] :is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):first-child:before{transform:rotateY(180deg)}:is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):last-child:before{--radius-end:none}[dir=rtl] :is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):last-child:before{transform:rotateY(180deg)}.tabs-lift:has(>.tab-content)>.tab:first-child:not(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color)}.tabs-lift>.tab-content{--tabcontent-margin:calc(-1*var(--border))0 0 0;--tabcontent-radius-ss:0;--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box)}:is(.tabs-lift :checked,.tabs-lift label:has(:checked),.tabs-lift :is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content:first-child,:is(.tabs-lift :checked,.tabs-lift label:has(:checked),.tabs-lift :is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content:nth-child(n+3){--tabcontent-radius-ss:var(--radius-box)}.list .list-row:has(.list-col-grow:first-child){--list-grid-cols:1fr}.list .list-row:has(.list-col-grow:nth-child(2)){--list-grid-cols:minmax(0,auto)1fr}.list .list-row:has(.list-col-grow:nth-child(3)){--list-grid-cols:minmax(0,auto)minmax(0,auto)1fr}.list .list-row:has(.list-col-grow:nth-child(4)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}.list .list-row:has(.list-col-grow:nth-child(5)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}.list .list-row:has(.list-col-grow:nth-child(6)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}.list .list-row :not(.list-col-wrap){grid-row-start:1}.checkbox:disabled,.radio:disabled{cursor:not-allowed;opacity:.2}.rating.rating-xs :where(:not(.rating-hidden)){width:1rem;height:1rem}.rating.rating-sm :where(:not(.rating-hidden)){width:1.25rem;height:1.25rem}.rating.rating-md :where(:not(.rating-hidden)){width:1.5rem;height:1.5rem}.rating.rating-lg :where(:not(.rating-hidden)){width:1.75rem;height:1.75rem}.rating.rating-xl :where(:not(.rating-hidden)){width:2rem;height:2rem}.tooltip-left>.tooltip-content,.tooltip-left[data-tip]:before{transform:translate(calc(var(--tt-pos,.25rem) - .25rem))translateY(-50%);inset:50% var(--tt-off)auto auto}.tooltip-left:after{transform:translate(var(--tt-pos,.25rem))translateY(-50%)rotate(-90deg);inset:50% calc(var(--tt-tail) + 1px)auto auto}.tooltip-right>.tooltip-content,.tooltip-right[data-tip]:before{transform:translate(calc(var(--tt-pos,-.25rem) + .25rem))translateY(-50%);inset:50% auto auto var(--tt-off)}.tooltip-right:after{transform:translate(var(--tt-pos,-.25rem))translateY(-50%)rotate(90deg);inset:50% auto auto calc(var(--tt-tail) + 1px)}.dropdown-right{--anchor-h:right;--anchor-v:span-bottom}.dropdown-right .dropdown-content{transform-origin:0;inset-inline-start:100%;top:0;bottom:auto}.dropdown-left{--anchor-h:left;--anchor-v:span-bottom}.dropdown-left .dropdown-content{transform-origin:100%;inset-inline-end:100%;top:0;bottom:auto}.dropdown-end{--anchor-h:span-left}.dropdown-end :where(.dropdown-content){inset-inline-end:0;translate:0}[dir=rtl] :is(.dropdown-end :where(.dropdown-content)){translate:0}.dropdown-end.dropdown-left{--anchor-h:left;--anchor-v:span-top}.dropdown-end.dropdown-left .dropdown-content{top:auto;bottom:0}.dropdown-end.dropdown-right{--anchor-h:right;--anchor-v:span-top}.dropdown-end.dropdown-right .dropdown-content{top:auto;bottom:0}.btn-active{--btn-bg:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab,red,red)){.btn-active{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}.btn-active{--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);isolation:isolate}:is(.stack,.stack.stack-bottom)>*{grid-area:3/3/6/4}:is(.stack,.stack.stack-bottom)>:nth-child(2){grid-area:2/2/5/5}:is(.stack,.stack.stack-bottom)>:first-child{grid-area:1/1/4/6}.stack.stack-top>*{grid-area:1/3/4/4}.stack.stack-top>:nth-child(2){grid-area:2/2/5/5}.stack.stack-top>:first-child{grid-area:3/1/6/6}.stack.stack-start>*{grid-area:3/1/4/4}.stack.stack-start>:nth-child(2){grid-area:2/2/5/5}.stack.stack-start>:first-child{grid-area:1/3/6/6}.stack.stack-end>*{grid-area:3/3/4/6}.stack.stack-end>:nth-child(2){grid-area:2/2/5/5}.stack.stack-end>:first-child{grid-area:1/1/6/4}.input-sm{--size:calc(var(--size-field,.25rem)*8);font-size:max(var(--font-size,.75rem),.75rem)}.input-sm[type=number]::-webkit-inner-spin-button{margin-block:-.5rem;margin-inline-end:-.75rem}.btn-circle{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}.btn-square{width:var(--size);height:var(--size);padding-inline:0}.loading-sm{width:calc(var(--size-selector,.25rem)*5)}.loading-xs{width:calc(var(--size-selector,.25rem)*4)}.badge-soft{color:var(--badge-color,var(--color-base-content));background-color:var(--badge-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.badge-soft{background-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))8%,var(--color-base-100))}}.badge-soft{border-color:var(--badge-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.badge-soft{border-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))10%,var(--color-base-100))}}.badge-soft{background-image:none}.loading-spinner{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")}.radio-sm{padding:.1875rem}.radio-sm[type=radio]{--size:calc(var(--size-selector,.25rem)*5)}.badge-sm{--size:calc(var(--size-selector,.25rem)*5);padding-inline:calc(.25rem*2.5 - var(--border));font-size:.75rem}.alert-error{color:var(--color-error-content);--alert-border-color:var(--color-error);--alert-color:var(--color-error)}.alert-info{color:var(--color-info-content);--alert-border-color:var(--color-info);--alert-color:var(--color-info)}.alert-success{color:var(--color-success-content);--alert-border-color:var(--color-success);--alert-color:var(--color-success)}.alert-warning{color:var(--color-warning-content);--alert-border-color:var(--color-warning);--alert-color:var(--color-warning)}.progress-primary{color:var(--color-primary)}.link-hover{text-decoration-line:none}@media(hover:hover){.link-hover:hover{text-decoration-line:underline}}.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none}.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible):not(:disabled,[disabled],.btn-disabled){--btn-fg:currentColor;outline-color:currentColor}@media(hover:none){.btn-ghost:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;--btn-fg:currentColor}}.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100))}}.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-border:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100))}}.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-noise:none}@media(hover:none){.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100))}}.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-border:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100))}}.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-noise:none}}.btn-lg{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}.btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem)*8)}.btn-xs{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem)*6)}.badge-accent{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}.badge-info{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}.badge-primary{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}.badge-secondary{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}.card-border{border:var(--border)solid var(--color-base-200)}.radio-primary,.toggle-primary:checked,.toggle-primary[aria-checked=true]{--input-color:var(--color-primary)}}.prose .btn{text-decoration-line:none}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.-top-2{top:calc(var(--spacing)*-2)}.top-2{top:calc(var(--spacing)*2)}.top-4{top:calc(var(--spacing)*4)}.top-\\[50\\%\\]{top:50%}.-right-1{right:calc(var(--spacing)*-1)}.-right-2{right:calc(var(--spacing)*-2)}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.-bottom-1{bottom:calc(var(--spacing)*-1)}.bottom-4{bottom:calc(var(--spacing)*4)}.left-1{left:calc(var(--spacing)*1)}.left-1\\/2{left:50%}.left-2{left:calc(var(--spacing)*2)}.left-4{left:calc(var(--spacing)*4)}.left-\\[-15px\\]{left:-15px}.z-10{z-index:10}.z-50{z-index:50}.z-\\[1000\\]{z-index:1000}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing)*2)}.join-item:where(:not(:first-child,:disabled,[disabled],.btn-disabled)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}.join-item:where(:is(:disabled,[disabled],.btn-disabled)){border-width:var(--border,1px)0 var(--border,1px)var(--border,1px)}.mt-0{margin-top:calc(var(--spacing)*0)}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-16{margin-top:calc(var(--spacing)*16)}.mt-px{margin-top:1px}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.ml-auto{margin-left:auto}.alert{border-width:var(--border);border-color:var(--alert-border-color,var(--color-base-200))}.join{--join-ss:0;--join-se:0;--join-es:0;--join-ee:0;align-items:stretch;display:inline-flex}.join :where(.join-item){border-start-start-radius:var(--join-ss,0);border-start-end-radius:var(--join-se,0);border-end-end-radius:var(--join-ee,0);border-end-start-radius:var(--join-es,0)}.join :where(.join-item) *{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}.join>.join-item:where(:first-child),.join :first-child:not(:last-child) :where(.join-item){--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}.join>.join-item:where(:last-child),.join :last-child:not(:first-child) :where(.join-item){--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}.join>.join-item:where(:only-child),.join :only-child :where(.join-item){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}:root .prose{--tw-prose-body:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-body:color-mix(in oklab,var(--color-base-content)80%,#0000)}}:root .prose{--tw-prose-headings:var(--color-base-content);--tw-prose-lead:var(--color-base-content);--tw-prose-links:var(--color-base-content);--tw-prose-bold:var(--color-base-content);--tw-prose-counters:var(--color-base-content);--tw-prose-bullets:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-bullets:color-mix(in oklab,var(--color-base-content)50%,#0000)}}:root .prose{--tw-prose-hr:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-hr:color-mix(in oklab,var(--color-base-content)20%,#0000)}}:root .prose{--tw-prose-quotes:var(--color-base-content);--tw-prose-quote-borders:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-quote-borders:color-mix(in oklab,var(--color-base-content)20%,#0000)}}:root .prose{--tw-prose-captions:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-captions:color-mix(in oklab,var(--color-base-content)50%,#0000)}}:root .prose{--tw-prose-code:var(--color-base-content);--tw-prose-pre-code:var(--color-neutral-content);--tw-prose-pre-bg:var(--color-neutral);--tw-prose-th-borders:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-th-borders:color-mix(in oklab,var(--color-base-content)50%,#0000)}}:root .prose{--tw-prose-td-borders:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-td-borders:color-mix(in oklab,var(--color-base-content)20%,#0000)}}:root .prose{--tw-prose-kbd:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-kbd:color-mix(in oklab,var(--color-base-content)80%,#0000)}}:root .prose :where(code):not(pre>code){background-color:var(--color-base-200);border-radius:var(--radius-selector);border:var(--border)solid var(--color-base-300);font-weight:inherit;padding-inline:.5em}:root .prose :where(code):not(pre>code):before,:root .prose :where(code):not(pre>code):after{display:none}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.size-1{width:calc(var(--spacing)*1);height:calc(var(--spacing)*1)}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-8{height:calc(var(--spacing)*8)}.h-16{height:calc(var(--spacing)*16)}.max-h-60{max-height:calc(var(--spacing)*60)}.max-h-full{max-height:100%}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-8{width:calc(var(--spacing)*8)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-24{width:calc(var(--spacing)*24)}.w-28{width:calc(var(--spacing)*28)}.w-32{width:calc(var(--spacing)*32)}.w-40{width:calc(var(--spacing)*40)}.w-52{width:calc(var(--spacing)*52)}.w-56{width:calc(var(--spacing)*56)}.w-64{width:calc(var(--spacing)*64)}.w-full{width:100%}.max-w-full{max-width:100%}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.-translate-x-1{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-1\\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\\[15px\\]{--tw-translate-x:15px;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-\\[15deg\\]{rotate:15deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing)*0)}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-box{border-radius:var(--radius-box)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-\\[length\\:var\\(--border\\)\\]{border-style:var(--tw-border-style);border-width:var(--border)}.border-base-300{border-color:var(--color-base-300)}.border-base-content,.border-base-content\\/10{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.border-base-content\\/10{border-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.border-white{border-color:var(--color-white)}.border-white\\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.border-white\\/5{border-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.bg-accent{background-color:var(--color-accent)}.bg-base-100{background-color:var(--color-base-100)}.bg-base-200,.bg-base-200\\/70{background-color:var(--color-base-200)}@supports (color:color-mix(in lab,red,red)){.bg-base-200\\/70{background-color:color-mix(in oklab,var(--color-base-200)70%,transparent)}}.bg-base-content{background-color:var(--color-base-content)}.bg-black{background-color:var(--color-black)}.bg-black\\/90{background-color:#000000e6}@supports (color:color-mix(in lab,red,red)){.bg-black\\/90{background-color:color-mix(in oklab,var(--color-black)90%,transparent)}}.bg-primary{background-color:var(--color-primary)}.bg-secondary{background-color:var(--color-secondary)}@layer daisyui.style{.alert-soft{color:var(--alert-color,var(--color-base-content));background:var(--alert-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.alert-soft{background:color-mix(in oklab,var(--alert-color,var(--color-base-content))8%,var(--color-base-100))}}.alert-soft{--alert-border-color:var(--alert-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.alert-soft{--alert-border-color:color-mix(in oklab,var(--alert-color,var(--color-base-content))10%,var(--color-base-100))}}.alert-soft{box-shadow:none;background-image:none}}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.py-0{padding-block:calc(var(--spacing)*0)}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.py-8{padding-block:calc(var(--spacing)*8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[10px\\]{font-size:10px}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-all{word-break:break-all}.text-base-content,.text-base-content\\/90{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\\/90{color:color-mix(in oklab,var(--color-base-content)90%,transparent)}}.text-info{color:var(--color-info)}.text-primary{color:var(--color-primary)}.text-warning{color:var(--color-warning)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-\\[length\\:var\\(--border\\)\\]{outline-style:var(--tw-outline-style);outline-width:var(--border)}.outline-black{outline-color:var(--color-black)}.outline-black\\/5{outline-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.outline-black\\/5{outline-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition-\\[height\\,max-height\\]{transition-property:height,max-height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@layer daisyui.modifier.color{.btn-accent{--btn-color:var(--color-accent);--btn-fg:var(--color-accent-content)}.btn-error{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}.btn-info{--btn-color:var(--color-info);--btn-fg:var(--color-info-content)}.btn-neutral{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content)}.btn-primary{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}.btn-secondary{--btn-color:var(--color-secondary);--btn-fg:var(--color-secondary-content)}.btn-success{--btn-color:var(--color-success);--btn-fg:var(--color-success-content)}.btn-warning{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}}@media(hover:hover){.group-hover\\:border-base-content\\/20:is(:where(.group):hover *){border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.group-hover\\:border-base-content\\/20:is(:where(.group):hover *){border-color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.hover\\:translate-x-\\[15px\\]:hover{--tw-translate-x:15px;translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\\:rotate-\\[15deg\\]:hover{rotate:15deg}.hover\\:opacity-100:hover{opacity:1}}@media(min-width:40rem){.sm\\:inline-block{display:inline-block}.sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:48rem){.md\\:flex{display:flex}}.\\[\\&_svg\\]\\:visible svg{visibility:visible}}@keyframes rating{0%,40%{filter:brightness(1.05)contrast(1.05);scale:1.1}}@keyframes dropdown{0%{opacity:0}}@keyframes radio{0%{padding:5px}50%{padding:3px}}@keyframes toast{0%{opacity:0;scale:.9}to{opacity:1;scale:1}}@keyframes skeleton{0%{background-position:150%}to{background-position:-50%}}@keyframes progress{50%{background-position-x:-115%}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}`;
  dayjs.extend(localizedFormat);
  function mountApp() {
    const root = document.createElement("div");
    root.id = "tmd-root";
    document.body.append(root);
    const shadowRoot = root.attachShadow({ mode: "open" });
    shadowRoot.adoptedStyleSheets = [prepareStyles()];
    preact.render( u(MediaDownloaderApp, {}), shadowRoot);
  }
  function prepareStyles() {
    const shadowSheet = new CSSStyleSheet();
    shadowSheet.replaceSync(styles.replace(/:root/gu, ":host"));
    const globalSheet = new CSSStyleSheet();
    for (const rule of shadowSheet.cssRules) {
      if (rule instanceof CSSPropertyRule) {
        globalSheet.insertRule(rule.cssText);
      }
    }
    document.adoptedStyleSheets.push(globalSheet);
    return shadowSheet;
  }
  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", mountApp);
  } else {
    mountApp();
  }

})(preact, preactSignals, preactHooks, i18next, dayjs, Dexie, FileSaver, fflate);