UNPKG

jordium-gantt-vue3

Version:

A modern, flexible, and feature-rich Gantt chart component library for Vue 3

16,680 lines 888 kB
import { ref as KA, computed as Ce, defineComponent as Er, onMounted as jr, onUnmounted as Wr, resolveComponent as Sg, createElementBlock as DA, openBlock as xA, createElementVNode as X, createCommentVNode as he, normalizeClass as Ke, normalizeStyle as Tt, withModifiers as Kn, createStaticVNode as Nn, createTextVNode as cr, toDisplayString as _A, Fragment as et, renderList as yt, createBlock as li, watch as $t, unref as oe, nextTick as Lr, Teleport as Hg, createVNode as un, Transition as Dg, withCtx as Ng, reactive as Ro, withDirectives as or, vModelText as Hn, vModelSelect as ro, withKeys as kg } from "vue";
const Nc = {
  "zh-CN": {
    // TaskList Header
    taskName: "任务名称",
    predecessor: "前置任务",
    assignee: "分配人",
    startDate: "开始日期",
    endDate: "结束日期",
    estimatedHours: "预计工时(hr)",
    actualHours: "实际工时(hr)",
    progress: "进度",
    type: "类型",
    description: "描述",
    // CSV Export Headers(去除重复,仅保留引用)
    csvHeaders: {
      id: "ID",
      taskName: "任务名称",
      predecessor: "前置任务",
      assignee: "分配人",
      startDate: "开始日期",
      endDate: "结束日期",
      estimatedHours: "预计工时(hr)",
      actualHours: "实际工时(hr)",
      progress: "进度(%)",
      type: "类型",
      description: "描述"
    },
    // 日期格式
    yearMonthFormat: (t, e) => `${t}年${String(e).padStart(2, "0")}月`,
    // 其他
    milestone: "里程碑",
    today: "今天",
    // 里程碑对话框
    milestoneDetails: "里程碑详情",
    milestoneName: "里程碑名称",
    milestoneDate: "里程碑日期",
    milestoneIcon: "里程碑图标",
    diamond: "菱形",
    rocket: "火箭",
    enterMilestoneName: "请输入里程碑名称",
    enterAssignee: "请输入负责人",
    enterDescription: "请输入描述信息",
    milestoneNameRequired: "里程碑名称为必填项",
    milestoneDateRequired: "里程碑日期为必填项",
    save: "保存",
    close: "关闭",
    confirm: "确认",
    delete: "删除",
    confirmDelete: "确定要删除这个里程碑吗?",
    // 工具栏按钮
    addTask: "新增需求/任务",
    addMilestone: "新增里程碑",
    todayLocate: "今日",
    todayLocateTooltip: "定位到今天",
    exportCsv: "导出 CSV",
    exportPdf: "导出 PDF",
    language: "中文",
    languageTooltip: "选择语言",
    lightMode: "明亮模式",
    darkMode: "暗黑模式",
    fullscreen: "全屏",
    exitFullscreen: "退出全屏",
    githubDocs: "查看Github文档",
    giteeDocs: "查看Gitee文档",
    // 确认对话框
    confirmDialogMessage: "是否需要保留该设置?",
    // 新建任务对话框
    newTask: "新建任务",
    taskNamePlaceholder: "请输入任务名称",
    assigneePlaceholder: "请输入负责人",
    progressPlaceholder: "0-100",
    hoursPlaceholder: "工时",
    descriptionPlaceholder: "请输入任务描述...",
    hours: "小时",
    create: "创建",
    taskNameRequired: "任务名称不能为空",
    startDateRequired: "开始日期不能为空",
    endDateRequired: "结束日期不能为空",
    endDateInvalid: "结束日期不能早于开始日期",
    // 新建里程碑对话框
    newMilestone: "新建里程碑",
    editMilestone: "编辑里程碑",
    cancel: "取消",
    // PDF导出相关
    pdfExportLoading: "正在生成PDF,请稍候...",
    pdfExportTitle: "甘特图导出",
    pdfExportDate: "导出日期",
    milestoneGroup: "里程碑",
    collapseTaskList: "收起任务列表",
    expandTaskList: "展开任务列表",
    // TaskDrawer 相关
    taskType: "任务类型",
    taskTypeRequired: "请选择任务类型",
    taskTypeMap: {
      task: "任务",
      milestone: "里程碑",
      story: "需求",
      epic: "史诗",
      bug: "缺陷"
    },
    editTask: "编辑任务",
    parentTask: "上级任务",
    noParentTask: "无上级任务",
    update: "更新",
    taskNameTooLong: "任务名称不能超过50个字符",
    predecessorPlaceholder: "请选择前置任务",
    operationFailed: "操作失败,请重试",
    taskUpdateSuccess: "任务更新成功",
    taskCreateSuccess: "任务创建成功",
    confirmDeleteTask: '确定要删除任务"{name}"吗?此操作不可撤销。',
    taskDeleteFailed: "删除失败,请重试",
    // Story删除相关
    confirmDeleteStory: "是否删除该需求{name}及其所有的子任务?该操作不可撤回",
    storyDeleteYes: "是, 继续",
    storyDeleteNo: "不,仅删除需求",
    storyDeleteAllSuccess: "已删除需求【{name}】及其所有子任务",
    storyDeleteOnlySuccess: "已删除需求【{name}】,{count}个子任务已升级保留",
    storyNotFound: "未找到要删除的需求,ID:{id}",
    // 里程碑删除成功
    milestoneDeleteSuccess: "里程碑删除成功",
    // 其他删除成功消息
    taskDeletedSuccess: "已删除任务",
    // 选择器占位符
    selectAssignee: "请选择负责人",
    // 通用消息
    customCsvExportCalled: "自定义CSV导出被调用",
    languageSwitchedTo: "语言切换到:{language}",
    themeSwitchedTo: "主题切换到:{theme}",
    lightModeText: "明亮模式",
    darkModeText: "暗黑模式",
    taskNotFound: "未找到要更新的任务,ID:{id}",
    newParentTaskNotFound: "未找到新父任务,ID:{parentId},将作为顶级任务添加",
    inPlaceUpdateFailed: "就地更新失败,未找到任务,ID:{id}",
    taskToDeleteNotFound: "未找到要删除的任务,ID:{id}",
    milestoneIconUpdateNotFound: "未找到要更新图标的里程碑,ID:{id}",
    overtime: "超",
    overdue: "逾期",
    days: "天"
  },
  "en-US": {
    // TaskList Header
    taskName: "Task Name",
    predecessor: "Predecessor",
    assignee: "Assignee",
    startDate: "Start Date",
    endDate: "End Date",
    estimatedHours: "Est. Hours",
    actualHours: "Act. Hours",
    progress: "Progress",
    type: "Type",
    // CSV Export Headers(去除重复,仅保留引用)
    csvHeaders: {
      id: "ID",
      taskName: "Task Name",
      predecessor: "Predecessor",
      assignee: "Assignee",
      startDate: "Start Date",
      endDate: "End Date",
      estimatedHours: "Est. Hours",
      actualHours: "Act. Hours",
      progress: "Progress (%)",
      type: "Type",
      description: "Description"
    },
    // 日期格式
    yearMonthFormat: (t, e) => `${t}/${String(e).padStart(2, "0")}`,
    // 其他
    milestone: "Milestone",
    today: "Today",
    // 里程碑对话框
    milestoneDetails: "Milestone Details",
    milestoneName: "Milestone Name",
    milestoneDate: "Milestone Date",
    milestoneIcon: "Milestone Icon",
    diamond: "Diamond",
    rocket: "Rocket",
    enterMilestoneName: "Enter milestone name",
    enterAssignee: "Enter assignee",
    enterDescription: "Enter description",
    milestoneNameRequired: "Milestone name is required",
    milestoneDateRequired: "Milestone date is required",
    save: "Save",
    close: "Close",
    confirm: "Confirm",
    description: "Description",
    delete: "Delete",
    confirmDelete: "Are you sure you want to delete this milestone?",
    // 工具栏按钮
    addTask: "Add Requirement/Task",
    addMilestone: "Add Milestone",
    todayLocate: "Today",
    todayLocateTooltip: "Locate to today",
    exportCsv: "Export CSV",
    exportPdf: "Export PDF",
    language: "English",
    languageTooltip: "Select language",
    lightMode: "Light Mode",
    darkMode: "Dark Mode",
    fullscreen: "Fullscreen",
    exitFullscreen: "Exit Fullscreen",
    githubDocs: "GitHub Docs",
    giteeDocs: "Gitee Docs",
    // Confirm dialog
    confirmDialogMessage: "Do you want to save this setting?",
    taskNamePlaceholder: "Enter task name",
    assigneePlaceholder: "Enter assignee",
    progressPlaceholder: "0-100",
    hoursPlaceholder: "Hours",
    descriptionPlaceholder: "Enter task description...",
    hours: "Hours",
    create: "Create",
    taskNameRequired: "Task name is required",
    startDateRequired: "Start date is required",
    endDateRequired: "End date is required",
    endDateInvalid: "End date cannot be earlier than start date",
    // 新建里程碑对话框
    newMilestone: "New Milestone",
    editMilestone: "Edit Milestone",
    cancel: "Cancel",
    // PDF export
    pdfExportLoading: "Generating PDF, please wait...",
    pdfExportTitle: "Gantt Chart Export",
    pdfExportDate: "Export Date",
    milestoneGroup: "Milestone",
    collapseTaskList: "Collapse Task List",
    expandTaskList: "Expand Task List",
    // TaskDrawer related
    taskType: "Task Type",
    taskTypeRequired: "Please select task type",
    taskTypeMap: {
      task: "Task",
      milestone: "Milestone",
      story: "Story",
      epic: "Epic",
      bug: "Bug"
    },
    editTask: "Edit Task",
    newTask: "New Task",
    parentTask: "Parent Task",
    noParentTask: "No Parent Task",
    update: "Update",
    taskNameTooLong: "Task name cannot exceed 50 characters",
    predecessorPlaceholder: "Select predecessor",
    operationFailed: "Operation failed, please try again",
    taskUpdateSuccess: "Task updated successfully",
    taskCreateSuccess: "Task created successfully",
    confirmDeleteTask: 'Are you sure you want to delete task "{name}"? This action cannot be undone.',
    taskDeleteFailed: "Delete failed, please try again",
    // Story deletion related
    confirmDeleteStory: "Do you want to delete the requirement {name} and all its subtasks? This action cannot be undone",
    storyDeleteYes: "Yes, Continue",
    storyDeleteNo: "No, Delete Requirement Only",
    storyDeleteAllSuccess: "Deleted requirement [{name}] and all its subtasks",
    storyDeleteOnlySuccess: "Deleted requirement [{name}], {count} subtasks have been promoted",
    storyNotFound: "Requirement not found, ID: {id}",
    // Milestone deletion success
    milestoneDeleteSuccess: "Milestone deleted successfully",
    // Other deletion success messages
    taskDeletedSuccess: "Task deleted",
    // Selector placeholders
    selectAssignee: "Select assignee",
    // Common messages
    customCsvExportCalled: "Custom CSV export called",
    languageSwitchedTo: "Language switched to: {language}",
    themeSwitchedTo: "Theme switched to: {theme}",
    lightModeText: "Light Mode",
    darkModeText: "Dark Mode",
    taskNotFound: "Task not found for update, ID: {id}",
    newParentTaskNotFound: "New parent task not found, ID: {parentId}, will be added as top-level task",
    inPlaceUpdateFailed: "In-place update failed, task not found, ID: {id}",
    taskToDeleteNotFound: "Task to delete not found, ID: {id}",
    milestoneIconUpdateNotFound: "Milestone not found for icon update, ID: {id}",
    overtime: "Over",
    overdue: "Overdue",
    days: " days"
  }
};
function Zu(t, e) {
  Nc[t] && Object.assign(Nc[t], e);
}
const _g = "gantt-locale", Tg = () => {
  if (typeof window < "u") {
    const t = localStorage.getItem(_g);
    if (t && (t === "zh-CN" || t === "en-US"))
      return t;
  }
  return "zh-CN";
}, tc = KA(Tg());
function hi() {
  const t = Ce(() => Nc[tc.value]), e = (s) => {
    const o = t.value[s];
    return typeof o == "string" ? o : s;
  }, A = (s, o) => {
    let c = e(s);
    return Object.keys(o).forEach((h) => {
      c = c.replace(new RegExp(`{${h}}`, "g"), String(o[h]));
    }), c;
  }, r = (s) => {
    tc.value = s, window.dispatchEvent(
      new CustomEvent("locale-changed", {
        detail: { locale: s }
      })
    );
  }, n = Ce(() => tc.value);
  return {
    t,
    getTranslation: e,
    formatTranslation: A,
    locale: n,
    setLocale: r,
    formatYearMonth: (s, o) => t.value.yearMonthFormat(s, o)
  };
}
const Mg = {
  width: "12",
  height: "12",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, Pg = {
  key: 0,
  points: "9,18 15,12 9,6"
}, Og = {
  key: 1,
  points: "18,15 12,9 6,15"
}, Kg = {
  key: 1,
  class: "milestone-spacer"
}, Rg = { class: "task-icon" }, Gg = {
  key: 0,
  width: "16",
  height: "16",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2",
  class: "milestone-group-icon"
}, Vg = {
  key: 1,
  width: "16",
  height: "16",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, jg = {
  key: 2,
  width: "16",
  height: "16",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, qg = ["title"], Wg = {
  key: 0,
  class: "status-badge overtime"
}, Xg = {
  key: 1,
  class: "status-badge overdue"
}, zg = { class: "col col-pre" }, Jg = { class: "col col-assignee" }, Yg = { class: "assignee-info" }, $g = { class: "avatar" }, Zg = { class: "assignee-name" }, A1 = { class: "col col-date" }, e1 = { class: "col col-date" }, t1 = { class: "col col-hours" }, r1 = { class: "col col-hours" }, n1 = { class: "col col-progress" }, i1 = 10, a1 = /* @__PURE__ */ Er({
  __name: "TaskRow",
  props: {
    task: {},
    level: {},
    onDoubleClick: { type: Function },
    isHovered: { type: Boolean },
    hoveredTaskId: {},
    onHover: { type: Function }
  },
  emits: ["toggle", "dblclick"],
  setup(t, { emit: e }) {
    const A = t, r = e, { t: n } = hi(), i = Ce(() => {
      var j;
      return ((j = n.value) == null ? void 0 : j.overtime) ?? "";
    }), s = Ce(() => {
      var j;
      return ((j = n.value) == null ? void 0 : j.overdue) ?? "";
    }), o = Ce(() => {
      var j;
      return ((j = n.value) == null ? void 0 : j.days) ?? "";
    }), c = `${i1 + A.level * 20}px`;
    function h() {
      r("toggle", A.task);
    }
    function p() {
      (A.task.type === "story" || A.task.children && A.task.children.length > 0) && A.task.type !== "milestone-group" && r("toggle", A.task);
    }
    const d = (j) => {
      j.stopPropagation(), A.onDoubleClick && typeof A.onDoubleClick == "function" ? A.onDoubleClick(A.task) : r("dblclick", A.task);
    }, w = () => {
      v.value || A.onHover && A.onHover(A.task.id);
    }, g = () => {
      v.value || A.onHover && A.onHover(null);
    };
    function Q() {
      const j = A.task.progress || 0, q = /* @__PURE__ */ new Date(), V = A.task.endDate ? new Date(A.task.endDate) : null;
      return V && q > V && j < 100 ? "progress-danger" : j >= 100 ? "progress-success" : j > 0 ? "progress-warning" : "";
    }
    function y() {
      return A.task.actualHours && A.task.estimatedHours && A.task.actualHours > A.task.estimatedHours;
    }
    function N() {
      const j = /* @__PURE__ */ new Date(), q = A.task.endDate ? new Date(A.task.endDate) : null, V = A.task.progress || 0;
      if (q && j > q && V < 100) {
        const z = new Date(j.getFullYear(), j.getMonth(), j.getDate()), H = new Date(q.getFullYear(), q.getMonth(), q.getDate());
        return Math.floor((z.getTime() - H.getTime()) / (1e3 * 60 * 60 * 24));
      }
      return 0;
    }
    const v = KA(!1), U = () => {
      v.value = !0;
    }, K = () => {
      v.value = !1;
    };
    return jr(() => {
      window.addEventListener("splitter-drag-start", U), window.addEventListener("splitter-drag-end", K);
    }), Wr(() => {
      window.removeEventListener("splitter-drag-start", U), window.removeEventListener("splitter-drag-end", K);
    }), (j, q) => {
      const V = Sg("TaskRow", !0);
      return xA(), DA("div", null, [
        X("div", {
          class: Ke(["task-row", {
            "task-row-hovered": j.isHovered,
            "parent-task": A.task.type === "story" || A.task.children && A.task.children.length > 0 || A.task.type === "milestone-group",
            "milestone-group-row": A.task.type === "milestone-group",
            "task-type-story": A.task.type === "story",
            "task-type-task": A.task.type === "task",
            "task-type-milestone": A.task.type === "milestone"
          }]),
          onClick: p,
          onDblclick: d,
          onMouseenter: w,
          onMouseleave: g
        }, [
          X("div", {
            class: "col col-name",
            style: Tt({ paddingLeft: c })
          }, [
            (A.task.type === "story" || A.task.children && A.task.children.length > 0) && A.task.type !== "milestone-group" ? (xA(), DA("span", {
              key: 0,
              class: "collapse-btn",
              onClick: Kn(h, ["stop"])
            }, [
              (xA(), DA("svg", Mg, [
                A.task.collapsed ? (xA(), DA("polyline", Pg)) : (xA(), DA("polyline", Og))
              ]))
            ])) : he("", !0),
            A.task.type === "milestone-group" ? (xA(), DA("span", Kg)) : he("", !0),
            X("span", Rg, [
              A.task.type === "milestone-group" ? (xA(), DA("svg", Gg, q[2] || (q[2] = [
                X("polygon", { points: "12,2 22,12 12,22 2,12" }, null, -1)
              ]))) : A.task.type === "story" || A.task.children && A.task.children.length > 0 ? (xA(), DA("svg", Vg, q[3] || (q[3] = [
                X("path", { d: "M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-5l-2-2H5a2 2 0 00-2 2z" }, null, -1)
              ]))) : (xA(), DA("svg", jg, q[4] || (q[4] = [
                Nn('<path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" data-v-36676023></path><polyline points="14,2 14,8 20,8" data-v-36676023></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-36676023></line><line x1="16" y1="17" x2="8" y2="17" data-v-36676023></line><polyline points="10,9 9,9 8,9" data-v-36676023></polyline>', 5)
              ])))
            ]),
            X("span", {
              class: Ke(["task-name-text", {
                "parent-task": A.task.type === "story" || A.task.children && A.task.children.length > 0 || A.task.type === "milestone-group"
              }]),
              title: A.task.name
            }, [
              cr(_A(A.task.name) + " ", 1),
              y() ? (xA(), DA("span", Wg, _A(i.value), 1)) : he("", !0),
              N() > 0 ? (xA(), DA("span", Xg, _A(s.value) + _A(N() > 0 ? N() + o.value : ""), 1)) : he("", !0)
            ], 10, qg)
          ], 4),
          A.task.type === "milestone-group" ? (xA(), DA(et, { key: 0 }, [
            q[5] || (q[5] = Nn('<div class="col col-pre milestone-empty-col" data-v-36676023></div><div class="col col-assignee milestone-empty-col" data-v-36676023></div><div class="col col-date milestone-empty-col" data-v-36676023></div><div class="col col-date milestone-empty-col" data-v-36676023></div><div class="col col-hours milestone-empty-col" data-v-36676023></div><div class="col col-hours milestone-empty-col" data-v-36676023></div><div class="col col-progress milestone-empty-col" data-v-36676023></div>', 7))
          ], 64)) : (xA(), DA(et, { key: 1 }, [
            X("div", zg, _A(A.task.predecessor || "-"), 1),
            X("div", Jg, [
              X("div", Yg, [
                X("div", $g, _A(A.task.assignee ? A.task.assignee.charAt(0) : "-"), 1),
                X("span", Zg, _A(A.task.assignee || "-"), 1)
              ])
            ]),
            X("div", A1, _A(A.task.startDate || "-"), 1),
            X("div", e1, _A(A.task.endDate || "-"), 1),
            X("div", t1, _A(A.task.estimatedHours || "-"), 1),
            X("div", r1, _A(A.task.actualHours || "-"), 1),
            X("div", n1, [
              X("span", {
                class: Ke(["progress-value", Q()])
              }, _A(A.task.progress != null ? A.task.progress + "%" : "-"), 3)
            ])
          ], 64))
        ], 34),
        A.task.children && !A.task.collapsed && A.task.type !== "milestone-group" ? (xA(!0), DA(et, { key: 0 }, yt(A.task.children, (z) => (xA(), li(V, {
          key: z.id,
          task: z,
          level: A.level + 1,
          "is-hovered": A.hoveredTaskId === z.id,
          "hovered-task-id": A.hoveredTaskId,
          "on-double-click": A.onDoubleClick,
          "on-hover": A.onHover,
          onToggle: q[0] || (q[0] = (H) => r("toggle", H)),
          onDblclick: q[1] || (q[1] = (H) => r("dblclick", H))
        }, null, 8, ["task", "level", "is-hovered", "hovered-task-id", "on-double-click", "on-hover"]))), 128)) : he("", !0)
      ]);
    };
  }
}), xr = (t, e) => {
  const A = t.__vccOpts || t;
  for (const [r, n] of e)
    A[r] = n;
  return A;
}, s1 = /* @__PURE__ */ xr(a1, [["__scopeId", "data-v-36676023"]]), o1 = { class: "task-list" }, l1 = { class: "task-list-header" }, c1 = { class: "col col-name" }, u1 = { class: "col col-pre" }, f1 = { class: "col col-assignee" }, h1 = { class: "col col-date" }, d1 = { class: "col col-date" }, g1 = { class: "col col-hours" }, p1 = { class: "col col-hours" }, B1 = { class: "col col-progress" }, w1 = /* @__PURE__ */ Er({
  __name: "TaskList",
  props: {
    tasks: {},
    onTaskDoubleClick: { type: Function },
    editComponent: {},
    useDefaultDrawer: { type: Boolean }
  },
  emits: ["task-collapse-change"],
  setup(t, { emit: e }) {
    const A = t, r = e, { t: n } = hi(), i = KA([]), s = KA(null), o = KA(!1), c = () => {
      o.value = !0;
    }, h = () => {
      o.value = !1;
    }, p = (H) => {
      o.value || (s.value = H, window.dispatchEvent(
        new CustomEvent("task-list-hover", {
          detail: H
        })
      ));
    }, d = (H) => {
      s.value = H.detail;
    }, w = (H) => {
      H.type === "milestone" || H.type === "milestone-group" || (A.onTaskDoubleClick && typeof A.onTaskDoubleClick == "function" ? A.onTaskDoubleClick(H) : A.useDefaultDrawer && window.dispatchEvent(
        new CustomEvent("task-row-double-click", {
          detail: H
        })
      ));
    }, g = (H) => {
      if (!H.children || H.children.length === 0)
        return {
          progress: H.progress || 0,
          startDate: H.startDate || "",
          endDate: H.endDate || ""
        };
      const G = [], tA = (k) => {
        k.forEach((W) => {
          G.push(W), W.children && W.children.length > 0 && tA(W.children);
        });
      };
      tA(H.children);
      const x = G.reduce((k, W) => k + (W.progress || 0), 0), F = G.length > 0 ? Math.round(x / G.length) : 0, _ = G.filter((k) => k.startDate && k.endDate);
      if (_.length === 0)
        return {
          progress: F,
          startDate: H.startDate || "",
          endDate: H.endDate || ""
        };
      const P = _.map((k) => new Date(k.startDate)), lA = _.map((k) => new Date(k.endDate)), oA = new Date(Math.min(...P.map((k) => k.getTime()))), iA = new Date(Math.max(...lA.map((k) => k.getTime())));
      return {
        progress: F,
        startDate: oA.toISOString().split("T")[0],
        endDate: iA.toISOString().split("T")[0]
      };
    }, Q = () => {
      const H = (G) => G.map((tA) => {
        if (tA.children && tA.children.length > 0) {
          const x = H(tA.children), F = g({
            ...tA,
            children: x
          });
          return {
            ...tA,
            progress: F.progress,
            startDate: F.startDate,
            endDate: F.endDate,
            children: x
          };
        }
        return tA;
      });
      i.value = H(i.value);
    }, y = (H) => {
      const G = [], tA = (x) => {
        x.forEach((F) => {
          G.push(F), F.children && F.children.length > 0 && tA(F.children);
        });
      };
      return tA(H), G;
    };
    $t(
      () => A.tasks,
      (H) => {
        i.value = H || [], Q();
      },
      { immediate: !0, deep: !0 }
    );
    function N(H) {
      H.collapsed = !H.collapsed, r("task-collapse-change", H);
    }
    const v = (H) => {
      const G = (tA) => tA.map((x) => x.id === H.id ? {
        ...x,
        ...H,
        // 完整更新所有字段
        children: x.children
        // 保留子任务结构
      } : x.children ? {
        ...x,
        children: G(x.children)
      } : x);
      i.value = G(i.value), Q();
    }, U = (H) => {
      const G = H.detail;
      v(G);
    }, K = (H) => {
      const G = H.detail;
      i.value.push(G), Q();
    }, j = () => {
      const H = y(i.value);
      window.dispatchEvent(
        new CustomEvent("task-list-updated", {
          detail: H
        })
      );
    }, q = (H) => {
      const { milestoneId: G, icon: tA } = H.detail, x = (F) => {
        for (const _ of F) {
          if (_.type === "milestone-group" && _.children) {
            const P = _.children.find((lA) => lA.id === G);
            if (P)
              return P.icon = tA, !0;
          }
          if (_.children && x(_.children))
            return !0;
        }
        return !1;
      };
      x(i.value);
    }, V = (H) => {
      const G = H.target;
      if (!G) return;
      const tA = G.scrollTop;
      window.dispatchEvent(
        new CustomEvent("task-list-vertical-scroll", {
          detail: { scrollTop: tA }
        })
      );
    }, z = (H) => {
      const { scrollTop: G } = H.detail, tA = document.querySelector(".task-list-body");
      tA && tA.scrollTop !== G && (tA.scrollTop = G);
    };
    return jr(async () => {
      window.addEventListener("task-updated", U), window.addEventListener("task-added", K), window.addEventListener("request-task-list", j), window.addEventListener("timeline-task-hover", d), window.addEventListener("timeline-vertical-scroll", z), window.addEventListener("milestone-icon-changed", q), window.addEventListener("splitter-drag-start", c), window.addEventListener("splitter-drag-end", h), Q();
    }), Wr(() => {
      window.removeEventListener("task-updated", U), window.removeEventListener("task-added", K), window.removeEventListener("request-task-list", j), window.removeEventListener("timeline-task-hover", d), window.removeEventListener(
        "timeline-vertical-scroll",
        z
      ), window.removeEventListener("milestone-icon-changed", q), window.removeEventListener("splitter-drag-start", c), window.removeEventListener("splitter-drag-end", h);
    }), (H, G) => (xA(), DA("div", o1, [
      X("div", l1, [
        X("div", c1, _A(oe(n).taskName), 1),
        X("div", u1, _A(oe(n).predecessor), 1),
        X("div", f1, _A(oe(n).assignee), 1),
        X("div", h1, _A(oe(n).startDate), 1),
        X("div", d1, _A(oe(n).endDate), 1),
        X("div", g1, _A(oe(n).estimatedHours), 1),
        X("div", p1, _A(oe(n).actualHours), 1),
        X("div", B1, _A(oe(n).progress), 1)
      ]),
      X("div", {
        class: "task-list-body",
        onScroll: V
      }, [
        (xA(!0), DA(et, null, yt(i.value, (tA) => (xA(), li(s1, {
          key: tA.id,
          task: tA,
          level: 0,
          "is-hovered": s.value === tA.id,
          "hovered-task-id": s.value,
          "on-double-click": A.onTaskDoubleClick,
          "on-hover": p,
          onToggle: N,
          onDblclick: w
        }, null, 8, ["task", "is-hovered", "hovered-task-id", "on-double-click"]))), 128))
      ], 32)
    ]));
  }
}), v1 = /* @__PURE__ */ xr(w1, [["__scopeId", "data-v-777d0247"]]), m1 = {
  key: 0,
  class: "parent-label"
}, C1 = { class: "task-name" }, y1 = {
  key: 0,
  class: "task-progress"
}, F1 = /* @__PURE__ */ Er({
  __name: "TaskBar",
  props: {
    task: {},
    rowHeight: {},
    dayWidth: {},
    startDate: {},
    isParent: { type: Boolean },
    onDoubleClick: { type: Function }
  },
  emits: [
    "update:task",
    "bar-mounted",
    "dblclick",
    "drag-end",
    // 新增
    "resize-end"
    // 新增
  ],
  setup(t, { emit: e }) {
    const A = t, r = e, n = (F) => {
      if (!F) return null;
      if (F instanceof Date)
        return F;
      if (typeof F == "string" && /^\d{4}-\d{2}-\d{2}$/.test(F)) {
        const [P, lA, oA] = F.split("-").map(Number);
        return new Date(P, lA - 1, oA);
      }
      const _ = new Date(F);
      return isNaN(_.getTime()) ? null : _;
    }, i = () => {
      const F = /* @__PURE__ */ new Date();
      return new Date(F.getFullYear(), F.getMonth(), F.getDate());
    }, s = (F) => {
      const _ = F.getFullYear(), P = String(F.getMonth() + 1).padStart(2, "0"), lA = String(F.getDate()).padStart(2, "0");
      return `${_}-${P}-${lA}`;
    }, o = (F, _) => {
      const P = new Date(F);
      return P.setDate(P.getDate() + _), P;
    }, c = KA(!1), h = KA(!1), p = KA(!1), d = KA(0), w = KA(0), g = KA(0), Q = KA(0), y = KA(0), N = KA(0), v = KA(null), U = KA(null), K = Ce(() => {
      var W, rA;
      const F = ((W = v.value) == null ? void 0 : W.startDate) || A.task.startDate, _ = ((rA = v.value) == null ? void 0 : rA.endDate) || A.task.endDate, P = n(F), lA = n(_), oA = n(A.startDate);
      if (!P || !lA || !oA)
        return {
          left: "0px",
          width: "0px",
          height: `${A.rowHeight - 10}px`,
          top: "4px"
        };
      const iA = Math.floor((P.getTime() - oA.getTime()) / (1e3 * 60 * 60 * 24)), k = Math.floor((lA.getTime() - P.getTime()) / (1e3 * 60 * 60 * 24)) + 1;
      return {
        left: `${iA * A.dayWidth}px`,
        width: `${k * A.dayWidth}px`,
        height: `${A.rowHeight - 10}px`,
        top: "4px"
      };
    }), j = Ce(() => {
      if (A.isParent)
        return {
          type: "parent",
          color: "#409eff",
          // 与新建按钮一致的蓝色
          bgColor: "#409eff",
          borderColor: "#409eff"
        };
      const F = i(), _ = n(A.task.endDate || ""), P = A.task.progress || 0;
      return P >= 100 ? {
        type: "completed",
        color: "#909399",
        // info color
        bgColor: "#f4f4f5",
        borderColor: "#d3d4d6"
      } : _ && _ < F && P < 100 ? {
        type: "delayed",
        color: "#f56c6c",
        // danger color
        bgColor: "#fef0f0",
        borderColor: "#fbc4c4"
      } : _ && _ >= F && P > 0 ? {
        type: "in-progress",
        color: "#e6a23c",
        // warning color
        bgColor: "#fdf6ec",
        borderColor: "#f5dab1"
      } : {
        type: "not-started",
        color: "#409eff",
        // primary color
        bgColor: "#ecf5ff",
        borderColor: "#b3d8ff"
      };
    }), q = Ce(() => (A.task.progress || 0) >= 100), V = Ce(() => {
      const F = A.task.progress || 0, _ = parseInt(K.value.width);
      return `${F / 100 * _}px`;
    }), z = (F, _) => {
      q.value || A.isParent || (F.preventDefault(), F.stopPropagation(), v.value = null, _ === "drag" ? (c.value = !0, d.value = F.clientX, w.value = parseInt(K.value.left), g.value = parseInt(K.value.width)) : _ === "resize-left" ? (h.value = !0, Q.value = F.clientX, y.value = parseInt(K.value.width), N.value = parseInt(K.value.left)) : _ === "resize-right" && (p.value = !0, Q.value = F.clientX, y.value = parseInt(K.value.width), N.value = parseInt(K.value.left)), document.addEventListener("mousemove", G), document.addEventListener("mouseup", tA));
    };
    function H() {
      if (U.value) {
        const F = U.value.getBoundingClientRect();
        r("bar-mounted", {
          id: A.task.id,
          left: F.left,
          top: F.top,
          width: F.width,
          height: F.height
        });
      }
    }
    const G = (F) => {
      if (c.value) {
        const _ = F.clientX - d.value, P = Math.max(0, w.value + _), lA = o(A.startDate, P / A.dayWidth), oA = g.value / A.dayWidth, iA = o(lA, oA - 1);
        v.value = {
          startDate: s(lA),
          endDate: s(iA)
        };
      } else if (h.value) {
        const _ = F.clientX - Q.value, P = Math.max(0, N.value + _), lA = o(A.startDate, P / A.dayWidth);
        v.value = {
          startDate: s(lA),
          endDate: A.task.endDate
          // 保持原来的结束日期
        };
      } else if (p.value) {
        const _ = F.clientX - Q.value, lA = Math.max(A.dayWidth, y.value + _) / A.dayWidth, oA = o(
          A.startDate,
          N.value / A.dayWidth + lA - 1
        );
        v.value = {
          startDate: A.task.startDate,
          // 保持原来的开始日期
          endDate: s(oA)
        };
      }
    }, tA = () => {
      if (v.value) {
        const F = {
          ...A.task,
          ...v.value
        };
        c.value ? r("drag-end", F) : (h.value || p.value) && r("resize-end", F), r("update:task", F), v.value = null, Lr(() => {
          H();
        });
      }
      c.value = !1, h.value = !1, p.value = !1, document.removeEventListener("mousemove", G), document.removeEventListener("mouseup", tA);
    };
    jr(() => {
      Lr(() => {
        H();
      });
    }), $t(
      () => [A.task.startDate, A.task.endDate],
      () => {
        Lr(() => {
          H();
        });
      },
      { deep: !0 }
    );
    const x = (F) => {
      F.stopPropagation(), F.preventDefault(), c.value = !1, h.value = !1, p.value = !1, v.value = null, document.removeEventListener("mousemove", G), document.removeEventListener("mouseup", tA), A.onDoubleClick && typeof A.onDoubleClick == "function" ? A.onDoubleClick(A.task) : r("dblclick", A.task);
    };
    return Wr(() => {
      document.removeEventListener("mousemove", G), document.removeEventListener("mouseup", tA);
    }), (F, _) => (xA(), DA("div", {
      ref_key: "barRef",
      ref: U,
      class: Ke(["task-bar", {
        dragging: c.value,
        resizing: h.value || p.value,
        completed: q.value,
        "parent-task": F.isParent
      }]),
      style: Tt({
        ...K.value,
        backgroundColor: j.value.bgColor,
        borderColor: j.value.borderColor,
        color: j.value.color,
        cursor: q.value || F.isParent ? "default" : "move"
      }),
      onDblclick: x
    }, [
      F.isParent ? (xA(), DA("div", m1, _A(F.task.name) + " (" + _A(F.task.progress || 0) + "%)", 1)) : he("", !0),
      !F.isParent && F.task.progress && F.task.progress > 0 ? (xA(), DA("div", {
        key: 1,
        class: "progress-bar",
        style: Tt({
          width: V.value,
          backgroundColor: j.value.color
        })
      }, null, 4)) : he("", !0),
      !q.value && !F.isParent ? (xA(), DA("div", {
        key: 2,
        class: "resize-handle resize-handle-left",
        onMousedown: _[0] || (_[0] = (P) => z(P, "resize-left"))
      }, null, 32)) : he("", !0),
      F.isParent ? he("", !0) : (xA(), DA("div", {
        key: 3,
        class: "task-bar-content",
        onMousedown: _[1] || (_[1] = (P) => z(P, "drag"))
      }, [
        X("div", C1, _A(F.task.name), 1),
        F.task.progress !== void 0 ? (xA(), DA("div", y1, _A(F.task.progress) + "%", 1)) : he("", !0)
      ], 32)),
      !q.value && !F.isParent ? (xA(), DA("div", {
        key: 4,
        class: "resize-handle resize-handle-right",
        onMousedown: _[2] || (_[2] = (P) => z(P, "resize-right"))
      }, null, 32)) : he("", !0)
    ], 38));
  }
}), Q1 = /* @__PURE__ */ xr(F1, [["__scopeId", "data-v-8b57e917"]]), b1 = ["title"], U1 = {
  width: 24,
  height: 24,
  viewBox: "0 0 24 24"
}, L1 = {
  key: 0,
  transform: "rotate(45 16 16)"
}, E1 = ["fill", "stroke"], x1 = { key: 1 }, I1 = {
  key: 2,
  transform: "rotate(45 16 16)"
}, S1 = ["fill", "stroke"], H1 = {
  key: 0,
  class: "milestone-label milestone-label-right"
}, D1 = /* @__PURE__ */ Er({
  __name: "MilestonePoint",
  props: {
    date: {},
    rowHeight: {},
    dayWidth: {},
    startDate: {},
    name: {},
    milestone: {}
  },
  emits: ["milestone-double-click", "update:milestone", "drag-end"],
  setup(t, { emit: e }) {
    const A = t, r = e, n = KA(!1), i = KA(0), s = KA(0), o = KA(null), c = (U) => {
      if (U.preventDefault(), U.stopPropagation(), n.value = !1, o.value = null, document.removeEventListener("mousemove", w), document.removeEventListener("mouseup", g), A.milestone)
        r("milestone-double-click", A.milestone);
      else {
        const K = {
          name: A.name || "里程碑",
          startDate: A.date,
          type: "milestone"
        };
        r("milestone-double-click", K);
      }
    }, h = (U, K) => {
      const j = new Date(U);
      return j.setDate(j.getDate() + K), j;
    }, p = (U) => {
      const K = U.getFullYear(), j = String(U.getMonth() + 1).padStart(2, "0"), q = String(U.getDate()).padStart(2, "0");
      return `${K}-${j}-${q}`;
    }, d = (U) => {
      U.preventDefault(), U.stopPropagation(), i.value = U.clientX, s.value = parseInt(Q.value.left), o.value = null, document.addEventListener("mousemove", w), document.addEventListener("mouseup", g);
    }, w = (U) => {
      const K = U.clientX - i.value;
      if (Math.abs(K) > 3) {
        n.value = !0;
        const j = Math.max(0, s.value + K), q = h(A.startDate, j / A.dayWidth);
        o.value = {
          startDate: p(q)
        };
      }
    }, g = () => {
      if (n.value && o.value && A.milestone) {
        const U = {
          ...A.milestone,
          ...o.value
        };
        r("update:milestone", U), r("drag-end", U);
      }
      n.value = !1, o.value = null, document.removeEventListener("mousemove", w), document.removeEventListener("mouseup", g);
    }, Q = Ce(() => {
      var q;
      const U = (q = o.value) != null && q.startDate ? new Date(o.value.startDate) : new Date(A.date);
      if (!A.startDate || isNaN(new Date(A.date).getTime()))
        return {
          left: "0px",
          top: "0px",
          width: "auto",
          height: "auto"
        };
      const K = Math.floor(
        (U.getTime() - A.startDate.getTime()) / (1e3 * 60 * 60 * 24)
      ), j = Math.min(A.rowHeight, A.dayWidth * 1.2, 24);
      return {
        left: `${K * A.dayWidth + A.dayWidth / 2 - j / 2}px`,
        top: `${(A.rowHeight - j) / 2}px`,
        width: "auto",
        height: "auto"
      };
    }), y = Ce(() => "var(--gantt-danger, #f56c6c)"), N = Ce(() => "var(--gantt-danger-light, #fab6b6)"), v = Ce(() => {
      var U;
      return ((U = A.milestone) == null ? void 0 : U.icon) || "diamond";
    });
    return Wr(() => {
      n.value = !1, o.value = null, document.removeEventListener("mousemove", w), document.removeEventListener("mouseup", g);
    }), (U, K) => (xA(), DA("div", {
      class: Ke(["milestone", { dragging: n.value }]),
      style: Tt(Q.value),
      title: A.name || "里程碑",
      onDblclick: c,
      onMousedown: d
    }, [
      (xA(), DA("svg", U1, [
        v.value === "diamond" ? (xA(), DA("g", L1, [
          X("rect", {
            x: "4",
            y: "8",
            width: "15",
            height: "15",
            rx: "6",
            ry: "6",
            fill: y.value,
            stroke: N.value,
            "stroke-width": "2"
          }, null, 8, E1)
        ])) : v.value === "rocket" ? (xA(), DA("g", x1, K[0] || (K[0] = [
          X("foreignObject", {
            x: "0",
            y: "0",
            width: "24",
            height: "24"
          }, [
            X("div", { class: "rocket-emoji" }, "🚀")
          ], -1)
        ]))) : (xA(), DA("g", I1, [
          X("rect", {
            x: "4",
            y: "8",
            width: "15",
            height: "15",
            rx: "6",
            ry: "6",
            fill: y.value,
            stroke: N.value,
            "stroke-width": "2"
          }, null, 8, S1)
        ]))
      ])),
      A.name ? (xA(), DA("span", H1, _A(A.name), 1)) : he("", !0)
    ], 46, b1));
  }
}), N1 = /* @__PURE__ */ xr(D1, [["__scopeId", "data-v-2b6a4847"]]), k1 = {
  success: "#67c23a",
  // 绿色
  warning: "#e6a23c",
  // 黄色
  error: "#f56c6c",
  // 红色
  info: "#909399"
  // 灰色
};
let ni = null;
function _1() {
  return ni || (ni = document.createElement("div"), ni.className = "message-container", ni.style.cssText = `
      position: fixed;
      top: 20px;
      right: 20px;
      z-index: 9999;
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      gap: 12px;
      pointer-events: none;
    `, document.body.appendChild(ni)), ni;
}
const no = /* @__PURE__ */ new Map(), Af = 1e3;
function Ch() {
  return { showMessage: (e, A = "success", r) => {
    const n = Date.now(), i = `${A}:${e}`, s = no.get(i);
    if (!(r != null && r.allowDuplicate) && s && n - s < Af)
      return;
    no.set(i, n);
    for (const [Q, y] of no.entries())
      n - y > Af * 2 && no.delete(Q);
    const o = document.createElement("div");
    o.className = `message ${A}`, o.textContent = e, o.style.cssText = `
      min-width: 180px;
      max-width: 360px;
      margin: 0;
      padding: 12px 20px 12px 20px;
      border-radius: 4px;
      color: white;
      font-size: 14px;
      background: ${k1[A]};
      box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
      pointer-events: auto;
      opacity: 0;
      display: flex;
      align-items: center;
      gap: 12px;
      transform: translateY(-20px);
      transition: opacity 0.25s, transform 0.25s;
      position: relative;
    `;
    let c = !1;
    const h = (r == null ? void 0 : r.closable) ?? !1;
    if (h) {
      const Q = document.createElement("button");
      Q.innerHTML = '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>', Q.style.cssText = `
        background: transparent;
        border: none;
        color: white;
        cursor: pointer;
        margin-left: 8px;
        padding: 0;
        display: flex;
        align-items: center;
        opacity: 0.7;
        transition: opacity 0.2s;
      `, Q.onmouseenter = () => Q.style.opacity = "1", Q.onmouseleave = () => Q.style.opacity = "0.7", Q.onclick = () => g(), o.appendChild(Q);
    }
    const p = _1();
    p.appendChild(o), setTimeout(() => {
      o.style.opacity = "0.98", o.style.transform = "translateY(0)";
    }, 10);
    const d = (r == null ? void 0 : r.duration) ?? (h ? 0 : 3e3);
    let w;
    !h && d > 0 && (w = window.setTimeout(() => g(), d));
    function g() {
      c || (c = !0, o.style.opacity = "0", o.style.transform = "translateY(-20px)", w && clearTimeout(w), setTimeout(() => {
        o.parentNode && (p.removeChild(o), p.childElementCount === 0 && (p.remove(), ni = null));
      }, 250));
    }
  } };
}
const T1 = { class: "el-input__wrapper" }, M1 = { class: "el-input__inner" }, P1 = ["value", "placeholder", "disabled"], O1 = { class: "el-input__suffix" }, K1 = { class: "el-input__suffix-inner" }, R1 = {
  key: 1,
  class: "el-input__icon"
}, G1 = {
  key: 0,
  class: "el-year-picker"
}, V1 = { class: "el-year-picker__header" }, j1 = { class: "el-year-picker__header-label" }, q1 = { class: "el-year-picker__content" }, W1 = ["onClick"], X1 = {
  key: 1,
  class: "el-month-picker"
}, z1 = { class: "el-month-picker__header" }, J1 = { class: "el-month-picker__content" }, Y1 = ["onClick"], $1 = {
  key: 2,
  class: "el-date-picker__content-wrapper"
}, Z1 = { class: "el-date-picker__header" }, A0 = { class: "el-date-picker__header-label" }, e0 = { class: "el-date-picker__content" }, t0 = { class: "el-date-table__header" }, r0 = { class: "el-date-table__body" }, n0 = ["onClick"], i0 = { class: "el-date-table__cell-inner" }, a0 = /* @__PURE__ */ Er({
  __name: "DatePicker",
  props: {
    modelValue: { default: "" },
    type: { default: "date" },
    placeholder: { default: "请选择日期" },
    startPlaceholder: { default: "开始日期" },
    endPlaceholder: { default: "结束日期" },
    disabled: { type: Boolean, default: !1 },
    clearable: { type: Boolean, default: !0 },
    size: { default: "default" },
    format: { default: "YYYY-MM-DD" },
    valueFormat: { default: "YYYY-MM-DD" },
    rangeSeparator: { default: "至" }
  },
  emits: ["update:modelValue", "change", "focus", "blur"],
  setup(t, { emit: e }) {
    const A = t, r = e, n = KA(!1), i = KA(!1), s = KA(!1), o = KA(!1), c = KA(!1), h = KA(), p = KA(), d = KA(null), w = KA(0), g = KA((/* @__PURE__ */ new Date()).getFullYear()), Q = KA((/* @__PURE__ */ new Date()).getMonth()), y = KA(Math.floor((/* @__PURE__ */ new Date()).getFullYear() / 10) * 10), N = KA(""), v = KA(""), U = KA(""), K = KA("start"), j = ($) => {
      if (!$) return "";
      const BA = new Date($);
      return `${BA.getFullYear()}-${String(BA.getMonth() + 1).padStart(2, "0")}-${String(BA.getDate()).padStart(2, "0")}`;
    }, q = Ce(() => {
      if (A.type === "daterange") {
        const $ = v.value ? j(v.value) : "", BA = U.value ? j(U.value) : "";
        return $ && BA ? `${$} ${A.rangeSeparator} ${BA}` : $ || BA || "";
      }
      return N.value ? j(N.value) : "";
    });
    $t(
      () => A.modelValue,
      ($) => {
        A.type === "daterange" ? Array.isArray($) && $.length === 2 ? (v.value = $[0] || "", U.value = $[1] || "") : (v.value = "", U.value = "") : N.value = $ || "";
      },
      { immediate: !0 }
    );
    const V = () => {
      A.type === "daterange" ? (v.value = "", U.value = "", r("update:modelValue", ["", ""]), r("change", ["", ""])) : (N.value = "", r("update:modelValue", ""), r("change", "")), s.value = !1;
    }, z = () => {
      if (!A.disabled && (s.value = !s.value, s.value)) {
        tA.x = window.scrollX, tA.y = window.scrollY, w.value++;
        let $;
        A.type === "daterange" ? $ = v.value ? new Date(v.value) : /* @__PURE__ */ new Date() : $ = N.value ? new Date(N.value) : /* @__PURE__ */ new Date(), g.value = $.getFullYear(), Q.value = $.getMonth();
      }
    }, H = () => {
      s.value = !1, o.value = !1, c.value = !1, n.value = !1, d.value && (clearTimeout(d.value), d.value = null);
    }, G = ($) => {
      var sA, pA;
      const BA = $.target;
      !((sA = h.value) != null && sA.contains(BA)) && !((pA = p.value) != null && pA.contains(BA)) && H();
    }, tA = { x: 0, y: 0 }, x = () => {
      if (s.value) {
        const $ = window.scrollX, BA = window.scrollY, sA = Math.abs($ - tA.x), pA = Math.abs(BA - tA.y);
        sA < 50 && pA < 50 ? w.value++ : H(), tA.x = $, tA.y = BA;
      }
    }, F = () => {
      s.value && w.value++;
    }, _ = Ce(() => {
      const $ = new Date(g.value, Q.value, 1), BA = new Date($);
      BA.setDate(BA.getDate() - $.getDay());
      const sA = [];
      for (let pA = 0; pA < 42; pA++) {
        const FA = new Date(BA);
        FA.setDate(BA.getDate() + pA);
        const UA = `${FA.getFullYear()}-${String(FA.getMonth() + 1).padStart(2, "0")}-${String(FA.getDate()).padStart(2, "0")}`, SA = FA.getMonth() === Q.value, QA = UA === (/* @__PURE__ */ new Date()).toISOString().split("T")[0], yA = A.type === "daterange" ? UA === v.value || UA === U.value : UA === N.value, PA = A.type === "daterange" && v.value && U.value ? UA >= v.value && UA <= U.value : !1;
        sA.push({
          date: FA,
          dateStr: UA,
          day: FA.getDate(),
          isCurrentMonth: SA,
          isToday: QA,
          isSelected: yA,
          isInRange: PA
        });
      }
      return sA;
    }), P = ($) => {
      if (A.type === "daterange")
        if (K.value === "start" || !v.value || v.value && U.value)
          v.value = $, U.value = "", K.value = "end";
        else {
          $ < v.value ? (U.value = v.value, v.value = $) : U.value = $, K.value = "start";
          const BA = [v.value, U.value];
          r("update:modelValue", BA), r("change", BA), setTimeout(() => {
            H();
          }, 150);
        }
      else
        N.value = $, r("update:modelValue", $), r("change", $), setTimeout(() => {
          H();
        }, 150);
    }, lA = ($) => {
      $ && ($.preventDefault(), $.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), Q.value === 0 ? (Q.value = 11, g.value--) : Q.value--;
    }, oA = ($) => {
      $ && ($.preventDefault(), $.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), Q.value === 11 ? (Q.value = 0, g.value++) : Q.value++;
    }, iA = ($) => {
      $ && ($.preventDefault(), $.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), g.value--;
    }, k = ($) => {
      $ && ($.preventDefault(), $.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), g.value++;
    }, W = ($) => {
      $ && ($.preventDefault(), $.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), o.value = !0, c.value = !1, y.value = Math.floor(g.value / 10) * 10;
    }, rA = ($) => {
      $ && ($.preventDefault(), $.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), c.value = !0, o.value = !1;
    }, OA = ($, BA) => {
      BA && (BA.preventDefault(), BA.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), g.value = $, o.value = !1, c.value = !0;
    }, L = ($, BA) => {
      BA && (BA.preventDefault(), BA.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), Q.value = $, c.value = !1;
    }, M = ($) => {
      $ && ($.preventDefault(), $.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), y.value -= 10;
    }, R = ($) => {
      $ && ($.preventDefault(), $.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), y.value += 10;
    }, J = Ce(() => {
      const $ = [];
      for (let BA = 0; BA < 10; BA++)
        $.push(y.value + BA);
      return $;
    }), eA = [
      "一月",
      "二月",
      "三月",
      "四月",
      "五月",
      "六月",
      "七月",
      "八月",
      "九月",
      "十月",
      "十一月",
      "十二月"
    ], uA = ["日", "一", "二", "三", "四", "五", "六"];
    jr(() => {
      document.addEventListener("click", G), window.addEventListener("scroll", x, !0), window.addEventListener("resize", F), tA.x = window.scrollX, tA.y = window.scrollY;
    }), Wr(() => {
      document.removeEventListener("click", G), window.removeEventListener("scroll", x, !0), window.removeEventListener("resize", F), d.value && (clearTimeout(d.value), d.value = null);
    });
    const dA = ($) => {
      d.value && (clearTimeout(d.value), d.value = null), n.value = !0, r("focus", $);
    }, gA = ($) => {
      d.value = setTimeout(() => {
        n.value = !1, H(), r("blur", $);
      }, 150);
    }, MA = () => {
      d.value && (clearTimeout(d.value), d.value = null);
    }, NA = () => {
      d.value = setTimeout(() => {
        H();
      }, 150);
    }, RA = () => {
      i.value = !0;
    }, GA = () => {
      i.value = !1;
    }, ee = Ce(() => [
      "el-date-picker",
      `el-date-picker--${A.size}`,
      {
        "is-disabled": A.disabled,
        "is-focused": n.value,
        "is-range": A.type === "daterange"
      }
    ]), wA = Ce(() => !A.clearable || A.disabled ? !1 : A.type === "daterange" ? (v.value || U.value) && i.value : N.value && i.value), D = Ce(() => {
      if (!h.value || !s.value) return {};
      const $ = h.value.getBoundingClientRect(), BA = 280, sA = 300, pA = 4, FA = window.innerWidth, UA = window.innerHeight, SA = {
        position: "fixed",
        zIndex: "10000"
      }, QA = UA - $.bottom, yA = $.top;
      QA >= sA + pA || QA >= yA ? SA.top = `${$.bottom + pA}px` : SA.top = `${$.top - sA - pA}px`;
      const PA = FA - $.left, ZA = $.right;
      if (PA >= BA)
        SA.left = `${$.left}px`;
      else if (ZA >= BA)
        SA.left = `${$.right - BA}px`;
      else {
        const ne = $.left + ($.width - BA) / 2, VA = pA, Ve = FA - BA - pA;
        SA.left = `${Math.max(VA, Math.min(ne, Ve))}px`;
      }
      const ue = parseFloat(SA.top), YA = parseFloat(SA.left);
      return ue < pA ? SA.top = `${pA}px` : ue + sA > UA - pA && (SA.top = `${UA - sA - pA}px`), YA < pA ? SA.left = `${pA}px` : YA + BA > FA - pA && (SA.left = `${FA - BA - pA}px`), SA;
    });
    return ($, BA) => (xA(), DA("div", {
      class: Ke(ee.value),
      onMouseenter: RA,
      onMouseleave: GA
    }, [
      X("div", {
        ref_key: "inputRef",
        ref: h,
        class: "el-input",
        onClick: z
      }, [
        X("div", T1, [
          X("div", M1, [
            X("input", {
              value: q.value,
              type: "text",
              class: "el-input__inner-input",
              placeholder: $.type === "daterange" ? `${$.startPlaceholder} ${$.rangeSeparator} ${$.endPlaceholder}` : $.placeholder,
              disabled: $.disabled,
              readonly: "",
              onFocus: dA,
              onBlur: gA
            }, null, 40, P1)
          ]),
          X("div", O1, [
            X("div", K1, [
              wA.value ? (xA(), DA("button", {
                key: 0,
                type: "button",
                class: "el-input__clear",
                onClick: Kn(V, ["stop"])
              }, BA[3] || (BA[3] = [
                X("svg", {
                  class: "el-icon",
                  viewBox: "0 0 1024 1024"
                }, [
                  X("path", {
                    fill: "currentColor",
                    d: "M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"
                  })
                ], -1)
              ]))) : (xA(), DA("span", R1, BA[4] || (BA[4] = [
                X("svg", {
                  class: "el-icon",
                  viewBox: "0 0 1024 1024"
                }, [
                  X("path", {
                    fill: "currentColor",
                    d: "M128 384v512h768V384H128zm-32-64h832a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V352a32 32 0 0 1 32-32z"
                  }),
                  X("path", {
                    fill: "currentColor",
                    d: "M288 128a32 32 0 0 1 64 0v192a32 32 0 0 1-64 0V128zm384 0a32 32 0 0 1 64 0v192a32 32 0 0 1-64 0V128z"
                  }),
                  X("path", {
                    fill: "currentColor",
                    d: "M96 320h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32z"
                  })
                ], -1)
              ])))
            ])
          ])
        ])
      ], 512),
      (xA(), li(Hg, { to: "body" }, [
        un(Dg, { name: "picker-fade" }, {
          default: Ng(() => [
            s.value ? (xA(), DA("div", {
              key: 0,
              ref_key: "pickerRef",
              ref: p,
              class: "el-picker-panel",
              style: Tt(D.value),
              tabindex: "-1",
              onFocus: MA,
              onBlur: NA
            }, [
              o.value ? (xA(), DA("div", G1, [
                X("div", V1, [
                  X("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: M
                  }, " << "),
                  X("span", j1, _A(y.value) + " - " + _A(y.value + 9), 1),
                  X("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: R
                  }, " >> ")
                ]),
                X("div", q1, [
                  (xA(!0), DA(et, null, yt(J.value, (sA) => (xA(), DA("div", {
                    key: sA,
                    class: Ke(["el-year-picker__item", { "is-current": sA === g.value }]),
                    onClick: (pA) => OA(sA, pA)
                  }, _A(sA), 11, W1))), 128))
                ])
              ])) : c.value ? (xA(), DA("div", X1, [
                X("div", z1, [
                  X("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: iA
                  }, " << "),
                  X("span", {
                    class: "el-month-picker__header-label",
                    onClick: BA[0] || (BA[0] = (sA) => W(sA))
                  }, _A(g.value) + "年 ", 1),
                  X("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: k
                  }, " >> ")
                ]),
                X("div", J1, [
                  (xA(), DA(et, null, yt(eA, (sA, pA) => X("div", {
                    key: pA,
                    class: Ke(["el-month-picker__item", { "is-current": pA === Q.value }]),
                    onClick: (FA) => L(pA, FA)
                  }, _A(sA), 11, Y1)), 64))
                ])
              ])) : (xA(), DA("div", $1, [
                X("div", Z1, [
                  X("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: iA
                  }, " << "),
                  X("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: lA
                  }, " < "),
                  X("span", A0, [
                    X("span", {
                      class: "el-date-picker__header-year",
                      onClick: BA[1] || (BA[1] = (sA) => W(sA))
                    }, _A(g.value) + "年 ", 1),
                    X("span", {
                      class: "el-date-picker__header-month",
                      onClick: BA[2] || (BA[2] = (sA) => rA(sA))
                    }, _A(eA[Q.value]), 1)
                  ]),
                  X("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: oA
                  }, " > "),
                  X("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: k
                  }, " >> ")
                ]),
                X("div", e0, [
                  X("div", t0, [
                    (xA(), DA(et, null, yt(uA, (sA) => X("div", {
                      key: sA,
                      class: "el-date-table__header-cell"
                    }, _A(sA), 1)), 64))
                  ]),
                  X("div", r0, [
                    (xA(!0), DA(et, null, yt(_.value, (sA) => (xA(), DA("div", {
                      key: `${sA.date.getTime()}`,
                      class: Ke(["el-date-table__cell", {
                        "is-other-month": !sA.isCurrentMonth,
                        "is-today": sA.isToday,
                        "is-selected": sA.isSelected,
                        "is-in-range": sA.isInRange,
                        "is-range-start": $.type === "daterange" && sA.dateStr === v.value,
                        "is-range-end": $.type === "daterange" && sA.dateStr === U.value
                      }]),
                      onClick: (pA) => P(sA.dateStr)
                    }, [
                      X("div", i0, _A(sA.day), 1)
                    ], 10, n0))), 128))
                  ])
                ])
              ]))
            ], 36)) : he("", !0)
          ]),
          _: 1
        })
      ]))
    ], 34));
  }
}), kc = /* @__PURE__ */ xr(a0, [["__scopeId", "data-v-fec0bd04"]]), s0 = { class: "gantt-confirm-header" }, o0 = { class: "gantt-confirm-title" }, l0 = { class: "gantt-confirm-content" }, c0 = { class: "gantt-confirm-footer" }, u0 = { class: "gantt-confirm-footer-right" }, f0 = /* @__PURE__ */ Er({
  __name: "GanttConfirmDialog",
  props: {
    visible: Boolean,
    title: { type: String, default: "确认" },
    message: { type: String, default: "" },
    confirmText: { type: String, default: "确认" },
    cancelText: { type: String, default: "取消" },
    yesText: { type: String, default: "是" },
    noText: { type: String, default: "否" },
    type: { type: String, default: "confirm-cancel" }
    // 'confirm-cancel' | 'yes-no-cancel'
  },
  emits: ["confirm", "cancel", "yes", "no"],
  setup(t, { emit: e }) {
    const A = t, r = e, n = () => r("confirm"), i = () => r("cancel"), s = () => r("yes"), o = () => r("no");
    return (c, h) => t.visible ? (xA(), DA("div", {
      key: 0,
      class: "gantt-confirm-overlay",
      onClick: i
    }, [
      X("div", {
        class: "gantt-confirm-dialog",
        onClick: h[0] || (h[0] = Kn(() => {
        }, ["stop"]))
      }, [
        X("div", s0, [
          X("h4", o0, _A(A.title), 1)
        ]),
        X("div", l0, [
          X("p", null, _A(A.message), 1)
        ]),
        X("div", c0, [
          A.type === "yes-no-cancel" ? (xA(), DA(et, { key: 0 }, [
            X("button", {
              type: "button",
              class: "btn btn-default",
              onClick: i
            }, _A(A.cancelText), 1),
            X("div", u0, [
              X("button", {
                type: "button",
                class: "btn btn-warning",
                onClick: o
              }, _A(A.noText), 1),
              X("button", {
                type: "button",
                class: "btn btn-danger",
                onClick: s
              }, _A(A.yesText), 1)
            ])
          ], 64)) : (xA(), DA(et, { key: 1 }, [
            X("button", {
              type: "button",
              class: "btn btn-default",
              onClick: i
            }, _A(A.cancelText), 1),
            X("button", {
              type: "button",
              class: "btn btn-danger",
              onClick: n
            }, _A(A.confirmText), 1)
          ], 64))
        ])
      ])
    ])) : he("", !0);
  }
}), yh = /* @__PURE__ */ xr(f0, [["__scopeId", "data-v-200a3102"]]), h0 = { class: "drawer-header" }, d0 = { class: "drawer-title" }, g0 = { class: "drawer-body" }, p0 = { class: "form-group" }, B0 = {
  class: "form-label",
  for: "task-name"
}, w0 = ["placeholder"], v0 = {
  key: 0,
  class: "error-text"
}, m0 = { class: "form-group" }, C0 = {
  class: "form-label",
  for: "task-type"
}, y0 = { value: "story" }, F0 = { value: "task" }, Q0 = { value: "bug" }, b0 = {
  key: 0,
  class: "error-text"
}, U0 = { class: "form-group" }, L0 = {
  class: "form-label",
  for: "task-assignee"
}, E0 = { value: "" }, x0 = { class: "form-group" }, I0 = {
  class: "form-label",
  for: "task-parent"
}, S0 = { value: void 0 }, H0 = ["value"], D0 = { class: "form-row" }, N0 = { class: "form-group" }, k0 = {
  class: "form-label",
  for: "task-start-date"
}, _0 = {
  key: 0,
  class: "error-text"
}, T0 = { class: "form-group" }, M0 = {
  class: "form-label",
  for: "task-end-date"
}, P0 = {
  key: 0,
  class: "error-text"
}, O0 = { class: "form-group" }, K0 = {
  class: "form-label",
  for: "task-predecessor"
}, R0 = { value: "" }, G0 = ["value"], V0 = { class: "form-row" }, j0 = { class: "form-group" }, q0 = {
  class: "form-label",
  for: "task-estimated-hours"
}, W0 = { class: "form-group" }, X0 = {
  class: "form-label",
  for: "task-actual-hours"
}, z0 = { class: "form-group" }, J0 = {
  class: "form-label",
  for: "task-progress"
}, Y0 = { class: "progress-container" }, $0 = { class: "progress-input-group" }, Z0 = { class: "form-group" }, Ap = {
  class: "form-label",
  for: "task-description"
}, ep = ["placeholder"], tp = { class: "drawer-footer" }, rp = { class: "footer-left" }, np = ["disabled"], ip = {
  key: 0,
  class: "loading-spinner"
}, ap = { class: "footer-right" }, sp = ["disabled"], op = {
  key: 0,
  class: "loading-spinner"
}, lp = /* @__PURE__ */ Er({
  __name: "TaskDrawer",
  props: {
    visible: { type: Boolean, default: !1 },
    task: { default: null },
    isEdit: { type: Boolean, default: !1 },
    onDelete: { type: Function, default: void 0 }
  },
  emits: ["update:visible", "submit", "close", "delete"],
  setup(t, { emit: e }) {
    const A = t, r = e, { t: n } = hi(), { showMessage: i } = Ch(), s = KA(!1), o = KA(A.visible), c = KA(!1), h = Ce(() => {
      var k;
      return ((k = A.task) == null ? void 0 : k.type) === "story" ? "yes-no-cancel" : "confirm-cancel";
    }), p = Ce(() => {
      var k, W, rA;
      return ((k = A.task) == null ? void 0 : k.type) === "story" ? n.value.confirmDeleteStory.replace("{name}", ((W = A.task) == null ? void 0 : W.name) || "") : n.value.confirmDeleteTask.replace("{name}", ((rA = A.task) == null ? void 0 : rA.name) || "");
    }), d = Ro({
      id: 0,
      // 默认值,创建时会被重新分配
      name: "",
      type: "task",
      assignee: "",
      startDate: "",
      endDate: "",
      predecessor: "",
      estimatedHours: 0,
      actualHours: 0,
      progress: 0,
      description: "",
      parentId: void 0
      // 上级任务ID
    }), w = KA([]), g = Ce(() => w.value.filter(
      (k) => {
        var W;
        return k.type === "task" && k.id !== ((W = A.task) == null ? void 0 : W.id);
      }
      // 排除当前任务自己
    )), Q = Ce(() => w.value.filter(
      (k) => {
        var W;
        return k.id !== ((W = A.task) == null ? void 0 : W.id) && // 排除当前任务自己
        (k.type === "story" || k.type === "task");
      }
      // 只显示story和task类型
    ).map((k) => ({
      ...k,
      displayName: `${k.name} (${y(k.type || "task")})`
    }))), y = (k) => {
      var W;
      return ((W = n.value.taskTypeMap) == null ? void 0 : W[k]) || k;
    }, N = Ce(() => ({
      "--progress-percent": `${d.progress || 0}%`
    })), v = KA("0"), U = (k) => {
      const W = k.target;
      let rA = W.value;
      rA = rA.replace(/[^\d]/g, ""), W.value = rA, v.value = rA;
    }, K = () => {
      const k = v.value;
      let W = parseInt(k) || 0;
      W < 0 || isNaN(W) ? W = 0 : W > 100 && (W = 100), d.progress = W, v.value = W.toString();
    }, j = (k) => {
      const W = k.target;
      setTimeout(() => {
        W.select();
      }, 0);
    }, q = (k) => {
      const W = k.key, rA = [
        "Backspace",
        "Delete",
        "Tab",
        "Escape",
        "Enter",
        "ArrowLeft",
        "ArrowRight",
        "ArrowUp",
        "ArrowDown",
        "Home",
        "End",
        "Control",
        "Meta",
        "Alt",
        "Shift"
      ], OA = /^\d$/.test(W), L = rA.includes(W);
      k.ctrlKey || k.metaKey || !OA && !L && k.preventDefault();
    }, V = Ro({
      name: "",
      type: "",
      startDate: "",
      endDate: ""
    });
    $t(
      () => A.visible,
      (k) => {
        o.value = k, k && (z(), A.task && A.isEdit && Object.assign(d, A.task), window.dispatchEvent(new CustomEvent("request-task-list")));
      }
    ), $t(o, (k) => {
      r("update:visible", k);
    });
    const z = () => {
      Object.assign(d, {
        name: "",
        type: "task",
        assignee: "",
        startDate: "",
        endDate: "",
        predecessor: "",
        estimatedHours: 0,
        actualHours: 0,
        progress: 0,
        description: "",
        parentId: void 0
      }), Object.keys(V).forEach((k) => {
        V[k] = "";
      });
    }, H = () => {
      var W;
      let k = !0;
      return Object.keys(V).forEach((rA) => {
        V[rA] = "";
      }), (W = d.name) != null && W.trim() ? d.name.length > 50 && (V.name = n.value.taskNameTooLong, k = !1) : (V.name = n.value.taskNameRequired, k = !1), d.type || (V.type = n.value.taskTypeRequired, k = !1), d.startDate || (V.startDate = n.value.startDateRequired, k = !1), d.endDate ? d.startDate && new Date(d.endDate) < new Date(d.startDate) && (V.endDate = n.value.endDateInvalid, k = !1) : (V.endDate = n.value.endDateRequired, k = !1), k;
    }, G = () => {
      o.value = !1, r("close");
    }, tA = () => {
      G();
    }, x = async () => {
      if (H())
        try {
          s.value = !0;
          const k = {
            ...d,
            id: A.isEdit && A.task ? A.task.id : Date.now()
          };
          r("submit", k), i(A.isEdit ? n.value.taskUpdateSuccess : n.value.taskCreateSuccess, "success"), G();
        } catch {
          i(n.value.operationFailed, "error");
        } finally {
          s.value = !1;
        }
    }, F = () => {
      c.value = !0;
    }, _ = () => {
      if (c.value = !1, A.task && A.isEdit)
        try {
          s.value = !0, r("delete", A.task), G();
        } catch {
          i(n.value.taskDeleteFailed, "error");
        } finally {
          s.value = !1;
        }
    }, P = () => {
      c.value = !1;
    }, lA = () => {
      if (c.value = !1, A.task && A.isEdit)
        try {
          s.value = !0, r("delete", A.task, !0), G();
        } catch {
          i(n.value.taskDeleteFailed, "error");
        } finally {
          s.value = !1;
        }
    }, oA = () => {
      if (c.value = !1, A.task && A.isEdit)
        try {
          s.value = !0, r("delete", A.task, !1), G();
        } catch {
          i(n.value.taskDeleteFailed, "error");
        } finally {
          s.value = !1;
        }
    }, iA = (k) => {
      w.value = k.detail || [];
    };
    return jr(() => {
      window.addEventListener("task-list-updated", iA), window.dispatchEvent(new CustomEvent("request-task-list"));
    }), Wr(() => {
      window.removeEventListener("task-list-updated", iA);
    }), $t(
      () => d.progress,
      (k) => {
        v.value = (k || 0).toString();
      },
      { immediate: !0 }
    ), (k, W) => o.value ? (xA(), DA("div", {
      key: 0,
      class: "drawer-overlay",
      onClick: tA
    }, [
      X("div", {
        class: "drawer-container",
        onClick: W[12] || (W[12] = Kn(() => {
        }, ["stop"]))
      }, [
        X("div", h0, [
          X("h3", d0, _A(k.isEdit ? oe(n).editTask : oe(n).newTask), 1),
          X("button", {
            class: "drawer-close-btn",
            type: "button",
            onClick: G
          }, W[13] || (W[13] = [
            X("svg", {
              class: "close-icon",
              viewBox: "0 0 24 24",
              fill: "none",
              stroke: "currentColor"
            }, [
              X("line", {
                x1: "18",
                y1: "6",
                x2: "6",
                y2: "18"
              }),
              X("line", {
                x1: "6",
                y1: "6",
                x2: "18",
                y2: "18"
              })
            ], -1)
          ]))
        ]),
        X("div", g0, [
          X("form", {
            class: "task-form",
            onSubmit: Kn(x, ["prevent"])
          }, [
            X("div", p0, [
              X("label", B0, [
                cr(_A(oe(n).taskName) + " ", 1),
                W[14] || (W[14] = X("span", { class: "required" }, "*", -1))
              ]),
              or(X("input", {
                id: "task-name",
                "onUpdate:modelValue": W[0] || (W[0] = (rA) => d.name = rA),
                type: "text",
                class: Ke(["form-input", { error: V.name }]),
                placeholder: oe(n).taskNamePlaceholder
              }, null, 10, w0), [
                [Hn, d.name]
              ]),
              V.name ? (xA(), DA("span", v0, _A(V.name), 1)) : he("", !0)
            ]),
            X("div", m0, [
              X("label", C0, [
                cr(_A(oe(n).taskType) + " ", 1),
                W[15] || (W[15] = X("span", { class: "required" }, "*", -1))
              ]),
              or(X("select", {
                id: "task-type",
                "onUpdate:modelValue": W[1] || (W[1] = (rA) => d.type = rA),
                class: Ke(["form-select", { error: V.type }])
              }, [
                X("option", y0, _A(oe(n).taskTypeMap.story), 1),
                X("option", F0, _A(oe(n).taskTypeMap.task), 1),
                X("option", Q0, _A(oe(n).taskTypeMap.bug), 1)
              ], 2), [
                [ro, d.type]
              ]),
              V.type ? (xA(), DA("span", b0, _A(V.type), 1)) : he("", !0)
            ]),
            X("div", U0, [
              X("label", L0, _A(oe(n).assignee), 1),
              or(X("select", {
                id: "task-assignee",
                "onUpdate:modelValue": W[2] || (W[2] = (rA) => d.assignee = rA),
                class: "form-select"
              }, [
                X("option", E0, _A(oe(n).selectAssignee), 1),
                W[16] || (W[16] = Nn('<option value="张三" data-v-077ca457>张三</option><option value="李四" data-v-077ca457>李四</option><option value="王五" data-v-077ca457>王五</option><option value="赵六" data-v-077ca457>赵六</option><option value="钱七" data-v-077ca457>钱七</option>', 5))
              ], 512), [
                [ro, d.assignee]
              ])
            ]),
            X("div", x0, [
              X("label", I0, _A(oe(n).parentTask), 1),
              or(X("select", {
                id: "task-parent",
                "onUpdate:modelValue": W[3] || (W[3] = (rA) => d.parentId = rA),
                class: "form-select"
              }, [
                X("option", S0, _A(oe(n).noParentTask), 1),
                (xA(!0), DA(et, null, yt(Q.value, (rA) => (xA(), DA("option", {
                  key: rA.id,
                  value: rA.id
                }, _A(rA.displayName), 9, H0))), 128))
              ], 512), [
                [ro, d.parentId]
              ])
            ]),
            X("div", D0, [
              X("div", N0, [
                X("label", k0, [
                  cr(_A(oe(n).startDate) + " ", 1),
                  W[17] || (W[17] = X("span", { class: "required" }, "*", -1))
                ]),
                un(kc, {
                  id: "task-start-date",
                  modelValue: d.startDate,
                  "onUpdate:modelValue": W[4] || (W[4] = (rA) => d.startDate = rA),
                  type: "date",
                  placeholder: oe(n).startDateRequired,
                  class: Ke({ error: V.startDate })
                }, null, 8, ["modelValue", "placeholder", "class"]),
                V.startDate ? (xA(), DA("span", _0, _A(V.startDate), 1)) : he("", !0)
              ]),
              X("div", T0, [
                X("label", M0, [
                  cr(_A(oe(n).endDate) + " ", 1),
                  W[18] || (W[18] = X("span", { class: "required" }, "*", -1))
                ]),
                un(kc, {
                  id: "task-end-date",
                  modelValue: d.endDate,
                  "onUpdate:modelValue": W[5] || (W[5] = (rA) => d.endDate = rA),
                  type: "date",
                  placeholder: oe(n).endDateRequired,
                  class: Ke({ error: V.endDate })
                }, null, 8, ["modelValue", "placeholder", "class"]),
                V.endDate ? (xA(), DA("span", P0, _A(V.endDate), 1)) : he("", !0)
              ])
            ]),
            X("div", O0, [
              X("label", K0, _A(oe(n).predecessor), 1),
              or(X("select", {
                id: "task-predecessor",
                "onUpdate:modelValue": W[6] || (W[6] = (rA) => d.predecessor = rA),
                class: "form-select"
              }, [
                X("option", R0, _A(oe(n).predecessorPlaceholder), 1),
                (xA(!0), DA(et, null, yt(g.value, (rA) => (xA(), DA("option", {
                  key: rA.id,
                  value: rA.id
                }, _A(rA.name) + " (ID: " + _A(rA.id) + ") ", 9, G0))), 128))
              ], 512), [
                [ro, d.predecessor]
              ])
            ]),
            X("div", V0, [
              X("div", j0, [
                X("label", q0, _A(oe(n).estimatedHours), 1),
                or(X("input", {
                  id: "task-estimated-hours",
                  "onUpdate:modelValue": W[7] || (W[7] = (rA) => d.estimatedHours = rA),
                  type: "number",
                  class: "form-input",
                  placeholder: "0",
                  min: "0",
                  max: "999"
                }, null, 512), [
                  [
                    Hn,
                    d.estimatedHours,
                    void 0,
                    { number: !0 }
                  ]
                ])
              ]),
              X("div", W0, [
                X("label", X0, _A(oe(n).actualHours), 1),
                or(X("input", {
                  id: "task-actual-hours",
                  "onUpdate:modelValue": W[8] || (W[8] = (rA) => d.actualHours = rA),
                  type: "number",
                  class: "form-input",
                  placeholder: "0",
                  min: "0",
                  max: "999"
                }, null, 512), [
                  [
                    Hn,
                    d.actualHours,
                    void 0,
                    { number: !0 }
                  ]
                ])
              ])
            ]),
            X("div", z0, [
              X("label", J0, _A(oe(n).progress), 1),
              X("div", Y0, [
                or(X("input", {
                  id: "task-progress",
                  "onUpdate:modelValue": W[9] || (W[9] = (rA) => d.progress = rA),
                  type: "range",
                  class: "progress-slider",
                  style: Tt(N.value),
                  min: "0",
                  max: "100",
                  step: "5"
                }, null, 4), [
                  [
                    Hn,
                    d.progress,
                    void 0,
                    { number: !0 }
                  ]
                ]),
                X("div", $0, [
                  or(X("input", {
                    "onUpdate:modelValue": W[10] || (W[10] = (rA) => v.value = rA),
                    type: "text",
                    class: "progress-input",
                    placeholder: "0",
                    maxlength: "3",
                    onBlur: K,
                    onKeyup: kg(K, ["enter"]),
                    onInput: U,
                    onFocus: j,
                    onKeydown: q
                  }, null, 544), [
                    [Hn, v.value]
                  ]),
                  W[19] || (W[19] = X("span", { class: "progress-unit" }, "%", -1))
                ])
              ])
            ]),
            X("div", Z0, [
              X("label", Ap, _A(oe(n).description), 1),
              or(X("textarea", {
                id: "task-description",
                "onUpdate:modelValue": W[11] || (W[11] = (rA) => d.description = rA),
                class: "form-textarea",
                placeholder: oe(n).descriptionPlaceholder,
                rows: "3"
              }, null, 8, ep), [
                [Hn, d.description]
              ])
            ])
          ], 32)
        ]),
        X("div", tp, [
          X("div", rp, [
            k.isEdit && k.task ? (xA(), DA("button", {
              key: 0,
              type: "button",
              class: "btn btn-danger",
              disabled: s.value,
              onClick: F
            }, [
              s.value ? (xA(), DA("span", ip)) : he("", !0),
              cr(" " + _A(oe(n).delete), 1)
            ], 8, np)) : he("", !0),
            un(yh, {
              visible: c.value,
              title: oe(n).delete,
              type: h.value,
              message: p.value,
              "confirm-text": oe(n).confirm,
              "cancel-text": oe(n).cancel,
              "yes-text": oe(n).storyDeleteYes,
              "no-text": oe(n).storyDeleteNo,
              onConfirm: _,
              onYes: lA,
              onNo: oA,
              onCancel: P
            }, null, 8, ["visible", "title", "type", "message", "confirm-text", "cancel-text", "yes-text", "no-text"])
          ]),
          X("div", ap, [
            X("button", {
              type: "button",
              class: "btn btn-default",
              onClick: G
            }, _A(oe(n).cancel), 1),
            X("button", {
              type: "button",
              class: "btn btn-primary",
              disabled: s.value,
              onClick: x
            }, [
              s.value ? (xA(), DA("span", op)) : he("", !0),
              cr(" " + _A(k.isEdit ? oe(n).update : oe(n).create), 1)
            ], 8, sp)
          ])
        ])
      ])
    ])) : he("", !0);
  }
}), cp = /* @__PURE__ */ xr(lp, [["__scopeId", "data-v-077ca457"]]), up = { class: "milestone-dialog-header" }, fp = { class: "milestone-dialog-title" }, hp = ["title"], dp = { class: "milestone-dialog-content" }, gp = { class: "milestone-form-row" }, pp = { class: "milestone-form-item milestone-form-item-full" }, Bp = {
  class: "milestone-form-label required",
  for: "milestone-name"
}, wp = ["placeholder"], vp = {
  key: 0,
  class: "milestone-form-error"
}, mp = { class: "milestone-form-row" }, Cp = { class: "milestone-form-item" }, yp = {
  class: "milestone-form-label required",
  for: "milestone-date"
}, Fp = {
  key: 0,
  class: "milestone-form-error"
}, Qp = { class: "milestone-form-item" }, bp = {
  class: "milestone-form-label",
  for: "milestone-icon"
}, Up = ["aria-expanded"], Lp = { class: "selected-icon" }, Ep = {
  key: 0,
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, xp = {
  key: 1,
  class: "rocket-emoji-mini"
}, Ip = {
  key: 0,
  class: "milestone-icon-options"
}, Sp = { class: "milestone-form-row" }, Hp = { class: "milestone-form-item milestone-form-item-full" }, Dp = {
  class: "milestone-form-label",
  for: "milestone-description"
}, Np = { class: "textarea-wrapper" }, kp = ["placeholder"], _p = { class: "textarea-footer" }, Tp = { class: "char-count" }, Mp = { class: "milestone-dialog-footer" }, Pp = { class: "milestone-dialog-footer-left" }, Op = { class: "milestone-dialog-footer-right" }, Kp = ["disabled"], Rp = /* @__PURE__ */ Er({
  __name: "MilestoneDialog",
  props: {
    visible: { type: Boolean },
    milestone: {}
  },
  emits: ["update:visible", "close", "save", "delete"],
  setup(t, { emit: e }) {
    const A = t, r = e, n = Ro({
      name: "",
      startDate: "",
      assignee: "",
      type: "milestone",
      icon: "diamond",
      description: ""
    }), i = Ro({
      name: "",
      startDate: ""
    }), s = KA(!1), o = KA(!1), c = KA(null), h = () => {
      const V = c.value;
      V && (V.style.height = "auto", V.style.height = `${Math.min(V.scrollHeight, 120)}px`);
    };
    $t(
      () => A.milestone,
      (V) => {
        V ? Object.assign(n, {
          id: V.id,
          name: V.name || "",
          startDate: V.startDate || "",
          assignee: V.assignee || "",
          type: V.type || "milestone",
          icon: V.icon || "diamond",
          description: V.description || ""
        }) : Object.assign(n, {
          id: void 0,
          name: "",
          startDate: "",
          assignee: "",
          type: "milestone",
          icon: "diamond",
          description: ""
        }), i.name = "", i.startDate = "";
      },
      { immediate: !0 }
    );
    const p = () => {
      i.name = "", i.startDate = "";
      let V = !0;
      return n.name.trim() || (i.name = q("milestoneNameRequired"), V = !1), n.startDate || (i.startDate = q("milestoneDateRequired"), V = !1), V;
    }, d = Ce(() => n.name.trim() && n.startDate), w = (V) => {
      n.icon = V, s.value = !1;
    }, g = () => {
      p() && (r("save", { ...n }), U());
    }, Q = () => {
      n.id && (o.value = !0);
    }, y = () => {
      n.id && (r("delete", n.id), o.value = !1, U());
    }, N = () => {
      o.value = !1;
    }, v = Ce(() => A.milestone && A.milestone.id), U = () => {
      s.value = !1, r("update:visible", !1), r("close");
    }, K = () => {
      U();
    }, { t: j } = hi(), q = (V) => j.value[V] || V;
    return (V, z) => {
      var H;
      return V.visible ? (xA(), DA("div", {
        key: 0,
        class: "milestone-dialog-overlay",
        onClick: K
      }, [
        X("div", {
          class: "milestone-dialog",
          onClick: z[6] || (z[6] = Kn(() => {
          }, ["stop"]))
        }, [
          X("div", up, [
            X("h3", fp, [
              z[7] || (z[7] = X("svg", {
                class: "milestone-icon",
                viewBox: "0 0 24 24",
                fill: "none",
                stroke: "currentColor",
                "stroke-width": "2"
              }, [
                X("g", { transform: "rotate(45 12 12)" }, [
                  X("rect", {
                    x: "4",
                    y: "4",
                    width: "16",
                    height: "16",
                    rx: "4",
                    ry: "4",
                    fill: "currentColor",
                    opacity: "0.1"
                  }),
                  X("rect", {
                    x: "4",
                    y: "4",
                    width: "16",
                    height: "16",
                    rx: "4",
                    ry: "4",
                    stroke: "currentColor",
                    fill: "none"
                  })
                ])
              ], -1)),
              cr(" " + _A(v.value ? oe(j).editMilestone : oe(j).newMilestone), 1)
            ]),
            X("button", {
              class: "milestone-dialog-close",
              title: q("close"),
              onClick: U
            }, "×", 8, hp)
          ]),
          X("div", dp, [
            X("form", {
              class: "milestone-form",
              onSubmit: Kn(g, ["prevent"])
            }, [
              X("div", gp, [
                X("div", pp, [
                  X("label", Bp, _A(q("milestoneName")), 1),
                  or(X("input", {
                    id: "milestone-name",
                    "onUpdate:modelValue": z[0] || (z[0] = (G) => n.name = G),
                    type: "text",
                    class: Ke(["milestone-form-input", { error: i.name }]),
                    placeholder: q("enterMilestoneName"),
                    required: ""
                  }, null, 10, wp), [
                    [Hn, n.name]
                  ]),
                  i.name ? (xA(), DA("span", vp, _A(i.name), 1)) : he("", !0)
                ])
              ]),
              X("div", mp, [
                X("div", Cp, [
                  X("label", yp, _A(q("milestoneDate")), 1),
                  un(kc, {
                    id: "milestone-date",
                    modelValue: n.startDate,
                    "onUpdate:modelValue": z[1] || (z[1] = (G) => n.startDate = G),
                    type: "date",
                    placeholder: "请选择里程碑日期",
                    class: Ke({ error: i.startDate })
                  }, null, 8, ["modelValue", "class"]),
                  i.startDate ? (xA(), DA("span", Fp, _A(i.startDate), 1)) : he("", !0)
                ]),
                X("div", Qp, [
                  X("label", bp, _A(q("milestoneIcon")), 1),
                  X("div", {
                    class: Ke(["milestone-icon-dropdown", { active: s.value }])
                  }, [
                    X("button", {
                      id: "milestone-icon",
                      type: "button",
                      class: "milestone-icon-trigger",
                      "aria-expanded": s.value,
                      "aria-haspopup": "listbox",
                      onClick: z[2] || (z[2] = (G) => s.value = !s.value)
                    }, [
                      X("div", Lp, [
                        n.icon === "diamond" ? (xA(), DA("svg", Ep, z[8] || (z[8] = [
                          X("g", { transform: "rotate(45 12 12)" }, [
                            X("rect", {
                              x: "6",
                              y: "6",
                              width: "12",
                              height: "12",
                              rx: "3",
                              ry: "3",
                              fill: "currentColor"
                            })
                          ], -1)
                        ]))) : n.icon === "rocket" ? (xA(), DA("div", xp, "🚀")) : he("", !0),
                        X("span", null, _A(q(n.icon || "diamond")), 1)
                      ]),
                      z[9] || (z[9] = X("svg", {
                        class: "dropdown-arrow",
                        viewBox: "0 0 24 24",
                        fill: "none",
                        stroke: "currentColor",
                        "stroke-width": "2"
                      }, [
                        X("polyline", { points: "6,9 12,15 18,9" })
                      ], -1))
                    ], 8, Up),
                    s.value ? (xA(), DA("div", Ip, [
                      X("div", {
                        class: Ke(["icon-option", { selected: n.icon === "diamond" }]),
                        onClick: z[3] || (z[3] = (G) => w("diamond"))
                      }, [
                        z[10] || (z[10] = X("svg", {
                          viewBox: "0 0 24 24",
                          fill: "none",
                          stroke: "currentColor",
                          "stroke-width": "2"
                        }, [
                          X("g", { transform: "rotate(45 12 12)" }, [
                            X("rect", {
                              x: "6",
                              y: "6",
                              width: "12",
                              height: "12",
                              rx: "3",
                              ry: "3",
                              fill: "currentColor"
                            })
                          ])
                        ], -1)),
                        X("span", null, _A(q("diamond")), 1)
                      ], 2),
                      X("div", {
                        class: Ke(["icon-option", { selected: n.icon === "rocket" }]),
                        onClick: z[4] || (z[4] = (G) => w("rocket"))
                      }, [
                        z[11] || (z[11] = X("div", { class: "rocket-emoji-option" }, "🚀", -1)),
                        X("span", null, _A(q("rocket")), 1)
                      ], 2)
                    ])) : he("", !0)
                  ], 2)
                ])
              ]),
              X("div", Sp, [
                X("div", Hp, [
                  X("label", Dp, _A(q("description")), 1),
                  X("div", Np, [
                    or(X("textarea", {
                      id: "milestone-description",
                      ref_key: "descriptionTextarea",
                      ref: c,
                      "onUpdate:modelValue": z[5] || (z[5] = (G) => n.description = G),
                      class: "milestone-form-textarea",
                      placeholder: q("enterDescription"),
                      rows: "4",
                      maxlength: "500",
                      onInput: h
                    }, null, 40, kp), [
                      [Hn, n.description]
                    ]),
                    X("div", _p, [
                      X("span", Tp, _A(((H = n.description) == null ? void 0 : H.length) || 0) + "/500", 1)
                    ])
                  ])
                ])
              ])
            ], 32)
          ]),
          X("div", Mp, [
            X("div", Pp, [
              v.value ? (xA(), DA("button", {
                key: 0,
                type: "button",
                class: "btn btn-danger",
                onClick: Q
              }, _A(oe(j).delete), 1)) : he("", !0)
            ]),
            X("div", Op, [
              X("button", {
                type: "button",
                class: "btn btn-default",
                onClick: U
              }, _A(oe(j).cancel), 1),
              X("button", {
                type: "button",
                class: "btn btn-primary",
                disabled: !d.value,
                onClick: g
              }, _A(oe(j).confirm), 9, Kp)
            ])
          ])
        ]),
        un(yh, {
          visible: o.value,
          title: oe(j).delete,
          message: oe(j).confirmDelete,
          "confirm-text": oe(j).confirm,
          "cancel-text": oe(j).cancel,
          onConfirm: y,
          onCancel: N
        }, null, 8, ["visible", "title", "message", "confirm-text", "cancel-text"])
      ])) : he("", !0);
    };
  }
}), Gp = /* @__PURE__ */ xr(Rp, [["__scopeId", "data-v-67a961b6"]]), Vp = { class: "timeline-header" }, jp = { class: "timeline-header-row year-month-row" }, qp = { class: "year-month-label" }, Wp = { class: "timeline-header-row days-row" }, Xp = { class: "day-label" }, zp = ["width", "height"], Jp = ["d"], Yp = ["onMouseenter"], $p = /* @__PURE__ */ Er({
  __name: "Timeline",
  props: {
    tasks: { default: () => [] },
    milestones: { default: () => [] },
    onTaskDoubleClick: { type: Function, default: void 0 },
    editComponent: { default: void 0 },
    useDefaultDrawer: { type: Boolean, default: !0 },
    onTaskDelete: { type: Function, default: void 0 },
    onMilestoneSave: { type: Function, default: void 0 },
    startDate: { default: void 0 },
    endDate: { default: void 0 }
  },
  setup(t, { expose: e }) {
    const A = t, { formatYearMonth: r } = hi(), n = () => {
      const mA = /* @__PURE__ */ new Date(), TA = new Date(mA.getFullYear(), mA.getMonth() - 6, 1), IA = new Date(mA.getFullYear(), mA.getMonth() + 6 + 1, 0);
      return {
        startDate: TA,
        endDate: IA
      };
    }, i = Ce(() => A.startDate ? new Date(A.startDate) : n().startDate), s = Ce(() => A.endDate ? new Date(A.endDate) : n().endDate), o = KA({
      startDate: i.value,
      endDate: s.value,
      zoomLevel: 1
    });
    $t([i, s], ([mA, TA]) => {
      o.value.startDate = mA, o.value.endDate = TA;
    });
    const c = Ce(() => A.tasks || []), h = KA(!1), p = KA(null), d = KA(!1), w = KA(!1), g = KA(null), Q = KA(null), y = KA(!1), N = KA(!1), v = KA(!1), U = KA(0), K = KA(!1);
    let j = null;
    const q = KA(0);
    let V = null;
    const z = () => {
      y.value = !0;
    }, H = () => {
      y.value = !1;
    }, G = (mA) => {
      y.value || (Q.value = mA, window.dispatchEvent(
        new CustomEvent("timeline-task-hover", {
          detail: mA
        })
      ));
    }, tA = Ce(() => {
      const IA = c.value.length * 51;
      return Math.max(IA, 400, q.value);
    }), x = (mA) => {
      Q.value = mA.detail;
    }, F = (mA) => {
      const TA = mA.detail;
      dA(TA);
    }, _ = () => {
      L.value = rA();
    }, P = (mA) => {
      g.value = mA, w.value = !0;
    }, lA = () => {
      w.value = !1, g.value = null;
    }, oA = (mA, TA) => {
      window.dispatchEvent(
        new CustomEvent("milestone-icon-changed", {
          detail: { milestoneId: mA, icon: TA }
        })
      );
    }, iA = (mA) => {
      A.onMilestoneSave && typeof A.onMilestoneSave == "function" && A.onMilestoneSave(mA), lA(), window.dispatchEvent(
        new CustomEvent("milestone-data-updated", {
          detail: { milestone: mA }
        })
      );
    }, k = (mA) => {
      lA(), window.dispatchEvent(
        new CustomEvent("milestone-deleted", {
          detail: { milestoneId: mA }
        })
      ), window.dispatchEvent(
        new CustomEvent("milestone-data-changed", {
          detail: { milestoneId: mA }
        })
      );
    }, W = (mA) => {
      A.onMilestoneSave && typeof A.onMilestoneSave == "function" && A.onMilestoneSave(mA), window.dispatchEvent(
        new CustomEvent("milestone-data-updated", {
          detail: { milestone: mA }
        })
      );
    }, rA = () => {
      const mA = [], TA = new Date(o.value.startDate);
      for (; TA <= o.value.endDate; ) {
        const IA = TA.getFullYear(), Ae = TA.getMonth() + 1, me = [], se = new Date(IA, Ae, 0).getDate();
        for (let He = 1; He <= se; He++) {
          const we = new Date(IA, Ae - 1, He), Oe = we.getDay(), ze = Oe === 0 || Oe === 6;
          me.push({
            day: He,
            date: we,
            label: String(He).padStart(2, "0"),
            isToday: OA(we),
            isWeekend: ze
          });
        }
        mA.push({
          year: IA,
          month: Ae,
          yearMonthLabel: r(IA, Ae),
          startDate: new Date(TA),
          endDate: new Date(IA, Ae, 0),
          days: me
        }), TA.setMonth(TA.getMonth() + 1);
      }
      return mA;
    }, OA = (mA) => {
      const TA = /* @__PURE__ */ new Date();
      return mA.getDate() === TA.getDate() && mA.getMonth() === TA.getMonth() && mA.getFullYear() === TA.getFullYear();
    }, L = KA(rA());
    $t(
      () => [o.value.startDate, o.value.endDate],
      () => {
        L.value = rA();
      }
    );
    let M = !1;
    $t(
      () => [L.value, o.value.startDate, o.value.endDate],
      () => {
        M || Lr(() => {
          R(), M = !0;
        });
      },
      { deep: !0 }
    );
    const R = (mA = 0) => {
      const TA = /* @__PURE__ */ new Date(), IA = o.value.startDate, Ae = new Date(TA.getFullYear(), TA.getMonth(), TA.getDate()), me = new Date(
        IA.getFullYear(),
        IA.getMonth(),
        IA.getDate()
      ), se = Ae.getTime() - me.getTime(), we = Math.floor(se / (1e3 * 60 * 60 * 24)) * 30, Oe = document.querySelector(".timeline"), ze = Oe.clientWidth;
      if (ze === 0 && mA < 10) {
        setTimeout(() => R(mA + 1), 60);
        return;
      }
      const ve = we - ze / 2 + 15;
      typeof Oe.scrollTo == "function" ? Oe.scrollTo({ left: Math.max(0, ve), behavior: "smooth" }) : Oe.scrollLeft = Math.max(0, ve);
    }, J = () => {
      if (c.value.length === 0) {
        eA();
        return;
      }
      const mA = c.value.map((ve) => ve.startDate).filter((ve) => !!ve).map((ve) => new Date(ve));
      if (mA.length === 0) {
        eA();
        return;
      }
      const TA = new Date(Math.min(...mA.map((ve) => ve.getTime()))), IA = TA.getFullYear(), Ae = TA.getMonth(), me = TA.getDate();
      let se = 0;
      for (let ve = 0; ve < Ae; ve++)
        se += new Date(IA, ve + 1, 0).getDate();
      se += me;
      const He = document.querySelector(".gantt-panel-right"), we = He == null ? void 0 : He.clientWidth, Oe = (se - 1) * 30 - (we ? we / 2 : 200), ze = document.querySelector(".timeline");
      ze && (ze.scrollLeft = Math.max(0, Oe));
    }, eA = () => {
      const mA = /* @__PURE__ */ new Date(), TA = o.value.startDate, IA = new Date(mA.getFullYear(), mA.getMonth(), mA.getDate()), Ae = new Date(
        TA.getFullYear(),
        TA.getMonth(),
        TA.getDate()
      ), me = IA.getTime() - Ae.getTime(), se = Math.floor(me / (1e3 * 60 * 60 * 24));
      if (se < 0 || IA > o.value.endDate)
        return;
      const He = se * 30, we = document.querySelector(".timeline");
      if (!we) return;
      const Oe = we.clientWidth, ze = He - Oe / 2 + 15;
      we.scrollTo({
        left: Math.max(0, ze),
        behavior: "smooth"
      }), setTimeout(() => {
        document.querySelectorAll(".day-column.today").forEach((ce) => {
          ce.classList.add("today-highlight"), setTimeout(() => {
            ce.classList.remove("today-highlight");
          }, 2e3);
        });
      }, 500);
    }, uA = (mA) => {
      window.dispatchEvent(
        new CustomEvent("task-updated", {
          detail: mA
        })
      );
    }, dA = (mA) => {
      A.onTaskDoubleClick && typeof A.onTaskDoubleClick == "function" ? A.onTaskDoubleClick(mA) : A.useDefaultDrawer && (p.value = mA, d.value = !0, h.value = !0);
    }, gA = (mA) => {
      d.value ? uA(mA) : window.dispatchEvent(
        new CustomEvent("task-added", {
          detail: mA
        })
      ), h.value = !1;
    }, MA = () => {
      p.value = null, d.value = !1;
    }, NA = KA({}), RA = KA(null), GA = KA(0), ee = KA(0);
    function wA() {
      RA.value && (GA.value = RA.value.offsetWidth, ee.value = tA.value);
    }
    function D(mA) {
      if (!RA.value) return;
      const TA = RA.value.getBoundingClientRect();
      NA.value[mA.id] = {
        left: mA.left - TA.left,
        top: mA.top - TA.top,
        width: mA.width,
        height: mA.height
      }, wA();
    }
    const $ = (mA) => {
      window.dispatchEvent(new CustomEvent("taskbar-drag-end", { detail: mA }));
    }, BA = (mA) => {
      window.dispatchEvent(new CustomEvent("taskbar-resize-end", { detail: mA }));
    }, sA = (mA) => {
      window.dispatchEvent(new CustomEvent("milestone-drag-end", { detail: mA }));
    }, pA = Ce(() => {
      const mA = [];
      for (const TA of c.value)
        if (TA.predecessor && NA.value[TA.id] && NA.value[Number(TA.predecessor)]) {
          const IA = NA.value[Number(TA.predecessor)], Ae = NA.value[TA.id], me = IA.left + IA.width, se = IA.top + IA.height / 2, He = Ae.left, we = Ae.top + Ae.height / 2, Oe = me + 40, ze = se, ve = He - 40, Ue = `M${me},${se} C${Oe},${ze} ${ve},${we} ${He},${we}`;
          mA.push({ from: Number(TA.predecessor), to: TA.id, path: Ue });
        }
      return mA;
    });
    jr(() => {
      Lr(() => {
        setTimeout(() => {
          R();
        }, 60);
      }), window.addEventListener("task-row-double-click", F), window.addEventListener("task-list-hover", x), window.addEventListener(
        "task-list-vertical-scroll",
        FA
      ), window.addEventListener("locale-changed", _), window.addEventListener("splitter-drag-start", z), window.addEventListener("splitter-drag-end", H), Lr(() => {
        const mA = document.querySelector(".timeline-body");
        mA && (q.value = mA.clientHeight, V = new ResizeObserver((TA) => {
          for (const IA of TA)
            q.value = IA.contentRect.height;
        }), V.observe(mA));
      }), setTimeout(() => {
        R(), wA();
      }, 200), window.addEventListener("resize", wA), window.addEventListener("scroll", YA);
    });
    const FA = (mA) => {
      const { scrollTop: TA } = mA.detail, IA = document.querySelector(".timeline-body");
      IA && IA.scrollTop !== TA && (IA.scrollTop = TA);
    };
    $t(
      () => c.value.length,
      () => {
        Lr(() => {
          wA();
        });
      },
      { immediate: !0 }
    );
    const UA = KA(!1), SA = KA(0), QA = KA(0), yA = KA(null), PA = (mA) => {
      var me;
      const TA = mA.target, IA = TA.closest(".timeline-header"), Ae = TA.closest(".timeline-body");
      !IA && !Ae || Ae && [
        ".task-bar",
        ".milestone",
        "button",
        "input",
        "select",
        "textarea",
        ".task-bar-content",
        ".progress-bar",
        ".task-name",
        ".task-controls"
      ].some((we) => TA.closest(we)) || (UA.value = !0, SA.value = mA.pageX, QA.value = ((me = yA.value) == null ? void 0 : me.scrollLeft) || 0, yA.value && (yA.value.style.cursor = "grabbing", yA.value.style.userSelect = "none"), mA.preventDefault(), document.addEventListener("mousemove", ZA), document.addEventListener("mouseup", ue));
    }, ZA = (mA) => {
      if (!UA.value || !yA.value) return;
      mA.preventDefault();
      const IA = (mA.pageX - SA.value) * 1.5;
      yA.value.scrollLeft = QA.value - IA;
    }, ue = () => {
      UA.value = !1, yA.value && (yA.value.style.cursor = "grab", yA.value.style.userSelect = "auto"), document.removeEventListener("mousemove", ZA), document.removeEventListener("mouseup", ue);
    }, YA = (mA) => {
      const TA = mA.target;
      if (!TA) return;
      const IA = TA.scrollLeft, Ae = TA.scrollTop, me = TA.scrollWidth, se = TA.clientWidth, He = me - se;
      U.value = He > 0 ? IA / He : 0, N.value = IA > 20, v.value = IA < He - 20, Ae >= 0 && window.dispatchEvent(
        new CustomEvent("timeline-vertical-scroll", {
          detail: { scrollTop: Ae }
        })
      ), K.value = !0, TA && "classList" in TA && typeof TA.classList.add == "function" && TA.classList.add("scrolling"), j && clearTimeout(j), j = setTimeout(() => {
        K.value = !1, TA && "classList" in TA && typeof TA.classList.remove == "function" && TA.classList.remove("scrolling");
      }, 500);
    };
    Wr(() => {
      document.removeEventListener("mousemove", ZA), document.removeEventListener("mouseup", ue), window.removeEventListener("task-row-double-click", F), window.removeEventListener("task-list-hover", x), window.removeEventListener(
        "task-list-vertical-scroll",
        FA
      ), window.removeEventListener("locale-changed", _), window.removeEventListener("splitter-drag-start", z), window.removeEventListener("splitter-drag-end", H), window.removeEventListener("resize", wA), window.removeEventListener("scroll", YA), V && (V.disconnect(), V = null);
    });
    const ne = (mA, TA) => {
      if (A.onTaskDelete && typeof A.onTaskDelete == "function") {
        const IA = c.value.find((Ae) => Ae.id === mA);
        IA && A.onTaskDelete(IA, TA);
      }
      window.dispatchEvent(
        new CustomEvent("task-deleted", {
          detail: mA
        })
      ), h.value = !1, p.value = null, d.value = !1;
    }, VA = (mA, TA) => {
      ne(mA.id, TA);
    };
    e({
      // 基础滚动功能
      scrollToTasks: J,
      scrollToToday: eA,
      scrollToTodayCenter: R,
      // 时间线配置
      timelineConfig: o
    });
    const Ve = (mA) => {
      const TA = mA.startDate || mA.endDate || "";
      return {
        ...mA,
        type: "milestone",
        startDate: TA,
        endDate: mA.startDate || mA.endDate
      };
    };
    return (mA, TA) => (xA(), DA("div", {
      ref_key: "timelineContainer",
      ref: yA,
      class: "timeline",
      onMousedown: PA
    }, [
      X("div", Vp, [
        X("div", jp, [
          (xA(!0), DA(et, null, yt(L.value, (IA) => (xA(), DA("div", {
            key: `year-month-${IA.year}-${IA.month}`,
            class: "timeline-month",
            style: Tt({ width: `${IA.days.length * 30}px` })
          }, [
            X("div", qp, _A(IA.yearMonthLabel), 1)
          ], 4))), 128))
        ]),
        X("div", Wp, [
          (xA(!0), DA(et, null, yt(L.value, (IA) => (xA(), DA("div", {
            key: `days-${IA.year}-${IA.month}`,
            class: "timeline-month-days",
            style: Tt({ width: `${IA.days.length * 30}px` })
          }, [
            (xA(!0), DA(et, null, yt(IA.days, (Ae) => (xA(), DA("div", {
              key: `day-${IA.year}-${IA.month}-${Ae.day}`,
              class: Ke(["timeline-day", {
                today: Ae.isToday,
                weekend: Ae.isWeekend && !Ae.isToday
              }])
            }, [
              X("div", Xp, _A(Ae.label), 1)
            ], 2))), 128))
          ], 4))), 128))
        ])
      ]),
      X("div", {
        class: "timeline-body",
        onScroll: YA
      }, [
        X("div", {
          ref_key: "bodyContentRef",
          ref: RA,
          class: "timeline-body-content"
        }, [
          (xA(), DA("svg", {
            class: "gantt-links",
            width: GA.value,
            height: ee.value,
            style: { position: "absolute", left: "0", top: "0", "z-index": "25", "pointer-events": "none" }
          }, [
            TA[3] || (TA[3] = X("defs", null, [
              X("marker", {
                id: "arrow",
                markerWidth: "4",
                markerHeight: "4",
                refX: "4",
                refY: "2",
                orient: "auto",
                markerUnits: "strokeWidth"
              }, [
                X("polygon", {
                  points: "0,0 4,2 0,4",
                  fill: "#c0c4cc"
                })
              ])
            ], -1)),
            X("g", null, [
              (xA(!0), DA(et, null, yt(pA.value, (IA) => (xA(), DA("path", {
                key: IA.from + "-" + IA.to,
                d: IA.path,
                stroke: "#c0c4cc",
                "stroke-width": "2",
                "stroke-dasharray": "6,4",
                fill: "none",
                "marker-end": "url(#arrow)"
              }, null, 8, Jp))), 128))
            ])
          ], 8, zp)),
          X("div", {
            class: "day-columns",
            style: Tt({ height: `${tA.value}px` })
          }, [
            (xA(!0), DA(et, null, yt(L.value, (IA) => (xA(), DA("div", {
              key: `day-col-${IA.year}-${IA.month}`,
              class: "month-day-columns",
              style: Tt({ width: `${IA.days.length * 30}px`, height: `${tA.value}px` })
            }, [
              (xA(!0), DA(et, null, yt(IA.days, (Ae) => (xA(), DA("div", {
                key: `day-col-${IA.year}-${IA.month}-${Ae.day}`,
                class: Ke(["day-column", {
                  weekend: Ae.isWeekend,
                  today: Ae.isToday
                }]),
                style: Tt({ height: `${tA.value}px` })
              }, null, 6))), 128))
            ], 4))), 128))
          ], 4),
          X("div", {
            class: "task-bar-container",
            style: Tt({ height: `${tA.value}px` })
          }, [
            X("div", {
              class: "task-rows",
              style: Tt({ height: `${tA.value}px` })
            }, [
              (xA(!0), DA(et, null, yt(c.value, (IA, Ae) => (xA(), DA("div", {
                key: IA.id,
                class: Ke(["task-row", { "task-row-hovered": Q.value === IA.id }]),
                style: Tt({ top: `${Ae * 51}px` }),
                onMouseenter: (me) => G(IA.id),
                onMouseleave: TA[0] || (TA[0] = (me) => G(null))
              }, [
                IA.type === "milestone-group" && IA.children ? (xA(!0), DA(et, { key: 0 }, yt(IA.children, (me) => (xA(), li(N1, {
                  key: me.id,
                  date: me.startDate || "",
                  "row-height": 50,
                  "day-width": 30,
                  "start-date": o.value.startDate,
                  name: me.name,
                  milestone: Ve(me),
                  onMilestoneDoubleClick: P,
                  "onUpdate:milestone": W,
                  onDragEnd: sA
                }, null, 8, ["date", "start-date", "name", "milestone"]))), 128)) : IA.type !== "milestone-group" && IA.type !== "milestone" ? (xA(), li(Q1, {
                  key: 1,
                  task: IA,
                  "row-height": 50,
                  "day-width": 30,
                  "start-date": o.value.startDate,
                  "is-parent": IA.isParent,
                  "on-double-click": A.onTaskDoubleClick,
                  "edit-component": A.editComponent,
                  "onUpdate:task": uA,
                  onBarMounted: D,
                  onDblclick: (me) => dA(IA),
                  onDragEnd: $,
                  onResizeEnd: BA
                }, null, 8, ["task", "start-date", "is-parent", "on-double-click", "edit-component", "onDblclick"])) : he("", !0)
              ], 46, Yp))), 128))
            ], 4)
          ], 4)
        ], 512)
      ], 32),
      A.useDefaultDrawer ? (xA(), li(cp, {
        key: 0,
        visible: h.value,
        "onUpdate:visible": TA[1] || (TA[1] = (IA) => h.value = IA),
        task: p.value,
        "is-edit": d.value,
        onSubmit: gA,
        onClose: MA,
        onDelete: VA
      }, null, 8, ["visible", "task", "is-edit"])) : he("", !0),
      un(Gp, {
        visible: w.value,
        "onUpdate:visible": TA[2] || (TA[2] = (IA) => w.value = IA),
        milestone: g.value,
        onClose: lA,
        onSave: iA,
        onDelete: k,
        onIconChanged: oA
      }, null, 8, ["visible", "milestone"])
    ], 544));
  }
}), Zp = /* @__PURE__ */ xr($p, [["__scopeId", "data-v-b2a999ff"]]), A2 = { class: "gantt-toolbar" }, e2 = { class: "toolbar-left" }, t2 = {
  key: 0,
  class: "btn-group add-btn-group"
}, r2 = ["title"], n2 = ["title"], i2 = {
  key: 1,
  class: "btn-group"
}, a2 = ["title"], s2 = ["title"], o2 = { class: "toolbar-right" }, l2 = {
  key: 0,
  class: "language-dropdown"
}, c2 = ["title"], u2 = { class: "lang-text" }, f2 = {
  key: 0,
  class: "language-menu"
}, h2 = ["onClick"], d2 = { class: "option-text" }, g2 = {
  key: 0,
  class: "check-icon",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, p2 = ["title"], B2 = ["title"], w2 = {
  key: 0,
  class: "btn-icon",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, v2 = {
  key: 1,
  class: "btn-icon",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, m2 = { class: "icon-fallback" }, C2 = ["title"], y2 = {
  key: 0,
  class: "btn-icon",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, F2 = {
  key: 1,
  class: "btn-icon",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, Q2 = { class: "icon-fallback" }, b2 = {
  key: 0,
  class: "confirm-dialog"
}, U2 = { class: "dialog-content" }, L2 = { class: "dialog-message" }, E2 = { class: "dialog-actions" }, rc = "gantt-theme", x2 = "gantt-locale", I2 = /* @__PURE__ */ Er({
  __name: "GanttToolbar",
  props: {
    config: { default: () => ({}) },
    onAddTask: { type: Function, default: void 0 },
    onAddMilestone: { type: Function, default: void 0 },
    onTodayLocate: { type: Function, default: void 0 },
    onExportCsv: { type: Function, default: void 0 },
    onExportPdf: { type: Function, default: void 0 },
    onLanguageChange: { type: Function, default: void 0 },
    onThemeChange: { type: Function, default: void 0 },
    onFullscreenChange: { type: Function, default: void 0 },
    onSettingsConfirm: { type: Function, default: void 0 }
  },
  emits: ["add-task", "add-milestone", "today-locate", "export-csv", "export-pdf", "language-change", "theme-change", "fullscreen-change"],
  setup(t, { emit: e }) {
    const A = t, r = e, n = {
      zh: "zh-CN",
      en: "en-US"
    }, i = () => {
      if (typeof window < "u") {
        const iA = localStorage.getItem(rc);
        return iA !== null ? iA === "dark" : window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches;
      }
      return !1;
    }, { locale: s, setLocale: o, getTranslation: c } = hi(), h = KA("zh"), p = KA(i()), d = KA(!1), w = KA(!1), g = (iA) => c(iA), Q = Ce(() => g("language")), y = KA(!1), N = KA(null), v = KA(null), U = () => {
      A.onAddTask && typeof A.onAddTask == "function" ? A.onAddTask() : r("add-task");
    }, K = () => {
      A.onAddMilestone && typeof A.onAddMilestone == "function" ? A.onAddMilestone() : r("add-milestone");
    }, j = () => {
      A.onTodayLocate && typeof A.onTodayLocate == "function" ? A.onTodayLocate() : r("today-locate");
    }, q = () => {
      A.onExportCsv && typeof A.onExportCsv == "function" ? A.onExportCsv() : r("export-csv");
    }, V = () => {
      A.onExportPdf && typeof A.onExportPdf == "function" ? A.onExportPdf() : r("export-pdf");
    }, z = () => {
      w.value = !w.value;
    }, H = (iA) => {
      h.value = iA, w.value = !1;
      const k = n[h.value];
      o(k), A.onLanguageChange && typeof A.onLanguageChange == "function" ? A.onLanguageChange(k) : r("language-change", k), v.value = k, N.value = "language", y.value = !0;
    }, G = async () => {
      if (!N.value || v.value === null) {
        _();
        return;
      }
      if (A.onSettingsConfirm && typeof A.onSettingsConfirm == "function")
        try {
          if (!await A.onSettingsConfirm(N.value, v.value)) {
            _();
            return;
          }
        } catch {
          _();
          return;
        }
      N.value === "theme" ? tA() : N.value === "language" && x(), _();
    }, tA = () => {
      typeof window < "u" && typeof v.value == "boolean" && localStorage.setItem(rc, v.value ? "dark" : "light");
    }, x = () => {
      typeof window < "u" && typeof v.value == "string" && localStorage.setItem(x2, v.value);
    }, F = () => {
      _();
    }, _ = () => {
      y.value = !1, N.value = null, v.value = null;
    }, P = () => {
      const iA = !p.value;
      p.value = iA, document.documentElement.setAttribute("data-theme", iA ? "dark" : "light"), A.onThemeChange && typeof A.onThemeChange == "function" ? A.onThemeChange(iA) : r("theme-change", iA), v.value = iA, N.value = "theme", y.value = !0;
    }, lA = () => {
      d.value = !d.value, window.dispatchEvent(
        new CustomEvent("fullscreen-toggle", {
          detail: d.value
        })
      ), A.onFullscreenChange && typeof A.onFullscreenChange == "function" ? A.onFullscreenChange(d.value) : r("fullscreen-change", d.value);
    }, oA = (iA) => {
      !iA.target.closest(".language-dropdown") && w.value && (w.value = !1);
    };
    return jr(() => {
      const iA = s.value;
      h.value = iA === "zh-CN" ? "zh" : "en", document.documentElement.setAttribute("data-theme", p.value ? "dark" : "light"), document.addEventListener("click", oA), window.matchMedia && typeof window < "u" && !localStorage.getItem(rc) && window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (k) => {
        p.value = k.matches, document.documentElement.setAttribute("data-theme", k.matches ? "dark" : "light");
      });
    }), Wr(() => {
      document.removeEventListener("click", oA);
    }), (iA, k) => (xA(), DA("div", A2, [
      X("div", e2, [
        iA.config.showAddTask !== !1 || iA.config.showAddMilestone !== !1 ? (xA(), DA("div", t2, [
          iA.config.showAddTask !== !1 ? (xA(), DA("button", {
            key: 0,
            class: "btn-group-item",
            title: g("addTask"),
            onClick: U
          }, [
            k[0] || (k[0] = X("svg", {
              class: "btn-icon",
              viewBox: "0 0 24 24",
              fill: "none",
              stroke: "currentColor",
              "stroke-width": "2"
            }, [
              X("line", {
                x1: "12",
                y1: "5",
                x2: "12",
                y2: "19"
              }),
              X("line", {
                x1: "5",
                y1: "12",
                x2: "19",
                y2: "12"
              })
            ], -1)),
            cr(" " + _A(g("addTask")), 1)
          ], 8, r2)) : he("", !0),
          iA.config.showAddMilestone !== !1 ? (xA(), DA("button", {
            key: 1,
            class: "btn-group-item",
            title: g("addMilestone"),
            onClick: K
          }, [
            k[1] || (k[1] = Nn('<svg class="btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-fe8c679e><g transform="rotate(45 12 12)" data-v-fe8c679e><rect x="4" y="4" width="16" height="16" rx="4" ry="4" fill="none" stroke="currentColor" data-v-fe8c679e></rect></g><line x1="12" y1="8" x2="12" y2="16" data-v-fe8c679e></line><line x1="8" y1="12" x2="16" y2="12" data-v-fe8c679e></line></svg>', 1)),
            cr(" " + _A(g("addMilestone")), 1)
          ], 8, n2)) : he("", !0)
        ])) : he("", !0),
        iA.config.showExportCsv !== !1 || iA.config.showExportPdf !== !1 ? (xA(), DA("div", i2, [
          iA.config.showExportCsv !== !1 ? (xA(), DA("button", {
            key: 0,
            class: "btn-group-item",
            title: g("exportCsv"),
            onClick: q
          }, [
            k[2] || (k[2] = Nn('<svg class="btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-fe8c679e><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" data-v-fe8c679e></path><polyline points="14,2 14,8 20,8" data-v-fe8c679e></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-fe8c679e></line><line x1="16" y1="17" x2="8" y2="17" data-v-fe8c679e></line><polyline points="10,9 9,9 8,9" data-v-fe8c679e></polyline></svg>', 1)),
            cr(" " + _A(g("exportCsv")), 1)
          ], 8, a2)) : he("", !0),
          iA.config.showExportPdf !== !1 ? (xA(), DA("button", {
            key: 1,
            class: "btn-group-item",
            title: g("exportPdf"),
            onClick: V
          }, [
            k[3] || (k[3] = Nn('<svg class="btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-fe8c679e><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" data-v-fe8c679e></path><polyline points="14,2 14,8 20,8" data-v-fe8c679e></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-fe8c679e></line><line x1="16" y1="17" x2="8" y2="17" data-v-fe8c679e></line><line x1="12" y1="13" x2="12" y2="17" data-v-fe8c679e></line></svg>', 1)),
            cr(" " + _A(g("exportPdf")), 1)
          ], 8, s2)) : he("", !0)
        ])) : he("", !0)
      ]),
      X("div", o2, [
        iA.config.showLanguage !== !1 ? (xA(), DA("div", l2, [
          X("button", {
            class: "toolbar-lang-btn",
            title: g("languageTooltip"),
            onClick: z
          }, [
            k[4] || (k[4] = X("svg", {
              class: "btn-icon",
              viewBox: "0 0 24 24",
              fill: "none",
              stroke: "currentColor",
              "stroke-width": "2"
            }, [
              X("circle", {
                cx: "12",
                cy: "12",
                r: "10"
              }),
              X("line", {
                x1: "2",
                y1: "12",
                x2: "22",
                y2: "12"
              }),
              X("path", { d: "M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" })
            ], -1)),
            X("span", u2, _A(Q.value), 1),
            k[5] || (k[5] = X("svg", {
              class: "dropdown-arrow",
              viewBox: "0 0 24 24",
              fill: "none",
              stroke: "currentColor",
              "stroke-width": "2"
            }, [
              X("polyline", { points: "6,9 12,15 18,9" })
            ], -1))
          ], 8, c2),
          w.value ? (xA(), DA("div", f2, [
            (xA(), DA(et, null, yt(["zh", "en"], (W) => X("div", {
              key: W,
              class: Ke(["language-option", { active: h.value === W }]),
              onClick: (rA) => H(W)
            }, [
              X("span", d2, _A(W === "zh" ? "中文" : "English"), 1),
              h.value === W ? (xA(), DA("svg", g2, k[6] || (k[6] = [
                X("polyline", { points: "20,6 9,17 4,12" }, null, -1)
              ]))) : he("", !0)
            ], 10, h2)), 64))
          ])) : he("", !0)
        ])) : he("", !0),
        iA.config.showTodayLocate !== !1 ? (xA(), DA("button", {
          key: 1,
          class: "toolbar-icon-btn today-locate-btn",
          title: g("todayLocateTooltip"),
          onClick: j
        }, k[7] || (k[7] = [
          Nn('<svg class="btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-fe8c679e><rect x="3" y="4" width="18" height="18" rx="2" ry="2" data-v-fe8c679e></rect><line x1="16" y1="2" x2="16" y2="6" data-v-fe8c679e></line><line x1="8" y1="2" x2="8" y2="6" data-v-fe8c679e></line><line x1="3" y1="10" x2="21" y2="10" data-v-fe8c679e></line><circle cx="12" cy="16" r="1" data-v-fe8c679e></circle></svg>', 1)
        ]), 8, p2)) : he("", !0),
        iA.config.showTheme !== !1 ? (xA(), DA("button", {
          key: 2,
          class: "toolbar-icon-btn",
          title: g(p.value ? "lightMode" : "darkMode"),
          onClick: P
        }, [
          p.value ? (xA(), DA("svg", w2, k[8] || (k[8] = [
            Nn('<circle cx="12" cy="12" r="5" data-v-fe8c679e></circle><line x1="12" y1="1" x2="12" y2="3" data-v-fe8c679e></line><line x1="12" y1="21" x2="12" y2="23" data-v-fe8c679e></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64" data-v-fe8c679e></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78" data-v-fe8c679e></line><line x1="1" y1="12" x2="3" y2="12" data-v-fe8c679e></line><line x1="21" y1="12" x2="23" y2="12" data-v-fe8c679e></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36" data-v-fe8c679e></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22" data-v-fe8c679e></line>', 9)
          ]))) : (xA(), DA("svg", v2, k[9] || (k[9] = [
            X("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" }, null, -1)
          ]))),
          X("span", m2, _A(p.value ? "☀️" : "🌙"), 1)
        ], 8, B2)) : he("", !0),
        iA.config.showFullscreen !== !1 ? (xA(), DA("button", {
          key: 3,
          class: "toolbar-icon-btn",
          title: g(d.value ? "exitFullscreen" : "fullscreen"),
          onClick: lA
        }, [
          d.value ? (xA(), DA("svg", y2, k[10] || (k[10] = [
            X("path", { d: "M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3" }, null, -1)
          ]))) : (xA(), DA("svg", F2, k[11] || (k[11] = [
            X("path", { d: "M8 3H5a2 2 0 00-2 2v3m18 0V5a2 2 0 00-2-2h-3m0 18h3a2 2 0 002-2v-3M3 16v3a2 2 0 002 2h3" }, null, -1)
          ]))),
          X("span", Q2, _A(d.value ? "⇲" : "⇱"), 1)
        ], 8, C2)) : he("", !0)
      ]),
      y.value ? (xA(), DA("div", b2, [
        X("div", U2, [
          X("p", L2, _A(g("confirmDialogMessage")), 1),
          X("div", E2, [
            X("button", {
              class: "btn btn-default",
              onClick: F
            }, _A(g("cancel")), 1),
            X("button", {
              class: "btn btn-primary",
              onClick: G
            }, _A(g("confirm")), 1)
          ])
        ])
      ])) : he("", !0)
    ]));
  }
}), S2 = /* @__PURE__ */ xr(I2, [["__scopeId", "data-v-fe8c679e"]]);
function Se(t) {
  "@babel/helpers - typeof";
  return Se = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
    return typeof e;
  } : function(e) {
    return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
  }, Se(t);
}
var Ht = Uint8Array, Zt = Uint16Array, pu = Int32Array, el = new Ht([
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  1,
  1,
  1,
  1,
  2,
  2,
  2,
  2,
  3,
  3,
  3,
  3,
  4,
  4,
  4,
  4,
  5,
  5,
  5,
  5,
  0,
  /* unused */
  0,
  0,
  /* impossible */
  0
]), tl = new Ht([
  0,
  0,
  0,
  0,
  1,
  1,
  2,
  2,
  3,
  3,
  4,
  4,
  5,
  5,
  6,
  6,
  7,
  7,
  8,
  8,
  9,
  9,
  10,
  10,
  11,
  11,
  12,
  12,
  13,
  13,
  /* unused */
  0,
  0
]), _c = new Ht([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), Fh = function(t, e) {
  for (var A = new Zt(31), r = 0; r < 31; ++r)
    A[r] = e += 1 << t[r - 1];
  for (var n = new pu(A[30]), r = 1; r < 30; ++r)
    for (var i = A[r]; i < A[r + 1]; ++i)
      n[i] = i - A[r] << 5 | r;
  return { b: A, r: n };
}, Qh = Fh(el, 2), bh = Qh.b, Tc = Qh.r;
bh[28] = 258, Tc[258] = 28;
var Uh = Fh(tl, 0), H2 = Uh.b, ef = Uh.r, Mc = new Zt(32768);
for (var Re = 0; Re < 32768; ++Re) {
  var En = (Re & 43690) >> 1 | (Re & 21845) << 1;
  En = (En & 52428) >> 2 | (En & 13107) << 2, En = (En & 61680) >> 4 | (En & 3855) << 4, Mc[Re] = ((En & 65280) >> 8 | (En & 255) << 8) >> 1;
}
var qr = function(t, e, A) {
  for (var r = t.length, n = 0, i = new Zt(e); n < r; ++n)
    t[n] && ++i[t[n] - 1];
  var s = new Zt(e);
  for (n = 1; n < e; ++n)
    s[n] = s[n - 1] + i[n - 1] << 1;
  var o;
  if (A) {
    o = new Zt(1 << e);
    var c = 15 - e;
    for (n = 0; n < r; ++n)
      if (t[n])
        for (var h = n << 4 | t[n], p = e - t[n], d = s[t[n] - 1]++ << p, w = d | (1 << p) - 1; d <= w; ++d)
          o[Mc[d] >> c] = h;
  } else
    for (o = new Zt(r), n = 0; n < r; ++n)
      t[n] && (o[n] = Mc[s[t[n] - 1]++] >> 15 - t[n]);
  return o;
}, Rn = new Ht(288);
for (var Re = 0; Re < 144; ++Re)
  Rn[Re] = 8;
for (var Re = 144; Re < 256; ++Re)
  Rn[Re] = 9;
for (var Re = 256; Re < 280; ++Re)
  Rn[Re] = 7;
for (var Re = 280; Re < 288; ++Re)
  Rn[Re] = 8;
var ss = new Ht(32);
for (var Re = 0; Re < 32; ++Re)
  ss[Re] = 5;
var D2 = /* @__PURE__ */ qr(Rn, 9, 0), N2 = /* @__PURE__ */ qr(Rn, 9, 1), k2 = /* @__PURE__ */ qr(ss, 5, 0), _2 = /* @__PURE__ */ qr(ss, 5, 1), nc = function(t) {
  for (var e = t[0], A = 1; A < t.length; ++A)
    t[A] > e && (e = t[A]);
  return e;
}, Fr = function(t, e, A) {
  var r = e / 8 | 0;
  return (t[r] | t[r + 1] << 8) >> (e & 7) & A;
}, ic = function(t, e) {
  var A = e / 8 | 0;
  return (t[A] | t[A + 1] << 8 | t[A + 2] << 16) >> (e & 7);
}, Bu = function(t) {
  return (t + 7) / 8 | 0;
}, Lh = function(t, e, A) {
  return (A == null || A > t.length) && (A = t.length), new Ht(t.subarray(e, A));
}, T2 = [
  "unexpected EOF",
  "invalid block type",
  "invalid length/literal",
  "invalid distance",
  "stream finished",
  "no stream handler",
  ,
  "no callback",
  "invalid UTF-8 data",
  "extra field too long",
  "date not in range 1980-2099",
  "filename too long",
  "stream finishing",
  "invalid zip data"
  // determined by unknown compression method
], Ur = function(t, e, A) {
  var r = new Error(e || T2[t]);
  if (r.code = t, Error.captureStackTrace && Error.captureStackTrace(r, Ur), !A)
    throw r;
  return r;
}, M2 = function(t, e, A, r) {
  var n = t.length, i = 0;
  if (!n || e.f && !e.l)
    return A || new Ht(0);
  var s = !A, o = s || e.i != 2, c = e.i;
  s && (A = new Ht(n * 3));
  var h = function(NA) {
    var RA = A.length;
    if (NA > RA) {
      var GA = new Ht(Math.max(RA * 2, NA));
      GA.set(A), A = GA;
    }
  }, p = e.f || 0, d = e.p || 0, w = e.b || 0, g = e.l, Q = e.d, y = e.m, N = e.n, v = n * 8;
  do {
    if (!g) {
      p = Fr(t, d, 1);
      var U = Fr(t, d + 1, 3);
      if (d += 3, U)
        if (U == 1)
          g = N2, Q = _2, y = 9, N = 5;
        else if (U == 2) {
          var V = Fr(t, d, 31) + 257, z = Fr(t, d + 10, 15) + 4, H = V + Fr(t, d + 5, 31) + 1;
          d += 14;
          for (var G = new Ht(H), tA = new Ht(19), x = 0; x < z; ++x)
            tA[_c[x]] = Fr(t, d + x * 3, 7);
          d += z * 3;
          for (var F = nc(tA), _ = (1 << F) - 1, P = qr(tA, F, 1), x = 0; x < H; ) {
            var lA = P[Fr(t, d, _)];
            d += lA & 15;
            var K = lA >> 4;
            if (K < 16)
              G[x++] = K;
            else {
              var oA = 0, iA = 0;
              for (K == 16 ? (iA = 3 + Fr(t, d, 3), d += 2, oA = G[x - 1]) : K == 17 ? (iA = 3 + Fr(t, d, 7), d += 3) : K == 18 && (iA = 11 + Fr(t, d, 127), d += 7); iA--; )
                G[x++] = oA;
            }
          }
          var k = G.subarray(0, V), W = G.subarray(V);
          y = nc(k), N = nc(W), g = qr(k, y, 1), Q = qr(W, N, 1);
        } else
          Ur(1);
      else {
        var K = Bu(d) + 4, j = t[K - 4] | t[K - 3] << 8, q = K + j;
        if (q > n) {
          c && Ur(0);
          break;
        }
        o && h(w + j), A.set(t.subarray(K, q), w), e.b = w += j, e.p = d = q * 8, e.f = p;
        continue;
      }
      if (d > v) {
        c && Ur(0);
        break;
      }
    }
    o && h(w + 131072);
    for (var rA = (1 << y) - 1, OA = (1 << N) - 1, L = d; ; L = d) {
      var oA = g[ic(t, d) & rA], M = oA >> 4;
      if (d += oA & 15, d > v) {
        c && Ur(0);
        break;
      }
      if (oA || Ur(2), M < 256)
        A[w++] = M;
      else if (M == 256) {
        L = d, g = null;
        break;
      } else {
        var R = M - 254;
        if (M > 264) {
          var x = M - 257, J = el[x];
          R = Fr(t, d, (1 << J) - 1) + bh[x], d += J;
        }
        var eA = Q[ic(t, d) & OA], uA = eA >> 4;
        eA || Ur(3), d += eA & 15;
        var W = H2[uA];
        if (uA > 3) {
          var J = tl[uA];
          W += ic(t, d) & (1 << J) - 1, d += J;
        }
        if (d > v) {
          c && Ur(0);
          break;
        }
        o && h(w + 131072);
        var dA = w + R;
        if (w < W) {
          var gA = i - W, MA = Math.min(W, dA);
          for (gA + w < 0 && Ur(3); w < MA; ++w)
            A[w] = r[gA + w];
        }
        for (; w < dA; ++w)
          A[w] = A[w - W];
      }
    }
    e.l = g, e.p = L, e.b = w, e.f = p, g && (p = 1, e.m = y, e.d = Q, e.n = N);
  } while (!p);
  return w != A.length && s ? Lh(A, 0, w) : A.subarray(0, w);
}, on = function(t, e, A) {
  A <<= e & 7;
  var r = e / 8 | 0;
  t[r] |= A, t[r + 1] |= A >> 8;
}, Ra = function(t, e, A) {
  A <<= e & 7;
  var r = e / 8 | 0;
  t[r] |= A, t[r + 1] |= A >> 8, t[r + 2] |= A >> 16;
}, ac = function(t, e) {
  for (var A = [], r = 0; r < t.length; ++r)
    t[r] && A.push({ s: r, f: t[r] });
  var n = A.length, i = A.slice();
  if (!n)
    return { t: xh, l: 0 };
  if (n == 1) {
    var s = new Ht(A[0].s + 1);
    return s[A[0].s] = 1, { t: s, l: 1 };
  }
  A.sort(function(q, V) {
    return q.f - V.f;
  }), A.push({ s: -1, f: 25001 });
  var o = A[0], c = A[1], h = 0, p = 1, d = 2;
  for (A[0] = { s: -1, f: o.f + c.f, l: o, r: c }; p != n - 1; )
    o = A[A[h].f < A[d].f ? h++ : d++], c = A[h != p && A[h].f < A[d].f ? h++ : d++], A[p++] = { s: -1, f: o.f + c.f, l: o, r: c };
  for (var w = i[0].s, r = 1; r < n; ++r)
    i[r].s > w && (w = i[r].s);
  var g = new Zt(w + 1), Q = Pc(A[p - 1], g, 0);
  if (Q > e) {
    var r = 0, y = 0, N = Q - e, v = 1 << N;
    for (i.sort(function(V, z) {
      return g[z.s] - g[V.s] || V.f - z.f;
    }); r < n; ++r) {
      var U = i[r].s;
      if (g[U] > e)
        y += v - (1 << Q - g[U]), g[U] = e;
      else
        break;
    }
    for (y >>= N; y > 0; ) {
      var K = i[r].s;
      g[K] < e ? y -= 1 << e - g[K]++ - 1 : ++r;
    }
    for (; r >= 0 && y; --r) {
      var j = i[r].s;
      g[j] == e && (--g[j], ++y);
    }
    Q = e;
  }
  return { t: new Ht(g), l: Q };
}, Pc = function(t, e, A) {
  return t.s == -1 ? Math.max(Pc(t.l, e, A + 1), Pc(t.r, e, A + 1)) : e[t.s] = A;
}, tf = function(t) {
  for (var e = t.length; e && !t[--e]; )
    ;
  for (var A = new Zt(++e), r = 0, n = t[0], i = 1, s = function(c) {
    A[r++] = c;
  }, o = 1; o <= e; ++o)
    if (t[o] == n && o != e)
      ++i;
    else {
      if (!n && i > 2) {
        for (; i > 138; i -= 138)
          s(32754);
        i > 2 && (s(i > 10 ? i - 11 << 5 | 28690 : i - 3 << 5 | 12305), i = 0);
      } else if (i > 3) {
        for (s(n), --i; i > 6; i -= 6)
          s(8304);
        i > 2 && (s(i - 3 << 5 | 8208), i = 0);
      }
      for (; i--; )
        s(n);
      i = 1, n = t[o];
    }
  return { c: A.subarray(0, r), n: e };
}, Ga = function(t, e) {
  for (var A = 0, r = 0; r < e.length; ++r)
    A += t[r] * e[r];
  return A;
}, Eh = function(t, e, A) {
  var r = A.length, n = Bu(e + 2);
  t[n] = r & 255, t[n + 1] = r >> 8, t[n + 2] = t[n] ^ 255, t[n + 3] = t[n + 1] ^ 255;
  for (var i = 0; i < r; ++i)
    t[n + i + 4] = A[i];
  return (n + 4 + r) * 8;
}, rf = function(t, e, A, r, n, i, s, o, c, h, p) {
  on(e, p++, A), ++n[256];
  for (var d = ac(n, 15), w = d.t, g = d.l, Q = ac(i, 15), y = Q.t, N = Q.l, v = tf(w), U = v.c, K = v.n, j = tf(y), q = j.c, V = j.n, z = new Zt(19), H = 0; H < U.length; ++H)
    ++z[U[H] & 31];
  for (var H = 0; H < q.length; ++H)
    ++z[q[H] & 31];
  for (var G = ac(z, 7), tA = G.t, x = G.l, F = 19; F > 4 && !tA[_c[F - 1]]; --F)
    ;
  var _ = h + 5 << 3, P = Ga(n, Rn) + Ga(i, ss) + s, lA = Ga(n, w) + Ga(i, y) + s + 14 + 3 * F + Ga(z, tA) + 2 * z[16] + 3 * z[17] + 7 * z[18];
  if (c >= 0 && _ <= P && _ <= lA)
    return Eh(e, p, t.subarray(c, c + h));
  var oA, iA, k, W;
  if (on(e, p, 1 + (lA < P)), p += 2, lA < P) {
    oA = qr(w, g, 0), iA = w, k = qr(y, N, 0), W = y;
    var rA = qr(tA, x, 0);
    on(e, p, K - 257), on(e, p + 5, V - 1), on(e, p + 10, F - 4), p += 14;
    for (var H = 0; H < F; ++H)
      on(e, p + 3 * H, tA[_c[H]]);
    p += 3 * F;
    for (var OA = [U, q], L = 0; L < 2; ++L)
      for (var M = OA[L], H = 0; H < M.length; ++H) {
        var R = M[H] & 31;
        on(e, p, rA[R]), p += tA[R], R > 15 && (on(e, p, M[H] >> 5 & 127), p += M[H] >> 12);
      }
  } else
    oA = D2, iA = Rn, k = k2, W = ss;
  for (var H = 0; H < o; ++H) {
    var J = r[H];
    if (J > 255) {
      var R = J >> 18 & 31;
      Ra(e, p, oA[R + 257]), p += iA[R + 257], R > 7 && (on(e, p, J >> 23 & 31), p += el[R]);
      var eA = J & 31;
      Ra(e, p, k[eA]), p += W[eA], eA > 3 && (Ra(e, p, J >> 5 & 8191), p += tl[eA]);
    } else
      Ra(e, p, oA[J]), p += iA[J];
  }
  return Ra(e, p, oA[256]), p + iA[256];
}, P2 = /* @__PURE__ */ new pu([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]), xh = /* @__PURE__ */ new Ht(0), O2 = function(t, e, A, r, n, i) {
  var s = i.z || t.length, o = new Ht(r + s + 5 * (1 + Math.ceil(s / 7e3)) + n), c = o.subarray(r, o.length - n), h = i.l, p = (i.r || 0) & 7;
  if (e) {
    p && (c[0] = i.r >> 3);
    for (var d = P2[e - 1], w = d >> 13, g = d & 8191, Q = (1 << A) - 1, y = i.p || new Zt(32768), N = i.h || new Zt(Q + 1), v = Math.ceil(A / 3), U = 2 * v, K = function(ee) {
      return (t[ee] ^ t[ee + 1] << v ^ t[ee + 2] << U) & Q;
    }, j = new pu(25e3), q = new Zt(288), V = new Zt(32), z = 0, H = 0, G = i.i || 0, tA = 0, x = i.w || 0, F = 0; G + 2 < s; ++G) {
      var _ = K(G), P = G & 32767, lA = N[_];
      if (y[P] = lA, N[_] = P, x <= G) {
        var oA = s - G;
        if ((z > 7e3 || tA > 24576) && (oA > 423 || !h)) {
          p = rf(t, c, 0, j, q, V, H, tA, F, G - F, p), tA = z = H = 0, F = G;
          for (var iA = 0; iA < 286; ++iA)
            q[iA] = 0;
          for (var iA = 0; iA < 30; ++iA)
            V[iA] = 0;
        }
        var k = 2, W = 0, rA = g, OA = P - lA & 32767;
        if (oA > 2 && _ == K(G - OA))
          for (var L = Math.min(w, oA) - 1, M = Math.min(32767, G), R = Math.min(258, oA); OA <= M && --rA && P != lA; ) {
            if (t[G + k] == t[G + k - OA]) {
              for (var J = 0; J < R && t[G + J] == t[G + J - OA]; ++J)
                ;
              if (J > k) {
                if (k = J, W = OA, J > L)
                  break;
                for (var eA = Math.min(OA, J - 2), uA = 0, iA = 0; iA < eA; ++iA) {
                  var dA = G - OA + iA & 32767, gA = y[dA], MA = dA - gA & 32767;
                  MA > uA && (uA = MA, lA = dA);
                }
              }
            }
            P = lA, lA = y[P], OA += P - lA & 32767;
          }
        if (W) {
          j[tA++] = 268435456 | Tc[k] << 18 | ef[W];
          var NA = Tc[k] & 31, RA = ef[W] & 31;
          H += el[NA] + tl[RA], ++q[257 + NA], ++V[RA], x = G + k, ++z;
        } else
          j[tA++] = t[G], ++q[t[G]];
      }
    }
    for (G = Math.max(G, x); G < s; ++G)
      j[tA++] = t[G], ++q[t[G]];
    p = rf(t, c, h, j, q, V, H, tA, F, G - F, p), h || (i.r = p & 7 | c[p / 8 | 0] << 3, p -= 7, i.h = N, i.p = y, i.i = G, i.w = x);
  } else {
    for (var G = i.w || 0; G < s + h; G += 65535) {
      var GA = G + 65535;
      GA >= s && (c[p / 8 | 0] = h, GA = s), p = Eh(c, p + 1, t.subarray(G, GA));
    }
    i.i = s;
  }
  return Lh(o, 0, r + Bu(p) + n);
}, Ih = function() {
  var t = 1, e = 0;
  return {
    p: function(A) {
      for (var r = t, n = e, i = A.length | 0, s = 0; s != i; ) {
        for (var o = Math.min(s + 2655, i); s < o; ++s)
          n += r += A[s];
        r = (r & 65535) + 15 * (r >> 16), n = (n & 65535) + 15 * (n >> 16);
      }
      t = r, e = n;
    },
    d: function() {
      return t %= 65521, e %= 65521, (t & 255) << 24 | (t & 65280) << 8 | (e & 255) << 8 | e >> 8;
    }
  };
}, K2 = function(t, e, A, r, n) {
  if (!n && (n = { l: 1 }, e.dictionary)) {
    var i = e.dictionary.subarray(-32768), s = new Ht(i.length + t.length);
    s.set(i), s.set(t, i.length), t = s, n.w = i.length;
  }
  return O2(t, e.level == null ? 6 : e.level, e.mem == null ? n.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(t.length))) * 1.5) : 20 : 12 + e.mem, A, r, n);
}, Sh = function(t, e, A) {
  for (; A; ++e)
    t[e] = A, A >>>= 8;
}, R2 = function(t, e) {
  var A = e.level, r = A == 0 ? 0 : A < 6 ? 1 : A == 9 ? 3 : 2;
  if (t[0] = 120, t[1] = r << 6 | (e.dictionary && 32), t[1] |= 31 - (t[0] << 8 | t[1]) % 31, e.dictionary) {
    var n = Ih();
    n.p(e.dictionary), Sh(t, 2, n.d());
  }
}, G2 = function(t, e) {
  return ((t[0] & 15) != 8 || t[0] >> 4 > 7 || (t[0] << 8 | t[1]) % 31) && Ur(6, "invalid zlib data"), (t[1] >> 5 & 1) == 1 && Ur(6, "invalid zlib data: " + (t[1] & 32 ? "need" : "unexpected") + " dictionary"), (t[1] >> 3 & 4) + 2;
};
function Oc(t, e) {
  e || (e = {});
  var A = Ih();
  A.p(t);
  var r = K2(t, e, e.dictionary ? 6 : 2, 4);
  return R2(r, e), Sh(r, r.length - 4, A.d()), r;
}
function V2(t, e) {
  return M2(t.subarray(G2(t), -4), { i: 2 }, e, e);
}
var j2 = typeof TextDecoder < "u" && /* @__PURE__ */ new TextDecoder(), q2 = 0;
try {
  j2.decode(xh, { stream: !0 }), q2 = 1;
} catch {
}
/** @license
 *
 * jsPDF - PDF Document creation from JavaScript
 * Version 3.0.1 Built on 2025-03-17T14:19:36.873Z
 *                      CommitID 00000000
 *
 * Copyright (c) 2010-2021 James Hall <james@parall.ax>, https://github.com/MrRio/jsPDF
 *               2015-2021 yWorks GmbH, http://www.yworks.com
 *               2015-2021 Lukas Holländer <lukas.hollaender@yworks.com>, https://github.com/HackbrettXXX
 *               2016-2018 Aras Abbasi <aras.abbasi@gmail.com>
 *               2010 Aaron Spike, https://github.com/acspike
 *               2012 Willow Systems Corporation, https://github.com/willowsystems
 *               2012 Pablo Hess, https://github.com/pablohess
 *               2012 Florian Jenett, https://github.com/fjenett
 *               2013 Warren Weckesser, https://github.com/warrenweckesser
 *               2013 Youssef Beddad, https://github.com/lifof
 *               2013 Lee Driscoll, https://github.com/lsdriscoll
 *               2013 Stefan Slonevskiy, https://github.com/stefslon
 *               2013 Jeremy Morel, https://github.com/jmorel
 *               2013 Christoph Hartmann, https://github.com/chris-rock
 *               2014 Juan Pablo Gaviria, https://github.com/juanpgaviria
 *               2014 James Makes, https://github.com/dollaruw
 *               2014 Diego Casorran, https://github.com/diegocr
 *               2014 Steven Spungin, https://github.com/Flamenco
 *               2014 Kenneth Glassey, https://github.com/Gavvers
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 * Contributor(s):
 *    siefkenj, ahwolf, rickygu, Midnith, saintclair, eaparango,
 *    kim3er, mfo, alnorth, Flamenco
 */
var le = /* @__PURE__ */ function() {
  return typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : this;
}();
function sc() {
  le.console && typeof le.console.log == "function" && le.console.log.apply(le.console, arguments);
}
var _e = { log: sc, warn: function(t) {
  le.console && (typeof le.console.warn == "function" ? le.console.warn.apply(le.console, arguments) : sc.call(null, arguments));
}, error: function(t) {
  le.console && (typeof le.console.error == "function" ? le.console.error.apply(le.console, arguments) : sc(t));
} };
function oc(t, e, A) {
  var r = new XMLHttpRequest();
  r.open("GET", t), r.responseType = "blob", r.onload = function() {
    ii(r.response, e, A);
  }, r.onerror = function() {
    _e.error("could not download file");
  }, r.send();
}
function nf(t) {
  var e = new XMLHttpRequest();
  e.open("HEAD", t, !1);
  try {
    e.send();
  } catch {
  }
  return e.status >= 200 && e.status <= 299;
}
function io(t) {
  try {
    t.dispatchEvent(new MouseEvent("click"));
  } catch {
    var e = document.createEvent("MouseEvents");
    e.initMouseEvent("click", !0, !0, window, 0, 0, 0, 80, 20, !1, !1, !1, !1, 0, null), t.dispatchEvent(e);
  }
}
var es, Kc, ii = le.saveAs || ((typeof window > "u" ? "undefined" : Se(window)) !== "object" || window !== le ? function() {
} : typeof HTMLAnchorElement < "u" && "download" in HTMLAnchorElement.prototype ? function(t, e, A) {
  var r = le.URL || le.webkitURL, n = document.createElement("a");
  e = e || t.name || "download", n.download = e, n.rel = "noopener", typeof t == "string" ? (n.href = t, n.origin !== location.origin ? nf(n.href) ? oc(t, e, A) : io(n, n.target = "_blank") : io(n)) : (n.href = r.createObjectURL(t), setTimeout(function() {
    r.revokeObjectURL(n.href);
  }, 4e4), setTimeout(function() {
    io(n);
  }, 0));
} : "msSaveOrOpenBlob" in navigator ? function(t, e, A) {
  if (e = e || t.name || "download", typeof t == "string") if (nf(t)) oc(t, e, A);
  else {
    var r = document.createElement("a");
    r.href = t, r.target = "_blank", setTimeout(function() {
      io(r);
    });
  }
  else navigator.msSaveOrOpenBlob(function(n, i) {
    return i === void 0 ? i = { autoBom: !1 } : Se(i) !== "object" && (_e.warn("Deprecated: Expected third argument to be a object"), i = { autoBom: !i }), i.autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(n.type) ? new Blob(["\uFEFF", n], { type: n.type }) : n;
  }(t, A), e);
} : function(t, e, A, r) {
  if ((r = r || open("", "_blank")) && (r.document.title = r.document.body.innerText = "downloading..."), typeof t == "string") return oc(t, e, A);
  var n = t.type === "application/octet-stream", i = /constructor/i.test(le.HTMLElement) || le.safari, s = /CriOS\/[\d]+/.test(navigator.userAgent);
  if ((s || n && i) && (typeof FileReader > "u" ? "undefined" : Se(FileReader)) === "object") {
    var o = new FileReader();
    o.onloadend = function() {
      var p = o.result;
      p = s ? p : p.replace(/^data:[^;]*;/, "data:attachment/file;"), r ? r.location.href = p : location = p, r = null;
    }, o.readAsDataURL(t);
  } else {
    var c = le.URL || le.webkitURL, h = c.createObjectURL(t);
    r ? r.location = h : location.href = h, r = null, setTimeout(function() {
      c.revokeObjectURL(h);
    }, 4e4);
  }
});
/**
 * A class to parse color values
 * @author Stoyan Stefanov <sstoo@gmail.com>
 * {@link   http://www.phpied.com/rgb-color-parser-in-javascript/}
 * @license Use it if you like it
 */
function Hh(t) {
  var e;
  t = t || "", this.ok = !1, t.charAt(0) == "#" && (t = t.substr(1, 6)), t = { aliceblue: "f0f8ff", antiquewhite: "faebd7", aqua: "00ffff", aquamarine: "7fffd4", azure: "f0ffff", beige: "f5f5dc", bisque: "ffe4c4", black: "000000", blanchedalmond: "ffebcd", blue: "0000ff", blueviolet: "8a2be2", brown: "a52a2a", burlywood: "deb887", cadetblue: "5f9ea0", chartreuse: "7fff00", chocolate: "d2691e", coral: "ff7f50", cornflowerblue: "6495ed", cornsilk: "fff8dc", crimson: "dc143c", cyan: "00ffff", darkblue: "00008b", darkcyan: "008b8b", darkgoldenrod: "b8860b", darkgray: "a9a9a9", darkgreen: "006400", darkkhaki: "bdb76b", darkmagenta: "8b008b", darkolivegreen: "556b2f", darkorange: "ff8c00", darkorchid: "9932cc", darkred: "8b0000", darksalmon: "e9967a", darkseagreen: "8fbc8f", darkslateblue: "483d8b", darkslategray: "2f4f4f", darkturquoise: "00ced1", darkviolet: "9400d3", deeppink: "ff1493", deepskyblue: "00bfff", dimgray: "696969", dodgerblue: "1e90ff", feldspar: "d19275", firebrick: "b22222", floralwhite: "fffaf0", forestgreen: "228b22", fuchsia: "ff00ff", gainsboro: "dcdcdc", ghostwhite: "f8f8ff", gold: "ffd700", goldenrod: "daa520", gray: "808080", green: "008000", greenyellow: "adff2f", honeydew: "f0fff0", hotpink: "ff69b4", indianred: "cd5c5c", indigo: "4b0082", ivory: "fffff0", khaki: "f0e68c", lavender: "e6e6fa", lavenderblush: "fff0f5", lawngreen: "7cfc00", lemonchiffon: "fffacd", lightblue: "add8e6", lightcoral: "f08080", lightcyan: "e0ffff", lightgoldenrodyellow: "fafad2", lightgrey: "d3d3d3", lightgreen: "90ee90", lightpink: "ffb6c1", lightsalmon: "ffa07a", lightseagreen: "20b2aa", lightskyblue: "87cefa", lightslateblue: "8470ff", lightslategray: "778899", lightsteelblue: "b0c4de", lightyellow: "ffffe0", lime: "00ff00", limegreen: "32cd32", linen: "faf0e6", magenta: "ff00ff", maroon: "800000", mediumaquamarine: "66cdaa", mediumblue: "0000cd", mediumorchid: "ba55d3", mediumpurple: "9370d8", mediumseagreen: "3cb371", mediumslateblue: "7b68ee", mediumspringgreen: "00fa9a", mediumturquoise: "48d1cc", mediumvioletred: "c71585", midnightblue: "191970", mintcream: "f5fffa", mistyrose: "ffe4e1", moccasin: "ffe4b5", navajowhite: "ffdead", navy: "000080", oldlace: "fdf5e6", olive: "808000", olivedrab: "6b8e23", orange: "ffa500", orangered: "ff4500", orchid: "da70d6", palegoldenrod: "eee8aa", palegreen: "98fb98", paleturquoise: "afeeee", palevioletred: "d87093", papayawhip: "ffefd5", peachpuff: "ffdab9", peru: "cd853f", pink: "ffc0cb", plum: "dda0dd", powderblue: "b0e0e6", purple: "800080", red: "ff0000", rosybrown: "bc8f8f", royalblue: "4169e1", saddlebrown: "8b4513", salmon: "fa8072", sandybrown: "f4a460", seagreen: "2e8b57", seashell: "fff5ee", sienna: "a0522d", silver: "c0c0c0", skyblue: "87ceeb", slateblue: "6a5acd", slategray: "708090", snow: "fffafa", springgreen: "00ff7f", steelblue: "4682b4", tan: "d2b48c", teal: "008080", thistle: "d8bfd8", tomato: "ff6347", turquoise: "40e0d0", violet: "ee82ee", violetred: "d02090", wheat: "f5deb3", white: "ffffff", whitesmoke: "f5f5f5", yellow: "ffff00", yellowgreen: "9acd32" }[t = (t = t.replace(/ /g, "")).toLowerCase()] || t;
  for (var A = [{ re: /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/, example: ["rgb(123, 234, 45)", "rgb(255,234,245)"], process: function(o) {
    return [parseInt(o[1]), parseInt(o[2]), parseInt(o[3])];
  } }, { re: /^(\w{2})(\w{2})(\w{2})$/, example: ["#00ff00", "336699"], process: function(o) {
    return [parseInt(o[1], 16), parseInt(o[2], 16), parseInt(o[3], 16)];
  } }, { re: /^(\w{1})(\w{1})(\w{1})$/, example: ["#fb0", "f0f"], process: function(o) {
    return [parseInt(o[1] + o[1], 16), parseInt(o[2] + o[2], 16), parseInt(o[3] + o[3], 16)];
  } }], r = 0; r < A.length; r++) {
    var n = A[r].re, i = A[r].process, s = n.exec(t);
    s && (e = i(s), this.r = e[0], this.g = e[1], this.b = e[2], this.ok = !0);
  }
  this.r = this.r < 0 || isNaN(this.r) ? 0 : this.r > 255 ? 255 : this.r, this.g = this.g < 0 || isNaN(this.g) ? 0 : this.g > 255 ? 255 : this.g, this.b = this.b < 0 || isNaN(this.b) ? 0 : this.b > 255 ? 255 : this.b, this.toRGB = function() {
    return "rgb(" + this.r + ", " + this.g + ", " + this.b + ")";
  }, this.toHex = function() {
    var o = this.r.toString(16), c = this.g.toString(16), h = this.b.toString(16);
    return o.length == 1 && (o = "0" + o), c.length == 1 && (c = "0" + c), h.length == 1 && (h = "0" + h), "#" + o + c + h;
  };
}
/**
 * @license
 * Joseph Myers does not specify a particular license for his work.
 *
 * Author: Joseph Myers
 * Accessed from: http://www.myersdaily.org/joseph/javascript/md5.js
 *
 * Modified by: Owen Leong
 */
function lc(t, e) {
  var A = t[0], r = t[1], n = t[2], i = t[3];
  A = Ut(A, r, n, i, e[0], 7, -680876936), i = Ut(i, A, r, n, e[1], 12, -389564586), n = Ut(n, i, A, r, e[2], 17, 606105819), r = Ut(r, n, i, A, e[3], 22, -1044525330), A = Ut(A, r, n, i, e[4], 7, -176418897), i = Ut(i, A, r, n, e[5], 12, 1200080426), n = Ut(n, i, A, r, e[6], 17, -1473231341), r = Ut(r, n, i, A, e[7], 22, -45705983), A = Ut(A, r, n, i, e[8], 7, 1770035416), i = Ut(i, A, r, n, e[9], 12, -1958414417), n = Ut(n, i, A, r, e[10], 17, -42063), r = Ut(r, n, i, A, e[11], 22, -1990404162), A = Ut(A, r, n, i, e[12], 7, 1804603682), i = Ut(i, A, r, n, e[13], 12, -40341101), n = Ut(n, i, A, r, e[14], 17, -1502002290), A = Lt(A, r = Ut(r, n, i, A, e[15], 22, 1236535329), n, i, e[1], 5, -165796510), i = Lt(i, A, r, n, e[6], 9, -1069501632), n = Lt(n, i, A, r, e[11], 14, 643717713), r = Lt(r, n, i, A, e[0], 20, -373897302), A = Lt(A, r, n, i, e[5], 5, -701558691), i = Lt(i, A, r, n, e[10], 9, 38016083), n = Lt(n, i, A, r, e[15], 14, -660478335), r = Lt(r, n, i, A, e[4], 20, -405537848), A = Lt(A, r, n, i, e[9], 5, 568446438), i = Lt(i, A, r, n, e[14], 9, -1019803690), n = Lt(n, i, A, r, e[3], 14, -187363961), r = Lt(r, n, i, A, e[8], 20, 1163531501), A = Lt(A, r, n, i, e[13], 5, -1444681467), i = Lt(i, A, r, n, e[2], 9, -51403784), n = Lt(n, i, A, r, e[7], 14, 1735328473), A = Et(A, r = Lt(r, n, i, A, e[12], 20, -1926607734), n, i, e[5], 4, -378558), i = Et(i, A, r, n, e[8], 11, -2022574463), n = Et(n, i, A, r, e[11], 16, 1839030562), r = Et(r, n, i, A, e[14], 23, -35309556), A = Et(A, r, n, i, e[1], 4, -1530992060), i = Et(i, A, r, n, e[4], 11, 1272893353), n = Et(n, i, A, r, e[7], 16, -155497632), r = Et(r, n, i, A, e[10], 23, -1094730640), A = Et(A, r, n, i, e[13], 4, 681279174), i = Et(i, A, r, n, e[0], 11, -358537222), n = Et(n, i, A, r, e[3], 16, -722521979), r = Et(r, n, i, A, e[6], 23, 76029189), A = Et(A, r, n, i, e[9], 4, -640364487), i = Et(i, A, r, n, e[12], 11, -421815835), n = Et(n, i, A, r, e[15], 16, 530742520), A = xt(A, r = Et(r, n, i, A, e[2], 23, -995338651), n, i, e[0], 6, -198630844), i = xt(i, A, r, n, e[7], 10, 1126891415), n = xt(n, i, A, r, e[14], 15, -1416354905), r = xt(r, n, i, A, e[5], 21, -57434055), A = xt(A, r, n, i, e[12], 6, 1700485571), i = xt(i, A, r, n, e[3], 10, -1894986606), n = xt(n, i, A, r, e[10], 15, -1051523), r = xt(r, n, i, A, e[1], 21, -2054922799), A = xt(A, r, n, i, e[8], 6, 1873313359), i = xt(i, A, r, n, e[15], 10, -30611744), n = xt(n, i, A, r, e[6], 15, -1560198380), r = xt(r, n, i, A, e[13], 21, 1309151649), A = xt(A, r, n, i, e[4], 6, -145523070), i = xt(i, A, r, n, e[11], 10, -1120210379), n = xt(n, i, A, r, e[2], 15, 718787259), r = xt(r, n, i, A, e[9], 21, -343485551), t[0] = kn(A, t[0]), t[1] = kn(r, t[1]), t[2] = kn(n, t[2]), t[3] = kn(i, t[3]);
}
function rl(t, e, A, r, n, i) {
  return e = kn(kn(e, t), kn(r, i)), kn(e << n | e >>> 32 - n, A);
}
function Ut(t, e, A, r, n, i, s) {
  return rl(e & A | ~e & r, t, e, n, i, s);
}
function Lt(t, e, A, r, n, i, s) {
  return rl(e & r | A & ~r, t, e, n, i, s);
}
function Et(t, e, A, r, n, i, s) {
  return rl(e ^ A ^ r, t, e, n, i, s);
}
function xt(t, e, A, r, n, i, s) {
  return rl(A ^ (e | ~r), t, e, n, i, s);
}
function Dh(t) {
  var e, A = t.length, r = [1732584193, -271733879, -1732584194, 271733878];
  for (e = 64; e <= t.length; e += 64) lc(r, W2(t.substring(e - 64, e)));
  t = t.substring(e - 64);
  var n = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
  for (e = 0; e < t.length; e++) n[e >> 2] |= t.charCodeAt(e) << (e % 4 << 3);
  if (n[e >> 2] |= 128 << (e % 4 << 3), e > 55) for (lc(r, n), e = 0; e < 16; e++) n[e] = 0;
  return n[14] = 8 * A, lc(r, n), r;
}
function W2(t) {
  var e, A = [];
  for (e = 0; e < 64; e += 4) A[e >> 2] = t.charCodeAt(e) + (t.charCodeAt(e + 1) << 8) + (t.charCodeAt(e + 2) << 16) + (t.charCodeAt(e + 3) << 24);
  return A;
}
es = le.atob.bind(le), Kc = le.btoa.bind(le);
var af = "0123456789abcdef".split("");
function X2(t) {
  for (var e = "", A = 0; A < 4; A++) e += af[t >> 8 * A + 4 & 15] + af[t >> 8 * A & 15];
  return e;
}
function z2(t) {
  return String.fromCharCode((255 & t) >> 0, (65280 & t) >> 8, (16711680 & t) >> 16, (4278190080 & t) >> 24);
}
function Rc(t) {
  return Dh(t).map(z2).join("");
}
var J2 = function(t) {
  for (var e = 0; e < t.length; e++) t[e] = X2(t[e]);
  return t.join("");
}(Dh("hello")) != "5d41402abc4b2a76b9719d911017c592";
function kn(t, e) {
  if (J2) {
    var A = (65535 & t) + (65535 & e);
    return (t >> 16) + (e >> 16) + (A >> 16) << 16 | 65535 & A;
  }
  return t + e & 4294967295;
}
/**
 * @license
 * FPDF is released under a permissive license: there is no usage restriction.
 * You may embed it freely in your application (commercial or not), with or
 * without modifications.
 *
 * Reference: http://www.fpdf.org/en/script/script37.php
 */
function Gc(t, e) {
  var A, r, n, i;
  if (t !== A) {
    for (var s = (n = t, i = 1 + (256 / t.length >> 0), new Array(i + 1).join(n)), o = [], c = 0; c < 256; c++) o[c] = c;
    var h = 0;
    for (c = 0; c < 256; c++) {
      var p = o[c];
      h = (h + p + s.charCodeAt(c)) % 256, o[c] = o[h], o[h] = p;
    }
    A = t, r = o;
  } else o = r;
  var d = e.length, w = 0, g = 0, Q = "";
  for (c = 0; c < d; c++) g = (g + (p = o[w = (w + 1) % 256])) % 256, o[w] = o[g], o[g] = p, s = o[(o[w] + o[g]) % 256], Q += String.fromCharCode(e.charCodeAt(c) ^ s);
  return Q;
}
/**
 * @license
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 * Author: Owen Leong (@owenl131)
 * Date: 15 Oct 2020
 * References:
 * https://www.cs.cmu.edu/~dst/Adobe/Gallery/anon21jul01-pdf-encryption.txt
 * https://github.com/foliojs/pdfkit/blob/master/lib/security.js
 * http://www.fpdf.org/en/script/script37.php
 */
var sf = { print: 4, modify: 8, copy: 16, "annot-forms": 32 };
function Zi(t, e, A, r) {
  this.v = 1, this.r = 2;
  var n = 192;
  t.forEach(function(o) {
    if (sf.perm !== void 0) throw new Error("Invalid permission: " + o);
    n += sf[o];
  }), this.padding = "(¿N^NuŠAd\0NVÿú\b..\0¶Ðh>€/\f©þdSiz";
  var i = (e + this.padding).substr(0, 32), s = (A + this.padding).substr(0, 32);
  this.O = this.processOwnerPassword(i, s), this.P = -(1 + (255 ^ n)), this.encryptionKey = Rc(i + this.O + this.lsbFirstWord(this.P) + this.hexToBytes(r)).substr(0, 5), this.U = Gc(this.encryptionKey, this.padding);
}
function Aa(t) {
  if (/[^\u0000-\u00ff]/.test(t)) throw new Error("Invalid PDF Name Object: " + t + ", Only accept ASCII characters.");
  for (var e = "", A = t.length, r = 0; r < A; r++) {
    var n = t.charCodeAt(r);
    n < 33 || n === 35 || n === 37 || n === 40 || n === 41 || n === 47 || n === 60 || n === 62 || n === 91 || n === 93 || n === 123 || n === 125 || n > 126 ? e += "#" + ("0" + n.toString(16)).slice(-2) : e += t[r];
  }
  return e;
}
function of(t) {
  if (Se(t) !== "object") throw new Error("Invalid Context passed to initialize PubSub (jsPDF-module)");
  var e = {};
  this.subscribe = function(A, r, n) {
    if (n = n || !1, typeof A != "string" || typeof r != "function" || typeof n != "boolean") throw new Error("Invalid arguments passed to PubSub.subscribe (jsPDF-module)");
    e.hasOwnProperty(A) || (e[A] = {});
    var i = Math.random().toString(35);
    return e[A][i] = [r, !!n], i;
  }, this.unsubscribe = function(A) {
    for (var r in e) if (e[r][A]) return delete e[r][A], Object.keys(e[r]).length === 0 && delete e[r], !0;
    return !1;
  }, this.publish = function(A) {
    if (e.hasOwnProperty(A)) {
      var r = Array.prototype.slice.call(arguments, 1), n = [];
      for (var i in e[A]) {
        var s = e[A][i];
        try {
          s[0].apply(t, r);
        } catch (o) {
          le.console && _e.error("jsPDF PubSub Error", o.message, o);
        }
        s[1] && n.push(i);
      }
      n.length && n.forEach(this.unsubscribe);
    }
  }, this.getTopics = function() {
    return e;
  };
}
function Go(t) {
  if (!(this instanceof Go)) return new Go(t);
  var e = "opacity,stroke-opacity".split(",");
  for (var A in t) t.hasOwnProperty(A) && e.indexOf(A) >= 0 && (this[A] = t[A]);
  this.id = "", this.objectNumber = -1;
}
function Nh(t, e) {
  this.gState = t, this.matrix = e, this.id = "", this.objectNumber = -1;
}
function ai(t, e, A, r, n) {
  if (!(this instanceof ai)) return new ai(t, e, A, r, n);
  this.type = t === "axial" ? 2 : 3, this.coords = e, this.colors = A, Nh.call(this, r, n);
}
function ra(t, e, A, r, n) {
  if (!(this instanceof ra)) return new ra(t, e, A, r, n);
  this.boundingBox = t, this.xStep = e, this.yStep = A, this.stream = "", this.cloneIndex = 0, Nh.call(this, r, n);
}
function ae(t) {
  var e, A = typeof arguments[0] == "string" ? arguments[0] : "p", r = arguments[1], n = arguments[2], i = arguments[3], s = [], o = 1, c = 16, h = "S", p = null;
  Se(t = t || {}) === "object" && (A = t.orientation, r = t.unit || r, n = t.format || n, i = t.compress || t.compressPdf || i, (p = t.encryption || null) !== null && (p.userPassword = p.userPassword || "", p.ownerPassword = p.ownerPassword || "", p.userPermissions = p.userPermissions || []), o = typeof t.userUnit == "number" ? Math.abs(t.userUnit) : 1, t.precision !== void 0 && (e = t.precision), t.floatPrecision !== void 0 && (c = t.floatPrecision), h = t.defaultPathOperation || "S"), s = t.filters || (i === !0 ? ["FlateEncode"] : s), r = r || "mm", A = ("" + (A || "P")).toLowerCase();
  var d = t.putOnlyUsedFonts || !1, w = {}, g = { internal: {}, __private__: {} };
  g.__private__.PubSub = of;
  var Q = "1.3", y = g.__private__.getPdfVersion = function() {
    return Q;
  };
  g.__private__.setPdfVersion = function(u) {
    Q = u;
  };
  var N = { a0: [2383.94, 3370.39], a1: [1683.78, 2383.94], a2: [1190.55, 1683.78], a3: [841.89, 1190.55], a4: [595.28, 841.89], a5: [419.53, 595.28], a6: [297.64, 419.53], a7: [209.76, 297.64], a8: [147.4, 209.76], a9: [104.88, 147.4], a10: [73.7, 104.88], b0: [2834.65, 4008.19], b1: [2004.09, 2834.65], b2: [1417.32, 2004.09], b3: [1000.63, 1417.32], b4: [708.66, 1000.63], b5: [498.9, 708.66], b6: [354.33, 498.9], b7: [249.45, 354.33], b8: [175.75, 249.45], b9: [124.72, 175.75], b10: [87.87, 124.72], c0: [2599.37, 3676.54], c1: [1836.85, 2599.37], c2: [1298.27, 1836.85], c3: [918.43, 1298.27], c4: [649.13, 918.43], c5: [459.21, 649.13], c6: [323.15, 459.21], c7: [229.61, 323.15], c8: [161.57, 229.61], c9: [113.39, 161.57], c10: [79.37, 113.39], dl: [311.81, 623.62], letter: [612, 792], "government-letter": [576, 756], legal: [612, 1008], "junior-legal": [576, 360], ledger: [1224, 792], tabloid: [792, 1224], "credit-card": [153, 243] };
  g.__private__.getPageFormats = function() {
    return N;
  };
  var v = g.__private__.getPageFormat = function(u) {
    return N[u];
  };
  n = n || "a4";
  var U = { COMPAT: "compat", ADVANCED: "advanced" }, K = U.COMPAT;
  function j() {
    this.saveGraphicsState(), D(new ie(VA, 0, 0, -VA, 0, pn() * VA).toString() + " cm"), this.setFontSize(this.getFontSize() / VA), h = "n", K = U.ADVANCED;
  }
  function q() {
    this.restoreGraphicsState(), h = "S", K = U.COMPAT;
  }
  var V = g.__private__.combineFontStyleAndFontWeight = function(u, C) {
    if (u == "bold" && C == "normal" || u == "bold" && C == 400 || u == "normal" && C == "italic" || u == "bold" && C == "italic") throw new Error("Invalid Combination of fontweight and fontstyle");
    return C && (u = C == 400 || C === "normal" ? u === "italic" ? "italic" : "normal" : C != 700 && C !== "bold" || u !== "normal" ? (C == 700 ? "bold" : C) + "" + u : "bold"), u;
  };
  g.advancedAPI = function(u) {
    var C = K === U.COMPAT;
    return C && j.call(this), typeof u != "function" || (u(this), C && q.call(this)), this;
  }, g.compatAPI = function(u) {
    var C = K === U.ADVANCED;
    return C && q.call(this), typeof u != "function" || (u(this), C && j.call(this)), this;
  }, g.isAdvancedAPI = function() {
    return K === U.ADVANCED;
  };
  var z, H = function(u) {
    if (K !== U.ADVANCED) throw new Error(u + " is only available in 'advanced' API mode. You need to call advancedAPI() first.");
  }, G = g.roundToPrecision = g.__private__.roundToPrecision = function(u, C) {
    var O = e || C;
    if (isNaN(u) || isNaN(O)) throw new Error("Invalid argument passed to jsPDF.roundToPrecision");
    return u.toFixed(O).replace(/0+$/, "");
  };
  z = g.hpf = g.__private__.hpf = typeof c == "number" ? function(u) {
    if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.hpf");
    return G(u, c);
  } : c === "smart" ? function(u) {
    if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.hpf");
    return G(u, u > -1 && u < 1 ? 16 : 5);
  } : function(u) {
    if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.hpf");
    return G(u, 16);
  };
  var tA = g.f2 = g.__private__.f2 = function(u) {
    if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.f2");
    return G(u, 2);
  }, x = g.__private__.f3 = function(u) {
    if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.f3");
    return G(u, 3);
  }, F = g.scale = g.__private__.scale = function(u) {
    if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.scale");
    return K === U.COMPAT ? u * VA : K === U.ADVANCED ? u : void 0;
  }, _ = function(u) {
    return K === U.COMPAT ? pn() - u : K === U.ADVANCED ? u : void 0;
  }, P = function(u) {
    return F(_(u));
  };
  g.__private__.setPrecision = g.setPrecision = function(u) {
    typeof parseInt(u, 10) == "number" && (e = parseInt(u, 10));
  };
  var lA, oA = "00000000000000000000000000000000", iA = g.__private__.getFileId = function() {
    return oA;
  }, k = g.__private__.setFileId = function(u) {
    return oA = u !== void 0 && /^[a-fA-F0-9]{32}$/.test(u) ? u.toUpperCase() : oA.split("").map(function() {
      return "ABCDEF0123456789".charAt(Math.floor(16 * Math.random()));
    }).join(""), p !== null && (Qt = new Zi(p.userPermissions, p.userPassword, p.ownerPassword, oA)), oA;
  };
  g.setFileId = function(u) {
    return k(u), this;
  }, g.getFileId = function() {
    return iA();
  };
  var W = g.__private__.convertDateToPDFDate = function(u) {
    var C = u.getTimezoneOffset(), O = C < 0 ? "+" : "-", Y = Math.floor(Math.abs(C / 60)), cA = Math.abs(C % 60), CA = [O, R(Y), "'", R(cA), "'"].join("");
    return ["D:", u.getFullYear(), R(u.getMonth() + 1), R(u.getDate()), R(u.getHours()), R(u.getMinutes()), R(u.getSeconds()), CA].join("");
  }, rA = g.__private__.convertPDFDateToDate = function(u) {
    var C = parseInt(u.substr(2, 4), 10), O = parseInt(u.substr(6, 2), 10) - 1, Y = parseInt(u.substr(8, 2), 10), cA = parseInt(u.substr(10, 2), 10), CA = parseInt(u.substr(12, 2), 10), kA = parseInt(u.substr(14, 2), 10);
    return new Date(C, O, Y, cA, CA, kA, 0);
  }, OA = g.__private__.setCreationDate = function(u) {
    var C;
    if (u === void 0 && (u = /* @__PURE__ */ new Date()), u instanceof Date) C = W(u);
    else {
      if (!/^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\+0[0-9]|\+1[0-4]|-0[0-9]|-1[0-1])'(0[0-9]|[1-5][0-9])'?$/.test(u)) throw new Error("Invalid argument passed to jsPDF.setCreationDate");
      C = u;
    }
    return lA = C;
  }, L = g.__private__.getCreationDate = function(u) {
    var C = lA;
    return u === "jsDate" && (C = rA(lA)), C;
  };
  g.setCreationDate = function(u) {
    return OA(u), this;
  }, g.getCreationDate = function(u) {
    return L(u);
  };
  var M, R = g.__private__.padd2 = function(u) {
    return ("0" + parseInt(u)).slice(-2);
  }, J = g.__private__.padd2Hex = function(u) {
    return ("00" + (u = u.toString())).substr(u.length);
  }, eA = 0, uA = [], dA = [], gA = 0, MA = [], NA = [], RA = !1, GA = dA, ee = function() {
    eA = 0, gA = 0, dA = [], uA = [], MA = [], Yr = it(), gr = it();
  };
  g.__private__.setCustomOutputDestination = function(u) {
    RA = !0, GA = u;
  };
  var wA = function(u) {
    RA || (GA = u);
  };
  g.__private__.resetCustomOutputDestination = function() {
    RA = !1, GA = dA;
  };
  var D = g.__private__.out = function(u) {
    return u = u.toString(), gA += u.length + 1, GA.push(u), GA;
  }, $ = g.__private__.write = function(u) {
    return D(arguments.length === 1 ? u.toString() : Array.prototype.join.call(arguments, " "));
  }, BA = g.__private__.getArrayBuffer = function(u) {
    for (var C = u.length, O = new ArrayBuffer(C), Y = new Uint8Array(O); C--; ) Y[C] = u.charCodeAt(C);
    return O;
  }, sA = [["Helvetica", "helvetica", "normal", "WinAnsiEncoding"], ["Helvetica-Bold", "helvetica", "bold", "WinAnsiEncoding"], ["Helvetica-Oblique", "helvetica", "italic", "WinAnsiEncoding"], ["Helvetica-BoldOblique", "helvetica", "bolditalic", "WinAnsiEncoding"], ["Courier", "courier", "normal", "WinAnsiEncoding"], ["Courier-Bold", "courier", "bold", "WinAnsiEncoding"], ["Courier-Oblique", "courier", "italic", "WinAnsiEncoding"], ["Courier-BoldOblique", "courier", "bolditalic", "WinAnsiEncoding"], ["Times-Roman", "times", "normal", "WinAnsiEncoding"], ["Times-Bold", "times", "bold", "WinAnsiEncoding"], ["Times-Italic", "times", "italic", "WinAnsiEncoding"], ["Times-BoldItalic", "times", "bolditalic", "WinAnsiEncoding"], ["ZapfDingbats", "zapfdingbats", "normal", null], ["Symbol", "symbol", "normal", null]];
  g.__private__.getStandardFonts = function() {
    return sA;
  };
  var pA = t.fontSize || 16;
  g.__private__.setFontSize = g.setFontSize = function(u) {
    return pA = K === U.ADVANCED ? u / VA : u, this;
  };
  var FA, UA = g.__private__.getFontSize = g.getFontSize = function() {
    return K === U.COMPAT ? pA : pA * VA;
  }, SA = t.R2L || !1;
  g.__private__.setR2L = g.setR2L = function(u) {
    return SA = u, this;
  }, g.__private__.getR2L = g.getR2L = function() {
    return SA;
  };
  var QA, yA = g.__private__.setZoomMode = function(u) {
    var C = [void 0, null, "fullwidth", "fullheight", "fullpage", "original"];
    if (/^(?:\d+\.\d*|\d*\.\d+|\d+)%$/.test(u)) FA = u;
    else if (isNaN(u)) {
      if (C.indexOf(u) === -1) throw new Error('zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. "' + u + '" is not recognized.');
      FA = u;
    } else FA = parseInt(u, 10);
  };
  g.__private__.getZoomMode = function() {
    return FA;
  };
  var PA, ZA = g.__private__.setPageMode = function(u) {
    if ([void 0, null, "UseNone", "UseOutlines", "UseThumbs", "FullScreen"].indexOf(u) == -1) throw new Error('Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. "' + u + '" is not recognized.');
    QA = u;
  };
  g.__private__.getPageMode = function() {
    return QA;
  };
  var ue = g.__private__.setLayoutMode = function(u) {
    if ([void 0, null, "continuous", "single", "twoleft", "tworight", "two"].indexOf(u) == -1) throw new Error('Layout mode must be one of continuous, single, twoleft, tworight. "' + u + '" is not recognized.');
    PA = u;
  };
  g.__private__.getLayoutMode = function() {
    return PA;
  }, g.__private__.setDisplayMode = g.setDisplayMode = function(u, C, O) {
    return yA(u), ue(C), ZA(O), this;
  };
  var YA = { title: "", subject: "", author: "", keywords: "", creator: "" };
  g.__private__.getDocumentProperty = function(u) {
    if (Object.keys(YA).indexOf(u) === -1) throw new Error("Invalid argument passed to jsPDF.getDocumentProperty");
    return YA[u];
  }, g.__private__.getDocumentProperties = function() {
    return YA;
  }, g.__private__.setDocumentProperties = g.setProperties = g.setDocumentProperties = function(u) {
    for (var C in YA) YA.hasOwnProperty(C) && u[C] && (YA[C] = u[C]);
    return this;
  }, g.__private__.setDocumentProperty = function(u, C) {
    if (Object.keys(YA).indexOf(u) === -1) throw new Error("Invalid arguments passed to jsPDF.setDocumentProperty");
    return YA[u] = C;
  };
  var ne, VA, Ve, mA, TA, IA = {}, Ae = {}, me = [], se = {}, He = {}, we = {}, Oe = {}, ze = null, ve = 0, ce = [], Ue = new of(g), jn = t.hotfixes || [], wt = {}, Dr = {}, Nr = [], ie = function u(C, O, Y, cA, CA, kA) {
    if (!(this instanceof u)) return new u(C, O, Y, cA, CA, kA);
    isNaN(C) && (C = 1), isNaN(O) && (O = 0), isNaN(Y) && (Y = 0), isNaN(cA) && (cA = 1), isNaN(CA) && (CA = 0), isNaN(kA) && (kA = 0), this._matrix = [C, O, Y, cA, CA, kA];
  };
  Object.defineProperty(ie.prototype, "sx", { get: function() {
    return this._matrix[0];
  }, set: function(u) {
    this._matrix[0] = u;
  } }), Object.defineProperty(ie.prototype, "shy", { get: function() {
    return this._matrix[1];
  }, set: function(u) {
    this._matrix[1] = u;
  } }), Object.defineProperty(ie.prototype, "shx", { get: function() {
    return this._matrix[2];
  }, set: function(u) {
    this._matrix[2] = u;
  } }), Object.defineProperty(ie.prototype, "sy", { get: function() {
    return this._matrix[3];
  }, set: function(u) {
    this._matrix[3] = u;
  } }), Object.defineProperty(ie.prototype, "tx", { get: function() {
    return this._matrix[4];
  }, set: function(u) {
    this._matrix[4] = u;
  } }), Object.defineProperty(ie.prototype, "ty", { get: function() {
    return this._matrix[5];
  }, set: function(u) {
    this._matrix[5] = u;
  } }), Object.defineProperty(ie.prototype, "a", { get: function() {
    return this._matrix[0];
  }, set: function(u) {
    this._matrix[0] = u;
  } }), Object.defineProperty(ie.prototype, "b", { get: function() {
    return this._matrix[1];
  }, set: function(u) {
    this._matrix[1] = u;
  } }), Object.defineProperty(ie.prototype, "c", { get: function() {
    return this._matrix[2];
  }, set: function(u) {
    this._matrix[2] = u;
  } }), Object.defineProperty(ie.prototype, "d", { get: function() {
    return this._matrix[3];
  }, set: function(u) {
    this._matrix[3] = u;
  } }), Object.defineProperty(ie.prototype, "e", { get: function() {
    return this._matrix[4];
  }, set: function(u) {
    this._matrix[4] = u;
  } }), Object.defineProperty(ie.prototype, "f", { get: function() {
    return this._matrix[5];
  }, set: function(u) {
    this._matrix[5] = u;
  } }), Object.defineProperty(ie.prototype, "rotation", { get: function() {
    return Math.atan2(this.shx, this.sx);
  } }), Object.defineProperty(ie.prototype, "scaleX", { get: function() {
    return this.decompose().scale.sx;
  } }), Object.defineProperty(ie.prototype, "scaleY", { get: function() {
    return this.decompose().scale.sy;
  } }), Object.defineProperty(ie.prototype, "isIdentity", { get: function() {
    return this.sx === 1 && this.shy === 0 && this.shx === 0 && this.sy === 1 && this.tx === 0 && this.ty === 0;
  } }), ie.prototype.join = function(u) {
    return [this.sx, this.shy, this.shx, this.sy, this.tx, this.ty].map(z).join(u);
  }, ie.prototype.multiply = function(u) {
    var C = u.sx * this.sx + u.shy * this.shx, O = u.sx * this.shy + u.shy * this.sy, Y = u.shx * this.sx + u.sy * this.shx, cA = u.shx * this.shy + u.sy * this.sy, CA = u.tx * this.sx + u.ty * this.shx + this.tx, kA = u.tx * this.shy + u.ty * this.sy + this.ty;
    return new ie(C, O, Y, cA, CA, kA);
  }, ie.prototype.decompose = function() {
    var u = this.sx, C = this.shy, O = this.shx, Y = this.sy, cA = this.tx, CA = this.ty, kA = Math.sqrt(u * u + C * C), XA = (u /= kA) * O + (C /= kA) * Y;
    O -= u * XA, Y -= C * XA;
    var te = Math.sqrt(O * O + Y * Y);
    return XA /= te, u * (Y /= te) < C * (O /= te) && (u = -u, C = -C, XA = -XA, kA = -kA), { scale: new ie(kA, 0, 0, te, 0, 0), translate: new ie(1, 0, 0, 1, cA, CA), rotate: new ie(u, C, -C, u, 0, 0), skew: new ie(1, 0, XA, 1, 0, 0) };
  }, ie.prototype.toString = function(u) {
    return this.join(" ");
  }, ie.prototype.inversed = function() {
    var u = this.sx, C = this.shy, O = this.shx, Y = this.sy, cA = this.tx, CA = this.ty, kA = 1 / (u * Y - C * O), XA = Y * kA, te = -C * kA, pe = -O * kA, de = u * kA;
    return new ie(XA, te, pe, de, -XA * cA - pe * CA, -te * cA - de * CA);
  }, ie.prototype.applyToPoint = function(u) {
    var C = u.x * this.sx + u.y * this.shx + this.tx, O = u.x * this.shy + u.y * this.sy + this.ty;
    return new Ei(C, O);
  }, ie.prototype.applyToRectangle = function(u) {
    var C = this.applyToPoint(u), O = this.applyToPoint(new Ei(u.x + u.w, u.y + u.h));
    return new ya(C.x, C.y, O.x - C.x, O.y - C.y);
  }, ie.prototype.clone = function() {
    var u = this.sx, C = this.shy, O = this.shx, Y = this.sy, cA = this.tx, CA = this.ty;
    return new ie(u, C, O, Y, cA, CA);
  }, g.Matrix = ie;
  var dr = g.matrixMult = function(u, C) {
    return C.multiply(u);
  }, kr = new ie(1, 0, 0, 1, 0, 0);
  g.unitMatrix = g.identityMatrix = kr;
  var Mt = function(u, C) {
    if (!He[u]) {
      var O = (C instanceof ai ? "Sh" : "P") + (Object.keys(se).length + 1).toString(10);
      C.id = O, He[u] = O, se[O] = C, Ue.publish("addPattern", C);
    }
  };
  g.ShadingPattern = ai, g.TilingPattern = ra, g.addShadingPattern = function(u, C) {
    return H("addShadingPattern()"), Mt(u, C), this;
  }, g.beginTilingPattern = function(u) {
    H("beginTilingPattern()"), Ss(u.boundingBox[0], u.boundingBox[1], u.boundingBox[2] - u.boundingBox[0], u.boundingBox[3] - u.boundingBox[1], u.matrix);
  }, g.endTilingPattern = function(u, C) {
    H("endTilingPattern()"), C.stream = NA[M].join(`
`), Mt(u, C), Ue.publish("endTilingPattern", C), Nr.pop().restore();
  };
  var ct = g.__private__.newObject = function() {
    var u = it();
    return qt(u, !0), u;
  }, it = g.__private__.newObjectDeferred = function() {
    return eA++, uA[eA] = function() {
      return gA;
    }, eA;
  }, qt = function(u, C) {
    return C = typeof C == "boolean" && C, uA[u] = gA, C && D(u + " 0 obj"), u;
  }, gi = g.__private__.newAdditionalObject = function() {
    var u = { objId: it(), content: "" };
    return MA.push(u), u;
  }, Yr = it(), gr = it(), pr = g.__private__.decodeColorString = function(u) {
    var C = u.split(" ");
    if (C.length !== 2 || C[1] !== "g" && C[1] !== "G")
      C.length === 5 && (C[4] === "k" || C[4] === "K") && (C = [(1 - C[0]) * (1 - C[3]), (1 - C[1]) * (1 - C[3]), (1 - C[2]) * (1 - C[3]), "r"]);
    else {
      var O = parseFloat(C[0]);
      C = [O, O, O, "r"];
    }
    for (var Y = "#", cA = 0; cA < 3; cA++) Y += ("0" + Math.floor(255 * parseFloat(C[cA])).toString(16)).slice(-2);
    return Y;
  }, Br = g.__private__.encodeColorString = function(u) {
    var C;
    typeof u == "string" && (u = { ch1: u });
    var O = u.ch1, Y = u.ch2, cA = u.ch3, CA = u.ch4, kA = u.pdfColorType === "draw" ? ["G", "RG", "K"] : ["g", "rg", "k"];
    if (typeof O == "string" && O.charAt(0) !== "#") {
      var XA = new Hh(O);
      if (XA.ok) O = XA.toHex();
      else if (!/^\d*\.?\d*$/.test(O)) throw new Error('Invalid color "' + O + '" passed to jsPDF.encodeColorString.');
    }
    if (typeof O == "string" && /^#[0-9A-Fa-f]{3}$/.test(O) && (O = "#" + O[1] + O[1] + O[2] + O[2] + O[3] + O[3]), typeof O == "string" && /^#[0-9A-Fa-f]{6}$/.test(O)) {
      var te = parseInt(O.substr(1), 16);
      O = te >> 16 & 255, Y = te >> 8 & 255, cA = 255 & te;
    }
    if (Y === void 0 || CA === void 0 && O === Y && Y === cA) if (typeof O == "string") C = O + " " + kA[0];
    else switch (u.precision) {
      case 2:
        C = tA(O / 255) + " " + kA[0];
        break;
      case 3:
      default:
        C = x(O / 255) + " " + kA[0];
    }
    else if (CA === void 0 || Se(CA) === "object") {
      if (CA && !isNaN(CA.a) && CA.a === 0) return C = ["1.", "1.", "1.", kA[1]].join(" ");
      if (typeof O == "string") C = [O, Y, cA, kA[1]].join(" ");
      else switch (u.precision) {
        case 2:
          C = [tA(O / 255), tA(Y / 255), tA(cA / 255), kA[1]].join(" ");
          break;
        default:
        case 3:
          C = [x(O / 255), x(Y / 255), x(cA / 255), kA[1]].join(" ");
      }
    } else if (typeof O == "string") C = [O, Y, cA, CA, kA[2]].join(" ");
    else switch (u.precision) {
      case 2:
        C = [tA(O), tA(Y), tA(cA), tA(CA), kA[2]].join(" ");
        break;
      case 3:
      default:
        C = [x(O), x(Y), x(cA), x(CA), kA[2]].join(" ");
    }
    return C;
  }, _r = g.__private__.getFilters = function() {
    return s;
  }, Ar = g.__private__.putStream = function(u) {
    var C = (u = u || {}).data || "", O = u.filters || _r(), Y = u.alreadyAppliedFilters || [], cA = u.addLength1 || !1, CA = C.length, kA = u.objectId, XA = function(bt) {
      return bt;
    };
    if (p !== null && kA === void 0) throw new Error("ObjectId must be passed to putStream for file encryption");
    p !== null && (XA = Qt.encryptor(kA, 0));
    var te = {};
    O === !0 && (O = ["FlateEncode"]);
    var pe = u.additionalKeyValues || [], de = (te = ae.API.processDataByFilters !== void 0 ? ae.API.processDataByFilters(C, O) : { data: C, reverseChain: [] }).reverseChain + (Array.isArray(Y) ? Y.join(" ") : Y.toString());
    if (te.data.length !== 0 && (pe.push({ key: "Length", value: te.data.length }), cA === !0 && pe.push({ key: "Length1", value: CA })), de.length != 0) if (de.split("/").length - 1 == 1) pe.push({ key: "Filter", value: de });
    else {
      pe.push({ key: "Filter", value: "[" + de + "]" });
      for (var Qe = 0; Qe < pe.length; Qe += 1) if (pe[Qe].key === "DecodeParms") {
        for (var je = [], qe = 0; qe < te.reverseChain.split("/").length - 1; qe += 1) je.push("null");
        je.push(pe[Qe].value), pe[Qe].value = "[" + je.join(" ") + "]";
      }
    }
    D("<<");
    for (var at = 0; at < pe.length; at++) D("/" + pe[at].key + " " + pe[at].value);
    D(">>"), te.data.length !== 0 && (D("stream"), D(XA(te.data)), D("endstream"));
  }, Tr = g.__private__.putPage = function(u) {
    var C = u.number, O = u.data, Y = u.objId, cA = u.contentsObjId;
    qt(Y, !0), D("<</Type /Page"), D("/Parent " + u.rootDictionaryObjId + " 0 R"), D("/Resources " + u.resourceDictionaryObjId + " 0 R"), D("/MediaBox [" + parseFloat(z(u.mediaBox.bottomLeftX)) + " " + parseFloat(z(u.mediaBox.bottomLeftY)) + " " + z(u.mediaBox.topRightX) + " " + z(u.mediaBox.topRightY) + "]"), u.cropBox !== null && D("/CropBox [" + z(u.cropBox.bottomLeftX) + " " + z(u.cropBox.bottomLeftY) + " " + z(u.cropBox.topRightX) + " " + z(u.cropBox.topRightY) + "]"), u.bleedBox !== null && D("/BleedBox [" + z(u.bleedBox.bottomLeftX) + " " + z(u.bleedBox.bottomLeftY) + " " + z(u.bleedBox.topRightX) + " " + z(u.bleedBox.topRightY) + "]"), u.trimBox !== null && D("/TrimBox [" + z(u.trimBox.bottomLeftX) + " " + z(u.trimBox.bottomLeftY) + " " + z(u.trimBox.topRightX) + " " + z(u.trimBox.topRightY) + "]"), u.artBox !== null && D("/ArtBox [" + z(u.artBox.bottomLeftX) + " " + z(u.artBox.bottomLeftY) + " " + z(u.artBox.topRightX) + " " + z(u.artBox.topRightY) + "]"), typeof u.userUnit == "number" && u.userUnit !== 1 && D("/UserUnit " + u.userUnit), Ue.publish("putPage", { objId: Y, pageContext: ce[C], pageNumber: C, page: O }), D("/Contents " + cA + " 0 R"), D(">>"), D("endobj");
    var CA = O.join(`
`);
    return K === U.ADVANCED && (CA += `
Q`), qt(cA, !0), Ar({ data: CA, filters: _r(), objectId: cA }), D("endobj"), Y;
  }, qn = g.__private__.putPages = function() {
    var u, C, O = [];
    for (u = 1; u <= ve; u++) ce[u].objId = it(), ce[u].contentsObjId = it();
    for (u = 1; u <= ve; u++) O.push(Tr({ number: u, data: NA[u], objId: ce[u].objId, contentsObjId: ce[u].contentsObjId, mediaBox: ce[u].mediaBox, cropBox: ce[u].cropBox, bleedBox: ce[u].bleedBox, trimBox: ce[u].trimBox, artBox: ce[u].artBox, userUnit: ce[u].userUnit, rootDictionaryObjId: Yr, resourceDictionaryObjId: gr }));
    qt(Yr, !0), D("<</Type /Pages");
    var Y = "/Kids [";
    for (C = 0; C < ve; C++) Y += O[C] + " 0 R ";
    D(Y + "]"), D("/Count " + ve), D(">>"), D("endobj"), Ue.publish("postPutPages");
  }, pi = function(u) {
    Ue.publish("putFont", { font: u, out: D, newObject: ct, putStream: Ar }), u.isAlreadyPutted !== !0 && (u.objectNumber = ct(), D("<<"), D("/Type /Font"), D("/BaseFont /" + Aa(u.postScriptName)), D("/Subtype /Type1"), typeof u.encoding == "string" && D("/Encoding /" + u.encoding), D("/FirstChar 32"), D("/LastChar 255"), D(">>"), D("endobj"));
  }, Bi = function() {
    for (var u in IA) IA.hasOwnProperty(u) && (d === !1 || d === !0 && w.hasOwnProperty(u)) && pi(IA[u]);
  }, wi = function(u) {
    u.objectNumber = ct();
    var C = [];
    C.push({ key: "Type", value: "/XObject" }), C.push({ key: "Subtype", value: "/Form" }), C.push({ key: "BBox", value: "[" + [z(u.x), z(u.y), z(u.x + u.width), z(u.y + u.height)].join(" ") + "]" }), C.push({ key: "Matrix", value: "[" + u.matrix.toString() + "]" });
    var O = u.pages[1].join(`
`);
    Ar({ data: O, additionalKeyValues: C, objectId: u.objectNumber }), D("endobj");
  }, vi = function() {
    for (var u in wt) wt.hasOwnProperty(u) && wi(wt[u]);
  }, hs = function(u, C) {
    var O, Y = [], cA = 1 / (C - 1);
    for (O = 0; O < 1; O += cA) Y.push(O);
    if (Y.push(1), u[0].offset != 0) {
      var CA = { offset: 0, color: u[0].color };
      u.unshift(CA);
    }
    if (u[u.length - 1].offset != 1) {
      var kA = { offset: 1, color: u[u.length - 1].color };
      u.push(kA);
    }
    for (var XA = "", te = 0, pe = 0; pe < Y.length; pe++) {
      for (O = Y[pe]; O > u[te + 1].offset; ) te++;
      var de = u[te].offset, Qe = (O - de) / (u[te + 1].offset - de), je = u[te].color, qe = u[te + 1].color;
      XA += J(Math.round((1 - Qe) * je[0] + Qe * qe[0]).toString(16)) + J(Math.round((1 - Qe) * je[1] + Qe * qe[1]).toString(16)) + J(Math.round((1 - Qe) * je[2] + Qe * qe[2]).toString(16));
    }
    return XA.trim();
  }, dl = function(u, C) {
    C || (C = 21);
    var O = ct(), Y = hs(u.colors, C), cA = [];
    cA.push({ key: "FunctionType", value: "0" }), cA.push({ key: "Domain", value: "[0.0 1.0]" }), cA.push({ key: "Size", value: "[" + C + "]" }), cA.push({ key: "BitsPerSample", value: "8" }), cA.push({ key: "Range", value: "[0.0 1.0 0.0 1.0 0.0 1.0]" }), cA.push({ key: "Decode", value: "[0.0 1.0 0.0 1.0 0.0 1.0]" }), Ar({ data: Y, additionalKeyValues: cA, alreadyAppliedFilters: ["/ASCIIHexDecode"], objectId: O }), D("endobj"), u.objectNumber = ct(), D("<< /ShadingType " + u.type), D("/ColorSpace /DeviceRGB");
    var CA = "/Coords [" + z(parseFloat(u.coords[0])) + " " + z(parseFloat(u.coords[1])) + " ";
    u.type === 2 ? CA += z(parseFloat(u.coords[2])) + " " + z(parseFloat(u.coords[3])) : CA += z(parseFloat(u.coords[2])) + " " + z(parseFloat(u.coords[3])) + " " + z(parseFloat(u.coords[4])) + " " + z(parseFloat(u.coords[5])), D(CA += "]"), u.matrix && D("/Matrix [" + u.matrix.toString() + "]"), D("/Function " + O + " 0 R"), D("/Extend [true true]"), D(">>"), D("endobj");
  }, gl = function(u, C) {
    var O = it(), Y = ct();
    C.push({ resourcesOid: O, objectOid: Y }), u.objectNumber = Y;
    var cA = [];
    cA.push({ key: "Type", value: "/Pattern" }), cA.push({ key: "PatternType", value: "1" }), cA.push({ key: "PaintType", value: "1" }), cA.push({ key: "TilingType", value: "1" }), cA.push({ key: "BBox", value: "[" + u.boundingBox.map(z).join(" ") + "]" }), cA.push({ key: "XStep", value: z(u.xStep) }), cA.push({ key: "YStep", value: z(u.yStep) }), cA.push({ key: "Resources", value: O + " 0 R" }), u.matrix && cA.push({ key: "Matrix", value: "[" + u.matrix.toString() + "]" }), Ar({ data: u.stream, additionalKeyValues: cA, objectId: u.objectNumber }), D("endobj");
  }, mi = function(u) {
    var C;
    for (C in se) se.hasOwnProperty(C) && (se[C] instanceof ai ? dl(se[C]) : se[C] instanceof ra && gl(se[C], u));
  }, ds = function(u) {
    for (var C in u.objectNumber = ct(), D("<<"), u) switch (C) {
      case "opacity":
        D("/ca " + tA(u[C]));
        break;
      case "stroke-opacity":
        D("/CA " + tA(u[C]));
    }
    D(">>"), D("endobj");
  }, pl = function() {
    var u;
    for (u in we) we.hasOwnProperty(u) && ds(we[u]);
  }, fa = function() {
    for (var u in D("/XObject <<"), wt) wt.hasOwnProperty(u) && wt[u].objectNumber >= 0 && D("/" + u + " " + wt[u].objectNumber + " 0 R");
    Ue.publish("putXobjectDict"), D(">>");
  }, Bl = function() {
    Qt.oid = ct(), D("<<"), D("/Filter /Standard"), D("/V " + Qt.v), D("/R " + Qt.r), D("/U <" + Qt.toHexString(Qt.U) + ">"), D("/O <" + Qt.toHexString(Qt.O) + ">"), D("/P " + Qt.P), D(">>"), D("endobj");
  }, gs = function() {
    for (var u in D("/Font <<"), IA) IA.hasOwnProperty(u) && (d === !1 || d === !0 && w.hasOwnProperty(u)) && D("/" + u + " " + IA[u].objectNumber + " 0 R");
    D(">>");
  }, wl = function() {
    if (Object.keys(se).length > 0) {
      for (var u in D("/Shading <<"), se) se.hasOwnProperty(u) && se[u] instanceof ai && se[u].objectNumber >= 0 && D("/" + u + " " + se[u].objectNumber + " 0 R");
      Ue.publish("putShadingPatternDict"), D(">>");
    }
  }, Ci = function(u) {
    if (Object.keys(se).length > 0) {
      for (var C in D("/Pattern <<"), se) se.hasOwnProperty(C) && se[C] instanceof g.TilingPattern && se[C].objectNumber >= 0 && se[C].objectNumber < u && D("/" + C + " " + se[C].objectNumber + " 0 R");
      Ue.publish("putTilingPatternDict"), D(">>");
    }
  }, vl = function() {
    if (Object.keys(we).length > 0) {
      var u;
      for (u in D("/ExtGState <<"), we) we.hasOwnProperty(u) && we[u].objectNumber >= 0 && D("/" + u + " " + we[u].objectNumber + " 0 R");
      Ue.publish("putGStateDict"), D(">>");
    }
  }, Je = function(u) {
    qt(u.resourcesOid, !0), D("<<"), D("/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]"), gs(), wl(), Ci(u.objectOid), vl(), fa(), D(">>"), D("endobj");
  }, ps = function() {
    var u = [];
    Bi(), pl(), vi(), mi(u), Ue.publish("putResources"), u.forEach(Je), Je({ resourcesOid: gr, objectOid: Number.MAX_SAFE_INTEGER }), Ue.publish("postPutResources");
  }, Bs = function() {
    Ue.publish("putAdditionalObjects");
    for (var u = 0; u < MA.length; u++) {
      var C = MA[u];
      qt(C.objId, !0), D(C.content), D("endobj");
    }
    Ue.publish("postPutAdditionalObjects");
  }, ws = function(u) {
    Ae[u.fontName] = Ae[u.fontName] || {}, Ae[u.fontName][u.fontStyle] = u.id;
  }, ha = function(u, C, O, Y, cA) {
    var CA = { id: "F" + (Object.keys(IA).length + 1).toString(10), postScriptName: u, fontName: C, fontStyle: O, encoding: Y, isStandardFont: cA || !1, metadata: {} };
    return Ue.publish("addFont", { font: CA, instance: this }), IA[CA.id] = CA, ws(CA), CA.id;
  }, ml = function(u) {
    for (var C = 0, O = sA.length; C < O; C++) {
      var Y = ha.call(this, u[C][0], u[C][1], u[C][2], sA[C][3], !0);
      d === !1 && (w[Y] = !0);
      var cA = u[C][0].split("-");
      ws({ id: Y, fontName: cA[0], fontStyle: cA[1] || "" });
    }
    Ue.publish("addFonts", { fonts: IA, dictionary: Ae });
  }, wr = function(u) {
    return u.foo = function() {
      try {
        return u.apply(this, arguments);
      } catch (Y) {
        var C = Y.stack || "";
        ~C.indexOf(" at ") && (C = C.split(" at ")[1]);
        var O = "Error in function " + C.split(`
`)[0].split("<")[0] + ": " + Y.message;
        if (!le.console) throw new Error(O);
        le.console.error(O, Y), le.alert && alert(O);
      }
    }, u.foo.bar = u, u.foo;
  }, yi = function(u, C) {
    var O, Y, cA, CA, kA, XA, te, pe, de;
    if (cA = (C = C || {}).sourceEncoding || "Unicode", kA = C.outputEncoding, (C.autoencode || kA) && IA[ne].metadata && IA[ne].metadata[cA] && IA[ne].metadata[cA].encoding && (CA = IA[ne].metadata[cA].encoding, !kA && IA[ne].encoding && (kA = IA[ne].encoding), !kA && CA.codePages && (kA = CA.codePages[0]), typeof kA == "string" && (kA = CA[kA]), kA)) {
      for (te = !1, XA = [], O = 0, Y = u.length; O < Y; O++) (pe = kA[u.charCodeAt(O)]) ? XA.push(String.fromCharCode(pe)) : XA.push(u[O]), XA[O].charCodeAt(0) >> 8 && (te = !0);
      u = XA.join("");
    }
    for (O = u.length; te === void 0 && O !== 0; ) u.charCodeAt(O - 1) >> 8 && (te = !0), O--;
    if (!te) return u;
    for (XA = C.noBOM ? [] : [254, 255], O = 0, Y = u.length; O < Y; O++) {
      if ((de = (pe = u.charCodeAt(O)) >> 8) >> 8) throw new Error("Character at position " + O + " of string '" + u + "' exceeds 16bits. Cannot be encoded into UCS-2 BE");
      XA.push(de), XA.push(pe - (de << 8));
    }
    return String.fromCharCode.apply(void 0, XA);
  }, Pt = g.__private__.pdfEscape = g.pdfEscape = function(u, C) {
    return yi(u, C).replace(/\\/g, "\\\\").replace(/\(/g, "\\(").replace(/\)/g, "\\)");
  }, da = g.__private__.beginPage = function(u) {
    NA[++ve] = [], ce[ve] = { objId: 0, contentsObjId: 0, userUnit: Number(o), artBox: null, bleedBox: null, cropBox: null, trimBox: null, mediaBox: { bottomLeftX: 0, bottomLeftY: 0, topRightX: Number(u[0]), topRightY: Number(u[1]) } }, ms(ve), wA(NA[M]);
  }, vs = function(u, C) {
    var O, Y, cA;
    switch (A = C || A, typeof u == "string" && (O = v(u.toLowerCase()), Array.isArray(O) && (Y = O[0], cA = O[1])), Array.isArray(u) && (Y = u[0] * VA, cA = u[1] * VA), isNaN(Y) && (Y = n[0], cA = n[1]), (Y > 14400 || cA > 14400) && (_e.warn("A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400"), Y = Math.min(14400, Y), cA = Math.min(14400, cA)), n = [Y, cA], A.substr(0, 1)) {
      case "l":
        cA > Y && (n = [cA, Y]);
        break;
      case "p":
        Y > cA && (n = [cA, Y]);
    }
    da(n), Us(wa), D(vr), ma !== 0 && D(ma + " J"), Ca !== 0 && D(Ca + " j"), Ue.publish("addPage", { pageNumber: ve });
  }, Cl = function(u) {
    u > 0 && u <= ve && (NA.splice(u, 1), ce.splice(u, 1), ve--, M > ve && (M = ve), this.setPage(M));
  }, ms = function(u) {
    u > 0 && u <= ve && (M = u);
  }, yl = g.__private__.getNumberOfPages = g.getNumberOfPages = function() {
    return NA.length - 1;
  }, Cs = function(u, C, O) {
    var Y, cA = void 0;
    return O = O || {}, u = u !== void 0 ? u : IA[ne].fontName, C = C !== void 0 ? C : IA[ne].fontStyle, Y = u.toLowerCase(), Ae[Y] !== void 0 && Ae[Y][C] !== void 0 ? cA = Ae[Y][C] : Ae[u] !== void 0 && Ae[u][C] !== void 0 ? cA = Ae[u][C] : O.disableWarning === !1 && _e.warn("Unable to look up font label for font '" + u + "', '" + C + "'. Refer to getFontList() for available fonts."), cA || O.noFallback || (cA = Ae.times[C]) == null && (cA = Ae.times.normal), cA;
  }, Fl = g.__private__.putInfo = function() {
    var u = ct(), C = function(Y) {
      return Y;
    };
    for (var O in p !== null && (C = Qt.encryptor(u, 0)), D("<<"), D("/Producer (" + Pt(C("jsPDF " + ae.version)) + ")"), YA) YA.hasOwnProperty(O) && YA[O] && D("/" + O.substr(0, 1).toUpperCase() + O.substr(1) + " (" + Pt(C(YA[O])) + ")");
    D("/CreationDate (" + Pt(C(lA)) + ")"), D(">>"), D("endobj");
  }, ga = g.__private__.putCatalog = function(u) {
    var C = (u = u || {}).rootDictionaryObjId || Yr;
    switch (ct(), D("<<"), D("/Type /Catalog"), D("/Pages " + C + " 0 R"), FA || (FA = "fullwidth"), FA) {
      case "fullwidth":
        D("/OpenAction [3 0 R /FitH null]");
        break;
      case "fullheight":
        D("/OpenAction [3 0 R /FitV null]");
        break;
      case "fullpage":
        D("/OpenAction [3 0 R /Fit]");
        break;
      case "original":
        D("/OpenAction [3 0 R /XYZ null null 1]");
        break;
      default:
        var O = "" + FA;
        O.substr(O.length - 1) === "%" && (FA = parseInt(FA) / 100), typeof FA == "number" && D("/OpenAction [3 0 R /XYZ null null " + tA(FA) + "]");
    }
    switch (PA || (PA = "continuous"), PA) {
      case "continuous":
        D("/PageLayout /OneColumn");
        break;
      case "single":
        D("/PageLayout /SinglePage");
        break;
      case "two":
      case "twoleft":
        D("/PageLayout /TwoColumnLeft");
        break;
      case "tworight":
        D("/PageLayout /TwoColumnRight");
    }
    QA && D("/PageMode /" + QA), Ue.publish("putCatalog"), D(">>"), D("endobj");
  }, Ql = g.__private__.putTrailer = function() {
    D("trailer"), D("<<"), D("/Size " + (eA + 1)), D("/Root " + eA + " 0 R"), D("/Info " + (eA - 1) + " 0 R"), p !== null && D("/Encrypt " + Qt.oid + " 0 R"), D("/ID [ <" + oA + "> <" + oA + "> ]"), D(">>");
  }, bl = g.__private__.putHeader = function() {
    D("%PDF-" + Q), D("%ºß¬à");
  }, Ul = g.__private__.putXRef = function() {
    var u = "0000000000";
    D("xref"), D("0 " + (eA + 1)), D("0000000000 65535 f ");
    for (var C = 1; C <= eA; C++)
      typeof uA[C] == "function" ? D((u + uA[C]()).slice(-10) + " 00000 n ") : uA[C] !== void 0 ? D((u + uA[C]).slice(-10) + " 00000 n ") : D("0000000000 00000 n ");
  }, $r = g.__private__.buildDocument = function() {
    ee(), wA(dA), Ue.publish("buildDocument"), bl(), qn(), Bs(), ps(), p !== null && Bl(), Fl(), ga();
    var u = gA;
    return Ul(), Ql(), D("startxref"), D("" + u), D("%%EOF"), wA(NA[M]), dA.join(`
`);
  }, Fi = g.__private__.getBlob = function(u) {
    return new Blob([BA(u)], { type: "application/pdf" });
  }, Qi = g.output = g.__private__.output = wr(function(u, C) {
    switch (typeof (C = C || {}) == "string" ? C = { filename: C } : C.filename = C.filename || "generated.pdf", u) {
      case void 0:
        return $r();
      case "save":
        g.save(C.filename);
        break;
      case "arraybuffer":
        return BA($r());
      case "blob":
        return Fi($r());
      case "bloburi":
      case "bloburl":
        if (le.URL !== void 0 && typeof le.URL.createObjectURL == "function") return le.URL && le.URL.createObjectURL(Fi($r())) || void 0;
        _e.warn("bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.");
        break;
      case "datauristring":
      case "dataurlstring":
        var O = "", Y = $r();
        try {
          O = Kc(Y);
        } catch {
          O = Kc(unescape(encodeURIComponent(Y)));
        }
        return "data:application/pdf;filename=" + C.filename + ";base64," + O;
      case "pdfobjectnewwindow":
        if (Object.prototype.toString.call(le) === "[object Window]") {
          var cA = "https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js", CA = ' integrity="sha512-4ze/a9/4jqu+tX9dfOqJYSvyYd5M6qum/3HpCLr+/Jqf0whc37VUbkpNGHR7/8pSnCFw47T1fmIpwBV7UySh3g==" crossorigin="anonymous"';
          C.pdfObjectUrl && (cA = C.pdfObjectUrl, CA = "");
          var kA = '<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}  </style><body><script src="' + cA + '"' + CA + '><\/script><script >PDFObject.embed("' + this.output("dataurlstring") + '", ' + JSON.stringify(C) + ");<\/script></body></html>", XA = le.open();
          return XA !== null && XA.document.write(kA), XA;
        }
        throw new Error("The option pdfobjectnewwindow just works in a browser-environment.");
      case "pdfjsnewwindow":
        if (Object.prototype.toString.call(le) === "[object Window]") {
          var te = '<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}  </style><body><iframe id="pdfViewer" src="' + (C.pdfJsUrl || "examples/PDF.js/web/viewer.html") + "?file=&downloadName=" + C.filename + '" width="500px" height="400px" /></body></html>', pe = le.open();
          if (pe !== null) {
            pe.document.write(te);
            var de = this;
            pe.document.documentElement.querySelector("#pdfViewer").onload = function() {
              pe.document.title = C.filename, pe.document.documentElement.querySelector("#pdfViewer").contentWindow.PDFViewerApplication.open(de.output("bloburl"));
            };
          }
          return pe;
        }
        throw new Error("The option pdfjsnewwindow just works in a browser-environment.");
      case "dataurlnewwindow":
        if (Object.prototype.toString.call(le) !== "[object Window]") throw new Error("The option dataurlnewwindow just works in a browser-environment.");
        var Qe = '<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}  </style><body><iframe src="' + this.output("datauristring", C) + '"></iframe></body></html>', je = le.open();
        if (je !== null && (je.document.write(Qe), je.document.title = C.filename), je || typeof safari > "u") return je;
        break;
      case "datauri":
      case "dataurl":
        return le.document.location.href = this.output("datauristring", C);
      default:
        return null;
    }
  }), ys = function(u) {
    return Array.isArray(jn) === !0 && jn.indexOf(u) > -1;
  };
  switch (r) {
    case "pt":
      VA = 1;
      break;
    case "mm":
      VA = 72 / 25.4;
      break;
    case "cm":
      VA = 72 / 2.54;
      break;
    case "in":
      VA = 72;
      break;
    case "px":
      VA = ys("px_scaling") == 1 ? 0.75 : 96 / 72;
      break;
    case "pc":
    case "em":
      VA = 12;
      break;
    case "ex":
      VA = 6;
      break;
    default:
      if (typeof r != "number") throw new Error("Invalid unit: " + r);
      VA = r;
  }
  var Qt = null;
  OA(), k();
  var Ll = function(u) {
    return p !== null ? Qt.encryptor(u, 0) : function(C) {
      return C;
    };
  }, Fs = g.__private__.getPageInfo = g.getPageInfo = function(u) {
    if (isNaN(u) || u % 1 != 0) throw new Error("Invalid argument passed to jsPDF.getPageInfo");
    return { objId: ce[u].objId, pageNumber: u, pageContext: ce[u] };
  }, fe = g.__private__.getPageInfoByObjId = function(u) {
    if (isNaN(u) || u % 1 != 0) throw new Error("Invalid argument passed to jsPDF.getPageInfoByObjId");
    for (var C in ce) if (ce[C].objId === u) break;
    return Fs(C);
  }, El = g.__private__.getCurrentPageInfo = g.getCurrentPageInfo = function() {
    return { objId: ce[M].objId, pageNumber: M, pageContext: ce[M] };
  };
  g.addPage = function() {
    return vs.apply(this, arguments), this;
  }, g.setPage = function() {
    return ms.apply(this, arguments), wA.call(this, NA[M]), this;
  }, g.insertPage = function(u) {
    return this.addPage(), this.movePage(M, u), this;
  }, g.movePage = function(u, C) {
    var O, Y;
    if (u > C) {
      O = NA[u], Y = ce[u];
      for (var cA = u; cA > C; cA--) NA[cA] = NA[cA - 1], ce[cA] = ce[cA - 1];
      NA[C] = O, ce[C] = Y, this.setPage(C);
    } else if (u < C) {
      O = NA[u], Y = ce[u];
      for (var CA = u; CA < C; CA++) NA[CA] = NA[CA + 1], ce[CA] = ce[CA + 1];
      NA[C] = O, ce[C] = Y, this.setPage(C);
    }
    return this;
  }, g.deletePage = function() {
    return Cl.apply(this, arguments), this;
  }, g.__private__.text = g.text = function(u, C, O, Y, cA) {
    var CA, kA, XA, te, pe, de, Qe, je, qe, at = (Y = Y || {}).scope || this;
    if (typeof u == "number" && typeof C == "number" && (typeof O == "string" || Array.isArray(O))) {
      var bt = O;
      O = C, C = u, u = bt;
    }
    if (arguments[3] instanceof ie ? (H("The transform parameter of text() with a Matrix value"), qe = cA) : (XA = arguments[4], te = arguments[5], Se(Qe = arguments[3]) === "object" && Qe !== null || (typeof XA == "string" && (te = XA, XA = null), typeof Qe == "string" && (te = Qe, Qe = null), typeof Qe == "number" && (XA = Qe, Qe = null), Y = { flags: Qe, angle: XA, align: te })), isNaN(C) || isNaN(O) || u == null) throw new Error("Invalid arguments passed to jsPDF.text");
    if (u.length === 0) return at;
    var ht = "", mr = !1, Wt = typeof Y.lineHeightFactor == "number" ? Y.lineHeightFactor : Xn, Or = at.internal.scaleFactor;
    function Hs(Te) {
      return Te = Te.split("	").join(Array(Y.TabLen || 9).join(" ")), Pt(Te, Qe);
    }
    function Ua(Te) {
      for (var Me, $e = Te.concat(), ut = [], rn = $e.length; rn--; ) typeof (Me = $e.shift()) == "string" ? ut.push(Me) : Array.isArray(Te) && (Me.length === 1 || Me[1] === void 0 && Me[2] === void 0) ? ut.push(Me[0]) : ut.push([Me[0], Me[1], Me[2]]);
      return ut;
    }
    function La(Te, Me) {
      var $e;
      if (typeof Te == "string") $e = Me(Te)[0];
      else if (Array.isArray(Te)) {
        for (var ut, rn, ka = Te.concat(), Pi = [], Ts = ka.length; Ts--; ) typeof (ut = ka.shift()) == "string" ? Pi.push(Me(ut)[0]) : Array.isArray(ut) && typeof ut[0] == "string" && (rn = Me(ut[0], ut[1], ut[2]), Pi.push([rn[0], rn[1], rn[2]]));
        $e = Pi;
      }
      return $e;
    }
    var Ii = !1, Ea = !0;
    if (typeof u == "string") Ii = !0;
    else if (Array.isArray(u)) {
      var xa = u.concat();
      kA = [];
      for (var Si, vt = xa.length; vt--; ) (typeof (Si = xa.shift()) != "string" || Array.isArray(Si) && typeof Si[0] != "string") && (Ea = !1);
      Ii = Ea;
    }
    if (Ii === !1) throw new Error('Type of text must be string or Array. "' + u + '" is not recognized.');
    typeof u == "string" && (u = u.match(/[\r?\n]/) ? u.split(/\r\n|\r|\n/g) : [u]);
    var Hi = pA / at.internal.scaleFactor, Di = Hi * (Wt - 1);
    switch (Y.baseline) {
      case "bottom":
        O -= Di;
        break;
      case "top":
        O += Hi - Di;
        break;
      case "hanging":
        O += Hi - 2 * Di;
        break;
      case "middle":
        O += Hi / 2 - Di;
    }
    if ((de = Y.maxWidth || 0) > 0 && (typeof u == "string" ? u = at.splitTextToSize(u, de) : Object.prototype.toString.call(u) === "[object Array]" && (u = u.reduce(function(Te, Me) {
      return Te.concat(at.splitTextToSize(Me, de));
    }, []))), CA = { text: u, x: C, y: O, options: Y, mutex: { pdfEscape: Pt, activeFontKey: ne, fonts: IA, activeFontSize: pA } }, Ue.publish("preProcessText", CA), u = CA.text, XA = (Y = CA.options).angle, !(qe instanceof ie) && XA && typeof XA == "number") {
      XA *= Math.PI / 180, Y.rotationDirection === 0 && (XA = -XA), K === U.ADVANCED && (XA = -XA);
      var Ni = Math.cos(XA), Ia = Math.sin(XA);
      qe = new ie(Ni, Ia, -Ia, Ni, 0, 0);
    } else XA && XA instanceof ie && (qe = XA);
    K !== U.ADVANCED || qe || (qe = kr), (pe = Y.charSpace || Li) !== void 0 && (ht += z(F(pe)) + ` Tc
`, this.setCharSpace(this.getCharSpace() || 0)), (je = Y.horizontalScale) !== void 0 && (ht += z(100 * je) + ` Tz
`), Y.lang;
    var Ot = -1, Ml = Y.renderingMode !== void 0 ? Y.renderingMode : Y.stroke, Sa = at.internal.getCurrentPageInfo().pageContext;
    switch (Ml) {
      case 0:
      case !1:
      case "fill":
        Ot = 0;
        break;
      case 1:
      case !0:
      case "stroke":
        Ot = 1;
        break;
      case 2:
      case "fillThenStroke":
        Ot = 2;
        break;
      case 3:
      case "invisible":
        Ot = 3;
        break;
      case 4:
      case "fillAndAddForClipping":
        Ot = 4;
        break;
      case 5:
      case "strokeAndAddPathForClipping":
        Ot = 5;
        break;
      case 6:
      case "fillThenStrokeAndAddToPathForClipping":
        Ot = 6;
        break;
      case 7:
      case "addToPathForClipping":
        Ot = 7;
    }
    var Ds = Sa.usedRenderingMode !== void 0 ? Sa.usedRenderingMode : -1;
    Ot !== -1 ? ht += Ot + ` Tr
` : Ds !== -1 && (ht += `0 Tr
`), Ot !== -1 && (Sa.usedRenderingMode = Ot), te = Y.align || "left";
    var er, ki = pA * Wt, Ns = at.internal.pageSize.getWidth(), ks = IA[ne];
    pe = Y.charSpace || Li, de = Y.maxWidth || 0, Qe = Object.assign({ autoencode: !0, noBOM: !0 }, Y.flags);
    var Bn = [], Yn = function(Te) {
      return at.getStringUnitWidth(Te, { font: ks, charSpace: pe, fontSize: pA, doKerning: !1 }) * pA / Or;
    };
    if (Object.prototype.toString.call(u) === "[object Array]") {
      var Kt;
      kA = Ua(u), te !== "left" && (er = kA.map(Yn));
      var Dt, wn = 0;
      if (te === "right") {
        C -= er[0], u = [], vt = kA.length;
        for (var An = 0; An < vt; An++) An === 0 ? (Dt = Pr(C), Kt = Zr(O)) : (Dt = F(wn - er[An]), Kt = -ki), u.push([kA[An], Dt, Kt]), wn = er[An];
      } else if (te === "center") {
        C -= er[0] / 2, u = [], vt = kA.length;
        for (var en = 0; en < vt; en++) en === 0 ? (Dt = Pr(C), Kt = Zr(O)) : (Dt = F((wn - er[en]) / 2), Kt = -ki), u.push([kA[en], Dt, Kt]), wn = er[en];
      } else if (te === "left") {
        u = [], vt = kA.length;
        for (var _i = 0; _i < vt; _i++) u.push(kA[_i]);
      } else if (te === "justify" && ks.encoding === "Identity-H") {
        u = [], vt = kA.length, de = de !== 0 ? de : Ns;
        for (var tn = 0, Ye = 0; Ye < vt; Ye++) if (Kt = Ye === 0 ? Zr(O) : -ki, Dt = Ye === 0 ? Pr(C) : tn, Ye < vt - 1) {
          var Ha = F((de - er[Ye]) / (kA[Ye].split(" ").length - 1)), Nt = kA[Ye].split(" ");
          u.push([Nt[0] + " ", Dt, Kt]), tn = 0;
          for (var tr = 1; tr < Nt.length; tr++) {
            var Ti = (Yn(Nt[tr - 1] + " " + Nt[tr]) - Yn(Nt[tr])) * Or + Ha;
            tr == Nt.length - 1 ? u.push([Nt[tr], Ti, 0]) : u.push([Nt[tr] + " ", Ti, 0]), tn -= Ti;
          }
        } else u.push([kA[Ye], Dt, Kt]);
        u.push(["", tn, 0]);
      } else {
        if (te !== "justify") throw new Error('Unrecognized alignment option, use "left", "center", "right" or "justify".');
        for (u = [], vt = kA.length, de = de !== 0 ? de : Ns, Ye = 0; Ye < vt; Ye++) Kt = Ye === 0 ? Zr(O) : -ki, Dt = Ye === 0 ? Pr(C) : 0, Ye < vt - 1 ? Bn.push(z(F((de - er[Ye]) / (kA[Ye].split(" ").length - 1)))) : Bn.push(0), u.push([kA[Ye], Dt, Kt]);
      }
    }
    var _s = typeof Y.R2L == "boolean" ? Y.R2L : SA;
    _s === !0 && (u = La(u, function(Te, Me, $e) {
      return [Te.split("").reverse().join(""), Me, $e];
    })), CA = { text: u, x: C, y: O, options: Y, mutex: { pdfEscape: Pt, activeFontKey: ne, fonts: IA, activeFontSize: pA } }, Ue.publish("postProcessText", CA), u = CA.text, mr = CA.mutex.isHex || !1;
    var Da = IA[ne].encoding;
    Da !== "WinAnsiEncoding" && Da !== "StandardEncoding" || (u = La(u, function(Te, Me, $e) {
      return [Hs(Te), Me, $e];
    })), kA = Ua(u), u = [];
    for (var $n, Zn, vn, Ai = 0, Mi = 1, ei = Array.isArray(kA[0]) ? Mi : Ai, mn = "", Na = function(Te, Me, $e) {
      var ut = "";
      return $e instanceof ie ? ($e = typeof Y.angle == "number" ? dr($e, new ie(1, 0, 0, 1, Te, Me)) : dr(new ie(1, 0, 0, 1, Te, Me), $e), K === U.ADVANCED && ($e = dr(new ie(1, 0, 0, -1, 0, 0), $e)), ut = $e.join(" ") + ` Tm
`) : ut = z(Te) + " " + z(Me) + ` Td
`, ut;
    }, rr = 0; rr < kA.length; rr++) {
      switch (mn = "", ei) {
        case Mi:
          vn = (mr ? "<" : "(") + kA[rr][0] + (mr ? ">" : ")"), $n = parseFloat(kA[rr][1]), Zn = parseFloat(kA[rr][2]);
          break;
        case Ai:
          vn = (mr ? "<" : "(") + kA[rr] + (mr ? ">" : ")"), $n = Pr(C), Zn = Zr(O);
      }
      Bn !== void 0 && Bn[rr] !== void 0 && (mn = Bn[rr] + ` Tw
`), rr === 0 ? u.push(mn + Na($n, Zn, qe) + vn) : ei === Ai ? u.push(mn + vn) : ei === Mi && u.push(mn + Na($n, Zn, qe) + vn);
    }
    u = ei === Ai ? u.join(` Tj
T* `) : u.join(` Tj
`), u += ` Tj
`;
    var nr = `BT
/`;
    return nr += ne + " " + pA + ` Tf
`, nr += z(pA * Wt) + ` TL
`, nr += zn + `
`, nr += ht, nr += u, D(nr += "ET"), w[ne] = !0, at;
  };
  var xl = g.__private__.clip = g.clip = function(u) {
    return D(u === "evenodd" ? "W*" : "W"), this;
  };
  g.clipEvenOdd = function() {
    return xl("evenodd");
  }, g.__private__.discardPath = g.discardPath = function() {
    return D("n"), this;
  };
  var Mr = g.__private__.isValidStyle = function(u) {
    var C = !1;
    return [void 0, null, "S", "D", "F", "DF", "FD", "f", "f*", "B", "B*", "n"].indexOf(u) !== -1 && (C = !0), C;
  };
  g.__private__.setDefaultPathOperation = g.setDefaultPathOperation = function(u) {
    return Mr(u) && (h = u), this;
  };
  var Qs = g.__private__.getStyle = g.getStyle = function(u) {
    var C = h;
    switch (u) {
      case "D":
      case "S":
        C = "S";
        break;
      case "F":
        C = "f";
        break;
      case "FD":
      case "DF":
        C = "B";
        break;
      case "f":
      case "f*":
      case "B":
      case "B*":
        C = u;
    }
    return C;
  }, bs = g.close = function() {
    return D("h"), this;
  };
  g.stroke = function() {
    return D("S"), this;
  }, g.fill = function(u) {
    return bi("f", u), this;
  }, g.fillEvenOdd = function(u) {
    return bi("f*", u), this;
  }, g.fillStroke = function(u) {
    return bi("B", u), this;
  }, g.fillStrokeEvenOdd = function(u) {
    return bi("B*", u), this;
  };
  var bi = function(u, C) {
    Se(C) === "object" ? Sl(C, u) : D(u);
  }, pa = function(u) {
    u === null || K === U.ADVANCED && u === void 0 || (u = Qs(u), D(u));
  };
  function Il(u, C, O, Y, cA) {
    var CA = new ra(C || this.boundingBox, O || this.xStep, Y || this.yStep, this.gState, cA || this.matrix);
    CA.stream = this.stream;
    var kA = u + "$$" + this.cloneIndex++ + "$$";
    return Mt(kA, CA), CA;
  }
  var Sl = function(u, C) {
    var O = He[u.key], Y = se[O];
    if (Y instanceof ai) D("q"), D(Hl(C)), Y.gState && g.setGState(Y.gState), D(u.matrix.toString() + " cm"), D("/" + O + " sh"), D("Q");
    else if (Y instanceof ra) {
      var cA = new ie(1, 0, 0, -1, 0, pn());
      u.matrix && (cA = cA.multiply(u.matrix || kr), O = Il.call(Y, u.key, u.boundingBox, u.xStep, u.yStep, cA).id), D("q"), D("/Pattern cs"), D("/" + O + " scn"), Y.gState && g.setGState(Y.gState), D(C), D("Q");
    }
  }, Hl = function(u) {
    switch (u) {
      case "f":
      case "F":
        return "W n";
      case "f*":
        return "W* n";
      case "B":
        return "W S";
      case "B*":
        return "W* S";
      case "S":
        return "W S";
      case "n":
        return "W n";
    }
  }, Ba = g.moveTo = function(u, C) {
    return D(z(F(u)) + " " + z(P(C)) + " m"), this;
  }, Wn = g.lineTo = function(u, C) {
    return D(z(F(u)) + " " + z(P(C)) + " l"), this;
  }, dn = g.curveTo = function(u, C, O, Y, cA, CA) {
    return D([z(F(u)), z(P(C)), z(F(O)), z(P(Y)), z(F(cA)), z(P(CA)), "c"].join(" ")), this;
  };
  g.__private__.line = g.line = function(u, C, O, Y, cA) {
    if (isNaN(u) || isNaN(C) || isNaN(O) || isNaN(Y) || !Mr(cA)) throw new Error("Invalid arguments passed to jsPDF.line");
    return K === U.COMPAT ? this.lines([[O - u, Y - C]], u, C, [1, 1], cA || "S") : this.lines([[O - u, Y - C]], u, C, [1, 1]).stroke();
  }, g.__private__.lines = g.lines = function(u, C, O, Y, cA, CA) {
    var kA, XA, te, pe, de, Qe, je, qe, at, bt, ht, mr;
    if (typeof u == "number" && (mr = O, O = C, C = u, u = mr), Y = Y || [1, 1], CA = CA || !1, isNaN(C) || isNaN(O) || !Array.isArray(u) || !Array.isArray(Y) || !Mr(cA) || typeof CA != "boolean") throw new Error("Invalid arguments passed to jsPDF.lines");
    for (Ba(C, O), kA = Y[0], XA = Y[1], pe = u.length, bt = C, ht = O, te = 0; te < pe; te++) (de = u[te]).length === 2 ? (bt = de[0] * kA + bt, ht = de[1] * XA + ht, Wn(bt, ht)) : (Qe = de[0] * kA + bt, je = de[1] * XA + ht, qe = de[2] * kA + bt, at = de[3] * XA + ht, bt = de[4] * kA + bt, ht = de[5] * XA + ht, dn(Qe, je, qe, at, bt, ht));
    return CA && bs(), pa(cA), this;
  }, g.path = function(u) {
    for (var C = 0; C < u.length; C++) {
      var O = u[C], Y = O.c;
      switch (O.op) {
        case "m":
          Ba(Y[0], Y[1]);
          break;
        case "l":
          Wn(Y[0], Y[1]);
          break;
        case "c":
          dn.apply(this, Y);
          break;
        case "h":
          bs();
      }
    }
    return this;
  }, g.__private__.rect = g.rect = function(u, C, O, Y, cA) {
    if (isNaN(u) || isNaN(C) || isNaN(O) || isNaN(Y) || !Mr(cA)) throw new Error("Invalid arguments passed to jsPDF.rect");
    return K === U.COMPAT && (Y = -Y), D([z(F(u)), z(P(C)), z(F(O)), z(F(Y)), "re"].join(" ")), pa(cA), this;
  }, g.__private__.triangle = g.triangle = function(u, C, O, Y, cA, CA, kA) {
    if (isNaN(u) || isNaN(C) || isNaN(O) || isNaN(Y) || isNaN(cA) || isNaN(CA) || !Mr(kA)) throw new Error("Invalid arguments passed to jsPDF.triangle");
    return this.lines([[O - u, Y - C], [cA - O, CA - Y], [u - cA, C - CA]], u, C, [1, 1], kA, !0), this;
  }, g.__private__.roundedRect = g.roundedRect = function(u, C, O, Y, cA, CA, kA) {
    if (isNaN(u) || isNaN(C) || isNaN(O) || isNaN(Y) || isNaN(cA) || isNaN(CA) || !Mr(kA)) throw new Error("Invalid arguments passed to jsPDF.roundedRect");
    var XA = 4 / 3 * (Math.SQRT2 - 1);
    return cA = Math.min(cA, 0.5 * O), CA = Math.min(CA, 0.5 * Y), this.lines([[O - 2 * cA, 0], [cA * XA, 0, cA, CA - CA * XA, cA, CA], [0, Y - 2 * CA], [0, CA * XA, -cA * XA, CA, -cA, CA], [2 * cA - O, 0], [-cA * XA, 0, -cA, -CA * XA, -cA, -CA], [0, 2 * CA - Y], [0, -CA * XA, cA * XA, -CA, cA, -CA]], u + cA, C, [1, 1], kA, !0), this;
  }, g.__private__.ellipse = g.ellipse = function(u, C, O, Y, cA) {
    if (isNaN(u) || isNaN(C) || isNaN(O) || isNaN(Y) || !Mr(cA)) throw new Error("Invalid arguments passed to jsPDF.ellipse");
    var CA = 4 / 3 * (Math.SQRT2 - 1) * O, kA = 4 / 3 * (Math.SQRT2 - 1) * Y;
    return Ba(u + O, C), dn(u + O, C - kA, u + CA, C - Y, u, C - Y), dn(u - CA, C - Y, u - O, C - kA, u - O, C), dn(u - O, C + kA, u - CA, C + Y, u, C + Y), dn(u + CA, C + Y, u + O, C + kA, u + O, C), pa(cA), this;
  }, g.__private__.circle = g.circle = function(u, C, O, Y) {
    if (isNaN(u) || isNaN(C) || isNaN(O) || !Mr(Y)) throw new Error("Invalid arguments passed to jsPDF.circle");
    return this.ellipse(u, C, O, O, Y);
  }, g.setFont = function(u, C, O) {
    return O && (C = V(C, O)), ne = Cs(u, C, { disableWarning: !1 }), this;
  };
  var Dl = g.__private__.getFont = g.getFont = function() {
    return IA[Cs.apply(g, arguments)];
  };
  g.__private__.getFontList = g.getFontList = function() {
    var u, C, O = {};
    for (u in Ae) if (Ae.hasOwnProperty(u)) for (C in O[u] = [], Ae[u]) Ae[u].hasOwnProperty(C) && O[u].push(C);
    return O;
  }, g.addFont = function(u, C, O, Y, cA) {
    var CA = ["StandardEncoding", "MacRomanEncoding", "Identity-H", "WinAnsiEncoding"];
    return arguments[3] && CA.indexOf(arguments[3]) !== -1 ? cA = arguments[3] : arguments[3] && CA.indexOf(arguments[3]) == -1 && (O = V(O, Y)), cA = cA || "Identity-H", ha.call(this, u, C, O, cA);
  };
  var Xn, wa = t.lineWidth || 0.200025, Ui = g.__private__.getLineWidth = g.getLineWidth = function() {
    return wa;
  }, Us = g.__private__.setLineWidth = g.setLineWidth = function(u) {
    return wa = u, D(z(F(u)) + " w"), this;
  };
  g.__private__.setLineDash = ae.API.setLineDash = ae.API.setLineDashPattern = function(u, C) {
    if (u = u || [], C = C || 0, isNaN(C) || !Array.isArray(u)) throw new Error("Invalid arguments passed to jsPDF.setLineDash");
    return u = u.map(function(O) {
      return z(F(O));
    }).join(" "), C = z(F(C)), D("[" + u + "] " + C + " d"), this;
  };
  var Ls = g.__private__.getLineHeight = g.getLineHeight = function() {
    return pA * Xn;
  };
  g.__private__.getLineHeight = g.getLineHeight = function() {
    return pA * Xn;
  };
  var Es = g.__private__.setLineHeightFactor = g.setLineHeightFactor = function(u) {
    return typeof (u = u || 1.15) == "number" && (Xn = u), this;
  }, xs = g.__private__.getLineHeightFactor = g.getLineHeightFactor = function() {
    return Xn;
  };
  Es(t.lineHeight);
  var Pr = g.__private__.getHorizontalCoordinate = function(u) {
    return F(u);
  }, Zr = g.__private__.getVerticalCoordinate = function(u) {
    return K === U.ADVANCED ? u : ce[M].mediaBox.topRightY - ce[M].mediaBox.bottomLeftY - F(u);
  }, Nl = g.__private__.getHorizontalCoordinateString = g.getHorizontalCoordinateString = function(u) {
    return z(Pr(u));
  }, gn = g.__private__.getVerticalCoordinateString = g.getVerticalCoordinateString = function(u) {
    return z(Zr(u));
  }, vr = t.strokeColor || "0 G";
  g.__private__.getStrokeColor = g.getDrawColor = function() {
    return pr(vr);
  }, g.__private__.setStrokeColor = g.setDrawColor = function(u, C, O, Y) {
    return vr = Br({ ch1: u, ch2: C, ch3: O, ch4: Y, pdfColorType: "draw", precision: 2 }), D(vr), this;
  };
  var va = t.fillColor || "0 g";
  g.__private__.getFillColor = g.getFillColor = function() {
    return pr(va);
  }, g.__private__.setFillColor = g.setFillColor = function(u, C, O, Y) {
    return va = Br({ ch1: u, ch2: C, ch3: O, ch4: Y, pdfColorType: "fill", precision: 2 }), D(va), this;
  };
  var zn = t.textColor || "0 g", kl = g.__private__.getTextColor = g.getTextColor = function() {
    return pr(zn);
  };
  g.__private__.setTextColor = g.setTextColor = function(u, C, O, Y) {
    return zn = Br({ ch1: u, ch2: C, ch3: O, ch4: Y, pdfColorType: "text", precision: 3 }), this;
  };
  var Li = t.charSpace, _l = g.__private__.getCharSpace = g.getCharSpace = function() {
    return parseFloat(Li || 0);
  };
  g.__private__.setCharSpace = g.setCharSpace = function(u) {
    if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.setCharSpace");
    return Li = u, this;
  };
  var ma = 0;
  g.CapJoinStyles = { 0: 0, butt: 0, but: 0, miter: 0, 1: 1, round: 1, rounded: 1, circle: 1, 2: 2, projecting: 2, project: 2, square: 2, bevel: 2 }, g.__private__.setLineCap = g.setLineCap = function(u) {
    var C = g.CapJoinStyles[u];
    if (C === void 0) throw new Error("Line cap style of '" + u + "' is not recognized. See or extend .CapJoinStyles property for valid styles");
    return ma = C, D(C + " J"), this;
  };
  var Ca = 0;
  g.__private__.setLineJoin = g.setLineJoin = function(u) {
    var C = g.CapJoinStyles[u];
    if (C === void 0) throw new Error("Line join style of '" + u + "' is not recognized. See or extend .CapJoinStyles property for valid styles");
    return Ca = C, D(C + " j"), this;
  }, g.__private__.setLineMiterLimit = g.__private__.setMiterLimit = g.setLineMiterLimit = g.setMiterLimit = function(u) {
    if (u = u || 0, isNaN(u)) throw new Error("Invalid argument passed to jsPDF.setLineMiterLimit");
    return D(z(F(u)) + " M"), this;
  }, g.GState = Go, g.setGState = function(u) {
    (u = typeof u == "string" ? we[Oe[u]] : Is(null, u)).equals(ze) || (D("/" + u.id + " gs"), ze = u);
  };
  var Is = function(u, C) {
    if (!u || !Oe[u]) {
      var O = !1;
      for (var Y in we) if (we.hasOwnProperty(Y) && we[Y].equals(C)) {
        O = !0;
        break;
      }
      if (O) C = we[Y];
      else {
        var cA = "GS" + (Object.keys(we).length + 1).toString(10);
        we[cA] = C, C.id = cA;
      }
      return u && (Oe[u] = C.id), Ue.publish("addGState", C), C;
    }
  };
  g.addGState = function(u, C) {
    return Is(u, C), this;
  }, g.saveGraphicsState = function() {
    return D("q"), me.push({ key: ne, size: pA, color: zn }), this;
  }, g.restoreGraphicsState = function() {
    D("Q");
    var u = me.pop();
    return ne = u.key, pA = u.size, zn = u.color, ze = null, this;
  }, g.setCurrentTransformationMatrix = function(u) {
    return D(u.toString() + " cm"), this;
  }, g.comment = function(u) {
    return D("#" + u), this;
  };
  var Ei = function(u, C) {
    var O = u || 0;
    Object.defineProperty(this, "x", { enumerable: !0, get: function() {
      return O;
    }, set: function(CA) {
      isNaN(CA) || (O = parseFloat(CA));
    } });
    var Y = C || 0;
    Object.defineProperty(this, "y", { enumerable: !0, get: function() {
      return Y;
    }, set: function(CA) {
      isNaN(CA) || (Y = parseFloat(CA));
    } });
    var cA = "pt";
    return Object.defineProperty(this, "type", { enumerable: !0, get: function() {
      return cA;
    }, set: function(CA) {
      cA = CA.toString();
    } }), this;
  }, ya = function(u, C, O, Y) {
    Ei.call(this, u, C), this.type = "rect";
    var cA = O || 0;
    Object.defineProperty(this, "w", { enumerable: !0, get: function() {
      return cA;
    }, set: function(kA) {
      isNaN(kA) || (cA = parseFloat(kA));
    } });
    var CA = Y || 0;
    return Object.defineProperty(this, "h", { enumerable: !0, get: function() {
      return CA;
    }, set: function(kA) {
      isNaN(kA) || (CA = parseFloat(kA));
    } }), this;
  }, Fa = function() {
    this.page = ve, this.currentPage = M, this.pages = NA.slice(0), this.pagesContext = ce.slice(0), this.x = Ve, this.y = mA, this.matrix = TA, this.width = Jn(M), this.height = pn(M), this.outputDestination = GA, this.id = "", this.objectNumber = -1;
  };
  Fa.prototype.restore = function() {
    ve = this.page, M = this.currentPage, ce = this.pagesContext, NA = this.pages, Ve = this.x, mA = this.y, TA = this.matrix, Qa(M, this.width), ba(M, this.height), GA = this.outputDestination;
  };
  var Ss = function(u, C, O, Y, cA) {
    Nr.push(new Fa()), ve = M = 0, NA = [], Ve = u, mA = C, TA = cA, da([O, Y]);
  }, Tl = function(u) {
    if (Dr[u]) Nr.pop().restore();
    else {
      var C = new Fa(), O = "Xo" + (Object.keys(wt).length + 1).toString(10);
      C.id = O, Dr[u] = O, wt[O] = C, Ue.publish("addFormObject", C), Nr.pop().restore();
    }
  };
  for (var xi in g.beginFormObject = function(u, C, O, Y, cA) {
    return Ss(u, C, O, Y, cA), this;
  }, g.endFormObject = function(u) {
    return Tl(u), this;
  }, g.doFormObject = function(u, C) {
    var O = wt[Dr[u]];
    return D("q"), D(C.toString() + " cm"), D("/" + O.id + " Do"), D("Q"), this;
  }, g.getFormObject = function(u) {
    var C = wt[Dr[u]];
    return { x: C.x, y: C.y, width: C.width, height: C.height, matrix: C.matrix };
  }, g.save = function(u, C) {
    return u = u || "generated.pdf", (C = C || {}).returnPromise = C.returnPromise || !1, C.returnPromise === !1 ? (ii(Fi($r()), u), typeof ii.unload == "function" && le.setTimeout && setTimeout(ii.unload, 911), this) : new Promise(function(O, Y) {
      try {
        var cA = ii(Fi($r()), u);
        typeof ii.unload == "function" && le.setTimeout && setTimeout(ii.unload, 911), O(cA);
      } catch (CA) {
        Y(CA.message);
      }
    });
  }, ae.API) ae.API.hasOwnProperty(xi) && (xi === "events" && ae.API.events.length ? function(u, C) {
    var O, Y, cA;
    for (cA = C.length - 1; cA !== -1; cA--) O = C[cA][0], Y = C[cA][1], u.subscribe.apply(u, [O].concat(typeof Y == "function" ? [Y] : Y));
  }(Ue, ae.API.events) : g[xi] = ae.API[xi]);
  var Jn = g.getPageWidth = function(u) {
    return (ce[u = u || M].mediaBox.topRightX - ce[u].mediaBox.bottomLeftX) / VA;
  }, Qa = g.setPageWidth = function(u, C) {
    ce[u].mediaBox.topRightX = C * VA + ce[u].mediaBox.bottomLeftX;
  }, pn = g.getPageHeight = function(u) {
    return (ce[u = u || M].mediaBox.topRightY - ce[u].mediaBox.bottomLeftY) / VA;
  }, ba = g.setPageHeight = function(u, C) {
    ce[u].mediaBox.topRightY = C * VA + ce[u].mediaBox.bottomLeftY;
  };
  return g.internal = { pdfEscape: Pt, getStyle: Qs, getFont: Dl, getFontSize: UA, getCharSpace: _l, getTextColor: kl, getLineHeight: Ls, getLineHeightFactor: xs, getLineWidth: Ui, write: $, getHorizontalCoordinate: Pr, getVerticalCoordinate: Zr, getCoordinateString: Nl, getVerticalCoordinateString: gn, collections: {}, newObject: ct, newAdditionalObject: gi, newObjectDeferred: it, newObjectDeferredBegin: qt, getFilters: _r, putStream: Ar, events: Ue, scaleFactor: VA, pageSize: { getWidth: function() {
    return Jn(M);
  }, setWidth: function(u) {
    Qa(M, u);
  }, getHeight: function() {
    return pn(M);
  }, setHeight: function(u) {
    ba(M, u);
  } }, encryptionOptions: p, encryption: Qt, getEncryptor: Ll, output: Qi, getNumberOfPages: yl, pages: NA, out: D, f2: tA, f3: x, getPageInfo: Fs, getPageInfoByObjId: fe, getCurrentPageInfo: El, getPDFVersion: y, Point: Ei, Rectangle: ya, Matrix: ie, hasHotfix: ys }, Object.defineProperty(g.internal.pageSize, "width", { get: function() {
    return Jn(M);
  }, set: function(u) {
    Qa(M, u);
  }, enumerable: !0, configurable: !0 }), Object.defineProperty(g.internal.pageSize, "height", { get: function() {
    return pn(M);
  }, set: function(u) {
    ba(M, u);
  }, enumerable: !0, configurable: !0 }), ml.call(g, sA), ne = "F1", vs(n, A), Ue.publish("initialized"), g;
}
Zi.prototype.lsbFirstWord = function(t) {
  return String.fromCharCode(t >> 0 & 255, t >> 8 & 255, t >> 16 & 255, t >> 24 & 255);
}, Zi.prototype.toHexString = function(t) {
  return t.split("").map(function(e) {
    return ("0" + (255 & e.charCodeAt(0)).toString(16)).slice(-2);
  }).join("");
}, Zi.prototype.hexToBytes = function(t) {
  for (var e = [], A = 0; A < t.length; A += 2) e.push(String.fromCharCode(parseInt(t.substr(A, 2), 16)));
  return e.join("");
}, Zi.prototype.processOwnerPassword = function(t, e) {
  return Gc(Rc(e).substr(0, 5), t);
}, Zi.prototype.encryptor = function(t, e) {
  var A = Rc(this.encryptionKey + String.fromCharCode(255 & t, t >> 8 & 255, t >> 16 & 255, 255 & e, e >> 8 & 255)).substr(0, 10);
  return function(r) {
    return Gc(A, r);
  };
}, Go.prototype.equals = function(t) {
  var e, A = "id,objectNumber,equals";
  if (!t || Se(t) !== Se(this)) return !1;
  var r = 0;
  for (e in this) if (!(A.indexOf(e) >= 0)) {
    if (this.hasOwnProperty(e) && !t.hasOwnProperty(e) || this[e] !== t[e]) return !1;
    r++;
  }
  for (e in t) t.hasOwnProperty(e) && A.indexOf(e) < 0 && r--;
  return r === 0;
}, ae.API = { events: [] }, ae.version = "3.0.1";
var Xe = ae.API, wu = 1, di = function(t) {
  return t.replace(/\\/g, "\\\\").replace(/\(/g, "\\(").replace(/\)/g, "\\)");
}, Vi = function(t) {
  return t.replace(/\\\\/g, "\\").replace(/\\\(/g, "(").replace(/\\\)/g, ")");
}, ge = function(t) {
  return t.toFixed(2);
}, xn = function(t) {
  return t.toFixed(5);
};
Xe.__acroform__ = {};
var jt = function(t, e) {
  t.prototype = Object.create(e.prototype), t.prototype.constructor = t;
}, lf = function(t) {
  return t * wu;
}, Gr = function(t) {
  var e = new _h(), A = $A.internal.getHeight(t) || 0, r = $A.internal.getWidth(t) || 0;
  return e.BBox = [0, 0, Number(ge(r)), Number(ge(A))], e;
}, Y2 = Xe.__acroform__.setBit = function(t, e) {
  if (t = t || 0, e = e || 0, isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.setBit");
  return t |= 1 << e;
}, $2 = Xe.__acroform__.clearBit = function(t, e) {
  if (t = t || 0, e = e || 0, isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.clearBit");
  return t &= ~(1 << e);
}, Z2 = Xe.__acroform__.getBit = function(t, e) {
  if (isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.getBit");
  return (t & 1 << e) == 0 ? 0 : 1;
}, tt = Xe.__acroform__.getBitForPdf = function(t, e) {
  if (isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf");
  return Z2(t, e - 1);
}, rt = Xe.__acroform__.setBitForPdf = function(t, e) {
  if (isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf");
  return Y2(t, e - 1);
}, nt = Xe.__acroform__.clearBitForPdf = function(t, e) {
  if (isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf");
  return $2(t, e - 1);
}, AB = Xe.__acroform__.calculateCoordinates = function(t, e) {
  var A = e.internal.getHorizontalCoordinate, r = e.internal.getVerticalCoordinate, n = t[0], i = t[1], s = t[2], o = t[3], c = {};
  return c.lowerLeft_X = A(n) || 0, c.lowerLeft_Y = r(i + o) || 0, c.upperRight_X = A(n + s) || 0, c.upperRight_Y = r(i) || 0, [Number(ge(c.lowerLeft_X)), Number(ge(c.lowerLeft_Y)), Number(ge(c.upperRight_X)), Number(ge(c.upperRight_Y))];
}, eB = function(t) {
  if (t.appearanceStreamContent) return t.appearanceStreamContent;
  if (t.V || t.DV) {
    var e = [], A = t._V || t.DV, r = Vc(t, A), n = t.scope.internal.getFont(t.fontName, t.fontStyle).id;
    e.push("/Tx BMC"), e.push("q"), e.push("BT"), e.push(t.scope.__private__.encodeColorString(t.color)), e.push("/" + n + " " + ge(r.fontSize) + " Tf"), e.push("1 0 0 1 0 0 Tm"), e.push(r.text), e.push("ET"), e.push("Q"), e.push("EMC");
    var i = Gr(t);
    return i.scope = t.scope, i.stream = e.join(`
`), i;
  }
}, Vc = function(t, e) {
  var A = t.fontSize === 0 ? t.maxFontSize : t.fontSize, r = { text: "", fontSize: "" }, n = (e = (e = e.substr(0, 1) == "(" ? e.substr(1) : e).substr(e.length - 1) == ")" ? e.substr(0, e.length - 1) : e).split(" ");
  n = t.multiline ? n.map(function(x) {
    return x.split(`
`);
  }) : n.map(function(x) {
    return [x];
  });
  var i = A, s = $A.internal.getHeight(t) || 0;
  s = s < 0 ? -s : s;
  var o = $A.internal.getWidth(t) || 0;
  o = o < 0 ? -o : o;
  var c = function(x, F, _) {
    if (x + 1 < n.length) {
      var P = F + " " + n[x + 1][0];
      return ao(P, t, _).width <= o - 4;
    }
    return !1;
  };
  i++;
  A: for (; i > 0; ) {
    e = "", i--;
    var h, p, d = ao("3", t, i).height, w = t.multiline ? s - i : (s - d) / 2, g = w += 2, Q = 0, y = 0, N = 0;
    if (i <= 0) {
      e = `(...) Tj
`, e += "% Width of Text: " + ao(e, t, i = 12).width + ", FieldWidth:" + o + `
`;
      break;
    }
    for (var v = "", U = 0, K = 0; K < n.length; K++) if (n.hasOwnProperty(K)) {
      var j = !1;
      if (n[K].length !== 1 && N !== n[K].length - 1) {
        if ((d + 2) * (U + 2) + 2 > s) continue A;
        v += n[K][N], j = !0, y = K, K--;
      } else {
        v = (v += n[K][N] + " ").substr(v.length - 1) == " " ? v.substr(0, v.length - 1) : v;
        var q = parseInt(K), V = c(q, v, i), z = K >= n.length - 1;
        if (V && !z) {
          v += " ", N = 0;
          continue;
        }
        if (V || z) {
          if (z) y = q;
          else if (t.multiline && (d + 2) * (U + 2) + 2 > s) continue A;
        } else {
          if (!t.multiline || (d + 2) * (U + 2) + 2 > s) continue A;
          y = q;
        }
      }
      for (var H = "", G = Q; G <= y; G++) {
        var tA = n[G];
        if (t.multiline) {
          if (G === y) {
            H += tA[N] + " ", N = (N + 1) % tA.length;
            continue;
          }
          if (G === Q) {
            H += tA[tA.length - 1] + " ";
            continue;
          }
        }
        H += tA[0] + " ";
      }
      switch (H = H.substr(H.length - 1) == " " ? H.substr(0, H.length - 1) : H, p = ao(H, t, i).width, t.textAlign) {
        case "right":
          h = o - p - 2;
          break;
        case "center":
          h = (o - p) / 2;
          break;
        case "left":
        default:
          h = 2;
      }
      e += ge(h) + " " + ge(g) + ` Td
`, e += "(" + di(H) + `) Tj
`, e += -ge(h) + ` 0 Td
`, g = -(i + 2), p = 0, Q = j ? y : y + 1, U++, v = "";
    }
    break;
  }
  return r.text = e, r.fontSize = i, r;
}, ao = function(t, e, A) {
  var r = e.scope.internal.getFont(e.fontName, e.fontStyle), n = e.scope.getStringUnitWidth(t, { font: r, fontSize: parseFloat(A), charSpace: 0 }) * parseFloat(A);
  return { height: e.scope.getStringUnitWidth("3", { font: r, fontSize: parseFloat(A), charSpace: 0 }) * parseFloat(A) * 1.5, width: n };
}, tB = { fields: [], xForms: [], acroFormDictionaryRoot: null, printedOut: !1, internal: null, isInitialized: !1 }, rB = function(t, e) {
  var A = { type: "reference", object: t };
  e.internal.getPageInfo(t.page).pageContext.annotations.find(function(r) {
    return r.type === A.type && r.object === A.object;
  }) === void 0 && e.internal.getPageInfo(t.page).pageContext.annotations.push(A);
}, nB = function(t, e) {
  for (var A in t) if (t.hasOwnProperty(A)) {
    var r = A, n = t[A];
    e.internal.newObjectDeferredBegin(n.objId, !0), Se(n) === "object" && typeof n.putStream == "function" && n.putStream(), delete t[r];
  }
}, iB = function(t, e) {
  if (e.scope = t, t.internal !== void 0 && (t.internal.acroformPlugin === void 0 || t.internal.acroformPlugin.isInitialized === !1)) {
    if (Ir.FieldNum = 0, t.internal.acroformPlugin = JSON.parse(JSON.stringify(tB)), t.internal.acroformPlugin.acroFormDictionaryRoot) throw new Error("Exception while creating AcroformDictionary");
    wu = t.internal.scaleFactor, t.internal.acroformPlugin.acroFormDictionaryRoot = new Th(), t.internal.acroformPlugin.acroFormDictionaryRoot.scope = t, t.internal.acroformPlugin.acroFormDictionaryRoot._eventID = t.internal.events.subscribe("postPutResources", function() {
      (function(A) {
        A.internal.events.unsubscribe(A.internal.acroformPlugin.acroFormDictionaryRoot._eventID), delete A.internal.acroformPlugin.acroFormDictionaryRoot._eventID, A.internal.acroformPlugin.printedOut = !0;
      })(t);
    }), t.internal.events.subscribe("buildDocument", function() {
      (function(A) {
        A.internal.acroformPlugin.acroFormDictionaryRoot.objId = void 0;
        var r = A.internal.acroformPlugin.acroFormDictionaryRoot.Fields;
        for (var n in r) if (r.hasOwnProperty(n)) {
          var i = r[n];
          i.objId = void 0, i.hasAnnotation && rB(i, A);
        }
      })(t);
    }), t.internal.events.subscribe("putCatalog", function() {
      (function(A) {
        if (A.internal.acroformPlugin.acroFormDictionaryRoot === void 0) throw new Error("putCatalogCallback: Root missing.");
        A.internal.write("/AcroForm " + A.internal.acroformPlugin.acroFormDictionaryRoot.objId + " 0 R");
      })(t);
    }), t.internal.events.subscribe("postPutPages", function(A) {
      (function(r, n) {
        var i = !r;
        for (var s in r || (n.internal.newObjectDeferredBegin(n.internal.acroformPlugin.acroFormDictionaryRoot.objId, !0), n.internal.acroformPlugin.acroFormDictionaryRoot.putStream()), r = r || n.internal.acroformPlugin.acroFormDictionaryRoot.Kids) if (r.hasOwnProperty(s)) {
          var o = r[s], c = [], h = o.Rect;
          if (o.Rect && (o.Rect = AB(o.Rect, n)), n.internal.newObjectDeferredBegin(o.objId, !0), o.DA = $A.createDefaultAppearanceStream(o), Se(o) === "object" && typeof o.getKeyValueListForStream == "function" && (c = o.getKeyValueListForStream()), o.Rect = h, o.hasAppearanceStream && !o.appearanceStreamContent) {
            var p = eB(o);
            c.push({ key: "AP", value: "<</N " + p + ">>" }), n.internal.acroformPlugin.xForms.push(p);
          }
          if (o.appearanceStreamContent) {
            var d = "";
            for (var w in o.appearanceStreamContent) if (o.appearanceStreamContent.hasOwnProperty(w)) {
              var g = o.appearanceStreamContent[w];
              if (d += "/" + w + " ", d += "<<", Object.keys(g).length >= 1 || Array.isArray(g)) {
                for (var s in g) if (g.hasOwnProperty(s)) {
                  var Q = g[s];
                  typeof Q == "function" && (Q = Q.call(n, o)), d += "/" + s + " " + Q + " ", n.internal.acroformPlugin.xForms.indexOf(Q) >= 0 || n.internal.acroformPlugin.xForms.push(Q);
                }
              } else typeof (Q = g) == "function" && (Q = Q.call(n, o)), d += "/" + s + " " + Q, n.internal.acroformPlugin.xForms.indexOf(Q) >= 0 || n.internal.acroformPlugin.xForms.push(Q);
              d += ">>";
            }
            c.push({ key: "AP", value: `<<
` + d + ">>" });
          }
          n.internal.putStream({ additionalKeyValues: c, objectId: o.objId }), n.internal.out("endobj");
        }
        i && nB(n.internal.acroformPlugin.xForms, n);
      })(A, t);
    }), t.internal.acroformPlugin.isInitialized = !0;
  }
}, kh = Xe.__acroform__.arrayToPdfArray = function(t, e, A) {
  var r = function(s) {
    return s;
  };
  if (Array.isArray(t)) {
    for (var n = "[", i = 0; i < t.length; i++) switch (i !== 0 && (n += " "), Se(t[i])) {
      case "boolean":
      case "number":
      case "object":
        n += t[i].toString();
        break;
      case "string":
        t[i].substr(0, 1) !== "/" ? (e !== void 0 && A && (r = A.internal.getEncryptor(e)), n += "(" + di(r(t[i].toString())) + ")") : n += t[i].toString();
    }
    return n += "]";
  }
  throw new Error("Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray");
}, cc = function(t, e, A) {
  var r = function(n) {
    return n;
  };
  return e !== void 0 && A && (r = A.internal.getEncryptor(e)), (t = t || "").toString(), t = "(" + di(r(t)) + ")";
}, Vr = function() {
  this._objId = void 0, this._scope = void 0, Object.defineProperty(this, "objId", { get: function() {
    if (this._objId === void 0) {
      if (this.scope === void 0) return;
      this._objId = this.scope.internal.newObjectDeferred();
    }
    return this._objId;
  }, set: function(t) {
    this._objId = t;
  } }), Object.defineProperty(this, "scope", { value: this._scope, writable: !0 });
};
Vr.prototype.toString = function() {
  return this.objId + " 0 R";
}, Vr.prototype.putStream = function() {
  var t = this.getKeyValueListForStream();
  this.scope.internal.putStream({ data: this.stream, additionalKeyValues: t, objectId: this.objId }), this.scope.internal.out("endobj");
}, Vr.prototype.getKeyValueListForStream = function() {
  var t = [], e = Object.getOwnPropertyNames(this).filter(function(i) {
    return i != "content" && i != "appearanceStreamContent" && i != "scope" && i != "objId" && i.substring(0, 1) != "_";
  });
  for (var A in e) if (Object.getOwnPropertyDescriptor(this, e[A]).configurable === !1) {
    var r = e[A], n = this[r];
    n && (Array.isArray(n) ? t.push({ key: r, value: kh(n, this.objId, this.scope) }) : n instanceof Vr ? (n.scope = this.scope, t.push({ key: r, value: n.objId + " 0 R" })) : typeof n != "function" && t.push({ key: r, value: n }));
  }
  return t;
};
var _h = function() {
  Vr.call(this), Object.defineProperty(this, "Type", { value: "/XObject", configurable: !1, writable: !0 }), Object.defineProperty(this, "Subtype", { value: "/Form", configurable: !1, writable: !0 }), Object.defineProperty(this, "FormType", { value: 1, configurable: !1, writable: !0 });
  var t, e = [];
  Object.defineProperty(this, "BBox", { configurable: !1, get: function() {
    return e;
  }, set: function(A) {
    e = A;
  } }), Object.defineProperty(this, "Resources", { value: "2 0 R", configurable: !1, writable: !0 }), Object.defineProperty(this, "stream", { enumerable: !1, configurable: !0, set: function(A) {
    t = A.trim();
  }, get: function() {
    return t || null;
  } });
};
jt(_h, Vr);
var Th = function() {
  Vr.call(this);
  var t, e = [];
  Object.defineProperty(this, "Kids", { enumerable: !1, configurable: !0, get: function() {
    return e.length > 0 ? e : void 0;
  } }), Object.defineProperty(this, "Fields", { enumerable: !1, configurable: !1, get: function() {
    return e;
  } }), Object.defineProperty(this, "DA", { enumerable: !1, configurable: !1, get: function() {
    if (t) {
      var A = function(r) {
        return r;
      };
      return this.scope && (A = this.scope.internal.getEncryptor(this.objId)), "(" + di(A(t)) + ")";
    }
  }, set: function(A) {
    t = A;
  } });
};
jt(Th, Vr);
var Ir = function t() {
  Vr.call(this);
  var e = 4;
  Object.defineProperty(this, "F", { enumerable: !1, configurable: !1, get: function() {
    return e;
  }, set: function(v) {
    if (isNaN(v)) throw new Error('Invalid value "' + v + '" for attribute F supplied.');
    e = v;
  } }), Object.defineProperty(this, "showWhenPrinted", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(e, 3);
  }, set: function(v) {
    v ? this.F = rt(e, 3) : this.F = nt(e, 3);
  } });
  var A = 0;
  Object.defineProperty(this, "Ff", { enumerable: !1, configurable: !1, get: function() {
    return A;
  }, set: function(v) {
    if (isNaN(v)) throw new Error('Invalid value "' + v + '" for attribute Ff supplied.');
    A = v;
  } });
  var r = [];
  Object.defineProperty(this, "Rect", { enumerable: !1, configurable: !1, get: function() {
    if (r.length !== 0) return r;
  }, set: function(v) {
    r = v !== void 0 ? v : [];
  } }), Object.defineProperty(this, "x", { enumerable: !0, configurable: !0, get: function() {
    return !r || isNaN(r[0]) ? 0 : r[0];
  }, set: function(v) {
    r[0] = v;
  } }), Object.defineProperty(this, "y", { enumerable: !0, configurable: !0, get: function() {
    return !r || isNaN(r[1]) ? 0 : r[1];
  }, set: function(v) {
    r[1] = v;
  } }), Object.defineProperty(this, "width", { enumerable: !0, configurable: !0, get: function() {
    return !r || isNaN(r[2]) ? 0 : r[2];
  }, set: function(v) {
    r[2] = v;
  } }), Object.defineProperty(this, "height", { enumerable: !0, configurable: !0, get: function() {
    return !r || isNaN(r[3]) ? 0 : r[3];
  }, set: function(v) {
    r[3] = v;
  } });
  var n = "";
  Object.defineProperty(this, "FT", { enumerable: !0, configurable: !1, get: function() {
    return n;
  }, set: function(v) {
    switch (v) {
      case "/Btn":
      case "/Tx":
      case "/Ch":
      case "/Sig":
        n = v;
        break;
      default:
        throw new Error('Invalid value "' + v + '" for attribute FT supplied.');
    }
  } });
  var i = null;
  Object.defineProperty(this, "T", { enumerable: !0, configurable: !1, get: function() {
    if (!i || i.length < 1) {
      if (this instanceof Vo) return;
      i = "FieldObject" + t.FieldNum++;
    }
    var v = function(U) {
      return U;
    };
    return this.scope && (v = this.scope.internal.getEncryptor(this.objId)), "(" + di(v(i)) + ")";
  }, set: function(v) {
    i = v.toString();
  } }), Object.defineProperty(this, "fieldName", { configurable: !0, enumerable: !0, get: function() {
    return i;
  }, set: function(v) {
    i = v;
  } });
  var s = "helvetica";
  Object.defineProperty(this, "fontName", { enumerable: !0, configurable: !0, get: function() {
    return s;
  }, set: function(v) {
    s = v;
  } });
  var o = "normal";
  Object.defineProperty(this, "fontStyle", { enumerable: !0, configurable: !0, get: function() {
    return o;
  }, set: function(v) {
    o = v;
  } });
  var c = 0;
  Object.defineProperty(this, "fontSize", { enumerable: !0, configurable: !0, get: function() {
    return c;
  }, set: function(v) {
    c = v;
  } });
  var h = void 0;
  Object.defineProperty(this, "maxFontSize", { enumerable: !0, configurable: !0, get: function() {
    return h === void 0 ? 50 / wu : h;
  }, set: function(v) {
    h = v;
  } });
  var p = "black";
  Object.defineProperty(this, "color", { enumerable: !0, configurable: !0, get: function() {
    return p;
  }, set: function(v) {
    p = v;
  } });
  var d = "/F1 0 Tf 0 g";
  Object.defineProperty(this, "DA", { enumerable: !0, configurable: !1, get: function() {
    if (!(!d || this instanceof Vo || this instanceof ci)) return cc(d, this.objId, this.scope);
  }, set: function(v) {
    v = v.toString(), d = v;
  } });
  var w = null;
  Object.defineProperty(this, "DV", { enumerable: !1, configurable: !1, get: function() {
    if (w) return this instanceof Bt ? w : cc(w, this.objId, this.scope);
  }, set: function(v) {
    v = v.toString(), w = this instanceof Bt ? v : v.substr(0, 1) === "(" ? Vi(v.substr(1, v.length - 2)) : Vi(v);
  } }), Object.defineProperty(this, "defaultValue", { enumerable: !0, configurable: !0, get: function() {
    return this instanceof Bt ? Vi(w.substr(1, w.length - 1)) : w;
  }, set: function(v) {
    v = v.toString(), w = this instanceof Bt ? "/" + v : v;
  } });
  var g = null;
  Object.defineProperty(this, "_V", { enumerable: !1, configurable: !1, get: function() {
    if (g) return g;
  }, set: function(v) {
    this.V = v;
  } }), Object.defineProperty(this, "V", { enumerable: !1, configurable: !1, get: function() {
    if (g) return this instanceof Bt ? g : cc(g, this.objId, this.scope);
  }, set: function(v) {
    v = v.toString(), g = this instanceof Bt ? v : v.substr(0, 1) === "(" ? Vi(v.substr(1, v.length - 2)) : Vi(v);
  } }), Object.defineProperty(this, "value", { enumerable: !0, configurable: !0, get: function() {
    return this instanceof Bt ? Vi(g.substr(1, g.length - 1)) : g;
  }, set: function(v) {
    v = v.toString(), g = this instanceof Bt ? "/" + v : v;
  } }), Object.defineProperty(this, "hasAnnotation", { enumerable: !0, configurable: !0, get: function() {
    return this.Rect;
  } }), Object.defineProperty(this, "Type", { enumerable: !0, configurable: !1, get: function() {
    return this.hasAnnotation ? "/Annot" : null;
  } }), Object.defineProperty(this, "Subtype", { enumerable: !0, configurable: !1, get: function() {
    return this.hasAnnotation ? "/Widget" : null;
  } });
  var Q, y = !1;
  Object.defineProperty(this, "hasAppearanceStream", { enumerable: !0, configurable: !0, get: function() {
    return y;
  }, set: function(v) {
    v = !!v, y = v;
  } }), Object.defineProperty(this, "page", { enumerable: !0, configurable: !0, get: function() {
    if (Q) return Q;
  }, set: function(v) {
    Q = v;
  } }), Object.defineProperty(this, "readOnly", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 1);
  }, set: function(v) {
    v ? this.Ff = rt(this.Ff, 1) : this.Ff = nt(this.Ff, 1);
  } }), Object.defineProperty(this, "required", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 2);
  }, set: function(v) {
    v ? this.Ff = rt(this.Ff, 2) : this.Ff = nt(this.Ff, 2);
  } }), Object.defineProperty(this, "noExport", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 3);
  }, set: function(v) {
    v ? this.Ff = rt(this.Ff, 3) : this.Ff = nt(this.Ff, 3);
  } });
  var N = null;
  Object.defineProperty(this, "Q", { enumerable: !0, configurable: !1, get: function() {
    if (N !== null) return N;
  }, set: function(v) {
    if ([0, 1, 2].indexOf(v) === -1) throw new Error('Invalid value "' + v + '" for attribute Q supplied.');
    N = v;
  } }), Object.defineProperty(this, "textAlign", { get: function() {
    var v;
    switch (N) {
      case 0:
      default:
        v = "left";
        break;
      case 1:
        v = "center";
        break;
      case 2:
        v = "right";
    }
    return v;
  }, configurable: !0, enumerable: !0, set: function(v) {
    switch (v) {
      case "right":
      case 2:
        N = 2;
        break;
      case "center":
      case 1:
        N = 1;
        break;
      case "left":
      case 0:
      default:
        N = 0;
    }
  } });
};
jt(Ir, Vr);
var ia = function() {
  Ir.call(this), this.FT = "/Ch", this.V = "()", this.fontName = "zapfdingbats";
  var t = 0;
  Object.defineProperty(this, "TI", { enumerable: !0, configurable: !1, get: function() {
    return t;
  }, set: function(A) {
    t = A;
  } }), Object.defineProperty(this, "topIndex", { enumerable: !0, configurable: !0, get: function() {
    return t;
  }, set: function(A) {
    t = A;
  } });
  var e = [];
  Object.defineProperty(this, "Opt", { enumerable: !0, configurable: !1, get: function() {
    return kh(e, this.objId, this.scope);
  }, set: function(A) {
    var r, n;
    n = [], typeof (r = A) == "string" && (n = function(i, s, o) {
      o || (o = 1);
      for (var c, h = []; c = s.exec(i); ) h.push(c[o]);
      return h;
    }(r, /\((.*?)\)/g)), e = n;
  } }), this.getOptions = function() {
    return e;
  }, this.setOptions = function(A) {
    e = A, this.sort && e.sort();
  }, this.addOption = function(A) {
    A = (A = A || "").toString(), e.push(A), this.sort && e.sort();
  }, this.removeOption = function(A, r) {
    for (r = r || !1, A = (A = A || "").toString(); e.indexOf(A) !== -1 && (e.splice(e.indexOf(A), 1), r !== !1); ) ;
  }, Object.defineProperty(this, "combo", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 18);
  }, set: function(A) {
    A ? this.Ff = rt(this.Ff, 18) : this.Ff = nt(this.Ff, 18);
  } }), Object.defineProperty(this, "edit", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 19);
  }, set: function(A) {
    this.combo === !0 && (A ? this.Ff = rt(this.Ff, 19) : this.Ff = nt(this.Ff, 19));
  } }), Object.defineProperty(this, "sort", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 20);
  }, set: function(A) {
    A ? (this.Ff = rt(this.Ff, 20), e.sort()) : this.Ff = nt(this.Ff, 20);
  } }), Object.defineProperty(this, "multiSelect", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 22);
  }, set: function(A) {
    A ? this.Ff = rt(this.Ff, 22) : this.Ff = nt(this.Ff, 22);
  } }), Object.defineProperty(this, "doNotSpellCheck", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 23);
  }, set: function(A) {
    A ? this.Ff = rt(this.Ff, 23) : this.Ff = nt(this.Ff, 23);
  } }), Object.defineProperty(this, "commitOnSelChange", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 27);
  }, set: function(A) {
    A ? this.Ff = rt(this.Ff, 27) : this.Ff = nt(this.Ff, 27);
  } }), this.hasAppearanceStream = !1;
};
jt(ia, Ir);
var aa = function() {
  ia.call(this), this.fontName = "helvetica", this.combo = !1;
};
jt(aa, ia);
var sa = function() {
  aa.call(this), this.combo = !0;
};
jt(sa, aa);
var No = function() {
  sa.call(this), this.edit = !0;
};
jt(No, sa);
var Bt = function() {
  Ir.call(this), this.FT = "/Btn", Object.defineProperty(this, "noToggleToOff", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 15);
  }, set: function(A) {
    A ? this.Ff = rt(this.Ff, 15) : this.Ff = nt(this.Ff, 15);
  } }), Object.defineProperty(this, "radio", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 16);
  }, set: function(A) {
    A ? this.Ff = rt(this.Ff, 16) : this.Ff = nt(this.Ff, 16);
  } }), Object.defineProperty(this, "pushButton", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 17);
  }, set: function(A) {
    A ? this.Ff = rt(this.Ff, 17) : this.Ff = nt(this.Ff, 17);
  } }), Object.defineProperty(this, "radioIsUnison", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 26);
  }, set: function(A) {
    A ? this.Ff = rt(this.Ff, 26) : this.Ff = nt(this.Ff, 26);
  } });
  var t, e = {};
  Object.defineProperty(this, "MK", { enumerable: !1, configurable: !1, get: function() {
    var A = function(i) {
      return i;
    };
    if (this.scope && (A = this.scope.internal.getEncryptor(this.objId)), Object.keys(e).length !== 0) {
      var r, n = [];
      for (r in n.push("<<"), e) n.push("/" + r + " (" + di(A(e[r])) + ")");
      return n.push(">>"), n.join(`
`);
    }
  }, set: function(A) {
    Se(A) === "object" && (e = A);
  } }), Object.defineProperty(this, "caption", { enumerable: !0, configurable: !0, get: function() {
    return e.CA || "";
  }, set: function(A) {
    typeof A == "string" && (e.CA = A);
  } }), Object.defineProperty(this, "AS", { enumerable: !1, configurable: !1, get: function() {
    return t;
  }, set: function(A) {
    t = A;
  } }), Object.defineProperty(this, "appearanceState", { enumerable: !0, configurable: !0, get: function() {
    return t.substr(1, t.length - 1);
  }, set: function(A) {
    t = "/" + A;
  } });
};
jt(Bt, Ir);
var ko = function() {
  Bt.call(this), this.pushButton = !0;
};
jt(ko, Bt);
var oa = function() {
  Bt.call(this), this.radio = !0, this.pushButton = !1;
  var t = [];
  Object.defineProperty(this, "Kids", { enumerable: !0, configurable: !1, get: function() {
    return t;
  }, set: function(e) {
    t = e !== void 0 ? e : [];
  } });
};
jt(oa, Bt);
var Vo = function() {
  var t, e;
  Ir.call(this), Object.defineProperty(this, "Parent", { enumerable: !1, configurable: !1, get: function() {
    return t;
  }, set: function(n) {
    t = n;
  } }), Object.defineProperty(this, "optionName", { enumerable: !1, configurable: !0, get: function() {
    return e;
  }, set: function(n) {
    e = n;
  } });
  var A, r = {};
  Object.defineProperty(this, "MK", { enumerable: !1, configurable: !1, get: function() {
    var n = function(o) {
      return o;
    };
    this.scope && (n = this.scope.internal.getEncryptor(this.objId));
    var i, s = [];
    for (i in s.push("<<"), r) s.push("/" + i + " (" + di(n(r[i])) + ")");
    return s.push(">>"), s.join(`
`);
  }, set: function(n) {
    Se(n) === "object" && (r = n);
  } }), Object.defineProperty(this, "caption", { enumerable: !0, configurable: !0, get: function() {
    return r.CA || "";
  }, set: function(n) {
    typeof n == "string" && (r.CA = n);
  } }), Object.defineProperty(this, "AS", { enumerable: !1, configurable: !1, get: function() {
    return A;
  }, set: function(n) {
    A = n;
  } }), Object.defineProperty(this, "appearanceState", { enumerable: !0, configurable: !0, get: function() {
    return A.substr(1, A.length - 1);
  }, set: function(n) {
    A = "/" + n;
  } }), this.caption = "l", this.appearanceState = "Off", this._AppearanceType = $A.RadioButton.Circle, this.appearanceStreamContent = this._AppearanceType.createAppearanceStream(this.optionName);
};
jt(Vo, Ir), oa.prototype.setAppearance = function(t) {
  if (!("createAppearanceStream" in t) || !("getCA" in t)) throw new Error("Couldn't assign Appearance to RadioButton. Appearance was Invalid!");
  for (var e in this.Kids) if (this.Kids.hasOwnProperty(e)) {
    var A = this.Kids[e];
    A.appearanceStreamContent = t.createAppearanceStream(A.optionName), A.caption = t.getCA();
  }
}, oa.prototype.createOption = function(t) {
  var e = new Vo();
  return e.Parent = this, e.optionName = t, this.Kids.push(e), aB.call(this.scope, e), e;
};
var _o = function() {
  Bt.call(this), this.fontName = "zapfdingbats", this.caption = "3", this.appearanceState = "On", this.value = "On", this.textAlign = "center", this.appearanceStreamContent = $A.CheckBox.createAppearanceStream();
};
jt(_o, Bt);
var ci = function() {
  Ir.call(this), this.FT = "/Tx", Object.defineProperty(this, "multiline", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 13);
  }, set: function(e) {
    e ? this.Ff = rt(this.Ff, 13) : this.Ff = nt(this.Ff, 13);
  } }), Object.defineProperty(this, "fileSelect", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 21);
  }, set: function(e) {
    e ? this.Ff = rt(this.Ff, 21) : this.Ff = nt(this.Ff, 21);
  } }), Object.defineProperty(this, "doNotSpellCheck", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 23);
  }, set: function(e) {
    e ? this.Ff = rt(this.Ff, 23) : this.Ff = nt(this.Ff, 23);
  } }), Object.defineProperty(this, "doNotScroll", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 24);
  }, set: function(e) {
    e ? this.Ff = rt(this.Ff, 24) : this.Ff = nt(this.Ff, 24);
  } }), Object.defineProperty(this, "comb", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 25);
  }, set: function(e) {
    e ? this.Ff = rt(this.Ff, 25) : this.Ff = nt(this.Ff, 25);
  } }), Object.defineProperty(this, "richText", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 26);
  }, set: function(e) {
    e ? this.Ff = rt(this.Ff, 26) : this.Ff = nt(this.Ff, 26);
  } });
  var t = null;
  Object.defineProperty(this, "MaxLen", { enumerable: !0, configurable: !1, get: function() {
    return t;
  }, set: function(e) {
    t = e;
  } }), Object.defineProperty(this, "maxLength", { enumerable: !0, configurable: !0, get: function() {
    return t;
  }, set: function(e) {
    Number.isInteger(e) && (t = e);
  } }), Object.defineProperty(this, "hasAppearanceStream", { enumerable: !0, configurable: !0, get: function() {
    return this.V || this.DV;
  } });
};
jt(ci, Ir);
var To = function() {
  ci.call(this), Object.defineProperty(this, "password", { enumerable: !0, configurable: !0, get: function() {
    return !!tt(this.Ff, 14);
  }, set: function(t) {
    t ? this.Ff = rt(this.Ff, 14) : this.Ff = nt(this.Ff, 14);
  } }), this.password = !0;
};
jt(To, ci);
var $A = { CheckBox: { createAppearanceStream: function() {
  return { N: { On: $A.CheckBox.YesNormal }, D: { On: $A.CheckBox.YesPushDown, Off: $A.CheckBox.OffPushDown } };
}, YesPushDown: function(t) {
  var e = Gr(t);
  e.scope = t.scope;
  var A = [], r = t.scope.internal.getFont(t.fontName, t.fontStyle).id, n = t.scope.__private__.encodeColorString(t.color), i = Vc(t, t.caption);
  return A.push("0.749023 g"), A.push("0 0 " + ge($A.internal.getWidth(t)) + " " + ge($A.internal.getHeight(t)) + " re"), A.push("f"), A.push("BMC"), A.push("q"), A.push("0 0 1 rg"), A.push("/" + r + " " + ge(i.fontSize) + " Tf " + n), A.push("BT"), A.push(i.text), A.push("ET"), A.push("Q"), A.push("EMC"), e.stream = A.join(`
`), e;
}, YesNormal: function(t) {
  var e = Gr(t);
  e.scope = t.scope;
  var A = t.scope.internal.getFont(t.fontName, t.fontStyle).id, r = t.scope.__private__.encodeColorString(t.color), n = [], i = $A.internal.getHeight(t), s = $A.internal.getWidth(t), o = Vc(t, t.caption);
  return n.push("1 g"), n.push("0 0 " + ge(s) + " " + ge(i) + " re"), n.push("f"), n.push("q"), n.push("0 0 1 rg"), n.push("0 0 " + ge(s - 1) + " " + ge(i - 1) + " re"), n.push("W"), n.push("n"), n.push("0 g"), n.push("BT"), n.push("/" + A + " " + ge(o.fontSize) + " Tf " + r), n.push(o.text), n.push("ET"), n.push("Q"), e.stream = n.join(`
`), e;
}, OffPushDown: function(t) {
  var e = Gr(t);
  e.scope = t.scope;
  var A = [];
  return A.push("0.749023 g"), A.push("0 0 " + ge($A.internal.getWidth(t)) + " " + ge($A.internal.getHeight(t)) + " re"), A.push("f"), e.stream = A.join(`
`), e;
} }, RadioButton: { Circle: { createAppearanceStream: function(t) {
  var e = { D: { Off: $A.RadioButton.Circle.OffPushDown }, N: {} };
  return e.N[t] = $A.RadioButton.Circle.YesNormal, e.D[t] = $A.RadioButton.Circle.YesPushDown, e;
}, getCA: function() {
  return "l";
}, YesNormal: function(t) {
  var e = Gr(t);
  e.scope = t.scope;
  var A = [], r = $A.internal.getWidth(t) <= $A.internal.getHeight(t) ? $A.internal.getWidth(t) / 4 : $A.internal.getHeight(t) / 4;
  r = Number((0.9 * r).toFixed(5));
  var n = $A.internal.Bezier_C, i = Number((r * n).toFixed(5));
  return A.push("q"), A.push("1 0 0 1 " + xn($A.internal.getWidth(t) / 2) + " " + xn($A.internal.getHeight(t) / 2) + " cm"), A.push(r + " 0 m"), A.push(r + " " + i + " " + i + " " + r + " 0 " + r + " c"), A.push("-" + i + " " + r + " -" + r + " " + i + " -" + r + " 0 c"), A.push("-" + r + " -" + i + " -" + i + " -" + r + " 0 -" + r + " c"), A.push(i + " -" + r + " " + r + " -" + i + " " + r + " 0 c"), A.push("f"), A.push("Q"), e.stream = A.join(`
`), e;
}, YesPushDown: function(t) {
  var e = Gr(t);
  e.scope = t.scope;
  var A = [], r = $A.internal.getWidth(t) <= $A.internal.getHeight(t) ? $A.internal.getWidth(t) / 4 : $A.internal.getHeight(t) / 4;
  r = Number((0.9 * r).toFixed(5));
  var n = Number((2 * r).toFixed(5)), i = Number((n * $A.internal.Bezier_C).toFixed(5)), s = Number((r * $A.internal.Bezier_C).toFixed(5));
  return A.push("0.749023 g"), A.push("q"), A.push("1 0 0 1 " + xn($A.internal.getWidth(t) / 2) + " " + xn($A.internal.getHeight(t) / 2) + " cm"), A.push(n + " 0 m"), A.push(n + " " + i + " " + i + " " + n + " 0 " + n + " c"), A.push("-" + i + " " + n + " -" + n + " " + i + " -" + n + " 0 c"), A.push("-" + n + " -" + i + " -" + i + " -" + n + " 0 -" + n + " c"), A.push(i + " -" + n + " " + n + " -" + i + " " + n + " 0 c"), A.push("f"), A.push("Q"), A.push("0 g"), A.push("q"), A.push("1 0 0 1 " + xn($A.internal.getWidth(t) / 2) + " " + xn($A.internal.getHeight(t) / 2) + " cm"), A.push(r + " 0 m"), A.push(r + " " + s + " " + s + " " + r + " 0 " + r + " c"), A.push("-" + s + " " + r + " -" + r + " " + s + " -" + r + " 0 c"), A.push("-" + r + " -" + s + " -" + s + " -" + r + " 0 -" + r + " c"), A.push(s + " -" + r + " " + r + " -" + s + " " + r + " 0 c"), A.push("f"), A.push("Q"), e.stream = A.join(`
`), e;
}, OffPushDown: function(t) {
  var e = Gr(t);
  e.scope = t.scope;
  var A = [], r = $A.internal.getWidth(t) <= $A.internal.getHeight(t) ? $A.internal.getWidth(t) / 4 : $A.internal.getHeight(t) / 4;
  r = Number((0.9 * r).toFixed(5));
  var n = Number((2 * r).toFixed(5)), i = Number((n * $A.internal.Bezier_C).toFixed(5));
  return A.push("0.749023 g"), A.push("q"), A.push("1 0 0 1 " + xn($A.internal.getWidth(t) / 2) + " " + xn($A.internal.getHeight(t) / 2) + " cm"), A.push(n + " 0 m"), A.push(n + " " + i + " " + i + " " + n + " 0 " + n + " c"), A.push("-" + i + " " + n + " -" + n + " " + i + " -" + n + " 0 c"), A.push("-" + n + " -" + i + " -" + i + " -" + n + " 0 -" + n + " c"), A.push(i + " -" + n + " " + n + " -" + i + " " + n + " 0 c"), A.push("f"), A.push("Q"), e.stream = A.join(`
`), e;
} }, Cross: { createAppearanceStream: function(t) {
  var e = { D: { Off: $A.RadioButton.Cross.OffPushDown }, N: {} };
  return e.N[t] = $A.RadioButton.Cross.YesNormal, e.D[t] = $A.RadioButton.Cross.YesPushDown, e;
}, getCA: function() {
  return "8";
}, YesNormal: function(t) {
  var e = Gr(t);
  e.scope = t.scope;
  var A = [], r = $A.internal.calculateCross(t);
  return A.push("q"), A.push("1 1 " + ge($A.internal.getWidth(t) - 2) + " " + ge($A.internal.getHeight(t) - 2) + " re"), A.push("W"), A.push("n"), A.push(ge(r.x1.x) + " " + ge(r.x1.y) + " m"), A.push(ge(r.x2.x) + " " + ge(r.x2.y) + " l"), A.push(ge(r.x4.x) + " " + ge(r.x4.y) + " m"), A.push(ge(r.x3.x) + " " + ge(r.x3.y) + " l"), A.push("s"), A.push("Q"), e.stream = A.join(`
`), e;
}, YesPushDown: function(t) {
  var e = Gr(t);
  e.scope = t.scope;
  var A = $A.internal.calculateCross(t), r = [];
  return r.push("0.749023 g"), r.push("0 0 " + ge($A.internal.getWidth(t)) + " " + ge($A.internal.getHeight(t)) + " re"), r.push("f"), r.push("q"), r.push("1 1 " + ge($A.internal.getWidth(t) - 2) + " " + ge($A.internal.getHeight(t) - 2) + " re"), r.push("W"), r.push("n"), r.push(ge(A.x1.x) + " " + ge(A.x1.y) + " m"), r.push(ge(A.x2.x) + " " + ge(A.x2.y) + " l"), r.push(ge(A.x4.x) + " " + ge(A.x4.y) + " m"), r.push(ge(A.x3.x) + " " + ge(A.x3.y) + " l"), r.push("s"), r.push("Q"), e.stream = r.join(`
`), e;
}, OffPushDown: function(t) {
  var e = Gr(t);
  e.scope = t.scope;
  var A = [];
  return A.push("0.749023 g"), A.push("0 0 " + ge($A.internal.getWidth(t)) + " " + ge($A.internal.getHeight(t)) + " re"), A.push("f"), e.stream = A.join(`
`), e;
} } }, createDefaultAppearanceStream: function(t) {
  var e = t.scope.internal.getFont(t.fontName, t.fontStyle).id, A = t.scope.__private__.encodeColorString(t.color);
  return "/" + e + " " + t.fontSize + " Tf " + A;
} };
$A.internal = { Bezier_C: 0.551915024494, calculateCross: function(t) {
  var e = $A.internal.getWidth(t), A = $A.internal.getHeight(t), r = Math.min(e, A);
  return { x1: { x: (e - r) / 2, y: (A - r) / 2 + r }, x2: { x: (e - r) / 2 + r, y: (A - r) / 2 }, x3: { x: (e - r) / 2, y: (A - r) / 2 }, x4: { x: (e - r) / 2 + r, y: (A - r) / 2 + r } };
} }, $A.internal.getWidth = function(t) {
  var e = 0;
  return Se(t) === "object" && (e = lf(t.Rect[2])), e;
}, $A.internal.getHeight = function(t) {
  var e = 0;
  return Se(t) === "object" && (e = lf(t.Rect[3])), e;
};
var aB = Xe.addField = function(t) {
  if (iB(this, t), !(t instanceof Ir)) throw new Error("Invalid argument passed to jsPDF.addField.");
  var e;
  return (e = t).scope.internal.acroformPlugin.printedOut && (e.scope.internal.acroformPlugin.printedOut = !1, e.scope.internal.acroformPlugin.acroFormDictionaryRoot = null), e.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(e), t.page = t.scope.internal.getCurrentPageInfo().pageNumber, this;
};
Xe.AcroFormChoiceField = ia, Xe.AcroFormListBox = aa, Xe.AcroFormComboBox = sa, Xe.AcroFormEditBox = No, Xe.AcroFormButton = Bt, Xe.AcroFormPushButton = ko, Xe.AcroFormRadioButton = oa, Xe.AcroFormCheckBox = _o, Xe.AcroFormTextField = ci, Xe.AcroFormPasswordField = To, Xe.AcroFormAppearance = $A, Xe.AcroForm = { ChoiceField: ia, ListBox: aa, ComboBox: sa, EditBox: No, Button: Bt, PushButton: ko, RadioButton: oa, CheckBox: _o, TextField: ci, PasswordField: To, Appearance: $A }, ae.AcroForm = { ChoiceField: ia, ListBox: aa, ComboBox: sa, EditBox: No, Button: Bt, PushButton: ko, RadioButton: oa, CheckBox: _o, TextField: ci, PasswordField: To, Appearance: $A };
ae.AcroForm;
function Mh(t) {
  return t.reduce(function(e, A, r) {
    return e[A] = r, e;
  }, {});
}
(function(t) {
  t.__addimage__ = {};
  var e = "UNKNOWN", A = { PNG: [[137, 80, 78, 71]], TIFF: [[77, 77, 0, 42], [73, 73, 42, 0]], JPEG: [[255, 216, 255, 224, void 0, void 0, 74, 70, 73, 70, 0], [255, 216, 255, 225, void 0, void 0, 69, 120, 105, 102, 0, 0], [255, 216, 255, 219], [255, 216, 255, 238]], JPEG2000: [[0, 0, 0, 12, 106, 80, 32, 32]], GIF87a: [[71, 73, 70, 56, 55, 97]], GIF89a: [[71, 73, 70, 56, 57, 97]], WEBP: [[82, 73, 70, 70, void 0, void 0, void 0, void 0, 87, 69, 66, 80]], BMP: [[66, 77], [66, 65], [67, 73], [67, 80], [73, 67], [80, 84]] }, r = t.__addimage__.getImageFileTypeByImageData = function(x, F) {
    var _, P, lA, oA, iA, k = e;
    if ((F = F || e) === "RGBA" || x.data !== void 0 && x.data instanceof Uint8ClampedArray && "height" in x && "width" in x) return "RGBA";
    if (V(x)) for (iA in A) for (lA = A[iA], _ = 0; _ < lA.length; _ += 1) {
      for (oA = !0, P = 0; P < lA[_].length; P += 1) if (lA[_][P] !== void 0 && lA[_][P] !== x[P]) {
        oA = !1;
        break;
      }
      if (oA === !0) {
        k = iA;
        break;
      }
    }
    else for (iA in A) for (lA = A[iA], _ = 0; _ < lA.length; _ += 1) {
      for (oA = !0, P = 0; P < lA[_].length; P += 1) if (lA[_][P] !== void 0 && lA[_][P] !== x.charCodeAt(P)) {
        oA = !1;
        break;
      }
      if (oA === !0) {
        k = iA;
        break;
      }
    }
    return k === e && F !== e && (k = F), k;
  }, n = function x(F) {
    for (var _ = this.internal.write, P = this.internal.putStream, lA = (0, this.internal.getFilters)(); lA.indexOf("FlateEncode") !== -1; ) lA.splice(lA.indexOf("FlateEncode"), 1);
    F.objectId = this.internal.newObject();
    var oA = [];
    if (oA.push({ key: "Type", value: "/XObject" }), oA.push({ key: "Subtype", value: "/Image" }), oA.push({ key: "Width", value: F.width }), oA.push({ key: "Height", value: F.height }), F.colorSpace === N.INDEXED ? oA.push({ key: "ColorSpace", value: "[/Indexed /DeviceRGB " + (F.palette.length / 3 - 1) + " " + ("sMask" in F && F.sMask !== void 0 ? F.objectId + 2 : F.objectId + 1) + " 0 R]" }) : (oA.push({ key: "ColorSpace", value: "/" + F.colorSpace }), F.colorSpace === N.DEVICE_CMYK && oA.push({ key: "Decode", value: "[1 0 1 0 1 0 1 0]" })), oA.push({ key: "BitsPerComponent", value: F.bitsPerComponent }), "decodeParameters" in F && F.decodeParameters !== void 0 && oA.push({ key: "DecodeParms", value: "<<" + F.decodeParameters + ">>" }), "transparency" in F && Array.isArray(F.transparency)) {
      for (var iA = "", k = 0, W = F.transparency.length; k < W; k++) iA += F.transparency[k] + " " + F.transparency[k] + " ";
      oA.push({ key: "Mask", value: "[" + iA + "]" });
    }
    F.sMask !== void 0 && oA.push({ key: "SMask", value: F.objectId + 1 + " 0 R" });
    var rA = F.filter !== void 0 ? ["/" + F.filter] : void 0;
    if (P({ data: F.data, additionalKeyValues: oA, alreadyAppliedFilters: rA, objectId: F.objectId }), _("endobj"), "sMask" in F && F.sMask !== void 0) {
      var OA = "/Predictor " + F.predictor + " /Colors 1 /BitsPerComponent " + F.bitsPerComponent + " /Columns " + F.width, L = { width: F.width, height: F.height, colorSpace: "DeviceGray", bitsPerComponent: F.bitsPerComponent, decodeParameters: OA, data: F.sMask };
      "filter" in F && (L.filter = F.filter), x.call(this, L);
    }
    if (F.colorSpace === N.INDEXED) {
      var M = this.internal.newObject();
      P({ data: H(new Uint8Array(F.palette)), objectId: M }), _("endobj");
    }
  }, i = function() {
    var x = this.internal.collections.addImage_images;
    for (var F in x) n.call(this, x[F]);
  }, s = function() {
    var x, F = this.internal.collections.addImage_images, _ = this.internal.write;
    for (var P in F) _("/I" + (x = F[P]).index, x.objectId, "0", "R");
  }, o = function() {
    this.internal.collections.addImage_images || (this.internal.collections.addImage_images = {}, this.internal.events.subscribe("putResources", i), this.internal.events.subscribe("putXobjectDict", s));
  }, c = function() {
    var x = this.internal.collections.addImage_images;
    return o.call(this), x;
  }, h = function() {
    return Object.keys(this.internal.collections.addImage_images).length;
  }, p = function(x) {
    return typeof t["process" + x.toUpperCase()] == "function";
  }, d = function(x) {
    return Se(x) === "object" && x.nodeType === 1;
  }, w = function(x, F) {
    if (x.nodeName === "IMG" && x.hasAttribute("src")) {
      var _ = "" + x.getAttribute("src");
      if (_.indexOf("data:image/") === 0) return es(unescape(_).split("base64,").pop());
      var P = t.loadFile(_, !0);
      if (P !== void 0) return P;
    }
    if (x.nodeName === "CANVAS") {
      if (x.width === 0 || x.height === 0) throw new Error("Given canvas must have data. Canvas width: " + x.width + ", height: " + x.height);
      var lA;
      switch (F) {
        case "PNG":
          lA = "image/png";
          break;
        case "WEBP":
          lA = "image/webp";
          break;
        case "JPEG":
        case "JPG":
        default:
          lA = "image/jpeg";
      }
      return es(x.toDataURL(lA, 1).split("base64,").pop());
    }
  }, g = function(x) {
    var F = this.internal.collections.addImage_images;
    if (F) {
      for (var _ in F) if (x === F[_].alias) return F[_];
    }
  }, Q = function(x, F, _) {
    return x || F || (x = -96, F = -96), x < 0 && (x = -1 * _.width * 72 / x / this.internal.scaleFactor), F < 0 && (F = -1 * _.height * 72 / F / this.internal.scaleFactor), x === 0 && (x = F * _.width / _.height), F === 0 && (F = x * _.height / _.width), [x, F];
  }, y = function(x, F, _, P, lA, oA) {
    var iA = Q.call(this, _, P, lA), k = this.internal.getCoordinateString, W = this.internal.getVerticalCoordinateString, rA = c.call(this);
    if (_ = iA[0], P = iA[1], rA[lA.index] = lA, oA) {
      oA *= Math.PI / 180;
      var OA = Math.cos(oA), L = Math.sin(oA), M = function(J) {
        return J.toFixed(4);
      }, R = [M(OA), M(L), M(-1 * L), M(OA), 0, 0, "cm"];
    }
    this.internal.write("q"), oA ? (this.internal.write([1, "0", "0", 1, k(x), W(F + P), "cm"].join(" ")), this.internal.write(R.join(" ")), this.internal.write([k(_), "0", "0", k(P), "0", "0", "cm"].join(" "))) : this.internal.write([k(_), "0", "0", k(P), k(x), W(F + P), "cm"].join(" ")), this.isAdvancedAPI() && this.internal.write([1, 0, 0, -1, 0, 0, "cm"].join(" ")), this.internal.write("/I" + lA.index + " Do"), this.internal.write("Q");
  }, N = t.color_spaces = { DEVICE_RGB: "DeviceRGB", DEVICE_GRAY: "DeviceGray", DEVICE_CMYK: "DeviceCMYK", CAL_GREY: "CalGray", CAL_RGB: "CalRGB", LAB: "Lab", ICC_BASED: "ICCBased", INDEXED: "Indexed", PATTERN: "Pattern", SEPARATION: "Separation", DEVICE_N: "DeviceN" };
  t.decode = { DCT_DECODE: "DCTDecode", FLATE_DECODE: "FlateDecode", LZW_DECODE: "LZWDecode", JPX_DECODE: "JPXDecode", JBIG2_DECODE: "JBIG2Decode", ASCII85_DECODE: "ASCII85Decode", ASCII_HEX_DECODE: "ASCIIHexDecode", RUN_LENGTH_DECODE: "RunLengthDecode", CCITT_FAX_DECODE: "CCITTFaxDecode" };
  var v = t.image_compression = { NONE: "NONE", FAST: "FAST", MEDIUM: "MEDIUM", SLOW: "SLOW" }, U = t.__addimage__.sHashCode = function(x) {
    var F, _, P = 0;
    if (typeof x == "string") for (_ = x.length, F = 0; F < _; F++) P = (P << 5) - P + x.charCodeAt(F), P |= 0;
    else if (V(x)) for (_ = x.byteLength / 2, F = 0; F < _; F++) P = (P << 5) - P + x[F], P |= 0;
    return P;
  }, K = t.__addimage__.validateStringAsBase64 = function(x) {
    (x = x || "").toString().trim();
    var F = !0;
    return x.length === 0 && (F = !1), x.length % 4 != 0 && (F = !1), /^[A-Za-z0-9+/]+$/.test(x.substr(0, x.length - 2)) === !1 && (F = !1), /^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(x.substr(-2)) === !1 && (F = !1), F;
  }, j = t.__addimage__.extractImageFromDataUrl = function(x) {
    if (x == null || !(x = x.trim()).startsWith("data:")) return null;
    var F = x.indexOf(",");
    return F < 0 ? null : x.substring(0, F).trim().endsWith("base64") ? x.substring(F + 1) : null;
  }, q = t.__addimage__.supportsArrayBuffer = function() {
    return typeof ArrayBuffer < "u" && typeof Uint8Array < "u";
  };
  t.__addimage__.isArrayBuffer = function(x) {
    return q() && x instanceof ArrayBuffer;
  };
  var V = t.__addimage__.isArrayBufferView = function(x) {
    return q() && typeof Uint32Array < "u" && (x instanceof Int8Array || x instanceof Uint8Array || typeof Uint8ClampedArray < "u" && x instanceof Uint8ClampedArray || x instanceof Int16Array || x instanceof Uint16Array || x instanceof Int32Array || x instanceof Uint32Array || x instanceof Float32Array || x instanceof Float64Array);
  }, z = t.__addimage__.binaryStringToUint8Array = function(x) {
    for (var F = x.length, _ = new Uint8Array(F), P = 0; P < F; P++) _[P] = x.charCodeAt(P);
    return _;
  }, H = t.__addimage__.arrayBufferToBinaryString = function(x) {
    for (var F = "", _ = V(x) ? x : new Uint8Array(x), P = 0; P < _.length; P += 8192) F += String.fromCharCode.apply(null, _.subarray(P, P + 8192));
    return F;
  };
  t.addImage = function() {
    var x, F, _, P, lA, oA, iA, k, W;
    if (typeof arguments[1] == "number" ? (F = e, _ = arguments[1], P = arguments[2], lA = arguments[3], oA = arguments[4], iA = arguments[5], k = arguments[6], W = arguments[7]) : (F = arguments[1], _ = arguments[2], P = arguments[3], lA = arguments[4], oA = arguments[5], iA = arguments[6], k = arguments[7], W = arguments[8]), Se(x = arguments[0]) === "object" && !d(x) && "imageData" in x) {
      var rA = x;
      x = rA.imageData, F = rA.format || F || e, _ = rA.x || _ || 0, P = rA.y || P || 0, lA = rA.w || rA.width || lA, oA = rA.h || rA.height || oA, iA = rA.alias || iA, k = rA.compression || k, W = rA.rotation || rA.angle || W;
    }
    var OA = this.internal.getFilters();
    if (k === void 0 && OA.indexOf("FlateEncode") !== -1 && (k = "SLOW"), isNaN(_) || isNaN(P)) throw new Error("Invalid coordinates passed to jsPDF.addImage");
    o.call(this);
    var L = G.call(this, x, F, iA, k);
    return y.call(this, _, P, lA, oA, L, W), this;
  };
  var G = function(x, F, _, P) {
    var lA, oA, iA;
    if (typeof x == "string" && r(x) === e) {
      x = unescape(x);
      var k = tA(x, !1);
      (k !== "" || (k = t.loadFile(x, !0)) !== void 0) && (x = k);
    }
    if (d(x) && (x = w(x, F)), F = r(x, F), !p(F)) throw new Error("addImage does not support files of type '" + F + "', please ensure that a plugin for '" + F + "' support is added.");
    if (((iA = _) == null || iA.length === 0) && (_ = function(W) {
      return typeof W == "string" || V(W) ? U(W) : V(W.data) ? U(W.data) : null;
    }(x)), (lA = g.call(this, _)) || (q() && (x instanceof Uint8Array || F === "RGBA" || (oA = x, x = z(x))), lA = this["process" + F.toUpperCase()](x, h.call(this), _, function(W) {
      return W && typeof W == "string" && (W = W.toUpperCase()), W in t.image_compression ? W : v.NONE;
    }(P), oA)), !lA) throw new Error("An unknown error occurred whilst processing the image.");
    return lA;
  }, tA = t.__addimage__.convertBase64ToBinaryString = function(x, F) {
    F = typeof F != "boolean" || F;
    var _, P = "";
    if (typeof x == "string") {
      var lA;
      _ = (lA = j(x)) !== null && lA !== void 0 ? lA : x;
      try {
        P = es(_);
      } catch (oA) {
        if (F) throw K(_) ? new Error("atob-Error in jsPDF.convertBase64ToBinaryString " + oA.message) : new Error("Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString ");
      }
    }
    return P;
  };
  t.getImageProperties = function(x) {
    var F, _, P = "";
    if (d(x) && (x = w(x)), typeof x == "string" && r(x) === e && ((P = tA(x, !1)) === "" && (P = t.loadFile(x) || ""), x = P), _ = r(x), !p(_)) throw new Error("addImage does not support files of type '" + _ + "', please ensure that a plugin for '" + _ + "' support is added.");
    if (!q() || x instanceof Uint8Array || (x = z(x)), !(F = this["process" + _.toUpperCase()](x))) throw new Error("An unknown error occurred whilst processing the image");
    return F.fileType = _, F;
  };
})(ae.API), /**
 * @license
 * Copyright (c) 2014 Steven Spungin (TwelveTone LLC)  steven@twelvetone.tv
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  var e = function(A) {
    if (A !== void 0 && A != "") return !0;
  };
  ae.API.events.push(["addPage", function(A) {
    this.internal.getPageInfo(A.pageNumber).pageContext.annotations = [];
  }]), t.events.push(["putPage", function(A) {
    for (var r, n, i, s = this.internal.getCoordinateString, o = this.internal.getVerticalCoordinateString, c = this.internal.getPageInfoByObjId(A.objId), h = A.pageContext.annotations, p = !1, d = 0; d < h.length && !p; d++) switch ((r = h[d]).type) {
      case "link":
        (e(r.options.url) || e(r.options.pageNumber)) && (p = !0);
        break;
      case "reference":
      case "text":
      case "freetext":
        p = !0;
    }
    if (p != 0) {
      this.internal.write("/Annots [");
      for (var w = 0; w < h.length; w++) {
        r = h[w];
        var g = this.internal.pdfEscape, Q = this.internal.getEncryptor(A.objId);
        switch (r.type) {
          case "reference":
            this.internal.write(" " + r.object.objId + " 0 R ");
            break;
          case "text":
            var y = this.internal.newAdditionalObject(), N = this.internal.newAdditionalObject(), v = this.internal.getEncryptor(y.objId), U = r.title || "Note";
            i = "<</Type /Annot /Subtype /Text " + (n = "/Rect [" + s(r.bounds.x) + " " + o(r.bounds.y + r.bounds.h) + " " + s(r.bounds.x + r.bounds.w) + " " + o(r.bounds.y) + "] ") + "/Contents (" + g(v(r.contents)) + ")", i += " /Popup " + N.objId + " 0 R", i += " /P " + c.objId + " 0 R", i += " /T (" + g(v(U)) + ") >>", y.content = i;
            var K = y.objId + " 0 R";
            i = "<</Type /Annot /Subtype /Popup " + (n = "/Rect [" + s(r.bounds.x + 30) + " " + o(r.bounds.y + r.bounds.h) + " " + s(r.bounds.x + r.bounds.w + 30) + " " + o(r.bounds.y) + "] ") + " /Parent " + K, r.open && (i += " /Open true"), i += " >>", N.content = i, this.internal.write(y.objId, "0 R", N.objId, "0 R");
            break;
          case "freetext":
            n = "/Rect [" + s(r.bounds.x) + " " + o(r.bounds.y) + " " + s(r.bounds.x + r.bounds.w) + " " + o(r.bounds.y + r.bounds.h) + "] ";
            var j = r.color || "#000000";
            i = "<</Type /Annot /Subtype /FreeText " + n + "/Contents (" + g(Q(r.contents)) + ")", i += " /DS(font: Helvetica,sans-serif 12.0pt; text-align:left; color:#" + j + ")", i += " /Border [0 0 0]", i += " >>", this.internal.write(i);
            break;
          case "link":
            if (r.options.name) {
              var q = this.annotations._nameMap[r.options.name];
              r.options.pageNumber = q.page, r.options.top = q.y;
            } else r.options.top || (r.options.top = 0);
            if (n = "/Rect [" + r.finalBounds.x + " " + r.finalBounds.y + " " + r.finalBounds.w + " " + r.finalBounds.h + "] ", i = "", r.options.url) i = "<</Type /Annot /Subtype /Link " + n + "/Border [0 0 0] /A <</S /URI /URI (" + g(Q(r.options.url)) + ") >>";
            else if (r.options.pageNumber)
              switch (i = "<</Type /Annot /Subtype /Link " + n + "/Border [0 0 0] /Dest [" + this.internal.getPageInfo(r.options.pageNumber).objId + " 0 R", r.options.magFactor = r.options.magFactor || "XYZ", r.options.magFactor) {
                case "Fit":
                  i += " /Fit]";
                  break;
                case "FitH":
                  i += " /FitH " + r.options.top + "]";
                  break;
                case "FitV":
                  r.options.left = r.options.left || 0, i += " /FitV " + r.options.left + "]";
                  break;
                case "XYZ":
                default:
                  var V = o(r.options.top);
                  r.options.left = r.options.left || 0, r.options.zoom === void 0 && (r.options.zoom = 0), i += " /XYZ " + r.options.left + " " + V + " " + r.options.zoom + "]";
              }
            i != "" && (i += " >>", this.internal.write(i));
        }
      }
      this.internal.write("]");
    }
  }]), t.createAnnotation = function(A) {
    var r = this.internal.getCurrentPageInfo();
    switch (A.type) {
      case "link":
        this.link(A.bounds.x, A.bounds.y, A.bounds.w, A.bounds.h, A);
        break;
      case "text":
      case "freetext":
        r.pageContext.annotations.push(A);
    }
  }, t.link = function(A, r, n, i, s) {
    var o = this.internal.getCurrentPageInfo(), c = this.internal.getCoordinateString, h = this.internal.getVerticalCoordinateString;
    o.pageContext.annotations.push({ finalBounds: { x: c(A), y: h(r), w: c(A + n), h: h(r + i) }, options: s, type: "link" });
  }, t.textWithLink = function(A, r, n, i) {
    var s, o, c = this.getTextWidth(A), h = this.internal.getLineHeight() / this.internal.scaleFactor;
    if (i.maxWidth !== void 0) {
      o = i.maxWidth;
      var p = this.splitTextToSize(A, o).length;
      s = Math.ceil(h * p);
    } else o = c, s = h;
    return this.text(A, r, n, i), n += 0.2 * h, i.align === "center" && (r -= c / 2), i.align === "right" && (r -= c), this.link(r, n - h, o, s, i), c;
  }, t.getTextWidth = function(A) {
    var r = this.internal.getFontSize();
    return this.getStringUnitWidth(A) * r / this.internal.scaleFactor;
  };
}(ae.API), /**
 * @license
 * Copyright (c) 2017 Aras Abbasi
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  var e = { 1569: [65152], 1570: [65153, 65154], 1571: [65155, 65156], 1572: [65157, 65158], 1573: [65159, 65160], 1574: [65161, 65162, 65163, 65164], 1575: [65165, 65166], 1576: [65167, 65168, 65169, 65170], 1577: [65171, 65172], 1578: [65173, 65174, 65175, 65176], 1579: [65177, 65178, 65179, 65180], 1580: [65181, 65182, 65183, 65184], 1581: [65185, 65186, 65187, 65188], 1582: [65189, 65190, 65191, 65192], 1583: [65193, 65194], 1584: [65195, 65196], 1585: [65197, 65198], 1586: [65199, 65200], 1587: [65201, 65202, 65203, 65204], 1588: [65205, 65206, 65207, 65208], 1589: [65209, 65210, 65211, 65212], 1590: [65213, 65214, 65215, 65216], 1591: [65217, 65218, 65219, 65220], 1592: [65221, 65222, 65223, 65224], 1593: [65225, 65226, 65227, 65228], 1594: [65229, 65230, 65231, 65232], 1601: [65233, 65234, 65235, 65236], 1602: [65237, 65238, 65239, 65240], 1603: [65241, 65242, 65243, 65244], 1604: [65245, 65246, 65247, 65248], 1605: [65249, 65250, 65251, 65252], 1606: [65253, 65254, 65255, 65256], 1607: [65257, 65258, 65259, 65260], 1608: [65261, 65262], 1609: [65263, 65264, 64488, 64489], 1610: [65265, 65266, 65267, 65268], 1649: [64336, 64337], 1655: [64477], 1657: [64358, 64359, 64360, 64361], 1658: [64350, 64351, 64352, 64353], 1659: [64338, 64339, 64340, 64341], 1662: [64342, 64343, 64344, 64345], 1663: [64354, 64355, 64356, 64357], 1664: [64346, 64347, 64348, 64349], 1667: [64374, 64375, 64376, 64377], 1668: [64370, 64371, 64372, 64373], 1670: [64378, 64379, 64380, 64381], 1671: [64382, 64383, 64384, 64385], 1672: [64392, 64393], 1676: [64388, 64389], 1677: [64386, 64387], 1678: [64390, 64391], 1681: [64396, 64397], 1688: [64394, 64395], 1700: [64362, 64363, 64364, 64365], 1702: [64366, 64367, 64368, 64369], 1705: [64398, 64399, 64400, 64401], 1709: [64467, 64468, 64469, 64470], 1711: [64402, 64403, 64404, 64405], 1713: [64410, 64411, 64412, 64413], 1715: [64406, 64407, 64408, 64409], 1722: [64414, 64415], 1723: [64416, 64417, 64418, 64419], 1726: [64426, 64427, 64428, 64429], 1728: [64420, 64421], 1729: [64422, 64423, 64424, 64425], 1733: [64480, 64481], 1734: [64473, 64474], 1735: [64471, 64472], 1736: [64475, 64476], 1737: [64482, 64483], 1739: [64478, 64479], 1740: [64508, 64509, 64510, 64511], 1744: [64484, 64485, 64486, 64487], 1746: [64430, 64431], 1747: [64432, 64433] }, A = { 65247: { 65154: 65269, 65156: 65271, 65160: 65273, 65166: 65275 }, 65248: { 65154: 65270, 65156: 65272, 65160: 65274, 65166: 65276 }, 65165: { 65247: { 65248: { 65258: 65010 } } }, 1617: { 1612: 64606, 1613: 64607, 1614: 64608, 1615: 64609, 1616: 64610 } }, r = { 1612: 64606, 1613: 64607, 1614: 64608, 1615: 64609, 1616: 64610 }, n = [1570, 1571, 1573, 1575];
  t.__arabicParser__ = {};
  var i = t.__arabicParser__.isInArabicSubstitutionA = function(y) {
    return e[y.charCodeAt(0)] !== void 0;
  }, s = t.__arabicParser__.isArabicLetter = function(y) {
    return typeof y == "string" && /^[\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF]+$/.test(y);
  }, o = t.__arabicParser__.isArabicEndLetter = function(y) {
    return s(y) && i(y) && e[y.charCodeAt(0)].length <= 2;
  }, c = t.__arabicParser__.isArabicAlfLetter = function(y) {
    return s(y) && n.indexOf(y.charCodeAt(0)) >= 0;
  };
  t.__arabicParser__.arabicLetterHasIsolatedForm = function(y) {
    return s(y) && i(y) && e[y.charCodeAt(0)].length >= 1;
  };
  var h = t.__arabicParser__.arabicLetterHasFinalForm = function(y) {
    return s(y) && i(y) && e[y.charCodeAt(0)].length >= 2;
  };
  t.__arabicParser__.arabicLetterHasInitialForm = function(y) {
    return s(y) && i(y) && e[y.charCodeAt(0)].length >= 3;
  };
  var p = t.__arabicParser__.arabicLetterHasMedialForm = function(y) {
    return s(y) && i(y) && e[y.charCodeAt(0)].length == 4;
  }, d = t.__arabicParser__.resolveLigatures = function(y) {
    var N = 0, v = A, U = "", K = 0;
    for (N = 0; N < y.length; N += 1) v[y.charCodeAt(N)] !== void 0 ? (K++, typeof (v = v[y.charCodeAt(N)]) == "number" && (U += String.fromCharCode(v), v = A, K = 0), N === y.length - 1 && (v = A, U += y.charAt(N - (K - 1)), N -= K - 1, K = 0)) : (v = A, U += y.charAt(N - K), N -= K, K = 0);
    return U;
  };
  t.__arabicParser__.isArabicDiacritic = function(y) {
    return y !== void 0 && r[y.charCodeAt(0)] !== void 0;
  };
  var w = t.__arabicParser__.getCorrectForm = function(y, N, v) {
    return s(y) ? i(y) === !1 ? -1 : !h(y) || !s(N) && !s(v) || !s(v) && o(N) || o(y) && !s(N) || o(y) && c(N) || o(y) && o(N) ? 0 : p(y) && s(N) && !o(N) && s(v) && h(v) ? 3 : o(y) || !s(v) ? 1 : 2 : -1;
  }, g = function(y) {
    var N = 0, v = 0, U = 0, K = "", j = "", q = "", V = (y = y || "").split("\\s+"), z = [];
    for (N = 0; N < V.length; N += 1) {
      for (z.push(""), v = 0; v < V[N].length; v += 1) K = V[N][v], j = V[N][v - 1], q = V[N][v + 1], s(K) ? (U = w(K, j, q), z[N] += U !== -1 ? String.fromCharCode(e[K.charCodeAt(0)][U]) : K) : z[N] += K;
      z[N] = d(z[N]);
    }
    return z.join(" ");
  }, Q = t.__arabicParser__.processArabic = t.processArabic = function() {
    var y, N = typeof arguments[0] == "string" ? arguments[0] : arguments[0].text, v = [];
    if (Array.isArray(N)) {
      var U = 0;
      for (v = [], U = 0; U < N.length; U += 1) Array.isArray(N[U]) ? v.push([g(N[U][0]), N[U][1], N[U][2]]) : v.push([g(N[U])]);
      y = v;
    } else y = g(N);
    return typeof arguments[0] == "string" ? y : (arguments[0].text = y, arguments[0]);
  };
  t.events.push(["preProcessText", Q]);
}(ae.API), ae.API.autoPrint = function(t) {
  var e;
  switch ((t = t || {}).variant = t.variant || "non-conform", t.variant) {
    case "javascript":
      this.addJS("print({});");
      break;
    case "non-conform":
    default:
      this.internal.events.subscribe("postPutResources", function() {
        e = this.internal.newObject(), this.internal.out("<<"), this.internal.out("/S /Named"), this.internal.out("/Type /Action"), this.internal.out("/N /Print"), this.internal.out(">>"), this.internal.out("endobj");
      }), this.internal.events.subscribe("putCatalog", function() {
        this.internal.out("/OpenAction " + e + " 0 R");
      });
  }
  return this;
}, /**
 * @license
 * Copyright (c) 2014 Steven Spungin (TwelveTone LLC)  steven@twelvetone.tv
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  var e = function() {
    var A = void 0;
    Object.defineProperty(this, "pdf", { get: function() {
      return A;
    }, set: function(o) {
      A = o;
    } });
    var r = 150;
    Object.defineProperty(this, "width", { get: function() {
      return r;
    }, set: function(o) {
      r = isNaN(o) || Number.isInteger(o) === !1 || o < 0 ? 150 : o, this.getContext("2d").pageWrapXEnabled && (this.getContext("2d").pageWrapX = r + 1);
    } });
    var n = 300;
    Object.defineProperty(this, "height", { get: function() {
      return n;
    }, set: function(o) {
      n = isNaN(o) || Number.isInteger(o) === !1 || o < 0 ? 300 : o, this.getContext("2d").pageWrapYEnabled && (this.getContext("2d").pageWrapY = n + 1);
    } });
    var i = [];
    Object.defineProperty(this, "childNodes", { get: function() {
      return i;
    }, set: function(o) {
      i = o;
    } });
    var s = {};
    Object.defineProperty(this, "style", { get: function() {
      return s;
    }, set: function(o) {
      s = o;
    } }), Object.defineProperty(this, "parentNode", {});
  };
  e.prototype.getContext = function(A, r) {
    var n;
    if ((A = A || "2d") !== "2d") return null;
    for (n in r) this.pdf.context2d.hasOwnProperty(n) && (this.pdf.context2d[n] = r[n]);
    return this.pdf.context2d._canvas = this, this.pdf.context2d;
  }, e.prototype.toDataURL = function() {
    throw new Error("toDataURL is not implemented.");
  }, t.events.push(["initialized", function() {
    this.canvas = new e(), this.canvas.pdf = this;
  }]);
}(ae.API), function(t) {
  var e = { left: 0, top: 0, bottom: 0, right: 0 }, A = !1, r = function() {
    this.internal.__cell__ === void 0 && (this.internal.__cell__ = {}, this.internal.__cell__.padding = 3, this.internal.__cell__.headerFunction = void 0, this.internal.__cell__.margins = Object.assign({}, e), this.internal.__cell__.margins.width = this.getPageWidth(), n.call(this));
  }, n = function() {
    this.internal.__cell__.lastCell = new i(), this.internal.__cell__.pages = 1;
  }, i = function() {
    var c = arguments[0];
    Object.defineProperty(this, "x", { enumerable: !0, get: function() {
      return c;
    }, set: function(y) {
      c = y;
    } });
    var h = arguments[1];
    Object.defineProperty(this, "y", { enumerable: !0, get: function() {
      return h;
    }, set: function(y) {
      h = y;
    } });
    var p = arguments[2];
    Object.defineProperty(this, "width", { enumerable: !0, get: function() {
      return p;
    }, set: function(y) {
      p = y;
    } });
    var d = arguments[3];
    Object.defineProperty(this, "height", { enumerable: !0, get: function() {
      return d;
    }, set: function(y) {
      d = y;
    } });
    var w = arguments[4];
    Object.defineProperty(this, "text", { enumerable: !0, get: function() {
      return w;
    }, set: function(y) {
      w = y;
    } });
    var g = arguments[5];
    Object.defineProperty(this, "lineNumber", { enumerable: !0, get: function() {
      return g;
    }, set: function(y) {
      g = y;
    } });
    var Q = arguments[6];
    return Object.defineProperty(this, "align", { enumerable: !0, get: function() {
      return Q;
    }, set: function(y) {
      Q = y;
    } }), this;
  };
  i.prototype.clone = function() {
    return new i(this.x, this.y, this.width, this.height, this.text, this.lineNumber, this.align);
  }, i.prototype.toArray = function() {
    return [this.x, this.y, this.width, this.height, this.text, this.lineNumber, this.align];
  }, t.setHeaderFunction = function(c) {
    return r.call(this), this.internal.__cell__.headerFunction = typeof c == "function" ? c : void 0, this;
  }, t.getTextDimensions = function(c, h) {
    r.call(this);
    var p = (h = h || {}).fontSize || this.getFontSize(), d = h.font || this.getFont(), w = h.scaleFactor || this.internal.scaleFactor, g = 0, Q = 0, y = 0, N = this;
    if (!Array.isArray(c) && typeof c != "string") {
      if (typeof c != "number") throw new Error("getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.");
      c = String(c);
    }
    var v = h.maxWidth;
    v > 0 ? typeof c == "string" ? c = this.splitTextToSize(c, v) : Object.prototype.toString.call(c) === "[object Array]" && (c = c.reduce(function(K, j) {
      return K.concat(N.splitTextToSize(j, v));
    }, [])) : c = Array.isArray(c) ? c : [c];
    for (var U = 0; U < c.length; U++) g < (y = this.getStringUnitWidth(c[U], { font: d }) * p) && (g = y);
    return g !== 0 && (Q = c.length), { w: g /= w, h: Math.max((Q * p * this.getLineHeightFactor() - p * (this.getLineHeightFactor() - 1)) / w, 0) };
  }, t.cellAddPage = function() {
    r.call(this), this.addPage();
    var c = this.internal.__cell__.margins || e;
    return this.internal.__cell__.lastCell = new i(c.left, c.top, void 0, void 0), this.internal.__cell__.pages += 1, this;
  };
  var s = t.cell = function() {
    var c;
    c = arguments[0] instanceof i ? arguments[0] : new i(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]), r.call(this);
    var h = this.internal.__cell__.lastCell, p = this.internal.__cell__.padding, d = this.internal.__cell__.margins || e, w = this.internal.__cell__.tableHeaderRow, g = this.internal.__cell__.printHeaders;
    return h.lineNumber !== void 0 && (h.lineNumber === c.lineNumber ? (c.x = (h.x || 0) + (h.width || 0), c.y = h.y || 0) : h.y + h.height + c.height + d.bottom > this.getPageHeight() ? (this.cellAddPage(), c.y = d.top, g && w && (this.printHeaderRow(c.lineNumber, !0), c.y += w[0].height)) : c.y = h.y + h.height || c.y), c.text[0] !== void 0 && (this.rect(c.x, c.y, c.width, c.height, A === !0 ? "FD" : void 0), c.align === "right" ? this.text(c.text, c.x + c.width - p, c.y + p, { align: "right", baseline: "top" }) : c.align === "center" ? this.text(c.text, c.x + c.width / 2, c.y + p, { align: "center", baseline: "top", maxWidth: c.width - p - p }) : this.text(c.text, c.x + p, c.y + p, { align: "left", baseline: "top", maxWidth: c.width - p - p })), this.internal.__cell__.lastCell = c, this;
  };
  t.table = function(c, h, p, d, w) {
    if (r.call(this), !p) throw new Error("No data for PDF table.");
    var g, Q, y, N, v = [], U = [], K = [], j = {}, q = {}, V = [], z = [], H = (w = w || {}).autoSize || !1, G = w.printHeaders !== !1, tA = w.css && w.css["font-size"] !== void 0 ? 16 * w.css["font-size"] : w.fontSize || 12, x = w.margins || Object.assign({ width: this.getPageWidth() }, e), F = typeof w.padding == "number" ? w.padding : 3, _ = w.headerBackgroundColor || "#c8c8c8", P = w.headerTextColor || "#000";
    if (n.call(this), this.internal.__cell__.printHeaders = G, this.internal.__cell__.margins = x, this.internal.__cell__.table_font_size = tA, this.internal.__cell__.padding = F, this.internal.__cell__.headerBackgroundColor = _, this.internal.__cell__.headerTextColor = P, this.setFontSize(tA), d == null) U = v = Object.keys(p[0]), K = v.map(function() {
      return "left";
    });
    else if (Array.isArray(d) && Se(d[0]) === "object") for (v = d.map(function(rA) {
      return rA.name;
    }), U = d.map(function(rA) {
      return rA.prompt || rA.name || "";
    }), K = d.map(function(rA) {
      return rA.align || "left";
    }), g = 0; g < d.length; g += 1) q[d[g].name] = d[g].width * (19.049976 / 25.4);
    else Array.isArray(d) && typeof d[0] == "string" && (U = v = d, K = v.map(function() {
      return "left";
    }));
    if (H || Array.isArray(d) && typeof d[0] == "string") for (g = 0; g < v.length; g += 1) {
      for (j[N = v[g]] = p.map(function(rA) {
        return rA[N];
      }), this.setFont(void 0, "bold"), V.push(this.getTextDimensions(U[g], { fontSize: this.internal.__cell__.table_font_size, scaleFactor: this.internal.scaleFactor }).w), Q = j[N], this.setFont(void 0, "normal"), y = 0; y < Q.length; y += 1) V.push(this.getTextDimensions(Q[y], { fontSize: this.internal.__cell__.table_font_size, scaleFactor: this.internal.scaleFactor }).w);
      q[N] = Math.max.apply(null, V) + F + F, V = [];
    }
    if (G) {
      var lA = {};
      for (g = 0; g < v.length; g += 1) lA[v[g]] = {}, lA[v[g]].text = U[g], lA[v[g]].align = K[g];
      var oA = o.call(this, lA, q);
      z = v.map(function(rA) {
        return new i(c, h, q[rA], oA, lA[rA].text, void 0, lA[rA].align);
      }), this.setTableHeaderRow(z), this.printHeaderRow(1, !1);
    }
    var iA = d.reduce(function(rA, OA) {
      return rA[OA.name] = OA.align, rA;
    }, {});
    for (g = 0; g < p.length; g += 1) {
      "rowStart" in w && w.rowStart instanceof Function && w.rowStart({ row: g, data: p[g] }, this);
      var k = o.call(this, p[g], q);
      for (y = 0; y < v.length; y += 1) {
        var W = p[g][v[y]];
        "cellStart" in w && w.cellStart instanceof Function && w.cellStart({ row: g, col: y, data: W }, this), s.call(this, new i(c, h, q[v[y]], k, W, g + 2, iA[v[y]]));
      }
    }
    return this.internal.__cell__.table_x = c, this.internal.__cell__.table_y = h, this;
  };
  var o = function(c, h) {
    var p = this.internal.__cell__.padding, d = this.internal.__cell__.table_font_size, w = this.internal.scaleFactor;
    return Object.keys(c).map(function(g) {
      var Q = c[g];
      return this.splitTextToSize(Q.hasOwnProperty("text") ? Q.text : Q, h[g] - p - p);
    }, this).map(function(g) {
      return this.getLineHeightFactor() * g.length * d / w + p + p;
    }, this).reduce(function(g, Q) {
      return Math.max(g, Q);
    }, 0);
  };
  t.setTableHeaderRow = function(c) {
    r.call(this), this.internal.__cell__.tableHeaderRow = c;
  }, t.printHeaderRow = function(c, h) {
    if (r.call(this), !this.internal.__cell__.tableHeaderRow) throw new Error("Property tableHeaderRow does not exist.");
    var p;
    if (A = !0, typeof this.internal.__cell__.headerFunction == "function") {
      var d = this.internal.__cell__.headerFunction(this, this.internal.__cell__.pages);
      this.internal.__cell__.lastCell = new i(d[0], d[1], d[2], d[3], void 0, -1);
    }
    this.setFont(void 0, "bold");
    for (var w = [], g = 0; g < this.internal.__cell__.tableHeaderRow.length; g += 1) {
      p = this.internal.__cell__.tableHeaderRow[g].clone(), h && (p.y = this.internal.__cell__.margins.top || 0, w.push(p)), p.lineNumber = c;
      var Q = this.getTextColor();
      this.setTextColor(this.internal.__cell__.headerTextColor), this.setFillColor(this.internal.__cell__.headerBackgroundColor), s.call(this, p), this.setTextColor(Q);
    }
    w.length > 0 && this.setTableHeaderRow(w), this.setFont(void 0, "normal"), A = !1;
  };
}(ae.API);
var Ph = { italic: ["italic", "oblique", "normal"], oblique: ["oblique", "italic", "normal"], normal: ["normal", "oblique", "italic"] }, Oh = ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded"], jc = Mh(Oh), Kh = [100, 200, 300, 400, 500, 600, 700, 800, 900], sB = Mh(Kh);
function qc(t) {
  var e = t.family.replace(/"|'/g, "").toLowerCase(), A = function(i) {
    return Ph[i = i || "normal"] ? i : "normal";
  }(t.style), r = function(i) {
    if (!i) return 400;
    if (typeof i == "number") return i >= 100 && i <= 900 && i % 100 == 0 ? i : 400;
    if (/^\d00$/.test(i)) return parseInt(i);
    switch (i) {
      case "bold":
        return 700;
      case "normal":
      default:
        return 400;
    }
  }(t.weight), n = function(i) {
    return typeof jc[i = i || "normal"] == "number" ? i : "normal";
  }(t.stretch);
  return { family: e, style: A, weight: r, stretch: n, src: t.src || [], ref: t.ref || { name: e, style: [n, A, r].join(" ") } };
}
function cf(t, e, A, r) {
  var n;
  for (n = A; n >= 0 && n < e.length; n += r) if (t[e[n]]) return t[e[n]];
  for (n = A; n >= 0 && n < e.length; n -= r) if (t[e[n]]) return t[e[n]];
}
var oB = { "sans-serif": "helvetica", fixed: "courier", monospace: "courier", terminal: "courier", cursive: "times", fantasy: "times", serif: "times" }, uf = { caption: "times", icon: "times", menu: "times", "message-box": "times", "small-caption": "times", "status-bar": "times" };
function ff(t) {
  return [t.stretch, t.style, t.weight, t.family].join(" ");
}
function lB(t, e, A) {
  for (var r = (A = A || {}).defaultFontFamily || "times", n = Object.assign({}, oB, A.genericFontFamilies || {}), i = null, s = null, o = 0; o < e.length; ++o) if (n[(i = qc(e[o])).family] && (i.family = n[i.family]), t.hasOwnProperty(i.family)) {
    s = t[i.family];
    break;
  }
  if (!(s = s || t[r])) throw new Error("Could not find a font-family for the rule '" + ff(i) + "' and default family '" + r + "'.");
  if (s = function(c, h) {
    if (h[c]) return h[c];
    var p = jc[c], d = p <= jc.normal ? -1 : 1, w = cf(h, Oh, p, d);
    if (!w) throw new Error("Could not find a matching font-stretch value for " + c);
    return w;
  }(i.stretch, s), s = function(c, h) {
    if (h[c]) return h[c];
    for (var p = Ph[c], d = 0; d < p.length; ++d) if (h[p[d]]) return h[p[d]];
    throw new Error("Could not find a matching font-style for " + c);
  }(i.style, s), !(s = function(c, h) {
    if (h[c]) return h[c];
    if (c === 400 && h[500]) return h[500];
    if (c === 500 && h[400]) return h[400];
    var p = sB[c], d = cf(h, Kh, p, c < 400 ? -1 : 1);
    if (!d) throw new Error("Could not find a matching font-weight for value " + c);
    return d;
  }(i.weight, s))) throw new Error("Failed to resolve a font for the rule '" + ff(i) + "'.");
  return s;
}
function hf(t) {
  return t.trimLeft();
}
function cB(t, e) {
  for (var A = 0; A < t.length; ) {
    if (t.charAt(A) === e) return [t.substring(0, A), t.substring(A + 1)];
    A += 1;
  }
  return null;
}
function uB(t) {
  var e = t.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);
  return e === null ? null : [e[0], t.substring(e[0].length)];
}
var so, df, gf, uc = ["times"];
(function(t) {
  var e, A, r, n, i, s, o, c, h, p = function(L) {
    return L = L || {}, this.isStrokeTransparent = L.isStrokeTransparent || !1, this.strokeOpacity = L.strokeOpacity || 1, this.strokeStyle = L.strokeStyle || "#000000", this.fillStyle = L.fillStyle || "#000000", this.isFillTransparent = L.isFillTransparent || !1, this.fillOpacity = L.fillOpacity || 1, this.font = L.font || "10px sans-serif", this.textBaseline = L.textBaseline || "alphabetic", this.textAlign = L.textAlign || "left", this.lineWidth = L.lineWidth || 1, this.lineJoin = L.lineJoin || "miter", this.lineCap = L.lineCap || "butt", this.path = L.path || [], this.transform = L.transform !== void 0 ? L.transform.clone() : new c(), this.globalCompositeOperation = L.globalCompositeOperation || "normal", this.globalAlpha = L.globalAlpha || 1, this.clip_path = L.clip_path || [], this.currentPoint = L.currentPoint || new s(), this.miterLimit = L.miterLimit || 10, this.lastPoint = L.lastPoint || new s(), this.lineDashOffset = L.lineDashOffset || 0, this.lineDash = L.lineDash || [], this.margin = L.margin || [0, 0, 0, 0], this.prevPageLastElemOffset = L.prevPageLastElemOffset || 0, this.ignoreClearRect = typeof L.ignoreClearRect != "boolean" || L.ignoreClearRect, this;
  };
  t.events.push(["initialized", function() {
    this.context2d = new d(this), e = this.internal.f2, A = this.internal.getCoordinateString, r = this.internal.getVerticalCoordinateString, n = this.internal.getHorizontalCoordinate, i = this.internal.getVerticalCoordinate, s = this.internal.Point, o = this.internal.Rectangle, c = this.internal.Matrix, h = new p();
  }]);
  var d = function(L) {
    Object.defineProperty(this, "canvas", { get: function() {
      return { parentNode: !1, style: !1 };
    } });
    var M = L;
    Object.defineProperty(this, "pdf", { get: function() {
      return M;
    } });
    var R = !1;
    Object.defineProperty(this, "pageWrapXEnabled", { get: function() {
      return R;
    }, set: function(wA) {
      R = !!wA;
    } });
    var J = !1;
    Object.defineProperty(this, "pageWrapYEnabled", { get: function() {
      return J;
    }, set: function(wA) {
      J = !!wA;
    } });
    var eA = 0;
    Object.defineProperty(this, "posX", { get: function() {
      return eA;
    }, set: function(wA) {
      isNaN(wA) || (eA = wA);
    } });
    var uA = 0;
    Object.defineProperty(this, "posY", { get: function() {
      return uA;
    }, set: function(wA) {
      isNaN(wA) || (uA = wA);
    } }), Object.defineProperty(this, "margin", { get: function() {
      return h.margin;
    }, set: function(wA) {
      var D;
      typeof wA == "number" ? D = [wA, wA, wA, wA] : ((D = new Array(4))[0] = wA[0], D[1] = wA.length >= 2 ? wA[1] : D[0], D[2] = wA.length >= 3 ? wA[2] : D[0], D[3] = wA.length >= 4 ? wA[3] : D[1]), h.margin = D;
    } });
    var dA = !1;
    Object.defineProperty(this, "autoPaging", { get: function() {
      return dA;
    }, set: function(wA) {
      dA = wA;
    } });
    var gA = 0;
    Object.defineProperty(this, "lastBreak", { get: function() {
      return gA;
    }, set: function(wA) {
      gA = wA;
    } });
    var MA = [];
    Object.defineProperty(this, "pageBreaks", { get: function() {
      return MA;
    }, set: function(wA) {
      MA = wA;
    } }), Object.defineProperty(this, "ctx", { get: function() {
      return h;
    }, set: function(wA) {
      wA instanceof p && (h = wA);
    } }), Object.defineProperty(this, "path", { get: function() {
      return h.path;
    }, set: function(wA) {
      h.path = wA;
    } });
    var NA = [];
    Object.defineProperty(this, "ctxStack", { get: function() {
      return NA;
    }, set: function(wA) {
      NA = wA;
    } }), Object.defineProperty(this, "fillStyle", { get: function() {
      return this.ctx.fillStyle;
    }, set: function(wA) {
      var D;
      D = w(wA), this.ctx.fillStyle = D.style, this.ctx.isFillTransparent = D.a === 0, this.ctx.fillOpacity = D.a, this.pdf.setFillColor(D.r, D.g, D.b, { a: D.a }), this.pdf.setTextColor(D.r, D.g, D.b, { a: D.a });
    } }), Object.defineProperty(this, "strokeStyle", { get: function() {
      return this.ctx.strokeStyle;
    }, set: function(wA) {
      var D = w(wA);
      this.ctx.strokeStyle = D.style, this.ctx.isStrokeTransparent = D.a === 0, this.ctx.strokeOpacity = D.a, D.a === 0 ? this.pdf.setDrawColor(255, 255, 255) : (D.a, this.pdf.setDrawColor(D.r, D.g, D.b));
    } }), Object.defineProperty(this, "lineCap", { get: function() {
      return this.ctx.lineCap;
    }, set: function(wA) {
      ["butt", "round", "square"].indexOf(wA) !== -1 && (this.ctx.lineCap = wA, this.pdf.setLineCap(wA));
    } }), Object.defineProperty(this, "lineWidth", { get: function() {
      return this.ctx.lineWidth;
    }, set: function(wA) {
      isNaN(wA) || (this.ctx.lineWidth = wA, this.pdf.setLineWidth(wA));
    } }), Object.defineProperty(this, "lineJoin", { get: function() {
      return this.ctx.lineJoin;
    }, set: function(wA) {
      ["bevel", "round", "miter"].indexOf(wA) !== -1 && (this.ctx.lineJoin = wA, this.pdf.setLineJoin(wA));
    } }), Object.defineProperty(this, "miterLimit", { get: function() {
      return this.ctx.miterLimit;
    }, set: function(wA) {
      isNaN(wA) || (this.ctx.miterLimit = wA, this.pdf.setMiterLimit(wA));
    } }), Object.defineProperty(this, "textBaseline", { get: function() {
      return this.ctx.textBaseline;
    }, set: function(wA) {
      this.ctx.textBaseline = wA;
    } }), Object.defineProperty(this, "textAlign", { get: function() {
      return this.ctx.textAlign;
    }, set: function(wA) {
      ["right", "end", "center", "left", "start"].indexOf(wA) !== -1 && (this.ctx.textAlign = wA);
    } });
    var RA = null;
    function GA(wA, D) {
      if (RA === null) {
        var $ = function(BA) {
          var sA = [];
          return Object.keys(BA).forEach(function(pA) {
            BA[pA].forEach(function(FA) {
              var UA = null;
              switch (FA) {
                case "bold":
                  UA = { family: pA, weight: "bold" };
                  break;
                case "italic":
                  UA = { family: pA, style: "italic" };
                  break;
                case "bolditalic":
                  UA = { family: pA, weight: "bold", style: "italic" };
                  break;
                case "":
                case "normal":
                  UA = { family: pA };
              }
              UA !== null && (UA.ref = { name: pA, style: FA }, sA.push(UA));
            });
          }), sA;
        }(wA.getFontList());
        RA = function(BA) {
          for (var sA = {}, pA = 0; pA < BA.length; ++pA) {
            var FA = qc(BA[pA]), UA = FA.family, SA = FA.stretch, QA = FA.style, yA = FA.weight;
            sA[UA] = sA[UA] || {}, sA[UA][SA] = sA[UA][SA] || {}, sA[UA][SA][QA] = sA[UA][SA][QA] || {}, sA[UA][SA][QA][yA] = FA;
          }
          return sA;
        }($.concat(D));
      }
      return RA;
    }
    var ee = null;
    Object.defineProperty(this, "fontFaces", { get: function() {
      return ee;
    }, set: function(wA) {
      RA = null, ee = wA;
    } }), Object.defineProperty(this, "font", { get: function() {
      return this.ctx.font;
    }, set: function(wA) {
      var D;
      if (this.ctx.font = wA, (D = /^\s*(?=(?:(?:[-a-z]+\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\1|\2|\3)\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\d]+(?:\%|in|[cem]m|ex|p[ctx]))(?:\s*\/\s*(normal|[.\d]+(?:\%|in|[cem]m|ex|p[ctx])))?\s*([-_,\"\'\sa-z]+?)\s*$/i.exec(wA)) !== null) {
        var $ = D[1];
        D[2];
        var BA = D[3], sA = D[4];
        D[5];
        var pA = D[6], FA = /^([.\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i.exec(sA)[2];
        sA = Math.floor(FA === "px" ? parseFloat(sA) * this.pdf.internal.scaleFactor : FA === "em" ? parseFloat(sA) * this.pdf.getFontSize() : parseFloat(sA) * this.pdf.internal.scaleFactor), this.pdf.setFontSize(sA);
        var UA = function(YA) {
          var ne, VA, Ve = [], mA = YA.trim();
          if (mA === "") return uc;
          if (mA in uf) return [uf[mA]];
          for (; mA !== ""; ) {
            switch (VA = null, ne = (mA = hf(mA)).charAt(0)) {
              case '"':
              case "'":
                VA = cB(mA.substring(1), ne);
                break;
              default:
                VA = uB(mA);
            }
            if (VA === null || (Ve.push(VA[0]), (mA = hf(VA[1])) !== "" && mA.charAt(0) !== ",")) return uc;
            mA = mA.replace(/^,/, "");
          }
          return Ve;
        }(pA);
        if (this.fontFaces) {
          var SA = lB(GA(this.pdf, this.fontFaces), UA.map(function(YA) {
            return { family: YA, stretch: "normal", weight: BA, style: $ };
          }));
          this.pdf.setFont(SA.ref.name, SA.ref.style);
        } else {
          var QA = "";
          (BA === "bold" || parseInt(BA, 10) >= 700 || $ === "bold") && (QA = "bold"), $ === "italic" && (QA += "italic"), QA.length === 0 && (QA = "normal");
          for (var yA = "", PA = { arial: "Helvetica", Arial: "Helvetica", verdana: "Helvetica", Verdana: "Helvetica", helvetica: "Helvetica", Helvetica: "Helvetica", "sans-serif": "Helvetica", fixed: "Courier", monospace: "Courier", terminal: "Courier", cursive: "Times", fantasy: "Times", serif: "Times" }, ZA = 0; ZA < UA.length; ZA++) {
            if (this.pdf.internal.getFont(UA[ZA], QA, { noFallback: !0, disableWarning: !0 }) !== void 0) {
              yA = UA[ZA];
              break;
            }
            if (QA === "bolditalic" && this.pdf.internal.getFont(UA[ZA], "bold", { noFallback: !0, disableWarning: !0 }) !== void 0) yA = UA[ZA], QA = "bold";
            else if (this.pdf.internal.getFont(UA[ZA], "normal", { noFallback: !0, disableWarning: !0 }) !== void 0) {
              yA = UA[ZA], QA = "normal";
              break;
            }
          }
          if (yA === "") {
            for (var ue = 0; ue < UA.length; ue++) if (PA[UA[ue]]) {
              yA = PA[UA[ue]];
              break;
            }
          }
          yA = yA === "" ? "Times" : yA, this.pdf.setFont(yA, QA);
        }
      }
    } }), Object.defineProperty(this, "globalCompositeOperation", { get: function() {
      return this.ctx.globalCompositeOperation;
    }, set: function(wA) {
      this.ctx.globalCompositeOperation = wA;
    } }), Object.defineProperty(this, "globalAlpha", { get: function() {
      return this.ctx.globalAlpha;
    }, set: function(wA) {
      this.ctx.globalAlpha = wA;
    } }), Object.defineProperty(this, "lineDashOffset", { get: function() {
      return this.ctx.lineDashOffset;
    }, set: function(wA) {
      this.ctx.lineDashOffset = wA, OA.call(this);
    } }), Object.defineProperty(this, "lineDash", { get: function() {
      return this.ctx.lineDash;
    }, set: function(wA) {
      this.ctx.lineDash = wA, OA.call(this);
    } }), Object.defineProperty(this, "ignoreClearRect", { get: function() {
      return this.ctx.ignoreClearRect;
    }, set: function(wA) {
      this.ctx.ignoreClearRect = !!wA;
    } });
  };
  d.prototype.setLineDash = function(L) {
    this.lineDash = L;
  }, d.prototype.getLineDash = function() {
    return this.lineDash.length % 2 ? this.lineDash.concat(this.lineDash) : this.lineDash.slice();
  }, d.prototype.fill = function() {
    j.call(this, "fill", !1);
  }, d.prototype.stroke = function() {
    j.call(this, "stroke", !1);
  }, d.prototype.beginPath = function() {
    this.path = [{ type: "begin" }];
  }, d.prototype.moveTo = function(L, M) {
    if (isNaN(L) || isNaN(M)) throw _e.error("jsPDF.context2d.moveTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.moveTo");
    var R = this.ctx.transform.applyToPoint(new s(L, M));
    this.path.push({ type: "mt", x: R.x, y: R.y }), this.ctx.lastPoint = new s(L, M);
  }, d.prototype.closePath = function() {
    var L = new s(0, 0), M = 0;
    for (M = this.path.length - 1; M !== -1; M--) if (this.path[M].type === "begin" && Se(this.path[M + 1]) === "object" && typeof this.path[M + 1].x == "number") {
      L = new s(this.path[M + 1].x, this.path[M + 1].y);
      break;
    }
    this.path.push({ type: "close" }), this.ctx.lastPoint = new s(L.x, L.y);
  }, d.prototype.lineTo = function(L, M) {
    if (isNaN(L) || isNaN(M)) throw _e.error("jsPDF.context2d.lineTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.lineTo");
    var R = this.ctx.transform.applyToPoint(new s(L, M));
    this.path.push({ type: "lt", x: R.x, y: R.y }), this.ctx.lastPoint = new s(R.x, R.y);
  }, d.prototype.clip = function() {
    this.ctx.clip_path = JSON.parse(JSON.stringify(this.path)), j.call(this, null, !0);
  }, d.prototype.quadraticCurveTo = function(L, M, R, J) {
    if (isNaN(R) || isNaN(J) || isNaN(L) || isNaN(M)) throw _e.error("jsPDF.context2d.quadraticCurveTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.quadraticCurveTo");
    var eA = this.ctx.transform.applyToPoint(new s(R, J)), uA = this.ctx.transform.applyToPoint(new s(L, M));
    this.path.push({ type: "qct", x1: uA.x, y1: uA.y, x: eA.x, y: eA.y }), this.ctx.lastPoint = new s(eA.x, eA.y);
  }, d.prototype.bezierCurveTo = function(L, M, R, J, eA, uA) {
    if (isNaN(eA) || isNaN(uA) || isNaN(L) || isNaN(M) || isNaN(R) || isNaN(J)) throw _e.error("jsPDF.context2d.bezierCurveTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.bezierCurveTo");
    var dA = this.ctx.transform.applyToPoint(new s(eA, uA)), gA = this.ctx.transform.applyToPoint(new s(L, M)), MA = this.ctx.transform.applyToPoint(new s(R, J));
    this.path.push({ type: "bct", x1: gA.x, y1: gA.y, x2: MA.x, y2: MA.y, x: dA.x, y: dA.y }), this.ctx.lastPoint = new s(dA.x, dA.y);
  }, d.prototype.arc = function(L, M, R, J, eA, uA) {
    if (isNaN(L) || isNaN(M) || isNaN(R) || isNaN(J) || isNaN(eA)) throw _e.error("jsPDF.context2d.arc: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.arc");
    if (uA = !!uA, !this.ctx.transform.isIdentity) {
      var dA = this.ctx.transform.applyToPoint(new s(L, M));
      L = dA.x, M = dA.y;
      var gA = this.ctx.transform.applyToPoint(new s(0, R)), MA = this.ctx.transform.applyToPoint(new s(0, 0));
      R = Math.sqrt(Math.pow(gA.x - MA.x, 2) + Math.pow(gA.y - MA.y, 2));
    }
    Math.abs(eA - J) >= 2 * Math.PI && (J = 0, eA = 2 * Math.PI), this.path.push({ type: "arc", x: L, y: M, radius: R, startAngle: J, endAngle: eA, counterclockwise: uA });
  }, d.prototype.arcTo = function(L, M, R, J, eA) {
    throw new Error("arcTo not implemented.");
  }, d.prototype.rect = function(L, M, R, J) {
    if (isNaN(L) || isNaN(M) || isNaN(R) || isNaN(J)) throw _e.error("jsPDF.context2d.rect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.rect");
    this.moveTo(L, M), this.lineTo(L + R, M), this.lineTo(L + R, M + J), this.lineTo(L, M + J), this.lineTo(L, M), this.lineTo(L + R, M), this.lineTo(L, M);
  }, d.prototype.fillRect = function(L, M, R, J) {
    if (isNaN(L) || isNaN(M) || isNaN(R) || isNaN(J)) throw _e.error("jsPDF.context2d.fillRect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.fillRect");
    if (!g.call(this)) {
      var eA = {};
      this.lineCap !== "butt" && (eA.lineCap = this.lineCap, this.lineCap = "butt"), this.lineJoin !== "miter" && (eA.lineJoin = this.lineJoin, this.lineJoin = "miter"), this.beginPath(), this.rect(L, M, R, J), this.fill(), eA.hasOwnProperty("lineCap") && (this.lineCap = eA.lineCap), eA.hasOwnProperty("lineJoin") && (this.lineJoin = eA.lineJoin);
    }
  }, d.prototype.strokeRect = function(L, M, R, J) {
    if (isNaN(L) || isNaN(M) || isNaN(R) || isNaN(J)) throw _e.error("jsPDF.context2d.strokeRect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.strokeRect");
    Q.call(this) || (this.beginPath(), this.rect(L, M, R, J), this.stroke());
  }, d.prototype.clearRect = function(L, M, R, J) {
    if (isNaN(L) || isNaN(M) || isNaN(R) || isNaN(J)) throw _e.error("jsPDF.context2d.clearRect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.clearRect");
    this.ignoreClearRect || (this.fillStyle = "#ffffff", this.fillRect(L, M, R, J));
  }, d.prototype.save = function(L) {
    L = typeof L != "boolean" || L;
    for (var M = this.pdf.internal.getCurrentPageInfo().pageNumber, R = 0; R < this.pdf.internal.getNumberOfPages(); R++) this.pdf.setPage(R + 1), this.pdf.internal.out("q");
    if (this.pdf.setPage(M), L) {
      this.ctx.fontSize = this.pdf.internal.getFontSize();
      var J = new p(this.ctx);
      this.ctxStack.push(this.ctx), this.ctx = J;
    }
  }, d.prototype.restore = function(L) {
    L = typeof L != "boolean" || L;
    for (var M = this.pdf.internal.getCurrentPageInfo().pageNumber, R = 0; R < this.pdf.internal.getNumberOfPages(); R++) this.pdf.setPage(R + 1), this.pdf.internal.out("Q");
    this.pdf.setPage(M), L && this.ctxStack.length !== 0 && (this.ctx = this.ctxStack.pop(), this.fillStyle = this.ctx.fillStyle, this.strokeStyle = this.ctx.strokeStyle, this.font = this.ctx.font, this.lineCap = this.ctx.lineCap, this.lineWidth = this.ctx.lineWidth, this.lineJoin = this.ctx.lineJoin, this.lineDash = this.ctx.lineDash, this.lineDashOffset = this.ctx.lineDashOffset);
  }, d.prototype.toDataURL = function() {
    throw new Error("toDataUrl not implemented.");
  };
  var w = function(L) {
    var M, R, J, eA;
    if (L.isCanvasGradient === !0 && (L = L.getColor()), !L) return { r: 0, g: 0, b: 0, a: 0, style: L };
    if (/transparent|rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*0+\s*\)/.test(L)) M = 0, R = 0, J = 0, eA = 0;
    else {
      var uA = /rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/.exec(L);
      if (uA !== null) M = parseInt(uA[1]), R = parseInt(uA[2]), J = parseInt(uA[3]), eA = 1;
      else if ((uA = /rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d.]+)\s*\)/.exec(L)) !== null) M = parseInt(uA[1]), R = parseInt(uA[2]), J = parseInt(uA[3]), eA = parseFloat(uA[4]);
      else {
        if (eA = 1, typeof L == "string" && L.charAt(0) !== "#") {
          var dA = new Hh(L);
          L = dA.ok ? dA.toHex() : "#000000";
        }
        L.length === 4 ? (M = L.substring(1, 2), M += M, R = L.substring(2, 3), R += R, J = L.substring(3, 4), J += J) : (M = L.substring(1, 3), R = L.substring(3, 5), J = L.substring(5, 7)), M = parseInt(M, 16), R = parseInt(R, 16), J = parseInt(J, 16);
      }
    }
    return { r: M, g: R, b: J, a: eA, style: L };
  }, g = function() {
    return this.ctx.isFillTransparent || this.globalAlpha == 0;
  }, Q = function() {
    return !!(this.ctx.isStrokeTransparent || this.globalAlpha == 0);
  };
  d.prototype.fillText = function(L, M, R, J) {
    if (isNaN(M) || isNaN(R) || typeof L != "string") throw _e.error("jsPDF.context2d.fillText: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.fillText");
    if (J = isNaN(J) ? void 0 : J, !g.call(this)) {
      var eA = k(this.ctx.transform.rotation), uA = this.ctx.transform.scaleX;
      F.call(this, { text: L, x: M, y: R, scale: uA, angle: eA, align: this.textAlign, maxWidth: J });
    }
  }, d.prototype.strokeText = function(L, M, R, J) {
    if (isNaN(M) || isNaN(R) || typeof L != "string") throw _e.error("jsPDF.context2d.strokeText: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.strokeText");
    if (!Q.call(this)) {
      J = isNaN(J) ? void 0 : J;
      var eA = k(this.ctx.transform.rotation), uA = this.ctx.transform.scaleX;
      F.call(this, { text: L, x: M, y: R, scale: uA, renderingMode: "stroke", angle: eA, align: this.textAlign, maxWidth: J });
    }
  }, d.prototype.measureText = function(L) {
    if (typeof L != "string") throw _e.error("jsPDF.context2d.measureText: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.measureText");
    var M = this.pdf, R = this.pdf.internal.scaleFactor, J = M.internal.getFontSize(), eA = M.getStringUnitWidth(L) * J / M.internal.scaleFactor, uA = function(dA) {
      var gA = (dA = dA || {}).width || 0;
      return Object.defineProperty(this, "width", { get: function() {
        return gA;
      } }), this;
    };
    return new uA({ width: eA *= Math.round(96 * R / 72 * 1e4) / 1e4 });
  }, d.prototype.scale = function(L, M) {
    if (isNaN(L) || isNaN(M)) throw _e.error("jsPDF.context2d.scale: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.scale");
    var R = new c(L, 0, 0, M, 0, 0);
    this.ctx.transform = this.ctx.transform.multiply(R);
  }, d.prototype.rotate = function(L) {
    if (isNaN(L)) throw _e.error("jsPDF.context2d.rotate: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.rotate");
    var M = new c(Math.cos(L), Math.sin(L), -Math.sin(L), Math.cos(L), 0, 0);
    this.ctx.transform = this.ctx.transform.multiply(M);
  }, d.prototype.translate = function(L, M) {
    if (isNaN(L) || isNaN(M)) throw _e.error("jsPDF.context2d.translate: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.translate");
    var R = new c(1, 0, 0, 1, L, M);
    this.ctx.transform = this.ctx.transform.multiply(R);
  }, d.prototype.transform = function(L, M, R, J, eA, uA) {
    if (isNaN(L) || isNaN(M) || isNaN(R) || isNaN(J) || isNaN(eA) || isNaN(uA)) throw _e.error("jsPDF.context2d.transform: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.transform");
    var dA = new c(L, M, R, J, eA, uA);
    this.ctx.transform = this.ctx.transform.multiply(dA);
  }, d.prototype.setTransform = function(L, M, R, J, eA, uA) {
    L = isNaN(L) ? 1 : L, M = isNaN(M) ? 0 : M, R = isNaN(R) ? 0 : R, J = isNaN(J) ? 1 : J, eA = isNaN(eA) ? 0 : eA, uA = isNaN(uA) ? 0 : uA, this.ctx.transform = new c(L, M, R, J, eA, uA);
  };
  var y = function() {
    return this.margin[0] > 0 || this.margin[1] > 0 || this.margin[2] > 0 || this.margin[3] > 0;
  };
  d.prototype.drawImage = function(L, M, R, J, eA, uA, dA, gA, MA) {
    var NA = this.pdf.getImageProperties(L), RA = 1, GA = 1, ee = 1, wA = 1;
    J !== void 0 && gA !== void 0 && (ee = gA / J, wA = MA / eA, RA = NA.width / J * gA / J, GA = NA.height / eA * MA / eA), uA === void 0 && (uA = M, dA = R, M = 0, R = 0), J !== void 0 && gA === void 0 && (gA = J, MA = eA), J === void 0 && gA === void 0 && (gA = NA.width, MA = NA.height);
    for (var D, $ = this.ctx.transform.decompose(), BA = k($.rotate.shx), sA = new c(), pA = (sA = (sA = (sA = sA.multiply($.translate)).multiply($.skew)).multiply($.scale)).applyToRectangle(new o(uA - M * ee, dA - R * wA, J * RA, eA * GA)), FA = N.call(this, pA), UA = [], SA = 0; SA < FA.length; SA += 1) UA.indexOf(FA[SA]) === -1 && UA.push(FA[SA]);
    if (K(UA), this.autoPaging) for (var QA = UA[0], yA = UA[UA.length - 1], PA = QA; PA < yA + 1; PA++) {
      this.pdf.setPage(PA);
      var ZA = this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1], ue = PA === 1 ? this.posY + this.margin[0] : this.margin[0], YA = this.pdf.internal.pageSize.height - this.posY - this.margin[0] - this.margin[2], ne = this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2], VA = PA === 1 ? 0 : YA + (PA - 2) * ne;
      if (this.ctx.clip_path.length !== 0) {
        var Ve = this.path;
        D = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = U(D, this.posX + this.margin[3], -VA + ue + this.ctx.prevPageLastElemOffset), q.call(this, "fill", !0), this.path = Ve;
      }
      var mA = JSON.parse(JSON.stringify(pA));
      mA = U([mA], this.posX + this.margin[3], -VA + ue + this.ctx.prevPageLastElemOffset)[0];
      var TA = (PA > QA || PA < yA) && y.call(this);
      TA && (this.pdf.saveGraphicsState(), this.pdf.rect(this.margin[3], this.margin[0], ZA, ne, null).clip().discardPath()), this.pdf.addImage(L, "JPEG", mA.x, mA.y, mA.w, mA.h, null, null, BA), TA && this.pdf.restoreGraphicsState();
    }
    else this.pdf.addImage(L, "JPEG", pA.x, pA.y, pA.w, pA.h, null, null, BA);
  };
  var N = function(L, M, R) {
    var J = [];
    M = M || this.pdf.internal.pageSize.width, R = R || this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];
    var eA = this.posY + this.ctx.prevPageLastElemOffset;
    switch (L.type) {
      default:
      case "mt":
      case "lt":
        J.push(Math.floor((L.y + eA) / R) + 1);
        break;
      case "arc":
        J.push(Math.floor((L.y + eA - L.radius) / R) + 1), J.push(Math.floor((L.y + eA + L.radius) / R) + 1);
        break;
      case "qct":
        var uA = W(this.ctx.lastPoint.x, this.ctx.lastPoint.y, L.x1, L.y1, L.x, L.y);
        J.push(Math.floor((uA.y + eA) / R) + 1), J.push(Math.floor((uA.y + uA.h + eA) / R) + 1);
        break;
      case "bct":
        var dA = rA(this.ctx.lastPoint.x, this.ctx.lastPoint.y, L.x1, L.y1, L.x2, L.y2, L.x, L.y);
        J.push(Math.floor((dA.y + eA) / R) + 1), J.push(Math.floor((dA.y + dA.h + eA) / R) + 1);
        break;
      case "rect":
        J.push(Math.floor((L.y + eA) / R) + 1), J.push(Math.floor((L.y + L.h + eA) / R) + 1);
    }
    for (var gA = 0; gA < J.length; gA += 1) for (; this.pdf.internal.getNumberOfPages() < J[gA]; ) v.call(this);
    return J;
  }, v = function() {
    var L = this.fillStyle, M = this.strokeStyle, R = this.font, J = this.lineCap, eA = this.lineWidth, uA = this.lineJoin;
    this.pdf.addPage(), this.fillStyle = L, this.strokeStyle = M, this.font = R, this.lineCap = J, this.lineWidth = eA, this.lineJoin = uA;
  }, U = function(L, M, R) {
    for (var J = 0; J < L.length; J++) switch (L[J].type) {
      case "bct":
        L[J].x2 += M, L[J].y2 += R;
      case "qct":
        L[J].x1 += M, L[J].y1 += R;
      case "mt":
      case "lt":
      case "arc":
      default:
        L[J].x += M, L[J].y += R;
    }
    return L;
  }, K = function(L) {
    return L.sort(function(M, R) {
      return M - R;
    });
  }, j = function(L, M) {
    for (var R, J, eA = this.fillStyle, uA = this.strokeStyle, dA = this.lineCap, gA = this.lineWidth, MA = Math.abs(gA * this.ctx.transform.scaleX), NA = this.lineJoin, RA = JSON.parse(JSON.stringify(this.path)), GA = JSON.parse(JSON.stringify(this.path)), ee = [], wA = 0; wA < GA.length; wA++) if (GA[wA].x !== void 0) for (var D = N.call(this, GA[wA]), $ = 0; $ < D.length; $ += 1) ee.indexOf(D[$]) === -1 && ee.push(D[$]);
    for (var BA = 0; BA < ee.length; BA++) for (; this.pdf.internal.getNumberOfPages() < ee[BA]; ) v.call(this);
    if (K(ee), this.autoPaging) for (var sA = ee[0], pA = ee[ee.length - 1], FA = sA; FA < pA + 1; FA++) {
      this.pdf.setPage(FA), this.fillStyle = eA, this.strokeStyle = uA, this.lineCap = dA, this.lineWidth = MA, this.lineJoin = NA;
      var UA = this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1], SA = FA === 1 ? this.posY + this.margin[0] : this.margin[0], QA = this.pdf.internal.pageSize.height - this.posY - this.margin[0] - this.margin[2], yA = this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2], PA = FA === 1 ? 0 : QA + (FA - 2) * yA;
      if (this.ctx.clip_path.length !== 0) {
        var ZA = this.path;
        R = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = U(R, this.posX + this.margin[3], -PA + SA + this.ctx.prevPageLastElemOffset), q.call(this, L, !0), this.path = ZA;
      }
      if (J = JSON.parse(JSON.stringify(RA)), this.path = U(J, this.posX + this.margin[3], -PA + SA + this.ctx.prevPageLastElemOffset), M === !1 || FA === 0) {
        var ue = (FA > sA || FA < pA) && y.call(this);
        ue && (this.pdf.saveGraphicsState(), this.pdf.rect(this.margin[3], this.margin[0], UA, yA, null).clip().discardPath()), q.call(this, L, M), ue && this.pdf.restoreGraphicsState();
      }
      this.lineWidth = gA;
    }
    else this.lineWidth = MA, q.call(this, L, M), this.lineWidth = gA;
    this.path = RA;
  }, q = function(L, M) {
    if ((L !== "stroke" || M || !Q.call(this)) && (L === "stroke" || M || !g.call(this))) {
      for (var R, J, eA = [], uA = this.path, dA = 0; dA < uA.length; dA++) {
        var gA = uA[dA];
        switch (gA.type) {
          case "begin":
            eA.push({ begin: !0 });
            break;
          case "close":
            eA.push({ close: !0 });
            break;
          case "mt":
            eA.push({ start: gA, deltas: [], abs: [] });
            break;
          case "lt":
            var MA = eA.length;
            if (uA[dA - 1] && !isNaN(uA[dA - 1].x) && (R = [gA.x - uA[dA - 1].x, gA.y - uA[dA - 1].y], MA > 0)) {
              for (; MA >= 0; MA--) if (eA[MA - 1].close !== !0 && eA[MA - 1].begin !== !0) {
                eA[MA - 1].deltas.push(R), eA[MA - 1].abs.push(gA);
                break;
              }
            }
            break;
          case "bct":
            R = [gA.x1 - uA[dA - 1].x, gA.y1 - uA[dA - 1].y, gA.x2 - uA[dA - 1].x, gA.y2 - uA[dA - 1].y, gA.x - uA[dA - 1].x, gA.y - uA[dA - 1].y], eA[eA.length - 1].deltas.push(R);
            break;
          case "qct":
            var NA = uA[dA - 1].x + 2 / 3 * (gA.x1 - uA[dA - 1].x), RA = uA[dA - 1].y + 2 / 3 * (gA.y1 - uA[dA - 1].y), GA = gA.x + 2 / 3 * (gA.x1 - gA.x), ee = gA.y + 2 / 3 * (gA.y1 - gA.y), wA = gA.x, D = gA.y;
            R = [NA - uA[dA - 1].x, RA - uA[dA - 1].y, GA - uA[dA - 1].x, ee - uA[dA - 1].y, wA - uA[dA - 1].x, D - uA[dA - 1].y], eA[eA.length - 1].deltas.push(R);
            break;
          case "arc":
            eA.push({ deltas: [], abs: [], arc: !0 }), Array.isArray(eA[eA.length - 1].abs) && eA[eA.length - 1].abs.push(gA);
        }
      }
      J = M ? null : L === "stroke" ? "stroke" : "fill";
      for (var $ = !1, BA = 0; BA < eA.length; BA++) if (eA[BA].arc) for (var sA = eA[BA].abs, pA = 0; pA < sA.length; pA++) {
        var FA = sA[pA];
        FA.type === "arc" ? H.call(this, FA.x, FA.y, FA.radius, FA.startAngle, FA.endAngle, FA.counterclockwise, void 0, M, !$) : _.call(this, FA.x, FA.y), $ = !0;
      }
      else if (eA[BA].close === !0) this.pdf.internal.out("h"), $ = !1;
      else if (eA[BA].begin !== !0) {
        var UA = eA[BA].start.x, SA = eA[BA].start.y;
        P.call(this, eA[BA].deltas, UA, SA), $ = !0;
      }
      J && G.call(this, J), M && tA.call(this);
    }
  }, V = function(L) {
    var M = this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor, R = M * (this.pdf.internal.getLineHeightFactor() - 1);
    switch (this.ctx.textBaseline) {
      case "bottom":
        return L - R;
      case "top":
        return L + M - R;
      case "hanging":
        return L + M - 2 * R;
      case "middle":
        return L + M / 2 - R;
      case "ideographic":
        return L;
      case "alphabetic":
      default:
        return L;
    }
  }, z = function(L) {
    return L + this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor * (this.pdf.internal.getLineHeightFactor() - 1);
  };
  d.prototype.createLinearGradient = function() {
    var L = function() {
    };
    return L.colorStops = [], L.addColorStop = function(M, R) {
      this.colorStops.push([M, R]);
    }, L.getColor = function() {
      return this.colorStops.length === 0 ? "#000000" : this.colorStops[0][1];
    }, L.isCanvasGradient = !0, L;
  }, d.prototype.createPattern = function() {
    return this.createLinearGradient();
  }, d.prototype.createRadialGradient = function() {
    return this.createLinearGradient();
  };
  var H = function(L, M, R, J, eA, uA, dA, gA, MA) {
    for (var NA = oA.call(this, R, J, eA, uA), RA = 0; RA < NA.length; RA++) {
      var GA = NA[RA];
      RA === 0 && (MA ? x.call(this, GA.x1 + L, GA.y1 + M) : _.call(this, GA.x1 + L, GA.y1 + M)), lA.call(this, L, M, GA.x2, GA.y2, GA.x3, GA.y3, GA.x4, GA.y4);
    }
    gA ? tA.call(this) : G.call(this, dA);
  }, G = function(L) {
    switch (L) {
      case "stroke":
        this.pdf.internal.out("S");
        break;
      case "fill":
        this.pdf.internal.out("f");
    }
  }, tA = function() {
    this.pdf.clip(), this.pdf.discardPath();
  }, x = function(L, M) {
    this.pdf.internal.out(A(L) + " " + r(M) + " m");
  }, F = function(L) {
    var M;
    switch (L.align) {
      case "right":
      case "end":
        M = "right";
        break;
      case "center":
        M = "center";
        break;
      case "left":
      case "start":
      default:
        M = "left";
    }
    var R = this.pdf.getTextDimensions(L.text), J = V.call(this, L.y), eA = z.call(this, J) - R.h, uA = this.ctx.transform.applyToPoint(new s(L.x, J)), dA = this.ctx.transform.decompose(), gA = new c();
    gA = (gA = (gA = gA.multiply(dA.translate)).multiply(dA.skew)).multiply(dA.scale);
    for (var MA, NA, RA, GA = this.ctx.transform.applyToRectangle(new o(L.x, J, R.w, R.h)), ee = gA.applyToRectangle(new o(L.x, eA, R.w, R.h)), wA = N.call(this, ee), D = [], $ = 0; $ < wA.length; $ += 1) D.indexOf(wA[$]) === -1 && D.push(wA[$]);
    if (K(D), this.autoPaging) for (var BA = D[0], sA = D[D.length - 1], pA = BA; pA < sA + 1; pA++) {
      this.pdf.setPage(pA);
      var FA = pA === 1 ? this.posY + this.margin[0] : this.margin[0], UA = this.pdf.internal.pageSize.height - this.posY - this.margin[0] - this.margin[2], SA = this.pdf.internal.pageSize.height - this.margin[2], QA = SA - this.margin[0], yA = this.pdf.internal.pageSize.width - this.margin[1], PA = yA - this.margin[3], ZA = pA === 1 ? 0 : UA + (pA - 2) * QA;
      if (this.ctx.clip_path.length !== 0) {
        var ue = this.path;
        MA = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = U(MA, this.posX + this.margin[3], -1 * ZA + FA), q.call(this, "fill", !0), this.path = ue;
      }
      var YA = U([JSON.parse(JSON.stringify(ee))], this.posX + this.margin[3], -ZA + FA + this.ctx.prevPageLastElemOffset)[0];
      L.scale >= 0.01 && (NA = this.pdf.internal.getFontSize(), this.pdf.setFontSize(NA * L.scale), RA = this.lineWidth, this.lineWidth = RA * L.scale);
      var ne = this.autoPaging !== "text";
      if (ne || YA.y + YA.h <= SA) {
        if (ne || YA.y >= FA && YA.x <= yA) {
          var VA = ne ? L.text : this.pdf.splitTextToSize(L.text, L.maxWidth || yA - YA.x)[0], Ve = U([JSON.parse(JSON.stringify(GA))], this.posX + this.margin[3], -ZA + FA + this.ctx.prevPageLastElemOffset)[0], mA = ne && (pA > BA || pA < sA) && y.call(this);
          mA && (this.pdf.saveGraphicsState(), this.pdf.rect(this.margin[3], this.margin[0], PA, QA, null).clip().discardPath()), this.pdf.text(VA, Ve.x, Ve.y, { angle: L.angle, align: M, renderingMode: L.renderingMode }), mA && this.pdf.restoreGraphicsState();
        }
      } else YA.y < SA && (this.ctx.prevPageLastElemOffset += SA - YA.y);
      L.scale >= 0.01 && (this.pdf.setFontSize(NA), this.lineWidth = RA);
    }
    else L.scale >= 0.01 && (NA = this.pdf.internal.getFontSize(), this.pdf.setFontSize(NA * L.scale), RA = this.lineWidth, this.lineWidth = RA * L.scale), this.pdf.text(L.text, uA.x + this.posX, uA.y + this.posY, { angle: L.angle, align: M, renderingMode: L.renderingMode, maxWidth: L.maxWidth }), L.scale >= 0.01 && (this.pdf.setFontSize(NA), this.lineWidth = RA);
  }, _ = function(L, M, R, J) {
    R = R || 0, J = J || 0, this.pdf.internal.out(A(L + R) + " " + r(M + J) + " l");
  }, P = function(L, M, R) {
    return this.pdf.lines(L, M, R, null, null);
  }, lA = function(L, M, R, J, eA, uA, dA, gA) {
    this.pdf.internal.out([e(n(R + L)), e(i(J + M)), e(n(eA + L)), e(i(uA + M)), e(n(dA + L)), e(i(gA + M)), "c"].join(" "));
  }, oA = function(L, M, R, J) {
    for (var eA = 2 * Math.PI, uA = Math.PI / 2; M > R; ) M -= eA;
    var dA = Math.abs(R - M);
    dA < eA && J && (dA = eA - dA);
    for (var gA = [], MA = J ? -1 : 1, NA = M; dA > 1e-5; ) {
      var RA = NA + MA * Math.min(dA, uA);
      gA.push(iA.call(this, L, NA, RA)), dA -= Math.abs(RA - NA), NA = RA;
    }
    return gA;
  }, iA = function(L, M, R) {
    var J = (R - M) / 2, eA = L * Math.cos(J), uA = L * Math.sin(J), dA = eA, gA = -uA, MA = dA * dA + gA * gA, NA = MA + dA * eA + gA * uA, RA = 4 / 3 * (Math.sqrt(2 * MA * NA) - NA) / (dA * uA - gA * eA), GA = dA - RA * gA, ee = gA + RA * dA, wA = GA, D = -ee, $ = J + M, BA = Math.cos($), sA = Math.sin($);
    return { x1: L * Math.cos(M), y1: L * Math.sin(M), x2: GA * BA - ee * sA, y2: GA * sA + ee * BA, x3: wA * BA - D * sA, y3: wA * sA + D * BA, x4: L * Math.cos(R), y4: L * Math.sin(R) };
  }, k = function(L) {
    return 180 * L / Math.PI;
  }, W = function(L, M, R, J, eA, uA) {
    var dA = L + 0.5 * (R - L), gA = M + 0.5 * (J - M), MA = eA + 0.5 * (R - eA), NA = uA + 0.5 * (J - uA), RA = Math.min(L, eA, dA, MA), GA = Math.max(L, eA, dA, MA), ee = Math.min(M, uA, gA, NA), wA = Math.max(M, uA, gA, NA);
    return new o(RA, ee, GA - RA, wA - ee);
  }, rA = function(L, M, R, J, eA, uA, dA, gA) {
    var MA, NA, RA, GA, ee, wA, D, $, BA, sA, pA, FA, UA, SA, QA = R - L, yA = J - M, PA = eA - R, ZA = uA - J, ue = dA - eA, YA = gA - uA;
    for (NA = 0; NA < 41; NA++) BA = (D = (RA = L + (MA = NA / 40) * QA) + MA * ((ee = R + MA * PA) - RA)) + MA * (ee + MA * (eA + MA * ue - ee) - D), sA = ($ = (GA = M + MA * yA) + MA * ((wA = J + MA * ZA) - GA)) + MA * (wA + MA * (uA + MA * YA - wA) - $), NA == 0 ? (pA = BA, FA = sA, UA = BA, SA = sA) : (pA = Math.min(pA, BA), FA = Math.min(FA, sA), UA = Math.max(UA, BA), SA = Math.max(SA, sA));
    return new o(Math.round(pA), Math.round(FA), Math.round(UA - pA), Math.round(SA - FA));
  }, OA = function() {
    if (this.prevLineDash || this.ctx.lineDash.length || this.ctx.lineDashOffset) {
      var L, M, R = (L = this.ctx.lineDash, M = this.ctx.lineDashOffset, JSON.stringify({ lineDash: L, lineDashOffset: M }));
      this.prevLineDash !== R && (this.pdf.setLineDash(this.ctx.lineDash, this.ctx.lineDashOffset), this.prevLineDash = R);
    }
  };
})(ae.API), /**
 * @license
 * jsPDF filters PlugIn
 * Copyright (c) 2014 Aras Abbasi
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  var e = function(i) {
    var s, o, c, h, p, d, w, g, Q, y;
    for (o = [], c = 0, h = (i += s = "\0\0\0\0".slice(i.length % 4 || 4)).length; h > c; c += 4) (p = (i.charCodeAt(c) << 24) + (i.charCodeAt(c + 1) << 16) + (i.charCodeAt(c + 2) << 8) + i.charCodeAt(c + 3)) !== 0 ? (d = (p = ((p = ((p = ((p = (p - (y = p % 85)) / 85) - (Q = p % 85)) / 85) - (g = p % 85)) / 85) - (w = p % 85)) / 85) % 85, o.push(d + 33, w + 33, g + 33, Q + 33, y + 33)) : o.push(122);
    return function(N, v) {
      for (var U = v; U > 0; U--) N.pop();
    }(o, s.length), String.fromCharCode.apply(String, o) + "~>";
  }, A = function(i) {
    var s, o, c, h, p, d = String, w = "length", g = 255, Q = "charCodeAt", y = "slice", N = "replace";
    for (i[y](-2), i = i[y](0, -2)[N](/\s/g, "")[N]("z", "!!!!!"), c = [], h = 0, p = (i += s = "uuuuu"[y](i[w] % 5 || 5))[w]; p > h; h += 5) o = 52200625 * (i[Q](h) - 33) + 614125 * (i[Q](h + 1) - 33) + 7225 * (i[Q](h + 2) - 33) + 85 * (i[Q](h + 3) - 33) + (i[Q](h + 4) - 33), c.push(g & o >> 24, g & o >> 16, g & o >> 8, g & o);
    return function(v, U) {
      for (var K = U; K > 0; K--) v.pop();
    }(c, s[w]), d.fromCharCode.apply(d, c);
  }, r = function(i) {
    var s = new RegExp(/^([0-9A-Fa-f]{2})+$/);
    if ((i = i.replace(/\s/g, "")).indexOf(">") !== -1 && (i = i.substr(0, i.indexOf(">"))), i.length % 2 && (i += "0"), s.test(i) === !1) return "";
    for (var o = "", c = 0; c < i.length; c += 2) o += String.fromCharCode("0x" + (i[c] + i[c + 1]));
    return o;
  }, n = function(i) {
    for (var s = new Uint8Array(i.length), o = i.length; o--; ) s[o] = i.charCodeAt(o);
    return i = (s = Oc(s)).reduce(function(c, h) {
      return c + String.fromCharCode(h);
    }, "");
  };
  t.processDataByFilters = function(i, s) {
    var o = 0, c = i || "", h = [];
    for (typeof (s = s || []) == "string" && (s = [s]), o = 0; o < s.length; o += 1) switch (s[o]) {
      case "ASCII85Decode":
      case "/ASCII85Decode":
        c = A(c), h.push("/ASCII85Encode");
        break;
      case "ASCII85Encode":
      case "/ASCII85Encode":
        c = e(c), h.push("/ASCII85Decode");
        break;
      case "ASCIIHexDecode":
      case "/ASCIIHexDecode":
        c = r(c), h.push("/ASCIIHexEncode");
        break;
      case "ASCIIHexEncode":
      case "/ASCIIHexEncode":
        c = c.split("").map(function(p) {
          return ("0" + p.charCodeAt().toString(16)).slice(-2);
        }).join("") + ">", h.push("/ASCIIHexDecode");
        break;
      case "FlateEncode":
      case "/FlateEncode":
        c = n(c), h.push("/FlateDecode");
        break;
      default:
        throw new Error('The filter: "' + s[o] + '" is not implemented');
    }
    return { data: c, reverseChain: h.reverse().join(" ") };
  };
}(ae.API), /**
 * @license
 * jsPDF fileloading PlugIn
 * Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  t.loadFile = function(e, A, r) {
    return function(n, i, s) {
      i = i !== !1, s = typeof s == "function" ? s : function() {
      };
      var o = void 0;
      try {
        o = function(c, h, p) {
          var d = new XMLHttpRequest(), w = 0, g = function(Q) {
            var y = Q.length, N = [], v = String.fromCharCode;
            for (w = 0; w < y; w += 1) N.push(v(255 & Q.charCodeAt(w)));
            return N.join("");
          };
          if (d.open("GET", c, !h), d.overrideMimeType("text/plain; charset=x-user-defined"), h === !1 && (d.onload = function() {
            d.status === 200 ? p(g(this.responseText)) : p(void 0);
          }), d.send(null), h && d.status === 200) return g(d.responseText);
        }(n, i, s);
      } catch {
      }
      return o;
    }(e, A, r);
  }, t.loadImageFile = t.loadFile;
}(ae.API), function(t) {
  function e() {
    return (le.html2canvas ? Promise.resolve(le.html2canvas) : Promise.resolve().then(() => Z4)).catch(function(s) {
      return Promise.reject(new Error("Could not load html2canvas: " + s));
    }).then(function(s) {
      return s.default ? s.default : s;
    });
  }
  function A() {
    return (le.DOMPurify ? Promise.resolve(le.DOMPurify) : import("./purify.es-DHbHSKL1.js")).catch(function(s) {
      return Promise.reject(new Error("Could not load dompurify: " + s));
    }).then(function(s) {
      return s.default ? s.default : s;
    });
  }
  var r = function(s) {
    var o = Se(s);
    return o === "undefined" ? "undefined" : o === "string" || s instanceof String ? "string" : o === "number" || s instanceof Number ? "number" : o === "function" || s instanceof Function ? "function" : s && s.constructor === Array ? "array" : s && s.nodeType === 1 ? "element" : o === "object" ? "object" : "unknown";
  }, n = function(s, o) {
    var c = document.createElement(s);
    for (var h in o.className && (c.className = o.className), o.innerHTML && o.dompurify && (c.innerHTML = o.dompurify.sanitize(o.innerHTML)), o.style) c.style[h] = o.style[h];
    return c;
  }, i = function s(o) {
    var c = Object.assign(s.convert(Promise.resolve()), JSON.parse(JSON.stringify(s.template))), h = s.convert(Promise.resolve(), c);
    return h = (h = h.setProgress(1, s, 1, [s])).set(o);
  };
  (i.prototype = Object.create(Promise.prototype)).constructor = i, i.convert = function(s, o) {
    return s.__proto__ = o || i.prototype, s;
  }, i.template = { prop: { src: null, container: null, overlay: null, canvas: null, img: null, pdf: null, pageSize: null, callback: function() {
  } }, progress: { val: 0, state: null, n: 0, stack: [] }, opt: { filename: "file.pdf", margin: [0, 0, 0, 0], enableLinks: !0, x: 0, y: 0, html2canvas: {}, jsPDF: {}, backgroundColor: "transparent" } }, i.prototype.from = function(s, o) {
    return this.then(function() {
      switch (o = o || function(c) {
        switch (r(c)) {
          case "string":
            return "string";
          case "element":
            return c.nodeName.toLowerCase() === "canvas" ? "canvas" : "element";
          default:
            return "unknown";
        }
      }(s)) {
        case "string":
          return this.then(A).then(function(c) {
            return this.set({ src: n("div", { innerHTML: s, dompurify: c }) });
          });
        case "element":
          return this.set({ src: s });
        case "canvas":
          return this.set({ canvas: s });
        case "img":
          return this.set({ img: s });
        default:
          return this.error("Unknown source type.");
      }
    });
  }, i.prototype.to = function(s) {
    switch (s) {
      case "container":
        return this.toContainer();
      case "canvas":
        return this.toCanvas();
      case "img":
        return this.toImg();
      case "pdf":
        return this.toPdf();
      default:
        return this.error("Invalid target.");
    }
  }, i.prototype.toContainer = function() {
    return this.thenList([function() {
      return this.prop.src || this.error("Cannot duplicate - no source HTML.");
    }, function() {
      return this.prop.pageSize || this.setPageSize();
    }]).then(function() {
      var s = { position: "relative", display: "inline-block", width: (typeof this.opt.width != "number" || isNaN(this.opt.width) || typeof this.opt.windowWidth != "number" || isNaN(this.opt.windowWidth) ? Math.max(this.prop.src.clientWidth, this.prop.src.scrollWidth, this.prop.src.offsetWidth) : this.opt.windowWidth) + "px", left: 0, right: 0, top: 0, margin: "auto", backgroundColor: this.opt.backgroundColor }, o = function c(h, p) {
        for (var d = h.nodeType === 3 ? document.createTextNode(h.nodeValue) : h.cloneNode(!1), w = h.firstChild; w; w = w.nextSibling) p !== !0 && w.nodeType === 1 && w.nodeName === "SCRIPT" || d.appendChild(c(w, p));
        return h.nodeType === 1 && (h.nodeName === "CANVAS" ? (d.width = h.width, d.height = h.height, d.getContext("2d").drawImage(h, 0, 0)) : h.nodeName !== "TEXTAREA" && h.nodeName !== "SELECT" || (d.value = h.value), d.addEventListener("load", function() {
          d.scrollTop = h.scrollTop, d.scrollLeft = h.scrollLeft;
        }, !0)), d;
      }(this.prop.src, this.opt.html2canvas.javascriptEnabled);
      o.tagName === "BODY" && (s.height = Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight) + "px"), this.prop.overlay = n("div", { className: "html2pdf__overlay", style: { position: "fixed", overflow: "hidden", zIndex: 1e3, left: "-100000px", right: 0, bottom: 0, top: 0 } }), this.prop.container = n("div", { className: "html2pdf__container", style: s }), this.prop.container.appendChild(o), this.prop.container.firstChild.appendChild(n("div", { style: { clear: "both", border: "0 none transparent", margin: 0, padding: 0, height: 0 } })), this.prop.container.style.float = "none", this.prop.overlay.appendChild(this.prop.container), document.body.appendChild(this.prop.overlay), this.prop.container.firstChild.style.position = "relative", this.prop.container.height = Math.max(this.prop.container.firstChild.clientHeight, this.prop.container.firstChild.scrollHeight, this.prop.container.firstChild.offsetHeight) + "px";
    });
  }, i.prototype.toCanvas = function() {
    var s = [function() {
      return document.body.contains(this.prop.container) || this.toContainer();
    }];
    return this.thenList(s).then(e).then(function(o) {
      var c = Object.assign({}, this.opt.html2canvas);
      return delete c.onrendered, o(this.prop.container, c);
    }).then(function(o) {
      (this.opt.html2canvas.onrendered || function() {
      })(o), this.prop.canvas = o, document.body.removeChild(this.prop.overlay);
    });
  }, i.prototype.toContext2d = function() {
    var s = [function() {
      return document.body.contains(this.prop.container) || this.toContainer();
    }];
    return this.thenList(s).then(e).then(function(o) {
      var c = this.opt.jsPDF, h = this.opt.fontFaces, p = typeof this.opt.width != "number" || isNaN(this.opt.width) || typeof this.opt.windowWidth != "number" || isNaN(this.opt.windowWidth) ? 1 : this.opt.width / this.opt.windowWidth, d = Object.assign({ async: !0, allowTaint: !0, scale: p, scrollX: this.opt.scrollX || 0, scrollY: this.opt.scrollY || 0, backgroundColor: "#ffffff", imageTimeout: 15e3, logging: !0, proxy: null, removeContainer: !0, foreignObjectRendering: !1, useCORS: !1 }, this.opt.html2canvas);
      if (delete d.onrendered, c.context2d.autoPaging = this.opt.autoPaging === void 0 || this.opt.autoPaging, c.context2d.posX = this.opt.x, c.context2d.posY = this.opt.y, c.context2d.margin = this.opt.margin, c.context2d.fontFaces = h, h) for (var w = 0; w < h.length; ++w) {
        var g = h[w], Q = g.src.find(function(y) {
          return y.format === "truetype";
        });
        Q && c.addFont(Q.url, g.ref.name, g.ref.style);
      }
      return d.windowHeight = d.windowHeight || 0, d.windowHeight = d.windowHeight == 0 ? Math.max(this.prop.container.clientHeight, this.prop.container.scrollHeight, this.prop.container.offsetHeight) : d.windowHeight, c.context2d.save(!0), o(this.prop.container, d);
    }).then(function(o) {
      this.opt.jsPDF.context2d.restore(!0), (this.opt.html2canvas.onrendered || function() {
      })(o), this.prop.canvas = o, document.body.removeChild(this.prop.overlay);
    });
  }, i.prototype.toImg = function() {
    return this.thenList([function() {
      return this.prop.canvas || this.toCanvas();
    }]).then(function() {
      var s = this.prop.canvas.toDataURL("image/" + this.opt.image.type, this.opt.image.quality);
      this.prop.img = document.createElement("img"), this.prop.img.src = s;
    });
  }, i.prototype.toPdf = function() {
    return this.thenList([function() {
      return this.toContext2d();
    }]).then(function() {
      this.prop.pdf = this.prop.pdf || this.opt.jsPDF;
    });
  }, i.prototype.output = function(s, o, c) {
    return (c = c || "pdf").toLowerCase() === "img" || c.toLowerCase() === "image" ? this.outputImg(s, o) : this.outputPdf(s, o);
  }, i.prototype.outputPdf = function(s, o) {
    return this.thenList([function() {
      return this.prop.pdf || this.toPdf();
    }]).then(function() {
      return this.prop.pdf.output(s, o);
    });
  }, i.prototype.outputImg = function(s) {
    return this.thenList([function() {
      return this.prop.img || this.toImg();
    }]).then(function() {
      switch (s) {
        case void 0:
        case "img":
          return this.prop.img;
        case "datauristring":
        case "dataurlstring":
          return this.prop.img.src;
        case "datauri":
        case "dataurl":
          return document.location.href = this.prop.img.src;
        default:
          throw 'Image output type "' + s + '" is not supported.';
      }
    });
  }, i.prototype.save = function(s) {
    return this.thenList([function() {
      return this.prop.pdf || this.toPdf();
    }]).set(s ? { filename: s } : null).then(function() {
      this.prop.pdf.save(this.opt.filename);
    });
  }, i.prototype.doCallback = function() {
    return this.thenList([function() {
      return this.prop.pdf || this.toPdf();
    }]).then(function() {
      this.prop.callback(this.prop.pdf);
    });
  }, i.prototype.set = function(s) {
    if (r(s) !== "object") return this;
    var o = Object.keys(s || {}).map(function(c) {
      if (c in i.template.prop) return function() {
        this.prop[c] = s[c];
      };
      switch (c) {
        case "margin":
          return this.setMargin.bind(this, s.margin);
        case "jsPDF":
          return function() {
            return this.opt.jsPDF = s.jsPDF, this.setPageSize();
          };
        case "pageSize":
          return this.setPageSize.bind(this, s.pageSize);
        default:
          return function() {
            this.opt[c] = s[c];
          };
      }
    }, this);
    return this.then(function() {
      return this.thenList(o);
    });
  }, i.prototype.get = function(s, o) {
    return this.then(function() {
      var c = s in i.template.prop ? this.prop[s] : this.opt[s];
      return o ? o(c) : c;
    });
  }, i.prototype.setMargin = function(s) {
    return this.then(function() {
      switch (r(s)) {
        case "number":
          s = [s, s, s, s];
        case "array":
          if (s.length === 2 && (s = [s[0], s[1], s[0], s[1]]), s.length === 4) break;
        default:
          return this.error("Invalid margin array.");
      }
      this.opt.margin = s;
    }).then(this.setPageSize);
  }, i.prototype.setPageSize = function(s) {
    function o(c, h) {
      return Math.floor(c * h / 72 * 96);
    }
    return this.then(function() {
      (s = s || ae.getPageSize(this.opt.jsPDF)).hasOwnProperty("inner") || (s.inner = { width: s.width - this.opt.margin[1] - this.opt.margin[3], height: s.height - this.opt.margin[0] - this.opt.margin[2] }, s.inner.px = { width: o(s.inner.width, s.k), height: o(s.inner.height, s.k) }, s.inner.ratio = s.inner.height / s.inner.width), this.prop.pageSize = s;
    });
  }, i.prototype.setProgress = function(s, o, c, h) {
    return s != null && (this.progress.val = s), o != null && (this.progress.state = o), c != null && (this.progress.n = c), h != null && (this.progress.stack = h), this.progress.ratio = this.progress.val / this.progress.state, this;
  }, i.prototype.updateProgress = function(s, o, c, h) {
    return this.setProgress(s ? this.progress.val + s : null, o || null, c ? this.progress.n + c : null, h ? this.progress.stack.concat(h) : null);
  }, i.prototype.then = function(s, o) {
    var c = this;
    return this.thenCore(s, o, function(h, p) {
      return c.updateProgress(null, null, 1, [h]), Promise.prototype.then.call(this, function(d) {
        return c.updateProgress(null, h), d;
      }).then(h, p).then(function(d) {
        return c.updateProgress(1), d;
      });
    });
  }, i.prototype.thenCore = function(s, o, c) {
    c = c || Promise.prototype.then, s && (s = s.bind(this)), o && (o = o.bind(this));
    var h = Promise.toString().indexOf("[native code]") !== -1 && Promise.name === "Promise" ? this : i.convert(Object.assign({}, this), Promise.prototype), p = c.call(h, s, o);
    return i.convert(p, this.__proto__);
  }, i.prototype.thenExternal = function(s, o) {
    return Promise.prototype.then.call(this, s, o);
  }, i.prototype.thenList = function(s) {
    var o = this;
    return s.forEach(function(c) {
      o = o.thenCore(c);
    }), o;
  }, i.prototype.catch = function(s) {
    s && (s = s.bind(this));
    var o = Promise.prototype.catch.call(this, s);
    return i.convert(o, this);
  }, i.prototype.catchExternal = function(s) {
    return Promise.prototype.catch.call(this, s);
  }, i.prototype.error = function(s) {
    return this.then(function() {
      throw new Error(s);
    });
  }, i.prototype.using = i.prototype.set, i.prototype.saveAs = i.prototype.save, i.prototype.export = i.prototype.output, i.prototype.run = i.prototype.then, ae.getPageSize = function(s, o, c) {
    if (Se(s) === "object") {
      var h = s;
      s = h.orientation, o = h.unit || o, c = h.format || c;
    }
    o = o || "mm", c = c || "a4", s = ("" + (s || "P")).toLowerCase();
    var p, d = ("" + c).toLowerCase(), w = { a0: [2383.94, 3370.39], a1: [1683.78, 2383.94], a2: [1190.55, 1683.78], a3: [841.89, 1190.55], a4: [595.28, 841.89], a5: [419.53, 595.28], a6: [297.64, 419.53], a7: [209.76, 297.64], a8: [147.4, 209.76], a9: [104.88, 147.4], a10: [73.7, 104.88], b0: [2834.65, 4008.19], b1: [2004.09, 2834.65], b2: [1417.32, 2004.09], b3: [1000.63, 1417.32], b4: [708.66, 1000.63], b5: [498.9, 708.66], b6: [354.33, 498.9], b7: [249.45, 354.33], b8: [175.75, 249.45], b9: [124.72, 175.75], b10: [87.87, 124.72], c0: [2599.37, 3676.54], c1: [1836.85, 2599.37], c2: [1298.27, 1836.85], c3: [918.43, 1298.27], c4: [649.13, 918.43], c5: [459.21, 649.13], c6: [323.15, 459.21], c7: [229.61, 323.15], c8: [161.57, 229.61], c9: [113.39, 161.57], c10: [79.37, 113.39], dl: [311.81, 623.62], letter: [612, 792], "government-letter": [576, 756], legal: [612, 1008], "junior-legal": [576, 360], ledger: [1224, 792], tabloid: [792, 1224], "credit-card": [153, 243] };
    switch (o) {
      case "pt":
        p = 1;
        break;
      case "mm":
        p = 72 / 25.4;
        break;
      case "cm":
        p = 72 / 2.54;
        break;
      case "in":
        p = 72;
        break;
      case "px":
        p = 0.75;
        break;
      case "pc":
      case "em":
        p = 12;
        break;
      case "ex":
        p = 6;
        break;
      default:
        throw "Invalid unit: " + o;
    }
    var g, Q = 0, y = 0;
    if (w.hasOwnProperty(d)) Q = w[d][1] / p, y = w[d][0] / p;
    else try {
      Q = c[1], y = c[0];
    } catch {
      throw new Error("Invalid format: " + c);
    }
    if (s === "p" || s === "portrait") s = "p", y > Q && (g = y, y = Q, Q = g);
    else {
      if (s !== "l" && s !== "landscape") throw "Invalid orientation: " + s;
      s = "l", Q > y && (g = y, y = Q, Q = g);
    }
    return { width: y, height: Q, unit: o, k: p, orientation: s };
  }, t.html = function(s, o) {
    (o = o || {}).callback = o.callback || function() {
    }, o.html2canvas = o.html2canvas || {}, o.html2canvas.canvas = o.html2canvas.canvas || this.canvas, o.jsPDF = o.jsPDF || this, o.fontFaces = o.fontFaces ? o.fontFaces.map(qc) : null;
    var c = new i(o);
    return o.worker ? c : c.from(s).doCallback();
  };
}(ae.API), ae.API.addJS = function(t) {
  return gf = t, this.internal.events.subscribe("postPutResources", function() {
    so = this.internal.newObject(), this.internal.out("<<"), this.internal.out("/Names [(EmbeddedJS) " + (so + 1) + " 0 R]"), this.internal.out(">>"), this.internal.out("endobj"), df = this.internal.newObject(), this.internal.out("<<"), this.internal.out("/S /JavaScript"), this.internal.out("/JS (" + gf + ")"), this.internal.out(">>"), this.internal.out("endobj");
  }), this.internal.events.subscribe("putCatalog", function() {
    so !== void 0 && df !== void 0 && this.internal.out("/Names <</JavaScript " + so + " 0 R>>");
  }), this;
}, /**
 * @license
 * Copyright (c) 2014 Steven Spungin (TwelveTone LLC)  steven@twelvetone.tv
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  var e;
  t.events.push(["postPutResources", function() {
    var A = this, r = /^(\d+) 0 obj$/;
    if (this.outline.root.children.length > 0) for (var n = A.outline.render().split(/\r\n/), i = 0; i < n.length; i++) {
      var s = n[i], o = r.exec(s);
      if (o != null) {
        var c = o[1];
        A.internal.newObjectDeferredBegin(c, !1);
      }
      A.internal.write(s);
    }
    if (this.outline.createNamedDestinations) {
      var h = this.internal.pages.length, p = [];
      for (i = 0; i < h; i++) {
        var d = A.internal.newObject();
        p.push(d);
        var w = A.internal.getPageInfo(i + 1);
        A.internal.write("<< /D[" + w.objId + " 0 R /XYZ null null null]>> endobj");
      }
      var g = A.internal.newObject();
      for (A.internal.write("<< /Names [ "), i = 0; i < p.length; i++) A.internal.write("(page_" + (i + 1) + ")" + p[i] + " 0 R");
      A.internal.write(" ] >>", "endobj"), e = A.internal.newObject(), A.internal.write("<< /Dests " + g + " 0 R"), A.internal.write(">>", "endobj");
    }
  }]), t.events.push(["putCatalog", function() {
    this.outline.root.children.length > 0 && (this.internal.write("/Outlines", this.outline.makeRef(this.outline.root)), this.outline.createNamedDestinations && this.internal.write("/Names " + e + " 0 R"));
  }]), t.events.push(["initialized", function() {
    var A = this;
    A.outline = { createNamedDestinations: !1, root: { children: [] } }, A.outline.add = function(r, n, i) {
      var s = { title: n, options: i, children: [] };
      return r == null && (r = this.root), r.children.push(s), s;
    }, A.outline.render = function() {
      return this.ctx = {}, this.ctx.val = "", this.ctx.pdf = A, this.genIds_r(this.root), this.renderRoot(this.root), this.renderItems(this.root), this.ctx.val;
    }, A.outline.genIds_r = function(r) {
      r.id = A.internal.newObjectDeferred();
      for (var n = 0; n < r.children.length; n++) this.genIds_r(r.children[n]);
    }, A.outline.renderRoot = function(r) {
      this.objStart(r), this.line("/Type /Outlines"), r.children.length > 0 && (this.line("/First " + this.makeRef(r.children[0])), this.line("/Last " + this.makeRef(r.children[r.children.length - 1]))), this.line("/Count " + this.count_r({ count: 0 }, r)), this.objEnd();
    }, A.outline.renderItems = function(r) {
      for (var n = this.ctx.pdf.internal.getVerticalCoordinateString, i = 0; i < r.children.length; i++) {
        var s = r.children[i];
        this.objStart(s), this.line("/Title " + this.makeString(s.title)), this.line("/Parent " + this.makeRef(r)), i > 0 && this.line("/Prev " + this.makeRef(r.children[i - 1])), i < r.children.length - 1 && this.line("/Next " + this.makeRef(r.children[i + 1])), s.children.length > 0 && (this.line("/First " + this.makeRef(s.children[0])), this.line("/Last " + this.makeRef(s.children[s.children.length - 1])));
        var o = this.count = this.count_r({ count: 0 }, s);
        if (o > 0 && this.line("/Count " + o), s.options && s.options.pageNumber) {
          var c = A.internal.getPageInfo(s.options.pageNumber);
          this.line("/Dest [" + c.objId + " 0 R /XYZ 0 " + n(0) + " 0]");
        }
        this.objEnd();
      }
      for (var h = 0; h < r.children.length; h++) this.renderItems(r.children[h]);
    }, A.outline.line = function(r) {
      this.ctx.val += r + `\r
`;
    }, A.outline.makeRef = function(r) {
      return r.id + " 0 R";
    }, A.outline.makeString = function(r) {
      return "(" + A.internal.pdfEscape(r) + ")";
    }, A.outline.objStart = function(r) {
      this.ctx.val += `\r
` + r.id + ` 0 obj\r
<<\r
`;
    }, A.outline.objEnd = function() {
      this.ctx.val += `>> \r
endobj\r
`;
    }, A.outline.count_r = function(r, n) {
      for (var i = 0; i < n.children.length; i++) r.count++, this.count_r(r, n.children[i]);
      return r.count;
    };
  }]);
}(ae.API), /**
 * @license
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  var e = [192, 193, 194, 195, 196, 197, 198, 199];
  t.processJPEG = function(A, r, n, i, s, o) {
    var c, h = this.decode.DCT_DECODE, p = null;
    if (typeof A == "string" || this.__addimage__.isArrayBuffer(A) || this.__addimage__.isArrayBufferView(A)) {
      switch (A = s || A, A = this.__addimage__.isArrayBuffer(A) ? new Uint8Array(A) : A, (c = function(d) {
        for (var w, g = 256 * d.charCodeAt(4) + d.charCodeAt(5), Q = d.length, y = { width: 0, height: 0, numcomponents: 1 }, N = 4; N < Q; N += 2) {
          if (N += g, e.indexOf(d.charCodeAt(N + 1)) !== -1) {
            w = 256 * d.charCodeAt(N + 5) + d.charCodeAt(N + 6), y = { width: 256 * d.charCodeAt(N + 7) + d.charCodeAt(N + 8), height: w, numcomponents: d.charCodeAt(N + 9) };
            break;
          }
          g = 256 * d.charCodeAt(N + 2) + d.charCodeAt(N + 3);
        }
        return y;
      }(A = this.__addimage__.isArrayBufferView(A) ? this.__addimage__.arrayBufferToBinaryString(A) : A)).numcomponents) {
        case 1:
          o = this.color_spaces.DEVICE_GRAY;
          break;
        case 4:
          o = this.color_spaces.DEVICE_CMYK;
          break;
        case 3:
          o = this.color_spaces.DEVICE_RGB;
      }
      p = { data: A, width: c.width, height: c.height, colorSpace: o, bitsPerComponent: 8, filter: h, index: r, alias: n };
    }
    return p;
  };
}(ae.API);
var ji, oo, pf, Bf, wf, fB = function() {
  var t, e, A;
  function r(i) {
    var s, o, c, h, p, d, w, g, Q, y, N, v, U, K;
    for (this.data = i, this.pos = 8, this.palette = [], this.imgData = [], this.transparency = {}, this.animation = null, this.text = {}, d = null; ; ) {
      switch (s = this.readUInt32(), Q = (function() {
        var j, q;
        for (q = [], j = 0; j < 4; ++j) q.push(String.fromCharCode(this.data[this.pos++]));
        return q;
      }).call(this).join("")) {
        case "IHDR":
          this.width = this.readUInt32(), this.height = this.readUInt32(), this.bits = this.data[this.pos++], this.colorType = this.data[this.pos++], this.compressionMethod = this.data[this.pos++], this.filterMethod = this.data[this.pos++], this.interlaceMethod = this.data[this.pos++];
          break;
        case "acTL":
          this.animation = { numFrames: this.readUInt32(), numPlays: this.readUInt32() || 1 / 0, frames: [] };
          break;
        case "PLTE":
          this.palette = this.read(s);
          break;
        case "fcTL":
          d && this.animation.frames.push(d), this.pos += 4, d = { width: this.readUInt32(), height: this.readUInt32(), xOffset: this.readUInt32(), yOffset: this.readUInt32() }, p = this.readUInt16(), h = this.readUInt16() || 100, d.delay = 1e3 * p / h, d.disposeOp = this.data[this.pos++], d.blendOp = this.data[this.pos++], d.data = [];
          break;
        case "IDAT":
        case "fdAT":
          for (Q === "fdAT" && (this.pos += 4, s -= 4), i = (d != null ? d.data : void 0) || this.imgData, v = 0; 0 <= s ? v < s : v > s; 0 <= s ? ++v : --v) i.push(this.data[this.pos++]);
          break;
        case "tRNS":
          switch (this.transparency = {}, this.colorType) {
            case 3:
              if (c = this.palette.length / 3, this.transparency.indexed = this.read(s), this.transparency.indexed.length > c) throw new Error("More transparent colors than palette size");
              if ((y = c - this.transparency.indexed.length) > 0) for (U = 0; 0 <= y ? U < y : U > y; 0 <= y ? ++U : --U) this.transparency.indexed.push(255);
              break;
            case 0:
              this.transparency.grayscale = this.read(s)[0];
              break;
            case 2:
              this.transparency.rgb = this.read(s);
          }
          break;
        case "tEXt":
          w = (N = this.read(s)).indexOf(0), g = String.fromCharCode.apply(String, N.slice(0, w)), this.text[g] = String.fromCharCode.apply(String, N.slice(w + 1));
          break;
        case "IEND":
          return d && this.animation.frames.push(d), this.colors = (function() {
            switch (this.colorType) {
              case 0:
              case 3:
              case 4:
                return 1;
              case 2:
              case 6:
                return 3;
            }
          }).call(this), this.hasAlphaChannel = (K = this.colorType) === 4 || K === 6, o = this.colors + (this.hasAlphaChannel ? 1 : 0), this.pixelBitlength = this.bits * o, this.colorSpace = (function() {
            switch (this.colors) {
              case 1:
                return "DeviceGray";
              case 3:
                return "DeviceRGB";
            }
          }).call(this), void (this.imgData = new Uint8Array(this.imgData));
        default:
          this.pos += s;
      }
      if (this.pos += 4, this.pos > this.data.length) throw new Error("Incomplete or corrupt PNG file");
    }
  }
  r.prototype.read = function(i) {
    var s, o;
    for (o = [], s = 0; 0 <= i ? s < i : s > i; 0 <= i ? ++s : --s) o.push(this.data[this.pos++]);
    return o;
  }, r.prototype.readUInt32 = function() {
    return this.data[this.pos++] << 24 | this.data[this.pos++] << 16 | this.data[this.pos++] << 8 | this.data[this.pos++];
  }, r.prototype.readUInt16 = function() {
    return this.data[this.pos++] << 8 | this.data[this.pos++];
  }, r.prototype.decodePixels = function(i) {
    var s = this.pixelBitlength / 8, o = new Uint8Array(this.width * this.height * s), c = 0, h = this;
    if (i == null && (i = this.imgData), i.length === 0) return new Uint8Array(0);
    function p(d, w, g, Q) {
      var y, N, v, U, K, j, q, V, z, H, G, tA, x, F, _, P, lA, oA, iA, k, W, rA = Math.ceil((h.width - d) / g), OA = Math.ceil((h.height - w) / Q), L = h.width == rA && h.height == OA;
      for (F = s * rA, tA = L ? o : new Uint8Array(F * OA), j = i.length, x = 0, N = 0; x < OA && c < j; ) {
        switch (i[c++]) {
          case 0:
            for (U = lA = 0; lA < F; U = lA += 1) tA[N++] = i[c++];
            break;
          case 1:
            for (U = oA = 0; oA < F; U = oA += 1) y = i[c++], K = U < s ? 0 : tA[N - s], tA[N++] = (y + K) % 256;
            break;
          case 2:
            for (U = iA = 0; iA < F; U = iA += 1) y = i[c++], v = (U - U % s) / s, _ = x && tA[(x - 1) * F + v * s + U % s], tA[N++] = (_ + y) % 256;
            break;
          case 3:
            for (U = k = 0; k < F; U = k += 1) y = i[c++], v = (U - U % s) / s, K = U < s ? 0 : tA[N - s], _ = x && tA[(x - 1) * F + v * s + U % s], tA[N++] = (y + Math.floor((K + _) / 2)) % 256;
            break;
          case 4:
            for (U = W = 0; W < F; U = W += 1) y = i[c++], v = (U - U % s) / s, K = U < s ? 0 : tA[N - s], x === 0 ? _ = P = 0 : (_ = tA[(x - 1) * F + v * s + U % s], P = v && tA[(x - 1) * F + (v - 1) * s + U % s]), q = K + _ - P, V = Math.abs(q - K), H = Math.abs(q - _), G = Math.abs(q - P), z = V <= H && V <= G ? K : H <= G ? _ : P, tA[N++] = (y + z) % 256;
            break;
          default:
            throw new Error("Invalid filter algorithm: " + i[c - 1]);
        }
        if (!L) {
          var M = ((w + x * Q) * h.width + d) * s, R = x * F;
          for (U = 0; U < rA; U += 1) {
            for (var J = 0; J < s; J += 1) o[M++] = tA[R++];
            M += (g - 1) * s;
          }
        }
        x++;
      }
    }
    return i = V2(i), h.interlaceMethod == 1 ? (p(0, 0, 8, 8), p(4, 0, 8, 8), p(0, 4, 4, 8), p(2, 0, 4, 4), p(0, 2, 2, 4), p(1, 0, 2, 2), p(0, 1, 1, 2)) : p(0, 0, 1, 1), o;
  }, r.prototype.decodePalette = function() {
    var i, s, o, c, h, p, d, w, g;
    for (o = this.palette, p = this.transparency.indexed || [], h = new Uint8Array((p.length || 0) + o.length), c = 0, i = 0, s = d = 0, w = o.length; d < w; s = d += 3) h[c++] = o[s], h[c++] = o[s + 1], h[c++] = o[s + 2], h[c++] = (g = p[i++]) != null ? g : 255;
    return h;
  }, r.prototype.copyToImageData = function(i, s) {
    var o, c, h, p, d, w, g, Q, y, N, v;
    if (c = this.colors, y = null, o = this.hasAlphaChannel, this.palette.length && (y = (v = this._decodedPalette) != null ? v : this._decodedPalette = this.decodePalette(), c = 4, o = !0), Q = (h = i.data || i).length, d = y || s, p = w = 0, c === 1) for (; p < Q; ) g = y ? 4 * s[p / 4] : w, N = d[g++], h[p++] = N, h[p++] = N, h[p++] = N, h[p++] = o ? d[g++] : 255, w = g;
    else for (; p < Q; ) g = y ? 4 * s[p / 4] : w, h[p++] = d[g++], h[p++] = d[g++], h[p++] = d[g++], h[p++] = o ? d[g++] : 255, w = g;
  }, r.prototype.decode = function() {
    var i;
    return i = new Uint8Array(this.width * this.height * 4), this.copyToImageData(i, this.decodePixels()), i;
  };
  var n = function() {
    if (Object.prototype.toString.call(le) === "[object Window]") {
      try {
        e = le.document.createElement("canvas"), A = e.getContext("2d");
      } catch {
        return !1;
      }
      return !0;
    }
    return !1;
  };
  return n(), t = function(i) {
    var s;
    if (n() === !0) return A.width = i.width, A.height = i.height, A.clearRect(0, 0, i.width, i.height), A.putImageData(i, 0, 0), (s = new Image()).src = e.toDataURL(), s;
    throw new Error("This method requires a Browser with Canvas-capability.");
  }, r.prototype.decodeFrames = function(i) {
    var s, o, c, h, p, d, w, g;
    if (this.animation) {
      for (g = [], o = p = 0, d = (w = this.animation.frames).length; p < d; o = ++p) s = w[o], c = i.createImageData(s.width, s.height), h = this.decodePixels(new Uint8Array(s.data)), this.copyToImageData(c, h), s.imageData = c, g.push(s.image = t(c));
      return g;
    }
  }, r.prototype.renderFrame = function(i, s) {
    var o, c, h;
    return o = (c = this.animation.frames)[s], h = c[s - 1], s === 0 && i.clearRect(0, 0, this.width, this.height), (h != null ? h.disposeOp : void 0) === 1 ? i.clearRect(h.xOffset, h.yOffset, h.width, h.height) : (h != null ? h.disposeOp : void 0) === 2 && i.putImageData(h.imageData, h.xOffset, h.yOffset), o.blendOp === 0 && i.clearRect(o.xOffset, o.yOffset, o.width, o.height), i.drawImage(o.image, o.xOffset, o.yOffset);
  }, r.prototype.animate = function(i) {
    var s, o, c, h, p, d, w = this;
    return o = 0, d = this.animation, h = d.numFrames, c = d.frames, p = d.numPlays, (s = function() {
      var g, Q;
      if (g = o++ % h, Q = c[g], w.renderFrame(i, g), h > 1 && o / h < p) return w.animation._timeout = setTimeout(s, Q.delay);
    })();
  }, r.prototype.stopAnimation = function() {
    var i;
    return clearTimeout((i = this.animation) != null ? i._timeout : void 0);
  }, r.prototype.render = function(i) {
    var s, o;
    return i._png && i._png.stopAnimation(), i._png = this, i.width = this.width, i.height = this.height, s = i.getContext("2d"), this.animation ? (this.decodeFrames(s), this.animate(s)) : (o = s.createImageData(this.width, this.height), this.copyToImageData(o, this.decodePixels()), s.putImageData(o, 0, 0));
  }, r;
}();
/**
 * @license
 *
 * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 * ====================================================================
 */
/**
 * @license
 * (c) Dean McNamee <dean@gmail.com>, 2013.
 *
 * https://github.com/deanm/omggif
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to
 * deal in the Software without restriction, including without limitation the
 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 * sell copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 * IN THE SOFTWARE.
 *
 * omggif is a JavaScript implementation of a GIF 89a encoder and decoder,
 * including animation and compression.  It does not rely on any specific
 * underlying system, so should run in the browser, Node, or Plask.
 */
function hB(t) {
  var e = 0;
  if (t[e++] !== 71 || t[e++] !== 73 || t[e++] !== 70 || t[e++] !== 56 || (t[e++] + 1 & 253) != 56 || t[e++] !== 97) throw new Error("Invalid GIF 87a/89a header.");
  var A = t[e++] | t[e++] << 8, r = t[e++] | t[e++] << 8, n = t[e++], i = n >> 7, s = 1 << (7 & n) + 1;
  t[e++], t[e++];
  var o = null, c = null;
  i && (o = e, c = s, e += 3 * s);
  var h = !0, p = [], d = 0, w = null, g = 0, Q = null;
  for (this.width = A, this.height = r; h && e < t.length; ) switch (t[e++]) {
    case 33:
      switch (t[e++]) {
        case 255:
          if (t[e] !== 11 || t[e + 1] == 78 && t[e + 2] == 69 && t[e + 3] == 84 && t[e + 4] == 83 && t[e + 5] == 67 && t[e + 6] == 65 && t[e + 7] == 80 && t[e + 8] == 69 && t[e + 9] == 50 && t[e + 10] == 46 && t[e + 11] == 48 && t[e + 12] == 3 && t[e + 13] == 1 && t[e + 16] == 0) e += 14, Q = t[e++] | t[e++] << 8, e++;
          else for (e += 12; ; ) {
            if (!((x = t[e++]) >= 0)) throw Error("Invalid block size");
            if (x === 0) break;
            e += x;
          }
          break;
        case 249:
          if (t[e++] !== 4 || t[e + 4] !== 0) throw new Error("Invalid graphics extension block.");
          var y = t[e++];
          d = t[e++] | t[e++] << 8, w = t[e++], (1 & y) == 0 && (w = null), g = y >> 2 & 7, e++;
          break;
        case 254:
          for (; ; ) {
            if (!((x = t[e++]) >= 0)) throw Error("Invalid block size");
            if (x === 0) break;
            e += x;
          }
          break;
        default:
          throw new Error("Unknown graphic control label: 0x" + t[e - 1].toString(16));
      }
      break;
    case 44:
      var N = t[e++] | t[e++] << 8, v = t[e++] | t[e++] << 8, U = t[e++] | t[e++] << 8, K = t[e++] | t[e++] << 8, j = t[e++], q = j >> 6 & 1, V = 1 << (7 & j) + 1, z = o, H = c, G = !1;
      j >> 7 && (G = !0, z = e, H = V, e += 3 * V);
      var tA = e;
      for (e++; ; ) {
        var x;
        if (!((x = t[e++]) >= 0)) throw Error("Invalid block size");
        if (x === 0) break;
        e += x;
      }
      p.push({ x: N, y: v, width: U, height: K, has_local_palette: G, palette_offset: z, palette_size: H, data_offset: tA, data_length: e - tA, transparent_index: w, interlaced: !!q, delay: d, disposal: g });
      break;
    case 59:
      h = !1;
      break;
    default:
      throw new Error("Unknown gif block: 0x" + t[e - 1].toString(16));
  }
  this.numFrames = function() {
    return p.length;
  }, this.loopCount = function() {
    return Q;
  }, this.frameInfo = function(F) {
    if (F < 0 || F >= p.length) throw new Error("Frame index out of range.");
    return p[F];
  }, this.decodeAndBlitFrameBGRA = function(F, _) {
    var P = this.frameInfo(F), lA = P.width * P.height, oA = new Uint8Array(lA);
    vf(t, P.data_offset, oA, lA);
    var iA = P.palette_offset, k = P.transparent_index;
    k === null && (k = 256);
    var W = P.width, rA = A - W, OA = W, L = 4 * (P.y * A + P.x), M = 4 * ((P.y + P.height) * A + P.x), R = L, J = 4 * rA;
    P.interlaced === !0 && (J += 4 * A * 7);
    for (var eA = 8, uA = 0, dA = oA.length; uA < dA; ++uA) {
      var gA = oA[uA];
      if (OA === 0 && (OA = W, (R += J) >= M && (J = 4 * rA + 4 * A * (eA - 1), R = L + (W + rA) * (eA << 1), eA >>= 1)), gA === k) R += 4;
      else {
        var MA = t[iA + 3 * gA], NA = t[iA + 3 * gA + 1], RA = t[iA + 3 * gA + 2];
        _[R++] = RA, _[R++] = NA, _[R++] = MA, _[R++] = 255;
      }
      --OA;
    }
  }, this.decodeAndBlitFrameRGBA = function(F, _) {
    var P = this.frameInfo(F), lA = P.width * P.height, oA = new Uint8Array(lA);
    vf(t, P.data_offset, oA, lA);
    var iA = P.palette_offset, k = P.transparent_index;
    k === null && (k = 256);
    var W = P.width, rA = A - W, OA = W, L = 4 * (P.y * A + P.x), M = 4 * ((P.y + P.height) * A + P.x), R = L, J = 4 * rA;
    P.interlaced === !0 && (J += 4 * A * 7);
    for (var eA = 8, uA = 0, dA = oA.length; uA < dA; ++uA) {
      var gA = oA[uA];
      if (OA === 0 && (OA = W, (R += J) >= M && (J = 4 * rA + 4 * A * (eA - 1), R = L + (W + rA) * (eA << 1), eA >>= 1)), gA === k) R += 4;
      else {
        var MA = t[iA + 3 * gA], NA = t[iA + 3 * gA + 1], RA = t[iA + 3 * gA + 2];
        _[R++] = MA, _[R++] = NA, _[R++] = RA, _[R++] = 255;
      }
      --OA;
    }
  };
}
function vf(t, e, A, r) {
  for (var n = t[e++], i = 1 << n, s = i + 1, o = s + 1, c = n + 1, h = (1 << c) - 1, p = 0, d = 0, w = 0, g = t[e++], Q = new Int32Array(4096), y = null; ; ) {
    for (; p < 16 && g !== 0; ) d |= t[e++] << p, p += 8, g === 1 ? g = t[e++] : --g;
    if (p < c) break;
    var N = d & h;
    if (d >>= c, p -= c, N !== i) {
      if (N === s) break;
      for (var v = N < o ? N : y, U = 0, K = v; K > i; ) K = Q[K] >> 8, ++U;
      var j = K;
      if (w + U + (v !== N ? 1 : 0) > r) return void _e.log("Warning, gif stream longer than expected.");
      A[w++] = j;
      var q = w += U;
      for (v !== N && (A[w++] = j), K = v; U--; ) K = Q[K], A[--q] = 255 & K, K >>= 8;
      y !== null && o < 4096 && (Q[o++] = y << 8 | j, o >= h + 1 && c < 12 && (++c, h = h << 1 | 1)), y = N;
    } else o = s + 1, h = (1 << (c = n + 1)) - 1, y = null;
  }
  return w !== r && _e.log("Warning, gif stream shorter than expected."), A;
}
/**
 * @license
  Copyright (c) 2008, Adobe Systems Incorporated
  All rights reserved.

  Redistribution and use in source and binary forms, with or without 
  modification, are permitted provided that the following conditions are
  met:

  * Redistributions of source code must retain the above copyright notice, 
    this list of conditions and the following disclaimer.
  
  * Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the 
    documentation and/or other materials provided with the distribution.
  
  * Neither the name of Adobe Systems Incorporated nor the names of its 
    contributors may be used to endorse or promote products derived from 
    this software without specific prior written permission.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
  IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
function fc(t) {
  var e, A, r, n, i, s = Math.floor, o = new Array(64), c = new Array(64), h = new Array(64), p = new Array(64), d = new Array(65535), w = new Array(65535), g = new Array(64), Q = new Array(64), y = [], N = 0, v = 7, U = new Array(64), K = new Array(64), j = new Array(64), q = new Array(256), V = new Array(2048), z = [0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63], H = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], G = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], tA = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125], x = [1, 2, 3, 0, 4, 17, 5, 18, 33, 49, 65, 6, 19, 81, 97, 7, 34, 113, 20, 50, 129, 145, 161, 8, 35, 66, 177, 193, 21, 82, 209, 240, 36, 51, 98, 114, 130, 9, 10, 22, 23, 24, 25, 26, 37, 38, 39, 40, 41, 42, 52, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], F = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], _ = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], P = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119], lA = [0, 1, 2, 3, 17, 4, 5, 33, 49, 6, 18, 65, 81, 7, 97, 113, 19, 34, 50, 129, 8, 20, 66, 145, 161, 177, 193, 9, 35, 51, 82, 240, 21, 98, 114, 209, 10, 22, 36, 52, 225, 37, 241, 23, 24, 25, 26, 38, 39, 40, 41, 42, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 130, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 226, 227, 228, 229, 230, 231, 232, 233, 234, 242, 243, 244, 245, 246, 247, 248, 249, 250];
  function oA(L, M) {
    for (var R = 0, J = 0, eA = new Array(), uA = 1; uA <= 16; uA++) {
      for (var dA = 1; dA <= L[uA]; dA++) eA[M[J]] = [], eA[M[J]][0] = R, eA[M[J]][1] = uA, J++, R++;
      R *= 2;
    }
    return eA;
  }
  function iA(L) {
    for (var M = L[0], R = L[1] - 1; R >= 0; ) M & 1 << R && (N |= 1 << v), R--, --v < 0 && (N == 255 ? (k(255), k(0)) : k(N), v = 7, N = 0);
  }
  function k(L) {
    y.push(L);
  }
  function W(L) {
    k(L >> 8 & 255), k(255 & L);
  }
  function rA(L, M, R, J, eA) {
    for (var uA, dA = eA[0], gA = eA[240], MA = function(sA, pA) {
      var FA, UA, SA, QA, yA, PA, ZA, ue, YA, ne, VA = 0;
      for (YA = 0; YA < 8; ++YA) {
        FA = sA[VA], UA = sA[VA + 1], SA = sA[VA + 2], QA = sA[VA + 3], yA = sA[VA + 4], PA = sA[VA + 5], ZA = sA[VA + 6];
        var Ve = FA + (ue = sA[VA + 7]), mA = FA - ue, TA = UA + ZA, IA = UA - ZA, Ae = SA + PA, me = SA - PA, se = QA + yA, He = QA - yA, we = Ve + se, Oe = Ve - se, ze = TA + Ae, ve = TA - Ae;
        sA[VA] = we + ze, sA[VA + 4] = we - ze;
        var ce = 0.707106781 * (ve + Oe);
        sA[VA + 2] = Oe + ce, sA[VA + 6] = Oe - ce;
        var Ue = 0.382683433 * ((we = He + me) - (ve = IA + mA)), jn = 0.5411961 * we + Ue, wt = 1.306562965 * ve + Ue, Dr = 0.707106781 * (ze = me + IA), Nr = mA + Dr, ie = mA - Dr;
        sA[VA + 5] = ie + jn, sA[VA + 3] = ie - jn, sA[VA + 1] = Nr + wt, sA[VA + 7] = Nr - wt, VA += 8;
      }
      for (VA = 0, YA = 0; YA < 8; ++YA) {
        FA = sA[VA], UA = sA[VA + 8], SA = sA[VA + 16], QA = sA[VA + 24], yA = sA[VA + 32], PA = sA[VA + 40], ZA = sA[VA + 48];
        var dr = FA + (ue = sA[VA + 56]), kr = FA - ue, Mt = UA + ZA, ct = UA - ZA, it = SA + PA, qt = SA - PA, gi = QA + yA, Yr = QA - yA, gr = dr + gi, pr = dr - gi, Br = Mt + it, _r = Mt - it;
        sA[VA] = gr + Br, sA[VA + 32] = gr - Br;
        var Ar = 0.707106781 * (_r + pr);
        sA[VA + 16] = pr + Ar, sA[VA + 48] = pr - Ar;
        var Tr = 0.382683433 * ((gr = Yr + qt) - (_r = ct + kr)), qn = 0.5411961 * gr + Tr, pi = 1.306562965 * _r + Tr, Bi = 0.707106781 * (Br = qt + ct), wi = kr + Bi, vi = kr - Bi;
        sA[VA + 40] = vi + qn, sA[VA + 24] = vi - qn, sA[VA + 8] = wi + pi, sA[VA + 56] = wi - pi, VA++;
      }
      for (YA = 0; YA < 64; ++YA) ne = sA[YA] * pA[YA], g[YA] = ne > 0 ? ne + 0.5 | 0 : ne - 0.5 | 0;
      return g;
    }(L, M), NA = 0; NA < 64; ++NA) Q[z[NA]] = MA[NA];
    var RA = Q[0] - R;
    R = Q[0], RA == 0 ? iA(J[0]) : (iA(J[w[uA = 32767 + RA]]), iA(d[uA]));
    for (var GA = 63; GA > 0 && Q[GA] == 0; ) GA--;
    if (GA == 0) return iA(dA), R;
    for (var ee, wA = 1; wA <= GA; ) {
      for (var D = wA; Q[wA] == 0 && wA <= GA; ) ++wA;
      var $ = wA - D;
      if ($ >= 16) {
        ee = $ >> 4;
        for (var BA = 1; BA <= ee; ++BA) iA(gA);
        $ &= 15;
      }
      uA = 32767 + Q[wA], iA(eA[($ << 4) + w[uA]]), iA(d[uA]), wA++;
    }
    return GA != 63 && iA(dA), R;
  }
  function OA(L) {
    L = Math.min(Math.max(L, 1), 100), i != L && (function(M) {
      for (var R = [16, 11, 10, 16, 24, 40, 51, 61, 12, 12, 14, 19, 26, 58, 60, 55, 14, 13, 16, 24, 40, 57, 69, 56, 14, 17, 22, 29, 51, 87, 80, 62, 18, 22, 37, 56, 68, 109, 103, 77, 24, 35, 55, 64, 81, 104, 113, 92, 49, 64, 78, 87, 103, 121, 120, 101, 72, 92, 95, 98, 112, 100, 103, 99], J = 0; J < 64; J++) {
        var eA = s((R[J] * M + 50) / 100);
        eA = Math.min(Math.max(eA, 1), 255), o[z[J]] = eA;
      }
      for (var uA = [17, 18, 24, 47, 99, 99, 99, 99, 18, 21, 26, 66, 99, 99, 99, 99, 24, 26, 56, 99, 99, 99, 99, 99, 47, 66, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99], dA = 0; dA < 64; dA++) {
        var gA = s((uA[dA] * M + 50) / 100);
        gA = Math.min(Math.max(gA, 1), 255), c[z[dA]] = gA;
      }
      for (var MA = [1, 1.387039845, 1.306562965, 1.175875602, 1, 0.785694958, 0.5411961, 0.275899379], NA = 0, RA = 0; RA < 8; RA++) for (var GA = 0; GA < 8; GA++) h[NA] = 1 / (o[z[NA]] * MA[RA] * MA[GA] * 8), p[NA] = 1 / (c[z[NA]] * MA[RA] * MA[GA] * 8), NA++;
    }(L < 50 ? Math.floor(5e3 / L) : Math.floor(200 - 2 * L)), i = L);
  }
  this.encode = function(L, M) {
    M && OA(M), y = new Array(), N = 0, v = 7, W(65496), W(65504), W(16), k(74), k(70), k(73), k(70), k(0), k(1), k(1), k(0), W(1), W(1), k(0), k(0), function() {
      W(65499), W(132), k(0);
      for (var UA = 0; UA < 64; UA++) k(o[UA]);
      k(1);
      for (var SA = 0; SA < 64; SA++) k(c[SA]);
    }(), function(UA, SA) {
      W(65472), W(17), k(8), W(SA), W(UA), k(3), k(1), k(17), k(0), k(2), k(17), k(1), k(3), k(17), k(1);
    }(L.width, L.height), function() {
      W(65476), W(418), k(0);
      for (var UA = 0; UA < 16; UA++) k(H[UA + 1]);
      for (var SA = 0; SA <= 11; SA++) k(G[SA]);
      k(16);
      for (var QA = 0; QA < 16; QA++) k(tA[QA + 1]);
      for (var yA = 0; yA <= 161; yA++) k(x[yA]);
      k(1);
      for (var PA = 0; PA < 16; PA++) k(F[PA + 1]);
      for (var ZA = 0; ZA <= 11; ZA++) k(_[ZA]);
      k(17);
      for (var ue = 0; ue < 16; ue++) k(P[ue + 1]);
      for (var YA = 0; YA <= 161; YA++) k(lA[YA]);
    }(), W(65498), W(12), k(3), k(1), k(0), k(2), k(17), k(3), k(17), k(0), k(63), k(0);
    var R = 0, J = 0, eA = 0;
    N = 0, v = 7, this.encode.displayName = "_encode_";
    for (var uA, dA, gA, MA, NA, RA, GA, ee, wA, D = L.data, $ = L.width, BA = L.height, sA = 4 * $, pA = 0; pA < BA; ) {
      for (uA = 0; uA < sA; ) {
        for (NA = sA * pA + uA, GA = -1, ee = 0, wA = 0; wA < 64; wA++) RA = NA + (ee = wA >> 3) * sA + (GA = 4 * (7 & wA)), pA + ee >= BA && (RA -= sA * (pA + 1 + ee - BA)), uA + GA >= sA && (RA -= uA + GA - sA + 4), dA = D[RA++], gA = D[RA++], MA = D[RA++], U[wA] = (V[dA] + V[gA + 256 >> 0] + V[MA + 512 >> 0] >> 16) - 128, K[wA] = (V[dA + 768 >> 0] + V[gA + 1024 >> 0] + V[MA + 1280 >> 0] >> 16) - 128, j[wA] = (V[dA + 1280 >> 0] + V[gA + 1536 >> 0] + V[MA + 1792 >> 0] >> 16) - 128;
        R = rA(U, h, R, e, r), J = rA(K, p, J, A, n), eA = rA(j, p, eA, A, n), uA += 32;
      }
      pA += 8;
    }
    if (v >= 0) {
      var FA = [];
      FA[1] = v + 1, FA[0] = (1 << v + 1) - 1, iA(FA);
    }
    return W(65497), new Uint8Array(y);
  }, t = t || 50, function() {
    for (var L = String.fromCharCode, M = 0; M < 256; M++) q[M] = L(M);
  }(), e = oA(H, G), A = oA(F, _), r = oA(tA, x), n = oA(P, lA), function() {
    for (var L = 1, M = 2, R = 1; R <= 15; R++) {
      for (var J = L; J < M; J++) w[32767 + J] = R, d[32767 + J] = [], d[32767 + J][1] = R, d[32767 + J][0] = J;
      for (var eA = -(M - 1); eA <= -L; eA++) w[32767 + eA] = R, d[32767 + eA] = [], d[32767 + eA][1] = R, d[32767 + eA][0] = M - 1 + eA;
      L <<= 1, M <<= 1;
    }
  }(), function() {
    for (var L = 0; L < 256; L++) V[L] = 19595 * L, V[L + 256 >> 0] = 38470 * L, V[L + 512 >> 0] = 7471 * L + 32768, V[L + 768 >> 0] = -11059 * L, V[L + 1024 >> 0] = -21709 * L, V[L + 1280 >> 0] = 32768 * L + 8421375, V[L + 1536 >> 0] = -27439 * L, V[L + 1792 >> 0] = -5329 * L;
  }(), OA(t);
}
/**
 * @license
 * Copyright (c) 2017 Aras Abbasi
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function Qr(t, e) {
  if (this.pos = 0, this.buffer = t, this.datav = new DataView(t.buffer), this.is_with_alpha = !!e, this.bottom_up = !0, this.flag = String.fromCharCode(this.buffer[0]) + String.fromCharCode(this.buffer[1]), this.pos += 2, ["BM", "BA", "CI", "CP", "IC", "PT"].indexOf(this.flag) === -1) throw new Error("Invalid BMP File");
  this.parseHeader(), this.parseBGR();
}
function mf(t) {
  function e(H) {
    if (!H) throw Error("assert :P");
  }
  function A(H, G, tA) {
    for (var x = 0; 4 > x; x++) if (H[G + x] != tA.charCodeAt(x)) return !0;
    return !1;
  }
  function r(H, G, tA, x, F) {
    for (var _ = 0; _ < F; _++) H[G + _] = tA[x + _];
  }
  function n(H, G, tA, x) {
    for (var F = 0; F < x; F++) H[G + F] = tA;
  }
  function i(H) {
    return new Int32Array(H);
  }
  function s(H, G) {
    for (var tA = [], x = 0; x < H; x++) tA.push(new G());
    return tA;
  }
  function o(H, G) {
    var tA = [];
    return function x(F, _, P) {
      for (var lA = P[_], oA = 0; oA < lA && (F.push(P.length > _ + 1 ? [] : new G()), !(P.length < _ + 1)); oA++) x(F[oA], _ + 1, P);
    }(tA, 0, H), tA;
  }
  var c = function() {
    var H = this;
    function G(a, l) {
      for (var f = 1 << l - 1 >>> 0; a & f; ) f >>>= 1;
      return f ? (a & f - 1) + f : a;
    }
    function tA(a, l, f, B, m) {
      e(!(B % f));
      do
        a[l + (B -= f)] = m;
      while (0 < B);
    }
    function x(a, l, f, B, m) {
      if (e(2328 >= m), 512 >= m) var b = i(512);
      else if ((b = i(m)) == null) return 0;
      return function(E, I, S, T, Z, fA) {
        var hA, aA, EA = I, vA = 1 << S, AA = i(16), nA = i(16);
        for (e(Z != 0), e(T != null), e(E != null), e(0 < S), aA = 0; aA < Z; ++aA) {
          if (15 < T[aA]) return 0;
          ++AA[T[aA]];
        }
        if (AA[0] == Z) return 0;
        for (nA[1] = 0, hA = 1; 15 > hA; ++hA) {
          if (AA[hA] > 1 << hA) return 0;
          nA[hA + 1] = nA[hA] + AA[hA];
        }
        for (aA = 0; aA < Z; ++aA) hA = T[aA], 0 < T[aA] && (fA[nA[hA]++] = aA);
        if (nA[15] == 1) return (T = new F()).g = 0, T.value = fA[0], tA(E, EA, 1, vA, T), vA;
        var bA, HA = -1, LA = vA - 1, zA = 0, jA = 1, re = 1, qA = 1 << S;
        for (aA = 0, hA = 1, Z = 2; hA <= S; ++hA, Z <<= 1) {
          if (jA += re <<= 1, 0 > (re -= AA[hA])) return 0;
          for (; 0 < AA[hA]; --AA[hA]) (T = new F()).g = hA, T.value = fA[aA++], tA(E, EA + zA, Z, qA, T), zA = G(zA, hA);
        }
        for (hA = S + 1, Z = 2; 15 >= hA; ++hA, Z <<= 1) {
          if (jA += re <<= 1, 0 > (re -= AA[hA])) return 0;
          for (; 0 < AA[hA]; --AA[hA]) {
            if (T = new F(), (zA & LA) != HA) {
              for (EA += qA, bA = 1 << (HA = hA) - S; 15 > HA && !(0 >= (bA -= AA[HA])); ) ++HA, bA <<= 1;
              vA += qA = 1 << (bA = HA - S), E[I + (HA = zA & LA)].g = bA + S, E[I + HA].value = EA - I - HA;
            }
            T.g = hA - S, T.value = fA[aA++], tA(E, EA + (zA >> S), Z, qA, T), zA = G(zA, hA);
          }
        }
        return jA != 2 * nA[15] - 1 ? 0 : vA;
      }(a, l, f, B, m, b);
    }
    function F() {
      this.value = this.g = 0;
    }
    function _() {
      this.value = this.g = 0;
    }
    function P() {
      this.G = s(5, F), this.H = i(5), this.jc = this.Qb = this.qb = this.nd = 0, this.pd = s(vt, _);
    }
    function lA(a, l, f, B) {
      e(a != null), e(l != null), e(2147483648 > B), a.Ca = 254, a.I = 0, a.b = -8, a.Ka = 0, a.oa = l, a.pa = f, a.Jd = l, a.Yc = f + B, a.Zc = 4 <= B ? f + B - 4 + 1 : f, uA(a);
    }
    function oA(a, l) {
      for (var f = 0; 0 < l--; ) f |= gA(a, 128) << l;
      return f;
    }
    function iA(a, l) {
      var f = oA(a, l);
      return dA(a) ? -f : f;
    }
    function k(a, l, f, B) {
      var m, b = 0;
      for (e(a != null), e(l != null), e(4294967288 > B), a.Sb = B, a.Ra = 0, a.u = 0, a.h = 0, 4 < B && (B = 4), m = 0; m < B; ++m) b += l[f + m] << 8 * m;
      a.Ra = b, a.bb = B, a.oa = l, a.pa = f;
    }
    function W(a) {
      for (; 8 <= a.u && a.bb < a.Sb; ) a.Ra >>>= 8, a.Ra += a.oa[a.pa + a.bb] << Ni - 8 >>> 0, ++a.bb, a.u -= 8;
      R(a) && (a.h = 1, a.u = 0);
    }
    function rA(a, l) {
      if (e(0 <= l), !a.h && l <= Di) {
        var f = M(a) & Hi[l];
        return a.u += l, W(a), f;
      }
      return a.h = 1, a.u = 0;
    }
    function OA() {
      this.b = this.Ca = this.I = 0, this.oa = [], this.pa = 0, this.Jd = [], this.Yc = 0, this.Zc = [], this.Ka = 0;
    }
    function L() {
      this.Ra = 0, this.oa = [], this.h = this.u = this.bb = this.Sb = this.pa = 0;
    }
    function M(a) {
      return a.Ra >>> (a.u & Ni - 1) >>> 0;
    }
    function R(a) {
      return e(a.bb <= a.Sb), a.h || a.bb == a.Sb && a.u > Ni;
    }
    function J(a, l) {
      a.u = l, a.h = R(a);
    }
    function eA(a) {
      a.u >= Ia && (e(a.u >= Ia), W(a));
    }
    function uA(a) {
      e(a != null && a.oa != null), a.pa < a.Zc ? (a.I = (a.oa[a.pa++] | a.I << 8) >>> 0, a.b += 8) : (e(a != null && a.oa != null), a.pa < a.Yc ? (a.b += 8, a.I = a.oa[a.pa++] | a.I << 8) : a.Ka ? a.b = 0 : (a.I <<= 8, a.b += 8, a.Ka = 1));
    }
    function dA(a) {
      return oA(a, 1);
    }
    function gA(a, l) {
      var f = a.Ca;
      0 > a.b && uA(a);
      var B = a.b, m = f * l >>> 8, b = (a.I >>> B > m) + 0;
      for (b ? (f -= m, a.I -= m + 1 << B >>> 0) : f = m + 1, B = f, m = 0; 256 <= B; ) m += 8, B >>= 8;
      return B = 7 ^ m + Ot[B], a.b -= B, a.Ca = (f << B) - 1, b;
    }
    function MA(a, l, f) {
      a[l + 0] = f >> 24 & 255, a[l + 1] = f >> 16 & 255, a[l + 2] = f >> 8 & 255, a[l + 3] = f >> 0 & 255;
    }
    function NA(a, l) {
      return a[l + 0] << 0 | a[l + 1] << 8;
    }
    function RA(a, l) {
      return NA(a, l) | a[l + 2] << 16;
    }
    function GA(a, l) {
      return NA(a, l) | NA(a, l + 2) << 16;
    }
    function ee(a, l) {
      var f = 1 << l;
      return e(a != null), e(0 < l), a.X = i(f), a.X == null ? 0 : (a.Mb = 32 - l, a.Xa = l, 1);
    }
    function wA(a, l) {
      e(a != null), e(l != null), e(a.Xa == l.Xa), r(l.X, 0, a.X, 0, 1 << l.Xa);
    }
    function D() {
      this.X = [], this.Xa = this.Mb = 0;
    }
    function $(a, l, f, B) {
      e(f != null), e(B != null);
      var m = f[0], b = B[0];
      return m == 0 && (m = (a * b + l / 2) / l), b == 0 && (b = (l * m + a / 2) / a), 0 >= m || 0 >= b ? 0 : (f[0] = m, B[0] = b, 1);
    }
    function BA(a, l) {
      return a + (1 << l) - 1 >>> l;
    }
    function sA(a, l) {
      return ((4278255360 & a) + (4278255360 & l) >>> 0 & 4278255360) + ((16711935 & a) + (16711935 & l) >>> 0 & 16711935) >>> 0;
    }
    function pA(a, l) {
      H[l] = function(f, B, m, b, E, I, S) {
        var T;
        for (T = 0; T < E; ++T) {
          var Z = H[a](I[S + T - 1], m, b + T);
          I[S + T] = sA(f[B + T], Z);
        }
      };
    }
    function FA() {
      this.ud = this.hd = this.jd = 0;
    }
    function UA(a, l) {
      return ((4278124286 & (a ^ l)) >>> 1) + (a & l) >>> 0;
    }
    function SA(a) {
      return 0 <= a && 256 > a ? a : 0 > a ? 0 : 255 < a ? 255 : void 0;
    }
    function QA(a, l) {
      return SA(a + (a - l + 0.5 >> 1));
    }
    function yA(a, l, f) {
      return Math.abs(l - f) - Math.abs(a - f);
    }
    function PA(a, l, f, B, m, b, E) {
      for (B = b[E - 1], f = 0; f < m; ++f) b[E + f] = B = sA(a[l + f], B);
    }
    function ZA(a, l, f, B, m) {
      var b;
      for (b = 0; b < f; ++b) {
        var E = a[l + b], I = E >> 8 & 255, S = 16711935 & (S = (S = 16711935 & E) + ((I << 16) + I));
        B[m + b] = (4278255360 & E) + S >>> 0;
      }
    }
    function ue(a, l) {
      l.jd = a >> 0 & 255, l.hd = a >> 8 & 255, l.ud = a >> 16 & 255;
    }
    function YA(a, l, f, B, m, b) {
      var E;
      for (E = 0; E < B; ++E) {
        var I = l[f + E], S = I >>> 8, T = I, Z = 255 & (Z = (Z = I >>> 16) + ((a.jd << 24 >> 24) * (S << 24 >> 24) >>> 5));
        T = 255 & (T = (T = T + ((a.hd << 24 >> 24) * (S << 24 >> 24) >>> 5)) + ((a.ud << 24 >> 24) * (Z << 24 >> 24) >>> 5)), m[b + E] = (4278255360 & I) + (Z << 16) + T;
      }
    }
    function ne(a, l, f, B, m) {
      H[l] = function(b, E, I, S, T, Z, fA, hA, aA) {
        for (S = fA; S < hA; ++S) for (fA = 0; fA < aA; ++fA) T[Z++] = m(I[B(b[E++])]);
      }, H[a] = function(b, E, I, S, T, Z, fA) {
        var hA = 8 >> b.b, aA = b.Ea, EA = b.K[0], vA = b.w;
        if (8 > hA) for (b = (1 << b.b) - 1, vA = (1 << hA) - 1; E < I; ++E) {
          var AA, nA = 0;
          for (AA = 0; AA < aA; ++AA) AA & b || (nA = B(S[T++])), Z[fA++] = m(EA[nA & vA]), nA >>= hA;
        }
        else H["VP8LMapColor" + f](S, T, EA, vA, Z, fA, E, I, aA);
      };
    }
    function VA(a, l, f, B, m) {
      for (f = l + f; l < f; ) {
        var b = a[l++];
        B[m++] = b >> 16 & 255, B[m++] = b >> 8 & 255, B[m++] = b >> 0 & 255;
      }
    }
    function Ve(a, l, f, B, m) {
      for (f = l + f; l < f; ) {
        var b = a[l++];
        B[m++] = b >> 16 & 255, B[m++] = b >> 8 & 255, B[m++] = b >> 0 & 255, B[m++] = b >> 24 & 255;
      }
    }
    function mA(a, l, f, B, m) {
      for (f = l + f; l < f; ) {
        var b = (E = a[l++]) >> 16 & 240 | E >> 12 & 15, E = E >> 0 & 240 | E >> 28 & 15;
        B[m++] = b, B[m++] = E;
      }
    }
    function TA(a, l, f, B, m) {
      for (f = l + f; l < f; ) {
        var b = (E = a[l++]) >> 16 & 248 | E >> 13 & 7, E = E >> 5 & 224 | E >> 3 & 31;
        B[m++] = b, B[m++] = E;
      }
    }
    function IA(a, l, f, B, m) {
      for (f = l + f; l < f; ) {
        var b = a[l++];
        B[m++] = b >> 0 & 255, B[m++] = b >> 8 & 255, B[m++] = b >> 16 & 255;
      }
    }
    function Ae(a, l, f, B, m, b) {
      if (b == 0) for (f = l + f; l < f; ) MA(B, ((b = a[l++])[0] >> 24 | b[1] >> 8 & 65280 | b[2] << 8 & 16711680 | b[3] << 24) >>> 0), m += 32;
      else r(B, m, a, l, f);
    }
    function me(a, l) {
      H[l][0] = H[a + "0"], H[l][1] = H[a + "1"], H[l][2] = H[a + "2"], H[l][3] = H[a + "3"], H[l][4] = H[a + "4"], H[l][5] = H[a + "5"], H[l][6] = H[a + "6"], H[l][7] = H[a + "7"], H[l][8] = H[a + "8"], H[l][9] = H[a + "9"], H[l][10] = H[a + "10"], H[l][11] = H[a + "11"], H[l][12] = H[a + "12"], H[l][13] = H[a + "13"], H[l][14] = H[a + "0"], H[l][15] = H[a + "0"];
    }
    function se(a) {
      return a == Kl || a == Rl || a == Gs || a == Gl;
    }
    function He() {
      this.eb = [], this.size = this.A = this.fb = 0;
    }
    function we() {
      this.y = [], this.f = [], this.ea = [], this.F = [], this.Tc = this.Ed = this.Cd = this.Fd = this.lb = this.Db = this.Ab = this.fa = this.J = this.W = this.N = this.O = 0;
    }
    function Oe() {
      this.Rd = this.height = this.width = this.S = 0, this.f = {}, this.f.RGBA = new He(), this.f.kb = new we(), this.sd = null;
    }
    function ze() {
      this.width = [0], this.height = [0], this.Pd = [0], this.Qd = [0], this.format = [0];
    }
    function ve() {
      this.Id = this.fd = this.Md = this.hb = this.ib = this.da = this.bd = this.cd = this.j = this.v = this.Da = this.Sd = this.ob = 0;
    }
    function ce(a) {
      return alert("todo:WebPSamplerProcessPlane"), a.T;
    }
    function Ue(a, l) {
      var f = a.T, B = l.ba.f.RGBA, m = B.eb, b = B.fb + a.ka * B.A, E = ar[l.ba.S], I = a.y, S = a.O, T = a.f, Z = a.N, fA = a.ea, hA = a.W, aA = l.cc, EA = l.dc, vA = l.Mc, AA = l.Nc, nA = a.ka, bA = a.ka + a.T, HA = a.U, LA = HA + 1 >> 1;
      for (nA == 0 ? E(I, S, null, null, T, Z, fA, hA, T, Z, fA, hA, m, b, null, null, HA) : (E(l.ec, l.fc, I, S, aA, EA, vA, AA, T, Z, fA, hA, m, b - B.A, m, b, HA), ++f); nA + 2 < bA; nA += 2) aA = T, EA = Z, vA = fA, AA = hA, Z += a.Rc, hA += a.Rc, b += 2 * B.A, E(I, (S += 2 * a.fa) - a.fa, I, S, aA, EA, vA, AA, T, Z, fA, hA, m, b - B.A, m, b, HA);
      return S += a.fa, a.j + bA < a.o ? (r(l.ec, l.fc, I, S, HA), r(l.cc, l.dc, T, Z, LA), r(l.Mc, l.Nc, fA, hA, LA), f--) : 1 & bA || E(I, S, null, null, T, Z, fA, hA, T, Z, fA, hA, m, b + B.A, null, null, HA), f;
    }
    function jn(a, l, f) {
      var B = a.F, m = [a.J];
      if (B != null) {
        var b = a.U, E = l.ba.S, I = E == Rs || E == Gs;
        l = l.ba.f.RGBA;
        var S = [0], T = a.ka;
        S[0] = a.T, a.Kb && (T == 0 ? --S[0] : (--T, m[0] -= a.width), a.j + a.ka + a.T == a.o && (S[0] = a.o - a.j - T));
        var Z = l.eb;
        T = l.fb + T * l.A, a = Me(B, m[0], a.width, b, S, Z, T + (I ? 0 : 3), l.A), e(f == S), a && se(E) && nr(Z, T, I, b, S, l.A);
      }
      return 0;
    }
    function wt(a) {
      var l = a.ma, f = l.ba.S, B = 11 > f, m = f == Os || f == Ks || f == Rs || f == Ol || f == 12 || se(f);
      if (l.memory = null, l.Ib = null, l.Jb = null, l.Nd = null, !Ea(l.Oa, a, m ? 11 : 12)) return 0;
      if (m && se(f) && kA(), a.da) alert("todo:use_scaling");
      else {
        if (B) {
          if (l.Ib = ce, a.Kb) {
            if (f = a.U + 1 >> 1, l.memory = i(a.U + 2 * f), l.memory == null) return 0;
            l.ec = l.memory, l.fc = 0, l.cc = l.ec, l.dc = l.fc + a.U, l.Mc = l.cc, l.Nc = l.dc + f, l.Ib = Ue, kA();
          }
        } else alert("todo:EmitYUV");
        m && (l.Jb = jn, B && cA());
      }
      if (B && !ku) {
        for (a = 0; 256 > a; ++a) fg[a] = 89858 * (a - 128) + js >> Vs, gg[a] = -22014 * (a - 128) + js, dg[a] = -45773 * (a - 128), hg[a] = 113618 * (a - 128) + js >> Vs;
        for (a = Ta; a < ql; ++a) l = 76283 * (a - 16) + js >> Vs, pg[a - Ta] = Wt(l, 255), Bg[a - Ta] = Wt(l + 8 >> 4, 15);
        ku = 1;
      }
      return 1;
    }
    function Dr(a) {
      var l = a.ma, f = a.U, B = a.T;
      return e(!(1 & a.ka)), 0 >= f || 0 >= B ? 0 : (f = l.Ib(a, l), l.Jb != null && l.Jb(a, l, f), l.Dc += f, 1);
    }
    function Nr(a) {
      a.ma.memory = null;
    }
    function ie(a, l, f, B) {
      return rA(a, 8) != 47 ? 0 : (l[0] = rA(a, 14) + 1, f[0] = rA(a, 14) + 1, B[0] = rA(a, 1), rA(a, 3) != 0 ? 0 : !a.h);
    }
    function dr(a, l) {
      if (4 > a) return a + 1;
      var f = a - 2 >> 1;
      return (2 + (1 & a) << f) + rA(l, f) + 1;
    }
    function kr(a, l) {
      return 120 < l ? l - 120 : 1 <= (f = ((f = $d[l - 1]) >> 4) * a + (8 - (15 & f))) ? f : 1;
      var f;
    }
    function Mt(a, l, f) {
      var B = M(f), m = a[l += 255 & B].g - 8;
      return 0 < m && (J(f, f.u + 8), B = M(f), l += a[l].value, l += B & (1 << m) - 1), J(f, f.u + a[l].g), a[l].value;
    }
    function ct(a, l, f) {
      return f.g += a.g, f.value += a.value << l >>> 0, e(8 >= f.g), a.g;
    }
    function it(a, l, f) {
      var B = a.xc;
      return e((l = B == 0 ? 0 : a.vc[a.md * (f >> B) + (l >> B)]) < a.Wb), a.Ya[l];
    }
    function qt(a, l, f, B) {
      var m = a.ab, b = a.c * l, E = a.C;
      l = E + l;
      var I = f, S = B;
      for (B = a.Ta, f = a.Ua; 0 < m--; ) {
        var T = a.gc[m], Z = E, fA = l, hA = I, aA = S, EA = (S = B, I = f, T.Ea);
        switch (e(Z < fA), e(fA <= T.nc), T.hc) {
          case 2:
            Ds(hA, aA, (fA - Z) * EA, S, I);
            break;
          case 0:
            var vA = Z, AA = fA, nA = S, bA = I, HA = (qA = T).Ea;
            vA == 0 && (Ml(hA, aA, null, null, 1, nA, bA), PA(hA, aA + 1, 0, 0, HA - 1, nA, bA + 1), aA += HA, bA += HA, ++vA);
            for (var LA = 1 << qA.b, zA = LA - 1, jA = BA(HA, qA.b), re = qA.K, qA = qA.w + (vA >> qA.b) * jA; vA < AA; ) {
              var Le = re, xe = qA, be = 1;
              for (Sa(hA, aA, nA, bA - HA, 1, nA, bA); be < HA; ) {
                var ye = (be & ~zA) + LA;
                ye > HA && (ye = HA), (0, Bn[Le[xe++] >> 8 & 15])(hA, aA + +be, nA, bA + be - HA, ye - be, nA, bA + be), be = ye;
              }
              aA += HA, bA += HA, ++vA & zA || (qA += jA);
            }
            fA != T.nc && r(S, I - EA, S, I + (fA - Z - 1) * EA, EA);
            break;
          case 1:
            for (EA = hA, AA = aA, HA = (hA = T.Ea) - (bA = hA & ~(nA = (aA = 1 << T.b) - 1)), vA = BA(hA, T.b), LA = T.K, T = T.w + (Z >> T.b) * vA; Z < fA; ) {
              for (zA = LA, jA = T, re = new FA(), qA = AA + bA, Le = AA + hA; AA < qA; ) ue(zA[jA++], re), Yn(re, EA, AA, aA, S, I), AA += aA, I += aA;
              AA < Le && (ue(zA[jA++], re), Yn(re, EA, AA, HA, S, I), AA += HA, I += HA), ++Z & nA || (T += vA);
            }
            break;
          case 3:
            if (hA == S && aA == I && 0 < T.b) {
              for (AA = S, hA = EA = I + (fA - Z) * EA - (bA = (fA - Z) * BA(T.Ea, T.b)), aA = S, nA = I, vA = [], bA = (HA = bA) - 1; 0 <= bA; --bA) vA[bA] = aA[nA + bA];
              for (bA = HA - 1; 0 <= bA; --bA) AA[hA + bA] = vA[bA];
              er(T, Z, fA, S, EA, S, I);
            } else er(T, Z, fA, hA, aA, S, I);
        }
        I = B, S = f;
      }
      S != f && r(B, f, I, S, b);
    }
    function gi(a, l) {
      var f = a.V, B = a.Ba + a.c * a.C, m = l - a.C;
      if (e(l <= a.l.o), e(16 >= m), 0 < m) {
        var b = a.l, E = a.Ta, I = a.Ua, S = b.width;
        if (qt(a, m, f, B), m = I = [I], e((f = a.C) < (B = l)), e(b.v < b.va), B > b.o && (B = b.o), f < b.j) {
          var T = b.j - f;
          f = b.j, m[0] += T * S;
        }
        if (f >= B ? f = 0 : (m[0] += 4 * b.v, b.ka = f - b.j, b.U = b.va - b.v, b.T = B - f, f = 1), f) {
          if (I = I[0], 11 > (f = a.ca).S) {
            var Z = f.f.RGBA, fA = (B = f.S, m = b.U, b = b.T, T = Z.eb, Z.A), hA = b;
            for (Z = Z.fb + a.Ma * Z.A; 0 < hA--; ) {
              var aA = E, EA = I, vA = m, AA = T, nA = Z;
              switch (B) {
                case Ps:
                  Kt(aA, EA, vA, AA, nA);
                  break;
                case Os:
                  Dt(aA, EA, vA, AA, nA);
                  break;
                case Kl:
                  Dt(aA, EA, vA, AA, nA), nr(AA, nA, 0, vA, 1, 0);
                  break;
                case Uu:
                  en(aA, EA, vA, AA, nA);
                  break;
                case Ks:
                  Ae(aA, EA, vA, AA, nA, 1);
                  break;
                case Rl:
                  Ae(aA, EA, vA, AA, nA, 1), nr(AA, nA, 0, vA, 1, 0);
                  break;
                case Rs:
                  Ae(aA, EA, vA, AA, nA, 0);
                  break;
                case Gs:
                  Ae(aA, EA, vA, AA, nA, 0), nr(AA, nA, 1, vA, 1, 0);
                  break;
                case Ol:
                  wn(aA, EA, vA, AA, nA);
                  break;
                case Gl:
                  wn(aA, EA, vA, AA, nA), Te(AA, nA, vA, 1, 0);
                  break;
                case Lu:
                  An(aA, EA, vA, AA, nA);
                  break;
                default:
                  e(0);
              }
              I += S, Z += fA;
            }
            a.Ma += b;
          } else alert("todo:EmitRescaledRowsYUVA");
          e(a.Ma <= f.height);
        }
      }
      a.C = l, e(a.C <= a.i);
    }
    function Yr(a) {
      var l;
      if (0 < a.ua) return 0;
      for (l = 0; l < a.Wb; ++l) {
        var f = a.Ya[l].G, B = a.Ya[l].H;
        if (0 < f[1][B[1] + 0].g || 0 < f[2][B[2] + 0].g || 0 < f[3][B[3] + 0].g) return 0;
      }
      return 1;
    }
    function gr(a, l, f, B, m, b) {
      if (a.Z != 0) {
        var E = a.qd, I = a.rd;
        for (e(yn[a.Z] != null); l < f; ++l) yn[a.Z](E, I, B, m, B, m, b), E = B, I = m, m += b;
        a.qd = E, a.rd = I;
      }
    }
    function pr(a, l) {
      var f = a.l.ma, B = f.Z == 0 || f.Z == 1 ? a.l.j : a.C;
      if (B = a.C < B ? B : a.C, e(l <= a.l.o), l > B) {
        var m = a.l.width, b = f.ca, E = f.tb + m * B, I = a.V, S = a.Ba + a.c * B, T = a.gc;
        e(a.ab == 1), e(T[0].hc == 3), Ns(T[0], B, l, I, S, b, E), gr(f, B, l, b, E, m);
      }
      a.C = a.Ma = l;
    }
    function Br(a, l, f, B, m, b, E) {
      var I = a.$ / B, S = a.$ % B, T = a.m, Z = a.s, fA = f + a.$, hA = fA;
      m = f + B * m;
      var aA = f + B * b, EA = 280 + Z.ua, vA = a.Pb ? I : 16777216, AA = 0 < Z.ua ? Z.Wa : null, nA = Z.wc, bA = fA < aA ? it(Z, S, I) : null;
      e(a.C < b), e(aA <= m);
      var HA = !1;
      A: for (; ; ) {
        for (; HA || fA < aA; ) {
          var LA = 0;
          if (I >= vA) {
            var zA = fA - f;
            e((vA = a).Pb), vA.wd = vA.m, vA.xd = zA, 0 < vA.s.ua && wA(vA.s.Wa, vA.s.vb), vA = I + Ag;
          }
          if (S & nA || (bA = it(Z, S, I)), e(bA != null), bA.Qb && (l[fA] = bA.qb, HA = !0), !HA) if (eA(T), bA.jc) {
            LA = T, zA = l;
            var jA = fA, re = bA.pd[M(LA) & vt - 1];
            e(bA.jc), 256 > re.g ? (J(LA, LA.u + re.g), zA[jA] = re.value, LA = 0) : (J(LA, LA.u + re.g - 256), e(256 <= re.value), LA = re.value), LA == 0 && (HA = !0);
          } else LA = Mt(bA.G[0], bA.H[0], T);
          if (T.h) break;
          if (HA || 256 > LA) {
            if (!HA) if (bA.nd) l[fA] = (bA.qb | LA << 8) >>> 0;
            else {
              if (eA(T), HA = Mt(bA.G[1], bA.H[1], T), eA(T), zA = Mt(bA.G[2], bA.H[2], T), jA = Mt(bA.G[3], bA.H[3], T), T.h) break;
              l[fA] = (jA << 24 | HA << 16 | LA << 8 | zA) >>> 0;
            }
            if (HA = !1, ++fA, ++S >= B && (S = 0, ++I, E != null && I <= b && !(I % 16) && E(a, I), AA != null)) for (; hA < fA; ) LA = l[hA++], AA.X[(506832829 * LA & 4294967295) >>> AA.Mb] = LA;
          } else if (280 > LA) {
            if (LA = dr(LA - 256, T), zA = Mt(bA.G[4], bA.H[4], T), eA(T), zA = kr(B, zA = dr(zA, T)), T.h) break;
            if (fA - f < zA || m - fA < LA) break A;
            for (jA = 0; jA < LA; ++jA) l[fA + jA] = l[fA + jA - zA];
            for (fA += LA, S += LA; S >= B; ) S -= B, ++I, E != null && I <= b && !(I % 16) && E(a, I);
            if (e(fA <= m), S & nA && (bA = it(Z, S, I)), AA != null) for (; hA < fA; ) LA = l[hA++], AA.X[(506832829 * LA & 4294967295) >>> AA.Mb] = LA;
          } else {
            if (!(LA < EA)) break A;
            for (HA = LA - 280, e(AA != null); hA < fA; ) LA = l[hA++], AA.X[(506832829 * LA & 4294967295) >>> AA.Mb] = LA;
            LA = fA, e(!(HA >>> (zA = AA).Xa)), l[LA] = zA.X[HA], HA = !0;
          }
          HA || e(T.h == R(T));
        }
        if (a.Pb && T.h && fA < m) e(a.m.h), a.a = 5, a.m = a.wd, a.$ = a.xd, 0 < a.s.ua && wA(a.s.vb, a.s.Wa);
        else {
          if (T.h) break A;
          E != null && E(a, I > b ? b : I), a.a = 0, a.$ = fA - f;
        }
        return 1;
      }
      return a.a = 3, 0;
    }
    function _r(a) {
      e(a != null), a.vc = null, a.yc = null, a.Ya = null;
      var l = a.Wa;
      l != null && (l.X = null), a.vb = null, e(a != null);
    }
    function Ar() {
      var a = new Tl();
      return a == null ? null : (a.a = 0, a.xb = Iu, me("Predictor", "VP8LPredictors"), me("Predictor", "VP8LPredictors_C"), me("PredictorAdd", "VP8LPredictorsAdd"), me("PredictorAdd", "VP8LPredictorsAdd_C"), Ds = ZA, Yn = YA, Kt = VA, Dt = Ve, wn = mA, An = TA, en = IA, H.VP8LMapColor32b = ki, H.VP8LMapColor8b = ks, a);
    }
    function Tr(a, l, f, B, m) {
      var b = 1, E = [a], I = [l], S = B.m, T = B.s, Z = null, fA = 0;
      A: for (; ; ) {
        if (f) for (; b && rA(S, 1); ) {
          var hA = E, aA = I, EA = B, vA = 1, AA = EA.m, nA = EA.gc[EA.ab], bA = rA(AA, 2);
          if (EA.Oc & 1 << bA) b = 0;
          else {
            switch (EA.Oc |= 1 << bA, nA.hc = bA, nA.Ea = hA[0], nA.nc = aA[0], nA.K = [null], ++EA.ab, e(4 >= EA.ab), bA) {
              case 0:
              case 1:
                nA.b = rA(AA, 3) + 2, vA = Tr(BA(nA.Ea, nA.b), BA(nA.nc, nA.b), 0, EA, nA.K), nA.K = nA.K[0];
                break;
              case 3:
                var HA, LA = rA(AA, 8) + 1, zA = 16 < LA ? 0 : 4 < LA ? 1 : 2 < LA ? 2 : 3;
                if (hA[0] = BA(nA.Ea, zA), nA.b = zA, HA = vA = Tr(LA, 1, 0, EA, nA.K)) {
                  var jA, re = LA, qA = nA, Le = 1 << (8 >> qA.b), xe = i(Le);
                  if (xe == null) HA = 0;
                  else {
                    var be = qA.K[0], ye = qA.w;
                    for (xe[0] = qA.K[0][0], jA = 1; jA < 1 * re; ++jA) xe[jA] = sA(be[ye + jA], xe[jA - 1]);
                    for (; jA < 4 * Le; ++jA) xe[jA] = 0;
                    qA.K[0] = null, qA.K[0] = xe, HA = 1;
                  }
                }
                vA = HA;
                break;
              case 2:
                break;
              default:
                e(0);
            }
            b = vA;
          }
        }
        if (E = E[0], I = I[0], b && rA(S, 1) && !(b = 1 <= (fA = rA(S, 4)) && 11 >= fA)) {
          B.a = 3;
          break A;
        }
        var ke;
        if (ke = b) e: {
          var De, Be, st, Rt = B, ot = E, Gt = I, Ie = fA, zt = f, Jt = Rt.m, dt = Rt.s, mt = [null], kt = 1, sr = 0, Kr = Zd[Ie];
          t: for (; ; ) {
            if (zt && rA(Jt, 1)) {
              var gt = rA(Jt, 3) + 2, an = BA(ot, gt), ti = BA(Gt, gt), Oi = an * ti;
              if (!Tr(an, ti, 0, Rt, mt)) break t;
              for (mt = mt[0], dt.xc = gt, De = 0; De < Oi; ++De) {
                var Fn = mt[De] >> 8 & 65535;
                mt[De] = Fn, Fn >= kt && (kt = Fn + 1);
              }
            }
            if (Jt.h) break t;
            for (Be = 0; 5 > Be; ++Be) {
              var We = Eu[Be];
              !Be && 0 < Ie && (We += 1 << Ie), sr < We && (sr = We);
            }
            var Wl = s(kt * Kr, F), Mu = kt, Pu = s(Mu, P);
            if (Pu == null) var Ws = null;
            else e(65536 >= Mu), Ws = Pu;
            var Ma = i(sr);
            if (Ws == null || Ma == null || Wl == null) {
              Rt.a = 1;
              break t;
            }
            var Xs = Wl;
            for (De = st = 0; De < kt; ++De) {
              var yr = Ws[De], Ki = yr.G, Ri = yr.H, Ou = 0, zs = 1, Ku = 0;
              for (Be = 0; 5 > Be; ++Be) {
                We = Eu[Be], Ki[Be] = Xs, Ri[Be] = st, !Be && 0 < Ie && (We += 1 << Ie);
                n: {
                  var Js, Xl = We, Ys = Rt, Pa = Ma, mg = Xs, Cg = st, zl = 0, Qn = Ys.m, yg = rA(Qn, 1);
                  if (n(Pa, 0, 0, Xl), yg) {
                    var Fg = rA(Qn, 1) + 1, Qg = rA(Qn, 1), Ru = rA(Qn, Qg == 0 ? 1 : 8);
                    Pa[Ru] = 1, Fg == 2 && (Pa[Ru = rA(Qn, 8)] = 1);
                    var $s = 1;
                  } else {
                    var Gu = i(19), Vu = rA(Qn, 4) + 4;
                    if (19 < Vu) {
                      Ys.a = 3;
                      var Zs = 0;
                      break n;
                    }
                    for (Js = 0; Js < Vu; ++Js) Gu[Yd[Js]] = rA(Qn, 3);
                    var Jl = void 0, Oa = void 0, ju = Ys, bg = Gu, Ao = Xl, qu = Pa, Yl = 0, bn = ju.m, Wu = 8, Xu = s(128, F);
                    r: for (; x(Xu, 0, 7, bg, 19); ) {
                      if (rA(bn, 1)) {
                        var Ug = 2 + 2 * rA(bn, 3);
                        if ((Jl = 2 + rA(bn, Ug)) > Ao) break r;
                      } else Jl = Ao;
                      for (Oa = 0; Oa < Ao && Jl--; ) {
                        eA(bn);
                        var zu = Xu[0 + (127 & M(bn))];
                        J(bn, bn.u + zu.g);
                        var Gi = zu.value;
                        if (16 > Gi) qu[Oa++] = Gi, Gi != 0 && (Wu = Gi);
                        else {
                          var Lg = Gi == 16, Ju = Gi - 16, Eg = zd[Ju], Yu = rA(bn, Xd[Ju]) + Eg;
                          if (Oa + Yu > Ao) break r;
                          for (var xg = Lg ? Wu : 0; 0 < Yu--; ) qu[Oa++] = xg;
                        }
                      }
                      Yl = 1;
                      break r;
                    }
                    Yl || (ju.a = 3), $s = Yl;
                  }
                  ($s = $s && !Qn.h) && (zl = x(mg, Cg, 8, Pa, Xl)), $s && zl != 0 ? Zs = zl : (Ys.a = 3, Zs = 0);
                }
                if (Zs == 0) break t;
                if (zs && Jd[Be] == 1 && (zs = Xs[st].g == 0), Ou += Xs[st].g, st += Zs, 3 >= Be) {
                  var Ka, $l = Ma[0];
                  for (Ka = 1; Ka < We; ++Ka) Ma[Ka] > $l && ($l = Ma[Ka]);
                  Ku += $l;
                }
              }
              if (yr.nd = zs, yr.Qb = 0, zs && (yr.qb = (Ki[3][Ri[3] + 0].value << 24 | Ki[1][Ri[1] + 0].value << 16 | Ki[2][Ri[2] + 0].value) >>> 0, Ou == 0 && 256 > Ki[0][Ri[0] + 0].value && (yr.Qb = 1, yr.qb += Ki[0][Ri[0] + 0].value << 8)), yr.jc = !yr.Qb && 6 > Ku, yr.jc) {
                var eo, sn = yr;
                for (eo = 0; eo < vt; ++eo) {
                  var Un = eo, Ln = sn.pd[Un], to = sn.G[0][sn.H[0] + Un];
                  256 <= to.value ? (Ln.g = to.g + 256, Ln.value = to.value) : (Ln.g = 0, Ln.value = 0, Un >>= ct(to, 8, Ln), Un >>= ct(sn.G[1][sn.H[1] + Un], 16, Ln), Un >>= ct(sn.G[2][sn.H[2] + Un], 0, Ln), ct(sn.G[3][sn.H[3] + Un], 24, Ln));
                }
              }
            }
            dt.vc = mt, dt.Wb = kt, dt.Ya = Ws, dt.yc = Wl, ke = 1;
            break e;
          }
          ke = 0;
        }
        if (!(b = ke)) {
          B.a = 3;
          break A;
        }
        if (0 < fA) {
          if (T.ua = 1 << fA, !ee(T.Wa, fA)) {
            B.a = 1, b = 0;
            break A;
          }
        } else T.ua = 0;
        var Zl = B, $u = E, Ig = I, Ac = Zl.s, ec = Ac.xc;
        if (Zl.c = $u, Zl.i = Ig, Ac.md = BA($u, ec), Ac.wc = ec == 0 ? -1 : (1 << ec) - 1, f) {
          B.xb = sg;
          break A;
        }
        if ((Z = i(E * I)) == null) {
          B.a = 1, b = 0;
          break A;
        }
        b = (b = Br(B, Z, 0, E, I, I, null)) && !S.h;
        break A;
      }
      return b ? (m != null ? m[0] = Z : (e(Z == null), e(f)), B.$ = 0, f || _r(T)) : _r(T), b;
    }
    function qn(a, l) {
      var f = a.c * a.i, B = f + l + 16 * l;
      return e(a.c <= l), a.V = i(B), a.V == null ? (a.Ta = null, a.Ua = 0, a.a = 1, 0) : (a.Ta = a.V, a.Ua = a.Ba + f + l, 1);
    }
    function pi(a, l) {
      var f = a.C, B = l - f, m = a.V, b = a.Ba + a.c * f;
      for (e(l <= a.l.o); 0 < B; ) {
        var E = 16 < B ? 16 : B, I = a.l.ma, S = a.l.width, T = S * E, Z = I.ca, fA = I.tb + S * f, hA = a.Ta, aA = a.Ua;
        qt(a, E, m, b), $e(hA, aA, Z, fA, T), gr(I, f, f + E, Z, fA, S), B -= E, m += E * a.c, f += E;
      }
      e(f == l), a.C = a.Ma = l;
    }
    function Bi() {
      this.ub = this.yd = this.td = this.Rb = 0;
    }
    function wi() {
      this.Kd = this.Ld = this.Ud = this.Td = this.i = this.c = 0;
    }
    function vi() {
      this.Fb = this.Bb = this.Cb = 0, this.Zb = i(4), this.Lb = i(4);
    }
    function hs() {
      this.Yb = function() {
        var a = [];
        return function l(f, B, m) {
          for (var b = m[B], E = 0; E < b && (f.push(m.length > B + 1 ? [] : 0), !(m.length < B + 1)); E++) l(f[E], B + 1, m);
        }(a, 0, [3, 11]), a;
      }();
    }
    function dl() {
      this.jb = i(3), this.Wc = o([4, 8], hs), this.Xc = o([4, 17], hs);
    }
    function gl() {
      this.Pc = this.wb = this.Tb = this.zd = 0, this.vd = new i(4), this.od = new i(4);
    }
    function mi() {
      this.ld = this.La = this.dd = this.tc = 0;
    }
    function ds() {
      this.Na = this.la = 0;
    }
    function pl() {
      this.Sc = [0, 0], this.Eb = [0, 0], this.Qc = [0, 0], this.ia = this.lc = 0;
    }
    function fa() {
      this.ad = i(384), this.Za = 0, this.Ob = i(16), this.$b = this.Ad = this.ia = this.Gc = this.Hc = this.Dd = 0;
    }
    function Bl() {
      this.uc = this.M = this.Nb = 0, this.wa = Array(new mi()), this.Y = 0, this.ya = Array(new fa()), this.aa = 0, this.l = new Ci();
    }
    function gs() {
      this.y = i(16), this.f = i(8), this.ea = i(8);
    }
    function wl() {
      this.cb = this.a = 0, this.sc = "", this.m = new OA(), this.Od = new Bi(), this.Kc = new wi(), this.ed = new gl(), this.Qa = new vi(), this.Ic = this.$c = this.Aa = 0, this.D = new Bl(), this.Xb = this.Va = this.Hb = this.zb = this.yb = this.Ub = this.za = 0, this.Jc = s(8, OA), this.ia = 0, this.pb = s(4, pl), this.Pa = new dl(), this.Bd = this.kc = 0, this.Ac = [], this.Bc = 0, this.zc = [0, 0, 0, 0], this.Gd = Array(new gs()), this.Hd = 0, this.rb = Array(new ds()), this.sb = 0, this.wa = Array(new mi()), this.Y = 0, this.oc = [], this.pc = 0, this.sa = [], this.ta = 0, this.qa = [], this.ra = 0, this.Ha = [], this.B = this.R = this.Ia = 0, this.Ec = [], this.M = this.ja = this.Vb = this.Fc = 0, this.ya = Array(new fa()), this.L = this.aa = 0, this.gd = o([4, 2], mi), this.ga = null, this.Fa = [], this.Cc = this.qc = this.P = 0, this.Gb = [], this.Uc = 0, this.mb = [], this.nb = 0, this.rc = [], this.Ga = this.Vc = 0;
    }
    function Ci() {
      this.T = this.U = this.ka = this.height = this.width = 0, this.y = [], this.f = [], this.ea = [], this.Rc = this.fa = this.W = this.N = this.O = 0, this.ma = "void", this.put = "VP8IoPutHook", this.ac = "VP8IoSetupHook", this.bc = "VP8IoTeardownHook", this.ha = this.Kb = 0, this.data = [], this.hb = this.ib = this.da = this.o = this.j = this.va = this.v = this.Da = this.ob = this.w = 0, this.F = [], this.J = 0;
    }
    function vl() {
      var a = new wl();
      return a != null && (a.a = 0, a.sc = "OK", a.cb = 0, a.Xb = 0, _a || (_a = ws)), a;
    }
    function Je(a, l, f) {
      return a.a == 0 && (a.a = l, a.sc = f, a.cb = 0), 0;
    }
    function ps(a, l, f) {
      return 3 <= f && a[l + 0] == 157 && a[l + 1] == 1 && a[l + 2] == 42;
    }
    function Bs(a, l) {
      if (a == null) return 0;
      if (a.a = 0, a.sc = "OK", l == null) return Je(a, 2, "null VP8Io passed to VP8GetHeaders()");
      var f = l.data, B = l.w, m = l.ha;
      if (4 > m) return Je(a, 7, "Truncated header.");
      var b = f[B + 0] | f[B + 1] << 8 | f[B + 2] << 16, E = a.Od;
      if (E.Rb = !(1 & b), E.td = b >> 1 & 7, E.yd = b >> 4 & 1, E.ub = b >> 5, 3 < E.td) return Je(a, 3, "Incorrect keyframe parameters.");
      if (!E.yd) return Je(a, 4, "Frame not displayable.");
      B += 3, m -= 3;
      var I = a.Kc;
      if (E.Rb) {
        if (7 > m) return Je(a, 7, "cannot parse picture header");
        if (!ps(f, B, m)) return Je(a, 3, "Bad code word");
        I.c = 16383 & (f[B + 4] << 8 | f[B + 3]), I.Td = f[B + 4] >> 6, I.i = 16383 & (f[B + 6] << 8 | f[B + 5]), I.Ud = f[B + 6] >> 6, B += 7, m -= 7, a.za = I.c + 15 >> 4, a.Ub = I.i + 15 >> 4, l.width = I.c, l.height = I.i, l.Da = 0, l.j = 0, l.v = 0, l.va = l.width, l.o = l.height, l.da = 0, l.ib = l.width, l.hb = l.height, l.U = l.width, l.T = l.height, n((b = a.Pa).jb, 0, 255, b.jb.length), e((b = a.Qa) != null), b.Cb = 0, b.Bb = 0, b.Fb = 1, n(b.Zb, 0, 0, b.Zb.length), n(b.Lb, 0, 0, b.Lb);
      }
      if (E.ub > m) return Je(a, 7, "bad partition length");
      lA(b = a.m, f, B, E.ub), B += E.ub, m -= E.ub, E.Rb && (I.Ld = dA(b), I.Kd = dA(b)), I = a.Qa;
      var S, T = a.Pa;
      if (e(b != null), e(I != null), I.Cb = dA(b), I.Cb) {
        if (I.Bb = dA(b), dA(b)) {
          for (I.Fb = dA(b), S = 0; 4 > S; ++S) I.Zb[S] = dA(b) ? iA(b, 7) : 0;
          for (S = 0; 4 > S; ++S) I.Lb[S] = dA(b) ? iA(b, 6) : 0;
        }
        if (I.Bb) for (S = 0; 3 > S; ++S) T.jb[S] = dA(b) ? oA(b, 8) : 255;
      } else I.Bb = 0;
      if (b.Ka) return Je(a, 3, "cannot parse segment header");
      if ((I = a.ed).zd = dA(b), I.Tb = oA(b, 6), I.wb = oA(b, 3), I.Pc = dA(b), I.Pc && dA(b)) {
        for (T = 0; 4 > T; ++T) dA(b) && (I.vd[T] = iA(b, 6));
        for (T = 0; 4 > T; ++T) dA(b) && (I.od[T] = iA(b, 6));
      }
      if (a.L = I.Tb == 0 ? 0 : I.zd ? 1 : 2, b.Ka) return Je(a, 3, "cannot parse filter header");
      var Z = m;
      if (m = S = B, B = S + Z, I = Z, a.Xb = (1 << oA(a.m, 2)) - 1, Z < 3 * (T = a.Xb)) f = 7;
      else {
        for (S += 3 * T, I -= 3 * T, Z = 0; Z < T; ++Z) {
          var fA = f[m + 0] | f[m + 1] << 8 | f[m + 2] << 16;
          fA > I && (fA = I), lA(a.Jc[+Z], f, S, fA), S += fA, I -= fA, m += 3;
        }
        lA(a.Jc[+T], f, S, I), f = S < B ? 0 : 5;
      }
      if (f != 0) return Je(a, f, "cannot parse partitions");
      for (f = oA(S = a.m, 7), m = dA(S) ? iA(S, 4) : 0, B = dA(S) ? iA(S, 4) : 0, I = dA(S) ? iA(S, 4) : 0, T = dA(S) ? iA(S, 4) : 0, S = dA(S) ? iA(S, 4) : 0, Z = a.Qa, fA = 0; 4 > fA; ++fA) {
        if (Z.Cb) {
          var hA = Z.Zb[fA];
          Z.Fb || (hA += f);
        } else {
          if (0 < fA) {
            a.pb[fA] = a.pb[0];
            continue;
          }
          hA = f;
        }
        var aA = a.pb[fA];
        aA.Sc[0] = Vl[Wt(hA + m, 127)], aA.Sc[1] = jl[Wt(hA + 0, 127)], aA.Eb[0] = 2 * Vl[Wt(hA + B, 127)], aA.Eb[1] = 101581 * jl[Wt(hA + I, 127)] >> 16, 8 > aA.Eb[1] && (aA.Eb[1] = 8), aA.Qc[0] = Vl[Wt(hA + T, 117)], aA.Qc[1] = jl[Wt(hA + S, 127)], aA.lc = hA + S;
      }
      if (!E.Rb) return Je(a, 4, "Not a key frame.");
      for (dA(b), E = a.Pa, f = 0; 4 > f; ++f) {
        for (m = 0; 8 > m; ++m) for (B = 0; 3 > B; ++B) for (I = 0; 11 > I; ++I) T = gA(b, ig[f][m][B][I]) ? oA(b, 8) : rg[f][m][B][I], E.Wc[f][m].Yb[B][I] = T;
        for (m = 0; 17 > m; ++m) E.Xc[f][m] = E.Wc[f][ag[m]];
      }
      return a.kc = dA(b), a.kc && (a.Bd = oA(b, 8)), a.cb = 1;
    }
    function ws(a, l, f, B, m, b, E) {
      var I = l[m].Yb[f];
      for (f = 0; 16 > m; ++m) {
        if (!gA(a, I[f + 0])) return m;
        for (; !gA(a, I[f + 1]); ) if (I = l[++m].Yb[0], f = 0, m == 16) return 16;
        var S = l[m + 1].Yb;
        if (gA(a, I[f + 2])) {
          var T = a, Z = 0;
          if (gA(T, (hA = I)[(fA = f) + 3])) if (gA(T, hA[fA + 6])) {
            for (I = 0, fA = 2 * (Z = gA(T, hA[fA + 8])) + (hA = gA(T, hA[fA + 9 + Z])), Z = 0, hA = eg[fA]; hA[I]; ++I) Z += Z + gA(T, hA[I]);
            Z += 3 + (8 << fA);
          } else gA(T, hA[fA + 7]) ? (Z = 7 + 2 * gA(T, 165), Z += gA(T, 145)) : Z = 5 + gA(T, 159);
          else Z = gA(T, hA[fA + 4]) ? 3 + gA(T, hA[fA + 5]) : 2;
          I = S[2];
        } else Z = 1, I = S[1];
        S = E + tg[m], 0 > (T = a).b && uA(T);
        var fA, hA = T.b, aA = (fA = T.Ca >> 1) - (T.I >> hA) >> 31;
        --T.b, T.Ca += aA, T.Ca |= 1, T.I -= (fA + 1 & aA) << hA, b[S] = ((Z ^ aA) - aA) * B[(0 < m) + 0];
      }
      return 16;
    }
    function ha(a) {
      var l = a.rb[a.sb - 1];
      l.la = 0, l.Na = 0, n(a.zc, 0, 0, a.zc.length), a.ja = 0;
    }
    function ml(a, l) {
      if (a == null) return 0;
      if (l == null) return Je(a, 2, "NULL VP8Io parameter in VP8Decode().");
      if (!a.cb && !Bs(a, l)) return 0;
      if (e(a.cb), l.ac == null || l.ac(l)) {
        l.ob && (a.L = 0);
        var f = qs[a.L];
        if (a.L == 2 ? (a.yb = 0, a.zb = 0) : (a.yb = l.v - f >> 4, a.zb = l.j - f >> 4, 0 > a.yb && (a.yb = 0), 0 > a.zb && (a.zb = 0)), a.Va = l.o + 15 + f >> 4, a.Hb = l.va + 15 + f >> 4, a.Hb > a.za && (a.Hb = a.za), a.Va > a.Ub && (a.Va = a.Ub), 0 < a.L) {
          var B = a.ed;
          for (f = 0; 4 > f; ++f) {
            var m;
            if (a.Qa.Cb) {
              var b = a.Qa.Lb[f];
              a.Qa.Fb || (b += B.Tb);
            } else b = B.Tb;
            for (m = 0; 1 >= m; ++m) {
              var E = a.gd[f][m], I = b;
              if (B.Pc && (I += B.vd[0], m && (I += B.od[0])), 0 < (I = 0 > I ? 0 : 63 < I ? 63 : I)) {
                var S = I;
                0 < B.wb && (S = 4 < B.wb ? S >> 2 : S >> 1) > 9 - B.wb && (S = 9 - B.wb), 1 > S && (S = 1), E.dd = S, E.tc = 2 * I + S, E.ld = 40 <= I ? 2 : 15 <= I ? 1 : 0;
              } else E.tc = 0;
              E.La = m;
            }
          }
        }
        f = 0;
      } else Je(a, 6, "Frame setup failed"), f = a.a;
      if (f = f == 0) {
        if (f) {
          a.$c = 0, 0 < a.Aa || (a.Ic = vg);
          A: {
            f = a.Ic, B = 4 * (S = a.za);
            var T = 32 * S, Z = S + 1, fA = 0 < a.L ? S * (0 < a.Aa ? 2 : 1) : 0, hA = (a.Aa == 2 ? 2 : 1) * S;
            if ((E = B + 832 + (m = 3 * (16 * f + qs[a.L]) / 2 * T) + (b = a.Fa != null && 0 < a.Fa.length ? a.Kc.c * a.Kc.i : 0)) != E) f = 0;
            else {
              if (E > a.Vb) {
                if (a.Vb = 0, a.Ec = i(E), a.Fc = 0, a.Ec == null) {
                  f = Je(a, 1, "no memory during frame initialization.");
                  break A;
                }
                a.Vb = E;
              }
              E = a.Ec, I = a.Fc, a.Ac = E, a.Bc = I, I += B, a.Gd = s(T, gs), a.Hd = 0, a.rb = s(Z + 1, ds), a.sb = 1, a.wa = fA ? s(fA, mi) : null, a.Y = 0, a.D.Nb = 0, a.D.wa = a.wa, a.D.Y = a.Y, 0 < a.Aa && (a.D.Y += S), e(!0), a.oc = E, a.pc = I, I += 832, a.ya = s(hA, fa), a.aa = 0, a.D.ya = a.ya, a.D.aa = a.aa, a.Aa == 2 && (a.D.aa += S), a.R = 16 * S, a.B = 8 * S, S = (T = qs[a.L]) * a.R, T = T / 2 * a.B, a.sa = E, a.ta = I + S, a.qa = a.sa, a.ra = a.ta + 16 * f * a.R + T, a.Ha = a.qa, a.Ia = a.ra + 8 * f * a.B + T, a.$c = 0, I += m, a.mb = b ? E : null, a.nb = b ? I : null, e(I + b <= a.Fc + a.Vb), ha(a), n(a.Ac, a.Bc, 0, B), f = 1;
            }
          }
          if (f) {
            if (l.ka = 0, l.y = a.sa, l.O = a.ta, l.f = a.qa, l.N = a.ra, l.ea = a.Ha, l.Vd = a.Ia, l.fa = a.R, l.Rc = a.B, l.F = null, l.J = 0, !Ts) {
              for (f = -255; 255 >= f; ++f) ut[255 + f] = 0 > f ? -f : f;
              for (f = -1020; 1020 >= f; ++f) rn[1020 + f] = -128 > f ? -128 : 127 < f ? 127 : f;
              for (f = -112; 112 >= f; ++f) ka[112 + f] = -16 > f ? -16 : 15 < f ? 15 : f;
              for (f = -255; 510 >= f; ++f) Pi[255 + f] = 0 > f ? 0 : 255 < f ? 255 : f;
              Ts = 1;
            }
            _i = Fl, tn = Cl, Ha = ms, Nt = yl, tr = Cs, Ye = vs, Ti = va, _s = zn, Da = _l, $n = ma, Zn = kl, vn = Li, Ai = Ca, Mi = Is, ei = xs, mn = Pr, Na = Zr, rr = Nl, Cr[0] = Mr, Cr[1] = Ql, Cr[2] = El, Cr[3] = xl, Cr[4] = Qs, Cr[5] = bi, Cr[6] = bs, Cr[7] = pa, Cr[8] = Sl, Cr[9] = Il, Cn[0] = ys, Cn[1] = Ul, Cn[2] = $r, Cn[3] = Fi, Cn[4] = Qt, Cn[5] = Ll, Cn[6] = Fs, nn[0] = dn, nn[1] = bl, nn[2] = Hl, nn[3] = Ba, nn[4] = Xn, nn[5] = Dl, nn[6] = wa, f = 1;
          } else f = 0;
        }
        f && (f = function(aA, EA) {
          for (aA.M = 0; aA.M < aA.Va; ++aA.M) {
            var vA, AA = aA.Jc[aA.M & aA.Xb], nA = aA.m, bA = aA;
            for (vA = 0; vA < bA.za; ++vA) {
              var HA = nA, LA = bA, zA = LA.Ac, jA = LA.Bc + 4 * vA, re = LA.zc, qA = LA.ya[LA.aa + vA];
              if (LA.Qa.Bb ? qA.$b = gA(HA, LA.Pa.jb[0]) ? 2 + gA(HA, LA.Pa.jb[2]) : gA(HA, LA.Pa.jb[1]) : qA.$b = 0, LA.kc && (qA.Ad = gA(HA, LA.Bd)), qA.Za = !gA(HA, 145) + 0, qA.Za) {
                var Le = qA.Ob, xe = 0;
                for (LA = 0; 4 > LA; ++LA) {
                  var be, ye = re[0 + LA];
                  for (be = 0; 4 > be; ++be) {
                    ye = ng[zA[jA + be]][ye];
                    for (var ke = xu[gA(HA, ye[0])]; 0 < ke; ) ke = xu[2 * ke + gA(HA, ye[ke])];
                    ye = -ke, zA[jA + be] = ye;
                  }
                  r(Le, xe, zA, jA, 4), xe += 4, re[0 + LA] = ye;
                }
              } else ye = gA(HA, 156) ? gA(HA, 128) ? 1 : 3 : gA(HA, 163) ? 2 : 0, qA.Ob[0] = ye, n(zA, jA, ye, 4), n(re, 0, ye, 4);
              qA.Dd = gA(HA, 142) ? gA(HA, 114) ? gA(HA, 183) ? 1 : 3 : 2 : 0;
            }
            if (bA.m.Ka) return Je(aA, 7, "Premature end-of-partition0 encountered.");
            for (; aA.ja < aA.za; ++aA.ja) {
              if (bA = AA, HA = (nA = aA).rb[nA.sb - 1], zA = nA.rb[nA.sb + nA.ja], vA = nA.ya[nA.aa + nA.ja], jA = nA.kc ? vA.Ad : 0) HA.la = zA.la = 0, vA.Za || (HA.Na = zA.Na = 0), vA.Hc = 0, vA.Gc = 0, vA.ia = 0;
              else {
                var De, Be;
                if (HA = zA, zA = bA, jA = nA.Pa.Xc, re = nA.ya[nA.aa + nA.ja], qA = nA.pb[re.$b], LA = re.ad, Le = 0, xe = nA.rb[nA.sb - 1], ye = be = 0, n(LA, Le, 0, 384), re.Za) var st = 0, Rt = jA[3];
                else {
                  ke = i(16);
                  var ot = HA.Na + xe.Na;
                  if (ot = _a(zA, jA[1], ot, qA.Eb, 0, ke, 0), HA.Na = xe.Na = (0 < ot) + 0, 1 < ot) _i(ke, 0, LA, Le);
                  else {
                    var Gt = ke[0] + 3 >> 3;
                    for (ke = 0; 256 > ke; ke += 16) LA[Le + ke] = Gt;
                  }
                  st = 1, Rt = jA[0];
                }
                var Ie = 15 & HA.la, zt = 15 & xe.la;
                for (ke = 0; 4 > ke; ++ke) {
                  var Jt = 1 & zt;
                  for (Gt = Be = 0; 4 > Gt; ++Gt) Ie = Ie >> 1 | (Jt = (ot = _a(zA, Rt, ot = Jt + (1 & Ie), qA.Sc, st, LA, Le)) > st) << 7, Be = Be << 2 | (3 < ot ? 3 : 1 < ot ? 2 : LA[Le + 0] != 0), Le += 16;
                  Ie >>= 4, zt = zt >> 1 | Jt << 7, be = (be << 8 | Be) >>> 0;
                }
                for (Rt = Ie, st = zt >> 4, De = 0; 4 > De; De += 2) {
                  for (Be = 0, Ie = HA.la >> 4 + De, zt = xe.la >> 4 + De, ke = 0; 2 > ke; ++ke) {
                    for (Jt = 1 & zt, Gt = 0; 2 > Gt; ++Gt) ot = Jt + (1 & Ie), Ie = Ie >> 1 | (Jt = 0 < (ot = _a(zA, jA[2], ot, qA.Qc, 0, LA, Le))) << 3, Be = Be << 2 | (3 < ot ? 3 : 1 < ot ? 2 : LA[Le + 0] != 0), Le += 16;
                    Ie >>= 2, zt = zt >> 1 | Jt << 5;
                  }
                  ye |= Be << 4 * De, Rt |= Ie << 4 << De, st |= (240 & zt) << De;
                }
                HA.la = Rt, xe.la = st, re.Hc = be, re.Gc = ye, re.ia = 43690 & ye ? 0 : qA.ia, jA = !(be | ye);
              }
              if (0 < nA.L && (nA.wa[nA.Y + nA.ja] = nA.gd[vA.$b][vA.Za], nA.wa[nA.Y + nA.ja].La |= !jA), bA.Ka) return Je(aA, 7, "Premature end-of-file encountered.");
            }
            if (ha(aA), nA = EA, bA = 1, vA = (AA = aA).D, HA = 0 < AA.L && AA.M >= AA.zb && AA.M <= AA.Va, AA.Aa == 0) A: {
              if (vA.M = AA.M, vA.uc = HA, La(AA, vA), bA = 1, vA = (Be = AA.D).Nb, HA = (ye = qs[AA.L]) * AA.R, zA = ye / 2 * AA.B, ke = 16 * vA * AA.R, Gt = 8 * vA * AA.B, jA = AA.sa, re = AA.ta - HA + ke, qA = AA.qa, LA = AA.ra - zA + Gt, Le = AA.Ha, xe = AA.Ia - zA + Gt, zt = (Ie = Be.M) == 0, be = Ie >= AA.Va - 1, AA.Aa == 2 && La(AA, Be), Be.uc) for (Jt = (ot = AA).D.M, e(ot.D.uc), Be = ot.yb; Be < ot.Hb; ++Be) {
                st = Be, Rt = Jt;
                var dt = (mt = (We = ot).D).Nb;
                De = We.R;
                var mt = mt.wa[mt.Y + st], kt = We.sa, sr = We.ta + 16 * dt * De + 16 * st, Kr = mt.dd, gt = mt.tc;
                if (gt != 0) if (e(3 <= gt), We.L == 1) 0 < st && mn(kt, sr, De, gt + 4), mt.La && rr(kt, sr, De, gt), 0 < Rt && ei(kt, sr, De, gt + 4), mt.La && Na(kt, sr, De, gt);
                else {
                  var an = We.B, ti = We.qa, Oi = We.ra + 8 * dt * an + 8 * st, Fn = We.Ha, We = We.Ia + 8 * dt * an + 8 * st;
                  dt = mt.ld, 0 < st && (_s(kt, sr, De, gt + 4, Kr, dt), $n(ti, Oi, Fn, We, an, gt + 4, Kr, dt)), mt.La && (vn(kt, sr, De, gt, Kr, dt), Mi(ti, Oi, Fn, We, an, gt, Kr, dt)), 0 < Rt && (Ti(kt, sr, De, gt + 4, Kr, dt), Da(ti, Oi, Fn, We, an, gt + 4, Kr, dt)), mt.La && (Zn(kt, sr, De, gt, Kr, dt), Ai(ti, Oi, Fn, We, an, gt, Kr, dt));
                }
              }
              if (AA.ia && alert("todo:DitherRow"), nA.put != null) {
                if (Be = 16 * Ie, Ie = 16 * (Ie + 1), zt ? (nA.y = AA.sa, nA.O = AA.ta + ke, nA.f = AA.qa, nA.N = AA.ra + Gt, nA.ea = AA.Ha, nA.W = AA.Ia + Gt) : (Be -= ye, nA.y = jA, nA.O = re, nA.f = qA, nA.N = LA, nA.ea = Le, nA.W = xe), be || (Ie -= ye), Ie > nA.o && (Ie = nA.o), nA.F = null, nA.J = null, AA.Fa != null && 0 < AA.Fa.length && Be < Ie && (nA.J = ba(AA, nA, Be, Ie - Be), nA.F = AA.mb, nA.F == null && nA.F.length == 0)) {
                  bA = Je(AA, 3, "Could not decode alpha data.");
                  break A;
                }
                Be < nA.j && (ye = nA.j - Be, Be = nA.j, e(!(1 & ye)), nA.O += AA.R * ye, nA.N += AA.B * (ye >> 1), nA.W += AA.B * (ye >> 1), nA.F != null && (nA.J += nA.width * ye)), Be < Ie && (nA.O += nA.v, nA.N += nA.v >> 1, nA.W += nA.v >> 1, nA.F != null && (nA.J += nA.v), nA.ka = Be - nA.j, nA.U = nA.va - nA.v, nA.T = Ie - Be, bA = nA.put(nA));
              }
              vA + 1 != AA.Ic || be || (r(AA.sa, AA.ta - HA, jA, re + 16 * AA.R, HA), r(AA.qa, AA.ra - zA, qA, LA + 8 * AA.B, zA), r(AA.Ha, AA.Ia - zA, Le, xe + 8 * AA.B, zA));
            }
            if (!bA) return Je(aA, 6, "Output aborted.");
          }
          return 1;
        }(a, l)), l.bc != null && l.bc(l), f &= 1;
      }
      return f ? (a.cb = 0, f) : 0;
    }
    function wr(a, l, f, B, m) {
      m = a[l + f + 32 * B] + (m >> 3), a[l + f + 32 * B] = -256 & m ? 0 > m ? 0 : 255 : m;
    }
    function yi(a, l, f, B, m, b) {
      wr(a, l, 0, f, B + m), wr(a, l, 1, f, B + b), wr(a, l, 2, f, B - b), wr(a, l, 3, f, B - m);
    }
    function Pt(a) {
      return (20091 * a >> 16) + a;
    }
    function da(a, l, f, B) {
      var m, b = 0, E = i(16);
      for (m = 0; 4 > m; ++m) {
        var I = a[l + 0] + a[l + 8], S = a[l + 0] - a[l + 8], T = (35468 * a[l + 4] >> 16) - Pt(a[l + 12]), Z = Pt(a[l + 4]) + (35468 * a[l + 12] >> 16);
        E[b + 0] = I + Z, E[b + 1] = S + T, E[b + 2] = S - T, E[b + 3] = I - Z, b += 4, l++;
      }
      for (m = b = 0; 4 > m; ++m) I = (a = E[b + 0] + 4) + E[b + 8], S = a - E[b + 8], T = (35468 * E[b + 4] >> 16) - Pt(E[b + 12]), wr(f, B, 0, 0, I + (Z = Pt(E[b + 4]) + (35468 * E[b + 12] >> 16))), wr(f, B, 1, 0, S + T), wr(f, B, 2, 0, S - T), wr(f, B, 3, 0, I - Z), b++, B += 32;
    }
    function vs(a, l, f, B) {
      var m = a[l + 0] + 4, b = 35468 * a[l + 4] >> 16, E = Pt(a[l + 4]), I = 35468 * a[l + 1] >> 16;
      yi(f, B, 0, m + E, a = Pt(a[l + 1]), I), yi(f, B, 1, m + b, a, I), yi(f, B, 2, m - b, a, I), yi(f, B, 3, m - E, a, I);
    }
    function Cl(a, l, f, B, m) {
      da(a, l, f, B), m && da(a, l + 16, f, B + 4);
    }
    function ms(a, l, f, B) {
      tn(a, l + 0, f, B, 1), tn(a, l + 32, f, B + 128, 1);
    }
    function yl(a, l, f, B) {
      var m;
      for (a = a[l + 0] + 4, m = 0; 4 > m; ++m) for (l = 0; 4 > l; ++l) wr(f, B, l, m, a);
    }
    function Cs(a, l, f, B) {
      a[l + 0] && Nt(a, l + 0, f, B), a[l + 16] && Nt(a, l + 16, f, B + 4), a[l + 32] && Nt(a, l + 32, f, B + 128), a[l + 48] && Nt(a, l + 48, f, B + 128 + 4);
    }
    function Fl(a, l, f, B) {
      var m, b = i(16);
      for (m = 0; 4 > m; ++m) {
        var E = a[l + 0 + m] + a[l + 12 + m], I = a[l + 4 + m] + a[l + 8 + m], S = a[l + 4 + m] - a[l + 8 + m], T = a[l + 0 + m] - a[l + 12 + m];
        b[0 + m] = E + I, b[8 + m] = E - I, b[4 + m] = T + S, b[12 + m] = T - S;
      }
      for (m = 0; 4 > m; ++m) E = (a = b[0 + 4 * m] + 3) + b[3 + 4 * m], I = b[1 + 4 * m] + b[2 + 4 * m], S = b[1 + 4 * m] - b[2 + 4 * m], T = a - b[3 + 4 * m], f[B + 0] = E + I >> 3, f[B + 16] = T + S >> 3, f[B + 32] = E - I >> 3, f[B + 48] = T - S >> 3, B += 64;
    }
    function ga(a, l, f) {
      var B, m = l - 32, b = Xt, E = 255 - a[m - 1];
      for (B = 0; B < f; ++B) {
        var I, S = b, T = E + a[l - 1];
        for (I = 0; I < f; ++I) a[l + I] = S[T + a[m + I]];
        l += 32;
      }
    }
    function Ql(a, l) {
      ga(a, l, 4);
    }
    function bl(a, l) {
      ga(a, l, 8);
    }
    function Ul(a, l) {
      ga(a, l, 16);
    }
    function $r(a, l) {
      var f;
      for (f = 0; 16 > f; ++f) r(a, l + 32 * f, a, l - 32, 16);
    }
    function Fi(a, l) {
      var f;
      for (f = 16; 0 < f; --f) n(a, l, a[l - 1], 16), l += 32;
    }
    function Qi(a, l, f) {
      var B;
      for (B = 0; 16 > B; ++B) n(l, f + 32 * B, a, 16);
    }
    function ys(a, l) {
      var f, B = 16;
      for (f = 0; 16 > f; ++f) B += a[l - 1 + 32 * f] + a[l + f - 32];
      Qi(B >> 5, a, l);
    }
    function Qt(a, l) {
      var f, B = 8;
      for (f = 0; 16 > f; ++f) B += a[l - 1 + 32 * f];
      Qi(B >> 4, a, l);
    }
    function Ll(a, l) {
      var f, B = 8;
      for (f = 0; 16 > f; ++f) B += a[l + f - 32];
      Qi(B >> 4, a, l);
    }
    function Fs(a, l) {
      Qi(128, a, l);
    }
    function fe(a, l, f) {
      return a + 2 * l + f + 2 >> 2;
    }
    function El(a, l) {
      var f, B = l - 32;
      for (B = new Uint8Array([fe(a[B - 1], a[B + 0], a[B + 1]), fe(a[B + 0], a[B + 1], a[B + 2]), fe(a[B + 1], a[B + 2], a[B + 3]), fe(a[B + 2], a[B + 3], a[B + 4])]), f = 0; 4 > f; ++f) r(a, l + 32 * f, B, 0, B.length);
    }
    function xl(a, l) {
      var f = a[l - 1], B = a[l - 1 + 32], m = a[l - 1 + 64], b = a[l - 1 + 96];
      MA(a, l + 0, 16843009 * fe(a[l - 1 - 32], f, B)), MA(a, l + 32, 16843009 * fe(f, B, m)), MA(a, l + 64, 16843009 * fe(B, m, b)), MA(a, l + 96, 16843009 * fe(m, b, b));
    }
    function Mr(a, l) {
      var f, B = 4;
      for (f = 0; 4 > f; ++f) B += a[l + f - 32] + a[l - 1 + 32 * f];
      for (B >>= 3, f = 0; 4 > f; ++f) n(a, l + 32 * f, B, 4);
    }
    function Qs(a, l) {
      var f = a[l - 1 + 0], B = a[l - 1 + 32], m = a[l - 1 + 64], b = a[l - 1 - 32], E = a[l + 0 - 32], I = a[l + 1 - 32], S = a[l + 2 - 32], T = a[l + 3 - 32];
      a[l + 0 + 96] = fe(B, m, a[l - 1 + 96]), a[l + 1 + 96] = a[l + 0 + 64] = fe(f, B, m), a[l + 2 + 96] = a[l + 1 + 64] = a[l + 0 + 32] = fe(b, f, B), a[l + 3 + 96] = a[l + 2 + 64] = a[l + 1 + 32] = a[l + 0 + 0] = fe(E, b, f), a[l + 3 + 64] = a[l + 2 + 32] = a[l + 1 + 0] = fe(I, E, b), a[l + 3 + 32] = a[l + 2 + 0] = fe(S, I, E), a[l + 3 + 0] = fe(T, S, I);
    }
    function bs(a, l) {
      var f = a[l + 1 - 32], B = a[l + 2 - 32], m = a[l + 3 - 32], b = a[l + 4 - 32], E = a[l + 5 - 32], I = a[l + 6 - 32], S = a[l + 7 - 32];
      a[l + 0 + 0] = fe(a[l + 0 - 32], f, B), a[l + 1 + 0] = a[l + 0 + 32] = fe(f, B, m), a[l + 2 + 0] = a[l + 1 + 32] = a[l + 0 + 64] = fe(B, m, b), a[l + 3 + 0] = a[l + 2 + 32] = a[l + 1 + 64] = a[l + 0 + 96] = fe(m, b, E), a[l + 3 + 32] = a[l + 2 + 64] = a[l + 1 + 96] = fe(b, E, I), a[l + 3 + 64] = a[l + 2 + 96] = fe(E, I, S), a[l + 3 + 96] = fe(I, S, S);
    }
    function bi(a, l) {
      var f = a[l - 1 + 0], B = a[l - 1 + 32], m = a[l - 1 + 64], b = a[l - 1 - 32], E = a[l + 0 - 32], I = a[l + 1 - 32], S = a[l + 2 - 32], T = a[l + 3 - 32];
      a[l + 0 + 0] = a[l + 1 + 64] = b + E + 1 >> 1, a[l + 1 + 0] = a[l + 2 + 64] = E + I + 1 >> 1, a[l + 2 + 0] = a[l + 3 + 64] = I + S + 1 >> 1, a[l + 3 + 0] = S + T + 1 >> 1, a[l + 0 + 96] = fe(m, B, f), a[l + 0 + 64] = fe(B, f, b), a[l + 0 + 32] = a[l + 1 + 96] = fe(f, b, E), a[l + 1 + 32] = a[l + 2 + 96] = fe(b, E, I), a[l + 2 + 32] = a[l + 3 + 96] = fe(E, I, S), a[l + 3 + 32] = fe(I, S, T);
    }
    function pa(a, l) {
      var f = a[l + 0 - 32], B = a[l + 1 - 32], m = a[l + 2 - 32], b = a[l + 3 - 32], E = a[l + 4 - 32], I = a[l + 5 - 32], S = a[l + 6 - 32], T = a[l + 7 - 32];
      a[l + 0 + 0] = f + B + 1 >> 1, a[l + 1 + 0] = a[l + 0 + 64] = B + m + 1 >> 1, a[l + 2 + 0] = a[l + 1 + 64] = m + b + 1 >> 1, a[l + 3 + 0] = a[l + 2 + 64] = b + E + 1 >> 1, a[l + 0 + 32] = fe(f, B, m), a[l + 1 + 32] = a[l + 0 + 96] = fe(B, m, b), a[l + 2 + 32] = a[l + 1 + 96] = fe(m, b, E), a[l + 3 + 32] = a[l + 2 + 96] = fe(b, E, I), a[l + 3 + 64] = fe(E, I, S), a[l + 3 + 96] = fe(I, S, T);
    }
    function Il(a, l) {
      var f = a[l - 1 + 0], B = a[l - 1 + 32], m = a[l - 1 + 64], b = a[l - 1 + 96];
      a[l + 0 + 0] = f + B + 1 >> 1, a[l + 2 + 0] = a[l + 0 + 32] = B + m + 1 >> 1, a[l + 2 + 32] = a[l + 0 + 64] = m + b + 1 >> 1, a[l + 1 + 0] = fe(f, B, m), a[l + 3 + 0] = a[l + 1 + 32] = fe(B, m, b), a[l + 3 + 32] = a[l + 1 + 64] = fe(m, b, b), a[l + 3 + 64] = a[l + 2 + 64] = a[l + 0 + 96] = a[l + 1 + 96] = a[l + 2 + 96] = a[l + 3 + 96] = b;
    }
    function Sl(a, l) {
      var f = a[l - 1 + 0], B = a[l - 1 + 32], m = a[l - 1 + 64], b = a[l - 1 + 96], E = a[l - 1 - 32], I = a[l + 0 - 32], S = a[l + 1 - 32], T = a[l + 2 - 32];
      a[l + 0 + 0] = a[l + 2 + 32] = f + E + 1 >> 1, a[l + 0 + 32] = a[l + 2 + 64] = B + f + 1 >> 1, a[l + 0 + 64] = a[l + 2 + 96] = m + B + 1 >> 1, a[l + 0 + 96] = b + m + 1 >> 1, a[l + 3 + 0] = fe(I, S, T), a[l + 2 + 0] = fe(E, I, S), a[l + 1 + 0] = a[l + 3 + 32] = fe(f, E, I), a[l + 1 + 32] = a[l + 3 + 64] = fe(B, f, E), a[l + 1 + 64] = a[l + 3 + 96] = fe(m, B, f), a[l + 1 + 96] = fe(b, m, B);
    }
    function Hl(a, l) {
      var f;
      for (f = 0; 8 > f; ++f) r(a, l + 32 * f, a, l - 32, 8);
    }
    function Ba(a, l) {
      var f;
      for (f = 0; 8 > f; ++f) n(a, l, a[l - 1], 8), l += 32;
    }
    function Wn(a, l, f) {
      var B;
      for (B = 0; 8 > B; ++B) n(l, f + 32 * B, a, 8);
    }
    function dn(a, l) {
      var f, B = 8;
      for (f = 0; 8 > f; ++f) B += a[l + f - 32] + a[l - 1 + 32 * f];
      Wn(B >> 4, a, l);
    }
    function Dl(a, l) {
      var f, B = 4;
      for (f = 0; 8 > f; ++f) B += a[l + f - 32];
      Wn(B >> 3, a, l);
    }
    function Xn(a, l) {
      var f, B = 4;
      for (f = 0; 8 > f; ++f) B += a[l - 1 + 32 * f];
      Wn(B >> 3, a, l);
    }
    function wa(a, l) {
      Wn(128, a, l);
    }
    function Ui(a, l, f) {
      var B = a[l - f], m = a[l + 0], b = 3 * (m - B) + Pl[1020 + a[l - 2 * f] - a[l + f]], E = Ms[112 + (b + 4 >> 3)];
      a[l - f] = Xt[255 + B + Ms[112 + (b + 3 >> 3)]], a[l + 0] = Xt[255 + m - E];
    }
    function Us(a, l, f, B) {
      var m = a[l + 0], b = a[l + f];
      return ir[255 + a[l - 2 * f] - a[l - f]] > B || ir[255 + b - m] > B;
    }
    function Ls(a, l, f, B) {
      return 4 * ir[255 + a[l - f] - a[l + 0]] + ir[255 + a[l - 2 * f] - a[l + f]] <= B;
    }
    function Es(a, l, f, B, m) {
      var b = a[l - 3 * f], E = a[l - 2 * f], I = a[l - f], S = a[l + 0], T = a[l + f], Z = a[l + 2 * f], fA = a[l + 3 * f];
      return 4 * ir[255 + I - S] + ir[255 + E - T] > B ? 0 : ir[255 + a[l - 4 * f] - b] <= m && ir[255 + b - E] <= m && ir[255 + E - I] <= m && ir[255 + fA - Z] <= m && ir[255 + Z - T] <= m && ir[255 + T - S] <= m;
    }
    function xs(a, l, f, B) {
      var m = 2 * B + 1;
      for (B = 0; 16 > B; ++B) Ls(a, l + B, f, m) && Ui(a, l + B, f);
    }
    function Pr(a, l, f, B) {
      var m = 2 * B + 1;
      for (B = 0; 16 > B; ++B) Ls(a, l + B * f, 1, m) && Ui(a, l + B * f, 1);
    }
    function Zr(a, l, f, B) {
      var m;
      for (m = 3; 0 < m; --m) xs(a, l += 4 * f, f, B);
    }
    function Nl(a, l, f, B) {
      var m;
      for (m = 3; 0 < m; --m) Pr(a, l += 4, f, B);
    }
    function gn(a, l, f, B, m, b, E, I) {
      for (b = 2 * b + 1; 0 < m--; ) {
        if (Es(a, l, f, b, E)) if (Us(a, l, f, I)) Ui(a, l, f);
        else {
          var S = a, T = l, Z = f, fA = S[T - 2 * Z], hA = S[T - Z], aA = S[T + 0], EA = S[T + Z], vA = S[T + 2 * Z], AA = 27 * (bA = Pl[1020 + 3 * (aA - hA) + Pl[1020 + fA - EA]]) + 63 >> 7, nA = 18 * bA + 63 >> 7, bA = 9 * bA + 63 >> 7;
          S[T - 3 * Z] = Xt[255 + S[T - 3 * Z] + bA], S[T - 2 * Z] = Xt[255 + fA + nA], S[T - Z] = Xt[255 + hA + AA], S[T + 0] = Xt[255 + aA - AA], S[T + Z] = Xt[255 + EA - nA], S[T + 2 * Z] = Xt[255 + vA - bA];
        }
        l += B;
      }
    }
    function vr(a, l, f, B, m, b, E, I) {
      for (b = 2 * b + 1; 0 < m--; ) {
        if (Es(a, l, f, b, E)) if (Us(a, l, f, I)) Ui(a, l, f);
        else {
          var S = a, T = l, Z = f, fA = S[T - Z], hA = S[T + 0], aA = S[T + Z], EA = Ms[112 + ((vA = 3 * (hA - fA)) + 4 >> 3)], vA = Ms[112 + (vA + 3 >> 3)], AA = EA + 1 >> 1;
          S[T - 2 * Z] = Xt[255 + S[T - 2 * Z] + AA], S[T - Z] = Xt[255 + fA + vA], S[T + 0] = Xt[255 + hA - EA], S[T + Z] = Xt[255 + aA - AA];
        }
        l += B;
      }
    }
    function va(a, l, f, B, m, b) {
      gn(a, l, f, 1, 16, B, m, b);
    }
    function zn(a, l, f, B, m, b) {
      gn(a, l, 1, f, 16, B, m, b);
    }
    function kl(a, l, f, B, m, b) {
      var E;
      for (E = 3; 0 < E; --E) vr(a, l += 4 * f, f, 1, 16, B, m, b);
    }
    function Li(a, l, f, B, m, b) {
      var E;
      for (E = 3; 0 < E; --E) vr(a, l += 4, 1, f, 16, B, m, b);
    }
    function _l(a, l, f, B, m, b, E, I) {
      gn(a, l, m, 1, 8, b, E, I), gn(f, B, m, 1, 8, b, E, I);
    }
    function ma(a, l, f, B, m, b, E, I) {
      gn(a, l, 1, m, 8, b, E, I), gn(f, B, 1, m, 8, b, E, I);
    }
    function Ca(a, l, f, B, m, b, E, I) {
      vr(a, l + 4 * m, m, 1, 8, b, E, I), vr(f, B + 4 * m, m, 1, 8, b, E, I);
    }
    function Is(a, l, f, B, m, b, E, I) {
      vr(a, l + 4, 1, m, 8, b, E, I), vr(f, B + 4, 1, m, 8, b, E, I);
    }
    function Ei() {
      this.ba = new Oe(), this.ec = [], this.cc = [], this.Mc = [], this.Dc = this.Nc = this.dc = this.fc = 0, this.Oa = new ve(), this.memory = 0, this.Ib = "OutputFunc", this.Jb = "OutputAlphaFunc", this.Nd = "OutputRowFunc";
    }
    function ya() {
      this.data = [], this.offset = this.kd = this.ha = this.w = 0, this.na = [], this.xa = this.gb = this.Ja = this.Sa = this.P = 0;
    }
    function Fa() {
      this.nc = this.Ea = this.b = this.hc = 0, this.K = [], this.w = 0;
    }
    function Ss() {
      this.ua = 0, this.Wa = new D(), this.vb = new D(), this.md = this.xc = this.wc = 0, this.vc = [], this.Wb = 0, this.Ya = new P(), this.yc = new F();
    }
    function Tl() {
      this.xb = this.a = 0, this.l = new Ci(), this.ca = new Oe(), this.V = [], this.Ba = 0, this.Ta = [], this.Ua = 0, this.m = new L(), this.Pb = 0, this.wd = new L(), this.Ma = this.$ = this.C = this.i = this.c = this.xd = 0, this.s = new Ss(), this.ab = 0, this.gc = s(4, Fa), this.Oc = 0;
    }
    function xi() {
      this.Lc = this.Z = this.$a = this.i = this.c = 0, this.l = new Ci(), this.ic = 0, this.ca = [], this.tb = 0, this.qd = null, this.rd = 0;
    }
    function Jn(a, l, f, B, m, b, E) {
      for (a = a == null ? 0 : a[l + 0], l = 0; l < E; ++l) m[b + l] = a + f[B + l] & 255, a = m[b + l];
    }
    function Qa(a, l, f, B, m, b, E) {
      var I;
      if (a == null) Jn(null, null, f, B, m, b, E);
      else for (I = 0; I < E; ++I) m[b + I] = a[l + I] + f[B + I] & 255;
    }
    function pn(a, l, f, B, m, b, E) {
      if (a == null) Jn(null, null, f, B, m, b, E);
      else {
        var I, S = a[l + 0], T = S, Z = S;
        for (I = 0; I < E; ++I) T = Z + (S = a[l + I]) - T, Z = f[B + I] + (-256 & T ? 0 > T ? 0 : 255 : T) & 255, T = S, m[b + I] = Z;
      }
    }
    function ba(a, l, f, B) {
      var m = l.width, b = l.o;
      if (e(a != null && l != null), 0 > f || 0 >= B || f + B > b) return null;
      if (!a.Cc) {
        if (a.ga == null) {
          var E;
          if (a.ga = new xi(), (E = a.ga == null) || (E = l.width * l.o, e(a.Gb.length == 0), a.Gb = i(E), a.Uc = 0, a.Gb == null ? E = 0 : (a.mb = a.Gb, a.nb = a.Uc, a.rc = null, E = 1), E = !E), !E) {
            E = a.ga;
            var I = a.Fa, S = a.P, T = a.qc, Z = a.mb, fA = a.nb, hA = S + 1, aA = T - 1, EA = E.l;
            if (e(I != null && Z != null && l != null), yn[0] = null, yn[1] = Jn, yn[2] = Qa, yn[3] = pn, E.ca = Z, E.tb = fA, E.c = l.width, E.i = l.height, e(0 < E.c && 0 < E.i), 1 >= T) l = 0;
            else if (E.$a = I[S + 0] >> 0 & 3, E.Z = I[S + 0] >> 2 & 3, E.Lc = I[S + 0] >> 4 & 3, S = I[S + 0] >> 6 & 3, 0 > E.$a || 1 < E.$a || 4 <= E.Z || 1 < E.Lc || S) l = 0;
            else if (EA.put = Dr, EA.ac = wt, EA.bc = Nr, EA.ma = E, EA.width = l.width, EA.height = l.height, EA.Da = l.Da, EA.v = l.v, EA.va = l.va, EA.j = l.j, EA.o = l.o, E.$a) A: {
              e(E.$a == 1), l = Ar();
              e: for (; ; ) {
                if (l == null) {
                  l = 0;
                  break A;
                }
                if (e(E != null), E.mc = l, l.c = E.c, l.i = E.i, l.l = E.l, l.l.ma = E, l.l.width = E.c, l.l.height = E.i, l.a = 0, k(l.m, I, hA, aA), !Tr(E.c, E.i, 1, l, null) || (l.ab == 1 && l.gc[0].hc == 3 && Yr(l.s) ? (E.ic = 1, I = l.c * l.i, l.Ta = null, l.Ua = 0, l.V = i(I), l.Ba = 0, l.V == null ? (l.a = 1, l = 0) : l = 1) : (E.ic = 0, l = qn(l, E.c)), !l)) break e;
                l = 1;
                break A;
              }
              E.mc = null, l = 0;
            }
            else l = aA >= E.c * E.i;
            E = !l;
          }
          if (E) return null;
          a.ga.Lc != 1 ? a.Ga = 0 : B = b - f;
        }
        e(a.ga != null), e(f + B <= b);
        A: {
          if (l = (I = a.ga).c, b = I.l.o, I.$a == 0) {
            if (hA = a.rc, aA = a.Vc, EA = a.Fa, S = a.P + 1 + f * l, T = a.mb, Z = a.nb + f * l, e(S <= a.P + a.qc), I.Z != 0) for (e(yn[I.Z] != null), E = 0; E < B; ++E) yn[I.Z](hA, aA, EA, S, T, Z, l), hA = T, aA = Z, Z += l, S += l;
            else for (E = 0; E < B; ++E) r(T, Z, EA, S, l), hA = T, aA = Z, Z += l, S += l;
            a.rc = hA, a.Vc = aA;
          } else {
            if (e(I.mc != null), l = f + B, e((E = I.mc) != null), e(l <= E.i), E.C >= l) l = 1;
            else if (I.ic || cA(), I.ic) {
              I = E.V, hA = E.Ba, aA = E.c;
              var vA = E.i, AA = (EA = 1, S = E.$ / aA, T = E.$ % aA, Z = E.m, fA = E.s, E.$), nA = aA * vA, bA = aA * l, HA = fA.wc, LA = AA < bA ? it(fA, T, S) : null;
              e(AA <= nA), e(l <= vA), e(Yr(fA));
              e: for (; ; ) {
                for (; !Z.h && AA < bA; ) {
                  if (T & HA || (LA = it(fA, T, S)), e(LA != null), eA(Z), 256 > (vA = Mt(LA.G[0], LA.H[0], Z))) I[hA + AA] = vA, ++AA, ++T >= aA && (T = 0, ++S <= l && !(S % 16) && pr(E, S));
                  else {
                    if (!(280 > vA)) {
                      EA = 0;
                      break e;
                    }
                    vA = dr(vA - 256, Z);
                    var zA, jA = Mt(LA.G[4], LA.H[4], Z);
                    if (eA(Z), !(AA >= (jA = kr(aA, jA = dr(jA, Z))) && nA - AA >= vA)) {
                      EA = 0;
                      break e;
                    }
                    for (zA = 0; zA < vA; ++zA) I[hA + AA + zA] = I[hA + AA + zA - jA];
                    for (AA += vA, T += vA; T >= aA; ) T -= aA, ++S <= l && !(S % 16) && pr(E, S);
                    AA < bA && T & HA && (LA = it(fA, T, S));
                  }
                  e(Z.h == R(Z));
                }
                pr(E, S > l ? l : S);
                break e;
              }
              !EA || Z.h && AA < nA ? (EA = 0, E.a = Z.h ? 5 : 3) : E.$ = AA, l = EA;
            } else l = Br(E, E.V, E.Ba, E.c, E.i, l, pi);
            if (!l) {
              B = 0;
              break A;
            }
          }
          f + B >= b && (a.Cc = 1), B = 1;
        }
        if (!B) return null;
        if (a.Cc && ((B = a.ga) != null && (B.mc = null), a.ga = null, 0 < a.Ga)) return alert("todo:WebPDequantizeLevels"), null;
      }
      return a.nb + f * m;
    }
    function u(a, l, f, B, m, b) {
      for (; 0 < m--; ) {
        var E, I = a, S = l + (f ? 1 : 0), T = a, Z = l + (f ? 0 : 3);
        for (E = 0; E < B; ++E) {
          var fA = T[Z + 4 * E];
          fA != 255 && (fA *= 32897, I[S + 4 * E + 0] = I[S + 4 * E + 0] * fA >> 23, I[S + 4 * E + 1] = I[S + 4 * E + 1] * fA >> 23, I[S + 4 * E + 2] = I[S + 4 * E + 2] * fA >> 23);
        }
        l += b;
      }
    }
    function C(a, l, f, B, m) {
      for (; 0 < B--; ) {
        var b;
        for (b = 0; b < f; ++b) {
          var E = a[l + 2 * b + 0], I = 15 & (T = a[l + 2 * b + 1]), S = 4369 * I, T = (240 & T | T >> 4) * S >> 16;
          a[l + 2 * b + 0] = (240 & E | E >> 4) * S >> 16 & 240 | (15 & E | E << 4) * S >> 16 >> 4 & 15, a[l + 2 * b + 1] = 240 & T | I;
        }
        l += m;
      }
    }
    function O(a, l, f, B, m, b, E, I) {
      var S, T, Z = 255;
      for (T = 0; T < m; ++T) {
        for (S = 0; S < B; ++S) {
          var fA = a[l + S];
          b[E + 4 * S] = fA, Z &= fA;
        }
        l += f, E += I;
      }
      return Z != 255;
    }
    function Y(a, l, f, B, m) {
      var b;
      for (b = 0; b < m; ++b) f[B + b] = a[l + b] >> 8;
    }
    function cA() {
      nr = u, Te = C, Me = O, $e = Y;
    }
    function CA(a, l, f) {
      H[a] = function(B, m, b, E, I, S, T, Z, fA, hA, aA, EA, vA, AA, nA, bA, HA) {
        var LA, zA = HA - 1 >> 1, jA = I[S + 0] | T[Z + 0] << 16, re = fA[hA + 0] | aA[EA + 0] << 16;
        e(B != null);
        var qA = 3 * jA + re + 131074 >> 2;
        for (l(B[m + 0], 255 & qA, qA >> 16, vA, AA), b != null && (qA = 3 * re + jA + 131074 >> 2, l(b[E + 0], 255 & qA, qA >> 16, nA, bA)), LA = 1; LA <= zA; ++LA) {
          var Le = I[S + LA] | T[Z + LA] << 16, xe = fA[hA + LA] | aA[EA + LA] << 16, be = jA + Le + re + xe + 524296, ye = be + 2 * (Le + re) >> 3;
          qA = ye + jA >> 1, jA = (be = be + 2 * (jA + xe) >> 3) + Le >> 1, l(B[m + 2 * LA - 1], 255 & qA, qA >> 16, vA, AA + (2 * LA - 1) * f), l(B[m + 2 * LA - 0], 255 & jA, jA >> 16, vA, AA + (2 * LA - 0) * f), b != null && (qA = be + re >> 1, jA = ye + xe >> 1, l(b[E + 2 * LA - 1], 255 & qA, qA >> 16, nA, bA + (2 * LA - 1) * f), l(b[E + 2 * LA + 0], 255 & jA, jA >> 16, nA, bA + (2 * LA + 0) * f)), jA = Le, re = xe;
        }
        1 & HA || (qA = 3 * jA + re + 131074 >> 2, l(B[m + HA - 1], 255 & qA, qA >> 16, vA, AA + (HA - 1) * f), b != null && (qA = 3 * re + jA + 131074 >> 2, l(b[E + HA - 1], 255 & qA, qA >> 16, nA, bA + (HA - 1) * f)));
      };
    }
    function kA() {
      ar[Ps] = og, ar[Os] = Su, ar[Uu] = lg, ar[Ks] = Hu, ar[Rs] = Du, ar[Ol] = Nu, ar[Lu] = cg, ar[Kl] = Su, ar[Rl] = Hu, ar[Gs] = Du, ar[Gl] = Nu;
    }
    function XA(a) {
      return a & -16384 ? 0 > a ? 0 : 255 : a >> ug;
    }
    function te(a, l) {
      return XA((19077 * a >> 8) + (26149 * l >> 8) - 14234);
    }
    function pe(a, l, f) {
      return XA((19077 * a >> 8) - (6419 * l >> 8) - (13320 * f >> 8) + 8708);
    }
    function de(a, l) {
      return XA((19077 * a >> 8) + (33050 * l >> 8) - 17685);
    }
    function Qe(a, l, f, B, m) {
      B[m + 0] = te(a, f), B[m + 1] = pe(a, l, f), B[m + 2] = de(a, l);
    }
    function je(a, l, f, B, m) {
      B[m + 0] = de(a, l), B[m + 1] = pe(a, l, f), B[m + 2] = te(a, f);
    }
    function qe(a, l, f, B, m) {
      var b = pe(a, l, f);
      l = b << 3 & 224 | de(a, l) >> 3, B[m + 0] = 248 & te(a, f) | b >> 5, B[m + 1] = l;
    }
    function at(a, l, f, B, m) {
      var b = 240 & de(a, l) | 15;
      B[m + 0] = 240 & te(a, f) | pe(a, l, f) >> 4, B[m + 1] = b;
    }
    function bt(a, l, f, B, m) {
      B[m + 0] = 255, Qe(a, l, f, B, m + 1);
    }
    function ht(a, l, f, B, m) {
      je(a, l, f, B, m), B[m + 3] = 255;
    }
    function mr(a, l, f, B, m) {
      Qe(a, l, f, B, m), B[m + 3] = 255;
    }
    function Wt(a, l) {
      return 0 > a ? 0 : a > l ? l : a;
    }
    function Or(a, l, f) {
      H[a] = function(B, m, b, E, I, S, T, Z, fA) {
        for (var hA = Z + (-2 & fA) * f; Z != hA; ) l(B[m + 0], b[E + 0], I[S + 0], T, Z), l(B[m + 1], b[E + 0], I[S + 0], T, Z + f), m += 2, ++E, ++S, Z += 2 * f;
        1 & fA && l(B[m + 0], b[E + 0], I[S + 0], T, Z);
      };
    }
    function Hs(a, l, f) {
      return f == 0 ? a == 0 ? l == 0 ? 6 : 5 : l == 0 ? 4 : 0 : f;
    }
    function Ua(a, l, f, B, m) {
      switch (a >>> 30) {
        case 3:
          tn(l, f, B, m, 0);
          break;
        case 2:
          Ye(l, f, B, m);
          break;
        case 1:
          Nt(l, f, B, m);
      }
    }
    function La(a, l) {
      var f, B, m = l.M, b = l.Nb, E = a.oc, I = a.pc + 40, S = a.oc, T = a.pc + 584, Z = a.oc, fA = a.pc + 600;
      for (f = 0; 16 > f; ++f) E[I + 32 * f - 1] = 129;
      for (f = 0; 8 > f; ++f) S[T + 32 * f - 1] = 129, Z[fA + 32 * f - 1] = 129;
      for (0 < m ? E[I - 1 - 32] = S[T - 1 - 32] = Z[fA - 1 - 32] = 129 : (n(E, I - 32 - 1, 127, 21), n(S, T - 32 - 1, 127, 9), n(Z, fA - 32 - 1, 127, 9)), B = 0; B < a.za; ++B) {
        var hA = l.ya[l.aa + B];
        if (0 < B) {
          for (f = -1; 16 > f; ++f) r(E, I + 32 * f - 4, E, I + 32 * f + 12, 4);
          for (f = -1; 8 > f; ++f) r(S, T + 32 * f - 4, S, T + 32 * f + 4, 4), r(Z, fA + 32 * f - 4, Z, fA + 32 * f + 4, 4);
        }
        var aA = a.Gd, EA = a.Hd + B, vA = hA.ad, AA = hA.Hc;
        if (0 < m && (r(E, I - 32, aA[EA].y, 0, 16), r(S, T - 32, aA[EA].f, 0, 8), r(Z, fA - 32, aA[EA].ea, 0, 8)), hA.Za) {
          var nA = E, bA = I - 32 + 16;
          for (0 < m && (B >= a.za - 1 ? n(nA, bA, aA[EA].y[15], 4) : r(nA, bA, aA[EA + 1].y, 0, 4)), f = 0; 4 > f; f++) nA[bA + 128 + f] = nA[bA + 256 + f] = nA[bA + 384 + f] = nA[bA + 0 + f];
          for (f = 0; 16 > f; ++f, AA <<= 2) nA = E, bA = I + _u[f], Cr[hA.Ob[f]](nA, bA), Ua(AA, vA, 16 * +f, nA, bA);
        } else if (nA = Hs(B, m, hA.Ob[0]), Cn[nA](E, I), AA != 0) for (f = 0; 16 > f; ++f, AA <<= 2) Ua(AA, vA, 16 * +f, E, I + _u[f]);
        for (f = hA.Gc, nA = Hs(B, m, hA.Dd), nn[nA](S, T), nn[nA](Z, fA), AA = vA, nA = S, bA = T, 255 & (hA = f >> 0) && (170 & hA ? Ha(AA, 256, nA, bA) : tr(AA, 256, nA, bA)), hA = Z, AA = fA, 255 & (f >>= 8) && (170 & f ? Ha(vA, 320, hA, AA) : tr(vA, 320, hA, AA)), m < a.Ub - 1 && (r(aA[EA].y, 0, E, I + 480, 16), r(aA[EA].f, 0, S, T + 224, 8), r(aA[EA].ea, 0, Z, fA + 224, 8)), f = 8 * b * a.B, aA = a.sa, EA = a.ta + 16 * B + 16 * b * a.R, vA = a.qa, hA = a.ra + 8 * B + f, AA = a.Ha, nA = a.Ia + 8 * B + f, f = 0; 16 > f; ++f) r(aA, EA + f * a.R, E, I + 32 * f, 16);
        for (f = 0; 8 > f; ++f) r(vA, hA + f * a.B, S, T + 32 * f, 8), r(AA, nA + f * a.B, Z, fA + 32 * f, 8);
      }
    }
    function Ii(a, l, f, B, m, b, E, I, S) {
      var T = [0], Z = [0], fA = 0, hA = S != null ? S.kd : 0, aA = S ?? new ya();
      if (a == null || 12 > f) return 7;
      aA.data = a, aA.w = l, aA.ha = f, l = [l], f = [f], aA.gb = [aA.gb];
      A: {
        var EA = l, vA = f, AA = aA.gb;
        if (e(a != null), e(vA != null), e(AA != null), AA[0] = 0, 12 <= vA[0] && !A(a, EA[0], "RIFF")) {
          if (A(a, EA[0] + 8, "WEBP")) {
            AA = 3;
            break A;
          }
          var nA = GA(a, EA[0] + 4);
          if (12 > nA || 4294967286 < nA) {
            AA = 3;
            break A;
          }
          if (hA && nA > vA[0] - 8) {
            AA = 7;
            break A;
          }
          AA[0] = nA, EA[0] += 12, vA[0] -= 12;
        }
        AA = 0;
      }
      if (AA != 0) return AA;
      for (nA = 0 < aA.gb[0], f = f[0]; ; ) {
        A: {
          var bA = a;
          vA = l, AA = f;
          var HA = T, LA = Z, zA = EA = [0];
          if ((qA = fA = [fA])[0] = 0, 8 > AA[0]) AA = 7;
          else {
            if (!A(bA, vA[0], "VP8X")) {
              if (GA(bA, vA[0] + 4) != 10) {
                AA = 3;
                break A;
              }
              if (18 > AA[0]) {
                AA = 7;
                break A;
              }
              var jA = GA(bA, vA[0] + 8), re = 1 + RA(bA, vA[0] + 12);
              if (2147483648 <= re * (bA = 1 + RA(bA, vA[0] + 15))) {
                AA = 3;
                break A;
              }
              zA != null && (zA[0] = jA), HA != null && (HA[0] = re), LA != null && (LA[0] = bA), vA[0] += 18, AA[0] -= 18, qA[0] = 1;
            }
            AA = 0;
          }
        }
        if (fA = fA[0], EA = EA[0], AA != 0) return AA;
        if (vA = !!(2 & EA), !nA && fA) return 3;
        if (b != null && (b[0] = !!(16 & EA)), E != null && (E[0] = vA), I != null && (I[0] = 0), E = T[0], EA = Z[0], fA && vA && S == null) {
          AA = 0;
          break;
        }
        if (4 > f) {
          AA = 7;
          break;
        }
        if (nA && fA || !nA && !fA && !A(a, l[0], "ALPH")) {
          f = [f], aA.na = [aA.na], aA.P = [aA.P], aA.Sa = [aA.Sa];
          A: {
            jA = a, AA = l, nA = f;
            var qA = aA.gb;
            HA = aA.na, LA = aA.P, zA = aA.Sa, re = 22, e(jA != null), e(nA != null), bA = AA[0];
            var Le = nA[0];
            for (e(HA != null), e(zA != null), HA[0] = null, LA[0] = null, zA[0] = 0; ; ) {
              if (AA[0] = bA, nA[0] = Le, 8 > Le) {
                AA = 7;
                break A;
              }
              var xe = GA(jA, bA + 4);
              if (4294967286 < xe) {
                AA = 3;
                break A;
              }
              var be = 8 + xe + 1 & -2;
              if (re += be, 0 < qA && re > qA) {
                AA = 3;
                break A;
              }
              if (!A(jA, bA, "VP8 ") || !A(jA, bA, "VP8L")) {
                AA = 0;
                break A;
              }
              if (Le[0] < be) {
                AA = 7;
                break A;
              }
              A(jA, bA, "ALPH") || (HA[0] = jA, LA[0] = bA + 8, zA[0] = xe), bA += be, Le -= be;
            }
          }
          if (f = f[0], aA.na = aA.na[0], aA.P = aA.P[0], aA.Sa = aA.Sa[0], AA != 0) break;
        }
        f = [f], aA.Ja = [aA.Ja], aA.xa = [aA.xa];
        A: if (qA = a, AA = l, nA = f, HA = aA.gb[0], LA = aA.Ja, zA = aA.xa, jA = AA[0], bA = !A(qA, jA, "VP8 "), re = !A(qA, jA, "VP8L"), e(qA != null), e(nA != null), e(LA != null), e(zA != null), 8 > nA[0]) AA = 7;
        else {
          if (bA || re) {
            if (qA = GA(qA, jA + 4), 12 <= HA && qA > HA - 12) {
              AA = 3;
              break A;
            }
            if (hA && qA > nA[0] - 8) {
              AA = 7;
              break A;
            }
            LA[0] = qA, AA[0] += 8, nA[0] -= 8, zA[0] = re;
          } else zA[0] = 5 <= nA[0] && qA[jA + 0] == 47 && !(qA[jA + 4] >> 5), LA[0] = nA[0];
          AA = 0;
        }
        if (f = f[0], aA.Ja = aA.Ja[0], aA.xa = aA.xa[0], l = l[0], AA != 0) break;
        if (4294967286 < aA.Ja) return 3;
        if (I == null || vA || (I[0] = aA.xa ? 2 : 1), E = [E], EA = [EA], aA.xa) {
          if (5 > f) {
            AA = 7;
            break;
          }
          I = E, hA = EA, vA = b, a == null || 5 > f ? a = 0 : 5 <= f && a[l + 0] == 47 && !(a[l + 4] >> 5) ? (nA = [0], qA = [0], HA = [0], k(LA = new L(), a, l, f), ie(LA, nA, qA, HA) ? (I != null && (I[0] = nA[0]), hA != null && (hA[0] = qA[0]), vA != null && (vA[0] = HA[0]), a = 1) : a = 0) : a = 0;
        } else {
          if (10 > f) {
            AA = 7;
            break;
          }
          I = EA, a == null || 10 > f || !ps(a, l + 3, f - 3) ? a = 0 : (hA = a[l + 0] | a[l + 1] << 8 | a[l + 2] << 16, vA = 16383 & (a[l + 7] << 8 | a[l + 6]), a = 16383 & (a[l + 9] << 8 | a[l + 8]), 1 & hA || 3 < (hA >> 1 & 7) || !(hA >> 4 & 1) || hA >> 5 >= aA.Ja || !vA || !a ? a = 0 : (E && (E[0] = vA), I && (I[0] = a), a = 1));
        }
        if (!a || (E = E[0], EA = EA[0], fA && (T[0] != E || Z[0] != EA))) return 3;
        S != null && (S[0] = aA, S.offset = l - S.w, e(4294967286 > l - S.w), e(S.offset == S.ha - f));
        break;
      }
      return AA == 0 || AA == 7 && fA && S == null ? (b != null && (b[0] |= aA.na != null && 0 < aA.na.length), B != null && (B[0] = E), m != null && (m[0] = EA), 0) : AA;
    }
    function Ea(a, l, f) {
      var B = l.width, m = l.height, b = 0, E = 0, I = B, S = m;
      if (l.Da = a != null && 0 < a.Da, l.Da && (I = a.cd, S = a.bd, b = a.v, E = a.j, 11 > f || (b &= -2, E &= -2), 0 > b || 0 > E || 0 >= I || 0 >= S || b + I > B || E + S > m)) return 0;
      if (l.v = b, l.j = E, l.va = b + I, l.o = E + S, l.U = I, l.T = S, l.da = a != null && 0 < a.da, l.da) {
        if (!$(I, S, f = [a.ib], b = [a.hb])) return 0;
        l.ib = f[0], l.hb = b[0];
      }
      return l.ob = a != null && a.ob, l.Kb = a == null || !a.Sd, l.da && (l.ob = l.ib < 3 * B / 4 && l.hb < 3 * m / 4, l.Kb = 0), 1;
    }
    function xa(a) {
      if (a == null) return 2;
      if (11 > a.S) {
        var l = a.f.RGBA;
        l.fb += (a.height - 1) * l.A, l.A = -l.A;
      } else l = a.f.kb, a = a.height, l.O += (a - 1) * l.fa, l.fa = -l.fa, l.N += (a - 1 >> 1) * l.Ab, l.Ab = -l.Ab, l.W += (a - 1 >> 1) * l.Db, l.Db = -l.Db, l.F != null && (l.J += (a - 1) * l.lb, l.lb = -l.lb);
      return 0;
    }
    function Si(a, l, f, B) {
      if (B == null || 0 >= a || 0 >= l) return 2;
      if (f != null) {
        if (f.Da) {
          var m = f.cd, b = f.bd, E = -2 & f.v, I = -2 & f.j;
          if (0 > E || 0 > I || 0 >= m || 0 >= b || E + m > a || I + b > l) return 2;
          a = m, l = b;
        }
        if (f.da) {
          if (!$(a, l, m = [f.ib], b = [f.hb])) return 2;
          a = m[0], l = b[0];
        }
      }
      B.width = a, B.height = l;
      A: {
        var S = B.width, T = B.height;
        if (a = B.S, 0 >= S || 0 >= T || !(a >= Ps && 13 > a)) a = 2;
        else {
          if (0 >= B.Rd && B.sd == null) {
            E = b = m = l = 0;
            var Z = (I = S * Tu[a]) * T;
            if (11 > a || (b = (T + 1) / 2 * (l = (S + 1) / 2), a == 12 && (E = (m = S) * T)), (T = i(Z + 2 * b + E)) == null) {
              a = 1;
              break A;
            }
            B.sd = T, 11 > a ? ((S = B.f.RGBA).eb = T, S.fb = 0, S.A = I, S.size = Z) : ((S = B.f.kb).y = T, S.O = 0, S.fa = I, S.Fd = Z, S.f = T, S.N = 0 + Z, S.Ab = l, S.Cd = b, S.ea = T, S.W = 0 + Z + b, S.Db = l, S.Ed = b, a == 12 && (S.F = T, S.J = 0 + Z + 2 * b), S.Tc = E, S.lb = m);
          }
          if (l = 1, m = B.S, b = B.width, E = B.height, m >= Ps && 13 > m) if (11 > m) a = B.f.RGBA, l &= (I = Math.abs(a.A)) * (E - 1) + b <= a.size, l &= I >= b * Tu[m], l &= a.eb != null;
          else {
            a = B.f.kb, I = (b + 1) / 2, Z = (E + 1) / 2, S = Math.abs(a.fa), T = Math.abs(a.Ab);
            var fA = Math.abs(a.Db), hA = Math.abs(a.lb), aA = hA * (E - 1) + b;
            l &= S * (E - 1) + b <= a.Fd, l &= T * (Z - 1) + I <= a.Cd, l = (l &= fA * (Z - 1) + I <= a.Ed) & S >= b & T >= I & fA >= I, l &= a.y != null, l &= a.f != null, l &= a.ea != null, m == 12 && (l &= hA >= b, l &= aA <= a.Tc, l &= a.F != null);
          }
          else l = 0;
          a = l ? 0 : 2;
        }
      }
      return a != 0 || f != null && f.fd && (a = xa(B)), a;
    }
    var vt = 64, Hi = [0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535, 131071, 262143, 524287, 1048575, 2097151, 4194303, 8388607, 16777215], Di = 24, Ni = 32, Ia = 8, Ot = [0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7];
    pA("Predictor0", "PredictorAdd0"), H.Predictor0 = function() {
      return 4278190080;
    }, H.Predictor1 = function(a) {
      return a;
    }, H.Predictor2 = function(a, l, f) {
      return l[f + 0];
    }, H.Predictor3 = function(a, l, f) {
      return l[f + 1];
    }, H.Predictor4 = function(a, l, f) {
      return l[f - 1];
    }, H.Predictor5 = function(a, l, f) {
      return UA(UA(a, l[f + 1]), l[f + 0]);
    }, H.Predictor6 = function(a, l, f) {
      return UA(a, l[f - 1]);
    }, H.Predictor7 = function(a, l, f) {
      return UA(a, l[f + 0]);
    }, H.Predictor8 = function(a, l, f) {
      return UA(l[f - 1], l[f + 0]);
    }, H.Predictor9 = function(a, l, f) {
      return UA(l[f + 0], l[f + 1]);
    }, H.Predictor10 = function(a, l, f) {
      return UA(UA(a, l[f - 1]), UA(l[f + 0], l[f + 1]));
    }, H.Predictor11 = function(a, l, f) {
      var B = l[f + 0];
      return 0 >= yA(B >> 24 & 255, a >> 24 & 255, (l = l[f - 1]) >> 24 & 255) + yA(B >> 16 & 255, a >> 16 & 255, l >> 16 & 255) + yA(B >> 8 & 255, a >> 8 & 255, l >> 8 & 255) + yA(255 & B, 255 & a, 255 & l) ? B : a;
    }, H.Predictor12 = function(a, l, f) {
      var B = l[f + 0];
      return (SA((a >> 24 & 255) + (B >> 24 & 255) - ((l = l[f - 1]) >> 24 & 255)) << 24 | SA((a >> 16 & 255) + (B >> 16 & 255) - (l >> 16 & 255)) << 16 | SA((a >> 8 & 255) + (B >> 8 & 255) - (l >> 8 & 255)) << 8 | SA((255 & a) + (255 & B) - (255 & l))) >>> 0;
    }, H.Predictor13 = function(a, l, f) {
      var B = l[f - 1];
      return (QA((a = UA(a, l[f + 0])) >> 24 & 255, B >> 24 & 255) << 24 | QA(a >> 16 & 255, B >> 16 & 255) << 16 | QA(a >> 8 & 255, B >> 8 & 255) << 8 | QA(a >> 0 & 255, B >> 0 & 255)) >>> 0;
    };
    var Ml = H.PredictorAdd0;
    H.PredictorAdd1 = PA, pA("Predictor2", "PredictorAdd2"), pA("Predictor3", "PredictorAdd3"), pA("Predictor4", "PredictorAdd4"), pA("Predictor5", "PredictorAdd5"), pA("Predictor6", "PredictorAdd6"), pA("Predictor7", "PredictorAdd7"), pA("Predictor8", "PredictorAdd8"), pA("Predictor9", "PredictorAdd9"), pA("Predictor10", "PredictorAdd10"), pA("Predictor11", "PredictorAdd11"), pA("Predictor12", "PredictorAdd12"), pA("Predictor13", "PredictorAdd13");
    var Sa = H.PredictorAdd2;
    ne("ColorIndexInverseTransform", "MapARGB", "32b", function(a) {
      return a >> 8 & 255;
    }, function(a) {
      return a;
    }), ne("VP8LColorIndexInverseTransformAlpha", "MapAlpha", "8b", function(a) {
      return a;
    }, function(a) {
      return a >> 8 & 255;
    });
    var Ds, er = H.ColorIndexInverseTransform, ki = H.MapARGB, Ns = H.VP8LColorIndexInverseTransformAlpha, ks = H.MapAlpha, Bn = H.VP8LPredictorsAdd = [];
    Bn.length = 16, (H.VP8LPredictors = []).length = 16, (H.VP8LPredictorsAdd_C = []).length = 16, (H.VP8LPredictors_C = []).length = 16;
    var Yn, Kt, Dt, wn, An, en, _i, tn, Ye, Ha, Nt, tr, Ti, _s, Da, $n, Zn, vn, Ai, Mi, ei, mn, Na, rr, nr, Te, Me, $e, ut = i(511), rn = i(2041), ka = i(225), Pi = i(767), Ts = 0, Pl = rn, Ms = ka, Xt = Pi, ir = ut, Ps = 0, Os = 1, Uu = 2, Ks = 3, Rs = 4, Ol = 5, Lu = 6, Kl = 7, Rl = 8, Gs = 9, Gl = 10, Xd = [2, 3, 7], zd = [3, 3, 11], Eu = [280, 256, 256, 256, 40], Jd = [0, 1, 1, 1, 0], Yd = [17, 18, 0, 1, 2, 3, 4, 5, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], $d = [24, 7, 23, 25, 40, 6, 39, 41, 22, 26, 38, 42, 56, 5, 55, 57, 21, 27, 54, 58, 37, 43, 72, 4, 71, 73, 20, 28, 53, 59, 70, 74, 36, 44, 88, 69, 75, 52, 60, 3, 87, 89, 19, 29, 86, 90, 35, 45, 68, 76, 85, 91, 51, 61, 104, 2, 103, 105, 18, 30, 102, 106, 34, 46, 84, 92, 67, 77, 101, 107, 50, 62, 120, 1, 119, 121, 83, 93, 17, 31, 100, 108, 66, 78, 118, 122, 33, 47, 117, 123, 49, 63, 99, 109, 82, 94, 0, 116, 124, 65, 79, 16, 32, 98, 110, 48, 115, 125, 81, 95, 64, 114, 126, 97, 111, 80, 113, 127, 96, 112], Zd = [2954, 2956, 2958, 2962, 2970, 2986, 3018, 3082, 3212, 3468, 3980, 5004], Ag = 8, Vl = [4, 5, 6, 7, 8, 9, 10, 10, 11, 12, 13, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 25, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 91, 93, 95, 96, 98, 100, 101, 102, 104, 106, 108, 110, 112, 114, 116, 118, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 143, 145, 148, 151, 154, 157], jl = [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 119, 122, 125, 128, 131, 134, 137, 140, 143, 146, 149, 152, 155, 158, 161, 164, 167, 170, 173, 177, 181, 185, 189, 193, 197, 201, 205, 209, 213, 217, 221, 225, 229, 234, 239, 245, 249, 254, 259, 264, 269, 274, 279, 284], _a = null, eg = [[173, 148, 140, 0], [176, 155, 140, 135, 0], [180, 157, 141, 134, 130, 0], [254, 254, 243, 230, 196, 177, 153, 140, 133, 130, 129, 0]], tg = [0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15], xu = [-0, 1, -1, 2, -2, 3, 4, 6, -3, 5, -4, -5, -6, 7, -7, 8, -8, -9], rg = [[[[128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128], [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128], [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]], [[253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128], [189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128], [106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128]], [[1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128], [181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128], [78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128]], [[1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128], [184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128], [77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128]], [[1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128], [170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128], [37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128]], [[1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128], [207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128], [102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128]], [[1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128], [177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128], [80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128]], [[1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128], [246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128], [255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]]], [[[198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62], [131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1], [68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128]], [[1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128], [184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128], [81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128]], [[1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128], [99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128], [23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128]], [[1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128], [109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128], [44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128]], [[1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128], [94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128], [22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128]], [[1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128], [124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128], [35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128]], [[1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128], [121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128], [45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128]], [[1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128], [203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128], [137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128]]], [[[253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128], [175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128], [73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128]], [[1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128], [239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128], [155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128]], [[1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128], [201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128], [69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128]], [[1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128], [223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128], [141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128]], [[1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128], [190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128], [149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]], [[1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128], [247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128], [240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128]], [[1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128], [213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128], [55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128]], [[128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128], [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128], [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]]], [[[202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255], [126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128], [61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128]], [[1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128], [166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128], [39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128]], [[1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128], [124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128], [24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128]], [[1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128], [149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128], [28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128]], [[1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128], [123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128], [20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128]], [[1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128], [168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128], [47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128]], [[1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128], [141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128], [42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128]], [[1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128], [244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128], [238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]]]], ng = [[[231, 120, 48, 89, 115, 113, 120, 152, 112], [152, 179, 64, 126, 170, 118, 46, 70, 95], [175, 69, 143, 80, 85, 82, 72, 155, 103], [56, 58, 10, 171, 218, 189, 17, 13, 152], [114, 26, 17, 163, 44, 195, 21, 10, 173], [121, 24, 80, 195, 26, 62, 44, 64, 85], [144, 71, 10, 38, 171, 213, 144, 34, 26], [170, 46, 55, 19, 136, 160, 33, 206, 71], [63, 20, 8, 114, 114, 208, 12, 9, 226], [81, 40, 11, 96, 182, 84, 29, 16, 36]], [[134, 183, 89, 137, 98, 101, 106, 165, 148], [72, 187, 100, 130, 157, 111, 32, 75, 80], [66, 102, 167, 99, 74, 62, 40, 234, 128], [41, 53, 9, 178, 241, 141, 26, 8, 107], [74, 43, 26, 146, 73, 166, 49, 23, 157], [65, 38, 105, 160, 51, 52, 31, 115, 128], [104, 79, 12, 27, 217, 255, 87, 17, 7], [87, 68, 71, 44, 114, 51, 15, 186, 23], [47, 41, 14, 110, 182, 183, 21, 17, 194], [66, 45, 25, 102, 197, 189, 23, 18, 22]], [[88, 88, 147, 150, 42, 46, 45, 196, 205], [43, 97, 183, 117, 85, 38, 35, 179, 61], [39, 53, 200, 87, 26, 21, 43, 232, 171], [56, 34, 51, 104, 114, 102, 29, 93, 77], [39, 28, 85, 171, 58, 165, 90, 98, 64], [34, 22, 116, 206, 23, 34, 43, 166, 73], [107, 54, 32, 26, 51, 1, 81, 43, 31], [68, 25, 106, 22, 64, 171, 36, 225, 114], [34, 19, 21, 102, 132, 188, 16, 76, 124], [62, 18, 78, 95, 85, 57, 50, 48, 51]], [[193, 101, 35, 159, 215, 111, 89, 46, 111], [60, 148, 31, 172, 219, 228, 21, 18, 111], [112, 113, 77, 85, 179, 255, 38, 120, 114], [40, 42, 1, 196, 245, 209, 10, 25, 109], [88, 43, 29, 140, 166, 213, 37, 43, 154], [61, 63, 30, 155, 67, 45, 68, 1, 209], [100, 80, 8, 43, 154, 1, 51, 26, 71], [142, 78, 78, 16, 255, 128, 34, 197, 171], [41, 40, 5, 102, 211, 183, 4, 1, 221], [51, 50, 17, 168, 209, 192, 23, 25, 82]], [[138, 31, 36, 171, 27, 166, 38, 44, 229], [67, 87, 58, 169, 82, 115, 26, 59, 179], [63, 59, 90, 180, 59, 166, 93, 73, 154], [40, 40, 21, 116, 143, 209, 34, 39, 175], [47, 15, 16, 183, 34, 223, 49, 45, 183], [46, 17, 33, 183, 6, 98, 15, 32, 183], [57, 46, 22, 24, 128, 1, 54, 17, 37], [65, 32, 73, 115, 28, 128, 23, 128, 205], [40, 3, 9, 115, 51, 192, 18, 6, 223], [87, 37, 9, 115, 59, 77, 64, 21, 47]], [[104, 55, 44, 218, 9, 54, 53, 130, 226], [64, 90, 70, 205, 40, 41, 23, 26, 57], [54, 57, 112, 184, 5, 41, 38, 166, 213], [30, 34, 26, 133, 152, 116, 10, 32, 134], [39, 19, 53, 221, 26, 114, 32, 73, 255], [31, 9, 65, 234, 2, 15, 1, 118, 73], [75, 32, 12, 51, 192, 255, 160, 43, 51], [88, 31, 35, 67, 102, 85, 55, 186, 85], [56, 21, 23, 111, 59, 205, 45, 37, 192], [55, 38, 70, 124, 73, 102, 1, 34, 98]], [[125, 98, 42, 88, 104, 85, 117, 175, 82], [95, 84, 53, 89, 128, 100, 113, 101, 45], [75, 79, 123, 47, 51, 128, 81, 171, 1], [57, 17, 5, 71, 102, 57, 53, 41, 49], [38, 33, 13, 121, 57, 73, 26, 1, 85], [41, 10, 67, 138, 77, 110, 90, 47, 114], [115, 21, 2, 10, 102, 255, 166, 23, 6], [101, 29, 16, 10, 85, 128, 101, 196, 26], [57, 18, 10, 102, 102, 213, 34, 20, 43], [117, 20, 15, 36, 163, 128, 68, 1, 26]], [[102, 61, 71, 37, 34, 53, 31, 243, 192], [69, 60, 71, 38, 73, 119, 28, 222, 37], [68, 45, 128, 34, 1, 47, 11, 245, 171], [62, 17, 19, 70, 146, 85, 55, 62, 70], [37, 43, 37, 154, 100, 163, 85, 160, 1], [63, 9, 92, 136, 28, 64, 32, 201, 85], [75, 15, 9, 9, 64, 255, 184, 119, 16], [86, 6, 28, 5, 64, 255, 25, 248, 1], [56, 8, 17, 132, 137, 255, 55, 116, 128], [58, 15, 20, 82, 135, 57, 26, 121, 40]], [[164, 50, 31, 137, 154, 133, 25, 35, 218], [51, 103, 44, 131, 131, 123, 31, 6, 158], [86, 40, 64, 135, 148, 224, 45, 183, 128], [22, 26, 17, 131, 240, 154, 14, 1, 209], [45, 16, 21, 91, 64, 222, 7, 1, 197], [56, 21, 39, 155, 60, 138, 23, 102, 213], [83, 12, 13, 54, 192, 255, 68, 47, 28], [85, 26, 85, 85, 128, 128, 32, 146, 171], [18, 11, 7, 63, 144, 171, 4, 4, 246], [35, 27, 10, 146, 174, 171, 12, 26, 128]], [[190, 80, 35, 99, 180, 80, 126, 54, 45], [85, 126, 47, 87, 176, 51, 41, 20, 32], [101, 75, 128, 139, 118, 146, 116, 128, 85], [56, 41, 15, 176, 236, 85, 37, 9, 62], [71, 30, 17, 119, 118, 255, 17, 18, 138], [101, 38, 60, 138, 55, 70, 43, 26, 142], [146, 36, 19, 30, 171, 255, 97, 27, 20], [138, 45, 61, 62, 219, 1, 81, 188, 64], [32, 41, 20, 117, 151, 142, 20, 21, 163], [112, 19, 12, 61, 195, 128, 48, 4, 24]]], ig = [[[[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255], [223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255], [249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255], [234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255], [239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255], [251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255], [250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]]], [[[217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255], [234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255]], [[255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255]], [[255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255], [249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255], [247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255], [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]]], [[[186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255], [234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255], [251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255]], [[255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255]], [[255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]]], [[[248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255], [248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255]], [[255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255], [246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255], [252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255]], [[255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255], [248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255], [253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255]], [[255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255], [245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255], [253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255], [252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255], [249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255], [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]]]], ag = [0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0], Cn = [], Cr = [], nn = [], sg = 1, Iu = 2, yn = [], ar = [];
    CA("UpsampleRgbLinePair", Qe, 3), CA("UpsampleBgrLinePair", je, 3), CA("UpsampleRgbaLinePair", mr, 4), CA("UpsampleBgraLinePair", ht, 4), CA("UpsampleArgbLinePair", bt, 4), CA("UpsampleRgba4444LinePair", at, 2), CA("UpsampleRgb565LinePair", qe, 2);
    var og = H.UpsampleRgbLinePair, lg = H.UpsampleBgrLinePair, Su = H.UpsampleRgbaLinePair, Hu = H.UpsampleBgraLinePair, Du = H.UpsampleArgbLinePair, Nu = H.UpsampleRgba4444LinePair, cg = H.UpsampleRgb565LinePair, Vs = 16, js = 1 << Vs - 1, Ta = -227, ql = 482, ug = 6, ku = 0, fg = i(256), hg = i(256), dg = i(256), gg = i(256), pg = i(ql - Ta), Bg = i(ql - Ta);
    Or("YuvToRgbRow", Qe, 3), Or("YuvToBgrRow", je, 3), Or("YuvToRgbaRow", mr, 4), Or("YuvToBgraRow", ht, 4), Or("YuvToArgbRow", bt, 4), Or("YuvToRgba4444Row", at, 2), Or("YuvToRgb565Row", qe, 2);
    var _u = [0, 4, 8, 12, 128, 132, 136, 140, 256, 260, 264, 268, 384, 388, 392, 396], qs = [0, 2, 8], wg = [8, 7, 6, 4, 4, 2, 2, 2, 1, 1, 1, 1], vg = 1;
    this.WebPDecodeRGBA = function(a, l, f, B, m) {
      var b = Os, E = new Ei(), I = new Oe();
      E.ba = I, I.S = b, I.width = [I.width], I.height = [I.height];
      var S = I.width, T = I.height, Z = new ze();
      if (Z == null || a == null) var fA = 2;
      else e(Z != null), fA = Ii(a, l, f, Z.width, Z.height, Z.Pd, Z.Qd, Z.format, null);
      if (fA != 0 ? S = 0 : (S != null && (S[0] = Z.width[0]), T != null && (T[0] = Z.height[0]), S = 1), S) {
        I.width = I.width[0], I.height = I.height[0], B != null && (B[0] = I.width), m != null && (m[0] = I.height);
        A: {
          if (B = new Ci(), (m = new ya()).data = a, m.w = l, m.ha = f, m.kd = 1, l = [0], e(m != null), ((a = Ii(m.data, m.w, m.ha, null, null, null, l, null, m)) == 0 || a == 7) && l[0] && (a = 4), (l = a) == 0) {
            if (e(E != null), B.data = m.data, B.w = m.w + m.offset, B.ha = m.ha - m.offset, B.put = Dr, B.ac = wt, B.bc = Nr, B.ma = E, m.xa) {
              if ((a = Ar()) == null) {
                E = 1;
                break A;
              }
              if (function(hA, aA) {
                var EA = [0], vA = [0], AA = [0];
                e: for (; ; ) {
                  if (hA == null) return 0;
                  if (aA == null) return hA.a = 2, 0;
                  if (hA.l = aA, hA.a = 0, k(hA.m, aA.data, aA.w, aA.ha), !ie(hA.m, EA, vA, AA)) {
                    hA.a = 3;
                    break e;
                  }
                  if (hA.xb = Iu, aA.width = EA[0], aA.height = vA[0], !Tr(EA[0], vA[0], 1, hA, null)) break e;
                  return 1;
                }
                return e(hA.a != 0), 0;
              }(a, B)) {
                if (B = (l = Si(B.width, B.height, E.Oa, E.ba)) == 0) {
                  e: {
                    B = a;
                    t: for (; ; ) {
                      if (B == null) {
                        B = 0;
                        break e;
                      }
                      if (e(B.s.yc != null), e(B.s.Ya != null), e(0 < B.s.Wb), e((f = B.l) != null), e((m = f.ma) != null), B.xb != 0) {
                        if (B.ca = m.ba, B.tb = m.tb, e(B.ca != null), !Ea(m.Oa, f, Ks)) {
                          B.a = 2;
                          break t;
                        }
                        if (!qn(B, f.width) || f.da) break t;
                        if ((f.da || se(B.ca.S)) && cA(), 11 > B.ca.S || (alert("todo:WebPInitConvertARGBToYUV"), B.ca.f.kb.F != null && cA()), B.Pb && 0 < B.s.ua && B.s.vb.X == null && !ee(B.s.vb, B.s.Wa.Xa)) {
                          B.a = 1;
                          break t;
                        }
                        B.xb = 0;
                      }
                      if (!Br(B, B.V, B.Ba, B.c, B.i, f.o, gi)) break t;
                      m.Dc = B.Ma, B = 1;
                      break e;
                    }
                    e(B.a != 0), B = 0;
                  }
                  B = !B;
                }
                B && (l = a.a);
              } else l = a.a;
            } else {
              if ((a = new vl()) == null) {
                E = 1;
                break A;
              }
              if (a.Fa = m.na, a.P = m.P, a.qc = m.Sa, Bs(a, B)) {
                if ((l = Si(B.width, B.height, E.Oa, E.ba)) == 0) {
                  if (a.Aa = 0, f = E.Oa, e((m = a) != null), f != null) {
                    if (0 < (S = 0 > (S = f.Md) ? 0 : 100 < S ? 255 : 255 * S / 100)) {
                      for (T = Z = 0; 4 > T; ++T) 12 > (fA = m.pb[T]).lc && (fA.ia = S * wg[0 > fA.lc ? 0 : fA.lc] >> 3), Z |= fA.ia;
                      Z && (alert("todo:VP8InitRandom"), m.ia = 1);
                    }
                    m.Ga = f.Id, 100 < m.Ga ? m.Ga = 100 : 0 > m.Ga && (m.Ga = 0);
                  }
                  ml(a, B) || (l = a.a);
                }
              } else l = a.a;
            }
            l == 0 && E.Oa != null && E.Oa.fd && (l = xa(E.ba));
          }
          E = l;
        }
        b = E != 0 ? null : 11 > b ? I.f.RGBA.eb : I.f.kb.y;
      } else b = null;
      return b;
    };
    var Tu = [3, 4, 3, 4, 4, 2, 2, 4, 4, 4, 2, 1, 1];
  };
  function h(H, G) {
    for (var tA = "", x = 0; x < 4; x++) tA += String.fromCharCode(H[G++]);
    return tA;
  }
  function p(H, G) {
    return (H[G + 0] << 0 | H[G + 1] << 8 | H[G + 2] << 16) >>> 0;
  }
  function d(H, G) {
    return (H[G + 0] << 0 | H[G + 1] << 8 | H[G + 2] << 16 | H[G + 3] << 24) >>> 0;
  }
  new c();
  var w = [0], g = [0], Q = [], y = new c(), N = t, v = function(H, G) {
    var tA = {}, x = 0, F = !1, _ = 0, P = 0;
    if (tA.frames = [], !/** @license
       * Copyright (c) 2017 Dominik Homberger
      Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
      The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
      THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
      https://webpjs.appspot.com
      WebPRiffParser dominikhlbg@gmail.com
      */
    function(M, R, J, eA) {
      for (var uA = 0; uA < eA; uA++) if (M[R + uA] != J.charCodeAt(uA)) return !0;
      return !1;
    }(H, G, "RIFF", 4)) {
      for (d(H, G += 4), G += 8; G < H.length; ) {
        var lA = h(H, G), oA = d(H, G += 4);
        G += 4;
        var iA = oA + (1 & oA);
        switch (lA) {
          case "VP8 ":
          case "VP8L":
            tA.frames[x] === void 0 && (tA.frames[x] = {}), (rA = tA.frames[x]).src_off = F ? P : G - 8, rA.src_size = _ + oA + 8, x++, F && (F = !1, _ = 0, P = 0);
            break;
          case "VP8X":
            (rA = tA.header = {}).feature_flags = H[G];
            var k = G + 4;
            rA.canvas_width = 1 + p(H, k), k += 3, rA.canvas_height = 1 + p(H, k), k += 3;
            break;
          case "ALPH":
            F = !0, _ = iA + 8, P = G - 8;
            break;
          case "ANIM":
            (rA = tA.header).bgcolor = d(H, G), k = G + 4, rA.loop_count = (OA = H)[(L = k) + 0] << 0 | OA[L + 1] << 8, k += 2;
            break;
          case "ANMF":
            var W, rA;
            (rA = tA.frames[x] = {}).offset_x = 2 * p(H, G), G += 3, rA.offset_y = 2 * p(H, G), G += 3, rA.width = 1 + p(H, G), G += 3, rA.height = 1 + p(H, G), G += 3, rA.duration = p(H, G), G += 3, W = H[G++], rA.dispose = 1 & W, rA.blend = W >> 1 & 1;
        }
        lA != "ANMF" && (G += iA);
      }
      var OA, L;
      return tA;
    }
  }(N, 0);
  v.response = N, v.rgbaoutput = !0, v.dataurl = !1;
  var U = v.header ? v.header : null, K = v.frames ? v.frames : null;
  if (U) {
    U.loop_counter = U.loop_count, w = [U.canvas_height], g = [U.canvas_width];
    for (var j = 0; j < K.length && K[j].blend != 0; j++) ;
  }
  var q = K[0], V = y.WebPDecodeRGBA(N, q.src_off, q.src_size, g, w);
  q.rgba = V, q.imgwidth = g[0], q.imgheight = w[0];
  for (var z = 0; z < g[0] * w[0] * 4; z++) Q[z] = V[z];
  return this.width = g, this.height = w, this.data = Q, this;
}
(function(t) {
  var e = function() {
    return typeof Oc == "function";
  }, A = function(w, g, Q, y) {
    var N = 4, v = s;
    switch (y) {
      case t.image_compression.FAST:
        N = 1, v = i;
        break;
      case t.image_compression.MEDIUM:
        N = 6, v = o;
        break;
      case t.image_compression.SLOW:
        N = 9, v = c;
    }
    w = r(w, g, Q, v);
    var U = Oc(w, { level: N });
    return t.__addimage__.arrayBufferToBinaryString(U);
  }, r = function(w, g, Q, y) {
    for (var N, v, U, K = w.length / g, j = new Uint8Array(w.length + K), q = p(), V = 0; V < K; V += 1) {
      if (U = V * g, N = w.subarray(U, U + g), y) j.set(y(N, Q, v), U + V);
      else {
        for (var z, H = q.length, G = []; z < H; z += 1) G[z] = q[z](N, Q, v);
        var tA = d(G.concat());
        j.set(G[tA], U + V);
      }
      v = N;
    }
    return j;
  }, n = function(w) {
    var g = Array.apply([], w);
    return g.unshift(0), g;
  }, i = function(w, g) {
    var Q, y = [], N = w.length;
    y[0] = 1;
    for (var v = 0; v < N; v += 1) Q = w[v - g] || 0, y[v + 1] = w[v] - Q + 256 & 255;
    return y;
  }, s = function(w, g, Q) {
    var y, N = [], v = w.length;
    N[0] = 2;
    for (var U = 0; U < v; U += 1) y = Q && Q[U] || 0, N[U + 1] = w[U] - y + 256 & 255;
    return N;
  }, o = function(w, g, Q) {
    var y, N, v = [], U = w.length;
    v[0] = 3;
    for (var K = 0; K < U; K += 1) y = w[K - g] || 0, N = Q && Q[K] || 0, v[K + 1] = w[K] + 256 - (y + N >>> 1) & 255;
    return v;
  }, c = function(w, g, Q) {
    var y, N, v, U, K = [], j = w.length;
    K[0] = 4;
    for (var q = 0; q < j; q += 1) y = w[q - g] || 0, N = Q && Q[q] || 0, v = Q && Q[q - g] || 0, U = h(y, N, v), K[q + 1] = w[q] - U + 256 & 255;
    return K;
  }, h = function(w, g, Q) {
    if (w === g && g === Q) return w;
    var y = Math.abs(g - Q), N = Math.abs(w - Q), v = Math.abs(w + g - Q - Q);
    return y <= N && y <= v ? w : N <= v ? g : Q;
  }, p = function() {
    return [n, i, s, o, c];
  }, d = function(w) {
    var g = w.map(function(Q) {
      return Q.reduce(function(y, N) {
        return y + Math.abs(N);
      }, 0);
    });
    return g.indexOf(Math.min.apply(null, g));
  };
  t.processPNG = function(w, g, Q, y) {
    var N, v, U, K, j, q, V, z, H, G, tA, x, F, _, P, lA = this.decode.FLATE_DECODE, oA = "";
    if (this.__addimage__.isArrayBuffer(w) && (w = new Uint8Array(w)), this.__addimage__.isArrayBufferView(w)) {
      if (w = (U = new fB(w)).imgData, v = U.bits, N = U.colorSpace, j = U.colors, [4, 6].indexOf(U.colorType) !== -1) {
        if (U.bits === 8) {
          H = (z = U.pixelBitlength == 32 ? new Uint32Array(U.decodePixels().buffer) : U.pixelBitlength == 16 ? new Uint16Array(U.decodePixels().buffer) : new Uint8Array(U.decodePixels().buffer)).length, tA = new Uint8Array(H * U.colors), G = new Uint8Array(H);
          var iA, k = U.pixelBitlength - U.bits;
          for (_ = 0, P = 0; _ < H; _++) {
            for (F = z[_], iA = 0; iA < k; ) tA[P++] = F >>> iA & 255, iA += U.bits;
            G[_] = F >>> iA & 255;
          }
        }
        if (U.bits === 16) {
          H = (z = new Uint32Array(U.decodePixels().buffer)).length, tA = new Uint8Array(H * (32 / U.pixelBitlength) * U.colors), G = new Uint8Array(H * (32 / U.pixelBitlength)), x = U.colors > 1, _ = 0, P = 0;
          for (var W = 0; _ < H; ) F = z[_++], tA[P++] = F >>> 0 & 255, x && (tA[P++] = F >>> 16 & 255, F = z[_++], tA[P++] = F >>> 0 & 255), G[W++] = F >>> 16 & 255;
          v = 8;
        }
        y !== t.image_compression.NONE && e() ? (w = A(tA, U.width * U.colors, U.colors, y), V = A(G, U.width, 1, y)) : (w = tA, V = G, lA = void 0);
      }
      if (U.colorType === 3 && (N = this.color_spaces.INDEXED, q = U.palette, U.transparency.indexed)) {
        var rA = U.transparency.indexed, OA = 0;
        for (_ = 0, H = rA.length; _ < H; ++_) OA += rA[_];
        if ((OA /= 255) === H - 1 && rA.indexOf(0) !== -1) K = [rA.indexOf(0)];
        else if (OA !== H) {
          for (z = U.decodePixels(), G = new Uint8Array(z.length), _ = 0, H = z.length; _ < H; _++) G[_] = rA[z[_]];
          V = A(G, U.width, 1);
        }
      }
      var L = function(M) {
        var R;
        switch (M) {
          case t.image_compression.FAST:
            R = 11;
            break;
          case t.image_compression.MEDIUM:
            R = 13;
            break;
          case t.image_compression.SLOW:
            R = 14;
            break;
          default:
            R = 12;
        }
        return R;
      }(y);
      return lA === this.decode.FLATE_DECODE && (oA = "/Predictor " + L + " "), oA += "/Colors " + j + " /BitsPerComponent " + v + " /Columns " + U.width, (this.__addimage__.isArrayBuffer(w) || this.__addimage__.isArrayBufferView(w)) && (w = this.__addimage__.arrayBufferToBinaryString(w)), (V && this.__addimage__.isArrayBuffer(V) || this.__addimage__.isArrayBufferView(V)) && (V = this.__addimage__.arrayBufferToBinaryString(V)), { alias: Q, data: w, index: g, filter: lA, decodeParameters: oA, transparency: K, palette: q, sMask: V, predictor: L, width: U.width, height: U.height, bitsPerComponent: v, colorSpace: N };
    }
  };
})(ae.API), function(t) {
  t.processGIF89A = function(e, A, r, n) {
    var i = new hB(e), s = i.width, o = i.height, c = [];
    i.decodeAndBlitFrameRGBA(0, c);
    var h = { data: c, width: s, height: o }, p = new fc(100).encode(h, 100);
    return t.processJPEG.call(this, p, A, r, n);
  }, t.processGIF87A = t.processGIF89A;
}(ae.API), Qr.prototype.parseHeader = function() {
  if (this.fileSize = this.datav.getUint32(this.pos, !0), this.pos += 4, this.reserved = this.datav.getUint32(this.pos, !0), this.pos += 4, this.offset = this.datav.getUint32(this.pos, !0), this.pos += 4, this.headerSize = this.datav.getUint32(this.pos, !0), this.pos += 4, this.width = this.datav.getUint32(this.pos, !0), this.pos += 4, this.height = this.datav.getInt32(this.pos, !0), this.pos += 4, this.planes = this.datav.getUint16(this.pos, !0), this.pos += 2, this.bitPP = this.datav.getUint16(this.pos, !0), this.pos += 2, this.compress = this.datav.getUint32(this.pos, !0), this.pos += 4, this.rawSize = this.datav.getUint32(this.pos, !0), this.pos += 4, this.hr = this.datav.getUint32(this.pos, !0), this.pos += 4, this.vr = this.datav.getUint32(this.pos, !0), this.pos += 4, this.colors = this.datav.getUint32(this.pos, !0), this.pos += 4, this.importantColors = this.datav.getUint32(this.pos, !0), this.pos += 4, this.bitPP === 16 && this.is_with_alpha && (this.bitPP = 15), this.bitPP < 15) {
    var t = this.colors === 0 ? 1 << this.bitPP : this.colors;
    this.palette = new Array(t);
    for (var e = 0; e < t; e++) {
      var A = this.datav.getUint8(this.pos++, !0), r = this.datav.getUint8(this.pos++, !0), n = this.datav.getUint8(this.pos++, !0), i = this.datav.getUint8(this.pos++, !0);
      this.palette[e] = { red: n, green: r, blue: A, quad: i };
    }
  }
  this.height < 0 && (this.height *= -1, this.bottom_up = !1);
}, Qr.prototype.parseBGR = function() {
  this.pos = this.offset;
  try {
    var t = "bit" + this.bitPP, e = this.width * this.height * 4;
    this.data = new Uint8Array(e), this[t]();
  } catch (A) {
    _e.log("bit decode error:" + A);
  }
}, Qr.prototype.bit1 = function() {
  var t, e = Math.ceil(this.width / 8), A = e % 4;
  for (t = this.height - 1; t >= 0; t--) {
    for (var r = this.bottom_up ? t : this.height - 1 - t, n = 0; n < e; n++) for (var i = this.datav.getUint8(this.pos++, !0), s = r * this.width * 4 + 8 * n * 4, o = 0; o < 8 && 8 * n + o < this.width; o++) {
      var c = this.palette[i >> 7 - o & 1];
      this.data[s + 4 * o] = c.blue, this.data[s + 4 * o + 1] = c.green, this.data[s + 4 * o + 2] = c.red, this.data[s + 4 * o + 3] = 255;
    }
    A !== 0 && (this.pos += 4 - A);
  }
}, Qr.prototype.bit4 = function() {
  for (var t = Math.ceil(this.width / 2), e = t % 4, A = this.height - 1; A >= 0; A--) {
    for (var r = this.bottom_up ? A : this.height - 1 - A, n = 0; n < t; n++) {
      var i = this.datav.getUint8(this.pos++, !0), s = r * this.width * 4 + 2 * n * 4, o = i >> 4, c = 15 & i, h = this.palette[o];
      if (this.data[s] = h.blue, this.data[s + 1] = h.green, this.data[s + 2] = h.red, this.data[s + 3] = 255, 2 * n + 1 >= this.width) break;
      h = this.palette[c], this.data[s + 4] = h.blue, this.data[s + 4 + 1] = h.green, this.data[s + 4 + 2] = h.red, this.data[s + 4 + 3] = 255;
    }
    e !== 0 && (this.pos += 4 - e);
  }
}, Qr.prototype.bit8 = function() {
  for (var t = this.width % 4, e = this.height - 1; e >= 0; e--) {
    for (var A = this.bottom_up ? e : this.height - 1 - e, r = 0; r < this.width; r++) {
      var n = this.datav.getUint8(this.pos++, !0), i = A * this.width * 4 + 4 * r;
      if (n < this.palette.length) {
        var s = this.palette[n];
        this.data[i] = s.red, this.data[i + 1] = s.green, this.data[i + 2] = s.blue, this.data[i + 3] = 255;
      } else this.data[i] = 255, this.data[i + 1] = 255, this.data[i + 2] = 255, this.data[i + 3] = 255;
    }
    t !== 0 && (this.pos += 4 - t);
  }
}, Qr.prototype.bit15 = function() {
  for (var t = this.width % 3, e = parseInt("11111", 2), A = this.height - 1; A >= 0; A--) {
    for (var r = this.bottom_up ? A : this.height - 1 - A, n = 0; n < this.width; n++) {
      var i = this.datav.getUint16(this.pos, !0);
      this.pos += 2;
      var s = (i & e) / e * 255 | 0, o = (i >> 5 & e) / e * 255 | 0, c = (i >> 10 & e) / e * 255 | 0, h = i >> 15 ? 255 : 0, p = r * this.width * 4 + 4 * n;
      this.data[p] = c, this.data[p + 1] = o, this.data[p + 2] = s, this.data[p + 3] = h;
    }
    this.pos += t;
  }
}, Qr.prototype.bit16 = function() {
  for (var t = this.width % 3, e = parseInt("11111", 2), A = parseInt("111111", 2), r = this.height - 1; r >= 0; r--) {
    for (var n = this.bottom_up ? r : this.height - 1 - r, i = 0; i < this.width; i++) {
      var s = this.datav.getUint16(this.pos, !0);
      this.pos += 2;
      var o = (s & e) / e * 255 | 0, c = (s >> 5 & A) / A * 255 | 0, h = (s >> 11) / e * 255 | 0, p = n * this.width * 4 + 4 * i;
      this.data[p] = h, this.data[p + 1] = c, this.data[p + 2] = o, this.data[p + 3] = 255;
    }
    this.pos += t;
  }
}, Qr.prototype.bit24 = function() {
  for (var t = this.height - 1; t >= 0; t--) {
    for (var e = this.bottom_up ? t : this.height - 1 - t, A = 0; A < this.width; A++) {
      var r = this.datav.getUint8(this.pos++, !0), n = this.datav.getUint8(this.pos++, !0), i = this.datav.getUint8(this.pos++, !0), s = e * this.width * 4 + 4 * A;
      this.data[s] = i, this.data[s + 1] = n, this.data[s + 2] = r, this.data[s + 3] = 255;
    }
    this.pos += this.width % 4;
  }
}, Qr.prototype.bit32 = function() {
  for (var t = this.height - 1; t >= 0; t--) for (var e = this.bottom_up ? t : this.height - 1 - t, A = 0; A < this.width; A++) {
    var r = this.datav.getUint8(this.pos++, !0), n = this.datav.getUint8(this.pos++, !0), i = this.datav.getUint8(this.pos++, !0), s = this.datav.getUint8(this.pos++, !0), o = e * this.width * 4 + 4 * A;
    this.data[o] = i, this.data[o + 1] = n, this.data[o + 2] = r, this.data[o + 3] = s;
  }
}, Qr.prototype.getData = function() {
  return this.data;
}, /**
 * @license
 * Copyright (c) 2018 Aras Abbasi
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  t.processBMP = function(e, A, r, n) {
    var i = new Qr(e, !1), s = i.width, o = i.height, c = { data: i.getData(), width: s, height: o }, h = new fc(100).encode(c, 100);
    return t.processJPEG.call(this, h, A, r, n);
  };
}(ae.API), mf.prototype.getData = function() {
  return this.data;
}, /**
 * @license
 * Copyright (c) 2019 Aras Abbasi
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  t.processWEBP = function(e, A, r, n) {
    var i = new mf(e), s = i.width, o = i.height, c = { data: i.getData(), width: s, height: o }, h = new fc(100).encode(c, 100);
    return t.processJPEG.call(this, h, A, r, n);
  };
}(ae.API), ae.API.processRGBA = function(t, e, A) {
  for (var r = t.data, n = r.length, i = new Uint8Array(n / 4 * 3), s = new Uint8Array(n / 4), o = 0, c = 0, h = 0; h < n; h += 4) {
    var p = r[h], d = r[h + 1], w = r[h + 2], g = r[h + 3];
    i[o++] = p, i[o++] = d, i[o++] = w, s[c++] = g;
  }
  var Q = this.__addimage__.arrayBufferToBinaryString(i);
  return { alpha: this.__addimage__.arrayBufferToBinaryString(s), data: Q, index: e, alias: A, colorSpace: "DeviceRGB", bitsPerComponent: 8, width: t.width, height: t.height };
}, ae.API.setLanguage = function(t) {
  return this.internal.languageSettings === void 0 && (this.internal.languageSettings = {}, this.internal.languageSettings.isSubscribed = !1), { af: "Afrikaans", sq: "Albanian", ar: "Arabic (Standard)", "ar-DZ": "Arabic (Algeria)", "ar-BH": "Arabic (Bahrain)", "ar-EG": "Arabic (Egypt)", "ar-IQ": "Arabic (Iraq)", "ar-JO": "Arabic (Jordan)", "ar-KW": "Arabic (Kuwait)", "ar-LB": "Arabic (Lebanon)", "ar-LY": "Arabic (Libya)", "ar-MA": "Arabic (Morocco)", "ar-OM": "Arabic (Oman)", "ar-QA": "Arabic (Qatar)", "ar-SA": "Arabic (Saudi Arabia)", "ar-SY": "Arabic (Syria)", "ar-TN": "Arabic (Tunisia)", "ar-AE": "Arabic (U.A.E.)", "ar-YE": "Arabic (Yemen)", an: "Aragonese", hy: "Armenian", as: "Assamese", ast: "Asturian", az: "Azerbaijani", eu: "Basque", be: "Belarusian", bn: "Bengali", bs: "Bosnian", br: "Breton", bg: "Bulgarian", my: "Burmese", ca: "Catalan", ch: "Chamorro", ce: "Chechen", zh: "Chinese", "zh-HK": "Chinese (Hong Kong)", "zh-CN": "Chinese (PRC)", "zh-SG": "Chinese (Singapore)", "zh-TW": "Chinese (Taiwan)", cv: "Chuvash", co: "Corsican", cr: "Cree", hr: "Croatian", cs: "Czech", da: "Danish", nl: "Dutch (Standard)", "nl-BE": "Dutch (Belgian)", en: "English", "en-AU": "English (Australia)", "en-BZ": "English (Belize)", "en-CA": "English (Canada)", "en-IE": "English (Ireland)", "en-JM": "English (Jamaica)", "en-NZ": "English (New Zealand)", "en-PH": "English (Philippines)", "en-ZA": "English (South Africa)", "en-TT": "English (Trinidad & Tobago)", "en-GB": "English (United Kingdom)", "en-US": "English (United States)", "en-ZW": "English (Zimbabwe)", eo: "Esperanto", et: "Estonian", fo: "Faeroese", fj: "Fijian", fi: "Finnish", fr: "French (Standard)", "fr-BE": "French (Belgium)", "fr-CA": "French (Canada)", "fr-FR": "French (France)", "fr-LU": "French (Luxembourg)", "fr-MC": "French (Monaco)", "fr-CH": "French (Switzerland)", fy: "Frisian", fur: "Friulian", gd: "Gaelic (Scots)", "gd-IE": "Gaelic (Irish)", gl: "Galacian", ka: "Georgian", de: "German (Standard)", "de-AT": "German (Austria)", "de-DE": "German (Germany)", "de-LI": "German (Liechtenstein)", "de-LU": "German (Luxembourg)", "de-CH": "German (Switzerland)", el: "Greek", gu: "Gujurati", ht: "Haitian", he: "Hebrew", hi: "Hindi", hu: "Hungarian", is: "Icelandic", id: "Indonesian", iu: "Inuktitut", ga: "Irish", it: "Italian (Standard)", "it-CH": "Italian (Switzerland)", ja: "Japanese", kn: "Kannada", ks: "Kashmiri", kk: "Kazakh", km: "Khmer", ky: "Kirghiz", tlh: "Klingon", ko: "Korean", "ko-KP": "Korean (North Korea)", "ko-KR": "Korean (South Korea)", la: "Latin", lv: "Latvian", lt: "Lithuanian", lb: "Luxembourgish", mk: "North Macedonia", ms: "Malay", ml: "Malayalam", mt: "Maltese", mi: "Maori", mr: "Marathi", mo: "Moldavian", nv: "Navajo", ng: "Ndonga", ne: "Nepali", no: "Norwegian", nb: "Norwegian (Bokmal)", nn: "Norwegian (Nynorsk)", oc: "Occitan", or: "Oriya", om: "Oromo", fa: "Persian", "fa-IR": "Persian/Iran", pl: "Polish", pt: "Portuguese", "pt-BR": "Portuguese (Brazil)", pa: "Punjabi", "pa-IN": "Punjabi (India)", "pa-PK": "Punjabi (Pakistan)", qu: "Quechua", rm: "Rhaeto-Romanic", ro: "Romanian", "ro-MO": "Romanian (Moldavia)", ru: "Russian", "ru-MO": "Russian (Moldavia)", sz: "Sami (Lappish)", sg: "Sango", sa: "Sanskrit", sc: "Sardinian", sd: "Sindhi", si: "Singhalese", sr: "Serbian", sk: "Slovak", sl: "Slovenian", so: "Somani", sb: "Sorbian", es: "Spanish", "es-AR": "Spanish (Argentina)", "es-BO": "Spanish (Bolivia)", "es-CL": "Spanish (Chile)", "es-CO": "Spanish (Colombia)", "es-CR": "Spanish (Costa Rica)", "es-DO": "Spanish (Dominican Republic)", "es-EC": "Spanish (Ecuador)", "es-SV": "Spanish (El Salvador)", "es-GT": "Spanish (Guatemala)", "es-HN": "Spanish (Honduras)", "es-MX": "Spanish (Mexico)", "es-NI": "Spanish (Nicaragua)", "es-PA": "Spanish (Panama)", "es-PY": "Spanish (Paraguay)", "es-PE": "Spanish (Peru)", "es-PR": "Spanish (Puerto Rico)", "es-ES": "Spanish (Spain)", "es-UY": "Spanish (Uruguay)", "es-VE": "Spanish (Venezuela)", sx: "Sutu", sw: "Swahili", sv: "Swedish", "sv-FI": "Swedish (Finland)", "sv-SV": "Swedish (Sweden)", ta: "Tamil", tt: "Tatar", te: "Teluga", th: "Thai", tig: "Tigre", ts: "Tsonga", tn: "Tswana", tr: "Turkish", tk: "Turkmen", uk: "Ukrainian", hsb: "Upper Sorbian", ur: "Urdu", ve: "Venda", vi: "Vietnamese", vo: "Volapuk", wa: "Walloon", cy: "Welsh", xh: "Xhosa", ji: "Yiddish", zu: "Zulu" }[t] !== void 0 && (this.internal.languageSettings.languageCode = t, this.internal.languageSettings.isSubscribed === !1 && (this.internal.events.subscribe("putCatalog", function() {
    this.internal.write("/Lang (" + this.internal.languageSettings.languageCode + ")");
  }), this.internal.languageSettings.isSubscribed = !0)), this;
}, ji = ae.API, oo = ji.getCharWidthsArray = function(t, e) {
  var A, r, n = (e = e || {}).font || this.internal.getFont(), i = e.fontSize || this.internal.getFontSize(), s = e.charSpace || this.internal.getCharSpace(), o = e.widths ? e.widths : n.metadata.Unicode.widths, c = o.fof ? o.fof : 1, h = e.kerning ? e.kerning : n.metadata.Unicode.kerning, p = h.fof ? h.fof : 1, d = e.doKerning !== !1, w = 0, g = t.length, Q = 0, y = o[0] || c, N = [];
  for (A = 0; A < g; A++) r = t.charCodeAt(A), typeof n.metadata.widthOfString == "function" ? N.push((n.metadata.widthOfGlyph(n.metadata.characterToGlyph(r)) + s * (1e3 / i) || 0) / 1e3) : (w = d && Se(h[r]) === "object" && !isNaN(parseInt(h[r][Q], 10)) ? h[r][Q] / p : 0, N.push((o[r] || y) / c + w)), Q = r;
  return N;
}, pf = ji.getStringUnitWidth = function(t, e) {
  var A = (e = e || {}).fontSize || this.internal.getFontSize(), r = e.font || this.internal.getFont(), n = e.charSpace || this.internal.getCharSpace();
  return ji.processArabic && (t = ji.processArabic(t)), typeof r.metadata.widthOfString == "function" ? r.metadata.widthOfString(t, A, n) / A : oo.apply(this, arguments).reduce(function(i, s) {
    return i + s;
  }, 0);
}, Bf = function(t, e, A, r) {
  for (var n = [], i = 0, s = t.length, o = 0; i !== s && o + e[i] < A; ) o += e[i], i++;
  n.push(t.slice(0, i));
  var c = i;
  for (o = 0; i !== s; ) o + e[i] > r && (n.push(t.slice(c, i)), o = 0, c = i), o += e[i], i++;
  return c !== i && n.push(t.slice(c, i)), n;
}, wf = function(t, e, A) {
  A || (A = {});
  var r, n, i, s, o, c, h, p = [], d = [p], w = A.textIndent || 0, g = 0, Q = 0, y = t.split(" "), N = oo.apply(this, [" ", A])[0];
  if (c = A.lineIndent === -1 ? y[0].length + 2 : A.lineIndent || 0) {
    var v = Array(c).join(" "), U = [];
    y.map(function(j) {
      (j = j.split(/\s*\n/)).length > 1 ? U = U.concat(j.map(function(q, V) {
        return (V && q.length ? `
` : "") + q;
      })) : U.push(j[0]);
    }), y = U, c = pf.apply(this, [v, A]);
  }
  for (i = 0, s = y.length; i < s; i++) {
    var K = 0;
    if (r = y[i], c && r[0] == `
` && (r = r.substr(1), K = 1), w + g + (Q = (n = oo.apply(this, [r, A])).reduce(function(j, q) {
      return j + q;
    }, 0)) > e || K) {
      if (Q > e) {
        for (o = Bf.apply(this, [r, n, e - (w + g), e]), p.push(o.shift()), p = [o.pop()]; o.length; ) d.push([o.shift()]);
        Q = n.slice(r.length - (p[0] ? p[0].length : 0)).reduce(function(j, q) {
          return j + q;
        }, 0);
      } else p = [r];
      d.push(p), w = Q + c, g = N;
    } else p.push(r), w += g + Q, g = N;
  }
  return h = c ? function(j, q) {
    return (q ? v : "") + j.join(" ");
  } : function(j) {
    return j.join(" ");
  }, d.map(h);
}, ji.splitTextToSize = function(t, e, A) {
  var r, n = (A = A || {}).fontSize || this.internal.getFontSize(), i = (function(p) {
    if (p.widths && p.kerning) return { widths: p.widths, kerning: p.kerning };
    var d = this.internal.getFont(p.fontName, p.fontStyle);
    return d.metadata.Unicode ? { widths: d.metadata.Unicode.widths || { 0: 1 }, kerning: d.metadata.Unicode.kerning || {} } : { font: d.metadata, fontSize: this.internal.getFontSize(), charSpace: this.internal.getCharSpace() };
  }).call(this, A);
  r = Array.isArray(t) ? t : String(t).split(/\r?\n/);
  var s = 1 * this.internal.scaleFactor * e / n;
  i.textIndent = A.textIndent ? 1 * A.textIndent * this.internal.scaleFactor / n : 0, i.lineIndent = A.lineIndent;
  var o, c, h = [];
  for (o = 0, c = r.length; o < c; o++) h = h.concat(wf.apply(this, [r[o], s, i]));
  return h;
}, function(t) {
  t.__fontmetrics__ = t.__fontmetrics__ || {};
  for (var e = "klmnopqrstuvwxyz", A = {}, r = {}, n = 0; n < e.length; n++) A[e[n]] = "0123456789abcdef"[n], r["0123456789abcdef"[n]] = e[n];
  var i = function(d) {
    return "0x" + parseInt(d, 10).toString(16);
  }, s = t.__fontmetrics__.compress = function(d) {
    var w, g, Q, y, N = ["{"];
    for (var v in d) {
      if (w = d[v], isNaN(parseInt(v, 10)) ? g = "'" + v + "'" : (v = parseInt(v, 10), g = (g = i(v).slice(2)).slice(0, -1) + r[g.slice(-1)]), typeof w == "number") w < 0 ? (Q = i(w).slice(3), y = "-") : (Q = i(w).slice(2), y = ""), Q = y + Q.slice(0, -1) + r[Q.slice(-1)];
      else {
        if (Se(w) !== "object") throw new Error("Don't know what to do with value type " + Se(w) + ".");
        Q = s(w);
      }
      N.push(g + Q);
    }
    return N.push("}"), N.join("");
  }, o = t.__fontmetrics__.uncompress = function(d) {
    if (typeof d != "string") throw new Error("Invalid argument passed to uncompress.");
    for (var w, g, Q, y, N = {}, v = 1, U = N, K = [], j = "", q = "", V = d.length - 1, z = 1; z < V; z += 1) (y = d[z]) == "'" ? w ? (Q = w.join(""), w = void 0) : w = [] : w ? w.push(y) : y == "{" ? (K.push([U, Q]), U = {}, Q = void 0) : y == "}" ? ((g = K.pop())[0][g[1]] = U, Q = void 0, U = g[0]) : y == "-" ? v = -1 : Q === void 0 ? A.hasOwnProperty(y) ? (j += A[y], Q = parseInt(j, 16) * v, v = 1, j = "") : j += y : A.hasOwnProperty(y) ? (q += A[y], U[Q] = parseInt(q, 16) * v, v = 1, Q = void 0, q = "") : q += y;
    return N;
  }, c = { codePages: ["WinAnsiEncoding"], WinAnsiEncoding: o("{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}") }, h = { Unicode: { Courier: c, "Courier-Bold": c, "Courier-BoldOblique": c, "Courier-Oblique": c, Helvetica: c, "Helvetica-Bold": c, "Helvetica-BoldOblique": c, "Helvetica-Oblique": c, "Times-Roman": c, "Times-Bold": c, "Times-BoldItalic": c, "Times-Italic": c } }, p = { Unicode: { "Courier-Oblique": o("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Times-BoldItalic": o("{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}"), "Helvetica-Bold": o("{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}"), Courier: o("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Courier-BoldOblique": o("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Times-Bold": o("{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}"), Symbol: o("{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}"), Helvetica: o("{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}"), "Helvetica-BoldOblique": o("{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}"), ZapfDingbats: o("{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}"), "Courier-Bold": o("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Times-Italic": o("{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}"), "Times-Roman": o("{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}"), "Helvetica-Oblique": o("{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}") } };
  t.events.push(["addFont", function(d) {
    var w = d.font, g = p.Unicode[w.postScriptName];
    g && (w.metadata.Unicode = {}, w.metadata.Unicode.widths = g.widths, w.metadata.Unicode.kerning = g.kerning);
    var Q = h.Unicode[w.postScriptName];
    Q && (w.metadata.Unicode.encoding = Q, w.encoding = Q.codePages[0]);
  }]);
}(ae.API), /**
 * @license
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  var e = function(A) {
    for (var r = A.length, n = new Uint8Array(r), i = 0; i < r; i++) n[i] = A.charCodeAt(i);
    return n;
  };
  t.API.events.push(["addFont", function(A) {
    var r = void 0, n = A.font, i = A.instance;
    if (!n.isStandardFont) {
      if (i === void 0) throw new Error("Font does not exist in vFS, import fonts or remove declaration doc.addFont('" + n.postScriptName + "').");
      if (typeof (r = i.existsFileInVFS(n.postScriptName) === !1 ? i.loadFile(n.postScriptName) : i.getFileFromVFS(n.postScriptName)) != "string") throw new Error("Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('" + n.postScriptName + "').");
      (function(s, o) {
        o = /^\x00\x01\x00\x00/.test(o) ? e(o) : e(es(o)), s.metadata = t.API.TTFFont.open(o), s.metadata.Unicode = s.metadata.Unicode || { encoding: {}, kerning: {}, widths: [] }, s.metadata.glyIdsUsed = [0];
      })(n, r);
    }
  }]);
}(ae), /** @license
 * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 * ====================================================================
 */
function(t) {
  function e() {
    return (le.canvg ? Promise.resolve(le.canvg) : import("./index.es-C5rYq0Vf.js")).catch(function(A) {
      return Promise.reject(new Error("Could not load canvg: " + A));
    }).then(function(A) {
      return A.default ? A.default : A;
    });
  }
  ae.API.addSvgAsImage = function(A, r, n, i, s, o, c, h) {
    if (isNaN(r) || isNaN(n)) throw _e.error("jsPDF.addSvgAsImage: Invalid coordinates", arguments), new Error("Invalid coordinates passed to jsPDF.addSvgAsImage");
    if (isNaN(i) || isNaN(s)) throw _e.error("jsPDF.addSvgAsImage: Invalid measurements", arguments), new Error("Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage");
    var p = document.createElement("canvas");
    p.width = i, p.height = s;
    var d = p.getContext("2d");
    d.fillStyle = "#fff", d.fillRect(0, 0, p.width, p.height);
    var w = { ignoreMouse: !0, ignoreAnimation: !0, ignoreDimensions: !0 }, g = this;
    return e().then(function(Q) {
      return Q.fromString(d, A, w);
    }, function() {
      return Promise.reject(new Error("Could not load canvg."));
    }).then(function(Q) {
      return Q.render(w);
    }).then(function() {
      g.addImage(p.toDataURL("image/jpeg", 1), r, n, i, s, c, h);
    });
  };
}(), ae.API.putTotalPages = function(t) {
  var e, A = 0;
  parseInt(this.internal.getFont().id.substr(1), 10) < 15 ? (e = new RegExp(t, "g"), A = this.internal.getNumberOfPages()) : (e = new RegExp(this.pdfEscape16(t, this.internal.getFont()), "g"), A = this.pdfEscape16(this.internal.getNumberOfPages() + "", this.internal.getFont()));
  for (var r = 1; r <= this.internal.getNumberOfPages(); r++) for (var n = 0; n < this.internal.pages[r].length; n++) this.internal.pages[r][n] = this.internal.pages[r][n].replace(e, A);
  return this;
}, ae.API.viewerPreferences = function(t, e) {
  var A;
  t = t || {}, e = e || !1;
  var r, n, i, s = { HideToolbar: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, HideMenubar: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, HideWindowUI: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, FitWindow: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, CenterWindow: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, DisplayDocTitle: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.4 }, NonFullScreenPageMode: { defaultValue: "UseNone", value: "UseNone", type: "name", explicitSet: !1, valueSet: ["UseNone", "UseOutlines", "UseThumbs", "UseOC"], pdfVersion: 1.3 }, Direction: { defaultValue: "L2R", value: "L2R", type: "name", explicitSet: !1, valueSet: ["L2R", "R2L"], pdfVersion: 1.3 }, ViewArea: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, ViewClip: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, PrintArea: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, PrintClip: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, PrintScaling: { defaultValue: "AppDefault", value: "AppDefault", type: "name", explicitSet: !1, valueSet: ["AppDefault", "None"], pdfVersion: 1.6 }, Duplex: { defaultValue: "", value: "none", type: "name", explicitSet: !1, valueSet: ["Simplex", "DuplexFlipShortEdge", "DuplexFlipLongEdge", "none"], pdfVersion: 1.7 }, PickTrayByPDFSize: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.7 }, PrintPageRange: { defaultValue: "", value: "", type: "array", explicitSet: !1, valueSet: null, pdfVersion: 1.7 }, NumCopies: { defaultValue: 1, value: 1, type: "integer", explicitSet: !1, valueSet: null, pdfVersion: 1.7 } }, o = Object.keys(s), c = [], h = 0, p = 0, d = 0;
  function w(Q, y) {
    var N, v = !1;
    for (N = 0; N < Q.length; N += 1) Q[N] === y && (v = !0);
    return v;
  }
  if (this.internal.viewerpreferences === void 0 && (this.internal.viewerpreferences = {}, this.internal.viewerpreferences.configuration = JSON.parse(JSON.stringify(s)), this.internal.viewerpreferences.isSubscribed = !1), A = this.internal.viewerpreferences.configuration, t === "reset" || e === !0) {
    var g = o.length;
    for (d = 0; d < g; d += 1) A[o[d]].value = A[o[d]].defaultValue, A[o[d]].explicitSet = !1;
  }
  if (Se(t) === "object") {
    for (n in t) if (i = t[n], w(o, n) && i !== void 0) {
      if (A[n].type === "boolean" && typeof i == "boolean") A[n].value = i;
      else if (A[n].type === "name" && w(A[n].valueSet, i)) A[n].value = i;
      else if (A[n].type === "integer" && Number.isInteger(i)) A[n].value = i;
      else if (A[n].type === "array") {
        for (h = 0; h < i.length; h += 1) if (r = !0, i[h].length === 1 && typeof i[h][0] == "number") c.push(String(i[h] - 1));
        else if (i[h].length > 1) {
          for (p = 0; p < i[h].length; p += 1) typeof i[h][p] != "number" && (r = !1);
          r === !0 && c.push([i[h][0] - 1, i[h][1] - 1].join(" "));
        }
        A[n].value = "[" + c.join(" ") + "]";
      } else A[n].value = A[n].defaultValue;
      A[n].explicitSet = !0;
    }
  }
  return this.internal.viewerpreferences.isSubscribed === !1 && (this.internal.events.subscribe("putCatalog", function() {
    var Q, y = [];
    for (Q in A) A[Q].explicitSet === !0 && (A[Q].type === "name" ? y.push("/" + Q + " /" + A[Q].value) : y.push("/" + Q + " " + A[Q].value));
    y.length !== 0 && this.internal.write(`/ViewerPreferences
<<
` + y.join(`
`) + `
>>`);
  }), this.internal.viewerpreferences.isSubscribed = !0), this.internal.viewerpreferences.configuration = A, this;
}, /** ====================================================================
 * @license
 * jsPDF XMP metadata plugin
 * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 * ====================================================================
 */
function(t) {
  var e = function() {
    var r = '<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description rdf:about="" xmlns:jspdf="' + this.internal.__metadata__.namespaceuri + '"><jspdf:metadata>', n = unescape(encodeURIComponent('<x:xmpmeta xmlns:x="adobe:ns:meta/">')), i = unescape(encodeURIComponent(r)), s = unescape(encodeURIComponent(this.internal.__metadata__.metadata)), o = unescape(encodeURIComponent("</jspdf:metadata></rdf:Description></rdf:RDF>")), c = unescape(encodeURIComponent("</x:xmpmeta>")), h = i.length + s.length + o.length + n.length + c.length;
    this.internal.__metadata__.metadata_object_number = this.internal.newObject(), this.internal.write("<< /Type /Metadata /Subtype /XML /Length " + h + " >>"), this.internal.write("stream"), this.internal.write(n + i + s + o + c), this.internal.write("endstream"), this.internal.write("endobj");
  }, A = function() {
    this.internal.__metadata__.metadata_object_number && this.internal.write("/Metadata " + this.internal.__metadata__.metadata_object_number + " 0 R");
  };
  t.addMetadata = function(r, n) {
    return this.internal.__metadata__ === void 0 && (this.internal.__metadata__ = { metadata: r, namespaceuri: n || "http://jspdf.default.namespaceuri/" }, this.internal.events.subscribe("putCatalog", A), this.internal.events.subscribe("postPutResources", e)), this;
  };
}(ae.API), function(t) {
  var e = t.API, A = e.pdfEscape16 = function(i, s) {
    for (var o, c = s.metadata.Unicode.widths, h = ["", "0", "00", "000", "0000"], p = [""], d = 0, w = i.length; d < w; ++d) {
      if (o = s.metadata.characterToGlyph(i.charCodeAt(d)), s.metadata.glyIdsUsed.push(o), s.metadata.toUnicode[o] = i.charCodeAt(d), c.indexOf(o) == -1 && (c.push(o), c.push([parseInt(s.metadata.widthOfGlyph(o), 10)])), o == "0") return p.join("");
      o = o.toString(16), p.push(h[4 - o.length], o);
    }
    return p.join("");
  }, r = function(i) {
    var s, o, c, h, p, d, w;
    for (p = `/CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo <<
  /Registry (Adobe)
  /Ordering (UCS)
  /Supplement 0
>> def
/CMapName /Adobe-Identity-UCS def
/CMapType 2 def
1 begincodespacerange
<0000><ffff>
endcodespacerange`, c = [], d = 0, w = (o = Object.keys(i).sort(function(g, Q) {
      return g - Q;
    })).length; d < w; d++) s = o[d], c.length >= 100 && (p += `
` + c.length + ` beginbfchar
` + c.join(`
`) + `
endbfchar`, c = []), i[s] !== void 0 && i[s] !== null && typeof i[s].toString == "function" && (h = ("0000" + i[s].toString(16)).slice(-4), s = ("0000" + (+s).toString(16)).slice(-4), c.push("<" + s + "><" + h + ">"));
    return c.length && (p += `
` + c.length + ` beginbfchar
` + c.join(`
`) + `
endbfchar
`), p += `endcmap
CMapName currentdict /CMap defineresource pop
end
end`;
  };
  e.events.push(["putFont", function(i) {
    (function(s) {
      var o = s.font, c = s.out, h = s.newObject, p = s.putStream;
      if (o.metadata instanceof t.API.TTFFont && o.encoding === "Identity-H") {
        for (var d = o.metadata.Unicode.widths, w = o.metadata.subset.encode(o.metadata.glyIdsUsed, 1), g = "", Q = 0; Q < w.length; Q++) g += String.fromCharCode(w[Q]);
        var y = h();
        p({ data: g, addLength1: !0, objectId: y }), c("endobj");
        var N = h();
        p({ data: r(o.metadata.toUnicode), addLength1: !0, objectId: N }), c("endobj");
        var v = h();
        c("<<"), c("/Type /FontDescriptor"), c("/FontName /" + Aa(o.fontName)), c("/FontFile2 " + y + " 0 R"), c("/FontBBox " + t.API.PDFObject.convert(o.metadata.bbox)), c("/Flags " + o.metadata.flags), c("/StemV " + o.metadata.stemV), c("/ItalicAngle " + o.metadata.italicAngle), c("/Ascent " + o.metadata.ascender), c("/Descent " + o.metadata.decender), c("/CapHeight " + o.metadata.capHeight), c(">>"), c("endobj");
        var U = h();
        c("<<"), c("/Type /Font"), c("/BaseFont /" + Aa(o.fontName)), c("/FontDescriptor " + v + " 0 R"), c("/W " + t.API.PDFObject.convert(d)), c("/CIDToGIDMap /Identity"), c("/DW 1000"), c("/Subtype /CIDFontType2"), c("/CIDSystemInfo"), c("<<"), c("/Supplement 0"), c("/Registry (Adobe)"), c("/Ordering (" + o.encoding + ")"), c(">>"), c(">>"), c("endobj"), o.objectNumber = h(), c("<<"), c("/Type /Font"), c("/Subtype /Type0"), c("/ToUnicode " + N + " 0 R"), c("/BaseFont /" + Aa(o.fontName)), c("/Encoding /" + o.encoding), c("/DescendantFonts [" + U + " 0 R]"), c(">>"), c("endobj"), o.isAlreadyPutted = !0;
      }
    })(i);
  }]), e.events.push(["putFont", function(i) {
    (function(s) {
      var o = s.font, c = s.out, h = s.newObject, p = s.putStream;
      if (o.metadata instanceof t.API.TTFFont && o.encoding === "WinAnsiEncoding") {
        for (var d = o.metadata.rawData, w = "", g = 0; g < d.length; g++) w += String.fromCharCode(d[g]);
        var Q = h();
        p({ data: w, addLength1: !0, objectId: Q }), c("endobj");
        var y = h();
        p({ data: r(o.metadata.toUnicode), addLength1: !0, objectId: y }), c("endobj");
        var N = h();
        c("<<"), c("/Descent " + o.metadata.decender), c("/CapHeight " + o.metadata.capHeight), c("/StemV " + o.metadata.stemV), c("/Type /FontDescriptor"), c("/FontFile2 " + Q + " 0 R"), c("/Flags 96"), c("/FontBBox " + t.API.PDFObject.convert(o.metadata.bbox)), c("/FontName /" + Aa(o.fontName)), c("/ItalicAngle " + o.metadata.italicAngle), c("/Ascent " + o.metadata.ascender), c(">>"), c("endobj"), o.objectNumber = h();
        for (var v = 0; v < o.metadata.hmtx.widths.length; v++) o.metadata.hmtx.widths[v] = parseInt(o.metadata.hmtx.widths[v] * (1e3 / o.metadata.head.unitsPerEm));
        c("<</Subtype/TrueType/Type/Font/ToUnicode " + y + " 0 R/BaseFont/" + Aa(o.fontName) + "/FontDescriptor " + N + " 0 R/Encoding/" + o.encoding + " /FirstChar 29 /LastChar 255 /Widths " + t.API.PDFObject.convert(o.metadata.hmtx.widths) + ">>"), c("endobj"), o.isAlreadyPutted = !0;
      }
    })(i);
  }]);
  var n = function(i) {
    var s, o = i.text || "", c = i.x, h = i.y, p = i.options || {}, d = i.mutex || {}, w = d.pdfEscape, g = d.activeFontKey, Q = d.fonts, y = g, N = "", v = 0, U = "", K = Q[y].encoding;
    if (Q[y].encoding !== "Identity-H") return { text: o, x: c, y: h, options: p, mutex: d };
    for (U = o, y = g, Array.isArray(o) && (U = o[0]), v = 0; v < U.length; v += 1) Q[y].metadata.hasOwnProperty("cmap") && (s = Q[y].metadata.cmap.unicode.codeMap[U[v].charCodeAt(0)]), s || U[v].charCodeAt(0) < 256 && Q[y].metadata.hasOwnProperty("Unicode") ? N += U[v] : N += "";
    var j = "";
    return parseInt(y.slice(1)) < 14 || K === "WinAnsiEncoding" ? j = w(N, y).split("").map(function(q) {
      return q.charCodeAt(0).toString(16);
    }).join("") : K === "Identity-H" && (j = A(N, Q[y])), d.isHex = !0, { text: j, x: c, y: h, options: p, mutex: d };
  };
  e.events.push(["postProcessText", function(i) {
    var s = i.text || "", o = [], c = { text: s, x: i.x, y: i.y, options: i.options, mutex: i.mutex };
    if (Array.isArray(s)) {
      var h = 0;
      for (h = 0; h < s.length; h += 1) Array.isArray(s[h]) && s[h].length === 3 ? o.push([n(Object.assign({}, c, { text: s[h][0] })).text, s[h][1], s[h][2]]) : o.push(n(Object.assign({}, c, { text: s[h] })).text);
      i.text = o;
    } else i.text = n(Object.assign({}, c, { text: s })).text;
  }]);
}(ae), /**
 * @license
 * jsPDF virtual FileSystem functionality
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  var e = function() {
    return this.internal.vFS === void 0 && (this.internal.vFS = {}), !0;
  };
  t.existsFileInVFS = function(A) {
    return e.call(this), this.internal.vFS[A] !== void 0;
  }, t.addFileToVFS = function(A, r) {
    return e.call(this), this.internal.vFS[A] = r, this;
  }, t.getFileFromVFS = function(A) {
    return e.call(this), this.internal.vFS[A] !== void 0 ? this.internal.vFS[A] : null;
  };
}(ae.API), /**
 * @license
 * Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)
 * MIT License
 */
function(t) {
  t.__bidiEngine__ = t.prototype.__bidiEngine__ = function(r) {
    var n, i, s, o, c, h, p, d = e, w = [[0, 3, 0, 1, 0, 0, 0], [0, 3, 0, 1, 2, 2, 0], [0, 3, 0, 17, 2, 0, 1], [0, 3, 5, 5, 4, 1, 0], [0, 3, 21, 21, 4, 0, 1], [0, 3, 5, 5, 4, 2, 0]], g = [[2, 0, 1, 1, 0, 1, 0], [2, 0, 1, 1, 0, 2, 0], [2, 0, 2, 1, 3, 2, 0], [2, 0, 2, 33, 3, 1, 1]], Q = { L: 0, R: 1, EN: 2, AN: 3, N: 4, B: 5, S: 6 }, y = { 0: 0, 5: 1, 6: 2, 7: 3, 32: 4, 251: 5, 254: 6, 255: 7 }, N = ["(", ")", "(", "<", ">", "<", "[", "]", "[", "{", "}", "{", "«", "»", "«", "‹", "›", "‹", "⁅", "⁆", "⁅", "⁽", "⁾", "⁽", "₍", "₎", "₍", "≤", "≥", "≤", "〈", "〉", "〈", "﹙", "﹚", "﹙", "﹛", "﹜", "﹛", "﹝", "﹞", "﹝", "﹤", "﹥", "﹤"], v = new RegExp(/^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/), U = !1, K = 0;
    this.__bidiEngine__ = {};
    var j = function(x) {
      var F = x.charCodeAt(), _ = F >> 8, P = y[_];
      return P !== void 0 ? d[256 * P + (255 & F)] : _ === 252 || _ === 253 ? "AL" : v.test(_) ? "L" : _ === 8 ? "R" : "N";
    }, q = function(x) {
      for (var F, _ = 0; _ < x.length; _++) {
        if ((F = j(x.charAt(_))) === "L") return !1;
        if (F === "R") return !0;
      }
      return !1;
    }, V = function(x, F, _, P) {
      var lA, oA, iA, k, W = F[P];
      switch (W) {
        case "L":
        case "R":
          U = !1;
          break;
        case "N":
        case "AN":
          break;
        case "EN":
          U && (W = "AN");
          break;
        case "AL":
          U = !0, W = "R";
          break;
        case "WS":
          W = "N";
          break;
        case "CS":
          P < 1 || P + 1 >= F.length || (lA = _[P - 1]) !== "EN" && lA !== "AN" || (oA = F[P + 1]) !== "EN" && oA !== "AN" ? W = "N" : U && (oA = "AN"), W = oA === lA ? oA : "N";
          break;
        case "ES":
          W = (lA = P > 0 ? _[P - 1] : "B") === "EN" && P + 1 < F.length && F[P + 1] === "EN" ? "EN" : "N";
          break;
        case "ET":
          if (P > 0 && _[P - 1] === "EN") {
            W = "EN";
            break;
          }
          if (U) {
            W = "N";
            break;
          }
          for (iA = P + 1, k = F.length; iA < k && F[iA] === "ET"; ) iA++;
          W = iA < k && F[iA] === "EN" ? "EN" : "N";
          break;
        case "NSM":
          if (s && !o) {
            for (k = F.length, iA = P + 1; iA < k && F[iA] === "NSM"; ) iA++;
            if (iA < k) {
              var rA = x[P], OA = rA >= 1425 && rA <= 2303 || rA === 64286;
              if (lA = F[iA], OA && (lA === "R" || lA === "AL")) {
                W = "R";
                break;
              }
            }
          }
          W = P < 1 || (lA = F[P - 1]) === "B" ? "N" : _[P - 1];
          break;
        case "B":
          U = !1, n = !0, W = K;
          break;
        case "S":
          i = !0, W = "N";
          break;
        case "LRE":
        case "RLE":
        case "LRO":
        case "RLO":
        case "PDF":
          U = !1;
          break;
        case "BN":
          W = "N";
      }
      return W;
    }, z = function(x, F, _) {
      var P = x.split("");
      return _ && H(P, _, { hiLevel: K }), P.reverse(), F && F.reverse(), P.join("");
    }, H = function(x, F, _) {
      var P, lA, oA, iA, k, W = -1, rA = x.length, OA = 0, L = [], M = K ? g : w, R = [];
      for (U = !1, n = !1, i = !1, lA = 0; lA < rA; lA++) R[lA] = j(x[lA]);
      for (oA = 0; oA < rA; oA++) {
        if (k = OA, L[oA] = V(x, R, L, oA), P = 240 & (OA = M[k][Q[L[oA]]]), OA &= 15, F[oA] = iA = M[OA][5], P > 0) if (P === 16) {
          for (lA = W; lA < oA; lA++) F[lA] = 1;
          W = -1;
        } else W = -1;
        if (M[OA][6]) W === -1 && (W = oA);
        else if (W > -1) {
          for (lA = W; lA < oA; lA++) F[lA] = iA;
          W = -1;
        }
        R[oA] === "B" && (F[oA] = 0), _.hiLevel |= iA;
      }
      i && function(J, eA, uA) {
        for (var dA = 0; dA < uA; dA++) if (J[dA] === "S") {
          eA[dA] = K;
          for (var gA = dA - 1; gA >= 0 && J[gA] === "WS"; gA--) eA[gA] = K;
        }
      }(R, F, rA);
    }, G = function(x, F, _, P, lA) {
      if (!(lA.hiLevel < x)) {
        if (x === 1 && K === 1 && !n) return F.reverse(), void (_ && _.reverse());
        for (var oA, iA, k, W, rA = F.length, OA = 0; OA < rA; ) {
          if (P[OA] >= x) {
            for (k = OA + 1; k < rA && P[k] >= x; ) k++;
            for (W = OA, iA = k - 1; W < iA; W++, iA--) oA = F[W], F[W] = F[iA], F[iA] = oA, _ && (oA = _[W], _[W] = _[iA], _[iA] = oA);
            OA = k;
          }
          OA++;
        }
      }
    }, tA = function(x, F, _) {
      var P = x.split(""), lA = { hiLevel: K };
      return _ || (_ = []), H(P, _, lA), function(oA, iA, k) {
        if (k.hiLevel !== 0 && p) for (var W, rA = 0; rA < oA.length; rA++) iA[rA] === 1 && (W = N.indexOf(oA[rA])) >= 0 && (oA[rA] = N[W + 1]);
      }(P, _, lA), G(2, P, F, _, lA), G(1, P, F, _, lA), P.join("");
    };
    return this.__bidiEngine__.doBidiReorder = function(x, F, _) {
      if (function(lA, oA) {
        if (oA) for (var iA = 0; iA < lA.length; iA++) oA[iA] = iA;
        o === void 0 && (o = q(lA)), h === void 0 && (h = q(lA));
      }(x, F), s || !c || h) if (s && c && o ^ h) K = o ? 1 : 0, x = z(x, F, _);
      else if (!s && c && h) K = o ? 1 : 0, x = tA(x, F, _), x = z(x, F);
      else if (!s || o || c || h) {
        if (s && !c && o ^ h) x = z(x, F), o ? (K = 0, x = tA(x, F, _)) : (K = 1, x = tA(x, F, _), x = z(x, F));
        else if (s && o && !c && h) K = 1, x = tA(x, F, _), x = z(x, F);
        else if (!s && !c && o ^ h) {
          var P = p;
          o ? (K = 1, x = tA(x, F, _), K = 0, p = !1, x = tA(x, F, _), p = P) : (K = 0, x = tA(x, F, _), x = z(x, F), K = 1, p = !1, x = tA(x, F, _), p = P, x = z(x, F));
        }
      } else K = 0, x = tA(x, F, _);
      else K = o ? 1 : 0, x = tA(x, F, _);
      return x;
    }, this.__bidiEngine__.setOptions = function(x) {
      x && (s = x.isInputVisual, c = x.isOutputVisual, o = x.isInputRtl, h = x.isOutputRtl, p = x.isSymmetricSwapping);
    }, this.__bidiEngine__.setOptions(r), this.__bidiEngine__;
  };
  var e = ["BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "S", "B", "S", "WS", "B", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "B", "B", "B", "S", "WS", "N", "N", "ET", "ET", "ET", "N", "N", "N", "N", "N", "ES", "CS", "ES", "CS", "CS", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "CS", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "BN", "BN", "BN", "BN", "BN", "BN", "B", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "CS", "N", "ET", "ET", "ET", "ET", "N", "N", "N", "N", "L", "N", "N", "BN", "N", "N", "ET", "ET", "EN", "EN", "N", "L", "N", "N", "N", "EN", "L", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "L", "L", "L", "L", "L", "L", "L", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "L", "N", "N", "N", "N", "N", "ET", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "R", "NSM", "R", "NSM", "NSM", "R", "NSM", "NSM", "R", "NSM", "N", "N", "N", "N", "N", "N", "N", "N", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "N", "N", "N", "N", "N", "R", "R", "R", "R", "R", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "AN", "AN", "AN", "AN", "AN", "AN", "N", "N", "AL", "ET", "ET", "AL", "CS", "AL", "N", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "N", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "ET", "AN", "AN", "AL", "AL", "AL", "NSM", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AN", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "NSM", "NSM", "N", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "N", "AL", "AL", "NSM", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "N", "N", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "R", "R", "N", "N", "N", "N", "R", "N", "N", "N", "N", "N", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "BN", "BN", "BN", "L", "R", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "WS", "B", "LRE", "RLE", "PDF", "LRO", "RLO", "CS", "ET", "ET", "ET", "ET", "ET", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "CS", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "WS", "BN", "BN", "BN", "BN", "BN", "N", "LRI", "RLI", "FSI", "PDI", "BN", "BN", "BN", "BN", "BN", "BN", "EN", "L", "N", "N", "EN", "EN", "EN", "EN", "EN", "EN", "ES", "ES", "N", "N", "N", "L", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "ES", "ES", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "R", "NSM", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "ES", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "N", "R", "R", "R", "R", "R", "N", "R", "N", "R", "R", "N", "R", "R", "N", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "CS", "N", "CS", "N", "N", "CS", "N", "N", "N", "N", "N", "N", "N", "N", "N", "ET", "N", "N", "ES", "ES", "N", "N", "N", "N", "N", "ET", "ET", "N", "N", "N", "N", "N", "AL", "AL", "AL", "AL", "AL", "N", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "N", "N", "BN", "N", "N", "N", "ET", "ET", "ET", "N", "N", "N", "N", "N", "ES", "CS", "ES", "CS", "CS", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "CS", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "L", "L", "L", "L", "L", "L", "N", "N", "L", "L", "L", "L", "L", "L", "N", "N", "L", "L", "L", "L", "L", "L", "N", "N", "L", "L", "L", "N", "N", "N", "ET", "ET", "N", "N", "N", "ET", "ET", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N"], A = new t.__bidiEngine__({ isInputVisual: !0 });
  t.API.events.push(["postProcessText", function(r) {
    var n = r.text;
    r.x, r.y;
    var i = r.options || {};
    r.mutex, i.lang;
    var s = [];
    if (i.isInputVisual = typeof i.isInputVisual != "boolean" || i.isInputVisual, A.setOptions(i), Object.prototype.toString.call(n) === "[object Array]") {
      var o = 0;
      for (s = [], o = 0; o < n.length; o += 1) Object.prototype.toString.call(n[o]) === "[object Array]" ? s.push([A.doBidiReorder(n[o][0]), n[o][1], n[o][2]]) : s.push([A.doBidiReorder(n[o])]);
      r.text = s;
    } else r.text = A.doBidiReorder(n);
    A.setOptions({ isInputVisual: !0 });
  }]);
}(ae), ae.API.TTFFont = function() {
  function t(e) {
    var A;
    if (this.rawData = e, A = this.contents = new Gn(e), this.contents.pos = 4, A.readString(4) === "ttcf") throw new Error("TTCF not supported.");
    A.pos = 0, this.parse(), this.subset = new EB(this), this.registerTTF();
  }
  return t.open = function(e) {
    return new t(e);
  }, t.prototype.parse = function() {
    return this.directory = new dB(this.contents), this.head = new pB(this), this.name = new CB(this), this.cmap = new Rh(this), this.toUnicode = {}, this.hhea = new BB(this), this.maxp = new yB(this), this.hmtx = new FB(this), this.post = new vB(this), this.os2 = new wB(this), this.loca = new LB(this), this.glyf = new QB(this), this.ascender = this.os2.exists && this.os2.ascender || this.hhea.ascender, this.decender = this.os2.exists && this.os2.decender || this.hhea.decender, this.lineGap = this.os2.exists && this.os2.lineGap || this.hhea.lineGap, this.bbox = [this.head.xMin, this.head.yMin, this.head.xMax, this.head.yMax];
  }, t.prototype.registerTTF = function() {
    var e, A, r, n, i;
    if (this.scaleFactor = 1e3 / this.head.unitsPerEm, this.bbox = (function() {
      var s, o, c, h;
      for (h = [], s = 0, o = (c = this.bbox).length; s < o; s++) e = c[s], h.push(Math.round(e * this.scaleFactor));
      return h;
    }).call(this), this.stemV = 0, this.post.exists ? (r = 255 & (n = this.post.italic_angle), (32768 & (A = n >> 16)) != 0 && (A = -(1 + (65535 ^ A))), this.italicAngle = +(A + "." + r)) : this.italicAngle = 0, this.ascender = Math.round(this.ascender * this.scaleFactor), this.decender = Math.round(this.decender * this.scaleFactor), this.lineGap = Math.round(this.lineGap * this.scaleFactor), this.capHeight = this.os2.exists && this.os2.capHeight || this.ascender, this.xHeight = this.os2.exists && this.os2.xHeight || 0, this.familyClass = (this.os2.exists && this.os2.familyClass || 0) >> 8, this.isSerif = (i = this.familyClass) === 1 || i === 2 || i === 3 || i === 4 || i === 5 || i === 7, this.isScript = this.familyClass === 10, this.flags = 0, this.post.isFixedPitch && (this.flags |= 1), this.isSerif && (this.flags |= 2), this.isScript && (this.flags |= 8), this.italicAngle !== 0 && (this.flags |= 64), this.flags |= 32, !this.cmap.unicode) throw new Error("No unicode cmap for font");
  }, t.prototype.characterToGlyph = function(e) {
    var A;
    return ((A = this.cmap.unicode) != null ? A.codeMap[e] : void 0) || 0;
  }, t.prototype.widthOfGlyph = function(e) {
    var A;
    return A = 1e3 / this.head.unitsPerEm, this.hmtx.forGlyph(e).advance * A;
  }, t.prototype.widthOfString = function(e, A, r) {
    var n, i, s, o;
    for (s = 0, i = 0, o = (e = "" + e).length; 0 <= o ? i < o : i > o; i = 0 <= o ? ++i : --i) n = e.charCodeAt(i), s += this.widthOfGlyph(this.characterToGlyph(n)) + r * (1e3 / A) || 0;
    return s * (A / 1e3);
  }, t.prototype.lineHeight = function(e, A) {
    var r;
    return A == null && (A = !1), r = A ? this.lineGap : 0, (this.ascender + r - this.decender) / 1e3 * e;
  }, t;
}();
var Sr, Gn = function() {
  function t(e) {
    this.data = e ?? [], this.pos = 0, this.length = this.data.length;
  }
  return t.prototype.readByte = function() {
    return this.data[this.pos++];
  }, t.prototype.writeByte = function(e) {
    return this.data[this.pos++] = e;
  }, t.prototype.readUInt32 = function() {
    return 16777216 * this.readByte() + (this.readByte() << 16) + (this.readByte() << 8) + this.readByte();
  }, t.prototype.writeUInt32 = function(e) {
    return this.writeByte(e >>> 24 & 255), this.writeByte(e >> 16 & 255), this.writeByte(e >> 8 & 255), this.writeByte(255 & e);
  }, t.prototype.readInt32 = function() {
    var e;
    return (e = this.readUInt32()) >= 2147483648 ? e - 4294967296 : e;
  }, t.prototype.writeInt32 = function(e) {
    return e < 0 && (e += 4294967296), this.writeUInt32(e);
  }, t.prototype.readUInt16 = function() {
    return this.readByte() << 8 | this.readByte();
  }, t.prototype.writeUInt16 = function(e) {
    return this.writeByte(e >> 8 & 255), this.writeByte(255 & e);
  }, t.prototype.readInt16 = function() {
    var e;
    return (e = this.readUInt16()) >= 32768 ? e - 65536 : e;
  }, t.prototype.writeInt16 = function(e) {
    return e < 0 && (e += 65536), this.writeUInt16(e);
  }, t.prototype.readString = function(e) {
    var A, r;
    for (r = [], A = 0; 0 <= e ? A < e : A > e; A = 0 <= e ? ++A : --A) r[A] = String.fromCharCode(this.readByte());
    return r.join("");
  }, t.prototype.writeString = function(e) {
    var A, r, n;
    for (n = [], A = 0, r = e.length; 0 <= r ? A < r : A > r; A = 0 <= r ? ++A : --A) n.push(this.writeByte(e.charCodeAt(A)));
    return n;
  }, t.prototype.readShort = function() {
    return this.readInt16();
  }, t.prototype.writeShort = function(e) {
    return this.writeInt16(e);
  }, t.prototype.readLongLong = function() {
    var e, A, r, n, i, s, o, c;
    return e = this.readByte(), A = this.readByte(), r = this.readByte(), n = this.readByte(), i = this.readByte(), s = this.readByte(), o = this.readByte(), c = this.readByte(), 128 & e ? -1 * (72057594037927940 * (255 ^ e) + 281474976710656 * (255 ^ A) + 1099511627776 * (255 ^ r) + 4294967296 * (255 ^ n) + 16777216 * (255 ^ i) + 65536 * (255 ^ s) + 256 * (255 ^ o) + (255 ^ c) + 1) : 72057594037927940 * e + 281474976710656 * A + 1099511627776 * r + 4294967296 * n + 16777216 * i + 65536 * s + 256 * o + c;
  }, t.prototype.writeLongLong = function(e) {
    var A, r;
    return A = Math.floor(e / 4294967296), r = 4294967295 & e, this.writeByte(A >> 24 & 255), this.writeByte(A >> 16 & 255), this.writeByte(A >> 8 & 255), this.writeByte(255 & A), this.writeByte(r >> 24 & 255), this.writeByte(r >> 16 & 255), this.writeByte(r >> 8 & 255), this.writeByte(255 & r);
  }, t.prototype.readInt = function() {
    return this.readInt32();
  }, t.prototype.writeInt = function(e) {
    return this.writeInt32(e);
  }, t.prototype.read = function(e) {
    var A, r;
    for (A = [], r = 0; 0 <= e ? r < e : r > e; r = 0 <= e ? ++r : --r) A.push(this.readByte());
    return A;
  }, t.prototype.write = function(e) {
    var A, r, n, i;
    for (i = [], r = 0, n = e.length; r < n; r++) A = e[r], i.push(this.writeByte(A));
    return i;
  }, t;
}(), dB = function() {
  var t;
  function e(A) {
    var r, n, i;
    for (this.scalarType = A.readInt(), this.tableCount = A.readShort(), this.searchRange = A.readShort(), this.entrySelector = A.readShort(), this.rangeShift = A.readShort(), this.tables = {}, n = 0, i = this.tableCount; 0 <= i ? n < i : n > i; n = 0 <= i ? ++n : --n) r = { tag: A.readString(4), checksum: A.readInt(), offset: A.readInt(), length: A.readInt() }, this.tables[r.tag] = r;
  }
  return e.prototype.encode = function(A) {
    var r, n, i, s, o, c, h, p, d, w, g, Q, y;
    for (y in g = Object.keys(A).length, c = Math.log(2), d = 16 * Math.floor(Math.log(g) / c), s = Math.floor(d / c), p = 16 * g - d, (n = new Gn()).writeInt(this.scalarType), n.writeShort(g), n.writeShort(d), n.writeShort(s), n.writeShort(p), i = 16 * g, h = n.pos + i, o = null, Q = [], A) for (w = A[y], n.writeString(y), n.writeInt(t(w)), n.writeInt(h), n.writeInt(w.length), Q = Q.concat(w), y === "head" && (o = h), h += w.length; h % 4; ) Q.push(0), h++;
    return n.write(Q), r = 2981146554 - t(n.data), n.pos = o + 8, n.writeUInt32(r), n.data;
  }, t = function(A) {
    var r, n, i, s;
    for (A = Gh.call(A); A.length % 4; ) A.push(0);
    for (i = new Gn(A), n = 0, r = 0, s = A.length; r < s; r = r += 4) n += i.readUInt32();
    return 4294967295 & n;
  }, e;
}(), gB = {}.hasOwnProperty, Xr = function(t, e) {
  for (var A in e) gB.call(e, A) && (t[A] = e[A]);
  function r() {
    this.constructor = t;
  }
  return r.prototype = e.prototype, t.prototype = new r(), t.__super__ = e.prototype, t;
};
Sr = function() {
  function t(e) {
    var A;
    this.file = e, A = this.file.directory.tables[this.tag], this.exists = !!A, A && (this.offset = A.offset, this.length = A.length, this.parse(this.file.contents));
  }
  return t.prototype.parse = function() {
  }, t.prototype.encode = function() {
  }, t.prototype.raw = function() {
    return this.exists ? (this.file.contents.pos = this.offset, this.file.contents.read(this.length)) : null;
  }, t;
}();
var pB = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return Xr(e, Sr), e.prototype.tag = "head", e.prototype.parse = function(A) {
    return A.pos = this.offset, this.version = A.readInt(), this.revision = A.readInt(), this.checkSumAdjustment = A.readInt(), this.magicNumber = A.readInt(), this.flags = A.readShort(), this.unitsPerEm = A.readShort(), this.created = A.readLongLong(), this.modified = A.readLongLong(), this.xMin = A.readShort(), this.yMin = A.readShort(), this.xMax = A.readShort(), this.yMax = A.readShort(), this.macStyle = A.readShort(), this.lowestRecPPEM = A.readShort(), this.fontDirectionHint = A.readShort(), this.indexToLocFormat = A.readShort(), this.glyphDataFormat = A.readShort();
  }, e.prototype.encode = function(A) {
    var r;
    return (r = new Gn()).writeInt(this.version), r.writeInt(this.revision), r.writeInt(this.checkSumAdjustment), r.writeInt(this.magicNumber), r.writeShort(this.flags), r.writeShort(this.unitsPerEm), r.writeLongLong(this.created), r.writeLongLong(this.modified), r.writeShort(this.xMin), r.writeShort(this.yMin), r.writeShort(this.xMax), r.writeShort(this.yMax), r.writeShort(this.macStyle), r.writeShort(this.lowestRecPPEM), r.writeShort(this.fontDirectionHint), r.writeShort(A), r.writeShort(this.glyphDataFormat), r.data;
  }, e;
}(), Cf = function() {
  function t(e, A) {
    var r, n, i, s, o, c, h, p, d, w, g, Q, y, N, v, U, K;
    switch (this.platformID = e.readUInt16(), this.encodingID = e.readShort(), this.offset = A + e.readInt(), d = e.pos, e.pos = this.offset, this.format = e.readUInt16(), this.length = e.readUInt16(), this.language = e.readUInt16(), this.isUnicode = this.platformID === 3 && this.encodingID === 1 && this.format === 4 || this.platformID === 0 && this.format === 4, this.codeMap = {}, this.format) {
      case 0:
        for (c = 0; c < 256; ++c) this.codeMap[c] = e.readByte();
        break;
      case 4:
        for (g = e.readUInt16(), w = g / 2, e.pos += 6, i = function() {
          var j, q;
          for (q = [], c = j = 0; 0 <= w ? j < w : j > w; c = 0 <= w ? ++j : --j) q.push(e.readUInt16());
          return q;
        }(), e.pos += 2, y = function() {
          var j, q;
          for (q = [], c = j = 0; 0 <= w ? j < w : j > w; c = 0 <= w ? ++j : --j) q.push(e.readUInt16());
          return q;
        }(), h = function() {
          var j, q;
          for (q = [], c = j = 0; 0 <= w ? j < w : j > w; c = 0 <= w ? ++j : --j) q.push(e.readUInt16());
          return q;
        }(), p = function() {
          var j, q;
          for (q = [], c = j = 0; 0 <= w ? j < w : j > w; c = 0 <= w ? ++j : --j) q.push(e.readUInt16());
          return q;
        }(), n = (this.length - e.pos + this.offset) / 2, o = function() {
          var j, q;
          for (q = [], c = j = 0; 0 <= n ? j < n : j > n; c = 0 <= n ? ++j : --j) q.push(e.readUInt16());
          return q;
        }(), c = v = 0, K = i.length; v < K; c = ++v) for (N = i[c], r = U = Q = y[c]; Q <= N ? U <= N : U >= N; r = Q <= N ? ++U : --U) p[c] === 0 ? s = r + h[c] : (s = o[p[c] / 2 + (r - Q) - (w - c)] || 0) !== 0 && (s += h[c]), this.codeMap[r] = 65535 & s;
    }
    e.pos = d;
  }
  return t.encode = function(e, A) {
    var r, n, i, s, o, c, h, p, d, w, g, Q, y, N, v, U, K, j, q, V, z, H, G, tA, x, F, _, P, lA, oA, iA, k, W, rA, OA, L, M, R, J, eA, uA, dA, gA, MA, NA, RA;
    switch (P = new Gn(), s = Object.keys(e).sort(function(GA, ee) {
      return GA - ee;
    }), A) {
      case "macroman":
        for (y = 0, N = function() {
          var GA = [];
          for (Q = 0; Q < 256; ++Q) GA.push(0);
          return GA;
        }(), U = { 0: 0 }, i = {}, lA = 0, W = s.length; lA < W; lA++) U[gA = e[n = s[lA]]] == null && (U[gA] = ++y), i[n] = { old: e[n], new: U[e[n]] }, N[n] = U[e[n]];
        return P.writeUInt16(1), P.writeUInt16(0), P.writeUInt32(12), P.writeUInt16(0), P.writeUInt16(262), P.writeUInt16(0), P.write(N), { charMap: i, subtable: P.data, maxGlyphID: y + 1 };
      case "unicode":
        for (F = [], d = [], K = 0, U = {}, r = {}, v = h = null, oA = 0, rA = s.length; oA < rA; oA++) U[q = e[n = s[oA]]] == null && (U[q] = ++K), r[n] = { old: q, new: U[q] }, o = U[q] - n, v != null && o === h || (v && d.push(v), F.push(n), h = o), v = n;
        for (v && d.push(v), d.push(65535), F.push(65535), tA = 2 * (G = F.length), H = 2 * Math.pow(Math.log(G) / Math.LN2, 2), w = Math.log(H / 2) / Math.LN2, z = 2 * G - H, c = [], V = [], g = [], Q = iA = 0, OA = F.length; iA < OA; Q = ++iA) {
          if (x = F[Q], p = d[Q], x === 65535) {
            c.push(0), V.push(0);
            break;
          }
          if (x - (_ = r[x].new) >= 32768) for (c.push(0), V.push(2 * (g.length + G - Q)), n = k = x; x <= p ? k <= p : k >= p; n = x <= p ? ++k : --k) g.push(r[n].new);
          else c.push(_ - x), V.push(0);
        }
        for (P.writeUInt16(3), P.writeUInt16(1), P.writeUInt32(12), P.writeUInt16(4), P.writeUInt16(16 + 8 * G + 2 * g.length), P.writeUInt16(0), P.writeUInt16(tA), P.writeUInt16(H), P.writeUInt16(w), P.writeUInt16(z), uA = 0, L = d.length; uA < L; uA++) n = d[uA], P.writeUInt16(n);
        for (P.writeUInt16(0), dA = 0, M = F.length; dA < M; dA++) n = F[dA], P.writeUInt16(n);
        for (MA = 0, R = c.length; MA < R; MA++) o = c[MA], P.writeUInt16(o);
        for (NA = 0, J = V.length; NA < J; NA++) j = V[NA], P.writeUInt16(j);
        for (RA = 0, eA = g.length; RA < eA; RA++) y = g[RA], P.writeUInt16(y);
        return { charMap: r, subtable: P.data, maxGlyphID: K + 1 };
    }
  }, t;
}(), Rh = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return Xr(e, Sr), e.prototype.tag = "cmap", e.prototype.parse = function(A) {
    var r, n, i;
    for (A.pos = this.offset, this.version = A.readUInt16(), i = A.readUInt16(), this.tables = [], this.unicode = null, n = 0; 0 <= i ? n < i : n > i; n = 0 <= i ? ++n : --n) r = new Cf(A, this.offset), this.tables.push(r), r.isUnicode && this.unicode == null && (this.unicode = r);
    return !0;
  }, e.encode = function(A, r) {
    var n, i;
    return r == null && (r = "macroman"), n = Cf.encode(A, r), (i = new Gn()).writeUInt16(0), i.writeUInt16(1), n.table = i.data.concat(n.subtable), n;
  }, e;
}(), BB = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return Xr(e, Sr), e.prototype.tag = "hhea", e.prototype.parse = function(A) {
    return A.pos = this.offset, this.version = A.readInt(), this.ascender = A.readShort(), this.decender = A.readShort(), this.lineGap = A.readShort(), this.advanceWidthMax = A.readShort(), this.minLeftSideBearing = A.readShort(), this.minRightSideBearing = A.readShort(), this.xMaxExtent = A.readShort(), this.caretSlopeRise = A.readShort(), this.caretSlopeRun = A.readShort(), this.caretOffset = A.readShort(), A.pos += 8, this.metricDataFormat = A.readShort(), this.numberOfMetrics = A.readUInt16();
  }, e;
}(), wB = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return Xr(e, Sr), e.prototype.tag = "OS/2", e.prototype.parse = function(A) {
    if (A.pos = this.offset, this.version = A.readUInt16(), this.averageCharWidth = A.readShort(), this.weightClass = A.readUInt16(), this.widthClass = A.readUInt16(), this.type = A.readShort(), this.ySubscriptXSize = A.readShort(), this.ySubscriptYSize = A.readShort(), this.ySubscriptXOffset = A.readShort(), this.ySubscriptYOffset = A.readShort(), this.ySuperscriptXSize = A.readShort(), this.ySuperscriptYSize = A.readShort(), this.ySuperscriptXOffset = A.readShort(), this.ySuperscriptYOffset = A.readShort(), this.yStrikeoutSize = A.readShort(), this.yStrikeoutPosition = A.readShort(), this.familyClass = A.readShort(), this.panose = function() {
      var r, n;
      for (n = [], r = 0; r < 10; ++r) n.push(A.readByte());
      return n;
    }(), this.charRange = function() {
      var r, n;
      for (n = [], r = 0; r < 4; ++r) n.push(A.readInt());
      return n;
    }(), this.vendorID = A.readString(4), this.selection = A.readShort(), this.firstCharIndex = A.readShort(), this.lastCharIndex = A.readShort(), this.version > 0 && (this.ascent = A.readShort(), this.descent = A.readShort(), this.lineGap = A.readShort(), this.winAscent = A.readShort(), this.winDescent = A.readShort(), this.codePageRange = function() {
      var r, n;
      for (n = [], r = 0; r < 2; r = ++r) n.push(A.readInt());
      return n;
    }(), this.version > 1)) return this.xHeight = A.readShort(), this.capHeight = A.readShort(), this.defaultChar = A.readShort(), this.breakChar = A.readShort(), this.maxContext = A.readShort();
  }, e;
}(), vB = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return Xr(e, Sr), e.prototype.tag = "post", e.prototype.parse = function(A) {
    var r, n, i;
    switch (A.pos = this.offset, this.format = A.readInt(), this.italicAngle = A.readInt(), this.underlinePosition = A.readShort(), this.underlineThickness = A.readShort(), this.isFixedPitch = A.readInt(), this.minMemType42 = A.readInt(), this.maxMemType42 = A.readInt(), this.minMemType1 = A.readInt(), this.maxMemType1 = A.readInt(), this.format) {
      case 65536:
        break;
      case 131072:
        var s;
        for (n = A.readUInt16(), this.glyphNameIndex = [], s = 0; 0 <= n ? s < n : s > n; s = 0 <= n ? ++s : --s) this.glyphNameIndex.push(A.readUInt16());
        for (this.names = [], i = []; A.pos < this.offset + this.length; ) r = A.readByte(), i.push(this.names.push(A.readString(r)));
        return i;
      case 151552:
        return n = A.readUInt16(), this.offsets = A.read(n);
      case 196608:
        break;
      case 262144:
        return this.map = (function() {
          var o, c, h;
          for (h = [], s = o = 0, c = this.file.maxp.numGlyphs; 0 <= c ? o < c : o > c; s = 0 <= c ? ++o : --o) h.push(A.readUInt32());
          return h;
        }).call(this);
    }
  }, e;
}(), mB = function(t, e) {
  this.raw = t, this.length = t.length, this.platformID = e.platformID, this.encodingID = e.encodingID, this.languageID = e.languageID;
}, CB = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return Xr(e, Sr), e.prototype.tag = "name", e.prototype.parse = function(A) {
    var r, n, i, s, o, c, h, p, d, w, g;
    for (A.pos = this.offset, A.readShort(), r = A.readShort(), c = A.readShort(), n = [], s = 0; 0 <= r ? s < r : s > r; s = 0 <= r ? ++s : --s) n.push({ platformID: A.readShort(), encodingID: A.readShort(), languageID: A.readShort(), nameID: A.readShort(), length: A.readShort(), offset: this.offset + c + A.readShort() });
    for (h = {}, s = d = 0, w = n.length; d < w; s = ++d) i = n[s], A.pos = i.offset, p = A.readString(i.length), o = new mB(p, i), h[g = i.nameID] == null && (h[g] = []), h[i.nameID].push(o);
    this.strings = h, this.copyright = h[0], this.fontFamily = h[1], this.fontSubfamily = h[2], this.uniqueSubfamily = h[3], this.fontName = h[4], this.version = h[5];
    try {
      this.postscriptName = h[6][0].raw.replace(/[\x00-\x19\x80-\xff]/g, "");
    } catch {
      this.postscriptName = h[4][0].raw.replace(/[\x00-\x19\x80-\xff]/g, "");
    }
    return this.trademark = h[7], this.manufacturer = h[8], this.designer = h[9], this.description = h[10], this.vendorUrl = h[11], this.designerUrl = h[12], this.license = h[13], this.licenseUrl = h[14], this.preferredFamily = h[15], this.preferredSubfamily = h[17], this.compatibleFull = h[18], this.sampleText = h[19];
  }, e;
}(), yB = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return Xr(e, Sr), e.prototype.tag = "maxp", e.prototype.parse = function(A) {
    return A.pos = this.offset, this.version = A.readInt(), this.numGlyphs = A.readUInt16(), this.maxPoints = A.readUInt16(), this.maxContours = A.readUInt16(), this.maxCompositePoints = A.readUInt16(), this.maxComponentContours = A.readUInt16(), this.maxZones = A.readUInt16(), this.maxTwilightPoints = A.readUInt16(), this.maxStorage = A.readUInt16(), this.maxFunctionDefs = A.readUInt16(), this.maxInstructionDefs = A.readUInt16(), this.maxStackElements = A.readUInt16(), this.maxSizeOfInstructions = A.readUInt16(), this.maxComponentElements = A.readUInt16(), this.maxComponentDepth = A.readUInt16();
  }, e;
}(), FB = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return Xr(e, Sr), e.prototype.tag = "hmtx", e.prototype.parse = function(A) {
    var r, n, i, s, o, c, h;
    for (A.pos = this.offset, this.metrics = [], r = 0, c = this.file.hhea.numberOfMetrics; 0 <= c ? r < c : r > c; r = 0 <= c ? ++r : --r) this.metrics.push({ advance: A.readUInt16(), lsb: A.readInt16() });
    for (i = this.file.maxp.numGlyphs - this.file.hhea.numberOfMetrics, this.leftSideBearings = function() {
      var p, d;
      for (d = [], r = p = 0; 0 <= i ? p < i : p > i; r = 0 <= i ? ++p : --p) d.push(A.readInt16());
      return d;
    }(), this.widths = (function() {
      var p, d, w, g;
      for (g = [], p = 0, d = (w = this.metrics).length; p < d; p++) s = w[p], g.push(s.advance);
      return g;
    }).call(this), n = this.widths[this.widths.length - 1], h = [], r = o = 0; 0 <= i ? o < i : o > i; r = 0 <= i ? ++o : --o) h.push(this.widths.push(n));
    return h;
  }, e.prototype.forGlyph = function(A) {
    return A in this.metrics ? this.metrics[A] : { advance: this.metrics[this.metrics.length - 1].advance, lsb: this.leftSideBearings[A - this.metrics.length] };
  }, e;
}(), Gh = [].slice, QB = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return Xr(e, Sr), e.prototype.tag = "glyf", e.prototype.parse = function() {
    return this.cache = {};
  }, e.prototype.glyphFor = function(A) {
    var r, n, i, s, o, c, h, p, d, w;
    return A in this.cache ? this.cache[A] : (s = this.file.loca, r = this.file.contents, n = s.indexOf(A), (i = s.lengthOf(A)) === 0 ? this.cache[A] = null : (r.pos = this.offset + n, o = (c = new Gn(r.read(i))).readShort(), p = c.readShort(), w = c.readShort(), h = c.readShort(), d = c.readShort(), this.cache[A] = o === -1 ? new UB(c, p, w, h, d) : new bB(c, o, p, w, h, d), this.cache[A]));
  }, e.prototype.encode = function(A, r, n) {
    var i, s, o, c, h;
    for (o = [], s = [], c = 0, h = r.length; c < h; c++) i = A[r[c]], s.push(o.length), i && (o = o.concat(i.encode(n)));
    return s.push(o.length), { table: o, offsets: s };
  }, e;
}(), bB = function() {
  function t(e, A, r, n, i, s) {
    this.raw = e, this.numberOfContours = A, this.xMin = r, this.yMin = n, this.xMax = i, this.yMax = s, this.compound = !1;
  }
  return t.prototype.encode = function() {
    return this.raw.data;
  }, t;
}(), UB = function() {
  function t(e, A, r, n, i) {
    var s, o;
    for (this.raw = e, this.xMin = A, this.yMin = r, this.xMax = n, this.yMax = i, this.compound = !0, this.glyphIDs = [], this.glyphOffsets = [], s = this.raw; o = s.readShort(), this.glyphOffsets.push(s.pos), this.glyphIDs.push(s.readUInt16()), 32 & o; ) s.pos += 1 & o ? 4 : 2, 128 & o ? s.pos += 8 : 64 & o ? s.pos += 4 : 8 & o && (s.pos += 2);
  }
  return t.prototype.encode = function() {
    var e, A, r;
    for (A = new Gn(Gh.call(this.raw.data)), e = 0, r = this.glyphIDs.length; e < r; ++e) A.pos = this.glyphOffsets[e];
    return A.data;
  }, t;
}(), LB = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return Xr(e, Sr), e.prototype.tag = "loca", e.prototype.parse = function(A) {
    var r, n;
    return A.pos = this.offset, r = this.file.head.indexToLocFormat, this.offsets = r === 0 ? (function() {
      var i, s;
      for (s = [], n = 0, i = this.length; n < i; n += 2) s.push(2 * A.readUInt16());
      return s;
    }).call(this) : (function() {
      var i, s;
      for (s = [], n = 0, i = this.length; n < i; n += 4) s.push(A.readUInt32());
      return s;
    }).call(this);
  }, e.prototype.indexOf = function(A) {
    return this.offsets[A];
  }, e.prototype.lengthOf = function(A) {
    return this.offsets[A + 1] - this.offsets[A];
  }, e.prototype.encode = function(A, r) {
    for (var n = new Uint32Array(this.offsets.length), i = 0, s = 0, o = 0; o < n.length; ++o) if (n[o] = i, s < r.length && r[s] == o) {
      ++s, n[o] = i;
      var c = this.offsets[o], h = this.offsets[o + 1] - c;
      h > 0 && (i += h);
    }
    for (var p = new Array(4 * n.length), d = 0; d < n.length; ++d) p[4 * d + 3] = 255 & n[d], p[4 * d + 2] = (65280 & n[d]) >> 8, p[4 * d + 1] = (16711680 & n[d]) >> 16, p[4 * d] = (4278190080 & n[d]) >> 24;
    return p;
  }, e;
}(), EB = function() {
  function t(e) {
    this.font = e, this.subset = {}, this.unicodes = {}, this.next = 33;
  }
  return t.prototype.generateCmap = function() {
    var e, A, r, n, i;
    for (A in n = this.font.cmap.tables[0].codeMap, e = {}, i = this.subset) r = i[A], e[A] = n[r];
    return e;
  }, t.prototype.glyphsFor = function(e) {
    var A, r, n, i, s, o, c;
    for (n = {}, s = 0, o = e.length; s < o; s++) n[i = e[s]] = this.font.glyf.glyphFor(i);
    for (i in A = [], n) (r = n[i]) != null && r.compound && A.push.apply(A, r.glyphIDs);
    if (A.length > 0) for (i in c = this.glyphsFor(A)) r = c[i], n[i] = r;
    return n;
  }, t.prototype.encode = function(e, A) {
    var r, n, i, s, o, c, h, p, d, w, g, Q, y, N, v;
    for (n in r = Rh.encode(this.generateCmap(), "unicode"), s = this.glyphsFor(e), g = { 0: 0 }, v = r.charMap) g[(c = v[n]).old] = c.new;
    for (Q in w = r.maxGlyphID, s) Q in g || (g[Q] = w++);
    return p = function(U) {
      var K, j;
      for (K in j = {}, U) j[U[K]] = K;
      return j;
    }(g), d = Object.keys(p).sort(function(U, K) {
      return U - K;
    }), y = function() {
      var U, K, j;
      for (j = [], U = 0, K = d.length; U < K; U++) o = d[U], j.push(p[o]);
      return j;
    }(), i = this.font.glyf.encode(s, y, g), h = this.font.loca.encode(i.offsets, y), N = { cmap: this.font.cmap.raw(), glyf: i.table, loca: h, hmtx: this.font.hmtx.raw(), hhea: this.font.hhea.raw(), maxp: this.font.maxp.raw(), post: this.font.post.raw(), name: this.font.name.raw(), head: this.font.head.encode(A) }, this.font.os2.exists && (N["OS/2"] = this.font.os2.raw()), this.font.directory.encode(N);
  }, t;
}();
ae.API.PDFObject = function() {
  var t;
  function e() {
  }
  return t = function(A, r) {
    return (Array(r + 1).join("0") + A).slice(-r);
  }, e.convert = function(A) {
    var r, n, i, s;
    if (Array.isArray(A)) return "[" + function() {
      var o, c, h;
      for (h = [], o = 0, c = A.length; o < c; o++) r = A[o], h.push(e.convert(r));
      return h;
    }().join(" ") + "]";
    if (typeof A == "string") return "/" + A;
    if (A != null && A.isString) return "(" + A + ")";
    if (A instanceof Date) return "(D:" + t(A.getUTCFullYear(), 4) + t(A.getUTCMonth(), 2) + t(A.getUTCDate(), 2) + t(A.getUTCHours(), 2) + t(A.getUTCMinutes(), 2) + t(A.getUTCSeconds(), 2) + "Z)";
    if ({}.toString.call(A) === "[object Object]") {
      for (n in i = ["<<"], A) s = A[n], i.push("/" + n + " " + e.convert(s));
      return i.push(">>"), i.join(`
`);
    }
    return "" + A;
  }, e;
}();
/*!
 * html2canvas 1.4.1 <https://html2canvas.hertzen.com>
 * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>
 * Released under MIT License
 */
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
var Wc = function(t, e) {
  return Wc = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(A, r) {
    A.__proto__ = r;
  } || function(A, r) {
    for (var n in r) Object.prototype.hasOwnProperty.call(r, n) && (A[n] = r[n]);
  }, Wc(t, e);
};
function Hr(t, e) {
  if (typeof e != "function" && e !== null)
    throw new TypeError("Class extends value " + String(e) + " is not a constructor or null");
  Wc(t, e);
  function A() {
    this.constructor = t;
  }
  t.prototype = e === null ? Object.create(e) : (A.prototype = e.prototype, new A());
}
var Xc = function() {
  return Xc = Object.assign || function(e) {
    for (var A, r = 1, n = arguments.length; r < n; r++) {
      A = arguments[r];
      for (var i in A) Object.prototype.hasOwnProperty.call(A, i) && (e[i] = A[i]);
    }
    return e;
  }, Xc.apply(this, arguments);
};
function _t(t, e, A, r) {
  function n(i) {
    return i instanceof A ? i : new A(function(s) {
      s(i);
    });
  }
  return new (A || (A = Promise))(function(i, s) {
    function o(p) {
      try {
        h(r.next(p));
      } catch (d) {
        s(d);
      }
    }
    function c(p) {
      try {
        h(r.throw(p));
      } catch (d) {
        s(d);
      }
    }
    function h(p) {
      p.done ? i(p.value) : n(p.value).then(o, c);
    }
    h((r = r.apply(t, [])).next());
  });
}
function It(t, e) {
  var A = { label: 0, sent: function() {
    if (i[0] & 1) throw i[1];
    return i[1];
  }, trys: [], ops: [] }, r, n, i, s;
  return s = { next: o(0), throw: o(1), return: o(2) }, typeof Symbol == "function" && (s[Symbol.iterator] = function() {
    return this;
  }), s;
  function o(h) {
    return function(p) {
      return c([h, p]);
    };
  }
  function c(h) {
    if (r) throw new TypeError("Generator is already executing.");
    for (; A; ) try {
      if (r = 1, n && (i = h[0] & 2 ? n.return : h[0] ? n.throw || ((i = n.return) && i.call(n), 0) : n.next) && !(i = i.call(n, h[1])).done) return i;
      switch (n = 0, i && (h = [h[0] & 2, i.value]), h[0]) {
        case 0:
        case 1:
          i = h;
          break;
        case 4:
          return A.label++, { value: h[1], done: !1 };
        case 5:
          A.label++, n = h[1], h = [0];
          continue;
        case 7:
          h = A.ops.pop(), A.trys.pop();
          continue;
        default:
          if (i = A.trys, !(i = i.length > 0 && i[i.length - 1]) && (h[0] === 6 || h[0] === 2)) {
            A = 0;
            continue;
          }
          if (h[0] === 3 && (!i || h[1] > i[0] && h[1] < i[3])) {
            A.label = h[1];
            break;
          }
          if (h[0] === 6 && A.label < i[1]) {
            A.label = i[1], i = h;
            break;
          }
          if (i && A.label < i[2]) {
            A.label = i[2], A.ops.push(h);
            break;
          }
          i[2] && A.ops.pop(), A.trys.pop();
          continue;
      }
      h = e.call(t, A);
    } catch (p) {
      h = [6, p], n = 0;
    } finally {
      r = i = 0;
    }
    if (h[0] & 5) throw h[1];
    return { value: h[0] ? h[1] : void 0, done: !0 };
  }
}
function lo(t, e, A) {
  if (arguments.length === 2) for (var r = 0, n = e.length, i; r < n; r++)
    (i || !(r in e)) && (i || (i = Array.prototype.slice.call(e, 0, r)), i[r] = e[r]);
  return t.concat(i || e);
}
var hn = (
  /** @class */
  function() {
    function t(e, A, r, n) {
      this.left = e, this.top = A, this.width = r, this.height = n;
    }
    return t.prototype.add = function(e, A, r, n) {
      return new t(this.left + e, this.top + A, this.width + r, this.height + n);
    }, t.fromClientRect = function(e, A) {
      return new t(A.left + e.windowBounds.left, A.top + e.windowBounds.top, A.width, A.height);
    }, t.fromDOMRectList = function(e, A) {
      var r = Array.from(A).find(function(n) {
        return n.width !== 0;
      });
      return r ? new t(r.left + e.windowBounds.left, r.top + e.windowBounds.top, r.width, r.height) : t.EMPTY;
    }, t.EMPTY = new t(0, 0, 0, 0), t;
  }()
), nl = function(t, e) {
  return hn.fromClientRect(t, e.getBoundingClientRect());
}, xB = function(t) {
  var e = t.body, A = t.documentElement;
  if (!e || !A)
    throw new Error("Unable to get document size");
  var r = Math.max(Math.max(e.scrollWidth, A.scrollWidth), Math.max(e.offsetWidth, A.offsetWidth), Math.max(e.clientWidth, A.clientWidth)), n = Math.max(Math.max(e.scrollHeight, A.scrollHeight), Math.max(e.offsetHeight, A.offsetHeight), Math.max(e.clientHeight, A.clientHeight));
  return new hn(0, 0, r, n);
}, il = function(t) {
  for (var e = [], A = 0, r = t.length; A < r; ) {
    var n = t.charCodeAt(A++);
    if (n >= 55296 && n <= 56319 && A < r) {
      var i = t.charCodeAt(A++);
      (i & 64512) === 56320 ? e.push(((n & 1023) << 10) + (i & 1023) + 65536) : (e.push(n), A--);
    } else
      e.push(n);
  }
  return e;
}, At = function() {
  for (var t = [], e = 0; e < arguments.length; e++)
    t[e] = arguments[e];
  if (String.fromCodePoint)
    return String.fromCodePoint.apply(String, t);
  var A = t.length;
  if (!A)
    return "";
  for (var r = [], n = -1, i = ""; ++n < A; ) {
    var s = t[n];
    s <= 65535 ? r.push(s) : (s -= 65536, r.push((s >> 10) + 55296, s % 1024 + 56320)), (n + 1 === A || r.length > 16384) && (i += String.fromCharCode.apply(String, r), r.length = 0);
  }
  return i;
}, yf = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", IB = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var co = 0; co < yf.length; co++)
  IB[yf.charCodeAt(co)] = co;
var Ff = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", Xa = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var uo = 0; uo < Ff.length; uo++)
  Xa[Ff.charCodeAt(uo)] = uo;
var SB = function(t) {
  var e = t.length * 0.75, A = t.length, r, n = 0, i, s, o, c;
  t[t.length - 1] === "=" && (e--, t[t.length - 2] === "=" && e--);
  var h = typeof ArrayBuffer < "u" && typeof Uint8Array < "u" && typeof Uint8Array.prototype.slice < "u" ? new ArrayBuffer(e) : new Array(e), p = Array.isArray(h) ? h : new Uint8Array(h);
  for (r = 0; r < A; r += 4)
    i = Xa[t.charCodeAt(r)], s = Xa[t.charCodeAt(r + 1)], o = Xa[t.charCodeAt(r + 2)], c = Xa[t.charCodeAt(r + 3)], p[n++] = i << 2 | s >> 4, p[n++] = (s & 15) << 4 | o >> 2, p[n++] = (o & 3) << 6 | c & 63;
  return h;
}, HB = function(t) {
  for (var e = t.length, A = [], r = 0; r < e; r += 2)
    A.push(t[r + 1] << 8 | t[r]);
  return A;
}, DB = function(t) {
  for (var e = t.length, A = [], r = 0; r < e; r += 4)
    A.push(t[r + 3] << 24 | t[r + 2] << 16 | t[r + 1] << 8 | t[r]);
  return A;
}, ui = 5, vu = 11, hc = 2, NB = vu - ui, Vh = 65536 >> ui, kB = 1 << ui, dc = kB - 1, _B = 1024 >> ui, TB = Vh + _B, MB = TB, PB = 32, OB = MB + PB, KB = 65536 >> vu, RB = 1 << NB, GB = RB - 1, Qf = function(t, e, A) {
  return t.slice ? t.slice(e, A) : new Uint16Array(Array.prototype.slice.call(t, e, A));
}, VB = function(t, e, A) {
  return t.slice ? t.slice(e, A) : new Uint32Array(Array.prototype.slice.call(t, e, A));
}, jB = function(t, e) {
  var A = SB(t), r = Array.isArray(A) ? DB(A) : new Uint32Array(A), n = Array.isArray(A) ? HB(A) : new Uint16Array(A), i = 24, s = Qf(n, i / 2, r[4] / 2), o = r[5] === 2 ? Qf(n, (i + r[4]) / 2) : VB(r, Math.ceil((i + r[4]) / 4));
  return new qB(r[0], r[1], r[2], r[3], s, o);
}, qB = (
  /** @class */
  function() {
    function t(e, A, r, n, i, s) {
      this.initialValue = e, this.errorValue = A, this.highStart = r, this.highValueIndex = n, this.index = i, this.data = s;
    }
    return t.prototype.get = function(e) {
      var A;
      if (e >= 0) {
        if (e < 55296 || e > 56319 && e <= 65535)
          return A = this.index[e >> ui], A = (A << hc) + (e & dc), this.data[A];
        if (e <= 65535)
          return A = this.index[Vh + (e - 55296 >> ui)], A = (A << hc) + (e & dc), this.data[A];
        if (e < this.highStart)
          return A = OB - KB + (e >> vu), A = this.index[A], A += e >> ui & GB, A = this.index[A], A = (A << hc) + (e & dc), this.data[A];
        if (e <= 1114111)
          return this.data[this.highValueIndex];
      }
      return this.errorValue;
    }, t;
  }()
), bf = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", WB = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var fo = 0; fo < bf.length; fo++)
  WB[bf.charCodeAt(fo)] = fo;
var XB = "KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==", Uf = 50, zB = 1, jh = 2, qh = 3, JB = 4, YB = 5, Lf = 7, Wh = 8, Ef = 9, _n = 10, zc = 11, xf = 12, Jc = 13, $B = 14, za = 15, Yc = 16, ho = 17, Va = 18, ZB = 19, If = 20, $c = 21, ja = 22, gc = 23, qi = 24, Yt = 25, Ja = 26, Ya = 27, Wi = 28, Aw = 29, si = 30, ew = 31, go = 32, po = 33, Zc = 34, Au = 35, eu = 36, os = 37, tu = 38, Mo = 39, Po = 40, pc = 41, Xh = 42, tw = 43, rw = [9001, 65288], zh = "!", Fe = "×", Bo = "÷", ru = jB(XB), ln = [si, eu], nu = [zB, jh, qh, YB], Jh = [_n, Wh], Sf = [Ya, Ja], nw = nu.concat(Jh), Hf = [tu, Mo, Po, Zc, Au], iw = [za, Jc], aw = function(t, e) {
  e === void 0 && (e = "strict");
  var A = [], r = [], n = [];
  return t.forEach(function(i, s) {
    var o = ru.get(i);
    if (o > Uf ? (n.push(!0), o -= Uf) : n.push(!1), ["normal", "auto", "loose"].indexOf(e) !== -1 && [8208, 8211, 12316, 12448].indexOf(i) !== -1)
      return r.push(s), A.push(Yc);
    if (o === JB || o === zc) {
      if (s === 0)
        return r.push(s), A.push(si);
      var c = A[s - 1];
      return nw.indexOf(c) === -1 ? (r.push(r[s - 1]), A.push(c)) : (r.push(s), A.push(si));
    }
    if (r.push(s), o === ew)
      return A.push(e === "strict" ? $c : os);
    if (o === Xh || o === Aw)
      return A.push(si);
    if (o === tw)
      return i >= 131072 && i <= 196605 || i >= 196608 && i <= 262141 ? A.push(os) : A.push(si);
    A.push(o);
  }), [r, A, n];
}, Bc = function(t, e, A, r) {
  var n = r[A];
  if (Array.isArray(t) ? t.indexOf(n) !== -1 : t === n)
    for (var i = A; i <= r.length; ) {
      i++;
      var s = r[i];
      if (s === e)
        return !0;
      if (s !== _n)
        break;
    }
  if (n === _n)
    for (var i = A; i > 0; ) {
      i--;
      var o = r[i];
      if (Array.isArray(t) ? t.indexOf(o) !== -1 : t === o)
        for (var c = A; c <= r.length; ) {
          c++;
          var s = r[c];
          if (s === e)
            return !0;
          if (s !== _n)
            break;
        }
      if (o !== _n)
        break;
    }
  return !1;
}, Df = function(t, e) {
  for (var A = t; A >= 0; ) {
    var r = e[A];
    if (r === _n)
      A--;
    else
      return r;
  }
  return 0;
}, sw = function(t, e, A, r, n) {
  if (A[r] === 0)
    return Fe;
  var i = r - 1;
  if (Array.isArray(n) && n[i] === !0)
    return Fe;
  var s = i - 1, o = i + 1, c = e[i], h = s >= 0 ? e[s] : 0, p = e[o];
  if (c === jh && p === qh)
    return Fe;
  if (nu.indexOf(c) !== -1)
    return zh;
  if (nu.indexOf(p) !== -1 || Jh.indexOf(p) !== -1)
    return Fe;
  if (Df(i, e) === Wh)
    return Bo;
  if (ru.get(t[i]) === zc || (c === go || c === po) && ru.get(t[o]) === zc || c === Lf || p === Lf || c === Ef || [_n, Jc, za].indexOf(c) === -1 && p === Ef || [ho, Va, ZB, qi, Wi].indexOf(p) !== -1 || Df(i, e) === ja || Bc(gc, ja, i, e) || Bc([ho, Va], $c, i, e) || Bc(xf, xf, i, e))
    return Fe;
  if (c === _n)
    return Bo;
  if (c === gc || p === gc)
    return Fe;
  if (p === Yc || c === Yc)
    return Bo;
  if ([Jc, za, $c].indexOf(p) !== -1 || c === $B || h === eu && iw.indexOf(c) !== -1 || c === Wi && p === eu || p === If || ln.indexOf(p) !== -1 && c === Yt || ln.indexOf(c) !== -1 && p === Yt || c === Ya && [os, go, po].indexOf(p) !== -1 || [os, go, po].indexOf(c) !== -1 && p === Ja || ln.indexOf(c) !== -1 && Sf.indexOf(p) !== -1 || Sf.indexOf(c) !== -1 && ln.indexOf(p) !== -1 || // (PR | PO) × ( OP | HY )? NU
  [Ya, Ja].indexOf(c) !== -1 && (p === Yt || [ja, za].indexOf(p) !== -1 && e[o + 1] === Yt) || // ( OP | HY ) × NU
  [ja, za].indexOf(c) !== -1 && p === Yt || // NU ×	(NU | SY | IS)
  c === Yt && [Yt, Wi, qi].indexOf(p) !== -1)
    return Fe;
  if ([Yt, Wi, qi, ho, Va].indexOf(p) !== -1)
    for (var d = i; d >= 0; ) {
      var w = e[d];
      if (w === Yt)
        return Fe;
      if ([Wi, qi].indexOf(w) !== -1)
        d--;
      else
        break;
    }
  if ([Ya, Ja].indexOf(p) !== -1)
    for (var d = [ho, Va].indexOf(c) !== -1 ? s : i; d >= 0; ) {
      var w = e[d];
      if (w === Yt)
        return Fe;
      if ([Wi, qi].indexOf(w) !== -1)
        d--;
      else
        break;
    }
  if (tu === c && [tu, Mo, Zc, Au].indexOf(p) !== -1 || [Mo, Zc].indexOf(c) !== -1 && [Mo, Po].indexOf(p) !== -1 || [Po, Au].indexOf(c) !== -1 && p === Po || Hf.indexOf(c) !== -1 && [If, Ja].indexOf(p) !== -1 || Hf.indexOf(p) !== -1 && c === Ya || ln.indexOf(c) !== -1 && ln.indexOf(p) !== -1 || c === qi && ln.indexOf(p) !== -1 || ln.concat(Yt).indexOf(c) !== -1 && p === ja && rw.indexOf(t[o]) === -1 || ln.concat(Yt).indexOf(p) !== -1 && c === Va)
    return Fe;
  if (c === pc && p === pc) {
    for (var g = A[i], Q = 1; g > 0 && (g--, e[g] === pc); )
      Q++;
    if (Q % 2 !== 0)
      return Fe;
  }
  return c === go && p === po ? Fe : Bo;
}, ow = function(t, e) {
  e || (e = { lineBreak: "normal", wordBreak: "normal" });
  var A = aw(t, e.lineBreak), r = A[0], n = A[1], i = A[2];
  (e.wordBreak === "break-all" || e.wordBreak === "break-word") && (n = n.map(function(o) {
    return [Yt, si, Xh].indexOf(o) !== -1 ? os : o;
  }));
  var s = e.wordBreak === "keep-all" ? i.map(function(o, c) {
    return o && t[c] >= 19968 && t[c] <= 40959;
  }) : void 0;
  return [r, n, s];
}, lw = (
  /** @class */
  function() {
    function t(e, A, r, n) {
      this.codePoints = e, this.required = A === zh, this.start = r, this.end = n;
    }
    return t.prototype.slice = function() {
      return At.apply(void 0, this.codePoints.slice(this.start, this.end));
    }, t;
  }()
), cw = function(t, e) {
  var A = il(t), r = ow(A, e), n = r[0], i = r[1], s = r[2], o = A.length, c = 0, h = 0;
  return {
    next: function() {
      if (h >= o)
        return { done: !0, value: null };
      for (var p = Fe; h < o && (p = sw(A, i, n, ++h, s)) === Fe; )
        ;
      if (p !== Fe || h === o) {
        var d = new lw(A, p, c, h);
        return c = h, { value: d, done: !1 };
      }
      return { done: !0, value: null };
    }
  };
}, uw = 1, fw = 2, us = 4, Nf = 8, jo = 10, kf = 47, ts = 92, hw = 9, dw = 32, wo = 34, qa = 61, gw = 35, pw = 36, Bw = 37, vo = 39, mo = 40, Wa = 41, ww = 95, Vt = 45, vw = 33, mw = 60, Cw = 62, yw = 64, Fw = 91, Qw = 93, bw = 61, Uw = 123, Co = 63, Lw = 125, _f = 124, Ew = 126, xw = 128, Tf = 65533, wc = 42, oi = 43, Iw = 44, Sw = 58, Hw = 59, ls = 46, Dw = 0, Nw = 8, kw = 11, _w = 14, Tw = 31, Mw = 127, Rr = -1, Yh = 48, $h = 97, Zh = 101, Pw = 102, Ow = 117, Kw = 122, Ad = 65, ed = 69, td = 70, Rw = 85, Gw = 90, St = function(t) {
  return t >= Yh && t <= 57;
}, Vw = function(t) {
  return t >= 55296 && t <= 57343;
}, Xi = function(t) {
  return St(t) || t >= Ad && t <= td || t >= $h && t <= Pw;
}, jw = function(t) {
  return t >= $h && t <= Kw;
}, qw = function(t) {
  return t >= Ad && t <= Gw;
}, Ww = function(t) {
  return jw(t) || qw(t);
}, Xw = function(t) {
  return t >= xw;
}, yo = function(t) {
  return t === jo || t === hw || t === dw;
}, qo = function(t) {
  return Ww(t) || Xw(t) || t === ww;
}, Mf = function(t) {
  return qo(t) || St(t) || t === Vt;
}, zw = function(t) {
  return t >= Dw && t <= Nw || t === kw || t >= _w && t <= Tw || t === Mw;
}, Dn = function(t, e) {
  return t !== ts ? !1 : e !== jo;
}, Fo = function(t, e, A) {
  return t === Vt ? qo(e) || Dn(e, A) : qo(t) ? !0 : !!(t === ts && Dn(t, e));
}, vc = function(t, e, A) {
  return t === oi || t === Vt ? St(e) ? !0 : e === ls && St(A) : St(t === ls ? e : t);
}, Jw = function(t) {
  var e = 0, A = 1;
  (t[e] === oi || t[e] === Vt) && (t[e] === Vt && (A = -1), e++);
  for (var r = []; St(t[e]); )
    r.push(t[e++]);
  var n = r.length ? parseInt(At.apply(void 0, r), 10) : 0;
  t[e] === ls && e++;
  for (var i = []; St(t[e]); )
    i.push(t[e++]);
  var s = i.length, o = s ? parseInt(At.apply(void 0, i), 10) : 0;
  (t[e] === ed || t[e] === Zh) && e++;
  var c = 1;
  (t[e] === oi || t[e] === Vt) && (t[e] === Vt && (c = -1), e++);
  for (var h = []; St(t[e]); )
    h.push(t[e++]);
  var p = h.length ? parseInt(At.apply(void 0, h), 10) : 0;
  return A * (n + o * Math.pow(10, -s)) * Math.pow(10, c * p);
}, Yw = {
  type: 2
  /* LEFT_PARENTHESIS_TOKEN */
}, $w = {
  type: 3
  /* RIGHT_PARENTHESIS_TOKEN */
}, Zw = {
  type: 4
  /* COMMA_TOKEN */
}, A5 = {
  type: 13
  /* SUFFIX_MATCH_TOKEN */
}, e5 = {
  type: 8
  /* PREFIX_MATCH_TOKEN */
}, t5 = {
  type: 21
  /* COLUMN_TOKEN */
}, r5 = {
  type: 9
  /* DASH_MATCH_TOKEN */
}, n5 = {
  type: 10
  /* INCLUDE_MATCH_TOKEN */
}, i5 = {
  type: 11
  /* LEFT_CURLY_BRACKET_TOKEN */
}, a5 = {
  type: 12
  /* RIGHT_CURLY_BRACKET_TOKEN */
}, s5 = {
  type: 14
  /* SUBSTRING_MATCH_TOKEN */
}, Qo = {
  type: 23
  /* BAD_URL_TOKEN */
}, o5 = {
  type: 1
  /* BAD_STRING_TOKEN */
}, l5 = {
  type: 25
  /* CDO_TOKEN */
}, c5 = {
  type: 24
  /* CDC_TOKEN */
}, u5 = {
  type: 26
  /* COLON_TOKEN */
}, f5 = {
  type: 27
  /* SEMICOLON_TOKEN */
}, h5 = {
  type: 28
  /* LEFT_SQUARE_BRACKET_TOKEN */
}, d5 = {
  type: 29
  /* RIGHT_SQUARE_BRACKET_TOKEN */
}, g5 = {
  type: 31
  /* WHITESPACE_TOKEN */
}, iu = {
  type: 32
  /* EOF_TOKEN */
}, rd = (
  /** @class */
  function() {
    function t() {
      this._value = [];
    }
    return t.prototype.write = function(e) {
      this._value = this._value.concat(il(e));
    }, t.prototype.read = function() {
      for (var e = [], A = this.consumeToken(); A !== iu; )
        e.push(A), A = this.consumeToken();
      return e;
    }, t.prototype.consumeToken = function() {
      var e = this.consumeCodePoint();
      switch (e) {
        case wo:
          return this.consumeStringToken(wo);
        case gw:
          var A = this.peekCodePoint(0), r = this.peekCodePoint(1), n = this.peekCodePoint(2);
          if (Mf(A) || Dn(r, n)) {
            var i = Fo(A, r, n) ? fw : uw, s = this.consumeName();
            return { type: 5, value: s, flags: i };
          }
          break;
        case pw:
          if (this.peekCodePoint(0) === qa)
            return this.consumeCodePoint(), A5;
          break;
        case vo:
          return this.consumeStringToken(vo);
        case mo:
          return Yw;
        case Wa:
          return $w;
        case wc:
          if (this.peekCodePoint(0) === qa)
            return this.consumeCodePoint(), s5;
          break;
        case oi:
          if (vc(e, this.peekCodePoint(0), this.peekCodePoint(1)))
            return this.reconsumeCodePoint(e), this.consumeNumericToken();
          break;
        case Iw:
          return Zw;
        case Vt:
          var o = e, c = this.peekCodePoint(0), h = this.peekCodePoint(1);
          if (vc(o, c, h))
            return this.reconsumeCodePoint(e), this.consumeNumericToken();
          if (Fo(o, c, h))
            return this.reconsumeCodePoint(e), this.consumeIdentLikeToken();
          if (c === Vt && h === Cw)
            return this.consumeCodePoint(), this.consumeCodePoint(), c5;
          break;
        case ls:
          if (vc(e, this.peekCodePoint(0), this.peekCodePoint(1)))
            return this.reconsumeCodePoint(e), this.consumeNumericToken();
          break;
        case kf:
          if (this.peekCodePoint(0) === wc)
            for (this.consumeCodePoint(); ; ) {
              var p = this.consumeCodePoint();
              if (p === wc && (p = this.consumeCodePoint(), p === kf))
                return this.consumeToken();
              if (p === Rr)
                return this.consumeToken();
            }
          break;
        case Sw:
          return u5;
        case Hw:
          return f5;
        case mw:
          if (this.peekCodePoint(0) === vw && this.peekCodePoint(1) === Vt && this.peekCodePoint(2) === Vt)
            return this.consumeCodePoint(), this.consumeCodePoint(), l5;
          break;
        case yw:
          var d = this.peekCodePoint(0), w = this.peekCodePoint(1), g = this.peekCodePoint(2);
          if (Fo(d, w, g)) {
            var s = this.consumeName();
            return { type: 7, value: s };
          }
          break;
        case Fw:
          return h5;
        case ts:
          if (Dn(e, this.peekCodePoint(0)))
            return this.reconsumeCodePoint(e), this.consumeIdentLikeToken();
          break;
        case Qw:
          return d5;
        case bw:
          if (this.peekCodePoint(0) === qa)
            return this.consumeCodePoint(), e5;
          break;
        case Uw:
          return i5;
        case Lw:
          return a5;
        case Ow:
        case Rw:
          var Q = this.peekCodePoint(0), y = this.peekCodePoint(1);
          return Q === oi && (Xi(y) || y === Co) && (this.consumeCodePoint(), this.consumeUnicodeRangeToken()), this.reconsumeCodePoint(e), this.consumeIdentLikeToken();
        case _f:
          if (this.peekCodePoint(0) === qa)
            return this.consumeCodePoint(), r5;
          if (this.peekCodePoint(0) === _f)
            return this.consumeCodePoint(), t5;
          break;
        case Ew:
          if (this.peekCodePoint(0) === qa)
            return this.consumeCodePoint(), n5;
          break;
        case Rr:
          return iu;
      }
      return yo(e) ? (this.consumeWhiteSpace(), g5) : St(e) ? (this.reconsumeCodePoint(e), this.consumeNumericToken()) : qo(e) ? (this.reconsumeCodePoint(e), this.consumeIdentLikeToken()) : { type: 6, value: At(e) };
    }, t.prototype.consumeCodePoint = function() {
      var e = this._value.shift();
      return typeof e > "u" ? -1 : e;
    }, t.prototype.reconsumeCodePoint = function(e) {
      this._value.unshift(e);
    }, t.prototype.peekCodePoint = function(e) {
      return e >= this._value.length ? -1 : this._value[e];
    }, t.prototype.consumeUnicodeRangeToken = function() {
      for (var e = [], A = this.consumeCodePoint(); Xi(A) && e.length < 6; )
        e.push(A), A = this.consumeCodePoint();
      for (var r = !1; A === Co && e.length < 6; )
        e.push(A), A = this.consumeCodePoint(), r = !0;
      if (r) {
        var n = parseInt(At.apply(void 0, e.map(function(c) {
          return c === Co ? Yh : c;
        })), 16), i = parseInt(At.apply(void 0, e.map(function(c) {
          return c === Co ? td : c;
        })), 16);
        return { type: 30, start: n, end: i };
      }
      var s = parseInt(At.apply(void 0, e), 16);
      if (this.peekCodePoint(0) === Vt && Xi(this.peekCodePoint(1))) {
        this.consumeCodePoint(), A = this.consumeCodePoint();
        for (var o = []; Xi(A) && o.length < 6; )
          o.push(A), A = this.consumeCodePoint();
        var i = parseInt(At.apply(void 0, o), 16);
        return { type: 30, start: s, end: i };
      } else
        return { type: 30, start: s, end: s };
    }, t.prototype.consumeIdentLikeToken = function() {
      var e = this.consumeName();
      return e.toLowerCase() === "url" && this.peekCodePoint(0) === mo ? (this.consumeCodePoint(), this.consumeUrlToken()) : this.peekCodePoint(0) === mo ? (this.consumeCodePoint(), { type: 19, value: e }) : { type: 20, value: e };
    }, t.prototype.consumeUrlToken = function() {
      var e = [];
      if (this.consumeWhiteSpace(), this.peekCodePoint(0) === Rr)
        return { type: 22, value: "" };
      var A = this.peekCodePoint(0);
      if (A === vo || A === wo) {
        var r = this.consumeStringToken(this.consumeCodePoint());
        return r.type === 0 && (this.consumeWhiteSpace(), this.peekCodePoint(0) === Rr || this.peekCodePoint(0) === Wa) ? (this.consumeCodePoint(), { type: 22, value: r.value }) : (this.consumeBadUrlRemnants(), Qo);
      }
      for (; ; ) {
        var n = this.consumeCodePoint();
        if (n === Rr || n === Wa)
          return { type: 22, value: At.apply(void 0, e) };
        if (yo(n))
          return this.consumeWhiteSpace(), this.peekCodePoint(0) === Rr || this.peekCodePoint(0) === Wa ? (this.consumeCodePoint(), { type: 22, value: At.apply(void 0, e) }) : (this.consumeBadUrlRemnants(), Qo);
        if (n === wo || n === vo || n === mo || zw(n))
          return this.consumeBadUrlRemnants(), Qo;
        if (n === ts)
          if (Dn(n, this.peekCodePoint(0)))
            e.push(this.consumeEscapedCodePoint());
          else
            return this.consumeBadUrlRemnants(), Qo;
        else
          e.push(n);
      }
    }, t.prototype.consumeWhiteSpace = function() {
      for (; yo(this.peekCodePoint(0)); )
        this.consumeCodePoint();
    }, t.prototype.consumeBadUrlRemnants = function() {
      for (; ; ) {
        var e = this.consumeCodePoint();
        if (e === Wa || e === Rr)
          return;
        Dn(e, this.peekCodePoint(0)) && this.consumeEscapedCodePoint();
      }
    }, t.prototype.consumeStringSlice = function(e) {
      for (var A = 5e4, r = ""; e > 0; ) {
        var n = Math.min(A, e);
        r += At.apply(void 0, this._value.splice(0, n)), e -= n;
      }
      return this._value.shift(), r;
    }, t.prototype.consumeStringToken = function(e) {
      var A = "", r = 0;
      do {
        var n = this._value[r];
        if (n === Rr || n === void 0 || n === e)
          return A += this.consumeStringSlice(r), { type: 0, value: A };
        if (n === jo)
          return this._value.splice(0, r), o5;
        if (n === ts) {
          var i = this._value[r + 1];
          i !== Rr && i !== void 0 && (i === jo ? (A += this.consumeStringSlice(r), r = -1, this._value.shift()) : Dn(n, i) && (A += this.consumeStringSlice(r), A += At(this.consumeEscapedCodePoint()), r = -1));
        }
        r++;
      } while (!0);
    }, t.prototype.consumeNumber = function() {
      var e = [], A = us, r = this.peekCodePoint(0);
      for ((r === oi || r === Vt) && e.push(this.consumeCodePoint()); St(this.peekCodePoint(0)); )
        e.push(this.consumeCodePoint());
      r = this.peekCodePoint(0);
      var n = this.peekCodePoint(1);
      if (r === ls && St(n))
        for (e.push(this.consumeCodePoint(), this.consumeCodePoint()), A = Nf; St(this.peekCodePoint(0)); )
          e.push(this.consumeCodePoint());
      r = this.peekCodePoint(0), n = this.peekCodePoint(1);
      var i = this.peekCodePoint(2);
      if ((r === ed || r === Zh) && ((n === oi || n === Vt) && St(i) || St(n)))
        for (e.push(this.consumeCodePoint(), this.consumeCodePoint()), A = Nf; St(this.peekCodePoint(0)); )
          e.push(this.consumeCodePoint());
      return [Jw(e), A];
    }, t.prototype.consumeNumericToken = function() {
      var e = this.consumeNumber(), A = e[0], r = e[1], n = this.peekCodePoint(0), i = this.peekCodePoint(1), s = this.peekCodePoint(2);
      if (Fo(n, i, s)) {
        var o = this.consumeName();
        return { type: 15, number: A, flags: r, unit: o };
      }
      return n === Bw ? (this.consumeCodePoint(), { type: 16, number: A, flags: r }) : { type: 17, number: A, flags: r };
    }, t.prototype.consumeEscapedCodePoint = function() {
      var e = this.consumeCodePoint();
      if (Xi(e)) {
        for (var A = At(e); Xi(this.peekCodePoint(0)) && A.length < 6; )
          A += At(this.consumeCodePoint());
        yo(this.peekCodePoint(0)) && this.consumeCodePoint();
        var r = parseInt(A, 16);
        return r === 0 || Vw(r) || r > 1114111 ? Tf : r;
      }
      return e === Rr ? Tf : e;
    }, t.prototype.consumeName = function() {
      for (var e = ""; ; ) {
        var A = this.consumeCodePoint();
        if (Mf(A))
          e += At(A);
        else if (Dn(A, this.peekCodePoint(0)))
          e += At(this.consumeEscapedCodePoint());
        else
          return this.reconsumeCodePoint(A), e;
      }
    }, t;
  }()
), nd = (
  /** @class */
  function() {
    function t(e) {
      this._tokens = e;
    }
    return t.create = function(e) {
      var A = new rd();
      return A.write(e), new t(A.read());
    }, t.parseValue = function(e) {
      return t.create(e).parseComponentValue();
    }, t.parseValues = function(e) {
      return t.create(e).parseComponentValues();
    }, t.prototype.parseComponentValue = function() {
      for (var e = this.consumeToken(); e.type === 31; )
        e = this.consumeToken();
      if (e.type === 32)
        throw new SyntaxError("Error parsing CSS component value, unexpected EOF");
      this.reconsumeToken(e);
      var A = this.consumeComponentValue();
      do
        e = this.consumeToken();
      while (e.type === 31);
      if (e.type === 32)
        return A;
      throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one");
    }, t.prototype.parseComponentValues = function() {
      for (var e = []; ; ) {
        var A = this.consumeComponentValue();
        if (A.type === 32)
          return e;
        e.push(A), e.push();
      }
    }, t.prototype.consumeComponentValue = function() {
      var e = this.consumeToken();
      switch (e.type) {
        case 11:
        case 28:
        case 2:
          return this.consumeSimpleBlock(e.type);
        case 19:
          return this.consumeFunction(e);
      }
      return e;
    }, t.prototype.consumeSimpleBlock = function(e) {
      for (var A = { type: e, values: [] }, r = this.consumeToken(); ; ) {
        if (r.type === 32 || B5(r, e))
          return A;
        this.reconsumeToken(r), A.values.push(this.consumeComponentValue()), r = this.consumeToken();
      }
    }, t.prototype.consumeFunction = function(e) {
      for (var A = {
        name: e.value,
        values: [],
        type: 18
        /* FUNCTION */
      }; ; ) {
        var r = this.consumeToken();
        if (r.type === 32 || r.type === 3)
          return A;
        this.reconsumeToken(r), A.values.push(this.consumeComponentValue());
      }
    }, t.prototype.consumeToken = function() {
      var e = this._tokens.shift();
      return typeof e > "u" ? iu : e;
    }, t.prototype.reconsumeToken = function(e) {
      this._tokens.unshift(e);
    }, t;
  }()
), fs = function(t) {
  return t.type === 15;
}, ua = function(t) {
  return t.type === 17;
}, Ne = function(t) {
  return t.type === 20;
}, p5 = function(t) {
  return t.type === 0;
}, au = function(t, e) {
  return Ne(t) && t.value === e;
}, id = function(t) {
  return t.type !== 31;
}, ca = function(t) {
  return t.type !== 31 && t.type !== 4;
}, zr = function(t) {
  var e = [], A = [];
  return t.forEach(function(r) {
    if (r.type === 4) {
      if (A.length === 0)
        throw new Error("Error parsing function args, zero tokens for arg");
      e.push(A), A = [];
      return;
    }
    r.type !== 31 && A.push(r);
  }), A.length && e.push(A), e;
}, B5 = function(t, e) {
  return e === 11 && t.type === 12 || e === 28 && t.type === 29 ? !0 : e === 2 && t.type === 3;
}, Vn = function(t) {
  return t.type === 17 || t.type === 15;
}, lt = function(t) {
  return t.type === 16 || Vn(t);
}, ad = function(t) {
  return t.length > 1 ? [t[0], t[1]] : [t[0]];
}, Ft = {
  type: 17,
  number: 0,
  flags: us
}, mu = {
  type: 16,
  number: 50,
  flags: us
}, Tn = {
  type: 16,
  number: 100,
  flags: us
}, $a = function(t, e, A) {
  var r = t[0], n = t[1];
  return [Pe(r, e), Pe(typeof n < "u" ? n : r, A)];
}, Pe = function(t, e) {
  if (t.type === 16)
    return t.number / 100 * e;
  if (fs(t))
    switch (t.unit) {
      case "rem":
      case "em":
        return 16 * t.number;
      // TODO use correct font-size
      case "px":
      default:
        return t.number;
    }
  return t.number;
}, sd = "deg", od = "grad", ld = "rad", cd = "turn", al = {
  name: "angle",
  parse: function(t, e) {
    if (e.type === 15)
      switch (e.unit) {
        case sd:
          return Math.PI * e.number / 180;
        case od:
          return Math.PI / 200 * e.number;
        case ld:
          return e.number;
        case cd:
          return Math.PI * 2 * e.number;
      }
    throw new Error("Unsupported angle type");
  }
}, ud = function(t) {
  return t.type === 15 && (t.unit === sd || t.unit === od || t.unit === ld || t.unit === cd);
}, fd = function(t) {
  var e = t.filter(Ne).map(function(A) {
    return A.value;
  }).join(" ");
  switch (e) {
    case "to bottom right":
    case "to right bottom":
    case "left top":
    case "top left":
      return [Ft, Ft];
    case "to top":
    case "bottom":
      return fr(0);
    case "to bottom left":
    case "to left bottom":
    case "right top":
    case "top right":
      return [Ft, Tn];
    case "to right":
    case "left":
      return fr(90);
    case "to top left":
    case "to left top":
    case "right bottom":
    case "bottom right":
      return [Tn, Tn];
    case "to bottom":
    case "top":
      return fr(180);
    case "to top right":
    case "to right top":
    case "left bottom":
    case "bottom left":
      return [Tn, Ft];
    case "to left":
    case "right":
      return fr(270);
  }
  return 0;
}, fr = function(t) {
  return Math.PI * t / 180;
}, Pn = {
  name: "color",
  parse: function(t, e) {
    if (e.type === 18) {
      var A = w5[e.name];
      if (typeof A > "u")
        throw new Error('Attempting to parse an unsupported color function "' + e.name + '"');
      return A(t, e.values);
    }
    if (e.type === 5) {
      if (e.value.length === 3) {
        var r = e.value.substring(0, 1), n = e.value.substring(1, 2), i = e.value.substring(2, 3);
        return Mn(parseInt(r + r, 16), parseInt(n + n, 16), parseInt(i + i, 16), 1);
      }
      if (e.value.length === 4) {
        var r = e.value.substring(0, 1), n = e.value.substring(1, 2), i = e.value.substring(2, 3), s = e.value.substring(3, 4);
        return Mn(parseInt(r + r, 16), parseInt(n + n, 16), parseInt(i + i, 16), parseInt(s + s, 16) / 255);
      }
      if (e.value.length === 6) {
        var r = e.value.substring(0, 2), n = e.value.substring(2, 4), i = e.value.substring(4, 6);
        return Mn(parseInt(r, 16), parseInt(n, 16), parseInt(i, 16), 1);
      }
      if (e.value.length === 8) {
        var r = e.value.substring(0, 2), n = e.value.substring(2, 4), i = e.value.substring(4, 6), s = e.value.substring(6, 8);
        return Mn(parseInt(r, 16), parseInt(n, 16), parseInt(i, 16), parseInt(s, 16) / 255);
      }
    }
    if (e.type === 20) {
      var o = fn[e.value.toUpperCase()];
      if (typeof o < "u")
        return o;
    }
    return fn.TRANSPARENT;
  }
}, On = function(t) {
  return (255 & t) === 0;
}, pt = function(t) {
  var e = 255 & t, A = 255 & t >> 8, r = 255 & t >> 16, n = 255 & t >> 24;
  return e < 255 ? "rgba(" + n + "," + r + "," + A + "," + e / 255 + ")" : "rgb(" + n + "," + r + "," + A + ")";
}, Mn = function(t, e, A, r) {
  return (t << 24 | e << 16 | A << 8 | Math.round(r * 255) << 0) >>> 0;
}, Pf = function(t, e) {
  if (t.type === 17)
    return t.number;
  if (t.type === 16) {
    var A = e === 3 ? 1 : 255;
    return e === 3 ? t.number / 100 * A : Math.round(t.number / 100 * A);
  }
  return 0;
}, Of = function(t, e) {
  var A = e.filter(ca);
  if (A.length === 3) {
    var r = A.map(Pf), n = r[0], i = r[1], s = r[2];
    return Mn(n, i, s, 1);
  }
  if (A.length === 4) {
    var o = A.map(Pf), n = o[0], i = o[1], s = o[2], c = o[3];
    return Mn(n, i, s, c);
  }
  return 0;
};
function mc(t, e, A) {
  return A < 0 && (A += 1), A >= 1 && (A -= 1), A < 1 / 6 ? (e - t) * A * 6 + t : A < 1 / 2 ? e : A < 2 / 3 ? (e - t) * 6 * (2 / 3 - A) + t : t;
}
var Kf = function(t, e) {
  var A = e.filter(ca), r = A[0], n = A[1], i = A[2], s = A[3], o = (r.type === 17 ? fr(r.number) : al.parse(t, r)) / (Math.PI * 2), c = lt(n) ? n.number / 100 : 0, h = lt(i) ? i.number / 100 : 0, p = typeof s < "u" && lt(s) ? Pe(s, 1) : 1;
  if (c === 0)
    return Mn(h * 255, h * 255, h * 255, 1);
  var d = h <= 0.5 ? h * (c + 1) : h + c - h * c, w = h * 2 - d, g = mc(w, d, o + 1 / 3), Q = mc(w, d, o), y = mc(w, d, o - 1 / 3);
  return Mn(g * 255, Q * 255, y * 255, p);
}, w5 = {
  hsl: Kf,
  hsla: Kf,
  rgb: Of,
  rgba: Of
}, rs = function(t, e) {
  return Pn.parse(t, nd.create(e).parseComponentValue());
}, fn = {
  ALICEBLUE: 4042850303,
  ANTIQUEWHITE: 4209760255,
  AQUA: 16777215,
  AQUAMARINE: 2147472639,
  AZURE: 4043309055,
  BEIGE: 4126530815,
  BISQUE: 4293182719,
  BLACK: 255,
  BLANCHEDALMOND: 4293643775,
  BLUE: 65535,
  BLUEVIOLET: 2318131967,
  BROWN: 2771004159,
  BURLYWOOD: 3736635391,
  CADETBLUE: 1604231423,
  CHARTREUSE: 2147418367,
  CHOCOLATE: 3530104575,
  CORAL: 4286533887,
  CORNFLOWERBLUE: 1687547391,
  CORNSILK: 4294499583,
  CRIMSON: 3692313855,
  CYAN: 16777215,
  DARKBLUE: 35839,
  DARKCYAN: 9145343,
  DARKGOLDENROD: 3095837695,
  DARKGRAY: 2846468607,
  DARKGREEN: 6553855,
  DARKGREY: 2846468607,
  DARKKHAKI: 3182914559,
  DARKMAGENTA: 2332068863,
  DARKOLIVEGREEN: 1433087999,
  DARKORANGE: 4287365375,
  DARKORCHID: 2570243327,
  DARKRED: 2332033279,
  DARKSALMON: 3918953215,
  DARKSEAGREEN: 2411499519,
  DARKSLATEBLUE: 1211993087,
  DARKSLATEGRAY: 793726975,
  DARKSLATEGREY: 793726975,
  DARKTURQUOISE: 13554175,
  DARKVIOLET: 2483082239,
  DEEPPINK: 4279538687,
  DEEPSKYBLUE: 12582911,
  DIMGRAY: 1768516095,
  DIMGREY: 1768516095,
  DODGERBLUE: 512819199,
  FIREBRICK: 2988581631,
  FLORALWHITE: 4294635775,
  FORESTGREEN: 579543807,
  FUCHSIA: 4278255615,
  GAINSBORO: 3705462015,
  GHOSTWHITE: 4177068031,
  GOLD: 4292280575,
  GOLDENROD: 3668254975,
  GRAY: 2155905279,
  GREEN: 8388863,
  GREENYELLOW: 2919182335,
  GREY: 2155905279,
  HONEYDEW: 4043305215,
  HOTPINK: 4285117695,
  INDIANRED: 3445382399,
  INDIGO: 1258324735,
  IVORY: 4294963455,
  KHAKI: 4041641215,
  LAVENDER: 3873897215,
  LAVENDERBLUSH: 4293981695,
  LAWNGREEN: 2096890111,
  LEMONCHIFFON: 4294626815,
  LIGHTBLUE: 2916673279,
  LIGHTCORAL: 4034953471,
  LIGHTCYAN: 3774873599,
  LIGHTGOLDENRODYELLOW: 4210742015,
  LIGHTGRAY: 3553874943,
  LIGHTGREEN: 2431553791,
  LIGHTGREY: 3553874943,
  LIGHTPINK: 4290167295,
  LIGHTSALMON: 4288707327,
  LIGHTSEAGREEN: 548580095,
  LIGHTSKYBLUE: 2278488831,
  LIGHTSLATEGRAY: 2005441023,
  LIGHTSLATEGREY: 2005441023,
  LIGHTSTEELBLUE: 2965692159,
  LIGHTYELLOW: 4294959359,
  LIME: 16711935,
  LIMEGREEN: 852308735,
  LINEN: 4210091775,
  MAGENTA: 4278255615,
  MAROON: 2147483903,
  MEDIUMAQUAMARINE: 1724754687,
  MEDIUMBLUE: 52735,
  MEDIUMORCHID: 3126187007,
  MEDIUMPURPLE: 2473647103,
  MEDIUMSEAGREEN: 1018393087,
  MEDIUMSLATEBLUE: 2070474495,
  MEDIUMSPRINGGREEN: 16423679,
  MEDIUMTURQUOISE: 1221709055,
  MEDIUMVIOLETRED: 3340076543,
  MIDNIGHTBLUE: 421097727,
  MINTCREAM: 4127193855,
  MISTYROSE: 4293190143,
  MOCCASIN: 4293178879,
  NAVAJOWHITE: 4292783615,
  NAVY: 33023,
  OLDLACE: 4260751103,
  OLIVE: 2155872511,
  OLIVEDRAB: 1804477439,
  ORANGE: 4289003775,
  ORANGERED: 4282712319,
  ORCHID: 3664828159,
  PALEGOLDENROD: 4008225535,
  PALEGREEN: 2566625535,
  PALETURQUOISE: 2951671551,
  PALEVIOLETRED: 3681588223,
  PAPAYAWHIP: 4293907967,
  PEACHPUFF: 4292524543,
  PERU: 3448061951,
  PINK: 4290825215,
  PLUM: 3718307327,
  POWDERBLUE: 2967529215,
  PURPLE: 2147516671,
  REBECCAPURPLE: 1714657791,
  RED: 4278190335,
  ROSYBROWN: 3163525119,
  ROYALBLUE: 1097458175,
  SADDLEBROWN: 2336560127,
  SALMON: 4202722047,
  SANDYBROWN: 4104413439,
  SEAGREEN: 780883967,
  SEASHELL: 4294307583,
  SIENNA: 2689740287,
  SILVER: 3233857791,
  SKYBLUE: 2278484991,
  SLATEBLUE: 1784335871,
  SLATEGRAY: 1887473919,
  SLATEGREY: 1887473919,
  SNOW: 4294638335,
  SPRINGGREEN: 16744447,
  STEELBLUE: 1182971135,
  TAN: 3535047935,
  TEAL: 8421631,
  THISTLE: 3636451583,
  TOMATO: 4284696575,
  TRANSPARENT: 0,
  TURQUOISE: 1088475391,
  VIOLET: 4001558271,
  WHEAT: 4125012991,
  WHITE: 4294967295,
  WHITESMOKE: 4126537215,
  YELLOW: 4294902015,
  YELLOWGREEN: 2597139199
}, v5 = {
  name: "background-clip",
  initialValue: "border-box",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    return e.map(function(A) {
      if (Ne(A))
        switch (A.value) {
          case "padding-box":
            return 1;
          case "content-box":
            return 2;
        }
      return 0;
    });
  }
}, m5 = {
  name: "background-color",
  initialValue: "transparent",
  prefix: !1,
  type: 3,
  format: "color"
}, sl = function(t, e) {
  var A = Pn.parse(t, e[0]), r = e[1];
  return r && lt(r) ? { color: A, stop: r } : { color: A, stop: null };
}, Rf = function(t, e) {
  var A = t[0], r = t[t.length - 1];
  A.stop === null && (A.stop = Ft), r.stop === null && (r.stop = Tn);
  for (var n = [], i = 0, s = 0; s < t.length; s++) {
    var o = t[s].stop;
    if (o !== null) {
      var c = Pe(o, e);
      c > i ? n.push(c) : n.push(i), i = c;
    } else
      n.push(null);
  }
  for (var h = null, s = 0; s < n.length; s++) {
    var p = n[s];
    if (p === null)
      h === null && (h = s);
    else if (h !== null) {
      for (var d = s - h, w = n[h - 1], g = (p - w) / (d + 1), Q = 1; Q <= d; Q++)
        n[h + Q - 1] = g * Q;
      h = null;
    }
  }
  return t.map(function(y, N) {
    var v = y.color;
    return { color: v, stop: Math.max(Math.min(1, n[N] / e), 0) };
  });
}, C5 = function(t, e, A) {
  var r = e / 2, n = A / 2, i = Pe(t[0], e) - r, s = n - Pe(t[1], A);
  return (Math.atan2(s, i) + Math.PI * 2) % (Math.PI * 2);
}, y5 = function(t, e, A) {
  var r = typeof t == "number" ? t : C5(t, e, A), n = Math.abs(e * Math.sin(r)) + Math.abs(A * Math.cos(r)), i = e / 2, s = A / 2, o = n / 2, c = Math.sin(r - Math.PI / 2) * o, h = Math.cos(r - Math.PI / 2) * o;
  return [n, i - h, i + h, s - c, s + c];
}, br = function(t, e) {
  return Math.sqrt(t * t + e * e);
}, Gf = function(t, e, A, r, n) {
  var i = [
    [0, 0],
    [0, e],
    [t, 0],
    [t, e]
  ];
  return i.reduce(function(s, o) {
    var c = o[0], h = o[1], p = br(A - c, r - h);
    return (n ? p < s.optimumDistance : p > s.optimumDistance) ? {
      optimumCorner: o,
      optimumDistance: p
    } : s;
  }, {
    optimumDistance: n ? 1 / 0 : -1 / 0,
    optimumCorner: null
  }).optimumCorner;
}, F5 = function(t, e, A, r, n) {
  var i = 0, s = 0;
  switch (t.size) {
    case 0:
      t.shape === 0 ? i = s = Math.min(Math.abs(e), Math.abs(e - r), Math.abs(A), Math.abs(A - n)) : t.shape === 1 && (i = Math.min(Math.abs(e), Math.abs(e - r)), s = Math.min(Math.abs(A), Math.abs(A - n)));
      break;
    case 2:
      if (t.shape === 0)
        i = s = Math.min(br(e, A), br(e, A - n), br(e - r, A), br(e - r, A - n));
      else if (t.shape === 1) {
        var o = Math.min(Math.abs(A), Math.abs(A - n)) / Math.min(Math.abs(e), Math.abs(e - r)), c = Gf(r, n, e, A, !0), h = c[0], p = c[1];
        i = br(h - e, (p - A) / o), s = o * i;
      }
      break;
    case 1:
      t.shape === 0 ? i = s = Math.max(Math.abs(e), Math.abs(e - r), Math.abs(A), Math.abs(A - n)) : t.shape === 1 && (i = Math.max(Math.abs(e), Math.abs(e - r)), s = Math.max(Math.abs(A), Math.abs(A - n)));
      break;
    case 3:
      if (t.shape === 0)
        i = s = Math.max(br(e, A), br(e, A - n), br(e - r, A), br(e - r, A - n));
      else if (t.shape === 1) {
        var o = Math.max(Math.abs(A), Math.abs(A - n)) / Math.max(Math.abs(e), Math.abs(e - r)), d = Gf(r, n, e, A, !1), h = d[0], p = d[1];
        i = br(h - e, (p - A) / o), s = o * i;
      }
      break;
  }
  return Array.isArray(t.size) && (i = Pe(t.size[0], r), s = t.size.length === 2 ? Pe(t.size[1], n) : i), [i, s];
}, Q5 = function(t, e) {
  var A = fr(180), r = [];
  return zr(e).forEach(function(n, i) {
    if (i === 0) {
      var s = n[0];
      if (s.type === 20 && s.value === "to") {
        A = fd(n);
        return;
      } else if (ud(s)) {
        A = al.parse(t, s);
        return;
      }
    }
    var o = sl(t, n);
    r.push(o);
  }), {
    angle: A,
    stops: r,
    type: 1
    /* LINEAR_GRADIENT */
  };
}, bo = function(t, e) {
  var A = fr(180), r = [];
  return zr(e).forEach(function(n, i) {
    if (i === 0) {
      var s = n[0];
      if (s.type === 20 && ["top", "left", "right", "bottom"].indexOf(s.value) !== -1) {
        A = fd(n);
        return;
      } else if (ud(s)) {
        A = (al.parse(t, s) + fr(270)) % fr(360);
        return;
      }
    }
    var o = sl(t, n);
    r.push(o);
  }), {
    angle: A,
    stops: r,
    type: 1
    /* LINEAR_GRADIENT */
  };
}, b5 = function(t, e) {
  var A = fr(180), r = [], n = 1, i = 0, s = 3, o = [];
  return zr(e).forEach(function(c, h) {
    var p = c[0];
    if (h === 0) {
      if (Ne(p) && p.value === "linear") {
        n = 1;
        return;
      } else if (Ne(p) && p.value === "radial") {
        n = 2;
        return;
      }
    }
    if (p.type === 18) {
      if (p.name === "from") {
        var d = Pn.parse(t, p.values[0]);
        r.push({ stop: Ft, color: d });
      } else if (p.name === "to") {
        var d = Pn.parse(t, p.values[0]);
        r.push({ stop: Tn, color: d });
      } else if (p.name === "color-stop") {
        var w = p.values.filter(ca);
        if (w.length === 2) {
          var d = Pn.parse(t, w[1]), g = w[0];
          ua(g) && r.push({
            stop: { type: 16, number: g.number * 100, flags: g.flags },
            color: d
          });
        }
      }
    }
  }), n === 1 ? {
    angle: (A + fr(180)) % fr(360),
    stops: r,
    type: n
  } : { size: s, shape: i, stops: r, position: o, type: n };
}, hd = "closest-side", dd = "farthest-side", gd = "closest-corner", pd = "farthest-corner", Bd = "circle", wd = "ellipse", vd = "cover", md = "contain", U5 = function(t, e) {
  var A = 0, r = 3, n = [], i = [];
  return zr(e).forEach(function(s, o) {
    var c = !0;
    if (o === 0) {
      var h = !1;
      c = s.reduce(function(d, w) {
        if (h)
          if (Ne(w))
            switch (w.value) {
              case "center":
                return i.push(mu), d;
              case "top":
              case "left":
                return i.push(Ft), d;
              case "right":
              case "bottom":
                return i.push(Tn), d;
            }
          else (lt(w) || Vn(w)) && i.push(w);
        else if (Ne(w))
          switch (w.value) {
            case Bd:
              return A = 0, !1;
            case wd:
              return A = 1, !1;
            case "at":
              return h = !0, !1;
            case hd:
              return r = 0, !1;
            case vd:
            case dd:
              return r = 1, !1;
            case md:
            case gd:
              return r = 2, !1;
            case pd:
              return r = 3, !1;
          }
        else if (Vn(w) || lt(w))
          return Array.isArray(r) || (r = []), r.push(w), !1;
        return d;
      }, c);
    }
    if (c) {
      var p = sl(t, s);
      n.push(p);
    }
  }), {
    size: r,
    shape: A,
    stops: n,
    position: i,
    type: 2
    /* RADIAL_GRADIENT */
  };
}, Uo = function(t, e) {
  var A = 0, r = 3, n = [], i = [];
  return zr(e).forEach(function(s, o) {
    var c = !0;
    if (o === 0 ? c = s.reduce(function(p, d) {
      if (Ne(d))
        switch (d.value) {
          case "center":
            return i.push(mu), !1;
          case "top":
          case "left":
            return i.push(Ft), !1;
          case "right":
          case "bottom":
            return i.push(Tn), !1;
        }
      else if (lt(d) || Vn(d))
        return i.push(d), !1;
      return p;
    }, c) : o === 1 && (c = s.reduce(function(p, d) {
      if (Ne(d))
        switch (d.value) {
          case Bd:
            return A = 0, !1;
          case wd:
            return A = 1, !1;
          case md:
          case hd:
            return r = 0, !1;
          case dd:
            return r = 1, !1;
          case gd:
            return r = 2, !1;
          case vd:
          case pd:
            return r = 3, !1;
        }
      else if (Vn(d) || lt(d))
        return Array.isArray(r) || (r = []), r.push(d), !1;
      return p;
    }, c)), c) {
      var h = sl(t, s);
      n.push(h);
    }
  }), {
    size: r,
    shape: A,
    stops: n,
    position: i,
    type: 2
    /* RADIAL_GRADIENT */
  };
}, L5 = function(t) {
  return t.type === 1;
}, E5 = function(t) {
  return t.type === 2;
}, Cu = {
  name: "image",
  parse: function(t, e) {
    if (e.type === 22) {
      var A = {
        url: e.value,
        type: 0
        /* URL */
      };
      return t.cache.addImage(e.value), A;
    }
    if (e.type === 18) {
      var r = Cd[e.name];
      if (typeof r > "u")
        throw new Error('Attempting to parse an unsupported image function "' + e.name + '"');
      return r(t, e.values);
    }
    throw new Error("Unsupported image type " + e.type);
  }
};
function x5(t) {
  return !(t.type === 20 && t.value === "none") && (t.type !== 18 || !!Cd[t.name]);
}
var Cd = {
  "linear-gradient": Q5,
  "-moz-linear-gradient": bo,
  "-ms-linear-gradient": bo,
  "-o-linear-gradient": bo,
  "-webkit-linear-gradient": bo,
  "radial-gradient": U5,
  "-moz-radial-gradient": Uo,
  "-ms-radial-gradient": Uo,
  "-o-radial-gradient": Uo,
  "-webkit-radial-gradient": Uo,
  "-webkit-gradient": b5
}, I5 = {
  name: "background-image",
  initialValue: "none",
  type: 1,
  prefix: !1,
  parse: function(t, e) {
    if (e.length === 0)
      return [];
    var A = e[0];
    return A.type === 20 && A.value === "none" ? [] : e.filter(function(r) {
      return ca(r) && x5(r);
    }).map(function(r) {
      return Cu.parse(t, r);
    });
  }
}, S5 = {
  name: "background-origin",
  initialValue: "border-box",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    return e.map(function(A) {
      if (Ne(A))
        switch (A.value) {
          case "padding-box":
            return 1;
          case "content-box":
            return 2;
        }
      return 0;
    });
  }
}, H5 = {
  name: "background-position",
  initialValue: "0% 0%",
  type: 1,
  prefix: !1,
  parse: function(t, e) {
    return zr(e).map(function(A) {
      return A.filter(lt);
    }).map(ad);
  }
}, D5 = {
  name: "background-repeat",
  initialValue: "repeat",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    return zr(e).map(function(A) {
      return A.filter(Ne).map(function(r) {
        return r.value;
      }).join(" ");
    }).map(N5);
  }
}, N5 = function(t) {
  switch (t) {
    case "no-repeat":
      return 1;
    case "repeat-x":
    case "repeat no-repeat":
      return 2;
    case "repeat-y":
    case "no-repeat repeat":
      return 3;
    case "repeat":
    default:
      return 0;
  }
}, la;
(function(t) {
  t.AUTO = "auto", t.CONTAIN = "contain", t.COVER = "cover";
})(la || (la = {}));
var k5 = {
  name: "background-size",
  initialValue: "0",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    return zr(e).map(function(A) {
      return A.filter(_5);
    });
  }
}, _5 = function(t) {
  return Ne(t) || lt(t);
}, ol = function(t) {
  return {
    name: "border-" + t + "-color",
    initialValue: "transparent",
    prefix: !1,
    type: 3,
    format: "color"
  };
}, T5 = ol("top"), M5 = ol("right"), P5 = ol("bottom"), O5 = ol("left"), ll = function(t) {
  return {
    name: "border-radius-" + t,
    initialValue: "0 0",
    prefix: !1,
    type: 1,
    parse: function(e, A) {
      return ad(A.filter(lt));
    }
  };
}, K5 = ll("top-left"), R5 = ll("top-right"), G5 = ll("bottom-right"), V5 = ll("bottom-left"), cl = function(t) {
  return {
    name: "border-" + t + "-style",
    initialValue: "solid",
    prefix: !1,
    type: 2,
    parse: function(e, A) {
      switch (A) {
        case "none":
          return 0;
        case "dashed":
          return 2;
        case "dotted":
          return 3;
        case "double":
          return 4;
      }
      return 1;
    }
  };
}, j5 = cl("top"), q5 = cl("right"), W5 = cl("bottom"), X5 = cl("left"), ul = function(t) {
  return {
    name: "border-" + t + "-width",
    initialValue: "0",
    type: 0,
    prefix: !1,
    parse: function(e, A) {
      return fs(A) ? A.number : 0;
    }
  };
}, z5 = ul("top"), J5 = ul("right"), Y5 = ul("bottom"), $5 = ul("left"), Z5 = {
  name: "color",
  initialValue: "transparent",
  prefix: !1,
  type: 3,
  format: "color"
}, Av = {
  name: "direction",
  initialValue: "ltr",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "rtl":
        return 1;
      case "ltr":
      default:
        return 0;
    }
  }
}, ev = {
  name: "display",
  initialValue: "inline-block",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    return e.filter(Ne).reduce(
      function(A, r) {
        return A | tv(r.value);
      },
      0
      /* NONE */
    );
  }
}, tv = function(t) {
  switch (t) {
    case "block":
    case "-webkit-box":
      return 2;
    case "inline":
      return 4;
    case "run-in":
      return 8;
    case "flow":
      return 16;
    case "flow-root":
      return 32;
    case "table":
      return 64;
    case "flex":
    case "-webkit-flex":
      return 128;
    case "grid":
    case "-ms-grid":
      return 256;
    case "ruby":
      return 512;
    case "subgrid":
      return 1024;
    case "list-item":
      return 2048;
    case "table-row-group":
      return 4096;
    case "table-header-group":
      return 8192;
    case "table-footer-group":
      return 16384;
    case "table-row":
      return 32768;
    case "table-cell":
      return 65536;
    case "table-column-group":
      return 131072;
    case "table-column":
      return 262144;
    case "table-caption":
      return 524288;
    case "ruby-base":
      return 1048576;
    case "ruby-text":
      return 2097152;
    case "ruby-base-container":
      return 4194304;
    case "ruby-text-container":
      return 8388608;
    case "contents":
      return 16777216;
    case "inline-block":
      return 33554432;
    case "inline-list-item":
      return 67108864;
    case "inline-table":
      return 134217728;
    case "inline-flex":
      return 268435456;
    case "inline-grid":
      return 536870912;
  }
  return 0;
}, rv = {
  name: "float",
  initialValue: "none",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "left":
        return 1;
      case "right":
        return 2;
      case "inline-start":
        return 3;
      case "inline-end":
        return 4;
    }
    return 0;
  }
}, nv = {
  name: "letter-spacing",
  initialValue: "0",
  prefix: !1,
  type: 0,
  parse: function(t, e) {
    return e.type === 20 && e.value === "normal" ? 0 : e.type === 17 || e.type === 15 ? e.number : 0;
  }
}, Wo;
(function(t) {
  t.NORMAL = "normal", t.STRICT = "strict";
})(Wo || (Wo = {}));
var iv = {
  name: "line-break",
  initialValue: "normal",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "strict":
        return Wo.STRICT;
      case "normal":
      default:
        return Wo.NORMAL;
    }
  }
}, av = {
  name: "line-height",
  initialValue: "normal",
  prefix: !1,
  type: 4
  /* TOKEN_VALUE */
}, Vf = function(t, e) {
  return Ne(t) && t.value === "normal" ? 1.2 * e : t.type === 17 ? e * t.number : lt(t) ? Pe(t, e) : e;
}, sv = {
  name: "list-style-image",
  initialValue: "none",
  type: 0,
  prefix: !1,
  parse: function(t, e) {
    return e.type === 20 && e.value === "none" ? null : Cu.parse(t, e);
  }
}, ov = {
  name: "list-style-position",
  initialValue: "outside",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "inside":
        return 0;
      case "outside":
      default:
        return 1;
    }
  }
}, su = {
  name: "list-style-type",
  initialValue: "none",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "disc":
        return 0;
      case "circle":
        return 1;
      case "square":
        return 2;
      case "decimal":
        return 3;
      case "cjk-decimal":
        return 4;
      case "decimal-leading-zero":
        return 5;
      case "lower-roman":
        return 6;
      case "upper-roman":
        return 7;
      case "lower-greek":
        return 8;
      case "lower-alpha":
        return 9;
      case "upper-alpha":
        return 10;
      case "arabic-indic":
        return 11;
      case "armenian":
        return 12;
      case "bengali":
        return 13;
      case "cambodian":
        return 14;
      case "cjk-earthly-branch":
        return 15;
      case "cjk-heavenly-stem":
        return 16;
      case "cjk-ideographic":
        return 17;
      case "devanagari":
        return 18;
      case "ethiopic-numeric":
        return 19;
      case "georgian":
        return 20;
      case "gujarati":
        return 21;
      case "gurmukhi":
        return 22;
      case "hebrew":
        return 22;
      case "hiragana":
        return 23;
      case "hiragana-iroha":
        return 24;
      case "japanese-formal":
        return 25;
      case "japanese-informal":
        return 26;
      case "kannada":
        return 27;
      case "katakana":
        return 28;
      case "katakana-iroha":
        return 29;
      case "khmer":
        return 30;
      case "korean-hangul-formal":
        return 31;
      case "korean-hanja-formal":
        return 32;
      case "korean-hanja-informal":
        return 33;
      case "lao":
        return 34;
      case "lower-armenian":
        return 35;
      case "malayalam":
        return 36;
      case "mongolian":
        return 37;
      case "myanmar":
        return 38;
      case "oriya":
        return 39;
      case "persian":
        return 40;
      case "simp-chinese-formal":
        return 41;
      case "simp-chinese-informal":
        return 42;
      case "tamil":
        return 43;
      case "telugu":
        return 44;
      case "thai":
        return 45;
      case "tibetan":
        return 46;
      case "trad-chinese-formal":
        return 47;
      case "trad-chinese-informal":
        return 48;
      case "upper-armenian":
        return 49;
      case "disclosure-open":
        return 50;
      case "disclosure-closed":
        return 51;
      case "none":
      default:
        return -1;
    }
  }
}, fl = function(t) {
  return {
    name: "margin-" + t,
    initialValue: "0",
    prefix: !1,
    type: 4
    /* TOKEN_VALUE */
  };
}, lv = fl("top"), cv = fl("right"), uv = fl("bottom"), fv = fl("left"), hv = {
  name: "overflow",
  initialValue: "visible",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    return e.filter(Ne).map(function(A) {
      switch (A.value) {
        case "hidden":
          return 1;
        case "scroll":
          return 2;
        case "clip":
          return 3;
        case "auto":
          return 4;
        case "visible":
        default:
          return 0;
      }
    });
  }
}, dv = {
  name: "overflow-wrap",
  initialValue: "normal",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "break-word":
        return "break-word";
      case "normal":
      default:
        return "normal";
    }
  }
}, hl = function(t) {
  return {
    name: "padding-" + t,
    initialValue: "0",
    prefix: !1,
    type: 3,
    format: "length-percentage"
  };
}, gv = hl("top"), pv = hl("right"), Bv = hl("bottom"), wv = hl("left"), vv = {
  name: "text-align",
  initialValue: "left",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "right":
        return 2;
      case "center":
      case "justify":
        return 1;
      case "left":
      default:
        return 0;
    }
  }
}, mv = {
  name: "position",
  initialValue: "static",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "relative":
        return 1;
      case "absolute":
        return 2;
      case "fixed":
        return 3;
      case "sticky":
        return 4;
    }
    return 0;
  }
}, Cv = {
  name: "text-shadow",
  initialValue: "none",
  type: 1,
  prefix: !1,
  parse: function(t, e) {
    return e.length === 1 && au(e[0], "none") ? [] : zr(e).map(function(A) {
      for (var r = {
        color: fn.TRANSPARENT,
        offsetX: Ft,
        offsetY: Ft,
        blur: Ft
      }, n = 0, i = 0; i < A.length; i++) {
        var s = A[i];
        Vn(s) ? (n === 0 ? r.offsetX = s : n === 1 ? r.offsetY = s : r.blur = s, n++) : r.color = Pn.parse(t, s);
      }
      return r;
    });
  }
}, yv = {
  name: "text-transform",
  initialValue: "none",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "uppercase":
        return 2;
      case "lowercase":
        return 1;
      case "capitalize":
        return 3;
    }
    return 0;
  }
}, Fv = {
  name: "transform",
  initialValue: "none",
  prefix: !0,
  type: 0,
  parse: function(t, e) {
    if (e.type === 20 && e.value === "none")
      return null;
    if (e.type === 18) {
      var A = Uv[e.name];
      if (typeof A > "u")
        throw new Error('Attempting to parse an unsupported transform function "' + e.name + '"');
      return A(e.values);
    }
    return null;
  }
}, Qv = function(t) {
  var e = t.filter(function(A) {
    return A.type === 17;
  }).map(function(A) {
    return A.number;
  });
  return e.length === 6 ? e : null;
}, bv = function(t) {
  var e = t.filter(function(c) {
    return c.type === 17;
  }).map(function(c) {
    return c.number;
  }), A = e[0], r = e[1];
  e[2], e[3];
  var n = e[4], i = e[5];
  e[6], e[7], e[8], e[9], e[10], e[11];
  var s = e[12], o = e[13];
  return e[14], e[15], e.length === 16 ? [A, r, n, i, s, o] : null;
}, Uv = {
  matrix: Qv,
  matrix3d: bv
}, jf = {
  type: 16,
  number: 50,
  flags: us
}, Lv = [jf, jf], Ev = {
  name: "transform-origin",
  initialValue: "50% 50%",
  prefix: !0,
  type: 1,
  parse: function(t, e) {
    var A = e.filter(lt);
    return A.length !== 2 ? Lv : [A[0], A[1]];
  }
}, xv = {
  name: "visible",
  initialValue: "none",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "hidden":
        return 1;
      case "collapse":
        return 2;
      case "visible":
      default:
        return 0;
    }
  }
}, ns;
(function(t) {
  t.NORMAL = "normal", t.BREAK_ALL = "break-all", t.KEEP_ALL = "keep-all";
})(ns || (ns = {}));
var Iv = {
  name: "word-break",
  initialValue: "normal",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "break-all":
        return ns.BREAK_ALL;
      case "keep-all":
        return ns.KEEP_ALL;
      case "normal":
      default:
        return ns.NORMAL;
    }
  }
}, Sv = {
  name: "z-index",
  initialValue: "auto",
  prefix: !1,
  type: 0,
  parse: function(t, e) {
    if (e.type === 20)
      return { auto: !0, order: 0 };
    if (ua(e))
      return { auto: !1, order: e.number };
    throw new Error("Invalid z-index number parsed");
  }
}, yd = {
  name: "time",
  parse: function(t, e) {
    if (e.type === 15)
      switch (e.unit.toLowerCase()) {
        case "s":
          return 1e3 * e.number;
        case "ms":
          return e.number;
      }
    throw new Error("Unsupported time type");
  }
}, Hv = {
  name: "opacity",
  initialValue: "1",
  type: 0,
  prefix: !1,
  parse: function(t, e) {
    return ua(e) ? e.number : 1;
  }
}, Dv = {
  name: "text-decoration-color",
  initialValue: "transparent",
  prefix: !1,
  type: 3,
  format: "color"
}, Nv = {
  name: "text-decoration-line",
  initialValue: "none",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    return e.filter(Ne).map(function(A) {
      switch (A.value) {
        case "underline":
          return 1;
        case "overline":
          return 2;
        case "line-through":
          return 3;
        case "none":
          return 4;
      }
      return 0;
    }).filter(function(A) {
      return A !== 0;
    });
  }
}, kv = {
  name: "font-family",
  initialValue: "",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    var A = [], r = [];
    return e.forEach(function(n) {
      switch (n.type) {
        case 20:
        case 0:
          A.push(n.value);
          break;
        case 17:
          A.push(n.number.toString());
          break;
        case 4:
          r.push(A.join(" ")), A.length = 0;
          break;
      }
    }), A.length && r.push(A.join(" ")), r.map(function(n) {
      return n.indexOf(" ") === -1 ? n : "'" + n + "'";
    });
  }
}, _v = {
  name: "font-size",
  initialValue: "0",
  prefix: !1,
  type: 3,
  format: "length"
}, Tv = {
  name: "font-weight",
  initialValue: "normal",
  type: 0,
  prefix: !1,
  parse: function(t, e) {
    if (ua(e))
      return e.number;
    if (Ne(e))
      switch (e.value) {
        case "bold":
          return 700;
        case "normal":
        default:
          return 400;
      }
    return 400;
  }
}, Mv = {
  name: "font-variant",
  initialValue: "none",
  type: 1,
  prefix: !1,
  parse: function(t, e) {
    return e.filter(Ne).map(function(A) {
      return A.value;
    });
  }
}, Pv = {
  name: "font-style",
  initialValue: "normal",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "oblique":
        return "oblique";
      case "italic":
        return "italic";
      case "normal":
      default:
        return "normal";
    }
  }
}, ft = function(t, e) {
  return (t & e) !== 0;
}, Ov = {
  name: "content",
  initialValue: "none",
  type: 1,
  prefix: !1,
  parse: function(t, e) {
    if (e.length === 0)
      return [];
    var A = e[0];
    return A.type === 20 && A.value === "none" ? [] : e;
  }
}, Kv = {
  name: "counter-increment",
  initialValue: "none",
  prefix: !0,
  type: 1,
  parse: function(t, e) {
    if (e.length === 0)
      return null;
    var A = e[0];
    if (A.type === 20 && A.value === "none")
      return null;
    for (var r = [], n = e.filter(id), i = 0; i < n.length; i++) {
      var s = n[i], o = n[i + 1];
      if (s.type === 20) {
        var c = o && ua(o) ? o.number : 1;
        r.push({ counter: s.value, increment: c });
      }
    }
    return r;
  }
}, Rv = {
  name: "counter-reset",
  initialValue: "none",
  prefix: !0,
  type: 1,
  parse: function(t, e) {
    if (e.length === 0)
      return [];
    for (var A = [], r = e.filter(id), n = 0; n < r.length; n++) {
      var i = r[n], s = r[n + 1];
      if (Ne(i) && i.value !== "none") {
        var o = s && ua(s) ? s.number : 0;
        A.push({ counter: i.value, reset: o });
      }
    }
    return A;
  }
}, Gv = {
  name: "duration",
  initialValue: "0s",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    return e.filter(fs).map(function(A) {
      return yd.parse(t, A);
    });
  }
}, Vv = {
  name: "quotes",
  initialValue: "none",
  prefix: !0,
  type: 1,
  parse: function(t, e) {
    if (e.length === 0)
      return null;
    var A = e[0];
    if (A.type === 20 && A.value === "none")
      return null;
    var r = [], n = e.filter(p5);
    if (n.length % 2 !== 0)
      return null;
    for (var i = 0; i < n.length; i += 2) {
      var s = n[i].value, o = n[i + 1].value;
      r.push({ open: s, close: o });
    }
    return r;
  }
}, qf = function(t, e, A) {
  if (!t)
    return "";
  var r = t[Math.min(e, t.length - 1)];
  return r ? A ? r.open : r.close : "";
}, jv = {
  name: "box-shadow",
  initialValue: "none",
  type: 1,
  prefix: !1,
  parse: function(t, e) {
    return e.length === 1 && au(e[0], "none") ? [] : zr(e).map(function(A) {
      for (var r = {
        color: 255,
        offsetX: Ft,
        offsetY: Ft,
        blur: Ft,
        spread: Ft,
        inset: !1
      }, n = 0, i = 0; i < A.length; i++) {
        var s = A[i];
        au(s, "inset") ? r.inset = !0 : Vn(s) ? (n === 0 ? r.offsetX = s : n === 1 ? r.offsetY = s : n === 2 ? r.blur = s : r.spread = s, n++) : r.color = Pn.parse(t, s);
      }
      return r;
    });
  }
}, qv = {
  name: "paint-order",
  initialValue: "normal",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    var A = [
      0,
      1,
      2
      /* MARKERS */
    ], r = [];
    return e.filter(Ne).forEach(function(n) {
      switch (n.value) {
        case "stroke":
          r.push(
            1
            /* STROKE */
          );
          break;
        case "fill":
          r.push(
            0
            /* FILL */
          );
          break;
        case "markers":
          r.push(
            2
            /* MARKERS */
          );
          break;
      }
    }), A.forEach(function(n) {
      r.indexOf(n) === -1 && r.push(n);
    }), r;
  }
}, Wv = {
  name: "-webkit-text-stroke-color",
  initialValue: "currentcolor",
  prefix: !1,
  type: 3,
  format: "color"
}, Xv = {
  name: "-webkit-text-stroke-width",
  initialValue: "0",
  type: 0,
  prefix: !1,
  parse: function(t, e) {
    return fs(e) ? e.number : 0;
  }
}, zv = (
  /** @class */
  function() {
    function t(e, A) {
      var r, n;
      this.animationDuration = JA(e, Gv, A.animationDuration), this.backgroundClip = JA(e, v5, A.backgroundClip), this.backgroundColor = JA(e, m5, A.backgroundColor), this.backgroundImage = JA(e, I5, A.backgroundImage), this.backgroundOrigin = JA(e, S5, A.backgroundOrigin), this.backgroundPosition = JA(e, H5, A.backgroundPosition), this.backgroundRepeat = JA(e, D5, A.backgroundRepeat), this.backgroundSize = JA(e, k5, A.backgroundSize), this.borderTopColor = JA(e, T5, A.borderTopColor), this.borderRightColor = JA(e, M5, A.borderRightColor), this.borderBottomColor = JA(e, P5, A.borderBottomColor), this.borderLeftColor = JA(e, O5, A.borderLeftColor), this.borderTopLeftRadius = JA(e, K5, A.borderTopLeftRadius), this.borderTopRightRadius = JA(e, R5, A.borderTopRightRadius), this.borderBottomRightRadius = JA(e, G5, A.borderBottomRightRadius), this.borderBottomLeftRadius = JA(e, V5, A.borderBottomLeftRadius), this.borderTopStyle = JA(e, j5, A.borderTopStyle), this.borderRightStyle = JA(e, q5, A.borderRightStyle), this.borderBottomStyle = JA(e, W5, A.borderBottomStyle), this.borderLeftStyle = JA(e, X5, A.borderLeftStyle), this.borderTopWidth = JA(e, z5, A.borderTopWidth), this.borderRightWidth = JA(e, J5, A.borderRightWidth), this.borderBottomWidth = JA(e, Y5, A.borderBottomWidth), this.borderLeftWidth = JA(e, $5, A.borderLeftWidth), this.boxShadow = JA(e, jv, A.boxShadow), this.color = JA(e, Z5, A.color), this.direction = JA(e, Av, A.direction), this.display = JA(e, ev, A.display), this.float = JA(e, rv, A.cssFloat), this.fontFamily = JA(e, kv, A.fontFamily), this.fontSize = JA(e, _v, A.fontSize), this.fontStyle = JA(e, Pv, A.fontStyle), this.fontVariant = JA(e, Mv, A.fontVariant), this.fontWeight = JA(e, Tv, A.fontWeight), this.letterSpacing = JA(e, nv, A.letterSpacing), this.lineBreak = JA(e, iv, A.lineBreak), this.lineHeight = JA(e, av, A.lineHeight), this.listStyleImage = JA(e, sv, A.listStyleImage), this.listStylePosition = JA(e, ov, A.listStylePosition), this.listStyleType = JA(e, su, A.listStyleType), this.marginTop = JA(e, lv, A.marginTop), this.marginRight = JA(e, cv, A.marginRight), this.marginBottom = JA(e, uv, A.marginBottom), this.marginLeft = JA(e, fv, A.marginLeft), this.opacity = JA(e, Hv, A.opacity);
      var i = JA(e, hv, A.overflow);
      this.overflowX = i[0], this.overflowY = i[i.length > 1 ? 1 : 0], this.overflowWrap = JA(e, dv, A.overflowWrap), this.paddingTop = JA(e, gv, A.paddingTop), this.paddingRight = JA(e, pv, A.paddingRight), this.paddingBottom = JA(e, Bv, A.paddingBottom), this.paddingLeft = JA(e, wv, A.paddingLeft), this.paintOrder = JA(e, qv, A.paintOrder), this.position = JA(e, mv, A.position), this.textAlign = JA(e, vv, A.textAlign), this.textDecorationColor = JA(e, Dv, (r = A.textDecorationColor) !== null && r !== void 0 ? r : A.color), this.textDecorationLine = JA(e, Nv, (n = A.textDecorationLine) !== null && n !== void 0 ? n : A.textDecoration), this.textShadow = JA(e, Cv, A.textShadow), this.textTransform = JA(e, yv, A.textTransform), this.transform = JA(e, Fv, A.transform), this.transformOrigin = JA(e, Ev, A.transformOrigin), this.visibility = JA(e, xv, A.visibility), this.webkitTextStrokeColor = JA(e, Wv, A.webkitTextStrokeColor), this.webkitTextStrokeWidth = JA(e, Xv, A.webkitTextStrokeWidth), this.wordBreak = JA(e, Iv, A.wordBreak), this.zIndex = JA(e, Sv, A.zIndex);
    }
    return t.prototype.isVisible = function() {
      return this.display > 0 && this.opacity > 0 && this.visibility === 0;
    }, t.prototype.isTransparent = function() {
      return On(this.backgroundColor);
    }, t.prototype.isTransformed = function() {
      return this.transform !== null;
    }, t.prototype.isPositioned = function() {
      return this.position !== 0;
    }, t.prototype.isPositionedWithZIndex = function() {
      return this.isPositioned() && !this.zIndex.auto;
    }, t.prototype.isFloating = function() {
      return this.float !== 0;
    }, t.prototype.isInlineLevel = function() {
      return ft(
        this.display,
        4
        /* INLINE */
      ) || ft(
        this.display,
        33554432
        /* INLINE_BLOCK */
      ) || ft(
        this.display,
        268435456
        /* INLINE_FLEX */
      ) || ft(
        this.display,
        536870912
        /* INLINE_GRID */
      ) || ft(
        this.display,
        67108864
        /* INLINE_LIST_ITEM */
      ) || ft(
        this.display,
        134217728
        /* INLINE_TABLE */
      );
    }, t;
  }()
), Jv = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e, A) {
      this.content = JA(e, Ov, A.content), this.quotes = JA(e, Vv, A.quotes);
    }
    return t;
  }()
), Wf = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e, A) {
      this.counterIncrement = JA(e, Kv, A.counterIncrement), this.counterReset = JA(e, Rv, A.counterReset);
    }
    return t;
  }()
), JA = function(t, e, A) {
  var r = new rd(), n = A !== null && typeof A < "u" ? A.toString() : e.initialValue;
  r.write(n);
  var i = new nd(r.read());
  switch (e.type) {
    case 2:
      var s = i.parseComponentValue();
      return e.parse(t, Ne(s) ? s.value : e.initialValue);
    case 0:
      return e.parse(t, i.parseComponentValue());
    case 1:
      return e.parse(t, i.parseComponentValues());
    case 4:
      return i.parseComponentValue();
    case 3:
      switch (e.format) {
        case "angle":
          return al.parse(t, i.parseComponentValue());
        case "color":
          return Pn.parse(t, i.parseComponentValue());
        case "image":
          return Cu.parse(t, i.parseComponentValue());
        case "length":
          var o = i.parseComponentValue();
          return Vn(o) ? o : Ft;
        case "length-percentage":
          var c = i.parseComponentValue();
          return lt(c) ? c : Ft;
        case "time":
          return yd.parse(t, i.parseComponentValue());
      }
      break;
  }
}, Yv = "data-html2canvas-debug", $v = function(t) {
  var e = t.getAttribute(Yv);
  switch (e) {
    case "all":
      return 1;
    case "clone":
      return 2;
    case "parse":
      return 3;
    case "render":
      return 4;
    default:
      return 0;
  }
}, ou = function(t, e) {
  var A = $v(t);
  return A === 1 || e === A;
}, Jr = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e, A) {
      if (this.context = e, this.textNodes = [], this.elements = [], this.flags = 0, ou(
        A,
        3
        /* PARSE */
      ))
        debugger;
      this.styles = new zv(e, window.getComputedStyle(A, null)), uu(A) && (this.styles.animationDuration.some(function(r) {
        return r > 0;
      }) && (A.style.animationDuration = "0s"), this.styles.transform !== null && (A.style.transform = "none")), this.bounds = nl(this.context, A), ou(
        A,
        4
        /* RENDER */
      ) && (this.flags |= 16);
    }
    return t;
  }()
), Zv = "AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=", Xf = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", Za = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var Lo = 0; Lo < Xf.length; Lo++)
  Za[Xf.charCodeAt(Lo)] = Lo;
var Am = function(t) {
  var e = t.length * 0.75, A = t.length, r, n = 0, i, s, o, c;
  t[t.length - 1] === "=" && (e--, t[t.length - 2] === "=" && e--);
  var h = typeof ArrayBuffer < "u" && typeof Uint8Array < "u" && typeof Uint8Array.prototype.slice < "u" ? new ArrayBuffer(e) : new Array(e), p = Array.isArray(h) ? h : new Uint8Array(h);
  for (r = 0; r < A; r += 4)
    i = Za[t.charCodeAt(r)], s = Za[t.charCodeAt(r + 1)], o = Za[t.charCodeAt(r + 2)], c = Za[t.charCodeAt(r + 3)], p[n++] = i << 2 | s >> 4, p[n++] = (s & 15) << 4 | o >> 2, p[n++] = (o & 3) << 6 | c & 63;
  return h;
}, em = function(t) {
  for (var e = t.length, A = [], r = 0; r < e; r += 2)
    A.push(t[r + 1] << 8 | t[r]);
  return A;
}, tm = function(t) {
  for (var e = t.length, A = [], r = 0; r < e; r += 4)
    A.push(t[r + 3] << 24 | t[r + 2] << 16 | t[r + 1] << 8 | t[r]);
  return A;
}, fi = 5, yu = 11, Cc = 2, rm = yu - fi, Fd = 65536 >> fi, nm = 1 << fi, yc = nm - 1, im = 1024 >> fi, am = Fd + im, sm = am, om = 32, lm = sm + om, cm = 65536 >> yu, um = 1 << rm, fm = um - 1, zf = function(t, e, A) {
  return t.slice ? t.slice(e, A) : new Uint16Array(Array.prototype.slice.call(t, e, A));
}, hm = function(t, e, A) {
  return t.slice ? t.slice(e, A) : new Uint32Array(Array.prototype.slice.call(t, e, A));
}, dm = function(t, e) {
  var A = Am(t), r = Array.isArray(A) ? tm(A) : new Uint32Array(A), n = Array.isArray(A) ? em(A) : new Uint16Array(A), i = 24, s = zf(n, i / 2, r[4] / 2), o = r[5] === 2 ? zf(n, (i + r[4]) / 2) : hm(r, Math.ceil((i + r[4]) / 4));
  return new gm(r[0], r[1], r[2], r[3], s, o);
}, gm = (
  /** @class */
  function() {
    function t(e, A, r, n, i, s) {
      this.initialValue = e, this.errorValue = A, this.highStart = r, this.highValueIndex = n, this.index = i, this.data = s;
    }
    return t.prototype.get = function(e) {
      var A;
      if (e >= 0) {
        if (e < 55296 || e > 56319 && e <= 65535)
          return A = this.index[e >> fi], A = (A << Cc) + (e & yc), this.data[A];
        if (e <= 65535)
          return A = this.index[Fd + (e - 55296 >> fi)], A = (A << Cc) + (e & yc), this.data[A];
        if (e < this.highStart)
          return A = lm - cm + (e >> yu), A = this.index[A], A += e >> fi & fm, A = this.index[A], A = (A << Cc) + (e & yc), this.data[A];
        if (e <= 1114111)
          return this.data[this.highValueIndex];
      }
      return this.errorValue;
    }, t;
  }()
), Jf = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", pm = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var Eo = 0; Eo < Jf.length; Eo++)
  pm[Jf.charCodeAt(Eo)] = Eo;
var Bm = 1, Fc = 2, Qc = 3, Yf = 4, $f = 5, wm = 7, Zf = 8, bc = 9, Uc = 10, Ah = 11, eh = 12, th = 13, rh = 14, Lc = 15, vm = function(t) {
  for (var e = [], A = 0, r = t.length; A < r; ) {
    var n = t.charCodeAt(A++);
    if (n >= 55296 && n <= 56319 && A < r) {
      var i = t.charCodeAt(A++);
      (i & 64512) === 56320 ? e.push(((n & 1023) << 10) + (i & 1023) + 65536) : (e.push(n), A--);
    } else
      e.push(n);
  }
  return e;
}, mm = function() {
  for (var t = [], e = 0; e < arguments.length; e++)
    t[e] = arguments[e];
  if (String.fromCodePoint)
    return String.fromCodePoint.apply(String, t);
  var A = t.length;
  if (!A)
    return "";
  for (var r = [], n = -1, i = ""; ++n < A; ) {
    var s = t[n];
    s <= 65535 ? r.push(s) : (s -= 65536, r.push((s >> 10) + 55296, s % 1024 + 56320)), (n + 1 === A || r.length > 16384) && (i += String.fromCharCode.apply(String, r), r.length = 0);
  }
  return i;
}, Cm = dm(Zv), lr = "×", Ec = "÷", ym = function(t) {
  return Cm.get(t);
}, Fm = function(t, e, A) {
  var r = A - 2, n = e[r], i = e[A - 1], s = e[A];
  if (i === Fc && s === Qc)
    return lr;
  if (i === Fc || i === Qc || i === Yf || s === Fc || s === Qc || s === Yf)
    return Ec;
  if (i === Zf && [Zf, bc, Ah, eh].indexOf(s) !== -1 || (i === Ah || i === bc) && (s === bc || s === Uc) || (i === eh || i === Uc) && s === Uc || s === th || s === $f || s === wm || i === Bm)
    return lr;
  if (i === th && s === rh) {
    for (; n === $f; )
      n = e[--r];
    if (n === rh)
      return lr;
  }
  if (i === Lc && s === Lc) {
    for (var o = 0; n === Lc; )
      o++, n = e[--r];
    if (o % 2 === 0)
      return lr;
  }
  return Ec;
}, Qm = function(t) {
  var e = vm(t), A = e.length, r = 0, n = 0, i = e.map(ym);
  return {
    next: function() {
      if (r >= A)
        return { done: !0, value: null };
      for (var s = lr; r < A && (s = Fm(e, i, ++r)) === lr; )
        ;
      if (s !== lr || r === A) {
        var o = mm.apply(null, e.slice(n, r));
        return n = r, { value: o, done: !1 };
      }
      return { done: !0, value: null };
    }
  };
}, bm = function(t) {
  for (var e = Qm(t), A = [], r; !(r = e.next()).done; )
    r.value && A.push(r.value.slice());
  return A;
}, Um = function(t) {
  var e = 123;
  if (t.createRange) {
    var A = t.createRange();
    if (A.getBoundingClientRect) {
      var r = t.createElement("boundtest");
      r.style.height = e + "px", r.style.display = "block", t.body.appendChild(r), A.selectNode(r);
      var n = A.getBoundingClientRect(), i = Math.round(n.height);
      if (t.body.removeChild(r), i === e)
        return !0;
    }
  }
  return !1;
}, Lm = function(t) {
  var e = t.createElement("boundtest");
  e.style.width = "50px", e.style.display = "block", e.style.fontSize = "12px", e.style.letterSpacing = "0px", e.style.wordSpacing = "0px", t.body.appendChild(e);
  var A = t.createRange();
  e.innerHTML = typeof "".repeat == "function" ? "&#128104;".repeat(10) : "";
  var r = e.firstChild, n = il(r.data).map(function(c) {
    return At(c);
  }), i = 0, s = {}, o = n.every(function(c, h) {
    A.setStart(r, i), A.setEnd(r, i + c.length);
    var p = A.getBoundingClientRect();
    i += c.length;
    var d = p.x > s.x || p.y > s.y;
    return s = p, h === 0 ? !0 : d;
  });
  return t.body.removeChild(e), o;
}, Em = function() {
  return typeof new Image().crossOrigin < "u";
}, xm = function() {
  return typeof new XMLHttpRequest().responseType == "string";
}, Im = function(t) {
  var e = new Image(), A = t.createElement("canvas"), r = A.getContext("2d");
  if (!r)
    return !1;
  e.src = "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";
  try {
    r.drawImage(e, 0, 0), A.toDataURL();
  } catch {
    return !1;
  }
  return !0;
}, nh = function(t) {
  return t[0] === 0 && t[1] === 255 && t[2] === 0 && t[3] === 255;
}, Sm = function(t) {
  var e = t.createElement("canvas"), A = 100;
  e.width = A, e.height = A;
  var r = e.getContext("2d");
  if (!r)
    return Promise.reject(!1);
  r.fillStyle = "rgb(0, 255, 0)", r.fillRect(0, 0, A, A);
  var n = new Image(), i = e.toDataURL();
  n.src = i;
  var s = lu(A, A, 0, 0, n);
  return r.fillStyle = "red", r.fillRect(0, 0, A, A), ih(s).then(function(o) {
    r.drawImage(o, 0, 0);
    var c = r.getImageData(0, 0, A, A).data;
    r.fillStyle = "red", r.fillRect(0, 0, A, A);
    var h = t.createElement("div");
    return h.style.backgroundImage = "url(" + i + ")", h.style.height = A + "px", nh(c) ? ih(lu(A, A, 0, 0, h)) : Promise.reject(!1);
  }).then(function(o) {
    return r.drawImage(o, 0, 0), nh(r.getImageData(0, 0, A, A).data);
  }).catch(function() {
    return !1;
  });
}, lu = function(t, e, A, r, n) {
  var i = "http://www.w3.org/2000/svg", s = document.createElementNS(i, "svg"), o = document.createElementNS(i, "foreignObject");
  return s.setAttributeNS(null, "width", t.toString()), s.setAttributeNS(null, "height", e.toString()), o.setAttributeNS(null, "width", "100%"), o.setAttributeNS(null, "height", "100%"), o.setAttributeNS(null, "x", A.toString()), o.setAttributeNS(null, "y", r.toString()), o.setAttributeNS(null, "externalResourcesRequired", "true"), s.appendChild(o), o.appendChild(n), s;
}, ih = function(t) {
  return new Promise(function(e, A) {
    var r = new Image();
    r.onload = function() {
      return e(r);
    }, r.onerror = A, r.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(t));
  });
}, Ct = {
  get SUPPORT_RANGE_BOUNDS() {
    var t = Um(document);
    return Object.defineProperty(Ct, "SUPPORT_RANGE_BOUNDS", { value: t }), t;
  },
  get SUPPORT_WORD_BREAKING() {
    var t = Ct.SUPPORT_RANGE_BOUNDS && Lm(document);
    return Object.defineProperty(Ct, "SUPPORT_WORD_BREAKING", { value: t }), t;
  },
  get SUPPORT_SVG_DRAWING() {
    var t = Im(document);
    return Object.defineProperty(Ct, "SUPPORT_SVG_DRAWING", { value: t }), t;
  },
  get SUPPORT_FOREIGNOBJECT_DRAWING() {
    var t = typeof Array.from == "function" && typeof window.fetch == "function" ? Sm(document) : Promise.resolve(!1);
    return Object.defineProperty(Ct, "SUPPORT_FOREIGNOBJECT_DRAWING", { value: t }), t;
  },
  get SUPPORT_CORS_IMAGES() {
    var t = Em();
    return Object.defineProperty(Ct, "SUPPORT_CORS_IMAGES", { value: t }), t;
  },
  get SUPPORT_RESPONSE_TYPE() {
    var t = xm();
    return Object.defineProperty(Ct, "SUPPORT_RESPONSE_TYPE", { value: t }), t;
  },
  get SUPPORT_CORS_XHR() {
    var t = "withCredentials" in new XMLHttpRequest();
    return Object.defineProperty(Ct, "SUPPORT_CORS_XHR", { value: t }), t;
  },
  get SUPPORT_NATIVE_TEXT_SEGMENTATION() {
    var t = !!(typeof Intl < "u" && Intl.Segmenter);
    return Object.defineProperty(Ct, "SUPPORT_NATIVE_TEXT_SEGMENTATION", { value: t }), t;
  }
}, is = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e, A) {
      this.text = e, this.bounds = A;
    }
    return t;
  }()
), Hm = function(t, e, A, r) {
  var n = km(e, A), i = [], s = 0;
  return n.forEach(function(o) {
    if (A.textDecorationLine.length || o.trim().length > 0)
      if (Ct.SUPPORT_RANGE_BOUNDS) {
        var c = ah(r, s, o.length).getClientRects();
        if (c.length > 1) {
          var h = Fu(o), p = 0;
          h.forEach(function(w) {
            i.push(new is(w, hn.fromDOMRectList(t, ah(r, p + s, w.length).getClientRects()))), p += w.length;
          });
        } else
          i.push(new is(o, hn.fromDOMRectList(t, c)));
      } else {
        var d = r.splitText(o.length);
        i.push(new is(o, Dm(t, r))), r = d;
      }
    else Ct.SUPPORT_RANGE_BOUNDS || (r = r.splitText(o.length));
    s += o.length;
  }), i;
}, Dm = function(t, e) {
  var A = e.ownerDocument;
  if (A) {
    var r = A.createElement("html2canvaswrapper");
    r.appendChild(e.cloneNode(!0));
    var n = e.parentNode;
    if (n) {
      n.replaceChild(r, e);
      var i = nl(t, r);
      return r.firstChild && n.replaceChild(r.firstChild, r), i;
    }
  }
  return hn.EMPTY;
}, ah = function(t, e, A) {
  var r = t.ownerDocument;
  if (!r)
    throw new Error("Node has no owner document");
  var n = r.createRange();
  return n.setStart(t, e), n.setEnd(t, e + A), n;
}, Fu = function(t) {
  if (Ct.SUPPORT_NATIVE_TEXT_SEGMENTATION) {
    var e = new Intl.Segmenter(void 0, { granularity: "grapheme" });
    return Array.from(e.segment(t)).map(function(A) {
      return A.segment;
    });
  }
  return bm(t);
}, Nm = function(t, e) {
  if (Ct.SUPPORT_NATIVE_TEXT_SEGMENTATION) {
    var A = new Intl.Segmenter(void 0, {
      granularity: "word"
    });
    return Array.from(A.segment(t)).map(function(r) {
      return r.segment;
    });
  }
  return Tm(t, e);
}, km = function(t, e) {
  return e.letterSpacing !== 0 ? Fu(t) : Nm(t, e);
}, _m = [32, 160, 4961, 65792, 65793, 4153, 4241], Tm = function(t, e) {
  for (var A = cw(t, {
    lineBreak: e.lineBreak,
    wordBreak: e.overflowWrap === "break-word" ? "break-word" : e.wordBreak
  }), r = [], n, i = function() {
    if (n.value) {
      var s = n.value.slice(), o = il(s), c = "";
      o.forEach(function(h) {
        _m.indexOf(h) === -1 ? c += At(h) : (c.length && r.push(c), r.push(At(h)), c = "");
      }), c.length && r.push(c);
    }
  }; !(n = A.next()).done; )
    i();
  return r;
}, Mm = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e, A, r) {
      this.text = Pm(A.data, r.textTransform), this.textBounds = Hm(e, this.text, r, A);
    }
    return t;
  }()
), Pm = function(t, e) {
  switch (e) {
    case 1:
      return t.toLowerCase();
    case 3:
      return t.replace(Om, Km);
    case 2:
      return t.toUpperCase();
    default:
      return t;
  }
}, Om = /(^|\s|:|-|\(|\))([a-z])/g, Km = function(t, e, A) {
  return t.length > 0 ? e + A.toUpperCase() : t;
}, Qd = (
  /** @class */
  function(t) {
    Hr(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this;
      return n.src = r.currentSrc || r.src, n.intrinsicWidth = r.naturalWidth, n.intrinsicHeight = r.naturalHeight, n.context.cache.addImage(n.src), n;
    }
    return e;
  }(Jr)
), bd = (
  /** @class */
  function(t) {
    Hr(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this;
      return n.canvas = r, n.intrinsicWidth = r.width, n.intrinsicHeight = r.height, n;
    }
    return e;
  }(Jr)
), Ud = (
  /** @class */
  function(t) {
    Hr(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this, i = new XMLSerializer(), s = nl(A, r);
      return r.setAttribute("width", s.width + "px"), r.setAttribute("height", s.height + "px"), n.svg = "data:image/svg+xml," + encodeURIComponent(i.serializeToString(r)), n.intrinsicWidth = r.width.baseVal.value, n.intrinsicHeight = r.height.baseVal.value, n.context.cache.addImage(n.svg), n;
    }
    return e;
  }(Jr)
), Ld = (
  /** @class */
  function(t) {
    Hr(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this;
      return n.value = r.value, n;
    }
    return e;
  }(Jr)
), cu = (
  /** @class */
  function(t) {
    Hr(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this;
      return n.start = r.start, n.reversed = typeof r.reversed == "boolean" && r.reversed === !0, n;
    }
    return e;
  }(Jr)
), Rm = [
  {
    type: 15,
    flags: 0,
    unit: "px",
    number: 3
  }
], Gm = [
  {
    type: 16,
    flags: 0,
    number: 50
  }
], Vm = function(t) {
  return t.width > t.height ? new hn(t.left + (t.width - t.height) / 2, t.top, t.height, t.height) : t.width < t.height ? new hn(t.left, t.top + (t.height - t.width) / 2, t.width, t.width) : t;
}, jm = function(t) {
  var e = t.type === qm ? new Array(t.value.length + 1).join("•") : t.value;
  return e.length === 0 ? t.placeholder || "" : e;
}, Xo = "checkbox", zo = "radio", qm = "password", sh = 707406591, Qu = (
  /** @class */
  function(t) {
    Hr(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this;
      switch (n.type = r.type.toLowerCase(), n.checked = r.checked, n.value = jm(r), (n.type === Xo || n.type === zo) && (n.styles.backgroundColor = 3739148031, n.styles.borderTopColor = n.styles.borderRightColor = n.styles.borderBottomColor = n.styles.borderLeftColor = 2779096575, n.styles.borderTopWidth = n.styles.borderRightWidth = n.styles.borderBottomWidth = n.styles.borderLeftWidth = 1, n.styles.borderTopStyle = n.styles.borderRightStyle = n.styles.borderBottomStyle = n.styles.borderLeftStyle = 1, n.styles.backgroundClip = [
        0
        /* BORDER_BOX */
      ], n.styles.backgroundOrigin = [
        0
        /* BORDER_BOX */
      ], n.bounds = Vm(n.bounds)), n.type) {
        case Xo:
          n.styles.borderTopRightRadius = n.styles.borderTopLeftRadius = n.styles.borderBottomRightRadius = n.styles.borderBottomLeftRadius = Rm;
          break;
        case zo:
          n.styles.borderTopRightRadius = n.styles.borderTopLeftRadius = n.styles.borderBottomRightRadius = n.styles.borderBottomLeftRadius = Gm;
          break;
      }
      return n;
    }
    return e;
  }(Jr)
), Ed = (
  /** @class */
  function(t) {
    Hr(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this, i = r.options[r.selectedIndex || 0];
      return n.value = i && i.text || "", n;
    }
    return e;
  }(Jr)
), xd = (
  /** @class */
  function(t) {
    Hr(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this;
      return n.value = r.value, n;
    }
    return e;
  }(Jr)
), Id = (
  /** @class */
  function(t) {
    Hr(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this;
      n.src = r.src, n.width = parseInt(r.width, 10) || 0, n.height = parseInt(r.height, 10) || 0, n.backgroundColor = n.styles.backgroundColor;
      try {
        if (r.contentWindow && r.contentWindow.document && r.contentWindow.document.documentElement) {
          n.tree = Hd(A, r.contentWindow.document.documentElement);
          var i = r.contentWindow.document.documentElement ? rs(A, getComputedStyle(r.contentWindow.document.documentElement).backgroundColor) : fn.TRANSPARENT, s = r.contentWindow.document.body ? rs(A, getComputedStyle(r.contentWindow.document.body).backgroundColor) : fn.TRANSPARENT;
          n.backgroundColor = On(i) ? On(s) ? n.styles.backgroundColor : s : i;
        }
      } catch {
      }
      return n;
    }
    return e;
  }(Jr)
), Wm = ["OL", "UL", "MENU"], Oo = function(t, e, A, r) {
  for (var n = e.firstChild, i = void 0; n; n = i)
    if (i = n.nextSibling, Dd(n) && n.data.trim().length > 0)
      A.textNodes.push(new Mm(t, n, A.styles));
    else if (na(n))
      if (Td(n) && n.assignedNodes)
        n.assignedNodes().forEach(function(o) {
          return Oo(t, o, A, r);
        });
      else {
        var s = Sd(t, n);
        s.styles.isVisible() && (Xm(n, s, r) ? s.flags |= 4 : zm(s.styles) && (s.flags |= 2), Wm.indexOf(n.tagName) !== -1 && (s.flags |= 8), A.elements.push(s), n.slot, n.shadowRoot ? Oo(t, n.shadowRoot, s, r) : !Jo(n) && !Nd(n) && !Yo(n) && Oo(t, n, s, r));
      }
}, Sd = function(t, e) {
  return fu(e) ? new Qd(t, e) : kd(e) ? new bd(t, e) : Nd(e) ? new Ud(t, e) : Jm(e) ? new Ld(t, e) : Ym(e) ? new cu(t, e) : $m(e) ? new Qu(t, e) : Yo(e) ? new Ed(t, e) : Jo(e) ? new xd(t, e) : _d(e) ? new Id(t, e) : new Jr(t, e);
}, Hd = function(t, e) {
  var A = Sd(t, e);
  return A.flags |= 4, Oo(t, e, A, A), A;
}, Xm = function(t, e, A) {
  return e.styles.isPositionedWithZIndex() || e.styles.opacity < 1 || e.styles.isTransformed() || bu(t) && A.styles.isTransparent();
}, zm = function(t) {
  return t.isPositioned() || t.isFloating();
}, Dd = function(t) {
  return t.nodeType === Node.TEXT_NODE;
}, na = function(t) {
  return t.nodeType === Node.ELEMENT_NODE;
}, uu = function(t) {
  return na(t) && typeof t.style < "u" && !Ko(t);
}, Ko = function(t) {
  return typeof t.className == "object";
}, Jm = function(t) {
  return t.tagName === "LI";
}, Ym = function(t) {
  return t.tagName === "OL";
}, $m = function(t) {
  return t.tagName === "INPUT";
}, Zm = function(t) {
  return t.tagName === "HTML";
}, Nd = function(t) {
  return t.tagName === "svg";
}, bu = function(t) {
  return t.tagName === "BODY";
}, kd = function(t) {
  return t.tagName === "CANVAS";
}, oh = function(t) {
  return t.tagName === "VIDEO";
}, fu = function(t) {
  return t.tagName === "IMG";
}, _d = function(t) {
  return t.tagName === "IFRAME";
}, lh = function(t) {
  return t.tagName === "STYLE";
}, A4 = function(t) {
  return t.tagName === "SCRIPT";
}, Jo = function(t) {
  return t.tagName === "TEXTAREA";
}, Yo = function(t) {
  return t.tagName === "SELECT";
}, Td = function(t) {
  return t.tagName === "SLOT";
}, ch = function(t) {
  return t.tagName.indexOf("-") > 0;
}, e4 = (
  /** @class */
  function() {
    function t() {
      this.counters = {};
    }
    return t.prototype.getCounterValue = function(e) {
      var A = this.counters[e];
      return A && A.length ? A[A.length - 1] : 1;
    }, t.prototype.getCounterValues = function(e) {
      var A = this.counters[e];
      return A || [];
    }, t.prototype.pop = function(e) {
      var A = this;
      e.forEach(function(r) {
        return A.counters[r].pop();
      });
    }, t.prototype.parse = function(e) {
      var A = this, r = e.counterIncrement, n = e.counterReset, i = !0;
      r !== null && r.forEach(function(o) {
        var c = A.counters[o.counter];
        c && o.increment !== 0 && (i = !1, c.length || c.push(1), c[Math.max(0, c.length - 1)] += o.increment);
      });
      var s = [];
      return i && n.forEach(function(o) {
        var c = A.counters[o.counter];
        s.push(o.counter), c || (c = A.counters[o.counter] = []), c.push(o.reset);
      }), s;
    }, t;
  }()
), uh = {
  integers: [1e3, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],
  values: ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"]
}, fh = {
  integers: [
    9e3,
    8e3,
    7e3,
    6e3,
    5e3,
    4e3,
    3e3,
    2e3,
    1e3,
    900,
    800,
    700,
    600,
    500,
    400,
    300,
    200,
    100,
    90,
    80,
    70,
    60,
    50,
    40,
    30,
    20,
    10,
    9,
    8,
    7,
    6,
    5,
    4,
    3,
    2,
    1
  ],
  values: [
    "Ք",
    "Փ",
    "Ւ",
    "Ց",
    "Ր",
    "Տ",
    "Վ",
    "Ս",
    "Ռ",
    "Ջ",
    "Պ",
    "Չ",
    "Ո",
    "Շ",
    "Ն",
    "Յ",
    "Մ",
    "Ճ",
    "Ղ",
    "Ձ",
    "Հ",
    "Կ",
    "Ծ",
    "Խ",
    "Լ",
    "Ի",
    "Ժ",
    "Թ",
    "Ը",
    "Է",
    "Զ",
    "Ե",
    "Դ",
    "Գ",
    "Բ",
    "Ա"
  ]
}, t4 = {
  integers: [
    1e4,
    9e3,
    8e3,
    7e3,
    6e3,
    5e3,
    4e3,
    3e3,
    2e3,
    1e3,
    400,
    300,
    200,
    100,
    90,
    80,
    70,
    60,
    50,
    40,
    30,
    20,
    19,
    18,
    17,
    16,
    15,
    10,
    9,
    8,
    7,
    6,
    5,
    4,
    3,
    2,
    1
  ],
  values: [
    "י׳",
    "ט׳",
    "ח׳",
    "ז׳",
    "ו׳",
    "ה׳",
    "ד׳",
    "ג׳",
    "ב׳",
    "א׳",
    "ת",
    "ש",
    "ר",
    "ק",
    "צ",
    "פ",
    "ע",
    "ס",
    "נ",
    "מ",
    "ל",
    "כ",
    "יט",
    "יח",
    "יז",
    "טז",
    "טו",
    "י",
    "ט",
    "ח",
    "ז",
    "ו",
    "ה",
    "ד",
    "ג",
    "ב",
    "א"
  ]
}, r4 = {
  integers: [
    1e4,
    9e3,
    8e3,
    7e3,
    6e3,
    5e3,
    4e3,
    3e3,
    2e3,
    1e3,
    900,
    800,
    700,
    600,
    500,
    400,
    300,
    200,
    100,
    90,
    80,
    70,
    60,
    50,
    40,
    30,
    20,
    10,
    9,
    8,
    7,
    6,
    5,
    4,
    3,
    2,
    1
  ],
  values: [
    "ჵ",
    "ჰ",
    "ჯ",
    "ჴ",
    "ხ",
    "ჭ",
    "წ",
    "ძ",
    "ც",
    "ჩ",
    "შ",
    "ყ",
    "ღ",
    "ქ",
    "ფ",
    "ჳ",
    "ტ",
    "ს",
    "რ",
    "ჟ",
    "პ",
    "ო",
    "ჲ",
    "ნ",
    "მ",
    "ლ",
    "კ",
    "ი",
    "თ",
    "ჱ",
    "ზ",
    "ვ",
    "ე",
    "დ",
    "გ",
    "ბ",
    "ა"
  ]
}, zi = function(t, e, A, r, n, i) {
  return t < e || t > A ? cs(t, n, i.length > 0) : r.integers.reduce(function(s, o, c) {
    for (; t >= o; )
      t -= o, s += r.values[c];
    return s;
  }, "") + i;
}, Md = function(t, e, A, r) {
  var n = "";
  do
    A || t--, n = r(t) + n, t /= e;
  while (t * e >= e);
  return n;
}, Ze = function(t, e, A, r, n) {
  var i = A - e + 1;
  return (t < 0 ? "-" : "") + (Md(Math.abs(t), i, r, function(s) {
    return At(Math.floor(s % i) + e);
  }) + n);
}, ri = function(t, e, A) {
  A === void 0 && (A = ". ");
  var r = e.length;
  return Md(Math.abs(t), r, !1, function(n) {
    return e[Math.floor(n % r)];
  }) + A;
}, ea = 1, In = 2, Sn = 4, As = 8, cn = function(t, e, A, r, n, i) {
  if (t < -9999 || t > 9999)
    return cs(t, 4, n.length > 0);
  var s = Math.abs(t), o = n;
  if (s === 0)
    return e[0] + o;
  for (var c = 0; s > 0 && c <= 4; c++) {
    var h = s % 10;
    h === 0 && ft(i, ea) && o !== "" ? o = e[h] + o : h > 1 || h === 1 && c === 0 || h === 1 && c === 1 && ft(i, In) || h === 1 && c === 1 && ft(i, Sn) && t > 100 || h === 1 && c > 1 && ft(i, As) ? o = e[h] + (c > 0 ? A[c - 1] : "") + o : h === 1 && c > 0 && (o = A[c - 1] + o), s = Math.floor(s / 10);
  }
  return (t < 0 ? r : "") + o;
}, hh = "十百千萬", dh = "拾佰仟萬", gh = "マイナス", xc = "마이너스", cs = function(t, e, A) {
  var r = A ? ". " : "", n = A ? "、" : "", i = A ? ", " : "", s = A ? " " : "";
  switch (e) {
    case 0:
      return "•" + s;
    case 1:
      return "◦" + s;
    case 2:
      return "◾" + s;
    case 5:
      var o = Ze(t, 48, 57, !0, r);
      return o.length < 4 ? "0" + o : o;
    case 4:
      return ri(t, "〇一二三四五六七八九", n);
    case 6:
      return zi(t, 1, 3999, uh, 3, r).toLowerCase();
    case 7:
      return zi(t, 1, 3999, uh, 3, r);
    case 8:
      return Ze(t, 945, 969, !1, r);
    case 9:
      return Ze(t, 97, 122, !1, r);
    case 10:
      return Ze(t, 65, 90, !1, r);
    case 11:
      return Ze(t, 1632, 1641, !0, r);
    case 12:
    case 49:
      return zi(t, 1, 9999, fh, 3, r);
    case 35:
      return zi(t, 1, 9999, fh, 3, r).toLowerCase();
    case 13:
      return Ze(t, 2534, 2543, !0, r);
    case 14:
    case 30:
      return Ze(t, 6112, 6121, !0, r);
    case 15:
      return ri(t, "子丑寅卯辰巳午未申酉戌亥", n);
    case 16:
      return ri(t, "甲乙丙丁戊己庚辛壬癸", n);
    case 17:
    case 48:
      return cn(t, "零一二三四五六七八九", hh, "負", n, In | Sn | As);
    case 47:
      return cn(t, "零壹貳參肆伍陸柒捌玖", dh, "負", n, ea | In | Sn | As);
    case 42:
      return cn(t, "零一二三四五六七八九", hh, "负", n, In | Sn | As);
    case 41:
      return cn(t, "零壹贰叁肆伍陆柒捌玖", dh, "负", n, ea | In | Sn | As);
    case 26:
      return cn(t, "〇一二三四五六七八九", "十百千万", gh, n, 0);
    case 25:
      return cn(t, "零壱弐参四伍六七八九", "拾百千万", gh, n, ea | In | Sn);
    case 31:
      return cn(t, "영일이삼사오육칠팔구", "십백천만", xc, i, ea | In | Sn);
    case 33:
      return cn(t, "零一二三四五六七八九", "十百千萬", xc, i, 0);
    case 32:
      return cn(t, "零壹貳參四五六七八九", "拾百千", xc, i, ea | In | Sn);
    case 18:
      return Ze(t, 2406, 2415, !0, r);
    case 20:
      return zi(t, 1, 19999, r4, 3, r);
    case 21:
      return Ze(t, 2790, 2799, !0, r);
    case 22:
      return Ze(t, 2662, 2671, !0, r);
    case 22:
      return zi(t, 1, 10999, t4, 3, r);
    case 23:
      return ri(t, "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");
    case 24:
      return ri(t, "いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");
    case 27:
      return Ze(t, 3302, 3311, !0, r);
    case 28:
      return ri(t, "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン", n);
    case 29:
      return ri(t, "イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス", n);
    case 34:
      return Ze(t, 3792, 3801, !0, r);
    case 37:
      return Ze(t, 6160, 6169, !0, r);
    case 38:
      return Ze(t, 4160, 4169, !0, r);
    case 39:
      return Ze(t, 2918, 2927, !0, r);
    case 40:
      return Ze(t, 1776, 1785, !0, r);
    case 43:
      return Ze(t, 3046, 3055, !0, r);
    case 44:
      return Ze(t, 3174, 3183, !0, r);
    case 45:
      return Ze(t, 3664, 3673, !0, r);
    case 46:
      return Ze(t, 3872, 3881, !0, r);
    case 3:
    default:
      return Ze(t, 48, 57, !0, r);
  }
}, Pd = "data-html2canvas-ignore", ph = (
  /** @class */
  function() {
    function t(e, A, r) {
      if (this.context = e, this.options = r, this.scrolledElements = [], this.referenceElement = A, this.counters = new e4(), this.quoteDepth = 0, !A.ownerDocument)
        throw new Error("Cloned element does not have an owner document");
      this.documentElement = this.cloneNode(A.ownerDocument.documentElement, !1);
    }
    return t.prototype.toIFrame = function(e, A) {
      var r = this, n = n4(e, A);
      if (!n.contentWindow)
        return Promise.reject("Unable to find iframe window");
      var i = e.defaultView.pageXOffset, s = e.defaultView.pageYOffset, o = n.contentWindow, c = o.document, h = s4(n).then(function() {
        return _t(r, void 0, void 0, function() {
          var p, d;
          return It(this, function(w) {
            switch (w.label) {
              case 0:
                return this.scrolledElements.forEach(u4), o && (o.scrollTo(A.left, A.top), /(iPad|iPhone|iPod)/g.test(navigator.userAgent) && (o.scrollY !== A.top || o.scrollX !== A.left) && (this.context.logger.warn("Unable to restore scroll position for cloned document"), this.context.windowBounds = this.context.windowBounds.add(o.scrollX - A.left, o.scrollY - A.top, 0, 0))), p = this.options.onclone, d = this.clonedReferenceElement, typeof d > "u" ? [2, Promise.reject("Error finding the " + this.referenceElement.nodeName + " in the cloned document")] : c.fonts && c.fonts.ready ? [4, c.fonts.ready] : [3, 2];
              case 1:
                w.sent(), w.label = 2;
              case 2:
                return /(AppleWebKit)/g.test(navigator.userAgent) ? [4, a4(c)] : [3, 4];
              case 3:
                w.sent(), w.label = 4;
              case 4:
                return typeof p == "function" ? [2, Promise.resolve().then(function() {
                  return p(c, d);
                }).then(function() {
                  return n;
                })] : [2, n];
            }
          });
        });
      });
      return c.open(), c.write(l4(document.doctype) + "<html></html>"), c4(this.referenceElement.ownerDocument, i, s), c.replaceChild(c.adoptNode(this.documentElement), c.documentElement), c.close(), h;
    }, t.prototype.createElementClone = function(e) {
      if (ou(
        e,
        2
        /* CLONE */
      ))
        debugger;
      if (kd(e))
        return this.createCanvasClone(e);
      if (oh(e))
        return this.createVideoClone(e);
      if (lh(e))
        return this.createStyleClone(e);
      var A = e.cloneNode(!1);
      return fu(A) && (fu(e) && e.currentSrc && e.currentSrc !== e.src && (A.src = e.currentSrc, A.srcset = ""), A.loading === "lazy" && (A.loading = "eager")), ch(A) ? this.createCustomElementClone(A) : A;
    }, t.prototype.createCustomElementClone = function(e) {
      var A = document.createElement("html2canvascustomelement");
      return Ic(e.style, A), A;
    }, t.prototype.createStyleClone = function(e) {
      try {
        var A = e.sheet;
        if (A && A.cssRules) {
          var r = [].slice.call(A.cssRules, 0).reduce(function(i, s) {
            return s && typeof s.cssText == "string" ? i + s.cssText : i;
          }, ""), n = e.cloneNode(!1);
          return n.textContent = r, n;
        }
      } catch (i) {
        if (this.context.logger.error("Unable to access cssRules property", i), i.name !== "SecurityError")
          throw i;
      }
      return e.cloneNode(!1);
    }, t.prototype.createCanvasClone = function(e) {
      var A;
      if (this.options.inlineImages && e.ownerDocument) {
        var r = e.ownerDocument.createElement("img");
        try {
          return r.src = e.toDataURL(), r;
        } catch {
          this.context.logger.info("Unable to inline canvas contents, canvas is tainted", e);
        }
      }
      var n = e.cloneNode(!1);
      try {
        n.width = e.width, n.height = e.height;
        var i = e.getContext("2d"), s = n.getContext("2d");
        if (s)
          if (!this.options.allowTaint && i)
            s.putImageData(i.getImageData(0, 0, e.width, e.height), 0, 0);
          else {
            var o = (A = e.getContext("webgl2")) !== null && A !== void 0 ? A : e.getContext("webgl");
            if (o) {
              var c = o.getContextAttributes();
              (c == null ? void 0 : c.preserveDrawingBuffer) === !1 && this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false", e);
            }
            s.drawImage(e, 0, 0);
          }
        return n;
      } catch {
        this.context.logger.info("Unable to clone canvas as it is tainted", e);
      }
      return n;
    }, t.prototype.createVideoClone = function(e) {
      var A = e.ownerDocument.createElement("canvas");
      A.width = e.offsetWidth, A.height = e.offsetHeight;
      var r = A.getContext("2d");
      try {
        return r && (r.drawImage(e, 0, 0, A.width, A.height), this.options.allowTaint || r.getImageData(0, 0, A.width, A.height)), A;
      } catch {
        this.context.logger.info("Unable to clone video as it is tainted", e);
      }
      var n = e.ownerDocument.createElement("canvas");
      return n.width = e.offsetWidth, n.height = e.offsetHeight, n;
    }, t.prototype.appendChildNode = function(e, A, r) {
      (!na(A) || !A4(A) && !A.hasAttribute(Pd) && (typeof this.options.ignoreElements != "function" || !this.options.ignoreElements(A))) && (!this.options.copyStyles || !na(A) || !lh(A)) && e.appendChild(this.cloneNode(A, r));
    }, t.prototype.cloneChildNodes = function(e, A, r) {
      for (var n = this, i = e.shadowRoot ? e.shadowRoot.firstChild : e.firstChild; i; i = i.nextSibling)
        if (na(i) && Td(i) && typeof i.assignedNodes == "function") {
          var s = i.assignedNodes();
          s.length && s.forEach(function(o) {
            return n.appendChildNode(A, o, r);
          });
        } else
          this.appendChildNode(A, i, r);
    }, t.prototype.cloneNode = function(e, A) {
      if (Dd(e))
        return document.createTextNode(e.data);
      if (!e.ownerDocument)
        return e.cloneNode(!1);
      var r = e.ownerDocument.defaultView;
      if (r && na(e) && (uu(e) || Ko(e))) {
        var n = this.createElementClone(e);
        n.style.transitionProperty = "none";
        var i = r.getComputedStyle(e), s = r.getComputedStyle(e, ":before"), o = r.getComputedStyle(e, ":after");
        this.referenceElement === e && uu(n) && (this.clonedReferenceElement = n), bu(n) && d4(n);
        var c = this.counters.parse(new Wf(this.context, i)), h = this.resolvePseudoContent(e, n, s, as.BEFORE);
        ch(e) && (A = !0), oh(e) || this.cloneChildNodes(e, n, A), h && n.insertBefore(h, n.firstChild);
        var p = this.resolvePseudoContent(e, n, o, as.AFTER);
        return p && n.appendChild(p), this.counters.pop(c), (i && (this.options.copyStyles || Ko(e)) && !_d(e) || A) && Ic(i, n), (e.scrollTop !== 0 || e.scrollLeft !== 0) && this.scrolledElements.push([n, e.scrollLeft, e.scrollTop]), (Jo(e) || Yo(e)) && (Jo(n) || Yo(n)) && (n.value = e.value), n;
      }
      return e.cloneNode(!1);
    }, t.prototype.resolvePseudoContent = function(e, A, r, n) {
      var i = this;
      if (r) {
        var s = r.content, o = A.ownerDocument;
        if (!(!o || !s || s === "none" || s === "-moz-alt-content" || r.display === "none")) {
          this.counters.parse(new Wf(this.context, r));
          var c = new Jv(this.context, r), h = o.createElement("html2canvaspseudoelement");
          Ic(r, h), c.content.forEach(function(d) {
            if (d.type === 0)
              h.appendChild(o.createTextNode(d.value));
            else if (d.type === 22) {
              var w = o.createElement("img");
              w.src = d.value, w.style.opacity = "1", h.appendChild(w);
            } else if (d.type === 18) {
              if (d.name === "attr") {
                var g = d.values.filter(Ne);
                g.length && h.appendChild(o.createTextNode(e.getAttribute(g[0].value) || ""));
              } else if (d.name === "counter") {
                var Q = d.values.filter(ca), y = Q[0], N = Q[1];
                if (y && Ne(y)) {
                  var v = i.counters.getCounterValue(y.value), U = N && Ne(N) ? su.parse(i.context, N.value) : 3;
                  h.appendChild(o.createTextNode(cs(v, U, !1)));
                }
              } else if (d.name === "counters") {
                var K = d.values.filter(ca), y = K[0], j = K[1], N = K[2];
                if (y && Ne(y)) {
                  var q = i.counters.getCounterValues(y.value), V = N && Ne(N) ? su.parse(i.context, N.value) : 3, z = j && j.type === 0 ? j.value : "", H = q.map(function(x) {
                    return cs(x, V, !1);
                  }).join(z);
                  h.appendChild(o.createTextNode(H));
                }
              }
            } else if (d.type === 20)
              switch (d.value) {
                case "open-quote":
                  h.appendChild(o.createTextNode(qf(c.quotes, i.quoteDepth++, !0)));
                  break;
                case "close-quote":
                  h.appendChild(o.createTextNode(qf(c.quotes, --i.quoteDepth, !1)));
                  break;
                default:
                  h.appendChild(o.createTextNode(d.value));
              }
          }), h.className = hu + " " + du;
          var p = n === as.BEFORE ? " " + hu : " " + du;
          return Ko(A) ? A.className.baseValue += p : A.className += p, h;
        }
      }
    }, t.destroy = function(e) {
      return e.parentNode ? (e.parentNode.removeChild(e), !0) : !1;
    }, t;
  }()
), as;
(function(t) {
  t[t.BEFORE = 0] = "BEFORE", t[t.AFTER = 1] = "AFTER";
})(as || (as = {}));
var n4 = function(t, e) {
  var A = t.createElement("iframe");
  return A.className = "html2canvas-container", A.style.visibility = "hidden", A.style.position = "fixed", A.style.left = "-10000px", A.style.top = "0px", A.style.border = "0", A.width = e.width.toString(), A.height = e.height.toString(), A.scrolling = "no", A.setAttribute(Pd, "true"), t.body.appendChild(A), A;
}, i4 = function(t) {
  return new Promise(function(e) {
    if (t.complete) {
      e();
      return;
    }
    if (!t.src) {
      e();
      return;
    }
    t.onload = e, t.onerror = e;
  });
}, a4 = function(t) {
  return Promise.all([].slice.call(t.images, 0).map(i4));
}, s4 = function(t) {
  return new Promise(function(e, A) {
    var r = t.contentWindow;
    if (!r)
      return A("No window assigned for iframe");
    var n = r.document;
    r.onload = t.onload = function() {
      r.onload = t.onload = null;
      var i = setInterval(function() {
        n.body.childNodes.length > 0 && n.readyState === "complete" && (clearInterval(i), e(t));
      }, 50);
    };
  });
}, o4 = [
  "all",
  "d",
  "content"
  // Safari shows pseudoelements if content is set
], Ic = function(t, e) {
  for (var A = t.length - 1; A >= 0; A--) {
    var r = t.item(A);
    o4.indexOf(r) === -1 && e.style.setProperty(r, t.getPropertyValue(r));
  }
  return e;
}, l4 = function(t) {
  var e = "";
  return t && (e += "<!DOCTYPE ", t.name && (e += t.name), t.internalSubset && (e += t.internalSubset), t.publicId && (e += '"' + t.publicId + '"'), t.systemId && (e += '"' + t.systemId + '"'), e += ">"), e;
}, c4 = function(t, e, A) {
  t && t.defaultView && (e !== t.defaultView.pageXOffset || A !== t.defaultView.pageYOffset) && t.defaultView.scrollTo(e, A);
}, u4 = function(t) {
  var e = t[0], A = t[1], r = t[2];
  e.scrollLeft = A, e.scrollTop = r;
}, f4 = ":before", h4 = ":after", hu = "___html2canvas___pseudoelement_before", du = "___html2canvas___pseudoelement_after", Bh = `{
    content: "" !important;
    display: none !important;
}`, d4 = function(t) {
  g4(t, "." + hu + f4 + Bh + `
         .` + du + h4 + Bh);
}, g4 = function(t, e) {
  var A = t.ownerDocument;
  if (A) {
    var r = A.createElement("style");
    r.textContent = e, t.appendChild(r);
  }
}, Od = (
  /** @class */
  function() {
    function t() {
    }
    return t.getOrigin = function(e) {
      var A = t._link;
      return A ? (A.href = e, A.href = A.href, A.protocol + A.hostname + A.port) : "about:blank";
    }, t.isSameOrigin = function(e) {
      return t.getOrigin(e) === t._origin;
    }, t.setContext = function(e) {
      t._link = e.document.createElement("a"), t._origin = t.getOrigin(e.location.href);
    }, t._origin = "about:blank", t;
  }()
), p4 = (
  /** @class */
  function() {
    function t(e, A) {
      this.context = e, this._options = A, this._cache = {};
    }
    return t.prototype.addImage = function(e) {
      var A = Promise.resolve();
      return this.has(e) || (Hc(e) || m4(e)) && (this._cache[e] = this.loadImage(e)).catch(function() {
      }), A;
    }, t.prototype.match = function(e) {
      return this._cache[e];
    }, t.prototype.loadImage = function(e) {
      return _t(this, void 0, void 0, function() {
        var A, r, n, i, s = this;
        return It(this, function(o) {
          switch (o.label) {
            case 0:
              return A = Od.isSameOrigin(e), r = !Sc(e) && this._options.useCORS === !0 && Ct.SUPPORT_CORS_IMAGES && !A, n = !Sc(e) && !A && !Hc(e) && typeof this._options.proxy == "string" && Ct.SUPPORT_CORS_XHR && !r, !A && this._options.allowTaint === !1 && !Sc(e) && !Hc(e) && !n && !r ? [
                2
                /*return*/
              ] : (i = e, n ? [4, this.proxy(i)] : [3, 2]);
            case 1:
              i = o.sent(), o.label = 2;
            case 2:
              return this.context.logger.debug("Added image " + e.substring(0, 256)), [4, new Promise(function(c, h) {
                var p = new Image();
                p.onload = function() {
                  return c(p);
                }, p.onerror = h, (C4(i) || r) && (p.crossOrigin = "anonymous"), p.src = i, p.complete === !0 && setTimeout(function() {
                  return c(p);
                }, 500), s._options.imageTimeout > 0 && setTimeout(function() {
                  return h("Timed out (" + s._options.imageTimeout + "ms) loading image");
                }, s._options.imageTimeout);
              })];
            case 3:
              return [2, o.sent()];
          }
        });
      });
    }, t.prototype.has = function(e) {
      return typeof this._cache[e] < "u";
    }, t.prototype.keys = function() {
      return Promise.resolve(Object.keys(this._cache));
    }, t.prototype.proxy = function(e) {
      var A = this, r = this._options.proxy;
      if (!r)
        throw new Error("No proxy defined");
      var n = e.substring(0, 256);
      return new Promise(function(i, s) {
        var o = Ct.SUPPORT_RESPONSE_TYPE ? "blob" : "text", c = new XMLHttpRequest();
        c.onload = function() {
          if (c.status === 200)
            if (o === "text")
              i(c.response);
            else {
              var d = new FileReader();
              d.addEventListener("load", function() {
                return i(d.result);
              }, !1), d.addEventListener("error", function(w) {
                return s(w);
              }, !1), d.readAsDataURL(c.response);
            }
          else
            s("Failed to proxy resource " + n + " with status code " + c.status);
        }, c.onerror = s;
        var h = r.indexOf("?") > -1 ? "&" : "?";
        if (c.open("GET", "" + r + h + "url=" + encodeURIComponent(e) + "&responseType=" + o), o !== "text" && c instanceof XMLHttpRequest && (c.responseType = o), A._options.imageTimeout) {
          var p = A._options.imageTimeout;
          c.timeout = p, c.ontimeout = function() {
            return s("Timed out (" + p + "ms) proxying " + n);
          };
        }
        c.send();
      });
    }, t;
  }()
), B4 = /^data:image\/svg\+xml/i, w4 = /^data:image\/.*;base64,/i, v4 = /^data:image\/.*/i, m4 = function(t) {
  return Ct.SUPPORT_SVG_DRAWING || !y4(t);
}, Sc = function(t) {
  return v4.test(t);
}, C4 = function(t) {
  return w4.test(t);
}, Hc = function(t) {
  return t.substr(0, 4) === "blob";
}, y4 = function(t) {
  return t.substr(-3).toLowerCase() === "svg" || B4.test(t);
}, WA = (
  /** @class */
  function() {
    function t(e, A) {
      this.type = 0, this.x = e, this.y = A;
    }
    return t.prototype.add = function(e, A) {
      return new t(this.x + e, this.y + A);
    }, t;
  }()
), Ji = function(t, e, A) {
  return new WA(t.x + (e.x - t.x) * A, t.y + (e.y - t.y) * A);
}, xo = (
  /** @class */
  function() {
    function t(e, A, r, n) {
      this.type = 1, this.start = e, this.startControl = A, this.endControl = r, this.end = n;
    }
    return t.prototype.subdivide = function(e, A) {
      var r = Ji(this.start, this.startControl, e), n = Ji(this.startControl, this.endControl, e), i = Ji(this.endControl, this.end, e), s = Ji(r, n, e), o = Ji(n, i, e), c = Ji(s, o, e);
      return A ? new t(this.start, r, s, c) : new t(c, o, i, this.end);
    }, t.prototype.add = function(e, A) {
      return new t(this.start.add(e, A), this.startControl.add(e, A), this.endControl.add(e, A), this.end.add(e, A));
    }, t.prototype.reverse = function() {
      return new t(this.end, this.endControl, this.startControl, this.start);
    }, t;
  }()
), ur = function(t) {
  return t.type === 1;
}, F4 = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e) {
      var A = e.styles, r = e.bounds, n = $a(A.borderTopLeftRadius, r.width, r.height), i = n[0], s = n[1], o = $a(A.borderTopRightRadius, r.width, r.height), c = o[0], h = o[1], p = $a(A.borderBottomRightRadius, r.width, r.height), d = p[0], w = p[1], g = $a(A.borderBottomLeftRadius, r.width, r.height), Q = g[0], y = g[1], N = [];
      N.push((i + c) / r.width), N.push((Q + d) / r.width), N.push((s + y) / r.height), N.push((h + w) / r.height);
      var v = Math.max.apply(Math, N);
      v > 1 && (i /= v, s /= v, c /= v, h /= v, d /= v, w /= v, Q /= v, y /= v);
      var U = r.width - c, K = r.height - w, j = r.width - d, q = r.height - y, V = A.borderTopWidth, z = A.borderRightWidth, H = A.borderBottomWidth, G = A.borderLeftWidth, tA = Pe(A.paddingTop, e.bounds.width), x = Pe(A.paddingRight, e.bounds.width), F = Pe(A.paddingBottom, e.bounds.width), _ = Pe(A.paddingLeft, e.bounds.width);
      this.topLeftBorderDoubleOuterBox = i > 0 || s > 0 ? Ge(r.left + G / 3, r.top + V / 3, i - G / 3, s - V / 3, Ee.TOP_LEFT) : new WA(r.left + G / 3, r.top + V / 3), this.topRightBorderDoubleOuterBox = i > 0 || s > 0 ? Ge(r.left + U, r.top + V / 3, c - z / 3, h - V / 3, Ee.TOP_RIGHT) : new WA(r.left + r.width - z / 3, r.top + V / 3), this.bottomRightBorderDoubleOuterBox = d > 0 || w > 0 ? Ge(r.left + j, r.top + K, d - z / 3, w - H / 3, Ee.BOTTOM_RIGHT) : new WA(r.left + r.width - z / 3, r.top + r.height - H / 3), this.bottomLeftBorderDoubleOuterBox = Q > 0 || y > 0 ? Ge(r.left + G / 3, r.top + q, Q - G / 3, y - H / 3, Ee.BOTTOM_LEFT) : new WA(r.left + G / 3, r.top + r.height - H / 3), this.topLeftBorderDoubleInnerBox = i > 0 || s > 0 ? Ge(r.left + G * 2 / 3, r.top + V * 2 / 3, i - G * 2 / 3, s - V * 2 / 3, Ee.TOP_LEFT) : new WA(r.left + G * 2 / 3, r.top + V * 2 / 3), this.topRightBorderDoubleInnerBox = i > 0 || s > 0 ? Ge(r.left + U, r.top + V * 2 / 3, c - z * 2 / 3, h - V * 2 / 3, Ee.TOP_RIGHT) : new WA(r.left + r.width - z * 2 / 3, r.top + V * 2 / 3), this.bottomRightBorderDoubleInnerBox = d > 0 || w > 0 ? Ge(r.left + j, r.top + K, d - z * 2 / 3, w - H * 2 / 3, Ee.BOTTOM_RIGHT) : new WA(r.left + r.width - z * 2 / 3, r.top + r.height - H * 2 / 3), this.bottomLeftBorderDoubleInnerBox = Q > 0 || y > 0 ? Ge(r.left + G * 2 / 3, r.top + q, Q - G * 2 / 3, y - H * 2 / 3, Ee.BOTTOM_LEFT) : new WA(r.left + G * 2 / 3, r.top + r.height - H * 2 / 3), this.topLeftBorderStroke = i > 0 || s > 0 ? Ge(r.left + G / 2, r.top + V / 2, i - G / 2, s - V / 2, Ee.TOP_LEFT) : new WA(r.left + G / 2, r.top + V / 2), this.topRightBorderStroke = i > 0 || s > 0 ? Ge(r.left + U, r.top + V / 2, c - z / 2, h - V / 2, Ee.TOP_RIGHT) : new WA(r.left + r.width - z / 2, r.top + V / 2), this.bottomRightBorderStroke = d > 0 || w > 0 ? Ge(r.left + j, r.top + K, d - z / 2, w - H / 2, Ee.BOTTOM_RIGHT) : new WA(r.left + r.width - z / 2, r.top + r.height - H / 2), this.bottomLeftBorderStroke = Q > 0 || y > 0 ? Ge(r.left + G / 2, r.top + q, Q - G / 2, y - H / 2, Ee.BOTTOM_LEFT) : new WA(r.left + G / 2, r.top + r.height - H / 2), this.topLeftBorderBox = i > 0 || s > 0 ? Ge(r.left, r.top, i, s, Ee.TOP_LEFT) : new WA(r.left, r.top), this.topRightBorderBox = c > 0 || h > 0 ? Ge(r.left + U, r.top, c, h, Ee.TOP_RIGHT) : new WA(r.left + r.width, r.top), this.bottomRightBorderBox = d > 0 || w > 0 ? Ge(r.left + j, r.top + K, d, w, Ee.BOTTOM_RIGHT) : new WA(r.left + r.width, r.top + r.height), this.bottomLeftBorderBox = Q > 0 || y > 0 ? Ge(r.left, r.top + q, Q, y, Ee.BOTTOM_LEFT) : new WA(r.left, r.top + r.height), this.topLeftPaddingBox = i > 0 || s > 0 ? Ge(r.left + G, r.top + V, Math.max(0, i - G), Math.max(0, s - V), Ee.TOP_LEFT) : new WA(r.left + G, r.top + V), this.topRightPaddingBox = c > 0 || h > 0 ? Ge(r.left + Math.min(U, r.width - z), r.top + V, U > r.width + z ? 0 : Math.max(0, c - z), Math.max(0, h - V), Ee.TOP_RIGHT) : new WA(r.left + r.width - z, r.top + V), this.bottomRightPaddingBox = d > 0 || w > 0 ? Ge(r.left + Math.min(j, r.width - G), r.top + Math.min(K, r.height - H), Math.max(0, d - z), Math.max(0, w - H), Ee.BOTTOM_RIGHT) : new WA(r.left + r.width - z, r.top + r.height - H), this.bottomLeftPaddingBox = Q > 0 || y > 0 ? Ge(r.left + G, r.top + Math.min(q, r.height - H), Math.max(0, Q - G), Math.max(0, y - H), Ee.BOTTOM_LEFT) : new WA(r.left + G, r.top + r.height - H), this.topLeftContentBox = i > 0 || s > 0 ? Ge(r.left + G + _, r.top + V + tA, Math.max(0, i - (G + _)), Math.max(0, s - (V + tA)), Ee.TOP_LEFT) : new WA(r.left + G + _, r.top + V + tA), this.topRightContentBox = c > 0 || h > 0 ? Ge(r.left + Math.min(U, r.width + G + _), r.top + V + tA, U > r.width + G + _ ? 0 : c - G + _, h - (V + tA), Ee.TOP_RIGHT) : new WA(r.left + r.width - (z + x), r.top + V + tA), this.bottomRightContentBox = d > 0 || w > 0 ? Ge(r.left + Math.min(j, r.width - (G + _)), r.top + Math.min(K, r.height + V + tA), Math.max(0, d - (z + x)), w - (H + F), Ee.BOTTOM_RIGHT) : new WA(r.left + r.width - (z + x), r.top + r.height - (H + F)), this.bottomLeftContentBox = Q > 0 || y > 0 ? Ge(r.left + G + _, r.top + q, Math.max(0, Q - (G + _)), y - (H + F), Ee.BOTTOM_LEFT) : new WA(r.left + G + _, r.top + r.height - (H + F));
    }
    return t;
  }()
), Ee;
(function(t) {
  t[t.TOP_LEFT = 0] = "TOP_LEFT", t[t.TOP_RIGHT = 1] = "TOP_RIGHT", t[t.BOTTOM_RIGHT = 2] = "BOTTOM_RIGHT", t[t.BOTTOM_LEFT = 3] = "BOTTOM_LEFT";
})(Ee || (Ee = {}));
var Ge = function(t, e, A, r, n) {
  var i = 4 * ((Math.sqrt(2) - 1) / 3), s = A * i, o = r * i, c = t + A, h = e + r;
  switch (n) {
    case Ee.TOP_LEFT:
      return new xo(new WA(t, h), new WA(t, h - o), new WA(c - s, e), new WA(c, e));
    case Ee.TOP_RIGHT:
      return new xo(new WA(t, e), new WA(t + s, e), new WA(c, h - o), new WA(c, h));
    case Ee.BOTTOM_RIGHT:
      return new xo(new WA(c, e), new WA(c, e + o), new WA(t + s, h), new WA(t, h));
    case Ee.BOTTOM_LEFT:
    default:
      return new xo(new WA(c, h), new WA(c - s, h), new WA(t, e + o), new WA(t, e));
  }
}, $o = function(t) {
  return [t.topLeftBorderBox, t.topRightBorderBox, t.bottomRightBorderBox, t.bottomLeftBorderBox];
}, Q4 = function(t) {
  return [
    t.topLeftContentBox,
    t.topRightContentBox,
    t.bottomRightContentBox,
    t.bottomLeftContentBox
  ];
}, Zo = function(t) {
  return [
    t.topLeftPaddingBox,
    t.topRightPaddingBox,
    t.bottomRightPaddingBox,
    t.bottomLeftPaddingBox
  ];
}, b4 = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e, A, r) {
      this.offsetX = e, this.offsetY = A, this.matrix = r, this.type = 0, this.target = 6;
    }
    return t;
  }()
), Io = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e, A) {
      this.path = e, this.target = A, this.type = 1;
    }
    return t;
  }()
), U4 = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e) {
      this.opacity = e, this.type = 2, this.target = 6;
    }
    return t;
  }()
), L4 = function(t) {
  return t.type === 0;
}, Kd = function(t) {
  return t.type === 1;
}, E4 = function(t) {
  return t.type === 2;
}, wh = function(t, e) {
  return t.length === e.length ? t.some(function(A, r) {
    return A === e[r];
  }) : !1;
}, x4 = function(t, e, A, r, n) {
  return t.map(function(i, s) {
    switch (s) {
      case 0:
        return i.add(e, A);
      case 1:
        return i.add(e + r, A);
      case 2:
        return i.add(e + r, A + n);
      case 3:
        return i.add(e, A + n);
    }
    return i;
  });
}, Rd = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e) {
      this.element = e, this.inlineLevel = [], this.nonInlineLevel = [], this.negativeZIndex = [], this.zeroOrAutoZIndexOrTransformedOrOpacity = [], this.positiveZIndex = [], this.nonPositionedFloats = [], this.nonPositionedInlineLevel = [];
    }
    return t;
  }()
), Gd = (
  /** @class */
  function() {
    function t(e, A) {
      if (this.container = e, this.parent = A, this.effects = [], this.curves = new F4(this.container), this.container.styles.opacity < 1 && this.effects.push(new U4(this.container.styles.opacity)), this.container.styles.transform !== null) {
        var r = this.container.bounds.left + this.container.styles.transformOrigin[0].number, n = this.container.bounds.top + this.container.styles.transformOrigin[1].number, i = this.container.styles.transform;
        this.effects.push(new b4(r, n, i));
      }
      if (this.container.styles.overflowX !== 0) {
        var s = $o(this.curves), o = Zo(this.curves);
        wh(s, o) ? this.effects.push(new Io(
          s,
          6
          /* CONTENT */
        )) : (this.effects.push(new Io(
          s,
          2
          /* BACKGROUND_BORDERS */
        )), this.effects.push(new Io(
          o,
          4
          /* CONTENT */
        )));
      }
    }
    return t.prototype.getEffects = function(e) {
      for (var A = [
        2,
        3
        /* FIXED */
      ].indexOf(this.container.styles.position) === -1, r = this.parent, n = this.effects.slice(0); r; ) {
        var i = r.effects.filter(function(c) {
          return !Kd(c);
        });
        if (A || r.container.styles.position !== 0 || !r.parent) {
          if (n.unshift.apply(n, i), A = [
            2,
            3
            /* FIXED */
          ].indexOf(r.container.styles.position) === -1, r.container.styles.overflowX !== 0) {
            var s = $o(r.curves), o = Zo(r.curves);
            wh(s, o) || n.unshift(new Io(
              o,
              6
              /* CONTENT */
            ));
          }
        } else
          n.unshift.apply(n, i);
        r = r.parent;
      }
      return n.filter(function(c) {
        return ft(c.target, e);
      });
    }, t;
  }()
), gu = function(t, e, A, r) {
  t.container.elements.forEach(function(n) {
    var i = ft(
      n.flags,
      4
      /* CREATES_REAL_STACKING_CONTEXT */
    ), s = ft(
      n.flags,
      2
      /* CREATES_STACKING_CONTEXT */
    ), o = new Gd(n, t);
    ft(
      n.styles.display,
      2048
      /* LIST_ITEM */
    ) && r.push(o);
    var c = ft(
      n.flags,
      8
      /* IS_LIST_OWNER */
    ) ? [] : r;
    if (i || s) {
      var h = i || n.styles.isPositioned() ? A : e, p = new Rd(o);
      if (n.styles.isPositioned() || n.styles.opacity < 1 || n.styles.isTransformed()) {
        var d = n.styles.zIndex.order;
        if (d < 0) {
          var w = 0;
          h.negativeZIndex.some(function(Q, y) {
            return d > Q.element.container.styles.zIndex.order ? (w = y, !1) : w > 0;
          }), h.negativeZIndex.splice(w, 0, p);
        } else if (d > 0) {
          var g = 0;
          h.positiveZIndex.some(function(Q, y) {
            return d >= Q.element.container.styles.zIndex.order ? (g = y + 1, !1) : g > 0;
          }), h.positiveZIndex.splice(g, 0, p);
        } else
          h.zeroOrAutoZIndexOrTransformedOrOpacity.push(p);
      } else
        n.styles.isFloating() ? h.nonPositionedFloats.push(p) : h.nonPositionedInlineLevel.push(p);
      gu(o, p, i ? p : A, c);
    } else
      n.styles.isInlineLevel() ? e.inlineLevel.push(o) : e.nonInlineLevel.push(o), gu(o, e, A, c);
    ft(
      n.flags,
      8
      /* IS_LIST_OWNER */
    ) && Vd(n, c);
  });
}, Vd = function(t, e) {
  for (var A = t instanceof cu ? t.start : 1, r = t instanceof cu ? t.reversed : !1, n = 0; n < e.length; n++) {
    var i = e[n];
    i.container instanceof Ld && typeof i.container.value == "number" && i.container.value !== 0 && (A = i.container.value), i.listValue = cs(A, i.container.styles.listStyleType, !0), A += r ? -1 : 1;
  }
}, I4 = function(t) {
  var e = new Gd(t, null), A = new Rd(e), r = [];
  return gu(e, A, A, r), Vd(e.container, r), A;
}, vh = function(t, e) {
  switch (e) {
    case 0:
      return hr(t.topLeftBorderBox, t.topLeftPaddingBox, t.topRightBorderBox, t.topRightPaddingBox);
    case 1:
      return hr(t.topRightBorderBox, t.topRightPaddingBox, t.bottomRightBorderBox, t.bottomRightPaddingBox);
    case 2:
      return hr(t.bottomRightBorderBox, t.bottomRightPaddingBox, t.bottomLeftBorderBox, t.bottomLeftPaddingBox);
    case 3:
    default:
      return hr(t.bottomLeftBorderBox, t.bottomLeftPaddingBox, t.topLeftBorderBox, t.topLeftPaddingBox);
  }
}, S4 = function(t, e) {
  switch (e) {
    case 0:
      return hr(t.topLeftBorderBox, t.topLeftBorderDoubleOuterBox, t.topRightBorderBox, t.topRightBorderDoubleOuterBox);
    case 1:
      return hr(t.topRightBorderBox, t.topRightBorderDoubleOuterBox, t.bottomRightBorderBox, t.bottomRightBorderDoubleOuterBox);
    case 2:
      return hr(t.bottomRightBorderBox, t.bottomRightBorderDoubleOuterBox, t.bottomLeftBorderBox, t.bottomLeftBorderDoubleOuterBox);
    case 3:
    default:
      return hr(t.bottomLeftBorderBox, t.bottomLeftBorderDoubleOuterBox, t.topLeftBorderBox, t.topLeftBorderDoubleOuterBox);
  }
}, H4 = function(t, e) {
  switch (e) {
    case 0:
      return hr(t.topLeftBorderDoubleInnerBox, t.topLeftPaddingBox, t.topRightBorderDoubleInnerBox, t.topRightPaddingBox);
    case 1:
      return hr(t.topRightBorderDoubleInnerBox, t.topRightPaddingBox, t.bottomRightBorderDoubleInnerBox, t.bottomRightPaddingBox);
    case 2:
      return hr(t.bottomRightBorderDoubleInnerBox, t.bottomRightPaddingBox, t.bottomLeftBorderDoubleInnerBox, t.bottomLeftPaddingBox);
    case 3:
    default:
      return hr(t.bottomLeftBorderDoubleInnerBox, t.bottomLeftPaddingBox, t.topLeftBorderDoubleInnerBox, t.topLeftPaddingBox);
  }
}, D4 = function(t, e) {
  switch (e) {
    case 0:
      return So(t.topLeftBorderStroke, t.topRightBorderStroke);
    case 1:
      return So(t.topRightBorderStroke, t.bottomRightBorderStroke);
    case 2:
      return So(t.bottomRightBorderStroke, t.bottomLeftBorderStroke);
    case 3:
    default:
      return So(t.bottomLeftBorderStroke, t.topLeftBorderStroke);
  }
}, So = function(t, e) {
  var A = [];
  return ur(t) ? A.push(t.subdivide(0.5, !1)) : A.push(t), ur(e) ? A.push(e.subdivide(0.5, !0)) : A.push(e), A;
}, hr = function(t, e, A, r) {
  var n = [];
  return ur(t) ? n.push(t.subdivide(0.5, !1)) : n.push(t), ur(A) ? n.push(A.subdivide(0.5, !0)) : n.push(A), ur(r) ? n.push(r.subdivide(0.5, !0).reverse()) : n.push(r), ur(e) ? n.push(e.subdivide(0.5, !1).reverse()) : n.push(e), n;
}, jd = function(t) {
  var e = t.bounds, A = t.styles;
  return e.add(A.borderLeftWidth, A.borderTopWidth, -(A.borderRightWidth + A.borderLeftWidth), -(A.borderTopWidth + A.borderBottomWidth));
}, Al = function(t) {
  var e = t.styles, A = t.bounds, r = Pe(e.paddingLeft, A.width), n = Pe(e.paddingRight, A.width), i = Pe(e.paddingTop, A.width), s = Pe(e.paddingBottom, A.width);
  return A.add(r + e.borderLeftWidth, i + e.borderTopWidth, -(e.borderRightWidth + e.borderLeftWidth + r + n), -(e.borderTopWidth + e.borderBottomWidth + i + s));
}, N4 = function(t, e) {
  return t === 0 ? e.bounds : t === 2 ? Al(e) : jd(e);
}, k4 = function(t, e) {
  return t === 0 ? e.bounds : t === 2 ? Al(e) : jd(e);
}, Dc = function(t, e, A) {
  var r = N4(ta(t.styles.backgroundOrigin, e), t), n = k4(ta(t.styles.backgroundClip, e), t), i = _4(ta(t.styles.backgroundSize, e), A, r), s = i[0], o = i[1], c = $a(ta(t.styles.backgroundPosition, e), r.width - s, r.height - o), h = T4(ta(t.styles.backgroundRepeat, e), c, i, r, n), p = Math.round(r.left + c[0]), d = Math.round(r.top + c[1]);
  return [h, p, d, s, o];
}, Yi = function(t) {
  return Ne(t) && t.value === la.AUTO;
}, Ho = function(t) {
  return typeof t == "number";
}, _4 = function(t, e, A) {
  var r = e[0], n = e[1], i = e[2], s = t[0], o = t[1];
  if (!s)
    return [0, 0];
  if (lt(s) && o && lt(o))
    return [Pe(s, A.width), Pe(o, A.height)];
  var c = Ho(i);
  if (Ne(s) && (s.value === la.CONTAIN || s.value === la.COVER)) {
    if (Ho(i)) {
      var h = A.width / A.height;
      return h < i != (s.value === la.COVER) ? [A.width, A.width / i] : [A.height * i, A.height];
    }
    return [A.width, A.height];
  }
  var p = Ho(r), d = Ho(n), w = p || d;
  if (Yi(s) && (!o || Yi(o))) {
    if (p && d)
      return [r, n];
    if (!c && !w)
      return [A.width, A.height];
    if (w && c) {
      var g = p ? r : n * i, Q = d ? n : r / i;
      return [g, Q];
    }
    var y = p ? r : A.width, N = d ? n : A.height;
    return [y, N];
  }
  if (c) {
    var v = 0, U = 0;
    return lt(s) ? v = Pe(s, A.width) : lt(o) && (U = Pe(o, A.height)), Yi(s) ? v = U * i : (!o || Yi(o)) && (U = v / i), [v, U];
  }
  var K = null, j = null;
  if (lt(s) ? K = Pe(s, A.width) : o && lt(o) && (j = Pe(o, A.height)), K !== null && (!o || Yi(o)) && (j = p && d ? K / r * n : A.height), j !== null && Yi(s) && (K = p && d ? j / n * r : A.width), K !== null && j !== null)
    return [K, j];
  throw new Error("Unable to calculate background-size for element");
}, ta = function(t, e) {
  var A = t[e];
  return typeof A > "u" ? t[0] : A;
}, T4 = function(t, e, A, r, n) {
  var i = e[0], s = e[1], o = A[0], c = A[1];
  switch (t) {
    case 2:
      return [
        new WA(Math.round(r.left), Math.round(r.top + s)),
        new WA(Math.round(r.left + r.width), Math.round(r.top + s)),
        new WA(Math.round(r.left + r.width), Math.round(c + r.top + s)),
        new WA(Math.round(r.left), Math.round(c + r.top + s))
      ];
    case 3:
      return [
        new WA(Math.round(r.left + i), Math.round(r.top)),
        new WA(Math.round(r.left + i + o), Math.round(r.top)),
        new WA(Math.round(r.left + i + o), Math.round(r.height + r.top)),
        new WA(Math.round(r.left + i), Math.round(r.height + r.top))
      ];
    case 1:
      return [
        new WA(Math.round(r.left + i), Math.round(r.top + s)),
        new WA(Math.round(r.left + i + o), Math.round(r.top + s)),
        new WA(Math.round(r.left + i + o), Math.round(r.top + s + c)),
        new WA(Math.round(r.left + i), Math.round(r.top + s + c))
      ];
    default:
      return [
        new WA(Math.round(n.left), Math.round(n.top)),
        new WA(Math.round(n.left + n.width), Math.round(n.top)),
        new WA(Math.round(n.left + n.width), Math.round(n.height + n.top)),
        new WA(Math.round(n.left), Math.round(n.height + n.top))
      ];
  }
}, M4 = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", mh = "Hidden Text", P4 = (
  /** @class */
  function() {
    function t(e) {
      this._data = {}, this._document = e;
    }
    return t.prototype.parseMetrics = function(e, A) {
      var r = this._document.createElement("div"), n = this._document.createElement("img"), i = this._document.createElement("span"), s = this._document.body;
      r.style.visibility = "hidden", r.style.fontFamily = e, r.style.fontSize = A, r.style.margin = "0", r.style.padding = "0", r.style.whiteSpace = "nowrap", s.appendChild(r), n.src = M4, n.width = 1, n.height = 1, n.style.margin = "0", n.style.padding = "0", n.style.verticalAlign = "baseline", i.style.fontFamily = e, i.style.fontSize = A, i.style.margin = "0", i.style.padding = "0", i.appendChild(this._document.createTextNode(mh)), r.appendChild(i), r.appendChild(n);
      var o = n.offsetTop - i.offsetTop + 2;
      r.removeChild(i), r.appendChild(this._document.createTextNode(mh)), r.style.lineHeight = "normal", n.style.verticalAlign = "super";
      var c = n.offsetTop - r.offsetTop + 2;
      return s.removeChild(r), { baseline: o, middle: c };
    }, t.prototype.getMetrics = function(e, A) {
      var r = e + " " + A;
      return typeof this._data[r] > "u" && (this._data[r] = this.parseMetrics(e, A)), this._data[r];
    }, t;
  }()
), qd = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e, A) {
      this.context = e, this.options = A;
    }
    return t;
  }()
), O4 = 1e4, K4 = (
  /** @class */
  function(t) {
    Hr(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this;
      return n._activeEffects = [], n.canvas = r.canvas ? r.canvas : document.createElement("canvas"), n.ctx = n.canvas.getContext("2d"), r.canvas || (n.canvas.width = Math.floor(r.width * r.scale), n.canvas.height = Math.floor(r.height * r.scale), n.canvas.style.width = r.width + "px", n.canvas.style.height = r.height + "px"), n.fontMetrics = new P4(document), n.ctx.scale(n.options.scale, n.options.scale), n.ctx.translate(-r.x, -r.y), n.ctx.textBaseline = "bottom", n._activeEffects = [], n.context.logger.debug("Canvas renderer initialized (" + r.width + "x" + r.height + ") with scale " + r.scale), n;
    }
    return e.prototype.applyEffects = function(A) {
      for (var r = this; this._activeEffects.length; )
        this.popEffect();
      A.forEach(function(n) {
        return r.applyEffect(n);
      });
    }, e.prototype.applyEffect = function(A) {
      this.ctx.save(), E4(A) && (this.ctx.globalAlpha = A.opacity), L4(A) && (this.ctx.translate(A.offsetX, A.offsetY), this.ctx.transform(A.matrix[0], A.matrix[1], A.matrix[2], A.matrix[3], A.matrix[4], A.matrix[5]), this.ctx.translate(-A.offsetX, -A.offsetY)), Kd(A) && (this.path(A.path), this.ctx.clip()), this._activeEffects.push(A);
    }, e.prototype.popEffect = function() {
      this._activeEffects.pop(), this.ctx.restore();
    }, e.prototype.renderStack = function(A) {
      return _t(this, void 0, void 0, function() {
        var r;
        return It(this, function(n) {
          switch (n.label) {
            case 0:
              return r = A.element.container.styles, r.isVisible() ? [4, this.renderStackContent(A)] : [3, 2];
            case 1:
              n.sent(), n.label = 2;
            case 2:
              return [
                2
                /*return*/
              ];
          }
        });
      });
    }, e.prototype.renderNode = function(A) {
      return _t(this, void 0, void 0, function() {
        return It(this, function(r) {
          switch (r.label) {
            case 0:
              if (ft(
                A.container.flags,
                16
                /* DEBUG_RENDER */
              ))
                debugger;
              return A.container.styles.isVisible() ? [4, this.renderNodeBackgroundAndBorders(A)] : [3, 3];
            case 1:
              return r.sent(), [4, this.renderNodeContent(A)];
            case 2:
              r.sent(), r.label = 3;
            case 3:
              return [
                2
                /*return*/
              ];
          }
        });
      });
    }, e.prototype.renderTextWithLetterSpacing = function(A, r, n) {
      var i = this;
      if (r === 0)
        this.ctx.fillText(A.text, A.bounds.left, A.bounds.top + n);
      else {
        var s = Fu(A.text);
        s.reduce(function(o, c) {
          return i.ctx.fillText(c, o, A.bounds.top + n), o + i.ctx.measureText(c).width;
        }, A.bounds.left);
      }
    }, e.prototype.createFontStyle = function(A) {
      var r = A.fontVariant.filter(function(s) {
        return s === "normal" || s === "small-caps";
      }).join(""), n = q4(A.fontFamily).join(", "), i = fs(A.fontSize) ? "" + A.fontSize.number + A.fontSize.unit : A.fontSize.number + "px";
      return [
        [A.fontStyle, r, A.fontWeight, i, n].join(" "),
        n,
        i
      ];
    }, e.prototype.renderTextNode = function(A, r) {
      return _t(this, void 0, void 0, function() {
        var n, i, s, o, c, h, p, d, w = this;
        return It(this, function(g) {
          return n = this.createFontStyle(r), i = n[0], s = n[1], o = n[2], this.ctx.font = i, this.ctx.direction = r.direction === 1 ? "rtl" : "ltr", this.ctx.textAlign = "left", this.ctx.textBaseline = "alphabetic", c = this.fontMetrics.getMetrics(s, o), h = c.baseline, p = c.middle, d = r.paintOrder, A.textBounds.forEach(function(Q) {
            d.forEach(function(y) {
              switch (y) {
                case 0:
                  w.ctx.fillStyle = pt(r.color), w.renderTextWithLetterSpacing(Q, r.letterSpacing, h);
                  var N = r.textShadow;
                  N.length && Q.text.trim().length && (N.slice(0).reverse().forEach(function(v) {
                    w.ctx.shadowColor = pt(v.color), w.ctx.shadowOffsetX = v.offsetX.number * w.options.scale, w.ctx.shadowOffsetY = v.offsetY.number * w.options.scale, w.ctx.shadowBlur = v.blur.number, w.renderTextWithLetterSpacing(Q, r.letterSpacing, h);
                  }), w.ctx.shadowColor = "", w.ctx.shadowOffsetX = 0, w.ctx.shadowOffsetY = 0, w.ctx.shadowBlur = 0), r.textDecorationLine.length && (w.ctx.fillStyle = pt(r.textDecorationColor || r.color), r.textDecorationLine.forEach(function(v) {
                    switch (v) {
                      case 1:
                        w.ctx.fillRect(Q.bounds.left, Math.round(Q.bounds.top + h), Q.bounds.width, 1);
                        break;
                      case 2:
                        w.ctx.fillRect(Q.bounds.left, Math.round(Q.bounds.top), Q.bounds.width, 1);
                        break;
                      case 3:
                        w.ctx.fillRect(Q.bounds.left, Math.ceil(Q.bounds.top + p), Q.bounds.width, 1);
                        break;
                    }
                  }));
                  break;
                case 1:
                  r.webkitTextStrokeWidth && Q.text.trim().length && (w.ctx.strokeStyle = pt(r.webkitTextStrokeColor), w.ctx.lineWidth = r.webkitTextStrokeWidth, w.ctx.lineJoin = window.chrome ? "miter" : "round", w.ctx.strokeText(Q.text, Q.bounds.left, Q.bounds.top + h)), w.ctx.strokeStyle = "", w.ctx.lineWidth = 0, w.ctx.lineJoin = "miter";
                  break;
              }
            });
          }), [
            2
            /*return*/
          ];
        });
      });
    }, e.prototype.renderReplacedElement = function(A, r, n) {
      if (n && A.intrinsicWidth > 0 && A.intrinsicHeight > 0) {
        var i = Al(A), s = Zo(r);
        this.path(s), this.ctx.save(), this.ctx.clip(), this.ctx.drawImage(n, 0, 0, A.intrinsicWidth, A.intrinsicHeight, i.left, i.top, i.width, i.height), this.ctx.restore();
      }
    }, e.prototype.renderNodeContent = function(A) {
      return _t(this, void 0, void 0, function() {
        var r, n, i, s, o, c, U, U, h, p, d, w, j, g, Q, q, y, N, v, U, K, j, q;
        return It(this, function(V) {
          switch (V.label) {
            case 0:
              this.applyEffects(A.getEffects(
                4
                /* CONTENT */
              )), r = A.container, n = A.curves, i = r.styles, s = 0, o = r.textNodes, V.label = 1;
            case 1:
              return s < o.length ? (c = o[s], [4, this.renderTextNode(c, i)]) : [3, 4];
            case 2:
              V.sent(), V.label = 3;
            case 3:
              return s++, [3, 1];
            case 4:
              if (!(r instanceof Qd)) return [3, 8];
              V.label = 5;
            case 5:
              return V.trys.push([5, 7, , 8]), [4, this.context.cache.match(r.src)];
            case 6:
              return U = V.sent(), this.renderReplacedElement(r, n, U), [3, 8];
            case 7:
              return V.sent(), this.context.logger.error("Error loading image " + r.src), [3, 8];
            case 8:
              if (r instanceof bd && this.renderReplacedElement(r, n, r.canvas), !(r instanceof Ud)) return [3, 12];
              V.label = 9;
            case 9:
              return V.trys.push([9, 11, , 12]), [4, this.context.cache.match(r.svg)];
            case 10:
              return U = V.sent(), this.renderReplacedElement(r, n, U), [3, 12];
            case 11:
              return V.sent(), this.context.logger.error("Error loading svg " + r.svg.substring(0, 255)), [3, 12];
            case 12:
              return r instanceof Id && r.tree ? (h = new e(this.context, {
                scale: this.options.scale,
                backgroundColor: r.backgroundColor,
                x: 0,
                y: 0,
                width: r.width,
                height: r.height
              }), [4, h.render(r.tree)]) : [3, 14];
            case 13:
              p = V.sent(), r.width && r.height && this.ctx.drawImage(p, 0, 0, r.width, r.height, r.bounds.left, r.bounds.top, r.bounds.width, r.bounds.height), V.label = 14;
            case 14:
              if (r instanceof Qu && (d = Math.min(r.bounds.width, r.bounds.height), r.type === Xo ? r.checked && (this.ctx.save(), this.path([
                new WA(r.bounds.left + d * 0.39363, r.bounds.top + d * 0.79),
                new WA(r.bounds.left + d * 0.16, r.bounds.top + d * 0.5549),
                new WA(r.bounds.left + d * 0.27347, r.bounds.top + d * 0.44071),
                new WA(r.bounds.left + d * 0.39694, r.bounds.top + d * 0.5649),
                new WA(r.bounds.left + d * 0.72983, r.bounds.top + d * 0.23),
                new WA(r.bounds.left + d * 0.84, r.bounds.top + d * 0.34085),
                new WA(r.bounds.left + d * 0.39363, r.bounds.top + d * 0.79)
              ]), this.ctx.fillStyle = pt(sh), this.ctx.fill(), this.ctx.restore()) : r.type === zo && r.checked && (this.ctx.save(), this.ctx.beginPath(), this.ctx.arc(r.bounds.left + d / 2, r.bounds.top + d / 2, d / 4, 0, Math.PI * 2, !0), this.ctx.fillStyle = pt(sh), this.ctx.fill(), this.ctx.restore())), R4(r) && r.value.length) {
                switch (w = this.createFontStyle(i), j = w[0], g = w[1], Q = this.fontMetrics.getMetrics(j, g).baseline, this.ctx.font = j, this.ctx.fillStyle = pt(i.color), this.ctx.textBaseline = "alphabetic", this.ctx.textAlign = V4(r.styles.textAlign), q = Al(r), y = 0, r.styles.textAlign) {
                  case 1:
                    y += q.width / 2;
                    break;
                  case 2:
                    y += q.width;
                    break;
                }
                N = q.add(y, 0, 0, -q.height / 2 + 1), this.ctx.save(), this.path([
                  new WA(q.left, q.top),
                  new WA(q.left + q.width, q.top),
                  new WA(q.left + q.width, q.top + q.height),
                  new WA(q.left, q.top + q.height)
                ]), this.ctx.clip(), this.renderTextWithLetterSpacing(new is(r.value, N), i.letterSpacing, Q), this.ctx.restore(), this.ctx.textBaseline = "alphabetic", this.ctx.textAlign = "left";
              }
              if (!ft(
                r.styles.display,
                2048
                /* LIST_ITEM */
              )) return [3, 20];
              if (r.styles.listStyleImage === null) return [3, 19];
              if (v = r.styles.listStyleImage, v.type !== 0) return [3, 18];
              U = void 0, K = v.url, V.label = 15;
            case 15:
              return V.trys.push([15, 17, , 18]), [4, this.context.cache.match(K)];
            case 16:
              return U = V.sent(), this.ctx.drawImage(U, r.bounds.left - (U.width + 10), r.bounds.top), [3, 18];
            case 17:
              return V.sent(), this.context.logger.error("Error loading list-style-image " + K), [3, 18];
            case 18:
              return [3, 20];
            case 19:
              A.listValue && r.styles.listStyleType !== -1 && (j = this.createFontStyle(i)[0], this.ctx.font = j, this.ctx.fillStyle = pt(i.color), this.ctx.textBaseline = "middle", this.ctx.textAlign = "right", q = new hn(r.bounds.left, r.bounds.top + Pe(r.styles.paddingTop, r.bounds.width), r.bounds.width, Vf(i.lineHeight, i.fontSize.number) / 2 + 1), this.renderTextWithLetterSpacing(new is(A.listValue, q), i.letterSpacing, Vf(i.lineHeight, i.fontSize.number) / 2 + 2), this.ctx.textBaseline = "bottom", this.ctx.textAlign = "left"), V.label = 20;
            case 20:
              return [
                2
                /*return*/
              ];
          }
        });
      });
    }, e.prototype.renderStackContent = function(A) {
      return _t(this, void 0, void 0, function() {
        var r, n, v, i, s, v, o, c, v, h, p, v, d, w, v, g, Q, v, y, N, v;
        return It(this, function(U) {
          switch (U.label) {
            case 0:
              if (ft(
                A.element.container.flags,
                16
                /* DEBUG_RENDER */
              ))
                debugger;
              return [4, this.renderNodeBackgroundAndBorders(A.element)];
            case 1:
              U.sent(), r = 0, n = A.negativeZIndex, U.label = 2;
            case 2:
              return r < n.length ? (v = n[r], [4, this.renderStack(v)]) : [3, 5];
            case 3:
              U.sent(), U.label = 4;
            case 4:
              return r++, [3, 2];
            case 5:
              return [4, this.renderNodeContent(A.element)];
            case 6:
              U.sent(), i = 0, s = A.nonInlineLevel, U.label = 7;
            case 7:
              return i < s.length ? (v = s[i], [4, this.renderNode(v)]) : [3, 10];
            case 8:
              U.sent(), U.label = 9;
            case 9:
              return i++, [3, 7];
            case 10:
              o = 0, c = A.nonPositionedFloats, U.label = 11;
            case 11:
              return o < c.length ? (v = c[o], [4, this.renderStack(v)]) : [3, 14];
            case 12:
              U.sent(), U.label = 13;
            case 13:
              return o++, [3, 11];
            case 14:
              h = 0, p = A.nonPositionedInlineLevel, U.label = 15;
            case 15:
              return h < p.length ? (v = p[h], [4, this.renderStack(v)]) : [3, 18];
            case 16:
              U.sent(), U.label = 17;
            case 17:
              return h++, [3, 15];
            case 18:
              d = 0, w = A.inlineLevel, U.label = 19;
            case 19:
              return d < w.length ? (v = w[d], [4, this.renderNode(v)]) : [3, 22];
            case 20:
              U.sent(), U.label = 21;
            case 21:
              return d++, [3, 19];
            case 22:
              g = 0, Q = A.zeroOrAutoZIndexOrTransformedOrOpacity, U.label = 23;
            case 23:
              return g < Q.length ? (v = Q[g], [4, this.renderStack(v)]) : [3, 26];
            case 24:
              U.sent(), U.label = 25;
            case 25:
              return g++, [3, 23];
            case 26:
              y = 0, N = A.positiveZIndex, U.label = 27;
            case 27:
              return y < N.length ? (v = N[y], [4, this.renderStack(v)]) : [3, 30];
            case 28:
              U.sent(), U.label = 29;
            case 29:
              return y++, [3, 27];
            case 30:
              return [
                2
                /*return*/
              ];
          }
        });
      });
    }, e.prototype.mask = function(A) {
      this.ctx.beginPath(), this.ctx.moveTo(0, 0), this.ctx.lineTo(this.canvas.width, 0), this.ctx.lineTo(this.canvas.width, this.canvas.height), this.ctx.lineTo(0, this.canvas.height), this.ctx.lineTo(0, 0), this.formatPath(A.slice(0).reverse()), this.ctx.closePath();
    }, e.prototype.path = function(A) {
      this.ctx.beginPath(), this.formatPath(A), this.ctx.closePath();
    }, e.prototype.formatPath = function(A) {
      var r = this;
      A.forEach(function(n, i) {
        var s = ur(n) ? n.start : n;
        i === 0 ? r.ctx.moveTo(s.x, s.y) : r.ctx.lineTo(s.x, s.y), ur(n) && r.ctx.bezierCurveTo(n.startControl.x, n.startControl.y, n.endControl.x, n.endControl.y, n.end.x, n.end.y);
      });
    }, e.prototype.renderRepeat = function(A, r, n, i) {
      this.path(A), this.ctx.fillStyle = r, this.ctx.translate(n, i), this.ctx.fill(), this.ctx.translate(-n, -i);
    }, e.prototype.resizeImage = function(A, r, n) {
      var i;
      if (A.width === r && A.height === n)
        return A;
      var s = (i = this.canvas.ownerDocument) !== null && i !== void 0 ? i : document, o = s.createElement("canvas");
      o.width = Math.max(1, r), o.height = Math.max(1, n);
      var c = o.getContext("2d");
      return c.drawImage(A, 0, 0, A.width, A.height, 0, 0, r, n), o;
    }, e.prototype.renderBackgroundImage = function(A) {
      return _t(this, void 0, void 0, function() {
        var r, n, i, s, o, c;
        return It(this, function(h) {
          switch (h.label) {
            case 0:
              r = A.styles.backgroundImage.length - 1, n = function(p) {
                var d, w, g, tA, oA, iA, _, P, H, Q, tA, oA, iA, _, P, y, N, v, U, K, j, q, V, z, H, G, tA, x, F, _, P, lA, oA, iA, k, W, rA, OA, L, M, R, J;
                return It(this, function(eA) {
                  switch (eA.label) {
                    case 0:
                      if (p.type !== 0) return [3, 5];
                      d = void 0, w = p.url, eA.label = 1;
                    case 1:
                      return eA.trys.push([1, 3, , 4]), [4, i.context.cache.match(w)];
                    case 2:
                      return d = eA.sent(), [3, 4];
                    case 3:
                      return eA.sent(), i.context.logger.error("Error loading background-image " + w), [3, 4];
                    case 4:
                      return d && (g = Dc(A, r, [
                        d.width,
                        d.height,
                        d.width / d.height
                      ]), tA = g[0], oA = g[1], iA = g[2], _ = g[3], P = g[4], H = i.ctx.createPattern(i.resizeImage(d, _, P), "repeat"), i.renderRepeat(tA, H, oA, iA)), [3, 6];
                    case 5:
                      L5(p) ? (Q = Dc(A, r, [null, null, null]), tA = Q[0], oA = Q[1], iA = Q[2], _ = Q[3], P = Q[4], y = y5(p.angle, _, P), N = y[0], v = y[1], U = y[2], K = y[3], j = y[4], q = document.createElement("canvas"), q.width = _, q.height = P, V = q.getContext("2d"), z = V.createLinearGradient(v, K, U, j), Rf(p.stops, N).forEach(function(uA) {
                        return z.addColorStop(uA.stop, pt(uA.color));
                      }), V.fillStyle = z, V.fillRect(0, 0, _, P), _ > 0 && P > 0 && (H = i.ctx.createPattern(q, "repeat"), i.renderRepeat(tA, H, oA, iA))) : E5(p) && (G = Dc(A, r, [
                        null,
                        null,
                        null
                      ]), tA = G[0], x = G[1], F = G[2], _ = G[3], P = G[4], lA = p.position.length === 0 ? [mu] : p.position, oA = Pe(lA[0], _), iA = Pe(lA[lA.length - 1], P), k = F5(p, oA, iA, _, P), W = k[0], rA = k[1], W > 0 && rA > 0 && (OA = i.ctx.createRadialGradient(x + oA, F + iA, 0, x + oA, F + iA, W), Rf(p.stops, W * 2).forEach(function(uA) {
                        return OA.addColorStop(uA.stop, pt(uA.color));
                      }), i.path(tA), i.ctx.fillStyle = OA, W !== rA ? (L = A.bounds.left + 0.5 * A.bounds.width, M = A.bounds.top + 0.5 * A.bounds.height, R = rA / W, J = 1 / R, i.ctx.save(), i.ctx.translate(L, M), i.ctx.transform(1, 0, 0, R, 0, 0), i.ctx.translate(-L, -M), i.ctx.fillRect(x, J * (F - M) + M, _, P * J), i.ctx.restore()) : i.ctx.fill())), eA.label = 6;
                    case 6:
                      return r--, [
                        2
                        /*return*/
                      ];
                  }
                });
              }, i = this, s = 0, o = A.styles.backgroundImage.slice(0).reverse(), h.label = 1;
            case 1:
              return s < o.length ? (c = o[s], [5, n(c)]) : [3, 4];
            case 2:
              h.sent(), h.label = 3;
            case 3:
              return s++, [3, 1];
            case 4:
              return [
                2
                /*return*/
              ];
          }
        });
      });
    }, e.prototype.renderSolidBorder = function(A, r, n) {
      return _t(this, void 0, void 0, function() {
        return It(this, function(i) {
          return this.path(vh(n, r)), this.ctx.fillStyle = pt(A), this.ctx.fill(), [
            2
            /*return*/
          ];
        });
      });
    }, e.prototype.renderDoubleBorder = function(A, r, n, i) {
      return _t(this, void 0, void 0, function() {
        var s, o;
        return It(this, function(c) {
          switch (c.label) {
            case 0:
              return r < 3 ? [4, this.renderSolidBorder(A, n, i)] : [3, 2];
            case 1:
              return c.sent(), [
                2
                /*return*/
              ];
            case 2:
              return s = S4(i, n), this.path(s), this.ctx.fillStyle = pt(A), this.ctx.fill(), o = H4(i, n), this.path(o), this.ctx.fill(), [
                2
                /*return*/
              ];
          }
        });
      });
    }, e.prototype.renderNodeBackgroundAndBorders = function(A) {
      return _t(this, void 0, void 0, function() {
        var r, n, i, s, o, c, h, p, d = this;
        return It(this, function(w) {
          switch (w.label) {
            case 0:
              return this.applyEffects(A.getEffects(
                2
                /* BACKGROUND_BORDERS */
              )), r = A.container.styles, n = !On(r.backgroundColor) || r.backgroundImage.length, i = [
                { style: r.borderTopStyle, color: r.borderTopColor, width: r.borderTopWidth },
                { style: r.borderRightStyle, color: r.borderRightColor, width: r.borderRightWidth },
                { style: r.borderBottomStyle, color: r.borderBottomColor, width: r.borderBottomWidth },
                { style: r.borderLeftStyle, color: r.borderLeftColor, width: r.borderLeftWidth }
              ], s = G4(ta(r.backgroundClip, 0), A.curves), n || r.boxShadow.length ? (this.ctx.save(), this.path(s), this.ctx.clip(), On(r.backgroundColor) || (this.ctx.fillStyle = pt(r.backgroundColor), this.ctx.fill()), [4, this.renderBackgroundImage(A.container)]) : [3, 2];
            case 1:
              w.sent(), this.ctx.restore(), r.boxShadow.slice(0).reverse().forEach(function(g) {
                d.ctx.save();
                var Q = $o(A.curves), y = g.inset ? 0 : O4, N = x4(Q, -y + (g.inset ? 1 : -1) * g.spread.number, (g.inset ? 1 : -1) * g.spread.number, g.spread.number * (g.inset ? -2 : 2), g.spread.number * (g.inset ? -2 : 2));
                g.inset ? (d.path(Q), d.ctx.clip(), d.mask(N)) : (d.mask(Q), d.ctx.clip(), d.path(N)), d.ctx.shadowOffsetX = g.offsetX.number + y, d.ctx.shadowOffsetY = g.offsetY.number, d.ctx.shadowColor = pt(g.color), d.ctx.shadowBlur = g.blur.number, d.ctx.fillStyle = g.inset ? pt(g.color) : "rgba(0,0,0,1)", d.ctx.fill(), d.ctx.restore();
              }), w.label = 2;
            case 2:
              o = 0, c = 0, h = i, w.label = 3;
            case 3:
              return c < h.length ? (p = h[c], p.style !== 0 && !On(p.color) && p.width > 0 ? p.style !== 2 ? [3, 5] : [4, this.renderDashedDottedBorder(
                p.color,
                p.width,
                o,
                A.curves,
                2
                /* DASHED */
              )] : [3, 11]) : [3, 13];
            case 4:
              return w.sent(), [3, 11];
            case 5:
              return p.style !== 3 ? [3, 7] : [4, this.renderDashedDottedBorder(
                p.color,
                p.width,
                o,
                A.curves,
                3
                /* DOTTED */
              )];
            case 6:
              return w.sent(), [3, 11];
            case 7:
              return p.style !== 4 ? [3, 9] : [4, this.renderDoubleBorder(p.color, p.width, o, A.curves)];
            case 8:
              return w.sent(), [3, 11];
            case 9:
              return [4, this.renderSolidBorder(p.color, o, A.curves)];
            case 10:
              w.sent(), w.label = 11;
            case 11:
              o++, w.label = 12;
            case 12:
              return c++, [3, 3];
            case 13:
              return [
                2
                /*return*/
              ];
          }
        });
      });
    }, e.prototype.renderDashedDottedBorder = function(A, r, n, i, s) {
      return _t(this, void 0, void 0, function() {
        var o, c, h, p, d, w, g, Q, y, N, v, U, K, j, q, V, q, V;
        return It(this, function(z) {
          return this.ctx.save(), o = D4(i, n), c = vh(i, n), s === 2 && (this.path(c), this.ctx.clip()), ur(c[0]) ? (h = c[0].start.x, p = c[0].start.y) : (h = c[0].x, p = c[0].y), ur(c[1]) ? (d = c[1].end.x, w = c[1].end.y) : (d = c[1].x, w = c[1].y), n === 0 || n === 2 ? g = Math.abs(h - d) : g = Math.abs(p - w), this.ctx.beginPath(), s === 3 ? this.formatPath(o) : this.formatPath(c.slice(0, 2)), Q = r < 3 ? r * 3 : r * 2, y = r < 3 ? r * 2 : r, s === 3 && (Q = r, y = r), N = !0, g <= Q * 2 ? N = !1 : g <= Q * 2 + y ? (v = g / (2 * Q + y), Q *= v, y *= v) : (U = Math.floor((g + y) / (Q + y)), K = (g - U * Q) / (U - 1), j = (g - (U + 1) * Q) / U, y = j <= 0 || Math.abs(y - K) < Math.abs(y - j) ? K : j), N && (s === 3 ? this.ctx.setLineDash([0, Q + y]) : this.ctx.setLineDash([Q, y])), s === 3 ? (this.ctx.lineCap = "round", this.ctx.lineWidth = r) : this.ctx.lineWidth = r * 2 + 1.1, this.ctx.strokeStyle = pt(A), this.ctx.stroke(), this.ctx.setLineDash([]), s === 2 && (ur(c[0]) && (q = c[3], V = c[0], this.ctx.beginPath(), this.formatPath([new WA(q.end.x, q.end.y), new WA(V.start.x, V.start.y)]), this.ctx.stroke()), ur(c[1]) && (q = c[1], V = c[2], this.ctx.beginPath(), this.formatPath([new WA(q.end.x, q.end.y), new WA(V.start.x, V.start.y)]), this.ctx.stroke())), this.ctx.restore(), [
            2
            /*return*/
          ];
        });
      });
    }, e.prototype.render = function(A) {
      return _t(this, void 0, void 0, function() {
        var r;
        return It(this, function(n) {
          switch (n.label) {
            case 0:
              return this.options.backgroundColor && (this.ctx.fillStyle = pt(this.options.backgroundColor), this.ctx.fillRect(this.options.x, this.options.y, this.options.width, this.options.height)), r = I4(A), [4, this.renderStack(r)];
            case 1:
              return n.sent(), this.applyEffects([]), [2, this.canvas];
          }
        });
      });
    }, e;
  }(qd)
), R4 = function(t) {
  return t instanceof xd || t instanceof Ed ? !0 : t instanceof Qu && t.type !== zo && t.type !== Xo;
}, G4 = function(t, e) {
  switch (t) {
    case 0:
      return $o(e);
    case 2:
      return Q4(e);
    case 1:
    default:
      return Zo(e);
  }
}, V4 = function(t) {
  switch (t) {
    case 1:
      return "center";
    case 2:
      return "right";
    case 0:
    default:
      return "left";
  }
}, j4 = ["-apple-system", "system-ui"], q4 = function(t) {
  return /iPhone OS 15_(0|1)/.test(window.navigator.userAgent) ? t.filter(function(e) {
    return j4.indexOf(e) === -1;
  }) : t;
}, W4 = (
  /** @class */
  function(t) {
    Hr(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this;
      return n.canvas = r.canvas ? r.canvas : document.createElement("canvas"), n.ctx = n.canvas.getContext("2d"), n.options = r, n.canvas.width = Math.floor(r.width * r.scale), n.canvas.height = Math.floor(r.height * r.scale), n.canvas.style.width = r.width + "px", n.canvas.style.height = r.height + "px", n.ctx.scale(n.options.scale, n.options.scale), n.ctx.translate(-r.x, -r.y), n.context.logger.debug("EXPERIMENTAL ForeignObject renderer initialized (" + r.width + "x" + r.height + " at " + r.x + "," + r.y + ") with scale " + r.scale), n;
    }
    return e.prototype.render = function(A) {
      return _t(this, void 0, void 0, function() {
        var r, n;
        return It(this, function(i) {
          switch (i.label) {
            case 0:
              return r = lu(this.options.width * this.options.scale, this.options.height * this.options.scale, this.options.scale, this.options.scale, A), [4, X4(r)];
            case 1:
              return n = i.sent(), this.options.backgroundColor && (this.ctx.fillStyle = pt(this.options.backgroundColor), this.ctx.fillRect(0, 0, this.options.width * this.options.scale, this.options.height * this.options.scale)), this.ctx.drawImage(n, -this.options.x * this.options.scale, -this.options.y * this.options.scale), [2, this.canvas];
          }
        });
      });
    }, e;
  }(qd)
), X4 = function(t) {
  return new Promise(function(e, A) {
    var r = new Image();
    r.onload = function() {
      e(r);
    }, r.onerror = A, r.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(t));
  });
}, z4 = (
  /** @class */
  function() {
    function t(e) {
      var A = e.id, r = e.enabled;
      this.id = A, this.enabled = r, this.start = Date.now();
    }
    return t.prototype.debug = function() {
      for (var e = [], A = 0; A < arguments.length; A++)
        e[A] = arguments[A];
      this.enabled && (typeof window < "u" && window.console && typeof console.debug == "function" ? console.debug.apply(console, lo([this.id, this.getTime() + "ms"], e)) : this.info.apply(this, e));
    }, t.prototype.getTime = function() {
      return Date.now() - this.start;
    }, t.prototype.info = function() {
      for (var e = [], A = 0; A < arguments.length; A++)
        e[A] = arguments[A];
      this.enabled && typeof window < "u" && window.console && typeof console.info == "function" && console.info.apply(console, lo([this.id, this.getTime() + "ms"], e));
    }, t.prototype.warn = function() {
      for (var e = [], A = 0; A < arguments.length; A++)
        e[A] = arguments[A];
      this.enabled && (typeof window < "u" && window.console && typeof console.warn == "function" ? console.warn.apply(console, lo([this.id, this.getTime() + "ms"], e)) : this.info.apply(this, e));
    }, t.prototype.error = function() {
      for (var e = [], A = 0; A < arguments.length; A++)
        e[A] = arguments[A];
      this.enabled && (typeof window < "u" && window.console && typeof console.error == "function" ? console.error.apply(console, lo([this.id, this.getTime() + "ms"], e)) : this.info.apply(this, e));
    }, t.instances = {}, t;
  }()
), J4 = (
  /** @class */
  function() {
    function t(e, A) {
      var r;
      this.windowBounds = A, this.instanceName = "#" + t.instanceCount++, this.logger = new z4({ id: this.instanceName, enabled: e.logging }), this.cache = (r = e.cache) !== null && r !== void 0 ? r : new p4(this, e);
    }
    return t.instanceCount = 1, t;
  }()
), Wd = function(t, e) {
  return e === void 0 && (e = {}), Y4(t, e);
};
typeof window < "u" && Od.setContext(window);
var Y4 = function(t, e) {
  return _t(void 0, void 0, void 0, function() {
    var A, r, n, i, s, o, c, h, p, d, w, g, Q, y, N, v, U, K, j, q, z, V, z, H, G, tA, x, F, _, P, lA, oA, iA, k, W, rA, OA, L, M, R;
    return It(this, function(J) {
      switch (J.label) {
        case 0:
          if (!t || typeof t != "object")
            return [2, Promise.reject("Invalid element provided as first argument")];
          if (A = t.ownerDocument, !A)
            throw new Error("Element is not attached to a Document");
          if (r = A.defaultView, !r)
            throw new Error("Document is not attached to a Window");
          return n = {
            allowTaint: (H = e.allowTaint) !== null && H !== void 0 ? H : !1,
            imageTimeout: (G = e.imageTimeout) !== null && G !== void 0 ? G : 15e3,
            proxy: e.proxy,
            useCORS: (tA = e.useCORS) !== null && tA !== void 0 ? tA : !1
          }, i = Xc({ logging: (x = e.logging) !== null && x !== void 0 ? x : !0, cache: e.cache }, n), s = {
            windowWidth: (F = e.windowWidth) !== null && F !== void 0 ? F : r.innerWidth,
            windowHeight: (_ = e.windowHeight) !== null && _ !== void 0 ? _ : r.innerHeight,
            scrollX: (P = e.scrollX) !== null && P !== void 0 ? P : r.pageXOffset,
            scrollY: (lA = e.scrollY) !== null && lA !== void 0 ? lA : r.pageYOffset
          }, o = new hn(s.scrollX, s.scrollY, s.windowWidth, s.windowHeight), c = new J4(i, o), h = (oA = e.foreignObjectRendering) !== null && oA !== void 0 ? oA : !1, p = {
            allowTaint: (iA = e.allowTaint) !== null && iA !== void 0 ? iA : !1,
            onclone: e.onclone,
            ignoreElements: e.ignoreElements,
            inlineImages: h,
            copyStyles: h
          }, c.logger.debug("Starting document clone with size " + o.width + "x" + o.height + " scrolled to " + -o.left + "," + -o.top), d = new ph(c, t, p), w = d.clonedReferenceElement, w ? [4, d.toIFrame(A, o)] : [2, Promise.reject("Unable to find element in cloned iframe")];
        case 1:
          return g = J.sent(), Q = bu(w) || Zm(w) ? xB(w.ownerDocument) : nl(c, w), y = Q.width, N = Q.height, v = Q.left, U = Q.top, K = $4(c, w, e.backgroundColor), j = {
            canvas: e.canvas,
            backgroundColor: K,
            scale: (W = (k = e.scale) !== null && k !== void 0 ? k : r.devicePixelRatio) !== null && W !== void 0 ? W : 1,
            x: ((rA = e.x) !== null && rA !== void 0 ? rA : 0) + v,
            y: ((OA = e.y) !== null && OA !== void 0 ? OA : 0) + U,
            width: (L = e.width) !== null && L !== void 0 ? L : Math.ceil(y),
            height: (M = e.height) !== null && M !== void 0 ? M : Math.ceil(N)
          }, h ? (c.logger.debug("Document cloned, using foreign object rendering"), z = new W4(c, j), [4, z.render(w)]) : [3, 3];
        case 2:
          return q = J.sent(), [3, 5];
        case 3:
          return c.logger.debug("Document cloned, element located at " + v + "," + U + " with size " + y + "x" + N + " using computed rendering"), c.logger.debug("Starting DOM parsing"), V = Hd(c, w), K === V.styles.backgroundColor && (V.styles.backgroundColor = fn.TRANSPARENT), c.logger.debug("Starting renderer for element at " + j.x + "," + j.y + " with size " + j.width + "x" + j.height), z = new K4(c, j), [4, z.render(V)];
        case 4:
          q = J.sent(), J.label = 5;
        case 5:
          return (!((R = e.removeContainer) !== null && R !== void 0) || R) && (ph.destroy(g) || c.logger.error("Cannot detach cloned iframe as it is not in the DOM anymore")), c.logger.debug("Finished rendering"), [2, q];
      }
    });
  });
}, $4 = function(t, e, A) {
  var r = e.ownerDocument, n = r.documentElement ? rs(t, getComputedStyle(r.documentElement).backgroundColor) : fn.TRANSPARENT, i = r.body ? rs(t, getComputedStyle(r.body).backgroundColor) : fn.TRANSPARENT, s = typeof A == "string" ? rs(t, A) : A === null ? fn.TRANSPARENT : 4294967295;
  return e === r.documentElement ? On(n) ? On(i) ? s : i : n : s;
};
const Z4 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: Wd
}, Symbol.toStringTag, { value: "Module" })), AC = { class: "gantt-body" }, eC = ["title"], tC = {
  width: "16",
  height: "16",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2.5"
}, rC = {
  key: 0,
  points: "15,18 9,12 15,6"
}, nC = {
  key: 1,
  points: "9,18 15,12 9,6"
}, $i = 1160, Do = 320, iC = /* @__PURE__ */ Er({
  __name: "GanttChart",
  props: {
    tasks: { default: () => [] },
    milestones: { default: () => [] },
    onTaskDoubleClick: { type: Function, default: void 0 },
    editComponent: { default: void 0 },
    useDefaultDrawer: { type: Boolean, default: !0 },
    onTaskDelete: { type: Function, default: void 0 },
    onMilestoneSave: { type: Function, default: void 0 },
    onMilestoneDelete: { type: Function, default: void 0 },
    onTaskUpdate: { type: Function, default: void 0 },
    onTaskAdd: { type: Function, default: void 0 },
    onMilestoneIconChange: { type: Function, default: void 0 },
    toolbarConfig: { default: () => ({}) },
    showToolbar: { type: Boolean, default: !0 },
    onAddTask: { type: Function, default: void 0 },
    onAddMilestone: { type: Function, default: void 0 },
    onTodayLocate: { type: Function, default: void 0 },
    onExportCsv: { type: Function, default: void 0 },
    onExportPdf: { type: Function, default: void 0 },
    onLanguageChange: { type: Function, default: void 0 },
    onThemeChange: { type: Function, default: void 0 },
    onFullscreenChange: { type: Function, default: void 0 },
    localeMessages: { default: void 0 }
  },
  emits: ["taskbar-drag-end", "taskbar-resize-end", "milestone-drag-end"],
  setup(t, { emit: e }) {
    const A = t, r = e, { showMessage: n } = Ch(), i = KA(320), s = KA(null), o = KA($i), c = KA(Do), h = KA(Do), p = KA($i), d = KA($i), w = (D) => D < c.value ? c.value : D > d.value ? d.value : Math.max(c.value, D), g = KA(!1);
    function Q(D) {
      if (D.target.closest(".task-list-toggle"))
        return;
      D.preventDefault(), D.stopPropagation(), g.value = !0;
      const BA = D.clientX, sA = i.value, pA = document.querySelector(".task-list-body");
      if (!pA) return;
      const FA = pA.getBoundingClientRect();
      o.value = FA.width, p.value = window.innerWidth * 0.8 - 6, d.value = Math.min(p.value, o.value), window.dispatchEvent(new CustomEvent("splitter-drag-start")), document.body.style.userSelect = "none", document.body.style.webkitUserSelect = "none", document.body.style.cursor = "col-resize";
      function UA(QA) {
        if (!g.value) return;
        QA.preventDefault(), QA.stopPropagation();
        const yA = QA.clientX - BA, PA = sA + yA, ZA = w(PA);
        i.value = ZA;
      }
      function SA() {
        g.value = !1, window.dispatchEvent(new CustomEvent("splitter-drag-end")), document.body.style.userSelect = "", document.body.style.webkitUserSelect = "", document.body.style.cursor = "", o.value = $i, c.value = Do, p.value = $i, d.value = $i, h.value = Do, window.removeEventListener("mousemove", UA), window.removeEventListener("mouseup", SA);
      }
      window.addEventListener("mousemove", UA), window.addEventListener("mouseup", SA);
    }
    const y = KA(!0), N = KA(!1), v = KA(""), U = () => {
      N.value || (N.value = !0, y.value ? v.value = "impact-left" : v.value = "impact-right", setTimeout(() => {
        y.value = !y.value;
      }, 200), setTimeout(() => {
        N.value = !1, v.value = "";
      }, 400));
    }, K = (D) => {
      y.value = D.detail;
    };
    function j(D) {
      r("taskbar-drag-end", D.detail);
    }
    function q(D) {
      r("taskbar-resize-end", D.detail);
    }
    function V(D) {
      r("milestone-drag-end", D.detail);
    }
    jr(() => {
      window.addEventListener("taskbar-drag-end", j), window.addEventListener("taskbar-resize-end", q), window.addEventListener("milestone-drag-end", V);
    }), Wr(() => {
      window.removeEventListener("taskbar-drag-end", j), window.removeEventListener("taskbar-resize-end", q), window.removeEventListener("milestone-drag-end", V);
    });
    const z = (D) => {
      const $ = (BA, sA, pA) => {
        for (const FA of BA) {
          if (FA.id === sA)
            return FA.collapsed = pA, !0;
          if (FA.children && FA.children.length > 0 && $(FA.children, sA, pA))
            return !0;
        }
        return !1;
      };
      A.tasks && $(A.tasks, D.id, D.collapsed ?? !1), H.value++;
    }, H = KA(0), G = () => {
      const D = [], $ = (BA) => {
        BA.forEach((sA) => {
          D.push(sA), sA.children && sA.children.length > 0 && $(sA.children);
        });
      };
      A.tasks && $(A.tasks), A.milestones && D.push(...A.milestones), window.dispatchEvent(new CustomEvent("task-list-updated", { detail: D }));
    }, tA = () => {
      G();
    };
    $t(
      [() => A.tasks, () => A.milestones],
      () => {
        Lr(() => {
          tA();
        });
      },
      { deep: !0, immediate: !0 }
    ), jr(() => {
      window.addEventListener("toggle-task-list", K), window.addEventListener("fullscreen-toggle", M), window.addEventListener("task-updated", J), window.addEventListener("task-added", uA), window.addEventListener("milestone-icon-changed", dA), window.addEventListener("milestone-deleted", gA), window.addEventListener("milestone-data-changed", MA), window.addEventListener("request-task-list", G), window.addEventListener("resize", wA), Lr(() => {
        s.value && typeof s.value.scrollToTodayCenter == "function" && s.value.scrollToTodayCenter();
      });
    }), Wr(() => {
      g.value = !1, window.removeEventListener("toggle-task-list", K), window.removeEventListener("fullscreen-toggle", M), window.removeEventListener("task-updated", J), window.removeEventListener("task-added", uA), window.removeEventListener(
        "milestone-icon-changed",
        dA
      ), window.removeEventListener("milestone-deleted", gA), window.removeEventListener("milestone-data-changed", MA), window.removeEventListener("request-task-list", G), window.removeEventListener("resize", wA);
    });
    const x = KA(!1), { t: F, locale: _ } = hi(), P = Ce(() => F.value.collapseTaskList), lA = Ce(() => F.value.expandTaskList), oA = Ce(() => {
      const D = [];
      if (A.milestones && A.milestones.length > 0) {
        const $ = {
          id: -1,
          name: F.value.milestoneGroup,
          startDate: "",
          endDate: "",
          type: "milestone-group",
          children: A.milestones,
          isParent: !0,
          collapsed: !1
        };
        D.push($);
      }
      return A.tasks && A.tasks.length > 0 && D.push(...A.tasks), D;
    }), iA = Ce(() => {
      H.value >= 0;
      const D = [];
      if (A.milestones && A.milestones.length > 0) {
        const $ = {
          id: -1,
          name: F.value.milestoneGroup,
          startDate: "",
          endDate: "",
          type: "milestone-group",
          children: A.milestones,
          isParent: !0,
          collapsed: !1
        };
        D.push($);
      }
      if (A.tasks && A.tasks.length > 0) {
        const $ = (QA) => {
          const yA = [], PA = [];
          return QA.forEach((ZA) => {
            if (ZA.startDate && yA.push(ZA.startDate), ZA.endDate && PA.push(ZA.endDate), ZA.children && ZA.children.length > 0) {
              const ue = $(ZA.children);
              yA.push(...ue.starts), PA.push(...ue.ends);
            }
          }), { starts: yA, ends: PA };
        }, BA = (QA) => {
          if (!QA.children || QA.children.length === 0)
            return {
              startDate: QA.startDate || "",
              endDate: QA.endDate || ""
            };
          const { starts: yA, ends: PA } = $(QA.children);
          if (yA.length === 0 || PA.length === 0)
            return {
              startDate: QA.startDate || "",
              endDate: QA.endDate || ""
            };
          const ZA = yA.reduce((YA, ne) => new Date(ne) < new Date(YA) ? ne : YA), ue = PA.reduce((YA, ne) => new Date(ne) > new Date(YA) ? ne : YA);
          return { startDate: ZA, endDate: ue };
        }, sA = (QA) => QA.map((yA) => {
          let PA = { ...yA };
          yA.children && yA.children.length > 0 && (PA.children = sA(yA.children));
          const ZA = yA.type === "story" || PA.children && PA.children.length > 0;
          if (PA.isParent = ZA, ZA && PA.children && PA.children.length > 0) {
            const { startDate: ue, endDate: YA } = BA(PA);
            PA = {
              ...PA,
              startDate: ue,
              endDate: YA
            };
          }
          return PA;
        }), pA = (QA, yA = 0) => {
          const PA = [];
          return QA.forEach((ZA) => {
            const ue = {
              ...ZA,
              level: yA
            };
            if (PA.push(ue), ZA.children && ZA.children.length > 0 && !ZA.collapsed) {
              const YA = pA(ZA.children, yA + 1);
              PA.push(...YA);
            }
          }), PA;
        }, FA = oA.value.filter((QA) => QA.type !== "milestone-group"), UA = sA(FA), SA = pA(UA);
        D.push(...SA);
      }
      return D;
    }), k = Ce(() => {
      const D = (QA) => {
        let yA = [];
        return QA.forEach((PA) => {
          yA.push(PA), PA.children && PA.children.length > 0 && (yA = yA.concat(D(PA.children)));
        }), yA;
      };
      let $ = [];
      A.tasks && ($ = $.concat(D(A.tasks))), A.milestones && ($ = $.concat(A.milestones));
      const BA = $.map((QA) => QA.startDate).filter(Boolean).map((QA) => new Date(QA)), sA = $.map((QA) => QA.endDate).filter(Boolean).map((QA) => new Date(QA));
      if (BA.length === 0 || sA.length === 0) {
        const QA = /* @__PURE__ */ new Date(), yA = new Date(QA.getFullYear(), QA.getMonth() - 6, 1), PA = new Date(QA.getFullYear(), QA.getMonth() + 6 + 1, 0);
        return { min: yA, max: PA };
      }
      const pA = new Date(Math.min(...BA.map((QA) => QA.getTime()))), FA = new Date(Math.max(...sA.map((QA) => QA.getTime()))), UA = new Date(pA.getFullYear(), pA.getMonth() - 6, 1), SA = new Date(FA.getFullYear(), FA.getMonth() + 6 + 1, 0);
      return { min: UA, max: SA };
    }), W = () => {
      if (A.onExportCsv && typeof A.onExportCsv == "function") {
        A.onExportCsv() === !1 && rA();
        return;
      }
      rA();
    }, rA = () => {
      try {
        const D = [];
        A.tasks && A.tasks.length > 0 && D.push(...A.tasks), A.milestones && A.milestones.length > 0 && D.push(...A.milestones);
        const sA = "\uFEFF" + OA(D), pA = new Blob([sA], {
          type: "text/csv;charset=utf-8;"
        }), FA = document.createElement("a"), UA = URL.createObjectURL(pA), QA = `gantt-tasks-${(/* @__PURE__ */ new Date()).toISOString().split("T")[0]}.csv`;
        FA.setAttribute("href", UA), FA.setAttribute("download", QA), FA.style.visibility = "hidden", document.body.appendChild(FA), FA.click(), document.body.removeChild(FA), URL.revokeObjectURL(UA);
      } catch (D) {
        console.error("CSV导出失败:", D), n("CSV导出失败", "error", { closable: !1 });
      }
    }, OA = (D) => {
      const $ = F.value.csvHeaders, BA = [
        $.id,
        $.taskName,
        $.predecessor,
        $.assignee,
        $.startDate,
        $.endDate,
        $.estimatedHours,
        $.actualHours,
        $.progress,
        $.type,
        $.description
      ], sA = (SA) => {
        if (SA == null)
          return "";
        const QA = String(SA);
        return QA.includes(",") || QA.includes('"') || QA.includes(`
`) || QA.includes("\r") ? `"${QA.replace(/"/g, '""')}"` : QA;
      }, pA = (SA) => {
        const QA = [];
        return SA.forEach((yA) => {
          QA.push({
            id: yA.id,
            name: yA.name || "",
            predecessor: yA.predecessor || "",
            assignee: yA.assignee || "",
            startDate: yA.startDate || "",
            endDate: yA.endDate || "",
            estimatedHours: yA.estimatedHours || "",
            actualHours: yA.actualHours || "",
            progress: yA.progress !== void 0 ? `${yA.progress}%` : "",
            type: yA.type || "",
            description: yA.description || ""
          }), yA.children && yA.children.length > 0 && QA.push(...pA(yA.children));
        }), QA;
      }, FA = pA(D);
      return [
        // 头部行 - 也需要进行转义处理
        BA.map((SA) => sA(SA)).join(","),
        // 数据行
        ...FA.map((SA) => [
          sA(SA.id),
          sA(SA.name),
          sA(SA.predecessor),
          sA(SA.assignee),
          sA(SA.startDate),
          sA(SA.endDate),
          sA(SA.estimatedHours),
          sA(SA.actualHours),
          sA(SA.progress),
          sA(SA.type),
          sA(SA.description)
        ].join(","))
      ].join(`
`);
    }, L = async () => {
      try {
        const D = F.value.pdfExportLoading, $ = F.value.pdfExportTitle, BA = F.value.pdfExportDate, sA = document.createElement("div");
        sA.innerHTML = `
      <div style="position: fixed; top: 0; left: 0; width: 100%; height: 100%;
                  background: rgba(0,0,0,0.5); display: flex; align-items: center;
                  justify-content: center; z-index: 10000; color: white; font-size: 16px;">
        ${D}
      </div>
    `, document.body.appendChild(sA);
        const pA = document.querySelector(".gantt-body");
        if (!pA)
          throw new Error("找不到甘特图元素");
        const FA = {
          overflow: pA.style.overflow,
          height: pA.style.height
        };
        pA.style.overflow = "visible", pA.style.height = "auto";
        const UA = await Wd(pA, {
          allowTaint: !0,
          useCORS: !0,
          scale: 2,
          // 提高清晰度
          width: pA.scrollWidth,
          height: pA.scrollHeight,
          backgroundColor: "#ffffff"
        });
        pA.style.overflow = FA.overflow, pA.style.height = FA.height;
        const SA = UA.toDataURL("image/png"), QA = new ae({
          orientation: "landscape",
          // 横向布局更适合甘特图
          unit: "mm",
          format: "a4"
        }), yA = QA.internal.pageSize.getWidth(), PA = QA.internal.pageSize.getHeight(), ZA = UA.width, ue = UA.height, YA = Math.min(yA / ZA, PA / ue), ne = ZA * YA, VA = ue * YA, Ve = (yA - ne) / 2, mA = (PA - VA) / 2;
        QA.setFontSize(16), QA.text($, yA / 2, 15, { align: "center" }), QA.setFontSize(10);
        const TA = (/* @__PURE__ */ new Date()).toLocaleDateString(_.value);
        if (QA.text(`${BA}: ${TA}`, yA - 10, 10, { align: "right" }), QA.addImage(SA, "PNG", Ve, mA + 10, ne, VA - 15), VA > PA - 30) {
          const Ae = Math.ceil(VA / (PA - 30));
          for (let me = 1; me < Ae; me++) {
            QA.addPage();
            const se = -me * (PA - 30);
            QA.addImage(SA, "PNG", Ve, mA + 10 + se, ne, VA - 15);
          }
        }
        const IA = `gantt-chart-${(/* @__PURE__ */ new Date()).toISOString().split("T")[0]}.pdf`;
        QA.save(IA), sA && sA.parentNode && sA.parentNode.removeChild(sA);
      } catch (D) {
        const $ = document.querySelector('[style*="position: fixed"]');
        $ && $.parentNode && $.parentNode.removeChild($), console.error("PDF导出失败:", D), alert("PDF导出失败");
      }
    }, M = (D) => {
      x.value = D.detail, A.onFullscreenChange && typeof A.onFullscreenChange == "function" && A.onFullscreenChange(x.value);
    }, R = (D) => {
      A.onMilestoneSave && typeof A.onMilestoneSave == "function" && A.onMilestoneSave(D);
    }, J = (D) => {
      const $ = D.detail;
      if ($.type === "task" && $.parentId) {
        const BA = eA($.parentId, $);
        A.onTaskUpdate && typeof A.onTaskUpdate == "function" && A.onTaskUpdate($), BA && A.onTaskUpdate && typeof A.onTaskUpdate == "function" && A.onTaskUpdate(BA);
      } else A.onTaskUpdate && typeof A.onTaskUpdate == "function" && A.onTaskUpdate($);
      H.value++;
    }, eA = (D, $) => {
      const BA = [...A.tasks || []], sA = [], pA = (yA) => {
        yA.forEach((PA) => {
          sA.push(PA), PA.children && PA.children.length > 0 && pA(PA.children);
        });
      };
      pA(BA);
      const FA = sA.find((yA) => yA.id === D && yA.type === "story");
      if (!FA) return null;
      let UA = sA.filter((yA) => yA.parentId === D && yA.type === "task");
      if (UA.length === 0) return null;
      $ && $.type === "task" && $.parentId === D && (UA = UA.map((yA) => yA.id === $.id ? $ : yA));
      const SA = UA.reduce((yA, PA) => yA + (PA.progress || 0), 0), QA = Math.round(SA / UA.length);
      return FA.progress !== QA ? { ...FA, progress: QA } : null;
    }, uA = (D) => {
      const $ = D.detail;
      A.onTaskAdd && typeof A.onTaskAdd == "function" && A.onTaskAdd($), H.value++;
    }, dA = (D) => {
      const { milestoneId: $, icon: BA } = D.detail;
      A.onMilestoneIconChange && typeof A.onMilestoneIconChange == "function" && A.onMilestoneIconChange($, BA);
    }, gA = (D) => {
      const { milestoneId: $ } = D.detail;
      A.onMilestoneDelete && typeof A.onMilestoneDelete == "function" && A.onMilestoneDelete($), H.value++;
    }, MA = () => {
      H.value++, Lr(() => {
      });
    };
    jr(() => {
      Lr(() => {
        s.value && typeof s.value.scrollToTodayCenter == "function" && s.value.scrollToTodayCenter();
      });
    });
    const NA = () => {
      if (A.onTodayLocate && typeof A.onTodayLocate == "function") {
        A.onTodayLocate();
        return;
      }
      if (s.value && typeof s.value.scrollToTodayCenter == "function") {
        s.value.scrollToTodayCenter();
        return;
      }
      ee();
    }, RA = () => {
      if (A.onAddMilestone && typeof A.onAddMilestone == "function") {
        A.onAddMilestone();
        return;
      }
      GA();
    }, GA = () => {
      window.dispatchEvent(new CustomEvent("add-milestone"));
    }, ee = () => {
      if (s.value && typeof s.value.scrollToToday == "function") {
        s.value.scrollToToday();
        return;
      }
      const D = /* @__PURE__ */ new Date(), $ = D.getMonth(), BA = D.getDate();
      let sA = 0;
      for (let yA = 0; yA < $; yA++)
        sA += new Date(D.getFullYear(), yA + 1, 0).getDate();
      sA += BA;
      const pA = document.querySelector(".gantt-panel-right"), FA = pA == null ? void 0 : pA.clientWidth, UA = FA ? FA / 2 : 200, SA = (sA - 1) * 30 - UA, QA = document.querySelector(".timeline");
      if (QA) {
        QA.scrollLeft = Math.max(0, SA);
        const yA = QA.querySelector(".day-column.today");
        yA && (yA.classList.add("today-highlight"), setTimeout(() => {
          yA.classList.remove("today-highlight");
        }, 2e3));
      }
    }, wA = () => {
      const D = w(i.value);
      D !== i.value && (i.value = D);
    };
    return A.localeMessages && Zu(_.value, A.localeMessages), $t(
      () => A.localeMessages,
      (D) => {
        D && Zu(_.value, D);
      },
      { deep: !0 }
    ), (D, $) => (xA(), DA("div", {
      class: Ke(["gantt-root", { "gantt-fullscreen": x.value, "splitter-dragging": g.value }])
    }, [
      A.showToolbar ? (xA(), li(S2, {
        key: 0,
        config: A.toolbarConfig,
        "on-add-task": A.onAddTask,
        "on-add-milestone": RA,
        "on-today-locate": NA,
        "on-export-csv": W,
        "on-export-pdf": L,
        "on-language-change": A.onLanguageChange,
        "on-theme-change": A.onThemeChange,
        "on-fullscreen-change": A.onFullscreenChange
      }, null, 8, ["config", "on-add-task", "on-language-change", "on-theme-change", "on-fullscreen-change"])) : he("", !0),
      X("div", AC, [
        y.value ? (xA(), DA("div", {
          key: 0,
          class: "gantt-panel gantt-panel-left",
          style: Tt({ width: i.value + "px" })
        }, [
          un(v1, {
            tasks: oA.value,
            "on-task-double-click": A.onTaskDoubleClick,
            "edit-component": A.editComponent,
            "use-default-drawer": A.useDefaultDrawer,
            onTaskCollapseChange: z
          }, null, 8, ["tasks", "on-task-double-click", "edit-component", "use-default-drawer"])
        ], 4)) : he("", !0),
        X("div", {
          class: "gantt-splitter",
          onMousedown: Q
        }, [
          X("div", {
            class: Ke(["task-list-toggle", {
              collapsed: !y.value,
              [v.value]: N.value
            }]),
            title: y.value ? P.value : lA.value,
            onClick: Kn(U, ["stop"])
          }, [
            (xA(), DA("svg", tC, [
              y.value ? (xA(), DA("polyline", rC)) : (xA(), DA("polyline", nC))
            ]))
          ], 10, eC)
        ], 32),
        X("div", {
          class: Ke(["gantt-panel gantt-panel-right", { "full-width": !y.value }])
        }, [
          $[0] || ($[0] = X("div", { class: "timeline-fade-overlay timeline-fade-left" }, null, -1)),
          $[1] || ($[1] = X("div", { class: "timeline-fade-overlay timeline-fade-right" }, null, -1)),
          un(Zp, {
            ref_key: "timelineRef",
            ref: s,
            tasks: iA.value,
            milestones: A.milestones,
            "start-date": k.value.min,
            "end-date": k.value.max,
            "on-task-double-click": A.onTaskDoubleClick,
            "edit-component": A.editComponent,
            "use-default-drawer": A.useDefaultDrawer,
            "on-task-delete": A.onTaskDelete,
            "on-milestone-save": R
          }, null, 8, ["tasks", "milestones", "start-date", "end-date", "on-task-double-click", "edit-component", "use-default-drawer", "on-task-delete"])
        ], 2)
      ])
    ], 2));
  }
}), aC = /* @__PURE__ */ xr(iC, [["__scopeId", "data-v-9fc7d7d0"]]), sC = (t) => {
  t.component("GanttChart", aC);
}, lC = {
  install: sC
};
export {
  aC as G,
  N1 as M,
  v1 as T,
  Se as _,
  lC as a,
  Zp as b,
  Q1 as c,
  cp as d,
  Gp as e,
  s1 as f,
  sC as i,
  Ch as u
};