jordium-gantt-vue3
Version:
A modern, flexible, and feature-rich Gantt chart component library for Vue 3
31,542 lines • 1.43 MB
JavaScript
var J4 = Object.defineProperty;
var Z4 = (r, t, e) => t in r ? J4(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e;
var HA = (r, t, e) => Z4(r, typeof t != "symbol" ? t + "" : t, e);
import { ref as Te, computed as lt, defineComponent as dn, watch as EA, createElementBlock as fe, openBlock as ae, createElementVNode as Y, withDirectives as Ba, toDisplayString as Ge, unref as vt, vModelText as Di, createCommentVNode as Ct, withModifiers as NA, Fragment as Ut, createTextVNode as kA, nextTick as rr, onMounted as En, onUnmounted as tn, createBlock as wr, Teleport as To, normalizeStyle as rA, createVNode as $n, normalizeClass as iA, renderList as uA, useSlots as Fc, inject as Oy, resolveComponent as eE, resolveDynamicComponent as _s, createStaticVNode as ks, renderSlot as Li, mergeProps as Qo, createSlots as Cl, withCtx as fs, h as Wn, normalizeProps as oc, shallowRef as iu, Transition as y0, vModelSelect as Wu, reactive as lc, withKeys as tE, provide as AE, guardReactiveProps as b0 } from "vue";
const Gu = {
"zh-CN": {
dateNotSet: "未设置",
// 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: (r, t) => `${r}年${String(t).padStart(2, "0")}月`,
// 月份格式
monthFormat: (r) => `${r}月`,
// 月份名称
monthNames: [
"一月",
"二月",
"三月",
"四月",
"五月",
"六月",
"七月",
"八月",
"九月",
"十月",
"十一月",
"十二月"
],
weekDays: ["日", "一", "二", "三", "四", "五", "六"],
// 其他
milestone: "里程碑",
targetDate: "目标日期",
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",
expandAll: "全部展开",
collapseAll: "全部折叠",
language: "中文",
languageTooltip: "选择语言",
lightMode: "明亮模式",
darkMode: "暗黑模式",
fullscreen: "全屏",
exitFullscreen: "退出全屏",
githubDocs: "查看Github文档",
giteeDocs: "查看Gitee文档",
// 时间刻度按钮
timeScaleHour: "时",
timeScaleDay: "日",
timeScaleWeek: "周",
timeScaleMonth: "月",
timeScaleQuarter: "季",
timeScaleYear: "年",
timeScaleTooltip: "切换时间刻度",
halfYearFirst: "上半年",
halfYearSecond: "下半年",
// 确认对话框
confirmDialogMessage: "是否需要保留该设置?",
// 新建任务对话框
newTask: "新建任务",
taskNamePlaceholder: "请输入任务名称",
assigneePlaceholder: "请输入负责人",
progressPlaceholder: "0-100",
hoursPlaceholder: "工时",
descriptionPlaceholder: "请输入任务描述...",
hours: "小时",
create: "创建",
taskNameRequired: "任务名称不能为空",
startDateRequired: "开始日期不能为空",
endDateRequired: "结束日期不能为空",
endDateInvalid: "结束日期不能早于开始日期",
// 新建里程碑对话框
newMilestone: "新建里程碑",
editMilestone: "编辑里程碑",
cancel: "取消",
// 右键菜单
startTimer: "开始计时",
stopTimer: "停止计时",
timerStarted: "任务计时已开始",
timerStopped: "任务计时已停止",
addPredecessor: "添加前置任务",
addSuccessor: "添加后置任务",
// PDF导出相关
pdfExportLoading: "正在生成PDF,请稍候...",
pdfExportTitle: "甘特图导出",
pdfExportDate: "导出日期",
milestoneGroup: "里程碑",
collapseTaskList: "收起任务列表",
expandTaskList: "展开任务列表",
// TaskDrawer 相关
taskType: "任务类型",
taskTypeRequired: "请选择任务类型",
taskTypeMap: {
task: "任务",
milestone: "里程碑",
story: "需求",
epic: "史诗",
bug: "缺陷"
},
editTask: "编辑任务",
parentTask: "上级任务",
// 时间选择器相关
time: "时间",
selectTime: "选择时间",
hour: "时",
minute: "分",
noParentTask: "无上级任务",
update: "更新",
taskNameTooLong: "任务名称不能超过50个字符",
predecessorPlaceholder: "请选择前置任务",
selectPredecessor: "选择前置任务",
removePredecessor: "移除前置任务",
deleteLinks: "删除链接",
noLinks: "无链接",
predecessorLink: "前置: {name}",
successorLink: "后置: {name}",
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: "天",
// 计时确认弹窗
timerConfirmPrefix: "即将为任务",
timerConfirmSuffix: "计时,若有特殊说明请完善下面的描述",
timerConfirmPlaceholder: "请输入计时说明",
// Demo配置面板
configDemo: "配置演示",
// TaskList配置
taskListConfig: {
title: "TaskList 配置",
columns: {
title: "列显示(默认渲染模式下生效)",
renderMode: "渲染模式",
renderModeDefault: "默认(通过 TaskListColumnConfig 设置)",
renderModeDeclarative: "声明式(使用 TaskListColumn 设置可见列)"
},
width: {
title: "宽度设置",
defaultWidth: "默认宽度",
minWidth: "最小宽度",
maxWidth: "最大宽度",
pixelsModel: "像素 (px)",
percentageModel: "百分比 (%)"
}
},
// TaskBar配置
taskBarConfig: {
title: "TaskBar 配置",
display: {
title: "显示选项",
showAvatar: "显示头像 (Avatar)",
showTitle: "显示标题 (Title)",
showProgress: "显示进度 (Progress)"
},
mistouch: {
title: "防误触配置",
dragThreshold: "拖拽阈值 (px)",
dragThresholdHint: "移动超过此距离才触发拖拽",
resizeHandleWidth: "拉伸手柄宽度 (px)",
resizeHandleWidthHint: "调整手柄的可点击宽度 (5-15px)",
enableDragDelay: "启用拖拽延迟",
enableDragDelayHint: "按住一段时间后才能拖拽",
dragDelayTime: "延迟时间 (ms)",
dragDelayTimeHint: "延迟启动拖拽的时间",
allowDragOnClick: "允许拖拽和拉伸 TaskBar 和 Milestone",
allowDragOnClickHint: "控制是否允许拖拽 TaskBar 和 Milestone,以及拉伸 TaskBar 的长度"
}
},
disableTaskbarFocusMode: "关闭聚焦功能",
dataSourceAlreadyLoaded: "{name} 已是当前数据源",
dataSourceLoadSuccess: "已加载 {name}",
dataSourceLoadFailed: "{name} 加载失败",
dataSourceSwitch: {
title: "数据源切换",
subtitle: "对比常规与超大数据集的初始化体验",
loading: "数据加载中,请稍候...",
alreadyLoaded: "{name} 已是当前数据源",
loadSuccess: "已加载 {name}",
loadFailed: "{name} 加载失败",
sources: {
normal: {
label: "常规数据源",
description: "data.json · 含完整前/后置依赖,适合功能演示",
badge: "data.json"
},
large: {
label: "超大数据源",
description: "data-large-1m.json · 百万级任务,验证虚拟渲染性能",
badge: "data-large-1m.json"
}
}
}
},
"en-US": {
dateNotSet: "Not set",
// 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: (r, t) => `${r}/${String(t).padStart(2, "0")}`,
// 月份格式
monthFormat: (r) => `${String(r).padStart(2, "0")}`,
// Month name
monthNames: [
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec"
],
weekDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
// 其他
milestone: "Milestone",
today: "Today",
targetDate: "Target Date",
// 里程碑对话框
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",
expandAll: "Expand All",
collapseAll: "Collapse All",
language: "English",
languageTooltip: "Select language",
lightMode: "Light Mode",
darkMode: "Dark Mode",
fullscreen: "Fullscreen",
exitFullscreen: "Exit Fullscreen",
githubDocs: "GitHub Docs",
giteeDocs: "Gitee Docs",
// 时间刻度按钮
timeScaleHour: "Hour",
timeScaleDay: "Day",
timeScaleWeek: "Week",
timeScaleMonth: "Month",
timeScaleQuarter: "Quarter",
timeScaleYear: "Year",
timeScaleTooltip: "Switch Time Scale",
halfYearFirst: "First Half",
halfYearSecond: "Second Half",
// 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",
// Context menu
timerStarted: "Timer Started",
timerStopped: "Timer Stopped",
startTimer: "Start Timer",
stopTimer: "Stop Timer",
addPredecessor: "Add Predecessor",
addSuccessor: "Add Successor",
// 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",
// 时间选择器相关
time: "Time",
selectTime: "Select Time",
hour: "Hour",
minute: "Minute",
noParentTask: "No Parent Task",
update: "Update",
taskNameTooLong: "Task name cannot exceed 50 characters",
predecessorPlaceholder: "Select predecessor",
selectPredecessor: "Select Predecessor",
removePredecessor: "Remove Predecessor",
deleteLinks: "Delete Links",
noLinks: "No Links",
predecessorLink: "Predecessor: {name}",
successorLink: "Successor: {name}",
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",
// 计时确认弹窗
timerConfirmPrefix: "About to start timing for",
timerConfirmSuffix: ". If there are special notes, please complete the description below.",
timerConfirmPlaceholder: "Please enter timer description",
// Demo配置面板
configDemo: "Configuration Demo",
// TaskList配置
taskListConfig: {
title: "TaskList Configuration",
columns: {
title: "Columns(默effective in default render mode)",
renderMode: "Render Mode",
renderModeDefault: "Default (via TaskListColumnConfig)",
renderModeDeclarative: "Declarative (via TaskListColumn)"
},
width: {
title: "Width Settings",
defaultWidth: "Default Width",
minWidth: "Min Width",
maxWidth: "Max Width",
pixelsModel: "pixels (px)",
percentageModel: "percentage (%)"
}
},
// TaskBar配置
taskBarConfig: {
title: "TaskBar Configuration",
display: {
title: "Display Options",
showAvatar: "Show Avatar",
showTitle: "Show Title",
showProgress: "Show Progress"
},
mistouch: {
title: "Mistouch Prevention",
dragThreshold: "Drag Threshold (px)",
dragThresholdHint: "Distance to trigger dragging",
resizeHandleWidth: "Resize Handle Width (px)",
resizeHandleWidthHint: "Clickable width of resize handle (5-15px)",
enableDragDelay: "Enable Drag Delay",
enableDragDelayHint: "Hold to drag after a delay",
dragDelayTime: "Delay Time (ms)",
dragDelayTimeHint: "Delay time before dragging starts",
allowDragOnClick: "Allow dragging and resizing of TaskBars and Milestones",
allowDragOnClickHint: "Controls whether to allow dragging of TaskBars and Milestones, as well as resizing the length of TaskBars"
}
},
disableTaskbarFocusMode: "Disable Focus Mode",
dataSourceAlreadyLoaded: "{name} is already active",
dataSourceLoadSuccess: "{name} loaded successfully",
dataSourceLoadFailed: "{name} failed to load",
dataSourceSwitch: {
title: "Data Sources",
subtitle: "Compare default vs. mega dataset initialization",
loading: "Loading data, please wait…",
alreadyLoaded: "{name} is already active",
loadSuccess: "{name} loaded successfully",
loadFailed: "{name} failed to load",
sources: {
normal: {
label: "Standard Dataset",
description: "data.json · Full predecessor graph for feature demos",
badge: "data.json"
},
large: {
label: "Massive Dataset",
description: "data-large-1m.json · Million-level tasks to stress virtual rendering",
badge: "data-large-1m.json"
}
}
}
}
};
function C0(r, t) {
Gu[r] && (Gu[r] = {
...Gu[r],
...t
}, Yu.value === r && window.dispatchEvent(
new CustomEvent("locale-changed", {
detail: { locale: r }
})
));
}
const rE = "gantt-locale", nE = () => {
if (typeof window < "u") {
const r = localStorage.getItem(rE);
if (r && (r === "zh-CN" || r === "en-US"))
return r;
}
return "zh-CN";
}, Yu = Te(nE());
function Ma() {
const r = lt(() => Gu[Yu.value]), t = (i, o) => {
const l = i.split(".");
let u = r.value;
for (const h of l)
if (u && typeof u == "object" && h in u)
u = u[h];
else
return o || i;
return typeof u == "string" ? u : o || i;
}, e = (i, o) => {
let l = t(i);
return Object.keys(o).forEach((u) => {
l = l.replace(new RegExp(`{${u}}`, "g"), String(o[u]));
}), l;
}, A = (i) => {
Yu.value = i, window.dispatchEvent(
new CustomEvent("locale-changed", {
detail: { locale: i }
})
);
}, n = lt(() => Yu.value);
return {
t: r,
getTranslation: t,
formatTranslation: e,
locale: n,
setLocale: A,
formatYearMonth: (i, o) => r.value.yearMonthFormat(i, o),
formatMonth: (i) => r.value.monthFormat(i)
};
}
function aE(r) {
if (!r) return null;
const [t, e, A] = r.split("-").map(Number);
return new Date(t, e - 1, A);
}
function Da(r) {
return r ? Array.isArray(r) && typeof r[0] == "number" ? r : Array.isArray(r) ? r.filter((t) => t && t.toString().trim()).map((t) => Number(t.toString().trim())).filter((t) => !isNaN(t)) : r.split(",").map((t) => t.trim()).filter((t) => t).map((t) => Number(t)).filter((t) => !isNaN(t)) : [];
}
function Xg(r) {
const t = Da(r);
return t.length > 0 ? t.join(", ") : "-";
}
const iE = { class: "confirm-timer-dialog-overlay" }, sE = { class: "confirm-timer-dialog" }, oE = { class: "dialog-message" }, lE = { class: "task-name-highlight" }, uE = ["placeholder"], cE = { class: "dialog-actions" }, fE = /* @__PURE__ */ dn({
__name: "ConfirmTimerDialog",
props: {
visible: Boolean,
title: { type: String, default: "确认开始计时" },
message: { type: String, default: "" },
defaultDesc: { type: String, default: "" },
placeholder: { type: String, default: "请输入计时说明" }
},
emits: ["confirm", "cancel"],
setup(r, { emit: t }) {
const e = r, A = t, { getTranslation: n } = Ma(), a = Te(e.defaultDesc);
EA(
() => e.visible,
(o) => {
o && (a.value = e.defaultDesc);
}
);
const s = () => A("confirm", a.value), i = lt(() => {
if (e.message) {
const o = e.message.match(/任务([\S\s]+?)计时|Task ([\S\s]+?) timing/);
if (o && (o[1] || o[2])) return o[1] || o[2];
}
return e.defaultDesc;
});
return (o, l) => (ae(), fe("div", iE, [
Y("div", sE, [
Y("div", oE, [
Y("span", null, Ge(vt(n)("timerConfirmPrefix")), 1),
Y("span", lE, Ge(i.value), 1),
Y("span", null, Ge(vt(n)("timerConfirmSuffix")), 1)
]),
Ba(Y("textarea", {
"onUpdate:modelValue": l[0] || (l[0] = (u) => a.value = u),
class: "dialog-textarea",
placeholder: vt(n)("timerConfirmPlaceholder"),
rows: "3"
}, null, 8, uE), [
[Di, a.value]
]),
Y("div", cE, [
Y("button", {
class: "gantt-btn gantt-btn-default",
onClick: l[1] || (l[1] = (u) => o.$emit("cancel"))
}, Ge(vt(n)("cancel")), 1),
Y("button", {
class: "gantt-btn gantt-btn-confirm",
onClick: s
}, Ge(vt(n)("startTimer")), 1)
])
])
]));
}
}), xn = (r, t) => {
const e = r.__vccOpts || r;
for (const [A, n] of t)
e[A] = n;
return e;
}, Ry = /* @__PURE__ */ xn(fE, [["__scopeId", "data-v-c362ca3d"]]), hE = { class: "gantt-confirm-header" }, dE = { class: "gantt-confirm-title" }, gE = { class: "gantt-confirm-content" }, pE = { class: "gantt-confirm-footer" }, vE = { class: "gantt-confirm-footer-right" }, mE = /* @__PURE__ */ dn({
__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(r, { emit: t }) {
const e = r, A = t, n = () => A("confirm"), a = () => A("cancel"), s = () => A("yes"), i = () => A("no");
return (o, l) => r.visible ? (ae(), fe("div", {
key: 0,
class: "gantt-confirm-overlay",
onClick: a
}, [
Y("div", {
class: "gantt-confirm-dialog",
onClick: l[0] || (l[0] = NA(() => {
}, ["stop"]))
}, [
Y("div", hE, [
Y("h4", dE, Ge(e.title), 1)
]),
Y("div", gE, [
Y("p", null, Ge(e.message), 1)
]),
Y("div", pE, [
e.type === "yes-no-cancel" ? (ae(), fe(Ut, { key: 0 }, [
Y("button", {
type: "button",
class: "gantt-btn gantt-btn-default",
onClick: a
}, Ge(e.cancelText), 1),
Y("div", vE, [
Y("button", {
type: "button",
class: "gantt-btn gantt-btn-warning",
onClick: i
}, Ge(e.noText), 1),
Y("button", {
type: "button",
class: "gantt-btn gantt-btn-danger",
onClick: s
}, Ge(e.yesText), 1)
])
], 64)) : (ae(), fe(Ut, { key: 1 }, [
Y("button", {
type: "button",
class: "gantt-btn gantt-btn-default",
onClick: a
}, Ge(e.cancelText), 1),
l[1] || (l[1] = kA(" ")),
Y("button", {
type: "button",
class: "gantt-btn gantt-btn-danger",
onClick: n
}, Ge(e.confirmText), 1)
], 64))
])
])
])) : Ct("", !0);
}
}), $p = /* @__PURE__ */ xn(mE, [["__scopeId", "data-v-4a27f0b2"]]), wE = { class: "icon-wrapper" }, BE = ["onClick"], yE = ["innerHTML"], bE = /* @__PURE__ */ dn({
__name: "TaskContextMenu",
props: {
visible: { type: Boolean },
position: {},
task: {},
allTasks: {}
},
emits: [
"start-timer",
"stop-timer",
"add-predecessor",
"add-successor",
"delete",
// 新增delete事件
"delete-link",
// 删除链接事件
"close"
],
setup(r, { emit: t }) {
const e = r, A = t, { t: n } = Ma(), a = Te(null), s = Te({
x: 0,
y: 0
}), i = Te({
display: "none",
// 初始不显示
left: "50%",
top: "-8px",
transform: "rotate(0deg)"
}), o = Te(!1), l = Te(""), u = Te(!1), h = lt(() => {
var X;
return ((X = e.task) == null ? void 0 : X.type) === "story" ? "yes-no-cancel" : "confirm-cancel";
}), g = lt(() => {
var X, Ae, oe;
return ((X = e.task) == null ? void 0 : X.type) === "story" ? n.value.confirmDeleteStory.replace("{name}", ((Ae = e.task) == null ? void 0 : Ae.name) || "") : n.value.confirmDeleteTask.replace("{name}", ((oe = e.task) == null ? void 0 : oe.name) || "");
});
function c() {
var X;
l.value = ((X = e.task) == null ? void 0 : X.name) || "", o.value = !0;
}
function p() {
o.value = !1;
}
function m(X) {
if (o.value = !1, e.task && typeof e.task == "object") {
A("close");
const Ae = Date.now();
Object.assign(e.task, {
timerStartDesc: X || "",
isTimerRunning: !0,
timerStartTime: Ae,
timerElapsedTime: 0
// 每次从0秒开始
}), A("start-timer", e.task);
}
}
function y() {
u.value = !0;
}
const w = () => {
u.value = !1, e.task && (A("delete", e.task), A("close"));
}, E = () => {
u.value = !1;
}, C = () => {
u.value = !1, e.task && (A("delete", e.task, !0), O());
}, F = () => {
u.value = !1, e.task && (A("delete", e.task, !1), O());
}, H = lt(() => {
var X;
return ((X = e.task) == null ? void 0 : X.type) !== "story";
}), q = Te(!1);
let N = null;
const M = lt(() => {
const X = [];
if (!e.task || !e.allTasks) return X;
if (e.task.predecessor) {
const Ae = Da(e.task.predecessor);
for (const oe of Ae) {
const x = e.allTasks.find((L) => L.id === oe);
x && X.push({
type: "predecessor",
taskId: oe,
taskName: x.name || `任务 ${oe}`
});
}
}
for (const Ae of e.allTasks)
Ae.predecessor && Ae.id !== e.task.id && Da(Ae.predecessor).includes(e.task.id) && X.push({
type: "successor",
taskId: Ae.id,
taskName: Ae.name || `任务 ${Ae.id}`
});
return X;
}), k = lt(() => M.value.length > 0);
EA(
[() => e.visible, () => e.position],
([X, Ae]) => {
X && Ae && rr(() => {
if (a.value) {
const oe = window.innerWidth, x = window.innerHeight, L = a.value.offsetWidth, j = a.value.offsetHeight;
let $ = Ae.x - L / 2, re = Ae.y + 10, pe = "50%", de = "-8px", ce = "rotate(0deg)";
if ($ + L > oe) {
const Se = $ + L - oe + 5;
$ -= Se, pe = `calc(50% + ${Se}px)`;
}
if ($ < 5) {
const Se = 5 - $;
$ = 5, pe = `calc(50% - ${Se}px)`;
}
re + j > x && (re = Ae.y - j - 10, de = "100%", ce = "rotate(180deg)"), s.value = {
x: $,
y: re
}, i.value = {
display: "block",
left: pe,
top: de,
transform: ce
};
}
});
},
{ immediate: !0, deep: !0 }
);
const O = () => {
A("close");
}, S = () => {
var X;
(X = e.task) != null && X.isTimerRunning ? (A("close"), Object.assign(e.task, {
isTimerRunning: !1,
timerEndTime: Date.now(),
timerElapsedTime: (e.task.timerElapsedTime || 0) + (Date.now() - (e.task.timerStartTime || Date.now()))
}), A("stop-timer", e.task)) : c();
}, U = () => {
e.task && (A("close"), rr(() => {
A("add-predecessor", e.task);
}));
}, W = () => {
e.task && (A("close"), rr(() => {
A("add-successor", e.task);
}));
}, I = (X) => {
N && (clearTimeout(N), N = null), q.value = !1, A("delete-link", {
sourceTaskId: X.type === "predecessor" ? X.taskId : e.task.id,
targetTaskId: X.type === "predecessor" ? e.task.id : X.taskId
}), A("close");
}, le = () => {
N && (clearTimeout(N), N = null), q.value = !0;
}, ue = () => {
N = window.setTimeout(() => {
q.value = !1;
}, 200);
}, Z = (X) => {
a.value && !a.value.contains(X.target) && O();
}, ee = (X) => {
X.key === "Escape" && O();
};
return En(() => {
document.addEventListener("mousedown", Z), document.addEventListener("keydown", ee);
}), tn(() => {
document.removeEventListener("mousedown", Z), document.removeEventListener("keydown", ee), N && clearTimeout(N);
}), (X, Ae) => {
var oe, x, L, j;
return ae(), wr(To, { to: "body" }, [
X.visible ? (ae(), fe("div", {
key: 0,
ref_key: "menuRef",
ref: a,
class: "task-context-menu",
style: rA({
left: `${s.value.x}px`,
top: `${s.value.y}px`,
zIndex: 1e4,
position: "fixed"
})
}, [
Y("div", {
class: "menu-arrow",
style: rA({
display: i.value.display,
left: i.value.left,
top: i.value.top,
transform: i.value.transform
})
}, null, 4),
H.value ? (ae(), fe("div", {
key: 0,
class: "menu-item",
onClick: S
}, [
Y("div", wE, [
Y("i", {
class: iA(["menu-icon", (oe = e.task) != null && oe.isTimerRunning ? "stop-icon" : "timer-icon"])
}, null, 2)
]),
kA(" " + Ge((x = e.task) != null && x.isTimerRunning ? vt(n).stopTimer : vt(n).startTimer), 1)
])) : Ct("", !0),
Y("div", {
class: "menu-item",
onClick: U
}, [
Ae[0] || (Ae[0] = Y("div", { class: "icon-wrapper" }, [
Y("i", { class: "menu-icon predecessor-icon" })
], -1)),
kA(" " + Ge(vt(n).addPredecessor), 1)
]),
Y("div", {
class: "menu-item",
onClick: W
}, [
Ae[1] || (Ae[1] = Y("div", { class: "icon-wrapper" }, [
Y("i", { class: "menu-icon successor-icon" })
], -1)),
kA(" " + Ge(vt(n).addSuccessor), 1)
]),
k.value ? (ae(), fe("div", {
key: 1,
class: "menu-item menu-item-with-submenu",
onMouseenter: le,
onMouseleave: ue
}, [
Ae[2] || (Ae[2] = Y("div", { class: "icon-wrapper" }, [
Y("i", { class: "menu-icon link-delete-icon" })
], -1)),
kA(" " + Ge(vt(n).deleteLinks) + " ", 1),
Ae[3] || (Ae[3] = Y("i", { class: "submenu-arrow" }, "›", -1)),
q.value ? (ae(), fe("div", {
key: 0,
class: "submenu",
onMouseenter: le,
onMouseleave: ue
}, [
(ae(!0), fe(Ut, null, uA(M.value, ($) => (ae(), fe("div", {
key: `${$.type}-${$.taskId}`,
class: "menu-item submenu-item",
onClick: NA((re) => I($), ["stop"])
}, [
Y("span", {
innerHTML: $.type === "predecessor" ? vt(n).predecessorLink.replace("{name}", $.taskName) : vt(n).successorLink.replace("{name}", $.taskName)
}, null, 8, yE)
], 8, BE))), 128))
], 32)) : Ct("", !0)
], 32)) : Ct("", !0),
Ae[5] || (Ae[5] = Y("div", { class: "menu-divider" }, null, -1)),
Y("div", {
class: "menu-item menu-item-danger",
onClick: y
}, [
Ae[4] || (Ae[4] = Y("div", { class: "icon-wrapper" }, [
Y("i", { class: "menu-icon delete-icon" })
], -1)),
kA(" " + Ge(vt(n).delete), 1)
]),
$n($p, {
visible: u.value,
title: vt(n).delete,
type: h.value,
message: g.value,
"confirm-text": vt(n).confirm,
"cancel-text": vt(n).cancel,
"yes-text": vt(n).storyDeleteYes,
"no-text": vt(n).storyDeleteNo,
onConfirm: w,
onYes: C,
onNo: F,
onCancel: E
}, null, 8, ["visible", "title", "type", "message", "confirm-text", "cancel-text", "yes-text", "no-text"]),
o.value ? (ae(), wr(Ry, {
key: 2,
visible: o.value,
title: "确认开始计时",
message: `即将为任务${(L = e.task) == null ? void 0 : L.name}计时,若有特殊说明请完善下面的描述`,
"default-desc": ((j = e.task) == null ? void 0 : j.name) || "",
onConfirm: m,
onCancel: p
}, null, 8, ["visible", "message", "default-desc"])) : Ct("", !0)
], 4)) : Ct("", !0)
]);
};
}
}), Hy = /* @__PURE__ */ xn(bE, [["__scopeId", "data-v-604bf4d7"]]), CE = ["data-task-id"], EE = {
width: "12",
height: "12",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, FE = {
key: 0,
points: "9,18 15,12 9,6"
}, xE = {
key: 1,
points: "18,15 12,9 6,15"
}, SE = {
key: 1,
class: "milestone-spacer"
}, UE = {
key: 2,
class: "leaf-spacer"
}, TE = {
width: "12",
height: "12",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, QE = {
key: 0,
points: "9,18 15,12 9,6"
}, DE = {
key: 1,
points: "18,15 12,9 6,15"
}, kE = {
key: 1,
class: "milestone-spacer"
}, LE = {
key: 2,
class: "leaf-spacer"
}, IE = {
key: 0,
class: "task-icon"
}, _E = {
key: 0,
width: "16",
height: "16",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2",
class: "milestone-group-icon"
}, NE = {
key: 1,
width: "16",
height: "16",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, ME = {
key: 2,
width: "16",
height: "16",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, OE = ["title"], RE = {
key: 0,
class: "timer-dot"
}, HE = {
key: 1,
class: "status-badge overtime"
}, PE = {
key: 2,
class: "status-badge overdue"
}, KE = {
key: 0,
class: "task-icon"
}, VE = {
key: 0,
width: "16",
height: "16",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2",
class: "milestone-group-icon"
}, qE = {
key: 1,
width: "16",
height: "16",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, jE = {
key: 2,
width: "16",
height: "16",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, WE = ["title"], GE = {
key: 0,
class: "timer-dot"
}, YE = {
key: 1,
class: "status-badge overtime"
}, $E = {
key: 2,
class: "status-badge overdue"
}, zE = {
key: 0,
class: "milestone-empty-col"
}, XE = {
key: 3,
class: "assignee-info"
}, JE = { class: "avatar" }, ZE = { class: "assignee-name" }, eF = 10, tF = /* @__PURE__ */ dn({
__name: "TaskRow",
props: {
task: {},
level: {},
rowIndex: {},
isHovered: { type: Boolean },
hoveredTaskId: {},
onHover: {},
columns: {},
declarativeColumns: {},
renderMode: { default: "default" },
getColumnWidthStyle: {},
disableChildrenRender: { type: Boolean },
showTaskIcon: { type: Boolean },
enableDrag: { type: Boolean },
dragStart: {},
dragOver: {},
taskListRowClassName: {},
taskListRowStyle: { type: [Boolean, null, String, Object, Array, Function] }
},
emits: [
"toggle",
"dblclick",
"contextmenu",
"start-timer",
"stop-timer",
"add-predecessor",
"add-successor",
"delete"
],
setup(r, { emit: t }) {
const e = r, A = t, { t: n } = Ma(), a = lt(() => {
var D;
return ((D = n.value) == null ? void 0 : D.overtime) ?? "";
}), s = lt(() => {
var D;
return ((D = n.value) == null ? void 0 : D.overdue) ?? "";
}), i = lt(() => {
var D;
return ((D = n.value) == null ? void 0 : D.days) ?? "";
}), o = Fc(), l = lt(() => !!o["custom-task-content"]), u = Oy("gantt-column-slots", {}), h = (D) => {
const Ie = `column-${D}`;
return !!u[Ie];
}, g = (D, Ie) => {
const me = `column-${D}`, ve = u[me];
return ve ? ve(Ie) : null;
}, c = lt(() => e.renderMode === "declarative" && e.declarativeColumns ? e.declarativeColumns : e.columns), p = (D) => D === 0, m = (D) => ({
justifyContent: D.align === "center" ? "center" : D.align === "right" ? "flex-end" : "flex-start",
textAlign: D.align || "left"
}), y = (D, Ie) => {
if (p(Ie)) {
const me = D.prop ? e.task[D.prop] : e.task.name;
return D.defaultSlot ? Wn("div", { class: "task-name-content" }, [
// 自定义内容
Wn(
"span",
{
class: ["task-name-text", { "parent-task": q.value }],
title: me
},
[D.defaultSlot({
row: e.task,
$index: Ie
})]
)
]) : Wn("div", { class: "task-name-content" }, [
// 任务图标
e.showTaskIcon !== !1 ? Wn(
"span",
{ class: "task-icon" },
F.value ? Wn(
"svg",
{
width: 16,
height: 16,
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": 2,
class: "milestone-group-icon"
},
Wn("polygon", { points: "12,2 22,12 12,22 2,12" })
) : C.value || E.value ? Wn(
"svg",
{
width: 16,
height: 16,
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": 2
},
Wn("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"
})
) : Wn(
"svg",
{
width: 16,
height: 16,
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": 2
},
[
Wn("path", {
d: "M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"
}),
Wn("polyline", { points: "14,2 14,8 20,8" }),
Wn("line", { x1: 16, y1: 13, x2: 8, y2: 13 }),
Wn("line", { x1: 16, y1: 17, x2: 8, y2: 17 }),
Wn("polyline", { points: "10,9 9,9 8,9" })
]
)
) : null,
// 列的值(使用 prop 或默认 name)
Wn(
"span",
{
class: ["task-name-text", { "parent-task": q.value }],
title: me
},
me || "-"
)
]);
}
if (D.defaultSlot)
return D.defaultSlot({
row: e.task,
$index: Ie
});
if (D.prop) {
const me = e.task[D.prop];
return me ?? "-";
}
return "-";
}, w = lt(() => `${eF + e.level * 20}px`), E = lt(() => !!(e.task.children && e.task.children.length > 0)), C = lt(() => e.task.type === "story"), F = lt(() => e.task.type === "milestone-group"), H = lt(() => e.task.type === "milestone"), q = lt(
() => C.value || E.value || F.value
), N = lt(() => e.taskListRowClassName ? typeof e.taskListRowClassName == "function" ? e.taskListRowClassName(e.task, e.rowIndex ?? 0) : e.taskListRowClassName : ""), M = lt(() => e.taskListRowStyle ? typeof e.taskListRowStyle == "function" ? e.taskListRowStyle(e.task, e.rowIndex ?? 0) : e.taskListRowStyle : {});
function k() {
A("toggle", e.task);
}
function O() {
(C.value || E.value) && !F.value && A("toggle", e.task);
}
const S = (D) => {
D.stopPropagation(), A("dblclick", e.task);
}, U = () => {
Z.value || e.onHover && e.onHover(e.task.id);
}, W = () => {
Z.value || e.onHover && e.onHover(null);
};
function I() {
const D = e.task.progress || 0, Ie = /* @__PURE__ */ new Date(), me = e.task.endDate ? new Date(e.task.endDate) : null;
return me && Ie > me && D < 100 ? "progress-danger" : D >= 100 ? "progress-success" : D > 0 ? "progress-warning" : "";
}
function le() {
return e.task.actualHours && e.task.estimatedHours && e.task.actualHours > e.task.estimatedHours;
}
function ue() {
const D = /* @__PURE__ */ new Date(), Ie = e.task.endDate ? new Date(e.task.endDate) : null, me = e.task.progress || 0;
if (Ie && D > Ie && me < 100) {
const ve = new Date(D.getFullYear(), D.getMonth(), D.getDate()), xe = new Date(Ie.getFullYear(), Ie.getMonth(), Ie.getDate());
return Math.floor((ve.getTime() - xe.getTime()) / (1e3 * 60 * 60 * 24));
}
return 0;
}
const Z = Te(!1), ee = () => {
Z.value = !0;
}, X = () => {
Z.value = !1;
}, Ae = Te(0), oe = Te(null), x = lt(() => {
const D = Math.floor(Ae.value / 1e3), Ie = Math.floor(D / 3600), me = Math.floor(D % 3600 / 60), ve = D % 60;
return `${String(Ie).padStart(2, "0")}:${String(me).padStart(2, "0")}:${String(ve).padStart(2, "0")}`;
}), L = () => {
if (e.task.isTimerRunning && e.task.timerStartTime) {
const D = e.task.timerElapsedTime || 0;
Ae.value = Date.now() - e.task.timerStartTime + D;
} else e.task.timerElapsedTime ? Ae.value = e.task.timerElapsedTime : Ae.value = 0;
};
EA(
() => [e.task.isTimerRunning, e.task.timerStartTime, e.task.timerElapsedTime],
() => {
oe.value && (clearInterval(oe.value), oe.value = null), e.task.isTimerRunning ? (L(), oe.value = window.setInterval(L, 1e3)) : L();
},
{ immediate: !0 }
);
const j = Te(!1), $ = Te({ x: 0, y: 0 }), re = lt(() => e.task);
function pe(D) {
if (window.dispatchEvent(new CustomEvent("close-all-taskbar-menus")), e.task.type !== "task" && e.task.type !== "story") {
D.preventDefault(), j.value = !1;
return;
}
D.preventDefault(), j.value = !0, $.value = { x: D.clientX, y: D.clientY };
}
function de() {
j.value = !1;
}
const ce = (D, Ie) => {
A("delete", D, Ie), de();
}, Se = lt(() => I()), qe = lt(() => ({
isRowContent: !0,
task: e.task,
level: e.level,
indent: w.value,
isHovered: e.isHovered ?? !1,
hoveredTaskId: e.hoveredTaskId ?? null,
isParent: q.value,
hasChildren: E.value,
collapsed: !!e.task.collapsed,
formattedTimer: x.value,
timerRunning: !!e.task.isTimerRunning,
timerElapsed: Ae.value,
isOvertime: le(),
overdueDays: ue(),
overtimeText: a.value,
overdueText: s.value,
daysText: i.value,
progressClass: Se.value
})), rt = Te(null), at = (D) => {
if (!e.enableDrag) return;
const Ie = D.target;
Ie.tagName === "BUTTON" || Ie.tagName === "INPUT" || Ie.tagName === "SELECT" || Ie.tagName === "TEXTAREA" || Ie.closest(".collapse-btn") || Ie.closest(".task-context-menu") || rt.value && e.dragStart && e.dragStart(e.task, rt.value, D);
}, dt = (D) => {
if (!e.enableDrag || !rt.value || !e.dragOver) return;
const { taskId: Ie, event: me } = D.detail;
Ie === e.task.id && e.dragOver(e.task, rt.value, me);
};
return En(() => {
window.addEventListener("splitter-drag-start", ee), window.addEventListener("splitter-drag-end", X), window.addEventListener("close-all-taskbar-menus", de), window.addEventListener("task-row-drag-over", dt);
}), tn(() => {
window.removeEventListener("splitter-drag-start", ee), window.removeEventListener("splitter-drag-end", X), window.removeEventListener("close-all-taskbar-menus", de), window.removeEventListener("task-row-drag-over", dt), oe.value && clearInterval(oe.value);
}), (D, Ie) => {
const me = eE("TaskRow", !0);
return ae(), fe("div", null, [
Y("div", {
ref_key: "taskRowRef",
ref: rt,
class: iA(["task-row", {
"task-row-hovered": D.isHovered,
"parent-task": q.value,
"milestone-group-row": F.value,
"task-type-story": C.value,
"task-type-task": e.task.type === "task",
"task-type-milestone": H.value,
[N.value]: N.value
}]),
"data-task-id": e.task.id,
style: rA(M.value),
onClick: O,
onDblclick: S,
onMousedown: at,
onMouseenter: U,
onMouseleave: W,
onContextmenu: pe
}, [
D.renderMode === "declarative" && D.declarativeColumns ? (ae(!0), fe(Ut, { key: 0 }, uA(c.value, (ve, xe) => (ae(), fe("div", {
key: xe,
class: iA(["col", [ve.cssClass, { "col-name": p(xe) }]]),
style: rA([
D.getColumnWidthStyle ? D.getColumnWidthStyle(ve) : {},
m(ve)
])
}, [
p(xe) ? (ae(), fe("div", {
key: 0,
style: rA({ paddingLeft: w.value }),
class: "first-col-wrapper"
}, [
(C.value || E.value) && !F.value ? (ae(), fe("span", {
key: 0,
class: "collapse-btn",
onClick: NA(k, ["stop"])
}, [
(ae(), fe("svg", EE, [
e.task.collapsed ? (ae(), fe("polyline", FE)) : (ae(), fe("polyline", xE))
]))
])) : Ct("", !0),
F.value ? (ae(), fe("span", SE)) : Ct("", !0),
!q.value && !F.value && D.showTaskIcon === !1 ? (ae(), fe("span", UE)) : Ct("", !0),
(ae(), wr(_s(() => y(ve, xe))))
], 4)) : (ae(), wr(_s(() => y(ve, xe)), { key: 1 }))
], 6))), 128)) : (ae(), fe(Ut, { key: 1 }, [
Y("div", {
class: "col col-name",
style: rA({ paddingLeft: w.value })
}, [
(C.value || E.value) && !F.value ? (ae(), fe("span", {
key: 0,
class: "collapse-btn",
onClick: NA(k, ["stop"])
}, [
(ae(), fe("svg", TE, [
e.task.collapsed ? (ae(), fe("polyline", QE)) : (ae(), fe("polyline", DE))
]))
])) : Ct("", !0),
F.value ? (ae(), fe("span", kE)) : Ct("", !0),
!q.value && !F.value && D.showTaskIcon === !1 ? (ae(), fe("span", LE)) : Ct("", !0),
h("name") ? (ae(), wr(_s(() => g("name", {
task: e.task,
column: { key: "name" },
value: e.task.name,
isParentTask: q.value,
hasChildren: E.value,
isStoryTask: C.value,
isMilestoneGroup: F.value,
isMilestoneTask: H.value,
showTaskIcon: e.showTaskIcon,
formattedTimer: x.value,
isOvertime: le(),
overdueDays: ue(),
overtimeText: a.value,
overdueText: s.value,
daysText: i.value
})), { key: 3 })) : l.value ? (ae(), fe(Ut, { key: 4 }, [
D.showTaskIcon !== !1 ? (ae(), fe("span", IE, [
F.value ? (ae(), fe("svg", _E, Ie[10] || (Ie[10] = [
Y("polygon", { points: "12,2 22,12 12,22 2,12" }, null, -1)
]))) : C.value || E.value ? (ae(), fe("svg", NE, Ie[11] || (Ie[11] = [
Y("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)
]))) : (ae(), fe("svg", ME, Ie[12] || (Ie[12] = [
ks('<path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" data-v-2bc6791b></path><polyline points="14,2 14,8 20,8" data-v-2bc6791b></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-2bc6791b></line><line x1="16" y1="17" x2="8" y2="17" data-v-2bc6791b></line><polyline points="10,9 9,9 8,9" data-v-2bc6791b></polyline>', 5)
])))
])) : Ct("", !0),
Y("span", {
class: iA(["task-name-text", { "parent-task": q.value }]),
title: e.task.name
}, [
Li(D.$slots, "custom-task-content", Qo(qe.value, { type: "task-row" }), void 0, !0),
e.task.isTimerRunning || e.task.timerElapsedTime ? (ae(), fe("span", {
key: 0,
class: iA(["timer-badge", { "timer-active": e.task.isTimerRunning }])
}, [
e.task.isTimerRunning ? (ae(), fe("span", RE)) : Ct("", !0),
kA(" " + Ge(x.value), 1)
], 2)) : Ct("", !0),
le() ? (ae(), fe("span", HE, Ge(a.value), 1)) : Ct("", !0),
ue() > 0 ? (ae(), fe("span", PE, Ge(s.value) + Ge(ue() > 0 ? ue() + i.value : ""), 1)) : Ct("", !0)
], 10, OE)
], 64)) : (ae(), fe(Ut, { key: 5 }, [
D.showTaskIcon !== !1 ? (ae(), fe("span", KE, [
F.value ? (ae(), fe("svg", VE, Ie[13] || (Ie[13] = [
Y("polygon", { points: "12,2 22,12 12,22 2,12" }, null, -1)
]))) : C.value || E.value ? (ae(), fe("svg", qE, Ie[14] || (Ie[14] = [
Y("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)
]))) : (ae(), fe("svg", jE, Ie[15] || (Ie[15] = [
ks('<path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" data-v-2bc6791b></path><polyline points="14,2 14,8 20,8" data-v-2bc6791b></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-2bc6791b></line><line x1="16" y1="17" x2="8" y2="17" data-v-2bc6791b></line><polyline points="10,9 9,9 8,9" data-v-2bc6791b></polyline>', 5)
])))
])) : Ct("", !0),
Y("span", {
class: iA(["task-name-text", { "parent-task": q.value }]),
title: e.task.name
}, [
kA(Ge(e.task.name) + " ", 1),
e.task.isTimerRunning || e.task.timerElapsedTime ? (ae(), fe("span", {
key: 0,
class: iA(["timer-badge", { "timer-active": e.task.isTimerRunning }])
}, [
e.task.isTimerRunning ? (ae(), fe("span", GE)) : Ct("", !0),
kA(" " + Ge(x.value), 1)
], 2)) : Ct("", !0),
le() ? (ae(), fe("span", YE, Ge(a.value), 1)) : Ct("", !0),
ue() > 0 ? (ae(), fe("span", $E, Ge(s.value) + Ge(ue() > 0 ? ue() + i.value : ""), 1)) : Ct("", !0)
], 10, WE)
], 64))
], 4),
(ae(!0), fe(Ut, null, uA(D.columns, (ve) => (ae(), fe("div", {
key: ve.key,
class: iA(["col", ve.cssClass || `col-${ve.key}`]),
style: rA(D.getColumnWidthStyle ? D.getColumnWidthStyle(ve) : void 0)
}, [
F.value ? (ae(), fe("div", zE)) : (ae(), fe(Ut, { key: 1 }, [
h(ve.key) ? (ae(), wr(_s(() => g(
ve.key,
{ task: e.task, column: ve, value: e.task[ve.key] }
)), { key: 0 })) : ve.formatter ? (ae(), fe(Ut, { key: 1 }, [
kA(Ge(ve.formatter(e.task, ve)), 1)
], 64)) : ve.key === "predecessor" ? (ae(), fe(Ut, { key: 2 }, [
kA(Ge(vt(Xg)(e.task.predecessor)), 1)
], 64)) : ve.key === "assignee" ? (ae(), fe("div", XE, [
Y("div", JE, Ge(e.task.assignee ? e.task.assignee.charAt(0) : "-"), 1),
Y("span", ZE, Ge(e.task.assignee || "-"), 1)
])) : ve.key === "startDate" ? (ae(), fe(Ut, { key: 4 }, [
kA(Ge(e.task.startDate || "-"), 1)
], 64)) : ve.key === "endDate" ? (ae(), fe(Ut, { key: 5 }, [
kA(Ge(e.task.endDate || "-"), 1)
], 64)) : ve.key === "estimatedHours" ? (ae(), fe(Ut, { key: 6 }, [
kA(Ge(e.task.estimatedHours || "-"), 1)
], 64)) : ve.key === "actualHours" ? (ae(), fe(Ut, { key: 7 }, [
kA(Ge(e.task.actualHours || "-"), 1)
], 64)) : ve.key === "progress" ? (ae(), fe("span", {
key: 8,
class: iA(["progress-value", Se.value])
}, Ge(e.task.progress != null ? e.task.progress + "%" : "-"), 3)) : (ae(), fe(Ut, { key: 9 }, [
kA(Ge(e.task[ve.key] || "-"), 1)
], 64))
], 64))
], 6))), 128))
], 64))
], 46, CE),
!e.disableChildrenRender && E.value && !e.task.collapsed && !F.value ? (ae(!0), fe(Ut, { key: 0 }, uA(e.task.children, (ve) => (ae(), wr(me, {
key: ve.id,
task: ve,
level: e.level + 1,
"is-hovered": e.hoveredTaskId === ve.id,
"hovered-task-id": e.hoveredTaskId,
"on-hover": e.onHover,
columns: e.columns,
"declarative-columns": e.declarativeColumns,
"render-mode": e.renderMode,
"get-column-width-style": e.getColumnWidthStyle,
"disable-children-render": e.disableChildrenRender,
"show-task-icon": e.showTaskIcon,
"enable-drag": e.enableDrag,
"drag-start": e.dragStart,
"drag-over": e.dragOver,
onToggle: Ie[0] || (Ie[0] = (xe) => A("toggle", xe)),
onDblclick: Ie[1] || (Ie[1] = (xe) => A("dblclick", xe)),
onStartTimer: Ie[2] || (Ie[2] = (xe) => A("start-timer", xe)),
onStopTimer: Ie[3] || (Ie[3] = (xe) => A("stop-timer", xe)),
onAddPredecessor: Ie[4] || (Ie[4] = (xe) => A("add-predecessor", xe)),
onAddSuccessor: Ie[5] || (Ie[5] = (xe) => A("add-successor", xe)),
onDelete: ce
}, Cl({ _: 2 }, [
l.value ? {
name: "custom-task-content",
fn: fs((xe) => [
Li(D.$slots, "custom-task-content", Qo({ ref_for: !0 }, xe), void 0, !0)
]),
key: "0"
} : void 0
]), 1032, ["task", "level", "is-hovered", "hovered-task-id", "on-hover", "columns", "declarative-columns", "render-mode", "get-column-width-style", "disable-children-render", "show-task-icon", "enable-drag", "drag-start", "drag-over"]))), 128)) : Ct("", !0),
$n(Hy, {
visible: j.value,
task: re.value,
position: $.value,
onClose: de,
onStartTimer: Ie[6] || (Ie[6] = (ve) => D.$emit("start-timer", e.task)),
onStopTimer: Ie[7] || (Ie[7] = (ve) => D.$emit("stop-timer", e.task)),
onAddPredecessor: Ie[8] || (Ie[8] = (ve) => D.$emit("add-predecessor", e.task)),
onAddSuccessor: Ie[9] || (Ie[9] = (ve) => D.$emit("add-successor", e.task)),
onDelete: ce
}, null, 8, ["visible", "task", "position"])
]);
};
}
}), AF = /* @__PURE__ */ xn(tF, [["__scopeId", "data-v-2bc6791b"]]), rF = 320, E0 = 280, nF = 1160;
function vf(r, t, e) {
if (r == null)
return e;
if (typeof r == "number")
return r;
if (typeof r == "string") {
const A = r.trim();
if (A.endsWith("%")) {
const a = parseFloat(A);
if (!isNaN(a))
return Math.round(t * a / 100);
}
const n = parseFloat(A);
if (!isNaN(n))
return n;
}
return e;
}
const mf = [
{
type: "name",
key: "taskName",
label: "任务名称",
cssClass: "col-name",
visible: !0
},
{
type: "predecessor",
key: "predecessor",
label: "前置任务",
cssClass: "col-pre",
visible: !0
},
{
type: "assignee",
key: "assignee",
label: "负责人",
cssClass: "col-assignee",
visible: !0
},
{
type: "startDate",
key: "startDate",
label: "开始日期",
cssClass: "col-date",
visible: !0
},
{
type: "endDate",
key: "endDate",
label: "结束日期",
cssClass: "col-date",
visible: !0
},
{
type: "estimatedHours",
key: "estimatedHours",
label: "预估工时",
cssClass: "col-hours",
visible: !0
},
{
type: "actualHours",
key: "actualHours",
label: "实际工时",
cssClass: "col-hours",
visible: !0
},
{
type: "progress",
key: "progress",
label: "进度",
cssClass: "col-progress",
visible: !0
}
];
function aF(r) {
const t = r.dragThreshold ?? 5, e = Te({
isDragging: !1,
isPreparing: !1,
draggedTask: null,
draggedElement: null,
ghostElement: null,
dropTargetTask: null,
dropPosition: null,
startX: 0,
startY: 0
}), A = (g, c, p) => {
r.enabled && (g.type === "milestone-group" || g.type === "milestone" || (p.preventDefault(), p.stopPropagation(), e.value.isPreparing = !0, e.value.draggedTask = g, e.value.draggedElement = c, e.value.startX = p.clientX, e.value.startY = p.clientY));
}, n = (g) => {
if (!e.value.isPreparing || e.value.isDragging) return;
const c = e.value.draggedTask, p = e.value.draggedElement;
e.value.isDragging = !0, e.value.isPreparing = !1;
const m = p.cloneNode(!0);
m.style.position = "fixed", m.style.left = "-9999px", m.style.top = "-9999px", m.style.width = `${p.offsetWidth}px`, m.style.height = `${p.offsetHeight}px`, m.style.opacity = "0.6", m.style.pointerEvents = "none", m.style.zIndex = "999999", m.style.boxShadow = "0 8px 24px rgba(0, 0, 0, 0.3)", m.classList.add("task-row-dragging"), (document.querySelector(".gantt-fullscreen") || document.body).appendChild(m), e.value.ghostElement = m, p.style.opacity = "0.4", document.body.style.userSelect = "none", document.body.style.webkitUserSelect = "none", document.body.style.cursor = "move", window.dispatchEvent(
new CustomEvent("task-row-drag-start", {
detail: { task: c }
})
), r.onDragStart && r.onDragStart(c), a(g);
}, a = (g) => {
if (e.value.ghostElement) {
const c = e.value.ghostElement;
c.style.left = `${g.clientX + 10}px`, c.style.top = `${g.clientY - 25}px`;
}
}, s = (g, c, p) => {
if (!e.value.isDragging || !e.value.draggedTask) return;
if (g.id === e.value.draggedTask.id) {
i();
return;
}
if (h(e.value.draggedTask, g)) {
i();
return;
}
p.preventDefault(), p.stopPropagation();
const y = g.children && g.children.length > 0 ? "child" : "after";
e.value.dropTargetTask = g, e.value.dropPosition = y, document.querySelectorAll(".task-row-drop-target").forEach((w) => {
w.classList.remove("task-row-drop-target", "drop-after", "drop-child");
}), c.classList.add("task-row-drop-target"), y === "after" ? c.classList.add("drop-after") : c.classList.add("drop-child"), r.onDragOver && r.onDragOver(g, y);
}, i = () => {
e.value.dropTargetTask = null, e.value.dropPosition = null, document.querySelectorAll(".task-row-drop-target").forEach((g) => {
g.classList.remove("task-row-drop-target", "drop-after", "drop-child");
});
}, o = () => {
if (e.value.isPreparing && !e.value.isDragging) {
e.value.isPreparing = !1, e.value.draggedTask = null, e.value.draggedElement = null;
return;
}
if (!e.value.isDragging) return;
const g = e.value.draggedTask, c = e.value.dropTargetTask, p = e.value.dropPosition;
e.value.draggedElement && (e.value.draggedElement.style.opacity = ""), e.value.ghostElement && e.value.ghostElement.parentElement && e.value.ghostElement.parentElement.removeChild(e.value.ghostElement), i(), document.body.style.userSelect = "", document.body.style.webkitUserSelect = "", document.body.style.cursor = "", window.dispatchEvent(new CustomEvent("task-row-drag-end")), g && c && p && r.onDrop && r.onDrop(g, c, p), e.value = {
isDragging: !1,
isPreparing: !1,
draggedTask: null,
draggedElement: null,
ghostElement: null,
dropTargetTask: null,
dropPosition: null,
startX: 0,
startY: 0
};
}, l = (g) => {
if (e.value.isPreparing && !e.value.isDragging) {
const c = Math.abs(g.clientX - e.value.startX), p = Math.abs(g.clientY - e.value.startY);
Math.sqrt(c * c + p * p) > t && n(g);
return;
}
if (e.value.isDragging) {
a(g);
const c = e.value.ghostElement;
c && (c.style.display = "none");
const p = document.elementFromPoint(g.clientX, g.clientY);
if (c && (c.style.display = ""), p) {
const m = p.closest(".task-row");
if (m && m.dataset.taskId) {
const y = Number(m.dataset.taskId);
window.dispatchEvent(
new CustomEvent("task-row-drag-over", {
detail: { taskId: y, event: g }
})
);
}
}
}
}, u = () => {
(e.value.isDragging || e.value.isPreparing) && o();
}, h = (g, c) => {
if (!g.children) return !1;
for (const p of g.children)
if (p.id === c.id || h(p, c)) return !0;
return !1;
};
return En(() => {
document.addEventListener("mousemove", l), document.addEventListener("mouseup", u);
}), tn(() => {
document.removeEventListener("mousemove", l), document.removeEventListener("mouseup", u), e.value.ghostElement && e.value.ghostElement.parentElement && e.value.ghostElement.parentElement.removeChild(e.value.ghostElement);
}), {
dragState: e,
startDrag: A,
handleDragOver: s,
endDrag: o
};
}
function iF(r) {
let t = !1;
if (typeof r.type == "object") {
const s = r.type;
t = s.name === "TaskListColumn" || s.__name === "TaskListColumn" || // 检查文件名(setup script 组件)
s.__file && s.__file.includes("TaskListColumn");
}
if (!t)
return null;
const e = r.props || {}, A = r.children, n = A == null ? void 0 : A.header, a = A == null ? void 0 : A.default;
return {
prop: e.prop,
label: e.label,
width: e.width,
align: e.align || "left",
cssClass: e.cssClass,
headerSlot: n,
defaultSlot: a
};
}
function sF(r) {
var n;
const t = (n = r.default) == null ? void 0 : n.call(r);
if (!t || !Array.isArray(t))
return [];
const e = [], A = (a) => {
for (const s of a) {
if (!s)
continue;
if (typeof s.type == "symbol") {
s.children && Array.isArray(s.children) && A(s.children);
continue;
}
const i = iF(s);
i && e.push(i), s.children && Array.isArray(s.children) && A(s.children);
}
};
return A(t), e;
}
function oF(r, t, e) {
const A = lt(() => (typeof r == "string" ? r : r.value) !== "declarative" ? [] : sF(t)), n = lt(() => (typeof r == "string" ? r : r.value) === "declarative" ? A.value : e || []);
return {
declarativeColumns: A,
finalColumns: n,
getColumnWidthStyle: (i, o) => {
if (!i.width) return {};
let l;
if (typeof i.width == "string" && i.width.includes("%"))
if (o && o > 0) {
const u = parseFloat(i.width) / 100;
l = `${Math.floor(o * u)}px`;
} else
return {};
else
typeof i.width == "number" ? l = `${i.width}px` : typeof i.width == "string" ? /\d+(px|rem|em|%)/.test(i.width) ? l = i.width : l = `${i.width}px` : l = String(i.width);
return {
flex: `0 0 ${l}`,
minWidth: l,
maxWidth: l
};
},
getColumnAlignStyle: (i) => !i || i === "left" ? {} : {
justifyContent: i === "center" ? "center" : "flex-end",
textAlign: i
}
};
}
const lF = { class: "task-list-header" }, uF = { class: "col col-name" }, $o = 51, F0 = 5, cF = /* @__PURE__ */ dn({
__name: "TaskList",
props: {
tasks: {},
useDefaultDrawer: { type: Boolean },
taskListConfig: {},
taskListColumnRenderMode: { default: "default" },
enableTaskRowMove: { type: Boolean },
taskListRowClassName: {},
taskListRowStyle: { type: [Boolean, null, String, Object, Array, Function] }
},
emits: ["task-collapse-change", "start-timer", "stop-timer", "add-predecessor", "add-successor", "delete", "task-row-moved"],
setup(r, { emit: t }) {
var xe;
const e = r, A = t, n = Fc(), a = lt(() => !!n["custom-task-content"]), s = Oy("gantt-column-slots", {}), { t: i } = Ma(), { declarativeColumns: o, getColumnWidthStyle: l } = oF(
lt(() => e.taskListColumnRenderMode || "default"),
n,
((xe = e.taskListConfig) == null ? void 0 : xe.columns) || mf
), u = lt(() => {
var _e;
return e.taskListColumnRenderMode === "declarative" ? o.value : (((_e = e.taskListConfig) == null ? void 0 : _e.columns) || mf).filter((Pe) => Pe.visible !== !1);
}), h = Te(null), g = Te(null), c = Te(0);
let p = null, m = null;
const y = Te(0), w = Te(0), E = (Qe) => {
if (e.taskListColumnRenderMode === "declarative")
return l(Qe, c.value);
if (!Qe.width) return {};
let _e;
if (typeof Qe.width == "string" && Qe.width.includes("%")) {
const Pe = c.value || 0;
if (Pe > 0) {
const je = parseFloat(Qe.width) / 100;
_e = `${Math.floor(Pe * je)}px`;
} else
return {};
} else
_e = `${Qe.width}px`;
return {
flex: `0 0 ${_e}`,
minWidth: _e,
maxWidth: _e
};
}, C = lt(() => {
var _e;
return e.taskListColumnRenderMode === "declarative" ? [] : (((_e = e.taskListConfig) == null ? void 0 : _e.columns) || mf).filter((Pe) => Pe.visible !== !1);
}), F = lt(() => e.tasks || []), H = Te(null), q = Te(!1), N = () => {
q.value = !0;
}, M = () => {
if (q.value = !1, h.value) {
const Qe = h.value.offsetWidth;
Math.abs(Qe - c.value) > 1 && (c.value = Qe);
}
}, k = (Qe) => {
q.value || (H.value = Qe, window.dispatchEvent(
new CustomEvent("task-list-hover", {
detail: Qe
})
));
}, O = (Qe) => {
H.value = Qe.detail;
}, S = (Qe) => {
Qe.type === "milestone" || Qe.type === "milestone-group" || window.dispatchEvent(
new CustomEvent("task-row-double-click", {
detail: Qe
})
);
}, U = (Qe) => {
if (!Qe.children || Qe.children.length === 0)
return {
progress: Qe.progress || 0,
startDate: Qe.startDate || "",
endDate: Qe.endDate || ""
};
const _e = [], Pe = (St) => {
St.forEach((bt) => {
_e.push(bt), bt.children && bt.children.length > 0 && Pe(bt.children);
});
};
Pe(Qe.children);
const je = _e.reduce((St, bt) => St + (bt.progress || 0), 0), Ke = _e.length > 0 ? Math.round(je / _e.length) : 0, et = _e.filter((St) => St.startDate && St.endDate);
if (et.length === 0)
return {
progress: Ke,
startDate: Qe.startDate || "",
endDate: Qe.endDate || ""
};
const ut = et.map((St) => new Date(St.startDate)), yt = et.map((St) => new Date(St.endDate)), Ft = new Date(Math.min(...ut.map((St) => St.getTime()))), Bt = new Date(Math.max(...yt.map((St) => St.getTime())));
return {
progress: Ke,
startDate: Ft.toISOString().split("T")[0],
endDate: Bt.toISOString().split("T")[0]
};
}, W = () => {
if (!e.tasks) return;
const Qe = (_e) => {
_e.forEach((Pe) => {
if (Pe.children && Pe.children.length > 0) {
Qe(Pe.children);
const je = U(Pe);
Pe.progress = je.progress, Pe.startDate = je.startDate, Pe.endDate = je.endDate;
}
});
};
Qe(e.tasks);
}, I = (Qe) => {
const _e = [], Pe = (je) => {
je.forEach((Ke) => {
_e.push(Ke), Ke.children && Ke.children.length > 0 && Pe(Ke.children);
});
};
return Pe(Qe), _e;
}, le = (Qe, _e = 0) => {
const Pe = [];
for (const je of Qe)
Pe.push({ task: je, level: _e }), !(je.type === "milestone-group") && je.children && je.children.length > 0 && !je.collapsed && Pe.push(...le(je.children, _e + 1));
return Pe;
}, ue = lt(() => le(F.value)), Z = lt(() => {
const Qe = y.value, _e = w.value || 600, Pe = Math.floor(Qe / $o) - F0, je = Math.ceil((Qe + _e) / $o) + F0, Ke = ue.value.length, et = Math.min(Math.max(0, Pe), Ke), ut = Math.min(Ke, Math.max(et + 1, je));
return {
startIndex: et,
endIndex: ut
};
}), ee = lt(() => {
const { startIndex: Qe, endIndex: _e } = Z.value;
return ue.value.slice(Qe, _e).map((je, Ke) => ({
...je,
rowIndex: Qe + Ke
}));
}), X = lt(() => ue.value.length * $o), Ae = lt(() => Z.value.startIndex * $o), oe = lt(() => {
const Qe = ee.value.length * $o;
return Math.max(0, X.value - Ae.value - Qe);
});
function x(Qe) {
Qe.collapsed = !Qe.collapsed, A("task-collapse-change", Qe);
}
const L = (Qe) => {
if (!e.tasks) return;
const _e = (Pe) => {
for (const je of Pe) {
if (je.id === Qe.id)
return Object.assign(je, Qe), Qe.children, !0;
if (je.children && _e(je.children))
return !0;
}
return !1;
};
_e(e.tasks), W();
}, j = (Qe) => {
const _e = Qe.detail;
L(_e);
}, $ = (Qe) => {
const _e = Qe.detail;
e.tasks && e.tasks.push(_e), W();
}, re = () => {
const Qe = I(F.value);
window.dispatchEvent(
new CustomEvent("task-list-updated", {
detail: Qe
})
);
}, pe = (Qe) => {
const { milestoneId: _e, icon: Pe } = Qe.detail, je = (Ke) => {
for (const et of Ke) {
if (et.type === "milestone-group" && et.children) {
const ut = et.children.find((yt) => yt.id === _e);
if (ut)
return ut.icon = Pe, !0;
}
if (et.children && je(et.children))
return !0;
}
return !1;
};
je(F.value);
}, de = (Qe) => {
const _e = Qe.target;
if (!_e) return;
const Pe = _e.scrollTop;
y.value = Pe, window.dispatchEvent(
new CustomEvent("task-list-vertical-scroll", {
detail: { scrollTop: Pe }
})
);
}, ce = (Qe) => {
const { scrollTop: _e } = Qe.detail, Pe = g.value;
y.value = _e, Pe && Math.abs(Pe.scrollTop - _e) > 1 && (Pe.scrollTop = _e);
}, Se = (Qe) => {
try {
window.dispatchEvent(
new CustomEvent("context-menu", {
detail: Qe
})
);
} catch (_e) {
console.error("TaskList - Failed to dispatch context-menu event", _e);
}
}, qe = (Qe) => {
A("start-timer", Qe);
}, rt = (Qe) => {
A("stop-timer", Qe);
}, at = (Qe) => {
A("add-predecessor", Qe);
}, dt = (Qe) => {
A("add-successor", Qe);
}, D = (Qe, _e) => {
A("delete", Qe, _e);
}, Ie = (Qe) => {
const { draggedTask: _e, targetTask: Pe, position: je } = Qe;
e.tasks && A("task-row-moved", {
draggedTask: _e,
targetTask: Pe,
position: je,
oldParent: null,
// 将由 GanttChart 计算
newParent: null
// 将由 GanttChart 计算
});
}, { startDrag: me, handleDragOver: ve } = aF({
enabled: e.enableTaskRowMove ?? !1,
onDrop: (Qe, _e, Pe) => {
Ie({ draggedTask: Qe, targetTask: _e, position: Pe });
}
});
return En(async () => {
h.value && (p = new ResizeObserver((Qe) => {
if (!q.value)
for (const _e of Qe)
c.value = _e.contentRect.width;
}), p.observe(h.value)), g.value && (w.value = g.value.clientHeight, y.value = g.value.scrollTop, m = new ResizeObserver((Qe) => {
for (const _e of Qe)
w.value = _e.contentRect.height;
}), m.observe(g.value)), window.addEventListener("task-updated", j), window.addEventListener("task-added", $), window.addEventListener("request-task-list", re), window.addEventListener("timeline-task-hover", O), window.addEventListener("timeline-vertical-scroll", ce), window.addEventListener("milestone-icon-changed", pe), window.addEventListener("splitter-drag-start", N), window.addEventListener("splitter-drag-end", M), W();
}), tn(() => {
p && (p.disconnect(), p = null), m && (m.disconnect(), m = null), window.removeEventListener("task-updated", j), window.removeEventListener("task-added", $), window.removeEventListener("request-task-list", re), window.removeEventListener("timeline-task-hover", O), window.removeEventListener(
"timeline-vertical-scroll",
ce
), window.removeEventListener("milestone-icon-changed", pe), window.removeEventListener("splitter-drag-start", N), window.removeEventListener("splitter-drag-end", M);
}), (Qe, _e) => (ae(), fe("div", {
ref_key: "taskListRef",
ref: h,
class: "task-list"
}, [
Y("div", lF, [
Qe.taskListColumnRenderMode === "declarative" ? (ae(!0), fe(Ut, { key: 0 }, uA(u.value, (Pe, je) => (ae(), fe("div", {
key: je,
class: iA(["col", Pe.cssClass]),
style: rA({
...E(Pe),
justifyContent: Pe.align === "center" ? "center" : Pe.align === "right" ? "flex-end" : "flex-start",
textAlign: Pe.align || "left"
})
}, [
Pe.headerSlot ? (ae(), wr(_s(Pe.headerSlot), { key: 0 })) : (ae(), fe(Ut, { key: 1 }, [
kA(Ge(Pe.label), 1)
], 64))
], 6))), 128)) : (ae(), fe(Ut, { key: 1 }, [
Y("div", uF, [
vt(s)["header-name"] ? (ae(), wr(_s(vt(s)["header-name"]), { key: 0 })) : (ae(), fe(Ut, { key: 1 }, [
kA(Ge(vt(i).taskName || "任务名称"), 1)
], 64))
]),
(ae(!0), fe(Ut, null, uA(C.value, (Pe) => (ae(), fe("div", {
key: Pe.key,
class: iA(["col", Pe.cssClass || `col-${Pe.key}`]),
style: rA(E(Pe))
}, [
vt(s)[`header-${Pe.key}`] ? (ae(), wr(_s(vt(s)[`header-${Pe.key}`]), { key: 0 })) : (ae(), fe(Ut, { key: 1 }, [
kA(Ge(vt(i)[Pe.key] || Pe.label), 1)
], 64))
], 6))), 128))
], 64))
]),
Y("div", {
ref_key: "taskListBodyRef",
ref: g,
class: "task-list-body",
onScroll: de
}, [
Y("div", {
class: "task-list-body-spacer",
style: rA({ height: `${Ae.value}px` })
}, null, 4),
(ae(!0), fe(Ut, null, uA(ee.value, ({ task: Pe, level: je, rowIndex: Ke }) => {
var et;
return ae(), wr(AF, {
key: Pe.id,
task: Pe,
level: je,
"row-index": Ke,
"is-hovered": H.value === Pe.id,
"hovered-task-id": H.value,
"on-hover": k,
columns: Qe.taskListColumnRenderMode === "declarative" ? [] : C.value,
"declarative-columns": Qe.taskListColumnRenderMode === "declarative" ? u.value : void 0,
"render-mode": Qe.taskListColumnRenderMode,
"get-column-width-style": E,
"disable-children-render": !0,
"show-task-icon": (et = e.taskListConfig) == null ? void 0 : et.showTaskIcon,
"enable-drag": e.enableTaskRowMove,
"drag-start": vt(me),
"drag-over": vt(ve),
"task-list-row-class-name": e.taskListRowClassName,
"task-list-row-style": e.taskListRowStyle,
onToggle: x,
onDblclick: S,
onContextmenu: Se,
onStartTimer: qe,
onStopTimer: rt,
onAddPredecessor: at,
onAddSuccessor: dt,
onDelete: D
}, Cl({ _: 2 }, [
a.value ? {
name: "custom-task-content",
fn: fs((ut) => [
Li(Qe.$slots, "custom-task-content", Qo({ ref_for: !0 }, ut), void 0, !0)
]),
key: "0"
} : void 0
]), 1032, ["task", "level", "row-index", "is-hovered", "hovered-task-id", "columns", "declarative-columns", "render-mode", "show-task-icon", "enable-drag", "drag-start", "drag-over", "task-list-row-class-name", "task-list-row-style"]);
}), 128)),
Y("div", {
class: "task-list-body-spacer",
style: rA({ height: `${oe.value}px` })
}, null, 4)
], 544)
], 512));
}
}), fF = /* @__PURE__ */ xn(cF, [["__scopeId", "data-v-ea3ee073"]]), Ye = {
HOUR: "hour",
// 小时视图 - 每列显示一小时
DAY: "day",
// 日视图 - 每列显示一天
WEEK: "week",
// 周视图 - 每列显示一周
MONTH: "month",
// 月视图 - 每列显示一个月
QUARTER: "quarter",
// 季度视图 - 每列显示一个季度
YEAR: "year"
// 年视图 - 每列显示一年
}, hF = {
hour: {
scale: Ye.HOUR,
cellWidth: 40,
headerLevels: 2,
formatters: { primary: "yyyy年MM月dd日", secondary: "HH:mm" }
},
day: {
scale: Ye.DAY,
cellWidth: 30,
headerLevels: 2,
formatters: { primary: "yyyy年MM月", secondary: "dd" }
},
week: {
scale: Ye.WEEK,
cellWidth: 120,
headerLevels: 2,
formatters: { primary: "yyyy年MM月", secondary: "W周" }
},
month: {
scale: Ye.MONTH,
cellWidth: 180,
headerLevels: 2,
formatters: { primary: "yyyy年", secondary: "MM月" }
},
quarter: {
scale: Ye.QUARTER,
cellWidth: 60,
// 每个季度的宽度
headerLevels: 2,
formatters: { primary: "yyyy年", secondary: "Q季度" }
},
year: {
scale: Ye.YEAR,
cellWidth: 180,
// 每半年的宽度
headerLevels: 2,
formatters: { primary: "yyyy年", secondary: "上半年|下半年" }
}
}, dF = {
key: 0,
class: "anchor-tooltip"
}, gF = /* @__PURE__ */ dn({
__name: "LinkAnchor",
props: {
type: {},
taskId: {},
visible: { type: Boolean, default: !1 },
isDragSource: { type: Boolean, default: !1 },
isDragTarget: { type: Boolean, default: !1 },
isValidTarget: { type: Boolean, default: !0 },
enabled: { type: Boolean, default: !0 },
globalDragging: { type: Boolean, default: !1 }
},
emits: ["drag-start", "drag-move", "drag-end"],
setup(r, { emit: t }) {
const e = r, A = t, n = Te(!1), a = lt(() => e.visible || // TaskBar 悬停
e.globalDragging || // 全局拖拽进行中
e.isDragSource || // 是拖拽的源任务
e.isDragTarget || // 是拖拽的目标任务
n.value);
let s = null, i = null, o = !1;
function l(c) {
e.enabled && (c.stopPropagation(), c.preventDefault(), o = !0, A("drag-start", {
taskId: e.taskId,
type: e.type,
x: c.clientX,
y: c.clientY
}), s = (p) => {
o && A("drag-move", {
x: p.clientX,
y: p.clientY
});
}, i = () => {
o && (A("drag-end", {
taskId: e.taskId,
type: e.type
}), g());
}, document.addEventListener("mousemove", s), document.addEventListener("mouseup", i));
}
function u() {
e.enabled && (n.value = !0);
}
function h() {
e.enabled && (n.value = !1);
}
function g() {
o = !1, s && (document.removeEventListener("mousemove", s), s = null), i && (document.removeEventListener("mouseup", i), i = null);
}
return tn(() => {
g();
}), (c, p) => c.enabled && a.value ? (ae(), fe("div", {
key: 0,
class: iA(["link-anchor", {
"anchor-predecessor": c.type === "predecessor",
"anchor-successor": c.type === "successor",
"drag-source": c.isDragSource,
"drag-target": c.isDragTarget,
"valid-target": c.isDragTarget && c.isValidTarget,
"invalid-target": c.isDragTarget && !c.isValidTarget,
visible: a.value
}]),
onMousedown: l,
onMouseenter: u,
onMouseleave: h
}, [
!c.isDragSource && !c.isDragTarget && !c.globalDragging ? (ae(), fe("div", dF, Ge(c.type === "predecessor" ? "添加前置任务" : "添加后置任务"), 1)) : Ct("", !0)
], 34)) : Ct("", !0);
}
}), x0 = /* @__PURE__ */ xn(gF, [["__scopeId", "data-v-fa084d7b"]]), pF = {
showAvatar: !0,
showTitle: !0,
showProgress: !0,
dragThreshold: 5,
resizeHandleWidth: 5,
enableDragDelay: !1,
dragDelayTime: 150
}, vF = ["data-task-id"], mF = {
key: 0,
class: "parent-label"
}, wF = ["src", "alt"], BF = {
key: 1,
class: "avatar-text"
}, yF = {
key: 2,
class: "avatar-icon",
viewBox: "0 0 24 24",
fill: "none",
xmlns: "http://www.w3.org/2000/svg"
}, bF = {
key: 1,
class: "task-name"
}, CF = { class: "tooltip-title" }, EF = { class: "tooltip-content" }, FF = { class: "tooltip-row" }, xF = { class: "tooltip-label" }, SF = { class: "tooltip-value" }, UF = { class: "tooltip-row" }, TF = { class: "tooltip-label" }, QF = { class: "tooltip-value" }, DF = { class: "tooltip-row" }, kF = { class: "tooltip-label" }, LF = { class: "tooltip-value" }, IF = { class: "tooltip-row" }, _F = { class: "tooltip-label" }, NF = { class: "tooltip-value" }, MF = { class: "tooltip-row" }, OF = { class: "tooltip-label" }, RF = { class: "tooltip-value" }, HF = { class: "drag-tooltip-content" }, PF = { class: "tooltip-row" }, KF = { class: "tooltip-label" }, VF = { class: "tooltip-value" }, qF = { class: "tooltip-row" }, jF = { class: "tooltip-label" }, WF = { class: "tooltip-value" }, GF = 1e3, YF = 100, $F = 250, zF = /* @__PURE__ */ dn({
__name: "TaskBar",
props: {
task: {},
rowHeight: {},
dayWidth: {},
startDate: {},
isParent: { type: Boolean },
onClick: { type: Function },
scrollLeft: {},
containerWidth: {},
hideBubbles: { type: Boolean },
timelineData: {},
currentTimeScale: {},
taskBarConfig: {},
allowDragAndResize: { type: Boolean },
isHighlighted: { type: Boolean },
isPrimaryHighlight: { type: Boolean },
isInHighlightMode: { type: Boolean },
dragLinkMode: {},
isLinkDragSource: { type: Boolean },
isValidLinkTarget: { type: Boolean },
isInvalidLinkTarget: { type: Boolean },
allTasks: {}
},
emits: [
"update:task",
"bar-mounted",
"click",
"dblclick",
"drag-end",
"resize-end",
"scroll-to-position",
"start-timer",
"stop-timer",
"add-predecessor",
"add-successor",
"delete",
"delete-link",
"context-menu",
"long-press",
"link-drag-start",
"link-drag-move",
"link-drag-end"
],
setup(r, { emit: t }) {
const e = r, A = t, n = Fc(), { getTranslation: a } = Ma(), s = (V) => a(V), i = lt(() => !!n["custom-task-content"]), o = lt(() => ({
...pF,
...e.taskBarConfig
})), l = (V) => {
if (!V) return null;
if (V instanceof Date)
return V;
if (typeof V == "string" && /^\d{4}-\d{2}-\d{2}$/.test(V)) {
const [Fe, ke, Ze] = V.split("-").map(Number);
return new Date(Fe, ke - 1, Ze);
}
if (typeof V == "string" && /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}$/.test(V)) {
const [Fe, ke] = V.split(" "), [Ze, Me, tt] = Fe.split("-").map(Number), [Je, ft] = ke.split(":").map(Number);
return new Date(Ze, Me - 1, tt, Je, ft);
}
const Be = new Date(V);
return isNaN(Be.getTime()) ? null : Be;
}, u = () => {
const V = /* @__PURE__ */ new Date();
return new Date(V.getFullYear(), V.getMonth(), V.getDate());
}, h = Te(u());
let g = null;
En(() => {
g = window.setInterval(() => {
h.value = u();
}, 6e4);
}), tn(() => {
g !== null && (clearInterval(g), g = null);
});
const c = (V) => {
const Be = V.getFullYear(), Fe = String(V.getMonth() + 1).padStart(2, "0"), ke = String(V.getDate()).padStart(2, "0");
if (e.currentTimeScale === Ye.HOUR) {
const Ze = String(V.getHours()).padStart(2, "0"), Me = String(V.getMinutes()).padStart(2, "0");
return `${Be}-${Fe}-${ke} ${Ze}:${Me}`;
}
return `${Be}-${Fe}-${ke}`;
}, p = (V, Be) => {
const Fe = new Date(V);
return Fe.setDate(Fe.getDate() + Be), Fe;
}, m = (V, Be) => {
const Fe = new Date(V);
return Fe.setMinutes(Fe.getMinutes() + Be), Fe;
}, y = (V, Be) => Math.round((Be.getTime() - V.getTime()) / (1e3 * 60)), w = lt(() => e.task.isEditable === !1 ? !0 : e.currentTimeScale === Ye.YEAR), E = Te(!1), C = Te(!1), F = Te(!1), H = Te(!1), q = Te(0), N = Te(0), M = Te(0), k = Te(0), O = Te(0), S = Te(0), U = Te(null), W = Te(!1), I = Te(!1), le = lt(() => o.value.dragThreshold ?? 5), ue = Te(!1), Z = Te(null), ee = Te(null), X = Te(!1), Ae = Te(0), oe = Te(null), x = Te(null), L = Te(null), j = Te(null), $ = Te(0), re = lt(() => {
var Jt, fA;
if (x.value && e.currentTimeScale === Ye.QUARTER)
return {
left: `${x.value.left ?? 0}px`,
width: `${x.value.width ?? 100}px`,
height: `${e.rowHeight - 10}px`,
top: "4px"
};
const V = ((Jt = oe.value) == null ? void 0 : Jt.startDate) || e.task.startDate, Be = ((fA = oe.value) == null ? void 0 : fA.endDate) || e.task.endDate, Fe = l(V), ke = l(Be), Ze = ce.value;
if (!Fe && !ke)
return {
left: "0px",
width: "0px",
height: `${e.rowHeight - 10}px`,
top: "4px"
};
const Me = Fe || ke, tt = ke || Fe, Je = Ze;
if (!Me || !tt || !Je)
return {
left: "0px",
width: "0px",
height: `${e.rowHeight - 10}px`,
top: "4px"
};
let ft = 0, Et = 0;
if (e.currentTimeScale === Ye.HOUR) {
const gA = new Date(Je);
gA.setHours(0, 0, 0, 0);
let Xt = Me, tA = tt;
const Gt = V || e.task.startDate, UA = Be || e.task.endDate;
typeof Gt == "string" && /^\d{4}-\d{2}-\d{2}$/.test(Gt.trim()) && (Xt = new Date(Me), Xt.setHours(0, 0, 0, 0)), typeof UA == "string" && /^\d{4}-\d{2}-\d{2}$/.test(UA.trim()) && (tA = new Date(tt), tA.setDate(tA.getDate() + 1), tA.setHours(0, 0, 0, 0));
const FA = y(gA, Xt), IA = y(gA, tA), aA = 40 / 60;
ft = Math.max(0, FA * aA), Et = Math.max(4, (IA - FA) * aA);
} else {
const gA = new Date(
Me.getFullYear(),
Me.getMonth(),
Me.getDate()
), Xt = new Date(
tt.getFullYear(),
tt.getMonth(),
tt.getDate()
), tA = new Date(
Je.getFullYear(),
Je.getMonth(),
Je.getDate()
);
if (e.timelineData && e.currentTimeScale && (e.currentTimeScale === Ye.WEEK || e.currentTimeScale === Ye.MONTH || e.currentTimeScale === Ye.QUARTER || e.currentTimeScale === Ye.YEAR)) {
const Gt = OA(
gA,
e.timelineData,
e.currentTimeScale
), UA = new Date(Xt);
UA.setDate(UA.getDate() + 1);
let FA = OA(
UA,
e.timelineData,
e.currentTimeScale
);
if (FA === Gt) {
let IA = 2;
e.currentTimeScale === Ye.WEEK ? IA = 60 / 7 : e.currentTimeScale === Ye.QUARTER ? IA = 60 / 90 : e.currentTimeScale === Ye.YEAR && (IA = 180 / 182), FA = OA(
Xt,
e.timelineData,
e.currentTimeScale
) + IA;
}
ft = Gt, Et = Math.max(FA - Gt, 4);
} else if (e.timelineData && e.currentTimeScale === Ye.DAY) {
const Gt = OA(
gA,
e.timelineData,
e.currentTimeScale
), UA = new Date(Xt);
UA.setDate(UA.getDate() + 1);
let FA = OA(
UA,
e.timelineData,
e.currentTimeScale
);
FA === Gt && (FA = OA(
Xt,
e.timelineData,
e.currentTimeScale
) + 30), ft = Gt, Et = Math.max(FA - Gt, 4);
} else {
const Gt = Math.floor(
(gA.getTime() - tA.getTime()) / 864e5
), UA = Xt.getTime() - gA.getTime(), FA = Math.round(UA / (1e3 * 60 * 60 * 24)), IA = FA === 0 ? 1 : FA + 1;
ft = Gt * e.dayWidth, Et = IA * e.dayWidth;
}
}
return {
left: `${ft}px`,
width: `${Et}px`,
height: `${e.rowHeight - 10}px`,
top: "4px"
};
}), pe = Te({
left: 0,
top: 0,
width: 0,
height: 0,
timestamp: 0
}), de = lt(() => l(e.task.endDate || "")), ce = lt(() => l(e.startDate)), Se = lt(() => {
var Fe, ke;
const V = ((Fe = oe.value) == null ? void 0 : Fe.startDate) || e.task.startDate, Be = ((ke = oe.value) == null ? void 0 : ke.endDate) || e.task.endDate;
return !!(V || Be);
}), qe = lt(() => {
if (e.isParent)
return {
type: "parent",
color: "#409eff",
// 与新建按钮一致的蓝色
bgColor: "#409eff",
borderColor: "#409eff"
};
const V = h.value, Be = de.value, Fe = e.task.progress || 0;
return Fe >= 100 ? {
type: "completed",
color: "#909399",
// info color
bgColor: "#f4f4f5",
borderColor: "#d3d4d6"
} : Be && Be < V && Fe < 100 ? {
type: "delayed",
color: "#f56c6c",
// danger color
bgColor: "#fef0f0",
borderColor: "#fbc4c4"
} : Be && Be >= V && Fe > 0 ? {
type: "in-progress",
color: "#e6a23c",
// warning color
bgColor: "#fdf6ec",
borderColor: "#f5dab1"
} : {
type: "not-started",
color: "#409eff",
// primary color
bgColor: "#ecf5ff",
borderColor: "#b3d8ff"
};
}), rt = lt(() => ({
type: "task-bar",
task: e.task,
status: qe.value,
statusType: qe.value.type,
isParent: e.isParent ?? !1,
progress: e.task.progress || 0,
currentTimeScale: e.currentTimeScale,
rowHeight: e.rowHeight,
dayWidth: e.dayWidth
})), at = lt(() => (e.task.progress || 0) >= 100), dt = lt(() => e.isInHighlightMode && !e.isHighlighted && !e.isPrimaryHighlight), D = lt(() => {
const V = e.task.progress || 0, Be = parseInt(re.value.width);
return `${V / 100 * Be}px`;
}), Ie = lt(() => e.dayWidth <= 9), me = lt(() => parseFloat(re.value.width || "0") < 80), ve = lt(() => Ie.value && me.value), xe = (V, Be) => {
if (e.isHighlighted || e.isPrimaryHighlight || e.allowDragAndResize === !1 || at.value || e.isParent || w.value || (V.preventDefault(), V.stopPropagation(), oe.value = null, ue.value = !1, X.value = !1, Z.value = Be, W.value = !1, U.value && (clearTimeout(U.value), U.value = null), Be === "drag" && (U.value = window.setTimeout(() => {
!ue.value && !E.value && !C.value && !F.value && (W.value = !0, A("long-press", e.task.id)), U.value = null;
}, GF)), o.value.enableDragDelay && o.value.dragDelayTime ? ee.value = window.setTimeout(() => {
X.value = !0, ee.value = null;
}, o.value.dragDelayTime) : X.value = !0, !document.querySelector(".timeline") || !L.value)) return;
const ke = L.value.getBoundingClientRect();
Ae.value = V.clientX - ke.left, q.value = V.clientX, N.value = parseInt(re.value.left), M.value = parseInt(re.value.width), (Be === "resize-left" || Be === "resize-right") && (k.value = V.clientX, O.value = parseInt(re.value.width), S.value = parseInt(re.value.left)), window.addEventListener("timeline-auto-scroll", Qe), document.addEventListener("mousemove", ut), document.addEventListener("mouseup", yt);
}, Qe = (V) => {
const { scrollDelta: Be } = V.detail;
E.value ? q.value -= Be : (C.value || F.value) && (k.value -= Be);
};
let _e = !1;
function Pe() {
_e || (_e = !0, requestAnimationFrame(() => {
if (_e = !1, !L.value) return;
const V = Date.now();
if (V - pe.value.timestamp < YF) {
A("bar-mounted", {
id: e.task.id,
left: pe.value.left,
top: pe.value.top,
width: pe.value.width,
height: pe.value.height
});
return;
}
const Be = L.value.getBoundingClientRect(), Fe = {
left: Be.left,
top: Be.top,
width: Be.width,
height: Be.height
};
pe.value = {
...Fe,
timestamp: V
}, A("bar-mounted", {
id: e.task.id,
...Fe
});
}));
}
const je = Te(!1), Ke = Te({ x: 0, y: 0 }), et = Te({ startDate: "", endDate: "" }), ut = (V) => {
if (!(e.isHighlighted || e.isPrimaryHighlight) && !(o.value.enableDragDelay && !X.value)) {
if (!ue.value) {
if (Math.abs(V.clientX - q.value) < le.value)
return;
ue.value = !0, Z.value === "drag" ? E.value = !0 : Z.value === "resize-left" ? C.value = !0 : Z.value === "resize-right" && (F.value = !0);
}
if (ue.value) {
if (window.dispatchEvent(
new CustomEvent("drag-boundary-check", {
detail: {
mouseX: V.clientX,
isDragging: E.value || C.value || F.value
}
})
), (E.value || C.value || F.value) && (je.value = !0, Ke.value = {
x: V.clientX + 15,
// 鼠标右侧偏移
y: V.clientY - 60
// 鼠标上方偏移
}), E.value) {
const Be = V.clientX - q.value;
if (e.currentTimeScale === Ye.HOUR) {
const Fe = 0.6666666666666666, ke = Fe * 15, Ze = Math.max(0, N.value + Be), Me = Math.round(Ze / ke) * ke, tt = Math.round(Me / Fe), Je = new Date(e.startDate);
Je.setHours(0, 0, 0, 0);
const ft = m(Je, tt), Et = l(e.task.startDate) || e.startDate, Jt = l(e.task.endDate) || e.startDate;
let fA;
if (e.task.startDate && !e.task.startDate.includes(" ")) {
const Xt = Jt.getTime() - Et.getTime();
fA = Math.max(1, Math.round(Xt / (1e3 * 60 * 60 * 24)) + 1) * 24 * 60;
} else
fA = y(Et, Jt);
const gA = m(ft, fA);
oe.value = {
startDate: c(ft),
endDate: c(gA)
}, et.value = {
startDate: c(ft),
endDate: c(gA)
};
} else if (e.currentTimeScale === Ye.QUARTER) {
const Fe = Math.max(0, N.value + Be);
x.value = {
left: Fe,
width: M.value
};
const Me = 60 / 90, tt = Math.round(Be / Me), Je = l(e.task.startDate) || e.startDate, ft = l(e.task.endDate) || e.startDate, Et = new Date(Je);
Et.setDate(Et.getDate() + tt);
const Jt = ft.getTime() - Je.getTime(), fA = Math.ceil(Jt / (1e3 * 60 * 60 * 24)), gA = new Date(Et);
gA.setDate(gA.getDate() + Math.max(0, fA)), oe.value = {
startDate: c(Et),
endDate: c(gA)
}, et.value = {
startDate: c(Et),
endDate: c(gA)
};
} else {
const Fe = Math.max(0, N.value + Be);
if ((e.currentTimeScale === Ye.DAY || e.currentTimeScale === Ye.MONTH || e.currentTimeScale === Ye.QUARTER || e.currentTimeScale === Ye.YEAR) && e.timelineData) {
const ke = Dr(
Fe,
e.timelineData,
e.currentTimeScale
);
if (ke) {
const Ze = l(e.task.startDate) || e.startDate, tt = (l(e.task.endDate) || e.startDate).getTime() - Ze.getTime(), Je = Math.ceil(tt / (1e3 * 60 * 60 * 24)), ft = new Date(ke);
ft.setDate(ft.getDate() + Math.max(0, Je)), oe.value = {
startDate: c(ke),
endDate: c(ft)
}, et.value = {
startDate: c(ke),
endDate: c(ft)
};
}
} else {
const ke = p(e.startDate, Fe / e.dayWidth), Ze = M.value / e.dayWidth, Me = p(ke, Ze - 1);
oe.value = {
startDate: c(ke),
endDate: c(Me)
}, et.value = {
startDate: c(ke),
endDate: c(Me)
};
}
}
} else if (C.value) {
const Be = V.clientX - k.value;
if (e.currentTimeScale === Ye.HOUR) {
const Fe = 0.6666666666666666, ke = Fe * 15, Ze = Math.max(0, S.value + Be), Me = Math.round(Ze / ke) * ke, tt = Math.round(Me / Fe), Je = new Date(e.startDate);
Je.setHours(0, 0, 0, 0);
const ft = m(Je, tt);
oe.value = {
startDate: c(ft),
endDate: e.task.endDate
// 保持原来的结束日期
}, et.value = {
startDate: c(ft),
endDate: e.task.endDate || ""
};
} else if (e.currentTimeScale === Ye.QUARTER) {
const Fe = Math.max(0, S.value + Be), ke = Math.max(10, O.value - Be);
x.value = {
left: Fe,
width: ke
};
const tt = 60 / 90, Je = Math.round(Be / tt), ft = l(e.task.startDate) || e.startDate, Et = new Date(ft);
Et.setDate(Et.getDate() + Je), oe.value = {
startDate: c(Et),
endDate: e.task.endDate
// 保持原来的结束日期
}, et.value = {
startDate: c(Et),
endDate: e.task.endDate || ""
};
} else {
const Fe = Math.max(0, S.value + Be);
if ((e.currentTimeScale === Ye.DAY || e.currentTimeScale === Ye.MONTH || e.currentTimeScale === Ye.QUARTER || e.currentTimeScale === Ye.YEAR) && e.timelineData) {
const ke = Dr(
Fe,
e.timelineData,
e.currentTimeScale
);
ke && (oe.value = {
startDate: c(ke),
endDate: e.task.endDate
// 保持原来的结束日期
}, et.value = {
startDate: c(ke),
endDate: e.task.endDate || ""
});
} else {
const ke = p(e.startDate, Fe / e.dayWidth);
oe.value = {
startDate: c(ke),
endDate: e.task.endDate
// 保持原来的结束日期
}, et.value = {
startDate: c(ke),
endDate: e.task.endDate || ""
};
}
}
} else if (F.value) {
const Be = V.clientX - k.value;
if (e.currentTimeScale === Ye.HOUR) {
const Fe = 0.6666666666666666, ke = Fe * 15, Ze = Math.max(ke, O.value + Be), Me = Math.round(Ze / ke) * ke, tt = Math.round(Me / Fe), Je = l(e.task.startDate) || e.startDate, ft = m(Je, tt);
oe.value = {
startDate: e.task.startDate,
// 保持原来的开始日期
endDate: c(ft)
}, et.value = {
startDate: e.task.startDate || "",
endDate: c(ft)
};
} else if (e.currentTimeScale === Ye.QUARTER) {
const Fe = Math.max(10, O.value + Be);
x.value = {
left: S.value,
width: Fe
};
const Me = 60 / 90, tt = Math.round(Be / Me), Je = l(e.task.endDate) || e.startDate, ft = new Date(Je);
ft.setDate(ft.getDate() + tt), oe.value = {
startDate: e.task.startDate,
// 保持原来的开始日期
endDate: c(ft)
}, et.value = {
startDate: e.task.startDate || "",
endDate: c(ft)
};
} else {
const Fe = Math.max(e.dayWidth, O.value + Be);
if ((e.currentTimeScale === Ye.DAY || e.currentTimeScale === Ye.MONTH || e.currentTimeScale === Ye.QUARTER || e.currentTimeScale === Ye.YEAR) && e.timelineData) {
const ke = S.value + Fe, Ze = Dr(
ke,
e.timelineData,
e.currentTimeScale
);
Ze && (oe.value = {
startDate: e.task.startDate,
// 保持原来的开始日期
endDate: c(Ze)
}, et.value = {
startDate: e.task.startDate || "",
endDate: c(Ze)
});
} else {
const ke = Fe / e.dayWidth, Ze = p(
e.startDate,
S.value / e.dayWidth + ke - 1
);
oe.value = {
startDate: e.task.startDate,
// 保持原来的开始日期
endDate: c(Ze)
}, et.value = {
startDate: e.task.startDate || "",
endDate: c(Ze)
};
}
}
}
}
}
}, yt = () => {
if (ee.value !== null && (window.clearTimeout(ee.value), ee.value = null), U.value !== null && (clearTimeout(U.value), U.value = null), je.value = !1, x.value = null, window.dispatchEvent(
new CustomEvent("drag-boundary-check", {
detail: {
mouseX: 0,
isDragging: !1
}
})
), ue.value && oe.value) {
const V = {
...e.task,
...oe.value
};
E.value ? A("drag-end", V) : (C.value || F.value) && A("resize-end", V), A("update:task", V), oe.value = null, rr(() => {
Pe();
});
}
window.removeEventListener("timeline-auto-scroll", Qe), (E.value || C.value || F.value) && (H.value = !0, setTimeout(() => {
H.value = !1;
}, 200)), E.value = !1, C.value = !1, F.value = !1, ue.value = !1, X.value = !1, Z.value = null, document.removeEventListener("mousemove", ut), document.removeEventListener("mouseup", yt);
};
let Ft = null;
En(() => {
rr(() => {
Pe(), j.value && (Ft = new ResizeObserver((Fe) => {
for (const ke of Fe)
$.value = ke.contentRect.width;
}), Ft.observe(j.value));
});
const V = () => {
rr(() => {
Pe();
});
}, Be = () => {
rr(() => {
setTimeout(() => {
Pe();
}, 10);
});
};
window.addEventListener("timeline-scale-updated", V), window.addEventListener("timeline-force-recalculate", Be), window.addEventListener("close-all-taskbar-menus", ZA), tn(() => {
Ft && (Ft.disconnect(), Ft = null), window.removeEventListener("timeline-scale-updated", V), window.removeEventListener("timeline-force-recalculate", Be), window.removeEventListener("close-all-taskbar-menus", ZA), U.value !== null && (clearTimeout(U.value), U.value = null);
});
}), EA(
() => [e.task.startDate, e.task.endDate],
() => {
rr(() => {
Pe();
});
},
{ deep: !0 }
), EA(
() => [e.isHighlighted, e.isPrimaryHighlight],
([V, Be]) => {
(V || Be) && (E.value = !1, C.value = !1, F.value = !1, ue.value = !1, X.value = !1, Z.value = null, je.value = !1, document.removeEventListener("mousemove", ut), document.removeEventListener("mouseup", yt), window.removeEventListener("timeline-auto-scroll", Qe), U.value && (clearTimeout(U.value), U.value = null), ee.value && (clearTimeout(ee.value), ee.value = null), window.dispatchEvent(
new CustomEvent("taskbar-highlighted", {
detail: {
taskId: e.task.id
}
})
));
}
);
let Bt = null;
const St = (V) => {
if (!(E.value || C.value || F.value || H.value)) {
if (W.value) {
W.value = !1;
return;
}
Bt === null && (Bt = window.setTimeout(() => {
Bt = null, e.onClick && typeof e.onClick == "function" ? e.onClick(e.task, V) : A("click", e.task, V);
}, $F));
}
}, bt = (V) => {
V.stopPropagation(), V.preventDefault(), Bt !== null && (clearTimeout(Bt), Bt = null), E.value = !1, C.value = !1, F.value = !1, oe.value = null, document.removeEventListener("mousemove", ut), document.removeEventListener("mouseup", yt), A("dblclick", e.task, V);
}, nA = lt(() => {
const V = e.scrollLeft || 0, Be = e.containerWidth || 0;
if (!V && !Be)
return {
nameLeft: "",
namePosition: "",
nameTop: "",
progressLeft: "",
progressPosition: "",
progressTop: "",
avatarLeft: "",
avatarPosition: ""
};
const Fe = parseInt(re.value.left), ke = parseInt(re.value.width), Ze = Fe + ke, Me = Fe + ke / 2, tt = V, Je = V + Be;
let ft = "", Et = "", Jt = "", fA = "", gA = "", Xt = "", tA = "", Gt = "";
const UA = Math.max($.value, 40), FA = 35, IA = 22, aA = MA.value, An = aA + 3, Tn = Fe + An, ea = Fe + An + IA, Pn = Tn < tt && Ze > tt || Me < tt && Ze > tt, WA = Math.max(UA, FA), bA = ea + WA + 15 > Je && Fe < Je;
let nr = 0;
if (Pn)
tA = `${tt - Fe + aA + 3}px`, Gt = "absolute", nr = IA + 8;
else if (bA) {
const Ir = Math.max(UA, FA);
tA = `${Je - Fe - Ir - aA - 3 - IA - 15}px`, Gt = "absolute", nr = -37;
}
const GA = Me - UA / 2, cr = Me + UA / 2, pn = o.value.showAvatar;
let ba = !1;
if (pn) {
const Ir = GA, kn = IA + 15;
ba = Ir < tt + kn && Ze > tt;
} else
ba = GA < tt && Ze > tt && Me < tt;
const la = cr > Je && Fe < Je && Me > Je;
if (ba) {
const Ir = tt - Fe, kn = Pn ? nr : 0;
ft = `${Ir + aA + 3 + kn}px`, Et = "absolute", Jt = "2px";
} else la && (ft = `${Je - Fe - UA - aA - 10}px`, Et = "absolute", Jt = "2px");
const Qn = Me - FA / 2, Ca = Me + FA / 2;
let Kr = !1;
if (pn) {
const Ir = Qn, kn = IA + 15;
Kr = Ir < tt + kn && Ze > tt;
} else
Kr = Qn < tt && Ze > tt && Me < tt;
const Dn = Ca > Je && Fe < Je && Me > Je;
if (Kr) {
const Ir = tt - Fe, kn = Pn ? nr : 0;
fA = `${Ir + aA + 3 + kn}px`, gA = "absolute", Xt = "18px";
} else Dn && (fA = `${Je - Fe - FA - aA - 3}px`, gA = "absolute", Xt = "18px");
return {
nameLeft: ft,
namePosition: Et,
nameTop: Jt,
progressLeft: fA,
progressPosition: gA,
progressTop: Xt,
avatarLeft: tA,
avatarPosition: Gt
};
}), qt = lt(() => {
const V = e.scrollLeft || 0, Be = e.containerWidth || 0;
if (!Be || Be <= 0)
return {
show: !1,
left: "0px",
side: "left",
color: "#409eff",
animationType: "none"
};
if (Nt.value || Ve.value || e.hideBubbles)
return {
show: !1,
left: "0px",
side: "left",
color: qe.value.color,
animationType: "none"
};
const Fe = parseInt(re.value.left), ke = parseInt(re.value.width), Ze = Fe + ke, Me = V, tt = V + Be, Je = Ze <= Me, ft = Fe >= tt;
return Je ? {
show: !0,
left: `${Me - Fe - 4}px`,
// 圆心在边界上,向左偏移半径(4px)
side: "left",
color: qe.value.color,
animationType: "morphToSemiCircle"
} : ft ? {
show: !0,
left: `${tt - Fe - 8}px`,
// 右侧半圆位置调整,减少偏移量
side: "right",
color: qe.value.color,
animationType: "morphToSemiCircle"
} : {
show: !1,
left: "0px",
side: "left",
color: qe.value.color,
animationType: "none"
};
}), Ot = Te(!1), Pt = Te({ x: 0, y: 0 }), sA = Te(!1), kt = Te(null), hA = Te(!1), Nt = Te(!0), Ce = Te(!1), Ve = Te(!1), Re = (V) => {
V.stopPropagation(), V.preventDefault();
const Be = e.scrollLeft || 0, Fe = e.containerWidth || 0;
if (!Be && !Fe) return;
const ke = parseInt(re.value.left), Ze = parseInt(re.value.width), tt = ke + Ze / 2 - Fe / 2;
Ce.value = !0, Ve.value = !0, Ot.value = !1, A("scroll-to-position", tt);
};
EA(
() => [e.scrollLeft, e.containerWidth],
(V, Be) => {
const [Fe, ke] = V, [Ze, Me] = Be || [0, 0], tt = Fe || 0, Je = ke || 0, ft = Ze || 0, Et = Me || 0;
if (Math.abs(Je - Et) > 1 && Et > 0) {
hA.value = !0, rr(() => {
}), Nt.value && setTimeout(() => {
Nt.value = !1;
}, 300), setTimeout(() => {
hA.value = !1;
}, 500);
return;
}
Nt.value && tt >= 0 && Je > 0 && setTimeout(() => {
Nt.value = !1;
}, 1e3), tt !== ft && !hA.value && (sA.value = !0, kt.value && clearTimeout(kt.value), kt.value = setTimeout(() => {
sA.value = !1, Ce.value && (Ce.value = !1, setTimeout(() => {
Ve.value = !1;
}, 300));
}, 200));
},
{ immediate: !0 }
), EA(
() => e.hideBubbles,
(V, Be) => {
Be && !V && rr(() => {
});
}
), EA(
() => qt.value.show,
() => {
}
);
const $e = () => {
hA.value = !0, rr(() => {
}), setTimeout(() => {
hA.value = !1;
}, 300);
};
En(() => {
window.addEventListener("resize", $e), window.addEventListener("zoom", $e);
}), tn(() => {
document.removeEventListener("mousemove", ut), document.removeEventListener("mouseup", yt), window.removeEventListener("resize", $e), window.removeEventListener("zoom", $e);
});
const xt = (V) => {
V.stopPropagation(), Ot.value = !0;
const Fe = qt.value.side === "right" ? -180 : 15;
Pt.value = {
x: V.clientX + Fe,
y: V.clientY - 10
};
}, Ht = (V) => {
V.stopPropagation(), Ot.value = !1;
}, Mt = (V) => {
V.stopPropagation(), Ot.value = !1;
}, SA = (V) => {
if (!V) return s("dateNotSet");
const Be = l(V);
if (!Be) return s("dateNotSet");
const Fe = Be.getFullYear(), ke = String(Be.getMonth() + 1).padStart(2, "0"), Ze = String(Be.getDate()).padStart(2, "0");
return `${Fe}-${ke}-${Ze}`;
}, JA = lt(() => {
const V = l(e.task.startDate), Be = l(e.task.endDate);
let Fe = 0;
if (V && Be) {
const Me = Math.abs(Be.getTime() - V.getTime());
Fe = Math.ceil(Me / (1e3 * 60 * 60 * 24)) * 8;
}
const ke = e.task.progress || 0, Ze = Math.round(Fe * ke / 100);
return {
total: Fe,
used: Ze
};
}), Lt = lt(() => !0), Qr = () => {
const V = nA.value, Be = {};
return V.nameLeft && (Be.left = V.nameLeft), V.namePosition && (Be.position = V.namePosition), V.nameTop && (Be.top = V.nameTop), Be;
}, Fr = () => {
const V = nA.value, Be = {};
return V.progressLeft && (Be.left = V.progressLeft), V.progressPosition && (Be.position = V.progressPosition), V.progressTop && (Be.top = V.progressTop), Be;
}, xr = () => {
const V = nA.value, Be = {};
return V.avatarLeft && (Be.left = V.avatarLeft), V.avatarPosition && (Be.position = V.avatarPosition), Be;
}, PA = lt(() => parseInt(re.value.width) - 10 < 22), CA = lt(() => ({
width: `${Math.min(o.value.resizeHandleWidth ?? 5, 15)}px`
})), MA = lt(() => Math.min(o.value.resizeHandleWidth ?? 5, 15)), OA = (V, Be, Fe) => {
var Ze;
let ke = 0;
for (const Me of Be)
if (Fe === Ye.DAY) {
const tt = Me.days || [];
for (let Je = 0; Je < tt.length; Je++) {
const ft = tt[Je], Et = new Date(ft.date);
if (Et.getFullYear() === V.getFullYear() && Et.getMonth() === V.getMonth() && Et.getDate() === V.getDate())
return ke + Je * 30;
}
ke += tt.length * 30;
} else if (Fe === Ye.QUARTER) {
const tt = Me.quarters || [];
for (const Je of tt) {
const ft = new Date(Je.startDate), Et = new Date(Je.endDate);
if (V >= ft && V <= Et) {
const gA = 60 / Math.ceil(
(Et.getTime() - ft.getTime()) / 864e5
), Xt = Math.ceil(
(V.getTime() - ft.getTime()) / (1e3 * 60 * 60 * 24)
);
return ke + Xt * gA;
}
ke += 60;
}
} else if (Fe === Ye.WEEK) {
const tt = Me.weeks || [];
for (const Je of tt) {
const ft = new Date(Je.weekStart), Et = new Date(Je.weekEnd);
if (V >= ft && V <= Et) {
const fA = Je.subDays || [], gA = 60 / 7;
for (let tA = 0; tA < fA.length; tA++) {
const Gt = fA[tA], UA = new Date(Gt.date);
if (UA.getFullYear() === V.getFullYear() && UA.getMonth() === V.getMonth() && UA.getDate() === V.getDate())
return ke + tA * gA;
}
const Xt = V.getDay();
return ke + Xt * gA;
}
ke += 60;
}
} else if (Fe === Ye.MONTH) {
const tt = new Date(Me.startDate), Je = new Date(Me.endDate);
if (V >= tt && V <= Je) {
const Jt = 60 / (((Ze = Me.monthData) == null ? void 0 : Ze.dayCount) || 30), fA = V.getDate();
return ke + (fA - 1) * Jt;
}
ke += 60;
} else if (Fe === Ye.YEAR) {
const tt = Me.halfYears || [];
for (const Je of tt) {
const ft = new Date(Je.startDate), Et = new Date(Je.endDate);
if (V >= ft && V <= Et) {
const gA = 180 / Math.ceil(
(Et.getTime() - ft.getTime()) / 864e5
), Xt = Math.ceil(
(V.getTime() - ft.getTime()) / (1e3 * 60 * 60 * 24)
);
return ke + Xt * gA;
}
ke += 180;
}
}
return Fe === Ye.WEEK ? (console.warn("[Gantt Debug] 周视图定位失败,任务日期未找到 week 匹配,返回 -1", { targetDate: V }), -1) : ke;
}, Dr = (V, Be, Fe) => {
var Ze;
if (!Be)
return null;
let ke = 0;
if (Fe === Ye.DAY)
for (const Me of Be) {
const tt = Me.days || [], Je = tt.length * 30;
if (V >= ke && V < ke + Je) {
const ft = V - ke, Et = Math.floor(ft / 30);
if (Et >= 0 && Et < tt.length)
return new Date(tt[Et].date);
}
ke += Je;
}
else if (Fe === Ye.MONTH)
for (const Me of Be) {
if (V >= ke && V < ke + 60) {
const Je = V - ke, ft = ((Ze = Me.monthData) == null ? void 0 : Ze.dayCount) || 30, Et = 60 / ft, Jt = Math.floor(Je / Et), fA = Math.min(Jt + 1, ft);
return new Date(Me.year, Me.month - 1, fA);
}
ke += 60;
}
else if (Fe === Ye.QUARTER)
for (const Me of Be) {
const tt = Me.quarters || [];
for (const Je of tt) {
const ft = new Date(Je.startDate), Et = new Date(Je.endDate), Jt = 60;
if (V >= ke && V < ke + Jt) {
const fA = V - ke, gA = Math.ceil(
(Et.getTime() - ft.getTime()) / (1e3 * 60 * 60 * 24)
), Xt = Jt / gA, tA = Math.floor(fA / Xt), Gt = new Date(ft);
return Gt.setDate(Gt.getDate() + tA), Gt;
}
ke += Jt;
}
}
else if (Fe === Ye.YEAR)
for (const Me of Be) {
const tt = Me.halfYears || [];
for (const Je of tt) {
const ft = new Date(Je.startDate), Et = new Date(Je.endDate), Jt = 180;
if (V >= ke && V < ke + Jt) {
const fA = V - ke, gA = Math.ceil(
(Et.getTime() - ft.getTime()) / (1e3 * 60 * 60 * 24)
), Xt = Jt / gA, tA = Math.floor(fA / Xt), Gt = new Date(ft);
return Gt.setDate(Gt.getDate() + tA), Gt;
}
ke += Jt;
}
}
return null;
}, Sr = Te(!1), LA = Te({ x: 0, y: 0 }), pr = lt(() => e.task);
function kr(V) {
if (e.isHighlighted || e.isPrimaryHighlight) {
V.preventDefault();
return;
}
if (window.dispatchEvent(new CustomEvent("close-all-taskbar-menus")), e.task.type !== "task" && e.task.type !== "story") {
V.preventDefault(), Sr.value = !1;
return;
}
V.preventDefault(), Sr.value = !0, LA.value = { x: V.clientX, y: V.clientY };
}
function ZA() {
Sr.value = !1;
}
const Lr = (V, Be) => {
A("delete", V, Be), ZA();
}, Un = (V) => {
A("delete-link", V), ZA();
}, Dt = (V) => {
A("link-drag-start", V);
}, be = (V) => {
A("link-drag-move", V);
}, z = (V) => {
A("link-drag-end", V);
}, ge = (V) => {
const Be = {
clientX: V.x,
clientY: V.y
};
Dt({
task: e.task,
type: V.type,
mouseEvent: Be
});
}, We = (V) => {
be({
mouseX: V.x,
mouseY: V.y
});
}, it = (V) => {
z({
task: e.task,
type: V.type
});
};
return En(() => {
window.addEventListener("close-all-taskbar-menus", ZA);
}), tn(() => {
window.removeEventListener("close-all-taskbar-menus", ZA), Bt !== null && (clearTimeout(Bt), Bt = null);
}), (V, Be) => (ae(), fe(Ut, null, [
Se.value ? (ae(), fe("div", {
key: 0,
ref_key: "barRef",
ref: L,
class: iA(["task-bar", {
dragging: E.value,
resizing: C.value || F.value,
completed: at.value,
"parent-task": V.isParent,
"week-view": Ie.value,
"short-task-bar": me.value,
"overflow-effect": ve.value,
highlighted: V.isHighlighted,
"primary-highlight": V.isPrimaryHighlight,
dimmed: dt.value
}]),
"data-task-id": V.task.id,
style: rA({
...re.value,
backgroundColor: qe.value.bgColor,
borderColor: qe.value.borderColor,
color: qe.value.color,
cursor: at.value || V.isParent ? "default" : "move",
"--row-height": `${V.rowHeight}px`,
"--handle-width": `${MA.value}px`
}),
onClick: St,
onContextmenu: kr,
onDblclick: bt,
onMouseenter: Be[7] || (Be[7] = (Fe) => I.value = !0),
onMouseleave: Be[8] || (Be[8] = (Fe) => I.value = !1)
}, [
V.isParent ? (ae(), fe("div", mF, [
i.value ? Li(V.$slots, "custom-task-content", oc(Qo({ key: 0 }, rt.value)), void 0, !0) : (ae(), fe(Ut, { key: 1 }, [
kA(Ge(V.task.name) + " (" + Ge(V.task.progress || 0) + "%) ", 1)
], 64))
])) : Ct("", !0),
!V.isParent && V.task.progress && V.task.progress > 0 ? (ae(), fe("div", {
key: 1,
class: "progress-bar",
style: rA({
width: D.value,
backgroundColor: qe.value.color
})
}, null, 4)) : Ct("", !0),
!at.value && !V.isParent && !w.value && e.allowDragAndResize !== !1 && !V.isHighlighted && !V.isPrimaryHighlight ? (ae(), fe("div", {
key: 2,
class: "resize-handle resize-handle-left",
style: rA(CA.value),
onMousedown: Be[0] || (Be[0] = (Fe) => xe(Fe, "resize-left"))
}, null, 36)) : Ct("", !0),
V.isParent ? Ct("", !0) : (ae(), fe("div", {
key: 3,
class: "task-bar-content",
style: rA({
cursor: w.value || e.allowDragAndResize === !1 || V.isHighlighted || V.isPrimaryHighlight ? "grab" : "move"
}),
onMousedown: Be[1] || (Be[1] = (Fe) => {
V.isHighlighted || V.isPrimaryHighlight || w.value || e.allowDragAndResize === !1 || xe(Fe, "drag");
})
}, [
o.value.showAvatar ? (ae(), fe("div", {
key: 0,
class: iA(["task-avatar", { "avatar-outside": PA.value, "avatar-default": !V.task.avatar }]),
style: rA(xr())
}, [
V.task.avatar ? (ae(), fe("img", {
key: 0,
src: V.task.avatar,
alt: V.task.assignee || "avatar"
}, null, 8, wF)) : V.task.assigneeName ? (ae(), fe("span", BF, Ge(V.task.assigneeName.charAt(0).toUpperCase()), 1)) : (ae(), fe("svg", yF, Be[9] || (Be[9] = [
Y("path", {
d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z",
fill: "currentColor"
}, null, -1)
])))
], 6)) : Ct("", !0),
o.value.showTitle ? (ae(), fe("div", {
key: 1,
ref_key: "taskBarNameRef",
ref: j,
style: rA(Qr())
}, [
i.value ? Li(V.$slots, "custom-task-content", oc(Qo({ key: 0 }, rt.value)), void 0, !0) : (ae(), fe("div", bF, Ge(V.task.name), 1))
], 4)) : Ct("", !0),
o.value.showProgress && Lt.value ? (ae(), fe("div", {
key: 2,
class: "task-progress",
style: rA(Fr())
}, Ge(V.task.progress || 0) + "% ", 5)) : Ct("", !0)
], 36)),
!at.value && !V.isParent && !w.value && e.allowDragAndResize !== !1 && !V.isHighlighted && !V.isPrimaryHighlight ? (ae(), fe("div", {
key: 4,
class: "resize-handle resize-handle-right",
style: rA(CA.value),
onMousedown: Be[2] || (Be[2] = (Fe) => xe(Fe, "resize-right"))
}, null, 36)) : Ct("", !0),
!V.isParent && !V.isInHighlightMode ? (ae(), wr(x0, {
key: 5,
type: "predecessor",
"task-id": V.task.id,
visible: I.value,
"is-drag-source": V.isLinkDragSource && V.dragLinkMode === "predecessor",
"is-drag-target": V.isValidLinkTarget || V.isInvalidLinkTarget,
"is-valid-target": V.isValidLinkTarget,
"global-dragging": !!V.dragLinkMode,
onDragStart: ge,
onDragMove: We,
onDragEnd: it
}, null, 8, ["task-id", "visible", "is-drag-source", "is-drag-target", "is-valid-target", "global-dragging"])) : Ct("", !0),
!V.isParent && !V.isInHighlightMode ? (ae(), wr(x0, {
key: 6,
type: "successor",
"task-id": V.task.id,
visible: I.value,
"is-drag-source": V.isLinkDragSource && V.dragLinkMode === "successor",
"is-drag-target": V.isValidLinkTarget || V.isInvalidLinkTarget,
"is-valid-target": V.isValidLinkTarget,
"global-dragging": !!V.dragLinkMode,
onDragStart: ge,
onDragMove: We,
onDragEnd: it
}, null, 8, ["task-id", "visible", "is-drag-source", "is-drag-target", "is-valid-target", "global-dragging"])) : Ct("", !0),
qt.value.show && !V.isParent ? (ae(), fe("div", {
key: 7,
class: iA(["bubble-indicator", [
`bubble-${qt.value.side}`,
`bubble-animation-${qt.value.animationType}`
]]),
style: rA({
left: qt.value.left,
backgroundColor: qt.value.color,
borderColor: qt.value.color
}),
onMouseenter: NA(xt, ["stop"]),
onMouseleave: NA(Ht, ["stop"]),
onMousedown: NA(Mt, ["stop"]),
onClick: NA(Re, ["stop"])
}, null, 38)) : Ct("", !0),
$n(Hy, {
visible: Sr.value,
task: pr.value,
position: LA.value,
"all-tasks": V.allTasks,
onClose: ZA,
onStartTimer: Be[3] || (Be[3] = (Fe) => V.$emit("start-timer", e.task)),
onStopTimer: Be[4] || (Be[4] = (Fe) => V.$emit("stop-timer", e.task)),
onAddPredecessor: Be[5] || (Be[5] = (Fe) => V.$emit("add-predecessor", e.task)),
onAddSuccessor: Be[6] || (Be[6] = (Fe) => V.$emit("add-successor", e.task)),
onDelete: Lr,
onDeleteLink: Un
}, null, 8, ["visible", "task", "position", "all-tasks"])
], 46, vF)) : Ct("", !0),
(ae(), wr(To, { to: "body" }, [
Ot.value ? (ae(), fe("div", {
key: 0,
class: "task-tooltip",
style: rA({
left: `${Pt.value.x}px`,
top: `${Pt.value.y}px`
})
}, [
Be[10] || (Be[10] = Y("div", { class: "tooltip-arrow" }, null, -1)),
Y("div", CF, Ge(V.task.name), 1),
Y("div", EF, [
Y("div", FF, [
Y("span", xF, Ge(s("startDate")) + ":", 1),
Y("span", SF, Ge(SA(V.task.startDate)), 1)
]),
Y("div", UF, [
Y("span", TF, Ge(s("endDate")) + ":", 1),
Y("span", QF, Ge(SA(V.task.endDate)), 1)
]),
Y("div", DF, [
Y("span", kF, Ge(s("estimatedHours")) + ":", 1),
Y("span", LF, Ge(JA.value.total) + "h", 1)
]),
Y("div", IF, [
Y("span", _F, Ge(s("actualHours")) + ":", 1),
Y("span", NF, Ge(JA.value.used) + "h", 1)
]),
Y("div", MF, [
Y("span", OF, Ge(s("progress")) + ":", 1),
Y("span", RF, Ge(V.task.progress || 0) + "%", 1)
])
])
], 4)) : Ct("", !0)
])),
(ae(), wr(To, { to: "body" }, [
je.value ? (ae(), fe("div", {
key: 0,
class: "drag-tooltip",
style: rA({
left: `${Ke.value.x}px`,
top: `${Ke.value.y}px`
})
}, [
Y("div", HF, [
Y("div", PF, [
Y("span", KF, Ge(s("startDate")) + ":", 1),
Y("span", VF, Ge(SA(et.value.startDate)), 1)
]),
Y("div", qF, [
Y("span", jF, Ge(s("endDate")) + ":", 1),
Y("span", WF, Ge(SA(et.value.endDate)), 1)
])
])
], 4)) : Ct("", !0)
]))
], 64));
}
}), XF = /* @__PURE__ */ xn(zF, [["__scopeId", "data-v-d1be80c8"]]), JF = ["title"], ZF = {
key: 0,
transform: "rotate(45 16 16)"
}, ex = ["fill", "stroke"], tx = { key: 1 }, Ax = {
key: 2,
transform: "rotate(45 16 16)"
}, rx = ["fill", "stroke"], nx = {
key: 1,
class: "milestone-label milestone-label-right"
}, ax = { class: "tooltip-content" }, ix = /* @__PURE__ */ dn({
__name: "MilestonePoint",
props: {
date: {},
milestone: {},
name: {},
rowHeight: {},
dayWidth: {},
startDate: {},
timelineStart: {},
timelineEnd: {},
scrollLeft: {},
containerWidth: {},
milestoneId: {},
otherMilestones: {},
currentTimeScale: {},
timelineData: {},
periodWidth: {},
isInHighlightMode: { type: Boolean },
allowDragAndResize: { type: Boolean }
},
emits: ["milestone-double-click", "update:milestone", "drag-end"],
setup(r, { emit: t }) {
const e = r, A = t, { getTranslation: n } = Ma(), a = (Z) => n(Z), s = Te(!1), i = Te(0), o = Te(0), l = Te(null), u = (Z) => {
if (Z.preventDefault(), Z.stopPropagation(), !(M.value.isSticky || M.value.isPushedOut || !M.value.showIcon))
if (s.value = !1, l.value = null, document.removeEventListener("mousemove", y), document.removeEventListener("mouseup", w), e.milestone)
A("milestone-double-click", e.milestone);
else {
const ee = {
name: e.name || "里程碑",
startDate: e.date,
type: "milestone"
};
A("milestone-double-click", ee);
}
}, h = (Z, ee) => {
const X = new Date(Z);
return X.setDate(X.getDate() + ee), X;
}, g = (Z) => {
const ee = Z.getFullYear(), X = String(Z.getMonth() + 1).padStart(2, "0"), Ae = String(Z.getDate()).padStart(2, "0");
return `${ee}-${X}-${Ae}`;
}, c = (Z, ee, X) => {
var oe;
if (!ee)
return null;
let Ae = 0;
if (X === Ye.DAY)
for (const x of ee) {
const L = x.days || [], j = L.length * 30;
if (Z >= Ae && Z < Ae + j) {
const $ = Z - Ae, re = Math.floor($ / 30);
if (re >= 0 && re < L.length)
return new Date(L[re].date);
}
Ae += j;
}
else if (X === Ye.MONTH)
for (const x of ee) {
if (Z >= Ae && Z < Ae + 60) {
const j = Z - Ae, $ = ((oe = x.monthData) == null ? void 0 : oe.dayCount) || 30, re = 60 / $, pe = Math.floor(j / re), de = Math.min(pe + 1, $);
return new Date(x.year, x.month - 1, de);
}
Ae += 60;
}
else if (X === Ye.QUARTER)
for (const x of ee) {
const L = x.quarters || [];
for (const j of L) {
const $ = new Date(j.startDate), re = new Date(j.endDate), pe = 60;
if (Z >= Ae && Z < Ae + pe) {
const de = Z - Ae, ce = Math.ceil(
(re.getTime() - $.getTime()) / (1e3 * 60 * 60 * 24)
), Se = pe / ce, qe = Math.floor(de / Se), rt = new Date($);
return rt.setDate(rt.getDate() + qe), rt;
}
Ae += pe;
}
}
return null;
}, p = (Z) => {
e.allowDragAndResize === !1 || e.currentTimeScale === Ye.YEAR || M.value.isSticky || M.value.isPushedOut || !M.value.showIcon || (Z.preventDefault(), Z.stopPropagation(), !document.querySelector(".timeline")) || (i.value = Z.clientX, o.value = parseInt(F.value.left), l.value = null, window.addEventListener("timeline-auto-scroll", m), document.addEventListener("mousemove", y), document.addEventListener("mouseup", w));
}, m = (Z) => {
const { scrollDelta: ee } = Z.detail;
s.value && (i.value -= ee);
}, y = (Z) => {
window.dispatchEvent(
new CustomEvent("drag-boundary-check", {
detail: {
mouseX: Z.clientX,
isDragging: s.value
}
})
);
const ee = Z.clientX - i.value;
if (Math.abs(ee) > 3) {
s.value = !0;
const X = Math.max(0, o.value + ee);
let Ae;
if (e.currentTimeScale === Ye.MONTH || e.currentTimeScale === Ye.QUARTER || e.currentTimeScale === Ye.DAY)
if (e.timelineData && e.currentTimeScale) {
const oe = c(
X,
e.timelineData,
e.currentTimeScale
);
oe ? Ae = oe : Ae = h(e.startDate, X / e.dayWidth);
} else
Ae = h(e.startDate, X / e.dayWidth);
else
Ae = h(e.startDate, X / e.dayWidth);
l.value = {
startDate: g(Ae)
};
}
}, w = () => {
if (window.dispatchEvent(
new CustomEvent("drag-boundary-check", {
detail: {
mouseX: 0,
isDragging: !1
}
})
), s.value && l.value && e.milestone) {
const Z = {
...e.milestone,
...l.value
};
A("update:milestone", Z), A("drag-end", Z);
}
window.removeEventListener("timeline-auto-scroll", m), s.value = !1, l.value = null, document.removeEventListener("mousemove", y), document.removeEventListener("mouseup", w);
}, E = (Z) => {
if (Z.preventDefault(), Z.stopPropagation(), s.value || M.value.isPushedOut || !M.value.showIcon || M.value.isFullyVisible)
return;
const ee = e.containerWidth || 0, X = parseInt(F.value.left) + 12;
if (ee > 0) {
const Ae = Math.max(0, X - ee / 2);
window.dispatchEvent(
new CustomEvent("milestone-click-locate", {
detail: {
scrollLeft: Ae,
smooth: !0
}
})
);
}
}, C = lt(() => e.isInHighlightMode === !0), F = lt(() => {
var oe;
const Z = ((oe = l.value) == null ? void 0 : oe.startDate) || e.date, ee = aE(Z);
if (!e.startDate || !ee || isNaN(ee.getTime()))
return {
left: "0px",
top: "0px",
width: "auto",
height: "auto"
};
let X = 0, Ae = 24;
return e.currentTimeScale === Ye.YEAR || e.currentTimeScale === Ye.QUARTER ? Ae = Math.min(e.rowHeight, 24) : e.currentTimeScale === Ye.MONTH ? Ae = Math.min(e.rowHeight, 20) : e.currentTimeScale === Ye.WEEK ? Ae = Math.min(e.rowHeight, Math.max(e.dayWidth * 0.8, 16), 24) : Ae = Math.min(e.rowHeight, e.dayWidth * 1.2, 24), e.currentTimeScale === Ye.HOUR ? X = le(ee, e.startDate) - Ae / 2 : e.timelineData && e.currentTimeScale && (e.currentTimeScale === Ye.WEEK || e.currentTimeScale === Ye.MONTH || e.currentTimeScale === Ye.DAY || e.currentTimeScale === Ye.QUARTER || e.currentTimeScale === Ye.YEAR) ? X = ue(
ee,
e.timelineData,
e.currentTimeScale
) - Ae / 2 : X = Math.floor(
(ee.getTime() - e.startDate.getTime()) / 864e5
) * e.dayWidth + e.dayWidth / 2 - Ae / 2, {
left: `${X}px`,
top: `${(e.rowHeight - Ae) / 2}px`,
width: "auto",
height: "auto"
};
}), H = lt(() => "var(--gantt-danger, #f56c6c)"), q = lt(() => "var(--gantt-danger-light, #fab6b6)"), N = lt(() => {
var Z;
return ((Z = e.milestone) == null ? void 0 : Z.icon) || "diamond";
}), M = lt(() => {
const Z = e.scrollLeft || 0, ee = e.containerWidth || 0;
if (!ee || ee <= 0)
return {
showIcon: !0,
showLabel: !0,
isSticky: !1,
stickyPosition: "none",
iconLeft: "0px",
isPushedOut: !1,
clipPath: "none",
isFullyVisible: !0
// 无滚动信息时认为完全可见
};
const X = parseInt(F.value.left) + 12, Ae = Z, oe = Z + ee, x = 24, L = X - x / 2, j = X + x / 2, $ = e.milestoneId, re = L >= Ae && j <= oe, pe = e.otherMilestones || [];
if (j <= Ae + x / 2) {
const de = pe.filter(
(ce) => ce.id !== $ && ce.stickyPosition === "left" && ce.isSticky
);
if (de.length > 0) {
const ce = parseInt(F.value.left) + 12;
if (de.some((qe) => qe.originalLeft > ce))
return {
showIcon: !1,
showLabel: !1,
isSticky: !1,
stickyPosition: "none",
iconLeft: "0px",
isPushedOut: !0,
clipPath: "none",
isFullyVisible: !1
};
}
return {
showIcon: !0,
showLabel: !1,
isSticky: !0,
stickyPosition: "left",
iconLeft: `${Ae - parseInt(F.value.left) - x / 2}px`,
isPushedOut: !1,
clipPath: "polygon(50% 0%, 100% 0%, 100% 100%, 50% 100%)",
// 只显示右半部分
isFullyVisible: !1
};
}
if (L >= oe - x / 2) {
const de = pe.filter(
(ce) => ce.id !== $ && ce.stickyPosition === "right" && ce.isSticky
);
if (de.length > 0) {
const ce = parseInt(F.value.left) + 12;
if (de.some((qe) => qe.originalLeft < ce))
return {
showIcon: !1,
showLabel: !1,
isSticky: !1,
stickyPosition: "none",
iconLeft: "0px",
isPushedOut: !0,
clipPath: "none",
isFullyVisible: !1
};
}
return {
showIcon: !0,
showLabel: !1,
isSticky: !0,
stickyPosition: "right",
iconLeft: `${oe - parseInt(F.value.left) - x / 2}px`,
isPushedOut: !1,
clipPath: "polygon(0% 0%, 50% 0%, 50% 100%, 0% 100%)",
// 只显示左半部分
isFullyVisible: !1
};
}
return {
showIcon: !0,
showLabel: !0,
isSticky: !1,
stickyPosition: "none",
iconLeft: "0px",
isPushedOut: !1,
clipPath: "none",
isFullyVisible: re
};
}), k = Te(!1), O = Te({ x: 0, y: 0 }), S = (Z) => {
var ee;
if (M.value.isSticky && M.value.showIcon && !M.value.isPushedOut) {
k.value = !0;
const X = !e.milestone || ((ee = e.milestone) == null ? void 0 : ee.icon) === "diamond" ? -300 : -270, Ae = M.value.stickyPosition === "left" ? 10 : X;
O.value = {
x: Z.clientX + Ae,
y: Z.clientY - 10
};
}
}, U = () => {
k.value = !1;
}, W = (Z) => {
if (!Z) return a("dateNotSet");
try {
const ee = new Date(Z);
if (isNaN(ee.getTime())) return a("dateNotSet");
const X = ee.getFullYear(), Ae = String(ee.getMonth() + 1).padStart(2, "0"), oe = String(ee.getDate()).padStart(2, "0");
return `${X}-${Ae}-${oe}`;
} catch {
return a("dateNotSet");
}
}, I = lt(() => {
var X, Ae;
const Z = e.name || ((X = e.milestone) == null ? void 0 : X.name) || a("milestone"), ee = W(e.date || ((Ae = e.milestone) == null ? void 0 : Ae.startDate) || "");
return `${a("milestone")}:${Z} - ${a("targetDate")}:${ee}`;
});
tn(() => {
s.value = !1, l.value = null, document.removeEventListener("mousemove", y), document.removeEventListener("mouseup", w);
});
const le = (Z, ee) => {
const X = new Date(
Z.getFullYear(),
Z.getMonth(),
Z.getDate()
), Ae = new Date(
ee.getFullYear(),
ee.getMonth(),
ee.getDate()
), oe = X.getTime() - Ae.getTime(), j = Math.floor(oe / (1e3 * 60 * 60 * 24)) * 960, re = Z.getHours() * 40, de = Z.getMinutes() / 60 * 40;
return j + re + de;
}, ue = (Z, ee, X) => {
var oe;
let Ae = 0;
for (const x of ee)
if (X === Ye.DAY) {
const L = "days" in x && x.days ? x.days : [];
for (let j = 0; j < L.length; j++) {
const $ = L[j], re = new Date($.date);
if (re.getFullYear() === Z.getFullYear() && re.getMonth() === Z.getMonth() && re.getDate() === Z.getDate())
return Ae + j * 30 + 15;
}
Ae += L.length * 30;
} else if (X === Ye.QUARTER) {
const L = "quarters" in x && x.quarters ? x.quarters : [];
for (const j of L) {
const $ = new Date(j.startDate), re = new Date(j.endDate);
if (Z >= $ && Z <= re) {
const ce = 60 / Math.ceil(
(re.getTime() - $.getTime()) / 864e5
), Se = Math.ceil(
(Z.getTime() - $.getTime()) / (1e3 * 60 * 60 * 24)
);
return Ae + Se * ce + ce / 2;
}
Ae += 60;
}
} else if (X === Ye.YEAR) {
const L = "halfYears" in x && x.halfYears ? x.halfYears : [];
for (const j of L) {
const $ = new Date(j.startDate), re = new Date(j.endDate);
if (Z >= $ && Z <= re) {
const ce = 180 / Math.ceil(
(re.getTime() - $.getTime()) / 864e5
), Se = Math.ceil(
(Z.getTime() - $.getTime()) / (1e3 * 60 * 60 * 24)
);
return Ae + Se * ce + ce / 2;
}
Ae += 180;
}
} else if (X === Ye.WEEK) {
const L = "weeks" in x && x.weeks ? x.weeks : [];
for (const j of L) {
const $ = new Date(j.weekStart), re = new Date(j.weekEnd);
if (Z >= $ && Z <= re) {
const de = j.subDays || [], ce = 60 / 7;
for (let rt = 0; rt < de.length; rt++) {
const at = de[rt], dt = new Date(at.date);
if (dt.getFullYear() === Z.getFullYear() && dt.getMonth() === Z.getMonth() && dt.getDate() === Z.getDate())
return Ae + rt * ce + ce / 2;
}
const Se = Z.getDay(), qe = Se === 0 ? 6 : Se - 1;
return Ae + qe * ce + ce / 2;
}
Ae += 60;
}
} else if (X === Ye.MONTH) {
if (!("startDate" in x) || !("endDate" in x))
continue;
const L = new Date(x.startDate), j = new Date(x.endDate);
if (Z >= L && Z <= j) {
const pe = 60 / ("monthData" in x && ((oe = x.monthData) == null ? void 0 : oe.dayCount) || 30), de = Z.getDate();
return Ae + (de - 1) * pe + pe / 2;
}
Ae += 60;
}
return Ae;
};
return (Z, ee) => (ae(), fe(Ut, null, [
Y("div", {
class: iA(["milestone", {
dragging: s.value,
"milestone-sticky": M.value.isSticky,
"milestone-sticky-left": M.value.stickyPosition === "left",
"milestone-sticky-right": M.value.stickyPosition === "right",
"milestone-pushed-out": M.value.isPushedOut,
dimmed: C.value
}]),
style: rA(F.value),
title: M.value.isSticky ? "" : e.name || "里程碑",
onClick: NA(E, ["stop"])
}, [
M.value.showIcon ? (ae(), fe("svg", {
key: 0,
width: 24,
height: 24,
viewBox: "0 0 24 24",
style: rA([{
position: M.value.isSticky ? "relative" : "static",
left: M.value.isSticky ? M.value.iconLeft : "0px",
clipPath: M.value.clipPath,
zIndex: M.value.isSticky ? 200 : 120
}, { cursor: "pointer" }]),
onMouseenter: S,
onMouseleave: U,
onClick: NA(E, ["stop"]),
onDblclick: NA(u, ["stop"]),
onMousedown: NA(p, ["stop"])
}, [
N.value === "diamond" ? (ae(), fe("g", ZF, [
Y("rect", {
x: "4",
y: "8",
width: "15",
height: "15",
rx: "6",
ry: "6",
fill: H.value,
stroke: q.value,
"stroke-width": "2"
}, null, 8, ex)
])) : N.value === "rocket" ? (ae(), fe("g", tx, ee[0] || (ee[0] = [
Y("foreignObject", {
x: "0",
y: "0",
width: "24",
height: "24"
}, [
Y("div", { class: "rocket-emoji" }, "🚀")
], -1)
]))) : (ae(), fe("g", Ax, [
Y("rect", {
x: "4",
y: "8",
width: "15",
height: "15",
rx: "6",
ry: "6",
fill: H.value,
stroke: q.value,
"stroke-width": "2"
}, null, 8, rx)
]))
], 36)) : Ct("", !0),
e.name && M.value.showLabel ? (ae(), fe("span", nx, Ge(e.name), 1)) : Ct("", !0)
], 14, JF),
(ae(), wr(To, { to: "body" }, [
k.value && M.value.isSticky ? (ae(), fe("div", {
key: 0,
class: "milestone-tooltip",
style: rA({
left: `${O.value.x}px`,
top: `${O.value.y}px`
})
}, [
Y("div", ax, Ge(I.value), 1)
], 4)) : Ct("", !0)
]))
], 64));
}
}), S0 = /* @__PURE__ */ xn(ix, [["__scopeId", "data-v-0427278d"]]);
class Py {
constructor() {
HA(this, "cachedCtx", null);
HA(this, "cachedWidth", 0);
HA(this, "cachedHeight", 0);
HA(this, "isUniApp", !1);
this.isUniApp = typeof window < "u" && !!window.uni;
}
/**
* 检测是否在 uni-app 环境
*/
get isUniAppEnvironment() {
return this.isUniApp;
}
/**
* 获取或初始化 Canvas 上下文
* @param options 初始化配置
* @returns Canvas 上下文,失败返回 null
*/
getContext(t) {
const { canvas: e, canvasId: A, width: n, height: a, contextOptions: s } = t;
if (!this.cachedCtx || this.cachedWidth !== n || this.cachedHeight !== a) {
let i = null;
if (this.isUniApp && window.uni)
i = window.uni.createCanvasContext(A);
else {
if (!e) return null;
const o = window.devicePixelRatio || 1;
if (i = e.getContext("2d", s || { alpha: !0 }), !i) return null;
const l = n * o, u = a * o;
e.width = l, e.height = u, i.scale(o, o);
}
if (!i) return null;
this.cachedCtx = i, this.cachedWidth = n, this.cachedHeight = a;
}
return this.cachedCtx;
}
/**
* 清空画布
*/
clear(t, e) {
this.cachedCtx && this.cachedCtx.clearRect(0, 0, t, e);
}
/**
* 触发 uni-app 画布渲染(仅 uni-app 环境需要)
*/
draw() {
var t;
this.isUniApp && ((t = this.cachedCtx) != null && t.draw) && this.cachedCtx.draw();
}
/**
* 重置缓存(例如 Canvas 元素被销毁时)
*/
reset() {
this.cachedCtx = null, this.cachedWidth = 0, this.cachedHeight = 0;
}
}
const sx = /* @__PURE__ */ dn({
__name: "GanttLinks",
props: {
tasks: {},
taskBarPositions: {},
width: {},
height: {},
offsetLeft: { default: 0 },
offsetTop: { default: 0 },
highlightedTaskId: {},
highlightedTaskIds: {},
hoveredTaskId: {},
verticalLines: { default: () => [] },
showVerticalLines: { type: Boolean, default: !0 }
},
setup(r, { expose: t }) {
const e = r, A = Te(null), n = new Py();
let a = null, s = !1, i = null;
const o = Te(document.documentElement.getAttribute("data-theme") === "dark"), l = () => {
o.value = document.documentElement.getAttribute("data-theme") === "dark", g();
}, u = () => {
const c = n.getContext({
canvas: A.value,
canvasId: "gantt-link-canvas",
width: e.width,
height: e.height,
contextOptions: { alpha: !0 }
});
if (!c) {
console.error("❌ Canvas context 获取失败,可能是尺寸超限");
return;
}
const p = e.width, m = e.height;
if (c.clearRect(0, 0, p, m), e.showVerticalLines && e.verticalLines && e.verticalLines.length > 0) {
c.save();
const O = o.value ? "#66b1ff" : "#409eff";
c.strokeStyle = O, c.lineWidth = 1, c.beginPath();
for (const S of e.verticalLines) {
const U = S.left - e.offsetLeft;
U >= 0 && U <= p && (c.moveTo(U, 0), c.lineTo(U, m));
}
c.stroke(), c.restore();
}
const y = /* @__PURE__ */ new Set();
for (const O of e.tasks)
y.add(O.id);
const w = e.highlightedTaskId !== null, E = e.offsetLeft, C = e.offsetLeft + p, F = e.offsetTop, H = e.offsetTop + m, q = [], N = [], M = [], k = [];
for (const O of e.tasks) {
if (!O.predecessor || !e.taskBarPositions[O.id]) continue;
const S = Da(O.predecessor);
for (const U of S) {
const W = e.taskBarPositions[U], I = e.taskBarPositions[O.id];
if (!W || !I || !y.has(U))
continue;
const le = e.highlightedTaskId === U, ue = e.highlightedTaskId === O.id, Z = e.highlightedTaskIds.has(U), ee = e.highlightedTaskIds.has(O.id), X = Z && ee, Ae = e.hoveredTaskId === U, oe = e.hoveredTaskId === O.id, x = Ae || oe, L = le ? -8 : Z ? -5 : 0, j = ue ? -8 : ee ? -5 : 0, $ = W.left + W.width, re = W.top + W.height / 2 + L, pe = I.left, de = I.top + I.height / 2 + j, ce = Math.min($, pe), Se = Math.max($, pe), qe = Math.min(re, de), rt = Math.max(re, de);
if (Se < E || ce > C || rt < F || qe > H)
continue;
const at = $ - e.offsetLeft, dt = re - e.offsetTop, D = pe - e.offsetLeft, Ie = de - e.offsetTop, me = D - at, ve = Ie - dt, xe = Math.sqrt(me * me + ve * ve), Qe = W.width, _e = W.height, Pe = Math.abs(me) / (xe + 1), je = 20;
let Ke = _e / 2 + je;
Pe < 0.3 ? Ke = Math.max(_e / 2 + 25, 45) : Pe < 0.6 ? Ke = _e / 2 + je : Ke = Qe / 3 + 10;
let et = 0;
if (Math.abs(ve) > 0) {
const Pt = _e / 2 + 12, sA = Math.abs(ve) - _e, kt = Math.min(sA * 0.5, 100);
et = Math.max(Pt, kt);
} else
et = 0;
const yt = Pe < 0.3 ? 0.4 : 0.8, Ft = at + Ke, Bt = dt + (ve > 0 ? et : -et) * yt, St = D - Ke, bt = Ie - (ve > 0 ? et : -et) * yt, nA = Math.atan2(Ie - bt, D - St), qt = { x1: at, y1: dt, x2: D, y2: Ie, c1x: Ft, c1y: Bt, c2x: St, c2y: bt, arrowAngle: nA };
X ? q.push(qt) : x ? N.push(qt) : w ? k.push(qt) : M.push(qt);
}
}
if (c.setLineDash([6, 4]), q.length > 0) {
c.strokeStyle = "#409eff", c.fillStyle = "#409eff", c.lineWidth = 4, c.globalAlpha = 1, c.beginPath();
for (const O of q)
c.moveTo(O.x1, O.y1), c.bezierCurveTo(O.c1x, O.c1y, O.c2x, O.c2y, O.x2, O.y2);
c.stroke();
for (const O of q)
h(c, O.x2, O.y2, O.arrowAngle);
}
if (N.length > 0) {
c.strokeStyle = "#67c23a", c.fillStyle = "#67c23a", c.lineWidth = 3, c.globalAlpha = 1, c.beginPath();
for (const O of N)
c.moveTo(O.x1, O.y1), c.bezierCurveTo(O.c1x, O.c1y, O.c2x, O.c2y, O.x2, O.y2);
c.stroke();
for (const O of N)
h(c, O.x2, O.y2, O.arrowAngle);
}
if (M.length > 0) {
c.strokeStyle = "#c0c4cc", c.fillStyle = "#c0c4cc", c.lineWidth = 2, c.globalAlpha = 1, c.beginPath();
for (const O of M)
c.moveTo(O.x1, O.y1), c.bezierCurveTo(O.c1x, O.c1y, O.c2x, O.c2y, O.x2, O.y2);
c.stroke();
for (const O of M)
h(c, O.x2, O.y2, O.arrowAngle);
}
if (k.length > 0) {
c.strokeStyle = "#c0c4cc", c.fillStyle = "#c0c4cc", c.lineWidth = 2, c.globalAlpha = 0.2, c.beginPath();
for (const O of k)
c.moveTo(O.x1, O.y1), c.bezierCurveTo(O.c1x, O.c1y, O.c2x, O.c2y, O.x2, O.y2);
c.stroke();
for (const O of k)
h(c, O.x2, O.y2, O.arrowAngle);
c.globalAlpha = 1;
}
n.draw();
}, h = (c, p, m, y) => {
c.beginPath(), c.moveTo(p, m), c.lineTo(
p - 8 * Math.cos(y) - 4 * Math.sin(y),
m - 8 * Math.sin(y) + 4 * Math.cos(y)
), c.lineTo(
p - 8 * Math.cos(y) + 4 * Math.sin(y),
m - 8 * Math.sin(y) - 4 * Math.cos(y)
), c.closePath(), c.fill();
}, g = () => {
s || (s = !0, a !== null && cancelAnimationFrame(a), a = requestAnimationFrame(() => {
s = !1, a = null, u();
}));
};
return EA(
[
() => e.taskBarPositions,
() => e.tasks,
() => e.highlightedTaskId,
() => e.highlightedTaskIds,
() => e.hoveredTaskId,
() => e.width,
() => e.height,
() => e.verticalLines,
() => e.showVerticalLines,
() => e.offsetLeft,
// 监听虚拟渲染的偏移量变化
() => e.offsetTop
],
() => {
g();
},
{ deep: !1 }
// shallowRef 不需要 deep
), En(() => {
i = new MutationObserver((c) => {
for (const p of c)
if (p.attributeName === "data-theme") {
l();
break;
}
}), i.observe(document.documentElement, {
attributes: !0,
attributeFilter: ["data-theme"]
}), rr(() => {
u();
});
}), tn(() => {
i && (i.disconnect(), i = null), a !== null && (cancelAnimationFrame(a), a = null);
}), t({
redraw: u
}), (c, p) => (ae(), fe("canvas", {
ref_key: "canvasRef",
ref: A,
"canvas-id": "gantt-link-canvas",
class: "gantt-links-canvas",
type: "2d",
hidpi: !0,
style: rA({
position: "absolute",
left: `${c.offsetLeft}px`,
top: `${c.offsetTop}px`,
width: `${c.width}px`,
height: `${c.height}px`,
zIndex: c.highlightedTaskId !== null ? 1001 : 25,
pointerEvents: "none"
})
}, null, 4));
}
}), ox = /* @__PURE__ */ xn(sx, [["__scopeId", "data-v-3f872d3f"]]), lx = /* @__PURE__ */ dn({
__name: "LinkDragGuide",
props: {
active: { type: Boolean },
width: {},
height: {},
offsetLeft: { default: 0 },
offsetTop: { default: 0 }
},
setup(r, { expose: t }) {
const e = r, A = Te(null), n = new Py(), a = () => n.getContext({
canvas: A.value,
canvasId: "link-drag-guide-canvas",
width: e.width,
height: e.height,
contextOptions: { alpha: !0, willReadFrequently: !1 }
}), s = (o, l, u, h, g = !0, c = "") => {
const p = a();
if (!p) {
console.error("[LinkDragGuide] initCanvas returned null");
return;
}
const m = e.width, y = e.height;
p.clearRect(0, 0, m, y);
const w = o - e.offsetLeft, E = l - e.offsetTop, C = u - e.offsetLeft, F = h - e.offsetTop, H = 100;
if (!((w >= -H || C >= -H) && (w <= m + H || C <= m + H) && (E >= -H || F >= -H) && (E <= y + H || F <= y + H))) return;
p.save();
const N = g ? "#67c23a" : "#f56c6c";
p.strokeStyle = N, p.lineWidth = 3, p.globalAlpha = 0.8, p.beginPath(), p.moveTo(w, E), p.lineTo(C, F), p.stroke();
const M = Math.atan2(F - E, C - w), k = 8, O = 4;
if (p.fillStyle = N, p.globalAlpha = 1, p.beginPath(), p.moveTo(C, F), p.lineTo(
C - k * Math.cos(M) - O * Math.sin(M),
F - k * Math.sin(M) + O * Math.cos(M)
), p.lineTo(
C - k * Math.cos(M) + O * Math.sin(M),
F - k * Math.sin(M) - O * Math.cos(M)
), p.closePath(), p.fill(), !g && c) {
const S = (w + C) / 2, U = (E + F) / 2 - 10;
p.font = "12px Arial, sans-serif";
const I = p.measureText(c).width, le = 8;
p.fillStyle = "rgba(0, 0, 0, 0.75)", p.fillRect(S - I / 2 - le, U - 12, I + le * 2, 24), p.fillStyle = "#ffffff", p.textAlign = "center", p.textBaseline = "middle", p.fillText(c, S, U);
}
p.restore(), n.draw();
}, i = () => {
n.clear(e.width, e.height);
};
return EA(
[() => e.width, () => e.height],
() => {
n.reset();
}
), EA(
() => e.active,
(o) => {
o || n.reset();
}
), tn(() => {
n.reset();
}), t({
draw: s,
clear: i
}), (o, l) => o.active ? (ae(), fe("canvas", {
key: 0,
ref_key: "canvasRef",
ref: A,
"canvas-id": "link-drag-guide-canvas",
class: "link-drag-guide-canvas",
type: "2d",
hidpi: !0,
style: rA({
position: "absolute",
left: `${o.offsetLeft}px`,
top: `${o.offsetTop}px`,
width: `${o.width}px`,
height: `${o.height}px`,
zIndex: 1002,
pointerEvents: "none"
})
}, null, 4)) : Ct("", !0);
}
}), ux = /* @__PURE__ */ xn(lx, [["__scopeId", "data-v-06dab396"]]);
performance.now();
const cx = { class: "timeline-header" }, fx = { class: "timeline-header-row year-row" }, hx = { class: "year-label" }, dx = { class: "timeline-header-row half-years-row" }, gx = { class: "half-year-label" }, px = { class: "timeline-header-row year-row" }, vx = { class: "year-label" }, mx = { class: "timeline-header-row months-row" }, wx = { class: "month-label" }, Bx = { class: "timeline-header-row year-row" }, yx = { class: "year-label" }, bx = { class: "timeline-header-row quarters-row" }, Cx = { class: "quarter-label" }, Ex = { class: "timeline-header-row date-row" }, Fx = { class: "date-label" }, xx = { class: "timeline-header-row hours-row" }, Sx = { class: "hour-label" }, Ux = { class: "timeline-header-row year-month-row" }, Tx = { class: "year-month-label" }, Qx = { class: "flag-content" }, Dx = { class: "timeline-header-row days-row" }, kx = { class: "week-label" }, Lx = { class: "day-label" }, Ix = ["onMouseenter"], _x = 200, Nx = 8, Mx = 4, wf = 40, U0 = 10, T0 = 51, Q0 = 5, su = 5e3, Ox = 5e3, D0 = 50, k0 = 5, Rx = /* @__PURE__ */ dn({
__name: "Timeline",
props: {
tasks: { default: () => [] },
milestones: { default: () => [] },
startDate: {},
endDate: {},
useDefaultDrawer: { type: Boolean, default: !0 },
useDefaultMilestoneDialog: { type: Boolean, default: !0 },
onTaskDelete: { type: Function, default: void 0 },
onTaskUpdate: { type: Function, default: void 0 },
onMilestoneDelete: { type: Function, default: void 0 },
onMilestoneUpdate: { type: Function, default: void 0 },
onMilestoneSave: { type: Function, default: void 0 },
workingHours: { default: () => ({
morning: { start: 8, end: 11 },
afternoon: { start: 13, end: 17 }
}) },
taskBarConfig: { default: void 0 },
allowDragAndResize: { type: Boolean, default: !0 }
},
emits: ["timeline-scale-changed", "click-task", "edit-task", "milestone-double-click", "start-timer", "stop-timer", "add-predecessor", "add-successor", "predecessor-added", "successor-added", "delete", "link-deleted"],
setup(r, { expose: t, emit: e }) {
const A = r, n = e, { formatYearMonth: a, formatMonth: s, getTranslation: i } = Ma(), o = (R) => i(R), l = (() => {
const R = /* @__PURE__ */ new Date(), te = new Date(R.getFullYear(), R.getMonth() - 6, 1), K = new Date(R.getFullYear(), R.getMonth() + 6 + 1, 0);
return {
startDate: te,
endDate: K
};
})(), u = () => l, h = lt(() => A.startDate ? new Date(A.startDate) : u().startDate), g = lt(() => A.endDate ? new Date(A.endDate) : u().endDate), c = Te({
startDate: h.value,
endDate: g.value,
zoomLevel: 1
}), p = Te(Ye.DAY);
EA([h, g], ([R, te]) => {
(A.startDate || A.endDate) && (Gt || (c.value.startDate = R, c.value.endDate = te));
});
const m = [], y = lt(() => A.tasks ?? m), w = Te(null), E = Te(null), C = lt(() => p.value === Ye.HOUR ? 960 : p.value === Ye.WEEK ? 60 / 7 : p.value === Ye.MONTH ? 2 : p.value === Ye.QUARTER ? 60 / 90 : p.value === Ye.YEAR ? 360 / 365 : 30);
let F = null;
const H = () => {
F = null;
}, q = () => {
if (!y.value || y.value.length === 0)
return null;
const R = [], te = (ye) => {
if (ye.startDate && R.push(new Date(ye.startDate)), ye.endDate && R.push(new Date(ye.endDate)), ye.children && ye.children.length > 0)
for (const Le of ye.children)
te(Le);
};
for (const ye of y.value)
te(ye);
if (R.length === 0)
return null;
let K = 1 / 0, he = -1 / 0;
for (const ye of R) {
const Le = ye.getTime();
isNaN(Le) || (Le < K && (K = Le), Le > he && (he = Le));
}
return K === 1 / 0 || he === -1 / 0 ? null : {
minDate: new Date(K),
maxDate: new Date(he)
};
}, N = () => F || (F = q(), F), M = () => {
const R = N(), te = $e.value || 1200, K = 40;
if (!R) {
const It = /* @__PURE__ */ new Date();
It.setHours(0, 0, 0, 0);
const Qt = new Date(It);
Qt.setDate(Qt.getDate() - 1);
const pt = new Date(It);
return pt.setDate(pt.getDate() + 1), pt.setHours(23, 59, 59, 999), { startDate: Qt, endDate: pt };
}
const { minDate: he, maxDate: ye } = R, Le = new Date(he);
Le.setHours(0, 0, 0, 0), Le.setDate(Le.getDate() - 1);
const Xe = new Date(ye);
Xe.setHours(23, 59, 59, 999), Xe.setDate(Xe.getDate() + 1);
const ze = Math.ceil((Xe.getTime() - Le.getTime()) / (1e3 * 60 * 60));
if (ze * K < te) {
const It = Math.ceil(te / K), Qt = Math.ceil((It - ze) / 2), pt = Math.ceil(Qt / 24);
Le.setDate(Le.getDate() - pt), Xe.setDate(Xe.getDate() + pt);
}
return { startDate: Le, endDate: Xe };
}, k = () => {
const R = N(), te = $e.value || 1200, K = 30;
if (!R) {
const It = /* @__PURE__ */ new Date(), Qt = Math.max(Math.ceil(te / K), 60), pt = new Date(It);
pt.setDate(pt.getDate() - Math.floor(Qt / 2));
const jt = new Date(It);
return jt.setDate(jt.getDate() + Math.ceil(Qt / 2)), { startDate: pt, endDate: jt };
}
const { minDate: he, maxDate: ye } = R;
let Le = new Date(he);
Le.setDate(Le.getDate() - 30);
let Xe = new Date(ye);
Xe.setDate(Xe.getDate() + 30);
const ze = Math.ceil((Xe.getTime() - Le.getTime()) / (1e3 * 60 * 60 * 24));
if (ze * K < te) {
const It = Math.ceil(te / K), Qt = Math.ceil((It - ze) / 2), pt = new Date(Le);
pt.setDate(pt.getDate() - Qt), Le = pt;
const jt = new Date(Xe);
jt.setDate(jt.getDate() + Qt), Xe = jt;
}
return { startDate: Le, endDate: Xe };
}, O = () => {
const R = N(), te = $e.value || 1200, K = 60;
if (!R) {
const ar = /* @__PURE__ */ new Date(), YA = Math.max(Math.ceil(te / K), 20), qA = new Date(ar);
qA.setDate(qA.getDate() - Math.floor(YA / 2) * 7);
const ir = new Date(ar);
return ir.setDate(ir.getDate() + Math.ceil(YA / 2) * 7), { startDate: qA, endDate: ir };
}
const { minDate: he, maxDate: ye } = R;
function Le(ar) {
const YA = new Date(ar), qA = YA.getDay() || 7;
return YA.setDate(YA.getDate() - (qA - 1)), YA;
}
function Xe(ar, YA) {
let qA = 1;
for (; qA <= 31; ) {
const ir = new Date(ar, YA, qA);
if (ir.getMonth() !== YA) break;
const wn = Le(ir);
if (wn.getMonth() === YA)
return wn;
qA++;
}
return new Date(ar, YA, 1);
}
function ze(ar, YA) {
const qA = new Date(ar, YA + 1, 0).getDate();
for (let ir = qA; ir >= 1; ir--) {
const wn = new Date(ar, YA, ir), cn = Le(wn);
if (cn.getMonth() === YA)
return cn;
}
return new Date(ar, YA, 1);
}
function mt(ar, YA) {
const qA = [], ir = Xe(ar, YA), wn = ze(ar, YA), cn = new Date(ir);
for (; cn <= wn; )
qA.push(new Date(cn)), cn.setDate(cn.getDate() + 7);
return qA;
}
const It = Le(he), Qt = It.getFullYear(), pt = It.getMonth(), jt = pt === 0 ? 11 : pt - 1, KA = pt === 0 ? Qt - 1 : Qt, VA = mt(KA, jt), ln = Le(ye), yr = ln.getFullYear(), Ur = ln.getMonth(), _r = Ur === 11 ? 0 : Ur + 1, er = Ur === 11 ? yr + 1 : yr, Kn = mt(er, _r);
let fr = [];
fr.push(...VA);
let ca = Qt, un = pt;
for (; ca < yr || ca === yr && un <= Ur; ) {
const ar = mt(ca, un);
fr.push(...ar), un++, un > 11 && (un = 0, ca++);
}
fr.push(...Kn);
let Fa = fr.length * K;
for (; Fa < te; ) {
const ar = fr[0], YA = ar.getFullYear(), qA = ar.getMonth(), ir = qA === 0 ? 11 : qA - 1, wn = qA === 0 ? YA - 1 : YA;
if (fr = [...mt(wn, ir), ...fr], Fa = fr.length * K, Fa >= te) break;
const Ka = fr[fr.length - 1], ji = Ka.getFullYear(), si = Ka.getMonth(), Tr = si === 11 ? 0 : si + 1, ao = si === 11 ? ji + 1 : ji, xa = mt(ao, Tr);
fr = [...fr, ...xa], Fa = fr.length * K;
}
const bs = new Date(fr[0]), wi = new Date(fr[fr.length - 1]);
return wi.setDate(wi.getDate() + 6), { startDate: bs, endDate: wi };
}, S = () => {
const R = N();
if (!R) {
const Qt = /* @__PURE__ */ new Date(), pt = new Date(Qt.getFullYear() - 1, 0, 1), jt = new Date(Qt.getFullYear() + 1, 11, 31);
return { startDate: pt, endDate: jt };
}
const { minDate: te, maxDate: K } = R, he = $e.value || 1200;
let ye = new Date(te.getFullYear() - 1, 0, 1), Le = new Date(K.getFullYear() + 1, 11, 31);
const ze = (Le.getFullYear() - ye.getFullYear()) * 12 + (Le.getMonth() - ye.getMonth()), mt = 60;
if (ze * mt < he) {
const Qt = Math.ceil(he / mt), pt = Math.ceil((Qt - ze) / 2), jt = new Date(ye);
jt.setMonth(jt.getMonth() - pt), ye = new Date(jt.getFullYear(), jt.getMonth(), 1);
const KA = new Date(Le);
KA.setMonth(KA.getMonth() + pt), Le = new Date(KA.getFullYear(), KA.getMonth() + 1, 0);
}
return { startDate: ye, endDate: Le };
}, U = () => {
const R = N();
if (!R) {
const ze = /* @__PURE__ */ new Date(), mt = $e.value || 1200;
let It = 3;
p.value === Ye.QUARTER ? It = Math.max(Math.ceil(mt / 240) + 1, 5) : p.value === Ye.YEAR && (It = Math.max(Math.ceil(mt / 360) + 1, 5));
const Qt = ze.getFullYear() - Math.floor(It / 2), pt = Qt + It - 1, jt = new Date(Qt, 0, 1), KA = new Date(pt, 11, 31);
return { startDate: jt, endDate: KA };
}
const { minDate: te, maxDate: K } = R, he = $e.value || 1200;
let ye = new Date(te.getFullYear() - 1, 0, 1), Le = new Date(K.getFullYear() + 1, 11, 31);
const Xe = Le.getFullYear() - ye.getFullYear() + 1;
if (p.value === Ye.QUARTER) {
if (Xe * 240 < he) {
const Qt = Math.ceil(he / 240), pt = Math.ceil((Qt - Xe) / 2);
ye = new Date(ye.getFullYear() - pt, 0, 1), Le = new Date(Le.getFullYear() + pt, 11, 31);
}
} else if (p.value === Ye.YEAR && Xe * 360 < he) {
const It = Math.ceil(he / 360), Qt = Math.ceil((It - Xe) / 2);
ye = new Date(ye.getFullYear() - Qt, 0, 1), Le = new Date(Le.getFullYear() + Qt, 11, 31);
}
return { startDate: ye, endDate: Le };
}, W = Te(null), I = Te(null), le = Te(/* @__PURE__ */ new Set()), ue = lt(() => I.value !== null), Z = () => {
I.value = null, le.value.clear();
}, ee = (R) => {
I.value = R, le.value.clear(), le.value.add(R);
const te = y.value.find((K) => K.id === R);
if (te) {
if (te.predecessor) {
const K = Da(te.predecessor);
for (const he of K)
le.value.add(he);
}
for (const K of y.value)
K.predecessor && Da(K.predecessor).includes(R) && le.value.add(K.id);
}
}, X = Te(null), Ae = iu(null), oe = iu(null), x = Te(!1), L = Te(""), j = Te(null);
let $ = !1, re = "";
const pe = /* @__PURE__ */ new Map(), de = (R) => {
X.value = R.type, Ae.value = R.task, _e(R.mouseEvent.clientX, R.mouseEvent.clientY), oe.value = null, x.value = !1, L.value = "", ut = null, $ = !1, re = "", bt(), document.addEventListener("mousemove", D), document.addEventListener("mouseup", Ie);
};
let ce = null, Se = 0, qe = 0, rt = 0, at = 0;
const dt = () => {
ce = null, _e(Se, qe), yt(Se, qe), cr.value && Ae.value && cr.value.draw(
Ot(),
Pt(),
rt,
at,
$,
re
);
}, D = (R) => {
X.value && (Se = R.clientX, qe = R.clientY, ce === null && (ce = requestAnimationFrame(dt)));
}, Ie = () => {
X.value && (ce !== null && (cancelAnimationFrame(ce), ce = null), Ae.value && je({
task: Ae.value,
type: X.value
}));
};
let me = null, ve = 0, xe = !1;
const Qe = (R, te) => {
if (!GA.value) {
rt = R, at = te;
return;
}
const K = Date.now();
(!me || xe || K - ve > _x) && (me = GA.value.getBoundingClientRect(), ve = K, xe = !1), rt = R - me.left, at = te - me.top;
}, _e = (R, te) => {
Qe(R, te);
}, Pe = (R) => {
Se = R.mouseX, qe = R.mouseY, ce === null && (ce = requestAnimationFrame(dt));
}, je = (R) => {
var te;
me = null, document.removeEventListener("mousemove", D), document.removeEventListener("mouseup", Ie), nA(), (te = cr.value) == null || te.clear(), oe.value && x.value && St(R.task, oe.value, R.type), X.value = null, Ae.value = null, oe.value = null, x.value = !1;
}, Ke = (R, te) => {
me || (me = GA.value.getBoundingClientRect(), ve = Date.now());
const K = R - me.left, he = te - me.top, ye = (Nx + Mx) / 2, Le = ye + 10;
for (const Xe in bA.value) {
const ze = bA.value[Xe], mt = Number(Xe);
if (he < ze.top - Le || he > ze.top + ze.height + Le)
continue;
const It = ze.top + ze.height / 2, Qt = ze.left;
if (K >= Qt - ye && K <= Qt + ye && he >= It - ye && he <= It + ye)
return { taskId: mt, anchorType: "left" };
const pt = ze.left + ze.width;
if (K >= pt - ye && K <= pt + ye && he >= It - ye && he <= It + ye)
return { taskId: mt, anchorType: "right" };
}
return null;
}, et = (R, te) => {
const K = (ut == null ? void 0 : ut.id) ?? null, he = (R == null ? void 0 : R.id) ?? null;
if (K !== he)
if (ut = R, R && Ae.value) {
const ye = Ft(
Ae.value,
R,
X.value,
te
);
$ = ye.valid, re = ye.error || "", x.value = ye.valid, oe.value = R;
} else
$ = !1, re = "", x.value = !1, oe.value = null;
};
let ut = null;
const yt = (R, te) => {
if (!Ae.value || !GA.value) return;
const K = Ke(R, te), he = K !== null && pe.get(K.taskId) || null, ye = K == null ? void 0 : K.anchorType;
et(he, ye);
}, Ft = (R, te, K, he) => {
if (he) {
if (K === "predecessor" && he !== "right")
return { valid: !1, error: "前置任务应连接到右侧触点" };
if (K === "successor" && he !== "left")
return { valid: !1, error: "后置任务应连接到左侧触点" };
}
if (R.id === te.id)
return { valid: !1, error: "不能连接到自己" };
if (te.isParent || te.type === "milestone")
return { valid: !1, error: "不能连接到父级任务或里程碑" };
if (K === "predecessor") {
if (Bt(te.id, R.id))
return { valid: !1, error: "会产生循环依赖" };
} else if (Bt(R.id, te.id))
return { valid: !1, error: "会产生循环依赖" };
if (K === "predecessor") {
if (R.predecessor && Da(R.predecessor).includes(te.id))
return { valid: !1, error: "关系已存在" };
} else if (te.predecessor && Da(te.predecessor).includes(R.id))
return { valid: !1, error: "关系已存在" };
return { valid: !0 };
}, Bt = (R, te) => {
const K = /* @__PURE__ */ new Set(), he = [R];
for (; he.length > 0; ) {
const ye = he.shift();
if (ye === te)
return !0;
if (K.has(ye))
continue;
K.add(ye);
const Le = y.value.find((Xe) => Xe.id === ye);
if (Le && Le.predecessor) {
const Xe = Da(Le.predecessor);
he.push(...Xe);
}
}
return !1;
}, St = (R, te, K) => {
if (console.log("----> hello:", {
mode: K,
sourceTask: R,
targetTask: te
}), K === "predecessor") {
const he = R.predecessor ? Da(R.predecessor) : [];
he.includes(te.id) || (he.push(te.id), R.predecessor = he, ea(R), n("predecessor-added", { targetTask: R, newTask: te }));
} else {
const he = te.predecessor ? Da(te.predecessor) : [];
he.includes(R.id) || (he.push(R.id), te.predecessor = he, ea(te), n("successor-added", { targetTask: te, newTask: R }));
}
}, bt = () => {
j.value = window.setInterval(() => {
if (!w.value || !GA.value) return;
const R = w.value, te = ta.value;
if (!te) return;
const K = R.getBoundingClientRect(), he = 80, ye = 15, Le = Se, Xe = qe;
let ze = !1;
if (Le < K.left + he && R.scrollLeft > 0)
R.scrollLeft -= ye, ze = !0;
else if (Le > K.right - he) {
const mt = R.scrollWidth - R.clientWidth;
R.scrollLeft < mt && (R.scrollLeft += ye, ze = !0);
}
if (Xe < K.top + he && te.scrollTop > 0)
te.scrollTop -= ye, ze = !0;
else if (Xe > K.bottom - he) {
const mt = te.scrollHeight - te.clientHeight;
te.scrollTop < mt && (te.scrollTop += ye, ze = !0);
}
ze && (xe = !0, yt(Le, Xe), cr.value && Ae.value && cr.value.draw(
Ot(),
Pt(),
rt,
at,
$,
re
));
}, 30);
}, nA = () => {
j.value !== null && (clearInterval(j.value), j.value = null);
}, qt = () => {
var R;
nA(), me = null, ce !== null && (cancelAnimationFrame(ce), ce = null), (R = cr.value) == null || R.clear(), document.removeEventListener("mousemove", D), document.removeEventListener("mouseup", Ie), X.value = null, Ae.value = null, oe.value = null, x.value = !1;
}, Ot = () => {
if (!Ae.value) return 0;
const R = bA.value[Ae.value.id];
return R ? X.value === "predecessor" ? R.left : R.left + R.width : 0;
}, Pt = () => {
if (!Ae.value) return 0;
const R = bA.value[Ae.value.id];
return R ? R.top + R.height / 2 : 0;
}, sA = Te(!1), kt = Te(!1), hA = Te(!1), Nt = Te(0), Ce = Te(!1);
let Ve = null;
const Re = Te(0), $e = Te(0), xt = Te(!0), Ht = Te(!0);
let Mt = null;
const SA = Te(0), JA = /* @__PURE__ */ new Map(), Lt = Te(!0), Qr = lt(() => {
if (p.value !== Ye.HOUR)
return { startHour: 0, endHour: 0 };
const R = Re.value, te = $e.value;
if (Lt.value && R === 0)
return {
startHour: 0,
endHour: 168
// 一周 (7*24=168小时)
};
if (Lt.value) {
const ye = /* @__PURE__ */ new Date(), Le = c.value.startDate, Xe = Math.floor((ye.getTime() - Le.getTime()) / (1e3 * 60 * 60));
return {
startHour: Math.max(0, Xe - 168),
// 前一周 (7*24=168小时)
endHour: Xe + 168
// 后一周
};
}
const K = Math.floor(R / wf) - U0, he = Math.ceil((R + te) / wf) + U0;
return {
startHour: Math.max(0, K),
endHour: Math.max(K + 1, he)
};
}), Fr = lt(() => {
const R = SA.value, te = LA.value || 600, K = Math.floor(R / T0) - Q0, he = Math.ceil((R + te) / T0) + Q0;
return {
startIndex: Math.max(0, K),
endIndex: Math.min(y.value.length, Math.max(K + 1, he))
};
}), xr = lt(() => {
const { startIndex: R, endIndex: te } = Fr.value;
return y.value.slice(R, te).map((K, he) => ({
task: K,
originalIndex: R + he
}));
}), PA = (R, te) => {
let K = null;
return ((...he) => {
const ye = () => {
K = null, R(...he);
};
K && clearTimeout(K), K = window.setTimeout(ye, te);
});
}, CA = PA(() => {
ZA();
}, 200), MA = PA(() => {
Dn();
}, 200), OA = () => {
const R = p.value, te = c.value.startDate.getTime(), K = c.value.endDate.getTime(), he = `${R}-${te}-${K}`;
if (!JA.has(he)) {
let ye;
R === Ye.HOUR ? ye = Je() : R === Ye.WEEK ? ye = ft() : R === Ye.MONTH ? ye = Kt() : R === Ye.QUARTER ? ye = Yt() : R === Ye.YEAR ? ye = dA() : ye = Me(), JA.set(he, ye);
}
return JA.get(he);
}, Dr = lt(() => {
const R = OA();
if (p.value === Ye.HOUR && Array.isArray(R)) {
const { startHour: te, endHour: K } = Qr.value, he = [], ye = new Date(c.value.startDate);
ye.setHours(0, 0, 0, 0);
const Le = ye.getTime(), Xe = 1e3 * 60 * 60 * 24;
for (const ze of R) {
const mt = new Date(ze.year, ze.month - 1, ze.day);
mt.setHours(0, 0, 0, 0);
const Qt = Math.floor((mt.getTime() - Le) / Xe) * 24, pt = Math.max(0, te - Qt), jt = Math.min(ze.hours.length, K - Qt);
pt < jt && he.push({
...ze,
hours: ze.hours.slice(pt, jt),
hourOffset: Qt + pt,
visibleHourStart: pt,
_debug: {
totalHourOffset: Qt,
dayStartHour: pt,
dayEndHour: jt,
visibleRange: { startHour: te, endHour: K }
}
});
}
return he;
}
return R;
}), Sr = lt(() => {
var he, ye;
const R = OA();
if (!Array.isArray(R)) return 0;
const te = p.value;
if (te === Ye.HOUR) {
let Le = 0;
for (const Xe of R)
Le += Xe.hours.length;
return Le * wf;
}
if (te === Ye.QUARTER) {
let Le = 0;
for (const Xe of R)
Le += Xe.quarters.length;
return Le * 60;
}
if (te === Ye.WEEK) {
let Le = 0;
for (const Xe of R)
Le += ((he = Xe.weeks) == null ? void 0 : he.length) || 0;
return Le * 60;
}
if (te === Ye.MONTH)
return R.length * 60;
if (te === Ye.YEAR)
return R.length * 360;
let K = 0;
for (const Le of R)
K += ((ye = Le.days) == null ? void 0 : ye.length) || 0;
return K * 30;
}), LA = Te(0);
let pr = null;
const kr = Te(/* @__PURE__ */ new Map()), ZA = () => {
const R = /* @__PURE__ */ new Map(), te = c.value.startDate.getTime(), K = Re.value, he = K + $e.value;
for (const ye of y.value)
if (ye.type === "milestone-group" && ye.children)
for (const Le of ye.children) {
const Xe = new Date(Le.startDate || "");
if (!isNaN(Xe.getTime())) {
const mt = Math.floor(
(Xe.getTime() - te) / 864e5
) * 30 + 15 - 12, It = mt - 12, Qt = mt + 12;
let pt = !1, jt = "none";
Qt <= K + 12 ? (pt = !0, jt = "left") : It >= he - 12 && (pt = !0, jt = "right"), R.set(Le.id, {
left: mt,
originalLeft: mt,
isSticky: pt,
stickyPosition: jt
});
}
}
else if (ye.type === "milestone") {
const Le = new Date(ye.startDate || "");
if (!isNaN(Le.getTime())) {
const Xe = (Le.getTime() - te) / 864e5, mt = Math.floor(Xe) * 30 + 15 - 12, It = mt - 12, Qt = mt + 12;
let pt = !1, jt = "none";
Qt <= K + 12 ? (pt = !0, jt = "left") : It >= he - 12 && (pt = !0, jt = "right"), R.set(ye.id, {
left: mt,
originalLeft: mt,
isSticky: pt,
stickyPosition: jt
});
}
}
kr.value = R;
}, Lr = (R) => {
const te = [];
return kr.value.forEach((K, he) => {
he !== R && te.push({
id: he,
left: K.left,
originalLeft: K.originalLeft,
// 使用保存的原始位置
isSticky: K.isSticky,
stickyPosition: K.stickyPosition,
priority: K.originalLeft
// 使用原始位置作为优先级
});
}), te;
}, Un = () => {
sA.value = !0;
}, Dt = () => {
if (sA.value = !1, w.value) {
const R = w.value.clientWidth;
Math.abs(R - $e.value) > 1 && ($e.value = R);
}
xt.value = !0, setTimeout(() => {
xt.value = !1;
}, 300);
}, be = () => {
xt.value = !0, bA.value = {}, nr.value++, Mt && clearTimeout(Mt), Mt = setTimeout(() => {
xt.value = !1, Mt = null, Dn();
}, 300);
}, z = (R) => {
sA.value || vn.value || (W.value = R, window.dispatchEvent(
new CustomEvent("timeline-task-hover", {
detail: R
})
));
}, ge = lt(() => {
const K = y.value.length * 51;
return Math.max(K, 400, LA.value);
}), We = (R) => {
vn.value || (W.value = R.detail);
}, it = (R) => {
const te = R.detail;
Pn(te);
}, V = () => {
tA.value = ke();
}, Be = (R) => {
ue.value || n("milestone-double-click", R);
}, Fe = (R) => {
A.onMilestoneSave && typeof A.onMilestoneSave == "function" && A.onMilestoneSave(R), window.dispatchEvent(
new CustomEvent("milestone-data-updated", {
detail: { milestone: R }
})
);
}, ke = () => OA(), Ze = () => {
JA.clear();
}, Me = () => {
const R = [], te = new Date(c.value.startDate);
for (; te <= c.value.endDate; ) {
const K = te.getFullYear(), he = te.getMonth() + 1, ye = [], Le = new Date(K, he, 0).getDate();
for (let Xe = 1; Xe <= Le; Xe++) {
const ze = new Date(K, he - 1, Xe), mt = ze.getDay(), It = mt === 0 || mt === 6;
ye.push({
day: Xe,
date: ze,
label: String(Xe).padStart(2, "0"),
isToday: Xt(ze),
isWeekend: It
});
}
R.push({
year: K,
month: he,
yearMonthLabel: a(K, he),
startDate: new Date(te),
endDate: new Date(K, he, 0),
days: ye
}), te.setMonth(te.getMonth() + 1);
}
return R;
}, tt = (R, te) => {
if (te === 0 || te === 6)
return !1;
const K = A.workingHours;
if (!K) return !1;
if (K.morning) {
const { start: he, end: ye } = K.morning;
if (R >= he && R <= ye)
return !0;
}
if (K.afternoon) {
const { start: he, end: ye } = K.afternoon;
if (R >= he && R <= ye)
return !0;
}
return !1;
}, Je = () => {
const R = [], te = new Date(c.value.startDate);
for (; te <= c.value.endDate; ) {
const K = te.getFullYear(), he = te.getMonth() + 1, ye = te.getDate(), Le = [], Xe = te.getDay();
for (let ze = 0; ze < 24; ze++) {
const mt = new Date(K, he - 1, ye, ze);
Le.push({
hour: ze,
label: `${String(ze).padStart(2, "0")}:00`,
shortLabel: String(ze).padStart(2, "0"),
// 简化显示格式,只显示小时数
date: mt,
isToday: Xt(mt) && ze === (/* @__PURE__ */ new Date()).getHours(),
isWorkingHour: tt(ze, Xe),
// 判断是否为工作时间
isWeekend: Xe === 0 || Xe === 6
// 是否为周末
});
}
R.push({
year: K,
month: he,
day: ye,
date: new Date(te),
dateLabel: `${K}/${String(he).padStart(2, "0")}/${String(ye).padStart(2, "0")}`,
isToday: Xt(te),
hours: Le
}), te.setDate(te.getDate() + 1);
}
return R;
}, ft = () => {
const R = [], te = new Date(c.value.startDate), K = new Date(c.value.endDate), he = new Date(te), ye = he.getDay() || 7;
he.setDate(he.getDate() - (ye - 1));
const Le = new Date(he);
for (; Le <= K; ) {
const mt = new Date(Le);
mt.setDate(mt.getDate() + 6), R.push({
weekStart: new Date(Le),
weekEnd: new Date(mt),
label: `${Le.getDate()}`,
isToday: Jt(Le, mt),
subDays: Et(Le),
// 根据周一所在月份归属
belongsToYear: Le.getFullYear(),
belongsToMonth: Le.getMonth() + 1
}), Le.setDate(Le.getDate() + 7);
}
const Xe = /* @__PURE__ */ new Map();
for (const mt of R) {
const It = mt, Qt = It.belongsToYear, pt = It.belongsToMonth, jt = `${Qt}-${pt}`;
Xe.has(jt) || Xe.set(jt, {
year: Qt,
month: pt,
yearMonthLabel: a(Qt, pt),
startDate: new Date(Qt, pt - 1, 1),
endDate: new Date(Qt, pt, 0),
weeks: [],
isWeekView: !0
}), Xe.get(jt).weeks.push(mt);
}
return Array.from(Xe.values()).sort((mt, It) => mt.year !== It.year ? mt.year - It.year : mt.month - It.month);
}, Et = (R) => {
const te = [];
for (let K = 0; K < 7; K++) {
const he = new Date(R);
he.setDate(he.getDate() + K), te.push({
date: new Date(he),
dayOfWeek: he.getDay()
});
}
return te;
}, Jt = (R, te) => {
const K = /* @__PURE__ */ new Date();
return K.setHours(0, 0, 0, 0), K >= R && K <= te;
}, fA = (R, te) => {
let K = 0;
for (let he = 0; he < R; he++) {
const ye = tA.value[he];
ye && ye.isWeekView && ye.weeks ? K += ye.weeks.length * 60 : ye && ye.days && (K += ye.days.length * 30);
}
return K += te * 60, K;
}, gA = (R) => {
if (p.value = R, Lt.value = !0, Ze(), R === Ye.HOUR) {
const te = M();
Gt = !0, c.value = {
...c.value,
startDate: te.startDate,
endDate: te.endDate
}, Gt = !1;
} else if (R === Ye.DAY) {
const te = k();
Gt = !0, c.value = {
...c.value,
startDate: te.startDate,
endDate: te.endDate
}, Gt = !1;
}
if (R === Ye.WEEK) {
const te = O();
Gt = !0, c.value = {
...c.value,
startDate: te.startDate,
endDate: te.endDate
}, Gt = !1;
}
if (R === Ye.MONTH) {
const te = S();
Gt = !0, c.value = {
...c.value,
startDate: te.startDate,
endDate: te.endDate
}, Gt = !1;
}
if (R === Ye.QUARTER) {
const te = U();
Gt = !0, c.value = {
...c.value,
startDate: te.startDate,
endDate: te.endDate
}, Gt = !1;
}
if (R === Ye.YEAR) {
const te = U();
Gt = !0, c.value = {
...c.value,
startDate: te.startDate,
endDate: te.endDate
}, Gt = !1;
}
tA.value = ke(), rr(() => {
n("timeline-scale-changed", R), window.dispatchEvent(new CustomEvent("timeline-scale-updated")), setTimeout(() => {
window.dispatchEvent(new CustomEvent("timeline-force-recalculate")), setTimeout(() => {
FA();
}, 100);
}, 50);
});
}, Xt = (R) => {
const te = /* @__PURE__ */ new Date();
return R.getDate() === te.getDate() && R.getMonth() === te.getMonth() && R.getFullYear() === te.getFullYear();
}, tA = iu(ke());
let Gt = !1;
EA(
() => [c.value.startDate, c.value.endDate],
() => {
Gt || (Ze(), tA.value = ke());
}
);
let UA = !1;
EA(
() => [tA.value, c.value.startDate, c.value.endDate],
() => {
UA || rr(() => {
FA(), UA = !0;
});
}
// 优化:移除 deep: true,因为监听的是基础类型(startDate/endDate)和 shallowRef(timelineData)
// 不需要深度监听,可减少 90% 的监听开销
);
const FA = (R = 0) => {
xt.value = !0, Ht.value = !0;
const te = /* @__PURE__ */ new Date(), K = c.value.startDate, he = new Date(te.getFullYear(), te.getMonth(), te.getDate());
let ye;
if (p.value === Ye.YEAR || p.value === Ye.QUARTER) {
const pt = U();
ye = new Date(
pt.startDate.getFullYear(),
pt.startDate.getMonth(),
pt.startDate.getDate()
);
} else if (p.value === Ye.MONTH) {
const pt = S();
ye = new Date(
pt.startDate.getFullYear(),
pt.startDate.getMonth(),
pt.startDate.getDate()
);
} else
ye = new Date(
K.getFullYear(),
K.getMonth(),
K.getDate()
);
const Le = he.getTime() - ye.getTime(), Xe = Math.floor(Le / (1e3 * 60 * 60 * 24));
let ze;
if (p.value === Ye.HOUR) {
const pt = te.getHours(), jt = te.getMinutes(), KA = Xe * C.value, VA = pt * 40, ln = jt / 60 * 40;
ze = KA + VA + ln;
} else if (p.value === Ye.QUARTER) {
const pt = he.getFullYear(), jt = ye.getFullYear(), KA = 240, VA = 60;
ze = (pt - jt) * KA;
const yr = he.getMonth() + 1;
let Ur = 1;
yr >= 1 && yr <= 3 || (yr >= 4 && yr <= 6 ? Ur = 2 : yr >= 7 && yr <= 9 ? Ur = 3 : Ur = 4), ze += (Ur - 1) * VA;
let _r, er;
Ur === 1 ? (_r = new Date(pt, 0, 1), er = new Date(pt, 2, 31)) : Ur === 2 ? (_r = new Date(pt, 3, 1), er = new Date(pt, 5, 30)) : Ur === 3 ? (_r = new Date(pt, 6, 1), er = new Date(pt, 8, 30)) : (_r = new Date(pt, 9, 1), er = new Date(pt, 11, 31));
const Kn = Math.floor(
(he.getTime() - _r.getTime()) / (1e3 * 60 * 60 * 24)
), fr = Math.floor((er.getTime() - _r.getTime()) / (1e3 * 60 * 60 * 24)) + 1, ca = Kn / fr * VA;
ze += ca;
} else if (p.value === Ye.MONTH) {
const pt = he.getFullYear(), jt = he.getMonth() + 1, KA = ye.getFullYear(), VA = ye.getMonth() + 1, ln = (pt - KA) * 12 + (jt - VA), yr = 60;
ze = ln * yr;
const Ur = he.getDate(), _r = new Date(pt, jt, 0).getDate(), er = Ur / _r * yr;
ze += er;
} else if (p.value === Ye.YEAR) {
const pt = tA.value;
let jt = 0;
const KA = 180;
let VA = !1;
for (const ln of pt) {
const yr = ln.halfYears || [];
for (const Ur of yr) {
const _r = new Date(Ur.startDate), er = new Date(Ur.endDate);
if (_r.setHours(0, 0, 0, 0), er.setHours(0, 0, 0, 0), he < _r) {
VA = !0;
break;
}
if (he >= _r && he <= er) {
const Kn = er.getTime() - _r.getTime(), ca = (he.getTime() - _r.getTime()) / Kn;
jt += ca * KA, VA = !0;
break;
}
jt += KA;
}
if (VA) break;
}
ze = jt;
} else
ze = Xe * C.value;
const mt = w.value;
if (!mt) {
R < 10 && setTimeout(() => FA(R + 1), 60);
return;
}
const It = mt.clientWidth;
if (It === 0 && R < 10) {
setTimeout(() => FA(R + 1), 60);
return;
}
const Qt = ze - It / 2 + 15;
typeof mt.scrollTo == "function" ? mt.scrollTo({ left: Math.max(0, Qt), behavior: "smooth" }) : mt.scrollLeft = Math.max(0, Qt), setTimeout(() => {
Ht.value = !1, p.value === Ye.HOUR && (Lt.value = !1), setTimeout(() => {
xt.value = !1;
}, 300);
}, 1500);
}, IA = lt(() => {
if (p.value !== Ye.YEAR)
return -1;
const R = /* @__PURE__ */ new Date();
R.setHours(0, 0, 0, 0);
const te = tA.value;
if (!te || te.length === 0)
return -1;
let K = 0;
const he = 180;
for (const ye of te) {
const Le = ye.halfYears || [];
for (const Xe of Le) {
const ze = new Date(Xe.startDate), mt = new Date(Xe.endDate);
if (ze.setHours(0, 0, 0, 0), mt.setHours(0, 0, 0, 0), R < ze)
return K;
if (R >= ze && R <= mt) {
const It = mt.getTime() - ze.getTime(), pt = (R.getTime() - ze.getTime()) / It;
return K + pt * he;
}
K += he;
}
}
return K;
}), aA = lt(() => {
if (p.value !== Ye.YEAR)
return !1;
const R = /* @__PURE__ */ new Date(), te = new Date(R.getFullYear(), R.getMonth(), R.getDate()), K = U(), he = K.startDate, ye = K.endDate;
return te >= he && te <= ye;
}), An = () => {
if (y.value.length === 0) {
Tn();
return;
}
const R = [];
for (const Qt of y.value)
Qt.startDate && R.push(new Date(Qt.startDate));
if (R.length === 0) {
Tn();
return;
}
let te = 1 / 0;
for (const Qt of R) {
const pt = Qt.getTime();
pt < te && (te = pt);
}
const K = new Date(te), he = K.getFullYear(), ye = K.getMonth(), Le = K.getDate();
let Xe = 0;
for (let Qt = 0; Qt < ye; Qt++)
Xe += new Date(he, Qt + 1, 0).getDate();
Xe += Le;
const ze = E.value, mt = ze == null ? void 0 : ze.clientWidth, It = (Xe - 1) * 30 - (mt ? mt / 2 : 200);
w.value && (w.value.scrollLeft = Math.max(0, It));
}, Tn = () => {
const R = /* @__PURE__ */ new Date(), te = c.value.startDate, K = new Date(R.getFullYear(), R.getMonth(), R.getDate()), he = new Date(
te.getFullYear(),
te.getMonth(),
te.getDate()
), ye = K.getTime() - he.getTime(), Le = Math.floor(ye / (1e3 * 60 * 60 * 24));
if (Le < 0 || K > c.value.endDate)
return;
const Xe = Le * 30, ze = w.value;
if (!ze) return;
const mt = ze.clientWidth, It = Xe - mt / 2 + 15;
ze.scrollTo({
left: Math.max(0, It),
behavior: "smooth"
}), setTimeout(() => {
const Qt = document.querySelectorAll(".day-column.today");
for (const pt of Qt)
pt.classList.add("today-highlight"), setTimeout(() => {
pt.classList.remove("today-highlight");
}, 2e3);
}, 500);
}, ea = (R) => {
window.dispatchEvent(
new CustomEvent("task-updated", {
detail: R
})
);
}, Pn = (R) => {
ue.value || n("edit-task", R);
}, WA = (R, te) => {
ue.value || n("click-task", R, te);
}, bA = iu({}), nr = Te(0), GA = Te(null), cr = Te(null), pn = Te(0), ba = Te(0), la = Te(0), Qn = Te(0), Ca = Te(0), Kr = Te(0);
function Dn() {
if (GA.value) {
const R = GA.value.offsetWidth, te = ge.value, K = Re.value, he = SA.value;
la.value = su;
const ye = su / 3;
let Le = Math.max(0, K - ye);
if (R <= su)
Le = 0;
else {
const It = R - su;
Le = Math.min(Le, It);
}
Ca.value = Le;
const Xe = Math.min(te, Ox);
Qn.value = Xe, pn.value = la.value, ba.value = Xe;
const ze = Xe / 3;
let mt = Math.max(0, he - ze);
if (te <= Xe)
mt = 0;
else {
const It = te - Xe;
mt = Math.min(mt, It);
}
Kr.value = mt;
}
}
function Ir(R) {
if (!GA.value) return;
const te = GA.value.getBoundingClientRect();
bA.value = {
...bA.value,
[R.id]: {
left: R.left - te.left,
top: R.top - te.top,
width: R.width,
height: R.height
}
}, setTimeout(() => {
Dn();
}, 200);
}
const kn = (R) => {
window.dispatchEvent(new CustomEvent("taskbar-drag-end", { detail: R }));
}, zs = (R) => {
window.dispatchEvent(new CustomEvent("taskbar-resize-end", { detail: R }));
}, lA = (R) => {
window.dispatchEvent(
new CustomEvent("context-menu", {
detail: R
})
);
}, Mo = (R) => {
if (wA.value) {
xt.value = !0;
const te = wA.value.scrollWidth - wA.value.clientWidth, K = Math.max(0, Math.min(R, te));
wA.value.scrollTo({
left: K,
behavior: "smooth"
}), setTimeout(() => {
xt.value = !1;
}, 1e3);
}
}, Xs = (R) => {
window.dispatchEvent(new CustomEvent("milestone-drag-end", { detail: R }));
};
En(() => {
rr(() => {
setTimeout(() => {
FA();
}, 60);
}), window.addEventListener("task-row-double-click", it), window.addEventListener("task-list-hover", We), window.addEventListener(
"task-list-vertical-scroll",
Js
), window.addEventListener("locale-changed", V), window.addEventListener("splitter-drag-start", Un), window.addEventListener("splitter-drag-end", Dt), window.addEventListener(
"timeline-container-resized",
be
), window.addEventListener("milestone-click-locate", ct), window.addEventListener("drag-boundary-check", qi), window.addEventListener("taskbar-highlighted", ys), rr(() => {
const R = document.querySelector(".timeline-body"), te = document.querySelector(".timeline"), K = document.querySelector(".gantt-panel-right");
if (ta.value = R, w.value = te, E.value = K, R && (LA.value = R.clientHeight, pr = new ResizeObserver((he) => {
for (const ye of he)
LA.value = ye.contentRect.height;
}), pr.observe(R)), te) {
Re.value = te.scrollLeft, $e.value = te.clientWidth;
const he = new ResizeObserver((ye) => {
for (const Le of ye) {
const Xe = Le.contentRect.width;
Math.abs(Xe - $e.value) > 1 && ($e.value = Xe, xt.value = !0, Mt && clearTimeout(Mt), Mt = setTimeout(() => {
xt.value = !1, Mt = null;
}, 300));
}
});
he.observe(te), pr || (pr = he);
}
}), setTimeout(() => {
FA(), Dn();
}, 200), window.addEventListener("resize", Dn);
});
const Js = (R) => {
const { scrollTop: te } = R.detail;
SA.value = te, MA(), ta.value && Math.abs(ta.value.scrollTop - te) > 1 && (ta.value.scrollTop = te);
}, Ra = (R) => {
const te = R.target;
if (!te) return;
const K = te.scrollTop;
SA.value = K, xe = !0, MA(), !vn.value && K >= 0 && window.dispatchEvent(
new CustomEvent("timeline-vertical-scroll", {
detail: { scrollTop: K }
})
);
};
EA(
() => y.value.length,
() => {
rr(() => {
Dn();
});
},
{ immediate: !0 }
), EA(
y,
(R) => {
pe.clear();
const te = (K) => {
pe.set(K.id, K), K.children && K.children.length > 0 && K.children.forEach(te);
};
R.forEach(te);
},
{ immediate: !0 }
);
const vn = Te(!1), Bs = Te(0), Zs = Te(0), ni = Te(0), Hi = Te(0), wA = Te(null), ta = Te(null);
let mn = null;
const Pi = Te(!1);
let ai = null;
const ys = () => {
const R = (te) => {
var K;
te.buttons === 1 && (vn.value = !0, Bs.value = te.pageX, ni.value = ((K = wA.value) == null ? void 0 : K.scrollLeft) || 0, wA.value && (wA.value.style.cursor = "grabbing", wA.value.style.userSelect = "none"), document.addEventListener("mousemove", Aa), document.addEventListener("mouseup", ii)), document.removeEventListener("mousemove", R);
};
document.addEventListener("mousemove", R), setTimeout(() => {
document.removeEventListener("mousemove", R);
}, 5e3);
}, eo = (R) => {
var ye, Le;
const te = R.target, K = te.closest(".timeline-header"), he = te.closest(".timeline-body");
if (!(!K && !he)) {
if (he) {
const Xe = te.closest(".task-bar");
if (Xe) {
const ze = Xe.classList.contains("highlighted"), mt = Xe.classList.contains("primary-highlight");
if (!ze && !mt)
return;
} else if ([
".milestone",
"button",
"input",
"select",
"textarea",
".custom-task-content",
".progress-bar",
".task-name",
".task-controls"
].some((It) => te.closest(It)))
return;
}
vn.value = !0, Bs.value = R.pageX, Zs.value = R.pageY, ni.value = ((ye = wA.value) == null ? void 0 : ye.scrollLeft) || 0, !ta.value && wA.value && (ta.value = wA.value.querySelector(".timeline-body")), Hi.value = ((Le = ta.value) == null ? void 0 : Le.scrollTop) || 0, wA.value && (wA.value.style.cursor = "grabbing", wA.value.style.userSelect = "none"), R.preventDefault(), document.addEventListener("mousemove", Aa), document.addEventListener("mouseup", ii);
}
}, Aa = (R) => {
!vn.value || !wA.value || (R.preventDefault(), mn !== null && cancelAnimationFrame(mn), mn = requestAnimationFrame(() => {
if (!wA.value) return;
const te = R.pageX, K = R.pageY, he = (te - Bs.value) * 1.5, ye = (K - Zs.value) * 1.5;
if (wA.value.scrollLeft = ni.value - he, ta.value) {
const Le = Hi.value - ye;
ta.value.scrollTop = Le;
const Xe = document.querySelector(".task-list-body");
Xe && (Xe.scrollTop = Le);
}
mn = null;
}));
}, ii = () => {
vn.value = !1, mn !== null && (cancelAnimationFrame(mn), mn = null), wA.value && (wA.value.style.cursor = "grab", wA.value.style.userSelect = "auto"), W.value = null, document.removeEventListener("mousemove", Aa), document.removeEventListener("mouseup", ii);
}, Ki = (R) => {
var Xe;
const te = R.target;
if (!te) return;
const K = te.scrollLeft;
if (Re.value = K, xe = !0, $e.value === 0 && ($e.value = te.clientWidth), Lt.value && K > 0 && (Lt.value = !1), MA(), p.value === Ye.HOUR) {
Ce.value = !0, Ve && clearTimeout(Ve), Ve = setTimeout(() => {
Ce.value = !1;
}, 200);
return;
}
const he = te.scrollWidth, ye = te.clientWidth, Le = he - ye;
Nt.value = Le > 0 ? K / Le : 0, kt.value = K > 20, hA.value = K < Le - 20, Ce.value = !0, (Xe = te.classList) == null || Xe.add("scrolling"), CA(), Ve && clearTimeout(Ve), Ve = setTimeout(() => {
var ze;
Ce.value = !1, (ze = te.classList) == null || ze.remove("scrolling");
}, 500);
}, Vi = (R) => {
if (Pi.value || !wA.value) return;
Pi.value = !0;
const te = () => {
if (!wA.value || !Pi.value) return;
const K = wA.value.scrollLeft, he = wA.value.scrollWidth - wA.value.clientWidth;
let ye;
if (R === "left" ? ye = Math.max(0, K - k0) : ye = Math.min(he, K + k0), ye === K) {
Ea();
return;
}
wA.value.scrollLeft = ye, window.dispatchEvent(
new CustomEvent("timeline-auto-scroll", {
detail: { scrollDelta: ye - K }
})
), ai = window.setTimeout(te, 16);
};
te();
}, Ea = () => {
Pi.value = !1, ai && (clearTimeout(ai), ai = null);
}, qi = (R) => {
const { mouseX: te, isDragging: K } = R.detail;
if (!K || !wA.value) {
Ea();
return;
}
const he = wA.value.getBoundingClientRect(), ye = te - he.left;
ye <= D0 && wA.value.scrollLeft > 0 ? Vi("left") : ye >= he.width - D0 && wA.value.scrollLeft < wA.value.scrollWidth - wA.value.clientWidth ? Vi("right") : Ea();
};
tn(() => {
Ea(), qt(), window.removeEventListener("task-row-double-click", it), window.removeEventListener("task-list-hover", We), window.removeEventListener(
"task-list-vertical-scroll",
Js
), window.removeEventListener("locale-changed", V), window.removeEventListener("splitter-drag-start", Un), window.removeEventListener("splitter-drag-end", Dt), window.removeEventListener(
"timeline-container-resized",
be
), window.removeEventListener("milestone-click-locate", ct), window.removeEventListener("drag-boundary-check", qi), pr && (pr.disconnect(), pr = null), window.removeEventListener("resize", Dn), document.removeEventListener("mousemove", Aa), document.removeEventListener("mouseup", ii);
});
const to = (R, te) => {
n("delete", R, te);
}, Ao = (R) => {
const te = y.value.find((Le) => Le.id === R.targetTaskId);
if (!te || !te.predecessor) return;
const he = Da(te.predecessor).filter((Le) => Le !== R.sourceTaskId), ye = {
...te,
predecessor: he.length > 0 ? he : void 0
};
n("link-deleted", {
sourceTaskId: R.sourceTaskId,
targetTaskId: R.targetTaskId,
updatedTask: ye
}), ea(ye), Ze();
}, Ha = lt(() => {
if (p.value !== Ye.MONTH)
return {};
const R = {}, te = tA.value;
for (const K of te) {
const ye = K.year;
R[ye] || (R[ye] = []), R[ye].push(K);
}
return R;
}), Pa = lt(() => {
if (p.value !== Ye.WEEK)
return [];
const R = [], te = tA.value;
for (let K = 0; K < te.length; K++) {
const he = te[K];
if (!(!he.isWeekView || !he.weeks))
for (let ye = 0; ye < he.weeks.length; ye++) {
const Xe = he.weeks[ye].subDays || [];
for (let ze = 0; ze < Xe.length; ze++) {
const mt = Xe[ze];
mt.date && mt.date.getDate() === 1 && R.push({
left: fA(K, ye) + ze * (60 / 7),
date: mt.date.getDate()
});
}
}
}
return R;
}), ro = lt(() => {
if (p.value !== Ye.WEEK)
return [];
const R = [], te = tA.value;
for (let K = 0; K < te.length; K++) {
const he = te[K];
if (!(!he.isWeekView || !he.weeks))
for (let ye = 0; ye < he.weeks.length; ye++) {
const Xe = he.weeks[ye].subDays || [];
for (let ze = 0; ze < Xe.length; ze++) {
const mt = Xe[ze];
mt.date && mt.date.getDate() === 1 && R.push({
left: fA(K, ye) + ze * (60 / 7)
});
}
}
}
return R;
}), ua = lt(() => {
if (p.value !== Ye.YEAR)
return [];
try {
const R = dA();
return Array.isArray(R) ? R : [];
} catch {
return [];
}
});
t({
// 基础滚动功能
scrollToTasks: An,
scrollToToday: Tn,
scrollToTodayCenter: FA,
// 时间线配置
timelineConfig: c,
// 时间刻度更新
updateTimeScale: gA,
// 高亮相关
highlightedTaskId: I,
clearHighlight: Z
});
const no = (R) => {
n("start-timer", R);
}, v = (R) => {
n("stop-timer", R);
}, T = (R) => {
const te = R.startDate || R.endDate || "";
return {
...R,
type: "milestone",
startDate: te,
endDate: R.startDate || R.endDate
};
};
EA(
() => y.value.length,
() => {
H(), ZA();
},
{ immediate: !0 }
);
let ne = null;
const we = (R = 50) => {
ne && clearTimeout(ne), ne = setTimeout(() => {
De(), ne = null;
}, R);
}, De = () => {
let R = null;
p.value === Ye.HOUR ? R = M() : p.value === Ye.DAY ? R = k() : p.value === Ye.WEEK ? R = O() : p.value === Ye.MONTH ? R = S() : (p.value === Ye.QUARTER || p.value === Ye.YEAR) && (R = U()), R && (Ze(), Gt = !0, c.value.startDate = R.startDate, c.value.endDate = R.endDate, Gt = !1, tA.value = ke());
};
EA(
() => {
var R;
return (R = y.value) == null ? void 0 : R.length;
},
(R, te) => {
R !== te && H(), te === 0 && R > 0 && we(50);
}
), EA(
$e,
(R, te) => {
sA.value || (!te || te === 0 || Math.abs(R - te) > 50) && R > 0 && we(100);
},
{ immediate: !0 }
);
let nt = null;
EA([tA, $e], () => {
sA.value || (nt && clearTimeout(nt), nt = setTimeout(() => {
bA.value = {}, nr.value++, rr(() => {
setTimeout(() => {
Dn();
}, 200);
}), nt = null;
}, 100));
}), EA(
() => y.value,
(R) => {
H();
const te = /* @__PURE__ */ new Set();
for (const he of R)
te.add(he.id);
const K = {};
for (const he in bA.value) {
const ye = parseInt(he);
te.has(ye) && (K[ye] = bA.value[ye]);
}
bA.value = K;
},
{ deep: !0 }
);
const ct = (R) => {
const { scrollLeft: te, smooth: K } = R.detail, he = document.querySelector(".timeline"), ye = document.querySelector(".timeline-body");
let Le = null;
if (he && he.scrollWidth > he.clientWidth ? Le = he : ye && ye.scrollWidth > ye.clientWidth && (Le = ye), Le) {
const Xe = Le.scrollWidth - Le.clientWidth, ze = Math.min(Math.max(0, te), Xe);
K ? Le.scrollTo({
left: ze,
behavior: "smooth"
}) : Le.scrollLeft = ze;
}
}, Kt = () => {
let R, te;
if (p.value === Ye.MONTH) {
const Xe = S();
R = Xe.startDate, te = Xe.endDate;
} else
R = new Date(c.value.startDate), te = new Date(c.value.endDate);
const K = {}, he = new Date(R);
for (he.setDate(1); he <= te; ) {
const Xe = he.getFullYear(), ze = he.getMonth() + 1, It = new Date(Xe, ze, 0).getDate(), Qt = /* @__PURE__ */ new Date(), pt = Xe === Qt.getFullYear() && ze === Qt.getMonth() + 1;
K[Xe] || (K[Xe] = {
year: Xe,
yearLabel: `${Xe}年`,
months: []
}), K[Xe].months.push({
year: Xe,
month: ze,
monthLabel: s(ze),
startDate: new Date(Xe, ze - 1, 1),
endDate: new Date(Xe, ze, 0),
isToday: pt,
dayCount: It
}), he.setMonth(he.getMonth() + 1);
}
const ye = [];
let Le = 0;
for (const Xe of Object.values(K))
for (const ze of Xe.months) {
const mt = [];
for (let jt = 1; jt <= ze.dayCount; jt++) {
const KA = new Date(ze.year, ze.month - 1, jt);
mt.push({
day: jt,
date: new Date(KA),
dayOfWeek: KA.getDay(),
isToday: Xt(KA),
isWeekend: KA.getDay() === 0 || KA.getDay() === 6
});
}
const It = 60, Qt = Le, pt = Le + It;
ye.push({
year: ze.year,
month: ze.month,
yearMonthLabel: a(ze.year, ze.month),
startDate: ze.startDate,
endDate: ze.endDate,
isMonthView: !0,
monthData: {
monthLabel: ze.monthLabel,
isToday: ze.isToday,
dayCount: ze.dayCount
},
// 添加每一天的子列数据
subDays: mt,
// 为了兼容性,保留days数组,映射subDays的数据
days: mt.map((jt) => ({
day: jt.day,
date: jt.date,
label: String(jt.day).padStart(2, "0"),
isToday: jt.isToday,
isWeekend: jt.isWeekend
})),
// 添加位置调试信息
_debugInfo: {
monthStartPosition: Qt,
monthEndPosition: pt,
monthWidth: It
}
}), Le += It;
}
return ye;
}, Yt = () => {
const R = c.value.startDate, te = c.value.endDate, K = [], he = R.getFullYear(), ye = te.getFullYear();
for (let Le = he; Le <= ye; Le++) {
const Xe = [];
for (let ze = 1; ze <= 4; ze++) {
const mt = (ze - 1) * 3, It = new Date(Le, mt, 1), Qt = mt + 2, pt = new Date(Le, Qt + 1, 0);
Xe.push({
quarter: ze,
label: `Q${ze}`,
fullLabel: `${Le}年第${ze}季度`,
startDate: It,
endDate: pt,
isToday: oA(It, pt),
year: Le
});
}
K.push({
year: Le,
yearLabel: String(Le),
startDate: new Date(Le, 0, 1),
endDate: new Date(Le, 11, 31),
quarters: Xe
});
}
return K;
}, oA = (R, te) => {
const K = /* @__PURE__ */ new Date();
return K.setHours(0, 0, 0, 0), K >= R && K <= te;
}, dA = () => {
const R = c.value.startDate, te = c.value.endDate, K = [], he = R.getFullYear(), ye = te.getFullYear();
for (let Le = he; Le <= ye; Le++) {
const Xe = [
{
label: o("halfYearFirst"),
startDate: new Date(Le, 0, 1),
endDate: new Date(Le, 6, 0),
// 6月的最后一天
width: 180
},
{
label: o("halfYearSecond"),
startDate: new Date(Le, 6, 1),
endDate: new Date(Le, 11, 31),
width: 180
}
];
K.push({
year: Le,
startDate: new Date(Le, 0, 1),
endDate: new Date(Le, 11, 31),
halfYears: Xe,
width: 360
});
}
return K;
}, QA = (R) => {
n("add-predecessor", R);
}, vr = (R) => {
n("add-successor", R);
};
return (R, te) => (ae(), fe("div", {
ref_key: "timelineContainer",
ref: wA,
class: "timeline",
onMousedown: eo,
onScroll: Ki
}, [
Y("div", cx, [
p.value === vt(Ye).YEAR && ua.value && ua.value.length > 0 ? (ae(), fe(Ut, { key: 0 }, [
Y("div", fx, [
(ae(!0), fe(Ut, null, uA(ua.value, (K) => (ae(), fe("div", {
key: `year-${K.year}`,
class: "timeline-year",
style: { width: "360px" }
}, [
Y("div", hx, Ge(K.year), 1)
]))), 128))
]),
Y("div", dx, [
(ae(!0), fe(Ut, null, uA(ua.value, (K) => (ae(), fe(Ut, {
key: `halfyear-${K.year}`
}, [
(ae(!0), fe(Ut, null, uA(K.halfYears || [], (he) => (ae(), fe("div", {
key: `halfyear-${K.year}-${he.label}`,
class: "timeline-half-year-item",
style: { width: "180px" }
}, [
Y("div", gx, Ge(he.label), 1)
]))), 128))
], 64))), 128))
])
], 64)) : p.value === vt(Ye).MONTH ? (ae(), fe(Ut, { key: 1 }, [
Y("div", px, [
(ae(!0), fe(Ut, null, uA(Ha.value, (K, he) => (ae(), fe("div", {
key: `year-${he}`,
class: "timeline-year",
style: { width: "720px" }
}, [
Y("div", vx, Ge(he), 1)
]))), 128))
]),
Y("div", mx, [
(ae(!0), fe(Ut, null, uA(tA.value, (K) => {
var he, ye;
return ae(), fe("div", {
key: `month-${K.year}-${K.month}`,
class: iA(["timeline-month-item", { today: (he = K.monthData) == null ? void 0 : he.isToday }]),
style: { width: "59px" }
}, [
Y("div", wx, Ge((ye = K.monthData) == null ? void 0 : ye.monthLabel), 1)
], 2);
}), 128))
])
], 64)) : p.value === vt(Ye).QUARTER ? (ae(), fe(Ut, { key: 2 }, [
Y("div", Bx, [
(ae(!0), fe(Ut, null, uA(tA.value, (K) => (ae(), fe("div", {
key: `year-${K.year}`,
class: "timeline-year",
style: { width: "240px" }
}, [
Y("div", yx, Ge(K.yearLabel), 1)
]))), 128))
]),
Y("div", bx, [
(ae(!0), fe(Ut, null, uA(tA.value, (K) => (ae(), fe(Ut, {
key: `quarters-${K.year}`
}, [
(ae(!0), fe(Ut, null, uA(K.quarters, (he) => (ae(), fe("div", {
key: `quarter-${K.year}-${he.quarter}`,
class: iA(["timeline-quarter-item", { today: he.isToday }]),
style: { width: "60px" }
}, [
Y("div", Cx, Ge(he.label), 1)
], 2))), 128))
], 64))), 128))
])
], 64)) : p.value === vt(Ye).HOUR ? (ae(), fe("div", {
key: 3,
class: "hour-header-container",
style: rA({ width: `${Sr.value}px` })
}, [
Y("div", Ex, [
(ae(!0), fe(Ut, null, uA(Dr.value, (K) => (ae(), fe("div", {
key: `date-${K.year}-${K.month}-${K.day}`,
class: "timeline-day-item",
style: rA({
position: "absolute",
width: `${K.hours.length * 40}px`,
left: `${(K.hourOffset || 0) * 40}px`
})
}, [
Y("div", Fx, Ge(K.dateLabel), 1)
], 4))), 128))
]),
Y("div", xx, [
(ae(!0), fe(Ut, null, uA(Dr.value, (K) => (ae(), fe(Ut, {
key: `hours-${K.year}-${K.month}-${K.day}`
}, [
(ae(!0), fe(Ut, null, uA(K.hours, (he, ye) => (ae(), fe("div", {
key: `hour-${K.year}-${K.month}-${K.day}-${he.hour}`,
class: iA(["timeline-hour-item", {
today: he.isToday,
"non-working-hour": !he.isWorkingHour
}]),
style: rA({
position: "absolute",
width: "40px",
left: `${(K.hourOffset + ye) * 40}px`
})
}, [
Y("div", Sx, Ge(he.shortLabel), 1)
], 6))), 128))
], 64))), 128))
])
], 4)) : (ae(), fe(Ut, { key: 4 }, [
Y("div", Ux, [
(ae(!0), fe(Ut, null, uA(tA.value, (K) => (ae(), fe("div", {
key: `year-month-${K.year}-${K.month}`,
class: "timeline-month",
style: rA({
width: K.isWeekView ? `${(K.weeks || []).length * 60}px` : `${(K.days || []).length * 30}px`
})
}, [
Y("div", Tx, Ge(K.yearMonthLabel), 1)
], 4))), 128)),
(ae(!0), fe(Ut, null, uA(Pa.value, (K, he) => (ae(), fe("div", {
key: `flag-${he}`,
class: "month-first-flag",
style: rA({
left: `${K.left}px`,
transform: "translateX(-50%)"
})
}, [
te[1] || (te[1] = Y("div", { class: "flag-pole" }, null, -1)),
Y("div", Qx, Ge(K.date), 1)
], 4))), 128))
]),
Y("div", Dx, [
(ae(!0), fe(Ut, null, uA(tA.value, (K) => (ae(), fe(Ut, {
key: `timeline-${K.year}-${K.month}`
}, [
K.isWeekView && K.weeks ? (ae(), fe("div", {
key: 0,
class: "timeline-month-weeks",
style: rA({ width: `${(K.weeks || []).length * 60}px` })
}, [
(ae(!0), fe(Ut, null, uA(K.weeks || [], (he) => (ae(), fe("div", {
key: `week-${K.year}-${K.month}-${he.label}`,
class: iA(["timeline-week", {
today: he.isToday
}])
}, [
Y("div", kx, Ge(he.label), 1),
te[2] || (te[2] = Y("div", { class: "week-sub-days" }, null, -1))
], 2))), 128))
], 4)) : (ae(), fe("div", {
key: 1,
class: "timeline-month-days",
style: rA({ width: `${K.days.length * 30}px` })
}, [
(ae(!0), fe(Ut, null, uA(K.days, (he) => (ae(), fe("div", {
key: `day-${K.year}-${K.month}-${he.day}`,
class: iA(["timeline-day", {
today: he.isToday,
weekend: he.isWeekend && !he.isToday
}])
}, [
Y("div", Lx, Ge(he.label), 1)
], 2))), 128))
], 4))
], 64))), 128))
])
], 64))
]),
Y("div", {
class: "timeline-body",
onScroll: Ra
}, [
Y("div", {
ref_key: "bodyContentRef",
ref: GA,
class: "timeline-body-content"
}, [
$n(ox, {
tasks: y.value,
"task-bar-positions": bA.value,
width: la.value,
height: Qn.value,
"offset-left": Ca.value,
"offset-top": Kr.value,
"highlighted-task-id": I.value,
"highlighted-task-ids": le.value,
"hovered-task-id": W.value,
"vertical-lines": ro.value,
"show-vertical-lines": p.value === vt(Ye).WEEK
}, null, 8, ["tasks", "task-bar-positions", "width", "height", "offset-left", "offset-top", "highlighted-task-id", "highlighted-task-ids", "hovered-task-id", "vertical-lines", "show-vertical-lines"]),
$n(ux, {
ref_key: "linkDragGuideRef",
ref: cr,
active: !!X.value && !!Ae.value,
width: la.value,
height: Qn.value,
"offset-left": Ca.value,
"offset-top": Kr.value
}, null, 8, ["active", "width", "height", "offset-left", "offset-top"]),
aA.value && IA.value >= 0 ? (ae(), fe("div", {
key: 0,
class: "today-line-year-view",
style: rA({
left: `${IA.value}px`,
height: `${ge.value}px`
})
}, null, 4)) : Ct("", !0),
Y("div", {
class: "day-columns",
style: rA({ height: `${ge.value}px` })
}, [
p.value === vt(Ye).HOUR ? (ae(), fe("div", {
key: 0,
class: "hour-columns-container",
style: rA({
width: `${Sr.value}px`,
height: `${ge.value}px`,
position: "relative"
})
}, [
(ae(!0), fe(Ut, null, uA(Dr.value, (K) => (ae(), fe(Ut, {
key: `day-col-${K.year}-${K.month}-${K.day}`
}, [
(ae(!0), fe(Ut, null, uA(K.hours, (he, ye) => (ae(), fe("div", {
key: `hour-col-${K.year}-${K.month}-${K.day}-${he.hour}`,
class: iA(["hour-column", {
today: he.isToday,
weekend: he.isWeekend,
"working-hour": he.isWorkingHour,
"rest-hour": !he.isWorkingHour && !he.isWeekend
}]),
style: rA({
position: "absolute",
width: "40px",
height: `${ge.value}px`,
left: `${(K.hourOffset + ye) * 40}px`
})
}, te[3] || (te[3] = [
Y("div", { class: "quarter-hour-lines" }, [
Y("div", {
class: "quarter-line",
style: { left: "10px" }
}),
Y("div", {
class: "quarter-line",
style: { left: "20px" }
}),
Y("div", {
class: "quarter-line",
style: { left: "30px" }
})
], -1)
]), 6))), 128))
], 64))), 128))
], 4)) : Ct("", !0),
p.value === vt(Ye).YEAR ? (ae(!0), fe(Ut, { key: 1 }, uA(ua.value, (K) => (ae(), fe(Ut, {
key: `year-col-${K.year}`
}, [
(ae(!0), fe(Ut, null, uA(K.halfYears || [], (he) => (ae(), fe("div", {
key: `halfyear-col-${K.year}-${he.label}`,
class: "half-year-column",
style: rA({ width: "180px", height: `${ge.value}px` })
}, null, 4))), 128))
], 64))), 128)) : Ct("", !0),
p.value === vt(Ye).QUARTER ? (ae(), fe("div", {
key: 2,
class: "quarter-columns-container",
style: rA({
width: `${Sr.value}px`,
height: `${ge.value}px`,
position: "relative"
})
}, [
(ae(!0), fe(Ut, null, uA(tA.value, (K, he) => (ae(), fe(Ut, {
key: `quarter-col-${K.year}`
}, [
(ae(!0), fe(Ut, null, uA(K.quarters, (ye, Le) => (ae(), fe("div", {
key: `quarter-col-${K.year}-${ye.quarter}`,
class: iA(["quarter-column", { today: ye.isToday }]),
style: rA({
position: "absolute",
width: "60px",
height: `${ge.value}px`,
left: `${he * 240 + Le * 60}px`
})
}, null, 6))), 128))
], 64))), 128))
], 4)) : p.value !== vt(Ye).HOUR && p.value !== vt(Ye).YEAR && p.value !== vt(Ye).QUARTER ? (ae(!0), fe(Ut, { key: 3 }, uA(tA.value, (K) => {
var he;
return ae(), fe(Ut, {
key: `day-col-${K.year}-${K.month}`
}, [
K.isMonthView ? (ae(), fe("div", {
key: 0,
class: iA(["month-column", { today: (he = K.monthData) == null ? void 0 : he.isToday }]),
style: rA({ width: "59px", height: `${ge.value}px` })
}, null, 6)) : K.isWeekView && K.weeks ? (ae(), fe("div", {
key: 1,
class: "month-week-columns",
style: rA({
width: `${(K.weeks || []).length * 60}px`,
height: `${ge.value}px`
})
}, [
(ae(!0), fe(Ut, null, uA(K.weeks || [], (ye) => (ae(), fe("div", {
key: `week-col-${K.year}-${K.month}-${ye.label}`,
class: iA(["week-column", {
today: ye.isToday
}]),
style: rA({ height: `${ge.value}px`, width: "60px" })
}, [
(ae(!0), fe(Ut, null, uA(ye.subDays || [], (Le, Xe) => (ae(), fe("div", {
key: `subday-col-${Xe}`,
class: iA(["sub-day-column", {
weekend: Le.dayOfWeek === 0 || Le.dayOfWeek === 6,
today: Xt(Le.date)
}]),
style: rA({ height: `${ge.value}px`, width: `${C.value}px` })
}, null, 6))), 128))
], 6))), 128))
], 4)) : (ae(), fe("div", {
key: 2,
class: "month-day-columns",
style: rA({
width: `${(K.days || []).length * 30}px`,
height: `${ge.value}px`
})
}, [
(ae(!0), fe(Ut, null, uA(K.days || [], (ye) => (ae(), fe("div", {
key: `day-col-${K.year}-${K.month}-${ye.day}`,
class: iA(["day-column", {
weekend: ye.isWeekend,
today: ye.isToday
}]),
style: rA({ height: `${ge.value}px` })
}, null, 6))), 128))
], 4))
], 64);
}), 128)) : Ct("", !0)
], 4),
Y("div", {
class: "task-bar-container",
style: rA({ height: `${ge.value}px` })
}, [
Y("div", {
class: "task-rows",
style: rA({ height: `${ge.value}px` })
}, [
(ae(!0), fe(Ut, null, uA(xr.value, ({ task: K, originalIndex: he }) => {
var ye, Le, Xe;
return ae(), fe("div", {
key: K.id,
class: iA(["task-row", { "task-row-hovered": W.value === K.id }]),
style: rA({ top: `${he * 51}px` }),
onMouseenter: (ze) => z(K.id),
onMouseleave: te[0] || (te[0] = (ze) => z(null))
}, [
K.type === "milestone-group" && K.children ? (ae(!0), fe(Ut, { key: 0 }, uA(K.children, (ze) => (ae(), wr(S0, {
key: ze.id,
date: ze.startDate || "",
"row-height": 50,
"day-width": C.value,
"start-date": p.value === vt(Ye).YEAR || p.value === vt(Ye).QUARTER ? U().startDate : p.value === vt(Ye).MONTH ? S().startDate : c.value.startDate,
"timeline-start": c.value.startDate,
"timeline-end": c.value.endDate,
"period-width": C.value,
name: ze.name,
milestone: T(ze),
"scroll-left": Re.value,
"container-width": $e.value,
"milestone-id": ze.id,
"other-milestones": Lr(ze.id),
"timeline-data": tA.value,
"current-time-scale": p.value,
"allow-drag-and-resize": A.allowDragAndResize && !ue.value,
"is-in-highlight-mode": ue.value,
onMilestoneDoubleClick: Be,
"onUpdate:milestone": Fe,
onDragEnd: Xs
}, null, 8, ["date", "day-width", "start-date", "timeline-start", "timeline-end", "period-width", "name", "milestone", "scroll-left", "container-width", "milestone-id", "other-milestones", "timeline-data", "current-time-scale", "allow-drag-and-resize", "is-in-highlight-mode"]))), 128)) : K.type === "milestone" ? (ae(), wr(S0, {
key: K.id,
date: K.startDate || "",
"row-height": 50,
"day-width": C.value,
"start-date": p.value === vt(Ye).YEAR || p.value === vt(Ye).QUARTER ? U().startDate : p.value === vt(Ye).MONTH ? S().startDate : c.value.startDate,
"timeline-start": c.value.startDate,
"timeline-end": c.value.endDate,
"period-width": C.value,
name: K.name,
milestone: T(K),
"scroll-left": Re.value,
"container-width": $e.value,
"milestone-id": K.id,
"other-milestones": Lr(K.id),
"timeline-data": tA.value,
"current-time-scale": p.value,
"allow-drag-and-resize": A.allowDragAndResize && !ue.value,
"is-in-highlight-mode": ue.value,
onMilestoneDoubleClick: Be,
"onUpdate:milestone": Fe,
onDragEnd: Xs
}, null, 8, ["date", "day-width", "start-date", "timeline-start", "timeline-end", "period-width", "name", "milestone", "scroll-left", "container-width", "milestone-id", "other-milestones", "timeline-data", "current-time-scale", "allow-drag-and-resize", "is-in-highlight-mode"])) : K.type !== "milestone-group" && K.type !== "milestone" ? (ae(), wr(XF, {
key: `taskbar-${K.id}-${nr.value}`,
task: K,
"row-height": 50,
"day-width": C.value,
"start-date": p.value === vt(Ye).YEAR ? U().startDate : p.value === vt(Ye).MONTH ? S().startDate : c.value.startDate,
"is-parent": K.isParent,
"scroll-left": Re.value,
"container-width": $e.value,
"hide-bubbles": xt.value,
"timeline-data": p.value === vt(Ye).HOUR ? Dr.value : tA.value,
"current-time-scale": p.value,
"task-bar-config": A.taskBarConfig,
"allow-drag-and-resize": A.allowDragAndResize && !ue.value,
"is-highlighted": le.value.has(K.id),
"is-primary-highlight": I.value === K.id,
"is-in-highlight-mode": ue.value,
"drag-link-mode": X.value,
"is-link-drag-source": ((ye = Ae.value) == null ? void 0 : ye.id) === K.id,
"is-valid-link-target": ((Le = oe.value) == null ? void 0 : Le.id) === K.id && x.value === !0,
"is-invalid-link-target": ((Xe = oe.value) == null ? void 0 : Xe.id) === K.id && x.value === !1,
"all-tasks": y.value,
"onUpdate:task": ea,
onBarMounted: Ir,
onClick: (ze) => WA(K, ze),
onDblclick: (ze) => Pn(K),
onDragEnd: kn,
onResizeEnd: zs,
onScrollToPosition: Mo,
onContextMenu: lA,
onStartTimer: no,
onStopTimer: v,
onAddPredecessor: QA,
onAddSuccessor: vr,
onDelete: to,
onDeleteLink: Ao,
onLongPress: ee,
onLinkDragStart: de,
onLinkDragMove: Pe,
onLinkDragEnd: je
}, Cl({ _: 2 }, [
R.$slots["custom-task-content"] ? {
name: "custom-task-content",
fn: fs((ze) => [
Li(R.$slots, "custom-task-content", Qo({ ref_for: !0 }, ze), void 0, !0)
]),
key: "0"
} : void 0
]), 1032, ["task", "day-width", "start-date", "is-parent", "scroll-left", "container-width", "hide-bubbles", "timeline-data", "current-time-scale", "task-bar-config", "allow-drag-and-resize", "is-highlighted", "is-primary-highlight", "is-in-highlight-mode", "drag-link-mode", "is-link-drag-source", "is-valid-link-target", "is-invalid-link-target", "all-tasks", "onClick", "onDblclick"])) : Ct("", !0)
], 46, Ix);
}), 128))
], 4)
], 4)
], 512)
], 32)
], 544));
}
}), Hx = /* @__PURE__ */ xn(Rx, [["__scopeId", "data-v-7a809cc7"]]), Px = { class: "gantt-toolbar" }, Kx = { class: "toolbar-left" }, Vx = {
key: 0,
class: "gantt-btn-group gantt-add-btn-group"
}, qx = ["title"], jx = ["title"], Wx = {
key: 1,
class: "gantt-btn-group gantt-expand-collapse-btn-group"
}, Gx = ["title"], Yx = ["title"], $x = {
key: 2,
class: "gantt-btn-group"
}, zx = ["title"], Xx = ["title"], Jx = { class: "toolbar-right" }, Zx = {
key: 0,
class: "segmented-control time-scale-segmented"
}, e3 = { class: "segmented-track" }, t3 = ["title", "onClick"], A3 = {
key: 1,
class: "language-dropdown"
}, r3 = ["title"], n3 = { class: "lang-text" }, a3 = {
key: 0,
class: "language-menu"
}, i3 = ["onClick"], s3 = { class: "option-text" }, o3 = {
key: 0,
class: "check-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, l3 = ["title"], u3 = ["title"], c3 = {
key: 0,
class: "gantt-btn-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, f3 = {
key: 1,
class: "gantt-btn-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, h3 = { class: "icon-fallback" }, d3 = ["title"], g3 = {
key: 0,
class: "gantt-btn-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, p3 = {
key: 1,
class: "gantt-btn-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, v3 = { class: "icon-fallback" }, m3 = {
key: 0,
class: "confirm-dialog"
}, w3 = { class: "dialog-content" }, B3 = { class: "dialog-message" }, y3 = { class: "dialog-actions" }, Bf = "gantt-theme", b3 = "gantt-locale", C3 = /* @__PURE__ */ dn({
__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 },
onTimeScaleChange: { type: Function, default: void 0 },
onExpandAll: { type: Function, default: void 0 },
onCollapseAll: { 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", "time-scale-change", "expand-all", "collapse-all"],
setup(r, { emit: t }) {
const e = r, A = t, n = {
zh: "zh-CN",
en: "en-US"
}, a = () => {
if (typeof window < "u") {
const de = localStorage.getItem(Bf);
return de !== null ? de === "dark" : window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches;
}
return !1;
}, { locale: s, setLocale: i, getTranslation: o } = Ma(), l = Te("zh"), u = Te(a()), h = Te(!1), g = Te(!1), c = Te(Ye.DAY), p = (de) => o(de), m = lt(() => p("language")), y = Te(!1), w = Te(null), E = Te(null), C = () => {
e.onAddTask && typeof e.onAddTask == "function" ? e.onAddTask() : A("add-task");
}, F = () => {
e.onAddMilestone && typeof e.onAddMilestone == "function" ? e.onAddMilestone() : A("add-milestone");
}, H = () => {
e.onTodayLocate && typeof e.onTodayLocate == "function" ? e.onTodayLocate() : A("today-locate");
}, q = () => {
e.onExportCsv && typeof e.onExportCsv == "function" ? e.onExportCsv() : A("export-csv");
}, N = () => {
e.onExportPdf && typeof e.onExportPdf == "function" ? e.onExportPdf() : A("export-pdf");
}, M = () => {
e.onExpandAll && typeof e.onExpandAll == "function" ? e.onExpandAll() : A("expand-all");
}, k = () => {
e.onCollapseAll && typeof e.onCollapseAll == "function" ? e.onCollapseAll() : A("collapse-all");
}, O = () => {
g.value = !g.value;
}, S = (de) => {
l.value = de, g.value = !1;
const ce = n[l.value];
i(ce), e.onLanguageChange && typeof e.onLanguageChange == "function" ? e.onLanguageChange(ce) : A("language-change", ce), E.value = ce, w.value = "language", y.value = !0;
}, U = async () => {
if (!w.value || E.value === null) {
ue();
return;
}
if (e.onSettingsConfirm && typeof e.onSettingsConfirm == "function")
try {
if (!await e.onSettingsConfirm(w.value, E.value)) {
ue();
return;
}
} catch {
ue();
return;
}
w.value === "theme" ? W() : w.value === "language" && I(), ue();
}, W = () => {
typeof window < "u" && typeof E.value == "boolean" && localStorage.setItem(Bf, E.value ? "dark" : "light");
}, I = () => {
typeof window < "u" && typeof E.value == "string" && localStorage.setItem(b3, E.value);
}, le = () => {
ue();
}, ue = () => {
y.value = !1, w.value = null, E.value = null;
}, Z = () => {
const de = !u.value;
u.value = de, document.documentElement.setAttribute("data-theme", de ? "dark" : "light"), e.onThemeChange && typeof e.onThemeChange == "function" ? e.onThemeChange(de) : A("theme-change", de), E.value = de, w.value = "theme", y.value = !0;
}, ee = () => {
h.value = !h.value, window.dispatchEvent(
new CustomEvent("fullscreen-toggle", {
detail: h.value
})
), e.onFullscreenChange && typeof e.onFullscreenChange == "function" ? e.onFullscreenChange(h.value) : A("fullscreen-change", h.value);
}, X = {
hour: { value: Ye.HOUR, label: () => p("timeScaleHour") },
day: { value: Ye.DAY, label: () => p("timeScaleDay") },
week: { value: Ye.WEEK, label: () => p("timeScaleWeek") },
month: { value: Ye.MONTH, label: () => p("timeScaleMonth") },
quarter: { value: Ye.QUARTER, label: () => p("timeScaleQuarter") },
year: { value: Ye.YEAR, label: () => p("timeScaleYear") }
}, Ae = ["hour", "day", "week", "month", "year"], oe = lt(() => {
var Se;
const ce = (((Se = e.config) == null ? void 0 : Se.timeScaleDimensions) ?? Ae).filter(
(qe) => qe in X
);
return ce.length > 0 ? ce : [...Ae];
}), x = lt(() => {
var Se;
const de = oe.value, ce = (Se = e.config) == null ? void 0 : Se.defaultTimeScale;
return ce && de.includes(ce) ? ce : de.includes("day") ? "day" : de[0] ?? "day";
}), L = (de) => {
c.value = de, e.onTimeScaleChange && typeof e.onTimeScaleChange == "function" ? e.onTimeScaleChange(de) : A("time-scale-change", de);
};
let j = !1;
EA(
() => x.value,
(de) => {
const ce = X[de].value;
(c.value !== ce || !j) && (j = !0, L(ce));
},
{ immediate: !0 }
);
const $ = lt(() => oe.value.find(
(ce) => X[ce].value === c.value
) ?? x.value), re = () => {
const de = oe.value.findIndex(
(rt) => rt === $.value
), ce = oe.value.length;
if (ce === 0 || de < 0)
return {
transform: "translateX(0%)",
width: `${100 / ce || 25}%`
};
const Se = 100 / ce;
return {
transform: `translateX(${de * 100}%)`,
width: `${Se}%`
};
}, pe = (de) => {
!de.target.closest(".language-dropdown") && g.value && (g.value = !1);
};
return En(() => {
const de = s.value;
l.value = de === "zh-CN" ? "zh" : "en", document.documentElement.setAttribute("data-theme", u.value ? "dark" : "light"), document.addEventListener("click", pe), window.matchMedia && typeof window < "u" && !localStorage.getItem(Bf) && window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (ce) => {
u.value = ce.matches, document.documentElement.setAttribute("data-theme", ce.matches ? "dark" : "light");
});
}), tn(() => {
document.removeEventListener("click", pe);
}), (de, ce) => (ae(), fe("div", Px, [
Y("div", Kx, [
de.config.showAddTask !== !1 || de.config.showAddMilestone !== !1 ? (ae(), fe("div", Vx, [
de.config.showAddTask !== !1 ? (ae(), fe("button", {
key: 0,
class: "gantt-btn-group-item",
title: p("addTask"),
onClick: C
}, [
ce[0] || (ce[0] = Y("svg", {
class: "gantt-btn-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, [
Y("line", {
x1: "12",
y1: "5",
x2: "12",
y2: "19"
}),
Y("line", {
x1: "5",
y1: "12",
x2: "19",
y2: "12"
})
], -1)),
kA(" " + Ge(p("addTask")), 1)
], 8, qx)) : Ct("", !0),
de.config.showAddMilestone !== !1 ? (ae(), fe("button", {
key: 1,
class: "gantt-btn-group-item",
title: p("addMilestone"),
onClick: F
}, [
ce[1] || (ce[1] = ks('<svg class="gantt-btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-ed3a47c3><g transform="rotate(45 12 12)" data-v-ed3a47c3><rect x="4" y="4" width="16" height="16" rx="4" ry="4" fill="none" stroke="currentColor" data-v-ed3a47c3></rect></g><line x1="12" y1="8" x2="12" y2="16" data-v-ed3a47c3></line><line x1="8" y1="12" x2="16" y2="12" data-v-ed3a47c3></line></svg>', 1)),
kA(" " + Ge(p("addMilestone")), 1)
], 8, jx)) : Ct("", !0)
])) : Ct("", !0),
de.config.showExpandCollapse !== !1 ? (ae(), fe("div", Wx, [
Y("button", {
class: "gantt-btn-group-item",
title: p("expandAll"),
onClick: M
}, [
ce[2] || (ce[2] = Y("svg", {
class: "gantt-btn-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, [
Y("polyline", { points: "6 9 12 15 18 9" })
], -1)),
kA(" " + Ge(p("expandAll")), 1)
], 8, Gx),
Y("button", {
class: "gantt-btn-group-item",
title: p("collapseAll"),
onClick: k
}, [
ce[3] || (ce[3] = Y("svg", {
class: "gantt-btn-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, [
Y("polyline", { points: "18 15 12 9 6 15" })
], -1)),
kA(" " + Ge(p("collapseAll")), 1)
], 8, Yx)
])) : Ct("", !0),
de.config.showExportCsv !== !1 || de.config.showExportPdf !== !1 ? (ae(), fe("div", $x, [
de.config.showExportCsv !== !1 ? (ae(), fe("button", {
key: 0,
class: "gantt-btn-group-item",
title: p("exportCsv"),
onClick: q
}, [
ce[4] || (ce[4] = ks('<svg class="gantt-btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-ed3a47c3><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" data-v-ed3a47c3></path><polyline points="14,2 14,8 20,8" data-v-ed3a47c3></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-ed3a47c3></line><line x1="16" y1="17" x2="8" y2="17" data-v-ed3a47c3></line><polyline points="10,9 9,9 8,9" data-v-ed3a47c3></polyline></svg>', 1)),
kA(" " + Ge(p("exportCsv")), 1)
], 8, zx)) : Ct("", !0),
de.config.showExportPdf !== !1 ? (ae(), fe("button", {
key: 1,
class: "gantt-btn-group-item",
title: p("exportPdf"),
onClick: N
}, [
ce[5] || (ce[5] = ks('<svg class="gantt-btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-ed3a47c3><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" data-v-ed3a47c3></path><polyline points="14,2 14,8 20,8" data-v-ed3a47c3></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-ed3a47c3></line><line x1="16" y1="17" x2="8" y2="17" data-v-ed3a47c3></line><line x1="12" y1="13" x2="12" y2="17" data-v-ed3a47c3></line></svg>', 1)),
kA(" " + Ge(p("exportPdf")), 1)
], 8, Xx)) : Ct("", !0)
])) : Ct("", !0)
]),
Y("div", Jx, [
de.config.showTimeScale !== !1 ? (ae(), fe("div", Zx, [
Y("div", e3, [
Y("div", {
class: "segmented-thumb",
style: rA(re())
}, null, 4)
]),
(ae(!0), fe(Ut, null, uA(oe.value, (Se) => (ae(), fe("button", {
key: Se,
class: iA(["segmented-item", { active: $.value === Se }]),
title: p("timeScaleTooltip"),
onClick: (qe) => L(X[Se].value)
}, Ge(X[Se].label()), 11, t3))), 128))
])) : Ct("", !0),
de.config.showLanguage !== !1 ? (ae(), fe("div", A3, [
Y("button", {
class: "toolbar-lang-btn",
title: p("languageTooltip"),
onClick: O
}, [
ce[6] || (ce[6] = Y("svg", {
class: "gantt-btn-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, [
Y("circle", {
cx: "12",
cy: "12",
r: "10"
}),
Y("line", {
x1: "2",
y1: "12",
x2: "22",
y2: "12"
}),
Y("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)),
Y("span", n3, Ge(m.value), 1),
ce[7] || (ce[7] = Y("svg", {
class: "dropdown-arrow",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, [
Y("polyline", { points: "6,9 12,15 18,9" })
], -1))
], 8, r3),
g.value ? (ae(), fe("div", a3, [
(ae(), fe(Ut, null, uA(["zh", "en"], (Se) => Y("div", {
key: Se,
class: iA(["language-option", { active: l.value === Se }]),
onClick: (qe) => S(Se)
}, [
Y("span", s3, Ge(Se === "zh" ? "中文" : "English"), 1),
l.value === Se ? (ae(), fe("svg", o3, ce[8] || (ce[8] = [
Y("polyline", { points: "20,6 9,17 4,12" }, null, -1)
]))) : Ct("", !0)
], 10, i3)), 64))
])) : Ct("", !0)
])) : Ct("", !0),
de.config.showTodayLocate !== !1 ? (ae(), fe("button", {
key: 2,
class: "toolbar-icon-btn today-locate-btn",
title: p("todayLocateTooltip"),
onClick: H
}, ce[9] || (ce[9] = [
ks('<svg class="gantt-btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-ed3a47c3><rect x="3" y="4" width="18" height="18" rx="2" ry="2" data-v-ed3a47c3></rect><line x1="16" y1="2" x2="16" y2="6" data-v-ed3a47c3></line><line x1="8" y1="2" x2="8" y2="6" data-v-ed3a47c3></line><line x1="3" y1="10" x2="21" y2="10" data-v-ed3a47c3></line><circle cx="12" cy="16" r="1" data-v-ed3a47c3></circle></svg>', 1)
]), 8, l3)) : Ct("", !0),
de.config.showTheme !== !1 ? (ae(), fe("button", {
key: 3,
class: "toolbar-icon-btn",
title: p(u.value ? "lightMode" : "darkMode"),
onClick: Z
}, [
u.value ? (ae(), fe("svg", c3, ce[10] || (ce[10] = [
ks('<circle cx="12" cy="12" r="5" data-v-ed3a47c3></circle><line x1="12" y1="1" x2="12" y2="3" data-v-ed3a47c3></line><line x1="12" y1="21" x2="12" y2="23" data-v-ed3a47c3></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64" data-v-ed3a47c3></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78" data-v-ed3a47c3></line><line x1="1" y1="12" x2="3" y2="12" data-v-ed3a47c3></line><line x1="21" y1="12" x2="23" y2="12" data-v-ed3a47c3></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36" data-v-ed3a47c3></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22" data-v-ed3a47c3></line>', 9)
]))) : (ae(), fe("svg", f3, ce[11] || (ce[11] = [
Y("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" }, null, -1)
]))),
Y("span", h3, Ge(u.value ? "☀️" : "🌙"), 1)
], 8, u3)) : Ct("", !0),
de.config.showFullscreen !== !1 ? (ae(), fe("button", {
key: 4,
class: "toolbar-icon-btn",
title: p(h.value ? "exitFullscreen" : "fullscreen"),
onClick: ee
}, [
h.value ? (ae(), fe("svg", g3, ce[12] || (ce[12] = [
Y("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)
]))) : (ae(), fe("svg", p3, ce[13] || (ce[13] = [
Y("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)
]))),
Y("span", v3, Ge(h.value ? "⇲" : "⇱"), 1)
], 8, d3)) : Ct("", !0)
]),
y.value ? (ae(), fe("div", m3, [
Y("div", w3, [
Y("p", B3, Ge(p("confirmDialogMessage")), 1),
Y("div", y3, [
Y("button", {
class: "gantt-btn gantt-btn-default",
onClick: le
}, Ge(p("cancel")), 1),
Y("button", {
class: "gantt-btn gantt-btn-primary",
onClick: U
}, Ge(p("confirm")), 1)
])
])
])) : Ct("", !0)
]));
}
}), E3 = /* @__PURE__ */ xn(C3, [["__scopeId", "data-v-ed3a47c3"]]), F3 = {
success: "#67c23a",
// 绿色
warning: "#e6a23c",
// 黄色
error: "#f56c6c",
// 红色
info: "#909399"
// 灰色
};
let Ts = null;
function x3() {
return Ts || (Ts = document.createElement("div"), Ts.className = "message-container", Ts.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(Ts)), Ts;
}
const ou = /* @__PURE__ */ new Map(), L0 = 1e3;
function Ky() {
return { showMessage: (t, e = "success", A) => {
const n = Date.now(), a = `${e}:${t}`, s = ou.get(a);
if (!(A != null && A.allowDuplicate) && s && n - s < L0)
return;
ou.set(a, n);
for (const [p, m] of ou.entries())
n - m > L0 * 2 && ou.delete(p);
const i = document.createElement("div");
i.className = `message ${e}`, i.textContent = t, i.style.cssText = `
min-width: 180px;
max-width: 360px;
margin: 0;
padding: 12px 20px 12px 20px;
border-radius: 4px;
color: white;
font-size: 14px;
background: ${F3[e]};
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 o = !1;
const l = (A == null ? void 0 : A.closable) ?? !1;
if (l) {
const p = document.createElement("button");
p.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>', p.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;
`, p.onmouseenter = () => p.style.opacity = "1", p.onmouseleave = () => p.style.opacity = "0.7", p.onclick = () => c(), i.appendChild(p);
}
const u = x3();
u.appendChild(i), setTimeout(() => {
i.style.opacity = "0.98", i.style.transform = "translateY(0)";
}, 10);
const h = (A == null ? void 0 : A.duration) ?? (l ? 0 : 3e3);
let g;
!l && h > 0 && (g = window.setTimeout(() => c(), h));
function c() {
o || (o = !0, i.style.opacity = "0", i.style.transform = "translateY(-20px)", g && clearTimeout(g), setTimeout(() => {
i.parentNode && (u.removeChild(i), u.childElementCount === 0 && (u.remove(), Ts = null));
}, 250));
}
} };
}
const S3 = { class: "el-input__wrapper" }, U3 = { class: "el-input__inner" }, T3 = ["value", "placeholder", "disabled"], Q3 = { class: "el-input__suffix" }, D3 = { class: "el-input__suffix-inner" }, k3 = {
key: 1,
class: "el-input__icon"
}, L3 = { class: "el-time-picker-header" }, I3 = { class: "el-time-picker-title" }, _3 = { class: "el-time-picker-content" }, N3 = { class: "el-time-column" }, M3 = { class: "el-time-column-header" }, O3 = ["onClick"], R3 = { class: "el-time-column" }, H3 = { class: "el-time-column-header" }, P3 = ["onClick"], K3 = { class: "el-time-picker-footer" }, V3 = {
key: 0,
class: "el-year-picker"
}, q3 = { class: "el-year-picker__header" }, j3 = { class: "el-year-picker__header-label" }, W3 = { class: "el-year-picker__content" }, G3 = ["onClick"], Y3 = {
key: 1,
class: "el-month-picker"
}, $3 = { class: "el-month-picker__header" }, z3 = { class: "el-month-picker__content" }, X3 = ["onClick"], J3 = {
key: 2,
class: "el-date-picker__content-wrapper"
}, Z3 = { class: "el-date-picker__header" }, eS = { class: "el-date-picker__header-label" }, tS = { class: "el-date-picker__content" }, AS = { class: "el-date-table__header" }, rS = { class: "el-date-table__body" }, nS = ["onClick"], aS = { class: "el-date-table__cell-inner" }, iS = {
key: 0,
class: "el-time-picker-input"
}, sS = {
class: "el-time-picker-label",
for: "time-input"
}, oS = ["value", "placeholder"], lS = {
key: 1,
class: "el-date-picker-footer"
}, uS = /* @__PURE__ */ dn({
__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(r, { emit: t }) {
const e = r, A = t, { t: n } = Ma(), a = Te(!1), s = Te(!1), i = Te(!1), o = Te(!1), l = Te(!1), u = Te(!1), h = Te(), g = Te(), c = Te(), p = Te(), m = Te(), y = Te(), w = Te(null), E = Te(0), C = Te(""), F = Te("12:00"), H = Te(""), q = Te(""), N = Te((/* @__PURE__ */ new Date()).getFullYear()), M = Te((/* @__PURE__ */ new Date()).getMonth()), k = Te(Math.floor((/* @__PURE__ */ new Date()).getFullYear() / 10) * 10), O = Te(""), S = Te(""), U = Te(""), W = Te("start"), I = Te("12:00"), le = Te(12), ue = Te(0), Z = (Ce, Ve) => {
if (!Ce) return "";
const Re = new Date(Ce);
if (isNaN(Re.getTime())) return "";
const $e = e.format.includes("-") ? "-" : "/", xt = `${Re.getFullYear()}${$e}${String(Re.getMonth() + 1).padStart(2, "0")}${$e}${String(Re.getDate()).padStart(2, "0")}`;
return e.type === "datetime" && Ve ? `${xt} ${Ve}` : xt;
}, ee = lt(() => {
if (e.type === "daterange") {
const Ce = S.value ? Z(S.value, I.value) : "", Ve = U.value ? Z(U.value, I.value) : "";
return Ce && Ve ? `${Ce} ${e.rangeSeparator} ${Ve}` : Ce || Ve || "";
}
return O.value ? Z(O.value, I.value) : "";
}), X = (Ce) => {
if (!Ce) return { dateStr: "", timeStr: "12:00" };
const Ve = Ce.trim().split(" ");
if (Ve.length >= 2) {
const $e = Ve[0], xt = Ve[1], Ht = $e.split("/");
return Ht.length === 3 ? { dateStr: `${Ht[0]}-${Ht[1].padStart(2, "0")}-${Ht[2].padStart(2, "0")}`, timeStr: xt } : { dateStr: $e, timeStr: xt };
}
const Re = Ve[0];
if (Re.includes("/")) {
const $e = Re.split("/");
if ($e.length === 3)
return { dateStr: `${$e[0]}-${$e[1].padStart(2, "0")}-${$e[2].padStart(2, "0")}`, timeStr: "12:00" };
}
return { dateStr: Re, timeStr: "12:00" };
};
EA(
() => e.modelValue,
(Ce) => {
if (e.type === "daterange")
if (Array.isArray(Ce) && Ce.length === 2) {
const Ve = X(Ce[0] || ""), Re = X(Ce[1] || "");
S.value = Ve.dateStr, U.value = Re.dateStr, Ve.timeStr !== "12:00" && (I.value = Ve.timeStr);
} else
S.value = "", U.value = "", I.value = "12:00";
else {
const Ve = X(Ce || "");
O.value = Ve.dateStr, I.value = Ve.timeStr;
}
},
{ immediate: !0 }
);
const Ae = () => {
e.type === "daterange" ? (S.value = "", U.value = "", A("update:modelValue", ["", ""]), A("change", ["", ""])) : (O.value = "", A("update:modelValue", ""), A("change", "")), i.value = !1;
}, oe = () => {
if (!e.disabled && (i.value = !i.value, i.value)) {
e.type === "daterange" ? (H.value = S.value, q.value = U.value) : (C.value = O.value, F.value = I.value), at.x = window.scrollX, at.y = window.scrollY, E.value++;
let Ce;
if (e.type === "daterange") {
const Ve = S.value || U.value;
Ce = Ve ? new Date(Ve) : /* @__PURE__ */ new Date();
} else
Ce = O.value ? new Date(O.value) : /* @__PURE__ */ new Date();
isNaN(Ce.getTime()) ? (Ce = /* @__PURE__ */ new Date(), N.value = Ce.getFullYear(), M.value = Ce.getMonth()) : (N.value = Ce.getFullYear(), M.value = Ce.getMonth());
}
}, x = () => {
e.type === "datetime" && i.value ? (O.value = C.value, I.value = F.value) : e.type === "daterange" && i.value && (S.value = H.value, U.value = q.value), i.value = !1, o.value = !1, l.value = !1, u.value = !1, a.value = !1, w.value && (clearTimeout(w.value), w.value = null);
}, L = (Ce) => {
if (Ce && (Ce.preventDefault(), Ce.stopPropagation()), u.value) return;
w.value && (clearTimeout(w.value), w.value = null), u.value = !0;
const [Ve, Re] = I.value.split(":").map(Number);
le.value = Ve, ue.value = Re, rr(() => {
j();
});
}, j = () => {
if (m.value) {
const Ce = m.value.querySelectorAll(".el-time-item"), Ve = le.value;
if (Ce[Ve]) {
const xt = Math.max(
0,
Ve * 28 - 80 + 14
);
m.value.scrollTop = xt;
}
}
if (y.value) {
const Ce = y.value.querySelectorAll(".el-time-item"), Re = [0, 15, 30, 45].indexOf(ue.value);
if (Re >= 0 && Ce[Re]) {
const Ht = Math.max(
0,
Re * 28 - 80 + 14
);
y.value.scrollTop = Ht;
}
}
}, $ = () => {
u.value = !1;
}, re = () => {
I.value = `${String(le.value).padStart(2, "0")}:${String(ue.value).padStart(2, "0")}`, $();
}, pe = lt(() => Array.from({ length: 24 }, (Ce, Ve) => Ve)), de = lt(() => [0, 15, 30, 45]), ce = (Ce) => {
le.value = Ce;
}, Se = (Ce) => {
ue.value = Ce;
}, qe = () => {
if (e.type === "daterange") {
if (S.value && U.value) {
const Ce = (xt) => {
const Ht = new Date(xt), Mt = e.valueFormat.includes("-") ? "-" : "/", SA = `${Ht.getFullYear()}${Mt}${String(Ht.getMonth() + 1).padStart(2, "0")}${Mt}${String(Ht.getDate()).padStart(2, "0")}`;
return I.value ? `${SA} ${I.value}` : SA;
}, Ve = Ce(S.value), Re = Ce(U.value), $e = [Ve, Re];
A("update:modelValue", $e), A("change", $e), H.value = S.value, q.value = U.value;
}
} else if (O.value) {
const Ce = new Date(O.value), Ve = e.valueFormat.includes("-") ? "-" : "/", Re = `${Ce.getFullYear()}${Ve}${String(Ce.getMonth() + 1).padStart(2, "0")}${Ve}${String(Ce.getDate()).padStart(2, "0")}`, $e = I.value ? `${Re} ${I.value}` : Re;
A("update:modelValue", $e), A("change", $e), C.value = O.value, F.value = I.value;
}
setTimeout(() => {
x();
}, 150);
}, rt = (Ce) => {
var Ht, Mt, SA;
const Ve = Ce.target, Re = (Ht = h.value) == null ? void 0 : Ht.contains(Ve), $e = (Mt = g.value) == null ? void 0 : Mt.contains(Ve), xt = (SA = c.value) == null ? void 0 : SA.contains(Ve);
!Re && !$e && !xt ? x() : !xt && u.value && !$e && $();
}, at = { x: 0, y: 0 }, dt = () => {
if (i.value) {
const Ce = window.scrollX, Ve = window.scrollY, Re = Math.abs(Ce - at.x), $e = Math.abs(Ve - at.y);
Re < 50 && $e < 50 ? E.value++ : x(), at.x = Ce, at.y = Ve;
}
}, D = () => {
i.value && E.value++;
}, Ie = lt(() => {
const Ce = new Date(N.value, M.value, 1), Ve = new Date(Ce);
Ve.setDate(Ve.getDate() - Ce.getDay());
const Re = [];
for (let $e = 0; $e < 42; $e++) {
const xt = new Date(Ve);
xt.setDate(Ve.getDate() + $e);
const Ht = `${xt.getFullYear()}-${String(xt.getMonth() + 1).padStart(2, "0")}-${String(xt.getDate()).padStart(2, "0")}`, Mt = xt.getMonth() === M.value, SA = Ht === (/* @__PURE__ */ new Date()).toISOString().split("T")[0], JA = e.type === "daterange" ? Ht === S.value || Ht === U.value : Ht === O.value, Lt = e.type === "daterange" && S.value && U.value ? Ht >= S.value && Ht <= U.value : !1;
Re.push({
date: xt,
dateStr: Ht,
day: xt.getDate(),
isCurrentMonth: Mt,
isToday: SA,
isSelected: JA,
isInRange: Lt
});
}
return Re;
}), me = (Ce) => {
if (e.type === "daterange")
W.value === "start" || !S.value || S.value && U.value ? (S.value = Ce, U.value = "", W.value = "end") : (Ce < S.value ? (U.value = S.value, S.value = Ce) : U.value = Ce, W.value = "start");
else if (O.value = Ce, e.type === "date") {
const Ve = new Date(Ce), Re = e.valueFormat.includes("-") ? "-" : "/", $e = `${Ve.getFullYear()}${Re}${String(Ve.getMonth() + 1).padStart(2, "0")}${Re}${String(Ve.getDate()).padStart(2, "0")}`;
A("update:modelValue", $e), A("change", $e), C.value = O.value, setTimeout(() => {
x();
}, 150);
}
}, ve = (Ce) => {
Ce && (Ce.preventDefault(), Ce.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), M.value === 0 ? (M.value = 11, N.value--) : M.value--;
}, xe = (Ce) => {
Ce && (Ce.preventDefault(), Ce.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), M.value === 11 ? (M.value = 0, N.value++) : M.value++;
}, Qe = (Ce) => {
Ce && (Ce.preventDefault(), Ce.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), N.value--;
}, _e = (Ce) => {
Ce && (Ce.preventDefault(), Ce.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), N.value++;
}, Pe = (Ce) => {
Ce && (Ce.preventDefault(), Ce.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), o.value = !0, l.value = !1, k.value = Math.floor(N.value / 10) * 10;
}, je = (Ce) => {
Ce && (Ce.preventDefault(), Ce.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), l.value = !0, o.value = !1;
}, Ke = (Ce, Ve) => {
Ve && (Ve.preventDefault(), Ve.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), N.value = Ce, o.value = !1, l.value = !0;
}, et = (Ce, Ve) => {
Ve && (Ve.preventDefault(), Ve.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), M.value = Ce, l.value = !1;
}, ut = (Ce) => {
Ce && (Ce.preventDefault(), Ce.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), k.value -= 10;
}, yt = (Ce) => {
Ce && (Ce.preventDefault(), Ce.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), k.value += 10;
}, Ft = lt(() => {
const Ce = [];
for (let Ve = 0; Ve < 10; Ve++)
Ce.push(k.value + Ve);
return Ce;
});
En(() => {
document.addEventListener("click", rt), window.addEventListener("scroll", dt, !0), window.addEventListener("resize", D), at.x = window.scrollX, at.y = window.scrollY;
}), tn(() => {
document.removeEventListener("click", rt), window.removeEventListener("scroll", dt, !0), window.removeEventListener("resize", D), w.value && (clearTimeout(w.value), w.value = null);
});
const Bt = (Ce) => {
w.value && (clearTimeout(w.value), w.value = null), a.value = !0, A("focus", Ce);
}, St = (Ce) => {
w.value = setTimeout(() => {
a.value = !1, x(), A("blur", Ce);
}, 150);
}, bt = () => {
w.value && (clearTimeout(w.value), w.value = null);
}, nA = () => {
u.value || (w.value = setTimeout(() => {
x();
}, 150));
}, qt = () => {
w.value = setTimeout(() => {
$();
}, 150);
}, Ot = () => {
s.value = !0;
}, Pt = () => {
s.value = !1;
}, sA = lt(() => [
"el-date-picker",
`el-date-picker--${e.size}`,
{
"is-disabled": e.disabled,
"is-focused": a.value,
"is-range": e.type === "daterange"
}
]), kt = lt(() => !e.clearable || e.disabled ? !1 : e.type === "daterange" ? (S.value || U.value) && s.value : O.value && s.value), hA = lt(() => {
if (!h.value || !i.value) return {};
const Ce = h.value.getBoundingClientRect(), Ve = 280, Re = 300, $e = 4, xt = window.innerWidth, Ht = window.innerHeight, Mt = {
position: "fixed",
zIndex: "10000"
}, SA = Ht - Ce.bottom, JA = Ce.top;
SA >= Re + $e || SA >= JA ? Mt.top = `${Ce.bottom + $e}px` : Mt.top = `${Ce.top - Re - $e}px`;
const Lt = xt - Ce.left, Qr = Ce.right;
if (Lt >= Ve)
Mt.left = `${Ce.left}px`;
else if (Qr >= Ve)
Mt.left = `${Ce.right - Ve}px`;
else {
const PA = Ce.left + (Ce.width - Ve) / 2, CA = $e, MA = xt - Ve - $e;
Mt.left = `${Math.max(CA, Math.min(PA, MA))}px`;
}
const Fr = parseFloat(Mt.top), xr = parseFloat(Mt.left);
return Fr < $e ? Mt.top = `${$e}px` : Fr + Re > Ht - $e && (Mt.top = `${Ht - Re - $e}px`), xr < $e ? Mt.left = `${$e}px` : xr + Ve > xt - $e && (Mt.left = `${xt - Ve - $e}px`), Mt;
}), Nt = lt(() => {
if (!p.value || !u.value) return {};
const Ce = p.value.getBoundingClientRect(), Ve = 180, Re = 300, $e = 4, xt = window.innerWidth, Ht = window.innerHeight, Mt = {
position: "fixed",
zIndex: "10002"
// 比日历选择器层级更高
};
xt - Ce.left >= Ve ? Mt.left = `${Ce.left}px` : Mt.left = `${Math.max($e, xt - Ve - $e)}px`, Ce.top >= Re + $e ? Mt.top = `${Ce.top - Re - $e}px` : Mt.top = `${Ce.bottom + $e}px`;
const Lt = parseFloat(Mt.top);
return Lt < $e ? Mt.top = `${$e}px` : Lt + Re > Ht - $e && (Mt.top = `${Ht - Re - $e}px`), Mt;
});
return (Ce, Ve) => (ae(), fe("div", {
class: iA(sA.value),
onMouseenter: Ot,
onMouseleave: Pt
}, [
Y("div", {
ref_key: "inputRef",
ref: h,
class: "el-input",
onClick: oe
}, [
Y("div", S3, [
Y("div", U3, [
Y("input", {
value: ee.value,
type: "text",
class: "el-input__inner-input",
placeholder: Ce.type === "daterange" ? `${Ce.startPlaceholder} ${Ce.rangeSeparator} ${Ce.endPlaceholder}` : Ce.placeholder,
disabled: Ce.disabled,
readonly: "",
onFocus: Bt,
onBlur: St
}, null, 40, T3)
]),
Y("div", Q3, [
Y("div", D3, [
kt.value ? (ae(), fe("button", {
key: 0,
type: "button",
class: "el-input__clear",
onClick: NA(Ae, ["stop"])
}, Ve[12] || (Ve[12] = [
Y("svg", {
class: "el-icon",
viewBox: "0 0 1024 1024"
}, [
Y("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)
]))) : (ae(), fe("span", k3, Ve[13] || (Ve[13] = [
Y("svg", {
class: "el-icon",
viewBox: "0 0 1024 1024"
}, [
Y("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"
}),
Y("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"
}),
Y("path", {
fill: "currentColor",
d: "M96 320h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32z"
})
], -1)
])))
])
])
])
], 512),
(ae(), wr(To, { to: "body" }, [
$n(y0, { name: "picker-fade" }, {
default: fs(() => [
u.value ? (ae(), fe("div", {
key: 0,
ref_key: "timePickerRef",
ref: c,
class: "el-time-picker-panel",
style: rA(Nt.value),
tabindex: "-1",
onClick: Ve[4] || (Ve[4] = NA(() => {
}, ["stop"])),
onMousedown: Ve[5] || (Ve[5] = NA(() => {
}, ["prevent"])),
onFocus: bt,
onBlur: qt
}, [
Y("div", L3, [
Y("span", I3, Ge(vt(n).selectTime), 1)
]),
Y("div", _3, [
Y("div", N3, [
Y("div", M3, Ge(vt(n).hour), 1),
Y("div", {
ref_key: "hourListRef",
ref: m,
class: "el-time-column-list"
}, [
(ae(!0), fe(Ut, null, uA(pe.value, (Re) => (ae(), fe("div", {
key: Re,
class: iA(["el-time-item", { "is-active": Re === le.value }]),
onClick: NA(($e) => ce(Re), ["stop"]),
onMousedown: Ve[0] || (Ve[0] = NA(() => {
}, ["prevent"]))
}, Ge(String(Re).padStart(2, "0")), 43, O3))), 128))
], 512)
]),
Y("div", R3, [
Y("div", H3, Ge(vt(n).minute), 1),
Y("div", {
ref_key: "minuteListRef",
ref: y,
class: "el-time-column-list"
}, [
(ae(!0), fe(Ut, null, uA(de.value, (Re) => (ae(), fe("div", {
key: Re,
class: iA(["el-time-item", { "is-active": Re === ue.value }]),
onClick: NA(($e) => Se(Re), ["stop"]),
onMousedown: Ve[1] || (Ve[1] = NA(() => {
}, ["prevent"]))
}, Ge(String(Re).padStart(2, "0")), 43, P3))), 128))
], 512)
])
]),
Y("div", K3, [
Y("button", {
class: "el-time-picker-btn el-time-picker-btn--cancel",
onClick: NA($, ["stop"]),
onMousedown: Ve[2] || (Ve[2] = NA(() => {
}, ["prevent"]))
}, Ge(vt(n).cancel), 33),
Y("button", {
class: "el-time-picker-btn el-time-picker-btn--confirm",
onClick: NA(re, ["stop"]),
onMousedown: Ve[3] || (Ve[3] = NA(() => {
}, ["prevent"]))
}, Ge(vt(n).confirm), 33)
])
], 36)) : Ct("", !0)
]),
_: 1
})
])),
(ae(), wr(To, { to: "body" }, [
$n(y0, { name: "picker-fade" }, {
default: fs(() => [
i.value ? (ae(), fe("div", {
key: 0,
ref_key: "pickerRef",
ref: g,
class: "el-picker-panel",
style: rA(hA.value),
tabindex: "-1",
onFocus: bt,
onBlur: nA
}, [
o.value ? (ae(), fe("div", V3, [
Y("div", q3, [
Y("button", {
type: "button",
class: "el-picker-panel__icon-btn",
onClick: ut
}, " << "),
Y("span", j3, Ge(k.value) + " - " + Ge(k.value + 9), 1),
Y("button", {
type: "button",
class: "el-picker-panel__icon-btn",
onClick: yt
}, " >> ")
]),
Y("div", W3, [
(ae(!0), fe(Ut, null, uA(Ft.value, (Re) => (ae(), fe("div", {
key: Re,
class: iA(["el-year-picker__item", { "is-current": Re === N.value }]),
onClick: ($e) => Ke(Re, $e)
}, Ge(Re), 11, G3))), 128))
])
])) : l.value ? (ae(), fe("div", Y3, [
Y("div", $3, [
Y("button", {
type: "button",
class: "el-picker-panel__icon-btn",
onClick: Qe
}, " << "),
Y("span", {
class: "el-month-picker__header-label",
onClick: Ve[6] || (Ve[6] = (Re) => Pe(Re))
}, Ge(N.value), 1),
Y("button", {
type: "button",
class: "el-picker-panel__icon-btn",
onClick: _e
}, " >> ")
]),
Y("div", z3, [
(ae(!0), fe(Ut, null, uA(vt(n).monthNames, (Re, $e) => (ae(), fe("div", {
key: $e,
class: iA(["el-month-picker__item", { "is-current": $e === M.value }]),
onClick: (xt) => et($e, xt)
}, Ge(Re), 11, X3))), 128))
])
])) : (ae(), fe("div", J3, [
Y("div", Z3, [
Y("button", {
type: "button",
class: "el-picker-panel__icon-btn",
onClick: Qe
}, " << "),
Y("button", {
type: "button",
class: "el-picker-panel__icon-btn",
onClick: ve
}, " < "),
Y("span", eS, [
Y("span", {
class: "el-date-picker__header-year",
onClick: Ve[7] || (Ve[7] = (Re) => Pe(Re))
}, Ge(N.value), 1),
Y("span", {
class: "el-date-picker__header-month",
onClick: Ve[8] || (Ve[8] = (Re) => je(Re))
}, Ge(vt(n).monthNames[M.value]), 1)
]),
Y("button", {
type: "button",
class: "el-picker-panel__icon-btn",
onClick: xe
}, " > "),
Y("button", {
type: "button",
class: "el-picker-panel__icon-btn",
onClick: _e
}, " >> ")
]),
Y("div", tS, [
Y("div", AS, [
(ae(!0), fe(Ut, null, uA(vt(n).weekDays, (Re) => (ae(), fe("div", {
key: Re,
class: "el-date-table__header-cell"
}, Ge(Re), 1))), 128))
]),
Y("div", rS, [
(ae(!0), fe(Ut, null, uA(Ie.value, (Re) => (ae(), fe("div", {
key: `${Re.date.getTime()}`,
class: iA(["el-date-table__cell", {
"is-other-month": !Re.isCurrentMonth,
"is-today": Re.isToday,
"is-selected": Re.isSelected,
"is-in-range": Re.isInRange,
"is-range-start": Ce.type === "daterange" && Re.dateStr === S.value,
"is-range-end": Ce.type === "daterange" && Re.dateStr === U.value
}]),
onClick: ($e) => me(Re.dateStr)
}, [
Y("div", aS, Ge(Re.day), 1)
], 10, nS))), 128))
])
]),
Ce.type === "datetime" ? (ae(), fe("div", iS, [
Y("label", sS, Ge(vt(n).time) + ":", 1),
Y("input", {
id: "time-input",
ref_key: "timeInputRef",
ref: p,
type: "text",
class: "el-time-input",
value: I.value,
placeholder: vt(n).selectTime,
readonly: "",
onClick: Ve[9] || (Ve[9] = (Re) => L(Re)),
onMousedown: Ve[10] || (Ve[10] = NA(() => {
}, ["prevent"]))
}, null, 40, oS)
])) : Ct("", !0),
Ce.type === "datetime" ? (ae(), fe("div", lS, [
Y("button", {
class: "el-date-picker-btn el-date-picker-btn--confirm",
onClick: NA(qe, ["stop"]),
onMousedown: Ve[11] || (Ve[11] = NA(() => {
}, ["prevent"]))
}, Ge(vt(n).confirm), 33)
])) : Ct("", !0)
]))
], 36)) : Ct("", !0)
]),
_: 1
})
]))
], 34));
}
}), Jg = /* @__PURE__ */ xn(uS, [["__scopeId", "data-v-7516f998"]]), cS = { class: "multi-select-predecessor" }, fS = {
class: "form-label",
for: "predecessor-select"
}, hS = { class: "predecessor-selector" }, dS = {
key: 0,
class: "selected-tags"
}, gS = ["onClick"], pS = { class: "select-wrapper" }, vS = { value: "" }, mS = ["value"], wS = /* @__PURE__ */ dn({
__name: "MultiSelectPredecessor",
props: {
modelValue: { default: () => [] },
tasks: {},
currentTaskId: { default: void 0 },
label: { default: "前置任务" },
placeholder: { default: "请选择前置任务" }
},
emits: ["update:modelValue"],
setup(r, { emit: t }) {
const e = r, A = t, n = Te(""), a = lt(() => e.modelValue || []), s = lt(() => a.value.map((u) => e.tasks.find((h) => h.id === u)).filter((u) => u)), i = lt(() => e.tasks.filter(
(u) => u.type === "task" && u.id !== e.currentTaskId && !a.value.includes(u.id)
)), o = () => {
if (n.value) {
const u = Number(n.value);
if (!a.value.includes(u)) {
const h = [...a.value, u];
A("update:modelValue", h);
}
n.value = "";
}
}, l = (u) => {
const h = a.value.filter((g) => g !== u);
A("update:modelValue", h);
};
return EA(
() => e.modelValue,
() => {
n.value = "";
},
{ immediate: !0 }
), (u, h) => (ae(), fe("div", cS, [
Y("label", fS, Ge(u.label), 1),
Y("div", hS, [
s.value.length > 0 ? (ae(), fe("div", dS, [
(ae(!0), fe(Ut, null, uA(s.value, (g) => (ae(), fe("span", {
key: g.id,
class: "predecessor-tag"
}, [
kA(Ge(g.name) + " (" + Ge(g.id) + ") ", 1),
Y("button", {
type: "button",
class: "remove-tag-btn",
onClick: (c) => l(g.id)
}, " × ", 8, gS)
]))), 128))
])) : Ct("", !0),
Y("div", pS, [
Ba(Y("select", {
id: "predecessor-select",
"onUpdate:modelValue": h[0] || (h[0] = (g) => n.value = g),
class: "form-select",
onChange: o
}, [
Y("option", vS, Ge(u.placeholder), 1),
(ae(!0), fe(Ut, null, uA(i.value, (g) => (ae(), fe("option", {
key: g.id,
value: g.id
}, Ge(g.name) + " (ID: " + Ge(g.id) + ") ", 9, mS))), 128))
], 544), [
[Wu, n.value]
])
])
])
]));
}
}), BS = /* @__PURE__ */ xn(wS, [["__scopeId", "data-v-3bddb4ad"]]), yS = {
class: "drawer-header",
style: { display: "flex", "align-items": "center", "justify-content": "flex-start", gap: "8px" }
}, bS = {
class: "drawer-title",
style: { margin: "0" }
}, CS = {
key: 0,
class: "drawer-timer",
style: { display: "flex", "align-items": "center", gap: "6px", "margin-left": "8px" }
}, ES = {
width: "24",
height: "24",
viewBox: "0 0 24 24",
fill: "none",
style: { display: "block", margin: "0 auto" }
}, FS = {
key: 0,
class: "timer-dot",
style: { background: "#67c23a", width: "7px", height: "7px", "border-radius": "50%", "margin-right": "5px", animation: "pulse 1s infinite" }
}, xS = {
class: "close-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
style: { "vertical-align": "middle" }
}, SS = { class: "drawer-body" }, US = { class: "form-group" }, TS = {
class: "form-label",
for: "task-name"
}, QS = ["placeholder"], DS = {
key: 0,
class: "error-text"
}, kS = { class: "form-group" }, LS = {
class: "form-label",
for: "task-type"
}, IS = { value: "story" }, _S = { value: "task" }, NS = { value: "bug" }, MS = {
key: 0,
class: "error-text"
}, OS = { class: "form-group" }, RS = {
class: "form-label",
for: "task-assignee"
}, HS = { value: "" }, PS = ["value"], KS = { class: "form-group" }, VS = {
class: "form-label",
for: "task-parent"
}, qS = { value: void 0 }, jS = ["value"], WS = { class: "form-row" }, GS = { class: "form-group" }, YS = {
class: "form-label",
for: "task-start-date"
}, $S = {
key: 0,
class: "error-text"
}, zS = { class: "form-group" }, XS = {
class: "form-label",
for: "task-end-date"
}, JS = {
key: 0,
class: "error-text"
}, ZS = { class: "form-row" }, eU = { class: "form-group" }, tU = {
class: "form-label",
for: "task-estimated-hours"
}, AU = { class: "form-group" }, rU = {
class: "form-label",
for: "task-actual-hours"
}, nU = { class: "form-group" }, aU = {
class: "form-label",
for: "task-progress"
}, iU = { class: "progress-container" }, sU = { class: "progress-input-group" }, oU = { class: "form-group" }, lU = {
class: "form-label",
for: "task-description"
}, uU = ["placeholder"], cU = { class: "drawer-footer" }, fU = { class: "footer-left" }, hU = ["disabled"], dU = {
key: 0,
class: "loading-spinner"
}, gU = { class: "footer-right" }, pU = ["disabled"], vU = {
key: 0,
class: "loading-spinner"
}, mU = /* @__PURE__ */ dn({
__name: "TaskDrawer",
props: {
visible: { type: Boolean, default: !1 },
task: { default: null },
isEdit: { type: Boolean, default: !1 },
onDelete: { type: Function, default: void 0 },
assigneeOptions: { default: () => [
{ value: "zhangsan", label: "张三" },
{ value: "lisi", label: "李四" },
{ value: "wangwu", label: "王五" },
{ value: "zhaoliu", label: "赵六" },
{ value: "qianqi", label: "钱七" }
] }
},
emits: ["update:visible", "submit", "close", "delete", "start-timer", "stop-timer"],
setup(r, { emit: t }) {
const e = r, A = t, { t: n } = Ma(), { showMessage: a } = Ky(), s = Te(!1), i = Te(e.visible), o = Te(!1), l = Te(0), u = Te(null), h = lt(() => {
var me;
return (me = e.task) == null ? void 0 : me.isTimerRunning;
}), g = lt(() => {
var me;
return (me = e.task) == null ? void 0 : me.timerStartTime;
}), c = lt(() => {
var me;
return ((me = e.task) == null ? void 0 : me.timerElapsedTime) || 0;
}), p = lt(() => {
const me = Math.floor(l.value / 1e3), ve = Math.floor(me / 3600), xe = Math.floor(me % 3600 / 60), Qe = me % 60;
return `${String(ve).padStart(2, "0")}:${String(xe).padStart(2, "0")}:${String(Qe).padStart(2, "0")}`;
}), m = () => {
h.value && g.value ? l.value = Date.now() - g.value + c.value : l.value = c.value;
};
EA(
() => {
var me, ve, xe;
return [(me = e.task) == null ? void 0 : me.isTimerRunning, (ve = e.task) == null ? void 0 : ve.timerStartTime, (xe = e.task) == null ? void 0 : xe.timerElapsedTime];
},
() => {
m();
}
);
const y = Te(!1);
EA(
() => {
var me;
return (me = e.task) == null ? void 0 : me.isTimerRunning;
},
(me) => {
y.value = !!me, !me && u.value && (clearInterval(u.value), u.value = null);
},
{ immediate: !0 }
), EA(
[y, g, c],
() => {
u.value && (clearInterval(u.value), u.value = null), y.value && g.value ? (m(), u.value = window.setInterval(m, 1e3)) : m();
},
{ immediate: !0 }
), tn(() => {
u.value && clearInterval(u.value);
});
const w = lt(() => {
var me;
return ((me = e.task) == null ? void 0 : me.type) === "story" ? "yes-no-cancel" : "confirm-cancel";
}), E = lt(() => {
var me, ve, xe;
return ((me = e.task) == null ? void 0 : me.type) === "story" ? n.value.confirmDeleteStory.replace("{name}", ((ve = e.task) == null ? void 0 : ve.name) || "") : n.value.confirmDeleteTask.replace("{name}", ((xe = e.task) == null ? void 0 : xe.name) || "");
}), C = lc({
id: 0,
// 默认值,创建时会被重新分配
name: "",
type: "task",
assignee: "",
startDate: "",
endDate: "",
predecessor: [],
estimatedHours: 0,
actualHours: 0,
progress: 0,
description: "",
parentId: void 0,
// 上级任务ID
isTimerRunning: !1,
// 是否正在计时
timerStartTime: void 0,
// 计时器开始时间
timerEndTime: void 0,
// 计时器结束时间
timerElapsedTime: 0,
// 计时器已用时间
children: void 0
// 子任务列表
}), F = Te([]), H = lt(() => F.value.filter(
(me) => {
var ve;
return me.id !== ((ve = e.task) == null ? void 0 : ve.id) && // 排除当前任务自己
(me.type === "story" || me.type === "task");
}
// 只显示story和task类型
).map((me) => ({
...me,
displayName: `${me.name} (${q(me.type || "task")})`
}))), q = (me) => {
var ve;
return ((ve = n.value.taskTypeMap) == null ? void 0 : ve[me]) || me;
}, N = lt(() => ({
"--progress-percent": `${C.progress || 0}%`
})), M = Te("0"), k = (me) => {
const ve = me.target;
let xe = ve.value;
xe = xe.replace(/[^\d]/g, ""), ve.value = xe, M.value = xe;
}, O = () => {
const me = M.value;
let ve = parseInt(me) || 0;
ve < 0 || isNaN(ve) ? ve = 0 : ve > 100 && (ve = 100), C.progress = ve, M.value = ve.toString();
}, S = (me) => {
const ve = me.target;
let xe = parseFloat(ve.value);
isNaN(xe) || xe < 0 ? xe = 0 : xe > 99999 && (xe = 99999), C.estimatedHours = Math.round(xe * 100) / 100;
}, U = (me) => {
const ve = me.target;
let xe = parseFloat(ve.value);
isNaN(xe) || xe < 0 ? xe = 0 : xe > 99999 && (xe = 99999), C.actualHours = Math.round(xe * 100) / 100;
}, W = (me) => {
const ve = me.target;
setTimeout(() => {
ve.select();
}, 0);
}, I = (me) => {
const ve = me.key, xe = [
"Backspace",
"Delete",
"Tab",
"Escape",
"Enter",
"ArrowLeft",
"ArrowRight",
"ArrowUp",
"ArrowDown",
"Home",
"End",
"Control",
"Meta",
"Alt",
"Shift"
], Qe = /^\d$/.test(ve), _e = xe.includes(ve);
me.ctrlKey || me.metaKey || !Qe && !_e && me.preventDefault();
}, le = (me, ve) => {
if (!me) return "";
if (typeof me == "string" && /^\d{4}-\d{2}-\d{2}$/.test(me.trim())) {
if (ve === "start")
return `${me} 00:00`;
if (ve === "end") {
const xe = new Date(me);
xe.setDate(xe.getDate() + 1);
const Qe = xe.getFullYear(), _e = String(xe.getMonth() + 1).padStart(2, "0"), Pe = String(xe.getDate()).padStart(2, "0");
return `${Qe}-${_e}-${Pe} 00:00`;
}
}
return me;
}, ue = lc({
name: "",
type: "",
startDate: "",
endDate: ""
});
EA(
() => e.visible,
(me) => {
if (i.value = me, me) {
if (e.task && e.isEdit) {
Z();
const ve = { ...e.task };
ve.startDate = le(ve.startDate, "start"), ve.endDate = le(ve.endDate, "end"), rr(() => {
Object.assign(C, ve);
});
} else e.task && !e.isEdit ? (Z(), C.parentId = e.task.parentId ?? void 0, C.predecessor = e.task.predecessor ?? []) : Z();
window.dispatchEvent(new CustomEvent("request-task-list"));
}
}
), EA(i, (me) => {
A("update:visible", me);
}), EA(
() => e.task,
(me) => {
me && !e.isEdit && (C.parentId = me.parentId ?? void 0);
},
{ immediate: !0 }
);
const Z = () => {
Object.assign(C, {
name: "",
type: "task",
assignee: "",
startDate: "",
endDate: "",
predecessor: [],
estimatedHours: 0,
actualHours: 0,
progress: 0,
description: "",
parentId: void 0,
isTimerRunning: !1,
timerStartTime: void 0,
timerEndTime: void 0,
timerElapsedTime: 0,
children: void 0
}), Object.keys(ue).forEach((me) => {
ue[me] = "";
});
}, ee = () => {
var ve;
let me = !0;
return Object.keys(ue).forEach((xe) => {
ue[xe] = "";
}), (ve = C.name) != null && ve.trim() ? C.name.length > 50 && (ue.name = n.value.taskNameTooLong, me = !1) : (ue.name = n.value.taskNameRequired, me = !1), C.type || (ue.type = n.value.taskTypeRequired, me = !1), C.startDate || (ue.startDate = n.value.startDateRequired, me = !1), C.endDate ? C.startDate && new Date(C.endDate) < new Date(C.startDate) && (ue.endDate = n.value.endDateInvalid, me = !1) : (ue.endDate = n.value.endDateRequired, me = !1), me;
}, X = () => {
i.value = !1, A("close");
}, Ae = () => {
X();
}, oe = async () => {
if (ee())
try {
s.value = !0;
const me = {
...C,
id: e.isEdit && e.task ? e.task.id : Date.now()
};
A("submit", me), X();
} catch {
} finally {
s.value = !1;
}
}, x = () => {
o.value = !0;
}, L = (me) => {
let ve = "";
me && typeof me == "object" && "message" in me && typeof me.message == "string" ? ve = me.message : ve = String(me), a(ve, "error", { closable: !0 });
}, j = () => {
if (o.value = !1, e.task && e.isEdit)
try {
s.value = !0, A("delete", e.task), X();
} catch (me) {
L(me);
} finally {
s.value = !1;
}
}, $ = () => {
o.value = !1;
}, re = () => {
if (o.value = !1, e.task && e.isEdit)
try {
s.value = !0, A("delete", e.task, !0), X();
} catch (me) {
L(me);
} finally {
s.value = !1;
}
}, pe = () => {
if (o.value = !1, e.task && e.isEdit)
try {
s.value = !0, A("delete", e.task, !1), X();
} catch (me) {
L(me);
} finally {
s.value = !1;
}
}, de = (me) => {
F.value = me.detail || [];
};
En(() => {
window.addEventListener("task-list-updated", de), window.dispatchEvent(new CustomEvent("request-task-list"));
}), tn(() => {
window.removeEventListener("task-list-updated", de);
}), EA(
() => C.progress,
(me) => {
M.value = (me || 0).toString();
},
{ immediate: !0 }
), EA(
() => e.visible,
(me) => {
me && e.task && e.task.type !== "story" && (l.value = e.task.timerElapsedTime || 0, e.task.isTimerRunning || u.value && (clearInterval(u.value), u.value = null));
},
{ immediate: !0 }
);
const ce = (me) => {
const ve = Date.now();
e.task && typeof e.task == "object" && (Object.assign(e.task, {
timerStartTime: ve,
isTimerRunning: !0,
timerElapsedTime: 0,
// 每次从0秒开始
timerStartDesc: me || ""
}), A("start-timer", e.task)), l.value = 0, y.value = !0, m(), u.value && (clearInterval(u.value), u.value = null), window.dispatchEvent(new CustomEvent("start-timer", { detail: e.task }));
}, Se = () => {
e.task && typeof e.task == "object" && A("stop-timer", e.task), y.value = !1, u.value && (clearInterval(u.value), u.value = null), m(), window.dispatchEvent(new CustomEvent("stop-timer", { detail: e.task }));
}, qe = Te(!1), rt = Te("");
function at() {
var me;
rt.value = ((me = e.task) == null ? void 0 : me.name) || "", qe.value = !0;
}
function dt() {
qe.value = !1;
}
function D(me) {
qe.value = !1, ce(me);
}
const Ie = (me) => {
var Qe;
const ve = me.target.value, xe = (Qe = e.assigneeOptions) == null ? void 0 : Qe.find((_e) => _e.value === ve);
xe && (C.assigneeName = xe.label);
};
return (me, ve) => {
var xe, Qe, _e, Pe;
return ae(), fe(Ut, null, [
i.value ? (ae(), fe("div", {
key: 0,
class: "drawer-overlay",
onClick: Ae
}, [
Y("div", {
class: "drawer-container",
onClick: ve[12] || (ve[12] = NA(() => {
}, ["stop"]))
}, [
Y("div", yS, [
Y("h3", bS, Ge(me.isEdit ? vt(n).editTask : vt(n).newTask), 1),
((xe = e.task) == null ? void 0 : xe.type) !== "story" && me.isEdit ? (ae(), fe("div", CS, [
y.value ? (ae(), fe("button", {
key: 1,
class: "timer-btn stop minimal",
title: "停止计时",
style: { width: "24px", height: "24px", background: "#f44336", border: "none", padding: "0", margin: "0", "box-shadow": "none", cursor: "pointer", "border-radius": "50%", display: "flex", "align-items": "center", "justify-content": "center", transition: "background 0.2s" },
onClick: NA(Se, ["stop"])
}, ve[14] || (ve[14] = [
Y("svg", {
width: "24",
height: "24",
viewBox: "0 0 24 24",
fill: "none"
}, [
Y("circle", {
cx: "12",
cy: "12",
r: "11",
stroke: "#f44336",
"stroke-width": "2",
fill: "#f44336"
}),
Y("rect", {
x: "7",
y: "7",
width: "10",
height: "10",
fill: "#fff",
rx: "1.5"
})
], -1)
]))) : (ae(), fe("button", {
key: 0,
class: "timer-btn start minimal",
title: "开始计时",
style: { width: "24px", height: "24px", background: "#4caf50", border: "none", padding: "0", margin: "0", "box-shadow": "none", cursor: "pointer", "border-radius": "50%", display: "flex", "align-items": "center", "justify-content": "center", transition: "background 0.2s" },
onClick: NA(at, ["stop"])
}, [
(ae(), fe("svg", ES, ve[13] || (ve[13] = [
Y("circle", {
cx: "12",
cy: "12",
r: "11",
stroke: "#4caf50",
"stroke-width": "2",
fill: "#4caf50"
}, null, -1),
Y("polygon", {
points: "9,7 18,12 9,17",
fill: "#fff"
}, null, -1)
])))
])),
y.value ? (ae(), fe("span", {
key: 2,
class: iA(["timer-badge", { "timer-active": y.value }]),
style: { "margin-left": "8px", "font-size": "13px", "font-weight": "700", padding: "2px 10px", "border-radius": "10px", background: "#fffbe6", color: "#e6a23c", "box-shadow": "0 0 0 1px #ffe58f", display: "inline-flex", "align-items": "center", "min-width": "80px", "justify-content": "center" }
}, [
y.value ? (ae(), fe("span", FS)) : Ct("", !0),
kA(" " + Ge(p.value), 1)
], 2)) : Ct("", !0)
])) : Ct("", !0),
ve[16] || (ve[16] = Y("div", { style: { flex: "1" } }, null, -1)),
Y("button", {
class: "drawer-close-btn",
type: "button",
onClick: X
}, [
(ae(), fe("svg", xS, ve[15] || (ve[15] = [
Y("line", {
x1: "18",
y1: "6",
x2: "6",
y2: "18"
}, null, -1),
Y("line", {
x1: "6",
y1: "6",
x2: "18",
y2: "18"
}, null, -1)
])))
])
]),
Y("div", SS, [
Y("form", {
class: "task-form",
onSubmit: NA(oe, ["prevent"])
}, [
Y("div", US, [
Y("label", TS, [
kA(Ge(vt(n).taskName) + " ", 1),
ve[17] || (ve[17] = Y("span", { class: "required" }, "*", -1))
]),
Ba(Y("input", {
id: "task-name",
"onUpdate:modelValue": ve[0] || (ve[0] = (je) => C.name = je),
type: "text",
class: iA(["form-input", { error: ue.name }]),
placeholder: vt(n).taskNamePlaceholder
}, null, 10, QS), [
[Di, C.name]
]),
ue.name ? (ae(), fe("span", DS, Ge(ue.name), 1)) : Ct("", !0)
]),
Y("div", kS, [
Y("label", LS, [
kA(Ge(vt(n).taskType) + " ", 1),
ve[18] || (ve[18] = Y("span", { class: "required" }, "*", -1))
]),
Ba(Y("select", {
id: "task-type",
"onUpdate:modelValue": ve[1] || (ve[1] = (je) => C.type = je),
class: iA(["form-select", { error: ue.type }])
}, [
Y("option", IS, Ge(vt(n).taskTypeMap.story), 1),
Y("option", _S, Ge(vt(n).taskTypeMap.task), 1),
Y("option", NS, Ge(vt(n).taskTypeMap.bug), 1)
], 2), [
[Wu, C.type]
]),
ue.type ? (ae(), fe("span", MS, Ge(ue.type), 1)) : Ct("", !0)
]),
Y("div", OS, [
Y("label", RS, Ge(vt(n).assignee), 1),
Ba(Y("select", {
id: "task-assignee",
"onUpdate:modelValue": ve[2] || (ve[2] = (je) => C.assignee = je),
class: "form-select",
onChange: Ie
}, [
Y("option", HS, Ge(vt(n).selectAssignee), 1),
(ae(!0), fe(Ut, null, uA(e.assigneeOptions, (je) => (ae(), fe("option", {
key: je.key ?? je.value,
value: je.value
}, Ge(je.label), 9, PS))), 128))
], 544), [
[Wu, C.assignee]
])
]),
Y("div", KS, [
Y("label", VS, Ge(vt(n).parentTask), 1),
Ba(Y("select", {
id: "task-parent",
"onUpdate:modelValue": ve[3] || (ve[3] = (je) => C.parentId = je),
class: "form-select"
}, [
Y("option", qS, Ge(vt(n).noParentTask), 1),
(ae(!0), fe(Ut, null, uA(H.value, (je) => (ae(), fe("option", {
key: je.id,
value: je.id
}, Ge(je.displayName), 9, jS))), 128))
], 512), [
[Wu, C.parentId]
])
]),
Y("div", WS, [
Y("div", GS, [
Y("label", YS, [
kA(Ge(vt(n).startDate) + " ", 1),
ve[19] || (ve[19] = Y("span", { class: "required" }, "*", -1))
]),
$n(Jg, {
id: "task-start-date",
modelValue: C.startDate,
"onUpdate:modelValue": ve[4] || (ve[4] = (je) => C.startDate = je),
type: "datetime",
"value-format": "YYYY-MM-DD HH:mm",
placeholder: vt(n).startDateRequired,
class: iA({ error: ue.startDate })
}, null, 8, ["modelValue", "placeholder", "class"]),
ue.startDate ? (ae(), fe("span", $S, Ge(ue.startDate), 1)) : Ct("", !0)
]),
Y("div", zS, [
Y("label", XS, [
kA(Ge(vt(n).endDate) + " ", 1),
ve[20] || (ve[20] = Y("span", { class: "required" }, "*", -1))
]),
$n(Jg, {
id: "task-end-date",
modelValue: C.endDate,
"onUpdate:modelValue": ve[5] || (ve[5] = (je) => C.endDate = je),
type: "datetime",
"value-format": "YYYY-MM-DD HH:mm",
placeholder: vt(n).endDateRequired,
class: iA({ error: ue.endDate })
}, null, 8, ["modelValue", "placeholder", "class"]),
ue.endDate ? (ae(), fe("span", JS, Ge(ue.endDate), 1)) : Ct("", !0)
])
]),
$n(BS, {
modelValue: C.predecessor,
"onUpdate:modelValue": ve[6] || (ve[6] = (je) => C.predecessor = je),
tasks: F.value,
"current-task-id": (Qe = e.task) == null ? void 0 : Qe.id,
label: vt(n).predecessor,
placeholder: vt(n).predecessorPlaceholder
}, null, 8, ["modelValue", "tasks", "current-task-id", "label", "placeholder"]),
Y("div", ZS, [
Y("div", eU, [
Y("label", tU, Ge(vt(n).estimatedHours), 1),
Ba(Y("input", {
id: "task-estimated-hours",
"onUpdate:modelValue": ve[7] || (ve[7] = (je) => C.estimatedHours = je),
type: "number",
class: "form-input",
placeholder: "0.00",
min: "0",
max: "99999",
step: "0.01",
onInput: S
}, null, 544), [
[Di, C.estimatedHours]
])
]),
Y("div", AU, [
Y("label", rU, Ge(vt(n).actualHours), 1),
Ba(Y("input", {
id: "task-actual-hours",
"onUpdate:modelValue": ve[8] || (ve[8] = (je) => C.actualHours = je),
type: "number",
class: "form-input",
placeholder: "0.00",
min: "0",
max: "99999",
step: "0.01",
onInput: U
}, null, 544), [
[Di, C.actualHours]
])
])
]),
Y("div", nU, [
Y("label", aU, Ge(vt(n).progress), 1),
Y("div", iU, [
Ba(Y("input", {
id: "task-progress",
"onUpdate:modelValue": ve[9] || (ve[9] = (je) => C.progress = je),
type: "range",
class: "progress-slider",
style: rA(N.value),
min: "0",
max: "100",
step: "5"
}, null, 4), [
[
Di,
C.progress,
void 0,
{ number: !0 }
]
]),
Y("div", sU, [
Ba(Y("input", {
"onUpdate:modelValue": ve[10] || (ve[10] = (je) => M.value = je),
type: "text",
class: "progress-input",
placeholder: "0",
maxlength: "3",
onBlur: O,
onKeyup: tE(O, ["enter"]),
onInput: k,
onFocus: W,
onKeydown: I
}, null, 544), [
[Di, M.value]
]),
ve[21] || (ve[21] = Y("span", { class: "progress-unit" }, "%", -1))
])
])
]),
Y("div", oU, [
Y("label", lU, Ge(vt(n).description), 1),
Ba(Y("textarea", {
id: "task-description",
"onUpdate:modelValue": ve[11] || (ve[11] = (je) => C.description = je),
class: "form-textarea",
placeholder: vt(n).descriptionPlaceholder,
rows: "3"
}, null, 8, uU), [
[Di, C.description]
])
])
], 32)
]),
Y("div", cU, [
Y("div", fU, [
me.isEdit && me.task ? (ae(), fe("button", {
key: 0,
type: "button",
class: "gantt-btn gantt-btn-danger",
disabled: s.value,
onClick: x
}, [
s.value ? (ae(), fe("span", dU)) : Ct("", !0),
kA(" " + Ge(vt(n).delete), 1)
], 8, hU)) : Ct("", !0),
$n($p, {
visible: o.value,
title: vt(n).delete,
type: w.value,
message: E.value,
"confirm-text": vt(n).confirm,
"cancel-text": vt(n).cancel,
"yes-text": vt(n).storyDeleteYes,
"no-text": vt(n).storyDeleteNo,
onConfirm: j,
onYes: re,
onNo: pe,
onCancel: $
}, null, 8, ["visible", "title", "type", "message", "confirm-text", "cancel-text", "yes-text", "no-text"])
]),
Y("div", gU, [
Y("button", {
type: "button",
class: "gantt-btn gantt-btn-default",
onClick: X
}, Ge(vt(n).cancel), 1),
Y("button", {
type: "button",
class: "gantt-btn gantt-btn-primary",
disabled: s.value,
onClick: oe
}, [
s.value ? (ae(), fe("span", vU)) : Ct("", !0),
kA(" " + Ge(me.isEdit ? vt(n).update : vt(n).create), 1)
], 8, pU)
])
])
])
])) : Ct("", !0),
qe.value ? (ae(), wr(Ry, {
key: 1,
visible: qe.value,
title: "确认开始计时",
message: `即将为任务${(_e = e.task) == null ? void 0 : _e.name}计时,若有特殊说明请完善下面的描述`,
"default-desc": ((Pe = e.task) == null ? void 0 : Pe.name) || "",
onConfirm: D,
onCancel: dt
}, null, 8, ["visible", "message", "default-desc"])) : Ct("", !0)
], 64);
};
}
}), wU = /* @__PURE__ */ xn(mU, [["__scopeId", "data-v-5d6778b8"]]), BU = { class: "milestone-dialog-header" }, yU = { class: "milestone-dialog-title" }, bU = ["title"], CU = { class: "milestone-dialog-content" }, EU = { class: "milestone-form-row" }, FU = { class: "milestone-form-item milestone-form-item-full" }, xU = {
class: "milestone-form-label required",
for: "milestone-name"
}, SU = ["placeholder"], UU = {
key: 0,
class: "milestone-form-error"
}, TU = { class: "milestone-form-row" }, QU = { class: "milestone-form-item" }, DU = {
class: "milestone-form-label required",
for: "milestone-date"
}, kU = {
key: 0,
class: "milestone-form-error"
}, LU = { class: "milestone-form-item" }, IU = {
class: "milestone-form-label",
for: "milestone-icon"
}, _U = ["aria-expanded"], NU = { class: "selected-icon" }, MU = {
key: 0,
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, OU = {
key: 1,
class: "rocket-emoji-mini"
}, RU = {
key: 0,
class: "milestone-icon-options"
}, HU = { class: "milestone-form-row" }, PU = { class: "milestone-form-item milestone-form-item-full" }, KU = {
class: "milestone-form-label",
for: "milestone-description"
}, VU = { class: "textarea-wrapper" }, qU = ["placeholder"], jU = { class: "textarea-footer" }, WU = { class: "char-count" }, GU = { class: "milestone-dialog-footer" }, YU = { class: "milestone-dialog-footer-left" }, $U = { class: "milestone-dialog-footer-right" }, zU = ["disabled"], XU = /* @__PURE__ */ dn({
__name: "MilestoneDialog",
props: {
visible: { type: Boolean },
milestone: {}
},
emits: ["update:visible", "close", "save", "delete"],
setup(r, { emit: t }) {
const e = r, A = t, n = lc({
id: void 0,
name: "",
startDate: "",
assignee: "",
type: "milestone",
icon: "diamond",
description: ""
}), a = lc({
name: "",
startDate: ""
}), s = Te(!1), i = Te(!1), o = Te(null), l = () => {
const q = o.value;
q && (q.style.height = "auto", q.style.height = `${Math.min(q.scrollHeight, 120)}px`);
};
EA(
() => e.milestone,
(q) => {
q ? Object.assign(n, {
id: q.id,
name: q.name || "",
startDate: q.startDate || "",
assignee: q.assignee || "",
type: q.type || "milestone",
icon: q.icon || "diamond",
description: q.description || ""
}) : Object.assign(n, {
id: void 0,
name: "",
startDate: "",
assignee: "",
type: "milestone",
icon: "diamond",
description: ""
}), a.name = "", a.startDate = "";
},
{ immediate: !0 }
), EA(
() => e.visible,
(q) => {
q && !e.milestone && (Object.assign(n, {
id: void 0,
name: "",
startDate: "",
assignee: "",
type: "milestone",
icon: "diamond",
description: ""
}), a.name = "", a.startDate = "");
}
);
const u = () => {
a.name = "", a.startDate = "";
let q = !0;
return n.name.trim() || (a.name = H("milestoneNameRequired"), q = !1), n.startDate || (a.startDate = H("milestoneDateRequired"), q = !1), q;
}, h = lt(() => n.name.trim() && n.startDate), g = (q) => {
n.icon = q, s.value = !1;
}, c = () => {
if (u()) {
const q = {
...n,
endDate: n.startDate,
id: n.id
// 确保id不为undefined
};
A("save", q), E();
}
}, p = () => {
n.id && (i.value = !0);
}, m = () => {
n.id && (A("delete", n.id), i.value = !1, E());
}, y = () => {
i.value = !1;
}, w = lt(() => e.milestone && e.milestone.id), E = () => {
s.value = !1, A("update:visible", !1), A("close");
}, C = () => {
E();
}, { t: F } = Ma(), H = (q) => F.value[q] || q;
return (q, N) => {
var M;
return q.visible ? (ae(), fe("div", {
key: 0,
class: "milestone-dialog-overlay",
onClick: C
}, [
Y("div", {
class: "milestone-dialog",
onClick: N[6] || (N[6] = NA(() => {
}, ["stop"]))
}, [
Y("div", BU, [
Y("h3", yU, [
N[7] || (N[7] = Y("svg", {
class: "milestone-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, [
Y("g", { transform: "rotate(45 12 12)" }, [
Y("rect", {
x: "4",
y: "4",
width: "16",
height: "16",
rx: "4",
ry: "4",
fill: "currentColor",
opacity: "0.1"
}),
Y("rect", {
x: "4",
y: "4",
width: "16",
height: "16",
rx: "4",
ry: "4",
stroke: "currentColor",
fill: "none"
})
])
], -1)),
kA(" " + Ge(w.value ? vt(F).editMilestone : vt(F).newMilestone), 1)
]),
Y("button", {
class: "milestone-dialog-close",
title: H("close"),
onClick: E
}, "×", 8, bU)
]),
Y("div", CU, [
Y("form", {
class: "milestone-form",
onSubmit: NA(c, ["prevent"])
}, [
Y("div", EU, [
Y("div", FU, [
Y("label", xU, Ge(H("milestoneName")), 1),
Ba(Y("input", {
id: "milestone-name",
"onUpdate:modelValue": N[0] || (N[0] = (k) => n.name = k),
type: "text",
class: iA(["milestone-form-input", { error: a.name }]),
placeholder: H("enterMilestoneName"),
required: ""
}, null, 10, SU), [
[Di, n.name]
]),
a.name ? (ae(), fe("span", UU, Ge(a.name), 1)) : Ct("", !0)
])
]),
Y("div", TU, [
Y("div", QU, [
Y("label", DU, Ge(H("milestoneDate")), 1),
$n(Jg, {
id: "milestone-date",
modelValue: n.startDate,
"onUpdate:modelValue": N[1] || (N[1] = (k) => n.startDate = k),
type: "date",
"value-format": "YYYY-MM-DD",
placeholder: "请选择里程碑日期",
class: iA({ error: a.startDate })
}, null, 8, ["modelValue", "class"]),
a.startDate ? (ae(), fe("span", kU, Ge(a.startDate), 1)) : Ct("", !0)
]),
Y("div", LU, [
Y("label", IU, Ge(H("milestoneIcon")), 1),
Y("div", {
class: iA(["milestone-icon-dropdown", { active: s.value }])
}, [
Y("button", {
id: "milestone-icon",
type: "button",
class: "milestone-icon-trigger",
"aria-expanded": s.value,
"aria-haspopup": "listbox",
onClick: N[2] || (N[2] = (k) => s.value = !s.value)
}, [
Y("div", NU, [
n.icon === "diamond" ? (ae(), fe("svg", MU, N[8] || (N[8] = [
Y("g", { transform: "rotate(45 12 12)" }, [
Y("rect", {
x: "6",
y: "6",
width: "12",
height: "12",
rx: "3",
ry: "3",
fill: "currentColor"
})
], -1)
]))) : n.icon === "rocket" ? (ae(), fe("div", OU, "🚀")) : Ct("", !0),
Y("span", null, Ge(H(n.icon || "diamond")), 1)
]),
N[9] || (N[9] = Y("svg", {
class: "dropdown-arrow",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, [
Y("polyline", { points: "6,9 12,15 18,9" })
], -1))
], 8, _U),
s.value ? (ae(), fe("div", RU, [
Y("div", {
class: iA(["icon-option", { selected: n.icon === "diamond" }]),
onClick: N[3] || (N[3] = (k) => g("diamond"))
}, [
N[10] || (N[10] = Y("svg", {
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, [
Y("g", { transform: "rotate(45 12 12)" }, [
Y("rect", {
x: "6",
y: "6",
width: "12",
height: "12",
rx: "3",
ry: "3",
fill: "currentColor"
})
])
], -1)),
Y("span", null, Ge(H("diamond")), 1)
], 2),
Y("div", {
class: iA(["icon-option", { selected: n.icon === "rocket" }]),
onClick: N[4] || (N[4] = (k) => g("rocket"))
}, [
N[11] || (N[11] = Y("div", { class: "rocket-emoji-option" }, "🚀", -1)),
Y("span", null, Ge(H("rocket")), 1)
], 2)
])) : Ct("", !0)
], 2)
])
]),
Y("div", HU, [
Y("div", PU, [
Y("label", KU, Ge(H("description")), 1),
Y("div", VU, [
Ba(Y("textarea", {
id: "milestone-description",
ref_key: "descriptionTextarea",
ref: o,
"onUpdate:modelValue": N[5] || (N[5] = (k) => n.description = k),
class: "milestone-form-textarea",
placeholder: H("enterDescription"),
rows: "4",
maxlength: "500",
onInput: l
}, null, 40, qU), [
[Di, n.description]
]),
Y("div", jU, [
Y("span", WU, Ge(((M = n.description) == null ? void 0 : M.length) || 0) + "/500", 1)
])
])
])
])
], 32)
]),
Y("div", GU, [
Y("div", YU, [
w.value ? (ae(), fe("button", {
key: 0,
type: "button",
class: "gantt-btn gantt-btn-danger",
onClick: p
}, Ge(vt(F).delete), 1)) : Ct("", !0)
]),
Y("div", $U, [
Y("button", {
type: "button",
class: "gantt-btn gantt-btn-default",
onClick: E
}, Ge(vt(F).cancel), 1),
Y("button", {
type: "button",
class: "gantt-btn gantt-btn-primary",
disabled: !h.value,
onClick: c
}, Ge(vt(F).confirm), 9, zU)
])
])
]),
$n($p, {
visible: i.value,
title: vt(F).delete,
message: vt(F).confirmDelete,
"confirm-text": vt(F).confirm,
"cancel-text": vt(F).cancel,
onConfirm: m,
onCancel: y
}, null, 8, ["visible", "title", "message", "confirm-text", "cancel-text"])
])) : Ct("", !0);
};
}
}), JU = /* @__PURE__ */ xn(XU, [["__scopeId", "data-v-da9a3d65"]]);
function Zg(r, t, e = null) {
for (const A of r) {
if (A.id === t)
return e;
if (A.children && A.children.length > 0) {
const n = Zg(A.children, t, A);
if (n !== null) return n;
}
}
return null;
}
function Vy(r, t) {
for (let e = 0; e < r.length; e++) {
if (r[e].id === t)
return r.splice(e, 1)[0];
if (r[e].children && r[e].children.length > 0) {
const A = Vy(r[e].children, t);
if (A) return A;
}
}
return null;
}
function qy(r, t, e, A) {
for (let n = 0; n < r.length; n++) {
if (r[n].id === t)
return A === "after" || r[n].type === "milestone-group" ? (e.parentId = r[n].parentId, r.splice(n + 1, 0, e)) : (e.parentId = t, r[n].children || (r[n].children = []), r[n].children.unshift(e)), !0;
if (r[n].children && r[n].children.length > 0 && qy(r[n].children, t, e, A))
return !0;
}
return !1;
}
function ZU(r, t, e, A) {
const n = Zg(r, t), a = Vy(r, t);
if (!a)
return null;
if (!qy(r, e, a, A))
return n && n.children ? n.children.push(a) : r.push(a), null;
const i = Zg(r, t);
return {
movedTask: a,
oldParent: n,
newParent: i
};
}
function jA(r) {
"@babel/helpers - typeof";
return jA = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(t) {
return typeof t;
} : function(t) {
return t && typeof Symbol == "function" && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
}, jA(r);
}
var Xa = Uint8Array, ya = Uint16Array, zp = Int32Array, Xp = new Xa([
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
]), Jp = new Xa([
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
]), I0 = new Xa([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), jy = function(r, t) {
for (var e = new ya(31), A = 0; A < 31; ++A)
e[A] = t += 1 << r[A - 1];
for (var n = new zp(e[30]), A = 1; A < 30; ++A)
for (var a = e[A]; a < e[A + 1]; ++a)
n[a] = a - e[A] << 5 | A;
return { b: e, r: n };
}, Wy = jy(Xp, 2), eT = Wy.b, ep = Wy.r;
eT[28] = 258, ep[258] = 28;
var tT = jy(Jp, 0), _0 = tT.r, tp = new ya(32768);
for (var Br = 0; Br < 32768; ++Br) {
var As = (Br & 43690) >> 1 | (Br & 21845) << 1;
As = (As & 52428) >> 2 | (As & 13107) << 2, As = (As & 61680) >> 4 | (As & 3855) << 4, tp[Br] = ((As & 65280) >> 8 | (As & 255) << 8) >> 1;
}
var pl = (function(r, t, e) {
for (var A = r.length, n = 0, a = new ya(t); n < A; ++n)
r[n] && ++a[r[n] - 1];
var s = new ya(t);
for (n = 1; n < t; ++n)
s[n] = s[n - 1] + a[n - 1] << 1;
var i;
if (e) {
i = new ya(1 << t);
var o = 15 - t;
for (n = 0; n < A; ++n)
if (r[n])
for (var l = n << 4 | r[n], u = t - r[n], h = s[r[n] - 1]++ << u, g = h | (1 << u) - 1; h <= g; ++h)
i[tp[h] >> o] = l;
} else
for (i = new ya(A), n = 0; n < A; ++n)
r[n] && (i[n] = tp[s[r[n] - 1]++] >> 15 - r[n]);
return i;
}), Ks = new Xa(288);
for (var Br = 0; Br < 144; ++Br)
Ks[Br] = 8;
for (var Br = 144; Br < 256; ++Br)
Ks[Br] = 9;
for (var Br = 256; Br < 280; ++Br)
Ks[Br] = 7;
for (var Br = 280; Br < 288; ++Br)
Ks[Br] = 8;
var uc = new Xa(32);
for (var Br = 0; Br < 32; ++Br)
uc[Br] = 5;
var AT = /* @__PURE__ */ pl(Ks, 9, 0), rT = /* @__PURE__ */ pl(uc, 5, 0), Gy = function(r) {
return (r + 7) / 8 | 0;
}, nT = function(r, t, e) {
return (e == null || e > r.length) && (e = r.length), new Xa(r.subarray(t, e));
}, Ei = function(r, t, e) {
e <<= t & 7;
var A = t / 8 | 0;
r[A] |= e, r[A + 1] |= e >> 8;
}, zo = function(r, t, e) {
e <<= t & 7;
var A = t / 8 | 0;
r[A] |= e, r[A + 1] |= e >> 8, r[A + 2] |= e >> 16;
}, yf = function(r, t) {
for (var e = [], A = 0; A < r.length; ++A)
r[A] && e.push({ s: A, f: r[A] });
var n = e.length, a = e.slice();
if (!n)
return { t: $y, l: 0 };
if (n == 1) {
var s = new Xa(e[0].s + 1);
return s[e[0].s] = 1, { t: s, l: 1 };
}
e.sort(function(H, q) {
return H.f - q.f;
}), e.push({ s: -1, f: 25001 });
var i = e[0], o = e[1], l = 0, u = 1, h = 2;
for (e[0] = { s: -1, f: i.f + o.f, l: i, r: o }; u != n - 1; )
i = e[e[l].f < e[h].f ? l++ : h++], o = e[l != u && e[l].f < e[h].f ? l++ : h++], e[u++] = { s: -1, f: i.f + o.f, l: i, r: o };
for (var g = a[0].s, A = 1; A < n; ++A)
a[A].s > g && (g = a[A].s);
var c = new ya(g + 1), p = Ap(e[u - 1], c, 0);
if (p > t) {
var A = 0, m = 0, y = p - t, w = 1 << y;
for (a.sort(function(q, N) {
return c[N.s] - c[q.s] || q.f - N.f;
}); A < n; ++A) {
var E = a[A].s;
if (c[E] > t)
m += w - (1 << p - c[E]), c[E] = t;
else
break;
}
for (m >>= y; m > 0; ) {
var C = a[A].s;
c[C] < t ? m -= 1 << t - c[C]++ - 1 : ++A;
}
for (; A >= 0 && m; --A) {
var F = a[A].s;
c[F] == t && (--c[F], ++m);
}
p = t;
}
return { t: new Xa(c), l: p };
}, Ap = function(r, t, e) {
return r.s == -1 ? Math.max(Ap(r.l, t, e + 1), Ap(r.r, t, e + 1)) : t[r.s] = e;
}, N0 = function(r) {
for (var t = r.length; t && !r[--t]; )
;
for (var e = new ya(++t), A = 0, n = r[0], a = 1, s = function(o) {
e[A++] = o;
}, i = 1; i <= t; ++i)
if (r[i] == n && i != t)
++a;
else {
if (!n && a > 2) {
for (; a > 138; a -= 138)
s(32754);
a > 2 && (s(a > 10 ? a - 11 << 5 | 28690 : a - 3 << 5 | 12305), a = 0);
} else if (a > 3) {
for (s(n), --a; a > 6; a -= 6)
s(8304);
a > 2 && (s(a - 3 << 5 | 8208), a = 0);
}
for (; a--; )
s(n);
a = 1, n = r[i];
}
return { c: e.subarray(0, A), n: t };
}, Xo = function(r, t) {
for (var e = 0, A = 0; A < t.length; ++A)
e += r[A] * t[A];
return e;
}, Yy = function(r, t, e) {
var A = e.length, n = Gy(t + 2);
r[n] = A & 255, r[n + 1] = A >> 8, r[n + 2] = r[n] ^ 255, r[n + 3] = r[n + 1] ^ 255;
for (var a = 0; a < A; ++a)
r[n + a + 4] = e[a];
return (n + 4 + A) * 8;
}, M0 = function(r, t, e, A, n, a, s, i, o, l, u) {
Ei(t, u++, e), ++n[256];
for (var h = yf(n, 15), g = h.t, c = h.l, p = yf(a, 15), m = p.t, y = p.l, w = N0(g), E = w.c, C = w.n, F = N0(m), H = F.c, q = F.n, N = new ya(19), M = 0; M < E.length; ++M)
++N[E[M] & 31];
for (var M = 0; M < H.length; ++M)
++N[H[M] & 31];
for (var k = yf(N, 7), O = k.t, S = k.l, U = 19; U > 4 && !O[I0[U - 1]]; --U)
;
var W = l + 5 << 3, I = Xo(n, Ks) + Xo(a, uc) + s, le = Xo(n, g) + Xo(a, m) + s + 14 + 3 * U + Xo(N, O) + 2 * N[16] + 3 * N[17] + 7 * N[18];
if (o >= 0 && W <= I && W <= le)
return Yy(t, u, r.subarray(o, o + l));
var ue, Z, ee, X;
if (Ei(t, u, 1 + (le < I)), u += 2, le < I) {
ue = pl(g, c, 0), Z = g, ee = pl(m, y, 0), X = m;
var Ae = pl(O, S, 0);
Ei(t, u, C - 257), Ei(t, u + 5, q - 1), Ei(t, u + 10, U - 4), u += 14;
for (var M = 0; M < U; ++M)
Ei(t, u + 3 * M, O[I0[M]]);
u += 3 * U;
for (var oe = [E, H], x = 0; x < 2; ++x)
for (var L = oe[x], M = 0; M < L.length; ++M) {
var j = L[M] & 31;
Ei(t, u, Ae[j]), u += O[j], j > 15 && (Ei(t, u, L[M] >> 5 & 127), u += L[M] >> 12);
}
} else
ue = AT, Z = Ks, ee = rT, X = uc;
for (var M = 0; M < i; ++M) {
var $ = A[M];
if ($ > 255) {
var j = $ >> 18 & 31;
zo(t, u, ue[j + 257]), u += Z[j + 257], j > 7 && (Ei(t, u, $ >> 23 & 31), u += Xp[j]);
var re = $ & 31;
zo(t, u, ee[re]), u += X[re], re > 3 && (zo(t, u, $ >> 5 & 8191), u += Jp[re]);
} else
zo(t, u, ue[$]), u += Z[$];
}
return zo(t, u, ue[256]), u + Z[256];
}, aT = /* @__PURE__ */ new zp([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]), $y = /* @__PURE__ */ new Xa(0), iT = function(r, t, e, A, n, a) {
var s = a.z || r.length, i = new Xa(A + s + 5 * (1 + Math.ceil(s / 7e3)) + n), o = i.subarray(A, i.length - n), l = a.l, u = (a.r || 0) & 7;
if (t) {
u && (o[0] = a.r >> 3);
for (var h = aT[t - 1], g = h >> 13, c = h & 8191, p = (1 << e) - 1, m = a.p || new ya(32768), y = a.h || new ya(p + 1), w = Math.ceil(e / 3), E = 2 * w, C = function(dt) {
return (r[dt] ^ r[dt + 1] << w ^ r[dt + 2] << E) & p;
}, F = new zp(25e3), H = new ya(288), q = new ya(32), N = 0, M = 0, k = a.i || 0, O = 0, S = a.w || 0, U = 0; k + 2 < s; ++k) {
var W = C(k), I = k & 32767, le = y[W];
if (m[I] = le, y[W] = I, S <= k) {
var ue = s - k;
if ((N > 7e3 || O > 24576) && (ue > 423 || !l)) {
u = M0(r, o, 0, F, H, q, M, O, U, k - U, u), O = N = M = 0, U = k;
for (var Z = 0; Z < 286; ++Z)
H[Z] = 0;
for (var Z = 0; Z < 30; ++Z)
q[Z] = 0;
}
var ee = 2, X = 0, Ae = c, oe = I - le & 32767;
if (ue > 2 && W == C(k - oe))
for (var x = Math.min(g, ue) - 1, L = Math.min(32767, k), j = Math.min(258, ue); oe <= L && --Ae && I != le; ) {
if (r[k + ee] == r[k + ee - oe]) {
for (var $ = 0; $ < j && r[k + $] == r[k + $ - oe]; ++$)
;
if ($ > ee) {
if (ee = $, X = oe, $ > x)
break;
for (var re = Math.min(oe, $ - 2), pe = 0, Z = 0; Z < re; ++Z) {
var de = k - oe + Z & 32767, ce = m[de], Se = de - ce & 32767;
Se > pe && (pe = Se, le = de);
}
}
}
I = le, le = m[I], oe += I - le & 32767;
}
if (X) {
F[O++] = 268435456 | ep[ee] << 18 | _0[X];
var qe = ep[ee] & 31, rt = _0[X] & 31;
M += Xp[qe] + Jp[rt], ++H[257 + qe], ++q[rt], S = k + ee, ++N;
} else
F[O++] = r[k], ++H[r[k]];
}
}
for (k = Math.max(k, S); k < s; ++k)
F[O++] = r[k], ++H[r[k]];
u = M0(r, o, l, F, H, q, M, O, U, k - U, u), l || (a.r = u & 7 | o[u / 8 | 0] << 3, u -= 7, a.h = y, a.p = m, a.i = k, a.w = S);
} else {
for (var k = a.w || 0; k < s + l; k += 65535) {
var at = k + 65535;
at >= s && (o[u / 8 | 0] = l, at = s), u = Yy(o, u + 1, r.subarray(k, at));
}
a.i = s;
}
return nT(i, 0, A + Gy(u) + n);
}, zy = function() {
var r = 1, t = 0;
return {
p: function(e) {
for (var A = r, n = t, a = e.length | 0, s = 0; s != a; ) {
for (var i = Math.min(s + 2655, a); s < i; ++s)
n += A += e[s];
A = (A & 65535) + 15 * (A >> 16), n = (n & 65535) + 15 * (n >> 16);
}
r = A, t = n;
},
d: function() {
return r %= 65521, t %= 65521, (r & 255) << 24 | (r & 65280) << 8 | (t & 255) << 8 | t >> 8;
}
};
}, sT = function(r, t, e, A, n) {
if (!n && (n = { l: 1 }, t.dictionary)) {
var a = t.dictionary.subarray(-32768), s = new Xa(a.length + r.length);
s.set(a), s.set(r, a.length), r = s, n.w = a.length;
}
return iT(r, t.level == null ? 6 : t.level, t.mem == null ? n.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(r.length))) * 1.5) : 20 : 12 + t.mem, e, A, n);
}, Xy = function(r, t, e) {
for (; e; ++t)
r[t] = e, e >>>= 8;
}, oT = function(r, t) {
var e = t.level, A = e == 0 ? 0 : e < 6 ? 1 : e == 9 ? 3 : 2;
if (r[0] = 120, r[1] = A << 6 | (t.dictionary && 32), r[1] |= 31 - (r[0] << 8 | r[1]) % 31, t.dictionary) {
var n = zy();
n.p(t.dictionary), Xy(r, 2, n.d());
}
};
function rp(r, t) {
t || (t = {});
var e = zy();
e.p(r);
var A = sT(r, t, t.dictionary ? 6 : 2, 4);
return oT(A, t), Xy(A, A.length - 4, e.d()), A;
}
var lT = typeof TextDecoder < "u" && /* @__PURE__ */ new TextDecoder(), uT = 0;
try {
lT.decode($y, { stream: !0 }), uT = 1;
} catch {
}
function cT(r) {
if (Array.isArray(r)) return r;
}
function fT(r, t) {
var e = r == null ? null : typeof Symbol < "u" && r[Symbol.iterator] || r["@@iterator"];
if (e != null) {
var A, n, a, s, i = [], o = !0, l = !1;
try {
if (a = (e = e.call(r)).next, t !== 0) for (; !(o = (A = a.call(e)).done) && (i.push(A.value), i.length !== t); o = !0) ;
} catch (u) {
l = !0, n = u;
} finally {
try {
if (!o && e.return != null && (s = e.return(), Object(s) !== s)) return;
} finally {
if (l) throw n;
}
}
return i;
}
}
function O0(r, t) {
(t == null || t > r.length) && (t = r.length);
for (var e = 0, A = Array(t); e < t; e++) A[e] = r[e];
return A;
}
function hT(r, t) {
if (r) {
if (typeof r == "string") return O0(r, t);
var e = {}.toString.call(r).slice(8, -1);
return e === "Object" && r.constructor && (e = r.constructor.name), e === "Map" || e === "Set" ? Array.from(r) : e === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e) ? O0(r, t) : void 0;
}
}
function dT() {
throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
}
function R0(r, t) {
return cT(r) || fT(r, t) || hT(r, t) || dT();
}
function H0(r, t = "utf8") {
return new TextDecoder(t).decode(r);
}
const gT = new TextEncoder();
function pT(r) {
return gT.encode(r);
}
const vT = 1024 * 8, mT = (() => {
const r = new Uint8Array(4), t = new Uint32Array(r.buffer);
return !((t[0] = 1) & r[0]);
})(), bf = {
int8: globalThis.Int8Array,
uint8: globalThis.Uint8Array,
int16: globalThis.Int16Array,
uint16: globalThis.Uint16Array,
int32: globalThis.Int32Array,
uint32: globalThis.Uint32Array,
uint64: globalThis.BigUint64Array,
int64: globalThis.BigInt64Array,
float32: globalThis.Float32Array,
float64: globalThis.Float64Array
};
class Zp {
/**
* Create a new IOBuffer.
* @param data - The data to construct the IOBuffer with.
* If data is a number, it will be the new buffer's length<br>
* If data is `undefined`, the buffer will be initialized with a default length of 8Kb<br>
* If data is an ArrayBuffer, SharedArrayBuffer, an ArrayBufferView (Typed Array), an IOBuffer instance,
* or a Node.js Buffer, a view will be created over the underlying ArrayBuffer.
* @param options - An object for the options.
* @returns A new IOBuffer instance.
*/
constructor(t = vT, e = {}) {
/**
* Reference to the internal ArrayBuffer object.
*/
HA(this, "buffer");
/**
* Byte length of the internal ArrayBuffer.
*/
HA(this, "byteLength");
/**
* Byte offset of the internal ArrayBuffer.
*/
HA(this, "byteOffset");
/**
* Byte length of the internal ArrayBuffer.
*/
HA(this, "length");
/**
* The current offset of the buffer's pointer.
*/
HA(this, "offset");
HA(this, "lastWrittenByte");
HA(this, "littleEndian");
HA(this, "_data");
HA(this, "_mark");
HA(this, "_marks");
let A = !1;
typeof t == "number" ? t = new ArrayBuffer(t) : (A = !0, this.lastWrittenByte = t.byteLength);
const n = e.offset ? e.offset >>> 0 : 0, a = t.byteLength - n;
let s = n;
(ArrayBuffer.isView(t) || t instanceof Zp) && (t.byteLength !== t.buffer.byteLength && (s = t.byteOffset + n), t = t.buffer), A ? this.lastWrittenByte = a : this.lastWrittenByte = 0, this.buffer = t, this.length = a, this.byteLength = a, this.byteOffset = s, this.offset = 0, this.littleEndian = !0, this._data = new DataView(this.buffer, s, a), this._mark = 0, this._marks = [];
}
/**
* Checks if the memory allocated to the buffer is sufficient to store more
* bytes after the offset.
* @param byteLength - The needed memory in bytes.
* @returns `true` if there is sufficient space and `false` otherwise.
*/
available(t = 1) {
return this.offset + t <= this.length;
}
/**
* Check if little-endian mode is used for reading and writing multi-byte
* values.
* @returns `true` if little-endian mode is used, `false` otherwise.
*/
isLittleEndian() {
return this.littleEndian;
}
/**
* Set little-endian mode for reading and writing multi-byte values.
* @returns This.
*/
setLittleEndian() {
return this.littleEndian = !0, this;
}
/**
* Check if big-endian mode is used for reading and writing multi-byte values.
* @returns `true` if big-endian mode is used, `false` otherwise.
*/
isBigEndian() {
return !this.littleEndian;
}
/**
* Switches to big-endian mode for reading and writing multi-byte values.
* @returns This.
*/
setBigEndian() {
return this.littleEndian = !1, this;
}
/**
* Move the pointer n bytes forward.
* @param n - Number of bytes to skip.
* @returns This.
*/
skip(t = 1) {
return this.offset += t, this;
}
/**
* Move the pointer n bytes backward.
* @param n - Number of bytes to move back.
* @returns This.
*/
back(t = 1) {
return this.offset -= t, this;
}
/**
* Move the pointer to the given offset.
* @param offset - The offset to move to.
* @returns This.
*/
seek(t) {
return this.offset = t, this;
}
/**
* Store the current pointer offset.
* @see {@link IOBuffer#reset}
* @returns This.
*/
mark() {
return this._mark = this.offset, this;
}
/**
* Move the pointer back to the last pointer offset set by mark.
* @see {@link IOBuffer#mark}
* @returns This.
*/
reset() {
return this.offset = this._mark, this;
}
/**
* Push the current pointer offset to the mark stack.
* @see {@link IOBuffer#popMark}
* @returns This.
*/
pushMark() {
return this._marks.push(this.offset), this;
}
/**
* Pop the last pointer offset from the mark stack, and set the current
* pointer offset to the popped value.
* @see {@link IOBuffer#pushMark}
* @returns This.
*/
popMark() {
const t = this._marks.pop();
if (t === void 0)
throw new Error("Mark stack empty");
return this.seek(t), this;
}
/**
* Move the pointer offset back to 0.
* @returns This.
*/
rewind() {
return this.offset = 0, this;
}
/**
* Make sure the buffer has sufficient memory to write a given byteLength at
* the current pointer offset.
* If the buffer's memory is insufficient, this method will create a new
* buffer (a copy) with a length that is twice (byteLength + current offset).
* @param byteLength - The needed memory in bytes.
* @returns This.
*/
ensureAvailable(t = 1) {
if (!this.available(t)) {
const A = (this.offset + t) * 2, n = new Uint8Array(A);
n.set(new Uint8Array(this.buffer)), this.buffer = n.buffer, this.length = A, this.byteLength = A, this._data = new DataView(this.buffer);
}
return this;
}
/**
* Read a byte and return false if the byte's value is 0, or true otherwise.
* Moves pointer forward by one byte.
* @returns The read boolean.
*/
readBoolean() {
return this.readUint8() !== 0;
}
/**
* Read a signed 8-bit integer and move pointer forward by 1 byte.
* @returns The read byte.
*/
readInt8() {
return this._data.getInt8(this.offset++);
}
/**
* Read an unsigned 8-bit integer and move pointer forward by 1 byte.
* @returns The read byte.
*/
readUint8() {
return this._data.getUint8(this.offset++);
}
/**
* Alias for {@link IOBuffer#readUint8}.
* @returns The read byte.
*/
readByte() {
return this.readUint8();
}
/**
* Read `n` bytes and move pointer forward by `n` bytes.
* @param n - Number of bytes to read.
* @returns The read bytes.
*/
readBytes(t = 1) {
return this.readArray(t, "uint8");
}
/**
* Creates an array of corresponding to the type `type` and size `size`.
* For example type `uint8` will create a `Uint8Array`.
* @param size - size of the resulting array
* @param type - number type of elements to read
* @returns The read array.
*/
readArray(t, e) {
const A = bf[e].BYTES_PER_ELEMENT * t, n = this.byteOffset + this.offset, a = this.buffer.slice(n, n + A);
if (this.littleEndian === mT && e !== "uint8" && e !== "int8") {
const i = new Uint8Array(this.buffer.slice(n, n + A));
i.reverse();
const o = new bf[e](i.buffer);
return this.offset += A, o.reverse(), o;
}
const s = new bf[e](a);
return this.offset += A, s;
}
/**
* Read a 16-bit signed integer and move pointer forward by 2 bytes.
* @returns The read value.
*/
readInt16() {
const t = this._data.getInt16(this.offset, this.littleEndian);
return this.offset += 2, t;
}
/**
* Read a 16-bit unsigned integer and move pointer forward by 2 bytes.
* @returns The read value.
*/
readUint16() {
const t = this._data.getUint16(this.offset, this.littleEndian);
return this.offset += 2, t;
}
/**
* Read a 32-bit signed integer and move pointer forward by 4 bytes.
* @returns The read value.
*/
readInt32() {
const t = this._data.getInt32(this.offset, this.littleEndian);
return this.offset += 4, t;
}
/**
* Read a 32-bit unsigned integer and move pointer forward by 4 bytes.
* @returns The read value.
*/
readUint32() {
const t = this._data.getUint32(this.offset, this.littleEndian);
return this.offset += 4, t;
}
/**
* Read a 32-bit floating number and move pointer forward by 4 bytes.
* @returns The read value.
*/
readFloat32() {
const t = this._data.getFloat32(this.offset, this.littleEndian);
return this.offset += 4, t;
}
/**
* Read a 64-bit floating number and move pointer forward by 8 bytes.
* @returns The read value.
*/
readFloat64() {
const t = this._data.getFloat64(this.offset, this.littleEndian);
return this.offset += 8, t;
}
/**
* Read a 64-bit signed integer number and move pointer forward by 8 bytes.
* @returns The read value.
*/
readBigInt64() {
const t = this._data.getBigInt64(this.offset, this.littleEndian);
return this.offset += 8, t;
}
/**
* Read a 64-bit unsigned integer number and move pointer forward by 8 bytes.
* @returns The read value.
*/
readBigUint64() {
const t = this._data.getBigUint64(this.offset, this.littleEndian);
return this.offset += 8, t;
}
/**
* Read a 1-byte ASCII character and move pointer forward by 1 byte.
* @returns The read character.
*/
readChar() {
return String.fromCharCode(this.readInt8());
}
/**
* Read `n` 1-byte ASCII characters and move pointer forward by `n` bytes.
* @param n - Number of characters to read.
* @returns The read characters.
*/
readChars(t = 1) {
let e = "";
for (let A = 0; A < t; A++)
e += this.readChar();
return e;
}
/**
* Read the next `n` bytes, return a UTF-8 decoded string and move pointer
* forward by `n` bytes.
* @param n - Number of bytes to read.
* @returns The decoded string.
*/
readUtf8(t = 1) {
return H0(this.readBytes(t));
}
/**
* Read the next `n` bytes, return a string decoded with `encoding` and move pointer
* forward by `n` bytes.
* If no encoding is passed, the function is equivalent to @see {@link IOBuffer#readUtf8}
* @param n - Number of bytes to read.
* @param encoding - The encoding to use. Default is 'utf8'.
* @returns The decoded string.
*/
decodeText(t = 1, e = "utf8") {
return H0(this.readBytes(t), e);
}
/**
* Write 0xff if the passed value is truthy, 0x00 otherwise and move pointer
* forward by 1 byte.
* @param value - The value to write.
* @returns This.
*/
writeBoolean(t) {
return this.writeUint8(t ? 255 : 0), this;
}
/**
* Write `value` as an 8-bit signed integer and move pointer forward by 1 byte.
* @param value - The value to write.
* @returns This.
*/
writeInt8(t) {
return this.ensureAvailable(1), this._data.setInt8(this.offset++, t), this._updateLastWrittenByte(), this;
}
/**
* Write `value` as an 8-bit unsigned integer and move pointer forward by 1
* byte.
* @param value - The value to write.
* @returns This.
*/
writeUint8(t) {
return this.ensureAvailable(1), this._data.setUint8(this.offset++, t), this._updateLastWrittenByte(), this;
}
/**
* An alias for {@link IOBuffer#writeUint8}.
* @param value - The value to write.
* @returns This.
*/
writeByte(t) {
return this.writeUint8(t);
}
/**
* Write all elements of `bytes` as uint8 values and move pointer forward by
* `bytes.length` bytes.
* @param bytes - The array of bytes to write.
* @returns This.
*/
writeBytes(t) {
this.ensureAvailable(t.length);
for (let e = 0; e < t.length; e++)
this._data.setUint8(this.offset++, t[e]);
return this._updateLastWrittenByte(), this;
}
/**
* Write `value` as a 16-bit signed integer and move pointer forward by 2
* bytes.
* @param value - The value to write.
* @returns This.
*/
writeInt16(t) {
return this.ensureAvailable(2), this._data.setInt16(this.offset, t, this.littleEndian), this.offset += 2, this._updateLastWrittenByte(), this;
}
/**
* Write `value` as a 16-bit unsigned integer and move pointer forward by 2
* bytes.
* @param value - The value to write.
* @returns This.
*/
writeUint16(t) {
return this.ensureAvailable(2), this._data.setUint16(this.offset, t, this.littleEndian), this.offset += 2, this._updateLastWrittenByte(), this;
}
/**
* Write `value` as a 32-bit signed integer and move pointer forward by 4
* bytes.
* @param value - The value to write.
* @returns This.
*/
writeInt32(t) {
return this.ensureAvailable(4), this._data.setInt32(this.offset, t, this.littleEndian), this.offset += 4, this._updateLastWrittenByte(), this;
}
/**
* Write `value` as a 32-bit unsigned integer and move pointer forward by 4
* bytes.
* @param value - The value to write.
* @returns This.
*/
writeUint32(t) {
return this.ensureAvailable(4), this._data.setUint32(this.offset, t, this.littleEndian), this.offset += 4, this._updateLastWrittenByte(), this;
}
/**
* Write `value` as a 32-bit floating number and move pointer forward by 4
* bytes.
* @param value - The value to write.
* @returns This.
*/
writeFloat32(t) {
return this.ensureAvailable(4), this._data.setFloat32(this.offset, t, this.littleEndian), this.offset += 4, this._updateLastWrittenByte(), this;
}
/**
* Write `value` as a 64-bit floating number and move pointer forward by 8
* bytes.
* @param value - The value to write.
* @returns This.
*/
writeFloat64(t) {
return this.ensureAvailable(8), this._data.setFloat64(this.offset, t, this.littleEndian), this.offset += 8, this._updateLastWrittenByte(), this;
}
/**
* Write `value` as a 64-bit signed bigint and move pointer forward by 8
* bytes.
* @param value - The value to write.
* @returns This.
*/
writeBigInt64(t) {
return this.ensureAvailable(8), this._data.setBigInt64(this.offset, t, this.littleEndian), this.offset += 8, this._updateLastWrittenByte(), this;
}
/**
* Write `value` as a 64-bit unsigned bigint and move pointer forward by 8
* bytes.
* @param value - The value to write.
* @returns This.
*/
writeBigUint64(t) {
return this.ensureAvailable(8), this._data.setBigUint64(this.offset, t, this.littleEndian), this.offset += 8, this._updateLastWrittenByte(), this;
}
/**
* Write the charCode of `str`'s first character as an 8-bit unsigned integer
* and move pointer forward by 1 byte.
* @param str - The character to write.
* @returns This.
*/
writeChar(t) {
return this.writeUint8(t.charCodeAt(0));
}
/**
* Write the charCodes of all `str`'s characters as 8-bit unsigned integers
* and move pointer forward by `str.length` bytes.
* @param str - The characters to write.
* @returns This.
*/
writeChars(t) {
for (let e = 0; e < t.length; e++)
this.writeUint8(t.charCodeAt(e));
return this;
}
/**
* UTF-8 encode and write `str` to the current pointer offset and move pointer
* forward according to the encoded length.
* @param str - The string to write.
* @returns This.
*/
writeUtf8(t) {
return this.writeBytes(pT(t));
}
/**
* Export a Uint8Array view of the internal buffer.
* The view starts at the byte offset and its length
* is calculated to stop at the last written byte or the original length.
* @returns A new Uint8Array view.
*/
toArray() {
return new Uint8Array(this.buffer, this.byteOffset, this.lastWrittenByte);
}
/**
* Get the total number of bytes written so far, regardless of the current offset.
* @returns - Total number of bytes.
*/
getWrittenByteLength() {
return this.lastWrittenByte - this.byteOffset;
}
/**
* Update the last written byte offset
* @private
*/
_updateLastWrittenByte() {
this.offset > this.lastWrittenByte && (this.lastWrittenByte = this.offset);
}
}
function ko(r) {
let t = r.length;
for (; --t >= 0; )
r[t] = 0;
}
const wT = 3, BT = 258, Jy = 29, yT = 256, bT = yT + 1 + Jy, Zy = 30, CT = 512, ET = new Array((bT + 2) * 2);
ko(ET);
const FT = new Array(Zy * 2);
ko(FT);
const xT = new Array(CT);
ko(xT);
const ST = new Array(BT - wT + 1);
ko(ST);
const UT = new Array(Jy);
ko(UT);
const TT = new Array(Zy);
ko(TT);
const QT = (r, t, e, A) => {
let n = r & 65535 | 0, a = r >>> 16 & 65535 | 0, s = 0;
for (; e !== 0; ) {
s = e > 2e3 ? 2e3 : e, e -= s;
do
n = n + t[A++] | 0, a = a + n | 0;
while (--s);
n %= 65521, a %= 65521;
}
return n | a << 16 | 0;
};
var np = QT;
const DT = () => {
let r, t = [];
for (var e = 0; e < 256; e++) {
r = e;
for (var A = 0; A < 8; A++)
r = r & 1 ? 3988292384 ^ r >>> 1 : r >>> 1;
t[e] = r;
}
return t;
}, kT = new Uint32Array(DT()), LT = (r, t, e, A) => {
const n = kT, a = A + e;
r ^= -1;
for (let s = A; s < a; s++)
r = r >>> 8 ^ n[(r ^ t[s]) & 255];
return r ^ -1;
};
var ui = LT, ap = {
2: "need dictionary",
/* Z_NEED_DICT 2 */
1: "stream end",
/* Z_STREAM_END 1 */
0: "",
/* Z_OK 0 */
"-1": "file error",
/* Z_ERRNO (-1) */
"-2": "stream error",
/* Z_STREAM_ERROR (-2) */
"-3": "data error",
/* Z_DATA_ERROR (-3) */
"-4": "insufficient memory",
/* Z_MEM_ERROR (-4) */
"-5": "buffer error",
/* Z_BUF_ERROR (-5) */
"-6": "incompatible version"
/* Z_VERSION_ERROR (-6) */
}, e5 = {
/* Allowed flush values; see deflate() and inflate() below for details */
Z_NO_FLUSH: 0,
Z_FINISH: 4,
Z_BLOCK: 5,
Z_TREES: 6,
/* Return codes for the compression/decompression functions. Negative values
* are errors, positive values are used for special but normal events.
*/
Z_OK: 0,
Z_STREAM_END: 1,
Z_NEED_DICT: 2,
Z_STREAM_ERROR: -2,
Z_DATA_ERROR: -3,
Z_MEM_ERROR: -4,
Z_BUF_ERROR: -5,
/* The deflate compression method */
Z_DEFLATED: 8
//Z_NULL: null // Use -1 or null inline, depending on var type
};
const IT = (r, t) => Object.prototype.hasOwnProperty.call(r, t);
var _T = function(r) {
const t = Array.prototype.slice.call(arguments, 1);
for (; t.length; ) {
const e = t.shift();
if (e) {
if (typeof e != "object")
throw new TypeError(e + "must be non-object");
for (const A in e)
IT(e, A) && (r[A] = e[A]);
}
}
return r;
}, NT = (r) => {
let t = 0;
for (let A = 0, n = r.length; A < n; A++)
t += r[A].length;
const e = new Uint8Array(t);
for (let A = 0, n = 0, a = r.length; A < a; A++) {
let s = r[A];
e.set(s, n), n += s.length;
}
return e;
}, t5 = {
assign: _T,
flattenChunks: NT
};
let A5 = !0;
try {
String.fromCharCode.apply(null, new Uint8Array(1));
} catch {
A5 = !1;
}
const El = new Uint8Array(256);
for (let r = 0; r < 256; r++)
El[r] = r >= 252 ? 6 : r >= 248 ? 5 : r >= 240 ? 4 : r >= 224 ? 3 : r >= 192 ? 2 : 1;
El[254] = El[254] = 1;
var MT = (r) => {
if (typeof TextEncoder == "function" && TextEncoder.prototype.encode)
return new TextEncoder().encode(r);
let t, e, A, n, a, s = r.length, i = 0;
for (n = 0; n < s; n++)
e = r.charCodeAt(n), (e & 64512) === 55296 && n + 1 < s && (A = r.charCodeAt(n + 1), (A & 64512) === 56320 && (e = 65536 + (e - 55296 << 10) + (A - 56320), n++)), i += e < 128 ? 1 : e < 2048 ? 2 : e < 65536 ? 3 : 4;
for (t = new Uint8Array(i), a = 0, n = 0; a < i; n++)
e = r.charCodeAt(n), (e & 64512) === 55296 && n + 1 < s && (A = r.charCodeAt(n + 1), (A & 64512) === 56320 && (e = 65536 + (e - 55296 << 10) + (A - 56320), n++)), e < 128 ? t[a++] = e : e < 2048 ? (t[a++] = 192 | e >>> 6, t[a++] = 128 | e & 63) : e < 65536 ? (t[a++] = 224 | e >>> 12, t[a++] = 128 | e >>> 6 & 63, t[a++] = 128 | e & 63) : (t[a++] = 240 | e >>> 18, t[a++] = 128 | e >>> 12 & 63, t[a++] = 128 | e >>> 6 & 63, t[a++] = 128 | e & 63);
return t;
};
const OT = (r, t) => {
if (t < 65534 && r.subarray && A5)
return String.fromCharCode.apply(null, r.length === t ? r : r.subarray(0, t));
let e = "";
for (let A = 0; A < t; A++)
e += String.fromCharCode(r[A]);
return e;
};
var RT = (r, t) => {
const e = t || r.length;
if (typeof TextDecoder == "function" && TextDecoder.prototype.decode)
return new TextDecoder().decode(r.subarray(0, t));
let A, n;
const a = new Array(e * 2);
for (n = 0, A = 0; A < e; ) {
let s = r[A++];
if (s < 128) {
a[n++] = s;
continue;
}
let i = El[s];
if (i > 4) {
a[n++] = 65533, A += i - 1;
continue;
}
for (s &= i === 2 ? 31 : i === 3 ? 15 : 7; i > 1 && A < e; )
s = s << 6 | r[A++] & 63, i--;
if (i > 1) {
a[n++] = 65533;
continue;
}
s < 65536 ? a[n++] = s : (s -= 65536, a[n++] = 55296 | s >> 10 & 1023, a[n++] = 56320 | s & 1023);
}
return OT(a, n);
}, HT = (r, t) => {
t = t || r.length, t > r.length && (t = r.length);
let e = t - 1;
for (; e >= 0 && (r[e] & 192) === 128; )
e--;
return e < 0 || e === 0 ? t : e + El[r[e]] > t ? e : t;
}, ip = {
string2buf: MT,
buf2string: RT,
utf8border: HT
};
function PT() {
this.input = null, this.next_in = 0, this.avail_in = 0, this.total_in = 0, this.output = null, this.next_out = 0, this.avail_out = 0, this.total_out = 0, this.msg = "", this.state = null, this.data_type = 2, this.adler = 0;
}
var KT = PT;
const lu = 16209, VT = 16191;
var qT = function(t, e) {
let A, n, a, s, i, o, l, u, h, g, c, p, m, y, w, E, C, F, H, q, N, M, k, O;
const S = t.state;
A = t.next_in, k = t.input, n = A + (t.avail_in - 5), a = t.next_out, O = t.output, s = a - (e - t.avail_out), i = a + (t.avail_out - 257), o = S.dmax, l = S.wsize, u = S.whave, h = S.wnext, g = S.window, c = S.hold, p = S.bits, m = S.lencode, y = S.distcode, w = (1 << S.lenbits) - 1, E = (1 << S.distbits) - 1;
e:
do {
p < 15 && (c += k[A++] << p, p += 8, c += k[A++] << p, p += 8), C = m[c & w];
t:
for (; ; ) {
if (F = C >>> 24, c >>>= F, p -= F, F = C >>> 16 & 255, F === 0)
O[a++] = C & 65535;
else if (F & 16) {
H = C & 65535, F &= 15, F && (p < F && (c += k[A++] << p, p += 8), H += c & (1 << F) - 1, c >>>= F, p -= F), p < 15 && (c += k[A++] << p, p += 8, c += k[A++] << p, p += 8), C = y[c & E];
A:
for (; ; ) {
if (F = C >>> 24, c >>>= F, p -= F, F = C >>> 16 & 255, F & 16) {
if (q = C & 65535, F &= 15, p < F && (c += k[A++] << p, p += 8, p < F && (c += k[A++] << p, p += 8)), q += c & (1 << F) - 1, q > o) {
t.msg = "invalid distance too far back", S.mode = lu;
break e;
}
if (c >>>= F, p -= F, F = a - s, q > F) {
if (F = q - F, F > u && S.sane) {
t.msg = "invalid distance too far back", S.mode = lu;
break e;
}
if (N = 0, M = g, h === 0) {
if (N += l - F, F < H) {
H -= F;
do
O[a++] = g[N++];
while (--F);
N = a - q, M = O;
}
} else if (h < F) {
if (N += l + h - F, F -= h, F < H) {
H -= F;
do
O[a++] = g[N++];
while (--F);
if (N = 0, h < H) {
F = h, H -= F;
do
O[a++] = g[N++];
while (--F);
N = a - q, M = O;
}
}
} else if (N += h - F, F < H) {
H -= F;
do
O[a++] = g[N++];
while (--F);
N = a - q, M = O;
}
for (; H > 2; )
O[a++] = M[N++], O[a++] = M[N++], O[a++] = M[N++], H -= 3;
H && (O[a++] = M[N++], H > 1 && (O[a++] = M[N++]));
} else {
N = a - q;
do
O[a++] = O[N++], O[a++] = O[N++], O[a++] = O[N++], H -= 3;
while (H > 2);
H && (O[a++] = O[N++], H > 1 && (O[a++] = O[N++]));
}
} else if ((F & 64) === 0) {
C = y[(C & 65535) + (c & (1 << F) - 1)];
continue A;
} else {
t.msg = "invalid distance code", S.mode = lu;
break e;
}
break;
}
} else if ((F & 64) === 0) {
C = m[(C & 65535) + (c & (1 << F) - 1)];
continue t;
} else if (F & 32) {
S.mode = VT;
break e;
} else {
t.msg = "invalid literal/length code", S.mode = lu;
break e;
}
break;
}
} while (A < n && a < i);
H = p >> 3, A -= H, p -= H << 3, c &= (1 << p) - 1, t.next_in = A, t.next_out = a, t.avail_in = A < n ? 5 + (n - A) : 5 - (A - n), t.avail_out = a < i ? 257 + (i - a) : 257 - (a - i), S.hold = c, S.bits = p;
};
const oo = 15, P0 = 852, K0 = 592, V0 = 0, Cf = 1, q0 = 2, jT = new Uint16Array([
/* Length codes 257..285 base */
3,
4,
5,
6,
7,
8,
9,
10,
11,
13,
15,
17,
19,
23,
27,
31,
35,
43,
51,
59,
67,
83,
99,
115,
131,
163,
195,
227,
258,
0,
0
]), WT = new Uint8Array([
/* Length codes 257..285 extra */
16,
16,
16,
16,
16,
16,
16,
16,
17,
17,
17,
17,
18,
18,
18,
18,
19,
19,
19,
19,
20,
20,
20,
20,
21,
21,
21,
21,
16,
72,
78
]), GT = new Uint16Array([
/* Distance codes 0..29 base */
1,
2,
3,
4,
5,
7,
9,
13,
17,
25,
33,
49,
65,
97,
129,
193,
257,
385,
513,
769,
1025,
1537,
2049,
3073,
4097,
6145,
8193,
12289,
16385,
24577,
0,
0
]), YT = new Uint8Array([
/* Distance codes 0..29 extra */
16,
16,
16,
16,
17,
17,
18,
18,
19,
19,
20,
20,
21,
21,
22,
22,
23,
23,
24,
24,
25,
25,
26,
26,
27,
27,
28,
28,
29,
29,
64,
64
]), $T = (r, t, e, A, n, a, s, i) => {
const o = i.bits;
let l = 0, u = 0, h = 0, g = 0, c = 0, p = 0, m = 0, y = 0, w = 0, E = 0, C, F, H, q, N, M = null, k;
const O = new Uint16Array(oo + 1), S = new Uint16Array(oo + 1);
let U = null, W, I, le;
for (l = 0; l <= oo; l++)
O[l] = 0;
for (u = 0; u < A; u++)
O[t[e + u]]++;
for (c = o, g = oo; g >= 1 && O[g] === 0; g--)
;
if (c > g && (c = g), g === 0)
return n[a++] = 1 << 24 | 64 << 16 | 0, n[a++] = 1 << 24 | 64 << 16 | 0, i.bits = 1, 0;
for (h = 1; h < g && O[h] === 0; h++)
;
for (c < h && (c = h), y = 1, l = 1; l <= oo; l++)
if (y <<= 1, y -= O[l], y < 0)
return -1;
if (y > 0 && (r === V0 || g !== 1))
return -1;
for (S[1] = 0, l = 1; l < oo; l++)
S[l + 1] = S[l] + O[l];
for (u = 0; u < A; u++)
t[e + u] !== 0 && (s[S[t[e + u]]++] = u);
if (r === V0 ? (M = U = s, k = 20) : r === Cf ? (M = jT, U = WT, k = 257) : (M = GT, U = YT, k = 0), E = 0, u = 0, l = h, N = a, p = c, m = 0, H = -1, w = 1 << c, q = w - 1, r === Cf && w > P0 || r === q0 && w > K0)
return 1;
for (; ; ) {
W = l - m, s[u] + 1 < k ? (I = 0, le = s[u]) : s[u] >= k ? (I = U[s[u] - k], le = M[s[u] - k]) : (I = 96, le = 0), C = 1 << l - m, F = 1 << p, h = F;
do
F -= C, n[N + (E >> m) + F] = W << 24 | I << 16 | le | 0;
while (F !== 0);
for (C = 1 << l - 1; E & C; )
C >>= 1;
if (C !== 0 ? (E &= C - 1, E += C) : E = 0, u++, --O[l] === 0) {
if (l === g)
break;
l = t[e + s[u]];
}
if (l > c && (E & q) !== H) {
for (m === 0 && (m = c), N += h, p = l - m, y = 1 << p; p + m < g && (y -= O[p + m], !(y <= 0)); )
p++, y <<= 1;
if (w += 1 << p, r === Cf && w > P0 || r === q0 && w > K0)
return 1;
H = E & q, n[H] = c << 24 | p << 16 | N - a | 0;
}
}
return E !== 0 && (n[N + E] = l - m << 24 | 64 << 16 | 0), i.bits = c, 0;
};
var vl = $T;
const zT = 0, r5 = 1, n5 = 2, {
Z_FINISH: j0,
Z_BLOCK: XT,
Z_TREES: uu,
Z_OK: Vs,
Z_STREAM_END: JT,
Z_NEED_DICT: ZT,
Z_STREAM_ERROR: _a,
Z_DATA_ERROR: a5,
Z_MEM_ERROR: i5,
Z_BUF_ERROR: eQ,
Z_DEFLATED: W0
} = e5, xc = 16180, G0 = 16181, Y0 = 16182, $0 = 16183, z0 = 16184, X0 = 16185, J0 = 16186, Z0 = 16187, e1 = 16188, t1 = 16189, cc = 16190, Fi = 16191, Ef = 16192, A1 = 16193, Ff = 16194, r1 = 16195, n1 = 16196, a1 = 16197, i1 = 16198, cu = 16199, fu = 16200, s1 = 16201, o1 = 16202, l1 = 16203, u1 = 16204, c1 = 16205, xf = 16206, f1 = 16207, h1 = 16208, br = 16209, s5 = 16210, o5 = 16211, tQ = 852, AQ = 592, rQ = 15, nQ = rQ, d1 = (r) => (r >>> 24 & 255) + (r >>> 8 & 65280) + ((r & 65280) << 8) + ((r & 255) << 24);
function aQ() {
this.strm = null, this.mode = 0, this.last = !1, this.wrap = 0, this.havedict = !1, this.flags = 0, this.dmax = 0, this.check = 0, this.total = 0, this.head = null, this.wbits = 0, this.wsize = 0, this.whave = 0, this.wnext = 0, this.window = null, this.hold = 0, this.bits = 0, this.length = 0, this.offset = 0, this.extra = 0, this.lencode = null, this.distcode = null, this.lenbits = 0, this.distbits = 0, this.ncode = 0, this.nlen = 0, this.ndist = 0, this.have = 0, this.next = null, this.lens = new Uint16Array(320), this.work = new Uint16Array(288), this.lendyn = null, this.distdyn = null, this.sane = 0, this.back = 0, this.was = 0;
}
const qs = (r) => {
if (!r)
return 1;
const t = r.state;
return !t || t.strm !== r || t.mode < xc || t.mode > o5 ? 1 : 0;
}, l5 = (r) => {
if (qs(r))
return _a;
const t = r.state;
return r.total_in = r.total_out = t.total = 0, r.msg = "", t.wrap && (r.adler = t.wrap & 1), t.mode = xc, t.last = 0, t.havedict = 0, t.flags = -1, t.dmax = 32768, t.head = null, t.hold = 0, t.bits = 0, t.lencode = t.lendyn = new Int32Array(tQ), t.distcode = t.distdyn = new Int32Array(AQ), t.sane = 1, t.back = -1, Vs;
}, u5 = (r) => {
if (qs(r))
return _a;
const t = r.state;
return t.wsize = 0, t.whave = 0, t.wnext = 0, l5(r);
}, c5 = (r, t) => {
let e;
if (qs(r))
return _a;
const A = r.state;
return t < 0 ? (e = 0, t = -t) : (e = (t >> 4) + 5, t < 48 && (t &= 15)), t && (t < 8 || t > 15) ? _a : (A.window !== null && A.wbits !== t && (A.window = null), A.wrap = e, A.wbits = t, u5(r));
}, f5 = (r, t) => {
if (!r)
return _a;
const e = new aQ();
r.state = e, e.strm = r, e.window = null, e.mode = xc;
const A = c5(r, t);
return A !== Vs && (r.state = null), A;
}, iQ = (r) => f5(r, nQ);
let g1 = !0, Sf, Uf;
const sQ = (r) => {
if (g1) {
Sf = new Int32Array(512), Uf = new Int32Array(32);
let t = 0;
for (; t < 144; )
r.lens[t++] = 8;
for (; t < 256; )
r.lens[t++] = 9;
for (; t < 280; )
r.lens[t++] = 7;
for (; t < 288; )
r.lens[t++] = 8;
for (vl(r5, r.lens, 0, 288, Sf, 0, r.work, { bits: 9 }), t = 0; t < 32; )
r.lens[t++] = 5;
vl(n5, r.lens, 0, 32, Uf, 0, r.work, { bits: 5 }), g1 = !1;
}
r.lencode = Sf, r.lenbits = 9, r.distcode = Uf, r.distbits = 5;
}, h5 = (r, t, e, A) => {
let n;
const a = r.state;
return a.window === null && (a.wsize = 1 << a.wbits, a.wnext = 0, a.whave = 0, a.window = new Uint8Array(a.wsize)), A >= a.wsize ? (a.window.set(t.subarray(e - a.wsize, e), 0), a.wnext = 0, a.whave = a.wsize) : (n = a.wsize - a.wnext, n > A && (n = A), a.window.set(t.subarray(e - A, e - A + n), a.wnext), A -= n, A ? (a.window.set(t.subarray(e - A, e), 0), a.wnext = A, a.whave = a.wsize) : (a.wnext += n, a.wnext === a.wsize && (a.wnext = 0), a.whave < a.wsize && (a.whave += n))), 0;
}, oQ = (r, t) => {
let e, A, n, a, s, i, o, l, u, h, g, c, p, m, y = 0, w, E, C, F, H, q, N, M;
const k = new Uint8Array(4);
let O, S;
const U = (
/* permutation of code lengths */
new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15])
);
if (qs(r) || !r.output || !r.input && r.avail_in !== 0)
return _a;
e = r.state, e.mode === Fi && (e.mode = Ef), s = r.next_out, n = r.output, o = r.avail_out, a = r.next_in, A = r.input, i = r.avail_in, l = e.hold, u = e.bits, h = i, g = o, M = Vs;
e:
for (; ; )
switch (e.mode) {
case xc:
if (e.wrap === 0) {
e.mode = Ef;
break;
}
for (; u < 16; ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
if (e.wrap & 2 && l === 35615) {
e.wbits === 0 && (e.wbits = 15), e.check = 0, k[0] = l & 255, k[1] = l >>> 8 & 255, e.check = ui(e.check, k, 2, 0), l = 0, u = 0, e.mode = G0;
break;
}
if (e.head && (e.head.done = !1), !(e.wrap & 1) || /* check if zlib header allowed */
(((l & 255) << 8) + (l >> 8)) % 31) {
r.msg = "incorrect header check", e.mode = br;
break;
}
if ((l & 15) !== W0) {
r.msg = "unknown compression method", e.mode = br;
break;
}
if (l >>>= 4, u -= 4, N = (l & 15) + 8, e.wbits === 0 && (e.wbits = N), N > 15 || N > e.wbits) {
r.msg = "invalid window size", e.mode = br;
break;
}
e.dmax = 1 << e.wbits, e.flags = 0, r.adler = e.check = 1, e.mode = l & 512 ? t1 : Fi, l = 0, u = 0;
break;
case G0:
for (; u < 16; ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
if (e.flags = l, (e.flags & 255) !== W0) {
r.msg = "unknown compression method", e.mode = br;
break;
}
if (e.flags & 57344) {
r.msg = "unknown header flags set", e.mode = br;
break;
}
e.head && (e.head.text = l >> 8 & 1), e.flags & 512 && e.wrap & 4 && (k[0] = l & 255, k[1] = l >>> 8 & 255, e.check = ui(e.check, k, 2, 0)), l = 0, u = 0, e.mode = Y0;
/* falls through */
case Y0:
for (; u < 32; ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
e.head && (e.head.time = l), e.flags & 512 && e.wrap & 4 && (k[0] = l & 255, k[1] = l >>> 8 & 255, k[2] = l >>> 16 & 255, k[3] = l >>> 24 & 255, e.check = ui(e.check, k, 4, 0)), l = 0, u = 0, e.mode = $0;
/* falls through */
case $0:
for (; u < 16; ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
e.head && (e.head.xflags = l & 255, e.head.os = l >> 8), e.flags & 512 && e.wrap & 4 && (k[0] = l & 255, k[1] = l >>> 8 & 255, e.check = ui(e.check, k, 2, 0)), l = 0, u = 0, e.mode = z0;
/* falls through */
case z0:
if (e.flags & 1024) {
for (; u < 16; ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
e.length = l, e.head && (e.head.extra_len = l), e.flags & 512 && e.wrap & 4 && (k[0] = l & 255, k[1] = l >>> 8 & 255, e.check = ui(e.check, k, 2, 0)), l = 0, u = 0;
} else e.head && (e.head.extra = null);
e.mode = X0;
/* falls through */
case X0:
if (e.flags & 1024 && (c = e.length, c > i && (c = i), c && (e.head && (N = e.head.extra_len - e.length, e.head.extra || (e.head.extra = new Uint8Array(e.head.extra_len)), e.head.extra.set(
A.subarray(
a,
// extra field is limited to 65536 bytes
// - no need for additional size check
a + c
),
/*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/
N
)), e.flags & 512 && e.wrap & 4 && (e.check = ui(e.check, A, c, a)), i -= c, a += c, e.length -= c), e.length))
break e;
e.length = 0, e.mode = J0;
/* falls through */
case J0:
if (e.flags & 2048) {
if (i === 0)
break e;
c = 0;
do
N = A[a + c++], e.head && N && e.length < 65536 && (e.head.name += String.fromCharCode(N));
while (N && c < i);
if (e.flags & 512 && e.wrap & 4 && (e.check = ui(e.check, A, c, a)), i -= c, a += c, N)
break e;
} else e.head && (e.head.name = null);
e.length = 0, e.mode = Z0;
/* falls through */
case Z0:
if (e.flags & 4096) {
if (i === 0)
break e;
c = 0;
do
N = A[a + c++], e.head && N && e.length < 65536 && (e.head.comment += String.fromCharCode(N));
while (N && c < i);
if (e.flags & 512 && e.wrap & 4 && (e.check = ui(e.check, A, c, a)), i -= c, a += c, N)
break e;
} else e.head && (e.head.comment = null);
e.mode = e1;
/* falls through */
case e1:
if (e.flags & 512) {
for (; u < 16; ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
if (e.wrap & 4 && l !== (e.check & 65535)) {
r.msg = "header crc mismatch", e.mode = br;
break;
}
l = 0, u = 0;
}
e.head && (e.head.hcrc = e.flags >> 9 & 1, e.head.done = !0), r.adler = e.check = 0, e.mode = Fi;
break;
case t1:
for (; u < 32; ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
r.adler = e.check = d1(l), l = 0, u = 0, e.mode = cc;
/* falls through */
case cc:
if (e.havedict === 0)
return r.next_out = s, r.avail_out = o, r.next_in = a, r.avail_in = i, e.hold = l, e.bits = u, ZT;
r.adler = e.check = 1, e.mode = Fi;
/* falls through */
case Fi:
if (t === XT || t === uu)
break e;
/* falls through */
case Ef:
if (e.last) {
l >>>= u & 7, u -= u & 7, e.mode = xf;
break;
}
for (; u < 3; ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
switch (e.last = l & 1, l >>>= 1, u -= 1, l & 3) {
case 0:
e.mode = A1;
break;
case 1:
if (sQ(e), e.mode = cu, t === uu) {
l >>>= 2, u -= 2;
break e;
}
break;
case 2:
e.mode = n1;
break;
case 3:
r.msg = "invalid block type", e.mode = br;
}
l >>>= 2, u -= 2;
break;
case A1:
for (l >>>= u & 7, u -= u & 7; u < 32; ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
if ((l & 65535) !== (l >>> 16 ^ 65535)) {
r.msg = "invalid stored block lengths", e.mode = br;
break;
}
if (e.length = l & 65535, l = 0, u = 0, e.mode = Ff, t === uu)
break e;
/* falls through */
case Ff:
e.mode = r1;
/* falls through */
case r1:
if (c = e.length, c) {
if (c > i && (c = i), c > o && (c = o), c === 0)
break e;
n.set(A.subarray(a, a + c), s), i -= c, a += c, o -= c, s += c, e.length -= c;
break;
}
e.mode = Fi;
break;
case n1:
for (; u < 14; ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
if (e.nlen = (l & 31) + 257, l >>>= 5, u -= 5, e.ndist = (l & 31) + 1, l >>>= 5, u -= 5, e.ncode = (l & 15) + 4, l >>>= 4, u -= 4, e.nlen > 286 || e.ndist > 30) {
r.msg = "too many length or distance symbols", e.mode = br;
break;
}
e.have = 0, e.mode = a1;
/* falls through */
case a1:
for (; e.have < e.ncode; ) {
for (; u < 3; ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
e.lens[U[e.have++]] = l & 7, l >>>= 3, u -= 3;
}
for (; e.have < 19; )
e.lens[U[e.have++]] = 0;
if (e.lencode = e.lendyn, e.lenbits = 7, O = { bits: e.lenbits }, M = vl(zT, e.lens, 0, 19, e.lencode, 0, e.work, O), e.lenbits = O.bits, M) {
r.msg = "invalid code lengths set", e.mode = br;
break;
}
e.have = 0, e.mode = i1;
/* falls through */
case i1:
for (; e.have < e.nlen + e.ndist; ) {
for (; y = e.lencode[l & (1 << e.lenbits) - 1], w = y >>> 24, E = y >>> 16 & 255, C = y & 65535, !(w <= u); ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
if (C < 16)
l >>>= w, u -= w, e.lens[e.have++] = C;
else {
if (C === 16) {
for (S = w + 2; u < S; ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
if (l >>>= w, u -= w, e.have === 0) {
r.msg = "invalid bit length repeat", e.mode = br;
break;
}
N = e.lens[e.have - 1], c = 3 + (l & 3), l >>>= 2, u -= 2;
} else if (C === 17) {
for (S = w + 3; u < S; ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
l >>>= w, u -= w, N = 0, c = 3 + (l & 7), l >>>= 3, u -= 3;
} else {
for (S = w + 7; u < S; ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
l >>>= w, u -= w, N = 0, c = 11 + (l & 127), l >>>= 7, u -= 7;
}
if (e.have + c > e.nlen + e.ndist) {
r.msg = "invalid bit length repeat", e.mode = br;
break;
}
for (; c--; )
e.lens[e.have++] = N;
}
}
if (e.mode === br)
break;
if (e.lens[256] === 0) {
r.msg = "invalid code -- missing end-of-block", e.mode = br;
break;
}
if (e.lenbits = 9, O = { bits: e.lenbits }, M = vl(r5, e.lens, 0, e.nlen, e.lencode, 0, e.work, O), e.lenbits = O.bits, M) {
r.msg = "invalid literal/lengths set", e.mode = br;
break;
}
if (e.distbits = 6, e.distcode = e.distdyn, O = { bits: e.distbits }, M = vl(n5, e.lens, e.nlen, e.ndist, e.distcode, 0, e.work, O), e.distbits = O.bits, M) {
r.msg = "invalid distances set", e.mode = br;
break;
}
if (e.mode = cu, t === uu)
break e;
/* falls through */
case cu:
e.mode = fu;
/* falls through */
case fu:
if (i >= 6 && o >= 258) {
r.next_out = s, r.avail_out = o, r.next_in = a, r.avail_in = i, e.hold = l, e.bits = u, qT(r, g), s = r.next_out, n = r.output, o = r.avail_out, a = r.next_in, A = r.input, i = r.avail_in, l = e.hold, u = e.bits, e.mode === Fi && (e.back = -1);
break;
}
for (e.back = 0; y = e.lencode[l & (1 << e.lenbits) - 1], w = y >>> 24, E = y >>> 16 & 255, C = y & 65535, !(w <= u); ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
if (E && (E & 240) === 0) {
for (F = w, H = E, q = C; y = e.lencode[q + ((l & (1 << F + H) - 1) >> F)], w = y >>> 24, E = y >>> 16 & 255, C = y & 65535, !(F + w <= u); ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
l >>>= F, u -= F, e.back += F;
}
if (l >>>= w, u -= w, e.back += w, e.length = C, E === 0) {
e.mode = c1;
break;
}
if (E & 32) {
e.back = -1, e.mode = Fi;
break;
}
if (E & 64) {
r.msg = "invalid literal/length code", e.mode = br;
break;
}
e.extra = E & 15, e.mode = s1;
/* falls through */
case s1:
if (e.extra) {
for (S = e.extra; u < S; ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
e.length += l & (1 << e.extra) - 1, l >>>= e.extra, u -= e.extra, e.back += e.extra;
}
e.was = e.length, e.mode = o1;
/* falls through */
case o1:
for (; y = e.distcode[l & (1 << e.distbits) - 1], w = y >>> 24, E = y >>> 16 & 255, C = y & 65535, !(w <= u); ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
if ((E & 240) === 0) {
for (F = w, H = E, q = C; y = e.distcode[q + ((l & (1 << F + H) - 1) >> F)], w = y >>> 24, E = y >>> 16 & 255, C = y & 65535, !(F + w <= u); ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
l >>>= F, u -= F, e.back += F;
}
if (l >>>= w, u -= w, e.back += w, E & 64) {
r.msg = "invalid distance code", e.mode = br;
break;
}
e.offset = C, e.extra = E & 15, e.mode = l1;
/* falls through */
case l1:
if (e.extra) {
for (S = e.extra; u < S; ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
e.offset += l & (1 << e.extra) - 1, l >>>= e.extra, u -= e.extra, e.back += e.extra;
}
if (e.offset > e.dmax) {
r.msg = "invalid distance too far back", e.mode = br;
break;
}
e.mode = u1;
/* falls through */
case u1:
if (o === 0)
break e;
if (c = g - o, e.offset > c) {
if (c = e.offset - c, c > e.whave && e.sane) {
r.msg = "invalid distance too far back", e.mode = br;
break;
}
c > e.wnext ? (c -= e.wnext, p = e.wsize - c) : p = e.wnext - c, c > e.length && (c = e.length), m = e.window;
} else
m = n, p = s - e.offset, c = e.length;
c > o && (c = o), o -= c, e.length -= c;
do
n[s++] = m[p++];
while (--c);
e.length === 0 && (e.mode = fu);
break;
case c1:
if (o === 0)
break e;
n[s++] = e.length, o--, e.mode = fu;
break;
case xf:
if (e.wrap) {
for (; u < 32; ) {
if (i === 0)
break e;
i--, l |= A[a++] << u, u += 8;
}
if (g -= o, r.total_out += g, e.total += g, e.wrap & 4 && g && (r.adler = e.check = /*UPDATE_CHECK(state.check, put - _out, _out);*/
e.flags ? ui(e.check, n, g, s - g) : np(e.check, n, g, s - g)), g = o, e.wrap & 4 && (e.flags ? l : d1(l)) !== e.check) {
r.msg = "incorrect data check", e.mode = br;
break;
}
l = 0, u = 0;
}
e.mode = f1;
/* falls through */
case f1:
if (e.wrap && e.flags) {
for (; u < 32; ) {
if (i === 0)
break e;
i--, l += A[a++] << u, u += 8;
}
if (e.wrap & 4 && l !== (e.total & 4294967295)) {
r.msg = "incorrect length check", e.mode = br;
break;
}
l = 0, u = 0;
}
e.mode = h1;
/* falls through */
case h1:
M = JT;
break e;
case br:
M = a5;
break e;
case s5:
return i5;
case o5:
/* falls through */
default:
return _a;
}
return r.next_out = s, r.avail_out = o, r.next_in = a, r.avail_in = i, e.hold = l, e.bits = u, (e.wsize || g !== r.avail_out && e.mode < br && (e.mode < xf || t !== j0)) && h5(r, r.output, r.next_out, g - r.avail_out), h -= r.avail_in, g -= r.avail_out, r.total_in += h, r.total_out += g, e.total += g, e.wrap & 4 && g && (r.adler = e.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/
e.flags ? ui(e.check, n, g, r.next_out - g) : np(e.check, n, g, r.next_out - g)), r.data_type = e.bits + (e.last ? 64 : 0) + (e.mode === Fi ? 128 : 0) + (e.mode === cu || e.mode === Ff ? 256 : 0), (h === 0 && g === 0 || t === j0) && M === Vs && (M = eQ), M;
}, lQ = (r) => {
if (qs(r))
return _a;
let t = r.state;
return t.window && (t.window = null), r.state = null, Vs;
}, uQ = (r, t) => {
if (qs(r))
return _a;
const e = r.state;
return (e.wrap & 2) === 0 ? _a : (e.head = t, t.done = !1, Vs);
}, cQ = (r, t) => {
const e = t.length;
let A, n, a;
return qs(r) || (A = r.state, A.wrap !== 0 && A.mode !== cc) ? _a : A.mode === cc && (n = 1, n = np(n, t, e, 0), n !== A.check) ? a5 : (a = h5(r, t, e, e), a ? (A.mode = s5, i5) : (A.havedict = 1, Vs));
};
var fQ = u5, hQ = c5, dQ = l5, gQ = iQ, pQ = f5, vQ = oQ, mQ = lQ, wQ = uQ, BQ = cQ, yQ = "pako inflate (from Nodeca project)", ki = {
inflateReset: fQ,
inflateReset2: hQ,
inflateResetKeep: dQ,
inflateInit: gQ,
inflateInit2: pQ,
inflate: vQ,
inflateEnd: mQ,
inflateGetHeader: wQ,
inflateSetDictionary: BQ,
inflateInfo: yQ
};
function bQ() {
this.text = 0, this.time = 0, this.xflags = 0, this.os = 0, this.extra = null, this.extra_len = 0, this.name = "", this.comment = "", this.hcrc = 0, this.done = !1;
}
var CQ = bQ;
const d5 = Object.prototype.toString, {
Z_NO_FLUSH: EQ,
Z_FINISH: FQ,
Z_OK: Fl,
Z_STREAM_END: Tf,
Z_NEED_DICT: Qf,
Z_STREAM_ERROR: xQ,
Z_DATA_ERROR: p1,
Z_MEM_ERROR: SQ
} = e5;
function Tl(r) {
this.options = t5.assign({
chunkSize: 1024 * 64,
windowBits: 15,
to: ""
}, r || {});
const t = this.options;
t.raw && t.windowBits >= 0 && t.windowBits < 16 && (t.windowBits = -t.windowBits, t.windowBits === 0 && (t.windowBits = -15)), t.windowBits >= 0 && t.windowBits < 16 && !(r && r.windowBits) && (t.windowBits += 32), t.windowBits > 15 && t.windowBits < 48 && (t.windowBits & 15) === 0 && (t.windowBits |= 15), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new KT(), this.strm.avail_out = 0;
let e = ki.inflateInit2(
this.strm,
t.windowBits
);
if (e !== Fl)
throw new Error(ap[e]);
if (this.header = new CQ(), ki.inflateGetHeader(this.strm, this.header), t.dictionary && (typeof t.dictionary == "string" ? t.dictionary = ip.string2buf(t.dictionary) : d5.call(t.dictionary) === "[object ArrayBuffer]" && (t.dictionary = new Uint8Array(t.dictionary)), t.raw && (e = ki.inflateSetDictionary(this.strm, t.dictionary), e !== Fl)))
throw new Error(ap[e]);
}
Tl.prototype.push = function(r, t) {
const e = this.strm, A = this.options.chunkSize, n = this.options.dictionary;
let a, s, i;
if (this.ended) return !1;
for (t === ~~t ? s = t : s = t === !0 ? FQ : EQ, d5.call(r) === "[object ArrayBuffer]" ? e.input = new Uint8Array(r) : e.input = r, e.next_in = 0, e.avail_in = e.input.length; ; ) {
for (e.avail_out === 0 && (e.output = new Uint8Array(A), e.next_out = 0, e.avail_out = A), a = ki.inflate(e, s), a === Qf && n && (a = ki.inflateSetDictionary(e, n), a === Fl ? a = ki.inflate(e, s) : a === p1 && (a = Qf)); e.avail_in > 0 && a === Tf && e.state.wrap > 0 && r[e.next_in] !== 0; )
ki.inflateReset(e), a = ki.inflate(e, s);
switch (a) {
case xQ:
case p1:
case Qf:
case SQ:
return this.onEnd(a), this.ended = !0, !1;
}
if (i = e.avail_out, e.next_out && (e.avail_out === 0 || a === Tf))
if (this.options.to === "string") {
let o = ip.utf8border(e.output, e.next_out), l = e.next_out - o, u = ip.buf2string(e.output, o);
e.next_out = l, e.avail_out = A - l, l && e.output.set(e.output.subarray(o, o + l), 0), this.onData(u);
} else
this.onData(e.output.length === e.next_out ? e.output : e.output.subarray(0, e.next_out));
if (!(a === Fl && i === 0)) {
if (a === Tf)
return a = ki.inflateEnd(this.strm), this.onEnd(a), this.ended = !0, !0;
if (e.avail_in === 0) break;
}
}
return !0;
};
Tl.prototype.onData = function(r) {
this.chunks.push(r);
};
Tl.prototype.onEnd = function(r) {
r === Fl && (this.options.to === "string" ? this.result = this.chunks.join("") : this.result = t5.flattenChunks(this.chunks)), this.chunks = [], this.err = r, this.msg = this.strm.msg;
};
function UQ(r, t) {
const e = new Tl(t);
if (e.push(r), e.err) throw e.msg || ap[e.err];
return e.result;
}
var TQ = Tl, QQ = UQ, DQ = {
Inflate: TQ,
inflate: QQ
};
const { Inflate: kQ, inflate: LQ } = DQ;
var v1 = kQ, IQ = LQ;
const g5 = [];
for (let r = 0; r < 256; r++) {
let t = r;
for (let e = 0; e < 8; e++)
t & 1 ? t = 3988292384 ^ t >>> 1 : t = t >>> 1;
g5[r] = t;
}
const m1 = 4294967295;
function _Q(r, t, e) {
let A = r;
for (let n = 0; n < e; n++)
A = g5[(A ^ t[n]) & 255] ^ A >>> 8;
return A;
}
function NQ(r, t) {
return (_Q(m1, r, t) ^ m1) >>> 0;
}
function w1(r, t, e) {
const A = r.readUint32(), n = NQ(new Uint8Array(r.buffer, r.byteOffset + r.offset - t - 4, t), t);
if (n !== A)
throw new Error(`CRC mismatch for chunk ${e}. Expected ${A}, found ${n}`);
}
function p5(r, t, e) {
for (let A = 0; A < e; A++)
t[A] = r[A];
}
function v5(r, t, e, A) {
let n = 0;
for (; n < A; n++)
t[n] = r[n];
for (; n < e; n++)
t[n] = r[n] + t[n - A] & 255;
}
function m5(r, t, e, A) {
let n = 0;
if (e.length === 0)
for (; n < A; n++)
t[n] = r[n];
else
for (; n < A; n++)
t[n] = r[n] + e[n] & 255;
}
function w5(r, t, e, A, n) {
let a = 0;
if (e.length === 0) {
for (; a < n; a++)
t[a] = r[a];
for (; a < A; a++)
t[a] = r[a] + (t[a - n] >> 1) & 255;
} else {
for (; a < n; a++)
t[a] = r[a] + (e[a] >> 1) & 255;
for (; a < A; a++)
t[a] = r[a] + (t[a - n] + e[a] >> 1) & 255;
}
}
function B5(r, t, e, A, n) {
let a = 0;
if (e.length === 0) {
for (; a < n; a++)
t[a] = r[a];
for (; a < A; a++)
t[a] = r[a] + t[a - n] & 255;
} else {
for (; a < n; a++)
t[a] = r[a] + e[a] & 255;
for (; a < A; a++)
t[a] = r[a] + MQ(t[a - n], e[a], e[a - n]) & 255;
}
}
function MQ(r, t, e) {
const A = r + t - e, n = Math.abs(A - r), a = Math.abs(A - t), s = Math.abs(A - e);
return n <= a && n <= s ? r : a <= s ? t : e;
}
function OQ(r, t, e, A, n, a) {
switch (r) {
case 0:
p5(t, e, n);
break;
case 1:
v5(t, e, n, a);
break;
case 2:
m5(t, e, A, n);
break;
case 3:
w5(t, e, A, n, a);
break;
case 4:
B5(t, e, A, n, a);
break;
default:
throw new Error(`Unsupported filter: ${r}`);
}
}
const RQ = new Uint16Array([255]), HQ = new Uint8Array(RQ.buffer), PQ = HQ[0] === 255;
function KQ(r) {
const { data: t, width: e, height: A, channels: n, depth: a } = r, s = [
{ x: 0, y: 0, xStep: 8, yStep: 8 },
// Pass 1
{ x: 4, y: 0, xStep: 8, yStep: 8 },
// Pass 2
{ x: 0, y: 4, xStep: 4, yStep: 8 },
// Pass 3
{ x: 2, y: 0, xStep: 4, yStep: 4 },
// Pass 4
{ x: 0, y: 2, xStep: 2, yStep: 4 },
// Pass 5
{ x: 1, y: 0, xStep: 2, yStep: 2 },
// Pass 6
{ x: 0, y: 1, xStep: 1, yStep: 2 }
// Pass 7
], i = Math.ceil(a / 8) * n, o = new Uint8Array(A * e * i);
let l = 0;
for (let u = 0; u < 7; u++) {
const h = s[u], g = Math.ceil((e - h.x) / h.xStep), c = Math.ceil((A - h.y) / h.yStep);
if (g <= 0 || c <= 0)
continue;
const p = g * i, m = new Uint8Array(p);
for (let y = 0; y < c; y++) {
const w = t[l++], E = t.subarray(l, l + p);
l += p;
const C = new Uint8Array(p);
OQ(w, E, C, m, p, i), m.set(C);
for (let F = 0; F < g; F++) {
const H = h.x + F * h.xStep, q = h.y + y * h.yStep;
if (!(H >= e || q >= A))
for (let N = 0; N < i; N++)
o[(q * e + H) * i + N] = C[F * i + N];
}
}
}
if (a === 16) {
const u = new Uint16Array(o.buffer);
if (PQ)
for (let h = 0; h < u.length; h++)
u[h] = VQ(u[h]);
return u;
} else
return o;
}
function VQ(r) {
return (r & 255) << 8 | r >> 8 & 255;
}
const qQ = new Uint16Array([255]), jQ = new Uint8Array(qQ.buffer), WQ = jQ[0] === 255, GQ = new Uint8Array(0);
function B1(r) {
const { data: t, width: e, height: A, channels: n, depth: a } = r, s = Math.ceil(a / 8) * n, i = Math.ceil(a / 8 * n * e), o = new Uint8Array(A * i);
let l = GQ, u = 0, h, g;
for (let c = 0; c < A; c++) {
switch (h = t.subarray(u + 1, u + 1 + i), g = o.subarray(c * i, (c + 1) * i), t[u]) {
case 0:
p5(h, g, i);
break;
case 1:
v5(h, g, i, s);
break;
case 2:
m5(h, g, l, i);
break;
case 3:
w5(h, g, l, i, s);
break;
case 4:
B5(h, g, l, i, s);
break;
default:
throw new Error(`Unsupported filter: ${t[u]}`);
}
l = g, u += i + 1;
}
if (a === 16) {
const c = new Uint16Array(o.buffer);
if (WQ)
for (let p = 0; p < c.length; p++)
c[p] = YQ(c[p]);
return c;
} else
return o;
}
function YQ(r) {
return (r & 255) << 8 | r >> 8 & 255;
}
const $u = Uint8Array.of(137, 80, 78, 71, 13, 10, 26, 10);
function y1(r) {
if (!$Q(r.readBytes($u.length)))
throw new Error("wrong PNG signature");
}
function $Q(r) {
if (r.length < $u.length)
return !1;
for (let t = 0; t < $u.length; t++)
if (r[t] !== $u[t])
return !1;
return !0;
}
const zQ = "tEXt", XQ = 0, y5 = new TextDecoder("latin1");
function JQ(r) {
if (eD(r), r.length === 0 || r.length > 79)
throw new Error("keyword length must be between 1 and 79");
}
const ZQ = /^[\u0000-\u00FF]*$/;
function eD(r) {
if (!ZQ.test(r))
throw new Error("invalid latin1 text");
}
function tD(r, t, e) {
const A = b5(t);
r[A] = AD(t, e - A.length - 1);
}
function b5(r) {
for (r.mark(); r.readByte() !== XQ; )
;
const t = r.offset;
r.reset();
const e = y5.decode(r.readBytes(t - r.offset - 1));
return r.skip(1), JQ(e), e;
}
function AD(r, t) {
return y5.decode(r.readBytes(t));
}
const ma = {
UNKNOWN: -1,
GREYSCALE: 0,
TRUECOLOUR: 2,
INDEXED_COLOUR: 3,
GREYSCALE_ALPHA: 4,
TRUECOLOUR_ALPHA: 6
}, Df = {
UNKNOWN: -1,
DEFLATE: 0
}, b1 = {
UNKNOWN: -1,
ADAPTIVE: 0
}, kf = {
UNKNOWN: -1,
NO_INTERLACE: 0,
ADAM7: 1
}, hu = {
NONE: 0,
BACKGROUND: 1,
PREVIOUS: 2
}, Lf = {
SOURCE: 0,
OVER: 1
};
class rD extends Zp {
constructor(e, A = {}) {
super(e);
HA(this, "_checkCrc");
HA(this, "_inflator");
HA(this, "_png");
HA(this, "_apng");
HA(this, "_end");
HA(this, "_hasPalette");
HA(this, "_palette");
HA(this, "_hasTransparency");
HA(this, "_transparency");
HA(this, "_compressionMethod");
HA(this, "_filterMethod");
HA(this, "_interlaceMethod");
HA(this, "_colorType");
HA(this, "_isAnimated");
HA(this, "_numberOfFrames");
HA(this, "_numberOfPlays");
HA(this, "_frames");
HA(this, "_writingDataChunks");
const { checkCrc: n = !1 } = A;
this._checkCrc = n, this._inflator = new v1(), this._png = {
width: -1,
height: -1,
channels: -1,
data: new Uint8Array(0),
depth: 1,
text: {}
}, this._apng = {
width: -1,
height: -1,
channels: -1,
depth: 1,
numberOfFrames: 1,
numberOfPlays: 0,
text: {},
frames: []
}, this._end = !1, this._hasPalette = !1, this._palette = [], this._hasTransparency = !1, this._transparency = new Uint16Array(0), this._compressionMethod = Df.UNKNOWN, this._filterMethod = b1.UNKNOWN, this._interlaceMethod = kf.UNKNOWN, this._colorType = ma.UNKNOWN, this._isAnimated = !1, this._numberOfFrames = 1, this._numberOfPlays = 0, this._frames = [], this._writingDataChunks = !1, this.setBigEndian();
}
decode() {
for (y1(this); !this._end; ) {
const e = this.readUint32(), A = this.readChars(4);
this.decodeChunk(e, A);
}
return this.decodeImage(), this._png;
}
decodeApng() {
for (y1(this); !this._end; ) {
const e = this.readUint32(), A = this.readChars(4);
this.decodeApngChunk(e, A);
}
return this.decodeApngImage(), this._apng;
}
// https://www.w3.org/TR/PNG/#5Chunk-layout
decodeChunk(e, A) {
const n = this.offset;
switch (A) {
// 11.2 Critical chunks
case "IHDR":
this.decodeIHDR();
break;
case "PLTE":
this.decodePLTE(e);
break;
case "IDAT":
this.decodeIDAT(e);
break;
case "IEND":
this._end = !0;
break;
// 11.3 Ancillary chunks
case "tRNS":
this.decodetRNS(e);
break;
case "iCCP":
this.decodeiCCP(e);
break;
case zQ:
tD(this._png.text, this, e);
break;
case "pHYs":
this.decodepHYs();
break;
default:
this.skip(e);
break;
}
if (this.offset - n !== e)
throw new Error(`Length mismatch while decoding chunk ${A}`);
this._checkCrc ? w1(this, e + 4, A) : this.skip(4);
}
decodeApngChunk(e, A) {
const n = this.offset;
switch (A !== "fdAT" && A !== "IDAT" && this._writingDataChunks && this.pushDataToFrame(), A) {
case "acTL":
this.decodeACTL();
break;
case "fcTL":
this.decodeFCTL();
break;
case "fdAT":
this.decodeFDAT(e);
break;
default:
this.decodeChunk(e, A), this.offset = n + e;
break;
}
if (this.offset - n !== e)
throw new Error(`Length mismatch while decoding chunk ${A}`);
this._checkCrc ? w1(this, e + 4, A) : this.skip(4);
}
// https://www.w3.org/TR/PNG/#11IHDR
decodeIHDR() {
const e = this._png;
e.width = this.readUint32(), e.height = this.readUint32(), e.depth = nD(this.readUint8());
const A = this.readUint8();
this._colorType = A;
let n;
switch (A) {
case ma.GREYSCALE:
n = 1;
break;
case ma.TRUECOLOUR:
n = 3;
break;
case ma.INDEXED_COLOUR:
n = 1;
break;
case ma.GREYSCALE_ALPHA:
n = 2;
break;
case ma.TRUECOLOUR_ALPHA:
n = 4;
break;
// Kept for exhaustiveness.
// eslint-disable-next-line unicorn/no-useless-switch-case
case ma.UNKNOWN:
default:
throw new Error(`Unknown color type: ${A}`);
}
if (this._png.channels = n, this._compressionMethod = this.readUint8(), this._compressionMethod !== Df.DEFLATE)
throw new Error(`Unsupported compression method: ${this._compressionMethod}`);
this._filterMethod = this.readUint8(), this._interlaceMethod = this.readUint8();
}
decodeACTL() {
this._numberOfFrames = this.readUint32(), this._numberOfPlays = this.readUint32(), this._isAnimated = !0;
}
decodeFCTL() {
const e = {
sequenceNumber: this.readUint32(),
width: this.readUint32(),
height: this.readUint32(),
xOffset: this.readUint32(),
yOffset: this.readUint32(),
delayNumber: this.readUint16(),
delayDenominator: this.readUint16(),
disposeOp: this.readUint8(),
blendOp: this.readUint8(),
data: new Uint8Array(0)
};
this._frames.push(e);
}
// https://www.w3.org/TR/PNG/#11PLTE
decodePLTE(e) {
if (e % 3 !== 0)
throw new RangeError(`PLTE field length must be a multiple of 3. Got ${e}`);
const A = e / 3;
this._hasPalette = !0;
const n = [];
this._palette = n;
for (let a = 0; a < A; a++)
n.push([this.readUint8(), this.readUint8(), this.readUint8()]);
}
// https://www.w3.org/TR/PNG/#11IDAT
decodeIDAT(e) {
this._writingDataChunks = !0;
const A = e, n = this.offset + this.byteOffset;
if (this._inflator.push(new Uint8Array(this.buffer, n, A)), this._inflator.err)
throw new Error(`Error while decompressing the data: ${this._inflator.err}`);
this.skip(e);
}
decodeFDAT(e) {
this._writingDataChunks = !0;
let A = e, n = this.offset + this.byteOffset;
if (n += 4, A -= 4, this._inflator.push(new Uint8Array(this.buffer, n, A)), this._inflator.err)
throw new Error(`Error while decompressing the data: ${this._inflator.err}`);
this.skip(e);
}
// https://www.w3.org/TR/PNG/#11tRNS
decodetRNS(e) {
switch (this._colorType) {
case ma.GREYSCALE:
case ma.TRUECOLOUR: {
if (e % 2 !== 0)
throw new RangeError(`tRNS chunk length must be a multiple of 2. Got ${e}`);
if (e / 2 > this._png.width * this._png.height)
throw new Error(`tRNS chunk contains more alpha values than there are pixels (${e / 2} vs ${this._png.width * this._png.height})`);
this._hasTransparency = !0, this._transparency = new Uint16Array(e / 2);
for (let A = 0; A < e / 2; A++)
this._transparency[A] = this.readUint16();
break;
}
case ma.INDEXED_COLOUR: {
if (e > this._palette.length)
throw new Error(`tRNS chunk contains more alpha values than there are palette colors (${e} vs ${this._palette.length})`);
let A = 0;
for (; A < e; A++) {
const n = this.readByte();
this._palette[A].push(n);
}
for (; A < this._palette.length; A++)
this._palette[A].push(255);
break;
}
// Kept for exhaustiveness.
/* eslint-disable unicorn/no-useless-switch-case */
case ma.UNKNOWN:
case ma.GREYSCALE_ALPHA:
case ma.TRUECOLOUR_ALPHA:
default:
throw new Error(`tRNS chunk is not supported for color type ${this._colorType}`);
}
}
// https://www.w3.org/TR/PNG/#11iCCP
decodeiCCP(e) {
const A = b5(this), n = this.readUint8();
if (n !== Df.DEFLATE)
throw new Error(`Unsupported iCCP compression method: ${n}`);
const a = this.readBytes(e - A.length - 2);
this._png.iccEmbeddedProfile = {
name: A,
profile: IQ(a)
};
}
// https://www.w3.org/TR/PNG/#11pHYs
decodepHYs() {
const e = this.readUint32(), A = this.readUint32(), n = this.readByte();
this._png.resolution = { x: e, y: A, unit: n };
}
decodeApngImage() {
this._apng.width = this._png.width, this._apng.height = this._png.height, this._apng.channels = this._png.channels, this._apng.depth = this._png.depth, this._apng.numberOfFrames = this._numberOfFrames, this._apng.numberOfPlays = this._numberOfPlays, this._apng.text = this._png.text, this._apng.resolution = this._png.resolution;
for (let e = 0; e < this._numberOfFrames; e++) {
const A = {
sequenceNumber: this._frames[e].sequenceNumber,
delayNumber: this._frames[e].delayNumber,
delayDenominator: this._frames[e].delayDenominator,
data: this._apng.depth === 8 ? new Uint8Array(this._apng.width * this._apng.height * this._apng.channels) : new Uint16Array(this._apng.width * this._apng.height * this._apng.channels)
}, n = this._frames.at(e);
if (n) {
if (n.data = B1({
data: n.data,
width: n.width,
height: n.height,
channels: this._apng.channels,
depth: this._apng.depth
}), this._hasPalette && (this._apng.palette = this._palette), this._hasTransparency && (this._apng.transparency = this._transparency), e === 0 || n.xOffset === 0 && n.yOffset === 0 && n.width === this._png.width && n.height === this._png.height)
A.data = n.data;
else {
const a = this._apng.frames.at(e - 1);
this.disposeFrame(n, a, A), this.addFrameDataToCanvas(A, n);
}
this._apng.frames.push(A);
}
}
return this._apng;
}
disposeFrame(e, A, n) {
switch (e.disposeOp) {
case hu.NONE:
break;
case hu.BACKGROUND:
for (let a = 0; a < this._png.height; a++)
for (let s = 0; s < this._png.width; s++) {
const i = (a * e.width + s) * this._png.channels;
for (let o = 0; o < this._png.channels; o++)
n.data[i + o] = 0;
}
break;
case hu.PREVIOUS:
n.data.set(A.data);
break;
default:
throw new Error("Unknown disposeOp");
}
}
addFrameDataToCanvas(e, A) {
const n = 1 << this._png.depth, a = (s, i) => {
const o = ((s + A.yOffset) * this._png.width + A.xOffset + i) * this._png.channels, l = (s * A.width + i) * this._png.channels;
return { index: o, frameIndex: l };
};
switch (A.blendOp) {
case Lf.SOURCE:
for (let s = 0; s < A.height; s++)
for (let i = 0; i < A.width; i++) {
const { index: o, frameIndex: l } = a(s, i);
for (let u = 0; u < this._png.channels; u++)
e.data[o + u] = A.data[l + u];
}
break;
// https://www.w3.org/TR/png-3/#13Alpha-channel-processing
case Lf.OVER:
for (let s = 0; s < A.height; s++)
for (let i = 0; i < A.width; i++) {
const { index: o, frameIndex: l } = a(s, i);
for (let u = 0; u < this._png.channels; u++) {
const h = A.data[l + this._png.channels - 1] / n, g = u % (this._png.channels - 1) === 0 ? 1 : A.data[l + u], c = Math.floor(h * g + (1 - h) * e.data[o + u]);
e.data[o + u] += c;
}
}
break;
default:
throw new Error("Unknown blendOp");
}
}
decodeImage() {
var A;
if (this._inflator.err)
throw new Error(`Error while decompressing the data: ${this._inflator.err}`);
const e = this._isAnimated ? ((A = this._frames) == null ? void 0 : A.at(0)).data : this._inflator.result;
if (this._filterMethod !== b1.ADAPTIVE)
throw new Error(`Filter method ${this._filterMethod} not supported`);
if (this._interlaceMethod === kf.NO_INTERLACE)
this._png.data = B1({
data: e,
width: this._png.width,
height: this._png.height,
channels: this._png.channels,
depth: this._png.depth
});
else if (this._interlaceMethod === kf.ADAM7)
this._png.data = KQ({
data: e,
width: this._png.width,
height: this._png.height,
channels: this._png.channels,
depth: this._png.depth
});
else
throw new Error(`Interlace method ${this._interlaceMethod} not supported`);
this._hasPalette && (this._png.palette = this._palette), this._hasTransparency && (this._png.transparency = this._transparency);
}
pushDataToFrame() {
const e = this._inflator.result, A = this._frames.at(-1);
A ? A.data = e : this._frames.push({
sequenceNumber: 0,
width: this._png.width,
height: this._png.height,
xOffset: 0,
yOffset: 0,
delayNumber: 0,
delayDenominator: 0,
disposeOp: hu.NONE,
blendOp: Lf.SOURCE,
data: e
}), this._inflator = new v1(), this._writingDataChunks = !1;
}
}
function nD(r) {
if (r !== 1 && r !== 2 && r !== 4 && r !== 8 && r !== 16)
throw new Error(`invalid bit depth: ${r}`);
return r;
}
var C1;
(function(r) {
r[r.UNKNOWN = 0] = "UNKNOWN", r[r.METRE = 1] = "METRE";
})(C1 || (C1 = {}));
function aD(r, t) {
return new rD(r, t).decode();
}
/** @license
*
* jsPDF - PDF Document creation from JavaScript
* Version 3.0.4 Built on 2025-11-19T12:48:37.232Z
* CommitID 00000000
*
* Copyright (c) 2010-2025 James Hall <james@parall.ax>, https://github.com/MrRio/jsPDF
* 2015-2025 yWorks GmbH, http://www.yworks.com
* 2015-2025 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 cA = /* @__PURE__ */ (function() {
return typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : this;
})();
function If() {
cA.console && typeof cA.console.log == "function" && cA.console.log.apply(cA.console, arguments);
}
var ur = { log: If, warn: function(r) {
cA.console && (typeof cA.console.warn == "function" ? cA.console.warn.apply(cA.console, arguments) : If.call(null, arguments));
}, error: function(r) {
cA.console && (typeof cA.console.error == "function" ? cA.console.error.apply(cA.console, arguments) : If(r));
} };
function _f(r, t, e) {
var A = new XMLHttpRequest();
A.open("GET", r), A.responseType = "blob", A.onload = function() {
Qs(A.response, t, e);
}, A.onerror = function() {
ur.error("could not download file");
}, A.send();
}
function E1(r) {
var t = new XMLHttpRequest();
t.open("HEAD", r, !1);
try {
t.send();
} catch {
}
return t.status >= 200 && t.status <= 299;
}
function du(r) {
try {
r.dispatchEvent(new MouseEvent("click"));
} catch {
var t = document.createEvent("MouseEvents");
t.initMouseEvent("click", !0, !0, window, 0, 0, 0, 80, 20, !1, !1, !1, !1, 0, null), r.dispatchEvent(t);
}
}
var Qs = cA.saveAs || ((typeof window > "u" ? "undefined" : jA(window)) !== "object" || window !== cA ? function() {
} : typeof HTMLAnchorElement < "u" && "download" in HTMLAnchorElement.prototype ? function(r, t, e) {
var A = cA.URL || cA.webkitURL, n = document.createElement("a");
t = t || r.name || "download", n.download = t, n.rel = "noopener", typeof r == "string" ? (n.href = r, n.origin !== location.origin ? E1(n.href) ? _f(r, t, e) : du(n, n.target = "_blank") : du(n)) : (n.href = A.createObjectURL(r), setTimeout(function() {
A.revokeObjectURL(n.href);
}, 4e4), setTimeout(function() {
du(n);
}, 0));
} : "msSaveOrOpenBlob" in navigator ? function(r, t, e) {
if (t = t || r.name || "download", typeof r == "string") if (E1(r)) _f(r, t, e);
else {
var A = document.createElement("a");
A.href = r, A.target = "_blank", setTimeout(function() {
du(A);
});
}
else navigator.msSaveOrOpenBlob((function(n, a) {
return a === void 0 ? a = { autoBom: !1 } : jA(a) !== "object" && (ur.warn("Deprecated: Expected third argument to be a object"), a = { autoBom: !a }), a.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;
})(r, e), t);
} : function(r, t, e, A) {
if ((A = A || open("", "_blank")) && (A.document.title = A.document.body.innerText = "downloading..."), typeof r == "string") return _f(r, t, e);
var n = r.type === "application/octet-stream", a = /constructor/i.test(cA.HTMLElement) || cA.safari, s = /CriOS\/[\d]+/.test(navigator.userAgent);
if ((s || n && a) && (typeof FileReader > "u" ? "undefined" : jA(FileReader)) === "object") {
var i = new FileReader();
i.onloadend = function() {
var u = i.result;
u = s ? u : u.replace(/^data:[^;]*;/, "data:attachment/file;"), A ? A.location.href = u : location = u, A = null;
}, i.readAsDataURL(r);
} else {
var o = cA.URL || cA.webkitURL, l = o.createObjectURL(r);
A ? A.location = l : location.href = l, A = null, setTimeout(function() {
o.revokeObjectURL(l);
}, 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 C5(r) {
var t;
r = r || "", this.ok = !1, r.charAt(0) == "#" && (r = r.substr(1, 6)), r = { 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" }[r = (r = r.replace(/ /g, "")).toLowerCase()] || r;
for (var e = [{ re: /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/, example: ["rgb(123, 234, 45)", "rgb(255,234,245)"], process: function(i) {
return [parseInt(i[1]), parseInt(i[2]), parseInt(i[3])];
} }, { re: /^(\w{2})(\w{2})(\w{2})$/, example: ["#00ff00", "336699"], process: function(i) {
return [parseInt(i[1], 16), parseInt(i[2], 16), parseInt(i[3], 16)];
} }, { re: /^(\w{1})(\w{1})(\w{1})$/, example: ["#fb0", "f0f"], process: function(i) {
return [parseInt(i[1] + i[1], 16), parseInt(i[2] + i[2], 16), parseInt(i[3] + i[3], 16)];
} }], A = 0; A < e.length; A++) {
var n = e[A].re, a = e[A].process, s = n.exec(r);
s && (t = a(s), this.r = t[0], this.g = t[1], this.b = t[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 i = this.r.toString(16), o = this.g.toString(16), l = this.b.toString(16);
return i.length == 1 && (i = "0" + i), o.length == 1 && (o = "0" + o), l.length == 1 && (l = "0" + l), "#" + i + o + l;
};
}
var zu = cA.atob.bind(cA), F1 = cA.btoa.bind(cA);
/**
* @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 Nf(r, t) {
var e = r[0], A = r[1], n = r[2], a = r[3];
e = In(e, A, n, a, t[0], 7, -680876936), a = In(a, e, A, n, t[1], 12, -389564586), n = In(n, a, e, A, t[2], 17, 606105819), A = In(A, n, a, e, t[3], 22, -1044525330), e = In(e, A, n, a, t[4], 7, -176418897), a = In(a, e, A, n, t[5], 12, 1200080426), n = In(n, a, e, A, t[6], 17, -1473231341), A = In(A, n, a, e, t[7], 22, -45705983), e = In(e, A, n, a, t[8], 7, 1770035416), a = In(a, e, A, n, t[9], 12, -1958414417), n = In(n, a, e, A, t[10], 17, -42063), A = In(A, n, a, e, t[11], 22, -1990404162), e = In(e, A, n, a, t[12], 7, 1804603682), a = In(a, e, A, n, t[13], 12, -40341101), n = In(n, a, e, A, t[14], 17, -1502002290), e = _n(e, A = In(A, n, a, e, t[15], 22, 1236535329), n, a, t[1], 5, -165796510), a = _n(a, e, A, n, t[6], 9, -1069501632), n = _n(n, a, e, A, t[11], 14, 643717713), A = _n(A, n, a, e, t[0], 20, -373897302), e = _n(e, A, n, a, t[5], 5, -701558691), a = _n(a, e, A, n, t[10], 9, 38016083), n = _n(n, a, e, A, t[15], 14, -660478335), A = _n(A, n, a, e, t[4], 20, -405537848), e = _n(e, A, n, a, t[9], 5, 568446438), a = _n(a, e, A, n, t[14], 9, -1019803690), n = _n(n, a, e, A, t[3], 14, -187363961), A = _n(A, n, a, e, t[8], 20, 1163531501), e = _n(e, A, n, a, t[13], 5, -1444681467), a = _n(a, e, A, n, t[2], 9, -51403784), n = _n(n, a, e, A, t[7], 14, 1735328473), e = Nn(e, A = _n(A, n, a, e, t[12], 20, -1926607734), n, a, t[5], 4, -378558), a = Nn(a, e, A, n, t[8], 11, -2022574463), n = Nn(n, a, e, A, t[11], 16, 1839030562), A = Nn(A, n, a, e, t[14], 23, -35309556), e = Nn(e, A, n, a, t[1], 4, -1530992060), a = Nn(a, e, A, n, t[4], 11, 1272893353), n = Nn(n, a, e, A, t[7], 16, -155497632), A = Nn(A, n, a, e, t[10], 23, -1094730640), e = Nn(e, A, n, a, t[13], 4, 681279174), a = Nn(a, e, A, n, t[0], 11, -358537222), n = Nn(n, a, e, A, t[3], 16, -722521979), A = Nn(A, n, a, e, t[6], 23, 76029189), e = Nn(e, A, n, a, t[9], 4, -640364487), a = Nn(a, e, A, n, t[12], 11, -421815835), n = Nn(n, a, e, A, t[15], 16, 530742520), e = Mn(e, A = Nn(A, n, a, e, t[2], 23, -995338651), n, a, t[0], 6, -198630844), a = Mn(a, e, A, n, t[7], 10, 1126891415), n = Mn(n, a, e, A, t[14], 15, -1416354905), A = Mn(A, n, a, e, t[5], 21, -57434055), e = Mn(e, A, n, a, t[12], 6, 1700485571), a = Mn(a, e, A, n, t[3], 10, -1894986606), n = Mn(n, a, e, A, t[10], 15, -1051523), A = Mn(A, n, a, e, t[1], 21, -2054922799), e = Mn(e, A, n, a, t[8], 6, 1873313359), a = Mn(a, e, A, n, t[15], 10, -30611744), n = Mn(n, a, e, A, t[6], 15, -1560198380), A = Mn(A, n, a, e, t[13], 21, 1309151649), e = Mn(e, A, n, a, t[4], 6, -145523070), a = Mn(a, e, A, n, t[11], 10, -1120210379), n = Mn(n, a, e, A, t[2], 15, 718787259), A = Mn(A, n, a, e, t[9], 21, -343485551), r[0] = os(e, r[0]), r[1] = os(A, r[1]), r[2] = os(n, r[2]), r[3] = os(a, r[3]);
}
function Sc(r, t, e, A, n, a) {
return t = os(os(t, r), os(A, a)), os(t << n | t >>> 32 - n, e);
}
function In(r, t, e, A, n, a, s) {
return Sc(t & e | ~t & A, r, t, n, a, s);
}
function _n(r, t, e, A, n, a, s) {
return Sc(t & A | e & ~A, r, t, n, a, s);
}
function Nn(r, t, e, A, n, a, s) {
return Sc(t ^ e ^ A, r, t, n, a, s);
}
function Mn(r, t, e, A, n, a, s) {
return Sc(e ^ (t | ~A), r, t, n, a, s);
}
function E5(r) {
var t, e = r.length, A = [1732584193, -271733879, -1732584194, 271733878];
for (t = 64; t <= r.length; t += 64) Nf(A, iD(r.substring(t - 64, t)));
r = r.substring(t - 64);
var n = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
for (t = 0; t < r.length; t++) n[t >> 2] |= r.charCodeAt(t) << (t % 4 << 3);
if (n[t >> 2] |= 128 << (t % 4 << 3), t > 55) for (Nf(A, n), t = 0; t < 16; t++) n[t] = 0;
return n[14] = 8 * e, Nf(A, n), A;
}
function iD(r) {
var t, e = [];
for (t = 0; t < 64; t += 4) e[t >> 2] = r.charCodeAt(t) + (r.charCodeAt(t + 1) << 8) + (r.charCodeAt(t + 2) << 16) + (r.charCodeAt(t + 3) << 24);
return e;
}
var x1 = "0123456789abcdef".split("");
function sD(r) {
for (var t = "", e = 0; e < 4; e++) t += x1[r >> 8 * e + 4 & 15] + x1[r >> 8 * e & 15];
return t;
}
function oD(r) {
return String.fromCharCode(255 & r, (65280 & r) >> 8, (16711680 & r) >> 16, (4278190080 & r) >> 24);
}
function sp(r) {
return E5(r).map(oD).join("");
}
var lD = (function(r) {
for (var t = 0; t < r.length; t++) r[t] = sD(r[t]);
return r.join("");
})(E5("hello")) != "5d41402abc4b2a76b9719d911017c592";
function os(r, t) {
if (lD) {
var e = (65535 & r) + (65535 & t);
return (r >> 16) + (t >> 16) + (e >> 16) << 16 | 65535 & e;
}
return r + t & 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 op(r, t) {
var e, A, n, a;
if (r !== e) {
for (var s = (n = r, a = 1 + (256 / r.length | 0), new Array(a + 1).join(n)), i = [], o = 0; o < 256; o++) i[o] = o;
var l = 0;
for (o = 0; o < 256; o++) {
var u = i[o];
l = (l + u + s.charCodeAt(o)) % 256, i[o] = i[l], i[l] = u;
}
e = r, A = i;
} else i = A;
var h = t.length, g = 0, c = 0, p = "";
for (o = 0; o < h; o++) c = (c + (u = i[g = (g + 1) % 256])) % 256, i[g] = i[c], i[c] = u, s = i[(i[g] + i[c]) % 256], p += String.fromCharCode(t.charCodeAt(o) ^ s);
return p;
}
/**
* @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 S1 = { print: 4, modify: 8, copy: 16, "annot-forms": 32 };
function mo(r, t, e, A) {
this.v = 1, this.r = 2;
var n = 192;
r.forEach(function(i) {
if (S1.perm !== void 0) throw new Error("Invalid permission: " + i);
n += S1[i];
}), this.padding = "(¿N^NuAd\0NVÿú\b..\0¶Ðh>/\f©þdSiz";
var a = (t + this.padding).substr(0, 32), s = (e + this.padding).substr(0, 32);
this.O = this.processOwnerPassword(a, s), this.P = -(1 + (255 ^ n)), this.encryptionKey = sp(a + this.O + this.lsbFirstWord(this.P) + this.hexToBytes(A)).substr(0, 5), this.U = op(this.encryptionKey, this.padding);
}
function wo(r) {
if (/[^\u0000-\u00ff]/.test(r)) throw new Error("Invalid PDF Name Object: " + r + ", Only accept ASCII characters.");
for (var t = "", e = r.length, A = 0; A < e; A++) {
var n = r.charCodeAt(A);
t += 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 ? "#" + ("0" + n.toString(16)).slice(-2) : r[A];
}
return t;
}
function U1(r) {
if (jA(r) !== "object") throw new Error("Invalid Context passed to initialize PubSub (jsPDF-module)");
var t = {};
this.subscribe = function(e, A, n) {
if (n = n || !1, typeof e != "string" || typeof A != "function" || typeof n != "boolean") throw new Error("Invalid arguments passed to PubSub.subscribe (jsPDF-module)");
t.hasOwnProperty(e) || (t[e] = {});
var a = Math.random().toString(35);
return t[e][a] = [A, !!n], a;
}, this.unsubscribe = function(e) {
for (var A in t) if (t[A][e]) return delete t[A][e], Object.keys(t[A]).length === 0 && delete t[A], !0;
return !1;
}, this.publish = function(e) {
if (t.hasOwnProperty(e)) {
var A = Array.prototype.slice.call(arguments, 1), n = [];
for (var a in t[e]) {
var s = t[e][a];
try {
s[0].apply(r, A);
} catch (i) {
cA.console && ur.error("jsPDF PubSub Error", i.message, i);
}
s[1] && n.push(a);
}
n.length && n.forEach(this.unsubscribe);
}
}, this.getTopics = function() {
return t;
};
}
function fc(r) {
if (!(this instanceof fc)) return new fc(r);
var t = "opacity,stroke-opacity".split(",");
for (var e in r) r.hasOwnProperty(e) && t.indexOf(e) >= 0 && (this[e] = r[e]);
this.id = "", this.objectNumber = -1;
}
function F5(r, t) {
this.gState = r, this.matrix = t, this.id = "", this.objectNumber = -1;
}
function Ls(r, t, e, A, n) {
if (!(this instanceof Ls)) return new Ls(r, t, e, A, n);
this.type = r === "axial" ? 2 : 3, this.coords = t, this.colors = e, F5.call(this, A, n);
}
function bo(r, t, e, A, n) {
if (!(this instanceof bo)) return new bo(r, t, e, A, n);
this.boundingBox = r, this.xStep = t, this.yStep = e, this.stream = "", this.cloneIndex = 0, F5.call(this, A, n);
}
function eA(r) {
var t, e = typeof arguments[0] == "string" ? arguments[0] : "p", A = arguments[1], n = arguments[2], a = arguments[3], s = [], i = 1, o = 16, l = "S", u = null;
jA(r = r || {}) === "object" && (e = r.orientation, A = r.unit || A, n = r.format || n, a = r.compress || r.compressPdf || a, (u = r.encryption || null) !== null && (u.userPassword = u.userPassword || "", u.ownerPassword = u.ownerPassword || "", u.userPermissions = u.userPermissions || []), i = typeof r.userUnit == "number" ? Math.abs(r.userUnit) : 1, r.precision !== void 0 && (t = r.precision), r.floatPrecision !== void 0 && (o = r.floatPrecision), l = r.defaultPathOperation || "S"), s = r.filters || (a === !0 ? ["FlateEncode"] : s), A = A || "mm", e = ("" + (e || "P")).toLowerCase();
var h = r.putOnlyUsedFonts || !1, g = {}, c = { internal: {}, __private__: {} };
c.__private__.PubSub = U1;
var p = "1.3", m = c.__private__.getPdfVersion = function() {
return p;
};
c.__private__.setPdfVersion = function(v) {
p = v;
};
var y = { 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] };
c.__private__.getPageFormats = function() {
return y;
};
var w = c.__private__.getPageFormat = function(v) {
return y[v];
};
n = n || "a4";
var E = "compat", C = "advanced", F = E;
function H() {
this.saveGraphicsState(), D(new Lt(St, 0, 0, -St, 0, ua() * St).toString() + " cm"), this.setFontSize(this.getFontSize() / St), l = "n", F = C;
}
function q() {
this.restoreGraphicsState(), l = "S", F = E;
}
var N = c.__private__.combineFontStyleAndFontWeight = function(v, T) {
if (v == "bold" && T == "normal" || v == "bold" && T == 400 || v == "normal" && T == "italic" || v == "bold" && T == "italic") throw new Error("Invalid Combination of fontweight and fontstyle");
return T && (v = T == 400 || T === "normal" ? v === "italic" ? "italic" : "normal" : T != 700 && T !== "bold" || v !== "normal" ? (T == 700 ? "bold" : T) + "" + v : "bold"), v;
};
c.advancedAPI = function(v) {
var T = F === E;
return T && H.call(this), typeof v != "function" || (v(this), T && q.call(this)), this;
}, c.compatAPI = function(v) {
var T = F === C;
return T && q.call(this), typeof v != "function" || (v(this), T && H.call(this)), this;
}, c.isAdvancedAPI = function() {
return F === C;
};
var M, k = function(v) {
if (F !== C) throw new Error(v + " is only available in 'advanced' API mode. You need to call advancedAPI() first.");
}, O = c.roundToPrecision = c.__private__.roundToPrecision = function(v, T) {
var ne = t || T;
if (isNaN(v) || isNaN(ne)) throw new Error("Invalid argument passed to jsPDF.roundToPrecision");
return v.toFixed(ne).replace(/0+$/, "");
};
M = c.hpf = c.__private__.hpf = typeof o == "number" ? function(v) {
if (isNaN(v)) throw new Error("Invalid argument passed to jsPDF.hpf");
return O(v, o);
} : o === "smart" ? function(v) {
if (isNaN(v)) throw new Error("Invalid argument passed to jsPDF.hpf");
return O(v, v > -1 && v < 1 ? 16 : 5);
} : function(v) {
if (isNaN(v)) throw new Error("Invalid argument passed to jsPDF.hpf");
return O(v, 16);
};
var S = c.f2 = c.__private__.f2 = function(v) {
if (isNaN(v)) throw new Error("Invalid argument passed to jsPDF.f2");
return O(v, 2);
}, U = c.__private__.f3 = function(v) {
if (isNaN(v)) throw new Error("Invalid argument passed to jsPDF.f3");
return O(v, 3);
}, W = c.scale = c.__private__.scale = function(v) {
if (isNaN(v)) throw new Error("Invalid argument passed to jsPDF.scale");
return F === E ? v * St : F === C ? v : void 0;
}, I = function(v) {
return W((function(T) {
return F === E ? ua() - T : F === C ? T : void 0;
})(v));
};
c.__private__.setPrecision = c.setPrecision = function(v) {
typeof parseInt(v, 10) == "number" && (t = parseInt(v, 10));
};
var le, ue = "00000000000000000000000000000000", Z = c.__private__.getFileId = function() {
return ue;
}, ee = c.__private__.setFileId = function(v) {
return ue = v !== void 0 && /^[a-fA-F0-9]{32}$/.test(v) ? v.toUpperCase() : ue.split("").map(function() {
return "ABCDEF0123456789".charAt(Math.floor(16 * Math.random()));
}).join(""), u !== null && (aA = new mo(u.userPermissions, u.userPassword, u.ownerPassword, ue)), ue;
};
c.setFileId = function(v) {
return ee(v), this;
}, c.getFileId = function() {
return Z();
};
var X = c.__private__.convertDateToPDFDate = function(v) {
var T = v.getTimezoneOffset(), ne = T < 0 ? "+" : "-", we = Math.floor(Math.abs(T / 60)), De = Math.abs(T % 60), nt = [ne, j(we), "'", j(De), "'"].join("");
return ["D:", v.getFullYear(), j(v.getMonth() + 1), j(v.getDate()), j(v.getHours()), j(v.getMinutes()), j(v.getSeconds()), nt].join("");
}, Ae = c.__private__.convertPDFDateToDate = function(v) {
var T = parseInt(v.substr(2, 4), 10), ne = parseInt(v.substr(6, 2), 10) - 1, we = parseInt(v.substr(8, 2), 10), De = parseInt(v.substr(10, 2), 10), nt = parseInt(v.substr(12, 2), 10), ct = parseInt(v.substr(14, 2), 10);
return new Date(T, ne, we, De, nt, ct, 0);
}, oe = c.__private__.setCreationDate = function(v) {
var T;
if (v === void 0 && (v = /* @__PURE__ */ new Date()), v instanceof Date) T = X(v);
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(v)) throw new Error("Invalid argument passed to jsPDF.setCreationDate");
T = v;
}
return le = T;
}, x = c.__private__.getCreationDate = function(v) {
var T = le;
return v === "jsDate" && (T = Ae(le)), T;
};
c.setCreationDate = function(v) {
return oe(v), this;
}, c.getCreationDate = function(v) {
return x(v);
};
var L, j = c.__private__.padd2 = function(v) {
return ("0" + parseInt(v)).slice(-2);
}, $ = c.__private__.padd2Hex = function(v) {
return ("00" + (v = v.toString())).substr(v.length);
}, re = 0, pe = [], de = [], ce = 0, Se = [], qe = [], rt = !1, at = de;
c.__private__.setCustomOutputDestination = function(v) {
rt = !0, at = v;
};
var dt = function(v) {
rt || (at = v);
};
c.__private__.resetCustomOutputDestination = function() {
rt = !1, at = de;
};
var D = c.__private__.out = function(v) {
return v = v.toString(), ce += v.length + 1, at.push(v), at;
}, Ie = c.__private__.write = function(v) {
return D(arguments.length === 1 ? v.toString() : Array.prototype.join.call(arguments, " "));
}, me = c.__private__.getArrayBuffer = function(v) {
for (var T = v.length, ne = new ArrayBuffer(T), we = new Uint8Array(ne); T--; ) we[T] = v.charCodeAt(T);
return ne;
}, ve = [["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]];
c.__private__.getStandardFonts = function() {
return ve;
};
var xe = r.fontSize || 16;
c.__private__.setFontSize = c.setFontSize = function(v) {
return xe = F === C ? v / St : v, this;
};
var Qe, _e = c.__private__.getFontSize = c.getFontSize = function() {
return F === E ? xe : xe * St;
}, Pe = r.R2L || !1;
c.__private__.setR2L = c.setR2L = function(v) {
return Pe = v, this;
}, c.__private__.getR2L = c.getR2L = function() {
return Pe;
};
var je, Ke = c.__private__.setZoomMode = function(v) {
if (/^(?:\d+\.\d*|\d*\.\d+|\d+)%$/.test(v)) Qe = v;
else if (isNaN(v)) {
if ([void 0, null, "fullwidth", "fullheight", "fullpage", "original"].indexOf(v) === -1) throw new Error('zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. "' + v + '" is not recognized.');
Qe = v;
} else Qe = parseInt(v, 10);
};
c.__private__.getZoomMode = function() {
return Qe;
};
var et, ut = c.__private__.setPageMode = function(v) {
if ([void 0, null, "UseNone", "UseOutlines", "UseThumbs", "FullScreen"].indexOf(v) == -1) throw new Error('Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. "' + v + '" is not recognized.');
je = v;
};
c.__private__.getPageMode = function() {
return je;
};
var yt = c.__private__.setLayoutMode = function(v) {
if ([void 0, null, "continuous", "single", "twoleft", "tworight", "two"].indexOf(v) == -1) throw new Error('Layout mode must be one of continuous, single, twoleft, tworight. "' + v + '" is not recognized.');
et = v;
};
c.__private__.getLayoutMode = function() {
return et;
}, c.__private__.setDisplayMode = c.setDisplayMode = function(v, T, ne) {
return Ke(v), yt(T), ut(ne), this;
};
var Ft = { title: "", subject: "", author: "", keywords: "", creator: "" };
c.__private__.getDocumentProperty = function(v) {
if (Object.keys(Ft).indexOf(v) === -1) throw new Error("Invalid argument passed to jsPDF.getDocumentProperty");
return Ft[v];
}, c.__private__.getDocumentProperties = function() {
return Ft;
}, c.__private__.setDocumentProperties = c.setProperties = c.setDocumentProperties = function(v) {
for (var T in Ft) Ft.hasOwnProperty(T) && v[T] && (Ft[T] = v[T]);
return this;
}, c.__private__.setDocumentProperty = function(v, T) {
if (Object.keys(Ft).indexOf(v) === -1) throw new Error("Invalid arguments passed to jsPDF.setDocumentProperty");
return Ft[v] = T;
};
var Bt, St, bt, nA, qt, Ot = {}, Pt = {}, sA = [], kt = {}, hA = {}, Nt = {}, Ce = {}, Ve = null, Re = 0, $e = [], xt = new U1(c), Ht = r.hotfixes || [], Mt = {}, SA = {}, JA = [], Lt = function v(T, ne, we, De, nt, ct) {
if (!(this instanceof v)) return new v(T, ne, we, De, nt, ct);
isNaN(T) && (T = 1), isNaN(ne) && (ne = 0), isNaN(we) && (we = 0), isNaN(De) && (De = 1), isNaN(nt) && (nt = 0), isNaN(ct) && (ct = 0), this._matrix = [T, ne, we, De, nt, ct];
};
Object.defineProperty(Lt.prototype, "sx", { get: function() {
return this._matrix[0];
}, set: function(v) {
this._matrix[0] = v;
} }), Object.defineProperty(Lt.prototype, "shy", { get: function() {
return this._matrix[1];
}, set: function(v) {
this._matrix[1] = v;
} }), Object.defineProperty(Lt.prototype, "shx", { get: function() {
return this._matrix[2];
}, set: function(v) {
this._matrix[2] = v;
} }), Object.defineProperty(Lt.prototype, "sy", { get: function() {
return this._matrix[3];
}, set: function(v) {
this._matrix[3] = v;
} }), Object.defineProperty(Lt.prototype, "tx", { get: function() {
return this._matrix[4];
}, set: function(v) {
this._matrix[4] = v;
} }), Object.defineProperty(Lt.prototype, "ty", { get: function() {
return this._matrix[5];
}, set: function(v) {
this._matrix[5] = v;
} }), Object.defineProperty(Lt.prototype, "a", { get: function() {
return this._matrix[0];
}, set: function(v) {
this._matrix[0] = v;
} }), Object.defineProperty(Lt.prototype, "b", { get: function() {
return this._matrix[1];
}, set: function(v) {
this._matrix[1] = v;
} }), Object.defineProperty(Lt.prototype, "c", { get: function() {
return this._matrix[2];
}, set: function(v) {
this._matrix[2] = v;
} }), Object.defineProperty(Lt.prototype, "d", { get: function() {
return this._matrix[3];
}, set: function(v) {
this._matrix[3] = v;
} }), Object.defineProperty(Lt.prototype, "e", { get: function() {
return this._matrix[4];
}, set: function(v) {
this._matrix[4] = v;
} }), Object.defineProperty(Lt.prototype, "f", { get: function() {
return this._matrix[5];
}, set: function(v) {
this._matrix[5] = v;
} }), Object.defineProperty(Lt.prototype, "rotation", { get: function() {
return Math.atan2(this.shx, this.sx);
} }), Object.defineProperty(Lt.prototype, "scaleX", { get: function() {
return this.decompose().scale.sx;
} }), Object.defineProperty(Lt.prototype, "scaleY", { get: function() {
return this.decompose().scale.sy;
} }), Object.defineProperty(Lt.prototype, "isIdentity", { get: function() {
return this.sx === 1 && this.shy === 0 && this.shx === 0 && this.sy === 1 && this.tx === 0 && this.ty === 0;
} }), Lt.prototype.join = function(v) {
return [this.sx, this.shy, this.shx, this.sy, this.tx, this.ty].map(M).join(v);
}, Lt.prototype.multiply = function(v) {
var T = v.sx * this.sx + v.shy * this.shx, ne = v.sx * this.shy + v.shy * this.sy, we = v.shx * this.sx + v.sy * this.shx, De = v.shx * this.shy + v.sy * this.sy, nt = v.tx * this.sx + v.ty * this.shx + this.tx, ct = v.tx * this.shy + v.ty * this.sy + this.ty;
return new Lt(T, ne, we, De, nt, ct);
}, Lt.prototype.decompose = function() {
var v = this.sx, T = this.shy, ne = this.shx, we = this.sy, De = this.tx, nt = this.ty, ct = Math.sqrt(v * v + T * T), Kt = (v /= ct) * ne + (T /= ct) * we;
ne -= v * Kt, we -= T * Kt;
var Yt = Math.sqrt(ne * ne + we * we);
return Kt /= Yt, v * (we /= Yt) < T * (ne /= Yt) && (v = -v, T = -T, Kt = -Kt, ct = -ct), { scale: new Lt(ct, 0, 0, Yt, 0, 0), translate: new Lt(1, 0, 0, 1, De, nt), rotate: new Lt(v, T, -T, v, 0, 0), skew: new Lt(1, 0, Kt, 1, 0, 0) };
}, Lt.prototype.toString = function(v) {
return this.join(" ");
}, Lt.prototype.inversed = function() {
var v = this.sx, T = this.shy, ne = this.shx, we = this.sy, De = this.tx, nt = this.ty, ct = 1 / (v * we - T * ne), Kt = we * ct, Yt = -T * ct, oA = -ne * ct, dA = v * ct;
return new Lt(Kt, Yt, oA, dA, -Kt * De - oA * nt, -Yt * De - dA * nt);
}, Lt.prototype.applyToPoint = function(v) {
var T = v.x * this.sx + v.y * this.shx + this.tx, ne = v.x * this.shy + v.y * this.sy + this.ty;
return new Aa(T, ne);
}, Lt.prototype.applyToRectangle = function(v) {
var T = this.applyToPoint(v), ne = this.applyToPoint(new Aa(v.x + v.w, v.y + v.h));
return new ii(T.x, T.y, ne.x - T.x, ne.y - T.y);
}, Lt.prototype.clone = function() {
var v = this.sx, T = this.shy, ne = this.shx, we = this.sy, De = this.tx, nt = this.ty;
return new Lt(v, T, ne, we, De, nt);
}, c.Matrix = Lt;
var Qr = c.matrixMult = function(v, T) {
return T.multiply(v);
}, Fr = new Lt(1, 0, 0, 1, 0, 0);
c.unitMatrix = c.identityMatrix = Fr;
var xr = function(v, T) {
if (!hA[v]) {
var ne = (T instanceof Ls ? "Sh" : "P") + (Object.keys(kt).length + 1).toString(10);
T.id = ne, hA[v] = ne, kt[ne] = T, xt.publish("addPattern", T);
}
};
c.ShadingPattern = Ls, c.TilingPattern = bo, c.addShadingPattern = function(v, T) {
return k("addShadingPattern()"), xr(v, T), this;
}, c.beginTilingPattern = function(v) {
k("beginTilingPattern()"), Vi(v.boundingBox[0], v.boundingBox[1], v.boundingBox[2] - v.boundingBox[0], v.boundingBox[3] - v.boundingBox[1], v.matrix);
}, c.endTilingPattern = function(v, T) {
k("endTilingPattern()"), T.stream = qe[L].join(`
`), xr(v, T), xt.publish("endTilingPattern", T), JA.pop().restore();
};
var PA, CA = c.__private__.newObject = function() {
var v = MA();
return OA(v, !0), v;
}, MA = c.__private__.newObjectDeferred = function() {
return re++, pe[re] = function() {
return ce;
}, re;
}, OA = function(v, T) {
return T = typeof T == "boolean" && T, pe[v] = ce, T && D(v + " 0 obj"), v;
}, Dr = c.__private__.newAdditionalObject = function() {
var v = { objId: MA(), content: "" };
return Se.push(v), v;
}, Sr = MA(), LA = MA(), pr = c.__private__.decodeColorString = function(v) {
var T = v.split(" ");
if (T.length !== 2 || T[1] !== "g" && T[1] !== "G") T.length !== 5 || T[4] !== "k" && T[4] !== "K" || (T = [(1 - T[0]) * (1 - T[3]), (1 - T[1]) * (1 - T[3]), (1 - T[2]) * (1 - T[3]), "r"]);
else {
var ne = parseFloat(T[0]);
T = [ne, ne, ne, "r"];
}
for (var we = "#", De = 0; De < 3; De++) we += ("0" + Math.floor(255 * parseFloat(T[De])).toString(16)).slice(-2);
return we;
}, kr = c.__private__.encodeColorString = function(v) {
var T;
typeof v == "string" && (v = { ch1: v });
var ne = v.ch1, we = v.ch2, De = v.ch3, nt = v.ch4, ct = v.pdfColorType === "draw" ? ["G", "RG", "K"] : ["g", "rg", "k"];
if (typeof ne == "string" && ne.charAt(0) !== "#") {
var Kt = new C5(ne);
if (Kt.ok) ne = Kt.toHex();
else if (!/^\d*\.?\d*$/.test(ne)) throw new Error('Invalid color "' + ne + '" passed to jsPDF.encodeColorString.');
}
if (typeof ne == "string" && /^#[0-9A-Fa-f]{3}$/.test(ne) && (ne = "#" + ne[1] + ne[1] + ne[2] + ne[2] + ne[3] + ne[3]), typeof ne == "string" && /^#[0-9A-Fa-f]{6}$/.test(ne)) {
var Yt = parseInt(ne.substr(1), 16);
ne = Yt >> 16 & 255, we = Yt >> 8 & 255, De = 255 & Yt;
}
if (we === void 0 || nt === void 0 && ne === we && we === De) T = typeof ne == "string" ? ne + " " + ct[0] : v.precision === 2 ? S(ne / 255) + " " + ct[0] : U(ne / 255) + " " + ct[0];
else if (nt === void 0 || jA(nt) === "object") {
if (nt && !isNaN(nt.a) && nt.a === 0) return ["1.", "1.", "1.", ct[1]].join(" ");
T = typeof ne == "string" ? [ne, we, De, ct[1]].join(" ") : v.precision === 2 ? [S(ne / 255), S(we / 255), S(De / 255), ct[1]].join(" ") : [U(ne / 255), U(we / 255), U(De / 255), ct[1]].join(" ");
} else T = typeof ne == "string" ? [ne, we, De, nt, ct[2]].join(" ") : v.precision === 2 ? [S(ne), S(we), S(De), S(nt), ct[2]].join(" ") : [U(ne), U(we), U(De), U(nt), ct[2]].join(" ");
return T;
}, ZA = c.__private__.getFilters = function() {
return s;
}, Lr = c.__private__.putStream = function(v) {
var T = (v = v || {}).data || "", ne = v.filters || ZA(), we = v.alreadyAppliedFilters || [], De = v.addLength1 || !1, nt = T.length, ct = v.objectId, Kt = function(K) {
return K;
};
if (u !== null && ct === void 0) throw new Error("ObjectId must be passed to putStream for file encryption");
u !== null && (Kt = aA.encryptor(ct, 0));
var Yt = {};
ne === !0 && (ne = ["FlateEncode"]);
var oA = v.additionalKeyValues || [], dA = (Yt = eA.API.processDataByFilters !== void 0 ? eA.API.processDataByFilters(T, ne) : { data: T, reverseChain: [] }).reverseChain + (Array.isArray(we) ? we.join(" ") : we.toString());
if (Yt.data.length !== 0 && (oA.push({ key: "Length", value: Yt.data.length }), De === !0 && oA.push({ key: "Length1", value: nt })), dA.length != 0) if (dA.split("/").length - 1 == 1) oA.push({ key: "Filter", value: dA });
else {
oA.push({ key: "Filter", value: "[" + dA + "]" });
for (var QA = 0; QA < oA.length; QA += 1) if (oA[QA].key === "DecodeParms") {
for (var vr = [], R = 0; R < Yt.reverseChain.split("/").length - 1; R += 1) vr.push("null");
vr.push(oA[QA].value), oA[QA].value = "[" + vr.join(" ") + "]";
}
}
D("<<");
for (var te = 0; te < oA.length; te++) D("/" + oA[te].key + " " + oA[te].value);
D(">>"), Yt.data.length !== 0 && (D("stream"), D(Kt(Yt.data)), D("endstream"));
}, Un = c.__private__.putPage = function(v) {
var T = v.number, ne = v.data, we = v.objId, De = v.contentsObjId;
OA(we, !0), D("<</Type /Page"), D("/Parent " + v.rootDictionaryObjId + " 0 R"), D("/Resources " + v.resourceDictionaryObjId + " 0 R"), D("/MediaBox [" + parseFloat(M(v.mediaBox.bottomLeftX)) + " " + parseFloat(M(v.mediaBox.bottomLeftY)) + " " + M(v.mediaBox.topRightX) + " " + M(v.mediaBox.topRightY) + "]"), v.cropBox !== null && D("/CropBox [" + M(v.cropBox.bottomLeftX) + " " + M(v.cropBox.bottomLeftY) + " " + M(v.cropBox.topRightX) + " " + M(v.cropBox.topRightY) + "]"), v.bleedBox !== null && D("/BleedBox [" + M(v.bleedBox.bottomLeftX) + " " + M(v.bleedBox.bottomLeftY) + " " + M(v.bleedBox.topRightX) + " " + M(v.bleedBox.topRightY) + "]"), v.trimBox !== null && D("/TrimBox [" + M(v.trimBox.bottomLeftX) + " " + M(v.trimBox.bottomLeftY) + " " + M(v.trimBox.topRightX) + " " + M(v.trimBox.topRightY) + "]"), v.artBox !== null && D("/ArtBox [" + M(v.artBox.bottomLeftX) + " " + M(v.artBox.bottomLeftY) + " " + M(v.artBox.topRightX) + " " + M(v.artBox.topRightY) + "]"), typeof v.userUnit == "number" && v.userUnit !== 1 && D("/UserUnit " + v.userUnit), xt.publish("putPage", { objId: we, pageContext: $e[T], pageNumber: T, page: ne }), D("/Contents " + De + " 0 R"), D(">>"), D("endobj");
var nt = ne.join(`
`);
return F === C && (nt += `
Q`), OA(De, !0), Lr({ data: nt, filters: ZA(), objectId: De }), D("endobj"), we;
}, Dt = c.__private__.putPages = function() {
var v, T, ne = [];
for (v = 1; v <= Re; v++) $e[v].objId = MA(), $e[v].contentsObjId = MA();
for (v = 1; v <= Re; v++) ne.push(Un({ number: v, data: qe[v], objId: $e[v].objId, contentsObjId: $e[v].contentsObjId, mediaBox: $e[v].mediaBox, cropBox: $e[v].cropBox, bleedBox: $e[v].bleedBox, trimBox: $e[v].trimBox, artBox: $e[v].artBox, userUnit: $e[v].userUnit, rootDictionaryObjId: Sr, resourceDictionaryObjId: LA }));
OA(Sr, !0), D("<</Type /Pages");
var we = "/Kids [";
for (T = 0; T < Re; T++) we += ne[T] + " 0 R ";
D(we + "]"), D("/Count " + Re), D(">>"), D("endobj"), xt.publish("postPutPages");
}, be = function(v) {
xt.publish("putFont", { font: v, out: D, newObject: CA, putStream: Lr }), v.isAlreadyPutted !== !0 && (v.objectNumber = CA(), D("<<"), D("/Type /Font"), D("/BaseFont /" + wo(v.postScriptName)), D("/Subtype /Type1"), typeof v.encoding == "string" && D("/Encoding /" + v.encoding), D("/FirstChar 32"), D("/LastChar 255"), D(">>"), D("endobj"));
}, z = function(v) {
v.objectNumber = CA();
var T = [];
T.push({ key: "Type", value: "/XObject" }), T.push({ key: "Subtype", value: "/Form" }), T.push({ key: "BBox", value: "[" + [M(v.x), M(v.y), M(v.x + v.width), M(v.y + v.height)].join(" ") + "]" }), T.push({ key: "Matrix", value: "[" + v.matrix.toString() + "]" });
var ne = v.pages[1].join(`
`);
Lr({ data: ne, additionalKeyValues: T, objectId: v.objectNumber }), D("endobj");
}, ge = function(v, T) {
T || (T = 21);
var ne = CA(), we = (function(ct, Kt) {
var Yt, oA = [], dA = 1 / (Kt - 1);
for (Yt = 0; Yt < 1; Yt += dA) oA.push(Yt);
if (oA.push(1), ct[0].offset != 0) {
var QA = { offset: 0, color: ct[0].color };
ct.unshift(QA);
}
if (ct[ct.length - 1].offset != 1) {
var vr = { offset: 1, color: ct[ct.length - 1].color };
ct.push(vr);
}
for (var R = "", te = 0, K = 0; K < oA.length; K++) {
for (Yt = oA[K]; Yt > ct[te + 1].offset; ) te++;
var he = ct[te].offset, ye = (Yt - he) / (ct[te + 1].offset - he), Le = ct[te].color, Xe = ct[te + 1].color;
R += $(Math.round((1 - ye) * Le[0] + ye * Xe[0]).toString(16)) + $(Math.round((1 - ye) * Le[1] + ye * Xe[1]).toString(16)) + $(Math.round((1 - ye) * Le[2] + ye * Xe[2]).toString(16));
}
return R.trim();
})(v.colors, T), De = [];
De.push({ key: "FunctionType", value: "0" }), De.push({ key: "Domain", value: "[0.0 1.0]" }), De.push({ key: "Size", value: "[" + T + "]" }), De.push({ key: "BitsPerSample", value: "8" }), De.push({ key: "Range", value: "[0.0 1.0 0.0 1.0 0.0 1.0]" }), De.push({ key: "Decode", value: "[0.0 1.0 0.0 1.0 0.0 1.0]" }), Lr({ data: we, additionalKeyValues: De, alreadyAppliedFilters: ["/ASCIIHexDecode"], objectId: ne }), D("endobj"), v.objectNumber = CA(), D("<< /ShadingType " + v.type), D("/ColorSpace /DeviceRGB");
var nt = "/Coords [" + M(parseFloat(v.coords[0])) + " " + M(parseFloat(v.coords[1])) + " ";
v.type === 2 ? nt += M(parseFloat(v.coords[2])) + " " + M(parseFloat(v.coords[3])) : nt += M(parseFloat(v.coords[2])) + " " + M(parseFloat(v.coords[3])) + " " + M(parseFloat(v.coords[4])) + " " + M(parseFloat(v.coords[5])), D(nt += "]"), v.matrix && D("/Matrix [" + v.matrix.toString() + "]"), D("/Function " + ne + " 0 R"), D("/Extend [true true]"), D(">>"), D("endobj");
}, We = function(v, T) {
var ne = MA(), we = CA();
T.push({ resourcesOid: ne, objectOid: we }), v.objectNumber = we;
var De = [];
De.push({ key: "Type", value: "/Pattern" }), De.push({ key: "PatternType", value: "1" }), De.push({ key: "PaintType", value: "1" }), De.push({ key: "TilingType", value: "1" }), De.push({ key: "BBox", value: "[" + v.boundingBox.map(M).join(" ") + "]" }), De.push({ key: "XStep", value: M(v.xStep) }), De.push({ key: "YStep", value: M(v.yStep) }), De.push({ key: "Resources", value: ne + " 0 R" }), v.matrix && De.push({ key: "Matrix", value: "[" + v.matrix.toString() + "]" }), Lr({ data: v.stream, additionalKeyValues: De, objectId: v.objectNumber }), D("endobj");
}, it = function(v) {
for (var T in v.objectNumber = CA(), D("<<"), v) switch (T) {
case "opacity":
D("/ca " + S(v[T]));
break;
case "stroke-opacity":
D("/CA " + S(v[T]));
}
D(">>"), D("endobj");
}, V = function(v) {
OA(v.resourcesOid, !0), D("<<"), D("/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]"), (function() {
for (var T in D("/Font <<"), Ot) Ot.hasOwnProperty(T) && (h === !1 || h === !0 && g.hasOwnProperty(T)) && D("/" + T + " " + Ot[T].objectNumber + " 0 R");
D(">>");
})(), (function() {
if (Object.keys(kt).length > 0) {
for (var T in D("/Shading <<"), kt) kt.hasOwnProperty(T) && kt[T] instanceof Ls && kt[T].objectNumber >= 0 && D("/" + T + " " + kt[T].objectNumber + " 0 R");
xt.publish("putShadingPatternDict"), D(">>");
}
})(), (function(T) {
if (Object.keys(kt).length > 0) {
for (var ne in D("/Pattern <<"), kt) kt.hasOwnProperty(ne) && kt[ne] instanceof c.TilingPattern && kt[ne].objectNumber >= 0 && kt[ne].objectNumber < T && D("/" + ne + " " + kt[ne].objectNumber + " 0 R");
xt.publish("putTilingPatternDict"), D(">>");
}
})(v.objectOid), (function() {
if (Object.keys(Nt).length > 0) {
var T;
for (T in D("/ExtGState <<"), Nt) Nt.hasOwnProperty(T) && Nt[T].objectNumber >= 0 && D("/" + T + " " + Nt[T].objectNumber + " 0 R");
xt.publish("putGStateDict"), D(">>");
}
})(), (function() {
for (var T in D("/XObject <<"), Mt) Mt.hasOwnProperty(T) && Mt[T].objectNumber >= 0 && D("/" + T + " " + Mt[T].objectNumber + " 0 R");
xt.publish("putXobjectDict"), D(">>");
})(), D(">>"), D("endobj");
}, Be = function(v) {
Pt[v.fontName] = Pt[v.fontName] || {}, Pt[v.fontName][v.fontStyle] = v.id;
}, Fe = function(v, T, ne, we, De) {
var nt = { id: "F" + (Object.keys(Ot).length + 1).toString(10), postScriptName: v, fontName: T, fontStyle: ne, encoding: we, isStandardFont: De || !1, metadata: {} };
return xt.publish("addFont", { font: nt, instance: this }), Ot[nt.id] = nt, Be(nt), nt.id;
}, ke = c.__private__.pdfEscape = c.pdfEscape = function(v, T) {
return (function(ne, we) {
var De, nt, ct, Kt, Yt, oA, dA, QA, vr;
if (ct = (we = we || {}).sourceEncoding || "Unicode", Yt = we.outputEncoding, (we.autoencode || Yt) && Ot[Bt].metadata && Ot[Bt].metadata[ct] && Ot[Bt].metadata[ct].encoding && (Kt = Ot[Bt].metadata[ct].encoding, !Yt && Ot[Bt].encoding && (Yt = Ot[Bt].encoding), !Yt && Kt.codePages && (Yt = Kt.codePages[0]), typeof Yt == "string" && (Yt = Kt[Yt]), Yt)) {
for (dA = !1, oA = [], De = 0, nt = ne.length; De < nt; De++) (QA = Yt[ne.charCodeAt(De)]) ? oA.push(String.fromCharCode(QA)) : oA.push(ne[De]), oA[De].charCodeAt(0) >> 8 && (dA = !0);
ne = oA.join("");
}
for (De = ne.length; dA === void 0 && De !== 0; ) ne.charCodeAt(De - 1) >> 8 && (dA = !0), De--;
if (!dA) return ne;
for (oA = we.noBOM ? [] : [254, 255], De = 0, nt = ne.length; De < nt; De++) {
if ((vr = (QA = ne.charCodeAt(De)) >> 8) >> 8) throw new Error("Character at position " + De + " of string '" + ne + "' exceeds 16bits. Cannot be encoded into UCS-2 BE");
oA.push(vr), oA.push(QA - (vr << 8));
}
return String.fromCharCode.apply(void 0, oA);
})(v, T).replace(/\\/g, "\\\\").replace(/\(/g, "\\(").replace(/\)/g, "\\)");
}, Ze = c.__private__.beginPage = function(v) {
qe[++Re] = [], $e[Re] = { objId: 0, contentsObjId: 0, userUnit: Number(i), artBox: null, bleedBox: null, cropBox: null, trimBox: null, mediaBox: { bottomLeftX: 0, bottomLeftY: 0, topRightX: Number(v[0]), topRightY: Number(v[1]) } }, Je(Re), dt(qe[L]);
}, Me = function(v, T) {
var ne, we, De;
switch (e = T || e, typeof v == "string" && (ne = w(v.toLowerCase()), Array.isArray(ne) && (we = ne[0], De = ne[1])), Array.isArray(v) && (we = v[0] * St, De = v[1] * St), isNaN(we) && (we = n[0], De = n[1]), (we > 14400 || De > 14400) && (ur.warn("A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400"), we = Math.min(14400, we), De = Math.min(14400, De)), n = [we, De], e.substr(0, 1)) {
case "l":
De > we && (n = [De, we]);
break;
case "p":
we > De && (n = [De, we]);
}
Ze(n), lA(kn), D(ni), ai !== 0 && D(ai + " J"), ys !== 0 && D(ys + " j"), xt.publish("addPage", { pageNumber: Re });
}, tt = function(v) {
v > 0 && v <= Re && (qe.splice(v, 1), $e.splice(v, 1), Re--, L > Re && (L = Re), this.setPage(L));
}, Je = function(v) {
v > 0 && v <= Re && (L = v);
}, ft = c.__private__.getNumberOfPages = c.getNumberOfPages = function() {
return qe.length - 1;
}, Et = function(v, T, ne) {
var we, De = void 0;
return ne = ne || {}, v = v !== void 0 ? v : Ot[Bt].fontName, T = T !== void 0 ? T : Ot[Bt].fontStyle, we = v.toLowerCase(), Pt[we] !== void 0 && Pt[we][T] !== void 0 ? De = Pt[we][T] : Pt[v] !== void 0 && Pt[v][T] !== void 0 ? De = Pt[v][T] : ne.disableWarning === !1 && ur.warn("Unable to look up font label for font '" + v + "', '" + T + "'. Refer to getFontList() for available fonts."), De || ne.noFallback || (De = Pt.times[T]) == null && (De = Pt.times.normal), De;
}, Jt = c.__private__.putInfo = function() {
var v = CA(), T = function(we) {
return we;
};
for (var ne in u !== null && (T = aA.encryptor(v, 0)), D("<<"), D("/Producer (" + ke(T("jsPDF " + eA.version)) + ")"), Ft) Ft.hasOwnProperty(ne) && Ft[ne] && D("/" + ne.substr(0, 1).toUpperCase() + ne.substr(1) + " (" + ke(T(Ft[ne])) + ")");
D("/CreationDate (" + ke(T(le)) + ")"), D(">>"), D("endobj");
}, fA = c.__private__.putCatalog = function(v) {
var T = (v = v || {}).rootDictionaryObjId || Sr;
switch (CA(), D("<<"), D("/Type /Catalog"), D("/Pages " + T + " 0 R"), Qe || (Qe = "fullwidth"), Qe) {
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 ne = "" + Qe;
ne.substr(ne.length - 1) === "%" && (Qe = parseInt(Qe) / 100), typeof Qe == "number" && D("/OpenAction [3 0 R /XYZ null null " + S(Qe) + "]");
}
switch (et || (et = "continuous"), et) {
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");
}
je && D("/PageMode /" + je), xt.publish("putCatalog"), D(">>"), D("endobj");
}, gA = c.__private__.putTrailer = function() {
D("trailer"), D("<<"), D("/Size " + (re + 1)), D("/Root " + re + " 0 R"), D("/Info " + (re - 1) + " 0 R"), u !== null && D("/Encrypt " + aA.oid + " 0 R"), D("/ID [ <" + ue + "> <" + ue + "> ]"), D(">>");
}, Xt = c.__private__.putHeader = function() {
D("%PDF-" + p), D("%ºß¬à");
}, tA = c.__private__.putXRef = function() {
var v = "0000000000";
D("xref"), D("0 " + (re + 1)), D("0000000000 65535 f ");
for (var T = 1; T <= re; T++) typeof pe[T] == "function" ? D((v + pe[T]()).slice(-10) + " 00000 n ") : pe[T] !== void 0 ? D((v + pe[T]).slice(-10) + " 00000 n ") : D("0000000000 00000 n ");
}, Gt = c.__private__.buildDocument = function() {
var v;
re = 0, ce = 0, de = [], pe = [], Se = [], Sr = MA(), LA = MA(), dt(de), xt.publish("buildDocument"), Xt(), Dt(), (function() {
xt.publish("putAdditionalObjects");
for (var ne = 0; ne < Se.length; ne++) {
var we = Se[ne];
OA(we.objId, !0), D(we.content), D("endobj");
}
xt.publish("postPutAdditionalObjects");
})(), v = [], (function() {
for (var ne in Ot) Ot.hasOwnProperty(ne) && (h === !1 || h === !0 && g.hasOwnProperty(ne)) && be(Ot[ne]);
})(), (function() {
var ne;
for (ne in Nt) Nt.hasOwnProperty(ne) && it(Nt[ne]);
})(), (function() {
for (var ne in Mt) Mt.hasOwnProperty(ne) && z(Mt[ne]);
})(), (function(ne) {
var we;
for (we in kt) kt.hasOwnProperty(we) && (kt[we] instanceof Ls ? ge(kt[we]) : kt[we] instanceof bo && We(kt[we], ne));
})(v), xt.publish("putResources"), v.forEach(V), V({ resourcesOid: LA, objectOid: Number.MAX_SAFE_INTEGER }), xt.publish("postPutResources"), u !== null && (aA.oid = CA(), D("<<"), D("/Filter /Standard"), D("/V " + aA.v), D("/R " + aA.r), D("/U <" + aA.toHexString(aA.U) + ">"), D("/O <" + aA.toHexString(aA.O) + ">"), D("/P " + aA.P), D(">>"), D("endobj")), Jt(), fA();
var T = ce;
return tA(), gA(), D("startxref"), D("" + T), D("%%EOF"), dt(qe[L]), de.join(`
`);
}, UA = c.__private__.getBlob = function(v) {
return new Blob([me(v)], { type: "application/pdf" });
}, FA = c.output = c.__private__.output = (PA = function(v, T) {
switch (typeof (T = T || {}) == "string" ? T = { filename: T } : T.filename = T.filename || "generated.pdf", v) {
case void 0:
return Gt();
case "save":
c.save(T.filename);
break;
case "arraybuffer":
return me(Gt());
case "blob":
return UA(Gt());
case "bloburi":
case "bloburl":
if (cA.URL !== void 0 && typeof cA.URL.createObjectURL == "function") return cA.URL && cA.URL.createObjectURL(UA(Gt())) || void 0;
ur.warn("bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.");
break;
case "datauristring":
case "dataurlstring":
var ne = "", we = Gt();
try {
ne = F1(we);
} catch {
ne = F1(unescape(encodeURIComponent(we)));
}
return "data:application/pdf;filename=" + T.filename + ";base64," + ne;
case "pdfobjectnewwindow":
if (Object.prototype.toString.call(cA) === "[object Window]") {
var De = "https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js", nt = ' integrity="sha512-4ze/a9/4jqu+tX9dfOqJYSvyYd5M6qum/3HpCLr+/Jqf0whc37VUbkpNGHR7/8pSnCFw47T1fmIpwBV7UySh3g==" crossorigin="anonymous"';
T.pdfObjectUrl && (De = T.pdfObjectUrl, nt = "");
var ct = '<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style><body><script src="' + De + '"' + nt + '><\/script><script >PDFObject.embed("' + this.output("dataurlstring") + '", ' + JSON.stringify(T) + ");<\/script></body></html>", Kt = cA.open();
return Kt !== null && Kt.document.write(ct), Kt;
}
throw new Error("The option pdfobjectnewwindow just works in a browser-environment.");
case "pdfjsnewwindow":
if (Object.prototype.toString.call(cA) === "[object Window]") {
var Yt = '<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style><body><iframe id="pdfViewer" src="' + (T.pdfJsUrl || "examples/PDF.js/web/viewer.html") + "?file=&downloadName=" + T.filename + '" width="500px" height="400px" /></body></html>', oA = cA.open();
if (oA !== null) {
oA.document.write(Yt);
var dA = this;
oA.document.documentElement.querySelector("#pdfViewer").onload = function() {
oA.document.title = T.filename, oA.document.documentElement.querySelector("#pdfViewer").contentWindow.PDFViewerApplication.open(dA.output("bloburl"));
};
}
return oA;
}
throw new Error("The option pdfjsnewwindow just works in a browser-environment.");
case "dataurlnewwindow":
if (Object.prototype.toString.call(cA) !== "[object Window]") throw new Error("The option dataurlnewwindow just works in a browser-environment.");
var QA = '<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style><body><iframe src="' + this.output("datauristring", T) + '"></iframe></body></html>', vr = cA.open();
if (vr !== null && (vr.document.write(QA), vr.document.title = T.filename), vr || typeof safari > "u") return vr;
break;
case "datauri":
case "dataurl":
return cA.document.location.href = this.output("datauristring", T);
default:
return null;
}
}, PA.foo = function() {
try {
return PA.apply(this, arguments);
} catch (ne) {
var v = ne.stack || "";
~v.indexOf(" at ") && (v = v.split(" at ")[1]);
var T = "Error in function " + v.split(`
`)[0].split("<")[0] + ": " + ne.message;
if (!cA.console) throw new Error(T);
cA.console.error(T, ne), cA.alert && alert(T);
}
}, PA.foo.bar = PA, PA.foo), IA = function(v) {
return Array.isArray(Ht) === !0 && Ht.indexOf(v) > -1;
};
switch (A) {
case "pt":
St = 1;
break;
case "mm":
St = 72 / 25.4;
break;
case "cm":
St = 72 / 2.54;
break;
case "in":
St = 72;
break;
case "px":
St = IA("px_scaling") == 1 ? 0.75 : 96 / 72;
break;
case "pc":
case "em":
St = 12;
break;
case "ex":
St = 6;
break;
default:
if (typeof A != "number") throw new Error("Invalid unit: " + A);
St = A;
}
var aA = null;
oe(), ee();
var An = c.__private__.getPageInfo = c.getPageInfo = function(v) {
if (isNaN(v) || v % 1 != 0) throw new Error("Invalid argument passed to jsPDF.getPageInfo");
return { objId: $e[v].objId, pageNumber: v, pageContext: $e[v] };
}, Tn = c.__private__.getPageInfoByObjId = function(v) {
if (isNaN(v) || v % 1 != 0) throw new Error("Invalid argument passed to jsPDF.getPageInfoByObjId");
for (var T in $e) if ($e[T].objId === v) break;
return An(T);
}, ea = c.__private__.getCurrentPageInfo = c.getCurrentPageInfo = function() {
return { objId: $e[L].objId, pageNumber: L, pageContext: $e[L] };
};
c.addPage = function() {
return Me.apply(this, arguments), this;
}, c.setPage = function() {
return Je.apply(this, arguments), dt.call(this, qe[L]), this;
}, c.insertPage = function(v) {
return this.addPage(), this.movePage(L, v), this;
}, c.movePage = function(v, T) {
var ne, we;
if (v > T) {
ne = qe[v], we = $e[v];
for (var De = v; De > T; De--) qe[De] = qe[De - 1], $e[De] = $e[De - 1];
qe[T] = ne, $e[T] = we, this.setPage(T);
} else if (v < T) {
ne = qe[v], we = $e[v];
for (var nt = v; nt < T; nt++) qe[nt] = qe[nt + 1], $e[nt] = $e[nt + 1];
qe[T] = ne, $e[T] = we, this.setPage(T);
}
return this;
}, c.deletePage = function() {
return tt.apply(this, arguments), this;
}, c.__private__.text = c.text = function(v, T, ne, we, De) {
var nt, ct, Kt, Yt, oA, dA, QA, vr, R, te = (we = we || {}).scope || this;
if (typeof v == "number" && typeof T == "number" && (typeof ne == "string" || Array.isArray(ne))) {
var K = ne;
ne = T, T = v, v = K;
}
if (arguments[3] instanceof Lt == 0 ? (Kt = arguments[4], Yt = arguments[5], jA(QA = arguments[3]) === "object" && QA !== null || (typeof Kt == "string" && (Yt = Kt, Kt = null), typeof QA == "string" && (Yt = QA, QA = null), typeof QA == "number" && (Kt = QA, QA = null), we = { flags: QA, angle: Kt, align: Yt })) : (k("The transform parameter of text() with a Matrix value"), R = De), isNaN(T) || isNaN(ne) || v == null) throw new Error("Invalid arguments passed to jsPDF.text");
if (v.length === 0) return te;
var he, ye = "", Le = typeof we.lineHeightFactor == "number" ? we.lineHeightFactor : Ir, Xe = te.internal.scaleFactor;
function ze($A) {
return $A = $A.split(" ").join(Array(we.TabLen || 9).join(" ")), ke($A, QA);
}
function mt($A) {
for (var or, Vr = $A.concat(), rn = [], Bi = Vr.length; Bi--; ) typeof (or = Vr.shift()) == "string" ? rn.push(or) : Array.isArray($A) && (or.length === 1 || or[1] === void 0 && or[2] === void 0) ? rn.push(or[0]) : rn.push([or[0], or[1], or[2]]);
return rn;
}
function It($A, or) {
var Vr;
if (typeof $A == "string") Vr = or($A)[0];
else if (Array.isArray($A)) {
for (var rn, Bi, Ko = $A.concat(), io = [], Vl = Ko.length; Vl--; ) typeof (rn = Ko.shift()) == "string" ? io.push(or(rn)[0]) : Array.isArray(rn) && typeof rn[0] == "string" && (Bi = or(rn[0], rn[1], rn[2]), io.push([Bi[0], Bi[1], Bi[2]]));
Vr = io;
}
return Vr;
}
var Qt = !1, pt = !0;
if (typeof v == "string") Qt = !0;
else if (Array.isArray(v)) {
var jt = v.concat();
ct = [];
for (var KA, VA = jt.length; VA--; ) (typeof (KA = jt.shift()) != "string" || Array.isArray(KA) && typeof KA[0] != "string") && (pt = !1);
Qt = pt;
}
if (Qt === !1) throw new Error('Type of text must be string or Array. "' + v + '" is not recognized.');
typeof v == "string" && (v = v.match(/[\r?\n]/) ? v.split(/\r\n|\r|\n/g) : [v]);
var ln = xe / te.internal.scaleFactor, yr = ln * (Le - 1);
switch (we.baseline) {
case "bottom":
ne -= yr;
break;
case "top":
ne += ln - yr;
break;
case "hanging":
ne += ln - 2 * yr;
break;
case "middle":
ne += ln / 2 - yr;
}
if ((dA = we.maxWidth || 0) > 0 && (typeof v == "string" ? v = te.splitTextToSize(v, dA) : Object.prototype.toString.call(v) === "[object Array]" && (v = v.reduce(function($A, or) {
return $A.concat(te.splitTextToSize(or, dA));
}, []))), nt = { text: v, x: T, y: ne, options: we, mutex: { pdfEscape: ke, activeFontKey: Bt, fonts: Ot, activeFontSize: xe } }, xt.publish("preProcessText", nt), v = nt.text, Kt = (we = nt.options).angle, R instanceof Lt == 0 && Kt && typeof Kt == "number") {
Kt *= Math.PI / 180, we.rotationDirection === 0 && (Kt = -Kt), F === C && (Kt = -Kt);
var Ur = Math.cos(Kt), _r = Math.sin(Kt);
R = new Lt(Ur, _r, -_r, Ur, 0, 0);
} else Kt && Kt instanceof Lt && (R = Kt);
F !== C || R || (R = Fr), (oA = we.charSpace || mn) !== void 0 && (ye += M(W(oA)) + ` Tc
`, this.setCharSpace(this.getCharSpace() || 0)), (vr = we.horizontalScale) !== void 0 && (ye += M(100 * vr) + ` Tz
`), we.lang;
var er = -1, Kn = we.renderingMode !== void 0 ? we.renderingMode : we.stroke, fr = te.internal.getCurrentPageInfo().pageContext;
switch (Kn) {
case 0:
case !1:
case "fill":
er = 0;
break;
case 1:
case !0:
case "stroke":
er = 1;
break;
case 2:
case "fillThenStroke":
er = 2;
break;
case 3:
case "invisible":
er = 3;
break;
case 4:
case "fillAndAddForClipping":
er = 4;
break;
case 5:
case "strokeAndAddPathForClipping":
er = 5;
break;
case 6:
case "fillThenStrokeAndAddToPathForClipping":
er = 6;
break;
case 7:
case "addToPathForClipping":
er = 7;
}
var ca = fr.usedRenderingMode !== void 0 ? fr.usedRenderingMode : -1;
er !== -1 ? ye += er + ` Tr
` : ca !== -1 && (ye += `0 Tr
`), er !== -1 && (fr.usedRenderingMode = er), Yt = we.align || "left";
var un, Fa = xe * Le, bs = te.internal.pageSize.getWidth(), wi = Ot[Bt];
oA = we.charSpace || mn, dA = we.maxWidth || 0, QA = Object.assign({ autoencode: !0, noBOM: !0 }, we.flags);
var ar = [], YA = function($A) {
return te.getStringUnitWidth($A, { font: wi, charSpace: oA, fontSize: xe, doKerning: !1 }) * xe / Xe;
};
if (Object.prototype.toString.call(v) === "[object Array]") {
var qA;
ct = mt(v), Yt !== "left" && (un = ct.map(YA));
var ir, wn = 0;
if (Yt === "right") {
T -= un[0], v = [], VA = ct.length;
for (var cn = 0; cn < VA; cn++) cn === 0 ? (ir = Ra(T), qA = vn(ne)) : (ir = W(wn - un[cn]), qA = -Fa), v.push([ct[cn], ir, qA]), wn = un[cn];
} else if (Yt === "center") {
T -= un[0] / 2, v = [], VA = ct.length;
for (var Ka = 0; Ka < VA; Ka++) Ka === 0 ? (ir = Ra(T), qA = vn(ne)) : (ir = W((wn - un[Ka]) / 2), qA = -Fa), v.push([ct[Ka], ir, qA]), wn = un[Ka];
} else if (Yt === "left") {
v = [], VA = ct.length;
for (var ji = 0; ji < VA; ji++) v.push(ct[ji]);
} else if (Yt === "justify" && wi.encoding === "Identity-H") {
v = [], VA = ct.length, dA = dA !== 0 ? dA : bs;
for (var si = 0, Tr = 0; Tr < VA; Tr++) if (qA = Tr === 0 ? vn(ne) : -Fa, ir = Tr === 0 ? Ra(T) : si, Tr < VA - 1) {
var ao = W((dA - un[Tr]) / (ct[Tr].split(" ").length - 1)), xa = ct[Tr].split(" ");
v.push([xa[0] + " ", ir, qA]), si = 0;
for (var oi = 1; oi < xa.length; oi++) {
var Oo = (YA(xa[oi - 1] + " " + xa[oi]) - YA(xa[oi])) * Xe + ao;
oi == xa.length - 1 ? v.push([xa[oi], Oo, 0]) : v.push([xa[oi] + " ", Oo, 0]), si -= Oo;
}
} else v.push([ct[Tr], ir, qA]);
v.push(["", si, 0]);
} else {
if (Yt !== "justify") throw new Error('Unrecognized alignment option, use "left", "center", "right" or "justify".');
for (v = [], VA = ct.length, dA = dA !== 0 ? dA : bs, Tr = 0; Tr < VA; Tr++) {
qA = Tr === 0 ? vn(ne) : -Fa, ir = Tr === 0 ? Ra(T) : 0;
var Ro = ct[Tr].split(" ").length - 1, Ho = Ro > 0 ? (dA - un[Tr]) / Ro : 0;
Tr < VA - 1 ? ar.push(M(W(Ho))) : ar.push(0), v.push([ct[Tr], ir, qA]);
}
}
}
(typeof we.R2L == "boolean" ? we.R2L : Pe) === !0 && (v = It(v, function($A, or, Vr) {
return [$A.split("").reverse().join(""), or, Vr];
})), nt = { text: v, x: T, y: ne, options: we, mutex: { pdfEscape: ke, activeFontKey: Bt, fonts: Ot, activeFontSize: xe } }, xt.publish("postProcessText", nt), v = nt.text, he = nt.mutex.isHex || !1;
var Po = Ot[Bt].encoding;
Po !== "WinAnsiEncoding" && Po !== "StandardEncoding" || (v = It(v, function($A, or, Vr) {
return [ze($A), or, Vr];
})), ct = mt(v), v = [];
for (var Wi, Gi, Yi, Cs = Array.isArray(ct[0]) ? 1 : 0, $i = "", Es = function($A, or, Vr) {
var rn = "";
return Vr instanceof Lt ? (Vr = typeof we.angle == "number" ? Qr(Vr, new Lt(1, 0, 0, 1, $A, or)) : Qr(new Lt(1, 0, 0, 1, $A, or), Vr), F === C && (Vr = Qr(new Lt(1, 0, 0, -1, 0, 0), Vr)), rn = Vr.join(" ") + ` Tm
`) : rn = M($A) + " " + M(or) + ` Td
`, rn;
}, Sa = 0; Sa < ct.length; Sa++) {
switch ($i = "", Cs) {
case 1:
Yi = (he ? "<" : "(") + ct[Sa][0] + (he ? ">" : ")"), Wi = parseFloat(ct[Sa][1]), Gi = parseFloat(ct[Sa][2]);
break;
case 0:
Yi = (he ? "<" : "(") + ct[Sa] + (he ? ">" : ")"), Wi = Ra(T), Gi = vn(ne);
}
ar !== void 0 && ar[Sa] !== void 0 && ($i = ar[Sa] + ` Tw
`), Sa === 0 ? v.push($i + Es(Wi, Gi, R) + Yi) : Cs === 0 ? v.push($i + Yi) : Cs === 1 && v.push($i + Es(Wi, Gi, R) + Yi);
}
v = Cs === 0 ? v.join(` Tj
T* `) : v.join(` Tj
`), v += ` Tj
`;
var li = `BT
/`;
return li += Bt + " " + xe + ` Tf
`, li += M(xe * Le) + ` TL
`, li += wA + `
`, li += ye, li += v, D(li += "ET"), g[Bt] = !0, te;
};
var Pn = c.__private__.clip = c.clip = function(v) {
return D(v === "evenodd" ? "W*" : "W"), this;
};
c.clipEvenOdd = function() {
return Pn("evenodd");
}, c.__private__.discardPath = c.discardPath = function() {
return D("n"), this;
};
var WA = c.__private__.isValidStyle = function(v) {
var T = !1;
return [void 0, null, "S", "D", "F", "DF", "FD", "f", "f*", "B", "B*", "n"].indexOf(v) !== -1 && (T = !0), T;
};
c.__private__.setDefaultPathOperation = c.setDefaultPathOperation = function(v) {
return WA(v) && (l = v), this;
};
var bA = c.__private__.getStyle = c.getStyle = function(v) {
var T = l;
switch (v) {
case "D":
case "S":
T = "S";
break;
case "F":
T = "f";
break;
case "FD":
case "DF":
T = "B";
break;
case "f":
case "f*":
case "B":
case "B*":
T = v;
}
return T;
}, nr = c.close = function() {
return D("h"), this;
};
c.stroke = function() {
return D("S"), this;
}, c.fill = function(v) {
return GA("f", v), this;
}, c.fillEvenOdd = function(v) {
return GA("f*", v), this;
}, c.fillStroke = function(v) {
return GA("B", v), this;
}, c.fillStrokeEvenOdd = function(v) {
return GA("B*", v), this;
};
var GA = function(v, T) {
jA(T) === "object" ? ba(T, v) : D(v);
}, cr = function(v) {
v === null || F === C && v === void 0 || (v = bA(v), D(v));
};
function pn(v, T, ne, we, De) {
var nt = new bo(T || this.boundingBox, ne || this.xStep, we || this.yStep, this.gState, De || this.matrix);
nt.stream = this.stream;
var ct = v + "$$" + this.cloneIndex++ + "$$";
return xr(ct, nt), nt;
}
var ba = function(v, T) {
var ne = hA[v.key], we = kt[ne];
if (we instanceof Ls) D("q"), D(la(T)), we.gState && c.setGState(we.gState), D(v.matrix.toString() + " cm"), D("/" + ne + " sh"), D("Q");
else if (we instanceof bo) {
var De = new Lt(1, 0, 0, -1, 0, ua());
v.matrix && (De = De.multiply(v.matrix || Fr), ne = pn.call(we, v.key, v.boundingBox, v.xStep, v.yStep, De).id), D("q"), D("/Pattern cs"), D("/" + ne + " scn"), we.gState && c.setGState(we.gState), D(T), D("Q");
}
}, la = function(v) {
switch (v) {
case "f":
case "F":
case "n":
return "W n";
case "f*":
return "W* n";
case "B":
case "S":
return "W S";
case "B*":
return "W* S";
}
}, Qn = c.moveTo = function(v, T) {
return D(M(W(v)) + " " + M(I(T)) + " m"), this;
}, Ca = c.lineTo = function(v, T) {
return D(M(W(v)) + " " + M(I(T)) + " l"), this;
}, Kr = c.curveTo = function(v, T, ne, we, De, nt) {
return D([M(W(v)), M(I(T)), M(W(ne)), M(I(we)), M(W(De)), M(I(nt)), "c"].join(" ")), this;
};
c.__private__.line = c.line = function(v, T, ne, we, De) {
if (isNaN(v) || isNaN(T) || isNaN(ne) || isNaN(we) || !WA(De)) throw new Error("Invalid arguments passed to jsPDF.line");
return F === E ? this.lines([[ne - v, we - T]], v, T, [1, 1], De || "S") : this.lines([[ne - v, we - T]], v, T, [1, 1]).stroke();
}, c.__private__.lines = c.lines = function(v, T, ne, we, De, nt) {
var ct, Kt, Yt, oA, dA, QA, vr, R, te, K, he, ye;
if (typeof v == "number" && (ye = ne, ne = T, T = v, v = ye), we = we || [1, 1], nt = nt || !1, isNaN(T) || isNaN(ne) || !Array.isArray(v) || !Array.isArray(we) || !WA(De) || typeof nt != "boolean") throw new Error("Invalid arguments passed to jsPDF.lines");
for (Qn(T, ne), ct = we[0], Kt = we[1], oA = v.length, K = T, he = ne, Yt = 0; Yt < oA; Yt++) (dA = v[Yt]).length === 2 ? (K = dA[0] * ct + K, he = dA[1] * Kt + he, Ca(K, he)) : (QA = dA[0] * ct + K, vr = dA[1] * Kt + he, R = dA[2] * ct + K, te = dA[3] * Kt + he, K = dA[4] * ct + K, he = dA[5] * Kt + he, Kr(QA, vr, R, te, K, he));
return nt && nr(), cr(De), this;
}, c.path = function(v) {
for (var T = 0; T < v.length; T++) {
var ne = v[T], we = ne.c;
switch (ne.op) {
case "m":
Qn(we[0], we[1]);
break;
case "l":
Ca(we[0], we[1]);
break;
case "c":
Kr.apply(this, we);
break;
case "h":
nr();
}
}
return this;
}, c.__private__.rect = c.rect = function(v, T, ne, we, De) {
if (isNaN(v) || isNaN(T) || isNaN(ne) || isNaN(we) || !WA(De)) throw new Error("Invalid arguments passed to jsPDF.rect");
return F === E && (we = -we), D([M(W(v)), M(I(T)), M(W(ne)), M(W(we)), "re"].join(" ")), cr(De), this;
}, c.__private__.triangle = c.triangle = function(v, T, ne, we, De, nt, ct) {
if (isNaN(v) || isNaN(T) || isNaN(ne) || isNaN(we) || isNaN(De) || isNaN(nt) || !WA(ct)) throw new Error("Invalid arguments passed to jsPDF.triangle");
return this.lines([[ne - v, we - T], [De - ne, nt - we], [v - De, T - nt]], v, T, [1, 1], ct, !0), this;
}, c.__private__.roundedRect = c.roundedRect = function(v, T, ne, we, De, nt, ct) {
if (isNaN(v) || isNaN(T) || isNaN(ne) || isNaN(we) || isNaN(De) || isNaN(nt) || !WA(ct)) throw new Error("Invalid arguments passed to jsPDF.roundedRect");
var Kt = 4 / 3 * (Math.SQRT2 - 1);
return De = Math.min(De, 0.5 * ne), nt = Math.min(nt, 0.5 * we), this.lines([[ne - 2 * De, 0], [De * Kt, 0, De, nt - nt * Kt, De, nt], [0, we - 2 * nt], [0, nt * Kt, -De * Kt, nt, -De, nt], [2 * De - ne, 0], [-De * Kt, 0, -De, -nt * Kt, -De, -nt], [0, 2 * nt - we], [0, -nt * Kt, De * Kt, -nt, De, -nt]], v + De, T, [1, 1], ct, !0), this;
}, c.__private__.ellipse = c.ellipse = function(v, T, ne, we, De) {
if (isNaN(v) || isNaN(T) || isNaN(ne) || isNaN(we) || !WA(De)) throw new Error("Invalid arguments passed to jsPDF.ellipse");
var nt = 4 / 3 * (Math.SQRT2 - 1) * ne, ct = 4 / 3 * (Math.SQRT2 - 1) * we;
return Qn(v + ne, T), Kr(v + ne, T - ct, v + nt, T - we, v, T - we), Kr(v - nt, T - we, v - ne, T - ct, v - ne, T), Kr(v - ne, T + ct, v - nt, T + we, v, T + we), Kr(v + nt, T + we, v + ne, T + ct, v + ne, T), cr(De), this;
}, c.__private__.circle = c.circle = function(v, T, ne, we) {
if (isNaN(v) || isNaN(T) || isNaN(ne) || !WA(we)) throw new Error("Invalid arguments passed to jsPDF.circle");
return this.ellipse(v, T, ne, ne, we);
}, c.setFont = function(v, T, ne) {
return ne && (T = N(T, ne)), Bt = Et(v, T, { disableWarning: !1 }), this;
};
var Dn = c.__private__.getFont = c.getFont = function() {
return Ot[Et.apply(c, arguments)];
};
c.__private__.getFontList = c.getFontList = function() {
var v, T, ne = {};
for (v in Pt) if (Pt.hasOwnProperty(v)) for (T in ne[v] = [], Pt[v]) Pt[v].hasOwnProperty(T) && ne[v].push(T);
return ne;
}, c.addFont = function(v, T, ne, we, De) {
var nt = ["StandardEncoding", "MacRomanEncoding", "Identity-H", "WinAnsiEncoding"];
return arguments[3] && nt.indexOf(arguments[3]) !== -1 ? De = arguments[3] : arguments[3] && nt.indexOf(arguments[3]) == -1 && (ne = N(ne, we)), Fe.call(this, v, T, ne, De = De || "Identity-H");
};
var Ir, kn = r.lineWidth || 0.200025, zs = c.__private__.getLineWidth = c.getLineWidth = function() {
return kn;
}, lA = c.__private__.setLineWidth = c.setLineWidth = function(v) {
return kn = v, D(M(W(v)) + " w"), this;
};
c.__private__.setLineDash = eA.API.setLineDash = eA.API.setLineDashPattern = function(v, T) {
if (v = v || [], T = T || 0, isNaN(T) || !Array.isArray(v)) throw new Error("Invalid arguments passed to jsPDF.setLineDash");
return v = v.map(function(ne) {
return M(W(ne));
}).join(" "), T = M(W(T)), D("[" + v + "] " + T + " d"), this;
};
var Mo = c.__private__.getLineHeight = c.getLineHeight = function() {
return xe * Ir;
};
c.__private__.getLineHeight = c.getLineHeight = function() {
return xe * Ir;
};
var Xs = c.__private__.setLineHeightFactor = c.setLineHeightFactor = function(v) {
return typeof (v = v || 1.15) == "number" && (Ir = v), this;
}, Js = c.__private__.getLineHeightFactor = c.getLineHeightFactor = function() {
return Ir;
};
Xs(r.lineHeight);
var Ra = c.__private__.getHorizontalCoordinate = function(v) {
return W(v);
}, vn = c.__private__.getVerticalCoordinate = function(v) {
return F === C ? v : $e[L].mediaBox.topRightY - $e[L].mediaBox.bottomLeftY - W(v);
}, Bs = c.__private__.getHorizontalCoordinateString = c.getHorizontalCoordinateString = function(v) {
return M(Ra(v));
}, Zs = c.__private__.getVerticalCoordinateString = c.getVerticalCoordinateString = function(v) {
return M(vn(v));
}, ni = r.strokeColor || "0 G";
c.__private__.getStrokeColor = c.getDrawColor = function() {
return pr(ni);
}, c.__private__.setStrokeColor = c.setDrawColor = function(v, T, ne, we) {
return ni = kr({ ch1: v, ch2: T, ch3: ne, ch4: we, pdfColorType: "draw", precision: 2 }), D(ni), this;
};
var Hi = r.fillColor || "0 g";
c.__private__.getFillColor = c.getFillColor = function() {
return pr(Hi);
}, c.__private__.setFillColor = c.setFillColor = function(v, T, ne, we) {
return Hi = kr({ ch1: v, ch2: T, ch3: ne, ch4: we, pdfColorType: "fill", precision: 2 }), D(Hi), this;
};
var wA = r.textColor || "0 g", ta = c.__private__.getTextColor = c.getTextColor = function() {
return pr(wA);
};
c.__private__.setTextColor = c.setTextColor = function(v, T, ne, we) {
return wA = kr({ ch1: v, ch2: T, ch3: ne, ch4: we, pdfColorType: "text", precision: 3 }), this;
};
var mn = r.charSpace, Pi = c.__private__.getCharSpace = c.getCharSpace = function() {
return parseFloat(mn || 0);
};
c.__private__.setCharSpace = c.setCharSpace = function(v) {
if (isNaN(v)) throw new Error("Invalid argument passed to jsPDF.setCharSpace");
return mn = v, this;
};
var ai = 0;
c.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 }, c.__private__.setLineCap = c.setLineCap = function(v) {
var T = c.CapJoinStyles[v];
if (T === void 0) throw new Error("Line cap style of '" + v + "' is not recognized. See or extend .CapJoinStyles property for valid styles");
return ai = T, D(T + " J"), this;
};
var ys = 0;
c.__private__.setLineJoin = c.setLineJoin = function(v) {
var T = c.CapJoinStyles[v];
if (T === void 0) throw new Error("Line join style of '" + v + "' is not recognized. See or extend .CapJoinStyles property for valid styles");
return ys = T, D(T + " j"), this;
}, c.__private__.setLineMiterLimit = c.__private__.setMiterLimit = c.setLineMiterLimit = c.setMiterLimit = function(v) {
if (v = v || 0, isNaN(v)) throw new Error("Invalid argument passed to jsPDF.setLineMiterLimit");
return D(M(W(v)) + " M"), this;
}, c.GState = fc, c.setGState = function(v) {
(v = typeof v == "string" ? Nt[Ce[v]] : eo(null, v)).equals(Ve) || (D("/" + v.id + " gs"), Ve = v);
};
var eo = function(v, T) {
if (!v || !Ce[v]) {
var ne = !1;
for (var we in Nt) if (Nt.hasOwnProperty(we) && Nt[we].equals(T)) {
ne = !0;
break;
}
if (ne) T = Nt[we];
else {
var De = "GS" + (Object.keys(Nt).length + 1).toString(10);
Nt[De] = T, T.id = De;
}
return v && (Ce[v] = T.id), xt.publish("addGState", T), T;
}
};
c.addGState = function(v, T) {
return eo(v, T), this;
}, c.saveGraphicsState = function() {
return D("q"), sA.push({ key: Bt, size: xe, color: wA }), this;
}, c.restoreGraphicsState = function() {
D("Q");
var v = sA.pop();
return Bt = v.key, xe = v.size, wA = v.color, Ve = null, this;
}, c.setCurrentTransformationMatrix = function(v) {
return D(v.toString() + " cm"), this;
}, c.comment = function(v) {
return D("#" + v), this;
};
var Aa = function(v, T) {
var ne = v || 0;
Object.defineProperty(this, "x", { enumerable: !0, get: function() {
return ne;
}, set: function(nt) {
isNaN(nt) || (ne = parseFloat(nt));
} });
var we = T || 0;
Object.defineProperty(this, "y", { enumerable: !0, get: function() {
return we;
}, set: function(nt) {
isNaN(nt) || (we = parseFloat(nt));
} });
var De = "pt";
return Object.defineProperty(this, "type", { enumerable: !0, get: function() {
return De;
}, set: function(nt) {
De = nt.toString();
} }), this;
}, ii = function(v, T, ne, we) {
Aa.call(this, v, T), this.type = "rect";
var De = ne || 0;
Object.defineProperty(this, "w", { enumerable: !0, get: function() {
return De;
}, set: function(ct) {
isNaN(ct) || (De = parseFloat(ct));
} });
var nt = we || 0;
return Object.defineProperty(this, "h", { enumerable: !0, get: function() {
return nt;
}, set: function(ct) {
isNaN(ct) || (nt = parseFloat(ct));
} }), this;
}, Ki = function() {
this.page = Re, this.currentPage = L, this.pages = qe.slice(0), this.pagesContext = $e.slice(0), this.x = bt, this.y = nA, this.matrix = qt, this.width = qi(L), this.height = Ao(L), this.outputDestination = at, this.id = "", this.objectNumber = -1;
};
Ki.prototype.restore = function() {
Re = this.page, L = this.currentPage, $e = this.pagesContext, qe = this.pages, bt = this.x, nA = this.y, qt = this.matrix, to(L, this.width), Ha(L, this.height), at = this.outputDestination;
};
var Vi = function(v, T, ne, we, De) {
JA.push(new Ki()), Re = L = 0, qe = [], bt = v, nA = T, qt = De, Ze([ne, we]);
};
for (var Ea in c.beginFormObject = function(v, T, ne, we, De) {
return Vi(v, T, ne, we, De), this;
}, c.endFormObject = function(v) {
return (function(T) {
if (SA[T]) JA.pop().restore();
else {
var ne = new Ki(), we = "Xo" + (Object.keys(Mt).length + 1).toString(10);
ne.id = we, SA[T] = we, Mt[we] = ne, xt.publish("addFormObject", ne), JA.pop().restore();
}
})(v), this;
}, c.doFormObject = function(v, T) {
var ne = Mt[SA[v]];
return D("q"), D(T.toString() + " cm"), D("/" + ne.id + " Do"), D("Q"), this;
}, c.getFormObject = function(v) {
var T = Mt[SA[v]];
return { x: T.x, y: T.y, width: T.width, height: T.height, matrix: T.matrix };
}, c.save = function(v, T) {
return v = v || "generated.pdf", (T = T || {}).returnPromise = T.returnPromise || !1, T.returnPromise === !1 ? (Qs(UA(Gt()), v), typeof Qs.unload == "function" && cA.setTimeout && setTimeout(Qs.unload, 911), this) : new Promise(function(ne, we) {
try {
var De = Qs(UA(Gt()), v);
typeof Qs.unload == "function" && cA.setTimeout && setTimeout(Qs.unload, 911), ne(De);
} catch (nt) {
we(nt.message);
}
});
}, eA.API) eA.API.hasOwnProperty(Ea) && (Ea === "events" && eA.API.events.length ? (function(v, T) {
var ne, we, De;
for (De = T.length - 1; De !== -1; De--) ne = T[De][0], we = T[De][1], v.subscribe.apply(v, [ne].concat(typeof we == "function" ? [we] : we));
})(xt, eA.API.events) : c[Ea] = eA.API[Ea]);
function qi(v) {
return $e[v].mediaBox.topRightX - $e[v].mediaBox.bottomLeftX;
}
function to(v, T) {
$e[v].mediaBox.topRightX = T + $e[v].mediaBox.bottomLeftX;
}
function Ao(v) {
return $e[v].mediaBox.topRightY - $e[v].mediaBox.bottomLeftY;
}
function Ha(v, T) {
$e[v].mediaBox.topRightY = T + $e[v].mediaBox.bottomLeftY;
}
var Pa = c.getPageWidth = function(v) {
return qi(v = v || L) / St;
}, ro = c.setPageWidth = function(v, T) {
to(v, T * St);
}, ua = c.getPageHeight = function(v) {
return Ao(v = v || L) / St;
}, no = c.setPageHeight = function(v, T) {
Ha(v, T * St);
};
return c.internal = { pdfEscape: ke, getStyle: bA, getFont: Dn, getFontSize: _e, getCharSpace: Pi, getTextColor: ta, getLineHeight: Mo, getLineHeightFactor: Js, getLineWidth: zs, write: Ie, getHorizontalCoordinate: Ra, getVerticalCoordinate: vn, getCoordinateString: Bs, getVerticalCoordinateString: Zs, collections: {}, newObject: CA, newAdditionalObject: Dr, newObjectDeferred: MA, newObjectDeferredBegin: OA, getFilters: ZA, putStream: Lr, events: xt, scaleFactor: St, pageSize: { getWidth: function() {
return Pa(L);
}, setWidth: function(v) {
ro(L, v);
}, getHeight: function() {
return ua(L);
}, setHeight: function(v) {
no(L, v);
} }, encryptionOptions: u, encryption: aA, getEncryptor: function(v) {
return u !== null ? aA.encryptor(v, 0) : function(T) {
return T;
};
}, output: FA, getNumberOfPages: ft, get pages() {
return qe;
}, out: D, f2: S, f3: U, getPageInfo: An, getPageInfoByObjId: Tn, getCurrentPageInfo: ea, getPDFVersion: m, Point: Aa, Rectangle: ii, Matrix: Lt, hasHotfix: IA }, Object.defineProperty(c.internal.pageSize, "width", { get: function() {
return Pa(L);
}, set: function(v) {
ro(L, v);
}, enumerable: !0, configurable: !0 }), Object.defineProperty(c.internal.pageSize, "height", { get: function() {
return ua(L);
}, set: function(v) {
no(L, v);
}, enumerable: !0, configurable: !0 }), (function(v) {
for (var T = 0, ne = ve.length; T < ne; T++) {
var we = Fe.call(this, v[T][0], v[T][1], v[T][2], ve[T][3], !0);
h === !1 && (g[we] = !0);
var De = v[T][0].split("-");
Be({ id: we, fontName: De[0], fontStyle: De[1] || "" });
}
xt.publish("addFonts", { fonts: Ot, dictionary: Pt });
}).call(c, ve), Bt = "F1", Me(n, e), xt.publish("initialized"), c;
}
mo.prototype.lsbFirstWord = function(r) {
return String.fromCharCode(255 & r, r >> 8 & 255, r >> 16 & 255, r >> 24 & 255);
}, mo.prototype.toHexString = function(r) {
return r.split("").map(function(t) {
return ("0" + (255 & t.charCodeAt(0)).toString(16)).slice(-2);
}).join("");
}, mo.prototype.hexToBytes = function(r) {
for (var t = [], e = 0; e < r.length; e += 2) t.push(String.fromCharCode(parseInt(r.substr(e, 2), 16)));
return t.join("");
}, mo.prototype.processOwnerPassword = function(r, t) {
return op(sp(t).substr(0, 5), r);
}, mo.prototype.encryptor = function(r, t) {
var e = sp(this.encryptionKey + String.fromCharCode(255 & r, r >> 8 & 255, r >> 16 & 255, 255 & t, t >> 8 & 255)).substr(0, 10);
return function(A) {
return op(e, A);
};
}, fc.prototype.equals = function(r) {
var t, e = "id,objectNumber,equals";
if (!r || jA(r) !== jA(this)) return !1;
var A = 0;
for (t in this) if (!(e.indexOf(t) >= 0)) {
if (this.hasOwnProperty(t) && !r.hasOwnProperty(t) || this[t] !== r[t]) return !1;
A++;
}
for (t in r) r.hasOwnProperty(t) && e.indexOf(t) < 0 && A--;
return A === 0;
}, eA.API = { events: [] }, eA.version = "3.0.4";
var Or = eA.API, ev = 1, js = function(r) {
return r.replace(/\\/g, "\\\\").replace(/\(/g, "\\(").replace(/\)/g, "\\)");
}, lo = function(r) {
return r.replace(/\\\\/g, "\\").replace(/\\\(/g, "(").replace(/\\\)/g, ")");
}, pA = function(r) {
return r.toFixed(2);
}, rs = function(r) {
return r.toFixed(5);
};
Or.__acroform__ = {};
var sa = function(r, t) {
r.prototype = Object.create(t.prototype), r.prototype.constructor = r;
}, T1 = function(r) {
return r * ev;
}, fi = function(r) {
var t = new S5(), e = Wt.internal.getHeight(r) || 0, A = Wt.internal.getWidth(r) || 0;
return t.BBox = [0, 0, Number(pA(A)), Number(pA(e))], t;
}, uD = Or.__acroform__.setBit = function(r, t) {
if (r = r || 0, t = t || 0, isNaN(r) || isNaN(t)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.setBit");
return r | 1 << t;
}, cD = Or.__acroform__.clearBit = function(r, t) {
if (r = r || 0, t = t || 0, isNaN(r) || isNaN(t)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.clearBit");
return r & ~(1 << t);
}, fD = Or.__acroform__.getBit = function(r, t) {
if (isNaN(r) || isNaN(t)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.getBit");
return r & 1 << t ? 1 : 0;
}, Yr = Or.__acroform__.getBitForPdf = function(r, t) {
if (isNaN(r) || isNaN(t)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf");
return fD(r, t - 1);
}, $r = Or.__acroform__.setBitForPdf = function(r, t) {
if (isNaN(r) || isNaN(t)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf");
return uD(r, t - 1);
}, zr = Or.__acroform__.clearBitForPdf = function(r, t) {
if (isNaN(r) || isNaN(t)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf");
return cD(r, t - 1);
}, hD = Or.__acroform__.calculateCoordinates = function(r, t) {
var e = t.internal.getHorizontalCoordinate, A = t.internal.getVerticalCoordinate, n = r[0], a = r[1], s = r[2], i = r[3], o = {};
return o.lowerLeft_X = e(n) || 0, o.lowerLeft_Y = A(a + i) || 0, o.upperRight_X = e(n + s) || 0, o.upperRight_Y = A(a) || 0, [Number(pA(o.lowerLeft_X)), Number(pA(o.lowerLeft_Y)), Number(pA(o.upperRight_X)), Number(pA(o.upperRight_Y))];
}, dD = function(r) {
if (r.appearanceStreamContent) return r.appearanceStreamContent;
if (r.V || r.DV) {
var t = [], e = r._V || r.DV, A = lp(r, e), n = r.scope.internal.getFont(r.fontName, r.fontStyle).id;
t.push("/Tx BMC"), t.push("q"), t.push("BT"), t.push(r.scope.__private__.encodeColorString(r.color)), t.push("/" + n + " " + pA(A.fontSize) + " Tf"), t.push("1 0 0 1 0 0 Tm"), t.push(A.text), t.push("ET"), t.push("Q"), t.push("EMC");
var a = fi(r);
return a.scope = r.scope, a.stream = t.join(`
`), a;
}
}, lp = function(r, t) {
var e = r.fontSize === 0 ? r.maxFontSize : r.fontSize, A = { text: "", fontSize: "" }, n = (t = (t = t.substr(0, 1) == "(" ? t.substr(1) : t).substr(t.length - 1) == ")" ? t.substr(0, t.length - 1) : t).split(" ");
n = r.multiline ? n.map(function(S) {
return S.split(`
`);
}) : n.map(function(S) {
return [S];
});
var a = e, s = Wt.internal.getHeight(r) || 0;
s = s < 0 ? -s : s;
var i = Wt.internal.getWidth(r) || 0;
i = i < 0 ? -i : i;
var o = function(S, U, W) {
if (S + 1 < n.length) {
var I = U + " " + n[S + 1][0];
return gu(I, r, W).width <= i - 4;
}
return !1;
};
a++;
e: for (; a > 0; ) {
t = "", a--;
var l, u, h = gu("3", r, a).height, g = r.multiline ? s - a : (s - h) / 2, c = g += 2, p = 0, m = 0, y = 0;
if (a <= 0) {
t = `(...) Tj
`, t += "% Width of Text: " + gu(t, r, a = 12).width + ", FieldWidth:" + i + `
`;
break;
}
for (var w = "", E = 0, C = 0; C < n.length; C++) if (n.hasOwnProperty(C)) {
var F = !1;
if (n[C].length !== 1 && y !== n[C].length - 1) {
if ((h + 2) * (E + 2) + 2 > s) continue e;
w += n[C][y], F = !0, m = C, C--;
} else {
w = (w += n[C][y] + " ").substr(w.length - 1) == " " ? w.substr(0, w.length - 1) : w;
var H = parseInt(C), q = o(H, w, a), N = C >= n.length - 1;
if (q && !N) {
w += " ", y = 0;
continue;
}
if (q || N) {
if (N) m = H;
else if (r.multiline && (h + 2) * (E + 2) + 2 > s) continue e;
} else {
if (!r.multiline || (h + 2) * (E + 2) + 2 > s) continue e;
m = H;
}
}
for (var M = "", k = p; k <= m; k++) {
var O = n[k];
if (r.multiline) {
if (k === m) {
M += O[y] + " ", y = (y + 1) % O.length;
continue;
}
if (k === p) {
M += O[O.length - 1] + " ";
continue;
}
}
M += O[0] + " ";
}
switch (M = M.substr(M.length - 1) == " " ? M.substr(0, M.length - 1) : M, u = gu(M, r, a).width, r.textAlign) {
case "right":
l = i - u - 2;
break;
case "center":
l = (i - u) / 2;
break;
default:
l = 2;
}
t += pA(l) + " " + pA(c) + ` Td
`, t += "(" + js(M) + `) Tj
`, t += -pA(l) + ` 0 Td
`, c = -(a + 2), u = 0, p = F ? m : m + 1, E++, w = "";
}
break;
}
return A.text = t, A.fontSize = a, A;
}, gu = function(r, t, e) {
var A = t.scope.internal.getFont(t.fontName, t.fontStyle), n = t.scope.getStringUnitWidth(r, { font: A, fontSize: parseFloat(e), charSpace: 0 }) * parseFloat(e);
return { height: t.scope.getStringUnitWidth("3", { font: A, fontSize: parseFloat(e), charSpace: 0 }) * parseFloat(e) * 1.5, width: n };
}, gD = { fields: [], xForms: [], acroFormDictionaryRoot: null, printedOut: !1, internal: null, isInitialized: !1 }, pD = function(r, t) {
var e = { type: "reference", object: r };
t.internal.getPageInfo(r.page).pageContext.annotations.find(function(A) {
return A.type === e.type && A.object === e.object;
}) === void 0 && t.internal.getPageInfo(r.page).pageContext.annotations.push(e);
}, vD = function(r, t) {
if (t.scope = r, r.internal !== void 0 && (r.internal.acroformPlugin === void 0 || r.internal.acroformPlugin.isInitialized === !1)) {
if (Ja.FieldNum = 0, r.internal.acroformPlugin = JSON.parse(JSON.stringify(gD)), r.internal.acroformPlugin.acroFormDictionaryRoot) throw new Error("Exception while creating AcroformDictionary");
ev = r.internal.scaleFactor, r.internal.acroformPlugin.acroFormDictionaryRoot = new U5(), r.internal.acroformPlugin.acroFormDictionaryRoot.scope = r, r.internal.acroformPlugin.acroFormDictionaryRoot._eventID = r.internal.events.subscribe("postPutResources", function() {
(function(e) {
e.internal.events.unsubscribe(e.internal.acroformPlugin.acroFormDictionaryRoot._eventID), delete e.internal.acroformPlugin.acroFormDictionaryRoot._eventID, e.internal.acroformPlugin.printedOut = !0;
})(r);
}), r.internal.events.subscribe("buildDocument", function() {
(function(e) {
e.internal.acroformPlugin.acroFormDictionaryRoot.objId = void 0;
var A = e.internal.acroformPlugin.acroFormDictionaryRoot.Fields;
for (var n in A) if (A.hasOwnProperty(n)) {
var a = A[n];
a.objId = void 0, a.hasAnnotation && pD(a, e);
}
})(r);
}), r.internal.events.subscribe("putCatalog", function() {
(function(e) {
if (e.internal.acroformPlugin.acroFormDictionaryRoot === void 0) throw new Error("putCatalogCallback: Root missing.");
e.internal.write("/AcroForm " + e.internal.acroformPlugin.acroFormDictionaryRoot.objId + " 0 R");
})(r);
}), r.internal.events.subscribe("postPutPages", function(e) {
(function(A, n) {
var a = !A;
for (var s in A || (n.internal.newObjectDeferredBegin(n.internal.acroformPlugin.acroFormDictionaryRoot.objId, !0), n.internal.acroformPlugin.acroFormDictionaryRoot.putStream()), A = A || n.internal.acroformPlugin.acroFormDictionaryRoot.Kids) if (A.hasOwnProperty(s)) {
var i = A[s], o = [], l = i.Rect;
if (i.Rect && (i.Rect = hD(i.Rect, n)), n.internal.newObjectDeferredBegin(i.objId, !0), i.DA = Wt.createDefaultAppearanceStream(i), jA(i) === "object" && typeof i.getKeyValueListForStream == "function" && (o = i.getKeyValueListForStream()), i.Rect = l, i.hasAppearanceStream && !i.appearanceStreamContent) {
var u = dD(i);
o.push({ key: "AP", value: "<</N " + u + ">>" }), n.internal.acroformPlugin.xForms.push(u);
}
if (i.appearanceStreamContent) {
var h = "";
for (var g in i.appearanceStreamContent) if (i.appearanceStreamContent.hasOwnProperty(g)) {
var c = i.appearanceStreamContent[g];
if (h += "/" + g + " ", h += "<<", Object.keys(c).length >= 1 || Array.isArray(c)) {
for (var s in c) if (c.hasOwnProperty(s)) {
var p = c[s];
typeof p == "function" && (p = p.call(n, i)), h += "/" + s + " " + p + " ", n.internal.acroformPlugin.xForms.indexOf(p) >= 0 || n.internal.acroformPlugin.xForms.push(p);
}
} else typeof (p = c) == "function" && (p = p.call(n, i)), h += "/" + s + " " + p, n.internal.acroformPlugin.xForms.indexOf(p) >= 0 || n.internal.acroformPlugin.xForms.push(p);
h += ">>";
}
o.push({ key: "AP", value: `<<
` + h + ">>" });
}
n.internal.putStream({ additionalKeyValues: o, objectId: i.objId }), n.internal.out("endobj");
}
a && (function(m, y) {
for (var w in m) if (m.hasOwnProperty(w)) {
var E = w, C = m[w];
y.internal.newObjectDeferredBegin(C.objId, !0), jA(C) === "object" && typeof C.putStream == "function" && C.putStream(), delete m[E];
}
})(n.internal.acroformPlugin.xForms, n);
})(e, r);
}), r.internal.acroformPlugin.isInitialized = !0;
}
}, x5 = Or.__acroform__.arrayToPdfArray = function(r, t, e) {
var A = function(s) {
return s;
};
if (Array.isArray(r)) {
for (var n = "[", a = 0; a < r.length; a++) switch (a !== 0 && (n += " "), jA(r[a])) {
case "boolean":
case "number":
case "object":
n += r[a].toString();
break;
case "string":
r[a].substr(0, 1) !== "/" ? (t !== void 0 && e && (A = e.internal.getEncryptor(t)), n += "(" + js(A(r[a].toString())) + ")") : n += r[a].toString();
}
return n + "]";
}
throw new Error("Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray");
}, Mf = function(r, t, e) {
var A = function(n) {
return n;
};
return t !== void 0 && e && (A = e.internal.getEncryptor(t)), (r = r || "").toString(), "(" + js(A(r)) + ")";
}, hi = 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(r) {
this._objId = r;
} }), Object.defineProperty(this, "scope", { value: this._scope, writable: !0 });
};
hi.prototype.toString = function() {
return this.objId + " 0 R";
}, hi.prototype.putStream = function() {
var r = this.getKeyValueListForStream();
this.scope.internal.putStream({ data: this.stream, additionalKeyValues: r, objectId: this.objId }), this.scope.internal.out("endobj");
}, hi.prototype.getKeyValueListForStream = function() {
var r = [], t = Object.getOwnPropertyNames(this).filter(function(a) {
return a != "content" && a != "appearanceStreamContent" && a != "scope" && a != "objId" && a.substring(0, 1) != "_";
});
for (var e in t) if (Object.getOwnPropertyDescriptor(this, t[e]).configurable === !1) {
var A = t[e], n = this[A];
n && (Array.isArray(n) ? r.push({ key: A, value: x5(n, this.objId, this.scope) }) : n instanceof hi ? (n.scope = this.scope, r.push({ key: A, value: n.objId + " 0 R" })) : typeof n != "function" && r.push({ key: A, value: n }));
}
return r;
};
var S5 = function() {
hi.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 r, t = [];
Object.defineProperty(this, "BBox", { configurable: !1, get: function() {
return t;
}, set: function(e) {
t = e;
} }), Object.defineProperty(this, "Resources", { value: "2 0 R", configurable: !1, writable: !0 }), Object.defineProperty(this, "stream", { enumerable: !1, configurable: !0, set: function(e) {
r = e.trim();
}, get: function() {
return r || null;
} });
};
sa(S5, hi);
var U5 = function() {
hi.call(this);
var r, t = [];
Object.defineProperty(this, "Kids", { enumerable: !1, configurable: !0, get: function() {
return t.length > 0 ? t : void 0;
} }), Object.defineProperty(this, "Fields", { enumerable: !1, configurable: !1, get: function() {
return t;
} }), Object.defineProperty(this, "DA", { enumerable: !1, configurable: !1, get: function() {
if (r) {
var e = function(A) {
return A;
};
return this.scope && (e = this.scope.internal.getEncryptor(this.objId)), "(" + js(e(r)) + ")";
}
}, set: function(e) {
r = e;
} });
};
sa(U5, hi);
var Ja = function r() {
hi.call(this);
var t = 4;
Object.defineProperty(this, "F", { enumerable: !1, configurable: !1, get: function() {
return t;
}, set: function(w) {
if (isNaN(w)) throw new Error('Invalid value "' + w + '" for attribute F supplied.');
t = w;
} }), Object.defineProperty(this, "showWhenPrinted", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(t, 3);
}, set: function(w) {
w ? this.F = $r(t, 3) : this.F = zr(t, 3);
} });
var e = 0;
Object.defineProperty(this, "Ff", { enumerable: !1, configurable: !1, get: function() {
return e;
}, set: function(w) {
if (isNaN(w)) throw new Error('Invalid value "' + w + '" for attribute Ff supplied.');
e = w;
} });
var A = [];
Object.defineProperty(this, "Rect", { enumerable: !1, configurable: !1, get: function() {
if (A.length !== 0) return A;
}, set: function(w) {
A = w !== void 0 ? w : [];
} }), Object.defineProperty(this, "x", { enumerable: !0, configurable: !0, get: function() {
return !A || isNaN(A[0]) ? 0 : A[0];
}, set: function(w) {
A[0] = w;
} }), Object.defineProperty(this, "y", { enumerable: !0, configurable: !0, get: function() {
return !A || isNaN(A[1]) ? 0 : A[1];
}, set: function(w) {
A[1] = w;
} }), Object.defineProperty(this, "width", { enumerable: !0, configurable: !0, get: function() {
return !A || isNaN(A[2]) ? 0 : A[2];
}, set: function(w) {
A[2] = w;
} }), Object.defineProperty(this, "height", { enumerable: !0, configurable: !0, get: function() {
return !A || isNaN(A[3]) ? 0 : A[3];
}, set: function(w) {
A[3] = w;
} });
var n = "";
Object.defineProperty(this, "FT", { enumerable: !0, configurable: !1, get: function() {
return n;
}, set: function(w) {
switch (w) {
case "/Btn":
case "/Tx":
case "/Ch":
case "/Sig":
n = w;
break;
default:
throw new Error('Invalid value "' + w + '" for attribute FT supplied.');
}
} });
var a = null;
Object.defineProperty(this, "T", { enumerable: !0, configurable: !1, get: function() {
if (!a || a.length < 1) {
if (this instanceof hc) return;
a = "FieldObject" + r.FieldNum++;
}
var w = function(E) {
return E;
};
return this.scope && (w = this.scope.internal.getEncryptor(this.objId)), "(" + js(w(a)) + ")";
}, set: function(w) {
a = w.toString();
} }), Object.defineProperty(this, "fieldName", { configurable: !0, enumerable: !0, get: function() {
return a;
}, set: function(w) {
a = w;
} });
var s = "helvetica";
Object.defineProperty(this, "fontName", { enumerable: !0, configurable: !0, get: function() {
return s;
}, set: function(w) {
s = w;
} });
var i = "normal";
Object.defineProperty(this, "fontStyle", { enumerable: !0, configurable: !0, get: function() {
return i;
}, set: function(w) {
i = w;
} });
var o = 0;
Object.defineProperty(this, "fontSize", { enumerable: !0, configurable: !0, get: function() {
return o;
}, set: function(w) {
o = w;
} });
var l = void 0;
Object.defineProperty(this, "maxFontSize", { enumerable: !0, configurable: !0, get: function() {
return l === void 0 ? 50 / ev : l;
}, set: function(w) {
l = w;
} });
var u = "black";
Object.defineProperty(this, "color", { enumerable: !0, configurable: !0, get: function() {
return u;
}, set: function(w) {
u = w;
} });
var h = "/F1 0 Tf 0 g";
Object.defineProperty(this, "DA", { enumerable: !0, configurable: !1, get: function() {
if (!(!h || this instanceof hc || this instanceof Os)) return Mf(h, this.objId, this.scope);
}, set: function(w) {
w = w.toString(), h = w;
} });
var g = null;
Object.defineProperty(this, "DV", { enumerable: !1, configurable: !1, get: function() {
if (g) return this instanceof hn == 0 ? Mf(g, this.objId, this.scope) : g;
}, set: function(w) {
w = w.toString(), g = this instanceof hn == 0 ? w.substr(0, 1) === "(" ? lo(w.substr(1, w.length - 2)) : lo(w) : w;
} }), Object.defineProperty(this, "defaultValue", { enumerable: !0, configurable: !0, get: function() {
return this instanceof hn == 1 ? lo(g.substr(1, g.length - 1)) : g;
}, set: function(w) {
w = w.toString(), g = this instanceof hn == 1 ? "/" + w : w;
} });
var c = null;
Object.defineProperty(this, "_V", { enumerable: !1, configurable: !1, get: function() {
if (c) return c;
}, set: function(w) {
this.V = w;
} }), Object.defineProperty(this, "V", { enumerable: !1, configurable: !1, get: function() {
if (c) return this instanceof hn == 0 ? Mf(c, this.objId, this.scope) : c;
}, set: function(w) {
w = w.toString(), c = this instanceof hn == 0 ? w.substr(0, 1) === "(" ? lo(w.substr(1, w.length - 2)) : lo(w) : w;
} }), Object.defineProperty(this, "value", { enumerable: !0, configurable: !0, get: function() {
return this instanceof hn == 1 ? lo(c.substr(1, c.length - 1)) : c;
}, set: function(w) {
w = w.toString(), c = this instanceof hn == 1 ? "/" + w : w;
} }), 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 p, m = !1;
Object.defineProperty(this, "hasAppearanceStream", { enumerable: !0, configurable: !0, get: function() {
return m;
}, set: function(w) {
w = !!w, m = w;
} }), Object.defineProperty(this, "page", { enumerable: !0, configurable: !0, get: function() {
if (p) return p;
}, set: function(w) {
p = w;
} }), Object.defineProperty(this, "readOnly", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 1);
}, set: function(w) {
w ? this.Ff = $r(this.Ff, 1) : this.Ff = zr(this.Ff, 1);
} }), Object.defineProperty(this, "required", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 2);
}, set: function(w) {
w ? this.Ff = $r(this.Ff, 2) : this.Ff = zr(this.Ff, 2);
} }), Object.defineProperty(this, "noExport", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 3);
}, set: function(w) {
w ? this.Ff = $r(this.Ff, 3) : this.Ff = zr(this.Ff, 3);
} });
var y = null;
Object.defineProperty(this, "Q", { enumerable: !0, configurable: !1, get: function() {
if (y !== null) return y;
}, set: function(w) {
if ([0, 1, 2].indexOf(w) === -1) throw new Error('Invalid value "' + w + '" for attribute Q supplied.');
y = w;
} }), Object.defineProperty(this, "textAlign", { get: function() {
var w;
switch (y) {
case 0:
default:
w = "left";
break;
case 1:
w = "center";
break;
case 2:
w = "right";
}
return w;
}, configurable: !0, enumerable: !0, set: function(w) {
switch (w) {
case "right":
case 2:
y = 2;
break;
case "center":
case 1:
y = 1;
break;
default:
y = 0;
}
} });
};
sa(Ja, hi);
var Eo = function() {
Ja.call(this), this.FT = "/Ch", this.V = "()", this.fontName = "zapfdingbats";
var r = 0;
Object.defineProperty(this, "TI", { enumerable: !0, configurable: !1, get: function() {
return r;
}, set: function(e) {
r = e;
} }), Object.defineProperty(this, "topIndex", { enumerable: !0, configurable: !0, get: function() {
return r;
}, set: function(e) {
r = e;
} });
var t = [];
Object.defineProperty(this, "Opt", { enumerable: !0, configurable: !1, get: function() {
return x5(t, this.objId, this.scope);
}, set: function(e) {
var A, n;
n = [], typeof (A = e) == "string" && (n = (function(a, s, i) {
i || (i = 1);
for (var o, l = []; o = s.exec(a); ) l.push(o[i]);
return l;
})(A, /\((.*?)\)/g)), t = n;
} }), this.getOptions = function() {
return t;
}, this.setOptions = function(e) {
t = e, this.sort && t.sort();
}, this.addOption = function(e) {
e = (e = e || "").toString(), t.push(e), this.sort && t.sort();
}, this.removeOption = function(e, A) {
for (A = A || !1, e = (e = e || "").toString(); t.indexOf(e) !== -1 && (t.splice(t.indexOf(e), 1), A !== !1); ) ;
}, Object.defineProperty(this, "combo", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 18);
}, set: function(e) {
e ? this.Ff = $r(this.Ff, 18) : this.Ff = zr(this.Ff, 18);
} }), Object.defineProperty(this, "edit", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 19);
}, set: function(e) {
this.combo === !0 && (e ? this.Ff = $r(this.Ff, 19) : this.Ff = zr(this.Ff, 19));
} }), Object.defineProperty(this, "sort", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 20);
}, set: function(e) {
e ? (this.Ff = $r(this.Ff, 20), t.sort()) : this.Ff = zr(this.Ff, 20);
} }), Object.defineProperty(this, "multiSelect", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 22);
}, set: function(e) {
e ? this.Ff = $r(this.Ff, 22) : this.Ff = zr(this.Ff, 22);
} }), Object.defineProperty(this, "doNotSpellCheck", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 23);
}, set: function(e) {
e ? this.Ff = $r(this.Ff, 23) : this.Ff = zr(this.Ff, 23);
} }), Object.defineProperty(this, "commitOnSelChange", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 27);
}, set: function(e) {
e ? this.Ff = $r(this.Ff, 27) : this.Ff = zr(this.Ff, 27);
} }), this.hasAppearanceStream = !1;
};
sa(Eo, Ja);
var Fo = function() {
Eo.call(this), this.fontName = "helvetica", this.combo = !1;
};
sa(Fo, Eo);
var xo = function() {
Fo.call(this), this.combo = !0;
};
sa(xo, Fo);
var Xu = function() {
xo.call(this), this.edit = !0;
};
sa(Xu, xo);
var hn = function() {
Ja.call(this), this.FT = "/Btn", Object.defineProperty(this, "noToggleToOff", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 15);
}, set: function(e) {
e ? this.Ff = $r(this.Ff, 15) : this.Ff = zr(this.Ff, 15);
} }), Object.defineProperty(this, "radio", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 16);
}, set: function(e) {
e ? this.Ff = $r(this.Ff, 16) : this.Ff = zr(this.Ff, 16);
} }), Object.defineProperty(this, "pushButton", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 17);
}, set: function(e) {
e ? this.Ff = $r(this.Ff, 17) : this.Ff = zr(this.Ff, 17);
} }), Object.defineProperty(this, "radioIsUnison", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 26);
}, set: function(e) {
e ? this.Ff = $r(this.Ff, 26) : this.Ff = zr(this.Ff, 26);
} });
var r, t = {};
Object.defineProperty(this, "MK", { enumerable: !1, configurable: !1, get: function() {
var e = function(a) {
return a;
};
if (this.scope && (e = this.scope.internal.getEncryptor(this.objId)), Object.keys(t).length !== 0) {
var A, n = [];
for (A in n.push("<<"), t) n.push("/" + A + " (" + js(e(t[A])) + ")");
return n.push(">>"), n.join(`
`);
}
}, set: function(e) {
jA(e) === "object" && (t = e);
} }), Object.defineProperty(this, "caption", { enumerable: !0, configurable: !0, get: function() {
return t.CA || "";
}, set: function(e) {
typeof e == "string" && (t.CA = e);
} }), Object.defineProperty(this, "AS", { enumerable: !1, configurable: !1, get: function() {
return r;
}, set: function(e) {
r = e;
} }), Object.defineProperty(this, "appearanceState", { enumerable: !0, configurable: !0, get: function() {
return r.substr(1, r.length - 1);
}, set: function(e) {
r = "/" + e;
} });
};
sa(hn, Ja);
var Ju = function() {
hn.call(this), this.pushButton = !0;
};
sa(Ju, hn);
var So = function() {
hn.call(this), this.radio = !0, this.pushButton = !1;
var r = [];
Object.defineProperty(this, "Kids", { enumerable: !0, configurable: !1, get: function() {
return r;
}, set: function(t) {
r = t !== void 0 ? t : [];
} });
};
sa(So, hn);
var hc = function() {
var r, t;
Ja.call(this), Object.defineProperty(this, "Parent", { enumerable: !1, configurable: !1, get: function() {
return r;
}, set: function(n) {
r = n;
} }), Object.defineProperty(this, "optionName", { enumerable: !1, configurable: !0, get: function() {
return t;
}, set: function(n) {
t = n;
} });
var e, A = {};
Object.defineProperty(this, "MK", { enumerable: !1, configurable: !1, get: function() {
var n = function(i) {
return i;
};
this.scope && (n = this.scope.internal.getEncryptor(this.objId));
var a, s = [];
for (a in s.push("<<"), A) s.push("/" + a + " (" + js(n(A[a])) + ")");
return s.push(">>"), s.join(`
`);
}, set: function(n) {
jA(n) === "object" && (A = n);
} }), Object.defineProperty(this, "caption", { enumerable: !0, configurable: !0, get: function() {
return A.CA || "";
}, set: function(n) {
typeof n == "string" && (A.CA = n);
} }), Object.defineProperty(this, "AS", { enumerable: !1, configurable: !1, get: function() {
return e;
}, set: function(n) {
e = n;
} }), Object.defineProperty(this, "appearanceState", { enumerable: !0, configurable: !0, get: function() {
return e.substr(1, e.length - 1);
}, set: function(n) {
e = "/" + n;
} }), this.caption = "l", this.appearanceState = "Off", this._AppearanceType = Wt.RadioButton.Circle, this.appearanceStreamContent = this._AppearanceType.createAppearanceStream(this.optionName);
};
sa(hc, Ja), So.prototype.setAppearance = function(r) {
if (!("createAppearanceStream" in r) || !("getCA" in r)) throw new Error("Couldn't assign Appearance to RadioButton. Appearance was Invalid!");
for (var t in this.Kids) if (this.Kids.hasOwnProperty(t)) {
var e = this.Kids[t];
e.appearanceStreamContent = r.createAppearanceStream(e.optionName), e.caption = r.getCA();
}
}, So.prototype.createOption = function(r) {
var t = new hc();
return t.Parent = this, t.optionName = r, this.Kids.push(t), mD.call(this.scope, t), t;
};
var Zu = function() {
hn.call(this), this.fontName = "zapfdingbats", this.caption = "3", this.appearanceState = "On", this.value = "On", this.textAlign = "center", this.appearanceStreamContent = Wt.CheckBox.createAppearanceStream();
};
sa(Zu, hn);
var Os = function() {
Ja.call(this), this.FT = "/Tx", Object.defineProperty(this, "multiline", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 13);
}, set: function(t) {
t ? this.Ff = $r(this.Ff, 13) : this.Ff = zr(this.Ff, 13);
} }), Object.defineProperty(this, "fileSelect", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 21);
}, set: function(t) {
t ? this.Ff = $r(this.Ff, 21) : this.Ff = zr(this.Ff, 21);
} }), Object.defineProperty(this, "doNotSpellCheck", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 23);
}, set: function(t) {
t ? this.Ff = $r(this.Ff, 23) : this.Ff = zr(this.Ff, 23);
} }), Object.defineProperty(this, "doNotScroll", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 24);
}, set: function(t) {
t ? this.Ff = $r(this.Ff, 24) : this.Ff = zr(this.Ff, 24);
} }), Object.defineProperty(this, "comb", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 25);
}, set: function(t) {
t ? this.Ff = $r(this.Ff, 25) : this.Ff = zr(this.Ff, 25);
} }), Object.defineProperty(this, "richText", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 26);
}, set: function(t) {
t ? this.Ff = $r(this.Ff, 26) : this.Ff = zr(this.Ff, 26);
} });
var r = null;
Object.defineProperty(this, "MaxLen", { enumerable: !0, configurable: !1, get: function() {
return r;
}, set: function(t) {
r = t;
} }), Object.defineProperty(this, "maxLength", { enumerable: !0, configurable: !0, get: function() {
return r;
}, set: function(t) {
Number.isInteger(t) && (r = t);
} }), Object.defineProperty(this, "hasAppearanceStream", { enumerable: !0, configurable: !0, get: function() {
return this.V || this.DV;
} });
};
sa(Os, Ja);
var ec = function() {
Os.call(this), Object.defineProperty(this, "password", { enumerable: !0, configurable: !0, get: function() {
return !!Yr(this.Ff, 14);
}, set: function(r) {
r ? this.Ff = $r(this.Ff, 14) : this.Ff = zr(this.Ff, 14);
} }), this.password = !0;
};
sa(ec, Os);
var Wt = { CheckBox: { createAppearanceStream: function() {
return { N: { On: Wt.CheckBox.YesNormal }, D: { On: Wt.CheckBox.YesPushDown, Off: Wt.CheckBox.OffPushDown } };
}, YesPushDown: function(r) {
var t = fi(r);
t.scope = r.scope;
var e = [], A = r.scope.internal.getFont(r.fontName, r.fontStyle).id, n = r.scope.__private__.encodeColorString(r.color), a = lp(r, r.caption);
return e.push("0.749023 g"), e.push("0 0 " + pA(Wt.internal.getWidth(r)) + " " + pA(Wt.internal.getHeight(r)) + " re"), e.push("f"), e.push("BMC"), e.push("q"), e.push("0 0 1 rg"), e.push("/" + A + " " + pA(a.fontSize) + " Tf " + n), e.push("BT"), e.push(a.text), e.push("ET"), e.push("Q"), e.push("EMC"), t.stream = e.join(`
`), t;
}, YesNormal: function(r) {
var t = fi(r);
t.scope = r.scope;
var e = r.scope.internal.getFont(r.fontName, r.fontStyle).id, A = r.scope.__private__.encodeColorString(r.color), n = [], a = Wt.internal.getHeight(r), s = Wt.internal.getWidth(r), i = lp(r, r.caption);
return n.push("1 g"), n.push("0 0 " + pA(s) + " " + pA(a) + " re"), n.push("f"), n.push("q"), n.push("0 0 1 rg"), n.push("0 0 " + pA(s - 1) + " " + pA(a - 1) + " re"), n.push("W"), n.push("n"), n.push("0 g"), n.push("BT"), n.push("/" + e + " " + pA(i.fontSize) + " Tf " + A), n.push(i.text), n.push("ET"), n.push("Q"), t.stream = n.join(`
`), t;
}, OffPushDown: function(r) {
var t = fi(r);
t.scope = r.scope;
var e = [];
return e.push("0.749023 g"), e.push("0 0 " + pA(Wt.internal.getWidth(r)) + " " + pA(Wt.internal.getHeight(r)) + " re"), e.push("f"), t.stream = e.join(`
`), t;
} }, RadioButton: { Circle: { createAppearanceStream: function(r) {
var t = { D: { Off: Wt.RadioButton.Circle.OffPushDown }, N: {} };
return t.N[r] = Wt.RadioButton.Circle.YesNormal, t.D[r] = Wt.RadioButton.Circle.YesPushDown, t;
}, getCA: function() {
return "l";
}, YesNormal: function(r) {
var t = fi(r);
t.scope = r.scope;
var e = [], A = Wt.internal.getWidth(r) <= Wt.internal.getHeight(r) ? Wt.internal.getWidth(r) / 4 : Wt.internal.getHeight(r) / 4;
A = Number((0.9 * A).toFixed(5));
var n = Wt.internal.Bezier_C, a = Number((A * n).toFixed(5));
return e.push("q"), e.push("1 0 0 1 " + rs(Wt.internal.getWidth(r) / 2) + " " + rs(Wt.internal.getHeight(r) / 2) + " cm"), e.push(A + " 0 m"), e.push(A + " " + a + " " + a + " " + A + " 0 " + A + " c"), e.push("-" + a + " " + A + " -" + A + " " + a + " -" + A + " 0 c"), e.push("-" + A + " -" + a + " -" + a + " -" + A + " 0 -" + A + " c"), e.push(a + " -" + A + " " + A + " -" + a + " " + A + " 0 c"), e.push("f"), e.push("Q"), t.stream = e.join(`
`), t;
}, YesPushDown: function(r) {
var t = fi(r);
t.scope = r.scope;
var e = [], A = Wt.internal.getWidth(r) <= Wt.internal.getHeight(r) ? Wt.internal.getWidth(r) / 4 : Wt.internal.getHeight(r) / 4;
A = Number((0.9 * A).toFixed(5));
var n = Number((2 * A).toFixed(5)), a = Number((n * Wt.internal.Bezier_C).toFixed(5)), s = Number((A * Wt.internal.Bezier_C).toFixed(5));
return e.push("0.749023 g"), e.push("q"), e.push("1 0 0 1 " + rs(Wt.internal.getWidth(r) / 2) + " " + rs(Wt.internal.getHeight(r) / 2) + " cm"), e.push(n + " 0 m"), e.push(n + " " + a + " " + a + " " + n + " 0 " + n + " c"), e.push("-" + a + " " + n + " -" + n + " " + a + " -" + n + " 0 c"), e.push("-" + n + " -" + a + " -" + a + " -" + n + " 0 -" + n + " c"), e.push(a + " -" + n + " " + n + " -" + a + " " + n + " 0 c"), e.push("f"), e.push("Q"), e.push("0 g"), e.push("q"), e.push("1 0 0 1 " + rs(Wt.internal.getWidth(r) / 2) + " " + rs(Wt.internal.getHeight(r) / 2) + " cm"), e.push(A + " 0 m"), e.push(A + " " + s + " " + s + " " + A + " 0 " + A + " c"), e.push("-" + s + " " + A + " -" + A + " " + s + " -" + A + " 0 c"), e.push("-" + A + " -" + s + " -" + s + " -" + A + " 0 -" + A + " c"), e.push(s + " -" + A + " " + A + " -" + s + " " + A + " 0 c"), e.push("f"), e.push("Q"), t.stream = e.join(`
`), t;
}, OffPushDown: function(r) {
var t = fi(r);
t.scope = r.scope;
var e = [], A = Wt.internal.getWidth(r) <= Wt.internal.getHeight(r) ? Wt.internal.getWidth(r) / 4 : Wt.internal.getHeight(r) / 4;
A = Number((0.9 * A).toFixed(5));
var n = Number((2 * A).toFixed(5)), a = Number((n * Wt.internal.Bezier_C).toFixed(5));
return e.push("0.749023 g"), e.push("q"), e.push("1 0 0 1 " + rs(Wt.internal.getWidth(r) / 2) + " " + rs(Wt.internal.getHeight(r) / 2) + " cm"), e.push(n + " 0 m"), e.push(n + " " + a + " " + a + " " + n + " 0 " + n + " c"), e.push("-" + a + " " + n + " -" + n + " " + a + " -" + n + " 0 c"), e.push("-" + n + " -" + a + " -" + a + " -" + n + " 0 -" + n + " c"), e.push(a + " -" + n + " " + n + " -" + a + " " + n + " 0 c"), e.push("f"), e.push("Q"), t.stream = e.join(`
`), t;
} }, Cross: { createAppearanceStream: function(r) {
var t = { D: { Off: Wt.RadioButton.Cross.OffPushDown }, N: {} };
return t.N[r] = Wt.RadioButton.Cross.YesNormal, t.D[r] = Wt.RadioButton.Cross.YesPushDown, t;
}, getCA: function() {
return "8";
}, YesNormal: function(r) {
var t = fi(r);
t.scope = r.scope;
var e = [], A = Wt.internal.calculateCross(r);
return e.push("q"), e.push("1 1 " + pA(Wt.internal.getWidth(r) - 2) + " " + pA(Wt.internal.getHeight(r) - 2) + " re"), e.push("W"), e.push("n"), e.push(pA(A.x1.x) + " " + pA(A.x1.y) + " m"), e.push(pA(A.x2.x) + " " + pA(A.x2.y) + " l"), e.push(pA(A.x4.x) + " " + pA(A.x4.y) + " m"), e.push(pA(A.x3.x) + " " + pA(A.x3.y) + " l"), e.push("s"), e.push("Q"), t.stream = e.join(`
`), t;
}, YesPushDown: function(r) {
var t = fi(r);
t.scope = r.scope;
var e = Wt.internal.calculateCross(r), A = [];
return A.push("0.749023 g"), A.push("0 0 " + pA(Wt.internal.getWidth(r)) + " " + pA(Wt.internal.getHeight(r)) + " re"), A.push("f"), A.push("q"), A.push("1 1 " + pA(Wt.internal.getWidth(r) - 2) + " " + pA(Wt.internal.getHeight(r) - 2) + " re"), A.push("W"), A.push("n"), A.push(pA(e.x1.x) + " " + pA(e.x1.y) + " m"), A.push(pA(e.x2.x) + " " + pA(e.x2.y) + " l"), A.push(pA(e.x4.x) + " " + pA(e.x4.y) + " m"), A.push(pA(e.x3.x) + " " + pA(e.x3.y) + " l"), A.push("s"), A.push("Q"), t.stream = A.join(`
`), t;
}, OffPushDown: function(r) {
var t = fi(r);
t.scope = r.scope;
var e = [];
return e.push("0.749023 g"), e.push("0 0 " + pA(Wt.internal.getWidth(r)) + " " + pA(Wt.internal.getHeight(r)) + " re"), e.push("f"), t.stream = e.join(`
`), t;
} } }, createDefaultAppearanceStream: function(r) {
var t = r.scope.internal.getFont(r.fontName, r.fontStyle).id, e = r.scope.__private__.encodeColorString(r.color);
return "/" + t + " " + r.fontSize + " Tf " + e;
} };
Wt.internal = { Bezier_C: 0.551915024494, calculateCross: function(r) {
var t = Wt.internal.getWidth(r), e = Wt.internal.getHeight(r), A = Math.min(t, e);
return { x1: { x: (t - A) / 2, y: (e - A) / 2 + A }, x2: { x: (t - A) / 2 + A, y: (e - A) / 2 }, x3: { x: (t - A) / 2, y: (e - A) / 2 }, x4: { x: (t - A) / 2 + A, y: (e - A) / 2 + A } };
} }, Wt.internal.getWidth = function(r) {
var t = 0;
return jA(r) === "object" && (t = T1(r.Rect[2])), t;
}, Wt.internal.getHeight = function(r) {
var t = 0;
return jA(r) === "object" && (t = T1(r.Rect[3])), t;
};
var mD = Or.addField = function(r) {
if (vD(this, r), !(r instanceof Ja)) throw new Error("Invalid argument passed to jsPDF.addField.");
var t;
return (t = r).scope.internal.acroformPlugin.printedOut && (t.scope.internal.acroformPlugin.printedOut = !1, t.scope.internal.acroformPlugin.acroFormDictionaryRoot = null), t.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(t), r.page = r.scope.internal.getCurrentPageInfo().pageNumber, this;
};
Or.AcroFormChoiceField = Eo, Or.AcroFormListBox = Fo, Or.AcroFormComboBox = xo, Or.AcroFormEditBox = Xu, Or.AcroFormButton = hn, Or.AcroFormPushButton = Ju, Or.AcroFormRadioButton = So, Or.AcroFormCheckBox = Zu, Or.AcroFormTextField = Os, Or.AcroFormPasswordField = ec, Or.AcroFormAppearance = Wt, Or.AcroForm = { ChoiceField: Eo, ListBox: Fo, ComboBox: xo, EditBox: Xu, Button: hn, PushButton: Ju, RadioButton: So, CheckBox: Zu, TextField: Os, PasswordField: ec, Appearance: Wt }, eA.AcroForm = { ChoiceField: Eo, ListBox: Fo, ComboBox: xo, EditBox: Xu, Button: hn, PushButton: Ju, RadioButton: So, CheckBox: Zu, TextField: Os, PasswordField: ec, Appearance: Wt };
eA.AcroForm;
function T5(r) {
return r.reduce(function(t, e, A) {
return t[e] = A, t;
}, {});
}
(function(r) {
var t = "addImage_";
r.__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]] }, n = r.__addimage__.getImageFileTypeByImageData = function(S, U) {
var W, I, le, ue, Z, ee = e;
if ((U = U || e) === "RGBA" || S.data !== void 0 && S.data instanceof Uint8ClampedArray && "height" in S && "width" in S) return "RGBA";
if (q(S)) for (Z in A) for (le = A[Z], W = 0; W < le.length; W += 1) {
for (ue = !0, I = 0; I < le[W].length; I += 1) if (le[W][I] !== void 0 && le[W][I] !== S[I]) {
ue = !1;
break;
}
if (ue === !0) {
ee = Z;
break;
}
}
else for (Z in A) for (le = A[Z], W = 0; W < le.length; W += 1) {
for (ue = !0, I = 0; I < le[W].length; I += 1) if (le[W][I] !== void 0 && le[W][I] !== S.charCodeAt(I)) {
ue = !1;
break;
}
if (ue === !0) {
ee = Z;
break;
}
}
return ee === e && U !== e && (ee = U), ee;
}, a = function S(U) {
for (var W = this.internal.write, I = this.internal.putStream, le = (0, this.internal.getFilters)(); le.indexOf("FlateEncode") !== -1; ) le.splice(le.indexOf("FlateEncode"), 1);
U.objectId = this.internal.newObject();
var ue = [];
if (ue.push({ key: "Type", value: "/XObject" }), ue.push({ key: "Subtype", value: "/Image" }), ue.push({ key: "Width", value: U.width }), ue.push({ key: "Height", value: U.height }), U.colorSpace === w.INDEXED ? ue.push({ key: "ColorSpace", value: "[/Indexed /DeviceRGB " + (U.palette.length / 3 - 1) + " " + ("sMask" in U && U.sMask !== void 0 ? U.objectId + 2 : U.objectId + 1) + " 0 R]" }) : (ue.push({ key: "ColorSpace", value: "/" + U.colorSpace }), U.colorSpace === w.DEVICE_CMYK && ue.push({ key: "Decode", value: "[1 0 1 0 1 0 1 0]" })), ue.push({ key: "BitsPerComponent", value: U.bitsPerComponent }), "decodeParameters" in U && U.decodeParameters !== void 0 && ue.push({ key: "DecodeParms", value: "<<" + U.decodeParameters + ">>" }), "transparency" in U && Array.isArray(U.transparency) && U.transparency.length > 0) {
for (var Z = "", ee = 0, X = U.transparency.length; ee < X; ee++) Z += U.transparency[ee] + " " + U.transparency[ee] + " ";
ue.push({ key: "Mask", value: "[" + Z + "]" });
}
U.sMask !== void 0 && ue.push({ key: "SMask", value: U.objectId + 1 + " 0 R" });
var Ae = U.filter !== void 0 ? ["/" + U.filter] : void 0;
if (I({ data: U.data, additionalKeyValues: ue, alreadyAppliedFilters: Ae, objectId: U.objectId }), W("endobj"), "sMask" in U && U.sMask !== void 0) {
var oe, x = (oe = U.sMaskBitsPerComponent) !== null && oe !== void 0 ? oe : U.bitsPerComponent, L = { width: U.width, height: U.height, colorSpace: "DeviceGray", bitsPerComponent: x, data: U.sMask };
"filter" in U && (L.decodeParameters = "/Predictor ".concat(U.predictor, " /Colors 1 /BitsPerComponent ").concat(x, " /Columns ").concat(U.width), L.filter = U.filter), S.call(this, L);
}
if (U.colorSpace === w.INDEXED) {
var j = this.internal.newObject();
I({ data: M(new Uint8Array(U.palette)), objectId: j }), W("endobj");
}
}, s = function() {
var S = this.internal.collections[t + "images"];
for (var U in S) a.call(this, S[U]);
}, i = function() {
var S, U = this.internal.collections[t + "images"], W = this.internal.write;
for (var I in U) W("/I" + (S = U[I]).index, S.objectId, "0", "R");
}, o = function() {
this.internal.collections[t + "images"] || (this.internal.collections[t + "images"] = {}, this.internal.events.subscribe("putResources", s), this.internal.events.subscribe("putXobjectDict", i));
}, l = function() {
var S = this.internal.collections[t + "images"];
return o.call(this), S;
}, u = function() {
return Object.keys(this.internal.collections[t + "images"]).length;
}, h = function(S) {
return typeof r["process" + S.toUpperCase()] == "function";
}, g = function(S) {
return jA(S) === "object" && S.nodeType === 1;
}, c = function(S, U) {
if (S.nodeName === "IMG" && S.hasAttribute("src")) {
var W = "" + S.getAttribute("src");
if (W.indexOf("data:image/") === 0) return zu(unescape(W).split("base64,").pop());
var I = r.loadFile(W, !0);
if (I !== void 0) return I;
}
if (S.nodeName === "CANVAS") {
if (S.width === 0 || S.height === 0) throw new Error("Given canvas must have data. Canvas width: " + S.width + ", height: " + S.height);
var le;
switch (U) {
case "PNG":
le = "image/png";
break;
case "WEBP":
le = "image/webp";
break;
default:
le = "image/jpeg";
}
return zu(S.toDataURL(le, 1).split("base64,").pop());
}
}, p = function(S) {
var U = this.internal.collections[t + "images"];
if (U) {
for (var W in U) if (S === U[W].alias) return U[W];
}
}, m = function(S, U, W) {
return S || U || (S = -96, U = -96), S < 0 && (S = -1 * W.width * 72 / S / this.internal.scaleFactor), U < 0 && (U = -1 * W.height * 72 / U / this.internal.scaleFactor), S === 0 && (S = U * W.width / W.height), U === 0 && (U = S * W.height / W.width), [S, U];
}, y = function(S, U, W, I, le, ue) {
var Z = m.call(this, W, I, le), ee = this.internal.getCoordinateString, X = this.internal.getVerticalCoordinateString, Ae = l.call(this);
if (W = Z[0], I = Z[1], Ae[le.index] = le, ue) {
ue *= Math.PI / 180;
var oe = Math.cos(ue), x = Math.sin(ue), L = function($) {
return $.toFixed(4);
}, j = [L(oe), L(x), L(-1 * x), L(oe), 0, 0, "cm"];
}
this.internal.write("q"), ue ? (this.internal.write([1, "0", "0", 1, ee(S), X(U + I), "cm"].join(" ")), this.internal.write(j.join(" ")), this.internal.write([ee(W), "0", "0", ee(I), "0", "0", "cm"].join(" "))) : this.internal.write([ee(W), "0", "0", ee(I), ee(S), X(U + I), "cm"].join(" ")), this.isAdvancedAPI() && this.internal.write([1, 0, 0, -1, 0, 0, "cm"].join(" ")), this.internal.write("/I" + le.index + " Do"), this.internal.write("Q");
}, w = r.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" };
r.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 E = r.image_compression = { NONE: "NONE", FAST: "FAST", MEDIUM: "MEDIUM", SLOW: "SLOW" }, C = r.__addimage__.sHashCode = function(S) {
var U, W, I = 0;
if (typeof S == "string") for (W = S.length, U = 0; U < W; U++) I = (I << 5) - I + S.charCodeAt(U), I |= 0;
else if (q(S)) for (W = S.byteLength / 2, U = 0; U < W; U++) I = (I << 5) - I + S[U], I |= 0;
return I;
}, F = r.__addimage__.validateStringAsBase64 = function(S) {
(S = S || "").toString().trim();
var U = !0;
return S.length === 0 && (U = !1), S.length % 4 != 0 && (U = !1), /^[A-Za-z0-9+/]+$/.test(S.substr(0, S.length - 2)) === !1 && (U = !1), /^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(S.substr(-2)) === !1 && (U = !1), U;
}, H = r.__addimage__.extractImageFromDataUrl = function(S) {
if (S == null || !(S = S.trim()).startsWith("data:")) return null;
var U = S.indexOf(",");
return U < 0 ? null : S.substring(0, U).trim().endsWith("base64") ? S.substring(U + 1) : null;
};
r.__addimage__.isArrayBuffer = function(S) {
return S instanceof ArrayBuffer;
};
var q = r.__addimage__.isArrayBufferView = function(S) {
return S instanceof Int8Array || S instanceof Uint8Array || S instanceof Uint8ClampedArray || S instanceof Int16Array || S instanceof Uint16Array || S instanceof Int32Array || S instanceof Uint32Array || S instanceof Float32Array || S instanceof Float64Array;
}, N = r.__addimage__.binaryStringToUint8Array = function(S) {
for (var U = S.length, W = new Uint8Array(U), I = 0; I < U; I++) W[I] = S.charCodeAt(I);
return W;
}, M = r.__addimage__.arrayBufferToBinaryString = function(S) {
for (var U = "", W = q(S) ? S : new Uint8Array(S), I = 0; I < W.length; I += 8192) U += String.fromCharCode.apply(null, W.subarray(I, I + 8192));
return U;
};
r.addImage = function() {
var S, U, W, I, le, ue, Z, ee, X;
if (typeof arguments[1] == "number" ? (U = e, W = arguments[1], I = arguments[2], le = arguments[3], ue = arguments[4], Z = arguments[5], ee = arguments[6], X = arguments[7]) : (U = arguments[1], W = arguments[2], I = arguments[3], le = arguments[4], ue = arguments[5], Z = arguments[6], ee = arguments[7], X = arguments[8]), jA(S = arguments[0]) === "object" && !g(S) && "imageData" in S) {
var Ae = S;
S = Ae.imageData, U = Ae.format || U || e, W = Ae.x || W || 0, I = Ae.y || I || 0, le = Ae.w || Ae.width || le, ue = Ae.h || Ae.height || ue, Z = Ae.alias || Z, ee = Ae.compression || ee, X = Ae.rotation || Ae.angle || X;
}
var oe = this.internal.getFilters();
if (ee === void 0 && oe.indexOf("FlateEncode") !== -1 && (ee = "SLOW"), isNaN(W) || isNaN(I)) throw new Error("Invalid coordinates passed to jsPDF.addImage");
o.call(this);
var x = k.call(this, S, U, Z, ee);
return y.call(this, W, I, le, ue, x, X), this;
};
var k = function(S, U, W, I) {
var le, ue, Z;
if (typeof S == "string" && n(S) === e) {
S = unescape(S);
var ee = O(S, !1);
(ee !== "" || (ee = r.loadFile(S, !0)) !== void 0) && (S = ee);
}
if (g(S) && (S = c(S, U)), U = n(S, U), !h(U)) throw new Error("addImage does not support files of type '" + U + "', please ensure that a plugin for '" + U + "' support is added.");
if (((Z = W) == null || Z.length === 0) && (W = (function(X) {
return typeof X == "string" || q(X) ? C(X) : q(X.data) ? C(X.data) : null;
})(S)), (le = p.call(this, W)) || (S instanceof Uint8Array || U === "RGBA" || (ue = S, S = N(S)), le = this["process" + U.toUpperCase()](S, u.call(this), W, (function(X) {
return X && typeof X == "string" && (X = X.toUpperCase()), X in r.image_compression ? X : E.NONE;
})(I), ue)), !le) throw new Error("An unknown error occurred whilst processing the image.");
return le;
}, O = r.__addimage__.convertBase64ToBinaryString = function(S, U) {
U = typeof U != "boolean" || U;
var W, I = "";
if (typeof S == "string") {
var le;
W = (le = H(S)) !== null && le !== void 0 ? le : S;
try {
I = zu(W);
} catch (ue) {
if (U) throw F(W) ? new Error("atob-Error in jsPDF.convertBase64ToBinaryString " + ue.message) : new Error("Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString ");
}
}
return I;
};
r.getImageProperties = function(S) {
var U, W, I = "";
if (g(S) && (S = c(S)), typeof S == "string" && n(S) === e && ((I = O(S, !1)) === "" && (I = r.loadFile(S) || ""), S = I), W = n(S), !h(W)) throw new Error("addImage does not support files of type '" + W + "', please ensure that a plugin for '" + W + "' support is added.");
if (S instanceof Uint8Array || (S = N(S)), !(U = this["process" + W.toUpperCase()](S))) throw new Error("An unknown error occurred whilst processing the image");
return U.fileType = W, U;
};
})(eA.API), /**
* @license
* Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
(function(r) {
var t = function(e) {
if (e !== void 0 && e != "") return !0;
};
eA.API.events.push(["addPage", function(e) {
this.internal.getPageInfo(e.pageNumber).pageContext.annotations = [];
}]), r.events.push(["putPage", function(e) {
for (var A, n, a, s = this.internal.getCoordinateString, i = this.internal.getVerticalCoordinateString, o = this.internal.getPageInfoByObjId(e.objId), l = e.pageContext.annotations, u = !1, h = 0; h < l.length && !u; h++) switch ((A = l[h]).type) {
case "link":
(t(A.options.url) || t(A.options.pageNumber)) && (u = !0);
break;
case "reference":
case "text":
case "freetext":
u = !0;
}
if (u != 0) {
this.internal.write("/Annots [");
for (var g = 0; g < l.length; g++) {
A = l[g];
var c = this.internal.pdfEscape, p = this.internal.getEncryptor(e.objId);
switch (A.type) {
case "reference":
this.internal.write(" " + A.object.objId + " 0 R ");
break;
case "text":
var m = this.internal.newAdditionalObject(), y = this.internal.newAdditionalObject(), w = this.internal.getEncryptor(m.objId), E = A.title || "Note";
a = "<</Type /Annot /Subtype /Text " + (n = "/Rect [" + s(A.bounds.x) + " " + i(A.bounds.y + A.bounds.h) + " " + s(A.bounds.x + A.bounds.w) + " " + i(A.bounds.y) + "] ") + "/Contents (" + c(w(A.contents)) + ")", a += " /Popup " + y.objId + " 0 R", a += " /P " + o.objId + " 0 R", a += " /T (" + c(w(E)) + ") >>", m.content = a;
var C = m.objId + " 0 R";
a = "<</Type /Annot /Subtype /Popup " + (n = "/Rect [" + s(A.bounds.x + 30) + " " + i(A.bounds.y + A.bounds.h) + " " + s(A.bounds.x + A.bounds.w + 30) + " " + i(A.bounds.y) + "] ") + " /Parent " + C, A.open && (a += " /Open true"), a += " >>", y.content = a, this.internal.write(m.objId, "0 R", y.objId, "0 R");
break;
case "freetext":
n = "/Rect [" + s(A.bounds.x) + " " + i(A.bounds.y) + " " + s(A.bounds.x + A.bounds.w) + " " + i(A.bounds.y + A.bounds.h) + "] ";
var F = A.color || "#000000";
a = "<</Type /Annot /Subtype /FreeText " + n + "/Contents (" + c(p(A.contents)) + ")", a += " /DS(font: Helvetica,sans-serif 12.0pt; text-align:left; color:#" + F + ")", a += " /Border [0 0 0]", a += " >>", this.internal.write(a);
break;
case "link":
if (A.options.name) {
var H = this.annotations._nameMap[A.options.name];
A.options.pageNumber = H.page, A.options.top = H.y;
} else A.options.top || (A.options.top = 0);
if (n = "/Rect [" + A.finalBounds.x + " " + A.finalBounds.y + " " + A.finalBounds.w + " " + A.finalBounds.h + "] ", a = "", A.options.url) a = "<</Type /Annot /Subtype /Link " + n + "/Border [0 0 0] /A <</S /URI /URI (" + c(p(A.options.url)) + ") >>";
else if (A.options.pageNumber) switch (a = "<</Type /Annot /Subtype /Link " + n + "/Border [0 0 0] /Dest [" + this.internal.getPageInfo(A.options.pageNumber).objId + " 0 R", A.options.magFactor = A.options.magFactor || "XYZ", A.options.magFactor) {
case "Fit":
a += " /Fit]";
break;
case "FitH":
a += " /FitH " + A.options.top + "]";
break;
case "FitV":
A.options.left = A.options.left || 0, a += " /FitV " + A.options.left + "]";
break;
default:
var q = i(A.options.top);
A.options.left = A.options.left || 0, A.options.zoom === void 0 && (A.options.zoom = 0), a += " /XYZ " + A.options.left + " " + q + " " + A.options.zoom + "]";
}
a != "" && (a += " >>", this.internal.write(a));
}
}
this.internal.write("]");
}
}]), r.createAnnotation = function(e) {
var A = this.internal.getCurrentPageInfo();
switch (e.type) {
case "link":
this.link(e.bounds.x, e.bounds.y, e.bounds.w, e.bounds.h, e);
break;
case "text":
case "freetext":
A.pageContext.annotations.push(e);
}
}, r.link = function(e, A, n, a, s) {
var i = this.internal.getCurrentPageInfo(), o = this.internal.getCoordinateString, l = this.internal.getVerticalCoordinateString;
i.pageContext.annotations.push({ finalBounds: { x: o(e), y: l(A), w: o(e + n), h: l(A + a) }, options: s, type: "link" });
}, r.textWithLink = function(e, A, n, a) {
var s, i, o = this.getTextWidth(e), l = this.internal.getLineHeight() / this.internal.scaleFactor;
if (a.maxWidth !== void 0) {
i = a.maxWidth;
var u = this.splitTextToSize(e, i).length;
s = Math.ceil(l * u);
} else i = o, s = l;
return this.text(e, A, n, a), n += 0.2 * l, a.align === "center" && (A -= o / 2), a.align === "right" && (A -= o), this.link(A, n - l, i, s, a), o;
}, r.getTextWidth = function(e) {
var A = this.internal.getFontSize();
return this.getStringUnitWidth(e) * A / this.internal.scaleFactor;
};
})(eA.API), /**
* @license
* Copyright (c) 2017 Aras Abbasi
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
(function(r) {
var t = { 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] }, e = { 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 } }, A = { 1612: 64606, 1613: 64607, 1614: 64608, 1615: 64609, 1616: 64610 }, n = [1570, 1571, 1573, 1575];
r.__arabicParser__ = {};
var a = r.__arabicParser__.isInArabicSubstitutionA = function(m) {
return t[m.charCodeAt(0)] !== void 0;
}, s = r.__arabicParser__.isArabicLetter = function(m) {
return typeof m == "string" && /^[\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF]+$/.test(m);
}, i = r.__arabicParser__.isArabicEndLetter = function(m) {
return s(m) && a(m) && t[m.charCodeAt(0)].length <= 2;
}, o = r.__arabicParser__.isArabicAlfLetter = function(m) {
return s(m) && n.indexOf(m.charCodeAt(0)) >= 0;
};
r.__arabicParser__.arabicLetterHasIsolatedForm = function(m) {
return s(m) && a(m) && t[m.charCodeAt(0)].length >= 1;
};
var l = r.__arabicParser__.arabicLetterHasFinalForm = function(m) {
return s(m) && a(m) && t[m.charCodeAt(0)].length >= 2;
};
r.__arabicParser__.arabicLetterHasInitialForm = function(m) {
return s(m) && a(m) && t[m.charCodeAt(0)].length >= 3;
};
var u = r.__arabicParser__.arabicLetterHasMedialForm = function(m) {
return s(m) && a(m) && t[m.charCodeAt(0)].length == 4;
}, h = r.__arabicParser__.resolveLigatures = function(m) {
var y = 0, w = e, E = "", C = 0;
for (y = 0; y < m.length; y += 1) w[m.charCodeAt(y)] !== void 0 ? (C++, typeof (w = w[m.charCodeAt(y)]) == "number" && (E += String.fromCharCode(w), w = e, C = 0), y === m.length - 1 && (w = e, E += m.charAt(y - (C - 1)), y -= C - 1, C = 0)) : (w = e, E += m.charAt(y - C), y -= C, C = 0);
return E;
};
r.__arabicParser__.isArabicDiacritic = function(m) {
return m !== void 0 && A[m.charCodeAt(0)] !== void 0;
};
var g = r.__arabicParser__.getCorrectForm = function(m, y, w) {
return s(m) ? a(m) === !1 ? -1 : !l(m) || !s(y) && !s(w) || !s(w) && i(y) || i(m) && !s(y) || i(m) && o(y) || i(m) && i(y) ? 0 : u(m) && s(y) && !i(y) && s(w) && l(w) ? 3 : i(m) || !s(w) ? 1 : 2 : -1;
}, c = function(m) {
var y = 0, w = 0, E = 0, C = "", F = "", H = "", q = (m = m || "").split("\\s+"), N = [];
for (y = 0; y < q.length; y += 1) {
for (N.push(""), w = 0; w < q[y].length; w += 1) C = q[y][w], F = q[y][w - 1], H = q[y][w + 1], s(C) ? (E = g(C, F, H), N[y] += E !== -1 ? String.fromCharCode(t[C.charCodeAt(0)][E]) : C) : N[y] += C;
N[y] = h(N[y]);
}
return N.join(" ");
}, p = r.__arabicParser__.processArabic = r.processArabic = function() {
var m, y = typeof arguments[0] == "string" ? arguments[0] : arguments[0].text, w = [];
if (Array.isArray(y)) {
var E = 0;
for (w = [], E = 0; E < y.length; E += 1) Array.isArray(y[E]) ? w.push([c(y[E][0]), y[E][1], y[E][2]]) : w.push([c(y[E])]);
m = w;
} else m = c(y);
return typeof arguments[0] == "string" ? m : (arguments[0].text = m, arguments[0]);
};
r.events.push(["preProcessText", p]);
})(eA.API), eA.API.autoPrint = function(r) {
var t;
return (r = r || {}).variant = r.variant || "non-conform", r.variant === "javascript" ? this.addJS("print({});") : (this.internal.events.subscribe("postPutResources", function() {
t = 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 " + t + " 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(r) {
var t = function() {
var e = void 0;
Object.defineProperty(this, "pdf", { get: function() {
return e;
}, set: function(i) {
e = i;
} });
var A = 150;
Object.defineProperty(this, "width", { get: function() {
return A;
}, set: function(i) {
A = isNaN(i) || Number.isInteger(i) === !1 || i < 0 ? 150 : i, this.getContext("2d").pageWrapXEnabled && (this.getContext("2d").pageWrapX = A + 1);
} });
var n = 300;
Object.defineProperty(this, "height", { get: function() {
return n;
}, set: function(i) {
n = isNaN(i) || Number.isInteger(i) === !1 || i < 0 ? 300 : i, this.getContext("2d").pageWrapYEnabled && (this.getContext("2d").pageWrapY = n + 1);
} });
var a = [];
Object.defineProperty(this, "childNodes", { get: function() {
return a;
}, set: function(i) {
a = i;
} });
var s = {};
Object.defineProperty(this, "style", { get: function() {
return s;
}, set: function(i) {
s = i;
} }), Object.defineProperty(this, "parentNode", {});
};
t.prototype.getContext = function(e, A) {
var n;
if ((e = e || "2d") !== "2d") return null;
for (n in A) this.pdf.context2d.hasOwnProperty(n) && (this.pdf.context2d[n] = A[n]);
return this.pdf.context2d._canvas = this, this.pdf.context2d;
}, t.prototype.toDataURL = function() {
throw new Error("toDataURL is not implemented.");
}, r.events.push(["initialized", function() {
this.canvas = new t(), this.canvas.pdf = this;
}]);
})(eA.API), (function(r) {
var t = { left: 0, top: 0, bottom: 0, right: 0 }, e = !1, A = 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({}, t), this.internal.__cell__.margins.width = this.getPageWidth(), n.call(this));
}, n = function() {
this.internal.__cell__.lastCell = new a(), this.internal.__cell__.pages = 1;
}, a = function() {
var o = arguments[0];
Object.defineProperty(this, "x", { enumerable: !0, get: function() {
return o;
}, set: function(m) {
o = m;
} });
var l = arguments[1];
Object.defineProperty(this, "y", { enumerable: !0, get: function() {
return l;
}, set: function(m) {
l = m;
} });
var u = arguments[2];
Object.defineProperty(this, "width", { enumerable: !0, get: function() {
return u;
}, set: function(m) {
u = m;
} });
var h = arguments[3];
Object.defineProperty(this, "height", { enumerable: !0, get: function() {
return h;
}, set: function(m) {
h = m;
} });
var g = arguments[4];
Object.defineProperty(this, "text", { enumerable: !0, get: function() {
return g;
}, set: function(m) {
g = m;
} });
var c = arguments[5];
Object.defineProperty(this, "lineNumber", { enumerable: !0, get: function() {
return c;
}, set: function(m) {
c = m;
} });
var p = arguments[6];
return Object.defineProperty(this, "align", { enumerable: !0, get: function() {
return p;
}, set: function(m) {
p = m;
} }), this;
};
a.prototype.clone = function() {
return new a(this.x, this.y, this.width, this.height, this.text, this.lineNumber, this.align);
}, a.prototype.toArray = function() {
return [this.x, this.y, this.width, this.height, this.text, this.lineNumber, this.align];
}, r.setHeaderFunction = function(o) {
return A.call(this), this.internal.__cell__.headerFunction = typeof o == "function" ? o : void 0, this;
}, r.getTextDimensions = function(o, l) {
A.call(this);
var u = (l = l || {}).fontSize || this.getFontSize(), h = l.font || this.getFont(), g = l.scaleFactor || this.internal.scaleFactor, c = 0, p = 0, m = 0, y = this;
if (!Array.isArray(o) && typeof o != "string") {
if (typeof o != "number") throw new Error("getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.");
o = String(o);
}
var w = l.maxWidth;
w > 0 ? typeof o == "string" ? o = this.splitTextToSize(o, w) : Object.prototype.toString.call(o) === "[object Array]" && (o = o.reduce(function(C, F) {
return C.concat(y.splitTextToSize(F, w));
}, [])) : o = Array.isArray(o) ? o : [o];
for (var E = 0; E < o.length; E++) c < (m = this.getStringUnitWidth(o[E], { font: h }) * u) && (c = m);
return c !== 0 && (p = o.length), { w: c /= g, h: Math.max((p * u * this.getLineHeightFactor() - u * (this.getLineHeightFactor() - 1)) / g, 0) };
}, r.cellAddPage = function() {
A.call(this), this.addPage();
var o = this.internal.__cell__.margins || t;
return this.internal.__cell__.lastCell = new a(o.left, o.top, void 0, void 0), this.internal.__cell__.pages += 1, this;
};
var s = r.cell = function() {
var o;
o = arguments[0] instanceof a ? arguments[0] : new a(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6]), A.call(this);
var l = this.internal.__cell__.lastCell, u = this.internal.__cell__.padding, h = this.internal.__cell__.margins || t, g = this.internal.__cell__.tableHeaderRow, c = this.internal.__cell__.printHeaders;
return l.lineNumber !== void 0 && (l.lineNumber === o.lineNumber ? (o.x = (l.x || 0) + (l.width || 0), o.y = l.y || 0) : l.y + l.height + o.height + h.bottom > this.getPageHeight() ? (this.cellAddPage(), o.y = h.top, c && g && (this.printHeaderRow(o.lineNumber, !0), o.y += g[0].height)) : o.y = l.y + l.height || o.y), o.text[0] !== void 0 && (this.rect(o.x, o.y, o.width, o.height, e === !0 ? "FD" : void 0), o.align === "right" ? this.text(o.text, o.x + o.width - u, o.y + u, { align: "right", baseline: "top" }) : o.align === "center" ? this.text(o.text, o.x + o.width / 2, o.y + u, { align: "center", baseline: "top", maxWidth: o.width - u - u }) : this.text(o.text, o.x + u, o.y + u, { align: "left", baseline: "top", maxWidth: o.width - u - u })), this.internal.__cell__.lastCell = o, this;
};
r.table = function(o, l, u, h, g) {
if (A.call(this), !u) throw new Error("No data for PDF table.");
var c, p, m, y, w = [], E = [], C = [], F = {}, H = {}, q = [], N = [], M = (g = g || {}).autoSize || !1, k = g.printHeaders !== !1, O = g.css && g.css["font-size"] !== void 0 ? 16 * g.css["font-size"] : g.fontSize || 12, S = g.margins || Object.assign({ width: this.getPageWidth() }, t), U = typeof g.padding == "number" ? g.padding : 3, W = g.headerBackgroundColor || "#c8c8c8", I = g.headerTextColor || "#000";
if (n.call(this), this.internal.__cell__.printHeaders = k, this.internal.__cell__.margins = S, this.internal.__cell__.table_font_size = O, this.internal.__cell__.padding = U, this.internal.__cell__.headerBackgroundColor = W, this.internal.__cell__.headerTextColor = I, this.setFontSize(O), h == null) E = w = Object.keys(u[0]), C = w.map(function() {
return "left";
});
else if (Array.isArray(h) && jA(h[0]) === "object") for (w = h.map(function(Ae) {
return Ae.name;
}), E = h.map(function(Ae) {
return Ae.prompt || Ae.name || "";
}), C = h.map(function(Ae) {
return Ae.align || "left";
}), c = 0; c < h.length; c += 1) H[h[c].name] = 0.7499990551181103 * h[c].width;
else Array.isArray(h) && typeof h[0] == "string" && (E = w = h, C = w.map(function() {
return "left";
}));
if (M || Array.isArray(h) && typeof h[0] == "string") for (c = 0; c < w.length; c += 1) {
for (F[y = w[c]] = u.map(function(Ae) {
return Ae[y];
}), this.setFont(void 0, "bold"), q.push(this.getTextDimensions(E[c], { fontSize: this.internal.__cell__.table_font_size, scaleFactor: this.internal.scaleFactor }).w), p = F[y], this.setFont(void 0, "normal"), m = 0; m < p.length; m += 1) q.push(this.getTextDimensions(p[m], { fontSize: this.internal.__cell__.table_font_size, scaleFactor: this.internal.scaleFactor }).w);
H[y] = Math.max.apply(null, q) + U + U, q = [];
}
if (k) {
var le = {};
for (c = 0; c < w.length; c += 1) le[w[c]] = {}, le[w[c]].text = E[c], le[w[c]].align = C[c];
var ue = i.call(this, le, H);
N = w.map(function(Ae) {
return new a(o, l, H[Ae], ue, le[Ae].text, void 0, le[Ae].align);
}), this.setTableHeaderRow(N), this.printHeaderRow(1, !1);
}
var Z = h.reduce(function(Ae, oe) {
return Ae[oe.name] = oe.align, Ae;
}, {});
for (c = 0; c < u.length; c += 1) {
"rowStart" in g && g.rowStart instanceof Function && g.rowStart({ row: c, data: u[c] }, this);
var ee = i.call(this, u[c], H);
for (m = 0; m < w.length; m += 1) {
var X = u[c][w[m]];
"cellStart" in g && g.cellStart instanceof Function && g.cellStart({ row: c, col: m, data: X }, this), s.call(this, new a(o, l, H[w[m]], ee, X, c + 2, Z[w[m]]));
}
}
return this.internal.__cell__.table_x = o, this.internal.__cell__.table_y = l, this;
};
var i = function(o, l) {
var u = this.internal.__cell__.padding, h = this.internal.__cell__.table_font_size, g = this.internal.scaleFactor;
return Object.keys(o).map(function(c) {
var p = o[c];
return this.splitTextToSize(p.hasOwnProperty("text") ? p.text : p, l[c] - u - u);
}, this).map(function(c) {
return this.getLineHeightFactor() * c.length * h / g + u + u;
}, this).reduce(function(c, p) {
return Math.max(c, p);
}, 0);
};
r.setTableHeaderRow = function(o) {
A.call(this), this.internal.__cell__.tableHeaderRow = o;
}, r.printHeaderRow = function(o, l) {
if (A.call(this), !this.internal.__cell__.tableHeaderRow) throw new Error("Property tableHeaderRow does not exist.");
var u;
if (e = !0, typeof this.internal.__cell__.headerFunction == "function") {
var h = this.internal.__cell__.headerFunction(this, this.internal.__cell__.pages);
this.internal.__cell__.lastCell = new a(h[0], h[1], h[2], h[3], void 0, -1);
}
this.setFont(void 0, "bold");
for (var g = [], c = 0; c < this.internal.__cell__.tableHeaderRow.length; c += 1) {
u = this.internal.__cell__.tableHeaderRow[c].clone(), l && (u.y = this.internal.__cell__.margins.top || 0, g.push(u)), u.lineNumber = o;
var p = this.getTextColor();
this.setTextColor(this.internal.__cell__.headerTextColor), this.setFillColor(this.internal.__cell__.headerBackgroundColor), s.call(this, u), this.setTextColor(p);
}
g.length > 0 && this.setTableHeaderRow(g), this.setFont(void 0, "normal"), e = !1;
};
})(eA.API);
var Q5 = { italic: ["italic", "oblique", "normal"], oblique: ["oblique", "italic", "normal"], normal: ["normal", "oblique", "italic"] }, D5 = ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded"], up = T5(D5), k5 = [100, 200, 300, 400, 500, 600, 700, 800, 900], wD = T5(k5);
function Of(r) {
var t = r.family.replace(/"|'/g, "").toLowerCase(), e = (function(a) {
return Q5[a = a || "normal"] ? a : "normal";
})(r.style), A = (function(a) {
return a ? typeof a == "number" ? a >= 100 && a <= 900 && a % 100 == 0 ? a : 400 : /^\d00$/.test(a) ? parseInt(a) : a === "bold" ? 700 : 400 : 400;
})(r.weight), n = (function(a) {
return typeof up[a = a || "normal"] == "number" ? a : "normal";
})(r.stretch);
return { family: t, style: e, weight: A, stretch: n, src: r.src || [], ref: r.ref || { name: t, style: [n, e, A].join(" ") } };
}
function Q1(r, t, e, A) {
var n;
for (n = e; n >= 0 && n < t.length; n += A) if (r[t[n]]) return r[t[n]];
for (n = e; n >= 0 && n < t.length; n -= A) if (r[t[n]]) return r[t[n]];
}
var BD = { "sans-serif": "helvetica", fixed: "courier", monospace: "courier", terminal: "courier", cursive: "times", fantasy: "times", serif: "times" }, D1 = { caption: "times", icon: "times", menu: "times", "message-box": "times", "small-caption": "times", "status-bar": "times" };
function k1(r) {
return [r.stretch, r.style, r.weight, r.family].join(" ");
}
function L1(r) {
return r.trimLeft();
}
function yD(r, t) {
for (var e = 0; e < r.length; ) {
if (r.charAt(e) === t) return [r.substring(0, e), r.substring(e + 1)];
e += 1;
}
return null;
}
function bD(r) {
var t = r.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);
return t === null ? null : [t[0], r.substring(t[0].length)];
}
var pu, I1, _1, uo, vu, N1, M1, O1, Rf = ["times"];
function R1(r, t, e, A, n) {
var a = 4, s = P1;
switch (n) {
case eA.API.image_compression.FAST:
a = 1, s = H1;
break;
case eA.API.image_compression.MEDIUM:
a = 6, s = K1;
break;
case eA.API.image_compression.SLOW:
a = 9, s = V1;
}
r = (function(o, l, u, h) {
for (var g, c = o.length / l, p = new Uint8Array(o.length + c), m = [CD, H1, P1, K1, V1], y = 0; y < c; y += 1) {
var w = y * l, E = o.subarray(w, w + l);
if (h) p.set(h(E, u, g), w + y);
else {
for (var C = m.length, F = [], H = 0; H < C; H += 1) F[H] = m[H](E, u, g);
var q = FD(F.concat());
p.set(F[q], w + y);
}
g = E;
}
return p;
})(r, t, Math.ceil(e * A / 8), s);
var i = rp(r, { level: a });
return eA.API.__addimage__.arrayBufferToBinaryString(i);
}
function CD(r) {
var t = Array.apply([], r);
return t.unshift(0), t;
}
function H1(r, t) {
var e = r.length, A = [];
A[0] = 1;
for (var n = 0; n < e; n += 1) {
var a = r[n - t] || 0;
A[n + 1] = r[n] - a + 256 & 255;
}
return A;
}
function P1(r, t, e) {
var A = r.length, n = [];
n[0] = 2;
for (var a = 0; a < A; a += 1) {
var s = e && e[a] || 0;
n[a + 1] = r[a] - s + 256 & 255;
}
return n;
}
function K1(r, t, e) {
var A = r.length, n = [];
n[0] = 3;
for (var a = 0; a < A; a += 1) {
var s = r[a - t] || 0, i = e && e[a] || 0;
n[a + 1] = r[a] + 256 - (s + i >>> 1) & 255;
}
return n;
}
function V1(r, t, e) {
var A = r.length, n = [];
n[0] = 4;
for (var a = 0; a < A; a += 1) {
var s = ED(r[a - t] || 0, e && e[a] || 0, e && e[a - t] || 0);
n[a + 1] = r[a] - s + 256 & 255;
}
return n;
}
function ED(r, t, e) {
if (r === t && t === e) return r;
var A = Math.abs(t - e), n = Math.abs(r - e), a = Math.abs(r + t - e - e);
return A <= n && A <= a ? r : n <= a ? t : e;
}
function FD(r) {
var t = r.map(function(e) {
return e.reduce(function(A, n) {
return A + Math.abs(n);
}, 0);
});
return t.indexOf(Math.min.apply(null, t));
}
function Hf(r, t, e) {
var A = t * e, n = Math.floor(A / 8), a = 16 - (A - 8 * n + e), s = (1 << e) - 1;
return L5(r, n) >> a & s;
}
function q1(r, t, e, A) {
var n = e * A, a = Math.floor(n / 8), s = 16 - (n - 8 * a + A), i = (1 << A) - 1, o = (t & i) << s;
(function(l, u, h) {
if (u + 1 < l.byteLength) l.setUint16(u, h, !1);
else {
var g = h >> 8 & 255;
l.setUint8(u, g);
}
})(r, a, L5(r, a) & ~(i << s) & 65535 | o);
}
function L5(r, t) {
return t + 1 < r.byteLength ? r.getUint16(t, !1) : r.getUint8(t) << 8;
}
function xD(r) {
var t = 0;
if (r[t++] !== 71 || r[t++] !== 73 || r[t++] !== 70 || r[t++] !== 56 || (r[t++] + 1 & 253) != 56 || r[t++] !== 97) throw new Error("Invalid GIF 87a/89a header.");
var e = r[t++] | r[t++] << 8, A = r[t++] | r[t++] << 8, n = r[t++], a = n >> 7, s = 1 << 1 + (7 & n);
r[t++], r[t++];
var i = null, o = null;
a && (i = t, o = s, t += 3 * s);
var l = !0, u = [], h = 0, g = null, c = 0, p = null;
for (this.width = e, this.height = A; l && t < r.length; ) switch (r[t++]) {
case 33:
switch (r[t++]) {
case 255:
if (r[t] !== 11 || r[t + 1] == 78 && r[t + 2] == 69 && r[t + 3] == 84 && r[t + 4] == 83 && r[t + 5] == 67 && r[t + 6] == 65 && r[t + 7] == 80 && r[t + 8] == 69 && r[t + 9] == 50 && r[t + 10] == 46 && r[t + 11] == 48 && r[t + 12] == 3 && r[t + 13] == 1 && r[t + 16] == 0) t += 14, p = r[t++] | r[t++] << 8, t++;
else for (t += 12; ; ) {
if (!((S = r[t++]) >= 0)) throw Error("Invalid block size");
if (S === 0) break;
t += S;
}
break;
case 249:
if (r[t++] !== 4 || r[t + 4] !== 0) throw new Error("Invalid graphics extension block.");
var m = r[t++];
h = r[t++] | r[t++] << 8, g = r[t++], 1 & m || (g = null), c = m >> 2 & 7, t++;
break;
case 254:
for (; ; ) {
if (!((S = r[t++]) >= 0)) throw Error("Invalid block size");
if (S === 0) break;
t += S;
}
break;
default:
throw new Error("Unknown graphic control label: 0x" + r[t - 1].toString(16));
}
break;
case 44:
var y = r[t++] | r[t++] << 8, w = r[t++] | r[t++] << 8, E = r[t++] | r[t++] << 8, C = r[t++] | r[t++] << 8, F = r[t++], H = F >> 6 & 1, q = 1 << 1 + (7 & F), N = i, M = o, k = !1;
F >> 7 && (k = !0, N = t, M = q, t += 3 * q);
var O = t;
for (t++; ; ) {
var S;
if (!((S = r[t++]) >= 0)) throw Error("Invalid block size");
if (S === 0) break;
t += S;
}
u.push({ x: y, y: w, width: E, height: C, has_local_palette: k, palette_offset: N, palette_size: M, data_offset: O, data_length: t - O, transparent_index: g, interlaced: !!H, delay: h, disposal: c });
break;
case 59:
l = !1;
break;
default:
throw new Error("Unknown gif block: 0x" + r[t - 1].toString(16));
}
this.numFrames = function() {
return u.length;
}, this.loopCount = function() {
return p;
}, this.frameInfo = function(U) {
if (U < 0 || U >= u.length) throw new Error("Frame index out of range.");
return u[U];
}, this.decodeAndBlitFrameBGRA = function(U, W) {
var I = this.frameInfo(U), le = I.width * I.height, ue = new Uint8Array(le);
j1(r, I.data_offset, ue, le);
var Z = I.palette_offset, ee = I.transparent_index;
ee === null && (ee = 256);
var X = I.width, Ae = e - X, oe = X, x = 4 * (I.y * e + I.x), L = 4 * ((I.y + I.height) * e + I.x), j = x, $ = 4 * Ae;
I.interlaced === !0 && ($ += 4 * e * 7);
for (var re = 8, pe = 0, de = ue.length; pe < de; ++pe) {
var ce = ue[pe];
if (oe === 0 && (oe = X, (j += $) >= L && ($ = 4 * Ae + 4 * e * (re - 1), j = x + (X + Ae) * (re << 1), re >>= 1)), ce === ee) j += 4;
else {
var Se = r[Z + 3 * ce], qe = r[Z + 3 * ce + 1], rt = r[Z + 3 * ce + 2];
W[j++] = rt, W[j++] = qe, W[j++] = Se, W[j++] = 255;
}
--oe;
}
}, this.decodeAndBlitFrameRGBA = function(U, W) {
var I = this.frameInfo(U), le = I.width * I.height, ue = new Uint8Array(le);
j1(r, I.data_offset, ue, le);
var Z = I.palette_offset, ee = I.transparent_index;
ee === null && (ee = 256);
var X = I.width, Ae = e - X, oe = X, x = 4 * (I.y * e + I.x), L = 4 * ((I.y + I.height) * e + I.x), j = x, $ = 4 * Ae;
I.interlaced === !0 && ($ += 4 * e * 7);
for (var re = 8, pe = 0, de = ue.length; pe < de; ++pe) {
var ce = ue[pe];
if (oe === 0 && (oe = X, (j += $) >= L && ($ = 4 * Ae + 4 * e * (re - 1), j = x + (X + Ae) * (re << 1), re >>= 1)), ce === ee) j += 4;
else {
var Se = r[Z + 3 * ce], qe = r[Z + 3 * ce + 1], rt = r[Z + 3 * ce + 2];
W[j++] = Se, W[j++] = qe, W[j++] = rt, W[j++] = 255;
}
--oe;
}
};
}
function j1(r, t, e, A) {
for (var n = r[t++], a = 1 << n, s = a + 1, i = s + 1, o = n + 1, l = (1 << o) - 1, u = 0, h = 0, g = 0, c = r[t++], p = new Int32Array(4096), m = null; ; ) {
for (; u < 16 && c !== 0; ) h |= r[t++] << u, u += 8, c === 1 ? c = r[t++] : --c;
if (u < o) break;
var y = h & l;
if (h >>= o, u -= o, y !== a) {
if (y === s) break;
for (var w = y < i ? y : m, E = 0, C = w; C > a; ) C = p[C] >> 8, ++E;
var F = C;
if (g + E + (w !== y ? 1 : 0) > A) return void ur.log("Warning, gif stream longer than expected.");
e[g++] = F;
var H = g += E;
for (w !== y && (e[g++] = F), C = w; E--; ) C = p[C], e[--H] = 255 & C, C >>= 8;
m !== null && i < 4096 && (p[i++] = m << 8 | F, i >= l + 1 && o < 12 && (++o, l = l << 1 | 1)), m = y;
} else i = s + 1, l = (1 << (o = n + 1)) - 1, m = null;
}
return g !== A && ur.log("Warning, gif stream shorter than expected."), e;
}
/**
* @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 Pf(r) {
var t, e, A, n, a, s = Math.floor, i = new Array(64), o = new Array(64), l = new Array(64), u = new Array(64), h = new Array(65535), g = new Array(65535), c = new Array(64), p = new Array(64), m = [], y = 0, w = 7, E = new Array(64), C = new Array(64), F = new Array(64), H = new Array(256), q = new Array(2048), N = [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], M = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], k = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], O = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125], S = [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], U = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], W = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], I = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119], le = [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 ue(x, L) {
for (var j = 0, $ = 0, re = new Array(), pe = 1; pe <= 16; pe++) {
for (var de = 1; de <= x[pe]; de++) re[L[$]] = [], re[L[$]][0] = j, re[L[$]][1] = pe, $++, j++;
j *= 2;
}
return re;
}
function Z(x) {
for (var L = x[0], j = x[1] - 1; j >= 0; ) L & 1 << j && (y |= 1 << w), j--, --w < 0 && (y == 255 ? (ee(255), ee(0)) : ee(y), w = 7, y = 0);
}
function ee(x) {
m.push(x);
}
function X(x) {
ee(x >> 8 & 255), ee(255 & x);
}
function Ae(x, L, j, $, re) {
for (var pe, de = re[0], ce = re[240], Se = (function(xe, Qe) {
var _e, Pe, je, Ke, et, ut, yt, Ft, Bt, St, bt = 0;
for (Bt = 0; Bt < 8; ++Bt) {
_e = xe[bt], Pe = xe[bt + 1], je = xe[bt + 2], Ke = xe[bt + 3], et = xe[bt + 4], ut = xe[bt + 5], yt = xe[bt + 6];
var nA = _e + (Ft = xe[bt + 7]), qt = _e - Ft, Ot = Pe + yt, Pt = Pe - yt, sA = je + ut, kt = je - ut, hA = Ke + et, Nt = Ke - et, Ce = nA + hA, Ve = nA - hA, Re = Ot + sA, $e = Ot - sA;
xe[bt] = Ce + Re, xe[bt + 4] = Ce - Re;
var xt = 0.707106781 * ($e + Ve);
xe[bt + 2] = Ve + xt, xe[bt + 6] = Ve - xt;
var Ht = 0.382683433 * ((Ce = Nt + kt) - ($e = Pt + qt)), Mt = 0.5411961 * Ce + Ht, SA = 1.306562965 * $e + Ht, JA = 0.707106781 * (Re = kt + Pt), Lt = qt + JA, Qr = qt - JA;
xe[bt + 5] = Qr + Mt, xe[bt + 3] = Qr - Mt, xe[bt + 1] = Lt + SA, xe[bt + 7] = Lt - SA, bt += 8;
}
for (bt = 0, Bt = 0; Bt < 8; ++Bt) {
_e = xe[bt], Pe = xe[bt + 8], je = xe[bt + 16], Ke = xe[bt + 24], et = xe[bt + 32], ut = xe[bt + 40], yt = xe[bt + 48];
var Fr = _e + (Ft = xe[bt + 56]), xr = _e - Ft, PA = Pe + yt, CA = Pe - yt, MA = je + ut, OA = je - ut, Dr = Ke + et, Sr = Ke - et, LA = Fr + Dr, pr = Fr - Dr, kr = PA + MA, ZA = PA - MA;
xe[bt] = LA + kr, xe[bt + 32] = LA - kr;
var Lr = 0.707106781 * (ZA + pr);
xe[bt + 16] = pr + Lr, xe[bt + 48] = pr - Lr;
var Un = 0.382683433 * ((LA = Sr + OA) - (ZA = CA + xr)), Dt = 0.5411961 * LA + Un, be = 1.306562965 * ZA + Un, z = 0.707106781 * (kr = OA + CA), ge = xr + z, We = xr - z;
xe[bt + 40] = We + Dt, xe[bt + 24] = We - Dt, xe[bt + 8] = ge + be, xe[bt + 56] = ge - be, bt++;
}
for (Bt = 0; Bt < 64; ++Bt) St = xe[Bt] * Qe[Bt], c[Bt] = St > 0 ? St + 0.5 | 0 : St - 0.5 | 0;
return c;
})(x, L), qe = 0; qe < 64; ++qe) p[N[qe]] = Se[qe];
var rt = p[0] - j;
j = p[0], rt == 0 ? Z($[0]) : (Z($[g[pe = 32767 + rt]]), Z(h[pe]));
for (var at = 63; at > 0 && p[at] == 0; ) at--;
if (at == 0) return Z(de), j;
for (var dt, D = 1; D <= at; ) {
for (var Ie = D; p[D] == 0 && D <= at; ) ++D;
var me = D - Ie;
if (me >= 16) {
dt = me >> 4;
for (var ve = 1; ve <= dt; ++ve) Z(ce);
me &= 15;
}
pe = 32767 + p[D], Z(re[(me << 4) + g[pe]]), Z(h[pe]), D++;
}
return at != 63 && Z(de), j;
}
function oe(x) {
x = Math.min(Math.max(x, 1), 100), a != x && ((function(L) {
for (var j = [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], $ = 0; $ < 64; $++) {
var re = s((j[$] * L + 50) / 100);
re = Math.min(Math.max(re, 1), 255), i[N[$]] = re;
}
for (var pe = [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], de = 0; de < 64; de++) {
var ce = s((pe[de] * L + 50) / 100);
ce = Math.min(Math.max(ce, 1), 255), o[N[de]] = ce;
}
for (var Se = [1, 1.387039845, 1.306562965, 1.175875602, 1, 0.785694958, 0.5411961, 0.275899379], qe = 0, rt = 0; rt < 8; rt++) for (var at = 0; at < 8; at++) l[qe] = 1 / (i[N[qe]] * Se[rt] * Se[at] * 8), u[qe] = 1 / (o[N[qe]] * Se[rt] * Se[at] * 8), qe++;
})(x < 50 ? Math.floor(5e3 / x) : Math.floor(200 - 2 * x)), a = x);
}
this.encode = function(x, L) {
L && oe(L), m = new Array(), y = 0, w = 7, X(65496), X(65504), X(16), ee(74), ee(70), ee(73), ee(70), ee(0), ee(1), ee(1), ee(0), X(1), X(1), ee(0), ee(0), (function() {
X(65499), X(132), ee(0);
for (var Pe = 0; Pe < 64; Pe++) ee(i[Pe]);
ee(1);
for (var je = 0; je < 64; je++) ee(o[je]);
})(), (function(Pe, je) {
X(65472), X(17), ee(8), X(je), X(Pe), ee(3), ee(1), ee(17), ee(0), ee(2), ee(17), ee(1), ee(3), ee(17), ee(1);
})(x.width, x.height), (function() {
X(65476), X(418), ee(0);
for (var Pe = 0; Pe < 16; Pe++) ee(M[Pe + 1]);
for (var je = 0; je <= 11; je++) ee(k[je]);
ee(16);
for (var Ke = 0; Ke < 16; Ke++) ee(O[Ke + 1]);
for (var et = 0; et <= 161; et++) ee(S[et]);
ee(1);
for (var ut = 0; ut < 16; ut++) ee(U[ut + 1]);
for (var yt = 0; yt <= 11; yt++) ee(W[yt]);
ee(17);
for (var Ft = 0; Ft < 16; Ft++) ee(I[Ft + 1]);
for (var Bt = 0; Bt <= 161; Bt++) ee(le[Bt]);
})(), X(65498), X(12), ee(3), ee(1), ee(0), ee(2), ee(17), ee(3), ee(17), ee(0), ee(63), ee(0);
var j = 0, $ = 0, re = 0;
y = 0, w = 7, this.encode.displayName = "_encode_";
for (var pe, de, ce, Se, qe, rt, at, dt, D, Ie = x.data, me = x.width, ve = x.height, xe = 4 * me, Qe = 0; Qe < ve; ) {
for (pe = 0; pe < xe; ) {
for (qe = xe * Qe + pe, at = -1, dt = 0, D = 0; D < 64; D++) rt = qe + (dt = D >> 3) * xe + (at = 4 * (7 & D)), Qe + dt >= ve && (rt -= xe * (Qe + 1 + dt - ve)), pe + at >= xe && (rt -= pe + at - xe + 4), de = Ie[rt++], ce = Ie[rt++], Se = Ie[rt++], E[D] = (q[de] + q[ce + 256 | 0] + q[Se + 512 | 0] >> 16) - 128, C[D] = (q[de + 768 | 0] + q[ce + 1024 | 0] + q[Se + 1280 | 0] >> 16) - 128, F[D] = (q[de + 1280 | 0] + q[ce + 1536 | 0] + q[Se + 1792 | 0] >> 16) - 128;
j = Ae(E, l, j, t, A), $ = Ae(C, u, $, e, n), re = Ae(F, u, re, e, n), pe += 32;
}
Qe += 8;
}
if (w >= 0) {
var _e = [];
_e[1] = w + 1, _e[0] = (1 << w + 1) - 1, Z(_e);
}
return X(65497), new Uint8Array(m);
}, r = r || 50, (function() {
for (var x = String.fromCharCode, L = 0; L < 256; L++) H[L] = x(L);
})(), t = ue(M, k), e = ue(U, W), A = ue(O, S), n = ue(I, le), (function() {
for (var x = 1, L = 2, j = 1; j <= 15; j++) {
for (var $ = x; $ < L; $++) g[32767 + $] = j, h[32767 + $] = [], h[32767 + $][1] = j, h[32767 + $][0] = $;
for (var re = -(L - 1); re <= -x; re++) g[32767 + re] = j, h[32767 + re] = [], h[32767 + re][1] = j, h[32767 + re][0] = L - 1 + re;
x <<= 1, L <<= 1;
}
})(), (function() {
for (var x = 0; x < 256; x++) q[x] = 19595 * x, q[x + 256 | 0] = 38470 * x, q[x + 512 | 0] = 7471 * x + 32768, q[x + 768 | 0] = -11059 * x, q[x + 1024 | 0] = -21709 * x, q[x + 1280 | 0] = 32768 * x + 8421375, q[x + 1536 | 0] = -27439 * x, q[x + 1792 | 0] = -5329 * x;
})(), oe(r);
}
/**
* @license
* Copyright (c) 2017 Aras Abbasi
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
function Wa(r, t) {
if (this.pos = 0, this.buffer = r, this.datav = new DataView(r.buffer), this.is_with_alpha = !!t, 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 W1(r) {
function t(k) {
if (!k) throw Error("assert :P");
}
function e(k, O, S) {
for (var U = 0; 4 > U; U++) if (k[O + U] != S.charCodeAt(U)) return !0;
return !1;
}
function A(k, O, S, U, W) {
for (var I = 0; I < W; I++) k[O + I] = S[U + I];
}
function n(k, O, S, U) {
for (var W = 0; W < U; W++) k[O + W] = S;
}
function a(k) {
return new Int32Array(k);
}
function s(k, O) {
for (var S = [], U = 0; U < k; U++) S.push(new O());
return S;
}
function i(k, O) {
var S = [];
return (function U(W, I, le) {
for (var ue = le[I], Z = 0; Z < ue && (W.push(le.length > I + 1 ? [] : new O()), !(le.length < I + 1)); Z++) U(W[Z], I + 1, le);
})(S, 0, k), S;
}
var o = function() {
var k = this;
function O(f, d) {
for (var B = 1 << d - 1 >>> 0; f & B; ) B >>>= 1;
return B ? (f & B - 1) + B : f;
}
function S(f, d, B, b, Q) {
t(!(b % B));
do
f[d + (b -= B)] = Q;
while (0 < b);
}
function U(f, d, B, b, Q) {
if (t(2328 >= Q), 512 >= Q) var _ = a(512);
else if ((_ = a(Q)) == null) return 0;
return (function(P, G, J, ie, Ee, He) {
var se, Ue, Ne = G, At = 1 << J, Oe = a(16), st = a(16);
for (t(Ee != 0), t(ie != null), t(P != null), t(0 < J), Ue = 0; Ue < Ee; ++Ue) {
if (15 < ie[Ue]) return 0;
++Oe[ie[Ue]];
}
if (Oe[0] == Ee) return 0;
for (st[1] = 0, se = 1; 15 > se; ++se) {
if (Oe[se] > 1 << se) return 0;
st[se + 1] = st[se] + Oe[se];
}
for (Ue = 0; Ue < Ee; ++Ue) se = ie[Ue], 0 < ie[Ue] && (He[st[se]++] = Ue);
if (st[15] == 1) return (ie = new W()).g = 0, ie.value = He[0], S(P, Ne, 1, At, ie), At;
var ot, wt = -1, ht = At - 1, Zt = 0, Vt = 1, BA = 1, $t = 1 << J;
for (Ue = 0, se = 1, Ee = 2; se <= J; ++se, Ee <<= 1) {
if (Vt += BA <<= 1, 0 > (BA -= Oe[se])) return 0;
for (; 0 < Oe[se]; --Oe[se]) (ie = new W()).g = se, ie.value = He[Ue++], S(P, Ne + Zt, Ee, $t, ie), Zt = O(Zt, se);
}
for (se = J + 1, Ee = 2; 15 >= se; ++se, Ee <<= 1) {
if (Vt += BA <<= 1, 0 > (BA -= Oe[se])) return 0;
for (; 0 < Oe[se]; --Oe[se]) {
if (ie = new W(), (Zt & ht) != wt) {
for (Ne += $t, ot = 1 << (wt = se) - J; 15 > wt && !(0 >= (ot -= Oe[wt])); ) ++wt, ot <<= 1;
At += $t = 1 << (ot = wt - J), P[G + (wt = Zt & ht)].g = ot + J, P[G + wt].value = Ne - G - wt;
}
ie.g = se - J, ie.value = He[Ue++], S(P, Ne + (Zt >> J), Ee, $t, ie), Zt = O(Zt, se);
}
}
return Vt != 2 * st[15] - 1 ? 0 : At;
})(f, d, B, b, Q, _);
}
function W() {
this.value = this.g = 0;
}
function I() {
this.value = this.g = 0;
}
function le() {
this.G = s(5, W), this.H = a(5), this.jc = this.Qb = this.qb = this.nd = 0, this.pd = s(YA, I);
}
function ue(f, d, B, b) {
t(f != null), t(d != null), t(2147483648 > b), f.Ca = 254, f.I = 0, f.b = -8, f.Ka = 0, f.oa = d, f.pa = B, f.Jd = d, f.Yc = B + b, f.Zc = 4 <= b ? B + b - 4 + 1 : B, de(f);
}
function Z(f, d) {
for (var B = 0; 0 < d--; ) B |= Se(f, 128) << d;
return B;
}
function ee(f, d) {
var B = Z(f, d);
return ce(f) ? -B : B;
}
function X(f, d, B, b) {
var Q, _ = 0;
for (t(f != null), t(d != null), t(4294967288 > b), f.Sb = b, f.Ra = 0, f.u = 0, f.h = 0, 4 < b && (b = 4), Q = 0; Q < b; ++Q) _ += d[B + Q] << 8 * Q;
f.Ra = _, f.bb = b, f.oa = d, f.pa = B;
}
function Ae(f) {
for (; 8 <= f.u && f.bb < f.Sb; ) f.Ra >>>= 8, f.Ra += f.oa[f.pa + f.bb] << wn - 8 >>> 0, ++f.bb, f.u -= 8;
$(f) && (f.h = 1, f.u = 0);
}
function oe(f, d) {
if (t(0 <= d), !f.h && d <= ir) {
var B = j(f) & qA[d];
return f.u += d, Ae(f), B;
}
return f.h = 1, f.u = 0;
}
function x() {
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 j(f) {
return f.Ra >>> (f.u & wn - 1) >>> 0;
}
function $(f) {
return t(f.bb <= f.Sb), f.h || f.bb == f.Sb && f.u > wn;
}
function re(f, d) {
f.u = d, f.h = $(f);
}
function pe(f) {
f.u >= cn && (t(f.u >= cn), Ae(f));
}
function de(f) {
t(f != null && f.oa != null), f.pa < f.Zc ? (f.I = (f.oa[f.pa++] | f.I << 8) >>> 0, f.b += 8) : (t(f != null && f.oa != null), f.pa < f.Yc ? (f.b += 8, f.I = f.oa[f.pa++] | f.I << 8) : f.Ka ? f.b = 0 : (f.I <<= 8, f.b += 8, f.Ka = 1));
}
function ce(f) {
return Z(f, 1);
}
function Se(f, d) {
var B = f.Ca;
0 > f.b && de(f);
var b = f.b, Q = B * d >>> 8, _ = (f.I >>> b > Q) + 0;
for (_ ? (B -= Q, f.I -= Q + 1 << b >>> 0) : B = Q + 1, b = B, Q = 0; 256 <= b; ) Q += 8, b >>= 8;
return b = 7 ^ Q + Ka[b], f.b -= b, f.Ca = (B << b) - 1, _;
}
function qe(f, d, B) {
f[d + 0] = B >> 24 & 255, f[d + 1] = B >> 16 & 255, f[d + 2] = B >> 8 & 255, f[d + 3] = 255 & B;
}
function rt(f, d) {
return f[d + 0] | f[d + 1] << 8;
}
function at(f, d) {
return rt(f, d) | f[d + 2] << 16;
}
function dt(f, d) {
return rt(f, d) | rt(f, d + 2) << 16;
}
function D(f, d) {
var B = 1 << d;
return t(f != null), t(0 < d), f.X = a(B), f.X == null ? 0 : (f.Mb = 32 - d, f.Xa = d, 1);
}
function Ie(f, d) {
t(f != null), t(d != null), t(f.Xa == d.Xa), A(d.X, 0, f.X, 0, 1 << d.Xa);
}
function me() {
this.X = [], this.Xa = this.Mb = 0;
}
function ve(f, d, B, b) {
t(B != null), t(b != null);
var Q = B[0], _ = b[0];
return Q == 0 && (Q = (f * _ + d / 2) / d), _ == 0 && (_ = (d * Q + f / 2) / f), 0 >= Q || 0 >= _ ? 0 : (B[0] = Q, b[0] = _, 1);
}
function xe(f, d) {
return f + (1 << d) - 1 >>> d;
}
function Qe(f, d) {
return ((4278255360 & f) + (4278255360 & d) >>> 0 & 4278255360) + ((16711935 & f) + (16711935 & d) >>> 0 & 16711935) >>> 0;
}
function _e(f, d) {
k[d] = function(B, b, Q, _, P, G, J) {
var ie;
for (ie = 0; ie < P; ++ie) {
var Ee = k[f](G[J + ie - 1], Q, _ + ie);
G[J + ie] = Qe(B[b + ie], Ee);
}
};
}
function Pe() {
this.ud = this.hd = this.jd = 0;
}
function je(f, d) {
return ((4278124286 & (f ^ d)) >>> 1) + (f & d) >>> 0;
}
function Ke(f) {
return 0 <= f && 256 > f ? f : 0 > f ? 0 : 255 < f ? 255 : void 0;
}
function et(f, d) {
return Ke(f + (f - d + 0.5 >> 1));
}
function ut(f, d, B) {
return Math.abs(d - B) - Math.abs(f - B);
}
function yt(f, d, B, b, Q, _, P) {
for (b = _[P - 1], B = 0; B < Q; ++B) _[P + B] = b = Qe(f[d + B], b);
}
function Ft(f, d, B, b, Q) {
var _;
for (_ = 0; _ < B; ++_) {
var P = f[d + _], G = P >> 8 & 255, J = 16711935 & (J = (J = 16711935 & P) + ((G << 16) + G));
b[Q + _] = (4278255360 & P) + J >>> 0;
}
}
function Bt(f, d) {
d.jd = 255 & f, d.hd = f >> 8 & 255, d.ud = f >> 16 & 255;
}
function St(f, d, B, b, Q, _) {
var P;
for (P = 0; P < b; ++P) {
var G = d[B + P], J = G >>> 8, ie = G, Ee = 255 & (Ee = (Ee = G >>> 16) + ((f.jd << 24 >> 24) * (J << 24 >> 24) >>> 5));
ie = 255 & (ie = (ie += (f.hd << 24 >> 24) * (J << 24 >> 24) >>> 5) + ((f.ud << 24 >> 24) * (Ee << 24 >> 24) >>> 5)), Q[_ + P] = (4278255360 & G) + (Ee << 16) + ie;
}
}
function bt(f, d, B, b, Q) {
k[d] = function(_, P, G, J, ie, Ee, He, se, Ue) {
for (J = He; J < se; ++J) for (He = 0; He < Ue; ++He) ie[Ee++] = Q(G[b(_[P++])]);
}, k[f] = function(_, P, G, J, ie, Ee, He) {
var se = 8 >> _.b, Ue = _.Ea, Ne = _.K[0], At = _.w;
if (8 > se) for (_ = (1 << _.b) - 1, At = (1 << se) - 1; P < G; ++P) {
var Oe, st = 0;
for (Oe = 0; Oe < Ue; ++Oe) Oe & _ || (st = b(J[ie++])), Ee[He++] = Q(Ne[st & At]), st >>= se;
}
else k["VP8LMapColor" + B](J, ie, Ne, At, Ee, He, P, G, Ue);
};
}
function nA(f, d, B, b, Q) {
for (B = d + B; d < B; ) {
var _ = f[d++];
b[Q++] = _ >> 16 & 255, b[Q++] = _ >> 8 & 255, b[Q++] = 255 & _;
}
}
function qt(f, d, B, b, Q) {
for (B = d + B; d < B; ) {
var _ = f[d++];
b[Q++] = _ >> 16 & 255, b[Q++] = _ >> 8 & 255, b[Q++] = 255 & _, b[Q++] = _ >> 24 & 255;
}
}
function Ot(f, d, B, b, Q) {
for (B = d + B; d < B; ) {
var _ = (P = f[d++]) >> 16 & 240 | P >> 12 & 15, P = 240 & P | P >> 28 & 15;
b[Q++] = _, b[Q++] = P;
}
}
function Pt(f, d, B, b, Q) {
for (B = d + B; d < B; ) {
var _ = (P = f[d++]) >> 16 & 248 | P >> 13 & 7, P = P >> 5 & 224 | P >> 3 & 31;
b[Q++] = _, b[Q++] = P;
}
}
function sA(f, d, B, b, Q) {
for (B = d + B; d < B; ) {
var _ = f[d++];
b[Q++] = 255 & _, b[Q++] = _ >> 8 & 255, b[Q++] = _ >> 16 & 255;
}
}
function kt(f, d, B, b, Q, _) {
if (_ == 0) for (B = d + B; d < B; ) qe(b, ((_ = f[d++])[0] >> 24 | _[1] >> 8 & 65280 | _[2] << 8 & 16711680 | _[3] << 24) >>> 0), Q += 32;
else A(b, Q, f, d, B);
}
function hA(f, d) {
k[d][0] = k[f + "0"], k[d][1] = k[f + "1"], k[d][2] = k[f + "2"], k[d][3] = k[f + "3"], k[d][4] = k[f + "4"], k[d][5] = k[f + "5"], k[d][6] = k[f + "6"], k[d][7] = k[f + "7"], k[d][8] = k[f + "8"], k[d][9] = k[f + "9"], k[d][10] = k[f + "10"], k[d][11] = k[f + "11"], k[d][12] = k[f + "12"], k[d][13] = k[f + "13"], k[d][14] = k[f + "0"], k[d][15] = k[f + "0"];
}
function Nt(f) {
return f == Af || f == rf || f == $l || f == nf;
}
function Ce() {
this.eb = [], this.size = this.A = this.fb = 0;
}
function Ve() {
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 Re() {
this.Rd = this.height = this.width = this.S = 0, this.f = {}, this.f.RGBA = new Ce(), this.f.kb = new Ve(), this.sd = null;
}
function $e() {
this.width = [0], this.height = [0], this.Pd = [0], this.Qd = [0], this.format = [0];
}
function xt() {
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 Ht(f) {
return alert("todo:WebPSamplerProcessPlane"), f.T;
}
function Mt(f, d) {
var B = f.T, b = d.ba.f.RGBA, Q = b.eb, _ = b.fb + f.ka * b.A, P = Ta[d.ba.S], G = f.y, J = f.O, ie = f.f, Ee = f.N, He = f.ea, se = f.W, Ue = d.cc, Ne = d.dc, At = d.Mc, Oe = d.Nc, st = f.ka, ot = f.ka + f.T, wt = f.U, ht = wt + 1 >> 1;
for (st == 0 ? P(G, J, null, null, ie, Ee, He, se, ie, Ee, He, se, Q, _, null, null, wt) : (P(d.ec, d.fc, G, J, Ue, Ne, At, Oe, ie, Ee, He, se, Q, _ - b.A, Q, _, wt), ++B); st + 2 < ot; st += 2) Ue = ie, Ne = Ee, At = He, Oe = se, Ee += f.Rc, se += f.Rc, _ += 2 * b.A, P(G, (J += 2 * f.fa) - f.fa, G, J, Ue, Ne, At, Oe, ie, Ee, He, se, Q, _ - b.A, Q, _, wt);
return J += f.fa, f.j + ot < f.o ? (A(d.ec, d.fc, G, J, wt), A(d.cc, d.dc, ie, Ee, ht), A(d.Mc, d.Nc, He, se, ht), B--) : 1 & ot || P(G, J, null, null, ie, Ee, He, se, ie, Ee, He, se, Q, _ + b.A, null, null, wt), B;
}
function SA(f, d, B) {
var b = f.F, Q = [f.J];
if (b != null) {
var _ = f.U, P = d.ba.S, G = P == Yl || P == $l;
d = d.ba.f.RGBA;
var J = [0], ie = f.ka;
J[0] = f.T, f.Kb && (ie == 0 ? --J[0] : (--ie, Q[0] -= f.width), f.j + f.ka + f.T == f.o && (J[0] = f.o - f.j - ie));
var Ee = d.eb;
ie = d.fb + ie * d.A, f = jv(b, Q[0], f.width, _, J, Ee, ie + (G ? 0 : 3), d.A), t(B == J), f && Nt(P) && Vo(Ee, ie, G, _, J, d.A);
}
return 0;
}
function JA(f) {
var d = f.ma, B = d.ba.S, b = 11 > B, Q = B == Wl || B == Gl || B == Yl || B == tf || B == 12 || Nt(B);
if (d.memory = null, d.Ib = null, d.Jb = null, d.Nd = null, !bs(d.Oa, f, Q ? 11 : 12)) return 0;
if (Q && Nt(B) && mt(), f.da) alert("todo:use_scaling");
else {
if (b) {
if (d.Ib = Ht, f.Kb) {
if (B = f.U + 1 >> 1, d.memory = a(f.U + 2 * B), d.memory == null) return 0;
d.ec = d.memory, d.fc = 0, d.cc = d.ec, d.dc = d.fc + f.U, d.Mc = d.cc, d.Nc = d.dc + B, d.Ib = Mt, mt();
}
} else alert("todo:EmitYUV");
Q && (d.Jb = SA, b && Xe());
}
if (b && !s0) {
for (f = 0; 256 > f; ++f) L4[f] = 89858 * (f - 128) + Xl >> zl, N4[f] = -22014 * (f - 128) + Xl, _4[f] = -45773 * (f - 128), I4[f] = 113618 * (f - 128) + Xl >> zl;
for (f = jo; f < of; ++f) d = 76283 * (f - 16) + Xl >> zl, M4[f - jo] = Jt(d, 255), O4[f - jo] = Jt(d + 8 >> 4, 15);
s0 = 1;
}
return 1;
}
function Lt(f) {
var d = f.ma, B = f.U, b = f.T;
return t(!(1 & f.ka)), 0 >= B || 0 >= b ? 0 : (B = d.Ib(f, d), d.Jb != null && d.Jb(f, d, B), d.Dc += B, 1);
}
function Qr(f) {
f.ma.memory = null;
}
function Fr(f, d, B, b) {
return oe(f, 8) != 47 ? 0 : (d[0] = oe(f, 14) + 1, B[0] = oe(f, 14) + 1, b[0] = oe(f, 1), oe(f, 3) != 0 ? 0 : !f.h);
}
function xr(f, d) {
if (4 > f) return f + 1;
var B = f - 2 >> 1;
return (2 + (1 & f) << B) + oe(d, B) + 1;
}
function PA(f, d) {
return 120 < d ? d - 120 : 1 <= (B = ((B = w4[d - 1]) >> 4) * f + (8 - (15 & B))) ? B : 1;
var B;
}
function CA(f, d, B) {
var b = j(B), Q = f[d += 255 & b].g - 8;
return 0 < Q && (re(B, B.u + 8), b = j(B), d += f[d].value, d += b & (1 << Q) - 1), re(B, B.u + f[d].g), f[d].value;
}
function MA(f, d, B) {
return B.g += f.g, B.value += f.value << d >>> 0, t(8 >= B.g), f.g;
}
function OA(f, d, B) {
var b = f.xc;
return t((d = b == 0 ? 0 : f.vc[f.md * (B >> b) + (d >> b)]) < f.Wb), f.Ya[d];
}
function Dr(f, d, B, b) {
var Q = f.ab, _ = f.c * d, P = f.C;
d = P + d;
var G = B, J = b;
for (b = f.Ta, B = f.Ua; 0 < Q--; ) {
var ie = f.gc[Q], Ee = P, He = d, se = G, Ue = J, Ne = (J = b, G = B, ie.Ea);
switch (t(Ee < He), t(He <= ie.nc), ie.hc) {
case 2:
Tr(se, Ue, (He - Ee) * Ne, J, G);
break;
case 0:
var At = Ee, Oe = He, st = J, ot = G, wt = ($t = ie).Ea;
At == 0 && (ji(se, Ue, null, null, 1, st, ot), yt(se, Ue + 1, 0, 0, wt - 1, st, ot + 1), Ue += wt, ot += wt, ++At);
for (var ht = 1 << $t.b, Zt = ht - 1, Vt = xe(wt, $t.b), BA = $t.K, $t = $t.w + (At >> $t.b) * Vt; At < Oe; ) {
var DA = BA, nn = $t, yA = 1;
for (si(se, Ue, st, ot - wt, 1, st, ot); yA < wt; ) {
var zt = (yA & ~Zt) + ht;
zt > wt && (zt = wt), (0, Ro[DA[nn++] >> 8 & 15])(se, Ue + +yA, st, ot + yA - wt, zt - yA, st, ot + yA), yA = zt;
}
Ue += wt, ot += wt, ++At & Zt || ($t += Vt);
}
He != ie.nc && A(J, G - Ne, J, G + (He - Ee - 1) * Ne, Ne);
break;
case 1:
for (Ne = se, Oe = Ue, wt = (se = ie.Ea) - (ot = se & ~(st = (Ue = 1 << ie.b) - 1)), At = xe(se, ie.b), ht = ie.K, ie = ie.w + (Ee >> ie.b) * At; Ee < He; ) {
for (Zt = ht, Vt = ie, BA = new Pe(), $t = Oe + ot, DA = Oe + se; Oe < $t; ) Bt(Zt[Vt++], BA), Ho(BA, Ne, Oe, Ue, J, G), Oe += Ue, G += Ue;
Oe < DA && (Bt(Zt[Vt++], BA), Ho(BA, Ne, Oe, wt, J, G), Oe += wt, G += wt), ++Ee & st || (ie += At);
}
break;
case 3:
if (se == J && Ue == G && 0 < ie.b) {
for (Oe = J, se = Ne = G + (He - Ee) * Ne - (ot = (He - Ee) * xe(ie.Ea, ie.b)), Ue = J, st = G, At = [], ot = (wt = ot) - 1; 0 <= ot; --ot) At[ot] = Ue[st + ot];
for (ot = wt - 1; 0 <= ot; --ot) Oe[se + ot] = At[ot];
ao(ie, Ee, He, J, Ne, J, G);
} else ao(ie, Ee, He, se, Ue, J, G);
}
G = b, J = B;
}
J != B && A(b, B, G, J, _);
}
function Sr(f, d) {
var B = f.V, b = f.Ba + f.c * f.C, Q = d - f.C;
if (t(d <= f.l.o), t(16 >= Q), 0 < Q) {
var _ = f.l, P = f.Ta, G = f.Ua, J = _.width;
if (Dr(f, Q, B, b), Q = G = [G], t((B = f.C) < (b = d)), t(_.v < _.va), b > _.o && (b = _.o), B < _.j) {
var ie = _.j - B;
B = _.j, Q[0] += ie * J;
}
if (B >= b ? B = 0 : (Q[0] += 4 * _.v, _.ka = B - _.j, _.U = _.va - _.v, _.T = b - B, B = 1), B) {
if (G = G[0], 11 > (B = f.ca).S) {
var Ee = B.f.RGBA, He = (b = B.S, Q = _.U, _ = _.T, ie = Ee.eb, Ee.A), se = _;
for (Ee = Ee.fb + f.Ma * Ee.A; 0 < se--; ) {
var Ue = P, Ne = G, At = Q, Oe = ie, st = Ee;
switch (b) {
case jl:
Po(Ue, Ne, At, Oe, st);
break;
case Wl:
Wi(Ue, Ne, At, Oe, st);
break;
case Af:
Wi(Ue, Ne, At, Oe, st), Vo(Oe, st, 0, At, 1, 0);
break;
case Jv:
Cs(Ue, Ne, At, Oe, st);
break;
case Gl:
kt(Ue, Ne, At, Oe, st, 1);
break;
case rf:
kt(Ue, Ne, At, Oe, st, 1), Vo(Oe, st, 0, At, 1, 0);
break;
case Yl:
kt(Ue, Ne, At, Oe, st, 0);
break;
case $l:
kt(Ue, Ne, At, Oe, st, 0), Vo(Oe, st, 1, At, 1, 0);
break;
case tf:
Gi(Ue, Ne, At, Oe, st);
break;
case nf:
Gi(Ue, Ne, At, Oe, st), qv(Oe, st, At, 1, 0);
break;
case Zv:
Yi(Ue, Ne, At, Oe, st);
break;
default:
t(0);
}
G += J, Ee += He;
}
f.Ma += _;
} else alert("todo:EmitRescaledRowsYUVA");
t(f.Ma <= B.height);
}
}
f.C = d, t(f.C <= f.i);
}
function LA(f) {
var d;
if (0 < f.ua) return 0;
for (d = 0; d < f.Wb; ++d) {
var B = f.Ya[d].G, b = f.Ya[d].H;
if (0 < B[1][b[1] + 0].g || 0 < B[2][b[2] + 0].g || 0 < B[3][b[3] + 0].g) return 0;
}
return 1;
}
function pr(f, d, B, b, Q, _) {
if (f.Z != 0) {
var P = f.qd, G = f.rd;
for (t(Xi[f.Z] != null); d < B; ++d) Xi[f.Z](P, G, b, Q, b, Q, _), P = b, G = Q, Q += _;
f.qd = P, f.rd = G;
}
}
function kr(f, d) {
var B = f.l.ma, b = B.Z == 0 || B.Z == 1 ? f.l.j : f.C;
if (b = f.C < b ? b : f.C, t(d <= f.l.o), d > b) {
var Q = f.l.width, _ = B.ca, P = B.tb + Q * b, G = f.V, J = f.Ba + f.c * b, ie = f.gc;
t(f.ab == 1), t(ie[0].hc == 3), oi(ie[0], b, d, G, J, _, P), pr(B, b, d, _, P, Q);
}
f.C = f.Ma = d;
}
function ZA(f, d, B, b, Q, _, P) {
var G = f.$ / b, J = f.$ % b, ie = f.m, Ee = f.s, He = B + f.$, se = He;
Q = B + b * Q;
var Ue = B + b * _, Ne = 280 + Ee.ua, At = f.Pb ? G : 16777216, Oe = 0 < Ee.ua ? Ee.Wa : null, st = Ee.wc, ot = He < Ue ? OA(Ee, J, G) : null;
t(f.C < _), t(Ue <= Q);
var wt = !1;
e: for (; ; ) {
for (; wt || He < Ue; ) {
var ht = 0;
if (G >= At) {
var Zt = He - B;
t((At = f).Pb), At.wd = At.m, At.xd = Zt, 0 < At.s.ua && Ie(At.s.Wa, At.s.vb), At = G + y4;
}
if (J & st || (ot = OA(Ee, J, G)), t(ot != null), ot.Qb && (d[He] = ot.qb, wt = !0), !wt) if (pe(ie), ot.jc) {
ht = ie, Zt = d;
var Vt = He, BA = ot.pd[j(ht) & YA - 1];
t(ot.jc), 256 > BA.g ? (re(ht, ht.u + BA.g), Zt[Vt] = BA.value, ht = 0) : (re(ht, ht.u + BA.g - 256), t(256 <= BA.value), ht = BA.value), ht == 0 && (wt = !0);
} else ht = CA(ot.G[0], ot.H[0], ie);
if (ie.h) break;
if (wt || 256 > ht) {
if (!wt) if (ot.nd) d[He] = (ot.qb | ht << 8) >>> 0;
else {
if (pe(ie), wt = CA(ot.G[1], ot.H[1], ie), pe(ie), Zt = CA(ot.G[2], ot.H[2], ie), Vt = CA(ot.G[3], ot.H[3], ie), ie.h) break;
d[He] = (Vt << 24 | wt << 16 | ht << 8 | Zt) >>> 0;
}
if (wt = !1, ++He, ++J >= b && (J = 0, ++G, P != null && G <= _ && !(G % 16) && P(f, G), Oe != null)) for (; se < He; ) ht = d[se++], Oe.X[(506832829 * ht & 4294967295) >>> Oe.Mb] = ht;
} else if (280 > ht) {
if (ht = xr(ht - 256, ie), Zt = CA(ot.G[4], ot.H[4], ie), pe(ie), Zt = PA(b, Zt = xr(Zt, ie)), ie.h) break;
if (He - B < Zt || Q - He < ht) break e;
for (Vt = 0; Vt < ht; ++Vt) d[He + Vt] = d[He + Vt - Zt];
for (He += ht, J += ht; J >= b; ) J -= b, ++G, P != null && G <= _ && !(G % 16) && P(f, G);
if (t(He <= Q), J & st && (ot = OA(Ee, J, G)), Oe != null) for (; se < He; ) ht = d[se++], Oe.X[(506832829 * ht & 4294967295) >>> Oe.Mb] = ht;
} else {
if (!(ht < Ne)) break e;
for (wt = ht - 280, t(Oe != null); se < He; ) ht = d[se++], Oe.X[(506832829 * ht & 4294967295) >>> Oe.Mb] = ht;
ht = He, t(!(wt >>> (Zt = Oe).Xa)), d[ht] = Zt.X[wt], wt = !0;
}
wt || t(ie.h == $(ie));
}
if (f.Pb && ie.h && He < Q) t(f.m.h), f.a = 5, f.m = f.wd, f.$ = f.xd, 0 < f.s.ua && Ie(f.s.vb, f.s.Wa);
else {
if (ie.h) break e;
P != null && P(f, G > _ ? _ : G), f.a = 0, f.$ = He - B;
}
return 1;
}
return f.a = 3, 0;
}
function Lr(f) {
t(f != null), f.vc = null, f.yc = null, f.Ya = null;
var d = f.Wa;
d != null && (d.X = null), f.vb = null, t(f != null);
}
function Un() {
var f = new oA();
return f == null ? null : (f.a = 0, f.xb = A0, hA("Predictor", "VP8LPredictors"), hA("Predictor", "VP8LPredictors_C"), hA("PredictorAdd", "VP8LPredictorsAdd"), hA("PredictorAdd", "VP8LPredictorsAdd_C"), Tr = Ft, Ho = St, Po = nA, Wi = qt, Gi = Ot, Yi = Pt, Cs = sA, k.VP8LMapColor32b = xa, k.VP8LMapColor8b = Oo, f);
}
function Dt(f, d, B, b, Q) {
var _ = 1, P = [f], G = [d], J = b.m, ie = b.s, Ee = null, He = 0;
e: for (; ; ) {
if (B) for (; _ && oe(J, 1); ) {
var se = P, Ue = G, Ne = b, At = 1, Oe = Ne.m, st = Ne.gc[Ne.ab], ot = oe(Oe, 2);
if (Ne.Oc & 1 << ot) _ = 0;
else {
switch (Ne.Oc |= 1 << ot, st.hc = ot, st.Ea = se[0], st.nc = Ue[0], st.K = [null], ++Ne.ab, t(4 >= Ne.ab), ot) {
case 0:
case 1:
st.b = oe(Oe, 3) + 2, At = Dt(xe(st.Ea, st.b), xe(st.nc, st.b), 0, Ne, st.K), st.K = st.K[0];
break;
case 3:
var wt, ht = oe(Oe, 8) + 1, Zt = 16 < ht ? 0 : 4 < ht ? 1 : 2 < ht ? 2 : 3;
if (se[0] = xe(st.Ea, Zt), st.b = Zt, wt = At = Dt(ht, 1, 0, Ne, st.K)) {
var Vt, BA = ht, $t = st, DA = 1 << (8 >> $t.b), nn = a(DA);
if (nn == null) wt = 0;
else {
var yA = $t.K[0], zt = $t.w;
for (nn[0] = $t.K[0][0], Vt = 1; Vt < 1 * BA; ++Vt) nn[Vt] = Qe(yA[zt + Vt], nn[Vt - 1]);
for (; Vt < 4 * DA; ++Vt) nn[Vt] = 0;
$t.K[0] = null, $t.K[0] = nn, wt = 1;
}
}
At = wt;
break;
case 2:
break;
default:
t(0);
}
_ = At;
}
}
if (P = P[0], G = G[0], _ && oe(J, 1) && !(_ = 1 <= (He = oe(J, 4)) && 11 >= He)) {
b.a = 3;
break e;
}
var Tt;
if (Tt = _) t: {
var qr, vA, _A, mr = b, Bn = P, Vn = G, Nr = He, Ln = B, qn = mr.m, an = mr.s, RA = [null], tr = 1, Mr = 0, Ar = B4[Nr];
A: for (; ; ) {
if (Ln && oe(qn, 1)) {
var yn = oe(qn, 3) + 2, qa = xe(Bn, yn), jr = xe(Vn, yn), ra = qa * jr;
if (!Dt(qa, jr, 0, mr, RA)) break A;
for (RA = RA[0], an.xc = yn, qr = 0; qr < ra; ++qr) {
var lr = RA[qr] >> 8 & 65535;
RA[qr] = lr, lr >= tr && (tr = lr + 1);
}
}
if (qn.h) break A;
for (vA = 0; 5 > vA; ++vA) {
var sn = e0[vA];
!vA && 0 < Nr && (sn += 1 << Nr), Mr < sn && (Mr = sn);
}
var ha = s(tr * Ar, W), jn = tr, da = s(jn, le);
if (da == null) var ga = null;
else t(65536 >= jn), ga = da;
var na = a(Mr);
if (ga == null || na == null || ha == null) {
mr.a = 1;
break A;
}
var pa = ha;
for (qr = _A = 0; qr < tr; ++qr) {
var hr = ga[qr], va = hr.G, ja = hr.H, Fs = 0, bi = 1, bn = 0;
for (vA = 0; 5 > vA; ++vA) {
sn = e0[vA], va[vA] = pa, ja[vA] = _A, !vA && 0 < Nr && (sn += 1 << Nr);
n: {
var Zl, lf = sn, eu = mr, Wo = na, P4 = pa, K4 = _A, uf = 0, Ji = eu.m, V4 = oe(Ji, 1);
if (n(Wo, 0, 0, lf), V4) {
var q4 = oe(Ji, 1) + 1, j4 = oe(Ji, 1), u0 = oe(Ji, j4 == 0 ? 1 : 8);
Wo[u0] = 1, q4 == 2 && (Wo[u0 = oe(Ji, 8)] = 1);
var tu = 1;
} else {
var c0 = a(19), f0 = oe(Ji, 4) + 4;
if (19 < f0) {
eu.a = 3;
var Au = 0;
break n;
}
for (Zl = 0; Zl < f0; ++Zl) c0[m4[Zl]] = oe(Ji, 3);
var cf = void 0, Go = void 0, h0 = eu, W4 = c0, ru = lf, d0 = Wo, ff = 0, Zi = h0.m, g0 = 8, p0 = s(128, W);
r: for (; U(p0, 0, 7, W4, 19); ) {
if (oe(Zi, 1)) {
var G4 = 2 + 2 * oe(Zi, 3);
if ((cf = 2 + oe(Zi, G4)) > ru) break r;
} else cf = ru;
for (Go = 0; Go < ru && cf--; ) {
pe(Zi);
var v0 = p0[0 + (127 & j(Zi))];
re(Zi, Zi.u + v0.g);
var so = v0.value;
if (16 > so) d0[Go++] = so, so != 0 && (g0 = so);
else {
var Y4 = so == 16, m0 = so - 16, $4 = p4[m0], w0 = oe(Zi, g4[m0]) + $4;
if (Go + w0 > ru) break r;
for (var z4 = Y4 ? g0 : 0; 0 < w0--; ) d0[Go++] = z4;
}
}
ff = 1;
break r;
}
ff || (h0.a = 3), tu = ff;
}
(tu = tu && !Ji.h) && (uf = U(P4, K4, 8, Wo, lf)), tu && uf != 0 ? Au = uf : (eu.a = 3, Au = 0);
}
if (Au == 0) break A;
if (bi && v4[vA] == 1 && (bi = pa[_A].g == 0), Fs += pa[_A].g, _A += Au, 3 >= vA) {
var Yo, hf = na[0];
for (Yo = 1; Yo < sn; ++Yo) na[Yo] > hf && (hf = na[Yo]);
bn += hf;
}
}
if (hr.nd = bi, hr.Qb = 0, bi && (hr.qb = (va[3][ja[3] + 0].value << 24 | va[1][ja[1] + 0].value << 16 | va[2][ja[2] + 0].value) >>> 0, Fs == 0 && 256 > va[0][ja[0] + 0].value && (hr.Qb = 1, hr.qb += va[0][ja[0] + 0].value << 8)), hr.jc = !hr.Qb && 6 > bn, hr.jc) {
var nu, Ci = hr;
for (nu = 0; nu < YA; ++nu) {
var es = nu, ts = Ci.pd[es], au = Ci.G[0][Ci.H[0] + es];
256 <= au.value ? (ts.g = au.g + 256, ts.value = au.value) : (ts.g = 0, ts.value = 0, es >>= MA(au, 8, ts), es >>= MA(Ci.G[1][Ci.H[1] + es], 16, ts), es >>= MA(Ci.G[2][Ci.H[2] + es], 0, ts), MA(Ci.G[3][Ci.H[3] + es], 24, ts));
}
}
}
an.vc = RA, an.Wb = tr, an.Ya = ga, an.yc = ha, Tt = 1;
break t;
}
Tt = 0;
}
if (!(_ = Tt)) {
b.a = 3;
break e;
}
if (0 < He) {
if (ie.ua = 1 << He, !D(ie.Wa, He)) {
b.a = 1, _ = 0;
break e;
}
} else ie.ua = 0;
var df = b, B0 = P, X4 = G, gf = df.s, pf = gf.xc;
if (df.c = B0, df.i = X4, gf.md = xe(B0, pf), gf.wc = pf == 0 ? -1 : (1 << pf) - 1, B) {
b.xb = U4;
break e;
}
if ((Ee = a(P * G)) == null) {
b.a = 1, _ = 0;
break e;
}
_ = (_ = ZA(b, Ee, 0, P, G, G, null)) && !J.h;
break e;
}
return _ ? (Q != null ? Q[0] = Ee : (t(Ee == null), t(B)), b.$ = 0, B || Lr(ie)) : Lr(ie), _;
}
function be(f, d) {
var B = f.c * f.i, b = B + d + 16 * d;
return t(f.c <= d), f.V = a(b), f.V == null ? (f.Ta = null, f.Ua = 0, f.a = 1, 0) : (f.Ta = f.V, f.Ua = f.Ba + B + d, 1);
}
function z(f, d) {
var B = f.C, b = d - B, Q = f.V, _ = f.Ba + f.c * B;
for (t(d <= f.l.o); 0 < b; ) {
var P = 16 < b ? 16 : b, G = f.l.ma, J = f.l.width, ie = J * P, Ee = G.ca, He = G.tb + J * B, se = f.Ta, Ue = f.Ua;
Dr(f, P, Q, _), Wv(se, Ue, Ee, He, ie), pr(G, B, B + P, Ee, He, J), b -= P, Q += P * f.c, B += P;
}
t(B == d), f.C = f.Ma = d;
}
function ge() {
this.ub = this.yd = this.td = this.Rb = 0;
}
function We() {
this.Kd = this.Ld = this.Ud = this.Td = this.i = this.c = 0;
}
function it() {
this.Fb = this.Bb = this.Cb = 0, this.Zb = a(4), this.Lb = a(4);
}
function V() {
this.Yb = (function() {
var f = [];
return (function d(B, b, Q) {
for (var _ = Q[b], P = 0; P < _ && (B.push(Q.length > b + 1 ? [] : 0), !(Q.length < b + 1)); P++) d(B[P], b + 1, Q);
})(f, 0, [3, 11]), f;
})();
}
function Be() {
this.jb = a(3), this.Wc = i([4, 8], V), this.Xc = i([4, 17], V);
}
function Fe() {
this.Pc = this.wb = this.Tb = this.zd = 0, this.vd = new a(4), this.od = new a(4);
}
function ke() {
this.ld = this.La = this.dd = this.tc = 0;
}
function Ze() {
this.Na = this.la = 0;
}
function Me() {
this.Sc = [0, 0], this.Eb = [0, 0], this.Qc = [0, 0], this.ia = this.lc = 0;
}
function tt() {
this.ad = a(384), this.Za = 0, this.Ob = a(16), this.$b = this.Ad = this.ia = this.Gc = this.Hc = this.Dd = 0;
}
function Je() {
this.uc = this.M = this.Nb = 0, this.wa = Array(new ke()), this.Y = 0, this.ya = Array(new tt()), this.aa = 0, this.l = new fA();
}
function ft() {
this.y = a(16), this.f = a(8), this.ea = a(8);
}
function Et() {
this.cb = this.a = 0, this.sc = "", this.m = new x(), this.Od = new ge(), this.Kc = new We(), this.ed = new Fe(), this.Qa = new it(), this.Ic = this.$c = this.Aa = 0, this.D = new Je(), this.Xb = this.Va = this.Hb = this.zb = this.yb = this.Ub = this.za = 0, this.Jc = s(8, x), this.ia = 0, this.pb = s(4, Me), this.Pa = new Be(), this.Bd = this.kc = 0, this.Ac = [], this.Bc = 0, this.zc = [0, 0, 0, 0], this.Gd = Array(new ft()), this.Hd = 0, this.rb = Array(new Ze()), this.sb = 0, this.wa = Array(new ke()), 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 tt()), this.L = this.aa = 0, this.gd = i([4, 2], ke), 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 Jt(f, d) {
return 0 > f ? 0 : f > d ? d : f;
}
function fA() {
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 gA() {
var f = new Et();
return f != null && (f.a = 0, f.sc = "OK", f.cb = 0, f.Xb = 0, qo || (qo = UA)), f;
}
function Xt(f, d, B) {
return f.a == 0 && (f.a = d, f.sc = B, f.cb = 0), 0;
}
function tA(f, d, B) {
return 3 <= B && f[d + 0] == 157 && f[d + 1] == 1 && f[d + 2] == 42;
}
function Gt(f, d) {
if (f == null) return 0;
if (f.a = 0, f.sc = "OK", d == null) return Xt(f, 2, "null VP8Io passed to VP8GetHeaders()");
var B = d.data, b = d.w, Q = d.ha;
if (4 > Q) return Xt(f, 7, "Truncated header.");
var _ = B[b + 0] | B[b + 1] << 8 | B[b + 2] << 16, P = f.Od;
if (P.Rb = !(1 & _), P.td = _ >> 1 & 7, P.yd = _ >> 4 & 1, P.ub = _ >> 5, 3 < P.td) return Xt(f, 3, "Incorrect keyframe parameters.");
if (!P.yd) return Xt(f, 4, "Frame not displayable.");
b += 3, Q -= 3;
var G = f.Kc;
if (P.Rb) {
if (7 > Q) return Xt(f, 7, "cannot parse picture header");
if (!tA(B, b, Q)) return Xt(f, 3, "Bad code word");
G.c = 16383 & (B[b + 4] << 8 | B[b + 3]), G.Td = B[b + 4] >> 6, G.i = 16383 & (B[b + 6] << 8 | B[b + 5]), G.Ud = B[b + 6] >> 6, b += 7, Q -= 7, f.za = G.c + 15 >> 4, f.Ub = G.i + 15 >> 4, d.width = G.c, d.height = G.i, d.Da = 0, d.j = 0, d.v = 0, d.va = d.width, d.o = d.height, d.da = 0, d.ib = d.width, d.hb = d.height, d.U = d.width, d.T = d.height, n((_ = f.Pa).jb, 0, 255, _.jb.length), t((_ = f.Qa) != null), _.Cb = 0, _.Bb = 0, _.Fb = 1, n(_.Zb, 0, 0, _.Zb.length), n(_.Lb, 0, 0, _.Lb);
}
if (P.ub > Q) return Xt(f, 7, "bad partition length");
ue(_ = f.m, B, b, P.ub), b += P.ub, Q -= P.ub, P.Rb && (G.Ld = ce(_), G.Kd = ce(_)), G = f.Qa;
var J, ie = f.Pa;
if (t(_ != null), t(G != null), G.Cb = ce(_), G.Cb) {
if (G.Bb = ce(_), ce(_)) {
for (G.Fb = ce(_), J = 0; 4 > J; ++J) G.Zb[J] = ce(_) ? ee(_, 7) : 0;
for (J = 0; 4 > J; ++J) G.Lb[J] = ce(_) ? ee(_, 6) : 0;
}
if (G.Bb) for (J = 0; 3 > J; ++J) ie.jb[J] = ce(_) ? Z(_, 8) : 255;
} else G.Bb = 0;
if (_.Ka) return Xt(f, 3, "cannot parse segment header");
if ((G = f.ed).zd = ce(_), G.Tb = Z(_, 6), G.wb = Z(_, 3), G.Pc = ce(_), G.Pc && ce(_)) {
for (ie = 0; 4 > ie; ++ie) ce(_) && (G.vd[ie] = ee(_, 6));
for (ie = 0; 4 > ie; ++ie) ce(_) && (G.od[ie] = ee(_, 6));
}
if (f.L = G.Tb == 0 ? 0 : G.zd ? 1 : 2, _.Ka) return Xt(f, 3, "cannot parse filter header");
var Ee = Q;
if (Q = J = b, b = J + Ee, G = Ee, f.Xb = (1 << Z(f.m, 2)) - 1, Ee < 3 * (ie = f.Xb)) B = 7;
else {
for (J += 3 * ie, G -= 3 * ie, Ee = 0; Ee < ie; ++Ee) {
var He = B[Q + 0] | B[Q + 1] << 8 | B[Q + 2] << 16;
He > G && (He = G), ue(f.Jc[+Ee], B, J, He), J += He, G -= He, Q += 3;
}
ue(f.Jc[+ie], B, J, G), B = J < b ? 0 : 5;
}
if (B != 0) return Xt(f, B, "cannot parse partitions");
for (B = Z(J = f.m, 7), Q = ce(J) ? ee(J, 4) : 0, b = ce(J) ? ee(J, 4) : 0, G = ce(J) ? ee(J, 4) : 0, ie = ce(J) ? ee(J, 4) : 0, J = ce(J) ? ee(J, 4) : 0, Ee = f.Qa, He = 0; 4 > He; ++He) {
if (Ee.Cb) {
var se = Ee.Zb[He];
Ee.Fb || (se += B);
} else {
if (0 < He) {
f.pb[He] = f.pb[0];
continue;
}
se = B;
}
var Ue = f.pb[He];
Ue.Sc[0] = af[Jt(se + Q, 127)], Ue.Sc[1] = sf[Jt(se + 0, 127)], Ue.Eb[0] = 2 * af[Jt(se + b, 127)], Ue.Eb[1] = 101581 * sf[Jt(se + G, 127)] >> 16, 8 > Ue.Eb[1] && (Ue.Eb[1] = 8), Ue.Qc[0] = af[Jt(se + ie, 117)], Ue.Qc[1] = sf[Jt(se + J, 127)], Ue.lc = se + J;
}
if (!P.Rb) return Xt(f, 4, "Not a key frame.");
for (ce(_), P = f.Pa, B = 0; 4 > B; ++B) {
for (Q = 0; 8 > Q; ++Q) for (b = 0; 3 > b; ++b) for (G = 0; 11 > G; ++G) ie = Se(_, x4[B][Q][b][G]) ? Z(_, 8) : E4[B][Q][b][G], P.Wc[B][Q].Yb[b][G] = ie;
for (Q = 0; 17 > Q; ++Q) P.Xc[B][Q] = P.Wc[B][S4[Q]];
}
return f.kc = ce(_), f.kc && (f.Bd = Z(_, 8)), f.cb = 1;
}
function UA(f, d, B, b, Q, _, P) {
var G = d[Q].Yb[B];
for (B = 0; 16 > Q; ++Q) {
if (!Se(f, G[B + 0])) return Q;
for (; !Se(f, G[B + 1]); ) if (G = d[++Q].Yb[0], B = 0, Q == 16) return 16;
var J = d[Q + 1].Yb;
if (Se(f, G[B + 2])) {
var ie = f, Ee = 0;
if (Se(ie, (se = G)[(He = B) + 3])) if (Se(ie, se[He + 6])) {
for (G = 0, He = 2 * (Ee = Se(ie, se[He + 8])) + (se = Se(ie, se[He + 9 + Ee])), Ee = 0, se = b4[He]; se[G]; ++G) Ee += Ee + Se(ie, se[G]);
Ee += 3 + (8 << He);
} else Se(ie, se[He + 7]) ? (Ee = 7 + 2 * Se(ie, 165), Ee += Se(ie, 145)) : Ee = 5 + Se(ie, 159);
else Ee = Se(ie, se[He + 4]) ? 3 + Se(ie, se[He + 5]) : 2;
G = J[2];
} else Ee = 1, G = J[1];
J = P + C4[Q], 0 > (ie = f).b && de(ie);
var He, se = ie.b, Ue = (He = ie.Ca >> 1) - (ie.I >> se) >> 31;
--ie.b, ie.Ca += Ue, ie.Ca |= 1, ie.I -= (He + 1 & Ue) << se, _[J] = ((Ee ^ Ue) - Ue) * b[(0 < Q) + 0];
}
return 16;
}
function FA(f) {
var d = f.rb[f.sb - 1];
d.la = 0, d.Na = 0, n(f.zc, 0, 0, f.zc.length), f.ja = 0;
}
function IA(f, d, B, b, Q) {
Q = f[d + B + 32 * b] + (Q >> 3), f[d + B + 32 * b] = -256 & Q ? 0 > Q ? 0 : 255 : Q;
}
function aA(f, d, B, b, Q, _) {
IA(f, d, 0, B, b + Q), IA(f, d, 1, B, b + _), IA(f, d, 2, B, b - _), IA(f, d, 3, B, b - Q);
}
function An(f) {
return (20091 * f >> 16) + f;
}
function Tn(f, d, B, b) {
var Q, _ = 0, P = a(16);
for (Q = 0; 4 > Q; ++Q) {
var G = f[d + 0] + f[d + 8], J = f[d + 0] - f[d + 8], ie = (35468 * f[d + 4] >> 16) - An(f[d + 12]), Ee = An(f[d + 4]) + (35468 * f[d + 12] >> 16);
P[_ + 0] = G + Ee, P[_ + 1] = J + ie, P[_ + 2] = J - ie, P[_ + 3] = G - Ee, _ += 4, d++;
}
for (Q = _ = 0; 4 > Q; ++Q) G = (f = P[_ + 0] + 4) + P[_ + 8], J = f - P[_ + 8], ie = (35468 * P[_ + 4] >> 16) - An(P[_ + 12]), IA(B, b, 0, 0, G + (Ee = An(P[_ + 4]) + (35468 * P[_ + 12] >> 16))), IA(B, b, 1, 0, J + ie), IA(B, b, 2, 0, J - ie), IA(B, b, 3, 0, G - Ee), _++, b += 32;
}
function ea(f, d, B, b) {
var Q = f[d + 0] + 4, _ = 35468 * f[d + 4] >> 16, P = An(f[d + 4]), G = 35468 * f[d + 1] >> 16;
aA(B, b, 0, Q + P, f = An(f[d + 1]), G), aA(B, b, 1, Q + _, f, G), aA(B, b, 2, Q - _, f, G), aA(B, b, 3, Q - P, f, G);
}
function Pn(f, d, B, b, Q) {
Tn(f, d, B, b), Q && Tn(f, d + 16, B, b + 4);
}
function WA(f, d, B, b) {
Es(f, d + 0, B, b, 1), Es(f, d + 32, B, b + 128, 1);
}
function bA(f, d, B, b) {
var Q;
for (f = f[d + 0] + 4, Q = 0; 4 > Q; ++Q) for (d = 0; 4 > d; ++d) IA(B, b, d, Q, f);
}
function nr(f, d, B, b) {
f[d + 0] && $A(f, d + 0, B, b), f[d + 16] && $A(f, d + 16, B, b + 4), f[d + 32] && $A(f, d + 32, B, b + 128), f[d + 48] && $A(f, d + 48, B, b + 128 + 4);
}
function GA(f, d, B, b) {
var Q, _ = a(16);
for (Q = 0; 4 > Q; ++Q) {
var P = f[d + 0 + Q] + f[d + 12 + Q], G = f[d + 4 + Q] + f[d + 8 + Q], J = f[d + 4 + Q] - f[d + 8 + Q], ie = f[d + 0 + Q] - f[d + 12 + Q];
_[0 + Q] = P + G, _[8 + Q] = P - G, _[4 + Q] = ie + J, _[12 + Q] = ie - J;
}
for (Q = 0; 4 > Q; ++Q) P = (f = _[0 + 4 * Q] + 3) + _[3 + 4 * Q], G = _[1 + 4 * Q] + _[2 + 4 * Q], J = _[1 + 4 * Q] - _[2 + 4 * Q], ie = f - _[3 + 4 * Q], B[b + 0] = P + G >> 3, B[b + 16] = ie + J >> 3, B[b + 32] = P - G >> 3, B[b + 48] = ie - J >> 3, b += 64;
}
function cr(f, d, B) {
var b, Q = d - 32, _ = fa, P = 255 - f[Q - 1];
for (b = 0; b < B; ++b) {
var G, J = _, ie = P + f[d - 1];
for (G = 0; G < B; ++G) f[d + G] = J[ie + f[Q + G]];
d += 32;
}
}
function pn(f, d) {
cr(f, d, 4);
}
function ba(f, d) {
cr(f, d, 8);
}
function la(f, d) {
cr(f, d, 16);
}
function Qn(f, d) {
var B;
for (B = 0; 16 > B; ++B) A(f, d + 32 * B, f, d - 32, 16);
}
function Ca(f, d) {
var B;
for (B = 16; 0 < B; --B) n(f, d, f[d - 1], 16), d += 32;
}
function Kr(f, d, B) {
var b;
for (b = 0; 16 > b; ++b) n(d, B + 32 * b, f, 16);
}
function Dn(f, d) {
var B, b = 16;
for (B = 0; 16 > B; ++B) b += f[d - 1 + 32 * B] + f[d + B - 32];
Kr(b >> 5, f, d);
}
function Ir(f, d) {
var B, b = 8;
for (B = 0; 16 > B; ++B) b += f[d - 1 + 32 * B];
Kr(b >> 4, f, d);
}
function kn(f, d) {
var B, b = 8;
for (B = 0; 16 > B; ++B) b += f[d + B - 32];
Kr(b >> 4, f, d);
}
function zs(f, d) {
Kr(128, f, d);
}
function lA(f, d, B) {
return f + 2 * d + B + 2 >> 2;
}
function Mo(f, d) {
var B, b = d - 32;
for (b = new Uint8Array([lA(f[b - 1], f[b + 0], f[b + 1]), lA(f[b + 0], f[b + 1], f[b + 2]), lA(f[b + 1], f[b + 2], f[b + 3]), lA(f[b + 2], f[b + 3], f[b + 4])]), B = 0; 4 > B; ++B) A(f, d + 32 * B, b, 0, b.length);
}
function Xs(f, d) {
var B = f[d - 1], b = f[d - 1 + 32], Q = f[d - 1 + 64], _ = f[d - 1 + 96];
qe(f, d + 0, 16843009 * lA(f[d - 1 - 32], B, b)), qe(f, d + 32, 16843009 * lA(B, b, Q)), qe(f, d + 64, 16843009 * lA(b, Q, _)), qe(f, d + 96, 16843009 * lA(Q, _, _));
}
function Js(f, d) {
var B, b = 4;
for (B = 0; 4 > B; ++B) b += f[d + B - 32] + f[d - 1 + 32 * B];
for (b >>= 3, B = 0; 4 > B; ++B) n(f, d + 32 * B, b, 4);
}
function Ra(f, d) {
var B = f[d - 1 + 0], b = f[d - 1 + 32], Q = f[d - 1 + 64], _ = f[d - 1 - 32], P = f[d + 0 - 32], G = f[d + 1 - 32], J = f[d + 2 - 32], ie = f[d + 3 - 32];
f[d + 0 + 96] = lA(b, Q, f[d - 1 + 96]), f[d + 1 + 96] = f[d + 0 + 64] = lA(B, b, Q), f[d + 2 + 96] = f[d + 1 + 64] = f[d + 0 + 32] = lA(_, B, b), f[d + 3 + 96] = f[d + 2 + 64] = f[d + 1 + 32] = f[d + 0 + 0] = lA(P, _, B), f[d + 3 + 64] = f[d + 2 + 32] = f[d + 1 + 0] = lA(G, P, _), f[d + 3 + 32] = f[d + 2 + 0] = lA(J, G, P), f[d + 3 + 0] = lA(ie, J, G);
}
function vn(f, d) {
var B = f[d + 1 - 32], b = f[d + 2 - 32], Q = f[d + 3 - 32], _ = f[d + 4 - 32], P = f[d + 5 - 32], G = f[d + 6 - 32], J = f[d + 7 - 32];
f[d + 0 + 0] = lA(f[d + 0 - 32], B, b), f[d + 1 + 0] = f[d + 0 + 32] = lA(B, b, Q), f[d + 2 + 0] = f[d + 1 + 32] = f[d + 0 + 64] = lA(b, Q, _), f[d + 3 + 0] = f[d + 2 + 32] = f[d + 1 + 64] = f[d + 0 + 96] = lA(Q, _, P), f[d + 3 + 32] = f[d + 2 + 64] = f[d + 1 + 96] = lA(_, P, G), f[d + 3 + 64] = f[d + 2 + 96] = lA(P, G, J), f[d + 3 + 96] = lA(G, J, J);
}
function Bs(f, d) {
var B = f[d - 1 + 0], b = f[d - 1 + 32], Q = f[d - 1 + 64], _ = f[d - 1 - 32], P = f[d + 0 - 32], G = f[d + 1 - 32], J = f[d + 2 - 32], ie = f[d + 3 - 32];
f[d + 0 + 0] = f[d + 1 + 64] = _ + P + 1 >> 1, f[d + 1 + 0] = f[d + 2 + 64] = P + G + 1 >> 1, f[d + 2 + 0] = f[d + 3 + 64] = G + J + 1 >> 1, f[d + 3 + 0] = J + ie + 1 >> 1, f[d + 0 + 96] = lA(Q, b, B), f[d + 0 + 64] = lA(b, B, _), f[d + 0 + 32] = f[d + 1 + 96] = lA(B, _, P), f[d + 1 + 32] = f[d + 2 + 96] = lA(_, P, G), f[d + 2 + 32] = f[d + 3 + 96] = lA(P, G, J), f[d + 3 + 32] = lA(G, J, ie);
}
function Zs(f, d) {
var B = f[d + 0 - 32], b = f[d + 1 - 32], Q = f[d + 2 - 32], _ = f[d + 3 - 32], P = f[d + 4 - 32], G = f[d + 5 - 32], J = f[d + 6 - 32], ie = f[d + 7 - 32];
f[d + 0 + 0] = B + b + 1 >> 1, f[d + 1 + 0] = f[d + 0 + 64] = b + Q + 1 >> 1, f[d + 2 + 0] = f[d + 1 + 64] = Q + _ + 1 >> 1, f[d + 3 + 0] = f[d + 2 + 64] = _ + P + 1 >> 1, f[d + 0 + 32] = lA(B, b, Q), f[d + 1 + 32] = f[d + 0 + 96] = lA(b, Q, _), f[d + 2 + 32] = f[d + 1 + 96] = lA(Q, _, P), f[d + 3 + 32] = f[d + 2 + 96] = lA(_, P, G), f[d + 3 + 64] = lA(P, G, J), f[d + 3 + 96] = lA(G, J, ie);
}
function ni(f, d) {
var B = f[d - 1 + 0], b = f[d - 1 + 32], Q = f[d - 1 + 64], _ = f[d - 1 + 96];
f[d + 0 + 0] = B + b + 1 >> 1, f[d + 2 + 0] = f[d + 0 + 32] = b + Q + 1 >> 1, f[d + 2 + 32] = f[d + 0 + 64] = Q + _ + 1 >> 1, f[d + 1 + 0] = lA(B, b, Q), f[d + 3 + 0] = f[d + 1 + 32] = lA(b, Q, _), f[d + 3 + 32] = f[d + 1 + 64] = lA(Q, _, _), f[d + 3 + 64] = f[d + 2 + 64] = f[d + 0 + 96] = f[d + 1 + 96] = f[d + 2 + 96] = f[d + 3 + 96] = _;
}
function Hi(f, d) {
var B = f[d - 1 + 0], b = f[d - 1 + 32], Q = f[d - 1 + 64], _ = f[d - 1 + 96], P = f[d - 1 - 32], G = f[d + 0 - 32], J = f[d + 1 - 32], ie = f[d + 2 - 32];
f[d + 0 + 0] = f[d + 2 + 32] = B + P + 1 >> 1, f[d + 0 + 32] = f[d + 2 + 64] = b + B + 1 >> 1, f[d + 0 + 64] = f[d + 2 + 96] = Q + b + 1 >> 1, f[d + 0 + 96] = _ + Q + 1 >> 1, f[d + 3 + 0] = lA(G, J, ie), f[d + 2 + 0] = lA(P, G, J), f[d + 1 + 0] = f[d + 3 + 32] = lA(B, P, G), f[d + 1 + 32] = f[d + 3 + 64] = lA(b, B, P), f[d + 1 + 64] = f[d + 3 + 96] = lA(Q, b, B), f[d + 1 + 96] = lA(_, Q, b);
}
function wA(f, d) {
var B;
for (B = 0; 8 > B; ++B) A(f, d + 32 * B, f, d - 32, 8);
}
function ta(f, d) {
var B;
for (B = 0; 8 > B; ++B) n(f, d, f[d - 1], 8), d += 32;
}
function mn(f, d, B) {
var b;
for (b = 0; 8 > b; ++b) n(d, B + 32 * b, f, 8);
}
function Pi(f, d) {
var B, b = 8;
for (B = 0; 8 > B; ++B) b += f[d + B - 32] + f[d - 1 + 32 * B];
mn(b >> 4, f, d);
}
function ai(f, d) {
var B, b = 4;
for (B = 0; 8 > B; ++B) b += f[d + B - 32];
mn(b >> 3, f, d);
}
function ys(f, d) {
var B, b = 4;
for (B = 0; 8 > B; ++B) b += f[d - 1 + 32 * B];
mn(b >> 3, f, d);
}
function eo(f, d) {
mn(128, f, d);
}
function Aa(f, d, B) {
var b = f[d - B], Q = f[d + 0], _ = 3 * (Q - b) + ef[1020 + f[d - 2 * B] - f[d + B]], P = ql[112 + (_ + 4 >> 3)];
f[d - B] = fa[255 + b + ql[112 + (_ + 3 >> 3)]], f[d + 0] = fa[255 + Q - P];
}
function ii(f, d, B, b) {
var Q = f[d + 0], _ = f[d + B];
return Ua[255 + f[d - 2 * B] - f[d - B]] > b || Ua[255 + _ - Q] > b;
}
function Ki(f, d, B, b) {
return 4 * Ua[255 + f[d - B] - f[d + 0]] + Ua[255 + f[d - 2 * B] - f[d + B]] <= b;
}
function Vi(f, d, B, b, Q) {
var _ = f[d - 3 * B], P = f[d - 2 * B], G = f[d - B], J = f[d + 0], ie = f[d + B], Ee = f[d + 2 * B], He = f[d + 3 * B];
return 4 * Ua[255 + G - J] + Ua[255 + P - ie] > b ? 0 : Ua[255 + f[d - 4 * B] - _] <= Q && Ua[255 + _ - P] <= Q && Ua[255 + P - G] <= Q && Ua[255 + He - Ee] <= Q && Ua[255 + Ee - ie] <= Q && Ua[255 + ie - J] <= Q;
}
function Ea(f, d, B, b) {
var Q = 2 * b + 1;
for (b = 0; 16 > b; ++b) Ki(f, d + b, B, Q) && Aa(f, d + b, B);
}
function qi(f, d, B, b) {
var Q = 2 * b + 1;
for (b = 0; 16 > b; ++b) Ki(f, d + b * B, 1, Q) && Aa(f, d + b * B, 1);
}
function to(f, d, B, b) {
var Q;
for (Q = 3; 0 < Q; --Q) Ea(f, d += 4 * B, B, b);
}
function Ao(f, d, B, b) {
var Q;
for (Q = 3; 0 < Q; --Q) qi(f, d += 4, B, b);
}
function Ha(f, d, B, b, Q, _, P, G) {
for (_ = 2 * _ + 1; 0 < Q--; ) {
if (Vi(f, d, B, _, P)) if (ii(f, d, B, G)) Aa(f, d, B);
else {
var J = f, ie = d, Ee = B, He = J[ie - 2 * Ee], se = J[ie - Ee], Ue = J[ie + 0], Ne = J[ie + Ee], At = J[ie + 2 * Ee], Oe = 27 * (ot = ef[1020 + 3 * (Ue - se) + ef[1020 + He - Ne]]) + 63 >> 7, st = 18 * ot + 63 >> 7, ot = 9 * ot + 63 >> 7;
J[ie - 3 * Ee] = fa[255 + J[ie - 3 * Ee] + ot], J[ie - 2 * Ee] = fa[255 + He + st], J[ie - Ee] = fa[255 + se + Oe], J[ie + 0] = fa[255 + Ue - Oe], J[ie + Ee] = fa[255 + Ne - st], J[ie + 2 * Ee] = fa[255 + At - ot];
}
d += b;
}
}
function Pa(f, d, B, b, Q, _, P, G) {
for (_ = 2 * _ + 1; 0 < Q--; ) {
if (Vi(f, d, B, _, P)) if (ii(f, d, B, G)) Aa(f, d, B);
else {
var J = f, ie = d, Ee = B, He = J[ie - Ee], se = J[ie + 0], Ue = J[ie + Ee], Ne = ql[112 + (4 + (At = 3 * (se - He)) >> 3)], At = ql[112 + (At + 3 >> 3)], Oe = Ne + 1 >> 1;
J[ie - 2 * Ee] = fa[255 + J[ie - 2 * Ee] + Oe], J[ie - Ee] = fa[255 + He + At], J[ie + 0] = fa[255 + se - Ne], J[ie + Ee] = fa[255 + Ue - Oe];
}
d += b;
}
}
function ro(f, d, B, b, Q, _) {
Ha(f, d, B, 1, 16, b, Q, _);
}
function ua(f, d, B, b, Q, _) {
Ha(f, d, 1, B, 16, b, Q, _);
}
function no(f, d, B, b, Q, _) {
var P;
for (P = 3; 0 < P; --P) Pa(f, d += 4 * B, B, 1, 16, b, Q, _);
}
function v(f, d, B, b, Q, _) {
var P;
for (P = 3; 0 < P; --P) Pa(f, d += 4, 1, B, 16, b, Q, _);
}
function T(f, d, B, b, Q, _, P, G) {
Ha(f, d, Q, 1, 8, _, P, G), Ha(B, b, Q, 1, 8, _, P, G);
}
function ne(f, d, B, b, Q, _, P, G) {
Ha(f, d, 1, Q, 8, _, P, G), Ha(B, b, 1, Q, 8, _, P, G);
}
function we(f, d, B, b, Q, _, P, G) {
Pa(f, d + 4 * Q, Q, 1, 8, _, P, G), Pa(B, b + 4 * Q, Q, 1, 8, _, P, G);
}
function De(f, d, B, b, Q, _, P, G) {
Pa(f, d + 4, 1, Q, 8, _, P, G), Pa(B, b + 4, 1, Q, 8, _, P, G);
}
function nt() {
this.ba = new Re(), this.ec = [], this.cc = [], this.Mc = [], this.Dc = this.Nc = this.dc = this.fc = 0, this.Oa = new xt(), this.memory = 0, this.Ib = "OutputFunc", this.Jb = "OutputAlphaFunc", this.Nd = "OutputRowFunc";
}
function ct() {
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 Kt() {
this.nc = this.Ea = this.b = this.hc = 0, this.K = [], this.w = 0;
}
function Yt() {
this.ua = 0, this.Wa = new me(), this.vb = new me(), this.md = this.xc = this.wc = 0, this.vc = [], this.Wb = 0, this.Ya = new le(), this.yc = new W();
}
function oA() {
this.xb = this.a = 0, this.l = new fA(), this.ca = new Re(), 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 Yt(), this.ab = 0, this.gc = s(4, Kt), this.Oc = 0;
}
function dA() {
this.Lc = this.Z = this.$a = this.i = this.c = 0, this.l = new fA(), this.ic = 0, this.ca = [], this.tb = 0, this.qd = null, this.rd = 0;
}
function QA(f, d, B, b, Q, _, P) {
for (f = f == null ? 0 : f[d + 0], d = 0; d < P; ++d) Q[_ + d] = f + B[b + d] & 255, f = Q[_ + d];
}
function vr(f, d, B, b, Q, _, P) {
var G;
if (f == null) QA(null, null, B, b, Q, _, P);
else for (G = 0; G < P; ++G) Q[_ + G] = f[d + G] + B[b + G] & 255;
}
function R(f, d, B, b, Q, _, P) {
if (f == null) QA(null, null, B, b, Q, _, P);
else {
var G, J = f[d + 0], ie = J, Ee = J;
for (G = 0; G < P; ++G) ie = Ee + (J = f[d + G]) - ie, Ee = B[b + G] + (-256 & ie ? 0 > ie ? 0 : 255 : ie) & 255, ie = J, Q[_ + G] = Ee;
}
}
function te(f, d, B, b) {
var Q = d.width, _ = d.o;
if (t(f != null && d != null), 0 > B || 0 >= b || B + b > _) return null;
if (!f.Cc) {
if (f.ga == null) {
var P;
if (f.ga = new dA(), (P = f.ga == null) || (P = d.width * d.o, t(f.Gb.length == 0), f.Gb = a(P), f.Uc = 0, f.Gb == null ? P = 0 : (f.mb = f.Gb, f.nb = f.Uc, f.rc = null, P = 1), P = !P), !P) {
P = f.ga;
var G = f.Fa, J = f.P, ie = f.qc, Ee = f.mb, He = f.nb, se = J + 1, Ue = ie - 1, Ne = P.l;
if (t(G != null && Ee != null && d != null), Xi[0] = null, Xi[1] = QA, Xi[2] = vr, Xi[3] = R, P.ca = Ee, P.tb = He, P.c = d.width, P.i = d.height, t(0 < P.c && 0 < P.i), 1 >= ie) d = 0;
else if (P.$a = 3 & G[J + 0], P.Z = G[J + 0] >> 2 & 3, P.Lc = G[J + 0] >> 4 & 3, J = G[J + 0] >> 6 & 3, 0 > P.$a || 1 < P.$a || 4 <= P.Z || 1 < P.Lc || J) d = 0;
else if (Ne.put = Lt, Ne.ac = JA, Ne.bc = Qr, Ne.ma = P, Ne.width = d.width, Ne.height = d.height, Ne.Da = d.Da, Ne.v = d.v, Ne.va = d.va, Ne.j = d.j, Ne.o = d.o, P.$a) e: {
t(P.$a == 1), d = Un();
t: for (; ; ) {
if (d == null) {
d = 0;
break e;
}
if (t(P != null), P.mc = d, d.c = P.c, d.i = P.i, d.l = P.l, d.l.ma = P, d.l.width = P.c, d.l.height = P.i, d.a = 0, X(d.m, G, se, Ue), !Dt(P.c, P.i, 1, d, null) || (d.ab == 1 && d.gc[0].hc == 3 && LA(d.s) ? (P.ic = 1, G = d.c * d.i, d.Ta = null, d.Ua = 0, d.V = a(G), d.Ba = 0, d.V == null ? (d.a = 1, d = 0) : d = 1) : (P.ic = 0, d = be(d, P.c)), !d)) break t;
d = 1;
break e;
}
P.mc = null, d = 0;
}
else d = Ue >= P.c * P.i;
P = !d;
}
if (P) return null;
f.ga.Lc != 1 ? f.Ga = 0 : b = _ - B;
}
t(f.ga != null), t(B + b <= _);
e: {
if (d = (G = f.ga).c, _ = G.l.o, G.$a == 0) {
if (se = f.rc, Ue = f.Vc, Ne = f.Fa, J = f.P + 1 + B * d, ie = f.mb, Ee = f.nb + B * d, t(J <= f.P + f.qc), G.Z != 0) for (t(Xi[G.Z] != null), P = 0; P < b; ++P) Xi[G.Z](se, Ue, Ne, J, ie, Ee, d), se = ie, Ue = Ee, Ee += d, J += d;
else for (P = 0; P < b; ++P) A(ie, Ee, Ne, J, d), se = ie, Ue = Ee, Ee += d, J += d;
f.rc = se, f.Vc = Ue;
} else {
if (t(G.mc != null), d = B + b, t((P = G.mc) != null), t(d <= P.i), P.C >= d) d = 1;
else if (G.ic || Xe(), G.ic) {
G = P.V, se = P.Ba, Ue = P.c;
var At = P.i, Oe = (Ne = 1, J = P.$ / Ue, ie = P.$ % Ue, Ee = P.m, He = P.s, P.$), st = Ue * At, ot = Ue * d, wt = He.wc, ht = Oe < ot ? OA(He, ie, J) : null;
t(Oe <= st), t(d <= At), t(LA(He));
t: for (; ; ) {
for (; !Ee.h && Oe < ot; ) {
if (ie & wt || (ht = OA(He, ie, J)), t(ht != null), pe(Ee), 256 > (At = CA(ht.G[0], ht.H[0], Ee))) G[se + Oe] = At, ++Oe, ++ie >= Ue && (ie = 0, ++J <= d && !(J % 16) && kr(P, J));
else {
if (!(280 > At)) {
Ne = 0;
break t;
}
At = xr(At - 256, Ee);
var Zt, Vt = CA(ht.G[4], ht.H[4], Ee);
if (pe(Ee), !(Oe >= (Vt = PA(Ue, Vt = xr(Vt, Ee))) && st - Oe >= At)) {
Ne = 0;
break t;
}
for (Zt = 0; Zt < At; ++Zt) G[se + Oe + Zt] = G[se + Oe + Zt - Vt];
for (Oe += At, ie += At; ie >= Ue; ) ie -= Ue, ++J <= d && !(J % 16) && kr(P, J);
Oe < ot && ie & wt && (ht = OA(He, ie, J));
}
t(Ee.h == $(Ee));
}
kr(P, J > d ? d : J);
break t;
}
!Ne || Ee.h && Oe < st ? (Ne = 0, P.a = Ee.h ? 5 : 3) : P.$ = Oe, d = Ne;
} else d = ZA(P, P.V, P.Ba, P.c, P.i, d, z);
if (!d) {
b = 0;
break e;
}
}
B + b >= _ && (f.Cc = 1), b = 1;
}
if (!b) return null;
if (f.Cc && ((b = f.ga) != null && (b.mc = null), f.ga = null, 0 < f.Ga)) return alert("todo:WebPDequantizeLevels"), null;
}
return f.nb + B * Q;
}
function K(f, d, B, b, Q, _) {
for (; 0 < Q--; ) {
var P, G = f, J = d + (B ? 1 : 0), ie = f, Ee = d + (B ? 0 : 3);
for (P = 0; P < b; ++P) {
var He = ie[Ee + 4 * P];
He != 255 && (He *= 32897, G[J + 4 * P + 0] = G[J + 4 * P + 0] * He >> 23, G[J + 4 * P + 1] = G[J + 4 * P + 1] * He >> 23, G[J + 4 * P + 2] = G[J + 4 * P + 2] * He >> 23);
}
d += _;
}
}
function he(f, d, B, b, Q) {
for (; 0 < b--; ) {
var _;
for (_ = 0; _ < B; ++_) {
var P = f[d + 2 * _ + 0], G = 15 & (ie = f[d + 2 * _ + 1]), J = 4369 * G, ie = (240 & ie | ie >> 4) * J >> 16;
f[d + 2 * _ + 0] = (240 & P | P >> 4) * J >> 16 & 240 | (15 & P | P << 4) * J >> 16 >> 4 & 15, f[d + 2 * _ + 1] = 240 & ie | G;
}
d += Q;
}
}
function ye(f, d, B, b, Q, _, P, G) {
var J, ie, Ee = 255;
for (ie = 0; ie < Q; ++ie) {
for (J = 0; J < b; ++J) {
var He = f[d + J];
_[P + 4 * J] = He, Ee &= He;
}
d += B, P += G;
}
return Ee != 255;
}
function Le(f, d, B, b, Q) {
var _;
for (_ = 0; _ < Q; ++_) B[b + _] = f[d + _] >> 8;
}
function Xe() {
Vo = K, qv = he, jv = ye, Wv = Le;
}
function ze(f, d, B) {
k[f] = function(b, Q, _, P, G, J, ie, Ee, He, se, Ue, Ne, At, Oe, st, ot, wt) {
var ht, Zt = wt - 1 >> 1, Vt = G[J + 0] | ie[Ee + 0] << 16, BA = He[se + 0] | Ue[Ne + 0] << 16;
t(b != null);
var $t = 3 * Vt + BA + 131074 >> 2;
for (d(b[Q + 0], 255 & $t, $t >> 16, At, Oe), _ != null && ($t = 3 * BA + Vt + 131074 >> 2, d(_[P + 0], 255 & $t, $t >> 16, st, ot)), ht = 1; ht <= Zt; ++ht) {
var DA = G[J + ht] | ie[Ee + ht] << 16, nn = He[se + ht] | Ue[Ne + ht] << 16, yA = Vt + DA + BA + nn + 524296, zt = yA + 2 * (DA + BA) >> 3;
$t = zt + Vt >> 1, Vt = (yA = yA + 2 * (Vt + nn) >> 3) + DA >> 1, d(b[Q + 2 * ht - 1], 255 & $t, $t >> 16, At, Oe + (2 * ht - 1) * B), d(b[Q + 2 * ht - 0], 255 & Vt, Vt >> 16, At, Oe + (2 * ht - 0) * B), _ != null && ($t = yA + BA >> 1, Vt = zt + nn >> 1, d(_[P + 2 * ht - 1], 255 & $t, $t >> 16, st, ot + (2 * ht - 1) * B), d(_[P + 2 * ht + 0], 255 & Vt, Vt >> 16, st, ot + (2 * ht + 0) * B)), Vt = DA, BA = nn;
}
1 & wt || ($t = 3 * Vt + BA + 131074 >> 2, d(b[Q + wt - 1], 255 & $t, $t >> 16, At, Oe + (wt - 1) * B), _ != null && ($t = 3 * BA + Vt + 131074 >> 2, d(_[P + wt - 1], 255 & $t, $t >> 16, st, ot + (wt - 1) * B)));
};
}
function mt() {
Ta[jl] = T4, Ta[Wl] = r0, Ta[Jv] = Q4, Ta[Gl] = n0, Ta[Yl] = a0, Ta[tf] = i0, Ta[Zv] = D4, Ta[Af] = r0, Ta[rf] = n0, Ta[$l] = a0, Ta[nf] = i0;
}
function It(f) {
return f & -16384 ? 0 > f ? 0 : 255 : f >> k4;
}
function Qt(f, d) {
return It((19077 * f >> 8) + (26149 * d >> 8) - 14234);
}
function pt(f, d, B) {
return It((19077 * f >> 8) - (6419 * d >> 8) - (13320 * B >> 8) + 8708);
}
function jt(f, d) {
return It((19077 * f >> 8) + (33050 * d >> 8) - 17685);
}
function KA(f, d, B, b, Q) {
b[Q + 0] = Qt(f, B), b[Q + 1] = pt(f, d, B), b[Q + 2] = jt(f, d);
}
function VA(f, d, B, b, Q) {
b[Q + 0] = jt(f, d), b[Q + 1] = pt(f, d, B), b[Q + 2] = Qt(f, B);
}
function ln(f, d, B, b, Q) {
var _ = pt(f, d, B);
d = _ << 3 & 224 | jt(f, d) >> 3, b[Q + 0] = 248 & Qt(f, B) | _ >> 5, b[Q + 1] = d;
}
function yr(f, d, B, b, Q) {
var _ = 240 & jt(f, d) | 15;
b[Q + 0] = 240 & Qt(f, B) | pt(f, d, B) >> 4, b[Q + 1] = _;
}
function Ur(f, d, B, b, Q) {
b[Q + 0] = 255, KA(f, d, B, b, Q + 1);
}
function _r(f, d, B, b, Q) {
VA(f, d, B, b, Q), b[Q + 3] = 255;
}
function er(f, d, B, b, Q) {
KA(f, d, B, b, Q), b[Q + 3] = 255;
}
function Kn(f, d, B) {
k[f] = function(b, Q, _, P, G, J, ie, Ee, He) {
for (var se = Ee + (-2 & He) * B; Ee != se; ) d(b[Q + 0], _[P + 0], G[J + 0], ie, Ee), d(b[Q + 1], _[P + 0], G[J + 0], ie, Ee + B), Q += 2, ++P, ++J, Ee += 2 * B;
1 & He && d(b[Q + 0], _[P + 0], G[J + 0], ie, Ee);
};
}
function fr(f, d, B) {
return B == 0 ? f == 0 ? d == 0 ? 6 : 5 : d == 0 ? 4 : 0 : B;
}
function ca(f, d, B, b, Q) {
switch (f >>> 30) {
case 3:
Es(d, B, b, Q, 0);
break;
case 2:
Sa(d, B, b, Q);
break;
case 1:
$A(d, B, b, Q);
}
}
function un(f, d) {
var B, b, Q = d.M, _ = d.Nb, P = f.oc, G = f.pc + 40, J = f.oc, ie = f.pc + 584, Ee = f.oc, He = f.pc + 600;
for (B = 0; 16 > B; ++B) P[G + 32 * B - 1] = 129;
for (B = 0; 8 > B; ++B) J[ie + 32 * B - 1] = 129, Ee[He + 32 * B - 1] = 129;
for (0 < Q ? P[G - 1 - 32] = J[ie - 1 - 32] = Ee[He - 1 - 32] = 129 : (n(P, G - 32 - 1, 127, 21), n(J, ie - 32 - 1, 127, 9), n(Ee, He - 32 - 1, 127, 9)), b = 0; b < f.za; ++b) {
var se = d.ya[d.aa + b];
if (0 < b) {
for (B = -1; 16 > B; ++B) A(P, G + 32 * B - 4, P, G + 32 * B + 12, 4);
for (B = -1; 8 > B; ++B) A(J, ie + 32 * B - 4, J, ie + 32 * B + 4, 4), A(Ee, He + 32 * B - 4, Ee, He + 32 * B + 4, 4);
}
var Ue = f.Gd, Ne = f.Hd + b, At = se.ad, Oe = se.Hc;
if (0 < Q && (A(P, G - 32, Ue[Ne].y, 0, 16), A(J, ie - 32, Ue[Ne].f, 0, 8), A(Ee, He - 32, Ue[Ne].ea, 0, 8)), se.Za) {
var st = P, ot = G - 32 + 16;
for (0 < Q && (b >= f.za - 1 ? n(st, ot, Ue[Ne].y[15], 4) : A(st, ot, Ue[Ne + 1].y, 0, 4)), B = 0; 4 > B; B++) st[ot + 128 + B] = st[ot + 256 + B] = st[ot + 384 + B] = st[ot + 0 + B];
for (B = 0; 16 > B; ++B, Oe <<= 2) st = P, ot = G + o0[B], Va[se.Ob[B]](st, ot), ca(Oe, At, 16 * +B, st, ot);
} else if (st = fr(b, Q, se.Ob[0]), zi[st](P, G), Oe != 0) for (B = 0; 16 > B; ++B, Oe <<= 2) ca(Oe, At, 16 * +B, P, G + o0[B]);
for (B = se.Gc, st = fr(b, Q, se.Dd), yi[st](J, ie), yi[st](Ee, He), Oe = At, st = J, ot = ie, 255 & (se = 0 | B) && (170 & se ? li(Oe, 256, st, ot) : or(Oe, 256, st, ot)), se = Ee, Oe = He, 255 & (B >>= 8) && (170 & B ? li(At, 320, se, Oe) : or(At, 320, se, Oe)), Q < f.Ub - 1 && (A(Ue[Ne].y, 0, P, G + 480, 16), A(Ue[Ne].f, 0, J, ie + 224, 8), A(Ue[Ne].ea, 0, Ee, He + 224, 8)), B = 8 * _ * f.B, Ue = f.sa, Ne = f.ta + 16 * b + 16 * _ * f.R, At = f.qa, se = f.ra + 8 * b + B, Oe = f.Ha, st = f.Ia + 8 * b + B, B = 0; 16 > B; ++B) A(Ue, Ne + B * f.R, P, G + 32 * B, 16);
for (B = 0; 8 > B; ++B) A(At, se + B * f.B, J, ie + 32 * B, 8), A(Oe, st + B * f.B, Ee, He + 32 * B, 8);
}
}
function Fa(f, d, B, b, Q, _, P, G, J) {
var ie = [0], Ee = [0], He = 0, se = J != null ? J.kd : 0, Ue = J ?? new ct();
if (f == null || 12 > B) return 7;
Ue.data = f, Ue.w = d, Ue.ha = B, d = [d], B = [B], Ue.gb = [Ue.gb];
e: {
var Ne = d, At = B, Oe = Ue.gb;
if (t(f != null), t(At != null), t(Oe != null), Oe[0] = 0, 12 <= At[0] && !e(f, Ne[0], "RIFF")) {
if (e(f, Ne[0] + 8, "WEBP")) {
Oe = 3;
break e;
}
var st = dt(f, Ne[0] + 4);
if (12 > st || 4294967286 < st) {
Oe = 3;
break e;
}
if (se && st > At[0] - 8) {
Oe = 7;
break e;
}
Oe[0] = st, Ne[0] += 12, At[0] -= 12;
}
Oe = 0;
}
if (Oe != 0) return Oe;
for (st = 0 < Ue.gb[0], B = B[0]; ; ) {
e: {
var ot = f;
At = d, Oe = B;
var wt = ie, ht = Ee, Zt = Ne = [0];
if (($t = He = [He])[0] = 0, 8 > Oe[0]) Oe = 7;
else {
if (!e(ot, At[0], "VP8X")) {
if (dt(ot, At[0] + 4) != 10) {
Oe = 3;
break e;
}
if (18 > Oe[0]) {
Oe = 7;
break e;
}
var Vt = dt(ot, At[0] + 8), BA = 1 + at(ot, At[0] + 12);
if (2147483648 <= BA * (ot = 1 + at(ot, At[0] + 15))) {
Oe = 3;
break e;
}
Zt != null && (Zt[0] = Vt), wt != null && (wt[0] = BA), ht != null && (ht[0] = ot), At[0] += 18, Oe[0] -= 18, $t[0] = 1;
}
Oe = 0;
}
}
if (He = He[0], Ne = Ne[0], Oe != 0) return Oe;
if (At = !!(2 & Ne), !st && He) return 3;
if (_ != null && (_[0] = !!(16 & Ne)), P != null && (P[0] = At), G != null && (G[0] = 0), P = ie[0], Ne = Ee[0], He && At && J == null) {
Oe = 0;
break;
}
if (4 > B) {
Oe = 7;
break;
}
if (st && He || !st && !He && !e(f, d[0], "ALPH")) {
B = [B], Ue.na = [Ue.na], Ue.P = [Ue.P], Ue.Sa = [Ue.Sa];
e: {
Vt = f, Oe = d, st = B;
var $t = Ue.gb;
wt = Ue.na, ht = Ue.P, Zt = Ue.Sa, BA = 22, t(Vt != null), t(st != null), ot = Oe[0];
var DA = st[0];
for (t(wt != null), t(Zt != null), wt[0] = null, ht[0] = null, Zt[0] = 0; ; ) {
if (Oe[0] = ot, st[0] = DA, 8 > DA) {
Oe = 7;
break e;
}
var nn = dt(Vt, ot + 4);
if (4294967286 < nn) {
Oe = 3;
break e;
}
var yA = 8 + nn + 1 & -2;
if (BA += yA, 0 < $t && BA > $t) {
Oe = 3;
break e;
}
if (!e(Vt, ot, "VP8 ") || !e(Vt, ot, "VP8L")) {
Oe = 0;
break e;
}
if (DA[0] < yA) {
Oe = 7;
break e;
}
e(Vt, ot, "ALPH") || (wt[0] = Vt, ht[0] = ot + 8, Zt[0] = nn), ot += yA, DA -= yA;
}
}
if (B = B[0], Ue.na = Ue.na[0], Ue.P = Ue.P[0], Ue.Sa = Ue.Sa[0], Oe != 0) break;
}
B = [B], Ue.Ja = [Ue.Ja], Ue.xa = [Ue.xa];
e: if ($t = f, Oe = d, st = B, wt = Ue.gb[0], ht = Ue.Ja, Zt = Ue.xa, Vt = Oe[0], ot = !e($t, Vt, "VP8 "), BA = !e($t, Vt, "VP8L"), t($t != null), t(st != null), t(ht != null), t(Zt != null), 8 > st[0]) Oe = 7;
else {
if (ot || BA) {
if ($t = dt($t, Vt + 4), 12 <= wt && $t > wt - 12) {
Oe = 3;
break e;
}
if (se && $t > st[0] - 8) {
Oe = 7;
break e;
}
ht[0] = $t, Oe[0] += 8, st[0] -= 8, Zt[0] = BA;
} else Zt[0] = 5 <= st[0] && $t[Vt + 0] == 47 && !($t[Vt + 4] >> 5), ht[0] = st[0];
Oe = 0;
}
if (B = B[0], Ue.Ja = Ue.Ja[0], Ue.xa = Ue.xa[0], d = d[0], Oe != 0) break;
if (4294967286 < Ue.Ja) return 3;
if (G == null || At || (G[0] = Ue.xa ? 2 : 1), P = [P], Ne = [Ne], Ue.xa) {
if (5 > B) {
Oe = 7;
break;
}
G = P, se = Ne, At = _, f == null || 5 > B ? f = 0 : 5 <= B && f[d + 0] == 47 && !(f[d + 4] >> 5) ? (st = [0], $t = [0], wt = [0], X(ht = new L(), f, d, B), Fr(ht, st, $t, wt) ? (G != null && (G[0] = st[0]), se != null && (se[0] = $t[0]), At != null && (At[0] = wt[0]), f = 1) : f = 0) : f = 0;
} else {
if (10 > B) {
Oe = 7;
break;
}
G = Ne, f == null || 10 > B || !tA(f, d + 3, B - 3) ? f = 0 : (se = f[d + 0] | f[d + 1] << 8 | f[d + 2] << 16, At = 16383 & (f[d + 7] << 8 | f[d + 6]), f = 16383 & (f[d + 9] << 8 | f[d + 8]), 1 & se || 3 < (se >> 1 & 7) || !(se >> 4 & 1) || se >> 5 >= Ue.Ja || !At || !f ? f = 0 : (P && (P[0] = At), G && (G[0] = f), f = 1));
}
if (!f || (P = P[0], Ne = Ne[0], He && (ie[0] != P || Ee[0] != Ne))) return 3;
J != null && (J[0] = Ue, J.offset = d - J.w, t(4294967286 > d - J.w), t(J.offset == J.ha - B));
break;
}
return Oe == 0 || Oe == 7 && He && J == null ? (_ != null && (_[0] |= Ue.na != null && 0 < Ue.na.length), b != null && (b[0] = P), Q != null && (Q[0] = Ne), 0) : Oe;
}
function bs(f, d, B) {
var b = d.width, Q = d.height, _ = 0, P = 0, G = b, J = Q;
if (d.Da = f != null && 0 < f.Da, d.Da && (G = f.cd, J = f.bd, _ = f.v, P = f.j, 11 > B || (_ &= -2, P &= -2), 0 > _ || 0 > P || 0 >= G || 0 >= J || _ + G > b || P + J > Q)) return 0;
if (d.v = _, d.j = P, d.va = _ + G, d.o = P + J, d.U = G, d.T = J, d.da = f != null && 0 < f.da, d.da) {
if (!ve(G, J, B = [f.ib], _ = [f.hb])) return 0;
d.ib = B[0], d.hb = _[0];
}
return d.ob = f != null && f.ob, d.Kb = f == null || !f.Sd, d.da && (d.ob = d.ib < 3 * b / 4 && d.hb < 3 * Q / 4, d.Kb = 0), 1;
}
function wi(f) {
if (f == null) return 2;
if (11 > f.S) {
var d = f.f.RGBA;
d.fb += (f.height - 1) * d.A, d.A = -d.A;
} else d = f.f.kb, f = f.height, d.O += (f - 1) * d.fa, d.fa = -d.fa, d.N += (f - 1 >> 1) * d.Ab, d.Ab = -d.Ab, d.W += (f - 1 >> 1) * d.Db, d.Db = -d.Db, d.F != null && (d.J += (f - 1) * d.lb, d.lb = -d.lb);
return 0;
}
function ar(f, d, B, b) {
if (b == null || 0 >= f || 0 >= d) return 2;
if (B != null) {
if (B.Da) {
var Q = B.cd, _ = B.bd, P = -2 & B.v, G = -2 & B.j;
if (0 > P || 0 > G || 0 >= Q || 0 >= _ || P + Q > f || G + _ > d) return 2;
f = Q, d = _;
}
if (B.da) {
if (!ve(f, d, Q = [B.ib], _ = [B.hb])) return 2;
f = Q[0], d = _[0];
}
}
b.width = f, b.height = d;
e: {
var J = b.width, ie = b.height;
if (f = b.S, 0 >= J || 0 >= ie || !(f >= jl && 13 > f)) f = 2;
else {
if (0 >= b.Rd && b.sd == null) {
P = _ = Q = d = 0;
var Ee = (G = J * l0[f]) * ie;
if (11 > f || (_ = (ie + 1) / 2 * (d = (J + 1) / 2), f == 12 && (P = (Q = J) * ie)), (ie = a(Ee + 2 * _ + P)) == null) {
f = 1;
break e;
}
b.sd = ie, 11 > f ? ((J = b.f.RGBA).eb = ie, J.fb = 0, J.A = G, J.size = Ee) : ((J = b.f.kb).y = ie, J.O = 0, J.fa = G, J.Fd = Ee, J.f = ie, J.N = 0 + Ee, J.Ab = d, J.Cd = _, J.ea = ie, J.W = 0 + Ee + _, J.Db = d, J.Ed = _, f == 12 && (J.F = ie, J.J = 0 + Ee + 2 * _), J.Tc = P, J.lb = Q);
}
if (d = 1, Q = b.S, _ = b.width, P = b.height, Q >= jl && 13 > Q) if (11 > Q) f = b.f.RGBA, d &= (G = Math.abs(f.A)) * (P - 1) + _ <= f.size, d &= G >= _ * l0[Q], d &= f.eb != null;
else {
f = b.f.kb, G = (_ + 1) / 2, Ee = (P + 1) / 2, J = Math.abs(f.fa), ie = Math.abs(f.Ab);
var He = Math.abs(f.Db), se = Math.abs(f.lb), Ue = se * (P - 1) + _;
d &= J * (P - 1) + _ <= f.Fd, d &= ie * (Ee - 1) + G <= f.Cd, d = (d &= He * (Ee - 1) + G <= f.Ed) & J >= _ & ie >= G & He >= G, d &= f.y != null, d &= f.f != null, d &= f.ea != null, Q == 12 && (d &= se >= _, d &= Ue <= f.Tc, d &= f.F != null);
}
else d = 0;
f = d ? 0 : 2;
}
}
return f != 0 || B != null && B.fd && (f = wi(b)), f;
}
var YA = 64, qA = [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], ir = 24, wn = 32, cn = 8, Ka = [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];
_e("Predictor0", "PredictorAdd0"), k.Predictor0 = function() {
return 4278190080;
}, k.Predictor1 = function(f) {
return f;
}, k.Predictor2 = function(f, d, B) {
return d[B + 0];
}, k.Predictor3 = function(f, d, B) {
return d[B + 1];
}, k.Predictor4 = function(f, d, B) {
return d[B - 1];
}, k.Predictor5 = function(f, d, B) {
return je(je(f, d[B + 1]), d[B + 0]);
}, k.Predictor6 = function(f, d, B) {
return je(f, d[B - 1]);
}, k.Predictor7 = function(f, d, B) {
return je(f, d[B + 0]);
}, k.Predictor8 = function(f, d, B) {
return je(d[B - 1], d[B + 0]);
}, k.Predictor9 = function(f, d, B) {
return je(d[B + 0], d[B + 1]);
}, k.Predictor10 = function(f, d, B) {
return je(je(f, d[B - 1]), je(d[B + 0], d[B + 1]));
}, k.Predictor11 = function(f, d, B) {
var b = d[B + 0];
return 0 >= ut(b >> 24 & 255, f >> 24 & 255, (d = d[B - 1]) >> 24 & 255) + ut(b >> 16 & 255, f >> 16 & 255, d >> 16 & 255) + ut(b >> 8 & 255, f >> 8 & 255, d >> 8 & 255) + ut(255 & b, 255 & f, 255 & d) ? b : f;
}, k.Predictor12 = function(f, d, B) {
var b = d[B + 0];
return (Ke((f >> 24 & 255) + (b >> 24 & 255) - ((d = d[B - 1]) >> 24 & 255)) << 24 | Ke((f >> 16 & 255) + (b >> 16 & 255) - (d >> 16 & 255)) << 16 | Ke((f >> 8 & 255) + (b >> 8 & 255) - (d >> 8 & 255)) << 8 | Ke((255 & f) + (255 & b) - (255 & d))) >>> 0;
}, k.Predictor13 = function(f, d, B) {
var b = d[B - 1];
return (et((f = je(f, d[B + 0])) >> 24 & 255, b >> 24 & 255) << 24 | et(f >> 16 & 255, b >> 16 & 255) << 16 | et(f >> 8 & 255, b >> 8 & 255) << 8 | et(255 & f, 255 & b)) >>> 0;
};
var ji = k.PredictorAdd0;
k.PredictorAdd1 = yt, _e("Predictor2", "PredictorAdd2"), _e("Predictor3", "PredictorAdd3"), _e("Predictor4", "PredictorAdd4"), _e("Predictor5", "PredictorAdd5"), _e("Predictor6", "PredictorAdd6"), _e("Predictor7", "PredictorAdd7"), _e("Predictor8", "PredictorAdd8"), _e("Predictor9", "PredictorAdd9"), _e("Predictor10", "PredictorAdd10"), _e("Predictor11", "PredictorAdd11"), _e("Predictor12", "PredictorAdd12"), _e("Predictor13", "PredictorAdd13");
var si = k.PredictorAdd2;
bt("ColorIndexInverseTransform", "MapARGB", "32b", function(f) {
return f >> 8 & 255;
}, function(f) {
return f;
}), bt("VP8LColorIndexInverseTransformAlpha", "MapAlpha", "8b", function(f) {
return f;
}, function(f) {
return f >> 8 & 255;
});
var Tr, ao = k.ColorIndexInverseTransform, xa = k.MapARGB, oi = k.VP8LColorIndexInverseTransformAlpha, Oo = k.MapAlpha, Ro = k.VP8LPredictorsAdd = [];
Ro.length = 16, (k.VP8LPredictors = []).length = 16, (k.VP8LPredictorsAdd_C = []).length = 16, (k.VP8LPredictors_C = []).length = 16;
var Ho, Po, Wi, Gi, Yi, Cs, $i, Es, Sa, li, $A, or, Vr, rn, Bi, Ko, io, Vl, Ov, Rv, Hv, Pv, Kv, Vv, Vo, qv, jv, Wv, Gv = a(511), Yv = a(2041), $v = a(225), zv = a(767), Xv = 0, ef = Yv, ql = $v, fa = zv, Ua = Gv, jl = 0, Wl = 1, Jv = 2, Gl = 3, Yl = 4, tf = 5, Zv = 6, Af = 7, rf = 8, $l = 9, nf = 10, g4 = [2, 3, 7], p4 = [3, 3, 11], e0 = [280, 256, 256, 256, 40], v4 = [0, 1, 1, 1, 0], m4 = [17, 18, 0, 1, 2, 3, 4, 5, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], w4 = [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], B4 = [2954, 2956, 2958, 2962, 2970, 2986, 3018, 3082, 3212, 3468, 3980, 5004], y4 = 8, af = [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], sf = [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], qo = null, b4 = [[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]], C4 = [0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15], t0 = [-0, 1, -1, 2, -2, 3, 4, 6, -3, 5, -4, -5, -6, 7, -7, 8, -8, -9], E4 = [[[[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]]]], F4 = [[[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]]], x4 = [[[[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]]]], S4 = [0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0], zi = [], Va = [], yi = [], U4 = 1, A0 = 2, Xi = [], Ta = [];
ze("UpsampleRgbLinePair", KA, 3), ze("UpsampleBgrLinePair", VA, 3), ze("UpsampleRgbaLinePair", er, 4), ze("UpsampleBgraLinePair", _r, 4), ze("UpsampleArgbLinePair", Ur, 4), ze("UpsampleRgba4444LinePair", yr, 2), ze("UpsampleRgb565LinePair", ln, 2);
var T4 = k.UpsampleRgbLinePair, Q4 = k.UpsampleBgrLinePair, r0 = k.UpsampleRgbaLinePair, n0 = k.UpsampleBgraLinePair, a0 = k.UpsampleArgbLinePair, i0 = k.UpsampleRgba4444LinePair, D4 = k.UpsampleRgb565LinePair, zl = 16, Xl = 1 << zl - 1, jo = -227, of = 482, k4 = 6, s0 = 0, L4 = a(256), I4 = a(256), _4 = a(256), N4 = a(256), M4 = a(of - jo), O4 = a(of - jo);
Kn("YuvToRgbRow", KA, 3), Kn("YuvToBgrRow", VA, 3), Kn("YuvToRgbaRow", er, 4), Kn("YuvToBgraRow", _r, 4), Kn("YuvToArgbRow", Ur, 4), Kn("YuvToRgba4444Row", yr, 2), Kn("YuvToRgb565Row", ln, 2);
var o0 = [0, 4, 8, 12, 128, 132, 136, 140, 256, 260, 264, 268, 384, 388, 392, 396], Jl = [0, 2, 8], R4 = [8, 7, 6, 4, 4, 2, 2, 2, 1, 1, 1, 1], H4 = 1;
this.WebPDecodeRGBA = function(f, d, B, b, Q) {
var _ = Wl, P = new nt(), G = new Re();
P.ba = G, G.S = _, G.width = [G.width], G.height = [G.height];
var J = G.width, ie = G.height, Ee = new $e();
if (Ee == null || f == null) var He = 2;
else t(Ee != null), He = Fa(f, d, B, Ee.width, Ee.height, Ee.Pd, Ee.Qd, Ee.format, null);
if (He != 0 ? J = 0 : (J != null && (J[0] = Ee.width[0]), ie != null && (ie[0] = Ee.height[0]), J = 1), J) {
G.width = G.width[0], G.height = G.height[0], b != null && (b[0] = G.width), Q != null && (Q[0] = G.height);
e: {
if (b = new fA(), (Q = new ct()).data = f, Q.w = d, Q.ha = B, Q.kd = 1, d = [0], t(Q != null), ((f = Fa(Q.data, Q.w, Q.ha, null, null, null, d, null, Q)) == 0 || f == 7) && d[0] && (f = 4), (d = f) == 0) {
if (t(P != null), b.data = Q.data, b.w = Q.w + Q.offset, b.ha = Q.ha - Q.offset, b.put = Lt, b.ac = JA, b.bc = Qr, b.ma = P, Q.xa) {
if ((f = Un()) == null) {
P = 1;
break e;
}
if ((function(se, Ue) {
var Ne = [0], At = [0], Oe = [0];
t: for (; ; ) {
if (se == null) return 0;
if (Ue == null) return se.a = 2, 0;
if (se.l = Ue, se.a = 0, X(se.m, Ue.data, Ue.w, Ue.ha), !Fr(se.m, Ne, At, Oe)) {
se.a = 3;
break t;
}
if (se.xb = A0, Ue.width = Ne[0], Ue.height = At[0], !Dt(Ne[0], At[0], 1, se, null)) break t;
return 1;
}
return t(se.a != 0), 0;
})(f, b)) {
if (b = (d = ar(b.width, b.height, P.Oa, P.ba)) == 0) {
t: {
b = f;
A: for (; ; ) {
if (b == null) {
b = 0;
break t;
}
if (t(b.s.yc != null), t(b.s.Ya != null), t(0 < b.s.Wb), t((B = b.l) != null), t((Q = B.ma) != null), b.xb != 0) {
if (b.ca = Q.ba, b.tb = Q.tb, t(b.ca != null), !bs(Q.Oa, B, Gl)) {
b.a = 2;
break A;
}
if (!be(b, B.width) || B.da) break A;
if ((B.da || Nt(b.ca.S)) && Xe(), 11 > b.ca.S || (alert("todo:WebPInitConvertARGBToYUV"), b.ca.f.kb.F != null && Xe()), b.Pb && 0 < b.s.ua && b.s.vb.X == null && !D(b.s.vb, b.s.Wa.Xa)) {
b.a = 1;
break A;
}
b.xb = 0;
}
if (!ZA(b, b.V, b.Ba, b.c, b.i, B.o, Sr)) break A;
Q.Dc = b.Ma, b = 1;
break t;
}
t(b.a != 0), b = 0;
}
b = !b;
}
b && (d = f.a);
} else d = f.a;
} else {
if ((f = new gA()) == null) {
P = 1;
break e;
}
if (f.Fa = Q.na, f.P = Q.P, f.qc = Q.Sa, Gt(f, b)) {
if ((d = ar(b.width, b.height, P.Oa, P.ba)) == 0) {
if (f.Aa = 0, B = P.Oa, t((Q = f) != null), B != null) {
if (0 < (J = 0 > (J = B.Md) ? 0 : 100 < J ? 255 : 255 * J / 100)) {
for (ie = Ee = 0; 4 > ie; ++ie) 12 > (He = Q.pb[ie]).lc && (He.ia = J * R4[0 > He.lc ? 0 : He.lc] >> 3), Ee |= He.ia;
Ee && (alert("todo:VP8InitRandom"), Q.ia = 1);
}
Q.Ga = B.Id, 100 < Q.Ga ? Q.Ga = 100 : 0 > Q.Ga && (Q.Ga = 0);
}
(function(se, Ue) {
if (se == null) return 0;
if (Ue == null) return Xt(se, 2, "NULL VP8Io parameter in VP8Decode().");
if (!se.cb && !Gt(se, Ue)) return 0;
if (t(se.cb), Ue.ac == null || Ue.ac(Ue)) {
Ue.ob && (se.L = 0);
var Ne = Jl[se.L];
if (se.L == 2 ? (se.yb = 0, se.zb = 0) : (se.yb = Ue.v - Ne >> 4, se.zb = Ue.j - Ne >> 4, 0 > se.yb && (se.yb = 0), 0 > se.zb && (se.zb = 0)), se.Va = Ue.o + 15 + Ne >> 4, se.Hb = Ue.va + 15 + Ne >> 4, se.Hb > se.za && (se.Hb = se.za), se.Va > se.Ub && (se.Va = se.Ub), 0 < se.L) {
var At = se.ed;
for (Ne = 0; 4 > Ne; ++Ne) {
var Oe;
if (se.Qa.Cb) {
var st = se.Qa.Lb[Ne];
se.Qa.Fb || (st += At.Tb);
} else st = At.Tb;
for (Oe = 0; 1 >= Oe; ++Oe) {
var ot = se.gd[Ne][Oe], wt = st;
if (At.Pc && (wt += At.vd[0], Oe && (wt += At.od[0])), 0 < (wt = 0 > wt ? 0 : 63 < wt ? 63 : wt)) {
var ht = wt;
0 < At.wb && (ht = 4 < At.wb ? ht >> 2 : ht >> 1) > 9 - At.wb && (ht = 9 - At.wb), 1 > ht && (ht = 1), ot.dd = ht, ot.tc = 2 * wt + ht, ot.ld = 40 <= wt ? 2 : 15 <= wt ? 1 : 0;
} else ot.tc = 0;
ot.La = Oe;
}
}
}
Ne = 0;
} else Xt(se, 6, "Frame setup failed"), Ne = se.a;
if (Ne = Ne == 0) {
if (Ne) {
se.$c = 0, 0 < se.Aa || (se.Ic = H4);
t: {
Ne = se.Ic, At = 4 * (ht = se.za);
var Zt = 32 * ht, Vt = ht + 1, BA = 0 < se.L ? ht * (0 < se.Aa ? 2 : 1) : 0, $t = (se.Aa == 2 ? 2 : 1) * ht;
if ((ot = At + 832 + (Oe = 3 * (16 * Ne + Jl[se.L]) / 2 * Zt) + (st = se.Fa != null && 0 < se.Fa.length ? se.Kc.c * se.Kc.i : 0)) != ot) Ne = 0;
else {
if (ot > se.Vb) {
if (se.Vb = 0, se.Ec = a(ot), se.Fc = 0, se.Ec == null) {
Ne = Xt(se, 1, "no memory during frame initialization.");
break t;
}
se.Vb = ot;
}
ot = se.Ec, wt = se.Fc, se.Ac = ot, se.Bc = wt, wt += At, se.Gd = s(Zt, ft), se.Hd = 0, se.rb = s(Vt + 1, Ze), se.sb = 1, se.wa = BA ? s(BA, ke) : null, se.Y = 0, se.D.Nb = 0, se.D.wa = se.wa, se.D.Y = se.Y, 0 < se.Aa && (se.D.Y += ht), t(!0), se.oc = ot, se.pc = wt, wt += 832, se.ya = s($t, tt), se.aa = 0, se.D.ya = se.ya, se.D.aa = se.aa, se.Aa == 2 && (se.D.aa += ht), se.R = 16 * ht, se.B = 8 * ht, ht = (Zt = Jl[se.L]) * se.R, Zt = Zt / 2 * se.B, se.sa = ot, se.ta = wt + ht, se.qa = se.sa, se.ra = se.ta + 16 * Ne * se.R + Zt, se.Ha = se.qa, se.Ia = se.ra + 8 * Ne * se.B + Zt, se.$c = 0, wt += Oe, se.mb = st ? ot : null, se.nb = st ? wt : null, t(wt + st <= se.Fc + se.Vb), FA(se), n(se.Ac, se.Bc, 0, At), Ne = 1;
}
}
if (Ne) {
if (Ue.ka = 0, Ue.y = se.sa, Ue.O = se.ta, Ue.f = se.qa, Ue.N = se.ra, Ue.ea = se.Ha, Ue.Vd = se.Ia, Ue.fa = se.R, Ue.Rc = se.B, Ue.F = null, Ue.J = 0, !Xv) {
for (Ne = -255; 255 >= Ne; ++Ne) Gv[255 + Ne] = 0 > Ne ? -Ne : Ne;
for (Ne = -1020; 1020 >= Ne; ++Ne) Yv[1020 + Ne] = -128 > Ne ? -128 : 127 < Ne ? 127 : Ne;
for (Ne = -112; 112 >= Ne; ++Ne) $v[112 + Ne] = -16 > Ne ? -16 : 15 < Ne ? 15 : Ne;
for (Ne = -255; 510 >= Ne; ++Ne) zv[255 + Ne] = 0 > Ne ? 0 : 255 < Ne ? 255 : Ne;
Xv = 1;
}
$i = GA, Es = Pn, li = WA, $A = bA, or = nr, Sa = ea, Vr = ro, rn = ua, Bi = T, Ko = ne, io = no, Vl = v, Ov = we, Rv = De, Hv = Ea, Pv = qi, Kv = to, Vv = Ao, Va[0] = Js, Va[1] = pn, Va[2] = Mo, Va[3] = Xs, Va[4] = Ra, Va[5] = Bs, Va[6] = vn, Va[7] = Zs, Va[8] = Hi, Va[9] = ni, zi[0] = Dn, zi[1] = la, zi[2] = Qn, zi[3] = Ca, zi[4] = Ir, zi[5] = kn, zi[6] = zs, yi[0] = Pi, yi[1] = ba, yi[2] = wA, yi[3] = ta, yi[4] = ys, yi[5] = ai, yi[6] = eo, Ne = 1;
} else Ne = 0;
}
Ne && (Ne = (function(DA, nn) {
for (DA.M = 0; DA.M < DA.Va; ++DA.M) {
var yA, zt = DA.Jc[DA.M & DA.Xb], Tt = DA.m, qr = DA;
for (yA = 0; yA < qr.za; ++yA) {
var vA = Tt, _A = qr, mr = _A.Ac, Bn = _A.Bc + 4 * yA, Vn = _A.zc, Nr = _A.ya[_A.aa + yA];
if (_A.Qa.Bb ? Nr.$b = Se(vA, _A.Pa.jb[0]) ? 2 + Se(vA, _A.Pa.jb[2]) : Se(vA, _A.Pa.jb[1]) : Nr.$b = 0, _A.kc && (Nr.Ad = Se(vA, _A.Bd)), Nr.Za = !Se(vA, 145) + 0, Nr.Za) {
var Ln = Nr.Ob, qn = 0;
for (_A = 0; 4 > _A; ++_A) {
var an, RA = Vn[0 + _A];
for (an = 0; 4 > an; ++an) {
RA = F4[mr[Bn + an]][RA];
for (var tr = t0[Se(vA, RA[0])]; 0 < tr; ) tr = t0[2 * tr + Se(vA, RA[tr])];
RA = -tr, mr[Bn + an] = RA;
}
A(Ln, qn, mr, Bn, 4), qn += 4, Vn[0 + _A] = RA;
}
} else RA = Se(vA, 156) ? Se(vA, 128) ? 1 : 3 : Se(vA, 163) ? 2 : 0, Nr.Ob[0] = RA, n(mr, Bn, RA, 4), n(Vn, 0, RA, 4);
Nr.Dd = Se(vA, 142) ? Se(vA, 114) ? Se(vA, 183) ? 1 : 3 : 2 : 0;
}
if (qr.m.Ka) return Xt(DA, 7, "Premature end-of-partition0 encountered.");
for (; DA.ja < DA.za; ++DA.ja) {
if (qr = zt, vA = (Tt = DA).rb[Tt.sb - 1], mr = Tt.rb[Tt.sb + Tt.ja], yA = Tt.ya[Tt.aa + Tt.ja], Bn = Tt.kc ? yA.Ad : 0) vA.la = mr.la = 0, yA.Za || (vA.Na = mr.Na = 0), yA.Hc = 0, yA.Gc = 0, yA.ia = 0;
else {
var Mr, Ar;
if (vA = mr, mr = qr, Bn = Tt.Pa.Xc, Vn = Tt.ya[Tt.aa + Tt.ja], Nr = Tt.pb[Vn.$b], _A = Vn.ad, Ln = 0, qn = Tt.rb[Tt.sb - 1], RA = an = 0, n(_A, Ln, 0, 384), Vn.Za) var yn = 0, qa = Bn[3];
else {
tr = a(16);
var jr = vA.Na + qn.Na;
if (jr = qo(mr, Bn[1], jr, Nr.Eb, 0, tr, 0), vA.Na = qn.Na = (0 < jr) + 0, 1 < jr) $i(tr, 0, _A, Ln);
else {
var ra = tr[0] + 3 >> 3;
for (tr = 0; 256 > tr; tr += 16) _A[Ln + tr] = ra;
}
yn = 1, qa = Bn[0];
}
var lr = 15 & vA.la, sn = 15 & qn.la;
for (tr = 0; 4 > tr; ++tr) {
var ha = 1 & sn;
for (ra = Ar = 0; 4 > ra; ++ra) lr = lr >> 1 | (ha = (jr = qo(mr, qa, jr = ha + (1 & lr), Nr.Sc, yn, _A, Ln)) > yn) << 7, Ar = Ar << 2 | (3 < jr ? 3 : 1 < jr ? 2 : _A[Ln + 0] != 0), Ln += 16;
lr >>= 4, sn = sn >> 1 | ha << 7, an = (an << 8 | Ar) >>> 0;
}
for (qa = lr, yn = sn >> 4, Mr = 0; 4 > Mr; Mr += 2) {
for (Ar = 0, lr = vA.la >> 4 + Mr, sn = qn.la >> 4 + Mr, tr = 0; 2 > tr; ++tr) {
for (ha = 1 & sn, ra = 0; 2 > ra; ++ra) jr = ha + (1 & lr), lr = lr >> 1 | (ha = 0 < (jr = qo(mr, Bn[2], jr, Nr.Qc, 0, _A, Ln))) << 3, Ar = Ar << 2 | (3 < jr ? 3 : 1 < jr ? 2 : _A[Ln + 0] != 0), Ln += 16;
lr >>= 2, sn = sn >> 1 | ha << 5;
}
RA |= Ar << 4 * Mr, qa |= lr << 4 << Mr, yn |= (240 & sn) << Mr;
}
vA.la = qa, qn.la = yn, Vn.Hc = an, Vn.Gc = RA, Vn.ia = 43690 & RA ? 0 : Nr.ia, Bn = !(an | RA);
}
if (0 < Tt.L && (Tt.wa[Tt.Y + Tt.ja] = Tt.gd[yA.$b][yA.Za], Tt.wa[Tt.Y + Tt.ja].La |= !Bn), qr.Ka) return Xt(DA, 7, "Premature end-of-file encountered.");
}
if (FA(DA), Tt = nn, qr = 1, yA = (zt = DA).D, vA = 0 < zt.L && zt.M >= zt.zb && zt.M <= zt.Va, zt.Aa == 0) t: {
if (yA.M = zt.M, yA.uc = vA, un(zt, yA), qr = 1, yA = (Ar = zt.D).Nb, vA = (RA = Jl[zt.L]) * zt.R, mr = RA / 2 * zt.B, tr = 16 * yA * zt.R, ra = 8 * yA * zt.B, Bn = zt.sa, Vn = zt.ta - vA + tr, Nr = zt.qa, _A = zt.ra - mr + ra, Ln = zt.Ha, qn = zt.Ia - mr + ra, sn = (lr = Ar.M) == 0, an = lr >= zt.Va - 1, zt.Aa == 2 && un(zt, Ar), Ar.uc) for (ha = (jr = zt).D.M, t(jr.D.uc), Ar = jr.yb; Ar < jr.Hb; ++Ar) {
yn = Ar, qa = ha;
var jn = (da = (bn = jr).D).Nb;
Mr = bn.R;
var da = da.wa[da.Y + yn], ga = bn.sa, na = bn.ta + 16 * jn * Mr + 16 * yn, pa = da.dd, hr = da.tc;
if (hr != 0) if (t(3 <= hr), bn.L == 1) 0 < yn && Pv(ga, na, Mr, hr + 4), da.La && Vv(ga, na, Mr, hr), 0 < qa && Hv(ga, na, Mr, hr + 4), da.La && Kv(ga, na, Mr, hr);
else {
var va = bn.B, ja = bn.qa, Fs = bn.ra + 8 * jn * va + 8 * yn, bi = bn.Ha, bn = bn.Ia + 8 * jn * va + 8 * yn;
jn = da.ld, 0 < yn && (rn(ga, na, Mr, hr + 4, pa, jn), Ko(ja, Fs, bi, bn, va, hr + 4, pa, jn)), da.La && (Vl(ga, na, Mr, hr, pa, jn), Rv(ja, Fs, bi, bn, va, hr, pa, jn)), 0 < qa && (Vr(ga, na, Mr, hr + 4, pa, jn), Bi(ja, Fs, bi, bn, va, hr + 4, pa, jn)), da.La && (io(ga, na, Mr, hr, pa, jn), Ov(ja, Fs, bi, bn, va, hr, pa, jn));
}
}
if (zt.ia && alert("todo:DitherRow"), Tt.put != null) {
if (Ar = 16 * lr, lr = 16 * (lr + 1), sn ? (Tt.y = zt.sa, Tt.O = zt.ta + tr, Tt.f = zt.qa, Tt.N = zt.ra + ra, Tt.ea = zt.Ha, Tt.W = zt.Ia + ra) : (Ar -= RA, Tt.y = Bn, Tt.O = Vn, Tt.f = Nr, Tt.N = _A, Tt.ea = Ln, Tt.W = qn), an || (lr -= RA), lr > Tt.o && (lr = Tt.o), Tt.F = null, Tt.J = null, zt.Fa != null && 0 < zt.Fa.length && Ar < lr && (Tt.J = te(zt, Tt, Ar, lr - Ar), Tt.F = zt.mb, Tt.F == null && Tt.F.length == 0)) {
qr = Xt(zt, 3, "Could not decode alpha data.");
break t;
}
Ar < Tt.j && (RA = Tt.j - Ar, Ar = Tt.j, t(!(1 & RA)), Tt.O += zt.R * RA, Tt.N += zt.B * (RA >> 1), Tt.W += zt.B * (RA >> 1), Tt.F != null && (Tt.J += Tt.width * RA)), Ar < lr && (Tt.O += Tt.v, Tt.N += Tt.v >> 1, Tt.W += Tt.v >> 1, Tt.F != null && (Tt.J += Tt.v), Tt.ka = Ar - Tt.j, Tt.U = Tt.va - Tt.v, Tt.T = lr - Ar, qr = Tt.put(Tt));
}
yA + 1 != zt.Ic || an || (A(zt.sa, zt.ta - vA, Bn, Vn + 16 * zt.R, vA), A(zt.qa, zt.ra - mr, Nr, _A + 8 * zt.B, mr), A(zt.Ha, zt.Ia - mr, Ln, qn + 8 * zt.B, mr));
}
if (!qr) return Xt(DA, 6, "Output aborted.");
}
return 1;
})(se, Ue)), Ue.bc != null && Ue.bc(Ue), Ne &= 1;
}
return Ne ? (se.cb = 0, Ne) : 0;
})(f, b) || (d = f.a);
}
} else d = f.a;
}
d == 0 && P.Oa != null && P.Oa.fd && (d = wi(P.ba));
}
P = d;
}
_ = P != 0 ? null : 11 > _ ? G.f.RGBA.eb : G.f.kb.y;
} else _ = null;
return _;
};
var l0 = [3, 4, 3, 4, 4, 2, 2, 4, 4, 4, 2, 1, 1];
};
function l(k, O) {
for (var S = "", U = 0; U < 4; U++) S += String.fromCharCode(k[O++]);
return S;
}
function u(k, O) {
return k[O + 0] | k[O + 1] << 8;
}
function h(k, O) {
return (k[O + 0] | k[O + 1] << 8 | k[O + 2] << 16) >>> 0;
}
function g(k, O) {
return (k[O + 0] | k[O + 1] << 8 | k[O + 2] << 16 | k[O + 3] << 24) >>> 0;
}
new o();
var c = [0], p = [0], m = [], y = new o(), w = r, E = (function(k, O) {
var S = {}, U = 0, W = !1, I = 0, le = 0;
if (S.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(x, L) {
for (var j = 0; j < 4; j++) if (x[L + j] != "RIFF".charCodeAt(j)) return !0;
return !1;
})(k, O)) {
for (g(k, O += 4), O += 8; O < k.length; ) {
var ue = l(k, O), Z = g(k, O += 4);
O += 4;
var ee = Z + (1 & Z);
switch (ue) {
case "VP8 ":
case "VP8L":
S.frames[U] === void 0 && (S.frames[U] = {}), (oe = S.frames[U]).src_off = W ? le : O - 8, oe.src_size = I + Z + 8, U++, W && (W = !1, I = 0, le = 0);
break;
case "VP8X":
(oe = S.header = {}).feature_flags = k[O];
var X = O + 4;
oe.canvas_width = 1 + h(k, X), X += 3, oe.canvas_height = 1 + h(k, X), X += 3;
break;
case "ALPH":
W = !0, I = ee + 8, le = O - 8;
break;
case "ANIM":
(oe = S.header).bgcolor = g(k, O), X = O + 4, oe.loop_count = u(k, X), X += 2;
break;
case "ANMF":
var Ae, oe;
(oe = S.frames[U] = {}).offset_x = 2 * h(k, O), O += 3, oe.offset_y = 2 * h(k, O), O += 3, oe.width = 1 + h(k, O), O += 3, oe.height = 1 + h(k, O), O += 3, oe.duration = h(k, O), O += 3, Ae = k[O++], oe.dispose = 1 & Ae, oe.blend = Ae >> 1 & 1;
}
ue != "ANMF" && (O += ee);
}
return S;
}
})(w, 0);
E.response = w, E.rgbaoutput = !0, E.dataurl = !1;
var C = E.header ? E.header : null, F = E.frames ? E.frames : null;
if (C) {
C.loop_counter = C.loop_count, c = [C.canvas_height], p = [C.canvas_width];
for (var H = 0; H < F.length && F[H].blend != 0; H++) ;
}
var q = F[0], N = y.WebPDecodeRGBA(w, q.src_off, q.src_size, p, c);
q.rgba = N, q.imgwidth = p[0], q.imgheight = c[0];
for (var M = 0; M < p[0] * c[0] * 4; M++) m[M] = N[M];
return this.width = p, this.height = c, this.data = m, this;
}
(function(r) {
var t, e, A, n, a, s, i, o, l, u = function(x) {
return x = x || {}, this.isStrokeTransparent = x.isStrokeTransparent || !1, this.strokeOpacity = x.strokeOpacity || 1, this.strokeStyle = x.strokeStyle || "#000000", this.fillStyle = x.fillStyle || "#000000", this.isFillTransparent = x.isFillTransparent || !1, this.fillOpacity = x.fillOpacity || 1, this.font = x.font || "10px sans-serif", this.textBaseline = x.textBaseline || "alphabetic", this.textAlign = x.textAlign || "left", this.lineWidth = x.lineWidth || 1, this.lineJoin = x.lineJoin || "miter", this.lineCap = x.lineCap || "butt", this.path = x.path || [], this.transform = x.transform !== void 0 ? x.transform.clone() : new o(), this.globalCompositeOperation = x.globalCompositeOperation || "normal", this.globalAlpha = x.globalAlpha || 1, this.clip_path = x.clip_path || [], this.currentPoint = x.currentPoint || new s(), this.miterLimit = x.miterLimit || 10, this.lastPoint = x.lastPoint || new s(), this.lineDashOffset = x.lineDashOffset || 0, this.lineDash = x.lineDash || [], this.margin = x.margin || [0, 0, 0, 0], this.prevPageLastElemOffset = x.prevPageLastElemOffset || 0, this.ignoreClearRect = typeof x.ignoreClearRect != "boolean" || x.ignoreClearRect, this;
};
r.events.push(["initialized", function() {
this.context2d = new h(this), t = this.internal.f2, e = this.internal.getCoordinateString, A = this.internal.getVerticalCoordinateString, n = this.internal.getHorizontalCoordinate, a = this.internal.getVerticalCoordinate, s = this.internal.Point, i = this.internal.Rectangle, o = this.internal.Matrix, l = new u();
}]);
var h = function(x) {
Object.defineProperty(this, "canvas", { get: function() {
return { parentNode: !1, style: !1 };
} });
var L = x;
Object.defineProperty(this, "pdf", { get: function() {
return L;
} });
var j = !1;
Object.defineProperty(this, "pageWrapXEnabled", { get: function() {
return j;
}, set: function(D) {
j = !!D;
} });
var $ = !1;
Object.defineProperty(this, "pageWrapYEnabled", { get: function() {
return $;
}, set: function(D) {
$ = !!D;
} });
var re = 0;
Object.defineProperty(this, "posX", { get: function() {
return re;
}, set: function(D) {
isNaN(D) || (re = D);
} });
var pe = 0;
Object.defineProperty(this, "posY", { get: function() {
return pe;
}, set: function(D) {
isNaN(D) || (pe = D);
} }), Object.defineProperty(this, "margin", { get: function() {
return l.margin;
}, set: function(D) {
var Ie;
typeof D == "number" ? Ie = [D, D, D, D] : ((Ie = new Array(4))[0] = D[0], Ie[1] = D.length >= 2 ? D[1] : Ie[0], Ie[2] = D.length >= 3 ? D[2] : Ie[0], Ie[3] = D.length >= 4 ? D[3] : Ie[1]), l.margin = Ie;
} });
var de = !1;
Object.defineProperty(this, "autoPaging", { get: function() {
return de;
}, set: function(D) {
de = D;
} });
var ce = 0;
Object.defineProperty(this, "lastBreak", { get: function() {
return ce;
}, set: function(D) {
ce = D;
} });
var Se = [];
Object.defineProperty(this, "pageBreaks", { get: function() {
return Se;
}, set: function(D) {
Se = D;
} }), Object.defineProperty(this, "ctx", { get: function() {
return l;
}, set: function(D) {
D instanceof u && (l = D);
} }), Object.defineProperty(this, "path", { get: function() {
return l.path;
}, set: function(D) {
l.path = D;
} });
var qe = [];
Object.defineProperty(this, "ctxStack", { get: function() {
return qe;
}, set: function(D) {
qe = D;
} }), Object.defineProperty(this, "fillStyle", { get: function() {
return this.ctx.fillStyle;
}, set: function(D) {
var Ie;
Ie = g(D), this.ctx.fillStyle = Ie.style, this.ctx.isFillTransparent = Ie.a === 0, this.ctx.fillOpacity = Ie.a, this.pdf.setFillColor(Ie.r, Ie.g, Ie.b, { a: Ie.a }), this.pdf.setTextColor(Ie.r, Ie.g, Ie.b, { a: Ie.a });
} }), Object.defineProperty(this, "strokeStyle", { get: function() {
return this.ctx.strokeStyle;
}, set: function(D) {
var Ie = g(D);
this.ctx.strokeStyle = Ie.style, this.ctx.isStrokeTransparent = Ie.a === 0, this.ctx.strokeOpacity = Ie.a, Ie.a === 0 ? this.pdf.setDrawColor(255, 255, 255) : (Ie.a, this.pdf.setDrawColor(Ie.r, Ie.g, Ie.b));
} }), Object.defineProperty(this, "lineCap", { get: function() {
return this.ctx.lineCap;
}, set: function(D) {
["butt", "round", "square"].indexOf(D) !== -1 && (this.ctx.lineCap = D, this.pdf.setLineCap(D));
} }), Object.defineProperty(this, "lineWidth", { get: function() {
return this.ctx.lineWidth;
}, set: function(D) {
isNaN(D) || (this.ctx.lineWidth = D, this.pdf.setLineWidth(D));
} }), Object.defineProperty(this, "lineJoin", { get: function() {
return this.ctx.lineJoin;
}, set: function(D) {
["bevel", "round", "miter"].indexOf(D) !== -1 && (this.ctx.lineJoin = D, this.pdf.setLineJoin(D));
} }), Object.defineProperty(this, "miterLimit", { get: function() {
return this.ctx.miterLimit;
}, set: function(D) {
isNaN(D) || (this.ctx.miterLimit = D, this.pdf.setMiterLimit(D));
} }), Object.defineProperty(this, "textBaseline", { get: function() {
return this.ctx.textBaseline;
}, set: function(D) {
this.ctx.textBaseline = D;
} }), Object.defineProperty(this, "textAlign", { get: function() {
return this.ctx.textAlign;
}, set: function(D) {
["right", "end", "center", "left", "start"].indexOf(D) !== -1 && (this.ctx.textAlign = D);
} });
var rt = null, at = null, dt = null;
Object.defineProperty(this, "fontFaces", { get: function() {
return dt;
}, set: function(D) {
rt = null, at = null, dt = D;
} }), Object.defineProperty(this, "font", { get: function() {
return this.ctx.font;
}, set: function(D) {
var Ie;
if (this.ctx.font = D, (Ie = /^\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-z0-9]+?)\s*$/i.exec(D)) !== null) {
var me = Ie[1];
Ie[2];
var ve = Ie[3], xe = Ie[4];
Ie[5];
var Qe = Ie[6], _e = /^([.\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i.exec(xe)[2];
xe = Math.floor(_e === "px" ? parseFloat(xe) * this.pdf.internal.scaleFactor : _e === "em" ? parseFloat(xe) * this.pdf.getFontSize() : parseFloat(xe) * this.pdf.internal.scaleFactor), this.pdf.setFontSize(xe);
var Pe = (function(bt) {
var nA, qt, Ot = [], Pt = bt.trim();
if (Pt === "") return Rf;
if (Pt in D1) return [D1[Pt]];
for (; Pt !== ""; ) {
switch (qt = null, nA = (Pt = L1(Pt)).charAt(0)) {
case '"':
case "'":
qt = yD(Pt.substring(1), nA);
break;
default:
qt = bD(Pt);
}
if (qt === null || (Ot.push(qt[0]), (Pt = L1(qt[1])) !== "" && Pt.charAt(0) !== ",")) return Rf;
Pt = Pt.replace(/^,/, "");
}
return Ot;
})(Qe);
if (this.fontFaces) {
var je = (function(bt, nA) {
var qt = bt.getFontList(), Ot = JSON.stringify(qt);
if (rt === null || at !== Ot) {
var Pt = (function(sA) {
var kt = [];
return Object.keys(sA).forEach(function(hA) {
sA[hA].forEach(function(Nt) {
var Ce = null;
switch (Nt) {
case "bold":
Ce = { family: hA, weight: "bold" };
break;
case "italic":
Ce = { family: hA, style: "italic" };
break;
case "bolditalic":
Ce = { family: hA, weight: "bold", style: "italic" };
break;
case "":
case "normal":
Ce = { family: hA };
}
Ce !== null && (Ce.ref = { name: hA, style: Nt }, kt.push(Ce));
});
}), kt;
})(qt);
rt = (function(sA) {
for (var kt = {}, hA = 0; hA < sA.length; ++hA) {
var Nt = Of(sA[hA]), Ce = Nt.family, Ve = Nt.stretch, Re = Nt.style, $e = Nt.weight;
kt[Ce] = kt[Ce] || {}, kt[Ce][Ve] = kt[Ce][Ve] || {}, kt[Ce][Ve][Re] = kt[Ce][Ve][Re] || {}, kt[Ce][Ve][Re][$e] = Nt;
}
return kt;
})(Pt.concat(nA)), at = Ot;
}
return rt;
})(this.pdf, this.fontFaces), Ke = Pe.map(function(bt) {
return { family: bt, stretch: "normal", weight: ve, style: me };
}), et = (function(bt, nA, qt) {
for (var Ot = (qt = qt || {}).defaultFontFamily || "times", Pt = Object.assign({}, BD, qt.genericFontFamilies || {}), sA = null, kt = null, hA = 0; hA < nA.length; ++hA) if (Pt[(sA = Of(nA[hA])).family] && (sA.family = Pt[sA.family]), bt.hasOwnProperty(sA.family)) {
kt = bt[sA.family];
break;
}
if (!(kt = kt || bt[Ot])) throw new Error("Could not find a font-family for the rule '" + k1(sA) + "' and default family '" + Ot + "'.");
if (kt = (function(Nt, Ce) {
if (Ce[Nt]) return Ce[Nt];
var Ve = up[Nt], Re = Ve <= up.normal ? -1 : 1, $e = Q1(Ce, D5, Ve, Re);
if (!$e) throw new Error("Could not find a matching font-stretch value for " + Nt);
return $e;
})(sA.stretch, kt), kt = (function(Nt, Ce) {
if (Ce[Nt]) return Ce[Nt];
for (var Ve = Q5[Nt], Re = 0; Re < Ve.length; ++Re) if (Ce[Ve[Re]]) return Ce[Ve[Re]];
throw new Error("Could not find a matching font-style for " + Nt);
})(sA.style, kt), !(kt = (function(Nt, Ce) {
if (Ce[Nt]) return Ce[Nt];
if (Nt === 400 && Ce[500]) return Ce[500];
if (Nt === 500 && Ce[400]) return Ce[400];
var Ve = wD[Nt], Re = Q1(Ce, k5, Ve, Nt < 400 ? -1 : 1);
if (!Re) throw new Error("Could not find a matching font-weight for value " + Nt);
return Re;
})(sA.weight, kt))) throw new Error("Failed to resolve a font for the rule '" + k1(sA) + "'.");
return kt;
})(je, Ke);
this.pdf.setFont(et.ref.name, et.ref.style);
} else {
var ut = "";
(ve === "bold" || parseInt(ve, 10) >= 700 || me === "bold") && (ut = "bold"), me === "italic" && (ut += "italic"), ut.length === 0 && (ut = "normal");
for (var yt = "", Ft = { 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" }, Bt = 0; Bt < Pe.length; Bt++) {
if (this.pdf.internal.getFont(Pe[Bt], ut, { noFallback: !0, disableWarning: !0 }) !== void 0) {
yt = Pe[Bt];
break;
}
if (ut === "bolditalic" && this.pdf.internal.getFont(Pe[Bt], "bold", { noFallback: !0, disableWarning: !0 }) !== void 0) yt = Pe[Bt], ut = "bold";
else if (this.pdf.internal.getFont(Pe[Bt], "normal", { noFallback: !0, disableWarning: !0 }) !== void 0) {
yt = Pe[Bt], ut = "normal";
break;
}
}
if (yt === "") {
for (var St = 0; St < Pe.length; St++) if (Ft[Pe[St]]) {
yt = Ft[Pe[St]];
break;
}
}
yt = yt === "" ? "Times" : yt, this.pdf.setFont(yt, ut);
}
}
} }), Object.defineProperty(this, "globalCompositeOperation", { get: function() {
return this.ctx.globalCompositeOperation;
}, set: function(D) {
this.ctx.globalCompositeOperation = D;
} }), Object.defineProperty(this, "globalAlpha", { get: function() {
return this.ctx.globalAlpha;
}, set: function(D) {
this.ctx.globalAlpha = D;
} }), Object.defineProperty(this, "lineDashOffset", { get: function() {
return this.ctx.lineDashOffset;
}, set: function(D) {
this.ctx.lineDashOffset = D, oe.call(this);
} }), Object.defineProperty(this, "lineDash", { get: function() {
return this.ctx.lineDash;
}, set: function(D) {
this.ctx.lineDash = D, oe.call(this);
} }), Object.defineProperty(this, "ignoreClearRect", { get: function() {
return this.ctx.ignoreClearRect;
}, set: function(D) {
this.ctx.ignoreClearRect = !!D;
} });
};
h.prototype.setLineDash = function(x) {
this.lineDash = x;
}, h.prototype.getLineDash = function() {
return this.lineDash.length % 2 ? this.lineDash.concat(this.lineDash) : this.lineDash.slice();
}, h.prototype.fill = function() {
F.call(this, "fill", !1);
}, h.prototype.stroke = function() {
F.call(this, "stroke", !1);
}, h.prototype.beginPath = function() {
this.path = [{ type: "begin" }];
}, h.prototype.moveTo = function(x, L) {
if (isNaN(x) || isNaN(L)) throw ur.error("jsPDF.context2d.moveTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.moveTo");
var j = this.ctx.transform.applyToPoint(new s(x, L));
this.path.push({ type: "mt", x: j.x, y: j.y }), this.ctx.lastPoint = new s(x, L);
}, h.prototype.closePath = function() {
var x = new s(0, 0), L = 0;
for (L = this.path.length - 1; L !== -1; L--) if (this.path[L].type === "begin" && jA(this.path[L + 1]) === "object" && typeof this.path[L + 1].x == "number") {
x = new s(this.path[L + 1].x, this.path[L + 1].y);
break;
}
this.path.push({ type: "close" }), this.ctx.lastPoint = new s(x.x, x.y);
}, h.prototype.lineTo = function(x, L) {
if (isNaN(x) || isNaN(L)) throw ur.error("jsPDF.context2d.lineTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.lineTo");
var j = this.ctx.transform.applyToPoint(new s(x, L));
this.path.push({ type: "lt", x: j.x, y: j.y }), this.ctx.lastPoint = new s(j.x, j.y);
}, h.prototype.clip = function() {
this.ctx.clip_path = JSON.parse(JSON.stringify(this.path)), F.call(this, null, !0);
}, h.prototype.quadraticCurveTo = function(x, L, j, $) {
if (isNaN(j) || isNaN($) || isNaN(x) || isNaN(L)) throw ur.error("jsPDF.context2d.quadraticCurveTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.quadraticCurveTo");
var re = this.ctx.transform.applyToPoint(new s(j, $)), pe = this.ctx.transform.applyToPoint(new s(x, L));
this.path.push({ type: "qct", x1: pe.x, y1: pe.y, x: re.x, y: re.y }), this.ctx.lastPoint = new s(re.x, re.y);
}, h.prototype.bezierCurveTo = function(x, L, j, $, re, pe) {
if (isNaN(re) || isNaN(pe) || isNaN(x) || isNaN(L) || isNaN(j) || isNaN($)) throw ur.error("jsPDF.context2d.bezierCurveTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.bezierCurveTo");
var de = this.ctx.transform.applyToPoint(new s(re, pe)), ce = this.ctx.transform.applyToPoint(new s(x, L)), Se = this.ctx.transform.applyToPoint(new s(j, $));
this.path.push({ type: "bct", x1: ce.x, y1: ce.y, x2: Se.x, y2: Se.y, x: de.x, y: de.y }), this.ctx.lastPoint = new s(de.x, de.y);
}, h.prototype.arc = function(x, L, j, $, re, pe) {
if (isNaN(x) || isNaN(L) || isNaN(j) || isNaN($) || isNaN(re)) throw ur.error("jsPDF.context2d.arc: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.arc");
if (pe = !!pe, !this.ctx.transform.isIdentity) {
var de = this.ctx.transform.applyToPoint(new s(x, L));
x = de.x, L = de.y;
var ce = this.ctx.transform.applyToPoint(new s(0, j)), Se = this.ctx.transform.applyToPoint(new s(0, 0));
j = Math.sqrt(Math.pow(ce.x - Se.x, 2) + Math.pow(ce.y - Se.y, 2));
}
Math.abs(re - $) >= 2 * Math.PI && ($ = 0, re = 2 * Math.PI), this.path.push({ type: "arc", x, y: L, radius: j, startAngle: $, endAngle: re, counterclockwise: pe });
}, h.prototype.arcTo = function(x, L, j, $, re) {
throw new Error("arcTo not implemented.");
}, h.prototype.rect = function(x, L, j, $) {
if (isNaN(x) || isNaN(L) || isNaN(j) || isNaN($)) throw ur.error("jsPDF.context2d.rect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.rect");
this.moveTo(x, L), this.lineTo(x + j, L), this.lineTo(x + j, L + $), this.lineTo(x, L + $), this.lineTo(x, L), this.lineTo(x + j, L), this.lineTo(x, L);
}, h.prototype.fillRect = function(x, L, j, $) {
if (isNaN(x) || isNaN(L) || isNaN(j) || isNaN($)) throw ur.error("jsPDF.context2d.fillRect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.fillRect");
if (!c.call(this)) {
var re = {};
this.lineCap !== "butt" && (re.lineCap = this.lineCap, this.lineCap = "butt"), this.lineJoin !== "miter" && (re.lineJoin = this.lineJoin, this.lineJoin = "miter"), this.beginPath(), this.rect(x, L, j, $), this.fill(), re.hasOwnProperty("lineCap") && (this.lineCap = re.lineCap), re.hasOwnProperty("lineJoin") && (this.lineJoin = re.lineJoin);
}
}, h.prototype.strokeRect = function(x, L, j, $) {
if (isNaN(x) || isNaN(L) || isNaN(j) || isNaN($)) throw ur.error("jsPDF.context2d.strokeRect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.strokeRect");
p.call(this) || (this.beginPath(), this.rect(x, L, j, $), this.stroke());
}, h.prototype.clearRect = function(x, L, j, $) {
if (isNaN(x) || isNaN(L) || isNaN(j) || isNaN($)) throw ur.error("jsPDF.context2d.clearRect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.clearRect");
this.ignoreClearRect || (this.fillStyle = "#ffffff", this.fillRect(x, L, j, $));
}, h.prototype.save = function(x) {
x = typeof x != "boolean" || x;
for (var L = this.pdf.internal.getCurrentPageInfo().pageNumber, j = 0; j < this.pdf.internal.getNumberOfPages(); j++) this.pdf.setPage(j + 1), this.pdf.internal.out("q");
if (this.pdf.setPage(L), x) {
this.ctx.fontSize = this.pdf.internal.getFontSize();
var $ = new u(this.ctx);
this.ctxStack.push(this.ctx), this.ctx = $;
}
}, h.prototype.restore = function(x) {
x = typeof x != "boolean" || x;
for (var L = this.pdf.internal.getCurrentPageInfo().pageNumber, j = 0; j < this.pdf.internal.getNumberOfPages(); j++) this.pdf.setPage(j + 1), this.pdf.internal.out("Q");
this.pdf.setPage(L), x && 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);
}, h.prototype.toDataURL = function() {
throw new Error("toDataUrl not implemented.");
};
var g = function(x) {
var L, j, $, re;
if (x.isCanvasGradient === !0 && (x = x.getColor()), !x) return { r: 0, g: 0, b: 0, a: 0, style: x };
if (/transparent|rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*0+\s*\)/.test(x)) L = 0, j = 0, $ = 0, re = 0;
else {
var pe = /rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/.exec(x);
if (pe !== null) L = parseInt(pe[1]), j = parseInt(pe[2]), $ = parseInt(pe[3]), re = 1;
else if ((pe = /rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d.]+)\s*\)/.exec(x)) !== null) L = parseInt(pe[1]), j = parseInt(pe[2]), $ = parseInt(pe[3]), re = parseFloat(pe[4]);
else {
if (re = 1, typeof x == "string" && x.charAt(0) !== "#") {
var de = new C5(x);
x = de.ok ? de.toHex() : "#000000";
}
x.length === 4 ? (L = x.substring(1, 2), L += L, j = x.substring(2, 3), j += j, $ = x.substring(3, 4), $ += $) : (L = x.substring(1, 3), j = x.substring(3, 5), $ = x.substring(5, 7)), L = parseInt(L, 16), j = parseInt(j, 16), $ = parseInt($, 16);
}
}
return { r: L, g: j, b: $, a: re, style: x };
}, c = function() {
return this.ctx.isFillTransparent || this.globalAlpha == 0;
}, p = function() {
return !!(this.ctx.isStrokeTransparent || this.globalAlpha == 0);
};
h.prototype.fillText = function(x, L, j, $) {
if (isNaN(L) || isNaN(j) || typeof x != "string") throw ur.error("jsPDF.context2d.fillText: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.fillText");
if ($ = isNaN($) ? void 0 : $, !c.call(this)) {
var re = ee(this.ctx.transform.rotation), pe = this.ctx.transform.scaleX;
U.call(this, { text: x, x: L, y: j, scale: pe, angle: re, align: this.textAlign, maxWidth: $ });
}
}, h.prototype.strokeText = function(x, L, j, $) {
if (isNaN(L) || isNaN(j) || typeof x != "string") throw ur.error("jsPDF.context2d.strokeText: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.strokeText");
if (!p.call(this)) {
$ = isNaN($) ? void 0 : $;
var re = ee(this.ctx.transform.rotation), pe = this.ctx.transform.scaleX;
U.call(this, { text: x, x: L, y: j, scale: pe, renderingMode: "stroke", angle: re, align: this.textAlign, maxWidth: $ });
}
}, h.prototype.measureText = function(x) {
if (typeof x != "string") throw ur.error("jsPDF.context2d.measureText: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.measureText");
var L = this.pdf, j = this.pdf.internal.scaleFactor, $ = L.internal.getFontSize(), re = L.getStringUnitWidth(x) * $ / L.internal.scaleFactor;
return new function(pe) {
var de = (pe = pe || {}).width || 0;
return Object.defineProperty(this, "width", { get: function() {
return de;
} }), this;
}({ width: re *= Math.round(96 * j / 72 * 1e4) / 1e4 });
}, h.prototype.scale = function(x, L) {
if (isNaN(x) || isNaN(L)) throw ur.error("jsPDF.context2d.scale: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.scale");
var j = new o(x, 0, 0, L, 0, 0);
this.ctx.transform = this.ctx.transform.multiply(j);
}, h.prototype.rotate = function(x) {
if (isNaN(x)) throw ur.error("jsPDF.context2d.rotate: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.rotate");
var L = new o(Math.cos(x), Math.sin(x), -Math.sin(x), Math.cos(x), 0, 0);
this.ctx.transform = this.ctx.transform.multiply(L);
}, h.prototype.translate = function(x, L) {
if (isNaN(x) || isNaN(L)) throw ur.error("jsPDF.context2d.translate: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.translate");
var j = new o(1, 0, 0, 1, x, L);
this.ctx.transform = this.ctx.transform.multiply(j);
}, h.prototype.transform = function(x, L, j, $, re, pe) {
if (isNaN(x) || isNaN(L) || isNaN(j) || isNaN($) || isNaN(re) || isNaN(pe)) throw ur.error("jsPDF.context2d.transform: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.transform");
var de = new o(x, L, j, $, re, pe);
this.ctx.transform = this.ctx.transform.multiply(de);
}, h.prototype.setTransform = function(x, L, j, $, re, pe) {
x = isNaN(x) ? 1 : x, L = isNaN(L) ? 0 : L, j = isNaN(j) ? 0 : j, $ = isNaN($) ? 1 : $, re = isNaN(re) ? 0 : re, pe = isNaN(pe) ? 0 : pe, this.ctx.transform = new o(x, L, j, $, re, pe);
};
var m = function() {
return this.margin[0] > 0 || this.margin[1] > 0 || this.margin[2] > 0 || this.margin[3] > 0;
};
h.prototype.drawImage = function(x, L, j, $, re, pe, de, ce, Se) {
var qe = this.pdf.getImageProperties(x), rt = 1, at = 1, dt = 1, D = 1;
$ !== void 0 && ce !== void 0 && (dt = ce / $, D = Se / re, rt = qe.width / $ * ce / $, at = qe.height / re * Se / re), pe === void 0 && (pe = L, de = j, L = 0, j = 0), $ !== void 0 && ce === void 0 && (ce = $, Se = re), $ === void 0 && ce === void 0 && (ce = qe.width, Se = qe.height);
var Ie = this.ctx.transform.decompose(), me = ee(Ie.rotate.shx), ve = new o(), xe = (ve = (ve = (ve = ve.multiply(Ie.translate)).multiply(Ie.skew)).multiply(Ie.scale)).applyToRectangle(new i(pe - L * dt, de - j * D, $ * rt, re * at));
if (this.autoPaging) {
for (var Qe, _e = y.call(this, xe), Pe = [], je = 0; je < _e.length; je += 1) Pe.indexOf(_e[je]) === -1 && Pe.push(_e[je]);
C(Pe);
for (var Ke = Pe[0], et = Pe[Pe.length - 1], ut = Ke; ut < et + 1; ut++) {
this.pdf.setPage(ut);
var yt = this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1], Ft = ut === 1 ? this.posY + this.margin[0] : this.margin[0], Bt = this.pdf.internal.pageSize.height - this.posY - this.margin[0] - this.margin[2], St = this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2], bt = ut === 1 ? 0 : Bt + (ut - 2) * St;
if (this.ctx.clip_path.length !== 0) {
var nA = this.path;
Qe = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = E(Qe, this.posX + this.margin[3], -bt + Ft + this.ctx.prevPageLastElemOffset), H.call(this, "fill", !0), this.path = nA;
}
var qt = JSON.parse(JSON.stringify(xe));
qt = E([qt], this.posX + this.margin[3], -bt + Ft + this.ctx.prevPageLastElemOffset)[0];
var Ot = (ut > Ke || ut < et) && m.call(this);
Ot && (this.pdf.saveGraphicsState(), this.pdf.rect(this.margin[3], this.margin[0], yt, St, null).clip().discardPath()), this.pdf.addImage(x, "JPEG", qt.x, qt.y, qt.w, qt.h, null, null, me), Ot && this.pdf.restoreGraphicsState();
}
} else this.pdf.addImage(x, "JPEG", xe.x, xe.y, xe.w, xe.h, null, null, me);
};
var y = function(x, L, j) {
var $ = [];
L = L || this.pdf.internal.pageSize.width, j = j || this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];
var re = this.posY + this.ctx.prevPageLastElemOffset;
switch (x.type) {
default:
case "mt":
case "lt":
$.push(Math.floor((x.y + re) / j) + 1);
break;
case "arc":
$.push(Math.floor((x.y + re - x.radius) / j) + 1), $.push(Math.floor((x.y + re + x.radius) / j) + 1);
break;
case "qct":
var pe = X(this.ctx.lastPoint.x, this.ctx.lastPoint.y, x.x1, x.y1, x.x, x.y);
$.push(Math.floor((pe.y + re) / j) + 1), $.push(Math.floor((pe.y + pe.h + re) / j) + 1);
break;
case "bct":
var de = Ae(this.ctx.lastPoint.x, this.ctx.lastPoint.y, x.x1, x.y1, x.x2, x.y2, x.x, x.y);
$.push(Math.floor((de.y + re) / j) + 1), $.push(Math.floor((de.y + de.h + re) / j) + 1);
break;
case "rect":
$.push(Math.floor((x.y + re) / j) + 1), $.push(Math.floor((x.y + x.h + re) / j) + 1);
}
for (var ce = 0; ce < $.length; ce += 1) for (; this.pdf.internal.getNumberOfPages() < $[ce]; ) w.call(this);
return $;
}, w = function() {
var x = this.fillStyle, L = this.strokeStyle, j = this.font, $ = this.lineCap, re = this.lineWidth, pe = this.lineJoin;
this.pdf.addPage(), this.fillStyle = x, this.strokeStyle = L, this.font = j, this.lineCap = $, this.lineWidth = re, this.lineJoin = pe;
}, E = function(x, L, j) {
for (var $ = 0; $ < x.length; $++) switch (x[$].type) {
case "bct":
x[$].x2 += L, x[$].y2 += j;
case "qct":
x[$].x1 += L, x[$].y1 += j;
default:
x[$].x += L, x[$].y += j;
}
return x;
}, C = function(x) {
return x.sort(function(L, j) {
return L - j;
});
}, F = function(x, L) {
var j = this.fillStyle, $ = this.strokeStyle, re = this.lineCap, pe = this.lineWidth, de = Math.abs(pe * this.ctx.transform.scaleX), ce = this.lineJoin;
if (this.autoPaging) {
for (var Se, qe, rt = JSON.parse(JSON.stringify(this.path)), at = JSON.parse(JSON.stringify(this.path)), dt = [], D = 0; D < at.length; D++) if (at[D].x !== void 0) for (var Ie = y.call(this, at[D]), me = 0; me < Ie.length; me += 1) dt.indexOf(Ie[me]) === -1 && dt.push(Ie[me]);
for (var ve = 0; ve < dt.length; ve++) for (; this.pdf.internal.getNumberOfPages() < dt[ve]; ) w.call(this);
C(dt);
for (var xe = dt[0], Qe = dt[dt.length - 1], _e = xe; _e < Qe + 1; _e++) {
this.pdf.setPage(_e), this.fillStyle = j, this.strokeStyle = $, this.lineCap = re, this.lineWidth = de, this.lineJoin = ce;
var Pe = this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1], je = _e === 1 ? this.posY + this.margin[0] : this.margin[0], Ke = this.pdf.internal.pageSize.height - this.posY - this.margin[0] - this.margin[2], et = this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2], ut = _e === 1 ? 0 : Ke + (_e - 2) * et;
if (this.ctx.clip_path.length !== 0) {
var yt = this.path;
Se = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = E(Se, this.posX + this.margin[3], -ut + je + this.ctx.prevPageLastElemOffset), H.call(this, x, !0), this.path = yt;
}
if (qe = JSON.parse(JSON.stringify(rt)), this.path = E(qe, this.posX + this.margin[3], -ut + je + this.ctx.prevPageLastElemOffset), L === !1 || _e === 0) {
var Ft = (_e > xe || _e < Qe) && m.call(this);
Ft && (this.pdf.saveGraphicsState(), this.pdf.rect(this.margin[3], this.margin[0], Pe, et, null).clip().discardPath()), H.call(this, x, L), Ft && this.pdf.restoreGraphicsState();
}
this.lineWidth = pe;
}
this.path = rt;
} else this.lineWidth = de, H.call(this, x, L), this.lineWidth = pe;
}, H = function(x, L) {
if ((x !== "stroke" || L || !p.call(this)) && (x === "stroke" || L || !c.call(this))) {
for (var j, $, re = [], pe = this.path, de = 0; de < pe.length; de++) {
var ce = pe[de];
switch (ce.type) {
case "begin":
re.push({ begin: !0 });
break;
case "close":
re.push({ close: !0 });
break;
case "mt":
re.push({ start: ce, deltas: [], abs: [] });
break;
case "lt":
var Se = re.length;
if (pe[de - 1] && !isNaN(pe[de - 1].x) && (j = [ce.x - pe[de - 1].x, ce.y - pe[de - 1].y], Se > 0)) {
for (; Se >= 0; Se--) if (re[Se - 1].close !== !0 && re[Se - 1].begin !== !0) {
re[Se - 1].deltas.push(j), re[Se - 1].abs.push(ce);
break;
}
}
break;
case "bct":
j = [ce.x1 - pe[de - 1].x, ce.y1 - pe[de - 1].y, ce.x2 - pe[de - 1].x, ce.y2 - pe[de - 1].y, ce.x - pe[de - 1].x, ce.y - pe[de - 1].y], re[re.length - 1].deltas.push(j);
break;
case "qct":
var qe = pe[de - 1].x + 2 / 3 * (ce.x1 - pe[de - 1].x), rt = pe[de - 1].y + 2 / 3 * (ce.y1 - pe[de - 1].y), at = ce.x + 2 / 3 * (ce.x1 - ce.x), dt = ce.y + 2 / 3 * (ce.y1 - ce.y), D = ce.x, Ie = ce.y;
j = [qe - pe[de - 1].x, rt - pe[de - 1].y, at - pe[de - 1].x, dt - pe[de - 1].y, D - pe[de - 1].x, Ie - pe[de - 1].y], re[re.length - 1].deltas.push(j);
break;
case "arc":
re.push({ deltas: [], abs: [], arc: !0 }), Array.isArray(re[re.length - 1].abs) && re[re.length - 1].abs.push(ce);
}
}
$ = L ? null : x === "stroke" ? "stroke" : "fill";
for (var me = !1, ve = 0; ve < re.length; ve++) if (re[ve].arc) for (var xe = re[ve].abs, Qe = 0; Qe < xe.length; Qe++) {
var _e = xe[Qe];
_e.type === "arc" ? M.call(this, _e.x, _e.y, _e.radius, _e.startAngle, _e.endAngle, _e.counterclockwise, void 0, L, !me) : W.call(this, _e.x, _e.y), me = !0;
}
else if (re[ve].close === !0) this.pdf.internal.out("h"), me = !1;
else if (re[ve].begin !== !0) {
var Pe = re[ve].start.x, je = re[ve].start.y;
I.call(this, re[ve].deltas, Pe, je), me = !0;
}
$ && k.call(this, $), L && O.call(this);
}
}, q = function(x) {
var L = this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor, j = L * (this.pdf.internal.getLineHeightFactor() - 1);
switch (this.ctx.textBaseline) {
case "bottom":
return x - j;
case "top":
return x + L - j;
case "hanging":
return x + L - 2 * j;
case "middle":
return x + L / 2 - j;
default:
return x;
}
}, N = function(x) {
return x + this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor * (this.pdf.internal.getLineHeightFactor() - 1);
};
h.prototype.createLinearGradient = function() {
var x = function() {
};
return x.colorStops = [], x.addColorStop = function(L, j) {
this.colorStops.push([L, j]);
}, x.getColor = function() {
return this.colorStops.length === 0 ? "#000000" : this.colorStops[0][1];
}, x.isCanvasGradient = !0, x;
}, h.prototype.createPattern = function() {
return this.createLinearGradient();
}, h.prototype.createRadialGradient = function() {
return this.createLinearGradient();
};
var M = function(x, L, j, $, re, pe, de, ce, Se) {
for (var qe = ue.call(this, j, $, re, pe), rt = 0; rt < qe.length; rt++) {
var at = qe[rt];
rt === 0 && (Se ? S.call(this, at.x1 + x, at.y1 + L) : W.call(this, at.x1 + x, at.y1 + L)), le.call(this, x, L, at.x2, at.y2, at.x3, at.y3, at.x4, at.y4);
}
ce ? O.call(this) : k.call(this, de);
}, k = function(x) {
switch (x) {
case "stroke":
this.pdf.internal.out("S");
break;
case "fill":
this.pdf.internal.out("f");
}
}, O = function() {
this.pdf.clip(), this.pdf.discardPath();
}, S = function(x, L) {
this.pdf.internal.out(e(x) + " " + A(L) + " m");
}, U = function(x) {
var L;
switch (x.align) {
case "right":
case "end":
L = "right";
break;
case "center":
L = "center";
break;
default:
L = "left";
}
var j, $, re, pe = this.pdf.getTextDimensions(x.text), de = q.call(this, x.y), ce = N.call(this, de) - pe.h, Se = this.ctx.transform.applyToPoint(new s(x.x, de));
if (this.autoPaging) {
var qe = this.ctx.transform.decompose(), rt = new o();
rt = (rt = (rt = rt.multiply(qe.translate)).multiply(qe.skew)).multiply(qe.scale);
for (var at = this.ctx.transform.applyToRectangle(new i(x.x, de, pe.w, pe.h)), dt = rt.applyToRectangle(new i(x.x, ce, pe.w, pe.h)), D = y.call(this, dt), Ie = [], me = 0; me < D.length; me += 1) Ie.indexOf(D[me]) === -1 && Ie.push(D[me]);
C(Ie);
for (var ve = Ie[0], xe = Ie[Ie.length - 1], Qe = ve; Qe < xe + 1; Qe++) {
this.pdf.setPage(Qe);
var _e = Qe === 1 ? this.posY + this.margin[0] : this.margin[0], Pe = this.pdf.internal.pageSize.height - this.posY - this.margin[0] - this.margin[2], je = this.pdf.internal.pageSize.height - this.margin[2], Ke = je - this.margin[0], et = this.pdf.internal.pageSize.width - this.margin[1], ut = et - this.margin[3], yt = Qe === 1 ? 0 : Pe + (Qe - 2) * Ke;
if (this.ctx.clip_path.length !== 0) {
var Ft = this.path;
j = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = E(j, this.posX + this.margin[3], -1 * yt + _e), H.call(this, "fill", !0), this.path = Ft;
}
var Bt = E([JSON.parse(JSON.stringify(dt))], this.posX + this.margin[3], -yt + _e + this.ctx.prevPageLastElemOffset)[0];
x.scale >= 0.01 && ($ = this.pdf.internal.getFontSize(), this.pdf.setFontSize($ * x.scale), re = this.lineWidth, this.lineWidth = re * x.scale);
var St = this.autoPaging !== "text";
if (St || Bt.y + Bt.h <= je) {
if (St || Bt.y >= _e && Bt.x <= et) {
var bt = St ? x.text : this.pdf.splitTextToSize(x.text, x.maxWidth || et - Bt.x)[0], nA = E([JSON.parse(JSON.stringify(at))], this.posX + this.margin[3], -yt + _e + this.ctx.prevPageLastElemOffset)[0], qt = St && (Qe > ve || Qe < xe) && m.call(this);
qt && (this.pdf.saveGraphicsState(), this.pdf.rect(this.margin[3], this.margin[0], ut, Ke, null).clip().discardPath()), this.pdf.text(bt, nA.x, nA.y, { angle: x.angle, align: L, renderingMode: x.renderingMode }), qt && this.pdf.restoreGraphicsState();
}
} else Bt.y < je && (this.ctx.prevPageLastElemOffset += je - Bt.y);
x.scale >= 0.01 && (this.pdf.setFontSize($), this.lineWidth = re);
}
} else x.scale >= 0.01 && ($ = this.pdf.internal.getFontSize(), this.pdf.setFontSize($ * x.scale), re = this.lineWidth, this.lineWidth = re * x.scale), this.pdf.text(x.text, Se.x + this.posX, Se.y + this.posY, { angle: x.angle, align: L, renderingMode: x.renderingMode, maxWidth: x.maxWidth }), x.scale >= 0.01 && (this.pdf.setFontSize($), this.lineWidth = re);
}, W = function(x, L, j, $) {
j = j || 0, $ = $ || 0, this.pdf.internal.out(e(x + j) + " " + A(L + $) + " l");
}, I = function(x, L, j) {
return this.pdf.lines(x, L, j, null, null);
}, le = function(x, L, j, $, re, pe, de, ce) {
this.pdf.internal.out([t(n(j + x)), t(a($ + L)), t(n(re + x)), t(a(pe + L)), t(n(de + x)), t(a(ce + L)), "c"].join(" "));
}, ue = function(x, L, j, $) {
for (var re = 2 * Math.PI, pe = Math.PI / 2; L > j; ) L -= re;
var de = Math.abs(j - L);
de < re && $ && (de = re - de);
for (var ce = [], Se = $ ? -1 : 1, qe = L; de > 1e-5; ) {
var rt = qe + Se * Math.min(de, pe);
ce.push(Z.call(this, x, qe, rt)), de -= Math.abs(rt - qe), qe = rt;
}
return ce;
}, Z = function(x, L, j) {
var $ = (j - L) / 2, re = x * Math.cos($), pe = x * Math.sin($), de = re, ce = -pe, Se = de * de + ce * ce, qe = Se + de * re + ce * pe, rt = 4 / 3 * (Math.sqrt(2 * Se * qe) - qe) / (de * pe - ce * re), at = de - rt * ce, dt = ce + rt * de, D = at, Ie = -dt, me = $ + L, ve = Math.cos(me), xe = Math.sin(me);
return { x1: x * Math.cos(L), y1: x * Math.sin(L), x2: at * ve - dt * xe, y2: at * xe + dt * ve, x3: D * ve - Ie * xe, y3: D * xe + Ie * ve, x4: x * Math.cos(j), y4: x * Math.sin(j) };
}, ee = function(x) {
return 180 * x / Math.PI;
}, X = function(x, L, j, $, re, pe) {
var de = x + 0.5 * (j - x), ce = L + 0.5 * ($ - L), Se = re + 0.5 * (j - re), qe = pe + 0.5 * ($ - pe), rt = Math.min(x, re, de, Se), at = Math.max(x, re, de, Se), dt = Math.min(L, pe, ce, qe), D = Math.max(L, pe, ce, qe);
return new i(rt, dt, at - rt, D - dt);
}, Ae = function(x, L, j, $, re, pe, de, ce) {
var Se, qe, rt, at, dt, D, Ie, me, ve, xe, Qe, _e, Pe, je, Ke = j - x, et = $ - L, ut = re - j, yt = pe - $, Ft = de - re, Bt = ce - pe;
for (qe = 0; qe < 41; qe++) ve = (Ie = (rt = x + (Se = qe / 40) * Ke) + Se * ((dt = j + Se * ut) - rt)) + Se * (dt + Se * (re + Se * Ft - dt) - Ie), xe = (me = (at = L + Se * et) + Se * ((D = $ + Se * yt) - at)) + Se * (D + Se * (pe + Se * Bt - D) - me), qe == 0 ? (Qe = ve, _e = xe, Pe = ve, je = xe) : (Qe = Math.min(Qe, ve), _e = Math.min(_e, xe), Pe = Math.max(Pe, ve), je = Math.max(je, xe));
return new i(Math.round(Qe), Math.round(_e), Math.round(Pe - Qe), Math.round(je - _e));
}, oe = function() {
if (this.prevLineDash || this.ctx.lineDash.length || this.ctx.lineDashOffset) {
var x, L, j = (x = this.ctx.lineDash, L = this.ctx.lineDashOffset, JSON.stringify({ lineDash: x, lineDashOffset: L }));
this.prevLineDash !== j && (this.pdf.setLineDash(this.ctx.lineDash, this.ctx.lineDashOffset), this.prevLineDash = j);
}
};
})(eA.API), /**
* @license
* jsPDF filters PlugIn
* Copyright (c) 2014 Aras Abbasi
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
(function(r) {
var t = function(s) {
var i, o, l, u, h, g, c, p, m, y;
for (o = [], l = 0, u = (s += i = "\0\0\0\0".slice(s.length % 4 || 4)).length; u > l; l += 4) (h = (s.charCodeAt(l) << 24) + (s.charCodeAt(l + 1) << 16) + (s.charCodeAt(l + 2) << 8) + s.charCodeAt(l + 3)) !== 0 ? (g = (h = ((h = ((h = ((h = (h - (y = h % 85)) / 85) - (m = h % 85)) / 85) - (p = h % 85)) / 85) - (c = h % 85)) / 85) % 85, o.push(g + 33, c + 33, p + 33, m + 33, y + 33)) : o.push(122);
return (function(w, E) {
for (var C = E; C > 0; C--) w.pop();
})(o, i.length), String.fromCharCode.apply(String, o) + "~>";
}, e = function(s) {
var i, o, l, u, h, g = String, c = "length", p = 255, m = "charCodeAt", y = "slice", w = "replace";
for (s[y](-2), s = s[y](0, -2)[w](/\s/g, "")[w]("z", "!!!!!"), l = [], u = 0, h = (s += i = "uuuuu"[y](s[c] % 5 || 5))[c]; h > u; u += 5) o = 52200625 * (s[m](u) - 33) + 614125 * (s[m](u + 1) - 33) + 7225 * (s[m](u + 2) - 33) + 85 * (s[m](u + 3) - 33) + (s[m](u + 4) - 33), l.push(p & o >> 24, p & o >> 16, p & o >> 8, p & o);
return (function(E, C) {
for (var F = C; F > 0; F--) E.pop();
})(l, i[c]), g.fromCharCode.apply(g, l);
}, A = function(s) {
return s.split("").map(function(i) {
return ("0" + i.charCodeAt().toString(16)).slice(-2);
}).join("") + ">";
}, n = function(s) {
var i = new RegExp(/^([0-9A-Fa-f]{2})+$/);
if ((s = s.replace(/\s/g, "")).indexOf(">") !== -1 && (s = s.substr(0, s.indexOf(">"))), s.length % 2 && (s += "0"), i.test(s) === !1) return "";
for (var o = "", l = 0; l < s.length; l += 2) o += String.fromCharCode("0x" + (s[l] + s[l + 1]));
return o;
}, a = function(s) {
for (var i = new Uint8Array(s.length), o = s.length; o--; ) i[o] = s.charCodeAt(o);
return (i = rp(i)).reduce(function(l, u) {
return l + String.fromCharCode(u);
}, "");
};
r.processDataByFilters = function(s, i) {
var o = 0, l = s || "", u = [];
for (typeof (i = i || []) == "string" && (i = [i]), o = 0; o < i.length; o += 1) switch (i[o]) {
case "ASCII85Decode":
case "/ASCII85Decode":
l = e(l), u.push("/ASCII85Encode");
break;
case "ASCII85Encode":
case "/ASCII85Encode":
l = t(l), u.push("/ASCII85Decode");
break;
case "ASCIIHexDecode":
case "/ASCIIHexDecode":
l = n(l), u.push("/ASCIIHexEncode");
break;
case "ASCIIHexEncode":
case "/ASCIIHexEncode":
l = A(l), u.push("/ASCIIHexDecode");
break;
case "FlateEncode":
case "/FlateEncode":
l = a(l), u.push("/FlateDecode");
break;
default:
throw new Error('The filter: "' + i[o] + '" is not implemented');
}
return { data: l, reverseChain: u.reverse().join(" ") };
};
})(eA.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(r) {
r.loadFile = function(t, e, A) {
return (function(n, a, s) {
a = a !== !1, s = typeof s == "function" ? s : function() {
};
var i = void 0;
try {
i = (function(o, l, u) {
var h = new XMLHttpRequest(), g = 0, c = function(p) {
var m = p.length, y = [], w = String.fromCharCode;
for (g = 0; g < m; g += 1) y.push(w(255 & p.charCodeAt(g)));
return y.join("");
};
if (h.open("GET", o, !l), h.overrideMimeType("text/plain; charset=x-user-defined"), l === !1 && (h.onload = function() {
h.status === 200 ? u(c(this.responseText)) : u(void 0);
}), h.send(null), l && h.status === 200) return c(h.responseText);
})(n, a, s);
} catch {
}
return i;
})(t, e, A);
}, r.loadImageFile = r.loadFile;
})(eA.API), (function(r) {
function t() {
return (cA.html2canvas ? Promise.resolve(cA.html2canvas) : Promise.resolve().then(() => fN)).catch(function(i) {
return Promise.reject(new Error("Could not load html2canvas: " + i));
}).then(function(i) {
return i.default ? i.default : i;
});
}
function e() {
return (cA.DOMPurify ? Promise.resolve(cA.DOMPurify) : Promise.resolve().then(() => jN)).catch(function(i) {
return Promise.reject(new Error("Could not load dompurify: " + i));
}).then(function(i) {
return i.default ? i.default : i;
});
}
var A = function(i) {
var o = jA(i);
return o === "undefined" ? "undefined" : o === "string" || i instanceof String ? "string" : o === "number" || i instanceof Number ? "number" : o === "function" || i instanceof Function ? "function" : i && i.constructor === Array ? "array" : i && i.nodeType === 1 ? "element" : o === "object" ? "object" : "unknown";
}, n = function(i, o) {
var l = document.createElement(i);
for (var u in o.className && (l.className = o.className), o.innerHTML && o.dompurify && (l.innerHTML = o.dompurify.sanitize(o.innerHTML)), o.style) l.style[u] = o.style[u];
return l;
}, a = function i(o, l) {
for (var u = o.nodeType === 3 ? document.createTextNode(o.nodeValue) : o.cloneNode(!1), h = o.firstChild; h; h = h.nextSibling) l !== !0 && h.nodeType === 1 && h.nodeName === "SCRIPT" || u.appendChild(i(h, l));
return o.nodeType === 1 && (o.nodeName === "CANVAS" ? (u.width = o.width, u.height = o.height, u.getContext("2d").drawImage(o, 0, 0)) : o.nodeName !== "TEXTAREA" && o.nodeName !== "SELECT" || (u.value = o.value), u.addEventListener("load", function() {
u.scrollTop = o.scrollTop, u.scrollLeft = o.scrollLeft;
}, !0)), u;
}, s = function i(o) {
var l = Object.assign(i.convert(Promise.resolve()), JSON.parse(JSON.stringify(i.template))), u = i.convert(Promise.resolve(), l);
return (u = u.setProgress(1, i, 1, [i])).set(o);
};
(s.prototype = Object.create(Promise.prototype)).constructor = s, s.convert = function(i, o) {
return i.__proto__ = o || s.prototype, i;
}, s.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" } }, s.prototype.from = function(i, o) {
return this.then(function() {
switch (o = o || (function(l) {
switch (A(l)) {
case "string":
return "string";
case "element":
return l.nodeName.toLowerCase() === "canvas" ? "canvas" : "element";
default:
return "unknown";
}
})(i), o) {
case "string":
return this.then(e).then(function(l) {
return this.set({ src: n("div", { innerHTML: i, dompurify: l }) });
});
case "element":
return this.set({ src: i });
case "canvas":
return this.set({ canvas: i });
case "img":
return this.set({ img: i });
default:
return this.error("Unknown source type.");
}
});
}, s.prototype.to = function(i) {
switch (i) {
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.");
}
}, s.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 i = { 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 = a(this.prop.src, this.opt.html2canvas.javascriptEnabled);
o.tagName === "BODY" && (i.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: i }), 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";
});
}, s.prototype.toCanvas = function() {
var i = [function() {
return document.body.contains(this.prop.container) || this.toContainer();
}];
return this.thenList(i).then(t).then(function(o) {
var l = Object.assign({}, this.opt.html2canvas);
return delete l.onrendered, o(this.prop.container, l);
}).then(function(o) {
(this.opt.html2canvas.onrendered || function() {
})(o), this.prop.canvas = o, document.body.removeChild(this.prop.overlay);
});
}, s.prototype.toContext2d = function() {
var i = [function() {
return document.body.contains(this.prop.container) || this.toContainer();
}];
return this.thenList(i).then(t).then(function(o) {
var l = this.opt.jsPDF, u = this.opt.fontFaces, h = 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, g = Object.assign({ async: !0, allowTaint: !0, scale: h, 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 g.onrendered, l.context2d.autoPaging = this.opt.autoPaging === void 0 || this.opt.autoPaging, l.context2d.posX = this.opt.x, l.context2d.posY = this.opt.y, l.context2d.margin = this.opt.margin, l.context2d.fontFaces = u, u) for (var c = 0; c < u.length; ++c) {
var p = u[c], m = p.src.find(function(y) {
return y.format === "truetype";
});
m && l.addFont(m.url, p.ref.name, p.ref.style);
}
return g.windowHeight = g.windowHeight || 0, g.windowHeight = g.windowHeight == 0 ? Math.max(this.prop.container.clientHeight, this.prop.container.scrollHeight, this.prop.container.offsetHeight) : g.windowHeight, l.context2d.save(!0), o(this.prop.container, g);
}).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);
});
}, s.prototype.toImg = function() {
return this.thenList([function() {
return this.prop.canvas || this.toCanvas();
}]).then(function() {
var i = this.prop.canvas.toDataURL("image/" + this.opt.image.type, this.opt.image.quality);
this.prop.img = document.createElement("img"), this.prop.img.src = i;
});
}, s.prototype.toPdf = function() {
return this.thenList([function() {
return this.toContext2d();
}]).then(function() {
this.prop.pdf = this.prop.pdf || this.opt.jsPDF;
});
}, s.prototype.output = function(i, o, l) {
return (l = l || "pdf").toLowerCase() === "img" || l.toLowerCase() === "image" ? this.outputImg(i, o) : this.outputPdf(i, o);
}, s.prototype.outputPdf = function(i, o) {
return this.thenList([function() {
return this.prop.pdf || this.toPdf();
}]).then(function() {
return this.prop.pdf.output(i, o);
});
}, s.prototype.outputImg = function(i) {
return this.thenList([function() {
return this.prop.img || this.toImg();
}]).then(function() {
switch (i) {
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 "' + i + '" is not supported.';
}
});
}, s.prototype.save = function(i) {
return this.thenList([function() {
return this.prop.pdf || this.toPdf();
}]).set(i ? { filename: i } : null).then(function() {
this.prop.pdf.save(this.opt.filename);
});
}, s.prototype.doCallback = function() {
return this.thenList([function() {
return this.prop.pdf || this.toPdf();
}]).then(function() {
this.prop.callback(this.prop.pdf);
});
}, s.prototype.set = function(i) {
if (A(i) !== "object") return this;
var o = Object.keys(i || {}).map(function(l) {
if (l in s.template.prop) return function() {
this.prop[l] = i[l];
};
switch (l) {
case "margin":
return this.setMargin.bind(this, i.margin);
case "jsPDF":
return function() {
return this.opt.jsPDF = i.jsPDF, this.setPageSize();
};
case "pageSize":
return this.setPageSize.bind(this, i.pageSize);
default:
return function() {
this.opt[l] = i[l];
};
}
}, this);
return this.then(function() {
return this.thenList(o);
});
}, s.prototype.get = function(i, o) {
return this.then(function() {
var l = i in s.template.prop ? this.prop[i] : this.opt[i];
return o ? o(l) : l;
});
}, s.prototype.setMargin = function(i) {
return this.then(function() {
switch (A(i)) {
case "number":
i = [i, i, i, i];
case "array":
if (i.length === 2 && (i = [i[0], i[1], i[0], i[1]]), i.length === 4) break;
default:
return this.error("Invalid margin array.");
}
this.opt.margin = i;
}).then(this.setPageSize);
}, s.prototype.setPageSize = function(i) {
function o(l, u) {
return Math.floor(l * u / 72 * 96);
}
return this.then(function() {
(i = i || eA.getPageSize(this.opt.jsPDF)).hasOwnProperty("inner") || (i.inner = { width: i.width - this.opt.margin[1] - this.opt.margin[3], height: i.height - this.opt.margin[0] - this.opt.margin[2] }, i.inner.px = { width: o(i.inner.width, i.k), height: o(i.inner.height, i.k) }, i.inner.ratio = i.inner.height / i.inner.width), this.prop.pageSize = i;
});
}, s.prototype.setProgress = function(i, o, l, u) {
return i != null && (this.progress.val = i), o != null && (this.progress.state = o), l != null && (this.progress.n = l), u != null && (this.progress.stack = u), this.progress.ratio = this.progress.val / this.progress.state, this;
}, s.prototype.updateProgress = function(i, o, l, u) {
return this.setProgress(i ? this.progress.val + i : null, o || null, l ? this.progress.n + l : null, u ? this.progress.stack.concat(u) : null);
}, s.prototype.then = function(i, o) {
var l = this;
return this.thenCore(i, o, function(u, h) {
return l.updateProgress(null, null, 1, [u]), Promise.prototype.then.call(this, function(g) {
return l.updateProgress(null, u), g;
}).then(u, h).then(function(g) {
return l.updateProgress(1), g;
});
});
}, s.prototype.thenCore = function(i, o, l) {
l = l || Promise.prototype.then;
var u = this;
i && (i = i.bind(u)), o && (o = o.bind(u));
var h = Promise.toString().indexOf("[native code]") !== -1 && Promise.name === "Promise" ? u : s.convert(Object.assign({}, u), Promise.prototype), g = l.call(h, i, o);
return s.convert(g, u.__proto__);
}, s.prototype.thenExternal = function(i, o) {
return Promise.prototype.then.call(this, i, o);
}, s.prototype.thenList = function(i) {
var o = this;
return i.forEach(function(l) {
o = o.thenCore(l);
}), o;
}, s.prototype.catch = function(i) {
i && (i = i.bind(this));
var o = Promise.prototype.catch.call(this, i);
return s.convert(o, this);
}, s.prototype.catchExternal = function(i) {
return Promise.prototype.catch.call(this, i);
}, s.prototype.error = function(i) {
return this.then(function() {
throw new Error(i);
});
}, s.prototype.using = s.prototype.set, s.prototype.saveAs = s.prototype.save, s.prototype.export = s.prototype.output, s.prototype.run = s.prototype.then, eA.getPageSize = function(i, o, l) {
if (jA(i) === "object") {
var u = i;
i = u.orientation, o = u.unit || o, l = u.format || l;
}
o = o || "mm", l = l || "a4", i = ("" + (i || "P")).toLowerCase();
var h, g = ("" + l).toLowerCase(), c = { 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":
h = 1;
break;
case "mm":
h = 72 / 25.4;
break;
case "cm":
h = 72 / 2.54;
break;
case "in":
h = 72;
break;
case "px":
h = 0.75;
break;
case "pc":
case "em":
h = 12;
break;
case "ex":
h = 6;
break;
default:
throw "Invalid unit: " + o;
}
var p, m = 0, y = 0;
if (c.hasOwnProperty(g)) m = c[g][1] / h, y = c[g][0] / h;
else try {
m = l[1], y = l[0];
} catch {
throw new Error("Invalid format: " + l);
}
if (i === "p" || i === "portrait") i = "p", y > m && (p = y, y = m, m = p);
else {
if (i !== "l" && i !== "landscape") throw "Invalid orientation: " + i;
i = "l", m > y && (p = y, y = m, m = p);
}
return { width: y, height: m, unit: o, k: h, orientation: i };
}, r.html = function(i, 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(Of) : null;
var l = new s(o);
return o.worker ? l : l.from(i).doCallback();
};
})(eA.API), eA.API.addJS = function(r) {
return _1 = r, this.internal.events.subscribe("postPutResources", function() {
pu = this.internal.newObject(), this.internal.out("<<"), this.internal.out("/Names [(EmbeddedJS) " + (pu + 1) + " 0 R]"), this.internal.out(">>"), this.internal.out("endobj"), I1 = this.internal.newObject(), this.internal.out("<<"), this.internal.out("/S /JavaScript"), this.internal.out("/JS (" + _1 + ")"), this.internal.out(">>"), this.internal.out("endobj");
}), this.internal.events.subscribe("putCatalog", function() {
pu !== void 0 && I1 !== void 0 && this.internal.out("/Names <</JavaScript " + pu + " 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(r) {
var t;
r.events.push(["postPutResources", function() {
var e = this, A = /^(\d+) 0 obj$/;
if (this.outline.root.children.length > 0) for (var n = e.outline.render().split(/\r\n/), a = 0; a < n.length; a++) {
var s = n[a], i = A.exec(s);
if (i != null) {
var o = i[1];
e.internal.newObjectDeferredBegin(o, !1);
}
e.internal.write(s);
}
if (this.outline.createNamedDestinations) {
var l = this.internal.pages.length, u = [];
for (a = 0; a < l; a++) {
var h = e.internal.newObject();
u.push(h);
var g = e.internal.getPageInfo(a + 1);
e.internal.write("<< /D[" + g.objId + " 0 R /XYZ null null null]>> endobj");
}
var c = e.internal.newObject();
for (e.internal.write("<< /Names [ "), a = 0; a < u.length; a++) e.internal.write("(page_" + (a + 1) + ")" + u[a] + " 0 R");
e.internal.write(" ] >>", "endobj"), t = e.internal.newObject(), e.internal.write("<< /Dests " + c + " 0 R"), e.internal.write(">>", "endobj");
}
}]), r.events.push(["putCatalog", function() {
var e = this;
e.outline.root.children.length > 0 && (e.internal.write("/Outlines", this.outline.makeRef(this.outline.root)), this.outline.createNamedDestinations && e.internal.write("/Names " + t + " 0 R"));
}]), r.events.push(["initialized", function() {
var e = this;
e.outline = { createNamedDestinations: !1, root: { children: [] } }, e.outline.add = function(A, n, a) {
var s = { title: n, options: a, children: [] };
return A == null && (A = this.root), A.children.push(s), s;
}, e.outline.render = function() {
return this.ctx = {}, this.ctx.val = "", this.ctx.pdf = e, this.genIds_r(this.root), this.renderRoot(this.root), this.renderItems(this.root), this.ctx.val;
}, e.outline.genIds_r = function(A) {
A.id = e.internal.newObjectDeferred();
for (var n = 0; n < A.children.length; n++) this.genIds_r(A.children[n]);
}, e.outline.renderRoot = function(A) {
this.objStart(A), this.line("/Type /Outlines"), A.children.length > 0 && (this.line("/First " + this.makeRef(A.children[0])), this.line("/Last " + this.makeRef(A.children[A.children.length - 1]))), this.line("/Count " + this.count_r({ count: 0 }, A)), this.objEnd();
}, e.outline.renderItems = function(A) {
for (var n = this.ctx.pdf.internal.getVerticalCoordinateString, a = 0; a < A.children.length; a++) {
var s = A.children[a];
this.objStart(s), this.line("/Title " + this.makeString(s.title)), this.line("/Parent " + this.makeRef(A)), a > 0 && this.line("/Prev " + this.makeRef(A.children[a - 1])), a < A.children.length - 1 && this.line("/Next " + this.makeRef(A.children[a + 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 i = this.count = this.count_r({ count: 0 }, s);
if (i > 0 && this.line("/Count " + i), s.options && s.options.pageNumber) {
var o = e.internal.getPageInfo(s.options.pageNumber);
this.line("/Dest [" + o.objId + " 0 R /XYZ 0 " + n(0) + " 0]");
}
this.objEnd();
}
for (var l = 0; l < A.children.length; l++) this.renderItems(A.children[l]);
}, e.outline.line = function(A) {
this.ctx.val += A + `\r
`;
}, e.outline.makeRef = function(A) {
return A.id + " 0 R";
}, e.outline.makeString = function(A) {
return "(" + e.internal.pdfEscape(A) + ")";
}, e.outline.objStart = function(A) {
this.ctx.val += `\r
` + A.id + ` 0 obj\r
<<\r
`;
}, e.outline.objEnd = function() {
this.ctx.val += `>> \r
endobj\r
`;
}, e.outline.count_r = function(A, n) {
for (var a = 0; a < n.children.length; a++) A.count++, this.count_r(A, n.children[a]);
return A.count;
};
}]);
})(eA.API), /**
* @license
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
(function(r) {
var t = [192, 193, 194, 195, 196, 197, 198, 199];
r.processJPEG = function(e, A, n, a, s, i) {
var o, l = this.decode.DCT_DECODE, u = null;
if (typeof e == "string" || this.__addimage__.isArrayBuffer(e) || this.__addimage__.isArrayBufferView(e)) {
switch (e = s || e, e = this.__addimage__.isArrayBuffer(e) ? new Uint8Array(e) : e, o = (function(h) {
for (var g, c = 256 * h.charCodeAt(4) + h.charCodeAt(5), p = h.length, m = { width: 0, height: 0, numcomponents: 1 }, y = 4; y < p; y += 2) {
if (y += c, t.indexOf(h.charCodeAt(y + 1)) !== -1) {
g = 256 * h.charCodeAt(y + 5) + h.charCodeAt(y + 6), m = { width: 256 * h.charCodeAt(y + 7) + h.charCodeAt(y + 8), height: g, numcomponents: h.charCodeAt(y + 9) };
break;
}
c = 256 * h.charCodeAt(y + 2) + h.charCodeAt(y + 3);
}
return m;
})(e = this.__addimage__.isArrayBufferView(e) ? this.__addimage__.arrayBufferToBinaryString(e) : e), o.numcomponents) {
case 1:
i = this.color_spaces.DEVICE_GRAY;
break;
case 4:
i = this.color_spaces.DEVICE_CMYK;
break;
case 3:
i = this.color_spaces.DEVICE_RGB;
}
u = { data: e, width: o.width, height: o.height, colorSpace: i, bitsPerComponent: 8, filter: l, index: A, alias: n };
}
return u;
};
})(eA.API), eA.API.processPNG = function(r, t, e, A) {
if (this.__addimage__.isArrayBuffer(r) && (r = new Uint8Array(r)), this.__addimage__.isArrayBufferView(r)) {
var n, a = aD(r, { checkCrc: !0 }), s = a.width, i = a.height, o = a.channels, l = a.palette, u = a.depth;
n = l && o === 1 ? (function(M) {
for (var k = M.width, O = M.height, S = M.data, U = M.palette, W = M.depth, I = !1, le = [], ue = [], Z = void 0, ee = !1, X = 0, Ae = 0; Ae < U.length; Ae++) {
var oe = R0(U[Ae], 4), x = oe[0], L = oe[1], j = oe[2], $ = oe[3];
le.push(x, L, j), $ != null && ($ === 0 ? (X++, ue.length < 1 && ue.push(Ae)) : $ < 255 && (ee = !0));
}
if (ee || X > 1) {
I = !0, ue = void 0;
var re = k * O;
Z = new Uint8Array(re);
for (var pe = new DataView(S.buffer), de = 0; de < re; de++) {
var ce = Hf(pe, de, W), Se = R0(U[ce], 4)[3];
Z[de] = Se;
}
} else X === 0 && (ue = void 0);
return { colorSpace: "Indexed", colorsPerPixel: 1, sMaskBitsPerComponent: I ? 8 : void 0, colorBytes: S, alphaBytes: Z, needSMask: I, palette: le, mask: ue };
})(a) : o === 2 || o === 4 ? (function(M) {
for (var k = M.data, O = M.width, S = M.height, U = M.channels, W = M.depth, I = U === 2 ? "DeviceGray" : "DeviceRGB", le = U - 1, ue = O * S, Z = le, ee = ue * Z, X = 1 * ue, Ae = Math.ceil(ee * W / 8), oe = Math.ceil(X * W / 8), x = new Uint8Array(Ae), L = new Uint8Array(oe), j = new DataView(k.buffer), $ = new DataView(x.buffer), re = new DataView(L.buffer), pe = !1, de = 0; de < ue; de++) {
for (var ce = de * U, Se = 0; Se < Z; Se++) q1($, Hf(j, ce + Se, W), de * Z + Se, W);
var qe = Hf(j, ce + Z, W);
qe < (1 << W) - 1 && (pe = !0), q1(re, qe, 1 * de, W);
}
return { colorSpace: I, colorsPerPixel: le, sMaskBitsPerComponent: pe ? W : void 0, colorBytes: x, alphaBytes: L, needSMask: pe };
})(a) : (function(M) {
var k = M.data, O = M.channels === 1 ? "DeviceGray" : "DeviceRGB";
return { colorSpace: O, colorsPerPixel: O === "DeviceGray" ? 1 : 3, colorBytes: k instanceof Uint16Array ? (function(S) {
for (var U = S.length, W = new Uint8Array(2 * U), I = new DataView(W.buffer, W.byteOffset, W.byteLength), le = 0; le < U; le++) I.setUint16(2 * le, S[le], !1);
return W;
})(k) : k, needSMask: !1 };
})(a);
var h, g, c, p = n, m = p.colorSpace, y = p.colorsPerPixel, w = p.sMaskBitsPerComponent, E = p.colorBytes, C = p.alphaBytes, F = p.needSMask, H = p.palette, q = p.mask, N = null;
return A !== eA.API.image_compression.NONE && typeof rp == "function" ? (N = (function(M) {
var k;
switch (M) {
case eA.API.image_compression.FAST:
k = 11;
break;
case eA.API.image_compression.MEDIUM:
k = 13;
break;
case eA.API.image_compression.SLOW:
k = 14;
break;
default:
k = 12;
}
return k;
})(A), h = this.decode.FLATE_DECODE, g = "/Predictor ".concat(N, " /Colors ").concat(y, " /BitsPerComponent ").concat(u, " /Columns ").concat(s), r = R1(E, Math.ceil(s * y * u / 8), y, u, A), F && (c = R1(C, Math.ceil(s * w / 8), 1, w, A))) : (h = void 0, g = void 0, r = E, F && (c = C)), (this.__addimage__.isArrayBuffer(r) || this.__addimage__.isArrayBufferView(r)) && (r = this.__addimage__.arrayBufferToBinaryString(r)), (c && this.__addimage__.isArrayBuffer(c) || this.__addimage__.isArrayBufferView(c)) && (c = this.__addimage__.arrayBufferToBinaryString(c)), { alias: e, data: r, index: t, filter: h, decodeParameters: g, transparency: q, palette: H, sMask: c, predictor: N, width: s, height: i, bitsPerComponent: u, sMaskBitsPerComponent: w, colorSpace: m };
}
}, (function(r) {
r.processGIF89A = function(t, e, A, n) {
var a = new xD(t), s = a.width, i = a.height, o = [];
a.decodeAndBlitFrameRGBA(0, o);
var l = { data: o, width: s, height: i }, u = new Pf(100).encode(l, 100);
return r.processJPEG.call(this, u, e, A, n);
}, r.processGIF87A = r.processGIF89A;
})(eA.API), Wa.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 r = this.colors === 0 ? 1 << this.bitPP : this.colors;
this.palette = new Array(r);
for (var t = 0; t < r; t++) {
var e = this.datav.getUint8(this.pos++, !0), A = this.datav.getUint8(this.pos++, !0), n = this.datav.getUint8(this.pos++, !0), a = this.datav.getUint8(this.pos++, !0);
this.palette[t] = { red: n, green: A, blue: e, quad: a };
}
}
this.height < 0 && (this.height *= -1, this.bottom_up = !1);
}, Wa.prototype.parseBGR = function() {
this.pos = this.offset;
try {
var r = "bit" + this.bitPP, t = this.width * this.height * 4;
this.data = new Uint8Array(t), this[r]();
} catch (e) {
ur.log("bit decode error:" + e);
}
}, Wa.prototype.bit1 = function() {
var r, t = Math.ceil(this.width / 8), e = t % 4;
for (r = this.height - 1; r >= 0; r--) {
for (var A = this.bottom_up ? r : this.height - 1 - r, n = 0; n < t; n++) for (var a = this.datav.getUint8(this.pos++, !0), s = A * this.width * 4 + 8 * n * 4, i = 0; i < 8 && 8 * n + i < this.width; i++) {
var o = this.palette[a >> 7 - i & 1];
this.data[s + 4 * i] = o.blue, this.data[s + 4 * i + 1] = o.green, this.data[s + 4 * i + 2] = o.red, this.data[s + 4 * i + 3] = 255;
}
e !== 0 && (this.pos += 4 - e);
}
}, Wa.prototype.bit4 = function() {
for (var r = Math.ceil(this.width / 2), t = r % 4, e = this.height - 1; e >= 0; e--) {
for (var A = this.bottom_up ? e : this.height - 1 - e, n = 0; n < r; n++) {
var a = this.datav.getUint8(this.pos++, !0), s = A * this.width * 4 + 2 * n * 4, i = a >> 4, o = 15 & a, l = this.palette[i];
if (this.data[s] = l.blue, this.data[s + 1] = l.green, this.data[s + 2] = l.red, this.data[s + 3] = 255, 2 * n + 1 >= this.width) break;
l = this.palette[o], this.data[s + 4] = l.blue, this.data[s + 4 + 1] = l.green, this.data[s + 4 + 2] = l.red, this.data[s + 4 + 3] = 255;
}
t !== 0 && (this.pos += 4 - t);
}
}, Wa.prototype.bit8 = function() {
for (var r = this.width % 4, 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 n = this.datav.getUint8(this.pos++, !0), a = e * this.width * 4 + 4 * A;
if (n < this.palette.length) {
var s = this.palette[n];
this.data[a] = s.red, this.data[a + 1] = s.green, this.data[a + 2] = s.blue, this.data[a + 3] = 255;
} else this.data[a] = 255, this.data[a + 1] = 255, this.data[a + 2] = 255, this.data[a + 3] = 255;
}
r !== 0 && (this.pos += 4 - r);
}
}, Wa.prototype.bit15 = function() {
for (var r = this.width % 3, t = parseInt("11111", 2), e = this.height - 1; e >= 0; e--) {
for (var A = this.bottom_up ? e : this.height - 1 - e, n = 0; n < this.width; n++) {
var a = this.datav.getUint16(this.pos, !0);
this.pos += 2;
var s = (a & t) / t * 255 | 0, i = (a >> 5 & t) / t * 255 | 0, o = (a >> 10 & t) / t * 255 | 0, l = a >> 15 ? 255 : 0, u = A * this.width * 4 + 4 * n;
this.data[u] = o, this.data[u + 1] = i, this.data[u + 2] = s, this.data[u + 3] = l;
}
this.pos += r;
}
}, Wa.prototype.bit16 = function() {
for (var r = this.width % 3, t = parseInt("11111", 2), e = parseInt("111111", 2), A = this.height - 1; A >= 0; A--) {
for (var n = this.bottom_up ? A : this.height - 1 - A, a = 0; a < this.width; a++) {
var s = this.datav.getUint16(this.pos, !0);
this.pos += 2;
var i = (s & t) / t * 255 | 0, o = (s >> 5 & e) / e * 255 | 0, l = (s >> 11) / t * 255 | 0, u = n * this.width * 4 + 4 * a;
this.data[u] = l, this.data[u + 1] = o, this.data[u + 2] = i, this.data[u + 3] = 255;
}
this.pos += r;
}
}, Wa.prototype.bit24 = function() {
for (var r = this.height - 1; r >= 0; r--) {
for (var t = this.bottom_up ? r : this.height - 1 - r, e = 0; e < this.width; e++) {
var A = this.datav.getUint8(this.pos++, !0), n = this.datav.getUint8(this.pos++, !0), a = this.datav.getUint8(this.pos++, !0), s = t * this.width * 4 + 4 * e;
this.data[s] = a, this.data[s + 1] = n, this.data[s + 2] = A, this.data[s + 3] = 255;
}
this.pos += this.width % 4;
}
}, Wa.prototype.bit32 = function() {
for (var r = this.height - 1; r >= 0; r--) for (var t = this.bottom_up ? r : this.height - 1 - r, e = 0; e < this.width; e++) {
var A = this.datav.getUint8(this.pos++, !0), n = this.datav.getUint8(this.pos++, !0), a = this.datav.getUint8(this.pos++, !0), s = this.datav.getUint8(this.pos++, !0), i = t * this.width * 4 + 4 * e;
this.data[i] = a, this.data[i + 1] = n, this.data[i + 2] = A, this.data[i + 3] = s;
}
}, Wa.prototype.getData = function() {
return this.data;
}, /**
* @license
* Copyright (c) 2018 Aras Abbasi
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
(function(r) {
r.processBMP = function(t, e, A, n) {
var a = new Wa(t, !1), s = a.width, i = a.height, o = { data: a.getData(), width: s, height: i }, l = new Pf(100).encode(o, 100);
return r.processJPEG.call(this, l, e, A, n);
};
})(eA.API), W1.prototype.getData = function() {
return this.data;
}, /**
* @license
* Copyright (c) 2019 Aras Abbasi
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
(function(r) {
r.processWEBP = function(t, e, A, n) {
var a = new W1(t), s = a.width, i = a.height, o = { data: a.getData(), width: s, height: i }, l = new Pf(100).encode(o, 100);
return r.processJPEG.call(this, l, e, A, n);
};
})(eA.API), eA.API.processRGBA = function(r, t, e) {
for (var A = r.data, n = A.length, a = new Uint8Array(n / 4 * 3), s = new Uint8Array(n / 4), i = 0, o = 0, l = 0; l < n; l += 4) {
var u = A[l], h = A[l + 1], g = A[l + 2], c = A[l + 3];
a[i++] = u, a[i++] = h, a[i++] = g, s[o++] = c;
}
var p = this.__addimage__.arrayBufferToBinaryString(a);
return { alpha: this.__addimage__.arrayBufferToBinaryString(s), data: p, index: t, alias: e, colorSpace: "DeviceRGB", bitsPerComponent: 8, width: r.width, height: r.height };
}, eA.API.setLanguage = function(r) {
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" }[r] !== void 0 && (this.internal.languageSettings.languageCode = r, 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;
}, uo = eA.API, vu = uo.getCharWidthsArray = function(r, t) {
var e, A, n = (t = t || {}).font || this.internal.getFont(), a = t.fontSize || this.internal.getFontSize(), s = t.charSpace || this.internal.getCharSpace(), i = t.widths ? t.widths : n.metadata.Unicode.widths, o = i.fof ? i.fof : 1, l = t.kerning ? t.kerning : n.metadata.Unicode.kerning, u = l.fof ? l.fof : 1, h = t.doKerning !== !1, g = 0, c = r.length, p = 0, m = i[0] || o, y = [];
for (e = 0; e < c; e++) A = r.charCodeAt(e), typeof n.metadata.widthOfString == "function" ? y.push((n.metadata.widthOfGlyph(n.metadata.characterToGlyph(A)) + s * (1e3 / a) || 0) / 1e3) : (g = h && jA(l[A]) === "object" && !isNaN(parseInt(l[A][p], 10)) ? l[A][p] / u : 0, y.push((i[A] || m) / o + g)), p = A;
return y;
}, N1 = uo.getStringUnitWidth = function(r, t) {
var e = (t = t || {}).fontSize || this.internal.getFontSize(), A = t.font || this.internal.getFont(), n = t.charSpace || this.internal.getCharSpace();
return uo.processArabic && (r = uo.processArabic(r)), typeof A.metadata.widthOfString == "function" ? A.metadata.widthOfString(r, e, n) / e : vu.apply(this, arguments).reduce(function(a, s) {
return a + s;
}, 0);
}, M1 = function(r, t, e, A) {
for (var n = [], a = 0, s = r.length, i = 0; a !== s && i + t[a] < e; ) i += t[a], a++;
n.push(r.slice(0, a));
var o = a;
for (i = 0; a !== s; ) i + t[a] > A && (n.push(r.slice(o, a)), i = 0, o = a), i += t[a], a++;
return o !== a && n.push(r.slice(o, a)), n;
}, O1 = function(r, t, e) {
e || (e = {});
var A, n, a, s, i, o, l, u = [], h = [u], g = e.textIndent || 0, c = 0, p = 0, m = r.split(" "), y = vu.apply(this, [" ", e])[0];
if (o = e.lineIndent === -1 ? m[0].length + 2 : e.lineIndent || 0) {
var w = Array(o).join(" "), E = [];
m.map(function(F) {
(F = F.split(/\s*\n/)).length > 1 ? E = E.concat(F.map(function(H, q) {
return (q && H.length ? `
` : "") + H;
})) : E.push(F[0]);
}), m = E, o = N1.apply(this, [w, e]);
}
for (a = 0, s = m.length; a < s; a++) {
var C = 0;
if (A = m[a], o && A[0] == `
` && (A = A.substr(1), C = 1), g + c + (p = (n = vu.apply(this, [A, e])).reduce(function(F, H) {
return F + H;
}, 0)) > t || C) {
if (p > t) {
for (i = M1.apply(this, [A, n, t - (g + c), t]), u.push(i.shift()), u = [i.pop()]; i.length; ) h.push([i.shift()]);
p = n.slice(A.length - (u[0] ? u[0].length : 0)).reduce(function(F, H) {
return F + H;
}, 0);
} else u = [A];
h.push(u), g = p + o, c = y;
} else u.push(A), g += c + p, c = y;
}
return l = o ? function(F, H) {
return (H ? w : "") + F.join(" ");
} : function(F) {
return F.join(" ");
}, h.map(l);
}, uo.splitTextToSize = function(r, t, e) {
var A, n = (e = e || {}).fontSize || this.internal.getFontSize(), a = (function(u) {
if (u.widths && u.kerning) return { widths: u.widths, kerning: u.kerning };
var h = this.internal.getFont(u.fontName, u.fontStyle), g = "Unicode";
return h.metadata[g] ? { widths: h.metadata[g].widths || { 0: 1 }, kerning: h.metadata[g].kerning || {} } : { font: h.metadata, fontSize: this.internal.getFontSize(), charSpace: this.internal.getCharSpace() };
}).call(this, e);
A = Array.isArray(r) ? r : String(r).split(/\r?\n/);
var s = 1 * this.internal.scaleFactor * t / n;
a.textIndent = e.textIndent ? 1 * e.textIndent * this.internal.scaleFactor / n : 0, a.lineIndent = e.lineIndent;
var i, o, l = [];
for (i = 0, o = A.length; i < o; i++) l = l.concat(O1.apply(this, [A[i], s, a]));
return l;
}, (function(r) {
r.__fontmetrics__ = r.__fontmetrics__ || {};
for (var t = "0123456789abcdef", e = "klmnopqrstuvwxyz", A = {}, n = {}, a = 0; a < 16; a++) A[e[a]] = t[a], n[t[a]] = e[a];
var s = function(g) {
return "0x" + parseInt(g, 10).toString(16);
}, i = r.__fontmetrics__.compress = function(g) {
var c, p, m, y, w = ["{"];
for (var E in g) {
if (c = g[E], isNaN(parseInt(E, 10)) ? p = "'" + E + "'" : (E = parseInt(E, 10), p = (p = s(E).slice(2)).slice(0, -1) + n[p.slice(-1)]), typeof c == "number") c < 0 ? (m = s(c).slice(3), y = "-") : (m = s(c).slice(2), y = ""), m = y + m.slice(0, -1) + n[m.slice(-1)];
else {
if (jA(c) !== "object") throw new Error("Don't know what to do with value type " + jA(c) + ".");
m = i(c);
}
w.push(p + m);
}
return w.push("}"), w.join("");
}, o = r.__fontmetrics__.uncompress = function(g) {
if (typeof g != "string") throw new Error("Invalid argument passed to uncompress.");
for (var c, p, m, y, w = {}, E = 1, C = w, F = [], H = "", q = "", N = g.length - 1, M = 1; M < N; M += 1) (y = g[M]) == "'" ? c ? (m = c.join(""), c = void 0) : c = [] : c ? c.push(y) : y == "{" ? (F.push([C, m]), C = {}, m = void 0) : y == "}" ? ((p = F.pop())[0][p[1]] = C, m = void 0, C = p[0]) : y == "-" ? E = -1 : m === void 0 ? A.hasOwnProperty(y) ? (H += A[y], m = parseInt(H, 16) * E, E = 1, H = "") : H += y : A.hasOwnProperty(y) ? (q += A[y], C[m] = parseInt(q, 16) * E, E = 1, m = void 0, q = "") : q += y;
return w;
}, l = { codePages: ["WinAnsiEncoding"], WinAnsiEncoding: o("{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}") }, u = { Unicode: { Courier: l, "Courier-Bold": l, "Courier-BoldOblique": l, "Courier-Oblique": l, Helvetica: l, "Helvetica-Bold": l, "Helvetica-BoldOblique": l, "Helvetica-Oblique": l, "Times-Roman": l, "Times-Bold": l, "Times-BoldItalic": l, "Times-Italic": l } }, h = { 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}}}") } };
r.events.push(["addFont", function(g) {
var c = g.font, p = h.Unicode[c.postScriptName];
p && (c.metadata.Unicode = {}, c.metadata.Unicode.widths = p.widths, c.metadata.Unicode.kerning = p.kerning);
var m = u.Unicode[c.postScriptName];
m && (c.metadata.Unicode.encoding = m, c.encoding = m.codePages[0]);
}]);
})(eA.API), /**
* @license
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
(function(r) {
var t = function(e) {
for (var A = e.length, n = new Uint8Array(A), a = 0; a < A; a++) n[a] = e.charCodeAt(a);
return n;
};
r.API.events.push(["addFont", function(e) {
var A = void 0, n = e.font, a = e.instance;
if (!n.isStandardFont) {
if (a === void 0) throw new Error("Font does not exist in vFS, import fonts or remove declaration doc.addFont('" + n.postScriptName + "').");
if (typeof (A = a.existsFileInVFS(n.postScriptName) === !1 ? a.loadFile(n.postScriptName) : a.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, i) {
i = /^\x00\x01\x00\x00/.test(i) ? t(i) : t(zu(i)), s.metadata = r.API.TTFFont.open(i), s.metadata.Unicode = s.metadata.Unicode || { encoding: {}, kerning: {}, widths: [] }, s.metadata.glyIdsUsed = [0];
})(n, A);
}
}]);
})(eA), eA.API.addSvgAsImage = function(r, t, e, A, n, a, s, i) {
if (isNaN(t) || isNaN(e)) throw ur.error("jsPDF.addSvgAsImage: Invalid coordinates", arguments), new Error("Invalid coordinates passed to jsPDF.addSvgAsImage");
if (isNaN(A) || isNaN(n)) throw ur.error("jsPDF.addSvgAsImage: Invalid measurements", arguments), new Error("Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage");
var o = document.createElement("canvas");
o.width = A, o.height = n;
var l = o.getContext("2d");
l.fillStyle = "#fff", l.fillRect(0, 0, o.width, o.height);
var u = { ignoreMouse: !0, ignoreAnimation: !0, ignoreDimensions: !0 }, h = this;
return (cA.canvg ? Promise.resolve(cA.canvg) : Promise.resolve().then(() => J8)).catch(function(g) {
return Promise.reject(new Error("Could not load canvg: " + g));
}).then(function(g) {
return g.default ? g.default : g;
}).then(function(g) {
return g.fromString(l, r, u);
}, function() {
return Promise.reject(new Error("Could not load canvg."));
}).then(function(g) {
return g.render(u);
}).then(function() {
h.addImage(o.toDataURL("image/jpeg", 1), t, e, A, n, s, i);
});
}, eA.API.putTotalPages = function(r) {
var t, e = 0;
parseInt(this.internal.getFont().id.substr(1), 10) < 15 ? (t = new RegExp(r, "g"), e = this.internal.getNumberOfPages()) : (t = new RegExp(this.pdfEscape16(r, this.internal.getFont()), "g"), e = this.pdfEscape16(this.internal.getNumberOfPages() + "", this.internal.getFont()));
for (var A = 1; A <= this.internal.getNumberOfPages(); A++) for (var n = 0; n < this.internal.pages[A].length; n++) this.internal.pages[A][n] = this.internal.pages[A][n].replace(t, e);
return this;
}, eA.API.viewerPreferences = function(r, t) {
var e;
r = r || {}, t = t || !1;
var A, n, a, 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 } }, i = Object.keys(s), o = [], l = 0, u = 0, h = 0;
function g(p, m) {
var y, w = !1;
for (y = 0; y < p.length; y += 1) p[y] === m && (w = !0);
return w;
}
if (this.internal.viewerpreferences === void 0 && (this.internal.viewerpreferences = {}, this.internal.viewerpreferences.configuration = JSON.parse(JSON.stringify(s)), this.internal.viewerpreferences.isSubscribed = !1), e = this.internal.viewerpreferences.configuration, r === "reset" || t === !0) {
var c = i.length;
for (h = 0; h < c; h += 1) e[i[h]].value = e[i[h]].defaultValue, e[i[h]].explicitSet = !1;
}
if (jA(r) === "object") {
for (n in r) if (a = r[n], g(i, n) && a !== void 0) {
if (e[n].type === "boolean" && typeof a == "boolean") e[n].value = a;
else if (e[n].type === "name" && g(e[n].valueSet, a)) e[n].value = a;
else if (e[n].type === "integer" && Number.isInteger(a)) e[n].value = a;
else if (e[n].type === "array") {
for (l = 0; l < a.length; l += 1) if (A = !0, a[l].length === 1 && typeof a[l][0] == "number") o.push(String(a[l] - 1));
else if (a[l].length > 1) {
for (u = 0; u < a[l].length; u += 1) typeof a[l][u] != "number" && (A = !1);
A === !0 && o.push([a[l][0] - 1, a[l][1] - 1].join(" "));
}
e[n].value = "[" + o.join(" ") + "]";
} else e[n].value = e[n].defaultValue;
e[n].explicitSet = !0;
}
}
return this.internal.viewerpreferences.isSubscribed === !1 && (this.internal.events.subscribe("putCatalog", function() {
var p, m = [];
for (p in e) e[p].explicitSet === !0 && (e[p].type === "name" ? m.push("/" + p + " /" + e[p].value) : m.push("/" + p + " " + e[p].value));
m.length !== 0 && this.internal.write(`/ViewerPreferences
<<
` + m.join(`
`) + `
>>`);
}), this.internal.viewerpreferences.isSubscribed = !0), this.internal.viewerpreferences.configuration = e, 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(r) {
var t = function() {
var A = '<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/">')), a = unescape(encodeURIComponent(A)), s = unescape(encodeURIComponent(this.internal.__metadata__.metadata)), i = unescape(encodeURIComponent("</jspdf:metadata></rdf:Description></rdf:RDF>")), o = unescape(encodeURIComponent("</x:xmpmeta>")), l = a.length + s.length + i.length + n.length + o.length;
this.internal.__metadata__.metadata_object_number = this.internal.newObject(), this.internal.write("<< /Type /Metadata /Subtype /XML /Length " + l + " >>"), this.internal.write("stream"), this.internal.write(n + a + s + i + o), this.internal.write("endstream"), this.internal.write("endobj");
}, e = function() {
this.internal.__metadata__.metadata_object_number && this.internal.write("/Metadata " + this.internal.__metadata__.metadata_object_number + " 0 R");
};
r.addMetadata = function(A, n) {
return this.internal.__metadata__ === void 0 && (this.internal.__metadata__ = { metadata: A, namespaceuri: n || "http://jspdf.default.namespaceuri/" }, this.internal.events.subscribe("putCatalog", e), this.internal.events.subscribe("postPutResources", t)), this;
};
})(eA.API), (function(r) {
var t = r.API, e = t.pdfEscape16 = function(a, s) {
for (var i, o = s.metadata.Unicode.widths, l = ["", "0", "00", "000", "0000"], u = [""], h = 0, g = a.length; h < g; ++h) {
if (i = s.metadata.characterToGlyph(a.charCodeAt(h)), s.metadata.glyIdsUsed.push(i), s.metadata.toUnicode[i] = a.charCodeAt(h), o.indexOf(i) == -1 && (o.push(i), o.push([parseInt(s.metadata.widthOfGlyph(i), 10)])), i == "0") return u.join("");
i = i.toString(16), u.push(l[4 - i.length], i);
}
return u.join("");
}, A = function(a) {
var s, i, o, l, u, h, g;
for (u = `/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`, o = [], h = 0, g = (i = Object.keys(a).sort(function(c, p) {
return c - p;
})).length; h < g; h++) s = i[h], o.length >= 100 && (u += `
` + o.length + ` beginbfchar
` + o.join(`
`) + `
endbfchar`, o = []), a[s] !== void 0 && a[s] !== null && typeof a[s].toString == "function" && (l = ("0000" + a[s].toString(16)).slice(-4), s = ("0000" + (+s).toString(16)).slice(-4), o.push("<" + s + "><" + l + ">"));
return o.length && (u += `
` + o.length + ` beginbfchar
` + o.join(`
`) + `
endbfchar
`), u + `endcmap
CMapName currentdict /CMap defineresource pop
end
end`;
};
t.events.push(["putFont", function(a) {
(function(s) {
var i = s.font, o = s.out, l = s.newObject, u = s.putStream;
if (i.metadata instanceof r.API.TTFFont && i.encoding === "Identity-H") {
for (var h = i.metadata.Unicode.widths, g = i.metadata.subset.encode(i.metadata.glyIdsUsed, 1), c = "", p = 0; p < g.length; p++) c += String.fromCharCode(g[p]);
var m = l();
u({ data: c, addLength1: !0, objectId: m }), o("endobj");
var y = l();
u({ data: A(i.metadata.toUnicode), addLength1: !0, objectId: y }), o("endobj");
var w = l();
o("<<"), o("/Type /FontDescriptor"), o("/FontName /" + wo(i.fontName)), o("/FontFile2 " + m + " 0 R"), o("/FontBBox " + r.API.PDFObject.convert(i.metadata.bbox)), o("/Flags " + i.metadata.flags), o("/StemV " + i.metadata.stemV), o("/ItalicAngle " + i.metadata.italicAngle), o("/Ascent " + i.metadata.ascender), o("/Descent " + i.metadata.decender), o("/CapHeight " + i.metadata.capHeight), o(">>"), o("endobj");
var E = l();
o("<<"), o("/Type /Font"), o("/BaseFont /" + wo(i.fontName)), o("/FontDescriptor " + w + " 0 R"), o("/W " + r.API.PDFObject.convert(h)), o("/CIDToGIDMap /Identity"), o("/DW 1000"), o("/Subtype /CIDFontType2"), o("/CIDSystemInfo"), o("<<"), o("/Supplement 0"), o("/Registry (Adobe)"), o("/Ordering (" + i.encoding + ")"), o(">>"), o(">>"), o("endobj"), i.objectNumber = l(), o("<<"), o("/Type /Font"), o("/Subtype /Type0"), o("/ToUnicode " + y + " 0 R"), o("/BaseFont /" + wo(i.fontName)), o("/Encoding /" + i.encoding), o("/DescendantFonts [" + E + " 0 R]"), o(">>"), o("endobj"), i.isAlreadyPutted = !0;
}
})(a);
}]), t.events.push(["putFont", function(a) {
(function(s) {
var i = s.font, o = s.out, l = s.newObject, u = s.putStream;
if (i.metadata instanceof r.API.TTFFont && i.encoding === "WinAnsiEncoding") {
for (var h = i.metadata.rawData, g = "", c = 0; c < h.length; c++) g += String.fromCharCode(h[c]);
var p = l();
u({ data: g, addLength1: !0, objectId: p }), o("endobj");
var m = l();
u({ data: A(i.metadata.toUnicode), addLength1: !0, objectId: m }), o("endobj");
var y = l();
o("<<"), o("/Descent " + i.metadata.decender), o("/CapHeight " + i.metadata.capHeight), o("/StemV " + i.metadata.stemV), o("/Type /FontDescriptor"), o("/FontFile2 " + p + " 0 R"), o("/Flags 96"), o("/FontBBox " + r.API.PDFObject.convert(i.metadata.bbox)), o("/FontName /" + wo(i.fontName)), o("/ItalicAngle " + i.metadata.italicAngle), o("/Ascent " + i.metadata.ascender), o(">>"), o("endobj"), i.objectNumber = l();
for (var w = 0; w < i.metadata.hmtx.widths.length; w++) i.metadata.hmtx.widths[w] = parseInt(i.metadata.hmtx.widths[w] * (1e3 / i.metadata.head.unitsPerEm));
o("<</Subtype/TrueType/Type/Font/ToUnicode " + m + " 0 R/BaseFont/" + wo(i.fontName) + "/FontDescriptor " + y + " 0 R/Encoding/" + i.encoding + " /FirstChar 29 /LastChar 255 /Widths " + r.API.PDFObject.convert(i.metadata.hmtx.widths) + ">>"), o("endobj"), i.isAlreadyPutted = !0;
}
})(a);
}]);
var n = function(a) {
var s, i = a.text || "", o = a.x, l = a.y, u = a.options || {}, h = a.mutex || {}, g = h.pdfEscape, c = h.activeFontKey, p = h.fonts, m = c, y = "", w = 0, E = "", C = p[m].encoding;
if (p[m].encoding !== "Identity-H") return { text: i, x: o, y: l, options: u, mutex: h };
for (E = i, m = c, Array.isArray(i) && (E = i[0]), w = 0; w < E.length; w += 1) p[m].metadata.hasOwnProperty("cmap") && (s = p[m].metadata.cmap.unicode.codeMap[E[w].charCodeAt(0)]), s || E[w].charCodeAt(0) < 256 && p[m].metadata.hasOwnProperty("Unicode") ? y += E[w] : y += "";
var F = "";
return parseInt(m.slice(1)) < 14 || C === "WinAnsiEncoding" ? F = g(y, m).split("").map(function(H) {
return H.charCodeAt(0).toString(16);
}).join("") : C === "Identity-H" && (F = e(y, p[m])), h.isHex = !0, { text: F, x: o, y: l, options: u, mutex: h };
};
t.events.push(["postProcessText", function(a) {
var s = a.text || "", i = [], o = { text: s, x: a.x, y: a.y, options: a.options, mutex: a.mutex };
if (Array.isArray(s)) {
var l = 0;
for (l = 0; l < s.length; l += 1) Array.isArray(s[l]) && s[l].length === 3 ? i.push([n(Object.assign({}, o, { text: s[l][0] })).text, s[l][1], s[l][2]]) : i.push(n(Object.assign({}, o, { text: s[l] })).text);
a.text = i;
} else a.text = n(Object.assign({}, o, { text: s })).text;
}]);
})(eA), /**
* @license
* jsPDF virtual FileSystem functionality
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
(function(r) {
var t = function() {
return this.internal.vFS === void 0 && (this.internal.vFS = {}), !0;
};
r.existsFileInVFS = function(e) {
return t.call(this), this.internal.vFS[e] !== void 0;
}, r.addFileToVFS = function(e, A) {
return t.call(this), this.internal.vFS[e] = A, this;
}, r.getFileFromVFS = function(e) {
return t.call(this), this.internal.vFS[e] !== void 0 ? this.internal.vFS[e] : null;
};
})(eA.API), /**
* @license
* Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)
* MIT License
*/
(function(r) {
r.__bidiEngine__ = r.prototype.__bidiEngine__ = function(A) {
var n, a, s, i, o, l, u, h = t, g = [[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]], c = [[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]], p = { L: 0, R: 1, EN: 2, AN: 3, N: 4, B: 5, S: 6 }, m = { 0: 0, 5: 1, 6: 2, 7: 3, 32: 4, 251: 5, 254: 6, 255: 7 }, y = ["(", ")", "(", "<", ">", "<", "[", "]", "[", "{", "}", "{", "«", "»", "«", "‹", "›", "‹", "⁅", "⁆", "⁅", "⁽", "⁾", "⁽", "₍", "₎", "₍", "≤", "≥", "≤", "〈", "〉", "〈", "﹙", "﹚", "﹙", "﹛", "﹜", "﹛", "﹝", "﹞", "﹝", "﹤", "﹥", "﹤"], w = 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)$/), E = !1, C = 0;
this.__bidiEngine__ = {};
var F = function(S) {
var U = S.charCodeAt(), W = U >> 8, I = m[W];
return I !== void 0 ? h[256 * I + (255 & U)] : W === 252 || W === 253 ? "AL" : w.test(W) ? "L" : W === 8 ? "R" : "N";
}, H = function(S) {
for (var U, W = 0; W < S.length; W++) {
if ((U = F(S.charAt(W))) === "L") return !1;
if (U === "R") return !0;
}
return !1;
}, q = function(S, U, W, I) {
var le, ue, Z, ee, X = U[I];
switch (X) {
case "L":
case "R":
case "LRE":
case "RLE":
case "LRO":
case "RLO":
case "PDF":
E = !1;
break;
case "N":
case "AN":
break;
case "EN":
E && (X = "AN");
break;
case "AL":
E = !0, X = "R";
break;
case "WS":
case "BN":
X = "N";
break;
case "CS":
I < 1 || I + 1 >= U.length || (le = W[I - 1]) !== "EN" && le !== "AN" || (ue = U[I + 1]) !== "EN" && ue !== "AN" ? X = "N" : E && (ue = "AN"), X = ue === le ? ue : "N";
break;
case "ES":
X = (le = I > 0 ? W[I - 1] : "B") === "EN" && I + 1 < U.length && U[I + 1] === "EN" ? "EN" : "N";
break;
case "ET":
if (I > 0 && W[I - 1] === "EN") {
X = "EN";
break;
}
if (E) {
X = "N";
break;
}
for (Z = I + 1, ee = U.length; Z < ee && U[Z] === "ET"; ) Z++;
X = Z < ee && U[Z] === "EN" ? "EN" : "N";
break;
case "NSM":
if (s && !i) {
for (ee = U.length, Z = I + 1; Z < ee && U[Z] === "NSM"; ) Z++;
if (Z < ee) {
var Ae = S[I], oe = Ae >= 1425 && Ae <= 2303 || Ae === 64286;
if (le = U[Z], oe && (le === "R" || le === "AL")) {
X = "R";
break;
}
}
}
X = I < 1 || (le = U[I - 1]) === "B" ? "N" : W[I - 1];
break;
case "B":
E = !1, n = !0, X = C;
break;
case "S":
a = !0, X = "N";
}
return X;
}, N = function(S, U, W) {
var I = S.split("");
return W && M(I, W, { hiLevel: C }), I.reverse(), U && U.reverse(), I.join("");
}, M = function(S, U, W) {
var I, le, ue, Z, ee, X = -1, Ae = S.length, oe = 0, x = [], L = C ? c : g, j = [];
for (E = !1, n = !1, a = !1, le = 0; le < Ae; le++) j[le] = F(S[le]);
for (ue = 0; ue < Ae; ue++) {
if (ee = oe, x[ue] = q(S, j, x, ue), I = 240 & (oe = L[ee][p[x[ue]]]), oe &= 15, U[ue] = Z = L[oe][5], I > 0) if (I === 16) {
for (le = X; le < ue; le++) U[le] = 1;
X = -1;
} else X = -1;
if (L[oe][6]) X === -1 && (X = ue);
else if (X > -1) {
for (le = X; le < ue; le++) U[le] = Z;
X = -1;
}
j[ue] === "B" && (U[ue] = 0), W.hiLevel |= Z;
}
a && (function($, re, pe) {
for (var de = 0; de < pe; de++) if ($[de] === "S") {
re[de] = C;
for (var ce = de - 1; ce >= 0 && $[ce] === "WS"; ce--) re[ce] = C;
}
})(j, U, Ae);
}, k = function(S, U, W, I, le) {
if (!(le.hiLevel < S)) {
if (S === 1 && C === 1 && !n) return U.reverse(), void (W && W.reverse());
for (var ue, Z, ee, X, Ae = U.length, oe = 0; oe < Ae; ) {
if (I[oe] >= S) {
for (ee = oe + 1; ee < Ae && I[ee] >= S; ) ee++;
for (X = oe, Z = ee - 1; X < Z; X++, Z--) ue = U[X], U[X] = U[Z], U[Z] = ue, W && (ue = W[X], W[X] = W[Z], W[Z] = ue);
oe = ee;
}
oe++;
}
}
}, O = function(S, U, W) {
var I = S.split(""), le = { hiLevel: C };
return W || (W = []), M(I, W, le), (function(ue, Z, ee) {
if (ee.hiLevel !== 0 && u) for (var X, Ae = 0; Ae < ue.length; Ae++) Z[Ae] === 1 && (X = y.indexOf(ue[Ae])) >= 0 && (ue[Ae] = y[X + 1]);
})(I, W, le), k(2, I, U, W, le), k(1, I, U, W, le), I.join("");
};
return this.__bidiEngine__.doBidiReorder = function(S, U, W) {
if ((function(le, ue) {
if (ue) for (var Z = 0; Z < le.length; Z++) ue[Z] = Z;
i === void 0 && (i = H(le)), l === void 0 && (l = H(le));
})(S, U), s || !o || l) if (s && o && i ^ l) C = i ? 1 : 0, S = N(S, U, W);
else if (!s && o && l) C = i ? 1 : 0, S = O(S, U, W), S = N(S, U);
else if (!s || i || o || l) {
if (s && !o && i ^ l) S = N(S, U), i ? (C = 0, S = O(S, U, W)) : (C = 1, S = O(S, U, W), S = N(S, U));
else if (s && i && !o && l) C = 1, S = O(S, U, W), S = N(S, U);
else if (!s && !o && i ^ l) {
var I = u;
i ? (C = 1, S = O(S, U, W), C = 0, u = !1, S = O(S, U, W), u = I) : (C = 0, S = O(S, U, W), S = N(S, U), C = 1, u = !1, S = O(S, U, W), u = I, S = N(S, U));
}
} else C = 0, S = O(S, U, W);
else C = i ? 1 : 0, S = O(S, U, W);
return S;
}, this.__bidiEngine__.setOptions = function(S) {
S && (s = S.isInputVisual, o = S.isOutputVisual, i = S.isInputRtl, l = S.isOutputRtl, u = S.isSymmetricSwapping);
}, this.__bidiEngine__.setOptions(A), this.__bidiEngine__;
};
var t = ["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"], e = new r.__bidiEngine__({ isInputVisual: !0 });
r.API.events.push(["postProcessText", function(A) {
var n = A.text;
A.x, A.y;
var a = A.options || {};
A.mutex, a.lang;
var s = [];
if (a.isInputVisual = typeof a.isInputVisual != "boolean" || a.isInputVisual, e.setOptions(a), Object.prototype.toString.call(n) === "[object Array]") {
var i = 0;
for (s = [], i = 0; i < n.length; i += 1) Object.prototype.toString.call(n[i]) === "[object Array]" ? s.push([e.doBidiReorder(n[i][0]), n[i][1], n[i][2]]) : s.push([e.doBidiReorder(n[i])]);
A.text = s;
} else A.text = e.doBidiReorder(n);
e.setOptions({ isInputVisual: !0 });
}]);
})(eA), eA.API.TTFFont = (function() {
function r(t) {
var e;
if (this.rawData = t, e = this.contents = new gs(t), this.contents.pos = 4, e.readString(4) === "ttcf") throw new Error("TTCF not supported.");
e.pos = 0, this.parse(), this.subset = new PD(this), this.registerTTF();
}
return r.open = function(t) {
return new r(t);
}, r.prototype.parse = function() {
return this.directory = new SD(this.contents), this.head = new TD(this), this.name = new ID(this), this.cmap = new I5(this), this.toUnicode = {}, this.hhea = new QD(this), this.maxp = new _D(this), this.hmtx = new ND(this), this.post = new kD(this), this.os2 = new DD(this), this.loca = new HD(this), this.glyf = new MD(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];
}, r.prototype.registerTTF = function() {
var t, e, A, n, a;
if (this.scaleFactor = 1e3 / this.head.unitsPerEm, this.bbox = (function() {
var s, i, o, l;
for (l = [], s = 0, i = (o = this.bbox).length; s < i; s++) t = o[s], l.push(Math.round(t * this.scaleFactor));
return l;
}).call(this), this.stemV = 0, this.post.exists ? (A = 255 & (n = this.post.italic_angle), 32768 & (e = n >> 16) && (e = -(1 + (65535 ^ e))), this.italicAngle = +(e + "." + A)) : 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 = (a = this.familyClass) === 1 || a === 2 || a === 3 || a === 4 || a === 5 || a === 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");
}, r.prototype.characterToGlyph = function(t) {
var e;
return ((e = this.cmap.unicode) != null ? e.codeMap[t] : void 0) || 0;
}, r.prototype.widthOfGlyph = function(t) {
var e;
return e = 1e3 / this.head.unitsPerEm, this.hmtx.forGlyph(t).advance * e;
}, r.prototype.widthOfString = function(t, e, A) {
var n, a, s, i;
for (s = 0, a = 0, i = (t = "" + t).length; 0 <= i ? a < i : a > i; a = 0 <= i ? ++a : --a) n = t.charCodeAt(a), s += this.widthOfGlyph(this.characterToGlyph(n)) + A * (1e3 / e) || 0;
return s * (e / 1e3);
}, r.prototype.lineHeight = function(t, e) {
var A;
return e == null && (e = !1), A = e ? this.lineGap : 0, (this.ascender + A - this.decender) / 1e3 * t;
}, r;
})();
var Za, gs = (function() {
function r(t) {
this.data = t ?? [], this.pos = 0, this.length = this.data.length;
}
return r.prototype.readByte = function() {
return this.data[this.pos++];
}, r.prototype.writeByte = function(t) {
return this.data[this.pos++] = t;
}, r.prototype.readUInt32 = function() {
return 16777216 * this.readByte() + (this.readByte() << 16) + (this.readByte() << 8) + this.readByte();
}, r.prototype.writeUInt32 = function(t) {
return this.writeByte(t >>> 24 & 255), this.writeByte(t >> 16 & 255), this.writeByte(t >> 8 & 255), this.writeByte(255 & t);
}, r.prototype.readInt32 = function() {
var t;
return (t = this.readUInt32()) >= 2147483648 ? t - 4294967296 : t;
}, r.prototype.writeInt32 = function(t) {
return t < 0 && (t += 4294967296), this.writeUInt32(t);
}, r.prototype.readUInt16 = function() {
return this.readByte() << 8 | this.readByte();
}, r.prototype.writeUInt16 = function(t) {
return this.writeByte(t >> 8 & 255), this.writeByte(255 & t);
}, r.prototype.readInt16 = function() {
var t;
return (t = this.readUInt16()) >= 32768 ? t - 65536 : t;
}, r.prototype.writeInt16 = function(t) {
return t < 0 && (t += 65536), this.writeUInt16(t);
}, r.prototype.readString = function(t) {
var e, A;
for (A = [], e = 0; 0 <= t ? e < t : e > t; e = 0 <= t ? ++e : --e) A[e] = String.fromCharCode(this.readByte());
return A.join("");
}, r.prototype.writeString = function(t) {
var e, A, n;
for (n = [], e = 0, A = t.length; 0 <= A ? e < A : e > A; e = 0 <= A ? ++e : --e) n.push(this.writeByte(t.charCodeAt(e)));
return n;
}, r.prototype.readShort = function() {
return this.readInt16();
}, r.prototype.writeShort = function(t) {
return this.writeInt16(t);
}, r.prototype.readLongLong = function() {
var t, e, A, n, a, s, i, o;
return t = this.readByte(), e = this.readByte(), A = this.readByte(), n = this.readByte(), a = this.readByte(), s = this.readByte(), i = this.readByte(), o = this.readByte(), 128 & t ? -1 * (72057594037927940 * (255 ^ t) + 281474976710656 * (255 ^ e) + 1099511627776 * (255 ^ A) + 4294967296 * (255 ^ n) + 16777216 * (255 ^ a) + 65536 * (255 ^ s) + 256 * (255 ^ i) + (255 ^ o) + 1) : 72057594037927940 * t + 281474976710656 * e + 1099511627776 * A + 4294967296 * n + 16777216 * a + 65536 * s + 256 * i + o;
}, r.prototype.writeLongLong = function(t) {
var e, A;
return e = Math.floor(t / 4294967296), A = 4294967295 & t, this.writeByte(e >> 24 & 255), this.writeByte(e >> 16 & 255), this.writeByte(e >> 8 & 255), this.writeByte(255 & e), this.writeByte(A >> 24 & 255), this.writeByte(A >> 16 & 255), this.writeByte(A >> 8 & 255), this.writeByte(255 & A);
}, r.prototype.readInt = function() {
return this.readInt32();
}, r.prototype.writeInt = function(t) {
return this.writeInt32(t);
}, r.prototype.read = function(t) {
var e, A;
for (e = [], A = 0; 0 <= t ? A < t : A > t; A = 0 <= t ? ++A : --A) e.push(this.readByte());
return e;
}, r.prototype.write = function(t) {
var e, A, n, a;
for (a = [], A = 0, n = t.length; A < n; A++) e = t[A], a.push(this.writeByte(e));
return a;
}, r;
})(), SD = (function() {
var r;
function t(e) {
var A, n, a;
for (this.scalarType = e.readInt(), this.tableCount = e.readShort(), this.searchRange = e.readShort(), this.entrySelector = e.readShort(), this.rangeShift = e.readShort(), this.tables = {}, n = 0, a = this.tableCount; 0 <= a ? n < a : n > a; n = 0 <= a ? ++n : --n) A = { tag: e.readString(4), checksum: e.readInt(), offset: e.readInt(), length: e.readInt() }, this.tables[A.tag] = A;
}
return t.prototype.encode = function(e) {
var A, n, a, s, i, o, l, u, h, g, c, p, m;
for (m in c = Object.keys(e).length, o = Math.log(2), h = 16 * Math.floor(Math.log(c) / o), s = Math.floor(h / o), u = 16 * c - h, (n = new gs()).writeInt(this.scalarType), n.writeShort(c), n.writeShort(h), n.writeShort(s), n.writeShort(u), a = 16 * c, l = n.pos + a, i = null, p = [], e) for (g = e[m], n.writeString(m), n.writeInt(r(g)), n.writeInt(l), n.writeInt(g.length), p = p.concat(g), m === "head" && (i = l), l += g.length; l % 4; ) p.push(0), l++;
return n.write(p), A = 2981146554 - r(n.data), n.pos = i + 8, n.writeUInt32(A), n.data;
}, r = function(e) {
var A, n, a, s;
for (e = _5.call(e); e.length % 4; ) e.push(0);
for (a = new gs(e), n = 0, A = 0, s = e.length; A < s; A = A += 4) n += a.readUInt32();
return 4294967295 & n;
}, t;
})(), UD = {}.hasOwnProperty, di = function(r, t) {
for (var e in t) UD.call(t, e) && (r[e] = t[e]);
function A() {
this.constructor = r;
}
return A.prototype = t.prototype, r.prototype = new A(), r.__super__ = t.prototype, r;
};
Za = (function() {
function r(t) {
var e;
this.file = t, e = this.file.directory.tables[this.tag], this.exists = !!e, e && (this.offset = e.offset, this.length = e.length, this.parse(this.file.contents));
}
return r.prototype.parse = function() {
}, r.prototype.encode = function() {
}, r.prototype.raw = function() {
return this.exists ? (this.file.contents.pos = this.offset, this.file.contents.read(this.length)) : null;
}, r;
})();
var TD = (function() {
function r() {
return r.__super__.constructor.apply(this, arguments);
}
return di(r, Za), r.prototype.tag = "head", r.prototype.parse = function(t) {
return t.pos = this.offset, this.version = t.readInt(), this.revision = t.readInt(), this.checkSumAdjustment = t.readInt(), this.magicNumber = t.readInt(), this.flags = t.readShort(), this.unitsPerEm = t.readShort(), this.created = t.readLongLong(), this.modified = t.readLongLong(), this.xMin = t.readShort(), this.yMin = t.readShort(), this.xMax = t.readShort(), this.yMax = t.readShort(), this.macStyle = t.readShort(), this.lowestRecPPEM = t.readShort(), this.fontDirectionHint = t.readShort(), this.indexToLocFormat = t.readShort(), this.glyphDataFormat = t.readShort();
}, r.prototype.encode = function(t) {
var e;
return (e = new gs()).writeInt(this.version), e.writeInt(this.revision), e.writeInt(this.checkSumAdjustment), e.writeInt(this.magicNumber), e.writeShort(this.flags), e.writeShort(this.unitsPerEm), e.writeLongLong(this.created), e.writeLongLong(this.modified), e.writeShort(this.xMin), e.writeShort(this.yMin), e.writeShort(this.xMax), e.writeShort(this.yMax), e.writeShort(this.macStyle), e.writeShort(this.lowestRecPPEM), e.writeShort(this.fontDirectionHint), e.writeShort(t), e.writeShort(this.glyphDataFormat), e.data;
}, r;
})(), G1 = (function() {
function r(t, e) {
var A, n, a, s, i, o, l, u, h, g, c, p, m, y, w, E, C;
switch (this.platformID = t.readUInt16(), this.encodingID = t.readShort(), this.offset = e + t.readInt(), h = t.pos, t.pos = this.offset, this.format = t.readUInt16(), this.length = t.readUInt16(), this.language = t.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 (o = 0; o < 256; ++o) this.codeMap[o] = t.readByte();
break;
case 4:
for (c = t.readUInt16(), g = c / 2, t.pos += 6, a = (function() {
var F, H;
for (H = [], o = F = 0; 0 <= g ? F < g : F > g; o = 0 <= g ? ++F : --F) H.push(t.readUInt16());
return H;
})(), t.pos += 2, m = (function() {
var F, H;
for (H = [], o = F = 0; 0 <= g ? F < g : F > g; o = 0 <= g ? ++F : --F) H.push(t.readUInt16());
return H;
})(), l = (function() {
var F, H;
for (H = [], o = F = 0; 0 <= g ? F < g : F > g; o = 0 <= g ? ++F : --F) H.push(t.readUInt16());
return H;
})(), u = (function() {
var F, H;
for (H = [], o = F = 0; 0 <= g ? F < g : F > g; o = 0 <= g ? ++F : --F) H.push(t.readUInt16());
return H;
})(), n = (this.length - t.pos + this.offset) / 2, i = (function() {
var F, H;
for (H = [], o = F = 0; 0 <= n ? F < n : F > n; o = 0 <= n ? ++F : --F) H.push(t.readUInt16());
return H;
})(), o = w = 0, C = a.length; w < C; o = ++w) for (y = a[o], A = E = p = m[o]; p <= y ? E <= y : E >= y; A = p <= y ? ++E : --E) u[o] === 0 ? s = A + l[o] : (s = i[u[o] / 2 + (A - p) - (g - o)] || 0) !== 0 && (s += l[o]), this.codeMap[A] = 65535 & s;
}
t.pos = h;
}
return r.encode = function(t, e) {
var A, n, a, s, i, o, l, u, h, g, c, p, m, y, w, E, C, F, H, q, N, M, k, O, S, U, W, I, le, ue, Z, ee, X, Ae, oe, x, L, j, $, re, pe, de, ce, Se, qe, rt;
switch (I = new gs(), s = Object.keys(t).sort(function(at, dt) {
return at - dt;
}), e) {
case "macroman":
for (m = 0, y = (function() {
var at = [];
for (p = 0; p < 256; ++p) at.push(0);
return at;
})(), E = { 0: 0 }, a = {}, le = 0, X = s.length; le < X; le++) E[ce = t[n = s[le]]] == null && (E[ce] = ++m), a[n] = { old: t[n], new: E[t[n]] }, y[n] = E[t[n]];
return I.writeUInt16(1), I.writeUInt16(0), I.writeUInt32(12), I.writeUInt16(0), I.writeUInt16(262), I.writeUInt16(0), I.write(y), { charMap: a, subtable: I.data, maxGlyphID: m + 1 };
case "unicode":
for (U = [], h = [], C = 0, E = {}, A = {}, w = l = null, ue = 0, Ae = s.length; ue < Ae; ue++) E[H = t[n = s[ue]]] == null && (E[H] = ++C), A[n] = { old: H, new: E[H] }, i = E[H] - n, w != null && i === l || (w && h.push(w), U.push(n), l = i), w = n;
for (w && h.push(w), h.push(65535), U.push(65535), O = 2 * (k = U.length), M = 2 * Math.pow(Math.log(k) / Math.LN2, 2), g = Math.log(M / 2) / Math.LN2, N = 2 * k - M, o = [], q = [], c = [], p = Z = 0, oe = U.length; Z < oe; p = ++Z) {
if (S = U[p], u = h[p], S === 65535) {
o.push(0), q.push(0);
break;
}
if (S - (W = A[S].new) >= 32768) for (o.push(0), q.push(2 * (c.length + k - p)), n = ee = S; S <= u ? ee <= u : ee >= u; n = S <= u ? ++ee : --ee) c.push(A[n].new);
else o.push(W - S), q.push(0);
}
for (I.writeUInt16(3), I.writeUInt16(1), I.writeUInt32(12), I.writeUInt16(4), I.writeUInt16(16 + 8 * k + 2 * c.length), I.writeUInt16(0), I.writeUInt16(O), I.writeUInt16(M), I.writeUInt16(g), I.writeUInt16(N), pe = 0, x = h.length; pe < x; pe++) n = h[pe], I.writeUInt16(n);
for (I.writeUInt16(0), de = 0, L = U.length; de < L; de++) n = U[de], I.writeUInt16(n);
for (Se = 0, j = o.length; Se < j; Se++) i = o[Se], I.writeUInt16(i);
for (qe = 0, $ = q.length; qe < $; qe++) F = q[qe], I.writeUInt16(F);
for (rt = 0, re = c.length; rt < re; rt++) m = c[rt], I.writeUInt16(m);
return { charMap: A, subtable: I.data, maxGlyphID: C + 1 };
}
}, r;
})(), I5 = (function() {
function r() {
return r.__super__.constructor.apply(this, arguments);
}
return di(r, Za), r.prototype.tag = "cmap", r.prototype.parse = function(t) {
var e, A, n;
for (t.pos = this.offset, this.version = t.readUInt16(), n = t.readUInt16(), this.tables = [], this.unicode = null, A = 0; 0 <= n ? A < n : A > n; A = 0 <= n ? ++A : --A) e = new G1(t, this.offset), this.tables.push(e), e.isUnicode && this.unicode == null && (this.unicode = e);
return !0;
}, r.encode = function(t, e) {
var A, n;
return e == null && (e = "macroman"), A = G1.encode(t, e), (n = new gs()).writeUInt16(0), n.writeUInt16(1), A.table = n.data.concat(A.subtable), A;
}, r;
})(), QD = (function() {
function r() {
return r.__super__.constructor.apply(this, arguments);
}
return di(r, Za), r.prototype.tag = "hhea", r.prototype.parse = function(t) {
return t.pos = this.offset, this.version = t.readInt(), this.ascender = t.readShort(), this.decender = t.readShort(), this.lineGap = t.readShort(), this.advanceWidthMax = t.readShort(), this.minLeftSideBearing = t.readShort(), this.minRightSideBearing = t.readShort(), this.xMaxExtent = t.readShort(), this.caretSlopeRise = t.readShort(), this.caretSlopeRun = t.readShort(), this.caretOffset = t.readShort(), t.pos += 8, this.metricDataFormat = t.readShort(), this.numberOfMetrics = t.readUInt16();
}, r;
})(), DD = (function() {
function r() {
return r.__super__.constructor.apply(this, arguments);
}
return di(r, Za), r.prototype.tag = "OS/2", r.prototype.parse = function(t) {
if (t.pos = this.offset, this.version = t.readUInt16(), this.averageCharWidth = t.readShort(), this.weightClass = t.readUInt16(), this.widthClass = t.readUInt16(), this.type = t.readShort(), this.ySubscriptXSize = t.readShort(), this.ySubscriptYSize = t.readShort(), this.ySubscriptXOffset = t.readShort(), this.ySubscriptYOffset = t.readShort(), this.ySuperscriptXSize = t.readShort(), this.ySuperscriptYSize = t.readShort(), this.ySuperscriptXOffset = t.readShort(), this.ySuperscriptYOffset = t.readShort(), this.yStrikeoutSize = t.readShort(), this.yStrikeoutPosition = t.readShort(), this.familyClass = t.readShort(), this.panose = (function() {
var e, A;
for (A = [], e = 0; e < 10; ++e) A.push(t.readByte());
return A;
})(), this.charRange = (function() {
var e, A;
for (A = [], e = 0; e < 4; ++e) A.push(t.readInt());
return A;
})(), this.vendorID = t.readString(4), this.selection = t.readShort(), this.firstCharIndex = t.readShort(), this.lastCharIndex = t.readShort(), this.version > 0 && (this.ascent = t.readShort(), this.descent = t.readShort(), this.lineGap = t.readShort(), this.winAscent = t.readShort(), this.winDescent = t.readShort(), this.codePageRange = (function() {
var e, A;
for (A = [], e = 0; e < 2; e = ++e) A.push(t.readInt());
return A;
})(), this.version > 1)) return this.xHeight = t.readShort(), this.capHeight = t.readShort(), this.defaultChar = t.readShort(), this.breakChar = t.readShort(), this.maxContext = t.readShort();
}, r;
})(), kD = (function() {
function r() {
return r.__super__.constructor.apply(this, arguments);
}
return di(r, Za), r.prototype.tag = "post", r.prototype.parse = function(t) {
var e, A, n;
switch (t.pos = this.offset, this.format = t.readInt(), this.italicAngle = t.readInt(), this.underlinePosition = t.readShort(), this.underlineThickness = t.readShort(), this.isFixedPitch = t.readInt(), this.minMemType42 = t.readInt(), this.maxMemType42 = t.readInt(), this.minMemType1 = t.readInt(), this.maxMemType1 = t.readInt(), this.format) {
case 65536:
case 196608:
break;
case 131072:
var a;
for (A = t.readUInt16(), this.glyphNameIndex = [], a = 0; 0 <= A ? a < A : a > A; a = 0 <= A ? ++a : --a) this.glyphNameIndex.push(t.readUInt16());
for (this.names = [], n = []; t.pos < this.offset + this.length; ) e = t.readByte(), n.push(this.names.push(t.readString(e)));
return n;
case 151552:
return A = t.readUInt16(), this.offsets = t.read(A);
case 262144:
return this.map = (function() {
var s, i, o;
for (o = [], a = s = 0, i = this.file.maxp.numGlyphs; 0 <= i ? s < i : s > i; a = 0 <= i ? ++s : --s) o.push(t.readUInt32());
return o;
}).call(this);
}
}, r;
})(), LD = function(r, t) {
this.raw = r, this.length = r.length, this.platformID = t.platformID, this.encodingID = t.encodingID, this.languageID = t.languageID;
}, ID = (function() {
function r() {
return r.__super__.constructor.apply(this, arguments);
}
return di(r, Za), r.prototype.tag = "name", r.prototype.parse = function(t) {
var e, A, n, a, s, i, o, l, u, h, g;
for (t.pos = this.offset, t.readShort(), e = t.readShort(), i = t.readShort(), A = [], a = 0; 0 <= e ? a < e : a > e; a = 0 <= e ? ++a : --a) A.push({ platformID: t.readShort(), encodingID: t.readShort(), languageID: t.readShort(), nameID: t.readShort(), length: t.readShort(), offset: this.offset + i + t.readShort() });
for (o = {}, a = u = 0, h = A.length; u < h; a = ++u) n = A[a], t.pos = n.offset, l = t.readString(n.length), s = new LD(l, n), o[g = n.nameID] == null && (o[g] = []), o[n.nameID].push(s);
this.strings = o, this.copyright = o[0], this.fontFamily = o[1], this.fontSubfamily = o[2], this.uniqueSubfamily = o[3], this.fontName = o[4], this.version = o[5];
try {
this.postscriptName = o[6][0].raw.replace(/[\x00-\x19\x80-\xff]/g, "");
} catch {
this.postscriptName = o[4][0].raw.replace(/[\x00-\x19\x80-\xff]/g, "");
}
return this.trademark = o[7], this.manufacturer = o[8], this.designer = o[9], this.description = o[10], this.vendorUrl = o[11], this.designerUrl = o[12], this.license = o[13], this.licenseUrl = o[14], this.preferredFamily = o[15], this.preferredSubfamily = o[17], this.compatibleFull = o[18], this.sampleText = o[19];
}, r;
})(), _D = (function() {
function r() {
return r.__super__.constructor.apply(this, arguments);
}
return di(r, Za), r.prototype.tag = "maxp", r.prototype.parse = function(t) {
return t.pos = this.offset, this.version = t.readInt(), this.numGlyphs = t.readUInt16(), this.maxPoints = t.readUInt16(), this.maxContours = t.readUInt16(), this.maxCompositePoints = t.readUInt16(), this.maxComponentContours = t.readUInt16(), this.maxZones = t.readUInt16(), this.maxTwilightPoints = t.readUInt16(), this.maxStorage = t.readUInt16(), this.maxFunctionDefs = t.readUInt16(), this.maxInstructionDefs = t.readUInt16(), this.maxStackElements = t.readUInt16(), this.maxSizeOfInstructions = t.readUInt16(), this.maxComponentElements = t.readUInt16(), this.maxComponentDepth = t.readUInt16();
}, r;
})(), ND = (function() {
function r() {
return r.__super__.constructor.apply(this, arguments);
}
return di(r, Za), r.prototype.tag = "hmtx", r.prototype.parse = function(t) {
var e, A, n, a, s, i, o;
for (t.pos = this.offset, this.metrics = [], e = 0, i = this.file.hhea.numberOfMetrics; 0 <= i ? e < i : e > i; e = 0 <= i ? ++e : --e) this.metrics.push({ advance: t.readUInt16(), lsb: t.readInt16() });
for (n = this.file.maxp.numGlyphs - this.file.hhea.numberOfMetrics, this.leftSideBearings = (function() {
var l, u;
for (u = [], e = l = 0; 0 <= n ? l < n : l > n; e = 0 <= n ? ++l : --l) u.push(t.readInt16());
return u;
})(), this.widths = (function() {
var l, u, h, g;
for (g = [], l = 0, u = (h = this.metrics).length; l < u; l++) a = h[l], g.push(a.advance);
return g;
}).call(this), A = this.widths[this.widths.length - 1], o = [], e = s = 0; 0 <= n ? s < n : s > n; e = 0 <= n ? ++s : --s) o.push(this.widths.push(A));
return o;
}, r.prototype.forGlyph = function(t) {
return t in this.metrics ? this.metrics[t] : { advance: this.metrics[this.metrics.length - 1].advance, lsb: this.leftSideBearings[t - this.metrics.length] };
}, r;
})(), _5 = [].slice, MD = (function() {
function r() {
return r.__super__.constructor.apply(this, arguments);
}
return di(r, Za), r.prototype.tag = "glyf", r.prototype.parse = function() {
return this.cache = {};
}, r.prototype.glyphFor = function(t) {
var e, A, n, a, s, i, o, l, u, h;
return t in this.cache ? this.cache[t] : (a = this.file.loca, e = this.file.contents, A = a.indexOf(t), (n = a.lengthOf(t)) === 0 ? this.cache[t] = null : (e.pos = this.offset + A, s = (i = new gs(e.read(n))).readShort(), l = i.readShort(), h = i.readShort(), o = i.readShort(), u = i.readShort(), this.cache[t] = s === -1 ? new RD(i, l, h, o, u) : new OD(i, s, l, h, o, u), this.cache[t]));
}, r.prototype.encode = function(t, e, A) {
var n, a, s, i, o;
for (s = [], a = [], i = 0, o = e.length; i < o; i++) n = t[e[i]], a.push(s.length), n && (s = s.concat(n.encode(A)));
return a.push(s.length), { table: s, offsets: a };
}, r;
})(), OD = (function() {
function r(t, e, A, n, a, s) {
this.raw = t, this.numberOfContours = e, this.xMin = A, this.yMin = n, this.xMax = a, this.yMax = s, this.compound = !1;
}
return r.prototype.encode = function() {
return this.raw.data;
}, r;
})(), RD = (function() {
function r(t, e, A, n, a) {
var s, i;
for (this.raw = t, this.xMin = e, this.yMin = A, this.xMax = n, this.yMax = a, this.compound = !0, this.glyphIDs = [], this.glyphOffsets = [], s = this.raw; i = s.readShort(), this.glyphOffsets.push(s.pos), this.glyphIDs.push(s.readUInt16()), 32 & i; ) s.pos += 1 & i ? 4 : 2, 128 & i ? s.pos += 8 : 64 & i ? s.pos += 4 : 8 & i && (s.pos += 2);
}
return r.prototype.encode = function() {
var t, e, A;
for (e = new gs(_5.call(this.raw.data)), t = 0, A = this.glyphIDs.length; t < A; ++t) e.pos = this.glyphOffsets[t];
return e.data;
}, r;
})(), HD = (function() {
function r() {
return r.__super__.constructor.apply(this, arguments);
}
return di(r, Za), r.prototype.tag = "loca", r.prototype.parse = function(t) {
var e, A;
return t.pos = this.offset, e = this.file.head.indexToLocFormat, this.offsets = e === 0 ? (function() {
var n, a;
for (a = [], A = 0, n = this.length; A < n; A += 2) a.push(2 * t.readUInt16());
return a;
}).call(this) : (function() {
var n, a;
for (a = [], A = 0, n = this.length; A < n; A += 4) a.push(t.readUInt32());
return a;
}).call(this);
}, r.prototype.indexOf = function(t) {
return this.offsets[t];
}, r.prototype.lengthOf = function(t) {
return this.offsets[t + 1] - this.offsets[t];
}, r.prototype.encode = function(t, e) {
for (var A = new Uint32Array(this.offsets.length), n = 0, a = 0, s = 0; s < A.length; ++s) if (A[s] = n, a < e.length && e[a] == s) {
++a, A[s] = n;
var i = this.offsets[s], o = this.offsets[s + 1] - i;
o > 0 && (n += o);
}
for (var l = new Array(4 * A.length), u = 0; u < A.length; ++u) l[4 * u + 3] = 255 & A[u], l[4 * u + 2] = (65280 & A[u]) >> 8, l[4 * u + 1] = (16711680 & A[u]) >> 16, l[4 * u] = (4278190080 & A[u]) >> 24;
return l;
}, r;
})(), PD = (function() {
function r(t) {
this.font = t, this.subset = {}, this.unicodes = {}, this.next = 33;
}
return r.prototype.generateCmap = function() {
var t, e, A, n, a;
for (e in n = this.font.cmap.tables[0].codeMap, t = {}, a = this.subset) A = a[e], t[e] = n[A];
return t;
}, r.prototype.glyphsFor = function(t) {
var e, A, n, a, s, i, o;
for (n = {}, s = 0, i = t.length; s < i; s++) n[a = t[s]] = this.font.glyf.glyphFor(a);
for (a in e = [], n) (A = n[a]) != null && A.compound && e.push.apply(e, A.glyphIDs);
if (e.length > 0) for (a in o = this.glyphsFor(e)) A = o[a], n[a] = A;
return n;
}, r.prototype.encode = function(t, e) {
var A, n, a, s, i, o, l, u, h, g, c, p, m, y, w;
for (n in A = I5.encode(this.generateCmap(), "unicode"), s = this.glyphsFor(t), c = { 0: 0 }, w = A.charMap) c[(o = w[n]).old] = o.new;
for (p in g = A.maxGlyphID, s) p in c || (c[p] = g++);
return u = (function(E) {
var C, F;
for (C in F = {}, E) F[E[C]] = C;
return F;
})(c), h = Object.keys(u).sort(function(E, C) {
return E - C;
}), m = (function() {
var E, C, F;
for (F = [], E = 0, C = h.length; E < C; E++) i = h[E], F.push(u[i]);
return F;
})(), a = this.font.glyf.encode(s, m, c), l = this.font.loca.encode(a.offsets, m), y = { cmap: this.font.cmap.raw(), glyf: a.table, loca: l, 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(e) }, this.font.os2.exists && (y["OS/2"] = this.font.os2.raw()), this.font.directory.encode(y);
}, r;
})();
eA.API.PDFObject = (function() {
var r;
function t() {
}
return r = function(e, A) {
return (Array(A + 1).join("0") + e).slice(-A);
}, t.convert = function(e) {
var A, n, a, s;
if (Array.isArray(e)) return "[" + (function() {
var i, o, l;
for (l = [], i = 0, o = e.length; i < o; i++) A = e[i], l.push(t.convert(A));
return l;
})().join(" ") + "]";
if (typeof e == "string") return "/" + e;
if (e != null && e.isString) return "(" + e + ")";
if (e instanceof Date) return "(D:" + r(e.getUTCFullYear(), 4) + r(e.getUTCMonth(), 2) + r(e.getUTCDate(), 2) + r(e.getUTCHours(), 2) + r(e.getUTCMinutes(), 2) + r(e.getUTCSeconds(), 2) + "Z)";
if ({}.toString.call(e) === "[object Object]") {
for (n in a = ["<<"], e) s = e[n], a.push("/" + n + " " + t.convert(s));
return a.push(">>"), a.join(`
`);
}
return "" + e;
}, t;
})();
/*!
* 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 cp = function(r, t) {
return cp = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(e, A) {
e.__proto__ = A;
} || function(e, A) {
for (var n in A) Object.prototype.hasOwnProperty.call(A, n) && (e[n] = A[n]);
}, cp(r, t);
};
function ei(r, t) {
if (typeof t != "function" && t !== null)
throw new TypeError("Class extends value " + String(t) + " is not a constructor or null");
cp(r, t);
function e() {
this.constructor = r;
}
r.prototype = t === null ? Object.create(t) : (e.prototype = t.prototype, new e());
}
var fp = function() {
return fp = Object.assign || function(t) {
for (var e, A = 1, n = arguments.length; A < n; A++) {
e = arguments[A];
for (var a in e) Object.prototype.hasOwnProperty.call(e, a) && (t[a] = e[a]);
}
return t;
}, fp.apply(this, arguments);
};
function Yn(r, t, e, A) {
function n(a) {
return a instanceof e ? a : new e(function(s) {
s(a);
});
}
return new (e || (e = Promise))(function(a, s) {
function i(u) {
try {
l(A.next(u));
} catch (h) {
s(h);
}
}
function o(u) {
try {
l(A.throw(u));
} catch (h) {
s(h);
}
}
function l(u) {
u.done ? a(u.value) : n(u.value).then(i, o);
}
l((A = A.apply(r, [])).next());
});
}
function On(r, t) {
var e = { label: 0, sent: function() {
if (a[0] & 1) throw a[1];
return a[1];
}, trys: [], ops: [] }, A, n, a, s;
return s = { next: i(0), throw: i(1), return: i(2) }, typeof Symbol == "function" && (s[Symbol.iterator] = function() {
return this;
}), s;
function i(l) {
return function(u) {
return o([l, u]);
};
}
function o(l) {
if (A) throw new TypeError("Generator is already executing.");
for (; e; ) try {
if (A = 1, n && (a = l[0] & 2 ? n.return : l[0] ? n.throw || ((a = n.return) && a.call(n), 0) : n.next) && !(a = a.call(n, l[1])).done) return a;
switch (n = 0, a && (l = [l[0] & 2, a.value]), l[0]) {
case 0:
case 1:
a = l;
break;
case 4:
return e.label++, { value: l[1], done: !1 };
case 5:
e.label++, n = l[1], l = [0];
continue;
case 7:
l = e.ops.pop(), e.trys.pop();
continue;
default:
if (a = e.trys, !(a = a.length > 0 && a[a.length - 1]) && (l[0] === 6 || l[0] === 2)) {
e = 0;
continue;
}
if (l[0] === 3 && (!a || l[1] > a[0] && l[1] < a[3])) {
e.label = l[1];
break;
}
if (l[0] === 6 && e.label < a[1]) {
e.label = a[1], a = l;
break;
}
if (a && e.label < a[2]) {
e.label = a[2], e.ops.push(l);
break;
}
a[2] && e.ops.pop(), e.trys.pop();
continue;
}
l = t.call(r, e);
} catch (u) {
l = [6, u], n = 0;
} finally {
A = a = 0;
}
if (l[0] & 5) throw l[1];
return { value: l[0] ? l[1] : void 0, done: !0 };
}
}
function mu(r, t, e) {
if (arguments.length === 2) for (var A = 0, n = t.length, a; A < n; A++)
(a || !(A in t)) && (a || (a = Array.prototype.slice.call(t, 0, A)), a[A] = t[A]);
return r.concat(a || t);
}
var Ni = (
/** @class */
(function() {
function r(t, e, A, n) {
this.left = t, this.top = e, this.width = A, this.height = n;
}
return r.prototype.add = function(t, e, A, n) {
return new r(this.left + t, this.top + e, this.width + A, this.height + n);
}, r.fromClientRect = function(t, e) {
return new r(e.left + t.windowBounds.left, e.top + t.windowBounds.top, e.width, e.height);
}, r.fromDOMRectList = function(t, e) {
var A = Array.from(e).find(function(n) {
return n.width !== 0;
});
return A ? new r(A.left + t.windowBounds.left, A.top + t.windowBounds.top, A.width, A.height) : r.EMPTY;
}, r.EMPTY = new r(0, 0, 0, 0), r;
})()
), Uc = function(r, t) {
return Ni.fromClientRect(r, t.getBoundingClientRect());
}, KD = function(r) {
var t = r.body, e = r.documentElement;
if (!t || !e)
throw new Error("Unable to get document size");
var A = Math.max(Math.max(t.scrollWidth, e.scrollWidth), Math.max(t.offsetWidth, e.offsetWidth), Math.max(t.clientWidth, e.clientWidth)), n = Math.max(Math.max(t.scrollHeight, e.scrollHeight), Math.max(t.offsetHeight, e.offsetHeight), Math.max(t.clientHeight, e.clientHeight));
return new Ni(0, 0, A, n);
}, Tc = function(r) {
for (var t = [], e = 0, A = r.length; e < A; ) {
var n = r.charCodeAt(e++);
if (n >= 55296 && n <= 56319 && e < A) {
var a = r.charCodeAt(e++);
(a & 64512) === 56320 ? t.push(((n & 1023) << 10) + (a & 1023) + 65536) : (t.push(n), e--);
} else
t.push(n);
}
return t;
}, Gr = function() {
for (var r = [], t = 0; t < arguments.length; t++)
r[t] = arguments[t];
if (String.fromCodePoint)
return String.fromCodePoint.apply(String, r);
var e = r.length;
if (!e)
return "";
for (var A = [], n = -1, a = ""; ++n < e; ) {
var s = r[n];
s <= 65535 ? A.push(s) : (s -= 65536, A.push((s >> 10) + 55296, s % 1024 + 56320)), (n + 1 === e || A.length > 16384) && (a += String.fromCharCode.apply(String, A), A.length = 0);
}
return a;
}, Y1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", VD = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var wu = 0; wu < Y1.length; wu++)
VD[Y1.charCodeAt(wu)] = wu;
var $1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", ll = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var Bu = 0; Bu < $1.length; Bu++)
ll[$1.charCodeAt(Bu)] = Bu;
var qD = function(r) {
var t = r.length * 0.75, e = r.length, A, n = 0, a, s, i, o;
r[r.length - 1] === "=" && (t--, r[r.length - 2] === "=" && t--);
var l = typeof ArrayBuffer < "u" && typeof Uint8Array < "u" && typeof Uint8Array.prototype.slice < "u" ? new ArrayBuffer(t) : new Array(t), u = Array.isArray(l) ? l : new Uint8Array(l);
for (A = 0; A < e; A += 4)
a = ll[r.charCodeAt(A)], s = ll[r.charCodeAt(A + 1)], i = ll[r.charCodeAt(A + 2)], o = ll[r.charCodeAt(A + 3)], u[n++] = a << 2 | s >> 4, u[n++] = (s & 15) << 4 | i >> 2, u[n++] = (i & 3) << 6 | o & 63;
return l;
}, jD = function(r) {
for (var t = r.length, e = [], A = 0; A < t; A += 2)
e.push(r[A + 1] << 8 | r[A]);
return e;
}, WD = function(r) {
for (var t = r.length, e = [], A = 0; A < t; A += 4)
e.push(r[A + 3] << 24 | r[A + 2] << 16 | r[A + 1] << 8 | r[A]);
return e;
}, Rs = 5, tv = 11, Kf = 2, GD = tv - Rs, N5 = 65536 >> Rs, YD = 1 << Rs, Vf = YD - 1, $D = 1024 >> Rs, zD = N5 + $D, XD = zD, JD = 32, ZD = XD + JD, ek = 65536 >> tv, tk = 1 << GD, Ak = tk - 1, z1 = function(r, t, e) {
return r.slice ? r.slice(t, e) : new Uint16Array(Array.prototype.slice.call(r, t, e));
}, rk = function(r, t, e) {
return r.slice ? r.slice(t, e) : new Uint32Array(Array.prototype.slice.call(r, t, e));
}, nk = function(r, t) {
var e = qD(r), A = Array.isArray(e) ? WD(e) : new Uint32Array(e), n = Array.isArray(e) ? jD(e) : new Uint16Array(e), a = 24, s = z1(n, a / 2, A[4] / 2), i = A[5] === 2 ? z1(n, (a + A[4]) / 2) : rk(A, Math.ceil((a + A[4]) / 4));
return new ak(A[0], A[1], A[2], A[3], s, i);
}, ak = (
/** @class */
(function() {
function r(t, e, A, n, a, s) {
this.initialValue = t, this.errorValue = e, this.highStart = A, this.highValueIndex = n, this.index = a, this.data = s;
}
return r.prototype.get = function(t) {
var e;
if (t >= 0) {
if (t < 55296 || t > 56319 && t <= 65535)
return e = this.index[t >> Rs], e = (e << Kf) + (t & Vf), this.data[e];
if (t <= 65535)
return e = this.index[N5 + (t - 55296 >> Rs)], e = (e << Kf) + (t & Vf), this.data[e];
if (t < this.highStart)
return e = ZD - ek + (t >> tv), e = this.index[e], e += t >> Rs & Ak, e = this.index[e], e = (e << Kf) + (t & Vf), this.data[e];
if (t <= 1114111)
return this.data[this.highValueIndex];
}
return this.errorValue;
}, r;
})()
), X1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", ik = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var yu = 0; yu < X1.length; yu++)
ik[X1.charCodeAt(yu)] = yu;
var sk = "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==", J1 = 50, ok = 1, M5 = 2, O5 = 3, lk = 4, uk = 5, Z1 = 7, R5 = 8, em = 9, ls = 10, hp = 11, tm = 12, dp = 13, ck = 14, ul = 15, gp = 16, bu = 17, Jo = 18, fk = 19, Am = 20, pp = 21, Zo = 22, qf = 23, co = 24, wa = 25, cl = 26, fl = 27, fo = 28, hk = 29, Is = 30, dk = 31, Cu = 32, Eu = 33, vp = 34, mp = 35, wp = 36, xl = 37, Bp = 38, tc = 39, Ac = 40, jf = 41, H5 = 42, gk = 43, pk = [9001, 65288], P5 = "!", TA = "×", Fu = "÷", yp = nk(sk), xi = [Is, wp], bp = [ok, M5, O5, uk], K5 = [ls, R5], rm = [fl, cl], vk = bp.concat(K5), nm = [Bp, tc, Ac, vp, mp], mk = [ul, dp], wk = function(r, t) {
t === void 0 && (t = "strict");
var e = [], A = [], n = [];
return r.forEach(function(a, s) {
var i = yp.get(a);
if (i > J1 ? (n.push(!0), i -= J1) : n.push(!1), ["normal", "auto", "loose"].indexOf(t) !== -1 && [8208, 8211, 12316, 12448].indexOf(a) !== -1)
return A.push(s), e.push(gp);
if (i === lk || i === hp) {
if (s === 0)
return A.push(s), e.push(Is);
var o = e[s - 1];
return vk.indexOf(o) === -1 ? (A.push(A[s - 1]), e.push(o)) : (A.push(s), e.push(Is));
}
if (A.push(s), i === dk)
return e.push(t === "strict" ? pp : xl);
if (i === H5 || i === hk)
return e.push(Is);
if (i === gk)
return a >= 131072 && a <= 196605 || a >= 196608 && a <= 262141 ? e.push(xl) : e.push(Is);
e.push(i);
}), [A, e, n];
}, Wf = function(r, t, e, A) {
var n = A[e];
if (Array.isArray(r) ? r.indexOf(n) !== -1 : r === n)
for (var a = e; a <= A.length; ) {
a++;
var s = A[a];
if (s === t)
return !0;
if (s !== ls)
break;
}
if (n === ls)
for (var a = e; a > 0; ) {
a--;
var i = A[a];
if (Array.isArray(r) ? r.indexOf(i) !== -1 : r === i)
for (var o = e; o <= A.length; ) {
o++;
var s = A[o];
if (s === t)
return !0;
if (s !== ls)
break;
}
if (i !== ls)
break;
}
return !1;
}, am = function(r, t) {
for (var e = r; e >= 0; ) {
var A = t[e];
if (A === ls)
e--;
else
return A;
}
return 0;
}, Bk = function(r, t, e, A, n) {
if (e[A] === 0)
return TA;
var a = A - 1;
if (Array.isArray(n) && n[a] === !0)
return TA;
var s = a - 1, i = a + 1, o = t[a], l = s >= 0 ? t[s] : 0, u = t[i];
if (o === M5 && u === O5)
return TA;
if (bp.indexOf(o) !== -1)
return P5;
if (bp.indexOf(u) !== -1 || K5.indexOf(u) !== -1)
return TA;
if (am(a, t) === R5)
return Fu;
if (yp.get(r[a]) === hp || (o === Cu || o === Eu) && yp.get(r[i]) === hp || o === Z1 || u === Z1 || o === em || [ls, dp, ul].indexOf(o) === -1 && u === em || [bu, Jo, fk, co, fo].indexOf(u) !== -1 || am(a, t) === Zo || Wf(qf, Zo, a, t) || Wf([bu, Jo], pp, a, t) || Wf(tm, tm, a, t))
return TA;
if (o === ls)
return Fu;
if (o === qf || u === qf)
return TA;
if (u === gp || o === gp)
return Fu;
if ([dp, ul, pp].indexOf(u) !== -1 || o === ck || l === wp && mk.indexOf(o) !== -1 || o === fo && u === wp || u === Am || xi.indexOf(u) !== -1 && o === wa || xi.indexOf(o) !== -1 && u === wa || o === fl && [xl, Cu, Eu].indexOf(u) !== -1 || [xl, Cu, Eu].indexOf(o) !== -1 && u === cl || xi.indexOf(o) !== -1 && rm.indexOf(u) !== -1 || rm.indexOf(o) !== -1 && xi.indexOf(u) !== -1 || // (PR | PO) × ( OP | HY )? NU
[fl, cl].indexOf(o) !== -1 && (u === wa || [Zo, ul].indexOf(u) !== -1 && t[i + 1] === wa) || // ( OP | HY ) × NU
[Zo, ul].indexOf(o) !== -1 && u === wa || // NU × (NU | SY | IS)
o === wa && [wa, fo, co].indexOf(u) !== -1)
return TA;
if ([wa, fo, co, bu, Jo].indexOf(u) !== -1)
for (var h = a; h >= 0; ) {
var g = t[h];
if (g === wa)
return TA;
if ([fo, co].indexOf(g) !== -1)
h--;
else
break;
}
if ([fl, cl].indexOf(u) !== -1)
for (var h = [bu, Jo].indexOf(o) !== -1 ? s : a; h >= 0; ) {
var g = t[h];
if (g === wa)
return TA;
if ([fo, co].indexOf(g) !== -1)
h--;
else
break;
}
if (Bp === o && [Bp, tc, vp, mp].indexOf(u) !== -1 || [tc, vp].indexOf(o) !== -1 && [tc, Ac].indexOf(u) !== -1 || [Ac, mp].indexOf(o) !== -1 && u === Ac || nm.indexOf(o) !== -1 && [Am, cl].indexOf(u) !== -1 || nm.indexOf(u) !== -1 && o === fl || xi.indexOf(o) !== -1 && xi.indexOf(u) !== -1 || o === co && xi.indexOf(u) !== -1 || xi.concat(wa).indexOf(o) !== -1 && u === Zo && pk.indexOf(r[i]) === -1 || xi.concat(wa).indexOf(u) !== -1 && o === Jo)
return TA;
if (o === jf && u === jf) {
for (var c = e[a], p = 1; c > 0 && (c--, t[c] === jf); )
p++;
if (p % 2 !== 0)
return TA;
}
return o === Cu && u === Eu ? TA : Fu;
}, yk = function(r, t) {
t || (t = { lineBreak: "normal", wordBreak: "normal" });
var e = wk(r, t.lineBreak), A = e[0], n = e[1], a = e[2];
(t.wordBreak === "break-all" || t.wordBreak === "break-word") && (n = n.map(function(i) {
return [wa, Is, H5].indexOf(i) !== -1 ? xl : i;
}));
var s = t.wordBreak === "keep-all" ? a.map(function(i, o) {
return i && r[o] >= 19968 && r[o] <= 40959;
}) : void 0;
return [A, n, s];
}, bk = (
/** @class */
(function() {
function r(t, e, A, n) {
this.codePoints = t, this.required = e === P5, this.start = A, this.end = n;
}
return r.prototype.slice = function() {
return Gr.apply(void 0, this.codePoints.slice(this.start, this.end));
}, r;
})()
), Ck = function(r, t) {
var e = Tc(r), A = yk(e, t), n = A[0], a = A[1], s = A[2], i = e.length, o = 0, l = 0;
return {
next: function() {
if (l >= i)
return { done: !0, value: null };
for (var u = TA; l < i && (u = Bk(e, a, n, ++l, s)) === TA; )
;
if (u !== TA || l === i) {
var h = new bk(e, u, o, l);
return o = l, { value: h, done: !1 };
}
return { done: !0, value: null };
}
};
}, Ek = 1, Fk = 2, Ql = 4, im = 8, dc = 10, sm = 47, ml = 92, xk = 9, Sk = 32, xu = 34, el = 61, Uk = 35, Tk = 36, Qk = 37, Su = 39, Uu = 40, tl = 41, Dk = 95, aa = 45, kk = 33, Lk = 60, Ik = 62, _k = 64, Nk = 91, Mk = 93, Ok = 61, Rk = 123, Tu = 63, Hk = 125, om = 124, Pk = 126, Kk = 128, lm = 65533, Gf = 42, Ns = 43, Vk = 44, qk = 58, jk = 59, Sl = 46, Wk = 0, Gk = 8, Yk = 11, $k = 14, zk = 31, Xk = 127, ci = -1, V5 = 48, q5 = 97, j5 = 101, Jk = 102, Zk = 117, eL = 122, W5 = 65, G5 = 69, Y5 = 70, tL = 85, AL = 90, Rn = function(r) {
return r >= V5 && r <= 57;
}, rL = function(r) {
return r >= 55296 && r <= 57343;
}, ho = function(r) {
return Rn(r) || r >= W5 && r <= Y5 || r >= q5 && r <= Jk;
}, nL = function(r) {
return r >= q5 && r <= eL;
}, aL = function(r) {
return r >= W5 && r <= AL;
}, iL = function(r) {
return nL(r) || aL(r);
}, sL = function(r) {
return r >= Kk;
}, Qu = function(r) {
return r === dc || r === xk || r === Sk;
}, gc = function(r) {
return iL(r) || sL(r) || r === Dk;
}, um = function(r) {
return gc(r) || Rn(r) || r === aa;
}, oL = function(r) {
return r >= Wk && r <= Gk || r === Yk || r >= $k && r <= zk || r === Xk;
}, is = function(r, t) {
return r !== ml ? !1 : t !== dc;
}, Du = function(r, t, e) {
return r === aa ? gc(t) || is(t, e) : gc(r) ? !0 : !!(r === ml && is(r, t));
}, Yf = function(r, t, e) {
return r === Ns || r === aa ? Rn(t) ? !0 : t === Sl && Rn(e) : Rn(r === Sl ? t : r);
}, lL = function(r) {
var t = 0, e = 1;
(r[t] === Ns || r[t] === aa) && (r[t] === aa && (e = -1), t++);
for (var A = []; Rn(r[t]); )
A.push(r[t++]);
var n = A.length ? parseInt(Gr.apply(void 0, A), 10) : 0;
r[t] === Sl && t++;
for (var a = []; Rn(r[t]); )
a.push(r[t++]);
var s = a.length, i = s ? parseInt(Gr.apply(void 0, a), 10) : 0;
(r[t] === G5 || r[t] === j5) && t++;
var o = 1;
(r[t] === Ns || r[t] === aa) && (r[t] === aa && (o = -1), t++);
for (var l = []; Rn(r[t]); )
l.push(r[t++]);
var u = l.length ? parseInt(Gr.apply(void 0, l), 10) : 0;
return e * (n + i * Math.pow(10, -s)) * Math.pow(10, o * u);
}, uL = {
type: 2
/* LEFT_PARENTHESIS_TOKEN */
}, cL = {
type: 3
/* RIGHT_PARENTHESIS_TOKEN */
}, fL = {
type: 4
/* COMMA_TOKEN */
}, hL = {
type: 13
/* SUFFIX_MATCH_TOKEN */
}, dL = {
type: 8
/* PREFIX_MATCH_TOKEN */
}, gL = {
type: 21
/* COLUMN_TOKEN */
}, pL = {
type: 9
/* DASH_MATCH_TOKEN */
}, vL = {
type: 10
/* INCLUDE_MATCH_TOKEN */
}, mL = {
type: 11
/* LEFT_CURLY_BRACKET_TOKEN */
}, wL = {
type: 12
/* RIGHT_CURLY_BRACKET_TOKEN */
}, BL = {
type: 14
/* SUBSTRING_MATCH_TOKEN */
}, ku = {
type: 23
/* BAD_URL_TOKEN */
}, yL = {
type: 1
/* BAD_STRING_TOKEN */
}, bL = {
type: 25
/* CDO_TOKEN */
}, CL = {
type: 24
/* CDC_TOKEN */
}, EL = {
type: 26
/* COLON_TOKEN */
}, FL = {
type: 27
/* SEMICOLON_TOKEN */
}, xL = {
type: 28
/* LEFT_SQUARE_BRACKET_TOKEN */
}, SL = {
type: 29
/* RIGHT_SQUARE_BRACKET_TOKEN */
}, UL = {
type: 31
/* WHITESPACE_TOKEN */
}, Cp = {
type: 32
/* EOF_TOKEN */
}, $5 = (
/** @class */
(function() {
function r() {
this._value = [];
}
return r.prototype.write = function(t) {
this._value = this._value.concat(Tc(t));
}, r.prototype.read = function() {
for (var t = [], e = this.consumeToken(); e !== Cp; )
t.push(e), e = this.consumeToken();
return t;
}, r.prototype.consumeToken = function() {
var t = this.consumeCodePoint();
switch (t) {
case xu:
return this.consumeStringToken(xu);
case Uk:
var e = this.peekCodePoint(0), A = this.peekCodePoint(1), n = this.peekCodePoint(2);
if (um(e) || is(A, n)) {
var a = Du(e, A, n) ? Fk : Ek, s = this.consumeName();
return { type: 5, value: s, flags: a };
}
break;
case Tk:
if (this.peekCodePoint(0) === el)
return this.consumeCodePoint(), hL;
break;
case Su:
return this.consumeStringToken(Su);
case Uu:
return uL;
case tl:
return cL;
case Gf:
if (this.peekCodePoint(0) === el)
return this.consumeCodePoint(), BL;
break;
case Ns:
if (Yf(t, this.peekCodePoint(0), this.peekCodePoint(1)))
return this.reconsumeCodePoint(t), this.consumeNumericToken();
break;
case Vk:
return fL;
case aa:
var i = t, o = this.peekCodePoint(0), l = this.peekCodePoint(1);
if (Yf(i, o, l))
return this.reconsumeCodePoint(t), this.consumeNumericToken();
if (Du(i, o, l))
return this.reconsumeCodePoint(t), this.consumeIdentLikeToken();
if (o === aa && l === Ik)
return this.consumeCodePoint(), this.consumeCodePoint(), CL;
break;
case Sl:
if (Yf(t, this.peekCodePoint(0), this.peekCodePoint(1)))
return this.reconsumeCodePoint(t), this.consumeNumericToken();
break;
case sm:
if (this.peekCodePoint(0) === Gf)
for (this.consumeCodePoint(); ; ) {
var u = this.consumeCodePoint();
if (u === Gf && (u = this.consumeCodePoint(), u === sm))
return this.consumeToken();
if (u === ci)
return this.consumeToken();
}
break;
case qk:
return EL;
case jk:
return FL;
case Lk:
if (this.peekCodePoint(0) === kk && this.peekCodePoint(1) === aa && this.peekCodePoint(2) === aa)
return this.consumeCodePoint(), this.consumeCodePoint(), bL;
break;
case _k:
var h = this.peekCodePoint(0), g = this.peekCodePoint(1), c = this.peekCodePoint(2);
if (Du(h, g, c)) {
var s = this.consumeName();
return { type: 7, value: s };
}
break;
case Nk:
return xL;
case ml:
if (is(t, this.peekCodePoint(0)))
return this.reconsumeCodePoint(t), this.consumeIdentLikeToken();
break;
case Mk:
return SL;
case Ok:
if (this.peekCodePoint(0) === el)
return this.consumeCodePoint(), dL;
break;
case Rk:
return mL;
case Hk:
return wL;
case Zk:
case tL:
var p = this.peekCodePoint(0), m = this.peekCodePoint(1);
return p === Ns && (ho(m) || m === Tu) && (this.consumeCodePoint(), this.consumeUnicodeRangeToken()), this.reconsumeCodePoint(t), this.consumeIdentLikeToken();
case om:
if (this.peekCodePoint(0) === el)
return this.consumeCodePoint(), pL;
if (this.peekCodePoint(0) === om)
return this.consumeCodePoint(), gL;
break;
case Pk:
if (this.peekCodePoint(0) === el)
return this.consumeCodePoint(), vL;
break;
case ci:
return Cp;
}
return Qu(t) ? (this.consumeWhiteSpace(), UL) : Rn(t) ? (this.reconsumeCodePoint(t), this.consumeNumericToken()) : gc(t) ? (this.reconsumeCodePoint(t), this.consumeIdentLikeToken()) : { type: 6, value: Gr(t) };
}, r.prototype.consumeCodePoint = function() {
var t = this._value.shift();
return typeof t > "u" ? -1 : t;
}, r.prototype.reconsumeCodePoint = function(t) {
this._value.unshift(t);
}, r.prototype.peekCodePoint = function(t) {
return t >= this._value.length ? -1 : this._value[t];
}, r.prototype.consumeUnicodeRangeToken = function() {
for (var t = [], e = this.consumeCodePoint(); ho(e) && t.length < 6; )
t.push(e), e = this.consumeCodePoint();
for (var A = !1; e === Tu && t.length < 6; )
t.push(e), e = this.consumeCodePoint(), A = !0;
if (A) {
var n = parseInt(Gr.apply(void 0, t.map(function(o) {
return o === Tu ? V5 : o;
})), 16), a = parseInt(Gr.apply(void 0, t.map(function(o) {
return o === Tu ? Y5 : o;
})), 16);
return { type: 30, start: n, end: a };
}
var s = parseInt(Gr.apply(void 0, t), 16);
if (this.peekCodePoint(0) === aa && ho(this.peekCodePoint(1))) {
this.consumeCodePoint(), e = this.consumeCodePoint();
for (var i = []; ho(e) && i.length < 6; )
i.push(e), e = this.consumeCodePoint();
var a = parseInt(Gr.apply(void 0, i), 16);
return { type: 30, start: s, end: a };
} else
return { type: 30, start: s, end: s };
}, r.prototype.consumeIdentLikeToken = function() {
var t = this.consumeName();
return t.toLowerCase() === "url" && this.peekCodePoint(0) === Uu ? (this.consumeCodePoint(), this.consumeUrlToken()) : this.peekCodePoint(0) === Uu ? (this.consumeCodePoint(), { type: 19, value: t }) : { type: 20, value: t };
}, r.prototype.consumeUrlToken = function() {
var t = [];
if (this.consumeWhiteSpace(), this.peekCodePoint(0) === ci)
return { type: 22, value: "" };
var e = this.peekCodePoint(0);
if (e === Su || e === xu) {
var A = this.consumeStringToken(this.consumeCodePoint());
return A.type === 0 && (this.consumeWhiteSpace(), this.peekCodePoint(0) === ci || this.peekCodePoint(0) === tl) ? (this.consumeCodePoint(), { type: 22, value: A.value }) : (this.consumeBadUrlRemnants(), ku);
}
for (; ; ) {
var n = this.consumeCodePoint();
if (n === ci || n === tl)
return { type: 22, value: Gr.apply(void 0, t) };
if (Qu(n))
return this.consumeWhiteSpace(), this.peekCodePoint(0) === ci || this.peekCodePoint(0) === tl ? (this.consumeCodePoint(), { type: 22, value: Gr.apply(void 0, t) }) : (this.consumeBadUrlRemnants(), ku);
if (n === xu || n === Su || n === Uu || oL(n))
return this.consumeBadUrlRemnants(), ku;
if (n === ml)
if (is(n, this.peekCodePoint(0)))
t.push(this.consumeEscapedCodePoint());
else
return this.consumeBadUrlRemnants(), ku;
else
t.push(n);
}
}, r.prototype.consumeWhiteSpace = function() {
for (; Qu(this.peekCodePoint(0)); )
this.consumeCodePoint();
}, r.prototype.consumeBadUrlRemnants = function() {
for (; ; ) {
var t = this.consumeCodePoint();
if (t === tl || t === ci)
return;
is(t, this.peekCodePoint(0)) && this.consumeEscapedCodePoint();
}
}, r.prototype.consumeStringSlice = function(t) {
for (var e = 5e4, A = ""; t > 0; ) {
var n = Math.min(e, t);
A += Gr.apply(void 0, this._value.splice(0, n)), t -= n;
}
return this._value.shift(), A;
}, r.prototype.consumeStringToken = function(t) {
var e = "", A = 0;
do {
var n = this._value[A];
if (n === ci || n === void 0 || n === t)
return e += this.consumeStringSlice(A), { type: 0, value: e };
if (n === dc)
return this._value.splice(0, A), yL;
if (n === ml) {
var a = this._value[A + 1];
a !== ci && a !== void 0 && (a === dc ? (e += this.consumeStringSlice(A), A = -1, this._value.shift()) : is(n, a) && (e += this.consumeStringSlice(A), e += Gr(this.consumeEscapedCodePoint()), A = -1));
}
A++;
} while (!0);
}, r.prototype.consumeNumber = function() {
var t = [], e = Ql, A = this.peekCodePoint(0);
for ((A === Ns || A === aa) && t.push(this.consumeCodePoint()); Rn(this.peekCodePoint(0)); )
t.push(this.consumeCodePoint());
A = this.peekCodePoint(0);
var n = this.peekCodePoint(1);
if (A === Sl && Rn(n))
for (t.push(this.consumeCodePoint(), this.consumeCodePoint()), e = im; Rn(this.peekCodePoint(0)); )
t.push(this.consumeCodePoint());
A = this.peekCodePoint(0), n = this.peekCodePoint(1);
var a = this.peekCodePoint(2);
if ((A === G5 || A === j5) && ((n === Ns || n === aa) && Rn(a) || Rn(n)))
for (t.push(this.consumeCodePoint(), this.consumeCodePoint()), e = im; Rn(this.peekCodePoint(0)); )
t.push(this.consumeCodePoint());
return [lL(t), e];
}, r.prototype.consumeNumericToken = function() {
var t = this.consumeNumber(), e = t[0], A = t[1], n = this.peekCodePoint(0), a = this.peekCodePoint(1), s = this.peekCodePoint(2);
if (Du(n, a, s)) {
var i = this.consumeName();
return { type: 15, number: e, flags: A, unit: i };
}
return n === Qk ? (this.consumeCodePoint(), { type: 16, number: e, flags: A }) : { type: 17, number: e, flags: A };
}, r.prototype.consumeEscapedCodePoint = function() {
var t = this.consumeCodePoint();
if (ho(t)) {
for (var e = Gr(t); ho(this.peekCodePoint(0)) && e.length < 6; )
e += Gr(this.consumeCodePoint());
Qu(this.peekCodePoint(0)) && this.consumeCodePoint();
var A = parseInt(e, 16);
return A === 0 || rL(A) || A > 1114111 ? lm : A;
}
return t === ci ? lm : t;
}, r.prototype.consumeName = function() {
for (var t = ""; ; ) {
var e = this.consumeCodePoint();
if (um(e))
t += Gr(e);
else if (is(e, this.peekCodePoint(0)))
t += Gr(this.consumeEscapedCodePoint());
else
return this.reconsumeCodePoint(e), t;
}
}, r;
})()
), z5 = (
/** @class */
(function() {
function r(t) {
this._tokens = t;
}
return r.create = function(t) {
var e = new $5();
return e.write(t), new r(e.read());
}, r.parseValue = function(t) {
return r.create(t).parseComponentValue();
}, r.parseValues = function(t) {
return r.create(t).parseComponentValues();
}, r.prototype.parseComponentValue = function() {
for (var t = this.consumeToken(); t.type === 31; )
t = this.consumeToken();
if (t.type === 32)
throw new SyntaxError("Error parsing CSS component value, unexpected EOF");
this.reconsumeToken(t);
var e = this.consumeComponentValue();
do
t = this.consumeToken();
while (t.type === 31);
if (t.type === 32)
return e;
throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one");
}, r.prototype.parseComponentValues = function() {
for (var t = []; ; ) {
var e = this.consumeComponentValue();
if (e.type === 32)
return t;
t.push(e), t.push();
}
}, r.prototype.consumeComponentValue = function() {
var t = this.consumeToken();
switch (t.type) {
case 11:
case 28:
case 2:
return this.consumeSimpleBlock(t.type);
case 19:
return this.consumeFunction(t);
}
return t;
}, r.prototype.consumeSimpleBlock = function(t) {
for (var e = { type: t, values: [] }, A = this.consumeToken(); ; ) {
if (A.type === 32 || QL(A, t))
return e;
this.reconsumeToken(A), e.values.push(this.consumeComponentValue()), A = this.consumeToken();
}
}, r.prototype.consumeFunction = function(t) {
for (var e = {
name: t.value,
values: [],
type: 18
/* FUNCTION */
}; ; ) {
var A = this.consumeToken();
if (A.type === 32 || A.type === 3)
return e;
this.reconsumeToken(A), e.values.push(this.consumeComponentValue());
}
}, r.prototype.consumeToken = function() {
var t = this._tokens.shift();
return typeof t > "u" ? Cp : t;
}, r.prototype.reconsumeToken = function(t) {
this._tokens.unshift(t);
}, r;
})()
), Dl = function(r) {
return r.type === 15;
}, Lo = function(r) {
return r.type === 17;
}, sr = function(r) {
return r.type === 20;
}, TL = function(r) {
return r.type === 0;
}, Ep = function(r, t) {
return sr(r) && r.value === t;
}, X5 = function(r) {
return r.type !== 31;
}, Do = function(r) {
return r.type !== 31 && r.type !== 4;
}, gi = function(r) {
var t = [], e = [];
return r.forEach(function(A) {
if (A.type === 4) {
if (e.length === 0)
throw new Error("Error parsing function args, zero tokens for arg");
t.push(e), e = [];
return;
}
A.type !== 31 && e.push(A);
}), e.length && t.push(e), t;
}, QL = function(r, t) {
return t === 11 && r.type === 12 || t === 28 && r.type === 29 ? !0 : t === 2 && r.type === 3;
}, ps = function(r) {
return r.type === 17 || r.type === 15;
}, en = function(r) {
return r.type === 16 || ps(r);
}, J5 = function(r) {
return r.length > 1 ? [r[0], r[1]] : [r[0]];
}, Fn = {
type: 17,
number: 0,
flags: Ql
}, Av = {
type: 16,
number: 50,
flags: Ql
}, us = {
type: 16,
number: 100,
flags: Ql
}, hl = function(r, t, e) {
var A = r[0], n = r[1];
return [dr(A, t), dr(typeof n < "u" ? n : A, e)];
}, dr = function(r, t) {
if (r.type === 16)
return r.number / 100 * t;
if (Dl(r))
switch (r.unit) {
case "rem":
case "em":
return 16 * r.number;
// TODO use correct font-size
case "px":
default:
return r.number;
}
return r.number;
}, Z5 = "deg", eb = "grad", tb = "rad", Ab = "turn", Qc = {
name: "angle",
parse: function(r, t) {
if (t.type === 15)
switch (t.unit) {
case Z5:
return Math.PI * t.number / 180;
case eb:
return Math.PI / 200 * t.number;
case tb:
return t.number;
case Ab:
return Math.PI * 2 * t.number;
}
throw new Error("Unsupported angle type");
}
}, rb = function(r) {
return r.type === 15 && (r.unit === Z5 || r.unit === eb || r.unit === tb || r.unit === Ab);
}, nb = function(r) {
var t = r.filter(sr).map(function(e) {
return e.value;
}).join(" ");
switch (t) {
case "to bottom right":
case "to right bottom":
case "left top":
case "top left":
return [Fn, Fn];
case "to top":
case "bottom":
return La(0);
case "to bottom left":
case "to left bottom":
case "right top":
case "top right":
return [Fn, us];
case "to right":
case "left":
return La(90);
case "to top left":
case "to left top":
case "right bottom":
case "bottom right":
return [us, us];
case "to bottom":
case "top":
return La(180);
case "to top right":
case "to right top":
case "left bottom":
case "bottom left":
return [us, Fn];
case "to left":
case "right":
return La(270);
}
return 0;
}, La = function(r) {
return Math.PI * r / 180;
}, hs = {
name: "color",
parse: function(r, t) {
if (t.type === 18) {
var e = DL[t.name];
if (typeof e > "u")
throw new Error('Attempting to parse an unsupported color function "' + t.name + '"');
return e(r, t.values);
}
if (t.type === 5) {
if (t.value.length === 3) {
var A = t.value.substring(0, 1), n = t.value.substring(1, 2), a = t.value.substring(2, 3);
return cs(parseInt(A + A, 16), parseInt(n + n, 16), parseInt(a + a, 16), 1);
}
if (t.value.length === 4) {
var A = t.value.substring(0, 1), n = t.value.substring(1, 2), a = t.value.substring(2, 3), s = t.value.substring(3, 4);
return cs(parseInt(A + A, 16), parseInt(n + n, 16), parseInt(a + a, 16), parseInt(s + s, 16) / 255);
}
if (t.value.length === 6) {
var A = t.value.substring(0, 2), n = t.value.substring(2, 4), a = t.value.substring(4, 6);
return cs(parseInt(A, 16), parseInt(n, 16), parseInt(a, 16), 1);
}
if (t.value.length === 8) {
var A = t.value.substring(0, 2), n = t.value.substring(2, 4), a = t.value.substring(4, 6), s = t.value.substring(6, 8);
return cs(parseInt(A, 16), parseInt(n, 16), parseInt(a, 16), parseInt(s, 16) / 255);
}
}
if (t.type === 20) {
var i = Ii[t.value.toUpperCase()];
if (typeof i < "u")
return i;
}
return Ii.TRANSPARENT;
}
}, ds = function(r) {
return (255 & r) === 0;
}, fn = function(r) {
var t = 255 & r, e = 255 & r >> 8, A = 255 & r >> 16, n = 255 & r >> 24;
return t < 255 ? "rgba(" + n + "," + A + "," + e + "," + t / 255 + ")" : "rgb(" + n + "," + A + "," + e + ")";
}, cs = function(r, t, e, A) {
return (r << 24 | t << 16 | e << 8 | Math.round(A * 255) << 0) >>> 0;
}, cm = function(r, t) {
if (r.type === 17)
return r.number;
if (r.type === 16) {
var e = t === 3 ? 1 : 255;
return t === 3 ? r.number / 100 * e : Math.round(r.number / 100 * e);
}
return 0;
}, fm = function(r, t) {
var e = t.filter(Do);
if (e.length === 3) {
var A = e.map(cm), n = A[0], a = A[1], s = A[2];
return cs(n, a, s, 1);
}
if (e.length === 4) {
var i = e.map(cm), n = i[0], a = i[1], s = i[2], o = i[3];
return cs(n, a, s, o);
}
return 0;
};
function $f(r, t, e) {
return e < 0 && (e += 1), e >= 1 && (e -= 1), e < 1 / 6 ? (t - r) * e * 6 + r : e < 1 / 2 ? t : e < 2 / 3 ? (t - r) * 6 * (2 / 3 - e) + r : r;
}
var hm = function(r, t) {
var e = t.filter(Do), A = e[0], n = e[1], a = e[2], s = e[3], i = (A.type === 17 ? La(A.number) : Qc.parse(r, A)) / (Math.PI * 2), o = en(n) ? n.number / 100 : 0, l = en(a) ? a.number / 100 : 0, u = typeof s < "u" && en(s) ? dr(s, 1) : 1;
if (o === 0)
return cs(l * 255, l * 255, l * 255, 1);
var h = l <= 0.5 ? l * (o + 1) : l + o - l * o, g = l * 2 - h, c = $f(g, h, i + 1 / 3), p = $f(g, h, i), m = $f(g, h, i - 1 / 3);
return cs(c * 255, p * 255, m * 255, u);
}, DL = {
hsl: hm,
hsla: hm,
rgb: fm,
rgba: fm
}, wl = function(r, t) {
return hs.parse(r, z5.create(t).parseComponentValue());
}, Ii = {
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
}, kL = {
name: "background-clip",
initialValue: "border-box",
prefix: !1,
type: 1,
parse: function(r, t) {
return t.map(function(e) {
if (sr(e))
switch (e.value) {
case "padding-box":
return 1;
case "content-box":
return 2;
}
return 0;
});
}
}, LL = {
name: "background-color",
initialValue: "transparent",
prefix: !1,
type: 3,
format: "color"
}, Dc = function(r, t) {
var e = hs.parse(r, t[0]), A = t[1];
return A && en(A) ? { color: e, stop: A } : { color: e, stop: null };
}, dm = function(r, t) {
var e = r[0], A = r[r.length - 1];
e.stop === null && (e.stop = Fn), A.stop === null && (A.stop = us);
for (var n = [], a = 0, s = 0; s < r.length; s++) {
var i = r[s].stop;
if (i !== null) {
var o = dr(i, t);
o > a ? n.push(o) : n.push(a), a = o;
} else
n.push(null);
}
for (var l = null, s = 0; s < n.length; s++) {
var u = n[s];
if (u === null)
l === null && (l = s);
else if (l !== null) {
for (var h = s - l, g = n[l - 1], c = (u - g) / (h + 1), p = 1; p <= h; p++)
n[l + p - 1] = c * p;
l = null;
}
}
return r.map(function(m, y) {
var w = m.color;
return { color: w, stop: Math.max(Math.min(1, n[y] / t), 0) };
});
}, IL = function(r, t, e) {
var A = t / 2, n = e / 2, a = dr(r[0], t) - A, s = n - dr(r[1], e);
return (Math.atan2(s, a) + Math.PI * 2) % (Math.PI * 2);
}, _L = function(r, t, e) {
var A = typeof r == "number" ? r : IL(r, t, e), n = Math.abs(t * Math.sin(A)) + Math.abs(e * Math.cos(A)), a = t / 2, s = e / 2, i = n / 2, o = Math.sin(A - Math.PI / 2) * i, l = Math.cos(A - Math.PI / 2) * i;
return [n, a - l, a + l, s - o, s + o];
}, Ya = function(r, t) {
return Math.sqrt(r * r + t * t);
}, gm = function(r, t, e, A, n) {
var a = [
[0, 0],
[0, t],
[r, 0],
[r, t]
];
return a.reduce(function(s, i) {
var o = i[0], l = i[1], u = Ya(e - o, A - l);
return (n ? u < s.optimumDistance : u > s.optimumDistance) ? {
optimumCorner: i,
optimumDistance: u
} : s;
}, {
optimumDistance: n ? 1 / 0 : -1 / 0,
optimumCorner: null
}).optimumCorner;
}, NL = function(r, t, e, A, n) {
var a = 0, s = 0;
switch (r.size) {
case 0:
r.shape === 0 ? a = s = Math.min(Math.abs(t), Math.abs(t - A), Math.abs(e), Math.abs(e - n)) : r.shape === 1 && (a = Math.min(Math.abs(t), Math.abs(t - A)), s = Math.min(Math.abs(e), Math.abs(e - n)));
break;
case 2:
if (r.shape === 0)
a = s = Math.min(Ya(t, e), Ya(t, e - n), Ya(t - A, e), Ya(t - A, e - n));
else if (r.shape === 1) {
var i = Math.min(Math.abs(e), Math.abs(e - n)) / Math.min(Math.abs(t), Math.abs(t - A)), o = gm(A, n, t, e, !0), l = o[0], u = o[1];
a = Ya(l - t, (u - e) / i), s = i * a;
}
break;
case 1:
r.shape === 0 ? a = s = Math.max(Math.abs(t), Math.abs(t - A), Math.abs(e), Math.abs(e - n)) : r.shape === 1 && (a = Math.max(Math.abs(t), Math.abs(t - A)), s = Math.max(Math.abs(e), Math.abs(e - n)));
break;
case 3:
if (r.shape === 0)
a = s = Math.max(Ya(t, e), Ya(t, e - n), Ya(t - A, e), Ya(t - A, e - n));
else if (r.shape === 1) {
var i = Math.max(Math.abs(e), Math.abs(e - n)) / Math.max(Math.abs(t), Math.abs(t - A)), h = gm(A, n, t, e, !1), l = h[0], u = h[1];
a = Ya(l - t, (u - e) / i), s = i * a;
}
break;
}
return Array.isArray(r.size) && (a = dr(r.size[0], A), s = r.size.length === 2 ? dr(r.size[1], n) : a), [a, s];
}, ML = function(r, t) {
var e = La(180), A = [];
return gi(t).forEach(function(n, a) {
if (a === 0) {
var s = n[0];
if (s.type === 20 && s.value === "to") {
e = nb(n);
return;
} else if (rb(s)) {
e = Qc.parse(r, s);
return;
}
}
var i = Dc(r, n);
A.push(i);
}), {
angle: e,
stops: A,
type: 1
/* LINEAR_GRADIENT */
};
}, Lu = function(r, t) {
var e = La(180), A = [];
return gi(t).forEach(function(n, a) {
if (a === 0) {
var s = n[0];
if (s.type === 20 && ["top", "left", "right", "bottom"].indexOf(s.value) !== -1) {
e = nb(n);
return;
} else if (rb(s)) {
e = (Qc.parse(r, s) + La(270)) % La(360);
return;
}
}
var i = Dc(r, n);
A.push(i);
}), {
angle: e,
stops: A,
type: 1
/* LINEAR_GRADIENT */
};
}, OL = function(r, t) {
var e = La(180), A = [], n = 1, a = 0, s = 3, i = [];
return gi(t).forEach(function(o, l) {
var u = o[0];
if (l === 0) {
if (sr(u) && u.value === "linear") {
n = 1;
return;
} else if (sr(u) && u.value === "radial") {
n = 2;
return;
}
}
if (u.type === 18) {
if (u.name === "from") {
var h = hs.parse(r, u.values[0]);
A.push({ stop: Fn, color: h });
} else if (u.name === "to") {
var h = hs.parse(r, u.values[0]);
A.push({ stop: us, color: h });
} else if (u.name === "color-stop") {
var g = u.values.filter(Do);
if (g.length === 2) {
var h = hs.parse(r, g[1]), c = g[0];
Lo(c) && A.push({
stop: { type: 16, number: c.number * 100, flags: c.flags },
color: h
});
}
}
}
}), n === 1 ? {
angle: (e + La(180)) % La(360),
stops: A,
type: n
} : { size: s, shape: a, stops: A, position: i, type: n };
}, ab = "closest-side", ib = "farthest-side", sb = "closest-corner", ob = "farthest-corner", lb = "circle", ub = "ellipse", cb = "cover", fb = "contain", RL = function(r, t) {
var e = 0, A = 3, n = [], a = [];
return gi(t).forEach(function(s, i) {
var o = !0;
if (i === 0) {
var l = !1;
o = s.reduce(function(h, g) {
if (l)
if (sr(g))
switch (g.value) {
case "center":
return a.push(Av), h;
case "top":
case "left":
return a.push(Fn), h;
case "right":
case "bottom":
return a.push(us), h;
}
else (en(g) || ps(g)) && a.push(g);
else if (sr(g))
switch (g.value) {
case lb:
return e = 0, !1;
case ub:
return e = 1, !1;
case "at":
return l = !0, !1;
case ab:
return A = 0, !1;
case cb:
case ib:
return A = 1, !1;
case fb:
case sb:
return A = 2, !1;
case ob:
return A = 3, !1;
}
else if (ps(g) || en(g))
return Array.isArray(A) || (A = []), A.push(g), !1;
return h;
}, o);
}
if (o) {
var u = Dc(r, s);
n.push(u);
}
}), {
size: A,
shape: e,
stops: n,
position: a,
type: 2
/* RADIAL_GRADIENT */
};
}, Iu = function(r, t) {
var e = 0, A = 3, n = [], a = [];
return gi(t).forEach(function(s, i) {
var o = !0;
if (i === 0 ? o = s.reduce(function(u, h) {
if (sr(h))
switch (h.value) {
case "center":
return a.push(Av), !1;
case "top":
case "left":
return a.push(Fn), !1;
case "right":
case "bottom":
return a.push(us), !1;
}
else if (en(h) || ps(h))
return a.push(h), !1;
return u;
}, o) : i === 1 && (o = s.reduce(function(u, h) {
if (sr(h))
switch (h.value) {
case lb:
return e = 0, !1;
case ub:
return e = 1, !1;
case fb:
case ab:
return A = 0, !1;
case ib:
return A = 1, !1;
case sb:
return A = 2, !1;
case cb:
case ob:
return A = 3, !1;
}
else if (ps(h) || en(h))
return Array.isArray(A) || (A = []), A.push(h), !1;
return u;
}, o)), o) {
var l = Dc(r, s);
n.push(l);
}
}), {
size: A,
shape: e,
stops: n,
position: a,
type: 2
/* RADIAL_GRADIENT */
};
}, HL = function(r) {
return r.type === 1;
}, PL = function(r) {
return r.type === 2;
}, rv = {
name: "image",
parse: function(r, t) {
if (t.type === 22) {
var e = {
url: t.value,
type: 0
/* URL */
};
return r.cache.addImage(t.value), e;
}
if (t.type === 18) {
var A = hb[t.name];
if (typeof A > "u")
throw new Error('Attempting to parse an unsupported image function "' + t.name + '"');
return A(r, t.values);
}
throw new Error("Unsupported image type " + t.type);
}
};
function KL(r) {
return !(r.type === 20 && r.value === "none") && (r.type !== 18 || !!hb[r.name]);
}
var hb = {
"linear-gradient": ML,
"-moz-linear-gradient": Lu,
"-ms-linear-gradient": Lu,
"-o-linear-gradient": Lu,
"-webkit-linear-gradient": Lu,
"radial-gradient": RL,
"-moz-radial-gradient": Iu,
"-ms-radial-gradient": Iu,
"-o-radial-gradient": Iu,
"-webkit-radial-gradient": Iu,
"-webkit-gradient": OL
}, VL = {
name: "background-image",
initialValue: "none",
type: 1,
prefix: !1,
parse: function(r, t) {
if (t.length === 0)
return [];
var e = t[0];
return e.type === 20 && e.value === "none" ? [] : t.filter(function(A) {
return Do(A) && KL(A);
}).map(function(A) {
return rv.parse(r, A);
});
}
}, qL = {
name: "background-origin",
initialValue: "border-box",
prefix: !1,
type: 1,
parse: function(r, t) {
return t.map(function(e) {
if (sr(e))
switch (e.value) {
case "padding-box":
return 1;
case "content-box":
return 2;
}
return 0;
});
}
}, jL = {
name: "background-position",
initialValue: "0% 0%",
type: 1,
prefix: !1,
parse: function(r, t) {
return gi(t).map(function(e) {
return e.filter(en);
}).map(J5);
}
}, WL = {
name: "background-repeat",
initialValue: "repeat",
prefix: !1,
type: 1,
parse: function(r, t) {
return gi(t).map(function(e) {
return e.filter(sr).map(function(A) {
return A.value;
}).join(" ");
}).map(GL);
}
}, GL = function(r) {
switch (r) {
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;
}
}, Uo;
(function(r) {
r.AUTO = "auto", r.CONTAIN = "contain", r.COVER = "cover";
})(Uo || (Uo = {}));
var YL = {
name: "background-size",
initialValue: "0",
prefix: !1,
type: 1,
parse: function(r, t) {
return gi(t).map(function(e) {
return e.filter($L);
});
}
}, $L = function(r) {
return sr(r) || en(r);
}, kc = function(r) {
return {
name: "border-" + r + "-color",
initialValue: "transparent",
prefix: !1,
type: 3,
format: "color"
};
}, zL = kc("top"), XL = kc("right"), JL = kc("bottom"), ZL = kc("left"), Lc = function(r) {
return {
name: "border-radius-" + r,
initialValue: "0 0",
prefix: !1,
type: 1,
parse: function(t, e) {
return J5(e.filter(en));
}
};
}, eI = Lc("top-left"), tI = Lc("top-right"), AI = Lc("bottom-right"), rI = Lc("bottom-left"), Ic = function(r) {
return {
name: "border-" + r + "-style",
initialValue: "solid",
prefix: !1,
type: 2,
parse: function(t, e) {
switch (e) {
case "none":
return 0;
case "dashed":
return 2;
case "dotted":
return 3;
case "double":
return 4;
}
return 1;
}
};
}, nI = Ic("top"), aI = Ic("right"), iI = Ic("bottom"), sI = Ic("left"), _c = function(r) {
return {
name: "border-" + r + "-width",
initialValue: "0",
type: 0,
prefix: !1,
parse: function(t, e) {
return Dl(e) ? e.number : 0;
}
};
}, oI = _c("top"), lI = _c("right"), uI = _c("bottom"), cI = _c("left"), fI = {
name: "color",
initialValue: "transparent",
prefix: !1,
type: 3,
format: "color"
}, hI = {
name: "direction",
initialValue: "ltr",
prefix: !1,
type: 2,
parse: function(r, t) {
switch (t) {
case "rtl":
return 1;
case "ltr":
default:
return 0;
}
}
}, dI = {
name: "display",
initialValue: "inline-block",
prefix: !1,
type: 1,
parse: function(r, t) {
return t.filter(sr).reduce(
function(e, A) {
return e | gI(A.value);
},
0
/* NONE */
);
}
}, gI = function(r) {
switch (r) {
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;
}, pI = {
name: "float",
initialValue: "none",
prefix: !1,
type: 2,
parse: function(r, t) {
switch (t) {
case "left":
return 1;
case "right":
return 2;
case "inline-start":
return 3;
case "inline-end":
return 4;
}
return 0;
}
}, vI = {
name: "letter-spacing",
initialValue: "0",
prefix: !1,
type: 0,
parse: function(r, t) {
return t.type === 20 && t.value === "normal" ? 0 : t.type === 17 || t.type === 15 ? t.number : 0;
}
}, pc;
(function(r) {
r.NORMAL = "normal", r.STRICT = "strict";
})(pc || (pc = {}));
var mI = {
name: "line-break",
initialValue: "normal",
prefix: !1,
type: 2,
parse: function(r, t) {
switch (t) {
case "strict":
return pc.STRICT;
case "normal":
default:
return pc.NORMAL;
}
}
}, wI = {
name: "line-height",
initialValue: "normal",
prefix: !1,
type: 4
/* TOKEN_VALUE */
}, pm = function(r, t) {
return sr(r) && r.value === "normal" ? 1.2 * t : r.type === 17 ? t * r.number : en(r) ? dr(r, t) : t;
}, BI = {
name: "list-style-image",
initialValue: "none",
type: 0,
prefix: !1,
parse: function(r, t) {
return t.type === 20 && t.value === "none" ? null : rv.parse(r, t);
}
}, yI = {
name: "list-style-position",
initialValue: "outside",
prefix: !1,
type: 2,
parse: function(r, t) {
switch (t) {
case "inside":
return 0;
case "outside":
default:
return 1;
}
}
}, Fp = {
name: "list-style-type",
initialValue: "none",
prefix: !1,
type: 2,
parse: function(r, t) {
switch (t) {
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;
}
}
}, Nc = function(r) {
return {
name: "margin-" + r,
initialValue: "0",
prefix: !1,
type: 4
/* TOKEN_VALUE */
};
}, bI = Nc("top"), CI = Nc("right"), EI = Nc("bottom"), FI = Nc("left"), xI = {
name: "overflow",
initialValue: "visible",
prefix: !1,
type: 1,
parse: function(r, t) {
return t.filter(sr).map(function(e) {
switch (e.value) {
case "hidden":
return 1;
case "scroll":
return 2;
case "clip":
return 3;
case "auto":
return 4;
case "visible":
default:
return 0;
}
});
}
}, SI = {
name: "overflow-wrap",
initialValue: "normal",
prefix: !1,
type: 2,
parse: function(r, t) {
switch (t) {
case "break-word":
return "break-word";
case "normal":
default:
return "normal";
}
}
}, Mc = function(r) {
return {
name: "padding-" + r,
initialValue: "0",
prefix: !1,
type: 3,
format: "length-percentage"
};
}, UI = Mc("top"), TI = Mc("right"), QI = Mc("bottom"), DI = Mc("left"), kI = {
name: "text-align",
initialValue: "left",
prefix: !1,
type: 2,
parse: function(r, t) {
switch (t) {
case "right":
return 2;
case "center":
case "justify":
return 1;
case "left":
default:
return 0;
}
}
}, LI = {
name: "position",
initialValue: "static",
prefix: !1,
type: 2,
parse: function(r, t) {
switch (t) {
case "relative":
return 1;
case "absolute":
return 2;
case "fixed":
return 3;
case "sticky":
return 4;
}
return 0;
}
}, II = {
name: "text-shadow",
initialValue: "none",
type: 1,
prefix: !1,
parse: function(r, t) {
return t.length === 1 && Ep(t[0], "none") ? [] : gi(t).map(function(e) {
for (var A = {
color: Ii.TRANSPARENT,
offsetX: Fn,
offsetY: Fn,
blur: Fn
}, n = 0, a = 0; a < e.length; a++) {
var s = e[a];
ps(s) ? (n === 0 ? A.offsetX = s : n === 1 ? A.offsetY = s : A.blur = s, n++) : A.color = hs.parse(r, s);
}
return A;
});
}
}, _I = {
name: "text-transform",
initialValue: "none",
prefix: !1,
type: 2,
parse: function(r, t) {
switch (t) {
case "uppercase":
return 2;
case "lowercase":
return 1;
case "capitalize":
return 3;
}
return 0;
}
}, NI = {
name: "transform",
initialValue: "none",
prefix: !0,
type: 0,
parse: function(r, t) {
if (t.type === 20 && t.value === "none")
return null;
if (t.type === 18) {
var e = RI[t.name];
if (typeof e > "u")
throw new Error('Attempting to parse an unsupported transform function "' + t.name + '"');
return e(t.values);
}
return null;
}
}, MI = function(r) {
var t = r.filter(function(e) {
return e.type === 17;
}).map(function(e) {
return e.number;
});
return t.length === 6 ? t : null;
}, OI = function(r) {
var t = r.filter(function(o) {
return o.type === 17;
}).map(function(o) {
return o.number;
}), e = t[0], A = t[1];
t[2], t[3];
var n = t[4], a = t[5];
t[6], t[7], t[8], t[9], t[10], t[11];
var s = t[12], i = t[13];
return t[14], t[15], t.length === 16 ? [e, A, n, a, s, i] : null;
}, RI = {
matrix: MI,
matrix3d: OI
}, vm = {
type: 16,
number: 50,
flags: Ql
}, HI = [vm, vm], PI = {
name: "transform-origin",
initialValue: "50% 50%",
prefix: !0,
type: 1,
parse: function(r, t) {
var e = t.filter(en);
return e.length !== 2 ? HI : [e[0], e[1]];
}
}, KI = {
name: "visible",
initialValue: "none",
prefix: !1,
type: 2,
parse: function(r, t) {
switch (t) {
case "hidden":
return 1;
case "collapse":
return 2;
case "visible":
default:
return 0;
}
}
}, Bl;
(function(r) {
r.NORMAL = "normal", r.BREAK_ALL = "break-all", r.KEEP_ALL = "keep-all";
})(Bl || (Bl = {}));
var VI = {
name: "word-break",
initialValue: "normal",
prefix: !1,
type: 2,
parse: function(r, t) {
switch (t) {
case "break-all":
return Bl.BREAK_ALL;
case "keep-all":
return Bl.KEEP_ALL;
case "normal":
default:
return Bl.NORMAL;
}
}
}, qI = {
name: "z-index",
initialValue: "auto",
prefix: !1,
type: 0,
parse: function(r, t) {
if (t.type === 20)
return { auto: !0, order: 0 };
if (Lo(t))
return { auto: !1, order: t.number };
throw new Error("Invalid z-index number parsed");
}
}, db = {
name: "time",
parse: function(r, t) {
if (t.type === 15)
switch (t.unit.toLowerCase()) {
case "s":
return 1e3 * t.number;
case "ms":
return t.number;
}
throw new Error("Unsupported time type");
}
}, jI = {
name: "opacity",
initialValue: "1",
type: 0,
prefix: !1,
parse: function(r, t) {
return Lo(t) ? t.number : 1;
}
}, WI = {
name: "text-decoration-color",
initialValue: "transparent",
prefix: !1,
type: 3,
format: "color"
}, GI = {
name: "text-decoration-line",
initialValue: "none",
prefix: !1,
type: 1,
parse: function(r, t) {
return t.filter(sr).map(function(e) {
switch (e.value) {
case "underline":
return 1;
case "overline":
return 2;
case "line-through":
return 3;
case "none":
return 4;
}
return 0;
}).filter(function(e) {
return e !== 0;
});
}
}, YI = {
name: "font-family",
initialValue: "",
prefix: !1,
type: 1,
parse: function(r, t) {
var e = [], A = [];
return t.forEach(function(n) {
switch (n.type) {
case 20:
case 0:
e.push(n.value);
break;
case 17:
e.push(n.number.toString());
break;
case 4:
A.push(e.join(" ")), e.length = 0;
break;
}
}), e.length && A.push(e.join(" ")), A.map(function(n) {
return n.indexOf(" ") === -1 ? n : "'" + n + "'";
});
}
}, $I = {
name: "font-size",
initialValue: "0",
prefix: !1,
type: 3,
format: "length"
}, zI = {
name: "font-weight",
initialValue: "normal",
type: 0,
prefix: !1,
parse: function(r, t) {
if (Lo(t))
return t.number;
if (sr(t))
switch (t.value) {
case "bold":
return 700;
case "normal":
default:
return 400;
}
return 400;
}
}, XI = {
name: "font-variant",
initialValue: "none",
type: 1,
prefix: !1,
parse: function(r, t) {
return t.filter(sr).map(function(e) {
return e.value;
});
}
}, JI = {
name: "font-style",
initialValue: "normal",
prefix: !1,
type: 2,
parse: function(r, t) {
switch (t) {
case "oblique":
return "oblique";
case "italic":
return "italic";
case "normal":
default:
return "normal";
}
}
}, on = function(r, t) {
return (r & t) !== 0;
}, ZI = {
name: "content",
initialValue: "none",
type: 1,
prefix: !1,
parse: function(r, t) {
if (t.length === 0)
return [];
var e = t[0];
return e.type === 20 && e.value === "none" ? [] : t;
}
}, e_ = {
name: "counter-increment",
initialValue: "none",
prefix: !0,
type: 1,
parse: function(r, t) {
if (t.length === 0)
return null;
var e = t[0];
if (e.type === 20 && e.value === "none")
return null;
for (var A = [], n = t.filter(X5), a = 0; a < n.length; a++) {
var s = n[a], i = n[a + 1];
if (s.type === 20) {
var o = i && Lo(i) ? i.number : 1;
A.push({ counter: s.value, increment: o });
}
}
return A;
}
}, t_ = {
name: "counter-reset",
initialValue: "none",
prefix: !0,
type: 1,
parse: function(r, t) {
if (t.length === 0)
return [];
for (var e = [], A = t.filter(X5), n = 0; n < A.length; n++) {
var a = A[n], s = A[n + 1];
if (sr(a) && a.value !== "none") {
var i = s && Lo(s) ? s.number : 0;
e.push({ counter: a.value, reset: i });
}
}
return e;
}
}, A_ = {
name: "duration",
initialValue: "0s",
prefix: !1,
type: 1,
parse: function(r, t) {
return t.filter(Dl).map(function(e) {
return db.parse(r, e);
});
}
}, r_ = {
name: "quotes",
initialValue: "none",
prefix: !0,
type: 1,
parse: function(r, t) {
if (t.length === 0)
return null;
var e = t[0];
if (e.type === 20 && e.value === "none")
return null;
var A = [], n = t.filter(TL);
if (n.length % 2 !== 0)
return null;
for (var a = 0; a < n.length; a += 2) {
var s = n[a].value, i = n[a + 1].value;
A.push({ open: s, close: i });
}
return A;
}
}, mm = function(r, t, e) {
if (!r)
return "";
var A = r[Math.min(t, r.length - 1)];
return A ? e ? A.open : A.close : "";
}, n_ = {
name: "box-shadow",
initialValue: "none",
type: 1,
prefix: !1,
parse: function(r, t) {
return t.length === 1 && Ep(t[0], "none") ? [] : gi(t).map(function(e) {
for (var A = {
color: 255,
offsetX: Fn,
offsetY: Fn,
blur: Fn,
spread: Fn,
inset: !1
}, n = 0, a = 0; a < e.length; a++) {
var s = e[a];
Ep(s, "inset") ? A.inset = !0 : ps(s) ? (n === 0 ? A.offsetX = s : n === 1 ? A.offsetY = s : n === 2 ? A.blur = s : A.spread = s, n++) : A.color = hs.parse(r, s);
}
return A;
});
}
}, a_ = {
name: "paint-order",
initialValue: "normal",
prefix: !1,
type: 1,
parse: function(r, t) {
var e = [
0,
1,
2
/* MARKERS */
], A = [];
return t.filter(sr).forEach(function(n) {
switch (n.value) {
case "stroke":
A.push(
1
/* STROKE */
);
break;
case "fill":
A.push(
0
/* FILL */
);
break;
case "markers":
A.push(
2
/* MARKERS */
);
break;
}
}), e.forEach(function(n) {
A.indexOf(n) === -1 && A.push(n);
}), A;
}
}, i_ = {
name: "-webkit-text-stroke-color",
initialValue: "currentcolor",
prefix: !1,
type: 3,
format: "color"
}, s_ = {
name: "-webkit-text-stroke-width",
initialValue: "0",
type: 0,
prefix: !1,
parse: function(r, t) {
return Dl(t) ? t.number : 0;
}
}, o_ = (
/** @class */
(function() {
function r(t, e) {
var A, n;
this.animationDuration = Rt(t, A_, e.animationDuration), this.backgroundClip = Rt(t, kL, e.backgroundClip), this.backgroundColor = Rt(t, LL, e.backgroundColor), this.backgroundImage = Rt(t, VL, e.backgroundImage), this.backgroundOrigin = Rt(t, qL, e.backgroundOrigin), this.backgroundPosition = Rt(t, jL, e.backgroundPosition), this.backgroundRepeat = Rt(t, WL, e.backgroundRepeat), this.backgroundSize = Rt(t, YL, e.backgroundSize), this.borderTopColor = Rt(t, zL, e.borderTopColor), this.borderRightColor = Rt(t, XL, e.borderRightColor), this.borderBottomColor = Rt(t, JL, e.borderBottomColor), this.borderLeftColor = Rt(t, ZL, e.borderLeftColor), this.borderTopLeftRadius = Rt(t, eI, e.borderTopLeftRadius), this.borderTopRightRadius = Rt(t, tI, e.borderTopRightRadius), this.borderBottomRightRadius = Rt(t, AI, e.borderBottomRightRadius), this.borderBottomLeftRadius = Rt(t, rI, e.borderBottomLeftRadius), this.borderTopStyle = Rt(t, nI, e.borderTopStyle), this.borderRightStyle = Rt(t, aI, e.borderRightStyle), this.borderBottomStyle = Rt(t, iI, e.borderBottomStyle), this.borderLeftStyle = Rt(t, sI, e.borderLeftStyle), this.borderTopWidth = Rt(t, oI, e.borderTopWidth), this.borderRightWidth = Rt(t, lI, e.borderRightWidth), this.borderBottomWidth = Rt(t, uI, e.borderBottomWidth), this.borderLeftWidth = Rt(t, cI, e.borderLeftWidth), this.boxShadow = Rt(t, n_, e.boxShadow), this.color = Rt(t, fI, e.color), this.direction = Rt(t, hI, e.direction), this.display = Rt(t, dI, e.display), this.float = Rt(t, pI, e.cssFloat), this.fontFamily = Rt(t, YI, e.fontFamily), this.fontSize = Rt(t, $I, e.fontSize), this.fontStyle = Rt(t, JI, e.fontStyle), this.fontVariant = Rt(t, XI, e.fontVariant), this.fontWeight = Rt(t, zI, e.fontWeight), this.letterSpacing = Rt(t, vI, e.letterSpacing), this.lineBreak = Rt(t, mI, e.lineBreak), this.lineHeight = Rt(t, wI, e.lineHeight), this.listStyleImage = Rt(t, BI, e.listStyleImage), this.listStylePosition = Rt(t, yI, e.listStylePosition), this.listStyleType = Rt(t, Fp, e.listStyleType), this.marginTop = Rt(t, bI, e.marginTop), this.marginRight = Rt(t, CI, e.marginRight), this.marginBottom = Rt(t, EI, e.marginBottom), this.marginLeft = Rt(t, FI, e.marginLeft), this.opacity = Rt(t, jI, e.opacity);
var a = Rt(t, xI, e.overflow);
this.overflowX = a[0], this.overflowY = a[a.length > 1 ? 1 : 0], this.overflowWrap = Rt(t, SI, e.overflowWrap), this.paddingTop = Rt(t, UI, e.paddingTop), this.paddingRight = Rt(t, TI, e.paddingRight), this.paddingBottom = Rt(t, QI, e.paddingBottom), this.paddingLeft = Rt(t, DI, e.paddingLeft), this.paintOrder = Rt(t, a_, e.paintOrder), this.position = Rt(t, LI, e.position), this.textAlign = Rt(t, kI, e.textAlign), this.textDecorationColor = Rt(t, WI, (A = e.textDecorationColor) !== null && A !== void 0 ? A : e.color), this.textDecorationLine = Rt(t, GI, (n = e.textDecorationLine) !== null && n !== void 0 ? n : e.textDecoration), this.textShadow = Rt(t, II, e.textShadow), this.textTransform = Rt(t, _I, e.textTransform), this.transform = Rt(t, NI, e.transform), this.transformOrigin = Rt(t, PI, e.transformOrigin), this.visibility = Rt(t, KI, e.visibility), this.webkitTextStrokeColor = Rt(t, i_, e.webkitTextStrokeColor), this.webkitTextStrokeWidth = Rt(t, s_, e.webkitTextStrokeWidth), this.wordBreak = Rt(t, VI, e.wordBreak), this.zIndex = Rt(t, qI, e.zIndex);
}
return r.prototype.isVisible = function() {
return this.display > 0 && this.opacity > 0 && this.visibility === 0;
}, r.prototype.isTransparent = function() {
return ds(this.backgroundColor);
}, r.prototype.isTransformed = function() {
return this.transform !== null;
}, r.prototype.isPositioned = function() {
return this.position !== 0;
}, r.prototype.isPositionedWithZIndex = function() {
return this.isPositioned() && !this.zIndex.auto;
}, r.prototype.isFloating = function() {
return this.float !== 0;
}, r.prototype.isInlineLevel = function() {
return on(
this.display,
4
/* INLINE */
) || on(
this.display,
33554432
/* INLINE_BLOCK */
) || on(
this.display,
268435456
/* INLINE_FLEX */
) || on(
this.display,
536870912
/* INLINE_GRID */
) || on(
this.display,
67108864
/* INLINE_LIST_ITEM */
) || on(
this.display,
134217728
/* INLINE_TABLE */
);
}, r;
})()
), l_ = (
/** @class */
/* @__PURE__ */ (function() {
function r(t, e) {
this.content = Rt(t, ZI, e.content), this.quotes = Rt(t, r_, e.quotes);
}
return r;
})()
), wm = (
/** @class */
/* @__PURE__ */ (function() {
function r(t, e) {
this.counterIncrement = Rt(t, e_, e.counterIncrement), this.counterReset = Rt(t, t_, e.counterReset);
}
return r;
})()
), Rt = function(r, t, e) {
var A = new $5(), n = e !== null && typeof e < "u" ? e.toString() : t.initialValue;
A.write(n);
var a = new z5(A.read());
switch (t.type) {
case 2:
var s = a.parseComponentValue();
return t.parse(r, sr(s) ? s.value : t.initialValue);
case 0:
return t.parse(r, a.parseComponentValue());
case 1:
return t.parse(r, a.parseComponentValues());
case 4:
return a.parseComponentValue();
case 3:
switch (t.format) {
case "angle":
return Qc.parse(r, a.parseComponentValue());
case "color":
return hs.parse(r, a.parseComponentValue());
case "image":
return rv.parse(r, a.parseComponentValue());
case "length":
var i = a.parseComponentValue();
return ps(i) ? i : Fn;
case "length-percentage":
var o = a.parseComponentValue();
return en(o) ? o : Fn;
case "time":
return db.parse(r, a.parseComponentValue());
}
break;
}
}, u_ = "data-html2canvas-debug", c_ = function(r) {
var t = r.getAttribute(u_);
switch (t) {
case "all":
return 1;
case "clone":
return 2;
case "parse":
return 3;
case "render":
return 4;
default:
return 0;
}
}, xp = function(r, t) {
var e = c_(r);
return e === 1 || t === e;
}, pi = (
/** @class */
/* @__PURE__ */ (function() {
function r(t, e) {
if (this.context = t, this.textNodes = [], this.elements = [], this.flags = 0, xp(
e,
3
/* PARSE */
))
debugger;
this.styles = new o_(t, window.getComputedStyle(e, null)), Tp(e) && (this.styles.animationDuration.some(function(A) {
return A > 0;
}) && (e.style.animationDuration = "0s"), this.styles.transform !== null && (e.style.transform = "none")), this.bounds = Uc(this.context, e), xp(
e,
4
/* RENDER */
) && (this.flags |= 16);
}
return r;
})()
), f_ = "AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=", Bm = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", dl = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var _u = 0; _u < Bm.length; _u++)
dl[Bm.charCodeAt(_u)] = _u;
var h_ = function(r) {
var t = r.length * 0.75, e = r.length, A, n = 0, a, s, i, o;
r[r.length - 1] === "=" && (t--, r[r.length - 2] === "=" && t--);
var l = typeof ArrayBuffer < "u" && typeof Uint8Array < "u" && typeof Uint8Array.prototype.slice < "u" ? new ArrayBuffer(t) : new Array(t), u = Array.isArray(l) ? l : new Uint8Array(l);
for (A = 0; A < e; A += 4)
a = dl[r.charCodeAt(A)], s = dl[r.charCodeAt(A + 1)], i = dl[r.charCodeAt(A + 2)], o = dl[r.charCodeAt(A + 3)], u[n++] = a << 2 | s >> 4, u[n++] = (s & 15) << 4 | i >> 2, u[n++] = (i & 3) << 6 | o & 63;
return l;
}, d_ = function(r) {
for (var t = r.length, e = [], A = 0; A < t; A += 2)
e.push(r[A + 1] << 8 | r[A]);
return e;
}, g_ = function(r) {
for (var t = r.length, e = [], A = 0; A < t; A += 4)
e.push(r[A + 3] << 24 | r[A + 2] << 16 | r[A + 1] << 8 | r[A]);
return e;
}, Hs = 5, nv = 11, zf = 2, p_ = nv - Hs, gb = 65536 >> Hs, v_ = 1 << Hs, Xf = v_ - 1, m_ = 1024 >> Hs, w_ = gb + m_, B_ = w_, y_ = 32, b_ = B_ + y_, C_ = 65536 >> nv, E_ = 1 << p_, F_ = E_ - 1, ym = function(r, t, e) {
return r.slice ? r.slice(t, e) : new Uint16Array(Array.prototype.slice.call(r, t, e));
}, x_ = function(r, t, e) {
return r.slice ? r.slice(t, e) : new Uint32Array(Array.prototype.slice.call(r, t, e));
}, S_ = function(r, t) {
var e = h_(r), A = Array.isArray(e) ? g_(e) : new Uint32Array(e), n = Array.isArray(e) ? d_(e) : new Uint16Array(e), a = 24, s = ym(n, a / 2, A[4] / 2), i = A[5] === 2 ? ym(n, (a + A[4]) / 2) : x_(A, Math.ceil((a + A[4]) / 4));
return new U_(A[0], A[1], A[2], A[3], s, i);
}, U_ = (
/** @class */
(function() {
function r(t, e, A, n, a, s) {
this.initialValue = t, this.errorValue = e, this.highStart = A, this.highValueIndex = n, this.index = a, this.data = s;
}
return r.prototype.get = function(t) {
var e;
if (t >= 0) {
if (t < 55296 || t > 56319 && t <= 65535)
return e = this.index[t >> Hs], e = (e << zf) + (t & Xf), this.data[e];
if (t <= 65535)
return e = this.index[gb + (t - 55296 >> Hs)], e = (e << zf) + (t & Xf), this.data[e];
if (t < this.highStart)
return e = b_ - C_ + (t >> nv), e = this.index[e], e += t >> Hs & F_, e = this.index[e], e = (e << zf) + (t & Xf), this.data[e];
if (t <= 1114111)
return this.data[this.highValueIndex];
}
return this.errorValue;
}, r;
})()
), bm = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", T_ = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var Nu = 0; Nu < bm.length; Nu++)
T_[bm.charCodeAt(Nu)] = Nu;
var Q_ = 1, Jf = 2, Zf = 3, Cm = 4, Em = 5, D_ = 7, Fm = 8, eh = 9, th = 10, xm = 11, Sm = 12, Um = 13, Tm = 14, Ah = 15, k_ = function(r) {
for (var t = [], e = 0, A = r.length; e < A; ) {
var n = r.charCodeAt(e++);
if (n >= 55296 && n <= 56319 && e < A) {
var a = r.charCodeAt(e++);
(a & 64512) === 56320 ? t.push(((n & 1023) << 10) + (a & 1023) + 65536) : (t.push(n), e--);
} else
t.push(n);
}
return t;
}, L_ = function() {
for (var r = [], t = 0; t < arguments.length; t++)
r[t] = arguments[t];
if (String.fromCodePoint)
return String.fromCodePoint.apply(String, r);
var e = r.length;
if (!e)
return "";
for (var A = [], n = -1, a = ""; ++n < e; ) {
var s = r[n];
s <= 65535 ? A.push(s) : (s -= 65536, A.push((s >> 10) + 55296, s % 1024 + 56320)), (n + 1 === e || A.length > 16384) && (a += String.fromCharCode.apply(String, A), A.length = 0);
}
return a;
}, I_ = S_(f_), Qa = "×", rh = "÷", __ = function(r) {
return I_.get(r);
}, N_ = function(r, t, e) {
var A = e - 2, n = t[A], a = t[e - 1], s = t[e];
if (a === Jf && s === Zf)
return Qa;
if (a === Jf || a === Zf || a === Cm || s === Jf || s === Zf || s === Cm)
return rh;
if (a === Fm && [Fm, eh, xm, Sm].indexOf(s) !== -1 || (a === xm || a === eh) && (s === eh || s === th) || (a === Sm || a === th) && s === th || s === Um || s === Em || s === D_ || a === Q_)
return Qa;
if (a === Um && s === Tm) {
for (; n === Em; )
n = t[--A];
if (n === Tm)
return Qa;
}
if (a === Ah && s === Ah) {
for (var i = 0; n === Ah; )
i++, n = t[--A];
if (i % 2 === 0)
return Qa;
}
return rh;
}, M_ = function(r) {
var t = k_(r), e = t.length, A = 0, n = 0, a = t.map(__);
return {
next: function() {
if (A >= e)
return { done: !0, value: null };
for (var s = Qa; A < e && (s = N_(t, a, ++A)) === Qa; )
;
if (s !== Qa || A === e) {
var i = L_.apply(null, t.slice(n, A));
return n = A, { value: i, done: !1 };
}
return { done: !0, value: null };
}
};
}, O_ = function(r) {
for (var t = M_(r), e = [], A; !(A = t.next()).done; )
A.value && e.push(A.value.slice());
return e;
}, R_ = function(r) {
var t = 123;
if (r.createRange) {
var e = r.createRange();
if (e.getBoundingClientRect) {
var A = r.createElement("boundtest");
A.style.height = t + "px", A.style.display = "block", r.body.appendChild(A), e.selectNode(A);
var n = e.getBoundingClientRect(), a = Math.round(n.height);
if (r.body.removeChild(A), a === t)
return !0;
}
}
return !1;
}, H_ = function(r) {
var t = r.createElement("boundtest");
t.style.width = "50px", t.style.display = "block", t.style.fontSize = "12px", t.style.letterSpacing = "0px", t.style.wordSpacing = "0px", r.body.appendChild(t);
var e = r.createRange();
t.innerHTML = typeof "".repeat == "function" ? "👨".repeat(10) : "";
var A = t.firstChild, n = Tc(A.data).map(function(o) {
return Gr(o);
}), a = 0, s = {}, i = n.every(function(o, l) {
e.setStart(A, a), e.setEnd(A, a + o.length);
var u = e.getBoundingClientRect();
a += o.length;
var h = u.x > s.x || u.y > s.y;
return s = u, l === 0 ? !0 : h;
});
return r.body.removeChild(t), i;
}, P_ = function() {
return typeof new Image().crossOrigin < "u";
}, K_ = function() {
return typeof new XMLHttpRequest().responseType == "string";
}, V_ = function(r) {
var t = new Image(), e = r.createElement("canvas"), A = e.getContext("2d");
if (!A)
return !1;
t.src = "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";
try {
A.drawImage(t, 0, 0), e.toDataURL();
} catch {
return !1;
}
return !0;
}, Qm = function(r) {
return r[0] === 0 && r[1] === 255 && r[2] === 0 && r[3] === 255;
}, q_ = function(r) {
var t = r.createElement("canvas"), e = 100;
t.width = e, t.height = e;
var A = t.getContext("2d");
if (!A)
return Promise.reject(!1);
A.fillStyle = "rgb(0, 255, 0)", A.fillRect(0, 0, e, e);
var n = new Image(), a = t.toDataURL();
n.src = a;
var s = Sp(e, e, 0, 0, n);
return A.fillStyle = "red", A.fillRect(0, 0, e, e), Dm(s).then(function(i) {
A.drawImage(i, 0, 0);
var o = A.getImageData(0, 0, e, e).data;
A.fillStyle = "red", A.fillRect(0, 0, e, e);
var l = r.createElement("div");
return l.style.backgroundImage = "url(" + a + ")", l.style.height = e + "px", Qm(o) ? Dm(Sp(e, e, 0, 0, l)) : Promise.reject(!1);
}).then(function(i) {
return A.drawImage(i, 0, 0), Qm(A.getImageData(0, 0, e, e).data);
}).catch(function() {
return !1;
});
}, Sp = function(r, t, e, A, n) {
var a = "http://www.w3.org/2000/svg", s = document.createElementNS(a, "svg"), i = document.createElementNS(a, "foreignObject");
return s.setAttributeNS(null, "width", r.toString()), s.setAttributeNS(null, "height", t.toString()), i.setAttributeNS(null, "width", "100%"), i.setAttributeNS(null, "height", "100%"), i.setAttributeNS(null, "x", e.toString()), i.setAttributeNS(null, "y", A.toString()), i.setAttributeNS(null, "externalResourcesRequired", "true"), s.appendChild(i), i.appendChild(n), s;
}, Dm = function(r) {
return new Promise(function(t, e) {
var A = new Image();
A.onload = function() {
return t(A);
}, A.onerror = e, A.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(r));
});
}, Cn = {
get SUPPORT_RANGE_BOUNDS() {
var r = R_(document);
return Object.defineProperty(Cn, "SUPPORT_RANGE_BOUNDS", { value: r }), r;
},
get SUPPORT_WORD_BREAKING() {
var r = Cn.SUPPORT_RANGE_BOUNDS && H_(document);
return Object.defineProperty(Cn, "SUPPORT_WORD_BREAKING", { value: r }), r;
},
get SUPPORT_SVG_DRAWING() {
var r = V_(document);
return Object.defineProperty(Cn, "SUPPORT_SVG_DRAWING", { value: r }), r;
},
get SUPPORT_FOREIGNOBJECT_DRAWING() {
var r = typeof Array.from == "function" && typeof window.fetch == "function" ? q_(document) : Promise.resolve(!1);
return Object.defineProperty(Cn, "SUPPORT_FOREIGNOBJECT_DRAWING", { value: r }), r;
},
get SUPPORT_CORS_IMAGES() {
var r = P_();
return Object.defineProperty(Cn, "SUPPORT_CORS_IMAGES", { value: r }), r;
},
get SUPPORT_RESPONSE_TYPE() {
var r = K_();
return Object.defineProperty(Cn, "SUPPORT_RESPONSE_TYPE", { value: r }), r;
},
get SUPPORT_CORS_XHR() {
var r = "withCredentials" in new XMLHttpRequest();
return Object.defineProperty(Cn, "SUPPORT_CORS_XHR", { value: r }), r;
},
get SUPPORT_NATIVE_TEXT_SEGMENTATION() {
var r = !!(typeof Intl < "u" && Intl.Segmenter);
return Object.defineProperty(Cn, "SUPPORT_NATIVE_TEXT_SEGMENTATION", { value: r }), r;
}
}, yl = (
/** @class */
/* @__PURE__ */ (function() {
function r(t, e) {
this.text = t, this.bounds = e;
}
return r;
})()
), j_ = function(r, t, e, A) {
var n = Y_(t, e), a = [], s = 0;
return n.forEach(function(i) {
if (e.textDecorationLine.length || i.trim().length > 0)
if (Cn.SUPPORT_RANGE_BOUNDS) {
var o = km(A, s, i.length).getClientRects();
if (o.length > 1) {
var l = av(i), u = 0;
l.forEach(function(g) {
a.push(new yl(g, Ni.fromDOMRectList(r, km(A, u + s, g.length).getClientRects()))), u += g.length;
});
} else
a.push(new yl(i, Ni.fromDOMRectList(r, o)));
} else {
var h = A.splitText(i.length);
a.push(new yl(i, W_(r, A))), A = h;
}
else Cn.SUPPORT_RANGE_BOUNDS || (A = A.splitText(i.length));
s += i.length;
}), a;
}, W_ = function(r, t) {
var e = t.ownerDocument;
if (e) {
var A = e.createElement("html2canvaswrapper");
A.appendChild(t.cloneNode(!0));
var n = t.parentNode;
if (n) {
n.replaceChild(A, t);
var a = Uc(r, A);
return A.firstChild && n.replaceChild(A.firstChild, A), a;
}
}
return Ni.EMPTY;
}, km = function(r, t, e) {
var A = r.ownerDocument;
if (!A)
throw new Error("Node has no owner document");
var n = A.createRange();
return n.setStart(r, t), n.setEnd(r, t + e), n;
}, av = function(r) {
if (Cn.SUPPORT_NATIVE_TEXT_SEGMENTATION) {
var t = new Intl.Segmenter(void 0, { granularity: "grapheme" });
return Array.from(t.segment(r)).map(function(e) {
return e.segment;
});
}
return O_(r);
}, G_ = function(r, t) {
if (Cn.SUPPORT_NATIVE_TEXT_SEGMENTATION) {
var e = new Intl.Segmenter(void 0, {
granularity: "word"
});
return Array.from(e.segment(r)).map(function(A) {
return A.segment;
});
}
return z_(r, t);
}, Y_ = function(r, t) {
return t.letterSpacing !== 0 ? av(r) : G_(r, t);
}, $_ = [32, 160, 4961, 65792, 65793, 4153, 4241], z_ = function(r, t) {
for (var e = Ck(r, {
lineBreak: t.lineBreak,
wordBreak: t.overflowWrap === "break-word" ? "break-word" : t.wordBreak
}), A = [], n, a = function() {
if (n.value) {
var s = n.value.slice(), i = Tc(s), o = "";
i.forEach(function(l) {
$_.indexOf(l) === -1 ? o += Gr(l) : (o.length && A.push(o), A.push(Gr(l)), o = "");
}), o.length && A.push(o);
}
}; !(n = e.next()).done; )
a();
return A;
}, X_ = (
/** @class */
/* @__PURE__ */ (function() {
function r(t, e, A) {
this.text = J_(e.data, A.textTransform), this.textBounds = j_(t, this.text, A, e);
}
return r;
})()
), J_ = function(r, t) {
switch (t) {
case 1:
return r.toLowerCase();
case 3:
return r.replace(Z_, e6);
case 2:
return r.toUpperCase();
default:
return r;
}
}, Z_ = /(^|\s|:|-|\(|\))([a-z])/g, e6 = function(r, t, e) {
return r.length > 0 ? t + e.toUpperCase() : r;
}, pb = (
/** @class */
(function(r) {
ei(t, r);
function t(e, A) {
var n = r.call(this, e, A) || this;
return n.src = A.currentSrc || A.src, n.intrinsicWidth = A.naturalWidth, n.intrinsicHeight = A.naturalHeight, n.context.cache.addImage(n.src), n;
}
return t;
})(pi)
), vb = (
/** @class */
(function(r) {
ei(t, r);
function t(e, A) {
var n = r.call(this, e, A) || this;
return n.canvas = A, n.intrinsicWidth = A.width, n.intrinsicHeight = A.height, n;
}
return t;
})(pi)
), mb = (
/** @class */
(function(r) {
ei(t, r);
function t(e, A) {
var n = r.call(this, e, A) || this, a = new XMLSerializer(), s = Uc(e, A);
return A.setAttribute("width", s.width + "px"), A.setAttribute("height", s.height + "px"), n.svg = "data:image/svg+xml," + encodeURIComponent(a.serializeToString(A)), n.intrinsicWidth = A.width.baseVal.value, n.intrinsicHeight = A.height.baseVal.value, n.context.cache.addImage(n.svg), n;
}
return t;
})(pi)
), wb = (
/** @class */
(function(r) {
ei(t, r);
function t(e, A) {
var n = r.call(this, e, A) || this;
return n.value = A.value, n;
}
return t;
})(pi)
), Up = (
/** @class */
(function(r) {
ei(t, r);
function t(e, A) {
var n = r.call(this, e, A) || this;
return n.start = A.start, n.reversed = typeof A.reversed == "boolean" && A.reversed === !0, n;
}
return t;
})(pi)
), t6 = [
{
type: 15,
flags: 0,
unit: "px",
number: 3
}
], A6 = [
{
type: 16,
flags: 0,
number: 50
}
], r6 = function(r) {
return r.width > r.height ? new Ni(r.left + (r.width - r.height) / 2, r.top, r.height, r.height) : r.width < r.height ? new Ni(r.left, r.top + (r.height - r.width) / 2, r.width, r.width) : r;
}, n6 = function(r) {
var t = r.type === a6 ? new Array(r.value.length + 1).join("•") : r.value;
return t.length === 0 ? r.placeholder || "" : t;
}, vc = "checkbox", mc = "radio", a6 = "password", Lm = 707406591, iv = (
/** @class */
(function(r) {
ei(t, r);
function t(e, A) {
var n = r.call(this, e, A) || this;
switch (n.type = A.type.toLowerCase(), n.checked = A.checked, n.value = n6(A), (n.type === vc || n.type === mc) && (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 = r6(n.bounds)), n.type) {
case vc:
n.styles.borderTopRightRadius = n.styles.borderTopLeftRadius = n.styles.borderBottomRightRadius = n.styles.borderBottomLeftRadius = t6;
break;
case mc:
n.styles.borderTopRightRadius = n.styles.borderTopLeftRadius = n.styles.borderBottomRightRadius = n.styles.borderBottomLeftRadius = A6;
break;
}
return n;
}
return t;
})(pi)
), Bb = (
/** @class */
(function(r) {
ei(t, r);
function t(e, A) {
var n = r.call(this, e, A) || this, a = A.options[A.selectedIndex || 0];
return n.value = a && a.text || "", n;
}
return t;
})(pi)
), yb = (
/** @class */
(function(r) {
ei(t, r);
function t(e, A) {
var n = r.call(this, e, A) || this;
return n.value = A.value, n;
}
return t;
})(pi)
), bb = (
/** @class */
(function(r) {
ei(t, r);
function t(e, A) {
var n = r.call(this, e, A) || this;
n.src = A.src, n.width = parseInt(A.width, 10) || 0, n.height = parseInt(A.height, 10) || 0, n.backgroundColor = n.styles.backgroundColor;
try {
if (A.contentWindow && A.contentWindow.document && A.contentWindow.document.documentElement) {
n.tree = Eb(e, A.contentWindow.document.documentElement);
var a = A.contentWindow.document.documentElement ? wl(e, getComputedStyle(A.contentWindow.document.documentElement).backgroundColor) : Ii.TRANSPARENT, s = A.contentWindow.document.body ? wl(e, getComputedStyle(A.contentWindow.document.body).backgroundColor) : Ii.TRANSPARENT;
n.backgroundColor = ds(a) ? ds(s) ? n.styles.backgroundColor : s : a;
}
} catch {
}
return n;
}
return t;
})(pi)
), i6 = ["OL", "UL", "MENU"], rc = function(r, t, e, A) {
for (var n = t.firstChild, a = void 0; n; n = a)
if (a = n.nextSibling, Fb(n) && n.data.trim().length > 0)
e.textNodes.push(new X_(r, n, e.styles));
else if (Co(n))
if (Tb(n) && n.assignedNodes)
n.assignedNodes().forEach(function(i) {
return rc(r, i, e, A);
});
else {
var s = Cb(r, n);
s.styles.isVisible() && (s6(n, s, A) ? s.flags |= 4 : o6(s.styles) && (s.flags |= 2), i6.indexOf(n.tagName) !== -1 && (s.flags |= 8), e.elements.push(s), n.slot, n.shadowRoot ? rc(r, n.shadowRoot, s, A) : !wc(n) && !xb(n) && !Bc(n) && rc(r, n, s, A));
}
}, Cb = function(r, t) {
return Qp(t) ? new pb(r, t) : Sb(t) ? new vb(r, t) : xb(t) ? new mb(r, t) : l6(t) ? new wb(r, t) : u6(t) ? new Up(r, t) : c6(t) ? new iv(r, t) : Bc(t) ? new Bb(r, t) : wc(t) ? new yb(r, t) : Ub(t) ? new bb(r, t) : new pi(r, t);
}, Eb = function(r, t) {
var e = Cb(r, t);
return e.flags |= 4, rc(r, t, e, e), e;
}, s6 = function(r, t, e) {
return t.styles.isPositionedWithZIndex() || t.styles.opacity < 1 || t.styles.isTransformed() || sv(r) && e.styles.isTransparent();
}, o6 = function(r) {
return r.isPositioned() || r.isFloating();
}, Fb = function(r) {
return r.nodeType === Node.TEXT_NODE;
}, Co = function(r) {
return r.nodeType === Node.ELEMENT_NODE;
}, Tp = function(r) {
return Co(r) && typeof r.style < "u" && !nc(r);
}, nc = function(r) {
return typeof r.className == "object";
}, l6 = function(r) {
return r.tagName === "LI";
}, u6 = function(r) {
return r.tagName === "OL";
}, c6 = function(r) {
return r.tagName === "INPUT";
}, f6 = function(r) {
return r.tagName === "HTML";
}, xb = function(r) {
return r.tagName === "svg";
}, sv = function(r) {
return r.tagName === "BODY";
}, Sb = function(r) {
return r.tagName === "CANVAS";
}, Im = function(r) {
return r.tagName === "VIDEO";
}, Qp = function(r) {
return r.tagName === "IMG";
}, Ub = function(r) {
return r.tagName === "IFRAME";
}, _m = function(r) {
return r.tagName === "STYLE";
}, h6 = function(r) {
return r.tagName === "SCRIPT";
}, wc = function(r) {
return r.tagName === "TEXTAREA";
}, Bc = function(r) {
return r.tagName === "SELECT";
}, Tb = function(r) {
return r.tagName === "SLOT";
}, Nm = function(r) {
return r.tagName.indexOf("-") > 0;
}, d6 = (
/** @class */
(function() {
function r() {
this.counters = {};
}
return r.prototype.getCounterValue = function(t) {
var e = this.counters[t];
return e && e.length ? e[e.length - 1] : 1;
}, r.prototype.getCounterValues = function(t) {
var e = this.counters[t];
return e || [];
}, r.prototype.pop = function(t) {
var e = this;
t.forEach(function(A) {
return e.counters[A].pop();
});
}, r.prototype.parse = function(t) {
var e = this, A = t.counterIncrement, n = t.counterReset, a = !0;
A !== null && A.forEach(function(i) {
var o = e.counters[i.counter];
o && i.increment !== 0 && (a = !1, o.length || o.push(1), o[Math.max(0, o.length - 1)] += i.increment);
});
var s = [];
return a && n.forEach(function(i) {
var o = e.counters[i.counter];
s.push(i.counter), o || (o = e.counters[i.counter] = []), o.push(i.reset);
}), s;
}, r;
})()
), Mm = {
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"]
}, Om = {
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: [
"Ք",
"Փ",
"Ւ",
"Ց",
"Ր",
"Տ",
"Վ",
"Ս",
"Ռ",
"Ջ",
"Պ",
"Չ",
"Ո",
"Շ",
"Ն",
"Յ",
"Մ",
"Ճ",
"Ղ",
"Ձ",
"Հ",
"Կ",
"Ծ",
"Խ",
"Լ",
"Ի",
"Ժ",
"Թ",
"Ը",
"Է",
"Զ",
"Ե",
"Դ",
"Գ",
"Բ",
"Ա"
]
}, g6 = {
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: [
"י׳",
"ט׳",
"ח׳",
"ז׳",
"ו׳",
"ה׳",
"ד׳",
"ג׳",
"ב׳",
"א׳",
"ת",
"ש",
"ר",
"ק",
"צ",
"פ",
"ע",
"ס",
"נ",
"מ",
"ל",
"כ",
"יט",
"יח",
"יז",
"טז",
"טו",
"י",
"ט",
"ח",
"ז",
"ו",
"ה",
"ד",
"ג",
"ב",
"א"
]
}, p6 = {
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: [
"ჵ",
"ჰ",
"ჯ",
"ჴ",
"ხ",
"ჭ",
"წ",
"ძ",
"ც",
"ჩ",
"შ",
"ყ",
"ღ",
"ქ",
"ფ",
"ჳ",
"ტ",
"ს",
"რ",
"ჟ",
"პ",
"ო",
"ჲ",
"ნ",
"მ",
"ლ",
"კ",
"ი",
"თ",
"ჱ",
"ზ",
"ვ",
"ე",
"დ",
"გ",
"ბ",
"ა"
]
}, go = function(r, t, e, A, n, a) {
return r < t || r > e ? Ul(r, n, a.length > 0) : A.integers.reduce(function(s, i, o) {
for (; r >= i; )
r -= i, s += A.values[o];
return s;
}, "") + a;
}, Qb = function(r, t, e, A) {
var n = "";
do
e || r--, n = A(r) + n, r /= t;
while (r * t >= t);
return n;
}, Wr = function(r, t, e, A, n) {
var a = e - t + 1;
return (r < 0 ? "-" : "") + (Qb(Math.abs(r), a, A, function(s) {
return Gr(Math.floor(s % a) + t);
}) + n);
}, xs = function(r, t, e) {
e === void 0 && (e = ". ");
var A = t.length;
return Qb(Math.abs(r), A, !1, function(n) {
return t[Math.floor(n % A)];
}) + e;
}, Bo = 1, ns = 2, as = 4, gl = 8, Si = function(r, t, e, A, n, a) {
if (r < -9999 || r > 9999)
return Ul(r, 4, n.length > 0);
var s = Math.abs(r), i = n;
if (s === 0)
return t[0] + i;
for (var o = 0; s > 0 && o <= 4; o++) {
var l = s % 10;
l === 0 && on(a, Bo) && i !== "" ? i = t[l] + i : l > 1 || l === 1 && o === 0 || l === 1 && o === 1 && on(a, ns) || l === 1 && o === 1 && on(a, as) && r > 100 || l === 1 && o > 1 && on(a, gl) ? i = t[l] + (o > 0 ? e[o - 1] : "") + i : l === 1 && o > 0 && (i = e[o - 1] + i), s = Math.floor(s / 10);
}
return (r < 0 ? A : "") + i;
}, Rm = "十百千萬", Hm = "拾佰仟萬", Pm = "マイナス", nh = "마이너스", Ul = function(r, t, e) {
var A = e ? ". " : "", n = e ? "、" : "", a = e ? ", " : "", s = e ? " " : "";
switch (t) {
case 0:
return "•" + s;
case 1:
return "◦" + s;
case 2:
return "◾" + s;
case 5:
var i = Wr(r, 48, 57, !0, A);
return i.length < 4 ? "0" + i : i;
case 4:
return xs(r, "〇一二三四五六七八九", n);
case 6:
return go(r, 1, 3999, Mm, 3, A).toLowerCase();
case 7:
return go(r, 1, 3999, Mm, 3, A);
case 8:
return Wr(r, 945, 969, !1, A);
case 9:
return Wr(r, 97, 122, !1, A);
case 10:
return Wr(r, 65, 90, !1, A);
case 11:
return Wr(r, 1632, 1641, !0, A);
case 12:
case 49:
return go(r, 1, 9999, Om, 3, A);
case 35:
return go(r, 1, 9999, Om, 3, A).toLowerCase();
case 13:
return Wr(r, 2534, 2543, !0, A);
case 14:
case 30:
return Wr(r, 6112, 6121, !0, A);
case 15:
return xs(r, "子丑寅卯辰巳午未申酉戌亥", n);
case 16:
return xs(r, "甲乙丙丁戊己庚辛壬癸", n);
case 17:
case 48:
return Si(r, "零一二三四五六七八九", Rm, "負", n, ns | as | gl);
case 47:
return Si(r, "零壹貳參肆伍陸柒捌玖", Hm, "負", n, Bo | ns | as | gl);
case 42:
return Si(r, "零一二三四五六七八九", Rm, "负", n, ns | as | gl);
case 41:
return Si(r, "零壹贰叁肆伍陆柒捌玖", Hm, "负", n, Bo | ns | as | gl);
case 26:
return Si(r, "〇一二三四五六七八九", "十百千万", Pm, n, 0);
case 25:
return Si(r, "零壱弐参四伍六七八九", "拾百千万", Pm, n, Bo | ns | as);
case 31:
return Si(r, "영일이삼사오육칠팔구", "십백천만", nh, a, Bo | ns | as);
case 33:
return Si(r, "零一二三四五六七八九", "十百千萬", nh, a, 0);
case 32:
return Si(r, "零壹貳參四五六七八九", "拾百千", nh, a, Bo | ns | as);
case 18:
return Wr(r, 2406, 2415, !0, A);
case 20:
return go(r, 1, 19999, p6, 3, A);
case 21:
return Wr(r, 2790, 2799, !0, A);
case 22:
return Wr(r, 2662, 2671, !0, A);
case 22:
return go(r, 1, 10999, g6, 3, A);
case 23:
return xs(r, "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");
case 24:
return xs(r, "いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");
case 27:
return Wr(r, 3302, 3311, !0, A);
case 28:
return xs(r, "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン", n);
case 29:
return xs(r, "イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス", n);
case 34:
return Wr(r, 3792, 3801, !0, A);
case 37:
return Wr(r, 6160, 6169, !0, A);
case 38:
return Wr(r, 4160, 4169, !0, A);
case 39:
return Wr(r, 2918, 2927, !0, A);
case 40:
return Wr(r, 1776, 1785, !0, A);
case 43:
return Wr(r, 3046, 3055, !0, A);
case 44:
return Wr(r, 3174, 3183, !0, A);
case 45:
return Wr(r, 3664, 3673, !0, A);
case 46:
return Wr(r, 3872, 3881, !0, A);
case 3:
default:
return Wr(r, 48, 57, !0, A);
}
}, Db = "data-html2canvas-ignore", Km = (
/** @class */
(function() {
function r(t, e, A) {
if (this.context = t, this.options = A, this.scrolledElements = [], this.referenceElement = e, this.counters = new d6(), this.quoteDepth = 0, !e.ownerDocument)
throw new Error("Cloned element does not have an owner document");
this.documentElement = this.cloneNode(e.ownerDocument.documentElement, !1);
}
return r.prototype.toIFrame = function(t, e) {
var A = this, n = v6(t, e);
if (!n.contentWindow)
return Promise.reject("Unable to find iframe window");
var a = t.defaultView.pageXOffset, s = t.defaultView.pageYOffset, i = n.contentWindow, o = i.document, l = B6(n).then(function() {
return Yn(A, void 0, void 0, function() {
var u, h;
return On(this, function(g) {
switch (g.label) {
case 0:
return this.scrolledElements.forEach(E6), i && (i.scrollTo(e.left, e.top), /(iPad|iPhone|iPod)/g.test(navigator.userAgent) && (i.scrollY !== e.top || i.scrollX !== e.left) && (this.context.logger.warn("Unable to restore scroll position for cloned document"), this.context.windowBounds = this.context.windowBounds.add(i.scrollX - e.left, i.scrollY - e.top, 0, 0))), u = this.options.onclone, h = this.clonedReferenceElement, typeof h > "u" ? [2, Promise.reject("Error finding the " + this.referenceElement.nodeName + " in the cloned document")] : o.fonts && o.fonts.ready ? [4, o.fonts.ready] : [3, 2];
case 1:
g.sent(), g.label = 2;
case 2:
return /(AppleWebKit)/g.test(navigator.userAgent) ? [4, w6(o)] : [3, 4];
case 3:
g.sent(), g.label = 4;
case 4:
return typeof u == "function" ? [2, Promise.resolve().then(function() {
return u(o, h);
}).then(function() {
return n;
})] : [2, n];
}
});
});
});
return o.open(), o.write(b6(document.doctype) + "<html></html>"), C6(this.referenceElement.ownerDocument, a, s), o.replaceChild(o.adoptNode(this.documentElement), o.documentElement), o.close(), l;
}, r.prototype.createElementClone = function(t) {
if (xp(
t,
2
/* CLONE */
))
debugger;
if (Sb(t))
return this.createCanvasClone(t);
if (Im(t))
return this.createVideoClone(t);
if (_m(t))
return this.createStyleClone(t);
var e = t.cloneNode(!1);
return Qp(e) && (Qp(t) && t.currentSrc && t.currentSrc !== t.src && (e.src = t.currentSrc, e.srcset = ""), e.loading === "lazy" && (e.loading = "eager")), Nm(e) ? this.createCustomElementClone(e) : e;
}, r.prototype.createCustomElementClone = function(t) {
var e = document.createElement("html2canvascustomelement");
return ah(t.style, e), e;
}, r.prototype.createStyleClone = function(t) {
try {
var e = t.sheet;
if (e && e.cssRules) {
var A = [].slice.call(e.cssRules, 0).reduce(function(a, s) {
return s && typeof s.cssText == "string" ? a + s.cssText : a;
}, ""), n = t.cloneNode(!1);
return n.textContent = A, n;
}
} catch (a) {
if (this.context.logger.error("Unable to access cssRules property", a), a.name !== "SecurityError")
throw a;
}
return t.cloneNode(!1);
}, r.prototype.createCanvasClone = function(t) {
var e;
if (this.options.inlineImages && t.ownerDocument) {
var A = t.ownerDocument.createElement("img");
try {
return A.src = t.toDataURL(), A;
} catch {
this.context.logger.info("Unable to inline canvas contents, canvas is tainted", t);
}
}
var n = t.cloneNode(!1);
try {
n.width = t.width, n.height = t.height;
var a = t.getContext("2d"), s = n.getContext("2d");
if (s)
if (!this.options.allowTaint && a)
s.putImageData(a.getImageData(0, 0, t.width, t.height), 0, 0);
else {
var i = (e = t.getContext("webgl2")) !== null && e !== void 0 ? e : t.getContext("webgl");
if (i) {
var o = i.getContextAttributes();
(o == null ? void 0 : o.preserveDrawingBuffer) === !1 && this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false", t);
}
s.drawImage(t, 0, 0);
}
return n;
} catch {
this.context.logger.info("Unable to clone canvas as it is tainted", t);
}
return n;
}, r.prototype.createVideoClone = function(t) {
var e = t.ownerDocument.createElement("canvas");
e.width = t.offsetWidth, e.height = t.offsetHeight;
var A = e.getContext("2d");
try {
return A && (A.drawImage(t, 0, 0, e.width, e.height), this.options.allowTaint || A.getImageData(0, 0, e.width, e.height)), e;
} catch {
this.context.logger.info("Unable to clone video as it is tainted", t);
}
var n = t.ownerDocument.createElement("canvas");
return n.width = t.offsetWidth, n.height = t.offsetHeight, n;
}, r.prototype.appendChildNode = function(t, e, A) {
(!Co(e) || !h6(e) && !e.hasAttribute(Db) && (typeof this.options.ignoreElements != "function" || !this.options.ignoreElements(e))) && (!this.options.copyStyles || !Co(e) || !_m(e)) && t.appendChild(this.cloneNode(e, A));
}, r.prototype.cloneChildNodes = function(t, e, A) {
for (var n = this, a = t.shadowRoot ? t.shadowRoot.firstChild : t.firstChild; a; a = a.nextSibling)
if (Co(a) && Tb(a) && typeof a.assignedNodes == "function") {
var s = a.assignedNodes();
s.length && s.forEach(function(i) {
return n.appendChildNode(e, i, A);
});
} else
this.appendChildNode(e, a, A);
}, r.prototype.cloneNode = function(t, e) {
if (Fb(t))
return document.createTextNode(t.data);
if (!t.ownerDocument)
return t.cloneNode(!1);
var A = t.ownerDocument.defaultView;
if (A && Co(t) && (Tp(t) || nc(t))) {
var n = this.createElementClone(t);
n.style.transitionProperty = "none";
var a = A.getComputedStyle(t), s = A.getComputedStyle(t, ":before"), i = A.getComputedStyle(t, ":after");
this.referenceElement === t && Tp(n) && (this.clonedReferenceElement = n), sv(n) && S6(n);
var o = this.counters.parse(new wm(this.context, a)), l = this.resolvePseudoContent(t, n, s, bl.BEFORE);
Nm(t) && (e = !0), Im(t) || this.cloneChildNodes(t, n, e), l && n.insertBefore(l, n.firstChild);
var u = this.resolvePseudoContent(t, n, i, bl.AFTER);
return u && n.appendChild(u), this.counters.pop(o), (a && (this.options.copyStyles || nc(t)) && !Ub(t) || e) && ah(a, n), (t.scrollTop !== 0 || t.scrollLeft !== 0) && this.scrolledElements.push([n, t.scrollLeft, t.scrollTop]), (wc(t) || Bc(t)) && (wc(n) || Bc(n)) && (n.value = t.value), n;
}
return t.cloneNode(!1);
}, r.prototype.resolvePseudoContent = function(t, e, A, n) {
var a = this;
if (A) {
var s = A.content, i = e.ownerDocument;
if (!(!i || !s || s === "none" || s === "-moz-alt-content" || A.display === "none")) {
this.counters.parse(new wm(this.context, A));
var o = new l_(this.context, A), l = i.createElement("html2canvaspseudoelement");
ah(A, l), o.content.forEach(function(h) {
if (h.type === 0)
l.appendChild(i.createTextNode(h.value));
else if (h.type === 22) {
var g = i.createElement("img");
g.src = h.value, g.style.opacity = "1", l.appendChild(g);
} else if (h.type === 18) {
if (h.name === "attr") {
var c = h.values.filter(sr);
c.length && l.appendChild(i.createTextNode(t.getAttribute(c[0].value) || ""));
} else if (h.name === "counter") {
var p = h.values.filter(Do), m = p[0], y = p[1];
if (m && sr(m)) {
var w = a.counters.getCounterValue(m.value), E = y && sr(y) ? Fp.parse(a.context, y.value) : 3;
l.appendChild(i.createTextNode(Ul(w, E, !1)));
}
} else if (h.name === "counters") {
var C = h.values.filter(Do), m = C[0], F = C[1], y = C[2];
if (m && sr(m)) {
var H = a.counters.getCounterValues(m.value), q = y && sr(y) ? Fp.parse(a.context, y.value) : 3, N = F && F.type === 0 ? F.value : "", M = H.map(function(S) {
return Ul(S, q, !1);
}).join(N);
l.appendChild(i.createTextNode(M));
}
}
} else if (h.type === 20)
switch (h.value) {
case "open-quote":
l.appendChild(i.createTextNode(mm(o.quotes, a.quoteDepth++, !0)));
break;
case "close-quote":
l.appendChild(i.createTextNode(mm(o.quotes, --a.quoteDepth, !1)));
break;
default:
l.appendChild(i.createTextNode(h.value));
}
}), l.className = Dp + " " + kp;
var u = n === bl.BEFORE ? " " + Dp : " " + kp;
return nc(e) ? e.className.baseValue += u : e.className += u, l;
}
}
}, r.destroy = function(t) {
return t.parentNode ? (t.parentNode.removeChild(t), !0) : !1;
}, r;
})()
), bl;
(function(r) {
r[r.BEFORE = 0] = "BEFORE", r[r.AFTER = 1] = "AFTER";
})(bl || (bl = {}));
var v6 = function(r, t) {
var e = r.createElement("iframe");
return e.className = "html2canvas-container", e.style.visibility = "hidden", e.style.position = "fixed", e.style.left = "-10000px", e.style.top = "0px", e.style.border = "0", e.width = t.width.toString(), e.height = t.height.toString(), e.scrolling = "no", e.setAttribute(Db, "true"), r.body.appendChild(e), e;
}, m6 = function(r) {
return new Promise(function(t) {
if (r.complete) {
t();
return;
}
if (!r.src) {
t();
return;
}
r.onload = t, r.onerror = t;
});
}, w6 = function(r) {
return Promise.all([].slice.call(r.images, 0).map(m6));
}, B6 = function(r) {
return new Promise(function(t, e) {
var A = r.contentWindow;
if (!A)
return e("No window assigned for iframe");
var n = A.document;
A.onload = r.onload = function() {
A.onload = r.onload = null;
var a = setInterval(function() {
n.body.childNodes.length > 0 && n.readyState === "complete" && (clearInterval(a), t(r));
}, 50);
};
});
}, y6 = [
"all",
"d",
"content"
// Safari shows pseudoelements if content is set
], ah = function(r, t) {
for (var e = r.length - 1; e >= 0; e--) {
var A = r.item(e);
y6.indexOf(A) === -1 && t.style.setProperty(A, r.getPropertyValue(A));
}
return t;
}, b6 = function(r) {
var t = "";
return r && (t += "<!DOCTYPE ", r.name && (t += r.name), r.internalSubset && (t += r.internalSubset), r.publicId && (t += '"' + r.publicId + '"'), r.systemId && (t += '"' + r.systemId + '"'), t += ">"), t;
}, C6 = function(r, t, e) {
r && r.defaultView && (t !== r.defaultView.pageXOffset || e !== r.defaultView.pageYOffset) && r.defaultView.scrollTo(t, e);
}, E6 = function(r) {
var t = r[0], e = r[1], A = r[2];
t.scrollLeft = e, t.scrollTop = A;
}, F6 = ":before", x6 = ":after", Dp = "___html2canvas___pseudoelement_before", kp = "___html2canvas___pseudoelement_after", Vm = `{
content: "" !important;
display: none !important;
}`, S6 = function(r) {
U6(r, "." + Dp + F6 + Vm + `
.` + kp + x6 + Vm);
}, U6 = function(r, t) {
var e = r.ownerDocument;
if (e) {
var A = e.createElement("style");
A.textContent = t, r.appendChild(A);
}
}, kb = (
/** @class */
(function() {
function r() {
}
return r.getOrigin = function(t) {
var e = r._link;
return e ? (e.href = t, e.href = e.href, e.protocol + e.hostname + e.port) : "about:blank";
}, r.isSameOrigin = function(t) {
return r.getOrigin(t) === r._origin;
}, r.setContext = function(t) {
r._link = t.document.createElement("a"), r._origin = r.getOrigin(t.location.href);
}, r._origin = "about:blank", r;
})()
), T6 = (
/** @class */
(function() {
function r(t, e) {
this.context = t, this._options = e, this._cache = {};
}
return r.prototype.addImage = function(t) {
var e = Promise.resolve();
return this.has(t) || (sh(t) || L6(t)) && (this._cache[t] = this.loadImage(t)).catch(function() {
}), e;
}, r.prototype.match = function(t) {
return this._cache[t];
}, r.prototype.loadImage = function(t) {
return Yn(this, void 0, void 0, function() {
var e, A, n, a, s = this;
return On(this, function(i) {
switch (i.label) {
case 0:
return e = kb.isSameOrigin(t), A = !ih(t) && this._options.useCORS === !0 && Cn.SUPPORT_CORS_IMAGES && !e, n = !ih(t) && !e && !sh(t) && typeof this._options.proxy == "string" && Cn.SUPPORT_CORS_XHR && !A, !e && this._options.allowTaint === !1 && !ih(t) && !sh(t) && !n && !A ? [
2
/*return*/
] : (a = t, n ? [4, this.proxy(a)] : [3, 2]);
case 1:
a = i.sent(), i.label = 2;
case 2:
return this.context.logger.debug("Added image " + t.substring(0, 256)), [4, new Promise(function(o, l) {
var u = new Image();
u.onload = function() {
return o(u);
}, u.onerror = l, (I6(a) || A) && (u.crossOrigin = "anonymous"), u.src = a, u.complete === !0 && setTimeout(function() {
return o(u);
}, 500), s._options.imageTimeout > 0 && setTimeout(function() {
return l("Timed out (" + s._options.imageTimeout + "ms) loading image");
}, s._options.imageTimeout);
})];
case 3:
return [2, i.sent()];
}
});
});
}, r.prototype.has = function(t) {
return typeof this._cache[t] < "u";
}, r.prototype.keys = function() {
return Promise.resolve(Object.keys(this._cache));
}, r.prototype.proxy = function(t) {
var e = this, A = this._options.proxy;
if (!A)
throw new Error("No proxy defined");
var n = t.substring(0, 256);
return new Promise(function(a, s) {
var i = Cn.SUPPORT_RESPONSE_TYPE ? "blob" : "text", o = new XMLHttpRequest();
o.onload = function() {
if (o.status === 200)
if (i === "text")
a(o.response);
else {
var h = new FileReader();
h.addEventListener("load", function() {
return a(h.result);
}, !1), h.addEventListener("error", function(g) {
return s(g);
}, !1), h.readAsDataURL(o.response);
}
else
s("Failed to proxy resource " + n + " with status code " + o.status);
}, o.onerror = s;
var l = A.indexOf("?") > -1 ? "&" : "?";
if (o.open("GET", "" + A + l + "url=" + encodeURIComponent(t) + "&responseType=" + i), i !== "text" && o instanceof XMLHttpRequest && (o.responseType = i), e._options.imageTimeout) {
var u = e._options.imageTimeout;
o.timeout = u, o.ontimeout = function() {
return s("Timed out (" + u + "ms) proxying " + n);
};
}
o.send();
});
}, r;
})()
), Q6 = /^data:image\/svg\+xml/i, D6 = /^data:image\/.*;base64,/i, k6 = /^data:image\/.*/i, L6 = function(r) {
return Cn.SUPPORT_SVG_DRAWING || !_6(r);
}, ih = function(r) {
return k6.test(r);
}, I6 = function(r) {
return D6.test(r);
}, sh = function(r) {
return r.substr(0, 4) === "blob";
}, _6 = function(r) {
return r.substr(-3).toLowerCase() === "svg" || Q6.test(r);
}, _t = (
/** @class */
(function() {
function r(t, e) {
this.type = 0, this.x = t, this.y = e;
}
return r.prototype.add = function(t, e) {
return new r(this.x + t, this.y + e);
}, r;
})()
), po = function(r, t, e) {
return new _t(r.x + (t.x - r.x) * e, r.y + (t.y - r.y) * e);
}, Mu = (
/** @class */
(function() {
function r(t, e, A, n) {
this.type = 1, this.start = t, this.startControl = e, this.endControl = A, this.end = n;
}
return r.prototype.subdivide = function(t, e) {
var A = po(this.start, this.startControl, t), n = po(this.startControl, this.endControl, t), a = po(this.endControl, this.end, t), s = po(A, n, t), i = po(n, a, t), o = po(s, i, t);
return e ? new r(this.start, A, s, o) : new r(o, i, a, this.end);
}, r.prototype.add = function(t, e) {
return new r(this.start.add(t, e), this.startControl.add(t, e), this.endControl.add(t, e), this.end.add(t, e));
}, r.prototype.reverse = function() {
return new r(this.end, this.endControl, this.startControl, this.start);
}, r;
})()
), ka = function(r) {
return r.type === 1;
}, N6 = (
/** @class */
/* @__PURE__ */ (function() {
function r(t) {
var e = t.styles, A = t.bounds, n = hl(e.borderTopLeftRadius, A.width, A.height), a = n[0], s = n[1], i = hl(e.borderTopRightRadius, A.width, A.height), o = i[0], l = i[1], u = hl(e.borderBottomRightRadius, A.width, A.height), h = u[0], g = u[1], c = hl(e.borderBottomLeftRadius, A.width, A.height), p = c[0], m = c[1], y = [];
y.push((a + o) / A.width), y.push((p + h) / A.width), y.push((s + m) / A.height), y.push((l + g) / A.height);
var w = Math.max.apply(Math, y);
w > 1 && (a /= w, s /= w, o /= w, l /= w, h /= w, g /= w, p /= w, m /= w);
var E = A.width - o, C = A.height - g, F = A.width - h, H = A.height - m, q = e.borderTopWidth, N = e.borderRightWidth, M = e.borderBottomWidth, k = e.borderLeftWidth, O = dr(e.paddingTop, t.bounds.width), S = dr(e.paddingRight, t.bounds.width), U = dr(e.paddingBottom, t.bounds.width), W = dr(e.paddingLeft, t.bounds.width);
this.topLeftBorderDoubleOuterBox = a > 0 || s > 0 ? Cr(A.left + k / 3, A.top + q / 3, a - k / 3, s - q / 3, zA.TOP_LEFT) : new _t(A.left + k / 3, A.top + q / 3), this.topRightBorderDoubleOuterBox = a > 0 || s > 0 ? Cr(A.left + E, A.top + q / 3, o - N / 3, l - q / 3, zA.TOP_RIGHT) : new _t(A.left + A.width - N / 3, A.top + q / 3), this.bottomRightBorderDoubleOuterBox = h > 0 || g > 0 ? Cr(A.left + F, A.top + C, h - N / 3, g - M / 3, zA.BOTTOM_RIGHT) : new _t(A.left + A.width - N / 3, A.top + A.height - M / 3), this.bottomLeftBorderDoubleOuterBox = p > 0 || m > 0 ? Cr(A.left + k / 3, A.top + H, p - k / 3, m - M / 3, zA.BOTTOM_LEFT) : new _t(A.left + k / 3, A.top + A.height - M / 3), this.topLeftBorderDoubleInnerBox = a > 0 || s > 0 ? Cr(A.left + k * 2 / 3, A.top + q * 2 / 3, a - k * 2 / 3, s - q * 2 / 3, zA.TOP_LEFT) : new _t(A.left + k * 2 / 3, A.top + q * 2 / 3), this.topRightBorderDoubleInnerBox = a > 0 || s > 0 ? Cr(A.left + E, A.top + q * 2 / 3, o - N * 2 / 3, l - q * 2 / 3, zA.TOP_RIGHT) : new _t(A.left + A.width - N * 2 / 3, A.top + q * 2 / 3), this.bottomRightBorderDoubleInnerBox = h > 0 || g > 0 ? Cr(A.left + F, A.top + C, h - N * 2 / 3, g - M * 2 / 3, zA.BOTTOM_RIGHT) : new _t(A.left + A.width - N * 2 / 3, A.top + A.height - M * 2 / 3), this.bottomLeftBorderDoubleInnerBox = p > 0 || m > 0 ? Cr(A.left + k * 2 / 3, A.top + H, p - k * 2 / 3, m - M * 2 / 3, zA.BOTTOM_LEFT) : new _t(A.left + k * 2 / 3, A.top + A.height - M * 2 / 3), this.topLeftBorderStroke = a > 0 || s > 0 ? Cr(A.left + k / 2, A.top + q / 2, a - k / 2, s - q / 2, zA.TOP_LEFT) : new _t(A.left + k / 2, A.top + q / 2), this.topRightBorderStroke = a > 0 || s > 0 ? Cr(A.left + E, A.top + q / 2, o - N / 2, l - q / 2, zA.TOP_RIGHT) : new _t(A.left + A.width - N / 2, A.top + q / 2), this.bottomRightBorderStroke = h > 0 || g > 0 ? Cr(A.left + F, A.top + C, h - N / 2, g - M / 2, zA.BOTTOM_RIGHT) : new _t(A.left + A.width - N / 2, A.top + A.height - M / 2), this.bottomLeftBorderStroke = p > 0 || m > 0 ? Cr(A.left + k / 2, A.top + H, p - k / 2, m - M / 2, zA.BOTTOM_LEFT) : new _t(A.left + k / 2, A.top + A.height - M / 2), this.topLeftBorderBox = a > 0 || s > 0 ? Cr(A.left, A.top, a, s, zA.TOP_LEFT) : new _t(A.left, A.top), this.topRightBorderBox = o > 0 || l > 0 ? Cr(A.left + E, A.top, o, l, zA.TOP_RIGHT) : new _t(A.left + A.width, A.top), this.bottomRightBorderBox = h > 0 || g > 0 ? Cr(A.left + F, A.top + C, h, g, zA.BOTTOM_RIGHT) : new _t(A.left + A.width, A.top + A.height), this.bottomLeftBorderBox = p > 0 || m > 0 ? Cr(A.left, A.top + H, p, m, zA.BOTTOM_LEFT) : new _t(A.left, A.top + A.height), this.topLeftPaddingBox = a > 0 || s > 0 ? Cr(A.left + k, A.top + q, Math.max(0, a - k), Math.max(0, s - q), zA.TOP_LEFT) : new _t(A.left + k, A.top + q), this.topRightPaddingBox = o > 0 || l > 0 ? Cr(A.left + Math.min(E, A.width - N), A.top + q, E > A.width + N ? 0 : Math.max(0, o - N), Math.max(0, l - q), zA.TOP_RIGHT) : new _t(A.left + A.width - N, A.top + q), this.bottomRightPaddingBox = h > 0 || g > 0 ? Cr(A.left + Math.min(F, A.width - k), A.top + Math.min(C, A.height - M), Math.max(0, h - N), Math.max(0, g - M), zA.BOTTOM_RIGHT) : new _t(A.left + A.width - N, A.top + A.height - M), this.bottomLeftPaddingBox = p > 0 || m > 0 ? Cr(A.left + k, A.top + Math.min(H, A.height - M), Math.max(0, p - k), Math.max(0, m - M), zA.BOTTOM_LEFT) : new _t(A.left + k, A.top + A.height - M), this.topLeftContentBox = a > 0 || s > 0 ? Cr(A.left + k + W, A.top + q + O, Math.max(0, a - (k + W)), Math.max(0, s - (q + O)), zA.TOP_LEFT) : new _t(A.left + k + W, A.top + q + O), this.topRightContentBox = o > 0 || l > 0 ? Cr(A.left + Math.min(E, A.width + k + W), A.top + q + O, E > A.width + k + W ? 0 : o - k + W, l - (q + O), zA.TOP_RIGHT) : new _t(A.left + A.width - (N + S), A.top + q + O), this.bottomRightContentBox = h > 0 || g > 0 ? Cr(A.left + Math.min(F, A.width - (k + W)), A.top + Math.min(C, A.height + q + O), Math.max(0, h - (N + S)), g - (M + U), zA.BOTTOM_RIGHT) : new _t(A.left + A.width - (N + S), A.top + A.height - (M + U)), this.bottomLeftContentBox = p > 0 || m > 0 ? Cr(A.left + k + W, A.top + H, Math.max(0, p - (k + W)), m - (M + U), zA.BOTTOM_LEFT) : new _t(A.left + k + W, A.top + A.height - (M + U));
}
return r;
})()
), zA;
(function(r) {
r[r.TOP_LEFT = 0] = "TOP_LEFT", r[r.TOP_RIGHT = 1] = "TOP_RIGHT", r[r.BOTTOM_RIGHT = 2] = "BOTTOM_RIGHT", r[r.BOTTOM_LEFT = 3] = "BOTTOM_LEFT";
})(zA || (zA = {}));
var Cr = function(r, t, e, A, n) {
var a = 4 * ((Math.sqrt(2) - 1) / 3), s = e * a, i = A * a, o = r + e, l = t + A;
switch (n) {
case zA.TOP_LEFT:
return new Mu(new _t(r, l), new _t(r, l - i), new _t(o - s, t), new _t(o, t));
case zA.TOP_RIGHT:
return new Mu(new _t(r, t), new _t(r + s, t), new _t(o, l - i), new _t(o, l));
case zA.BOTTOM_RIGHT:
return new Mu(new _t(o, t), new _t(o, t + i), new _t(r + s, l), new _t(r, l));
case zA.BOTTOM_LEFT:
default:
return new Mu(new _t(o, l), new _t(o - s, l), new _t(r, t + i), new _t(r, t));
}
}, yc = function(r) {
return [r.topLeftBorderBox, r.topRightBorderBox, r.bottomRightBorderBox, r.bottomLeftBorderBox];
}, M6 = function(r) {
return [
r.topLeftContentBox,
r.topRightContentBox,
r.bottomRightContentBox,
r.bottomLeftContentBox
];
}, bc = function(r) {
return [
r.topLeftPaddingBox,
r.topRightPaddingBox,
r.bottomRightPaddingBox,
r.bottomLeftPaddingBox
];
}, O6 = (
/** @class */
/* @__PURE__ */ (function() {
function r(t, e, A) {
this.offsetX = t, this.offsetY = e, this.matrix = A, this.type = 0, this.target = 6;
}
return r;
})()
), Ou = (
/** @class */
/* @__PURE__ */ (function() {
function r(t, e) {
this.path = t, this.target = e, this.type = 1;
}
return r;
})()
), R6 = (
/** @class */
/* @__PURE__ */ (function() {
function r(t) {
this.opacity = t, this.type = 2, this.target = 6;
}
return r;
})()
), H6 = function(r) {
return r.type === 0;
}, Lb = function(r) {
return r.type === 1;
}, P6 = function(r) {
return r.type === 2;
}, qm = function(r, t) {
return r.length === t.length ? r.some(function(e, A) {
return e === t[A];
}) : !1;
}, K6 = function(r, t, e, A, n) {
return r.map(function(a, s) {
switch (s) {
case 0:
return a.add(t, e);
case 1:
return a.add(t + A, e);
case 2:
return a.add(t + A, e + n);
case 3:
return a.add(t, e + n);
}
return a;
});
}, Ib = (
/** @class */
/* @__PURE__ */ (function() {
function r(t) {
this.element = t, this.inlineLevel = [], this.nonInlineLevel = [], this.negativeZIndex = [], this.zeroOrAutoZIndexOrTransformedOrOpacity = [], this.positiveZIndex = [], this.nonPositionedFloats = [], this.nonPositionedInlineLevel = [];
}
return r;
})()
), _b = (
/** @class */
(function() {
function r(t, e) {
if (this.container = t, this.parent = e, this.effects = [], this.curves = new N6(this.container), this.container.styles.opacity < 1 && this.effects.push(new R6(this.container.styles.opacity)), this.container.styles.transform !== null) {
var A = this.container.bounds.left + this.container.styles.transformOrigin[0].number, n = this.container.bounds.top + this.container.styles.transformOrigin[1].number, a = this.container.styles.transform;
this.effects.push(new O6(A, n, a));
}
if (this.container.styles.overflowX !== 0) {
var s = yc(this.curves), i = bc(this.curves);
qm(s, i) ? this.effects.push(new Ou(
s,
6
/* CONTENT */
)) : (this.effects.push(new Ou(
s,
2
/* BACKGROUND_BORDERS */
)), this.effects.push(new Ou(
i,
4
/* CONTENT */
)));
}
}
return r.prototype.getEffects = function(t) {
for (var e = [
2,
3
/* FIXED */
].indexOf(this.container.styles.position) === -1, A = this.parent, n = this.effects.slice(0); A; ) {
var a = A.effects.filter(function(o) {
return !Lb(o);
});
if (e || A.container.styles.position !== 0 || !A.parent) {
if (n.unshift.apply(n, a), e = [
2,
3
/* FIXED */
].indexOf(A.container.styles.position) === -1, A.container.styles.overflowX !== 0) {
var s = yc(A.curves), i = bc(A.curves);
qm(s, i) || n.unshift(new Ou(
i,
6
/* CONTENT */
));
}
} else
n.unshift.apply(n, a);
A = A.parent;
}
return n.filter(function(o) {
return on(o.target, t);
});
}, r;
})()
), Lp = function(r, t, e, A) {
r.container.elements.forEach(function(n) {
var a = on(
n.flags,
4
/* CREATES_REAL_STACKING_CONTEXT */
), s = on(
n.flags,
2
/* CREATES_STACKING_CONTEXT */
), i = new _b(n, r);
on(
n.styles.display,
2048
/* LIST_ITEM */
) && A.push(i);
var o = on(
n.flags,
8
/* IS_LIST_OWNER */
) ? [] : A;
if (a || s) {
var l = a || n.styles.isPositioned() ? e : t, u = new Ib(i);
if (n.styles.isPositioned() || n.styles.opacity < 1 || n.styles.isTransformed()) {
var h = n.styles.zIndex.order;
if (h < 0) {
var g = 0;
l.negativeZIndex.some(function(p, m) {
return h > p.element.container.styles.zIndex.order ? (g = m, !1) : g > 0;
}), l.negativeZIndex.splice(g, 0, u);
} else if (h > 0) {
var c = 0;
l.positiveZIndex.some(function(p, m) {
return h >= p.element.container.styles.zIndex.order ? (c = m + 1, !1) : c > 0;
}), l.positiveZIndex.splice(c, 0, u);
} else
l.zeroOrAutoZIndexOrTransformedOrOpacity.push(u);
} else
n.styles.isFloating() ? l.nonPositionedFloats.push(u) : l.nonPositionedInlineLevel.push(u);
Lp(i, u, a ? u : e, o);
} else
n.styles.isInlineLevel() ? t.inlineLevel.push(i) : t.nonInlineLevel.push(i), Lp(i, t, e, o);
on(
n.flags,
8
/* IS_LIST_OWNER */
) && Nb(n, o);
});
}, Nb = function(r, t) {
for (var e = r instanceof Up ? r.start : 1, A = r instanceof Up ? r.reversed : !1, n = 0; n < t.length; n++) {
var a = t[n];
a.container instanceof wb && typeof a.container.value == "number" && a.container.value !== 0 && (e = a.container.value), a.listValue = Ul(e, a.container.styles.listStyleType, !0), e += A ? -1 : 1;
}
}, V6 = function(r) {
var t = new _b(r, null), e = new Ib(t), A = [];
return Lp(t, e, e, A), Nb(t.container, A), e;
}, jm = function(r, t) {
switch (t) {
case 0:
return Ia(r.topLeftBorderBox, r.topLeftPaddingBox, r.topRightBorderBox, r.topRightPaddingBox);
case 1:
return Ia(r.topRightBorderBox, r.topRightPaddingBox, r.bottomRightBorderBox, r.bottomRightPaddingBox);
case 2:
return Ia(r.bottomRightBorderBox, r.bottomRightPaddingBox, r.bottomLeftBorderBox, r.bottomLeftPaddingBox);
case 3:
default:
return Ia(r.bottomLeftBorderBox, r.bottomLeftPaddingBox, r.topLeftBorderBox, r.topLeftPaddingBox);
}
}, q6 = function(r, t) {
switch (t) {
case 0:
return Ia(r.topLeftBorderBox, r.topLeftBorderDoubleOuterBox, r.topRightBorderBox, r.topRightBorderDoubleOuterBox);
case 1:
return Ia(r.topRightBorderBox, r.topRightBorderDoubleOuterBox, r.bottomRightBorderBox, r.bottomRightBorderDoubleOuterBox);
case 2:
return Ia(r.bottomRightBorderBox, r.bottomRightBorderDoubleOuterBox, r.bottomLeftBorderBox, r.bottomLeftBorderDoubleOuterBox);
case 3:
default:
return Ia(r.bottomLeftBorderBox, r.bottomLeftBorderDoubleOuterBox, r.topLeftBorderBox, r.topLeftBorderDoubleOuterBox);
}
}, j6 = function(r, t) {
switch (t) {
case 0:
return Ia(r.topLeftBorderDoubleInnerBox, r.topLeftPaddingBox, r.topRightBorderDoubleInnerBox, r.topRightPaddingBox);
case 1:
return Ia(r.topRightBorderDoubleInnerBox, r.topRightPaddingBox, r.bottomRightBorderDoubleInnerBox, r.bottomRightPaddingBox);
case 2:
return Ia(r.bottomRightBorderDoubleInnerBox, r.bottomRightPaddingBox, r.bottomLeftBorderDoubleInnerBox, r.bottomLeftPaddingBox);
case 3:
default:
return Ia(r.bottomLeftBorderDoubleInnerBox, r.bottomLeftPaddingBox, r.topLeftBorderDoubleInnerBox, r.topLeftPaddingBox);
}
}, W6 = function(r, t) {
switch (t) {
case 0:
return Ru(r.topLeftBorderStroke, r.topRightBorderStroke);
case 1:
return Ru(r.topRightBorderStroke, r.bottomRightBorderStroke);
case 2:
return Ru(r.bottomRightBorderStroke, r.bottomLeftBorderStroke);
case 3:
default:
return Ru(r.bottomLeftBorderStroke, r.topLeftBorderStroke);
}
}, Ru = function(r, t) {
var e = [];
return ka(r) ? e.push(r.subdivide(0.5, !1)) : e.push(r), ka(t) ? e.push(t.subdivide(0.5, !0)) : e.push(t), e;
}, Ia = function(r, t, e, A) {
var n = [];
return ka(r) ? n.push(r.subdivide(0.5, !1)) : n.push(r), ka(e) ? n.push(e.subdivide(0.5, !0)) : n.push(e), ka(A) ? n.push(A.subdivide(0.5, !0).reverse()) : n.push(A), ka(t) ? n.push(t.subdivide(0.5, !1).reverse()) : n.push(t), n;
}, Mb = function(r) {
var t = r.bounds, e = r.styles;
return t.add(e.borderLeftWidth, e.borderTopWidth, -(e.borderRightWidth + e.borderLeftWidth), -(e.borderTopWidth + e.borderBottomWidth));
}, Cc = function(r) {
var t = r.styles, e = r.bounds, A = dr(t.paddingLeft, e.width), n = dr(t.paddingRight, e.width), a = dr(t.paddingTop, e.width), s = dr(t.paddingBottom, e.width);
return e.add(A + t.borderLeftWidth, a + t.borderTopWidth, -(t.borderRightWidth + t.borderLeftWidth + A + n), -(t.borderTopWidth + t.borderBottomWidth + a + s));
}, G6 = function(r, t) {
return r === 0 ? t.bounds : r === 2 ? Cc(t) : Mb(t);
}, Y6 = function(r, t) {
return r === 0 ? t.bounds : r === 2 ? Cc(t) : Mb(t);
}, oh = function(r, t, e) {
var A = G6(yo(r.styles.backgroundOrigin, t), r), n = Y6(yo(r.styles.backgroundClip, t), r), a = $6(yo(r.styles.backgroundSize, t), e, A), s = a[0], i = a[1], o = hl(yo(r.styles.backgroundPosition, t), A.width - s, A.height - i), l = z6(yo(r.styles.backgroundRepeat, t), o, a, A, n), u = Math.round(A.left + o[0]), h = Math.round(A.top + o[1]);
return [l, u, h, s, i];
}, vo = function(r) {
return sr(r) && r.value === Uo.AUTO;
}, Hu = function(r) {
return typeof r == "number";
}, $6 = function(r, t, e) {
var A = t[0], n = t[1], a = t[2], s = r[0], i = r[1];
if (!s)
return [0, 0];
if (en(s) && i && en(i))
return [dr(s, e.width), dr(i, e.height)];
var o = Hu(a);
if (sr(s) && (s.value === Uo.CONTAIN || s.value === Uo.COVER)) {
if (Hu(a)) {
var l = e.width / e.height;
return l < a != (s.value === Uo.COVER) ? [e.width, e.width / a] : [e.height * a, e.height];
}
return [e.width, e.height];
}
var u = Hu(A), h = Hu(n), g = u || h;
if (vo(s) && (!i || vo(i))) {
if (u && h)
return [A, n];
if (!o && !g)
return [e.width, e.height];
if (g && o) {
var c = u ? A : n * a, p = h ? n : A / a;
return [c, p];
}
var m = u ? A : e.width, y = h ? n : e.height;
return [m, y];
}
if (o) {
var w = 0, E = 0;
return en(s) ? w = dr(s, e.width) : en(i) && (E = dr(i, e.height)), vo(s) ? w = E * a : (!i || vo(i)) && (E = w / a), [w, E];
}
var C = null, F = null;
if (en(s) ? C = dr(s, e.width) : i && en(i) && (F = dr(i, e.height)), C !== null && (!i || vo(i)) && (F = u && h ? C / A * n : e.height), F !== null && vo(s) && (C = u && h ? F / n * A : e.width), C !== null && F !== null)
return [C, F];
throw new Error("Unable to calculate background-size for element");
}, yo = function(r, t) {
var e = r[t];
return typeof e > "u" ? r[0] : e;
}, z6 = function(r, t, e, A, n) {
var a = t[0], s = t[1], i = e[0], o = e[1];
switch (r) {
case 2:
return [
new _t(Math.round(A.left), Math.round(A.top + s)),
new _t(Math.round(A.left + A.width), Math.round(A.top + s)),
new _t(Math.round(A.left + A.width), Math.round(o + A.top + s)),
new _t(Math.round(A.left), Math.round(o + A.top + s))
];
case 3:
return [
new _t(Math.round(A.left + a), Math.round(A.top)),
new _t(Math.round(A.left + a + i), Math.round(A.top)),
new _t(Math.round(A.left + a + i), Math.round(A.height + A.top)),
new _t(Math.round(A.left + a), Math.round(A.height + A.top))
];
case 1:
return [
new _t(Math.round(A.left + a), Math.round(A.top + s)),
new _t(Math.round(A.left + a + i), Math.round(A.top + s)),
new _t(Math.round(A.left + a + i), Math.round(A.top + s + o)),
new _t(Math.round(A.left + a), Math.round(A.top + s + o))
];
default:
return [
new _t(Math.round(n.left), Math.round(n.top)),
new _t(Math.round(n.left + n.width), Math.round(n.top)),
new _t(Math.round(n.left + n.width), Math.round(n.height + n.top)),
new _t(Math.round(n.left), Math.round(n.height + n.top))
];
}
}, X6 = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", Wm = "Hidden Text", J6 = (
/** @class */
(function() {
function r(t) {
this._data = {}, this._document = t;
}
return r.prototype.parseMetrics = function(t, e) {
var A = this._document.createElement("div"), n = this._document.createElement("img"), a = this._document.createElement("span"), s = this._document.body;
A.style.visibility = "hidden", A.style.fontFamily = t, A.style.fontSize = e, A.style.margin = "0", A.style.padding = "0", A.style.whiteSpace = "nowrap", s.appendChild(A), n.src = X6, n.width = 1, n.height = 1, n.style.margin = "0", n.style.padding = "0", n.style.verticalAlign = "baseline", a.style.fontFamily = t, a.style.fontSize = e, a.style.margin = "0", a.style.padding = "0", a.appendChild(this._document.createTextNode(Wm)), A.appendChild(a), A.appendChild(n);
var i = n.offsetTop - a.offsetTop + 2;
A.removeChild(a), A.appendChild(this._document.createTextNode(Wm)), A.style.lineHeight = "normal", n.style.verticalAlign = "super";
var o = n.offsetTop - A.offsetTop + 2;
return s.removeChild(A), { baseline: i, middle: o };
}, r.prototype.getMetrics = function(t, e) {
var A = t + " " + e;
return typeof this._data[A] > "u" && (this._data[A] = this.parseMetrics(t, e)), this._data[A];
}, r;
})()
), Ob = (
/** @class */
/* @__PURE__ */ (function() {
function r(t, e) {
this.context = t, this.options = e;
}
return r;
})()
), Z6 = 1e4, eN = (
/** @class */
(function(r) {
ei(t, r);
function t(e, A) {
var n = r.call(this, e, A) || this;
return n._activeEffects = [], n.canvas = A.canvas ? A.canvas : document.createElement("canvas"), n.ctx = n.canvas.getContext("2d"), A.canvas || (n.canvas.width = Math.floor(A.width * A.scale), n.canvas.height = Math.floor(A.height * A.scale), n.canvas.style.width = A.width + "px", n.canvas.style.height = A.height + "px"), n.fontMetrics = new J6(document), n.ctx.scale(n.options.scale, n.options.scale), n.ctx.translate(-A.x, -A.y), n.ctx.textBaseline = "bottom", n._activeEffects = [], n.context.logger.debug("Canvas renderer initialized (" + A.width + "x" + A.height + ") with scale " + A.scale), n;
}
return t.prototype.applyEffects = function(e) {
for (var A = this; this._activeEffects.length; )
this.popEffect();
e.forEach(function(n) {
return A.applyEffect(n);
});
}, t.prototype.applyEffect = function(e) {
this.ctx.save(), P6(e) && (this.ctx.globalAlpha = e.opacity), H6(e) && (this.ctx.translate(e.offsetX, e.offsetY), this.ctx.transform(e.matrix[0], e.matrix[1], e.matrix[2], e.matrix[3], e.matrix[4], e.matrix[5]), this.ctx.translate(-e.offsetX, -e.offsetY)), Lb(e) && (this.path(e.path), this.ctx.clip()), this._activeEffects.push(e);
}, t.prototype.popEffect = function() {
this._activeEffects.pop(), this.ctx.restore();
}, t.prototype.renderStack = function(e) {
return Yn(this, void 0, void 0, function() {
var A;
return On(this, function(n) {
switch (n.label) {
case 0:
return A = e.element.container.styles, A.isVisible() ? [4, this.renderStackContent(e)] : [3, 2];
case 1:
n.sent(), n.label = 2;
case 2:
return [
2
/*return*/
];
}
});
});
}, t.prototype.renderNode = function(e) {
return Yn(this, void 0, void 0, function() {
return On(this, function(A) {
switch (A.label) {
case 0:
if (on(
e.container.flags,
16
/* DEBUG_RENDER */
))
debugger;
return e.container.styles.isVisible() ? [4, this.renderNodeBackgroundAndBorders(e)] : [3, 3];
case 1:
return A.sent(), [4, this.renderNodeContent(e)];
case 2:
A.sent(), A.label = 3;
case 3:
return [
2
/*return*/
];
}
});
});
}, t.prototype.renderTextWithLetterSpacing = function(e, A, n) {
var a = this;
if (A === 0)
this.ctx.fillText(e.text, e.bounds.left, e.bounds.top + n);
else {
var s = av(e.text);
s.reduce(function(i, o) {
return a.ctx.fillText(o, i, e.bounds.top + n), i + a.ctx.measureText(o).width;
}, e.bounds.left);
}
}, t.prototype.createFontStyle = function(e) {
var A = e.fontVariant.filter(function(s) {
return s === "normal" || s === "small-caps";
}).join(""), n = aN(e.fontFamily).join(", "), a = Dl(e.fontSize) ? "" + e.fontSize.number + e.fontSize.unit : e.fontSize.number + "px";
return [
[e.fontStyle, A, e.fontWeight, a, n].join(" "),
n,
a
];
}, t.prototype.renderTextNode = function(e, A) {
return Yn(this, void 0, void 0, function() {
var n, a, s, i, o, l, u, h, g = this;
return On(this, function(c) {
return n = this.createFontStyle(A), a = n[0], s = n[1], i = n[2], this.ctx.font = a, this.ctx.direction = A.direction === 1 ? "rtl" : "ltr", this.ctx.textAlign = "left", this.ctx.textBaseline = "alphabetic", o = this.fontMetrics.getMetrics(s, i), l = o.baseline, u = o.middle, h = A.paintOrder, e.textBounds.forEach(function(p) {
h.forEach(function(m) {
switch (m) {
case 0:
g.ctx.fillStyle = fn(A.color), g.renderTextWithLetterSpacing(p, A.letterSpacing, l);
var y = A.textShadow;
y.length && p.text.trim().length && (y.slice(0).reverse().forEach(function(w) {
g.ctx.shadowColor = fn(w.color), g.ctx.shadowOffsetX = w.offsetX.number * g.options.scale, g.ctx.shadowOffsetY = w.offsetY.number * g.options.scale, g.ctx.shadowBlur = w.blur.number, g.renderTextWithLetterSpacing(p, A.letterSpacing, l);
}), g.ctx.shadowColor = "", g.ctx.shadowOffsetX = 0, g.ctx.shadowOffsetY = 0, g.ctx.shadowBlur = 0), A.textDecorationLine.length && (g.ctx.fillStyle = fn(A.textDecorationColor || A.color), A.textDecorationLine.forEach(function(w) {
switch (w) {
case 1:
g.ctx.fillRect(p.bounds.left, Math.round(p.bounds.top + l), p.bounds.width, 1);
break;
case 2:
g.ctx.fillRect(p.bounds.left, Math.round(p.bounds.top), p.bounds.width, 1);
break;
case 3:
g.ctx.fillRect(p.bounds.left, Math.ceil(p.bounds.top + u), p.bounds.width, 1);
break;
}
}));
break;
case 1:
A.webkitTextStrokeWidth && p.text.trim().length && (g.ctx.strokeStyle = fn(A.webkitTextStrokeColor), g.ctx.lineWidth = A.webkitTextStrokeWidth, g.ctx.lineJoin = window.chrome ? "miter" : "round", g.ctx.strokeText(p.text, p.bounds.left, p.bounds.top + l)), g.ctx.strokeStyle = "", g.ctx.lineWidth = 0, g.ctx.lineJoin = "miter";
break;
}
});
}), [
2
/*return*/
];
});
});
}, t.prototype.renderReplacedElement = function(e, A, n) {
if (n && e.intrinsicWidth > 0 && e.intrinsicHeight > 0) {
var a = Cc(e), s = bc(A);
this.path(s), this.ctx.save(), this.ctx.clip(), this.ctx.drawImage(n, 0, 0, e.intrinsicWidth, e.intrinsicHeight, a.left, a.top, a.width, a.height), this.ctx.restore();
}
}, t.prototype.renderNodeContent = function(e) {
return Yn(this, void 0, void 0, function() {
var A, n, a, s, i, o, E, E, l, u, h, g, F, c, p, H, m, y, w, E, C, F, H;
return On(this, function(q) {
switch (q.label) {
case 0:
this.applyEffects(e.getEffects(
4
/* CONTENT */
)), A = e.container, n = e.curves, a = A.styles, s = 0, i = A.textNodes, q.label = 1;
case 1:
return s < i.length ? (o = i[s], [4, this.renderTextNode(o, a)]) : [3, 4];
case 2:
q.sent(), q.label = 3;
case 3:
return s++, [3, 1];
case 4:
if (!(A instanceof pb)) return [3, 8];
q.label = 5;
case 5:
return q.trys.push([5, 7, , 8]), [4, this.context.cache.match(A.src)];
case 6:
return E = q.sent(), this.renderReplacedElement(A, n, E), [3, 8];
case 7:
return q.sent(), this.context.logger.error("Error loading image " + A.src), [3, 8];
case 8:
if (A instanceof vb && this.renderReplacedElement(A, n, A.canvas), !(A instanceof mb)) return [3, 12];
q.label = 9;
case 9:
return q.trys.push([9, 11, , 12]), [4, this.context.cache.match(A.svg)];
case 10:
return E = q.sent(), this.renderReplacedElement(A, n, E), [3, 12];
case 11:
return q.sent(), this.context.logger.error("Error loading svg " + A.svg.substring(0, 255)), [3, 12];
case 12:
return A instanceof bb && A.tree ? (l = new t(this.context, {
scale: this.options.scale,
backgroundColor: A.backgroundColor,
x: 0,
y: 0,
width: A.width,
height: A.height
}), [4, l.render(A.tree)]) : [3, 14];
case 13:
u = q.sent(), A.width && A.height && this.ctx.drawImage(u, 0, 0, A.width, A.height, A.bounds.left, A.bounds.top, A.bounds.width, A.bounds.height), q.label = 14;
case 14:
if (A instanceof iv && (h = Math.min(A.bounds.width, A.bounds.height), A.type === vc ? A.checked && (this.ctx.save(), this.path([
new _t(A.bounds.left + h * 0.39363, A.bounds.top + h * 0.79),
new _t(A.bounds.left + h * 0.16, A.bounds.top + h * 0.5549),
new _t(A.bounds.left + h * 0.27347, A.bounds.top + h * 0.44071),
new _t(A.bounds.left + h * 0.39694, A.bounds.top + h * 0.5649),
new _t(A.bounds.left + h * 0.72983, A.bounds.top + h * 0.23),
new _t(A.bounds.left + h * 0.84, A.bounds.top + h * 0.34085),
new _t(A.bounds.left + h * 0.39363, A.bounds.top + h * 0.79)
]), this.ctx.fillStyle = fn(Lm), this.ctx.fill(), this.ctx.restore()) : A.type === mc && A.checked && (this.ctx.save(), this.ctx.beginPath(), this.ctx.arc(A.bounds.left + h / 2, A.bounds.top + h / 2, h / 4, 0, Math.PI * 2, !0), this.ctx.fillStyle = fn(Lm), this.ctx.fill(), this.ctx.restore())), tN(A) && A.value.length) {
switch (g = this.createFontStyle(a), F = g[0], c = g[1], p = this.fontMetrics.getMetrics(F, c).baseline, this.ctx.font = F, this.ctx.fillStyle = fn(a.color), this.ctx.textBaseline = "alphabetic", this.ctx.textAlign = rN(A.styles.textAlign), H = Cc(A), m = 0, A.styles.textAlign) {
case 1:
m += H.width / 2;
break;
case 2:
m += H.width;
break;
}
y = H.add(m, 0, 0, -H.height / 2 + 1), this.ctx.save(), this.path([
new _t(H.left, H.top),
new _t(H.left + H.width, H.top),
new _t(H.left + H.width, H.top + H.height),
new _t(H.left, H.top + H.height)
]), this.ctx.clip(), this.renderTextWithLetterSpacing(new yl(A.value, y), a.letterSpacing, p), this.ctx.restore(), this.ctx.textBaseline = "alphabetic", this.ctx.textAlign = "left";
}
if (!on(
A.styles.display,
2048
/* LIST_ITEM */
)) return [3, 20];
if (A.styles.listStyleImage === null) return [3, 19];
if (w = A.styles.listStyleImage, w.type !== 0) return [3, 18];
E = void 0, C = w.url, q.label = 15;
case 15:
return q.trys.push([15, 17, , 18]), [4, this.context.cache.match(C)];
case 16:
return E = q.sent(), this.ctx.drawImage(E, A.bounds.left - (E.width + 10), A.bounds.top), [3, 18];
case 17:
return q.sent(), this.context.logger.error("Error loading list-style-image " + C), [3, 18];
case 18:
return [3, 20];
case 19:
e.listValue && A.styles.listStyleType !== -1 && (F = this.createFontStyle(a)[0], this.ctx.font = F, this.ctx.fillStyle = fn(a.color), this.ctx.textBaseline = "middle", this.ctx.textAlign = "right", H = new Ni(A.bounds.left, A.bounds.top + dr(A.styles.paddingTop, A.bounds.width), A.bounds.width, pm(a.lineHeight, a.fontSize.number) / 2 + 1), this.renderTextWithLetterSpacing(new yl(e.listValue, H), a.letterSpacing, pm(a.lineHeight, a.fontSize.number) / 2 + 2), this.ctx.textBaseline = "bottom", this.ctx.textAlign = "left"), q.label = 20;
case 20:
return [
2
/*return*/
];
}
});
});
}, t.prototype.renderStackContent = function(e) {
return Yn(this, void 0, void 0, function() {
var A, n, w, a, s, w, i, o, w, l, u, w, h, g, w, c, p, w, m, y, w;
return On(this, function(E) {
switch (E.label) {
case 0:
if (on(
e.element.container.flags,
16
/* DEBUG_RENDER */
))
debugger;
return [4, this.renderNodeBackgroundAndBorders(e.element)];
case 1:
E.sent(), A = 0, n = e.negativeZIndex, E.label = 2;
case 2:
return A < n.length ? (w = n[A], [4, this.renderStack(w)]) : [3, 5];
case 3:
E.sent(), E.label = 4;
case 4:
return A++, [3, 2];
case 5:
return [4, this.renderNodeContent(e.element)];
case 6:
E.sent(), a = 0, s = e.nonInlineLevel, E.label = 7;
case 7:
return a < s.length ? (w = s[a], [4, this.renderNode(w)]) : [3, 10];
case 8:
E.sent(), E.label = 9;
case 9:
return a++, [3, 7];
case 10:
i = 0, o = e.nonPositionedFloats, E.label = 11;
case 11:
return i < o.length ? (w = o[i], [4, this.renderStack(w)]) : [3, 14];
case 12:
E.sent(), E.label = 13;
case 13:
return i++, [3, 11];
case 14:
l = 0, u = e.nonPositionedInlineLevel, E.label = 15;
case 15:
return l < u.length ? (w = u[l], [4, this.renderStack(w)]) : [3, 18];
case 16:
E.sent(), E.label = 17;
case 17:
return l++, [3, 15];
case 18:
h = 0, g = e.inlineLevel, E.label = 19;
case 19:
return h < g.length ? (w = g[h], [4, this.renderNode(w)]) : [3, 22];
case 20:
E.sent(), E.label = 21;
case 21:
return h++, [3, 19];
case 22:
c = 0, p = e.zeroOrAutoZIndexOrTransformedOrOpacity, E.label = 23;
case 23:
return c < p.length ? (w = p[c], [4, this.renderStack(w)]) : [3, 26];
case 24:
E.sent(), E.label = 25;
case 25:
return c++, [3, 23];
case 26:
m = 0, y = e.positiveZIndex, E.label = 27;
case 27:
return m < y.length ? (w = y[m], [4, this.renderStack(w)]) : [3, 30];
case 28:
E.sent(), E.label = 29;
case 29:
return m++, [3, 27];
case 30:
return [
2
/*return*/
];
}
});
});
}, t.prototype.mask = function(e) {
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(e.slice(0).reverse()), this.ctx.closePath();
}, t.prototype.path = function(e) {
this.ctx.beginPath(), this.formatPath(e), this.ctx.closePath();
}, t.prototype.formatPath = function(e) {
var A = this;
e.forEach(function(n, a) {
var s = ka(n) ? n.start : n;
a === 0 ? A.ctx.moveTo(s.x, s.y) : A.ctx.lineTo(s.x, s.y), ka(n) && A.ctx.bezierCurveTo(n.startControl.x, n.startControl.y, n.endControl.x, n.endControl.y, n.end.x, n.end.y);
});
}, t.prototype.renderRepeat = function(e, A, n, a) {
this.path(e), this.ctx.fillStyle = A, this.ctx.translate(n, a), this.ctx.fill(), this.ctx.translate(-n, -a);
}, t.prototype.resizeImage = function(e, A, n) {
var a;
if (e.width === A && e.height === n)
return e;
var s = (a = this.canvas.ownerDocument) !== null && a !== void 0 ? a : document, i = s.createElement("canvas");
i.width = Math.max(1, A), i.height = Math.max(1, n);
var o = i.getContext("2d");
return o.drawImage(e, 0, 0, e.width, e.height, 0, 0, A, n), i;
}, t.prototype.renderBackgroundImage = function(e) {
return Yn(this, void 0, void 0, function() {
var A, n, a, s, i, o;
return On(this, function(l) {
switch (l.label) {
case 0:
A = e.styles.backgroundImage.length - 1, n = function(u) {
var h, g, c, O, ue, Z, W, I, M, p, O, ue, Z, W, I, m, y, w, E, C, F, H, q, N, M, k, O, S, U, W, I, le, ue, Z, ee, X, Ae, oe, x, L, j, $;
return On(this, function(re) {
switch (re.label) {
case 0:
if (u.type !== 0) return [3, 5];
h = void 0, g = u.url, re.label = 1;
case 1:
return re.trys.push([1, 3, , 4]), [4, a.context.cache.match(g)];
case 2:
return h = re.sent(), [3, 4];
case 3:
return re.sent(), a.context.logger.error("Error loading background-image " + g), [3, 4];
case 4:
return h && (c = oh(e, A, [
h.width,
h.height,
h.width / h.height
]), O = c[0], ue = c[1], Z = c[2], W = c[3], I = c[4], M = a.ctx.createPattern(a.resizeImage(h, W, I), "repeat"), a.renderRepeat(O, M, ue, Z)), [3, 6];
case 5:
HL(u) ? (p = oh(e, A, [null, null, null]), O = p[0], ue = p[1], Z = p[2], W = p[3], I = p[4], m = _L(u.angle, W, I), y = m[0], w = m[1], E = m[2], C = m[3], F = m[4], H = document.createElement("canvas"), H.width = W, H.height = I, q = H.getContext("2d"), N = q.createLinearGradient(w, C, E, F), dm(u.stops, y).forEach(function(pe) {
return N.addColorStop(pe.stop, fn(pe.color));
}), q.fillStyle = N, q.fillRect(0, 0, W, I), W > 0 && I > 0 && (M = a.ctx.createPattern(H, "repeat"), a.renderRepeat(O, M, ue, Z))) : PL(u) && (k = oh(e, A, [
null,
null,
null
]), O = k[0], S = k[1], U = k[2], W = k[3], I = k[4], le = u.position.length === 0 ? [Av] : u.position, ue = dr(le[0], W), Z = dr(le[le.length - 1], I), ee = NL(u, ue, Z, W, I), X = ee[0], Ae = ee[1], X > 0 && Ae > 0 && (oe = a.ctx.createRadialGradient(S + ue, U + Z, 0, S + ue, U + Z, X), dm(u.stops, X * 2).forEach(function(pe) {
return oe.addColorStop(pe.stop, fn(pe.color));
}), a.path(O), a.ctx.fillStyle = oe, X !== Ae ? (x = e.bounds.left + 0.5 * e.bounds.width, L = e.bounds.top + 0.5 * e.bounds.height, j = Ae / X, $ = 1 / j, a.ctx.save(), a.ctx.translate(x, L), a.ctx.transform(1, 0, 0, j, 0, 0), a.ctx.translate(-x, -L), a.ctx.fillRect(S, $ * (U - L) + L, W, I * $), a.ctx.restore()) : a.ctx.fill())), re.label = 6;
case 6:
return A--, [
2
/*return*/
];
}
});
}, a = this, s = 0, i = e.styles.backgroundImage.slice(0).reverse(), l.label = 1;
case 1:
return s < i.length ? (o = i[s], [5, n(o)]) : [3, 4];
case 2:
l.sent(), l.label = 3;
case 3:
return s++, [3, 1];
case 4:
return [
2
/*return*/
];
}
});
});
}, t.prototype.renderSolidBorder = function(e, A, n) {
return Yn(this, void 0, void 0, function() {
return On(this, function(a) {
return this.path(jm(n, A)), this.ctx.fillStyle = fn(e), this.ctx.fill(), [
2
/*return*/
];
});
});
}, t.prototype.renderDoubleBorder = function(e, A, n, a) {
return Yn(this, void 0, void 0, function() {
var s, i;
return On(this, function(o) {
switch (o.label) {
case 0:
return A < 3 ? [4, this.renderSolidBorder(e, n, a)] : [3, 2];
case 1:
return o.sent(), [
2
/*return*/
];
case 2:
return s = q6(a, n), this.path(s), this.ctx.fillStyle = fn(e), this.ctx.fill(), i = j6(a, n), this.path(i), this.ctx.fill(), [
2
/*return*/
];
}
});
});
}, t.prototype.renderNodeBackgroundAndBorders = function(e) {
return Yn(this, void 0, void 0, function() {
var A, n, a, s, i, o, l, u, h = this;
return On(this, function(g) {
switch (g.label) {
case 0:
return this.applyEffects(e.getEffects(
2
/* BACKGROUND_BORDERS */
)), A = e.container.styles, n = !ds(A.backgroundColor) || A.backgroundImage.length, a = [
{ style: A.borderTopStyle, color: A.borderTopColor, width: A.borderTopWidth },
{ style: A.borderRightStyle, color: A.borderRightColor, width: A.borderRightWidth },
{ style: A.borderBottomStyle, color: A.borderBottomColor, width: A.borderBottomWidth },
{ style: A.borderLeftStyle, color: A.borderLeftColor, width: A.borderLeftWidth }
], s = AN(yo(A.backgroundClip, 0), e.curves), n || A.boxShadow.length ? (this.ctx.save(), this.path(s), this.ctx.clip(), ds(A.backgroundColor) || (this.ctx.fillStyle = fn(A.backgroundColor), this.ctx.fill()), [4, this.renderBackgroundImage(e.container)]) : [3, 2];
case 1:
g.sent(), this.ctx.restore(), A.boxShadow.slice(0).reverse().forEach(function(c) {
h.ctx.save();
var p = yc(e.curves), m = c.inset ? 0 : Z6, y = K6(p, -m + (c.inset ? 1 : -1) * c.spread.number, (c.inset ? 1 : -1) * c.spread.number, c.spread.number * (c.inset ? -2 : 2), c.spread.number * (c.inset ? -2 : 2));
c.inset ? (h.path(p), h.ctx.clip(), h.mask(y)) : (h.mask(p), h.ctx.clip(), h.path(y)), h.ctx.shadowOffsetX = c.offsetX.number + m, h.ctx.shadowOffsetY = c.offsetY.number, h.ctx.shadowColor = fn(c.color), h.ctx.shadowBlur = c.blur.number, h.ctx.fillStyle = c.inset ? fn(c.color) : "rgba(0,0,0,1)", h.ctx.fill(), h.ctx.restore();
}), g.label = 2;
case 2:
i = 0, o = 0, l = a, g.label = 3;
case 3:
return o < l.length ? (u = l[o], u.style !== 0 && !ds(u.color) && u.width > 0 ? u.style !== 2 ? [3, 5] : [4, this.renderDashedDottedBorder(
u.color,
u.width,
i,
e.curves,
2
/* DASHED */
)] : [3, 11]) : [3, 13];
case 4:
return g.sent(), [3, 11];
case 5:
return u.style !== 3 ? [3, 7] : [4, this.renderDashedDottedBorder(
u.color,
u.width,
i,
e.curves,
3
/* DOTTED */
)];
case 6:
return g.sent(), [3, 11];
case 7:
return u.style !== 4 ? [3, 9] : [4, this.renderDoubleBorder(u.color, u.width, i, e.curves)];
case 8:
return g.sent(), [3, 11];
case 9:
return [4, this.renderSolidBorder(u.color, i, e.curves)];
case 10:
g.sent(), g.label = 11;
case 11:
i++, g.label = 12;
case 12:
return o++, [3, 3];
case 13:
return [
2
/*return*/
];
}
});
});
}, t.prototype.renderDashedDottedBorder = function(e, A, n, a, s) {
return Yn(this, void 0, void 0, function() {
var i, o, l, u, h, g, c, p, m, y, w, E, C, F, H, q, H, q;
return On(this, function(N) {
return this.ctx.save(), i = W6(a, n), o = jm(a, n), s === 2 && (this.path(o), this.ctx.clip()), ka(o[0]) ? (l = o[0].start.x, u = o[0].start.y) : (l = o[0].x, u = o[0].y), ka(o[1]) ? (h = o[1].end.x, g = o[1].end.y) : (h = o[1].x, g = o[1].y), n === 0 || n === 2 ? c = Math.abs(l - h) : c = Math.abs(u - g), this.ctx.beginPath(), s === 3 ? this.formatPath(i) : this.formatPath(o.slice(0, 2)), p = A < 3 ? A * 3 : A * 2, m = A < 3 ? A * 2 : A, s === 3 && (p = A, m = A), y = !0, c <= p * 2 ? y = !1 : c <= p * 2 + m ? (w = c / (2 * p + m), p *= w, m *= w) : (E = Math.floor((c + m) / (p + m)), C = (c - E * p) / (E - 1), F = (c - (E + 1) * p) / E, m = F <= 0 || Math.abs(m - C) < Math.abs(m - F) ? C : F), y && (s === 3 ? this.ctx.setLineDash([0, p + m]) : this.ctx.setLineDash([p, m])), s === 3 ? (this.ctx.lineCap = "round", this.ctx.lineWidth = A) : this.ctx.lineWidth = A * 2 + 1.1, this.ctx.strokeStyle = fn(e), this.ctx.stroke(), this.ctx.setLineDash([]), s === 2 && (ka(o[0]) && (H = o[3], q = o[0], this.ctx.beginPath(), this.formatPath([new _t(H.end.x, H.end.y), new _t(q.start.x, q.start.y)]), this.ctx.stroke()), ka(o[1]) && (H = o[1], q = o[2], this.ctx.beginPath(), this.formatPath([new _t(H.end.x, H.end.y), new _t(q.start.x, q.start.y)]), this.ctx.stroke())), this.ctx.restore(), [
2
/*return*/
];
});
});
}, t.prototype.render = function(e) {
return Yn(this, void 0, void 0, function() {
var A;
return On(this, function(n) {
switch (n.label) {
case 0:
return this.options.backgroundColor && (this.ctx.fillStyle = fn(this.options.backgroundColor), this.ctx.fillRect(this.options.x, this.options.y, this.options.width, this.options.height)), A = V6(e), [4, this.renderStack(A)];
case 1:
return n.sent(), this.applyEffects([]), [2, this.canvas];
}
});
});
}, t;
})(Ob)
), tN = function(r) {
return r instanceof yb || r instanceof Bb ? !0 : r instanceof iv && r.type !== mc && r.type !== vc;
}, AN = function(r, t) {
switch (r) {
case 0:
return yc(t);
case 2:
return M6(t);
case 1:
default:
return bc(t);
}
}, rN = function(r) {
switch (r) {
case 1:
return "center";
case 2:
return "right";
case 0:
default:
return "left";
}
}, nN = ["-apple-system", "system-ui"], aN = function(r) {
return /iPhone OS 15_(0|1)/.test(window.navigator.userAgent) ? r.filter(function(t) {
return nN.indexOf(t) === -1;
}) : r;
}, iN = (
/** @class */
(function(r) {
ei(t, r);
function t(e, A) {
var n = r.call(this, e, A) || this;
return n.canvas = A.canvas ? A.canvas : document.createElement("canvas"), n.ctx = n.canvas.getContext("2d"), n.options = A, n.canvas.width = Math.floor(A.width * A.scale), n.canvas.height = Math.floor(A.height * A.scale), n.canvas.style.width = A.width + "px", n.canvas.style.height = A.height + "px", n.ctx.scale(n.options.scale, n.options.scale), n.ctx.translate(-A.x, -A.y), n.context.logger.debug("EXPERIMENTAL ForeignObject renderer initialized (" + A.width + "x" + A.height + " at " + A.x + "," + A.y + ") with scale " + A.scale), n;
}
return t.prototype.render = function(e) {
return Yn(this, void 0, void 0, function() {
var A, n;
return On(this, function(a) {
switch (a.label) {
case 0:
return A = Sp(this.options.width * this.options.scale, this.options.height * this.options.scale, this.options.scale, this.options.scale, e), [4, sN(A)];
case 1:
return n = a.sent(), this.options.backgroundColor && (this.ctx.fillStyle = fn(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];
}
});
});
}, t;
})(Ob)
), sN = function(r) {
return new Promise(function(t, e) {
var A = new Image();
A.onload = function() {
t(A);
}, A.onerror = e, A.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(r));
});
}, oN = (
/** @class */
(function() {
function r(t) {
var e = t.id, A = t.enabled;
this.id = e, this.enabled = A, this.start = Date.now();
}
return r.prototype.debug = function() {
for (var t = [], e = 0; e < arguments.length; e++)
t[e] = arguments[e];
this.enabled && (typeof window < "u" && window.console && typeof console.debug == "function" ? console.debug.apply(console, mu([this.id, this.getTime() + "ms"], t)) : this.info.apply(this, t));
}, r.prototype.getTime = function() {
return Date.now() - this.start;
}, r.prototype.info = function() {
for (var t = [], e = 0; e < arguments.length; e++)
t[e] = arguments[e];
this.enabled && typeof window < "u" && window.console && typeof console.info == "function" && console.info.apply(console, mu([this.id, this.getTime() + "ms"], t));
}, r.prototype.warn = function() {
for (var t = [], e = 0; e < arguments.length; e++)
t[e] = arguments[e];
this.enabled && (typeof window < "u" && window.console && typeof console.warn == "function" ? console.warn.apply(console, mu([this.id, this.getTime() + "ms"], t)) : this.info.apply(this, t));
}, r.prototype.error = function() {
for (var t = [], e = 0; e < arguments.length; e++)
t[e] = arguments[e];
this.enabled && (typeof window < "u" && window.console && typeof console.error == "function" ? console.error.apply(console, mu([this.id, this.getTime() + "ms"], t)) : this.info.apply(this, t));
}, r.instances = {}, r;
})()
), lN = (
/** @class */
(function() {
function r(t, e) {
var A;
this.windowBounds = e, this.instanceName = "#" + r.instanceCount++, this.logger = new oN({ id: this.instanceName, enabled: t.logging }), this.cache = (A = t.cache) !== null && A !== void 0 ? A : new T6(this, t);
}
return r.instanceCount = 1, r;
})()
), Rb = function(r, t) {
return t === void 0 && (t = {}), uN(r, t);
};
typeof window < "u" && kb.setContext(window);
var uN = function(r, t) {
return Yn(void 0, void 0, void 0, function() {
var e, A, n, a, s, i, o, l, u, h, g, c, p, m, y, w, E, C, F, H, N, q, N, M, k, O, S, U, W, I, le, ue, Z, ee, X, Ae, oe, x, L, j;
return On(this, function($) {
switch ($.label) {
case 0:
if (!r || typeof r != "object")
return [2, Promise.reject("Invalid element provided as first argument")];
if (e = r.ownerDocument, !e)
throw new Error("Element is not attached to a Document");
if (A = e.defaultView, !A)
throw new Error("Document is not attached to a Window");
return n = {
allowTaint: (M = t.allowTaint) !== null && M !== void 0 ? M : !1,
imageTimeout: (k = t.imageTimeout) !== null && k !== void 0 ? k : 15e3,
proxy: t.proxy,
useCORS: (O = t.useCORS) !== null && O !== void 0 ? O : !1
}, a = fp({ logging: (S = t.logging) !== null && S !== void 0 ? S : !0, cache: t.cache }, n), s = {
windowWidth: (U = t.windowWidth) !== null && U !== void 0 ? U : A.innerWidth,
windowHeight: (W = t.windowHeight) !== null && W !== void 0 ? W : A.innerHeight,
scrollX: (I = t.scrollX) !== null && I !== void 0 ? I : A.pageXOffset,
scrollY: (le = t.scrollY) !== null && le !== void 0 ? le : A.pageYOffset
}, i = new Ni(s.scrollX, s.scrollY, s.windowWidth, s.windowHeight), o = new lN(a, i), l = (ue = t.foreignObjectRendering) !== null && ue !== void 0 ? ue : !1, u = {
allowTaint: (Z = t.allowTaint) !== null && Z !== void 0 ? Z : !1,
onclone: t.onclone,
ignoreElements: t.ignoreElements,
inlineImages: l,
copyStyles: l
}, o.logger.debug("Starting document clone with size " + i.width + "x" + i.height + " scrolled to " + -i.left + "," + -i.top), h = new Km(o, r, u), g = h.clonedReferenceElement, g ? [4, h.toIFrame(e, i)] : [2, Promise.reject("Unable to find element in cloned iframe")];
case 1:
return c = $.sent(), p = sv(g) || f6(g) ? KD(g.ownerDocument) : Uc(o, g), m = p.width, y = p.height, w = p.left, E = p.top, C = cN(o, g, t.backgroundColor), F = {
canvas: t.canvas,
backgroundColor: C,
scale: (X = (ee = t.scale) !== null && ee !== void 0 ? ee : A.devicePixelRatio) !== null && X !== void 0 ? X : 1,
x: ((Ae = t.x) !== null && Ae !== void 0 ? Ae : 0) + w,
y: ((oe = t.y) !== null && oe !== void 0 ? oe : 0) + E,
width: (x = t.width) !== null && x !== void 0 ? x : Math.ceil(m),
height: (L = t.height) !== null && L !== void 0 ? L : Math.ceil(y)
}, l ? (o.logger.debug("Document cloned, using foreign object rendering"), N = new iN(o, F), [4, N.render(g)]) : [3, 3];
case 2:
return H = $.sent(), [3, 5];
case 3:
return o.logger.debug("Document cloned, element located at " + w + "," + E + " with size " + m + "x" + y + " using computed rendering"), o.logger.debug("Starting DOM parsing"), q = Eb(o, g), C === q.styles.backgroundColor && (q.styles.backgroundColor = Ii.TRANSPARENT), o.logger.debug("Starting renderer for element at " + F.x + "," + F.y + " with size " + F.width + "x" + F.height), N = new eN(o, F), [4, N.render(q)];
case 4:
H = $.sent(), $.label = 5;
case 5:
return (!((j = t.removeContainer) !== null && j !== void 0) || j) && (Km.destroy(c) || o.logger.error("Cannot detach cloned iframe as it is not in the DOM anymore")), o.logger.debug("Finished rendering"), [2, H];
}
});
});
}, cN = function(r, t, e) {
var A = t.ownerDocument, n = A.documentElement ? wl(r, getComputedStyle(A.documentElement).backgroundColor) : Ii.TRANSPARENT, a = A.body ? wl(r, getComputedStyle(A.body).backgroundColor) : Ii.TRANSPARENT, s = typeof e == "string" ? wl(r, e) : e === null ? Ii.TRANSPARENT : 4294967295;
return t === A.documentElement ? ds(n) ? ds(a) ? s : a : n : s;
};
const fN = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
default: Rb
}, Symbol.toStringTag, { value: "Module" })), hN = { class: "gantt-body" }, dN = ["title"], gN = {
width: "16",
height: "16",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2.5"
}, pN = {
key: 0,
points: "15,18 9,12 15,6"
}, vN = {
key: 1,
points: "9,18 15,12 9,6"
}, mN = { class: "close-text" }, wN = /* @__PURE__ */ dn({
__name: "GanttChart",
props: {
tasks: { default: () => [] },
milestones: { default: () => [] },
useDefaultDrawer: { type: Boolean, default: !0 },
useDefaultMilestoneDialog: { type: Boolean, default: !0 },
toolbarConfig: { default: () => ({}) },
showToolbar: { type: Boolean, default: !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 },
onExpandAll: { type: Function, default: void 0 },
onCollapseAll: { type: Function, default: void 0 },
localeMessages: { default: void 0 },
workingHours: { default: () => ({
morning: { start: 8, end: 11 },
afternoon: { start: 13, end: 17 }
}) },
taskListConfig: { default: void 0 },
taskListColumnRenderMode: { default: "default" },
taskBarConfig: { default: void 0 },
autoSortByStartDate: { type: Boolean, default: !1 },
allowDragAndResize: { type: Boolean, default: !0 },
enableTaskRowMove: { type: Boolean, default: !1 },
assigneeOptions: { default: () => [] },
taskListRowClassName: { type: [String, Function], default: void 0 },
taskListRowStyle: { type: [Boolean, null, String, Object, Array, Function], default: void 0 }
},
emits: [
"task-click",
"task-double-click",
"taskbar-drag-end",
"taskbar-resize-end",
"milestone-drag-end",
"milestone-double-click",
"timer-started",
"timer-stopped",
"predecessor-added",
"successor-added",
"task-deleted",
"task-added",
"task-updated",
"task-collapse-change",
// 任务折叠状态变化事件
"link-deleted",
// 链接删除事件
// 工具栏事件
"add-task",
"add-milestone",
// 里程碑事件
"milestone-saved",
"milestone-deleted",
"milestone-icon-changed",
// 任务关系事件
"add-predecessor",
"add-successor",
// TaskRow拖拽事件
"task-row-moved"
],
setup(r, { emit: t }) {
const e = r, A = t, { showMessage: n } = Ky(), a = Fc();
AE("gantt-column-slots", a);
const s = Te(null), i = Te(1920), o = (z, ge) => {
let We = 0, it = null;
return ((...V) => {
const Be = Date.now(), Fe = ge - (Be - We);
it && clearTimeout(it), Fe <= 0 ? (We = Be, z(...V)) : it = window.setTimeout(() => {
We = Date.now(), z(...V), it = null;
}, Fe);
});
}, l = () => {
if (s.value) {
const z = s.value.clientWidth;
if (z !== i.value) {
i.value = z, m.value = h(), p.value = g(), w.value = g(), E.value = g();
const ge = F(C.value);
ge !== C.value && (C.value = ge);
}
}
}, u = o(l, 100);
En(() => {
l(), window.addEventListener("resize", u);
}), tn(() => {
window.removeEventListener("resize", u);
});
const h = () => {
var ge;
const z = vf(
(ge = e.taskListConfig) == null ? void 0 : ge.minWidth,
i.value,
E0
);
return Math.max(z, E0);
}, g = () => {
var z;
return vf(
(z = e.taskListConfig) == null ? void 0 : z.maxWidth,
i.value,
nF
);
}, c = () => {
var z;
return vf(
(z = e.taskListConfig) == null ? void 0 : z.defaultWidth,
i.value,
rF
);
}, p = Te(g()), m = Te(h()), y = Te(h()), w = Te(g()), E = Te(g()), C = Te(c()), F = (z) => z < m.value ? m.value : z > E.value ? E.value : Math.max(m.value, z);
EA(
() => e.taskListConfig,
(z) => {
if (z) {
z.defaultWidth !== void 0 && (C.value = c()), m.value = h(), p.value = g(), w.value = g(), E.value = g(), y.value = h();
const ge = F(C.value);
ge !== C.value && (C.value = ge);
}
},
{ immediate: !1, deep: !0 }
);
const H = Te(null), q = Te(0), N = Te(0);
EA(
() => e.tasks,
() => {
N.value++;
},
{ deep: !0 }
);
const M = Te(Ye.DAY), k = lt(() => {
var ge;
const z = (ge = H.value) == null ? void 0 : ge.highlightedTaskId;
return z != null;
});
EA(
() => H.value,
(z) => {
z && z.updateTimeScale(M.value);
}
);
const O = Te(!1);
function S(z) {
if (z.target.closest(".task-list-toggle"))
return;
z.preventDefault(), z.stopPropagation(), O.value = !0;
const We = z.clientX, it = C.value, V = document.querySelector(".task-list-body");
if (!V) return;
const Be = V.getBoundingClientRect();
p.value = Be.width, w.value = window.innerWidth * 0.8 - 6, E.value = Math.min(
w.value,
E.value
), window.dispatchEvent(new CustomEvent("splitter-drag-start")), document.body.style.userSelect = "none", document.body.style.webkitUserSelect = "none", document.body.style.cursor = "col-resize", document.body.style.pointerEvents = "none";
const Fe = (Me) => {
Me.type !== "mousemove" && Me.type !== "mouseup" && (Me.preventDefault(), Me.stopPropagation(), Me.stopImmediatePropagation());
};
document.addEventListener("mousedown", Fe, { capture: !0 }), document.addEventListener("click", Fe, { capture: !0 }), document.addEventListener("dblclick", Fe, { capture: !0 }), document.addEventListener("mouseover", Fe, { capture: !0 }), document.addEventListener("mouseout", Fe, { capture: !0 }), document.addEventListener("mouseenter", Fe, { capture: !0 }), document.addEventListener("mouseleave", Fe, { capture: !0 }), document.addEventListener("wheel", Fe, { capture: !0, passive: !1 }), document.addEventListener("contextmenu", Fe, { capture: !0 });
function ke(Me) {
if (!O.value) return;
Me.preventDefault(), Me.stopPropagation(), Me.stopImmediatePropagation();
const tt = Me.clientX - We, Je = it + tt, ft = F(Je);
C.value = ft;
}
function Ze() {
O.value = !1, document.removeEventListener("mousedown", Fe, { capture: !0 }), document.removeEventListener("click", Fe, { capture: !0 }), document.removeEventListener("dblclick", Fe, { capture: !0 }), document.removeEventListener("mouseover", Fe, { capture: !0 }), document.removeEventListener("mouseout", Fe, { capture: !0 }), document.removeEventListener("mouseenter", Fe, { capture: !0 }), document.removeEventListener("mouseleave", Fe, { capture: !0 }), document.removeEventListener("wheel", Fe, { capture: !0 }), document.removeEventListener("contextmenu", Fe, { capture: !0 }), window.dispatchEvent(new CustomEvent("splitter-drag-end")), document.body.style.userSelect = "", document.body.style.webkitUserSelect = "", document.body.style.cursor = "", document.body.style.pointerEvents = "", p.value = g(), m.value = h(), w.value = g(), E.value = g(), y.value = h(), window.removeEventListener("mousemove", ke), window.removeEventListener("mouseup", Ze);
}
window.addEventListener("mousemove", ke), window.addEventListener("mouseup", Ze);
}
const U = Te(!0), W = Te(!1), I = Te(""), le = () => {
W.value || (W.value = !0, U.value ? I.value = "impact-left" : I.value = "impact-right", setTimeout(() => {
U.value = !U.value;
}, 200), setTimeout(() => {
W.value = !1, I.value = "", rr(() => {
window.dispatchEvent(
new CustomEvent("timeline-container-resized", {
detail: { source: "manual-task-list-toggle" }
})
);
});
}, 400));
}, ue = (z) => {
U.value = z.detail, rr(() => {
window.dispatchEvent(
new CustomEvent("timeline-container-resized", {
detail: { source: "task-list-toggle" }
})
);
});
};
function Z(z) {
const ge = z.detail;
e.tasks && LA(e.tasks, ge), N.value++, A("taskbar-drag-end", ge);
}
function ee(z) {
const ge = z.detail;
e.tasks && LA(e.tasks, ge), N.value++, A("taskbar-resize-end", ge);
}
function X(z) {
const ge = z.detail;
N.value++, A("milestone-drag-end", ge);
}
let Ae = null;
En(() => {
window.addEventListener("taskbar-drag-end", Z), window.addEventListener("taskbar-resize-end", ee), window.addEventListener("milestone-drag-end", X), rr(() => {
const z = document.querySelector(".gantt-panel-right");
z && (q.value = z.clientWidth, Ae = new ResizeObserver((ge) => {
for (const We of ge)
q.value = We.contentRect.width;
}), Ae.observe(z));
});
}), tn(() => {
window.removeEventListener("taskbar-drag-end", Z), window.removeEventListener("taskbar-resize-end", ee), window.removeEventListener("milestone-drag-end", X), Ae && (Ae.disconnect(), Ae = null);
});
const oe = (z) => {
const ge = (We, it, V) => {
for (const Be of We) {
if (Be.id === it)
return Be.collapsed = V, !0;
if (Be.children && Be.children.length > 0 && ge(Be.children, it, V))
return !0;
}
return !1;
};
e.tasks && ge(e.tasks, z.id, z.collapsed ?? !1), N.value++, A("task-collapse-change", z);
}, x = () => {
if (e.onExpandAll && typeof e.onExpandAll == "function")
e.onExpandAll();
else {
const z = (ge) => {
ge.forEach((We) => {
We.children && We.children.length > 0 && (We.collapsed = !1, z(We.children));
});
};
e.tasks && (z(e.tasks), N.value++);
}
}, L = (z) => {
const { draggedTask: ge, targetTask: We, position: it } = z;
if (!e.tasks) return;
const V = ZU(e.tasks, ge.id, We.id, it);
V && (N.value++, rr(() => {
window.dispatchEvent(new CustomEvent("task-updated", {
detail: V.movedTask
}));
}), A("task-row-moved", {
draggedTask: V.movedTask,
targetTask: We,
position: it,
oldParent: V.oldParent,
newParent: V.newParent
}));
}, j = () => {
if (e.onCollapseAll && typeof e.onCollapseAll == "function")
e.onCollapseAll();
else {
const z = (ge) => {
ge.forEach((We) => {
We.children && We.children.length > 0 && (We.collapsed = !0, z(We.children));
});
};
e.tasks && (z(e.tasks), N.value++);
}
}, $ = () => {
const z = [], ge = (We) => {
We.forEach((it) => {
z.push(it), it.children && it.children.length > 0 && ge(it.children);
});
};
e.tasks && ge(e.tasks), e.milestones && z.push(...e.milestones), window.dispatchEvent(new CustomEvent("task-list-updated", { detail: z }));
}, re = () => {
$();
};
EA(
[() => e.tasks, () => e.milestones],
() => {
rr(() => {
re();
});
},
{ deep: !0, immediate: !0 }
), En(() => {
window.addEventListener("toggle-task-list", ue), window.addEventListener("fullscreen-toggle", Ke), window.addEventListener("milestone-icon-changed", Ft), window.addEventListener("milestone-deleted", St), window.addEventListener("milestone-data-changed", bt), window.addEventListener("request-task-list", $), window.addEventListener("resize", sA), window.addEventListener("context-menu", SA), rr(() => {
H.value && typeof H.value.scrollToTodayCenter == "function" && H.value.scrollToTodayCenter();
});
}), tn(() => {
O.value = !1, window.removeEventListener("toggle-task-list", ue), window.removeEventListener("fullscreen-toggle", Ke), window.removeEventListener(
"milestone-icon-changed",
Ft
), window.removeEventListener("milestone-deleted", St), window.removeEventListener("milestone-data-changed", bt), window.removeEventListener("request-task-list", $), window.removeEventListener("resize", sA), window.removeEventListener("context-menu", SA);
});
const pe = Te(!1), { t: de, locale: ce } = Ma(), Se = lt(() => de.value.collapseTaskList), qe = lt(() => de.value.expandTaskList), rt = lt(() => {
N.value >= 0;
const z = [];
if (e.milestones && e.milestones.length > 0) {
const ge = {
id: -1,
name: de.value.milestoneGroup,
startDate: "",
endDate: "",
type: "milestone-group",
children: e.milestones,
isParent: !0,
collapsed: !1
};
z.push(ge);
}
if (e.tasks && e.tasks.length > 0)
if (e.autoSortByStartDate) {
const ge = (it) => [...it].map((V) => {
const Be = { ...V };
return V.children && V.children.length > 0 && (Be.children = ge(V.children)), Be;
}).sort((V, Be) => {
const Fe = (tt) => {
if (tt.children && tt.children.length > 0) {
const Je = tt.children.map((ft) => Fe(ft)).filter((ft) => ft.getTime() > 0);
if (Je.length > 0)
return new Date(Math.min(...Je.map((ft) => ft.getTime())));
}
return tt.startDate ? new Date(tt.startDate) : /* @__PURE__ */ new Date("9999-12-31");
}, ke = Fe(V), Ze = Fe(Be), Me = ke.getTime() - Ze.getTime();
return Me !== 0 ? Me : V.id - Be.id;
}), We = ge(e.tasks);
z.push(...We);
} else
z.push(...e.tasks);
return z;
}), at = lt(() => {
N.value >= 0;
const z = [];
if (e.milestones && e.milestones.length > 0) {
const ge = {
id: -1,
name: de.value.milestoneGroup,
startDate: "",
endDate: "",
type: "milestone-group",
children: e.milestones,
isParent: !0,
collapsed: !1
};
z.push(ge);
}
if (e.tasks && e.tasks.length > 0) {
const ge = (Ze) => {
const Me = [], tt = [];
return Ze.forEach((Je) => {
if (Je.startDate && Me.push(Je.startDate), Je.endDate && tt.push(Je.endDate), Je.children && Je.children.length > 0) {
const ft = ge(Je.children);
Me.push(...ft.starts), tt.push(...ft.ends);
}
}), { starts: Me, ends: tt };
}, We = (Ze) => {
if (!Ze.children || Ze.children.length === 0)
return {
startDate: Ze.startDate || "",
endDate: Ze.endDate || ""
};
const { starts: Me, ends: tt } = ge(Ze.children);
if (Me.length === 0 || tt.length === 0)
return {
startDate: Ze.startDate || "",
endDate: Ze.endDate || ""
};
const Je = Me.reduce((Et, Jt) => new Date(Jt) < new Date(Et) ? Jt : Et), ft = tt.reduce((Et, Jt) => new Date(Jt) > new Date(Et) ? Jt : Et);
return { startDate: Je, endDate: ft };
}, it = (Ze) => Ze.map((Me) => {
let tt = { ...Me };
Me.children && Me.children.length > 0 && (tt.children = it(Me.children));
const Je = Me.type === "story" || tt.children && tt.children.length > 0;
if (tt.isParent = Je, Je && tt.children && tt.children.length > 0) {
const { startDate: ft, endDate: Et } = We(tt);
tt = {
...tt,
startDate: ft,
endDate: Et
};
}
return tt;
}), V = (Ze, Me = 0) => {
const tt = [];
return Ze.forEach((Je) => {
const ft = {
...Je,
level: Me
};
if (tt.push(ft), Je.children && Je.children.length > 0 && !Je.collapsed) {
const Et = V(Je.children, Me + 1);
tt.push(...Et);
}
}), tt;
}, Be = rt.value.filter((Ze) => Ze.type !== "milestone-group"), Fe = it(Be), ke = V(Fe);
z.push(...ke);
}
return z;
}), dt = lt(() => (N.value >= 0, e.milestones ? e.milestones.filter((ge) => !!ge.startDate).map((ge) => ({
id: ge.id,
name: ge.name,
startDate: ge.startDate,
// 此时已确保非空
endDate: ge.endDate,
assignee: ge.assignee,
type: ge.type || "milestone",
icon: ge.icon,
description: ge.description
})) : [])), D = lt(() => {
N.value;
const z = (Je) => {
let ft = [];
return Je.forEach((Et) => {
ft.push(Et), Et.children && Et.children.length > 0 && (ft = ft.concat(z(Et.children)));
}), ft;
};
let ge = [];
e.tasks && (ge = ge.concat(z(e.tasks))), e.milestones && (ge = ge.concat(e.milestones));
const We = ge.map((Je) => Je.startDate).filter(Boolean).map((Je) => new Date(Je)), it = ge.map((Je) => Je.endDate).filter(Boolean).map((Je) => new Date(Je));
if (We.length === 0 || it.length === 0) {
const Je = /* @__PURE__ */ new Date(), ft = new Date(Je.getFullYear(), Je.getMonth() - 6, 1), Et = new Date(Je.getFullYear(), Je.getMonth() + 6 + 1, 0);
return { min: ft, max: Et };
}
const V = new Date(Math.min(...We.map((Je) => Je.getTime()))), Be = new Date(Math.max(...it.map((Je) => Je.getTime()))), Fe = q.value || 1200, ke = hF[M.value].cellWidth, Ze = Math.ceil(Fe / ke), { min: Me, max: tt } = Ie(
V,
Be,
M.value,
Ze,
ke
);
return { min: Me, max: tt };
});
function Ie(z, ge, We, it, V) {
let Be, Fe;
switch (We) {
case Ye.HOUR: {
Be = new Date(z.getTime() - 1440 * 60 * 1e3), Fe = new Date(ge.getTime() + 1440 * 60 * 1e3);
const ke = Math.ceil((Fe.getTime() - Be.getTime()) / (1e3 * 60 * 60));
if (ke < it) {
const Ze = it - ke, Me = Math.ceil(Ze / 2);
Be = new Date(Be.getTime() - Me * 60 * 60 * 1e3), Fe = new Date(Fe.getTime() + Me * 60 * 60 * 1e3);
}
break;
}
case Ye.DAY: {
const ke = new Date(z);
ke.setDate(ke.getDate() - 15);
const Ze = new Date(ge);
Ze.setDate(Ze.getDate() + 15), Be = new Date(ke.getFullYear(), ke.getMonth(), 1), Fe = new Date(Ze.getFullYear(), Ze.getMonth() + 1, 0);
const Me = Math.ceil((Fe.getTime() - Be.getTime()) / (1e3 * 60 * 60 * 24));
if (Me < it) {
const tt = it - Me, Je = Math.ceil(tt / 30), ft = Be.getMonth() - Je, Et = Be.getFullYear() + Math.floor(ft / 12), Jt = (ft % 12 + 12) % 12;
Be = new Date(Et, Jt, 1);
const fA = Fe.getMonth() + Je + 1, gA = Fe.getFullYear() + Math.floor(fA / 12), Xt = (fA % 12 + 12) % 12;
Fe = new Date(gA, Xt, 0);
}
break;
}
case Ye.WEEK: {
const ke = (WA) => {
const bA = new Date(WA), nr = bA.getDay() || 7;
return bA.setDate(bA.getDate() - (nr - 1)), bA;
}, Ze = (WA, bA) => {
let nr = 1;
for (; nr <= 31; ) {
const GA = new Date(WA, bA, nr);
if (GA.getMonth() !== bA) break;
const cr = ke(GA);
if (cr.getMonth() === bA)
return cr;
nr++;
}
return new Date(WA, bA, 1);
}, Me = (WA, bA) => {
const nr = new Date(WA, bA + 1, 0).getDate();
for (let GA = nr; GA >= 1; GA--) {
const cr = new Date(WA, bA, GA), pn = ke(cr);
if (pn.getMonth() === bA)
return pn;
}
return new Date(WA, bA, 1);
}, tt = (WA, bA) => {
const nr = [], GA = Ze(WA, bA), cr = Me(WA, bA), pn = new Date(GA);
for (; pn <= cr; )
nr.push(new Date(pn)), pn.setDate(pn.getDate() + 7);
return nr;
}, Je = ke(z), ft = Je.getFullYear(), Et = Je.getMonth(), Jt = Et === 0 ? 11 : Et - 1, fA = Et === 0 ? ft - 1 : ft, gA = tt(fA, Jt), Xt = ke(ge), tA = Xt.getFullYear(), Gt = Xt.getMonth(), UA = Gt === 11 ? 0 : Gt + 1, FA = Gt === 11 ? tA + 1 : tA, IA = tt(FA, UA);
let aA = [];
aA.push(...gA);
let An = ft, Tn = Et;
for (; An < tA || An === tA && Tn <= Gt; ) {
const WA = tt(An, Tn);
aA.push(...WA), Tn++, Tn > 11 && (Tn = 0, An++);
}
aA.push(...IA);
const ea = 60;
let Pn = aA.length * ea;
for (; Pn < it * V; ) {
const WA = aA[0], bA = WA.getFullYear(), nr = WA.getMonth(), GA = nr === 0 ? 11 : nr - 1, cr = nr === 0 ? bA - 1 : bA;
if (aA = [...tt(cr, GA), ...aA], Pn = aA.length * ea, Pn >= it * V) break;
const ba = aA[aA.length - 1], la = ba.getFullYear(), Qn = ba.getMonth(), Ca = Qn === 11 ? 0 : Qn + 1, Kr = Qn === 11 ? la + 1 : la, Dn = tt(Kr, Ca);
aA = [...aA, ...Dn], Pn = aA.length * ea;
}
Be = new Date(aA[0]), Fe = new Date(aA[aA.length - 1]), Fe.setDate(Fe.getDate() + 6);
break;
}
case Ye.MONTH: {
Be = new Date(z.getFullYear() - 1, z.getMonth(), 1), Fe = new Date(ge.getFullYear() + 1, ge.getMonth() + 1, 0);
const ke = (Fe.getFullYear() - Be.getFullYear()) * 12 + (Fe.getMonth() - Be.getMonth());
if (ke < it) {
const Ze = it - ke, Me = Math.ceil(Ze / 2);
Be = new Date(Be.getFullYear(), Be.getMonth() - Me, 1), Fe = new Date(Fe.getFullYear(), Fe.getMonth() + Me + 1, 0);
}
break;
}
case Ye.QUARTER: {
const Ze = (/* @__PURE__ */ new Date()).getFullYear(), Me = z.getFullYear(), tt = ge.getFullYear();
Be = new Date(Math.min(Ze - 2, Me - 2), 0, 1), Fe = new Date(Math.max(Ze + 2, tt + 2), 11, 31);
const Je = (Fe.getFullYear() - Be.getFullYear() + 1) * 4;
if (Je < it) {
const ft = it - Je, Et = Math.ceil(ft / 4), Jt = Math.ceil(Et / 2);
Be = new Date(Be.getFullYear() - Jt, 0, 1), Fe = new Date(Fe.getFullYear() + Jt, 11, 31);
}
break;
}
case Ye.YEAR: {
const Ze = (/* @__PURE__ */ new Date()).getFullYear(), Me = z.getFullYear(), tt = ge.getFullYear();
Be = new Date(Math.min(Ze - 2, Me - 2), 0, 1), Fe = new Date(Math.max(Ze + 2, tt + 2), 11, 31);
const Je = (Fe.getFullYear() - Be.getFullYear() + 1) * 2;
if (Je < it) {
const ft = it - Je, Et = Math.ceil(ft / 2), Jt = Math.ceil(Et / 2);
Be = new Date(Be.getFullYear() - Jt, 0, 1), Fe = new Date(Fe.getFullYear() + Jt, 11, 31);
}
break;
}
default:
Be = z, Fe = ge;
}
return { min: Be, max: Fe };
}
const me = () => {
if (e.onExportCsv && typeof e.onExportCsv == "function") {
e.onExportCsv() === !1 && _e();
return;
}
_e();
}, ve = (z) => {
M.value = z, H.value && H.value.updateTimeScale(z);
}, xe = (z) => {
rr(() => {
const ge = new CustomEvent("timeline-scale-updated", { detail: z });
window.dispatchEvent(ge);
});
}, Qe = () => {
var z;
(z = H.value) != null && z.clearHighlight && H.value.clearHighlight();
}, _e = () => {
try {
const z = [];
e.tasks && e.tasks.length > 0 && z.push(...e.tasks), e.milestones && e.milestones.length > 0 && z.push(...e.milestones);
const it = "\uFEFF" + Pe(z), V = new Blob([it], {
type: "text/csv;charset=utf-8;"
}), Be = document.createElement("a"), Fe = URL.createObjectURL(V), Ze = `gantt-tasks-${(/* @__PURE__ */ new Date()).toISOString().split("T")[0]}.csv`;
Be.setAttribute("href", Fe), Be.setAttribute("download", Ze), Be.style.visibility = "hidden", document.body.appendChild(Be), Be.click(), document.body.removeChild(Be), URL.revokeObjectURL(Fe);
} catch (z) {
console.error("CSV导出失败:", z), n("CSV导出失败", "error", { closable: !1 });
}
}, Pe = (z) => {
const ge = de.value.csvHeaders, We = [
ge.id,
ge.taskName,
ge.predecessor,
ge.assignee,
ge.startDate,
ge.endDate,
ge.estimatedHours,
ge.actualHours,
ge.progress,
ge.type,
ge.description
], it = (ke) => {
if (ke == null)
return "";
const Ze = String(ke);
return Ze.includes(",") || Ze.includes('"') || Ze.includes(`
`) || Ze.includes("\r") ? `"${Ze.replace(/"/g, '""')}"` : Ze;
}, V = (ke) => {
const Ze = [];
return ke.forEach((Me) => {
Ze.push({
id: Me.id,
name: Me.name || "",
predecessor: Xg(Me.predecessor),
assignee: Me.assignee || "",
startDate: Me.startDate || "",
endDate: Me.endDate || "",
estimatedHours: Me.estimatedHours || "",
actualHours: Me.actualHours || "",
progress: Me.progress !== void 0 ? `${Me.progress}%` : "",
type: Me.type || "",
description: Me.description || ""
}), Me.children && Me.children.length > 0 && Ze.push(...V(Me.children));
}), Ze;
}, Be = V(z);
return [
// 头部行 - 也需要进行转义处理
We.map((ke) => it(ke)).join(","),
// 数据行
...Be.map((ke) => [
it(ke.id),
it(ke.name),
it(Xg(ke.predecessor)),
it(ke.assignee),
it(ke.startDate),
it(ke.endDate),
it(ke.estimatedHours),
it(ke.actualHours),
it(ke.progress),
it(ke.type),
it(ke.description)
].join(","))
].join(`
`);
}, je = async () => {
try {
const z = de.value.pdfExportLoading, ge = de.value.pdfExportTitle, We = de.value.pdfExportDate, it = document.createElement("div");
it.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;">
${z}
</div>
`, document.body.appendChild(it);
const V = document.querySelector(".gantt-body");
if (!V)
throw new Error("找不到甘特图元素");
const Be = {
overflow: V.style.overflow,
height: V.style.height
};
V.style.overflow = "visible", V.style.height = "auto";
const Fe = await Rb(V, {
allowTaint: !0,
useCORS: !0,
scale: 2,
// 提高清晰度
width: V.scrollWidth,
height: V.scrollHeight,
backgroundColor: "#ffffff"
});
V.style.overflow = Be.overflow, V.style.height = Be.height;
const ke = Fe.toDataURL("image/png"), Ze = new eA({
orientation: "landscape",
// 横向布局更适合甘特图
unit: "mm",
format: "a4"
}), Me = Ze.internal.pageSize.getWidth(), tt = Ze.internal.pageSize.getHeight(), Je = Fe.width, ft = Fe.height, Et = Math.min(Me / Je, tt / ft), Jt = Je * Et, fA = ft * Et, gA = (Me - Jt) / 2, Xt = (tt - fA) / 2;
Ze.setFontSize(16), Ze.text(ge, Me / 2, 15, { align: "center" }), Ze.setFontSize(10);
const tA = (/* @__PURE__ */ new Date()).toLocaleDateString(ce.value);
if (Ze.text(`${We}: ${tA}`, Me - 10, 10, { align: "right" }), Ze.addImage(ke, "PNG", gA, Xt + 10, Jt, fA - 15), fA > tt - 30) {
const UA = Math.ceil(fA / (tt - 30));
for (let FA = 1; FA < UA; FA++) {
Ze.addPage();
const IA = -FA * (tt - 30);
Ze.addImage(ke, "PNG", gA, Xt + 10 + IA, Jt, fA - 15);
}
}
const Gt = `gantt-chart-${(/* @__PURE__ */ new Date()).toISOString().split("T")[0]}.pdf`;
Ze.save(Gt), it && it.parentNode && it.parentNode.removeChild(it);
} catch (z) {
const ge = document.querySelector('[style*="position: fixed"]');
ge && ge.parentNode && ge.parentNode.removeChild(ge), console.error("PDF导出失败:", z), alert("PDF导出失败");
}
}, Ke = (z) => {
pe.value = z.detail, e.onFullscreenChange && typeof e.onFullscreenChange == "function" && e.onFullscreenChange(pe.value), setTimeout(() => {
window.dispatchEvent(
new CustomEvent("timeline-container-resized", {
detail: { source: "fullscreen-toggle" }
})
);
}, 500);
}, et = (z, ge) => {
const We = z.findIndex((it) => it.id === ge.id);
return We !== -1 ? (z.splice(We, 1, { ...z[We], ...ge }), !0) : (z.push(ge), !0);
}, ut = (z) => {
z.id || (z.id = Date.now()), z.type = "milestone", e.milestones && et(e.milestones, z), A("milestone-saved", z), N.value++, $e.value && Dt();
}, yt = (z, ge, We) => {
const it = z.findIndex((V) => V.id === ge);
return it !== -1 ? (z.splice(it, 1, { ...z[it], icon: We }), !0) : !1;
}, Ft = (z) => {
const { milestoneId: ge, icon: We } = z.detail;
e.milestones && yt(e.milestones, ge, We), A("milestone-icon-changed", { milestoneId: ge, icon: We }), N.value++;
}, Bt = (z, ge) => {
const We = z.findIndex((it) => it.id === ge);
return We !== -1 ? (z.splice(We, 1), !0) : !1;
}, St = () => {
N.value++;
}, bt = () => {
N.value++, rr(() => {
});
};
En(() => {
rr(() => {
H.value && typeof H.value.scrollToTodayCenter == "function" && H.value.scrollToTodayCenter();
});
});
const nA = () => {
if (e.onTodayLocate && typeof e.onTodayLocate == "function") {
e.onTodayLocate();
return;
}
if (H.value && typeof H.value.scrollToTodayCenter == "function") {
H.value.scrollToTodayCenter();
return;
}
Pt();
}, qt = () => {
A("add-milestone"), e.useDefaultMilestoneDialog && Ot();
}, Ot = () => {
xt.value = null, $e.value = !0;
}, Pt = () => {
if (H.value && typeof H.value.scrollToToday == "function") {
H.value.scrollToToday();
return;
}
const z = /* @__PURE__ */ new Date(), ge = z.getMonth(), We = z.getDate();
let it = 0;
for (let Me = 0; Me < ge; Me++)
it += new Date(z.getFullYear(), Me + 1, 0).getDate();
it += We;
const V = document.querySelector(".gantt-panel-right"), Be = V == null ? void 0 : V.clientWidth, Fe = Be ? Be / 2 : 200, ke = (it - 1) * 30 - Fe, Ze = document.querySelector(".timeline");
if (Ze) {
Ze.scrollLeft = Math.max(0, ke);
const Me = Ze.querySelector(".day-column.today");
Me && (Me.classList.add("today-highlight"), setTimeout(() => {
Me.classList.remove("today-highlight");
}, 2e3));
}
}, sA = () => {
const z = F(C.value);
z !== C.value && (C.value = z);
};
e.localeMessages && Object.keys(e.localeMessages).forEach((z) => {
const ge = e.localeMessages[z];
ge && C0(z, ge);
}), EA(
() => e.localeMessages,
(z) => {
z && Object.keys(z).forEach((ge) => {
const We = z[ge];
We && C0(ge, We);
});
},
{ deep: !0 }
);
const kt = Te({ x: 0, y: 0 }), hA = Te(!1), Nt = Te(null), Ce = Te(!1), Ve = Te(null), Re = Te(!1), $e = Te(!1), xt = Te(null), Ht = Te(null), Mt = Te(null), SA = (z) => {
const { task: ge, position: We } = z.detail;
Nt.value = ge, kt.value = We, hA.value = !0;
}, JA = () => {
hA.value = !1;
};
function Lt() {
if (A("add-task"), e.useDefaultDrawer) {
const z = {
id: Date.now(),
// 临时id,实际保存时应由后端分配
name: "",
type: "task",
assignee: "",
startDate: "",
endDate: "",
predecessor: [],
estimatedHours: 0,
actualHours: 0,
progress: 0,
description: "",
parentId: void 0,
children: []
};
Ve.value = z, Re.value = !1, Ce.value = !0;
}
}
const Qr = (z) => {
if (e.tasks) {
const ge = (We) => {
var it;
for (let V = 0; V < We.length; V++) {
if (We[V].id === z.id)
return We[V].isTimerRunning = !0, We[V].timerStartTime = z.timerStartTime || Date.now(), We[V].timerEndTime = void 0, We[V].timerElapsedTime = 0, !0;
if ((it = We[V].children) != null && it.length && ge(We[V].children))
return !0;
}
return !1;
};
ge(e.tasks);
}
JA(), A("timer-started", z);
}, Fr = (z) => {
if (e.tasks) {
const ge = (We) => {
var it;
for (let V = 0; V < We.length; V++) {
if (We[V].id === z.id) {
if (We[V].isTimerRunning && We[V].timerStartTime !== void 0) {
const Be = We[V].timerElapsedTime || 0;
We[V].timerElapsedTime = Be + (Date.now() - We[V].timerStartTime), We[V].timerEndTime = Date.now();
}
return We[V].isTimerRunning = !1, Ce.value && Ve.value && Ve.value.id === z.id && (Ve.value.isTimerRunning = !1, Ve.value.timerEndTime = Date.now()), !0;
}
if ((it = We[V].children) != null && it.length && ge(We[V].children))
return !0;
}
return !1;
};
ge(e.tasks);
}
JA(), A("timer-stopped", z);
};
function xr(z, ge) {
A("task-click", z, ge);
}
function PA(z) {
A("task-double-click", z), e.useDefaultDrawer && (Ve.value = z, Re.value = !0, Ce.value = !0);
}
function CA(z) {
if (!z) return;
A("add-predecessor", z), Ht.value = z;
const ge = {
id: Date.now(),
// 临时id,实际保存时应由后端分配
name: "",
type: "task",
assignee: "",
startDate: "",
endDate: "",
predecessor: [],
estimatedHours: 0,
actualHours: 0,
progress: 0,
description: "",
parentId: z.parentId,
children: [],
isTimerRunning: !1,
timerStartTime: void 0,
timerEndTime: void 0,
timerElapsedTime: 0
};
Ve.value = ge, Re.value = !1, Ce.value = !0;
}
function MA(z) {
if (!z) return;
A("add-successor", z), Mt.value = z;
const ge = {
id: Date.now(),
// 临时id,实际保存时应由后端分配
name: "",
type: "task",
assignee: "",
startDate: "",
endDate: "",
predecessor: [z.id],
estimatedHours: 0,
actualHours: 0,
progress: 0,
description: "",
parentId: z.parentId,
children: [],
isTimerRunning: !1,
timerStartTime: void 0,
timerEndTime: void 0,
timerElapsedTime: 0
};
Ve.value = ge, Re.value = !1, Ce.value = !0;
}
function OA(z) {
A("predecessor-added", z);
}
function Dr(z) {
A("successor-added", z);
}
const Sr = (z, ge) => {
if (!ge.parentId)
return z.push(ge), !0;
for (const We of z) {
if (We.id === ge.parentId)
return We.children || (We.children = []), We.children.push(ge), !0;
if (We.children && We.children.length > 0 && Sr(We.children, ge))
return !0;
}
return !1;
}, LA = (z, ge) => {
for (let We = 0; We < z.length; We++) {
if (z[We].id === ge.id)
return z[We] = { ...z[We], ...ge }, !0;
if (z[We].children && z[We].children.length > 0 && LA(z[We].children, ge))
return !0;
}
return !1;
};
function pr(z) {
Re.value ? (e.tasks && LA(e.tasks, z), N.value++, A("task-updated", { task: z })) : (e.tasks && Sr(e.tasks, z), A("task-added", { task: z }), Ht.value && (Ht.value.predecessor || (Ht.value.predecessor = []), Ht.value.predecessor.push(z.id), A("predecessor-added", { targetTask: Ht.value, newTask: z }), Ht.value = null), Mt.value && (A("successor-added", { targetTask: Mt.value, newTask: z }), Mt.value = null));
}
function kr(z, ge, We) {
for (let it = 0; it < z.length; it++) {
if (z[it].id === ge) {
if (We)
z.splice(it, 1);
else {
const V = z[it].children || [];
z.splice(it, 1, ...V);
}
return !0;
}
if (z[it].children && z[it].children.length > 0 && kr(z[it].children, ge, We))
return !0;
}
return !1;
}
function ZA(z, ge) {
e.tasks && kr(e.tasks, z.id, ge), Ce.value = !1, Ve.value = null, A("task-deleted", { task: z });
}
function Lr(z) {
if (e.tasks) {
const ge = (We) => {
for (let it = 0; it < We.length; it++) {
if (We[it].id === z.targetTaskId)
return We[it] = { ...We[it], predecessor: z.updatedTask.predecessor }, !0;
if (We[it].children && We[it].children.length > 0 && ge(We[it].children))
return !0;
}
return !1;
};
ge(e.tasks);
}
A("task-updated", { task: z.updatedTask }), A("link-deleted", z);
}
function Un(z) {
A("milestone-double-click", z), e.useDefaultMilestoneDialog && (xt.value = z, $e.value = !0);
}
function Dt() {
$e.value = !1, xt.value = null;
}
function be(z) {
e.milestones && Bt(e.milestones, z), A("milestone-deleted", { milestoneId: z }), N.value++, Dt();
}
return (z, ge) => (ae(), fe("div", {
ref_key: "ganttRootRef",
ref: s,
class: iA(["gantt-root", { "gantt-fullscreen": pe.value, "splitter-dragging": O.value }])
}, [
e.showToolbar ? (ae(), wr(E3, {
key: 0,
config: e.toolbarConfig,
"on-today-locate": nA,
"on-export-csv": me,
"on-export-pdf": je,
"on-language-change": e.onLanguageChange,
"on-theme-change": e.onThemeChange,
"on-fullscreen-change": e.onFullscreenChange,
"on-time-scale-change": ve,
"on-expand-all": x,
"on-collapse-all": j,
onAddTask: Lt,
onAddMilestone: qt,
onExpandAll: x,
onCollapseAll: j
}, null, 8, ["config", "on-language-change", "on-theme-change", "on-fullscreen-change"])) : Ct("", !0),
Y("div", hN, [
U.value ? (ae(), fe("div", {
key: 0,
class: "gantt-panel gantt-panel-left",
style: rA({ width: C.value + "px" })
}, [
$n(fF, {
tasks: rt.value,
"use-default-drawer": e.useDefaultDrawer,
"task-list-config": e.taskListConfig,
"task-list-column-render-mode": e.taskListColumnRenderMode,
"enable-task-row-move": e.enableTaskRowMove,
"task-list-row-class-name": e.taskListRowClassName,
"task-list-row-style": e.taskListRowStyle,
onTaskCollapseChange: oe,
onStartTimer: Qr,
onStopTimer: Fr,
onAddPredecessor: CA,
onAddSuccessor: MA,
onDelete: ZA,
onTaskRowMoved: L
}, Cl({ _: 2 }, [
z.$slots.default ? {
name: "default",
fn: fs(() => [
Li(z.$slots, "default", {}, void 0, !0)
]),
key: "0"
} : void 0,
z.$slots["custom-task-content"] ? {
name: "custom-task-content",
fn: fs((We) => [
Li(z.$slots, "custom-task-content", oc(b0(We)), void 0, !0)
]),
key: "1"
} : void 0
]), 1032, ["tasks", "use-default-drawer", "task-list-config", "task-list-column-render-mode", "enable-task-row-move", "task-list-row-class-name", "task-list-row-style"])
], 4)) : Ct("", !0),
Y("div", {
class: "gantt-splitter",
onMousedown: S
}, [
Y("div", {
class: iA(["task-list-toggle", {
collapsed: !U.value,
[I.value]: W.value
}]),
title: U.value ? Se.value : qe.value,
onClick: NA(le, ["stop"])
}, [
(ae(), fe("svg", gN, [
U.value ? (ae(), fe("polyline", pN)) : (ae(), fe("polyline", vN))
]))
], 10, dN)
], 32),
Y("div", {
class: iA(["gantt-panel gantt-panel-right", { "full-width": !U.value }])
}, [
$n(Hx, {
ref_key: "timelineRef",
ref: H,
tasks: at.value,
milestones: dt.value,
"start-date": D.value.min,
"end-date": D.value.max,
"working-hours": e.workingHours,
"task-bar-config": e.taskBarConfig,
"allow-drag-and-resize": e.allowDragAndResize,
"use-default-drawer": e.useDefaultDrawer,
"use-default-milestone-dialog": e.useDefaultMilestoneDialog,
"on-milestone-save": ut,
onTimelineScaleChanged: xe,
onClickTask: xr,
onEditTask: PA,
onMilestoneDoubleClick: Un,
onStartTimer: Qr,
onStopTimer: Fr,
onAddPredecessor: CA,
onAddSuccessor: MA,
onPredecessorAdded: OA,
onSuccessorAdded: Dr,
onDelete: ZA,
onLinkDeleted: Lr
}, Cl({ _: 2 }, [
z.$slots["custom-task-content"] ? {
name: "custom-task-content",
fn: fs((We) => [
Li(z.$slots, "custom-task-content", oc(b0(We)), void 0, !0)
]),
key: "0"
} : void 0
]), 1032, ["tasks", "milestones", "start-date", "end-date", "working-hours", "task-bar-config", "allow-drag-and-resize", "use-default-drawer", "use-default-milestone-dialog"]),
k.value ? (ae(), fe("div", {
key: 0,
class: "focus-close-button",
onClick: NA(Qe, ["stop"])
}, [
ge[3] || (ge[3] = Y("svg", {
class: "close-icon",
viewBox: "0 0 24 24",
fill: "none",
xmlns: "http://www.w3.org/2000/svg"
}, [
Y("path", {
d: "M18 6L6 18M6 6l12 12",
stroke: "currentColor",
"stroke-width": "2",
"stroke-linecap": "round",
"stroke-linejoin": "round"
})
], -1)),
Y("span", mN, Ge(vt(de).disableTaskbarFocusMode), 1)
])) : Ct("", !0)
], 2)
]),
e.useDefaultDrawer ? (ae(), wr(wU, {
key: 1,
visible: Ce.value,
"onUpdate:visible": ge[0] || (ge[0] = (We) => Ce.value = We),
task: Ve.value,
"is-edit": Re.value,
"assignee-options": e.assigneeOptions,
onSubmit: pr,
onClose: ge[1] || (ge[1] = (We) => Ce.value = !1),
onStartTimer: Qr,
onStopTimer: Fr,
onDelete: ZA
}, null, 8, ["visible", "task", "is-edit", "assignee-options"])) : Ct("", !0),
e.useDefaultMilestoneDialog ? (ae(), wr(JU, {
key: 2,
visible: $e.value,
"onUpdate:visible": ge[2] || (ge[2] = (We) => $e.value = We),
milestone: xt.value,
onClose: Dt,
onSave: ut,
onDelete: be
}, null, 8, ["visible", "milestone"])) : Ct("", !0)
], 2));
}
}), BN = /* @__PURE__ */ xn(wN, [["__scopeId", "data-v-9376ee17"]]), yN = /* @__PURE__ */ dn({
name: "TaskListColumn",
__name: "TaskListColumn",
props: {
prop: {},
label: {},
width: {},
align: { default: "left" },
cssClass: {}
},
setup(r) {
return (t, e) => null;
}
}), bN = (r) => {
r.component("GanttChart", BN), r.component("TaskListColumn", yN);
}, tO = {
install: bN
};
/*! @license DOMPurify 3.2.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.6/LICENSE */
const {
entries: Hb,
setPrototypeOf: Gm,
isFrozen: CN,
getPrototypeOf: EN,
getOwnPropertyDescriptor: FN
} = Object;
let {
freeze: zn,
seal: Na,
create: Pb
} = Object, {
apply: Ip,
construct: _p
} = typeof Reflect < "u" && Reflect;
zn || (zn = function(t) {
return t;
});
Na || (Na = function(t) {
return t;
});
Ip || (Ip = function(t, e, A) {
return t.apply(e, A);
});
_p || (_p = function(t, e) {
return new t(...e);
});
const Pu = Xn(Array.prototype.forEach), xN = Xn(Array.prototype.lastIndexOf), Ym = Xn(Array.prototype.pop), Al = Xn(Array.prototype.push), SN = Xn(Array.prototype.splice), ac = Xn(String.prototype.toLowerCase), lh = Xn(String.prototype.toString), $m = Xn(String.prototype.match), rl = Xn(String.prototype.replace), UN = Xn(String.prototype.indexOf), TN = Xn(String.prototype.trim), za = Xn(Object.prototype.hasOwnProperty), Gn = Xn(RegExp.prototype.test), nl = QN(TypeError);
function Xn(r) {
return function(t) {
t instanceof RegExp && (t.lastIndex = 0);
for (var e = arguments.length, A = new Array(e > 1 ? e - 1 : 0), n = 1; n < e; n++)
A[n - 1] = arguments[n];
return Ip(r, t, A);
};
}
function QN(r) {
return function() {
for (var t = arguments.length, e = new Array(t), A = 0; A < t; A++)
e[A] = arguments[A];
return _p(r, e);
};
}
function xA(r, t) {
let e = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : ac;
Gm && Gm(r, null);
let A = t.length;
for (; A--; ) {
let n = t[A];
if (typeof n == "string") {
const a = e(n);
a !== n && (CN(t) || (t[A] = a), n = a);
}
r[n] = !0;
}
return r;
}
function DN(r) {
for (let t = 0; t < r.length; t++)
za(r, t) || (r[t] = null);
return r;
}
function Qi(r) {
const t = Pb(null);
for (const [e, A] of Hb(r))
za(r, e) && (Array.isArray(A) ? t[e] = DN(A) : A && typeof A == "object" && A.constructor === Object ? t[e] = Qi(A) : t[e] = A);
return t;
}
function al(r, t) {
for (; r !== null; ) {
const A = FN(r, t);
if (A) {
if (A.get)
return Xn(A.get);
if (typeof A.value == "function")
return Xn(A.value);
}
r = EN(r);
}
function e() {
return null;
}
return e;
}
const zm = zn(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]), uh = zn(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]), ch = zn(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]), kN = zn(["animate", "color-profile", "cursor", "discard", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]), fh = zn(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "mprescripts"]), LN = zn(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), Xm = zn(["#text"]), Jm = zn(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "popover", "popovertarget", "popovertargetaction", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "wrap", "xmlns", "slot"]), hh = zn(["accent-height", "accumulate", "additive", "alignment-baseline", "amplitude", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "exponent", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "intercept", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "slope", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "tablevalues", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]), Zm = zn(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]), Ku = zn(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), IN = Na(/\{\{[\w\W]*|[\w\W]*\}\}/gm), _N = Na(/<%[\w\W]*|[\w\W]*%>/gm), NN = Na(/\$\{[\w\W]*/gm), MN = Na(/^data-[\-\w.\u00B7-\uFFFF]+$/), ON = Na(/^aria-[\-\w]+$/), Kb = Na(
/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
// eslint-disable-line no-useless-escape
), RN = Na(/^(?:\w+script|data):/i), HN = Na(
/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
// eslint-disable-line no-control-regex
), Vb = Na(/^html$/i), PN = Na(/^[a-z][.\w]*(-[.\w]+)+$/i);
var e2 = /* @__PURE__ */ Object.freeze({
__proto__: null,
ARIA_ATTR: ON,
ATTR_WHITESPACE: HN,
CUSTOM_ELEMENT: PN,
DATA_ATTR: MN,
DOCTYPE_NAME: Vb,
ERB_EXPR: _N,
IS_ALLOWED_URI: Kb,
IS_SCRIPT_OR_DATA: RN,
MUSTACHE_EXPR: IN,
TMPLIT_EXPR: NN
});
const il = {
element: 1,
text: 3,
// Deprecated
progressingInstruction: 7,
comment: 8,
document: 9
}, KN = function() {
return typeof window > "u" ? null : window;
}, VN = function(t, e) {
if (typeof t != "object" || typeof t.createPolicy != "function")
return null;
let A = null;
const n = "data-tt-policy-suffix";
e && e.hasAttribute(n) && (A = e.getAttribute(n));
const a = "dompurify" + (A ? "#" + A : "");
try {
return t.createPolicy(a, {
createHTML(s) {
return s;
},
createScriptURL(s) {
return s;
}
});
} catch {
return console.warn("TrustedTypes policy " + a + " could not be created."), null;
}
}, t2 = function() {
return {
afterSanitizeAttributes: [],
afterSanitizeElements: [],
afterSanitizeShadowDOM: [],
beforeSanitizeAttributes: [],
beforeSanitizeElements: [],
beforeSanitizeShadowDOM: [],
uponSanitizeAttribute: [],
uponSanitizeElement: [],
uponSanitizeShadowNode: []
};
};
function qb() {
let r = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : KN();
const t = (Dt) => qb(Dt);
if (t.version = "3.2.6", t.removed = [], !r || !r.document || r.document.nodeType !== il.document || !r.Element)
return t.isSupported = !1, t;
let {
document: e
} = r;
const A = e, n = A.currentScript, {
DocumentFragment: a,
HTMLTemplateElement: s,
Node: i,
Element: o,
NodeFilter: l,
NamedNodeMap: u = r.NamedNodeMap || r.MozNamedAttrMap,
HTMLFormElement: h,
DOMParser: g,
trustedTypes: c
} = r, p = o.prototype, m = al(p, "cloneNode"), y = al(p, "remove"), w = al(p, "nextSibling"), E = al(p, "childNodes"), C = al(p, "parentNode");
if (typeof s == "function") {
const Dt = e.createElement("template");
Dt.content && Dt.content.ownerDocument && (e = Dt.content.ownerDocument);
}
let F, H = "";
const {
implementation: q,
createNodeIterator: N,
createDocumentFragment: M,
getElementsByTagName: k
} = e, {
importNode: O
} = A;
let S = t2();
t.isSupported = typeof Hb == "function" && typeof C == "function" && q && q.createHTMLDocument !== void 0;
const {
MUSTACHE_EXPR: U,
ERB_EXPR: W,
TMPLIT_EXPR: I,
DATA_ATTR: le,
ARIA_ATTR: ue,
IS_SCRIPT_OR_DATA: Z,
ATTR_WHITESPACE: ee,
CUSTOM_ELEMENT: X
} = e2;
let {
IS_ALLOWED_URI: Ae
} = e2, oe = null;
const x = xA({}, [...zm, ...uh, ...ch, ...fh, ...Xm]);
let L = null;
const j = xA({}, [...Jm, ...hh, ...Zm, ...Ku]);
let $ = Object.seal(Pb(null, {
tagNameCheck: {
writable: !0,
configurable: !1,
enumerable: !0,
value: null
},
attributeNameCheck: {
writable: !0,
configurable: !1,
enumerable: !0,
value: null
},
allowCustomizedBuiltInElements: {
writable: !0,
configurable: !1,
enumerable: !0,
value: !1
}
})), re = null, pe = null, de = !0, ce = !0, Se = !1, qe = !0, rt = !1, at = !0, dt = !1, D = !1, Ie = !1, me = !1, ve = !1, xe = !1, Qe = !0, _e = !1;
const Pe = "user-content-";
let je = !0, Ke = !1, et = {}, ut = null;
const yt = xA({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]);
let Ft = null;
const Bt = xA({}, ["audio", "video", "img", "source", "image", "track"]);
let St = null;
const bt = xA({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), nA = "http://www.w3.org/1998/Math/MathML", qt = "http://www.w3.org/2000/svg", Ot = "http://www.w3.org/1999/xhtml";
let Pt = Ot, sA = !1, kt = null;
const hA = xA({}, [nA, qt, Ot], lh);
let Nt = xA({}, ["mi", "mo", "mn", "ms", "mtext"]), Ce = xA({}, ["annotation-xml"]);
const Ve = xA({}, ["title", "style", "font", "a", "script"]);
let Re = null;
const $e = ["application/xhtml+xml", "text/html"], xt = "text/html";
let Ht = null, Mt = null;
const SA = e.createElement("form"), JA = function(be) {
return be instanceof RegExp || be instanceof Function;
}, Lt = function() {
let be = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
if (!(Mt && Mt === be)) {
if ((!be || typeof be != "object") && (be = {}), be = Qi(be), Re = // eslint-disable-next-line unicorn/prefer-includes
$e.indexOf(be.PARSER_MEDIA_TYPE) === -1 ? xt : be.PARSER_MEDIA_TYPE, Ht = Re === "application/xhtml+xml" ? lh : ac, oe = za(be, "ALLOWED_TAGS") ? xA({}, be.ALLOWED_TAGS, Ht) : x, L = za(be, "ALLOWED_ATTR") ? xA({}, be.ALLOWED_ATTR, Ht) : j, kt = za(be, "ALLOWED_NAMESPACES") ? xA({}, be.ALLOWED_NAMESPACES, lh) : hA, St = za(be, "ADD_URI_SAFE_ATTR") ? xA(Qi(bt), be.ADD_URI_SAFE_ATTR, Ht) : bt, Ft = za(be, "ADD_DATA_URI_TAGS") ? xA(Qi(Bt), be.ADD_DATA_URI_TAGS, Ht) : Bt, ut = za(be, "FORBID_CONTENTS") ? xA({}, be.FORBID_CONTENTS, Ht) : yt, re = za(be, "FORBID_TAGS") ? xA({}, be.FORBID_TAGS, Ht) : Qi({}), pe = za(be, "FORBID_ATTR") ? xA({}, be.FORBID_ATTR, Ht) : Qi({}), et = za(be, "USE_PROFILES") ? be.USE_PROFILES : !1, de = be.ALLOW_ARIA_ATTR !== !1, ce = be.ALLOW_DATA_ATTR !== !1, Se = be.ALLOW_UNKNOWN_PROTOCOLS || !1, qe = be.ALLOW_SELF_CLOSE_IN_ATTR !== !1, rt = be.SAFE_FOR_TEMPLATES || !1, at = be.SAFE_FOR_XML !== !1, dt = be.WHOLE_DOCUMENT || !1, me = be.RETURN_DOM || !1, ve = be.RETURN_DOM_FRAGMENT || !1, xe = be.RETURN_TRUSTED_TYPE || !1, Ie = be.FORCE_BODY || !1, Qe = be.SANITIZE_DOM !== !1, _e = be.SANITIZE_NAMED_PROPS || !1, je = be.KEEP_CONTENT !== !1, Ke = be.IN_PLACE || !1, Ae = be.ALLOWED_URI_REGEXP || Kb, Pt = be.NAMESPACE || Ot, Nt = be.MATHML_TEXT_INTEGRATION_POINTS || Nt, Ce = be.HTML_INTEGRATION_POINTS || Ce, $ = be.CUSTOM_ELEMENT_HANDLING || {}, be.CUSTOM_ELEMENT_HANDLING && JA(be.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && ($.tagNameCheck = be.CUSTOM_ELEMENT_HANDLING.tagNameCheck), be.CUSTOM_ELEMENT_HANDLING && JA(be.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && ($.attributeNameCheck = be.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), be.CUSTOM_ELEMENT_HANDLING && typeof be.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements == "boolean" && ($.allowCustomizedBuiltInElements = be.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), rt && (ce = !1), ve && (me = !0), et && (oe = xA({}, Xm), L = [], et.html === !0 && (xA(oe, zm), xA(L, Jm)), et.svg === !0 && (xA(oe, uh), xA(L, hh), xA(L, Ku)), et.svgFilters === !0 && (xA(oe, ch), xA(L, hh), xA(L, Ku)), et.mathMl === !0 && (xA(oe, fh), xA(L, Zm), xA(L, Ku))), be.ADD_TAGS && (oe === x && (oe = Qi(oe)), xA(oe, be.ADD_TAGS, Ht)), be.ADD_ATTR && (L === j && (L = Qi(L)), xA(L, be.ADD_ATTR, Ht)), be.ADD_URI_SAFE_ATTR && xA(St, be.ADD_URI_SAFE_ATTR, Ht), be.FORBID_CONTENTS && (ut === yt && (ut = Qi(ut)), xA(ut, be.FORBID_CONTENTS, Ht)), je && (oe["#text"] = !0), dt && xA(oe, ["html", "head", "body"]), oe.table && (xA(oe, ["tbody"]), delete re.tbody), be.TRUSTED_TYPES_POLICY) {
if (typeof be.TRUSTED_TYPES_POLICY.createHTML != "function")
throw nl('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
if (typeof be.TRUSTED_TYPES_POLICY.createScriptURL != "function")
throw nl('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
F = be.TRUSTED_TYPES_POLICY, H = F.createHTML("");
} else
F === void 0 && (F = VN(c, n)), F !== null && typeof H == "string" && (H = F.createHTML(""));
zn && zn(be), Mt = be;
}
}, Qr = xA({}, [...uh, ...ch, ...kN]), Fr = xA({}, [...fh, ...LN]), xr = function(be) {
let z = C(be);
(!z || !z.tagName) && (z = {
namespaceURI: Pt,
tagName: "template"
});
const ge = ac(be.tagName), We = ac(z.tagName);
return kt[be.namespaceURI] ? be.namespaceURI === qt ? z.namespaceURI === Ot ? ge === "svg" : z.namespaceURI === nA ? ge === "svg" && (We === "annotation-xml" || Nt[We]) : !!Qr[ge] : be.namespaceURI === nA ? z.namespaceURI === Ot ? ge === "math" : z.namespaceURI === qt ? ge === "math" && Ce[We] : !!Fr[ge] : be.namespaceURI === Ot ? z.namespaceURI === qt && !Ce[We] || z.namespaceURI === nA && !Nt[We] ? !1 : !Fr[ge] && (Ve[ge] || !Qr[ge]) : !!(Re === "application/xhtml+xml" && kt[be.namespaceURI]) : !1;
}, PA = function(be) {
Al(t.removed, {
element: be
});
try {
C(be).removeChild(be);
} catch {
y(be);
}
}, CA = function(be, z) {
try {
Al(t.removed, {
attribute: z.getAttributeNode(be),
from: z
});
} catch {
Al(t.removed, {
attribute: null,
from: z
});
}
if (z.removeAttribute(be), be === "is")
if (me || ve)
try {
PA(z);
} catch {
}
else
try {
z.setAttribute(be, "");
} catch {
}
}, MA = function(be) {
let z = null, ge = null;
if (Ie)
be = "<remove></remove>" + be;
else {
const V = $m(be, /^[\r\n\t ]+/);
ge = V && V[0];
}
Re === "application/xhtml+xml" && Pt === Ot && (be = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + be + "</body></html>");
const We = F ? F.createHTML(be) : be;
if (Pt === Ot)
try {
z = new g().parseFromString(We, Re);
} catch {
}
if (!z || !z.documentElement) {
z = q.createDocument(Pt, "template", null);
try {
z.documentElement.innerHTML = sA ? H : We;
} catch {
}
}
const it = z.body || z.documentElement;
return be && ge && it.insertBefore(e.createTextNode(ge), it.childNodes[0] || null), Pt === Ot ? k.call(z, dt ? "html" : "body")[0] : dt ? z.documentElement : it;
}, OA = function(be) {
return N.call(
be.ownerDocument || be,
be,
// eslint-disable-next-line no-bitwise
l.SHOW_ELEMENT | l.SHOW_COMMENT | l.SHOW_TEXT | l.SHOW_PROCESSING_INSTRUCTION | l.SHOW_CDATA_SECTION,
null
);
}, Dr = function(be) {
return be instanceof h && (typeof be.nodeName != "string" || typeof be.textContent != "string" || typeof be.removeChild != "function" || !(be.attributes instanceof u) || typeof be.removeAttribute != "function" || typeof be.setAttribute != "function" || typeof be.namespaceURI != "string" || typeof be.insertBefore != "function" || typeof be.hasChildNodes != "function");
}, Sr = function(be) {
return typeof i == "function" && be instanceof i;
};
function LA(Dt, be, z) {
Pu(Dt, (ge) => {
ge.call(t, be, z, Mt);
});
}
const pr = function(be) {
let z = null;
if (LA(S.beforeSanitizeElements, be, null), Dr(be))
return PA(be), !0;
const ge = Ht(be.nodeName);
if (LA(S.uponSanitizeElement, be, {
tagName: ge,
allowedTags: oe
}), at && be.hasChildNodes() && !Sr(be.firstElementChild) && Gn(/<[/\w!]/g, be.innerHTML) && Gn(/<[/\w!]/g, be.textContent) || be.nodeType === il.progressingInstruction || at && be.nodeType === il.comment && Gn(/<[/\w]/g, be.data))
return PA(be), !0;
if (!oe[ge] || re[ge]) {
if (!re[ge] && ZA(ge) && ($.tagNameCheck instanceof RegExp && Gn($.tagNameCheck, ge) || $.tagNameCheck instanceof Function && $.tagNameCheck(ge)))
return !1;
if (je && !ut[ge]) {
const We = C(be) || be.parentNode, it = E(be) || be.childNodes;
if (it && We) {
const V = it.length;
for (let Be = V - 1; Be >= 0; --Be) {
const Fe = m(it[Be], !0);
Fe.__removalCount = (be.__removalCount || 0) + 1, We.insertBefore(Fe, w(be));
}
}
}
return PA(be), !0;
}
return be instanceof o && !xr(be) || (ge === "noscript" || ge === "noembed" || ge === "noframes") && Gn(/<\/no(script|embed|frames)/i, be.innerHTML) ? (PA(be), !0) : (rt && be.nodeType === il.text && (z = be.textContent, Pu([U, W, I], (We) => {
z = rl(z, We, " ");
}), be.textContent !== z && (Al(t.removed, {
element: be.cloneNode()
}), be.textContent = z)), LA(S.afterSanitizeElements, be, null), !1);
}, kr = function(be, z, ge) {
if (Qe && (z === "id" || z === "name") && (ge in e || ge in SA))
return !1;
if (!(ce && !pe[z] && Gn(le, z))) {
if (!(de && Gn(ue, z))) {
if (!L[z] || pe[z]) {
if (
// First condition does a very basic check if a) it's basically a valid custom element tagname AND
// b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
// and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
!(ZA(be) && ($.tagNameCheck instanceof RegExp && Gn($.tagNameCheck, be) || $.tagNameCheck instanceof Function && $.tagNameCheck(be)) && ($.attributeNameCheck instanceof RegExp && Gn($.attributeNameCheck, z) || $.attributeNameCheck instanceof Function && $.attributeNameCheck(z)) || // Alternative, second condition checks if it's an `is`-attribute, AND
// the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
z === "is" && $.allowCustomizedBuiltInElements && ($.tagNameCheck instanceof RegExp && Gn($.tagNameCheck, ge) || $.tagNameCheck instanceof Function && $.tagNameCheck(ge)))
) return !1;
} else if (!St[z]) {
if (!Gn(Ae, rl(ge, ee, ""))) {
if (!((z === "src" || z === "xlink:href" || z === "href") && be !== "script" && UN(ge, "data:") === 0 && Ft[be])) {
if (!(Se && !Gn(Z, rl(ge, ee, "")))) {
if (ge)
return !1;
}
}
}
}
}
}
return !0;
}, ZA = function(be) {
return be !== "annotation-xml" && $m(be, X);
}, Lr = function(be) {
LA(S.beforeSanitizeAttributes, be, null);
const {
attributes: z
} = be;
if (!z || Dr(be))
return;
const ge = {
attrName: "",
attrValue: "",
keepAttr: !0,
allowedAttributes: L,
forceKeepAttr: void 0
};
let We = z.length;
for (; We--; ) {
const it = z[We], {
name: V,
namespaceURI: Be,
value: Fe
} = it, ke = Ht(V), Ze = Fe;
let Me = V === "value" ? Ze : TN(Ze);
if (ge.attrName = ke, ge.attrValue = Me, ge.keepAttr = !0, ge.forceKeepAttr = void 0, LA(S.uponSanitizeAttribute, be, ge), Me = ge.attrValue, _e && (ke === "id" || ke === "name") && (CA(V, be), Me = Pe + Me), at && Gn(/((--!?|])>)|<\/(style|title)/i, Me)) {
CA(V, be);
continue;
}
if (ge.forceKeepAttr)
continue;
if (!ge.keepAttr) {
CA(V, be);
continue;
}
if (!qe && Gn(/\/>/i, Me)) {
CA(V, be);
continue;
}
rt && Pu([U, W, I], (Je) => {
Me = rl(Me, Je, " ");
});
const tt = Ht(be.nodeName);
if (!kr(tt, ke, Me)) {
CA(V, be);
continue;
}
if (F && typeof c == "object" && typeof c.getAttributeType == "function" && !Be)
switch (c.getAttributeType(tt, ke)) {
case "TrustedHTML": {
Me = F.createHTML(Me);
break;
}
case "TrustedScriptURL": {
Me = F.createScriptURL(Me);
break;
}
}
if (Me !== Ze)
try {
Be ? be.setAttributeNS(Be, V, Me) : be.setAttribute(V, Me), Dr(be) ? PA(be) : Ym(t.removed);
} catch {
CA(V, be);
}
}
LA(S.afterSanitizeAttributes, be, null);
}, Un = function Dt(be) {
let z = null;
const ge = OA(be);
for (LA(S.beforeSanitizeShadowDOM, be, null); z = ge.nextNode(); )
LA(S.uponSanitizeShadowNode, z, null), pr(z), Lr(z), z.content instanceof a && Dt(z.content);
LA(S.afterSanitizeShadowDOM, be, null);
};
return t.sanitize = function(Dt) {
let be = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, z = null, ge = null, We = null, it = null;
if (sA = !Dt, sA && (Dt = "<!-->"), typeof Dt != "string" && !Sr(Dt))
if (typeof Dt.toString == "function") {
if (Dt = Dt.toString(), typeof Dt != "string")
throw nl("dirty is not a string, aborting");
} else
throw nl("toString is not a function");
if (!t.isSupported)
return Dt;
if (D || Lt(be), t.removed = [], typeof Dt == "string" && (Ke = !1), Ke) {
if (Dt.nodeName) {
const Fe = Ht(Dt.nodeName);
if (!oe[Fe] || re[Fe])
throw nl("root node is forbidden and cannot be sanitized in-place");
}
} else if (Dt instanceof i)
z = MA("<!---->"), ge = z.ownerDocument.importNode(Dt, !0), ge.nodeType === il.element && ge.nodeName === "BODY" || ge.nodeName === "HTML" ? z = ge : z.appendChild(ge);
else {
if (!me && !rt && !dt && // eslint-disable-next-line unicorn/prefer-includes
Dt.indexOf("<") === -1)
return F && xe ? F.createHTML(Dt) : Dt;
if (z = MA(Dt), !z)
return me ? null : xe ? H : "";
}
z && Ie && PA(z.firstChild);
const V = OA(Ke ? Dt : z);
for (; We = V.nextNode(); )
pr(We), Lr(We), We.content instanceof a && Un(We.content);
if (Ke)
return Dt;
if (me) {
if (ve)
for (it = M.call(z.ownerDocument); z.firstChild; )
it.appendChild(z.firstChild);
else
it = z;
return (L.shadowroot || L.shadowrootmode) && (it = O.call(A, it, !0)), it;
}
let Be = dt ? z.outerHTML : z.innerHTML;
return dt && oe["!doctype"] && z.ownerDocument && z.ownerDocument.doctype && z.ownerDocument.doctype.name && Gn(Vb, z.ownerDocument.doctype.name) && (Be = "<!DOCTYPE " + z.ownerDocument.doctype.name + `>
` + Be), rt && Pu([U, W, I], (Fe) => {
Be = rl(Be, Fe, " ");
}), F && xe ? F.createHTML(Be) : Be;
}, t.setConfig = function() {
let Dt = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
Lt(Dt), D = !0;
}, t.clearConfig = function() {
Mt = null, D = !1;
}, t.isValidAttribute = function(Dt, be, z) {
Mt || Lt({});
const ge = Ht(Dt), We = Ht(be);
return kr(ge, We, z);
}, t.addHook = function(Dt, be) {
typeof be == "function" && Al(S[Dt], be);
}, t.removeHook = function(Dt, be) {
if (be !== void 0) {
const z = xN(S[Dt], be);
return z === -1 ? void 0 : SN(S[Dt], z, 1)[0];
}
return Ym(S[Dt]);
}, t.removeHooks = function(Dt) {
S[Dt] = [];
}, t.removeAllHooks = function() {
S = t2();
}, t;
}
var qN = qb();
const jN = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
default: qN
}, Symbol.toStringTag, { value: "Module" }));
var Np = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
function jb(r) {
return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, "default") ? r.default : r;
}
var A2 = {}, r2 = {}, sl, n2;
function Er() {
if (n2) return sl;
n2 = 1;
var r = function(t) {
return t && t.Math === Math && t;
};
return sl = // eslint-disable-next-line es/no-global-this -- safe
r(typeof globalThis == "object" && globalThis) || r(typeof window == "object" && window) || // eslint-disable-next-line no-restricted-globals -- safe
r(typeof self == "object" && self) || r(typeof Np == "object" && Np) || r(typeof sl == "object" && sl) || // eslint-disable-next-line no-new-func -- fallback
/* @__PURE__ */ (function() {
return this;
})() || Function("return this")(), sl;
}
var dh = {}, gh, a2;
function Hr() {
return a2 || (a2 = 1, gh = function(r) {
try {
return !!r();
} catch {
return !0;
}
}), gh;
}
var ph, i2;
function ti() {
if (i2) return ph;
i2 = 1;
var r = Hr();
return ph = !r(function() {
return Object.defineProperty({}, 1, { get: function() {
return 7;
} })[1] !== 7;
}), ph;
}
var vh, s2;
function Oc() {
if (s2) return vh;
s2 = 1;
var r = Hr();
return vh = !r(function() {
var t = (function() {
}).bind();
return typeof t != "function" || t.hasOwnProperty("prototype");
}), vh;
}
var mh, o2;
function Sn() {
if (o2) return mh;
o2 = 1;
var r = Oc(), t = Function.prototype.call;
return mh = r ? t.bind(t) : function() {
return t.apply(t, arguments);
}, mh;
}
var wh = {}, l2;
function WN() {
if (l2) return wh;
l2 = 1;
var r = {}.propertyIsEnumerable, t = Object.getOwnPropertyDescriptor, e = t && !r.call({ 1: 2 }, 1);
return wh.f = e ? function(n) {
var a = t(this, n);
return !!a && a.enumerable;
} : r, wh;
}
var Bh, u2;
function ov() {
return u2 || (u2 = 1, Bh = function(r, t) {
return {
enumerable: !(r & 1),
configurable: !(r & 2),
writable: !(r & 4),
value: t
};
}), Bh;
}
var yh, c2;
function Pr() {
if (c2) return yh;
c2 = 1;
var r = Oc(), t = Function.prototype, e = t.call, A = r && t.bind.bind(e, e);
return yh = r ? A : function(n) {
return function() {
return e.apply(n, arguments);
};
}, yh;
}
var bh, f2;
function Ws() {
if (f2) return bh;
f2 = 1;
var r = Pr(), t = r({}.toString), e = r("".slice);
return bh = function(A) {
return e(t(A), 8, -1);
}, bh;
}
var Ch, h2;
function Wb() {
if (h2) return Ch;
h2 = 1;
var r = Pr(), t = Hr(), e = Ws(), A = Object, n = r("".split);
return Ch = t(function() {
return !A("z").propertyIsEnumerable(0);
}) ? function(a) {
return e(a) === "String" ? n(a, "") : A(a);
} : A, Ch;
}
var Eh, d2;
function Rc() {
return d2 || (d2 = 1, Eh = function(r) {
return r == null;
}), Eh;
}
var Fh, g2;
function Ai() {
if (g2) return Fh;
g2 = 1;
var r = Rc(), t = TypeError;
return Fh = function(e) {
if (r(e)) throw new t("Can't call method on " + e);
return e;
}, Fh;
}
var xh, p2;
function kl() {
if (p2) return xh;
p2 = 1;
var r = Wb(), t = Ai();
return xh = function(e) {
return r(t(e));
}, xh;
}
var Sh, v2;
function Xr() {
if (v2) return Sh;
v2 = 1;
var r = typeof document == "object" && document.all;
return Sh = typeof r > "u" && r !== void 0 ? function(t) {
return typeof t == "function" || t === r;
} : function(t) {
return typeof t == "function";
}, Sh;
}
var Uh, m2;
function oa() {
if (m2) return Uh;
m2 = 1;
var r = Xr();
return Uh = function(t) {
return typeof t == "object" ? t !== null : r(t);
}, Uh;
}
var Th, w2;
function Gs() {
if (w2) return Th;
w2 = 1;
var r = Er(), t = Xr(), e = function(A) {
return t(A) ? A : void 0;
};
return Th = function(A, n) {
return arguments.length < 2 ? e(r[A]) : r[A] && r[A][n];
}, Th;
}
var Qh, B2;
function Hc() {
if (B2) return Qh;
B2 = 1;
var r = Pr();
return Qh = r({}.isPrototypeOf), Qh;
}
var Dh, y2;
function Ll() {
if (y2) return Dh;
y2 = 1;
var r = Er(), t = r.navigator, e = t && t.userAgent;
return Dh = e ? String(e) : "", Dh;
}
var kh, b2;
function lv() {
if (b2) return kh;
b2 = 1;
var r = Er(), t = Ll(), e = r.process, A = r.Deno, n = e && e.versions || A && A.version, a = n && n.v8, s, i;
return a && (s = a.split("."), i = s[0] > 0 && s[0] < 4 ? 1 : +(s[0] + s[1])), !i && t && (s = t.match(/Edge\/(\d+)/), (!s || s[1] >= 74) && (s = t.match(/Chrome\/(\d+)/), s && (i = +s[1]))), kh = i, kh;
}
var Lh, C2;
function Gb() {
if (C2) return Lh;
C2 = 1;
var r = lv(), t = Hr(), e = Er(), A = e.String;
return Lh = !!Object.getOwnPropertySymbols && !t(function() {
var n = Symbol("symbol detection");
return !A(n) || !(Object(n) instanceof Symbol) || // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
!Symbol.sham && r && r < 41;
}), Lh;
}
var Ih, E2;
function Yb() {
if (E2) return Ih;
E2 = 1;
var r = Gb();
return Ih = r && !Symbol.sham && typeof Symbol.iterator == "symbol", Ih;
}
var _h, F2;
function $b() {
if (F2) return _h;
F2 = 1;
var r = Gs(), t = Xr(), e = Hc(), A = Yb(), n = Object;
return _h = A ? function(a) {
return typeof a == "symbol";
} : function(a) {
var s = r("Symbol");
return t(s) && e(s.prototype, n(a));
}, _h;
}
var Nh, x2;
function Pc() {
if (x2) return Nh;
x2 = 1;
var r = String;
return Nh = function(t) {
try {
return r(t);
} catch {
return "Object";
}
}, Nh;
}
var Mh, S2;
function Ri() {
if (S2) return Mh;
S2 = 1;
var r = Xr(), t = Pc(), e = TypeError;
return Mh = function(A) {
if (r(A)) return A;
throw new e(t(A) + " is not a function");
}, Mh;
}
var Oh, U2;
function Io() {
if (U2) return Oh;
U2 = 1;
var r = Ri(), t = Rc();
return Oh = function(e, A) {
var n = e[A];
return t(n) ? void 0 : r(n);
}, Oh;
}
var Rh, T2;
function GN() {
if (T2) return Rh;
T2 = 1;
var r = Sn(), t = Xr(), e = oa(), A = TypeError;
return Rh = function(n, a) {
var s, i;
if (a === "string" && t(s = n.toString) && !e(i = r(s, n)) || t(s = n.valueOf) && !e(i = r(s, n)) || a !== "string" && t(s = n.toString) && !e(i = r(s, n))) return i;
throw new A("Can't convert object to primitive value");
}, Rh;
}
var Hh = { exports: {} }, Ph, Q2;
function vi() {
return Q2 || (Q2 = 1, Ph = !1), Ph;
}
var Kh, D2;
function uv() {
if (D2) return Kh;
D2 = 1;
var r = Er(), t = Object.defineProperty;
return Kh = function(e, A) {
try {
t(r, e, { value: A, configurable: !0, writable: !0 });
} catch {
r[e] = A;
}
return A;
}, Kh;
}
var k2;
function cv() {
if (k2) return Hh.exports;
k2 = 1;
var r = vi(), t = Er(), e = uv(), A = "__core-js_shared__", n = Hh.exports = t[A] || e(A, {});
return (n.versions || (n.versions = [])).push({
version: "3.43.0",
mode: r ? "pure" : "global",
copyright: "© 2014-2025 Denis Pushkarev (zloirock.ru)",
license: "https://github.com/zloirock/core-js/blob/v3.43.0/LICENSE",
source: "https://github.com/zloirock/core-js"
}), Hh.exports;
}
var Vh, L2;
function fv() {
if (L2) return Vh;
L2 = 1;
var r = cv();
return Vh = function(t, e) {
return r[t] || (r[t] = e || {});
}, Vh;
}
var qh, I2;
function Kc() {
if (I2) return qh;
I2 = 1;
var r = Ai(), t = Object;
return qh = function(e) {
return t(r(e));
}, qh;
}
var jh, _2;
function ri() {
if (_2) return jh;
_2 = 1;
var r = Pr(), t = Kc(), e = r({}.hasOwnProperty);
return jh = Object.hasOwn || function(n, a) {
return e(t(n), a);
}, jh;
}
var Wh, N2;
function zb() {
if (N2) return Wh;
N2 = 1;
var r = Pr(), t = 0, e = Math.random(), A = r(1.1.toString);
return Wh = function(n) {
return "Symbol(" + (n === void 0 ? "" : n) + ")_" + A(++t + e, 36);
}, Wh;
}
var Gh, M2;
function gn() {
if (M2) return Gh;
M2 = 1;
var r = Er(), t = fv(), e = ri(), A = zb(), n = Gb(), a = Yb(), s = r.Symbol, i = t("wks"), o = a ? s.for || s : s && s.withoutSetter || A;
return Gh = function(l) {
return e(i, l) || (i[l] = n && e(s, l) ? s[l] : o("Symbol." + l)), i[l];
}, Gh;
}
var Yh, O2;
function YN() {
if (O2) return Yh;
O2 = 1;
var r = Sn(), t = oa(), e = $b(), A = Io(), n = GN(), a = gn(), s = TypeError, i = a("toPrimitive");
return Yh = function(o, l) {
if (!t(o) || e(o)) return o;
var u = A(o, i), h;
if (u) {
if (l === void 0 && (l = "default"), h = r(u, o, l), !t(h) || e(h)) return h;
throw new s("Can't convert object to primitive value");
}
return l === void 0 && (l = "number"), n(o, l);
}, Yh;
}
var $h, R2;
function Xb() {
if (R2) return $h;
R2 = 1;
var r = YN(), t = $b();
return $h = function(e) {
var A = r(e, "string");
return t(A) ? A : A + "";
}, $h;
}
var zh, H2;
function Vc() {
if (H2) return zh;
H2 = 1;
var r = Er(), t = oa(), e = r.document, A = t(e) && t(e.createElement);
return zh = function(n) {
return A ? e.createElement(n) : {};
}, zh;
}
var Xh, P2;
function Jb() {
if (P2) return Xh;
P2 = 1;
var r = ti(), t = Hr(), e = Vc();
return Xh = !r && !t(function() {
return Object.defineProperty(e("div"), "a", {
get: function() {
return 7;
}
}).a !== 7;
}), Xh;
}
var K2;
function qc() {
if (K2) return dh;
K2 = 1;
var r = ti(), t = Sn(), e = WN(), A = ov(), n = kl(), a = Xb(), s = ri(), i = Jb(), o = Object.getOwnPropertyDescriptor;
return dh.f = r ? o : function(u, h) {
if (u = n(u), h = a(h), i) try {
return o(u, h);
} catch {
}
if (s(u, h)) return A(!t(e.f, u, h), u[h]);
}, dh;
}
var Jh = {}, Zh, V2;
function Zb() {
if (V2) return Zh;
V2 = 1;
var r = ti(), t = Hr();
return Zh = r && t(function() {
return Object.defineProperty(function() {
}, "prototype", {
value: 42,
writable: !1
}).prototype !== 42;
}), Zh;
}
var ed, q2;
function Jn() {
if (q2) return ed;
q2 = 1;
var r = oa(), t = String, e = TypeError;
return ed = function(A) {
if (r(A)) return A;
throw new e(t(A) + " is not an object");
}, ed;
}
var j2;
function ms() {
if (j2) return Jh;
j2 = 1;
var r = ti(), t = Jb(), e = Zb(), A = Jn(), n = Xb(), a = TypeError, s = Object.defineProperty, i = Object.getOwnPropertyDescriptor, o = "enumerable", l = "configurable", u = "writable";
return Jh.f = r ? e ? function(g, c, p) {
if (A(g), c = n(c), A(p), typeof g == "function" && c === "prototype" && "value" in p && u in p && !p[u]) {
var m = i(g, c);
m && m[u] && (g[c] = p.value, p = {
configurable: l in p ? p[l] : m[l],
enumerable: o in p ? p[o] : m[o],
writable: !1
});
}
return s(g, c, p);
} : s : function(g, c, p) {
if (A(g), c = n(c), A(p), t) try {
return s(g, c, p);
} catch {
}
if ("get" in p || "set" in p) throw new a("Accessors not supported");
return "value" in p && (g[c] = p.value), g;
}, Jh;
}
var td, W2;
function Il() {
if (W2) return td;
W2 = 1;
var r = ti(), t = ms(), e = ov();
return td = r ? function(A, n, a) {
return t.f(A, n, e(1, a));
} : function(A, n, a) {
return A[n] = a, A;
}, td;
}
var Ad = { exports: {} }, rd, G2;
function jc() {
if (G2) return rd;
G2 = 1;
var r = ti(), t = ri(), e = Function.prototype, A = r && Object.getOwnPropertyDescriptor, n = t(e, "name"), a = n && (function() {
}).name === "something", s = n && (!r || r && A(e, "name").configurable);
return rd = {
EXISTS: n,
PROPER: a,
CONFIGURABLE: s
}, rd;
}
var nd, Y2;
function hv() {
if (Y2) return nd;
Y2 = 1;
var r = Pr(), t = Xr(), e = cv(), A = r(Function.toString);
return t(e.inspectSource) || (e.inspectSource = function(n) {
return A(n);
}), nd = e.inspectSource, nd;
}
var ad, $2;
function $N() {
if ($2) return ad;
$2 = 1;
var r = Er(), t = Xr(), e = r.WeakMap;
return ad = t(e) && /native code/.test(String(e)), ad;
}
var id, z2;
function dv() {
if (z2) return id;
z2 = 1;
var r = fv(), t = zb(), e = r("keys");
return id = function(A) {
return e[A] || (e[A] = t(A));
}, id;
}
var sd, X2;
function gv() {
return X2 || (X2 = 1, sd = {}), sd;
}
var od, J2;
function Wc() {
if (J2) return od;
J2 = 1;
var r = $N(), t = Er(), e = oa(), A = Il(), n = ri(), a = cv(), s = dv(), i = gv(), o = "Object already initialized", l = t.TypeError, u = t.WeakMap, h, g, c, p = function(E) {
return c(E) ? g(E) : h(E, {});
}, m = function(E) {
return function(C) {
var F;
if (!e(C) || (F = g(C)).type !== E)
throw new l("Incompatible receiver, " + E + " required");
return F;
};
};
if (r || a.state) {
var y = a.state || (a.state = new u());
y.get = y.get, y.has = y.has, y.set = y.set, h = function(E, C) {
if (y.has(E)) throw new l(o);
return C.facade = E, y.set(E, C), C;
}, g = function(E) {
return y.get(E) || {};
}, c = function(E) {
return y.has(E);
};
} else {
var w = s("state");
i[w] = !0, h = function(E, C) {
if (n(E, w)) throw new l(o);
return C.facade = E, A(E, w, C), C;
}, g = function(E) {
return n(E, w) ? E[w] : {};
}, c = function(E) {
return n(E, w);
};
}
return od = {
set: h,
get: g,
has: c,
enforce: p,
getterFor: m
}, od;
}
var Z2;
function eC() {
if (Z2) return Ad.exports;
Z2 = 1;
var r = Pr(), t = Hr(), e = Xr(), A = ri(), n = ti(), a = jc().CONFIGURABLE, s = hv(), i = Wc(), o = i.enforce, l = i.get, u = String, h = Object.defineProperty, g = r("".slice), c = r("".replace), p = r([].join), m = n && !t(function() {
return h(function() {
}, "length", { value: 8 }).length !== 8;
}), y = String(String).split("String"), w = Ad.exports = function(E, C, F) {
g(u(C), 0, 7) === "Symbol(" && (C = "[" + c(u(C), /^Symbol\(([^)]*)\).*$/, "$1") + "]"), F && F.getter && (C = "get " + C), F && F.setter && (C = "set " + C), (!A(E, "name") || a && E.name !== C) && (n ? h(E, "name", { value: C, configurable: !0 }) : E.name = C), m && F && A(F, "arity") && E.length !== F.arity && h(E, "length", { value: F.arity });
try {
F && A(F, "constructor") && F.constructor ? n && h(E, "prototype", { writable: !1 }) : E.prototype && (E.prototype = void 0);
} catch {
}
var H = o(E);
return A(H, "source") || (H.source = p(y, typeof C == "string" ? C : "")), E;
};
return Function.prototype.toString = w(function() {
return e(this) && l(this).source || s(this);
}, "toString"), Ad.exports;
}
var ld, ew;
function Ys() {
if (ew) return ld;
ew = 1;
var r = Xr(), t = ms(), e = eC(), A = uv();
return ld = function(n, a, s, i) {
i || (i = {});
var o = i.enumerable, l = i.name !== void 0 ? i.name : a;
if (r(s) && e(s, l, i), i.global)
o ? n[a] = s : A(a, s);
else {
try {
i.unsafe ? n[a] && (o = !0) : delete n[a];
} catch {
}
o ? n[a] = s : t.f(n, a, {
value: s,
enumerable: !1,
configurable: !i.nonConfigurable,
writable: !i.nonWritable
});
}
return n;
}, ld;
}
var ud = {}, cd, tw;
function zN() {
if (tw) return cd;
tw = 1;
var r = Math.ceil, t = Math.floor;
return cd = Math.trunc || function(A) {
var n = +A;
return (n > 0 ? t : r)(n);
}, cd;
}
var fd, Aw;
function Gc() {
if (Aw) return fd;
Aw = 1;
var r = zN();
return fd = function(t) {
var e = +t;
return e !== e || e === 0 ? 0 : r(e);
}, fd;
}
var hd, rw;
function XN() {
if (rw) return hd;
rw = 1;
var r = Gc(), t = Math.max, e = Math.min;
return hd = function(A, n) {
var a = r(A);
return a < 0 ? t(a + n, 0) : e(a, n);
}, hd;
}
var dd, nw;
function _o() {
if (nw) return dd;
nw = 1;
var r = Gc(), t = Math.min;
return dd = function(e) {
var A = r(e);
return A > 0 ? t(A, 9007199254740991) : 0;
}, dd;
}
var gd, aw;
function pv() {
if (aw) return gd;
aw = 1;
var r = _o();
return gd = function(t) {
return r(t.length);
}, gd;
}
var pd, iw;
function tC() {
if (iw) return pd;
iw = 1;
var r = kl(), t = XN(), e = pv(), A = function(n) {
return function(a, s, i) {
var o = r(a), l = e(o);
if (l === 0) return !n && -1;
var u = t(i, l), h;
if (n && s !== s) {
for (; l > u; )
if (h = o[u++], h !== h) return !0;
} else for (; l > u; u++)
if ((n || u in o) && o[u] === s) return n || u || 0;
return !n && -1;
};
};
return pd = {
// `Array.prototype.includes` method
// https://tc39.es/ecma262/#sec-array.prototype.includes
includes: A(!0),
// `Array.prototype.indexOf` method
// https://tc39.es/ecma262/#sec-array.prototype.indexof
indexOf: A(!1)
}, pd;
}
var vd, sw;
function AC() {
if (sw) return vd;
sw = 1;
var r = Pr(), t = ri(), e = kl(), A = tC().indexOf, n = gv(), a = r([].push);
return vd = function(s, i) {
var o = e(s), l = 0, u = [], h;
for (h in o) !t(n, h) && t(o, h) && a(u, h);
for (; i.length > l; ) t(o, h = i[l++]) && (~A(u, h) || a(u, h));
return u;
}, vd;
}
var md, ow;
function vv() {
return ow || (ow = 1, md = [
"constructor",
"hasOwnProperty",
"isPrototypeOf",
"propertyIsEnumerable",
"toLocaleString",
"toString",
"valueOf"
]), md;
}
var lw;
function JN() {
if (lw) return ud;
lw = 1;
var r = AC(), t = vv(), e = t.concat("length", "prototype");
return ud.f = Object.getOwnPropertyNames || function(n) {
return r(n, e);
}, ud;
}
var wd = {}, uw;
function ZN() {
return uw || (uw = 1, wd.f = Object.getOwnPropertySymbols), wd;
}
var Bd, cw;
function eM() {
if (cw) return Bd;
cw = 1;
var r = Gs(), t = Pr(), e = JN(), A = ZN(), n = Jn(), a = t([].concat);
return Bd = r("Reflect", "ownKeys") || function(i) {
var o = e.f(n(i)), l = A.f;
return l ? a(o, l(i)) : o;
}, Bd;
}
var yd, fw;
function tM() {
if (fw) return yd;
fw = 1;
var r = ri(), t = eM(), e = qc(), A = ms();
return yd = function(n, a, s) {
for (var i = t(a), o = A.f, l = e.f, u = 0; u < i.length; u++) {
var h = i[u];
!r(n, h) && !(s && r(s, h)) && o(n, h, l(a, h));
}
}, yd;
}
var bd, hw;
function rC() {
if (hw) return bd;
hw = 1;
var r = Hr(), t = Xr(), e = /#|\.prototype\./, A = function(o, l) {
var u = a[n(o)];
return u === i ? !0 : u === s ? !1 : t(l) ? r(l) : !!l;
}, n = A.normalize = function(o) {
return String(o).replace(e, ".").toLowerCase();
}, a = A.data = {}, s = A.NATIVE = "N", i = A.POLYFILL = "P";
return bd = A, bd;
}
var Cd, dw;
function Zn() {
if (dw) return Cd;
dw = 1;
var r = Er(), t = qc().f, e = Il(), A = Ys(), n = uv(), a = tM(), s = rC();
return Cd = function(i, o) {
var l = i.target, u = i.global, h = i.stat, g, c, p, m, y, w;
if (u ? c = r : h ? c = r[l] || n(l, {}) : c = r[l] && r[l].prototype, c) for (p in o) {
if (y = o[p], i.dontCallGetSet ? (w = t(c, p), m = w && w.value) : m = c[p], g = s(u ? p : l + (h ? "." : "#") + p, i.forced), !g && m !== void 0) {
if (typeof y == typeof m) continue;
a(y, m);
}
(i.sham || m && m.sham) && e(y, "sham", !0), A(c, p, y, i);
}
}, Cd;
}
var Ed, gw;
function nC() {
if (gw) return Ed;
gw = 1;
var r = Er(), t = Ll(), e = Ws(), A = function(n) {
return t.slice(0, n.length) === n;
};
return Ed = (function() {
return A("Bun/") ? "BUN" : A("Cloudflare-Workers") ? "CLOUDFLARE" : A("Deno/") ? "DENO" : A("Node.js/") ? "NODE" : r.Bun && typeof Bun.version == "string" ? "BUN" : r.Deno && typeof Deno.version == "object" ? "DENO" : e(r.process) === "process" ? "NODE" : r.window && r.document ? "BROWSER" : "REST";
})(), Ed;
}
var Fd, pw;
function Yc() {
if (pw) return Fd;
pw = 1;
var r = nC();
return Fd = r === "NODE", Fd;
}
var xd, vw;
function AM() {
if (vw) return xd;
vw = 1;
var r = Er();
return xd = r, xd;
}
var Sd, mw;
function rM() {
if (mw) return Sd;
mw = 1;
var r = Pr(), t = Ri();
return Sd = function(e, A, n) {
try {
return r(t(Object.getOwnPropertyDescriptor(e, A)[n]));
} catch {
}
}, Sd;
}
var Ud, ww;
function nM() {
if (ww) return Ud;
ww = 1;
var r = oa();
return Ud = function(t) {
return r(t) || t === null;
}, Ud;
}
var Td, Bw;
function aM() {
if (Bw) return Td;
Bw = 1;
var r = nM(), t = String, e = TypeError;
return Td = function(A) {
if (r(A)) return A;
throw new e("Can't set " + t(A) + " as a prototype");
}, Td;
}
var Qd, yw;
function aC() {
if (yw) return Qd;
yw = 1;
var r = rM(), t = oa(), e = Ai(), A = aM();
return Qd = Object.setPrototypeOf || ("__proto__" in {} ? (function() {
var n = !1, a = {}, s;
try {
s = r(Object.prototype, "__proto__", "set"), s(a, []), n = a instanceof Array;
} catch {
}
return function(o, l) {
return e(o), A(l), t(o) && (n ? s(o, l) : o.__proto__ = l), o;
};
})() : void 0), Qd;
}
var Dd, bw;
function $c() {
if (bw) return Dd;
bw = 1;
var r = ms().f, t = ri(), e = gn(), A = e("toStringTag");
return Dd = function(n, a, s) {
n && !s && (n = n.prototype), n && !t(n, A) && r(n, A, { configurable: !0, value: a });
}, Dd;
}
var kd, Cw;
function iM() {
if (Cw) return kd;
Cw = 1;
var r = eC(), t = ms();
return kd = function(e, A, n) {
return n.get && r(n.get, A, { getter: !0 }), n.set && r(n.set, A, { setter: !0 }), t.f(e, A, n);
}, kd;
}
var Ld, Ew;
function sM() {
if (Ew) return Ld;
Ew = 1;
var r = Gs(), t = iM(), e = gn(), A = ti(), n = e("species");
return Ld = function(a) {
var s = r(a);
A && s && !s[n] && t(s, n, {
configurable: !0,
get: function() {
return this;
}
});
}, Ld;
}
var Id, Fw;
function oM() {
if (Fw) return Id;
Fw = 1;
var r = Hc(), t = TypeError;
return Id = function(e, A) {
if (r(A, e)) return e;
throw new t("Incorrect invocation");
}, Id;
}
var _d, xw;
function lM() {
if (xw) return _d;
xw = 1;
var r = gn(), t = r("toStringTag"), e = {};
return e[t] = "z", _d = String(e) === "[object z]", _d;
}
var Nd, Sw;
function mv() {
if (Sw) return Nd;
Sw = 1;
var r = lM(), t = Xr(), e = Ws(), A = gn(), n = A("toStringTag"), a = Object, s = e(/* @__PURE__ */ (function() {
return arguments;
})()) === "Arguments", i = function(o, l) {
try {
return o[l];
} catch {
}
};
return Nd = r ? e : function(o) {
var l, u, h;
return o === void 0 ? "Undefined" : o === null ? "Null" : typeof (u = i(l = a(o), n)) == "string" ? u : s ? e(l) : (h = e(l)) === "Object" && t(l.callee) ? "Arguments" : h;
}, Nd;
}
var Md, Uw;
function uM() {
if (Uw) return Md;
Uw = 1;
var r = Pr(), t = Hr(), e = Xr(), A = mv(), n = Gs(), a = hv(), s = function() {
}, i = n("Reflect", "construct"), o = /^\s*(?:class|function)\b/, l = r(o.exec), u = !o.test(s), h = function(p) {
if (!e(p)) return !1;
try {
return i(s, [], p), !0;
} catch {
return !1;
}
}, g = function(p) {
if (!e(p)) return !1;
switch (A(p)) {
case "AsyncFunction":
case "GeneratorFunction":
case "AsyncGeneratorFunction":
return !1;
}
try {
return u || !!l(o, a(p));
} catch {
return !0;
}
};
return g.sham = !0, Md = !i || t(function() {
var c;
return h(h.call) || !h(Object) || !h(function() {
c = !0;
}) || c;
}) ? g : h, Md;
}
var Od, Tw;
function cM() {
if (Tw) return Od;
Tw = 1;
var r = uM(), t = Pc(), e = TypeError;
return Od = function(A) {
if (r(A)) return A;
throw new e(t(A) + " is not a constructor");
}, Od;
}
var Rd, Qw;
function iC() {
if (Qw) return Rd;
Qw = 1;
var r = Jn(), t = cM(), e = Rc(), A = gn(), n = A("species");
return Rd = function(a, s) {
var i = r(a).constructor, o;
return i === void 0 || e(o = r(i)[n]) ? s : t(o);
}, Rd;
}
var Hd, Dw;
function sC() {
if (Dw) return Hd;
Dw = 1;
var r = Oc(), t = Function.prototype, e = t.apply, A = t.call;
return Hd = typeof Reflect == "object" && Reflect.apply || (r ? A.bind(e) : function() {
return A.apply(e, arguments);
}), Hd;
}
var Pd, kw;
function zc() {
if (kw) return Pd;
kw = 1;
var r = Ws(), t = Pr();
return Pd = function(e) {
if (r(e) === "Function") return t(e);
}, Pd;
}
var Kd, Lw;
function wv() {
if (Lw) return Kd;
Lw = 1;
var r = zc(), t = Ri(), e = Oc(), A = r(r.bind);
return Kd = function(n, a) {
return t(n), a === void 0 ? n : e ? A(n, a) : function() {
return n.apply(a, arguments);
};
}, Kd;
}
var Vd, Iw;
function oC() {
if (Iw) return Vd;
Iw = 1;
var r = Gs();
return Vd = r("document", "documentElement"), Vd;
}
var qd, _w;
function fM() {
if (_w) return qd;
_w = 1;
var r = Pr();
return qd = r([].slice), qd;
}
var jd, Nw;
function hM() {
if (Nw) return jd;
Nw = 1;
var r = TypeError;
return jd = function(t, e) {
if (t < e) throw new r("Not enough arguments");
return t;
}, jd;
}
var Wd, Mw;
function lC() {
if (Mw) return Wd;
Mw = 1;
var r = Ll();
return Wd = /(?:ipad|iphone|ipod).*applewebkit/i.test(r), Wd;
}
var Gd, Ow;
function uC() {
if (Ow) return Gd;
Ow = 1;
var r = Er(), t = sC(), e = wv(), A = Xr(), n = ri(), a = Hr(), s = oC(), i = fM(), o = Vc(), l = hM(), u = lC(), h = Yc(), g = r.setImmediate, c = r.clearImmediate, p = r.process, m = r.Dispatch, y = r.Function, w = r.MessageChannel, E = r.String, C = 0, F = {}, H = "onreadystatechange", q, N, M, k;
a(function() {
q = r.location;
});
var O = function(I) {
if (n(F, I)) {
var le = F[I];
delete F[I], le();
}
}, S = function(I) {
return function() {
O(I);
};
}, U = function(I) {
O(I.data);
}, W = function(I) {
r.postMessage(E(I), q.protocol + "//" + q.host);
};
return (!g || !c) && (g = function(le) {
l(arguments.length, 1);
var ue = A(le) ? le : y(le), Z = i(arguments, 1);
return F[++C] = function() {
t(ue, void 0, Z);
}, N(C), C;
}, c = function(le) {
delete F[le];
}, h ? N = function(I) {
p.nextTick(S(I));
} : m && m.now ? N = function(I) {
m.now(S(I));
} : w && !u ? (M = new w(), k = M.port2, M.port1.onmessage = U, N = e(k.postMessage, k)) : r.addEventListener && A(r.postMessage) && !r.importScripts && q && q.protocol !== "file:" && !a(W) ? (N = W, r.addEventListener("message", U, !1)) : H in o("script") ? N = function(I) {
s.appendChild(o("script"))[H] = function() {
s.removeChild(this), O(I);
};
} : N = function(I) {
setTimeout(S(I), 0);
}), Gd = {
set: g,
clear: c
}, Gd;
}
var Yd, Rw;
function dM() {
if (Rw) return Yd;
Rw = 1;
var r = Er(), t = ti(), e = Object.getOwnPropertyDescriptor;
return Yd = function(A) {
if (!t) return r[A];
var n = e(r, A);
return n && n.value;
}, Yd;
}
var $d, Hw;
function cC() {
if (Hw) return $d;
Hw = 1;
var r = function() {
this.head = null, this.tail = null;
};
return r.prototype = {
add: function(t) {
var e = { item: t, next: null }, A = this.tail;
A ? A.next = e : this.head = e, this.tail = e;
},
get: function() {
var t = this.head;
if (t) {
var e = this.head = t.next;
return e === null && (this.tail = null), t.item;
}
}
}, $d = r, $d;
}
var zd, Pw;
function gM() {
if (Pw) return zd;
Pw = 1;
var r = Ll();
return zd = /ipad|iphone|ipod/i.test(r) && typeof Pebble < "u", zd;
}
var Xd, Kw;
function pM() {
if (Kw) return Xd;
Kw = 1;
var r = Ll();
return Xd = /web0s(?!.*chrome)/i.test(r), Xd;
}
var Jd, Vw;
function vM() {
if (Vw) return Jd;
Vw = 1;
var r = Er(), t = dM(), e = wv(), A = uC().set, n = cC(), a = lC(), s = gM(), i = pM(), o = Yc(), l = r.MutationObserver || r.WebKitMutationObserver, u = r.document, h = r.process, g = r.Promise, c = t("queueMicrotask"), p, m, y, w, E;
if (!c) {
var C = new n(), F = function() {
var H, q;
for (o && (H = h.domain) && H.exit(); q = C.get(); ) try {
q();
} catch (N) {
throw C.head && p(), N;
}
H && H.enter();
};
!a && !o && !i && l && u ? (m = !0, y = u.createTextNode(""), new l(F).observe(y, { characterData: !0 }), p = function() {
y.data = m = !m;
}) : !s && g && g.resolve ? (w = g.resolve(void 0), w.constructor = g, E = e(w.then, w), p = function() {
E(F);
}) : o ? p = function() {
h.nextTick(F);
} : (A = e(A, r), p = function() {
A(F);
}), c = function(H) {
C.head || p(), C.add(H);
};
}
return Jd = c, Jd;
}
var Zd, qw;
function mM() {
return qw || (qw = 1, Zd = function(r, t) {
try {
arguments.length === 1 ? console.error(r) : console.error(r, t);
} catch {
}
}), Zd;
}
var eg, jw;
function Bv() {
return jw || (jw = 1, eg = function(r) {
try {
return { error: !1, value: r() };
} catch (t) {
return { error: !0, value: t };
}
}), eg;
}
var tg, Ww;
function _l() {
if (Ww) return tg;
Ww = 1;
var r = Er();
return tg = r.Promise, tg;
}
var Ag, Gw;
function Nl() {
if (Gw) return Ag;
Gw = 1;
var r = Er(), t = _l(), e = Xr(), A = rC(), n = hv(), a = gn(), s = nC(), i = vi(), o = lv(), l = t && t.prototype, u = a("species"), h = !1, g = e(r.PromiseRejectionEvent), c = A("Promise", function() {
var p = n(t), m = p !== String(t);
if (!m && o === 66 || i && !(l.catch && l.finally)) return !0;
if (!o || o < 51 || !/native code/.test(p)) {
var y = new t(function(C) {
C(1);
}), w = function(C) {
C(function() {
}, function() {
});
}, E = y.constructor = {};
if (E[u] = w, h = y.then(function() {
}) instanceof w, !h) return !0;
}
return !m && (s === "BROWSER" || s === "DENO") && !g;
});
return Ag = {
CONSTRUCTOR: c,
REJECTION_EVENT: g,
SUBCLASSING: h
}, Ag;
}
var rg = {}, Yw;
function Ml() {
if (Yw) return rg;
Yw = 1;
var r = Ri(), t = TypeError, e = function(A) {
var n, a;
this.promise = new A(function(s, i) {
if (n !== void 0 || a !== void 0) throw new t("Bad Promise constructor");
n = s, a = i;
}), this.resolve = r(n), this.reject = r(a);
};
return rg.f = function(A) {
return new e(A);
}, rg;
}
var $w;
function wM() {
if ($w) return r2;
$w = 1;
var r = Zn(), t = vi(), e = Yc(), A = Er(), n = AM(), a = Sn(), s = Ys(), i = aC(), o = $c(), l = sM(), u = Ri(), h = Xr(), g = oa(), c = oM(), p = iC(), m = uC().set, y = vM(), w = mM(), E = Bv(), C = cC(), F = Wc(), H = _l(), q = Nl(), N = Ml(), M = "Promise", k = q.CONSTRUCTOR, O = q.REJECTION_EVENT, S = q.SUBCLASSING, U = F.getterFor(M), W = F.set, I = H && H.prototype, le = H, ue = I, Z = A.TypeError, ee = A.document, X = A.process, Ae = N.f, oe = Ae, x = !!(ee && ee.createEvent && A.dispatchEvent), L = "unhandledrejection", j = "rejectionhandled", $ = 0, re = 1, pe = 2, de = 1, ce = 2, Se, qe, rt, at, dt = function(Ke) {
var et;
return g(Ke) && h(et = Ke.then) ? et : !1;
}, D = function(Ke, et) {
var ut = et.value, yt = et.state === re, Ft = yt ? Ke.ok : Ke.fail, Bt = Ke.resolve, St = Ke.reject, bt = Ke.domain, nA, qt, Ot;
try {
Ft ? (yt || (et.rejection === ce && Qe(et), et.rejection = de), Ft === !0 ? nA = ut : (bt && bt.enter(), nA = Ft(ut), bt && (bt.exit(), Ot = !0)), nA === Ke.promise ? St(new Z("Promise-chain cycle")) : (qt = dt(nA)) ? a(qt, nA, Bt, St) : Bt(nA)) : St(ut);
} catch (Pt) {
bt && !Ot && bt.exit(), St(Pt);
}
}, Ie = function(Ke, et) {
Ke.notified || (Ke.notified = !0, y(function() {
for (var ut = Ke.reactions, yt; yt = ut.get(); )
D(yt, Ke);
Ke.notified = !1, et && !Ke.rejection && ve(Ke);
}));
}, me = function(Ke, et, ut) {
var yt, Ft;
x ? (yt = ee.createEvent("Event"), yt.promise = et, yt.reason = ut, yt.initEvent(Ke, !1, !0), A.dispatchEvent(yt)) : yt = { promise: et, reason: ut }, !O && (Ft = A["on" + Ke]) ? Ft(yt) : Ke === L && w("Unhandled promise rejection", ut);
}, ve = function(Ke) {
a(m, A, function() {
var et = Ke.facade, ut = Ke.value, yt = xe(Ke), Ft;
if (yt && (Ft = E(function() {
e ? X.emit("unhandledRejection", ut, et) : me(L, et, ut);
}), Ke.rejection = e || xe(Ke) ? ce : de, Ft.error))
throw Ft.value;
});
}, xe = function(Ke) {
return Ke.rejection !== de && !Ke.parent;
}, Qe = function(Ke) {
a(m, A, function() {
var et = Ke.facade;
e ? X.emit("rejectionHandled", et) : me(j, et, Ke.value);
});
}, _e = function(Ke, et, ut) {
return function(yt) {
Ke(et, yt, ut);
};
}, Pe = function(Ke, et, ut) {
Ke.done || (Ke.done = !0, ut && (Ke = ut), Ke.value = et, Ke.state = pe, Ie(Ke, !0));
}, je = function(Ke, et, ut) {
if (!Ke.done) {
Ke.done = !0, ut && (Ke = ut);
try {
if (Ke.facade === et) throw new Z("Promise can't be resolved itself");
var yt = dt(et);
yt ? y(function() {
var Ft = { done: !1 };
try {
a(
yt,
et,
_e(je, Ft, Ke),
_e(Pe, Ft, Ke)
);
} catch (Bt) {
Pe(Ft, Bt, Ke);
}
}) : (Ke.value = et, Ke.state = re, Ie(Ke, !1));
} catch (Ft) {
Pe({ done: !1 }, Ft, Ke);
}
}
};
if (k && (le = function(et) {
c(this, ue), u(et), a(Se, this);
var ut = U(this);
try {
et(_e(je, ut), _e(Pe, ut));
} catch (yt) {
Pe(ut, yt);
}
}, ue = le.prototype, Se = function(et) {
W(this, {
type: M,
done: !1,
notified: !1,
parent: !1,
reactions: new C(),
rejection: !1,
state: $,
value: null
});
}, Se.prototype = s(ue, "then", function(et, ut) {
var yt = U(this), Ft = Ae(p(this, le));
return yt.parent = !0, Ft.ok = h(et) ? et : !0, Ft.fail = h(ut) && ut, Ft.domain = e ? X.domain : void 0, yt.state === $ ? yt.reactions.add(Ft) : y(function() {
D(Ft, yt);
}), Ft.promise;
}), qe = function() {
var Ke = new Se(), et = U(Ke);
this.promise = Ke, this.resolve = _e(je, et), this.reject = _e(Pe, et);
}, N.f = Ae = function(Ke) {
return Ke === le || Ke === rt ? new qe(Ke) : oe(Ke);
}, !t && h(H) && I !== Object.prototype)) {
at = I.then, S || s(I, "then", function(et, ut) {
var yt = this;
return new le(function(Ft, Bt) {
a(at, yt, Ft, Bt);
}).then(et, ut);
}, { unsafe: !0 });
try {
delete I.constructor;
} catch {
}
i && i(I, ue);
}
return r({ global: !0, constructor: !0, wrap: !0, forced: k }, {
Promise: le
}), rt = n.Promise, o(le, M, !1, !0), l(M), r2;
}
var zw = {}, ng, Xw;
function Ol() {
return Xw || (Xw = 1, ng = {}), ng;
}
var ag, Jw;
function BM() {
if (Jw) return ag;
Jw = 1;
var r = gn(), t = Ol(), e = r("iterator"), A = Array.prototype;
return ag = function(n) {
return n !== void 0 && (t.Array === n || A[e] === n);
}, ag;
}
var ig, Zw;
function fC() {
if (Zw) return ig;
Zw = 1;
var r = mv(), t = Io(), e = Rc(), A = Ol(), n = gn(), a = n("iterator");
return ig = function(s) {
if (!e(s)) return t(s, a) || t(s, "@@iterator") || A[r(s)];
}, ig;
}
var sg, eB;
function yM() {
if (eB) return sg;
eB = 1;
var r = Sn(), t = Ri(), e = Jn(), A = Pc(), n = fC(), a = TypeError;
return sg = function(s, i) {
var o = arguments.length < 2 ? n(s) : i;
if (t(o)) return e(r(o, s));
throw new a(A(s) + " is not iterable");
}, sg;
}
var og, tB;
function bM() {
if (tB) return og;
tB = 1;
var r = Sn(), t = Jn(), e = Io();
return og = function(A, n, a) {
var s, i;
t(A);
try {
if (s = e(A, "return"), !s) {
if (n === "throw") throw a;
return a;
}
s = r(s, A);
} catch (o) {
i = !0, s = o;
}
if (n === "throw") throw a;
if (i) throw s;
return t(s), a;
}, og;
}
var lg, AB;
function hC() {
if (AB) return lg;
AB = 1;
var r = wv(), t = Sn(), e = Jn(), A = Pc(), n = BM(), a = pv(), s = Hc(), i = yM(), o = fC(), l = bM(), u = TypeError, h = function(c, p) {
this.stopped = c, this.result = p;
}, g = h.prototype;
return lg = function(c, p, m) {
var y = m && m.that, w = !!(m && m.AS_ENTRIES), E = !!(m && m.IS_RECORD), C = !!(m && m.IS_ITERATOR), F = !!(m && m.INTERRUPTED), H = r(p, y), q, N, M, k, O, S, U, W = function(le) {
return q && l(q, "normal"), new h(!0, le);
}, I = function(le) {
return w ? (e(le), F ? H(le[0], le[1], W) : H(le[0], le[1])) : F ? H(le, W) : H(le);
};
if (E)
q = c.iterator;
else if (C)
q = c;
else {
if (N = o(c), !N) throw new u(A(c) + " is not iterable");
if (n(N)) {
for (M = 0, k = a(c); k > M; M++)
if (O = I(c[M]), O && s(g, O)) return O;
return new h(!1);
}
q = i(c, N);
}
for (S = E ? c.next : q.next; !(U = t(S, q)).done; ) {
try {
O = I(U.value);
} catch (le) {
l(q, "throw", le);
}
if (typeof O == "object" && O && s(g, O)) return O;
}
return new h(!1);
}, lg;
}
var ug, rB;
function CM() {
if (rB) return ug;
rB = 1;
var r = gn(), t = r("iterator"), e = !1;
try {
var A = 0, n = {
next: function() {
return { done: !!A++ };
},
return: function() {
e = !0;
}
};
n[t] = function() {
return this;
}, Array.from(n, function() {
throw 2;
});
} catch {
}
return ug = function(a, s) {
try {
if (!s && !e) return !1;
} catch {
return !1;
}
var i = !1;
try {
var o = {};
o[t] = function() {
return {
next: function() {
return { done: i = !0 };
}
};
}, a(o);
} catch {
}
return i;
}, ug;
}
var cg, nB;
function dC() {
if (nB) return cg;
nB = 1;
var r = _l(), t = CM(), e = Nl().CONSTRUCTOR;
return cg = e || !t(function(A) {
r.all(A).then(void 0, function() {
});
}), cg;
}
var aB;
function EM() {
if (aB) return zw;
aB = 1;
var r = Zn(), t = Sn(), e = Ri(), A = Ml(), n = Bv(), a = hC(), s = dC();
return r({ target: "Promise", stat: !0, forced: s }, {
all: function(o) {
var l = this, u = A.f(l), h = u.resolve, g = u.reject, c = n(function() {
var p = e(l.resolve), m = [], y = 0, w = 1;
a(o, function(E) {
var C = y++, F = !1;
w++, t(p, l, E).then(function(H) {
F || (F = !0, m[C] = H, --w || h(m));
}, g);
}), --w || h(m);
});
return c.error && g(c.value), u.promise;
}
}), zw;
}
var iB = {}, sB;
function FM() {
if (sB) return iB;
sB = 1;
var r = Zn(), t = vi(), e = Nl().CONSTRUCTOR, A = _l(), n = Gs(), a = Xr(), s = Ys(), i = A && A.prototype;
if (r({ target: "Promise", proto: !0, forced: e, real: !0 }, {
catch: function(l) {
return this.then(void 0, l);
}
}), !t && a(A)) {
var o = n("Promise").prototype.catch;
i.catch !== o && s(i, "catch", o, { unsafe: !0 });
}
return iB;
}
var oB = {}, lB;
function xM() {
if (lB) return oB;
lB = 1;
var r = Zn(), t = Sn(), e = Ri(), A = Ml(), n = Bv(), a = hC(), s = dC();
return r({ target: "Promise", stat: !0, forced: s }, {
race: function(o) {
var l = this, u = A.f(l), h = u.reject, g = n(function() {
var c = e(l.resolve);
a(o, function(p) {
t(c, l, p).then(u.resolve, h);
});
});
return g.error && h(g.value), u.promise;
}
}), oB;
}
var uB = {}, cB;
function SM() {
if (cB) return uB;
cB = 1;
var r = Zn(), t = Ml(), e = Nl().CONSTRUCTOR;
return r({ target: "Promise", stat: !0, forced: e }, {
reject: function(n) {
var a = t.f(this), s = a.reject;
return s(n), a.promise;
}
}), uB;
}
var fB = {}, fg, hB;
function UM() {
if (hB) return fg;
hB = 1;
var r = Jn(), t = oa(), e = Ml();
return fg = function(A, n) {
if (r(A), t(n) && n.constructor === A) return n;
var a = e.f(A), s = a.resolve;
return s(n), a.promise;
}, fg;
}
var dB;
function TM() {
if (dB) return fB;
dB = 1;
var r = Zn(), t = Gs(), e = vi(), A = _l(), n = Nl().CONSTRUCTOR, a = UM(), s = t("Promise"), i = e && !n;
return r({ target: "Promise", stat: !0, forced: e || n }, {
resolve: function(l) {
return a(i && this === s ? A : this, l);
}
}), fB;
}
var gB;
function QM() {
return gB || (gB = 1, wM(), EM(), FM(), xM(), SM(), TM()), A2;
}
QM();
function pB(r, t, e, A, n, a, s) {
try {
var i = r[a](s), o = i.value;
} catch (l) {
return void e(l);
}
i.done ? t(o) : Promise.resolve(o).then(A, n);
}
function Mi(r) {
return function() {
var t = this, e = arguments;
return new Promise(function(A, n) {
var a = r.apply(t, e);
function s(o) {
pB(a, A, n, s, i, "next", o);
}
function i(o) {
pB(a, A, n, s, i, "throw", o);
}
s(void 0);
});
};
}
var vB = {}, mB = {}, hg, wB;
function mi() {
if (wB) return hg;
wB = 1;
var r = mv(), t = String;
return hg = function(e) {
if (r(e) === "Symbol") throw new TypeError("Cannot convert a Symbol value to a string");
return t(e);
}, hg;
}
var dg, BB;
function gC() {
if (BB) return dg;
BB = 1;
var r = Jn();
return dg = function() {
var t = r(this), e = "";
return t.hasIndices && (e += "d"), t.global && (e += "g"), t.ignoreCase && (e += "i"), t.multiline && (e += "m"), t.dotAll && (e += "s"), t.unicode && (e += "u"), t.unicodeSets && (e += "v"), t.sticky && (e += "y"), e;
}, dg;
}
var gg, yB;
function pC() {
if (yB) return gg;
yB = 1;
var r = Hr(), t = Er(), e = t.RegExp, A = r(function() {
var s = e("a", "y");
return s.lastIndex = 2, s.exec("abcd") !== null;
}), n = A || r(function() {
return !e("a", "y").sticky;
}), a = A || r(function() {
var s = e("^r", "gy");
return s.lastIndex = 2, s.exec("str") !== null;
});
return gg = {
BROKEN_CARET: a,
MISSED_STICKY: n,
UNSUPPORTED_Y: A
}, gg;
}
var pg = {}, vg, bB;
function DM() {
if (bB) return vg;
bB = 1;
var r = AC(), t = vv();
return vg = Object.keys || function(A) {
return r(A, t);
}, vg;
}
var CB;
function kM() {
if (CB) return pg;
CB = 1;
var r = ti(), t = Zb(), e = ms(), A = Jn(), n = kl(), a = DM();
return pg.f = r && !t ? Object.defineProperties : function(i, o) {
A(i);
for (var l = n(o), u = a(o), h = u.length, g = 0, c; h > g; ) e.f(i, c = u[g++], l[c]);
return i;
}, pg;
}
var mg, EB;
function Xc() {
if (EB) return mg;
EB = 1;
var r = Jn(), t = kM(), e = vv(), A = gv(), n = oC(), a = Vc(), s = dv(), i = ">", o = "<", l = "prototype", u = "script", h = s("IE_PROTO"), g = function() {
}, c = function(E) {
return o + u + i + E + o + "/" + u + i;
}, p = function(E) {
E.write(c("")), E.close();
var C = E.parentWindow.Object;
return E = null, C;
}, m = function() {
var E = a("iframe"), C = "java" + u + ":", F;
return E.style.display = "none", n.appendChild(E), E.src = String(C), F = E.contentWindow.document, F.open(), F.write(c("document.F=Object")), F.close(), F.F;
}, y, w = function() {
try {
y = new ActiveXObject("htmlfile");
} catch {
}
w = typeof document < "u" ? document.domain && y ? p(y) : m() : p(y);
for (var E = e.length; E--; ) delete w[l][e[E]];
return w();
};
return A[h] = !0, mg = Object.create || function(C, F) {
var H;
return C !== null ? (g[l] = r(C), H = new g(), g[l] = null, H[h] = C) : H = w(), F === void 0 ? H : t.f(H, F);
}, mg;
}
var wg, FB;
function LM() {
if (FB) return wg;
FB = 1;
var r = Hr(), t = Er(), e = t.RegExp;
return wg = r(function() {
var A = e(".", "s");
return !(A.dotAll && A.test(`
`) && A.flags === "s");
}), wg;
}
var Bg, xB;
function IM() {
if (xB) return Bg;
xB = 1;
var r = Hr(), t = Er(), e = t.RegExp;
return Bg = r(function() {
var A = e("(?<a>b)", "g");
return A.exec("b").groups.a !== "b" || "b".replace(A, "$<a>c") !== "bc";
}), Bg;
}
var yg, SB;
function yv() {
if (SB) return yg;
SB = 1;
var r = Sn(), t = Pr(), e = mi(), A = gC(), n = pC(), a = fv(), s = Xc(), i = Wc().get, o = LM(), l = IM(), u = a("native-string-replace", String.prototype.replace), h = RegExp.prototype.exec, g = h, c = t("".charAt), p = t("".indexOf), m = t("".replace), y = t("".slice), w = (function() {
var H = /a/, q = /b*/g;
return r(h, H, "a"), r(h, q, "a"), H.lastIndex !== 0 || q.lastIndex !== 0;
})(), E = n.BROKEN_CARET, C = /()??/.exec("")[1] !== void 0, F = w || C || E || o || l;
return F && (g = function(q) {
var N = this, M = i(N), k = e(q), O = M.raw, S, U, W, I, le, ue, Z;
if (O)
return O.lastIndex = N.lastIndex, S = r(g, O, k), N.lastIndex = O.lastIndex, S;
var ee = M.groups, X = E && N.sticky, Ae = r(A, N), oe = N.source, x = 0, L = k;
if (X && (Ae = m(Ae, "y", ""), p(Ae, "g") === -1 && (Ae += "g"), L = y(k, N.lastIndex), N.lastIndex > 0 && (!N.multiline || N.multiline && c(k, N.lastIndex - 1) !== `
`) && (oe = "(?: " + oe + ")", L = " " + L, x++), U = new RegExp("^(?:" + oe + ")", Ae)), C && (U = new RegExp("^" + oe + "$(?!\\s)", Ae)), w && (W = N.lastIndex), I = r(h, X ? U : N, L), X ? I ? (I.input = y(I.input, x), I[0] = y(I[0], x), I.index = N.lastIndex, N.lastIndex += I[0].length) : N.lastIndex = 0 : w && I && (N.lastIndex = N.global ? I.index + I[0].length : W), C && I && I.length > 1 && r(u, I[0], U, function() {
for (le = 1; le < arguments.length - 2; le++)
arguments[le] === void 0 && (I[le] = void 0);
}), I && ee)
for (I.groups = ue = s(null), le = 0; le < ee.length; le++)
Z = ee[le], ue[Z[0]] = I[Z[1]];
return I;
}), yg = g, yg;
}
var UB;
function _M() {
if (UB) return mB;
UB = 1;
var r = Zn(), t = yv();
return r({ target: "RegExp", proto: !0, forced: /./.exec !== t }, {
exec: t
}), mB;
}
var bg, TB;
function bv() {
if (TB) return bg;
TB = 1, _M();
var r = Sn(), t = Ys(), e = yv(), A = Hr(), n = gn(), a = Il(), s = n("species"), i = RegExp.prototype;
return bg = function(o, l, u, h) {
var g = n(o), c = !A(function() {
var w = {};
return w[g] = function() {
return 7;
}, ""[o](w) !== 7;
}), p = c && !A(function() {
var w = !1, E = /a/;
return o === "split" && (E = {}, E.constructor = {}, E.constructor[s] = function() {
return E;
}, E.flags = "", E[g] = /./[g]), E.exec = function() {
return w = !0, null;
}, E[g](""), !w;
});
if (!c || !p || u) {
var m = /./[g], y = l(g, ""[o], function(w, E, C, F, H) {
var q = E.exec;
return q === e || q === i.exec ? c && !H ? { done: !0, value: r(m, E, C, F) } : { done: !0, value: r(w, C, E, F) } : { done: !1 };
});
t(String.prototype, o, y[0]), t(i, g, y[1]);
}
h && a(i[g], "sham", !0);
}, bg;
}
var Cg, QB;
function NM() {
if (QB) return Cg;
QB = 1;
var r = Pr(), t = Gc(), e = mi(), A = Ai(), n = r("".charAt), a = r("".charCodeAt), s = r("".slice), i = function(o) {
return function(l, u) {
var h = e(A(l)), g = t(u), c = h.length, p, m;
return g < 0 || g >= c ? o ? "" : void 0 : (p = a(h, g), p < 55296 || p > 56319 || g + 1 === c || (m = a(h, g + 1)) < 56320 || m > 57343 ? o ? n(h, g) : p : o ? s(h, g, g + 2) : (p - 55296 << 10) + (m - 56320) + 65536);
};
};
return Cg = {
// `String.prototype.codePointAt` method
// https://tc39.es/ecma262/#sec-string.prototype.codepointat
codeAt: i(!1),
// `String.prototype.at` method
// https://github.com/mathiasbynens/String.prototype.at
charAt: i(!0)
}, Cg;
}
var Eg, DB;
function Cv() {
if (DB) return Eg;
DB = 1;
var r = NM().charAt;
return Eg = function(t, e, A) {
return e + (A ? r(t, e).length : 1);
}, Eg;
}
var Fg, kB;
function MM() {
if (kB) return Fg;
kB = 1;
var r = Er(), t = Hr(), e = r.RegExp, A = !t(function() {
var n = !0;
try {
e(".", "d");
} catch {
n = !1;
}
var a = {}, s = "", i = n ? "dgimsy" : "gimsy", o = function(g, c) {
Object.defineProperty(a, g, { get: function() {
return s += c, !0;
} });
}, l = {
dotAll: "s",
global: "g",
ignoreCase: "i",
multiline: "m",
sticky: "y"
};
n && (l.hasIndices = "d");
for (var u in l) o(u, l[u]);
var h = Object.getOwnPropertyDescriptor(e.prototype, "flags").get.call(a);
return h !== i || s !== i;
});
return Fg = { correct: A }, Fg;
}
var xg, LB;
function Ev() {
if (LB) return xg;
LB = 1;
var r = Sn(), t = ri(), e = Hc(), A = MM(), n = gC(), a = RegExp.prototype;
return xg = A.correct ? function(s) {
return s.flags;
} : function(s) {
return !A.correct && e(a, s) && !t(s, "flags") ? r(n, s) : s.flags;
}, xg;
}
var Sg, IB;
function Fv() {
if (IB) return Sg;
IB = 1;
var r = Sn(), t = Jn(), e = Xr(), A = Ws(), n = yv(), a = TypeError;
return Sg = function(s, i) {
var o = s.exec;
if (e(o)) {
var l = r(o, s, i);
return l !== null && t(l), l;
}
if (A(s) === "RegExp") return r(n, s, i);
throw new a("RegExp#exec called on incompatible receiver");
}, Sg;
}
var _B;
function OM() {
if (_B) return vB;
_B = 1;
var r = Sn(), t = Pr(), e = bv(), A = Jn(), n = oa(), a = _o(), s = mi(), i = Ai(), o = Io(), l = Cv(), u = Ev(), h = Fv(), g = t("".indexOf);
return e("match", function(c, p, m) {
return [
// `String.prototype.match` method
// https://tc39.es/ecma262/#sec-string.prototype.match
function(w) {
var E = i(this), C = n(w) ? o(w, c) : void 0;
return C ? r(C, w, E) : new RegExp(w)[c](s(E));
},
// `RegExp.prototype[@@match]` method
// https://tc39.es/ecma262/#sec-regexp.prototype-@@match
function(y) {
var w = A(this), E = s(y), C = m(p, w, E);
if (C.done) return C.value;
var F = s(u(w));
if (g(F, "g") === -1) return h(w, E);
var H = g(F, "u") !== -1;
w.lastIndex = 0;
for (var q = [], N = 0, M; (M = h(w, E)) !== null; ) {
var k = s(M[0]);
q[N] = k, k === "" && (w.lastIndex = l(E, a(w.lastIndex), H)), N++;
}
return N === 0 ? null : q;
}
];
}), vB;
}
OM();
var NB = {}, Ug, MB;
function RM() {
if (MB) return Ug;
MB = 1;
var r = Pr(), t = Kc(), e = Math.floor, A = r("".charAt), n = r("".replace), a = r("".slice), s = /\$([$&'`]|\d{1,2}|<[^>]*>)/g, i = /\$([$&'`]|\d{1,2})/g;
return Ug = function(o, l, u, h, g, c) {
var p = u + o.length, m = h.length, y = i;
return g !== void 0 && (g = t(g), y = s), n(c, y, function(w, E) {
var C;
switch (A(E, 0)) {
case "$":
return "$";
case "&":
return o;
case "`":
return a(l, 0, u);
case "'":
return a(l, p);
case "<":
C = g[a(E, 1, -1)];
break;
default:
var F = +E;
if (F === 0) return w;
if (F > m) {
var H = e(F / 10);
return H === 0 ? w : H <= m ? h[H - 1] === void 0 ? A(E, 1) : h[H - 1] + A(E, 1) : w;
}
C = h[F - 1];
}
return C === void 0 ? "" : C;
});
}, Ug;
}
var OB;
function HM() {
if (OB) return NB;
OB = 1;
var r = sC(), t = Sn(), e = Pr(), A = bv(), n = Hr(), a = Jn(), s = Xr(), i = oa(), o = Gc(), l = _o(), u = mi(), h = Ai(), g = Cv(), c = Io(), p = RM(), m = Ev(), y = Fv(), w = gn(), E = w("replace"), C = Math.max, F = Math.min, H = e([].concat), q = e([].push), N = e("".indexOf), M = e("".slice), k = function(W) {
return W === void 0 ? W : String(W);
}, O = (function() {
return "a".replace(/./, "$0") === "$0";
})(), S = (function() {
return /./[E] ? /./[E]("a", "$0") === "" : !1;
})(), U = !n(function() {
var W = /./;
return W.exec = function() {
var I = [];
return I.groups = { a: "7" }, I;
}, "".replace(W, "$<a>") !== "7";
});
return A("replace", function(W, I, le) {
var ue = S ? "$" : "$0";
return [
// `String.prototype.replace` method
// https://tc39.es/ecma262/#sec-string.prototype.replace
function(ee, X) {
var Ae = h(this), oe = i(ee) ? c(ee, E) : void 0;
return oe ? t(oe, ee, Ae, X) : t(I, u(Ae), ee, X);
},
// `RegExp.prototype[@@replace]` method
// https://tc39.es/ecma262/#sec-regexp.prototype-@@replace
function(Z, ee) {
var X = a(this), Ae = u(Z);
if (typeof ee == "string" && N(ee, ue) === -1 && N(ee, "$<") === -1) {
var oe = le(I, X, Ae, ee);
if (oe.done) return oe.value;
}
var x = s(ee);
x || (ee = u(ee));
var L = u(m(X)), j = N(L, "g") !== -1, $;
j && ($ = N(L, "u") !== -1, X.lastIndex = 0);
for (var re = [], pe; pe = y(X, Ae), !(pe === null || (q(re, pe), !j)); ) {
var de = u(pe[0]);
de === "" && (X.lastIndex = g(Ae, l(X.lastIndex), $));
}
for (var ce = "", Se = 0, qe = 0; qe < re.length; qe++) {
pe = re[qe];
for (var rt = u(pe[0]), at = C(F(o(pe.index), Ae.length), 0), dt = [], D, Ie = 1; Ie < pe.length; Ie++) q(dt, k(pe[Ie]));
var me = pe.groups;
if (x) {
var ve = H([rt], dt, at, Ae);
me !== void 0 && q(ve, me), D = u(r(ee, void 0, ve));
} else
D = p(rt, Ae, at, dt, me, ee);
at >= Se && (ce += M(Ae, Se, at) + D, Se = at + rt.length);
}
return ce + M(Ae, Se);
}
];
}, !U || !O || S), NB;
}
HM();
var RB = {}, Tg, HB;
function PM() {
if (HB) return Tg;
HB = 1;
var r = oa(), t = Ws(), e = gn(), A = e("match");
return Tg = function(n) {
var a;
return r(n) && ((a = n[A]) !== void 0 ? !!a : t(n) === "RegExp");
}, Tg;
}
var Qg, PB;
function xv() {
if (PB) return Qg;
PB = 1;
var r = PM(), t = TypeError;
return Qg = function(e) {
if (r(e))
throw new t("The method doesn't accept regular expressions");
return e;
}, Qg;
}
var Dg, KB;
function Sv() {
if (KB) return Dg;
KB = 1;
var r = gn(), t = r("match");
return Dg = function(e) {
var A = /./;
try {
"/./"[e](A);
} catch {
try {
return A[t] = !1, "/./"[e](A);
} catch {
}
}
return !1;
}, Dg;
}
var VB;
function KM() {
if (VB) return RB;
VB = 1;
var r = Zn(), t = zc(), e = qc().f, A = _o(), n = mi(), a = xv(), s = Ai(), i = Sv(), o = vi(), l = t("".slice), u = Math.min, h = i("startsWith"), g = !o && !h && !!(function() {
var c = e(String.prototype, "startsWith");
return c && !c.writable;
})();
return r({ target: "String", proto: !0, forced: !g && !h }, {
startsWith: function(p) {
var m = n(s(this));
a(p);
var y = A(u(arguments.length > 1 ? arguments[1] : void 0, m.length)), w = n(p);
return l(m, y, y + w.length) === w;
}
}), RB;
}
KM();
var kg, qB;
function VM() {
if (qB) return kg;
qB = 1;
var r = gn(), t = Xc(), e = ms().f, A = r("unscopables"), n = Array.prototype;
return n[A] === void 0 && e(n, A, {
configurable: !0,
value: t(null)
}), kg = function(a) {
n[A][a] = !0;
}, kg;
}
var Lg, jB;
function qM() {
if (jB) return Lg;
jB = 1;
var r = Hr();
return Lg = !r(function() {
function t() {
}
return t.prototype.constructor = null, Object.getPrototypeOf(new t()) !== t.prototype;
}), Lg;
}
var Ig, WB;
function vC() {
if (WB) return Ig;
WB = 1;
var r = ri(), t = Xr(), e = Kc(), A = dv(), n = qM(), a = A("IE_PROTO"), s = Object, i = s.prototype;
return Ig = n ? s.getPrototypeOf : function(o) {
var l = e(o);
if (r(l, a)) return l[a];
var u = l.constructor;
return t(u) && l instanceof u ? u.prototype : l instanceof s ? i : null;
}, Ig;
}
var _g, GB;
function mC() {
if (GB) return _g;
GB = 1;
var r = Hr(), t = Xr(), e = oa(), A = Xc(), n = vC(), a = Ys(), s = gn(), i = vi(), o = s("iterator"), l = !1, u, h, g;
[].keys && (g = [].keys(), "next" in g ? (h = n(n(g)), h !== Object.prototype && (u = h)) : l = !0);
var c = !e(u) || r(function() {
var p = {};
return u[o].call(p) !== p;
});
return c ? u = {} : i && (u = A(u)), t(u[o]) || a(u, o, function() {
return this;
}), _g = {
IteratorPrototype: u,
BUGGY_SAFARI_ITERATORS: l
}, _g;
}
var Ng, YB;
function jM() {
if (YB) return Ng;
YB = 1;
var r = mC().IteratorPrototype, t = Xc(), e = ov(), A = $c(), n = Ol(), a = function() {
return this;
};
return Ng = function(s, i, o, l) {
var u = i + " Iterator";
return s.prototype = t(r, { next: e(+!l, o) }), A(s, u, !1, !0), n[u] = a, s;
}, Ng;
}
var Mg, $B;
function WM() {
if ($B) return Mg;
$B = 1;
var r = Zn(), t = Sn(), e = vi(), A = jc(), n = Xr(), a = jM(), s = vC(), i = aC(), o = $c(), l = Il(), u = Ys(), h = gn(), g = Ol(), c = mC(), p = A.PROPER, m = A.CONFIGURABLE, y = c.IteratorPrototype, w = c.BUGGY_SAFARI_ITERATORS, E = h("iterator"), C = "keys", F = "values", H = "entries", q = function() {
return this;
};
return Mg = function(N, M, k, O, S, U, W) {
a(k, M, O);
var I = function(j) {
if (j === S && X) return X;
if (!w && j && j in Z) return Z[j];
switch (j) {
case C:
return function() {
return new k(this, j);
};
case F:
return function() {
return new k(this, j);
};
case H:
return function() {
return new k(this, j);
};
}
return function() {
return new k(this);
};
}, le = M + " Iterator", ue = !1, Z = N.prototype, ee = Z[E] || Z["@@iterator"] || S && Z[S], X = !w && ee || I(S), Ae = M === "Array" && Z.entries || ee, oe, x, L;
if (Ae && (oe = s(Ae.call(new N())), oe !== Object.prototype && oe.next && (!e && s(oe) !== y && (i ? i(oe, y) : n(oe[E]) || u(oe, E, q)), o(oe, le, !0, !0), e && (g[le] = q))), p && S === F && ee && ee.name !== F && (!e && m ? l(Z, "name", F) : (ue = !0, X = function() {
return t(ee, this);
})), S)
if (x = {
values: I(F),
keys: U ? X : I(C),
entries: I(H)
}, W) for (L in x)
(w || ue || !(L in Z)) && u(Z, L, x[L]);
else r({ target: M, proto: !0, forced: w || ue }, x);
return (!e || W) && Z[E] !== X && u(Z, E, X, { name: S }), g[M] = X, x;
}, Mg;
}
var Og, zB;
function GM() {
return zB || (zB = 1, Og = function(r, t) {
return { value: r, done: t };
}), Og;
}
var Rg, XB;
function wC() {
if (XB) return Rg;
XB = 1;
var r = kl(), t = VM(), e = Ol(), A = Wc(), n = ms().f, a = WM(), s = GM(), i = vi(), o = ti(), l = "Array Iterator", u = A.set, h = A.getterFor(l);
Rg = a(Array, "Array", function(c, p) {
u(this, {
type: l,
target: r(c),
// target
index: 0,
// next index
kind: p
// kind
});
}, function() {
var c = h(this), p = c.target, m = c.index++;
if (!p || m >= p.length)
return c.target = null, s(void 0, !0);
switch (c.kind) {
case "keys":
return s(m, !1);
case "values":
return s(p[m], !1);
}
return s([m, p[m]], !1);
}, "values");
var g = e.Arguments = e.Array;
if (t("keys"), t("values"), t("entries"), !i && o && g.name !== "values") try {
n(g, "name", { value: "values" });
} catch {
}
return Rg;
}
wC();
var JB = {}, Hg, ZB;
function YM() {
return ZB || (ZB = 1, Hg = {
CSSRuleList: 0,
CSSStyleDeclaration: 0,
CSSValueList: 0,
ClientRectList: 0,
DOMRectList: 0,
DOMStringList: 0,
DOMTokenList: 1,
DataTransferItemList: 0,
FileList: 0,
HTMLAllCollection: 0,
HTMLCollection: 0,
HTMLFormElement: 0,
HTMLSelectElement: 0,
MediaList: 0,
MimeTypeArray: 0,
NamedNodeMap: 0,
NodeList: 1,
PaintRequestList: 0,
Plugin: 0,
PluginArray: 0,
SVGLengthList: 0,
SVGNumberList: 0,
SVGPathSegList: 0,
SVGPointList: 0,
SVGStringList: 0,
SVGTransformList: 0,
SourceBufferList: 0,
StyleSheetList: 0,
TextTrackCueList: 0,
TextTrackList: 0,
TouchList: 0
}), Hg;
}
var Pg, ey;
function $M() {
if (ey) return Pg;
ey = 1;
var r = Vc(), t = r("span").classList, e = t && t.constructor && t.constructor.prototype;
return Pg = e === Object.prototype ? void 0 : e, Pg;
}
var ty;
function zM() {
if (ty) return JB;
ty = 1;
var r = Er(), t = YM(), e = $M(), A = wC(), n = Il(), a = $c(), s = gn(), i = s("iterator"), o = A.values, l = function(h, g) {
if (h) {
if (h[i] !== o) try {
n(h, i, o);
} catch {
h[i] = o;
}
if (a(h, g, !0), t[g]) {
for (var c in A)
if (h[c] !== A[c]) try {
n(h, c, A[c]);
} catch {
h[c] = A[c];
}
}
}
};
for (var u in t)
l(r[u] && r[u].prototype, u);
return l(e, "DOMTokenList"), JB;
}
zM();
function XM(r, t) {
if (jA(r) != "object" || !r) return r;
var e = r[Symbol.toPrimitive];
if (e !== void 0) {
var A = e.call(r, t);
if (jA(A) != "object") return A;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return (t === "string" ? String : Number)(r);
}
function JM(r) {
var t = XM(r, "string");
return jA(t) == "symbol" ? t : t + "";
}
function Uv(r, t, e) {
return (t = JM(t)) in r ? Object.defineProperty(r, t, {
value: e,
enumerable: !0,
configurable: !0,
writable: !0
}) : r[t] = e, r;
}
var Ay = {}, Kg, ry;
function ZM() {
if (ry) return Kg;
ry = 1;
var r = Ri(), t = Kc(), e = Wb(), A = pv(), n = TypeError, a = "Reduce of empty array with no initial value", s = function(i) {
return function(o, l, u, h) {
var g = t(o), c = e(g), p = A(g);
if (r(l), p === 0 && u < 2) throw new n(a);
var m = i ? p - 1 : 0, y = i ? -1 : 1;
if (u < 2) for (; ; ) {
if (m in c) {
h = c[m], m += y;
break;
}
if (m += y, i ? m < 0 : p <= m)
throw new n(a);
}
for (; i ? m >= 0 : p > m; m += y) m in c && (h = l(h, c[m], m, g));
return h;
};
};
return Kg = {
// `Array.prototype.reduce` method
// https://tc39.es/ecma262/#sec-array.prototype.reduce
left: s(!1),
// `Array.prototype.reduceRight` method
// https://tc39.es/ecma262/#sec-array.prototype.reduceright
right: s(!0)
}, Kg;
}
var Vg, ny;
function BC() {
if (ny) return Vg;
ny = 1;
var r = Hr();
return Vg = function(t, e) {
var A = [][t];
return !!A && r(function() {
A.call(null, e || function() {
return 1;
}, 1);
});
}, Vg;
}
var ay;
function e8() {
if (ay) return Ay;
ay = 1;
var r = Zn(), t = ZM().left, e = BC(), A = lv(), n = Yc(), a = !n && A > 79 && A < 83, s = a || !e("reduce");
return r({ target: "Array", proto: !0, forced: s }, {
reduce: function(o) {
var l = arguments.length;
return t(this, o, l, l > 1 ? arguments[1] : void 0);
}
}), Ay;
}
e8();
var iy = {}, sy;
function t8() {
if (sy) return iy;
sy = 1;
var r = Zn(), t = zc(), e = qc().f, A = _o(), n = mi(), a = xv(), s = Ai(), i = Sv(), o = vi(), l = t("".slice), u = Math.min, h = i("endsWith"), g = !o && !h && !!(function() {
var c = e(String.prototype, "endsWith");
return c && !c.writable;
})();
return r({ target: "String", proto: !0, forced: !g && !h }, {
endsWith: function(p) {
var m = n(s(this));
a(p);
var y = arguments.length > 1 ? arguments[1] : void 0, w = m.length, E = y === void 0 ? w : u(A(y), w), C = n(p);
return l(m, E - C.length, E) === C;
}
}), iy;
}
t8();
var oy = {}, ly;
function A8() {
if (ly) return oy;
ly = 1;
var r = Sn(), t = Pr(), e = bv(), A = Jn(), n = oa(), a = Ai(), s = iC(), i = Cv(), o = _o(), l = mi(), u = Io(), h = Fv(), g = pC(), c = Hr(), p = g.UNSUPPORTED_Y, m = 4294967295, y = Math.min, w = t([].push), E = t("".slice), C = !c(function() {
var H = /(?:)/, q = H.exec;
H.exec = function() {
return q.apply(this, arguments);
};
var N = "ab".split(H);
return N.length !== 2 || N[0] !== "a" || N[1] !== "b";
}), F = "abbc".split(/(b)*/)[1] === "c" || // eslint-disable-next-line regexp/no-empty-group -- required for testing
"test".split(/(?:)/, -1).length !== 4 || "ab".split(/(?:ab)*/).length !== 2 || ".".split(/(.?)(.?)/).length !== 4 || // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing
".".split(/()()/).length > 1 || "".split(/.?/).length;
return e("split", function(H, q, N) {
var M = "0".split(void 0, 0).length ? function(k, O) {
return k === void 0 && O === 0 ? [] : r(q, this, k, O);
} : q;
return [
// `String.prototype.split` method
// https://tc39.es/ecma262/#sec-string.prototype.split
function(O, S) {
var U = a(this), W = n(O) ? u(O, H) : void 0;
return W ? r(W, O, U, S) : r(M, l(U), O, S);
},
// `RegExp.prototype[@@split]` method
// https://tc39.es/ecma262/#sec-regexp.prototype-@@split
//
// NOTE: This cannot be properly polyfilled in engines that don't support
// the 'y' flag.
function(k, O) {
var S = A(this), U = l(k);
if (!F) {
var W = N(M, S, U, O, M !== q);
if (W.done) return W.value;
}
var I = s(S, RegExp), le = S.unicode, ue = (S.ignoreCase ? "i" : "") + (S.multiline ? "m" : "") + (S.unicode ? "u" : "") + (p ? "g" : "y"), Z = new I(p ? "^(?:" + S.source + ")" : S, ue), ee = O === void 0 ? m : O >>> 0;
if (ee === 0) return [];
if (U.length === 0) return h(Z, U) === null ? [U] : [];
for (var X = 0, Ae = 0, oe = []; Ae < U.length; ) {
Z.lastIndex = p ? 0 : Ae;
var x = h(Z, p ? E(U, Ae) : U), L;
if (x === null || (L = y(o(Z.lastIndex + (p ? Ae : 0)), U.length)) === X)
Ae = i(U, Ae, le);
else {
if (w(oe, E(U, X, Ae)), oe.length === ee) return oe;
for (var j = 1; j <= x.length - 1; j++)
if (w(oe, x[j]), oe.length === ee) return oe;
Ae = X = L;
}
}
return w(oe, E(U, X)), oe;
}
];
}, F || !C, p), oy;
}
A8();
var ol = { exports: {} }, Ds = { exports: {} }, r8 = Ds.exports, uy;
function n8() {
return uy || (uy = 1, (function() {
var r, t, e, A, n, a;
typeof performance < "u" && performance !== null && performance.now ? Ds.exports = function() {
return performance.now();
} : typeof process < "u" && process !== null && process.hrtime ? (Ds.exports = function() {
return (r() - n) / 1e6;
}, t = process.hrtime, r = function() {
var s;
return s = t(), s[0] * 1e9 + s[1];
}, A = r(), a = process.uptime() * 1e9, n = A - a) : Date.now ? (Ds.exports = function() {
return Date.now() - e;
}, e = Date.now()) : (Ds.exports = function() {
return (/* @__PURE__ */ new Date()).getTime() - e;
}, e = (/* @__PURE__ */ new Date()).getTime());
}).call(r8)), Ds.exports;
}
var cy;
function a8() {
if (cy) return ol.exports;
cy = 1;
for (var r = n8(), t = typeof window > "u" ? Np : window, e = ["moz", "webkit"], A = "AnimationFrame", n = t["request" + A], a = t["cancel" + A] || t["cancelRequest" + A], s = 0; !n && s < e.length; s++)
n = t[e[s] + "Request" + A], a = t[e[s] + "Cancel" + A] || t[e[s] + "CancelRequest" + A];
if (!n || !a) {
var i = 0, o = 0, l = [], u = 1e3 / 60;
n = function(h) {
if (l.length === 0) {
var g = r(), c = Math.max(0, u - (g - i));
i = c + g, setTimeout(function() {
var p = l.slice(0);
l.length = 0;
for (var m = 0; m < p.length; m++)
if (!p[m].cancelled)
try {
p[m].callback(i);
} catch (y) {
setTimeout(function() {
throw y;
}, 0);
}
}, Math.round(c));
}
return l.push({
handle: ++o,
callback: h,
cancelled: !1
}), o;
}, a = function(h) {
for (var g = 0; g < l.length; g++)
l[g].handle === h && (l[g].cancelled = !0);
};
}
return ol.exports = function(h) {
return n.call(t, h);
}, ol.exports.cancel = function() {
a.apply(t, arguments);
}, ol.exports.polyfill = function(h) {
h || (h = t), h.requestAnimationFrame = n, h.cancelAnimationFrame = a;
}, ol.exports;
}
var i8 = a8();
const qg = /* @__PURE__ */ jb(i8);
var fy = {}, jg, hy;
function yC() {
return hy || (hy = 1, jg = `
\v\f\r \u2028\u2029\uFEFF`), jg;
}
var Wg, dy;
function s8() {
if (dy) return Wg;
dy = 1;
var r = Pr(), t = Ai(), e = mi(), A = yC(), n = r("".replace), a = RegExp("^[" + A + "]+"), s = RegExp("(^|[^" + A + "])[" + A + "]+$"), i = function(o) {
return function(l) {
var u = e(t(l));
return o & 1 && (u = n(u, a, "")), o & 2 && (u = n(u, s, "$1")), u;
};
};
return Wg = {
// `String.prototype.{ trimLeft, trimStart }` methods
// https://tc39.es/ecma262/#sec-string.prototype.trimstart
start: i(1),
// `String.prototype.{ trimRight, trimEnd }` methods
// https://tc39.es/ecma262/#sec-string.prototype.trimend
end: i(2),
// `String.prototype.trim` method
// https://tc39.es/ecma262/#sec-string.prototype.trim
trim: i(3)
}, Wg;
}
var Gg, gy;
function o8() {
if (gy) return Gg;
gy = 1;
var r = jc().PROPER, t = Hr(), e = yC(), A = "
";
return Gg = function(n) {
return t(function() {
return !!e[n]() || A[n]() !== A || r && e[n].name !== n;
});
}, Gg;
}
var py;
function l8() {
if (py) return fy;
py = 1;
var r = Zn(), t = s8().trim, e = o8();
return r({ target: "String", proto: !0, forced: e("trim") }, {
trim: function() {
return t(this);
}
}), fy;
}
l8();
var Yg, vy;
function u8() {
return vy || (vy = 1, Yg = function(r) {
this.ok = !1, this.alpha = 1, r.charAt(0) == "#" && (r = r.substr(1, 6)), r = r.replace(/ /g, ""), r = r.toLowerCase();
var 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",
rebeccapurple: "663399",
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"
};
r = t[r] || r;
for (var e = [
{
re: /^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*((?:\d?\.)?\d)\)$/,
example: ["rgba(123, 234, 45, 0.8)", "rgba(255,234,245,1.0)"],
process: function(o) {
return [
parseInt(o[1]),
parseInt(o[2]),
parseInt(o[3]),
parseFloat(o[4])
];
}
},
{
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: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
example: ["#00ff00", "336699"],
process: function(o) {
return [
parseInt(o[1], 16),
parseInt(o[2], 16),
parseInt(o[3], 16)
];
}
},
{
re: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{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)
];
}
}
], A = 0; A < e.length; A++) {
var n = e[A].re, a = e[A].process, s = n.exec(r);
if (s) {
var i = a(s);
this.r = i[0], this.g = i[1], this.b = i[2], i.length > 3 && (this.alpha = i[3]), 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.alpha = this.alpha < 0 ? 0 : this.alpha > 1 || isNaN(this.alpha) ? 1 : this.alpha, this.toRGB = function() {
return "rgb(" + this.r + ", " + this.g + ", " + this.b + ")";
}, this.toRGBA = function() {
return "rgba(" + this.r + ", " + this.g + ", " + this.b + ", " + this.alpha + ")";
}, this.toHex = function() {
var o = this.r.toString(16), l = this.g.toString(16), u = this.b.toString(16);
return o.length == 1 && (o = "0" + o), l.length == 1 && (l = "0" + l), u.length == 1 && (u = "0" + u), "#" + o + l + u;
}, this.getHelpXML = function() {
for (var o = new Array(), l = 0; l < e.length; l++)
for (var u = e[l].example, h = 0; h < u.length; h++)
o[o.length] = u[h];
for (var g in t)
o[o.length] = g;
var c = document.createElement("ul");
c.setAttribute("id", "rgbcolor-examples");
for (var l = 0; l < o.length; l++)
try {
var p = document.createElement("li"), m = new RGBColor(o[l]), y = document.createElement("div");
y.style.cssText = "margin: 3px; border: 1px solid black; background:" + m.toHex() + "; color:" + m.toHex(), y.appendChild(document.createTextNode("test"));
var w = document.createTextNode(
" " + o[l] + " -> " + m.toRGB() + " -> " + m.toHex()
);
p.appendChild(y), p.appendChild(w), c.appendChild(p);
} catch {
}
return c;
};
}), Yg;
}
var c8 = u8();
const Mp = /* @__PURE__ */ jb(c8);
var my = {}, wy;
function f8() {
if (wy) return my;
wy = 1;
var r = Zn(), t = zc(), e = tC().indexOf, A = BC(), n = t([].indexOf), a = !!n && 1 / n([1], 1, -0) < 0, s = a || !A("indexOf");
return r({ target: "Array", proto: !0, forced: s }, {
indexOf: function(o) {
var l = arguments.length > 1 ? arguments[1] : void 0;
return a ? n(this, o, l) || 0 : e(this, o, l);
}
}), my;
}
f8();
var By = {}, yy;
function h8() {
if (yy) return By;
yy = 1;
var r = Zn(), t = Pr(), e = xv(), A = Ai(), n = mi(), a = Sv(), s = t("".indexOf);
return r({ target: "String", proto: !0, forced: !a("includes") }, {
includes: function(o) {
return !!~s(
n(A(this)),
n(e(o)),
arguments.length > 1 ? arguments[1] : void 0
);
}
}), By;
}
h8();
var by = {}, $g, Cy;
function d8() {
if (Cy) return $g;
Cy = 1;
var r = Ws();
return $g = Array.isArray || function(e) {
return r(e) === "Array";
}, $g;
}
var Ey;
function g8() {
if (Ey) return by;
Ey = 1;
var r = Zn(), t = Pr(), e = d8(), A = t([].reverse), n = [1, 2];
return r({ target: "Array", proto: !0, forced: String(n) === String(n.reverse()) }, {
reverse: function() {
return e(this) && (this.length = this.length), A(this);
}
}), by;
}
g8();
/*! *****************************************************************************
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 bC = function(r, t) {
return (bC = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(e, A) {
e.__proto__ = A;
} || function(e, A) {
for (var n in A) Object.prototype.hasOwnProperty.call(A, n) && (e[n] = A[n]);
})(r, t);
};
function CC(r, t) {
if (typeof t != "function" && t !== null) throw new TypeError("Class extends value " + String(t) + " is not a constructor or null");
function e() {
this.constructor = r;
}
bC(r, t), r.prototype = t === null ? Object.create(t) : (e.prototype = t.prototype, new e());
}
function p8(r) {
var t = "";
Array.isArray(r) || (r = [r]);
for (var e = 0; e < r.length; e++) {
var A = r[e];
if (A.type === gt.CLOSE_PATH) t += "z";
else if (A.type === gt.HORIZ_LINE_TO) t += (A.relative ? "h" : "H") + A.x;
else if (A.type === gt.VERT_LINE_TO) t += (A.relative ? "v" : "V") + A.y;
else if (A.type === gt.MOVE_TO) t += (A.relative ? "m" : "M") + A.x + " " + A.y;
else if (A.type === gt.LINE_TO) t += (A.relative ? "l" : "L") + A.x + " " + A.y;
else if (A.type === gt.CURVE_TO) t += (A.relative ? "c" : "C") + A.x1 + " " + A.y1 + " " + A.x2 + " " + A.y2 + " " + A.x + " " + A.y;
else if (A.type === gt.SMOOTH_CURVE_TO) t += (A.relative ? "s" : "S") + A.x2 + " " + A.y2 + " " + A.x + " " + A.y;
else if (A.type === gt.QUAD_TO) t += (A.relative ? "q" : "Q") + A.x1 + " " + A.y1 + " " + A.x + " " + A.y;
else if (A.type === gt.SMOOTH_QUAD_TO) t += (A.relative ? "t" : "T") + A.x + " " + A.y;
else {
if (A.type !== gt.ARC) throw new Error('Unexpected command type "' + A.type + '" at index ' + e + ".");
t += (A.relative ? "a" : "A") + A.rX + " " + A.rY + " " + A.xRot + " " + +A.lArcFlag + " " + +A.sweepFlag + " " + A.x + " " + A.y;
}
}
return t;
}
function Op(r, t) {
var e = r[0], A = r[1];
return [e * Math.cos(t) - A * Math.sin(t), e * Math.sin(t) + A * Math.cos(t)];
}
function $a() {
for (var r = [], t = 0; t < arguments.length; t++) r[t] = arguments[t];
for (var e = 0; e < r.length; e++) if (typeof r[e] != "number") throw new Error("assertNumbers arguments[" + e + "] is not a number. " + typeof r[e] + " == typeof " + r[e]);
return !0;
}
var ss = Math.PI;
function zg(r, t, e) {
r.lArcFlag = r.lArcFlag === 0 ? 0 : 1, r.sweepFlag = r.sweepFlag === 0 ? 0 : 1;
var A = r.rX, n = r.rY, a = r.x, s = r.y;
A = Math.abs(r.rX), n = Math.abs(r.rY);
var i = Op([(t - a) / 2, (e - s) / 2], -r.xRot / 180 * ss), o = i[0], l = i[1], u = Math.pow(o, 2) / Math.pow(A, 2) + Math.pow(l, 2) / Math.pow(n, 2);
1 < u && (A *= Math.sqrt(u), n *= Math.sqrt(u)), r.rX = A, r.rY = n;
var h = Math.pow(A, 2) * Math.pow(l, 2) + Math.pow(n, 2) * Math.pow(o, 2), g = (r.lArcFlag !== r.sweepFlag ? 1 : -1) * Math.sqrt(Math.max(0, (Math.pow(A, 2) * Math.pow(n, 2) - h) / h)), c = A * l / n * g, p = -n * o / A * g, m = Op([c, p], r.xRot / 180 * ss);
r.cX = m[0] + (t + a) / 2, r.cY = m[1] + (e + s) / 2, r.phi1 = Math.atan2((l - p) / n, (o - c) / A), r.phi2 = Math.atan2((-l - p) / n, (-o - c) / A), r.sweepFlag === 0 && r.phi2 > r.phi1 && (r.phi2 -= 2 * ss), r.sweepFlag === 1 && r.phi2 < r.phi1 && (r.phi2 += 2 * ss), r.phi1 *= 180 / ss, r.phi2 *= 180 / ss;
}
function Fy(r, t, e) {
$a(r, t, e);
var A = r * r + t * t - e * e;
if (0 > A) return [];
if (A === 0) return [[r * e / (r * r + t * t), t * e / (r * r + t * t)]];
var n = Math.sqrt(A);
return [[(r * e + t * n) / (r * r + t * t), (t * e - r * n) / (r * r + t * t)], [(r * e - t * n) / (r * r + t * t), (t * e + r * n) / (r * r + t * t)]];
}
var Zr, Ui = Math.PI / 180;
function xy(r, t, e) {
return (1 - e) * r + e * t;
}
function Sy(r, t, e, A) {
return r + Math.cos(A / 180 * ss) * t + Math.sin(A / 180 * ss) * e;
}
function Uy(r, t, e, A) {
var n = 1e-6, a = t - r, s = e - t, i = 3 * a + 3 * (A - e) - 6 * s, o = 6 * (s - a), l = 3 * a;
return Math.abs(i) < n ? [-l / o] : (function(u, h, g) {
var c = u * u / 4 - h;
if (c < -g) return [];
if (c <= g) return [-u / 2];
var p = Math.sqrt(c);
return [-u / 2 - p, -u / 2 + p];
})(o / i, l / i, n);
}
function Ty(r, t, e, A, n) {
var a = 1 - n;
return r * (a * a * a) + t * (3 * a * a * n) + e * (3 * a * n * n) + A * (n * n * n);
}
(function(r) {
function t() {
return n((function(i, o, l) {
return i.relative && (i.x1 !== void 0 && (i.x1 += o), i.y1 !== void 0 && (i.y1 += l), i.x2 !== void 0 && (i.x2 += o), i.y2 !== void 0 && (i.y2 += l), i.x !== void 0 && (i.x += o), i.y !== void 0 && (i.y += l), i.relative = !1), i;
}));
}
function e() {
var i = NaN, o = NaN, l = NaN, u = NaN;
return n((function(h, g, c) {
return h.type & gt.SMOOTH_CURVE_TO && (h.type = gt.CURVE_TO, i = isNaN(i) ? g : i, o = isNaN(o) ? c : o, h.x1 = h.relative ? g - i : 2 * g - i, h.y1 = h.relative ? c - o : 2 * c - o), h.type & gt.CURVE_TO ? (i = h.relative ? g + h.x2 : h.x2, o = h.relative ? c + h.y2 : h.y2) : (i = NaN, o = NaN), h.type & gt.SMOOTH_QUAD_TO && (h.type = gt.QUAD_TO, l = isNaN(l) ? g : l, u = isNaN(u) ? c : u, h.x1 = h.relative ? g - l : 2 * g - l, h.y1 = h.relative ? c - u : 2 * c - u), h.type & gt.QUAD_TO ? (l = h.relative ? g + h.x1 : h.x1, u = h.relative ? c + h.y1 : h.y1) : (l = NaN, u = NaN), h;
}));
}
function A() {
var i = NaN, o = NaN;
return n((function(l, u, h) {
if (l.type & gt.SMOOTH_QUAD_TO && (l.type = gt.QUAD_TO, i = isNaN(i) ? u : i, o = isNaN(o) ? h : o, l.x1 = l.relative ? u - i : 2 * u - i, l.y1 = l.relative ? h - o : 2 * h - o), l.type & gt.QUAD_TO) {
i = l.relative ? u + l.x1 : l.x1, o = l.relative ? h + l.y1 : l.y1;
var g = l.x1, c = l.y1;
l.type = gt.CURVE_TO, l.x1 = ((l.relative ? 0 : u) + 2 * g) / 3, l.y1 = ((l.relative ? 0 : h) + 2 * c) / 3, l.x2 = (l.x + 2 * g) / 3, l.y2 = (l.y + 2 * c) / 3;
} else i = NaN, o = NaN;
return l;
}));
}
function n(i) {
var o = 0, l = 0, u = NaN, h = NaN;
return function(g) {
if (isNaN(u) && !(g.type & gt.MOVE_TO)) throw new Error("path must start with moveto");
var c = i(g, o, l, u, h);
return g.type & gt.CLOSE_PATH && (o = u, l = h), g.x !== void 0 && (o = g.relative ? o + g.x : g.x), g.y !== void 0 && (l = g.relative ? l + g.y : g.y), g.type & gt.MOVE_TO && (u = o, h = l), c;
};
}
function a(i, o, l, u, h, g) {
return $a(i, o, l, u, h, g), n((function(c, p, m, y) {
var w = c.x1, E = c.x2, C = c.relative && !isNaN(y), F = c.x !== void 0 ? c.x : C ? 0 : p, H = c.y !== void 0 ? c.y : C ? 0 : m;
function q(x) {
return x * x;
}
c.type & gt.HORIZ_LINE_TO && o !== 0 && (c.type = gt.LINE_TO, c.y = c.relative ? 0 : m), c.type & gt.VERT_LINE_TO && l !== 0 && (c.type = gt.LINE_TO, c.x = c.relative ? 0 : p), c.x !== void 0 && (c.x = c.x * i + H * l + (C ? 0 : h)), c.y !== void 0 && (c.y = F * o + c.y * u + (C ? 0 : g)), c.x1 !== void 0 && (c.x1 = c.x1 * i + c.y1 * l + (C ? 0 : h)), c.y1 !== void 0 && (c.y1 = w * o + c.y1 * u + (C ? 0 : g)), c.x2 !== void 0 && (c.x2 = c.x2 * i + c.y2 * l + (C ? 0 : h)), c.y2 !== void 0 && (c.y2 = E * o + c.y2 * u + (C ? 0 : g));
var N = i * u - o * l;
if (c.xRot !== void 0 && (i !== 1 || o !== 0 || l !== 0 || u !== 1)) if (N === 0) delete c.rX, delete c.rY, delete c.xRot, delete c.lArcFlag, delete c.sweepFlag, c.type = gt.LINE_TO;
else {
var M = c.xRot * Math.PI / 180, k = Math.sin(M), O = Math.cos(M), S = 1 / q(c.rX), U = 1 / q(c.rY), W = q(O) * S + q(k) * U, I = 2 * k * O * (S - U), le = q(k) * S + q(O) * U, ue = W * u * u - I * o * u + le * o * o, Z = I * (i * u + o * l) - 2 * (W * l * u + le * i * o), ee = W * l * l - I * i * l + le * i * i, X = (Math.atan2(Z, ue - ee) + Math.PI) % Math.PI / 2, Ae = Math.sin(X), oe = Math.cos(X);
c.rX = Math.abs(N) / Math.sqrt(ue * q(oe) + Z * Ae * oe + ee * q(Ae)), c.rY = Math.abs(N) / Math.sqrt(ue * q(Ae) - Z * Ae * oe + ee * q(oe)), c.xRot = 180 * X / Math.PI;
}
return c.sweepFlag !== void 0 && 0 > N && (c.sweepFlag = +!c.sweepFlag), c;
}));
}
function s() {
return function(i) {
var o = {};
for (var l in i) o[l] = i[l];
return o;
};
}
r.ROUND = function(i) {
function o(l) {
return Math.round(l * i) / i;
}
return i === void 0 && (i = 1e13), $a(i), function(l) {
return l.x1 !== void 0 && (l.x1 = o(l.x1)), l.y1 !== void 0 && (l.y1 = o(l.y1)), l.x2 !== void 0 && (l.x2 = o(l.x2)), l.y2 !== void 0 && (l.y2 = o(l.y2)), l.x !== void 0 && (l.x = o(l.x)), l.y !== void 0 && (l.y = o(l.y)), l.rX !== void 0 && (l.rX = o(l.rX)), l.rY !== void 0 && (l.rY = o(l.rY)), l;
};
}, r.TO_ABS = t, r.TO_REL = function() {
return n((function(i, o, l) {
return i.relative || (i.x1 !== void 0 && (i.x1 -= o), i.y1 !== void 0 && (i.y1 -= l), i.x2 !== void 0 && (i.x2 -= o), i.y2 !== void 0 && (i.y2 -= l), i.x !== void 0 && (i.x -= o), i.y !== void 0 && (i.y -= l), i.relative = !0), i;
}));
}, r.NORMALIZE_HVZ = function(i, o, l) {
return i === void 0 && (i = !0), o === void 0 && (o = !0), l === void 0 && (l = !0), n((function(u, h, g, c, p) {
if (isNaN(c) && !(u.type & gt.MOVE_TO)) throw new Error("path must start with moveto");
return o && u.type & gt.HORIZ_LINE_TO && (u.type = gt.LINE_TO, u.y = u.relative ? 0 : g), l && u.type & gt.VERT_LINE_TO && (u.type = gt.LINE_TO, u.x = u.relative ? 0 : h), i && u.type & gt.CLOSE_PATH && (u.type = gt.LINE_TO, u.x = u.relative ? c - h : c, u.y = u.relative ? p - g : p), u.type & gt.ARC && (u.rX === 0 || u.rY === 0) && (u.type = gt.LINE_TO, delete u.rX, delete u.rY, delete u.xRot, delete u.lArcFlag, delete u.sweepFlag), u;
}));
}, r.NORMALIZE_ST = e, r.QT_TO_C = A, r.INFO = n, r.SANITIZE = function(i) {
i === void 0 && (i = 0), $a(i);
var o = NaN, l = NaN, u = NaN, h = NaN;
return n((function(g, c, p, m, y) {
var w = Math.abs, E = !1, C = 0, F = 0;
if (g.type & gt.SMOOTH_CURVE_TO && (C = isNaN(o) ? 0 : c - o, F = isNaN(l) ? 0 : p - l), g.type & (gt.CURVE_TO | gt.SMOOTH_CURVE_TO) ? (o = g.relative ? c + g.x2 : g.x2, l = g.relative ? p + g.y2 : g.y2) : (o = NaN, l = NaN), g.type & gt.SMOOTH_QUAD_TO ? (u = isNaN(u) ? c : 2 * c - u, h = isNaN(h) ? p : 2 * p - h) : g.type & gt.QUAD_TO ? (u = g.relative ? c + g.x1 : g.x1, h = g.relative ? p + g.y1 : g.y2) : (u = NaN, h = NaN), g.type & gt.LINE_COMMANDS || g.type & gt.ARC && (g.rX === 0 || g.rY === 0 || !g.lArcFlag) || g.type & gt.CURVE_TO || g.type & gt.SMOOTH_CURVE_TO || g.type & gt.QUAD_TO || g.type & gt.SMOOTH_QUAD_TO) {
var H = g.x === void 0 ? 0 : g.relative ? g.x : g.x - c, q = g.y === void 0 ? 0 : g.relative ? g.y : g.y - p;
C = isNaN(u) ? g.x1 === void 0 ? C : g.relative ? g.x : g.x1 - c : u - c, F = isNaN(h) ? g.y1 === void 0 ? F : g.relative ? g.y : g.y1 - p : h - p;
var N = g.x2 === void 0 ? 0 : g.relative ? g.x : g.x2 - c, M = g.y2 === void 0 ? 0 : g.relative ? g.y : g.y2 - p;
w(H) <= i && w(q) <= i && w(C) <= i && w(F) <= i && w(N) <= i && w(M) <= i && (E = !0);
}
return g.type & gt.CLOSE_PATH && w(c - m) <= i && w(p - y) <= i && (E = !0), E ? [] : g;
}));
}, r.MATRIX = a, r.ROTATE = function(i, o, l) {
o === void 0 && (o = 0), l === void 0 && (l = 0), $a(i, o, l);
var u = Math.sin(i), h = Math.cos(i);
return a(h, u, -u, h, o - o * h + l * u, l - o * u - l * h);
}, r.TRANSLATE = function(i, o) {
return o === void 0 && (o = 0), $a(i, o), a(1, 0, 0, 1, i, o);
}, r.SCALE = function(i, o) {
return o === void 0 && (o = i), $a(i, o), a(i, 0, 0, o, 0, 0);
}, r.SKEW_X = function(i) {
return $a(i), a(1, 0, Math.atan(i), 1, 0, 0);
}, r.SKEW_Y = function(i) {
return $a(i), a(1, Math.atan(i), 0, 1, 0, 0);
}, r.X_AXIS_SYMMETRY = function(i) {
return i === void 0 && (i = 0), $a(i), a(-1, 0, 0, 1, i, 0);
}, r.Y_AXIS_SYMMETRY = function(i) {
return i === void 0 && (i = 0), $a(i), a(1, 0, 0, -1, 0, i);
}, r.A_TO_C = function() {
return n((function(i, o, l) {
return gt.ARC === i.type ? (function(u, h, g) {
var c, p, m, y;
u.cX || zg(u, h, g);
for (var w = Math.min(u.phi1, u.phi2), E = Math.max(u.phi1, u.phi2) - w, C = Math.ceil(E / 90), F = new Array(C), H = h, q = g, N = 0; N < C; N++) {
var M = xy(u.phi1, u.phi2, N / C), k = xy(u.phi1, u.phi2, (N + 1) / C), O = k - M, S = 4 / 3 * Math.tan(O * Ui / 4), U = [Math.cos(M * Ui) - S * Math.sin(M * Ui), Math.sin(M * Ui) + S * Math.cos(M * Ui)], W = U[0], I = U[1], le = [Math.cos(k * Ui), Math.sin(k * Ui)], ue = le[0], Z = le[1], ee = [ue + S * Math.sin(k * Ui), Z - S * Math.cos(k * Ui)], X = ee[0], Ae = ee[1];
F[N] = { relative: u.relative, type: gt.CURVE_TO };
var oe = function(x, L) {
var j = Op([x * u.rX, L * u.rY], u.xRot), $ = j[0], re = j[1];
return [u.cX + $, u.cY + re];
};
c = oe(W, I), F[N].x1 = c[0], F[N].y1 = c[1], p = oe(X, Ae), F[N].x2 = p[0], F[N].y2 = p[1], m = oe(ue, Z), F[N].x = m[0], F[N].y = m[1], u.relative && (F[N].x1 -= H, F[N].y1 -= q, F[N].x2 -= H, F[N].y2 -= q, F[N].x -= H, F[N].y -= q), H = (y = [F[N].x, F[N].y])[0], q = y[1];
}
return F;
})(i, i.relative ? 0 : o, i.relative ? 0 : l) : i;
}));
}, r.ANNOTATE_ARCS = function() {
return n((function(i, o, l) {
return i.relative && (o = 0, l = 0), gt.ARC === i.type && zg(i, o, l), i;
}));
}, r.CLONE = s, r.CALCULATE_BOUNDS = function() {
var i = function(g) {
var c = {};
for (var p in g) c[p] = g[p];
return c;
}, o = t(), l = A(), u = e(), h = n((function(g, c, p) {
var m = u(l(o(i(g))));
function y(Ae) {
Ae > h.maxX && (h.maxX = Ae), Ae < h.minX && (h.minX = Ae);
}
function w(Ae) {
Ae > h.maxY && (h.maxY = Ae), Ae < h.minY && (h.minY = Ae);
}
if (m.type & gt.DRAWING_COMMANDS && (y(c), w(p)), m.type & gt.HORIZ_LINE_TO && y(m.x), m.type & gt.VERT_LINE_TO && w(m.y), m.type & gt.LINE_TO && (y(m.x), w(m.y)), m.type & gt.CURVE_TO) {
y(m.x), w(m.y);
for (var E = 0, C = Uy(c, m.x1, m.x2, m.x); E < C.length; E++)
0 < (X = C[E]) && 1 > X && y(Ty(c, m.x1, m.x2, m.x, X));
for (var F = 0, H = Uy(p, m.y1, m.y2, m.y); F < H.length; F++)
0 < (X = H[F]) && 1 > X && w(Ty(p, m.y1, m.y2, m.y, X));
}
if (m.type & gt.ARC) {
y(m.x), w(m.y), zg(m, c, p);
for (var q = m.xRot / 180 * Math.PI, N = Math.cos(q) * m.rX, M = Math.sin(q) * m.rX, k = -Math.sin(q) * m.rY, O = Math.cos(q) * m.rY, S = m.phi1 < m.phi2 ? [m.phi1, m.phi2] : -180 > m.phi2 ? [m.phi2 + 360, m.phi1 + 360] : [m.phi2, m.phi1], U = S[0], W = S[1], I = function(Ae) {
var oe = Ae[0], x = Ae[1], L = 180 * Math.atan2(x, oe) / Math.PI;
return L < U ? L + 360 : L;
}, le = 0, ue = Fy(k, -N, 0).map(I); le < ue.length; le++)
(X = ue[le]) > U && X < W && y(Sy(m.cX, N, k, X));
for (var Z = 0, ee = Fy(O, -M, 0).map(I); Z < ee.length; Z++) {
var X;
(X = ee[Z]) > U && X < W && w(Sy(m.cY, M, O, X));
}
}
return g;
}));
return h.minX = 1 / 0, h.maxX = -1 / 0, h.minY = 1 / 0, h.maxY = -1 / 0, h;
};
})(Zr || (Zr = {}));
var Ga, EC = (function() {
function r() {
}
return r.prototype.round = function(t) {
return this.transform(Zr.ROUND(t));
}, r.prototype.toAbs = function() {
return this.transform(Zr.TO_ABS());
}, r.prototype.toRel = function() {
return this.transform(Zr.TO_REL());
}, r.prototype.normalizeHVZ = function(t, e, A) {
return this.transform(Zr.NORMALIZE_HVZ(t, e, A));
}, r.prototype.normalizeST = function() {
return this.transform(Zr.NORMALIZE_ST());
}, r.prototype.qtToC = function() {
return this.transform(Zr.QT_TO_C());
}, r.prototype.aToC = function() {
return this.transform(Zr.A_TO_C());
}, r.prototype.sanitize = function(t) {
return this.transform(Zr.SANITIZE(t));
}, r.prototype.translate = function(t, e) {
return this.transform(Zr.TRANSLATE(t, e));
}, r.prototype.scale = function(t, e) {
return this.transform(Zr.SCALE(t, e));
}, r.prototype.rotate = function(t, e, A) {
return this.transform(Zr.ROTATE(t, e, A));
}, r.prototype.matrix = function(t, e, A, n, a, s) {
return this.transform(Zr.MATRIX(t, e, A, n, a, s));
}, r.prototype.skewX = function(t) {
return this.transform(Zr.SKEW_X(t));
}, r.prototype.skewY = function(t) {
return this.transform(Zr.SKEW_Y(t));
}, r.prototype.xSymmetry = function(t) {
return this.transform(Zr.X_AXIS_SYMMETRY(t));
}, r.prototype.ySymmetry = function(t) {
return this.transform(Zr.Y_AXIS_SYMMETRY(t));
}, r.prototype.annotateArcs = function() {
return this.transform(Zr.ANNOTATE_ARCS());
}, r;
})(), v8 = function(r) {
return r === " " || r === " " || r === "\r" || r === `
`;
}, Qy = function(r) {
return 48 <= r.charCodeAt(0) && r.charCodeAt(0) <= 57;
}, m8 = (function(r) {
function t() {
var e = r.call(this) || this;
return e.curNumber = "", e.curCommandType = -1, e.curCommandRelative = !1, e.canParseCommandOrComma = !0, e.curNumberHasExp = !1, e.curNumberHasExpDigits = !1, e.curNumberHasDecimal = !1, e.curArgs = [], e;
}
return CC(t, r), t.prototype.finish = function(e) {
if (e === void 0 && (e = []), this.parse(" ", e), this.curArgs.length !== 0 || !this.canParseCommandOrComma) throw new SyntaxError("Unterminated command at the path end.");
return e;
}, t.prototype.parse = function(e, A) {
var n = this;
A === void 0 && (A = []);
for (var a = function(h) {
A.push(h), n.curArgs.length = 0, n.canParseCommandOrComma = !0;
}, s = 0; s < e.length; s++) {
var i = e[s], o = !(this.curCommandType !== gt.ARC || this.curArgs.length !== 3 && this.curArgs.length !== 4 || this.curNumber.length !== 1 || this.curNumber !== "0" && this.curNumber !== "1"), l = Qy(i) && (this.curNumber === "0" && i === "0" || o);
if (!Qy(i) || l) if (i !== "e" && i !== "E") if (i !== "-" && i !== "+" || !this.curNumberHasExp || this.curNumberHasExpDigits) if (i !== "." || this.curNumberHasExp || this.curNumberHasDecimal || o) {
if (this.curNumber && this.curCommandType !== -1) {
var u = Number(this.curNumber);
if (isNaN(u)) throw new SyntaxError("Invalid number ending at " + s);
if (this.curCommandType === gt.ARC) {
if (this.curArgs.length === 0 || this.curArgs.length === 1) {
if (0 > u) throw new SyntaxError('Expected positive number, got "' + u + '" at index "' + s + '"');
} else if ((this.curArgs.length === 3 || this.curArgs.length === 4) && this.curNumber !== "0" && this.curNumber !== "1") throw new SyntaxError('Expected a flag, got "' + this.curNumber + '" at index "' + s + '"');
}
this.curArgs.push(u), this.curArgs.length === w8[this.curCommandType] && (gt.HORIZ_LINE_TO === this.curCommandType ? a({ type: gt.HORIZ_LINE_TO, relative: this.curCommandRelative, x: u }) : gt.VERT_LINE_TO === this.curCommandType ? a({ type: gt.VERT_LINE_TO, relative: this.curCommandRelative, y: u }) : this.curCommandType === gt.MOVE_TO || this.curCommandType === gt.LINE_TO || this.curCommandType === gt.SMOOTH_QUAD_TO ? (a({ type: this.curCommandType, relative: this.curCommandRelative, x: this.curArgs[0], y: this.curArgs[1] }), gt.MOVE_TO === this.curCommandType && (this.curCommandType = gt.LINE_TO)) : this.curCommandType === gt.CURVE_TO ? a({ type: gt.CURVE_TO, relative: this.curCommandRelative, x1: this.curArgs[0], y1: this.curArgs[1], x2: this.curArgs[2], y2: this.curArgs[3], x: this.curArgs[4], y: this.curArgs[5] }) : this.curCommandType === gt.SMOOTH_CURVE_TO ? a({ type: gt.SMOOTH_CURVE_TO, relative: this.curCommandRelative, x2: this.curArgs[0], y2: this.curArgs[1], x: this.curArgs[2], y: this.curArgs[3] }) : this.curCommandType === gt.QUAD_TO ? a({ type: gt.QUAD_TO, relative: this.curCommandRelative, x1: this.curArgs[0], y1: this.curArgs[1], x: this.curArgs[2], y: this.curArgs[3] }) : this.curCommandType === gt.ARC && a({ type: gt.ARC, relative: this.curCommandRelative, rX: this.curArgs[0], rY: this.curArgs[1], xRot: this.curArgs[2], lArcFlag: this.curArgs[3], sweepFlag: this.curArgs[4], x: this.curArgs[5], y: this.curArgs[6] })), this.curNumber = "", this.curNumberHasExpDigits = !1, this.curNumberHasExp = !1, this.curNumberHasDecimal = !1, this.canParseCommandOrComma = !0;
}
if (!v8(i)) if (i === "," && this.canParseCommandOrComma) this.canParseCommandOrComma = !1;
else if (i !== "+" && i !== "-" && i !== ".") if (l) this.curNumber = i, this.curNumberHasDecimal = !1;
else {
if (this.curArgs.length !== 0) throw new SyntaxError("Unterminated command at index " + s + ".");
if (!this.canParseCommandOrComma) throw new SyntaxError('Unexpected character "' + i + '" at index ' + s + ". Command cannot follow comma");
if (this.canParseCommandOrComma = !1, i !== "z" && i !== "Z") if (i === "h" || i === "H") this.curCommandType = gt.HORIZ_LINE_TO, this.curCommandRelative = i === "h";
else if (i === "v" || i === "V") this.curCommandType = gt.VERT_LINE_TO, this.curCommandRelative = i === "v";
else if (i === "m" || i === "M") this.curCommandType = gt.MOVE_TO, this.curCommandRelative = i === "m";
else if (i === "l" || i === "L") this.curCommandType = gt.LINE_TO, this.curCommandRelative = i === "l";
else if (i === "c" || i === "C") this.curCommandType = gt.CURVE_TO, this.curCommandRelative = i === "c";
else if (i === "s" || i === "S") this.curCommandType = gt.SMOOTH_CURVE_TO, this.curCommandRelative = i === "s";
else if (i === "q" || i === "Q") this.curCommandType = gt.QUAD_TO, this.curCommandRelative = i === "q";
else if (i === "t" || i === "T") this.curCommandType = gt.SMOOTH_QUAD_TO, this.curCommandRelative = i === "t";
else {
if (i !== "a" && i !== "A") throw new SyntaxError('Unexpected character "' + i + '" at index ' + s + ".");
this.curCommandType = gt.ARC, this.curCommandRelative = i === "a";
}
else A.push({ type: gt.CLOSE_PATH }), this.canParseCommandOrComma = !0, this.curCommandType = -1;
}
else this.curNumber = i, this.curNumberHasDecimal = i === ".";
} else this.curNumber += i, this.curNumberHasDecimal = !0;
else this.curNumber += i;
else this.curNumber += i, this.curNumberHasExp = !0;
else this.curNumber += i, this.curNumberHasExpDigits = this.curNumberHasExp;
}
return A;
}, t.prototype.transform = function(e) {
return Object.create(this, { parse: { value: function(A, n) {
n === void 0 && (n = []);
for (var a = 0, s = Object.getPrototypeOf(this).parse.call(this, A); a < s.length; a++) {
var i = s[a], o = e(i);
Array.isArray(o) ? n.push.apply(n, o) : n.push(o);
}
return n;
} } });
}, t;
})(EC), gt = (function(r) {
function t(e) {
var A = r.call(this) || this;
return A.commands = typeof e == "string" ? t.parse(e) : e, A;
}
return CC(t, r), t.prototype.encode = function() {
return t.encode(this.commands);
}, t.prototype.getBounds = function() {
var e = Zr.CALCULATE_BOUNDS();
return this.transform(e), e;
}, t.prototype.transform = function(e) {
for (var A = [], n = 0, a = this.commands; n < a.length; n++) {
var s = e(a[n]);
Array.isArray(s) ? A.push.apply(A, s) : A.push(s);
}
return this.commands = A, this;
}, t.encode = function(e) {
return p8(e);
}, t.parse = function(e) {
var A = new m8(), n = [];
return A.parse(e, n), A.finish(n), n;
}, t.CLOSE_PATH = 1, t.MOVE_TO = 2, t.HORIZ_LINE_TO = 4, t.VERT_LINE_TO = 8, t.LINE_TO = 16, t.CURVE_TO = 32, t.SMOOTH_CURVE_TO = 64, t.QUAD_TO = 128, t.SMOOTH_QUAD_TO = 256, t.ARC = 512, t.LINE_COMMANDS = t.LINE_TO | t.HORIZ_LINE_TO | t.VERT_LINE_TO, t.DRAWING_COMMANDS = t.HORIZ_LINE_TO | t.VERT_LINE_TO | t.LINE_TO | t.CURVE_TO | t.SMOOTH_CURVE_TO | t.QUAD_TO | t.SMOOTH_QUAD_TO | t.ARC, t;
})(EC), w8 = ((Ga = {})[gt.MOVE_TO] = 2, Ga[gt.LINE_TO] = 2, Ga[gt.HORIZ_LINE_TO] = 1, Ga[gt.VERT_LINE_TO] = 1, Ga[gt.CLOSE_PATH] = 0, Ga[gt.QUAD_TO] = 4, Ga[gt.SMOOTH_QUAD_TO] = 2, Ga[gt.CURVE_TO] = 6, Ga[gt.SMOOTH_CURVE_TO] = 4, Ga[gt.ARC] = 7, Ga), Dy = {}, ky;
function B8() {
if (ky) return Dy;
ky = 1;
var r = jc().PROPER, t = Ys(), e = Jn(), A = mi(), n = Hr(), a = Ev(), s = "toString", i = RegExp.prototype, o = i[s], l = n(function() {
return o.call({ source: "a", flags: "b" }) !== "/a/b";
}), u = r && o.name !== s;
return (l || u) && t(i, s, function() {
var g = e(this), c = A(g.source), p = A(a(g));
return "/" + c + "/" + p;
}, { unsafe: !0 }), Dy;
}
B8();
function ic(r) {
"@babel/helpers - typeof";
return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? ic = function(t) {
return typeof t;
} : ic = function(t) {
return t && typeof Symbol == "function" && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
}, ic(r);
}
function y8(r, t) {
if (!(r instanceof t))
throw new TypeError("Cannot call a class as a function");
}
var b8 = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259], C8 = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];
function E8(r, t, e, A, n) {
if (typeof r == "string" && (r = document.getElementById(r)), !r || ic(r) !== "object" || !("getContext" in r))
throw new TypeError("Expecting canvas with `getContext` method in processCanvasRGB(A) calls!");
var a = r.getContext("2d");
try {
return a.getImageData(t, e, A, n);
} catch (s) {
throw new Error("unable to access image data: " + s);
}
}
function F8(r, t, e, A, n, a) {
if (!(isNaN(a) || a < 1)) {
a |= 0;
var s = E8(r, t, e, A, n);
s = x8(s, t, e, A, n, a), r.getContext("2d").putImageData(s, t, e);
}
}
function x8(r, t, e, A, n, a) {
for (var s = r.data, i = 2 * a + 1, o = A - 1, l = n - 1, u = a + 1, h = u * (u + 1) / 2, g = new Ly(), c = g, p, m = 1; m < i; m++)
c = c.next = new Ly(), m === u && (p = c);
c.next = g;
for (var y = null, w = null, E = 0, C = 0, F = b8[a], H = C8[a], q = 0; q < n; q++) {
c = g;
for (var N = s[C], M = s[C + 1], k = s[C + 2], O = s[C + 3], S = 0; S < u; S++)
c.r = N, c.g = M, c.b = k, c.a = O, c = c.next;
for (var U = 0, W = 0, I = 0, le = 0, ue = u * N, Z = u * M, ee = u * k, X = u * O, Ae = h * N, oe = h * M, x = h * k, L = h * O, j = 1; j < u; j++) {
var $ = C + ((o < j ? o : j) << 2), re = s[$], pe = s[$ + 1], de = s[$ + 2], ce = s[$ + 3], Se = u - j;
Ae += (c.r = re) * Se, oe += (c.g = pe) * Se, x += (c.b = de) * Se, L += (c.a = ce) * Se, U += re, W += pe, I += de, le += ce, c = c.next;
}
y = g, w = p;
for (var qe = 0; qe < A; qe++) {
var rt = L * F >>> H;
if (s[C + 3] = rt, rt !== 0) {
var at = 255 / rt;
s[C] = (Ae * F >>> H) * at, s[C + 1] = (oe * F >>> H) * at, s[C + 2] = (x * F >>> H) * at;
} else
s[C] = s[C + 1] = s[C + 2] = 0;
Ae -= ue, oe -= Z, x -= ee, L -= X, ue -= y.r, Z -= y.g, ee -= y.b, X -= y.a;
var dt = qe + a + 1;
dt = E + (dt < o ? dt : o) << 2, U += y.r = s[dt], W += y.g = s[dt + 1], I += y.b = s[dt + 2], le += y.a = s[dt + 3], Ae += U, oe += W, x += I, L += le, y = y.next;
var D = w, Ie = D.r, me = D.g, ve = D.b, xe = D.a;
ue += Ie, Z += me, ee += ve, X += xe, U -= Ie, W -= me, I -= ve, le -= xe, w = w.next, C += 4;
}
E += A;
}
for (var Qe = 0; Qe < A; Qe++) {
C = Qe << 2;
var _e = s[C], Pe = s[C + 1], je = s[C + 2], Ke = s[C + 3], et = u * _e, ut = u * Pe, yt = u * je, Ft = u * Ke, Bt = h * _e, St = h * Pe, bt = h * je, nA = h * Ke;
c = g;
for (var qt = 0; qt < u; qt++)
c.r = _e, c.g = Pe, c.b = je, c.a = Ke, c = c.next;
for (var Ot = A, Pt = 0, sA = 0, kt = 0, hA = 0, Nt = 1; Nt <= a; Nt++) {
C = Ot + Qe << 2;
var Ce = u - Nt;
Bt += (c.r = _e = s[C]) * Ce, St += (c.g = Pe = s[C + 1]) * Ce, bt += (c.b = je = s[C + 2]) * Ce, nA += (c.a = Ke = s[C + 3]) * Ce, hA += _e, Pt += Pe, sA += je, kt += Ke, c = c.next, Nt < l && (Ot += A);
}
C = Qe, y = g, w = p;
for (var Ve = 0; Ve < n; Ve++) {
var Re = C << 2;
s[Re + 3] = Ke = nA * F >>> H, Ke > 0 ? (Ke = 255 / Ke, s[Re] = (Bt * F >>> H) * Ke, s[Re + 1] = (St * F >>> H) * Ke, s[Re + 2] = (bt * F >>> H) * Ke) : s[Re] = s[Re + 1] = s[Re + 2] = 0, Bt -= et, St -= ut, bt -= yt, nA -= Ft, et -= y.r, ut -= y.g, yt -= y.b, Ft -= y.a, Re = Qe + ((Re = Ve + u) < l ? Re : l) * A << 2, Bt += hA += y.r = s[Re], St += Pt += y.g = s[Re + 1], bt += sA += y.b = s[Re + 2], nA += kt += y.a = s[Re + 3], y = y.next, et += _e = w.r, ut += Pe = w.g, yt += je = w.b, Ft += Ke = w.a, hA -= _e, Pt -= Pe, sA -= je, kt -= Ke, w = w.next, C += A;
}
}
return r;
}
var Ly = (
/**
* Set properties.
*/
function r() {
y8(this, r), this.r = 0, this.g = 0, this.b = 0, this.a = 0, this.next = null;
}
);
function S8() {
var {
DOMParser: r
} = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, t = {
window: null,
ignoreAnimation: !0,
ignoreMouse: !0,
DOMParser: r,
createCanvas(e, A) {
return new OffscreenCanvas(e, A);
},
createImage(e) {
return Mi(function* () {
var A = yield fetch(e), n = yield A.blob(), a = yield createImageBitmap(n);
return a;
})();
}
};
return (typeof DOMParser < "u" || typeof r > "u") && Reflect.deleteProperty(t, "DOMParser"), t;
}
function U8(r) {
var {
DOMParser: t,
canvas: e,
fetch: A
} = r;
return {
window: null,
ignoreAnimation: !0,
ignoreMouse: !0,
DOMParser: t,
fetch: A,
createCanvas: e.createCanvas,
createImage: e.loadImage
};
}
var T8 = /* @__PURE__ */ Object.freeze({
__proto__: null,
offscreen: S8,
node: U8
});
function $s(r) {
return r.replace(/(?!\u3000)\s+/gm, " ");
}
function FC(r) {
return r.replace(/^[\n \t]+/, "");
}
function xC(r) {
return r.replace(/[\n \t]+$/, "");
}
function ia(r) {
var t = (r || "").match(/-?(\d+(?:\.\d*(?:[eE][+-]?\d+)?)?|\.\d+)(?=\D|$)/gm) || [];
return t.map(parseFloat);
}
var Q8 = /^[A-Z-]+$/;
function SC(r) {
return Q8.test(r) ? r.toLowerCase() : r;
}
function Tv(r) {
var t = /url\(('([^']+)'|"([^"]+)"|([^'")]+))\)/.exec(r) || [];
return t[2] || t[3] || t[4];
}
function UC(r) {
if (!r.startsWith("rgb"))
return r;
var t = 3, e = r.replace(/\d+(\.\d+)?/g, (A, n) => t-- && n ? String(Math.round(parseFloat(A))) : A);
return e;
}
var D8 = /(\[[^\]]+\])/g, k8 = /(#[^\s+>~.[:]+)/g, L8 = /(\.[^\s+>~.[:]+)/g, I8 = /(::[^\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi, _8 = /(:[\w-]+\([^)]*\))/gi, N8 = /(:[^\s+>~.[:]+)/g, M8 = /([^\s+>~.[:]+)/g;
function Ss(r, t) {
var e = t.exec(r);
return e ? [r.replace(t, " "), e.length] : [r, 0];
}
function TC(r) {
var t = [0, 0, 0], e = r.replace(/:not\(([^)]*)\)/g, " $1 ").replace(/{[\s\S]*/gm, " "), A = 0;
return [e, A] = Ss(e, D8), t[1] += A, [e, A] = Ss(e, k8), t[0] += A, [e, A] = Ss(e, L8), t[1] += A, [e, A] = Ss(e, I8), t[2] += A, [e, A] = Ss(e, _8), t[1] += A, [e, A] = Ss(e, N8), t[1] += A, e = e.replace(/[*\s+>~]/g, " ").replace(/[#.]/g, " "), [e, A] = Ss(e, M8), t[2] += A, t.join("");
}
var Ps = 1e-8;
function Rp(r) {
return Math.sqrt(Math.pow(r[0], 2) + Math.pow(r[1], 2));
}
function Ec(r, t) {
return (r[0] * t[0] + r[1] * t[1]) / (Rp(r) * Rp(t));
}
function Hp(r, t) {
return (r[0] * t[1] < r[1] * t[0] ? -1 : 1) * Math.acos(Ec(r, t));
}
function Pp(r) {
return r * r * r;
}
function Kp(r) {
return 3 * r * r * (1 - r);
}
function Vp(r) {
return 3 * r * (1 - r) * (1 - r);
}
function qp(r) {
return (1 - r) * (1 - r) * (1 - r);
}
function jp(r) {
return r * r;
}
function Wp(r) {
return 2 * r * (1 - r);
}
function Gp(r) {
return (1 - r) * (1 - r);
}
class AA {
constructor(t, e, A) {
this.document = t, this.name = e, this.value = A, this.isNormalizedColor = !1;
}
static empty(t) {
return new AA(t, "EMPTY", "");
}
split() {
var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : " ", {
document: e,
name: A
} = this;
return $s(this.getString()).trim().split(t).map((n) => new AA(e, A, n));
}
hasValue(t) {
var {
value: e
} = this;
return e !== null && e !== "" && (t || e !== 0) && typeof e < "u";
}
isString(t) {
var {
value: e
} = this, A = typeof e == "string";
return !A || !t ? A : t.test(e);
}
isUrlDefinition() {
return this.isString(/^url\(/);
}
isPixels() {
if (!this.hasValue())
return !1;
var t = this.getString();
switch (!0) {
case t.endsWith("px"):
case /^[0-9]+$/.test(t):
return !0;
default:
return !1;
}
}
setValue(t) {
return this.value = t, this;
}
getValue(t) {
return typeof t > "u" || this.hasValue() ? this.value : t;
}
getNumber(t) {
if (!this.hasValue())
return typeof t > "u" ? 0 : parseFloat(t);
var {
value: e
} = this, A = parseFloat(e);
return this.isString(/%$/) && (A /= 100), A;
}
getString(t) {
return typeof t > "u" || this.hasValue() ? typeof this.value > "u" ? "" : String(this.value) : String(t);
}
getColor(t) {
var e = this.getString(t);
return this.isNormalizedColor || (this.isNormalizedColor = !0, e = UC(e), this.value = e), e;
}
getDpi() {
return 96;
}
getRem() {
return this.document.rootEmSize;
}
getEm() {
return this.document.emSize;
}
getUnits() {
return this.getString().replace(/[0-9.-]/g, "");
}
getPixels(t) {
var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1;
if (!this.hasValue())
return 0;
var [A, n] = typeof t == "boolean" ? [void 0, t] : [t], {
viewPort: a
} = this.document.screen;
switch (!0) {
case this.isString(/vmin$/):
return this.getNumber() / 100 * Math.min(a.computeSize("x"), a.computeSize("y"));
case this.isString(/vmax$/):
return this.getNumber() / 100 * Math.max(a.computeSize("x"), a.computeSize("y"));
case this.isString(/vw$/):
return this.getNumber() / 100 * a.computeSize("x");
case this.isString(/vh$/):
return this.getNumber() / 100 * a.computeSize("y");
case this.isString(/rem$/):
return this.getNumber() * this.getRem();
case this.isString(/em$/):
return this.getNumber() * this.getEm();
case this.isString(/ex$/):
return this.getNumber() * this.getEm() / 2;
case this.isString(/px$/):
return this.getNumber();
case this.isString(/pt$/):
return this.getNumber() * this.getDpi() * (1 / 72);
case this.isString(/pc$/):
return this.getNumber() * 15;
case this.isString(/cm$/):
return this.getNumber() * this.getDpi() / 2.54;
case this.isString(/mm$/):
return this.getNumber() * this.getDpi() / 25.4;
case this.isString(/in$/):
return this.getNumber() * this.getDpi();
case (this.isString(/%$/) && n):
return this.getNumber() * this.getEm();
case this.isString(/%$/):
return this.getNumber() * a.computeSize(A);
default: {
var s = this.getNumber();
return e && s < 1 ? s * a.computeSize(A) : s;
}
}
}
getMilliseconds() {
return this.hasValue() ? this.isString(/ms$/) ? this.getNumber() : this.getNumber() * 1e3 : 0;
}
getRadians() {
if (!this.hasValue())
return 0;
switch (!0) {
case this.isString(/deg$/):
return this.getNumber() * (Math.PI / 180);
case this.isString(/grad$/):
return this.getNumber() * (Math.PI / 200);
case this.isString(/rad$/):
return this.getNumber();
default:
return this.getNumber() * (Math.PI / 180);
}
}
getDefinition() {
var t = this.getString(), e = /#([^)'"]+)/.exec(t);
return e && (e = e[1]), e || (e = t), this.document.definitions[e];
}
getFillStyleDefinition(t, e) {
var A = this.getDefinition();
if (!A)
return null;
if (typeof A.createGradient == "function")
return A.createGradient(this.document.ctx, t, e);
if (typeof A.createPattern == "function") {
if (A.getHrefAttribute().hasValue()) {
var n = A.getAttribute("patternTransform");
A = A.getHrefAttribute().getDefinition(), n.hasValue() && A.getAttribute("patternTransform", !0).setValue(n.value);
}
return A.createPattern(this.document.ctx, t, e);
}
return null;
}
getTextBaseline() {
return this.hasValue() ? AA.textBaselineMapping[this.getString()] : null;
}
addOpacity(t) {
for (var e = this.getColor(), A = e.length, n = 0, a = 0; a < A && (e[a] === "," && n++, n !== 3); a++)
;
if (t.hasValue() && this.isString() && n !== 3) {
var s = new Mp(e);
s.ok && (s.alpha = t.getNumber(), e = s.toRGBA());
}
return new AA(this.document, this.name, e);
}
}
AA.textBaselineMapping = {
baseline: "alphabetic",
"before-edge": "top",
"text-before-edge": "top",
middle: "middle",
central: "middle",
"after-edge": "bottom",
"text-after-edge": "bottom",
ideographic: "ideographic",
alphabetic: "alphabetic",
hanging: "hanging",
mathematical: "alphabetic"
};
class QC {
constructor() {
this.viewPorts = [];
}
clear() {
this.viewPorts = [];
}
setCurrent(t, e) {
this.viewPorts.push({
width: t,
height: e
});
}
removeCurrent() {
this.viewPorts.pop();
}
getCurrent() {
var {
viewPorts: t
} = this;
return t[t.length - 1];
}
get width() {
return this.getCurrent().width;
}
get height() {
return this.getCurrent().height;
}
computeSize(t) {
return typeof t == "number" ? t : t === "x" ? this.width : t === "y" ? this.height : Math.sqrt(Math.pow(this.width, 2) + Math.pow(this.height, 2)) / Math.sqrt(2);
}
}
class Rr {
constructor(t, e) {
this.x = t, this.y = e;
}
static parse(t) {
var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, [A = e, n = e] = ia(t);
return new Rr(A, n);
}
static parseScale(t) {
var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1, [A = e, n = A] = ia(t);
return new Rr(A, n);
}
static parsePath(t) {
for (var e = ia(t), A = e.length, n = [], a = 0; a < A; a += 2)
n.push(new Rr(e[a], e[a + 1]));
return n;
}
angleTo(t) {
return Math.atan2(t.y - this.y, t.x - this.x);
}
applyTransform(t) {
var {
x: e,
y: A
} = this, n = e * t[0] + A * t[2] + t[4], a = e * t[1] + A * t[3] + t[5];
this.x = n, this.y = a;
}
}
class DC {
constructor(t) {
this.screen = t, this.working = !1, this.events = [], this.eventElements = [], this.onClick = this.onClick.bind(this), this.onMouseMove = this.onMouseMove.bind(this);
}
isWorking() {
return this.working;
}
start() {
if (!this.working) {
var {
screen: t,
onClick: e,
onMouseMove: A
} = this, n = t.ctx.canvas;
n.onclick = e, n.onmousemove = A, this.working = !0;
}
}
stop() {
if (this.working) {
var t = this.screen.ctx.canvas;
this.working = !1, t.onclick = null, t.onmousemove = null;
}
}
hasEvents() {
return this.working && this.events.length > 0;
}
runEvents() {
if (this.working) {
var {
screen: t,
events: e,
eventElements: A
} = this, {
style: n
} = t.ctx.canvas;
n && (n.cursor = ""), e.forEach((a, s) => {
for (var {
run: i
} = a, o = A[s]; o; )
i(o), o = o.parent;
}), this.events = [], this.eventElements = [];
}
}
checkPath(t, e) {
if (!(!this.working || !e)) {
var {
events: A,
eventElements: n
} = this;
A.forEach((a, s) => {
var {
x: i,
y: o
} = a;
!n[s] && e.isPointInPath && e.isPointInPath(i, o) && (n[s] = t);
});
}
}
checkBoundingBox(t, e) {
if (!(!this.working || !e)) {
var {
events: A,
eventElements: n
} = this;
A.forEach((a, s) => {
var {
x: i,
y: o
} = a;
!n[s] && e.isPointInBox(i, o) && (n[s] = t);
});
}
}
mapXY(t, e) {
for (var {
window: A,
ctx: n
} = this.screen, a = new Rr(t, e), s = n.canvas; s; )
a.x -= s.offsetLeft, a.y -= s.offsetTop, s = s.offsetParent;
return A.scrollX && (a.x += A.scrollX), A.scrollY && (a.y += A.scrollY), a;
}
onClick(t) {
var {
x: e,
y: A
} = this.mapXY(t.clientX, t.clientY);
this.events.push({
type: "onclick",
x: e,
y: A,
run(n) {
n.onClick && n.onClick();
}
});
}
onMouseMove(t) {
var {
x: e,
y: A
} = this.mapXY(t.clientX, t.clientY);
this.events.push({
type: "onmousemove",
x: e,
y: A,
run(n) {
n.onMouseMove && n.onMouseMove();
}
});
}
}
var kC = typeof window < "u" ? window : null, LC = typeof fetch < "u" ? fetch.bind(void 0) : null;
class Rl {
constructor(t) {
var {
fetch: e = LC,
window: A = kC
} = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
this.ctx = t, this.FRAMERATE = 30, this.MAX_VIRTUAL_PIXELS = 3e4, this.CLIENT_WIDTH = 800, this.CLIENT_HEIGHT = 600, this.viewPort = new QC(), this.mouse = new DC(this), this.animations = [], this.waits = [], this.frameDuration = 0, this.isReadyLock = !1, this.isFirstRender = !0, this.intervalId = null, this.window = A, this.fetch = e;
}
wait(t) {
this.waits.push(t);
}
ready() {
return this.readyPromise ? this.readyPromise : Promise.resolve();
}
isReady() {
if (this.isReadyLock)
return !0;
var t = this.waits.every((e) => e());
return t && (this.waits = [], this.resolveReady && this.resolveReady()), this.isReadyLock = t, t;
}
setDefaults(t) {
t.strokeStyle = "rgba(0,0,0,0)", t.lineCap = "butt", t.lineJoin = "miter", t.miterLimit = 4;
}
setViewBox(t) {
var {
document: e,
ctx: A,
aspectRatio: n,
width: a,
desiredWidth: s,
height: i,
desiredHeight: o,
minX: l = 0,
minY: u = 0,
refX: h,
refY: g,
clip: c = !1,
clipX: p = 0,
clipY: m = 0
} = t, y = $s(n).replace(/^defer\s/, ""), [w, E] = y.split(" "), C = w || "xMidYMid", F = E || "meet", H = a / s, q = i / o, N = Math.min(H, q), M = Math.max(H, q), k = s, O = o;
F === "meet" && (k *= N, O *= N), F === "slice" && (k *= M, O *= M);
var S = new AA(e, "refX", h), U = new AA(e, "refY", g), W = S.hasValue() && U.hasValue();
if (W && A.translate(-N * S.getPixels("x"), -N * U.getPixels("y")), c) {
var I = N * p, le = N * m;
A.beginPath(), A.moveTo(I, le), A.lineTo(a, le), A.lineTo(a, i), A.lineTo(I, i), A.closePath(), A.clip();
}
if (!W) {
var ue = F === "meet" && N === q, Z = F === "slice" && M === q, ee = F === "meet" && N === H, X = F === "slice" && M === H;
C.startsWith("xMid") && (ue || Z) && A.translate(a / 2 - k / 2, 0), C.endsWith("YMid") && (ee || X) && A.translate(0, i / 2 - O / 2), C.startsWith("xMax") && (ue || Z) && A.translate(a - k, 0), C.endsWith("YMax") && (ee || X) && A.translate(0, i - O);
}
switch (!0) {
case C === "none":
A.scale(H, q);
break;
case F === "meet":
A.scale(N, N);
break;
case F === "slice":
A.scale(M, M);
break;
}
A.translate(-l, -u);
}
start(t) {
var {
enableRedraw: e = !1,
ignoreMouse: A = !1,
ignoreAnimation: n = !1,
ignoreDimensions: a = !1,
ignoreClear: s = !1,
forceRedraw: i,
scaleWidth: o,
scaleHeight: l,
offsetX: u,
offsetY: h
} = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
FRAMERATE: g,
mouse: c
} = this, p = 1e3 / g;
if (this.frameDuration = p, this.readyPromise = new Promise((C) => {
this.resolveReady = C;
}), this.isReady() && this.render(t, a, s, o, l, u, h), !!e) {
var m = Date.now(), y = m, w = 0, E = () => {
m = Date.now(), w = m - y, w >= p && (y = m - w % p, this.shouldUpdate(n, i) && (this.render(t, a, s, o, l, u, h), c.runEvents())), this.intervalId = qg(E);
};
A || c.start(), this.intervalId = qg(E);
}
}
stop() {
this.intervalId && (qg.cancel(this.intervalId), this.intervalId = null), this.mouse.stop();
}
shouldUpdate(t, e) {
if (!t) {
var {
frameDuration: A
} = this, n = this.animations.reduce((a, s) => s.update(A) || a, !1);
if (n)
return !0;
}
return !!(typeof e == "function" && e() || !this.isReadyLock && this.isReady() || this.mouse.hasEvents());
}
render(t, e, A, n, a, s, i) {
var {
CLIENT_WIDTH: o,
CLIENT_HEIGHT: l,
viewPort: u,
ctx: h,
isFirstRender: g
} = this, c = h.canvas;
u.clear(), c.width && c.height ? u.setCurrent(c.width, c.height) : u.setCurrent(o, l);
var p = t.getStyle("width"), m = t.getStyle("height");
!e && (g || typeof n != "number" && typeof a != "number") && (p.hasValue() && (c.width = p.getPixels("x"), c.style && (c.style.width = "".concat(c.width, "px"))), m.hasValue() && (c.height = m.getPixels("y"), c.style && (c.style.height = "".concat(c.height, "px"))));
var y = c.clientWidth || c.width, w = c.clientHeight || c.height;
if (e && p.hasValue() && m.hasValue() && (y = p.getPixels("x"), w = m.getPixels("y")), u.setCurrent(y, w), typeof s == "number" && t.getAttribute("x", !0).setValue(s), typeof i == "number" && t.getAttribute("y", !0).setValue(i), typeof n == "number" || typeof a == "number") {
var E = ia(t.getAttribute("viewBox").getString()), C = 0, F = 0;
if (typeof n == "number") {
var H = t.getStyle("width");
H.hasValue() ? C = H.getPixels("x") / n : isNaN(E[2]) || (C = E[2] / n);
}
if (typeof a == "number") {
var q = t.getStyle("height");
q.hasValue() ? F = q.getPixels("y") / a : isNaN(E[3]) || (F = E[3] / a);
}
C || (C = F), F || (F = C), t.getAttribute("width", !0).setValue(n), t.getAttribute("height", !0).setValue(a);
var N = t.getStyle("transform", !0, !0);
N.setValue("".concat(N.getString(), " scale(").concat(1 / C, ", ").concat(1 / F, ")"));
}
A || h.clearRect(0, 0, y, w), t.render(h), g && (this.isFirstRender = !1);
}
}
Rl.defaultWindow = kC;
Rl.defaultFetch = LC;
var {
defaultFetch: O8
} = Rl, R8 = typeof DOMParser < "u" ? DOMParser : null;
class sc {
constructor() {
var {
fetch: t = O8,
DOMParser: e = R8
} = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
this.fetch = t, this.DOMParser = e;
}
parse(t) {
var e = this;
return Mi(function* () {
return t.startsWith("<") ? e.parseFromString(t) : e.load(t);
})();
}
parseFromString(t) {
var e = new this.DOMParser();
try {
return this.checkDocument(e.parseFromString(t, "image/svg+xml"));
} catch {
return this.checkDocument(e.parseFromString(t, "text/xml"));
}
}
checkDocument(t) {
var e = t.getElementsByTagName("parsererror")[0];
if (e)
throw new Error(e.textContent);
return t;
}
load(t) {
var e = this;
return Mi(function* () {
var A = yield e.fetch(t), n = yield A.text();
return e.parseFromString(n);
})();
}
}
class IC {
constructor(t, e) {
this.type = "translate", this.point = null, this.point = Rr.parse(e);
}
apply(t) {
var {
x: e,
y: A
} = this.point;
t.translate(e || 0, A || 0);
}
unapply(t) {
var {
x: e,
y: A
} = this.point;
t.translate(-1 * e || 0, -1 * A || 0);
}
applyToPoint(t) {
var {
x: e,
y: A
} = this.point;
t.applyTransform([1, 0, 0, 1, e || 0, A || 0]);
}
}
class _C {
constructor(t, e, A) {
this.type = "rotate", this.angle = null, this.originX = null, this.originY = null, this.cx = 0, this.cy = 0;
var n = ia(e);
this.angle = new AA(t, "angle", n[0]), this.originX = A[0], this.originY = A[1], this.cx = n[1] || 0, this.cy = n[2] || 0;
}
apply(t) {
var {
cx: e,
cy: A,
originX: n,
originY: a,
angle: s
} = this, i = e + n.getPixels("x"), o = A + a.getPixels("y");
t.translate(i, o), t.rotate(s.getRadians()), t.translate(-i, -o);
}
unapply(t) {
var {
cx: e,
cy: A,
originX: n,
originY: a,
angle: s
} = this, i = e + n.getPixels("x"), o = A + a.getPixels("y");
t.translate(i, o), t.rotate(-1 * s.getRadians()), t.translate(-i, -o);
}
applyToPoint(t) {
var {
cx: e,
cy: A,
angle: n
} = this, a = n.getRadians();
t.applyTransform([
1,
0,
0,
1,
e || 0,
A || 0
// this.p.y
]), t.applyTransform([Math.cos(a), Math.sin(a), -Math.sin(a), Math.cos(a), 0, 0]), t.applyTransform([
1,
0,
0,
1,
-e || 0,
-A || 0
// -this.p.y
]);
}
}
class NC {
constructor(t, e, A) {
this.type = "scale", this.scale = null, this.originX = null, this.originY = null;
var n = Rr.parseScale(e);
(n.x === 0 || n.y === 0) && (n.x = Ps, n.y = Ps), this.scale = n, this.originX = A[0], this.originY = A[1];
}
apply(t) {
var {
scale: {
x: e,
y: A
},
originX: n,
originY: a
} = this, s = n.getPixels("x"), i = a.getPixels("y");
t.translate(s, i), t.scale(e, A || e), t.translate(-s, -i);
}
unapply(t) {
var {
scale: {
x: e,
y: A
},
originX: n,
originY: a
} = this, s = n.getPixels("x"), i = a.getPixels("y");
t.translate(s, i), t.scale(1 / e, 1 / A || e), t.translate(-s, -i);
}
applyToPoint(t) {
var {
x: e,
y: A
} = this.scale;
t.applyTransform([e || 0, 0, 0, A || 0, 0, 0]);
}
}
class Qv {
constructor(t, e, A) {
this.type = "matrix", this.matrix = [], this.originX = null, this.originY = null, this.matrix = ia(e), this.originX = A[0], this.originY = A[1];
}
apply(t) {
var {
originX: e,
originY: A,
matrix: n
} = this, a = e.getPixels("x"), s = A.getPixels("y");
t.translate(a, s), t.transform(n[0], n[1], n[2], n[3], n[4], n[5]), t.translate(-a, -s);
}
unapply(t) {
var {
originX: e,
originY: A,
matrix: n
} = this, a = n[0], s = n[2], i = n[4], o = n[1], l = n[3], u = n[5], h = 0, g = 0, c = 1, p = 1 / (a * (l * c - u * g) - s * (o * c - u * h) + i * (o * g - l * h)), m = e.getPixels("x"), y = A.getPixels("y");
t.translate(m, y), t.transform(p * (l * c - u * g), p * (u * h - o * c), p * (i * g - s * c), p * (a * c - i * h), p * (s * u - i * l), p * (i * o - a * u)), t.translate(-m, -y);
}
applyToPoint(t) {
t.applyTransform(this.matrix);
}
}
class Dv extends Qv {
constructor(t, e, A) {
super(t, e, A), this.type = "skew", this.angle = null, this.angle = new AA(t, "angle", e);
}
}
class MC extends Dv {
constructor(t, e, A) {
super(t, e, A), this.type = "skewX", this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0];
}
}
class OC extends Dv {
constructor(t, e, A) {
super(t, e, A), this.type = "skewY", this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0];
}
}
function H8(r) {
return $s(r).trim().replace(/\)([a-zA-Z])/g, ") $1").replace(/\)(\s?,\s?)/g, ") ").split(/\s(?=[a-z])/);
}
function P8(r) {
var [t, e] = r.split("(");
return [t.trim(), e.trim().replace(")", "")];
}
class vs {
constructor(t, e, A) {
this.document = t, this.transforms = [];
var n = H8(e);
n.forEach((a) => {
if (a !== "none") {
var [s, i] = P8(a), o = vs.transformTypes[s];
typeof o < "u" && this.transforms.push(new o(this.document, i, A));
}
});
}
static fromElement(t, e) {
var A = e.getStyle("transform", !1, !0), [n, a = n] = e.getStyle("transform-origin", !1, !0).split(), s = [n, a];
return A.hasValue() ? new vs(t, A.getString(), s) : null;
}
apply(t) {
for (var {
transforms: e
} = this, A = e.length, n = 0; n < A; n++)
e[n].apply(t);
}
unapply(t) {
for (var {
transforms: e
} = this, A = e.length, n = A - 1; n >= 0; n--)
e[n].unapply(t);
}
// TODO: applyToPoint unused ... remove?
applyToPoint(t) {
for (var {
transforms: e
} = this, A = e.length, n = 0; n < A; n++)
e[n].applyToPoint(t);
}
}
vs.transformTypes = {
translate: IC,
rotate: _C,
scale: NC,
matrix: Qv,
skewX: MC,
skewY: OC
};
class gr {
constructor(t, e) {
var A = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1;
if (this.document = t, this.node = e, this.captureTextNodes = A, this.attributes = /* @__PURE__ */ Object.create(null), this.styles = /* @__PURE__ */ Object.create(null), this.stylesSpecificity = /* @__PURE__ */ Object.create(null), this.animationFrozen = !1, this.animationFrozenValue = "", this.parent = null, this.children = [], !(!e || e.nodeType !== 1)) {
if (Array.from(e.attributes).forEach((i) => {
var o = SC(i.nodeName);
this.attributes[o] = new AA(t, o, i.value);
}), this.addStylesFromStyleDefinition(), this.getAttribute("style").hasValue()) {
var n = this.getAttribute("style").getString().split(";").map((i) => i.trim());
n.forEach((i) => {
if (i) {
var [o, l] = i.split(":").map((u) => u.trim());
this.styles[o] = new AA(t, o, l);
}
});
}
var {
definitions: a
} = t, s = this.getAttribute("id");
s.hasValue() && (a[s.getString()] || (a[s.getString()] = this)), Array.from(e.childNodes).forEach((i) => {
if (i.nodeType === 1)
this.addChild(i);
else if (A && (i.nodeType === 3 || i.nodeType === 4)) {
var o = t.createTextNode(i);
o.getText().length > 0 && this.addChild(o);
}
});
}
}
getAttribute(t) {
var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, A = this.attributes[t];
if (!A && e) {
var n = new AA(this.document, t, "");
return this.attributes[t] = n, n;
}
return A || AA.empty(this.document);
}
getHrefAttribute() {
for (var t in this.attributes)
if (t === "href" || t.endsWith(":href"))
return this.attributes[t];
return AA.empty(this.document);
}
getStyle(t) {
var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, A = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1, n = this.styles[t];
if (n)
return n;
var a = this.getAttribute(t);
if (a != null && a.hasValue())
return this.styles[t] = a, a;
if (!A) {
var {
parent: s
} = this;
if (s) {
var i = s.getStyle(t);
if (i != null && i.hasValue())
return i;
}
}
if (e) {
var o = new AA(this.document, t, "");
return this.styles[t] = o, o;
}
return n || AA.empty(this.document);
}
render(t) {
if (!(this.getStyle("display").getString() === "none" || this.getStyle("visibility").getString() === "hidden")) {
if (t.save(), this.getStyle("mask").hasValue()) {
var e = this.getStyle("mask").getDefinition();
e && (this.applyEffects(t), e.apply(t, this));
} else if (this.getStyle("filter").getValue("none") !== "none") {
var A = this.getStyle("filter").getDefinition();
A && (this.applyEffects(t), A.apply(t, this));
} else
this.setContext(t), this.renderChildren(t), this.clearContext(t);
t.restore();
}
}
setContext(t) {
}
applyEffects(t) {
var e = vs.fromElement(this.document, this);
e && e.apply(t);
var A = this.getStyle("clip-path", !1, !0);
if (A.hasValue()) {
var n = A.getDefinition();
n && n.apply(t);
}
}
clearContext(t) {
}
renderChildren(t) {
this.children.forEach((e) => {
e.render(t);
});
}
addChild(t) {
var e = t instanceof gr ? t : this.document.createElement(t);
e.parent = this, gr.ignoreChildTypes.includes(e.type) || this.children.push(e);
}
matchesSelector(t) {
var e, {
node: A
} = this;
if (typeof A.matches == "function")
return A.matches(t);
var n = (e = A.getAttribute) === null || e === void 0 ? void 0 : e.call(A, "class");
return !n || n === "" ? !1 : n.split(" ").some((a) => ".".concat(a) === t);
}
addStylesFromStyleDefinition() {
var {
styles: t,
stylesSpecificity: e
} = this.document;
for (var A in t)
if (!A.startsWith("@") && this.matchesSelector(A)) {
var n = t[A], a = e[A];
if (n)
for (var s in n) {
var i = this.stylesSpecificity[s];
typeof i > "u" && (i = "000"), a >= i && (this.styles[s] = n[s], this.stylesSpecificity[s] = a);
}
}
}
removeStyles(t, e) {
var A = e.reduce((n, a) => {
var s = t.getStyle(a);
if (!s.hasValue())
return n;
var i = s.getString();
return s.setValue(""), [...n, [a, i]];
}, []);
return A;
}
restoreStyles(t, e) {
e.forEach((A) => {
var [n, a] = A;
t.getStyle(n, !0).setValue(a);
});
}
isFirstChild() {
var t;
return ((t = this.parent) === null || t === void 0 ? void 0 : t.children.indexOf(this)) === 0;
}
}
gr.ignoreChildTypes = ["title"];
class RC extends gr {
constructor(t, e, A) {
super(t, e, A);
}
}
function K8(r) {
var t = r.trim();
return /^('|")/.test(t) ? t : '"'.concat(t, '"');
}
function V8(r) {
return typeof process > "u" ? r : r.trim().split(",").map(K8).join(",");
}
function q8(r) {
if (!r)
return "";
var t = r.trim().toLowerCase();
switch (t) {
case "normal":
case "italic":
case "oblique":
case "inherit":
case "initial":
case "unset":
return t;
default:
return /^oblique\s+(-|)\d+deg$/.test(t) ? t : "";
}
}
function j8(r) {
if (!r)
return "";
var t = r.trim().toLowerCase();
switch (t) {
case "normal":
case "bold":
case "lighter":
case "bolder":
case "inherit":
case "initial":
case "unset":
return t;
default:
return /^[\d.]+$/.test(t) ? t : "";
}
}
class Hn {
constructor(t, e, A, n, a, s) {
var i = s ? typeof s == "string" ? Hn.parse(s) : s : {};
this.fontFamily = a || i.fontFamily, this.fontSize = n || i.fontSize, this.fontStyle = t || i.fontStyle, this.fontWeight = A || i.fontWeight, this.fontVariant = e || i.fontVariant;
}
static parse() {
var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", e = arguments.length > 1 ? arguments[1] : void 0, A = "", n = "", a = "", s = "", i = "", o = $s(t).trim().split(" "), l = {
fontSize: !1,
fontStyle: !1,
fontWeight: !1,
fontVariant: !1
};
return o.forEach((u) => {
switch (!0) {
case (!l.fontStyle && Hn.styles.includes(u)):
u !== "inherit" && (A = u), l.fontStyle = !0;
break;
case (!l.fontVariant && Hn.variants.includes(u)):
u !== "inherit" && (n = u), l.fontStyle = !0, l.fontVariant = !0;
break;
case (!l.fontWeight && Hn.weights.includes(u)):
u !== "inherit" && (a = u), l.fontStyle = !0, l.fontVariant = !0, l.fontWeight = !0;
break;
case !l.fontSize:
u !== "inherit" && ([s] = u.split("/")), l.fontStyle = !0, l.fontVariant = !0, l.fontWeight = !0, l.fontSize = !0;
break;
default:
u !== "inherit" && (i += u);
}
}), new Hn(A, n, a, s, i, e);
}
toString() {
return [
q8(this.fontStyle),
this.fontVariant,
j8(this.fontWeight),
this.fontSize,
// Wrap fontFamily only on nodejs and only for canvas.ctx
V8(this.fontFamily)
].join(" ").trim();
}
}
Hn.styles = "normal|italic|oblique|inherit";
Hn.variants = "normal|small-caps|inherit";
Hn.weights = "normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit";
class Oa {
constructor() {
var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Number.NaN, e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Number.NaN, A = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Number.NaN, n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : Number.NaN;
this.x1 = t, this.y1 = e, this.x2 = A, this.y2 = n, this.addPoint(t, e), this.addPoint(A, n);
}
get x() {
return this.x1;
}
get y() {
return this.y1;
}
get width() {
return this.x2 - this.x1;
}
get height() {
return this.y2 - this.y1;
}
addPoint(t, e) {
typeof t < "u" && ((isNaN(this.x1) || isNaN(this.x2)) && (this.x1 = t, this.x2 = t), t < this.x1 && (this.x1 = t), t > this.x2 && (this.x2 = t)), typeof e < "u" && ((isNaN(this.y1) || isNaN(this.y2)) && (this.y1 = e, this.y2 = e), e < this.y1 && (this.y1 = e), e > this.y2 && (this.y2 = e));
}
addX(t) {
this.addPoint(t, null);
}
addY(t) {
this.addPoint(null, t);
}
addBoundingBox(t) {
if (t) {
var {
x1: e,
y1: A,
x2: n,
y2: a
} = t;
this.addPoint(e, A), this.addPoint(n, a);
}
}
sumCubic(t, e, A, n, a) {
return Math.pow(1 - t, 3) * e + 3 * Math.pow(1 - t, 2) * t * A + 3 * (1 - t) * Math.pow(t, 2) * n + Math.pow(t, 3) * a;
}
bezierCurveAdd(t, e, A, n, a) {
var s = 6 * e - 12 * A + 6 * n, i = -3 * e + 9 * A - 9 * n + 3 * a, o = 3 * A - 3 * e;
if (i === 0) {
if (s === 0)
return;
var l = -o / s;
0 < l && l < 1 && (t ? this.addX(this.sumCubic(l, e, A, n, a)) : this.addY(this.sumCubic(l, e, A, n, a)));
return;
}
var u = Math.pow(s, 2) - 4 * o * i;
if (!(u < 0)) {
var h = (-s + Math.sqrt(u)) / (2 * i);
0 < h && h < 1 && (t ? this.addX(this.sumCubic(h, e, A, n, a)) : this.addY(this.sumCubic(h, e, A, n, a)));
var g = (-s - Math.sqrt(u)) / (2 * i);
0 < g && g < 1 && (t ? this.addX(this.sumCubic(g, e, A, n, a)) : this.addY(this.sumCubic(g, e, A, n, a)));
}
}
// from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html
addBezierCurve(t, e, A, n, a, s, i, o) {
this.addPoint(t, e), this.addPoint(i, o), this.bezierCurveAdd(!0, t, A, a, i), this.bezierCurveAdd(!1, e, n, s, o);
}
addQuadraticCurve(t, e, A, n, a, s) {
var i = t + 0.6666666666666666 * (A - t), o = e + 2 / 3 * (n - e), l = i + 1 / 3 * (a - t), u = o + 1 / 3 * (s - e);
this.addBezierCurve(t, e, i, l, o, u, a, s);
}
isPointInBox(t, e) {
var {
x1: A,
y1: n,
x2: a,
y2: s
} = this;
return A <= t && t <= a && n <= e && e <= s;
}
}
class mA extends gt {
constructor(t) {
super(t.replace(/([+\-.])\s+/gm, "$1").replace(/[^MmZzLlHhVvCcSsQqTtAae\d\s.,+-].*/g, "")), this.control = null, this.start = null, this.current = null, this.command = null, this.commands = this.commands, this.i = -1, this.previousCommand = null, this.points = [], this.angles = [];
}
reset() {
this.i = -1, this.command = null, this.previousCommand = null, this.start = new Rr(0, 0), this.control = new Rr(0, 0), this.current = new Rr(0, 0), this.points = [], this.angles = [];
}
isEnd() {
var {
i: t,
commands: e
} = this;
return t >= e.length - 1;
}
next() {
var t = this.commands[++this.i];
return this.previousCommand = this.command, this.command = t, t;
}
getPoint() {
var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "x", e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "y", A = new Rr(this.command[t], this.command[e]);
return this.makeAbsolute(A);
}
getAsControlPoint(t, e) {
var A = this.getPoint(t, e);
return this.control = A, A;
}
getAsCurrentPoint(t, e) {
var A = this.getPoint(t, e);
return this.current = A, A;
}
getReflectedControlPoint() {
var t = this.previousCommand.type;
if (t !== gt.CURVE_TO && t !== gt.SMOOTH_CURVE_TO && t !== gt.QUAD_TO && t !== gt.SMOOTH_QUAD_TO)
return this.current;
var {
current: {
x: e,
y: A
},
control: {
x: n,
y: a
}
} = this, s = new Rr(2 * e - n, 2 * A - a);
return s;
}
makeAbsolute(t) {
if (this.command.relative) {
var {
x: e,
y: A
} = this.current;
t.x += e, t.y += A;
}
return t;
}
addMarker(t, e, A) {
var {
points: n,
angles: a
} = this;
A && a.length > 0 && !a[a.length - 1] && (a[a.length - 1] = n[n.length - 1].angleTo(A)), this.addMarkerAngle(t, e ? e.angleTo(t) : null);
}
addMarkerAngle(t, e) {
this.points.push(t), this.angles.push(e);
}
getMarkerPoints() {
return this.points;
}
getMarkerAngles() {
for (var {
angles: t
} = this, e = t.length, A = 0; A < e; A++)
if (!t[A]) {
for (var n = A + 1; n < e; n++)
if (t[n]) {
t[A] = t[n];
break;
}
}
return t;
}
}
class ws extends gr {
constructor() {
super(...arguments), this.modifiedEmSizeStack = !1;
}
calculateOpacity() {
for (var t = 1, e = this; e; ) {
var A = e.getStyle("opacity", !1, !0);
A.hasValue(!0) && (t *= A.getNumber()), e = e.parent;
}
return t;
}
setContext(t) {
var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1;
if (!e) {
var A = this.getStyle("fill"), n = this.getStyle("fill-opacity"), a = this.getStyle("stroke"), s = this.getStyle("stroke-opacity");
if (A.isUrlDefinition()) {
var i = A.getFillStyleDefinition(this, n);
i && (t.fillStyle = i);
} else if (A.hasValue()) {
A.getString() === "currentColor" && A.setValue(this.getStyle("color").getColor());
var o = A.getColor();
o !== "inherit" && (t.fillStyle = o === "none" ? "rgba(0,0,0,0)" : o);
}
if (n.hasValue()) {
var l = new AA(this.document, "fill", t.fillStyle).addOpacity(n).getColor();
t.fillStyle = l;
}
if (a.isUrlDefinition()) {
var u = a.getFillStyleDefinition(this, s);
u && (t.strokeStyle = u);
} else if (a.hasValue()) {
a.getString() === "currentColor" && a.setValue(this.getStyle("color").getColor());
var h = a.getString();
h !== "inherit" && (t.strokeStyle = h === "none" ? "rgba(0,0,0,0)" : h);
}
if (s.hasValue()) {
var g = new AA(this.document, "stroke", t.strokeStyle).addOpacity(s).getString();
t.strokeStyle = g;
}
var c = this.getStyle("stroke-width");
if (c.hasValue()) {
var p = c.getPixels();
t.lineWidth = p || Ps;
}
var m = this.getStyle("stroke-linecap"), y = this.getStyle("stroke-linejoin"), w = this.getStyle("stroke-miterlimit"), E = this.getStyle("stroke-dasharray"), C = this.getStyle("stroke-dashoffset");
if (m.hasValue() && (t.lineCap = m.getString()), y.hasValue() && (t.lineJoin = y.getString()), w.hasValue() && (t.miterLimit = w.getNumber()), E.hasValue() && E.getString() !== "none") {
var F = ia(E.getString());
typeof t.setLineDash < "u" ? t.setLineDash(F) : typeof t.webkitLineDash < "u" ? t.webkitLineDash = F : typeof t.mozDash < "u" && !(F.length === 1 && F[0] === 0) && (t.mozDash = F);
var H = C.getPixels();
typeof t.lineDashOffset < "u" ? t.lineDashOffset = H : typeof t.webkitLineDashOffset < "u" ? t.webkitLineDashOffset = H : typeof t.mozDashOffset < "u" && (t.mozDashOffset = H);
}
}
if (this.modifiedEmSizeStack = !1, typeof t.font < "u") {
var q = this.getStyle("font"), N = this.getStyle("font-style"), M = this.getStyle("font-variant"), k = this.getStyle("font-weight"), O = this.getStyle("font-size"), S = this.getStyle("font-family"), U = new Hn(N.getString(), M.getString(), k.getString(), O.hasValue() ? "".concat(O.getPixels(!0), "px") : "", S.getString(), Hn.parse(q.getString(), t.font));
N.setValue(U.fontStyle), M.setValue(U.fontVariant), k.setValue(U.fontWeight), O.setValue(U.fontSize), S.setValue(U.fontFamily), t.font = U.toString(), O.isPixels() && (this.document.emSize = O.getPixels(), this.modifiedEmSizeStack = !0);
}
e || (this.applyEffects(t), t.globalAlpha = this.calculateOpacity());
}
clearContext(t) {
super.clearContext(t), this.modifiedEmSizeStack && this.document.popEmSize();
}
}
class XA extends ws {
constructor(t, e, A) {
super(t, e, A), this.type = "path", this.pathParser = null, this.pathParser = new mA(this.getAttribute("d").getString());
}
path(t) {
var {
pathParser: e
} = this, A = new Oa();
for (e.reset(), t && t.beginPath(); !e.isEnd(); )
switch (e.next().type) {
case mA.MOVE_TO:
this.pathM(t, A);
break;
case mA.LINE_TO:
this.pathL(t, A);
break;
case mA.HORIZ_LINE_TO:
this.pathH(t, A);
break;
case mA.VERT_LINE_TO:
this.pathV(t, A);
break;
case mA.CURVE_TO:
this.pathC(t, A);
break;
case mA.SMOOTH_CURVE_TO:
this.pathS(t, A);
break;
case mA.QUAD_TO:
this.pathQ(t, A);
break;
case mA.SMOOTH_QUAD_TO:
this.pathT(t, A);
break;
case mA.ARC:
this.pathA(t, A);
break;
case mA.CLOSE_PATH:
this.pathZ(t, A);
break;
}
return A;
}
getBoundingBox(t) {
return this.path();
}
getMarkers() {
var {
pathParser: t
} = this, e = t.getMarkerPoints(), A = t.getMarkerAngles(), n = e.map((a, s) => [a, A[s]]);
return n;
}
renderChildren(t) {
this.path(t), this.document.screen.mouse.checkPath(this, t);
var e = this.getStyle("fill-rule");
t.fillStyle !== "" && (e.getString("inherit") !== "inherit" ? t.fill(e.getString()) : t.fill()), t.strokeStyle !== "" && (this.getAttribute("vector-effect").getString() === "non-scaling-stroke" ? (t.save(), t.setTransform(1, 0, 0, 1, 0, 0), t.stroke(), t.restore()) : t.stroke());
var A = this.getMarkers();
if (A) {
var n = A.length - 1, a = this.getStyle("marker-start"), s = this.getStyle("marker-mid"), i = this.getStyle("marker-end");
if (a.isUrlDefinition()) {
var o = a.getDefinition(), [l, u] = A[0];
o.render(t, l, u);
}
if (s.isUrlDefinition())
for (var h = s.getDefinition(), g = 1; g < n; g++) {
var [c, p] = A[g];
h.render(t, c, p);
}
if (i.isUrlDefinition()) {
var m = i.getDefinition(), [y, w] = A[n];
m.render(t, y, w);
}
}
}
static pathM(t) {
var e = t.getAsCurrentPoint();
return t.start = t.current, {
point: e
};
}
pathM(t, e) {
var {
pathParser: A
} = this, {
point: n
} = XA.pathM(A), {
x: a,
y: s
} = n;
A.addMarker(n), e.addPoint(a, s), t && t.moveTo(a, s);
}
static pathL(t) {
var {
current: e
} = t, A = t.getAsCurrentPoint();
return {
current: e,
point: A
};
}
pathL(t, e) {
var {
pathParser: A
} = this, {
current: n,
point: a
} = XA.pathL(A), {
x: s,
y: i
} = a;
A.addMarker(a, n), e.addPoint(s, i), t && t.lineTo(s, i);
}
static pathH(t) {
var {
current: e,
command: A
} = t, n = new Rr((A.relative ? e.x : 0) + A.x, e.y);
return t.current = n, {
current: e,
point: n
};
}
pathH(t, e) {
var {
pathParser: A
} = this, {
current: n,
point: a
} = XA.pathH(A), {
x: s,
y: i
} = a;
A.addMarker(a, n), e.addPoint(s, i), t && t.lineTo(s, i);
}
static pathV(t) {
var {
current: e,
command: A
} = t, n = new Rr(e.x, (A.relative ? e.y : 0) + A.y);
return t.current = n, {
current: e,
point: n
};
}
pathV(t, e) {
var {
pathParser: A
} = this, {
current: n,
point: a
} = XA.pathV(A), {
x: s,
y: i
} = a;
A.addMarker(a, n), e.addPoint(s, i), t && t.lineTo(s, i);
}
static pathC(t) {
var {
current: e
} = t, A = t.getPoint("x1", "y1"), n = t.getAsControlPoint("x2", "y2"), a = t.getAsCurrentPoint();
return {
current: e,
point: A,
controlPoint: n,
currentPoint: a
};
}
pathC(t, e) {
var {
pathParser: A
} = this, {
current: n,
point: a,
controlPoint: s,
currentPoint: i
} = XA.pathC(A);
A.addMarker(i, s, a), e.addBezierCurve(n.x, n.y, a.x, a.y, s.x, s.y, i.x, i.y), t && t.bezierCurveTo(a.x, a.y, s.x, s.y, i.x, i.y);
}
static pathS(t) {
var {
current: e
} = t, A = t.getReflectedControlPoint(), n = t.getAsControlPoint("x2", "y2"), a = t.getAsCurrentPoint();
return {
current: e,
point: A,
controlPoint: n,
currentPoint: a
};
}
pathS(t, e) {
var {
pathParser: A
} = this, {
current: n,
point: a,
controlPoint: s,
currentPoint: i
} = XA.pathS(A);
A.addMarker(i, s, a), e.addBezierCurve(n.x, n.y, a.x, a.y, s.x, s.y, i.x, i.y), t && t.bezierCurveTo(a.x, a.y, s.x, s.y, i.x, i.y);
}
static pathQ(t) {
var {
current: e
} = t, A = t.getAsControlPoint("x1", "y1"), n = t.getAsCurrentPoint();
return {
current: e,
controlPoint: A,
currentPoint: n
};
}
pathQ(t, e) {
var {
pathParser: A
} = this, {
current: n,
controlPoint: a,
currentPoint: s
} = XA.pathQ(A);
A.addMarker(s, a, a), e.addQuadraticCurve(n.x, n.y, a.x, a.y, s.x, s.y), t && t.quadraticCurveTo(a.x, a.y, s.x, s.y);
}
static pathT(t) {
var {
current: e
} = t, A = t.getReflectedControlPoint();
t.control = A;
var n = t.getAsCurrentPoint();
return {
current: e,
controlPoint: A,
currentPoint: n
};
}
pathT(t, e) {
var {
pathParser: A
} = this, {
current: n,
controlPoint: a,
currentPoint: s
} = XA.pathT(A);
A.addMarker(s, a, a), e.addQuadraticCurve(n.x, n.y, a.x, a.y, s.x, s.y), t && t.quadraticCurveTo(a.x, a.y, s.x, s.y);
}
static pathA(t) {
var {
current: e,
command: A
} = t, {
rX: n,
rY: a,
xRot: s,
lArcFlag: i,
sweepFlag: o
} = A, l = s * (Math.PI / 180), u = t.getAsCurrentPoint(), h = new Rr(Math.cos(l) * (e.x - u.x) / 2 + Math.sin(l) * (e.y - u.y) / 2, -Math.sin(l) * (e.x - u.x) / 2 + Math.cos(l) * (e.y - u.y) / 2), g = Math.pow(h.x, 2) / Math.pow(n, 2) + Math.pow(h.y, 2) / Math.pow(a, 2);
g > 1 && (n *= Math.sqrt(g), a *= Math.sqrt(g));
var c = (i === o ? -1 : 1) * Math.sqrt((Math.pow(n, 2) * Math.pow(a, 2) - Math.pow(n, 2) * Math.pow(h.y, 2) - Math.pow(a, 2) * Math.pow(h.x, 2)) / (Math.pow(n, 2) * Math.pow(h.y, 2) + Math.pow(a, 2) * Math.pow(h.x, 2)));
isNaN(c) && (c = 0);
var p = new Rr(c * n * h.y / a, c * -a * h.x / n), m = new Rr((e.x + u.x) / 2 + Math.cos(l) * p.x - Math.sin(l) * p.y, (e.y + u.y) / 2 + Math.sin(l) * p.x + Math.cos(l) * p.y), y = Hp([1, 0], [(h.x - p.x) / n, (h.y - p.y) / a]), w = [(h.x - p.x) / n, (h.y - p.y) / a], E = [(-h.x - p.x) / n, (-h.y - p.y) / a], C = Hp(w, E);
return Ec(w, E) <= -1 && (C = Math.PI), Ec(w, E) >= 1 && (C = 0), {
currentPoint: u,
rX: n,
rY: a,
sweepFlag: o,
xAxisRotation: l,
centp: m,
a1: y,
ad: C
};
}
pathA(t, e) {
var {
pathParser: A
} = this, {
currentPoint: n,
rX: a,
rY: s,
sweepFlag: i,
xAxisRotation: o,
centp: l,
a1: u,
ad: h
} = XA.pathA(A), g = 1 - i ? 1 : -1, c = u + g * (h / 2), p = new Rr(l.x + a * Math.cos(c), l.y + s * Math.sin(c));
if (A.addMarkerAngle(p, c - g * Math.PI / 2), A.addMarkerAngle(n, c - g * Math.PI), e.addPoint(n.x, n.y), t && !isNaN(u) && !isNaN(h)) {
var m = a > s ? a : s, y = a > s ? 1 : a / s, w = a > s ? s / a : 1;
t.translate(l.x, l.y), t.rotate(o), t.scale(y, w), t.arc(0, 0, m, u, u + h, !!(1 - i)), t.scale(1 / y, 1 / w), t.rotate(-o), t.translate(-l.x, -l.y);
}
}
static pathZ(t) {
t.current = t.start;
}
pathZ(t, e) {
XA.pathZ(this.pathParser), t && e.x1 !== e.x2 && e.y1 !== e.y2 && t.closePath();
}
}
class kv extends XA {
constructor(t, e, A) {
super(t, e, A), this.type = "glyph", this.horizAdvX = this.getAttribute("horiz-adv-x").getNumber(), this.unicode = this.getAttribute("unicode").getString(), this.arabicForm = this.getAttribute("arabic-form").getString();
}
}
class Oi extends ws {
constructor(t, e, A) {
super(t, e, new.target === Oi ? !0 : A), this.type = "text", this.x = 0, this.y = 0, this.measureCache = -1;
}
setContext(t) {
var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1;
super.setContext(t, e);
var A = this.getStyle("dominant-baseline").getTextBaseline() || this.getStyle("alignment-baseline").getTextBaseline();
A && (t.textBaseline = A);
}
initializeCoordinates() {
this.x = 0, this.y = 0, this.leafTexts = [], this.textChunkStart = 0, this.minX = Number.POSITIVE_INFINITY, this.maxX = Number.NEGATIVE_INFINITY;
}
getBoundingBox(t) {
if (this.type !== "text")
return this.getTElementBoundingBox(t);
this.initializeCoordinates(), this.adjustChildCoordinatesRecursive(t);
var e = null;
return this.children.forEach((A, n) => {
var a = this.getChildBoundingBox(t, this, this, n);
e ? e.addBoundingBox(a) : e = a;
}), e;
}
getFontSize() {
var {
document: t,
parent: e
} = this, A = Hn.parse(t.ctx.font).fontSize, n = e.getStyle("font-size").getNumber(A);
return n;
}
getTElementBoundingBox(t) {
var e = this.getFontSize();
return new Oa(this.x, this.y - e, this.x + this.measureText(t), this.y);
}
getGlyph(t, e, A) {
var n = e[A], a = null;
if (t.isArabic) {
var s = e.length, i = e[A - 1], o = e[A + 1], l = "isolated";
if ((A === 0 || i === " ") && A < s - 1 && o !== " " && (l = "terminal"), A > 0 && i !== " " && A < s - 1 && o !== " " && (l = "medial"), A > 0 && i !== " " && (A === s - 1 || o === " ") && (l = "initial"), typeof t.glyphs[n] < "u") {
var u = t.glyphs[n];
a = u instanceof kv ? u : u[l];
}
} else
a = t.glyphs[n];
return a || (a = t.missingGlyph), a;
}
getText() {
return "";
}
getTextFromNode(t) {
var e = t || this.node, A = Array.from(e.parentNode.childNodes), n = A.indexOf(e), a = A.length - 1, s = $s(
// textNode.value
// || textNode.text
e.textContent || ""
);
return n === 0 && (s = FC(s)), n === a && (s = xC(s)), s;
}
renderChildren(t) {
if (this.type !== "text") {
this.renderTElementChildren(t);
return;
}
this.initializeCoordinates(), this.adjustChildCoordinatesRecursive(t), this.children.forEach((A, n) => {
this.renderChild(t, this, this, n);
});
var {
mouse: e
} = this.document.screen;
e.isWorking() && e.checkBoundingBox(this, this.getBoundingBox(t));
}
renderTElementChildren(t) {
var {
document: e,
parent: A
} = this, n = this.getText(), a = A.getStyle("font-family").getDefinition();
if (a) {
for (var {
unitsPerEm: s
} = a.fontFace, i = Hn.parse(e.ctx.font), o = A.getStyle("font-size").getNumber(i.fontSize), l = A.getStyle("font-style").getString(i.fontStyle), u = o / s, h = a.isRTL ? n.split("").reverse().join("") : n, g = ia(A.getAttribute("dx").getString()), c = h.length, p = 0; p < c; p++) {
var m = this.getGlyph(a, h, p);
t.translate(this.x, this.y), t.scale(u, -u);
var y = t.lineWidth;
t.lineWidth = t.lineWidth * s / o, l === "italic" && t.transform(1, 0, 0.4, 1, 0, 0), m.render(t), l === "italic" && t.transform(1, 0, -0.4, 1, 0, 0), t.lineWidth = y, t.scale(1 / u, -1 / u), t.translate(-this.x, -this.y), this.x += o * (m.horizAdvX || a.horizAdvX) / s, typeof g[p] < "u" && !isNaN(g[p]) && (this.x += g[p]);
}
return;
}
var {
x: w,
y: E
} = this;
t.fillStyle && t.fillText(n, w, E), t.strokeStyle && t.strokeText(n, w, E);
}
applyAnchoring() {
if (!(this.textChunkStart >= this.leafTexts.length)) {
var t = this.leafTexts[this.textChunkStart], e = t.getStyle("text-anchor").getString("start"), A = !1, n = 0;
e === "start" && !A || e === "end" && A ? n = t.x - this.minX : e === "end" && !A || e === "start" && A ? n = t.x - this.maxX : n = t.x - (this.minX + this.maxX) / 2;
for (var a = this.textChunkStart; a < this.leafTexts.length; a++)
this.leafTexts[a].x += n;
this.minX = Number.POSITIVE_INFINITY, this.maxX = Number.NEGATIVE_INFINITY, this.textChunkStart = this.leafTexts.length;
}
}
adjustChildCoordinatesRecursive(t) {
this.children.forEach((e, A) => {
this.adjustChildCoordinatesRecursiveCore(t, this, this, A);
}), this.applyAnchoring();
}
adjustChildCoordinatesRecursiveCore(t, e, A, n) {
var a = A.children[n];
a.children.length > 0 ? a.children.forEach((s, i) => {
e.adjustChildCoordinatesRecursiveCore(t, e, a, i);
}) : this.adjustChildCoordinates(t, e, A, n);
}
adjustChildCoordinates(t, e, A, n) {
var a = A.children[n];
if (typeof a.measureText != "function")
return a;
t.save(), a.setContext(t, !0);
var s = a.getAttribute("x"), i = a.getAttribute("y"), o = a.getAttribute("dx"), l = a.getAttribute("dy"), u = a.getStyle("font-family").getDefinition(), h = !!u && u.isRTL;
n === 0 && (s.hasValue() || s.setValue(a.getInheritedAttribute("x")), i.hasValue() || i.setValue(a.getInheritedAttribute("y")), o.hasValue() || o.setValue(a.getInheritedAttribute("dx")), l.hasValue() || l.setValue(a.getInheritedAttribute("dy")));
var g = a.measureText(t);
return h && (e.x -= g), s.hasValue() ? (e.applyAnchoring(), a.x = s.getPixels("x"), o.hasValue() && (a.x += o.getPixels("x"))) : (o.hasValue() && (e.x += o.getPixels("x")), a.x = e.x), e.x = a.x, h || (e.x += g), i.hasValue() ? (a.y = i.getPixels("y"), l.hasValue() && (a.y += l.getPixels("y"))) : (l.hasValue() && (e.y += l.getPixels("y")), a.y = e.y), e.y = a.y, e.leafTexts.push(a), e.minX = Math.min(e.minX, a.x, a.x + g), e.maxX = Math.max(e.maxX, a.x, a.x + g), a.clearContext(t), t.restore(), a;
}
getChildBoundingBox(t, e, A, n) {
var a = A.children[n];
if (typeof a.getBoundingBox != "function")
return null;
var s = a.getBoundingBox(t);
return s ? (a.children.forEach((i, o) => {
var l = e.getChildBoundingBox(t, e, a, o);
s.addBoundingBox(l);
}), s) : null;
}
renderChild(t, e, A, n) {
var a = A.children[n];
a.render(t), a.children.forEach((s, i) => {
e.renderChild(t, e, a, i);
});
}
measureText(t) {
var {
measureCache: e
} = this;
if (~e)
return e;
var A = this.getText(), n = this.measureTargetText(t, A);
return this.measureCache = n, n;
}
measureTargetText(t, e) {
if (!e.length)
return 0;
var {
parent: A
} = this, n = A.getStyle("font-family").getDefinition();
if (n) {
for (var a = this.getFontSize(), s = n.isRTL ? e.split("").reverse().join("") : e, i = ia(A.getAttribute("dx").getString()), o = s.length, l = 0, u = 0; u < o; u++) {
var h = this.getGlyph(n, s, u);
l += (h.horizAdvX || n.horizAdvX) * a / n.fontFace.unitsPerEm, typeof i[u] < "u" && !isNaN(i[u]) && (l += i[u]);
}
return l;
}
if (!t.measureText)
return e.length * 10;
t.save(), this.setContext(t, !0);
var {
width: g
} = t.measureText(e);
return this.clearContext(t), t.restore(), g;
}
/**
* Inherits positional attributes from {@link TextElement} parent(s). Attributes
* are only inherited from a parent to its first child.
* @param name - The attribute name.
* @returns The attribute value or null.
*/
getInheritedAttribute(t) {
for (var e = this; e instanceof Oi && e.isFirstChild(); ) {
var A = e.parent.getAttribute(t);
if (A.hasValue(!0))
return A.getValue("0");
e = e.parent;
}
return null;
}
}
class Hl extends Oi {
constructor(t, e, A) {
super(t, e, new.target === Hl ? !0 : A), this.type = "tspan", this.text = this.children.length > 0 ? "" : this.getTextFromNode();
}
getText() {
return this.text;
}
}
class W8 extends Hl {
constructor() {
super(...arguments), this.type = "textNode";
}
}
class No extends ws {
constructor() {
super(...arguments), this.type = "svg", this.root = !1;
}
setContext(t) {
var e, {
document: A
} = this, {
screen: n,
window: a
} = A, s = t.canvas;
if (n.setDefaults(t), s.style && typeof t.font < "u" && a && typeof a.getComputedStyle < "u") {
t.font = a.getComputedStyle(s).getPropertyValue("font");
var i = new AA(A, "fontSize", Hn.parse(t.font).fontSize);
i.hasValue() && (A.rootEmSize = i.getPixels("y"), A.emSize = A.rootEmSize);
}
this.getAttribute("x").hasValue() || this.getAttribute("x", !0).setValue(0), this.getAttribute("y").hasValue() || this.getAttribute("y", !0).setValue(0);
var {
width: o,
height: l
} = n.viewPort;
this.getStyle("width").hasValue() || this.getStyle("width", !0).setValue("100%"), this.getStyle("height").hasValue() || this.getStyle("height", !0).setValue("100%"), this.getStyle("color").hasValue() || this.getStyle("color", !0).setValue("black");
var u = this.getAttribute("refX"), h = this.getAttribute("refY"), g = this.getAttribute("viewBox"), c = g.hasValue() ? ia(g.getString()) : null, p = !this.root && this.getStyle("overflow").getValue("hidden") !== "visible", m = 0, y = 0, w = 0, E = 0;
c && (m = c[0], y = c[1]), this.root || (o = this.getStyle("width").getPixels("x"), l = this.getStyle("height").getPixels("y"), this.type === "marker" && (w = m, E = y, m = 0, y = 0)), n.viewPort.setCurrent(o, l), this.node && (!this.parent || ((e = this.node.parentNode) === null || e === void 0 ? void 0 : e.nodeName) === "foreignObject") && this.getStyle("transform", !1, !0).hasValue() && !this.getStyle("transform-origin", !1, !0).hasValue() && this.getStyle("transform-origin", !0, !0).setValue("50% 50%"), super.setContext(t), t.translate(this.getAttribute("x").getPixels("x"), this.getAttribute("y").getPixels("y")), c && (o = c[2], l = c[3]), A.setViewBox({
ctx: t,
aspectRatio: this.getAttribute("preserveAspectRatio").getString(),
width: n.viewPort.width,
desiredWidth: o,
height: n.viewPort.height,
desiredHeight: l,
minX: m,
minY: y,
refX: u.getValue(),
refY: h.getValue(),
clip: p,
clipX: w,
clipY: E
}), c && (n.viewPort.removeCurrent(), n.viewPort.setCurrent(o, l));
}
clearContext(t) {
super.clearContext(t), this.document.screen.viewPort.removeCurrent();
}
/**
* Resize SVG to fit in given size.
* @param width
* @param height
* @param preserveAspectRatio
*/
resize(t) {
var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : t, A = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1, n = this.getAttribute("width", !0), a = this.getAttribute("height", !0), s = this.getAttribute("viewBox"), i = this.getAttribute("style"), o = n.getNumber(0), l = a.getNumber(0);
if (A)
if (typeof A == "string")
this.getAttribute("preserveAspectRatio", !0).setValue(A);
else {
var u = this.getAttribute("preserveAspectRatio");
u.hasValue() && u.setValue(u.getString().replace(/^\s*(\S.*\S)\s*$/, "$1"));
}
if (n.setValue(t), a.setValue(e), s.hasValue() || s.setValue("0 0 ".concat(o || t, " ").concat(l || e)), i.hasValue()) {
var h = this.getStyle("width"), g = this.getStyle("height");
h.hasValue() && h.setValue("".concat(t, "px")), g.hasValue() && g.setValue("".concat(e, "px"));
}
}
}
class Lv extends XA {
constructor() {
super(...arguments), this.type = "rect";
}
path(t) {
var e = this.getAttribute("x").getPixels("x"), A = this.getAttribute("y").getPixels("y"), n = this.getStyle("width", !1, !0).getPixels("x"), a = this.getStyle("height", !1, !0).getPixels("y"), s = this.getAttribute("rx"), i = this.getAttribute("ry"), o = s.getPixels("x"), l = i.getPixels("y");
if (s.hasValue() && !i.hasValue() && (l = o), i.hasValue() && !s.hasValue() && (o = l), o = Math.min(o, n / 2), l = Math.min(l, a / 2), t) {
var u = 4 * ((Math.sqrt(2) - 1) / 3);
t.beginPath(), a > 0 && n > 0 && (t.moveTo(e + o, A), t.lineTo(e + n - o, A), t.bezierCurveTo(e + n - o + u * o, A, e + n, A + l - u * l, e + n, A + l), t.lineTo(e + n, A + a - l), t.bezierCurveTo(e + n, A + a - l + u * l, e + n - o + u * o, A + a, e + n - o, A + a), t.lineTo(e + o, A + a), t.bezierCurveTo(e + o - u * o, A + a, e, A + a - l + u * l, e, A + a - l), t.lineTo(e, A + l), t.bezierCurveTo(e, A + l - u * l, e + o - u * o, A, e + o, A), t.closePath());
}
return new Oa(e, A, e + n, A + a);
}
getMarkers() {
return null;
}
}
class HC extends XA {
constructor() {
super(...arguments), this.type = "circle";
}
path(t) {
var e = this.getAttribute("cx").getPixels("x"), A = this.getAttribute("cy").getPixels("y"), n = this.getAttribute("r").getPixels();
return t && n > 0 && (t.beginPath(), t.arc(e, A, n, 0, Math.PI * 2, !1), t.closePath()), new Oa(e - n, A - n, e + n, A + n);
}
getMarkers() {
return null;
}
}
class PC extends XA {
constructor() {
super(...arguments), this.type = "ellipse";
}
path(t) {
var e = 4 * ((Math.sqrt(2) - 1) / 3), A = this.getAttribute("rx").getPixels("x"), n = this.getAttribute("ry").getPixels("y"), a = this.getAttribute("cx").getPixels("x"), s = this.getAttribute("cy").getPixels("y");
return t && A > 0 && n > 0 && (t.beginPath(), t.moveTo(a + A, s), t.bezierCurveTo(a + A, s + e * n, a + e * A, s + n, a, s + n), t.bezierCurveTo(a - e * A, s + n, a - A, s + e * n, a - A, s), t.bezierCurveTo(a - A, s - e * n, a - e * A, s - n, a, s - n), t.bezierCurveTo(a + e * A, s - n, a + A, s - e * n, a + A, s), t.closePath()), new Oa(a - A, s - n, a + A, s + n);
}
getMarkers() {
return null;
}
}
class KC extends XA {
constructor() {
super(...arguments), this.type = "line";
}
getPoints() {
return [new Rr(this.getAttribute("x1").getPixels("x"), this.getAttribute("y1").getPixels("y")), new Rr(this.getAttribute("x2").getPixels("x"), this.getAttribute("y2").getPixels("y"))];
}
path(t) {
var [{
x: e,
y: A
}, {
x: n,
y: a
}] = this.getPoints();
return t && (t.beginPath(), t.moveTo(e, A), t.lineTo(n, a)), new Oa(e, A, n, a);
}
getMarkers() {
var [t, e] = this.getPoints(), A = t.angleTo(e);
return [[t, A], [e, A]];
}
}
class Iv extends XA {
constructor(t, e, A) {
super(t, e, A), this.type = "polyline", this.points = [], this.points = Rr.parsePath(this.getAttribute("points").getString());
}
path(t) {
var {
points: e
} = this, [{
x: A,
y: n
}] = e, a = new Oa(A, n);
return t && (t.beginPath(), t.moveTo(A, n)), e.forEach((s) => {
var {
x: i,
y: o
} = s;
a.addPoint(i, o), t && t.lineTo(i, o);
}), a;
}
getMarkers() {
var {
points: t
} = this, e = t.length - 1, A = [];
return t.forEach((n, a) => {
a !== e && A.push([n, n.angleTo(t[a + 1])]);
}), A.length > 0 && A.push([t[t.length - 1], A[A.length - 1][1]]), A;
}
}
class VC extends Iv {
constructor() {
super(...arguments), this.type = "polygon";
}
path(t) {
var e = super.path(t), [{
x: A,
y: n
}] = this.points;
return t && (t.lineTo(A, n), t.closePath()), e;
}
}
class qC extends gr {
constructor() {
super(...arguments), this.type = "pattern";
}
createPattern(t, e, A) {
var n = this.getStyle("width").getPixels("x", !0), a = this.getStyle("height").getPixels("y", !0), s = new No(this.document, null);
s.attributes.viewBox = new AA(this.document, "viewBox", this.getAttribute("viewBox").getValue()), s.attributes.width = new AA(this.document, "width", "".concat(n, "px")), s.attributes.height = new AA(this.document, "height", "".concat(a, "px")), s.attributes.transform = new AA(this.document, "transform", this.getAttribute("patternTransform").getValue()), s.children = this.children;
var i = this.document.createCanvas(n, a), o = i.getContext("2d"), l = this.getAttribute("x"), u = this.getAttribute("y");
l.hasValue() && u.hasValue() && o.translate(l.getPixels("x", !0), u.getPixels("y", !0)), A.hasValue() ? this.styles["fill-opacity"] = A : Reflect.deleteProperty(this.styles, "fill-opacity");
for (var h = -1; h <= 1; h++)
for (var g = -1; g <= 1; g++)
o.save(), s.attributes.x = new AA(this.document, "x", h * i.width), s.attributes.y = new AA(this.document, "y", g * i.height), s.render(o), o.restore();
var c = t.createPattern(i, "repeat");
return c;
}
}
class jC extends gr {
constructor() {
super(...arguments), this.type = "marker";
}
render(t, e, A) {
if (e) {
var {
x: n,
y: a
} = e, s = this.getAttribute("orient").getString("auto"), i = this.getAttribute("markerUnits").getString("strokeWidth");
t.translate(n, a), s === "auto" && t.rotate(A), i === "strokeWidth" && t.scale(t.lineWidth, t.lineWidth), t.save();
var o = new No(this.document, null);
o.type = this.type, o.attributes.viewBox = new AA(this.document, "viewBox", this.getAttribute("viewBox").getValue()), o.attributes.refX = new AA(this.document, "refX", this.getAttribute("refX").getValue()), o.attributes.refY = new AA(this.document, "refY", this.getAttribute("refY").getValue()), o.attributes.width = new AA(this.document, "width", this.getAttribute("markerWidth").getValue()), o.attributes.height = new AA(this.document, "height", this.getAttribute("markerHeight").getValue()), o.attributes.overflow = new AA(this.document, "overflow", this.getAttribute("overflow").getValue()), o.attributes.fill = new AA(this.document, "fill", this.getAttribute("fill").getColor("black")), o.attributes.stroke = new AA(this.document, "stroke", this.getAttribute("stroke").getValue("none")), o.children = this.children, o.render(t), t.restore(), i === "strokeWidth" && t.scale(1 / t.lineWidth, 1 / t.lineWidth), s === "auto" && t.rotate(-A), t.translate(-n, -a);
}
}
}
class WC extends gr {
constructor() {
super(...arguments), this.type = "defs";
}
render() {
}
}
class Jc extends ws {
constructor() {
super(...arguments), this.type = "g";
}
getBoundingBox(t) {
var e = new Oa();
return this.children.forEach((A) => {
e.addBoundingBox(A.getBoundingBox(t));
}), e;
}
}
class _v extends gr {
constructor(t, e, A) {
super(t, e, A), this.attributesToInherit = ["gradientUnits"], this.stops = [];
var {
stops: n,
children: a
} = this;
a.forEach((s) => {
s.type === "stop" && n.push(s);
});
}
getGradientUnits() {
return this.getAttribute("gradientUnits").getString("objectBoundingBox");
}
createGradient(t, e, A) {
var n = this;
this.getHrefAttribute().hasValue() && (n = this.getHrefAttribute().getDefinition(), this.inheritStopContainer(n));
var {
stops: a
} = n, s = this.getGradient(t, e);
if (!s)
return this.addParentOpacity(A, a[a.length - 1].color);
if (a.forEach((y) => {
s.addColorStop(y.offset, this.addParentOpacity(A, y.color));
}), this.getAttribute("gradientTransform").hasValue()) {
var {
document: i
} = this, {
MAX_VIRTUAL_PIXELS: o,
viewPort: l
} = i.screen, [u] = l.viewPorts, h = new Lv(i, null);
h.attributes.x = new AA(i, "x", -o / 3), h.attributes.y = new AA(i, "y", -o / 3), h.attributes.width = new AA(i, "width", o), h.attributes.height = new AA(i, "height", o);
var g = new Jc(i, null);
g.attributes.transform = new AA(i, "transform", this.getAttribute("gradientTransform").getValue()), g.children = [h];
var c = new No(i, null);
c.attributes.x = new AA(i, "x", 0), c.attributes.y = new AA(i, "y", 0), c.attributes.width = new AA(i, "width", u.width), c.attributes.height = new AA(i, "height", u.height), c.children = [g];
var p = i.createCanvas(u.width, u.height), m = p.getContext("2d");
return m.fillStyle = s, c.render(m), m.createPattern(p, "no-repeat");
}
return s;
}
inheritStopContainer(t) {
this.attributesToInherit.forEach((e) => {
!this.getAttribute(e).hasValue() && t.getAttribute(e).hasValue() && this.getAttribute(e, !0).setValue(t.getAttribute(e).getValue());
});
}
addParentOpacity(t, e) {
if (t.hasValue()) {
var A = new AA(this.document, "color", e);
return A.addOpacity(t).getColor();
}
return e;
}
}
class GC extends _v {
constructor(t, e, A) {
super(t, e, A), this.type = "linearGradient", this.attributesToInherit.push("x1", "y1", "x2", "y2");
}
getGradient(t, e) {
var A = this.getGradientUnits() === "objectBoundingBox", n = A ? e.getBoundingBox(t) : null;
if (A && !n)
return null;
!this.getAttribute("x1").hasValue() && !this.getAttribute("y1").hasValue() && !this.getAttribute("x2").hasValue() && !this.getAttribute("y2").hasValue() && (this.getAttribute("x1", !0).setValue(0), this.getAttribute("y1", !0).setValue(0), this.getAttribute("x2", !0).setValue(1), this.getAttribute("y2", !0).setValue(0));
var a = A ? n.x + n.width * this.getAttribute("x1").getNumber() : this.getAttribute("x1").getPixels("x"), s = A ? n.y + n.height * this.getAttribute("y1").getNumber() : this.getAttribute("y1").getPixels("y"), i = A ? n.x + n.width * this.getAttribute("x2").getNumber() : this.getAttribute("x2").getPixels("x"), o = A ? n.y + n.height * this.getAttribute("y2").getNumber() : this.getAttribute("y2").getPixels("y");
return a === i && s === o ? null : t.createLinearGradient(a, s, i, o);
}
}
class YC extends _v {
constructor(t, e, A) {
super(t, e, A), this.type = "radialGradient", this.attributesToInherit.push("cx", "cy", "r", "fx", "fy", "fr");
}
getGradient(t, e) {
var A = this.getGradientUnits() === "objectBoundingBox", n = e.getBoundingBox(t);
if (A && !n)
return null;
this.getAttribute("cx").hasValue() || this.getAttribute("cx", !0).setValue("50%"), this.getAttribute("cy").hasValue() || this.getAttribute("cy", !0).setValue("50%"), this.getAttribute("r").hasValue() || this.getAttribute("r", !0).setValue("50%");
var a = A ? n.x + n.width * this.getAttribute("cx").getNumber() : this.getAttribute("cx").getPixels("x"), s = A ? n.y + n.height * this.getAttribute("cy").getNumber() : this.getAttribute("cy").getPixels("y"), i = a, o = s;
this.getAttribute("fx").hasValue() && (i = A ? n.x + n.width * this.getAttribute("fx").getNumber() : this.getAttribute("fx").getPixels("x")), this.getAttribute("fy").hasValue() && (o = A ? n.y + n.height * this.getAttribute("fy").getNumber() : this.getAttribute("fy").getPixels("y"));
var l = A ? (n.width + n.height) / 2 * this.getAttribute("r").getNumber() : this.getAttribute("r").getPixels(), u = this.getAttribute("fr").getPixels();
return t.createRadialGradient(i, o, u, a, s, l);
}
}
class $C extends gr {
constructor(t, e, A) {
super(t, e, A), this.type = "stop";
var n = Math.max(0, Math.min(1, this.getAttribute("offset").getNumber())), a = this.getStyle("stop-opacity"), s = this.getStyle("stop-color", !0);
s.getString() === "" && s.setValue("#000"), a.hasValue() && (s = s.addOpacity(a)), this.offset = n, this.color = s.getColor();
}
}
class Zc extends gr {
constructor(t, e, A) {
super(t, e, A), this.type = "animate", this.duration = 0, this.initialValue = null, this.initialUnits = "", this.removed = !1, this.frozen = !1, t.screen.animations.push(this), this.begin = this.getAttribute("begin").getMilliseconds(), this.maxDuration = this.begin + this.getAttribute("dur").getMilliseconds(), this.from = this.getAttribute("from"), this.to = this.getAttribute("to"), this.values = new AA(t, "values", null);
var n = this.getAttribute("values");
n.hasValue() && this.values.setValue(n.getString().split(";"));
}
getProperty() {
var t = this.getAttribute("attributeType").getString(), e = this.getAttribute("attributeName").getString();
return t === "CSS" ? this.parent.getStyle(e, !0) : this.parent.getAttribute(e, !0);
}
calcValue() {
var {
initialUnits: t
} = this, {
progress: e,
from: A,
to: n
} = this.getProgress(), a = A.getNumber() + (n.getNumber() - A.getNumber()) * e;
return t === "%" && (a *= 100), "".concat(a).concat(t);
}
update(t) {
var {
parent: e
} = this, A = this.getProperty();
if (this.initialValue || (this.initialValue = A.getString(), this.initialUnits = A.getUnits()), this.duration > this.maxDuration) {
var n = this.getAttribute("fill").getString("remove");
if (this.getAttribute("repeatCount").getString() === "indefinite" || this.getAttribute("repeatDur").getString() === "indefinite")
this.duration = 0;
else if (n === "freeze" && !this.frozen)
this.frozen = !0, e.animationFrozen = !0, e.animationFrozenValue = A.getString();
else if (n === "remove" && !this.removed)
return this.removed = !0, A.setValue(e.animationFrozen ? e.animationFrozenValue : this.initialValue), !0;
return !1;
}
this.duration += t;
var a = !1;
if (this.begin < this.duration) {
var s = this.calcValue(), i = this.getAttribute("type");
if (i.hasValue()) {
var o = i.getString();
s = "".concat(o, "(").concat(s, ")");
}
A.setValue(s), a = !0;
}
return a;
}
getProgress() {
var {
document: t,
values: e
} = this, A = {
progress: (this.duration - this.begin) / (this.maxDuration - this.begin)
};
if (e.hasValue()) {
var n = A.progress * (e.getValue().length - 1), a = Math.floor(n), s = Math.ceil(n);
A.from = new AA(t, "from", parseFloat(e.getValue()[a])), A.to = new AA(t, "to", parseFloat(e.getValue()[s])), A.progress = (n - a) / (s - a);
} else
A.from = this.from, A.to = this.to;
return A;
}
}
class zC extends Zc {
constructor() {
super(...arguments), this.type = "animateColor";
}
calcValue() {
var {
progress: t,
from: e,
to: A
} = this.getProgress(), n = new Mp(e.getColor()), a = new Mp(A.getColor());
if (n.ok && a.ok) {
var s = n.r + (a.r - n.r) * t, i = n.g + (a.g - n.g) * t, o = n.b + (a.b - n.b) * t;
return "rgb(".concat(Math.floor(s), ", ").concat(Math.floor(i), ", ").concat(Math.floor(o), ")");
}
return this.getAttribute("from").getColor();
}
}
class XC extends Zc {
constructor() {
super(...arguments), this.type = "animateTransform";
}
calcValue() {
var {
progress: t,
from: e,
to: A
} = this.getProgress(), n = ia(e.getString()), a = ia(A.getString()), s = n.map((i, o) => {
var l = a[o];
return i + (l - i) * t;
}).join(" ");
return s;
}
}
class JC extends gr {
constructor(t, e, A) {
super(t, e, A), this.type = "font", this.glyphs = /* @__PURE__ */ Object.create(null), this.horizAdvX = this.getAttribute("horiz-adv-x").getNumber();
var {
definitions: n
} = t, {
children: a
} = this;
for (var s of a)
switch (s.type) {
case "font-face": {
this.fontFace = s;
var i = s.getStyle("font-family");
i.hasValue() && (n[i.getString()] = this);
break;
}
case "missing-glyph":
this.missingGlyph = s;
break;
case "glyph": {
var o = s;
o.arabicForm ? (this.isRTL = !0, this.isArabic = !0, typeof this.glyphs[o.unicode] > "u" && (this.glyphs[o.unicode] = /* @__PURE__ */ Object.create(null)), this.glyphs[o.unicode][o.arabicForm] = o) : this.glyphs[o.unicode] = o;
break;
}
}
}
render() {
}
}
class ZC extends gr {
constructor(t, e, A) {
super(t, e, A), this.type = "font-face", this.ascent = this.getAttribute("ascent").getNumber(), this.descent = this.getAttribute("descent").getNumber(), this.unitsPerEm = this.getAttribute("units-per-em").getNumber();
}
}
class e4 extends XA {
constructor() {
super(...arguments), this.type = "missing-glyph", this.horizAdvX = 0;
}
}
class t4 extends Oi {
constructor() {
super(...arguments), this.type = "tref";
}
getText() {
var t = this.getHrefAttribute().getDefinition();
if (t) {
var e = t.children[0];
if (e)
return e.getText();
}
return "";
}
}
class A4 extends Oi {
constructor(t, e, A) {
super(t, e, A), this.type = "a";
var {
childNodes: n
} = e, a = n[0], s = n.length > 0 && Array.from(n).every((i) => i.nodeType === 3);
this.hasText = s, this.text = s ? this.getTextFromNode(a) : "";
}
getText() {
return this.text;
}
renderChildren(t) {
if (this.hasText) {
super.renderChildren(t);
var {
document: e,
x: A,
y: n
} = this, {
mouse: a
} = e.screen, s = new AA(e, "fontSize", Hn.parse(e.ctx.font).fontSize);
a.isWorking() && a.checkBoundingBox(this, new Oa(A, n - s.getPixels("y"), A + this.measureText(t), n));
} else if (this.children.length > 0) {
var i = new Jc(this.document, null);
i.children = this.children, i.parent = this, i.render(t);
}
}
onClick() {
var {
window: t
} = this.document;
t && t.open(this.getHrefAttribute().getString());
}
onMouseMove() {
var t = this.document.ctx;
t.canvas.style.cursor = "pointer";
}
}
function Iy(r, t) {
var e = Object.keys(r);
if (Object.getOwnPropertySymbols) {
var A = Object.getOwnPropertySymbols(r);
t && (A = A.filter(function(n) {
return Object.getOwnPropertyDescriptor(r, n).enumerable;
})), e.push.apply(e, A);
}
return e;
}
function Vu(r) {
for (var t = 1; t < arguments.length; t++) {
var e = arguments[t] != null ? arguments[t] : {};
t % 2 ? Iy(Object(e), !0).forEach(function(A) {
Uv(r, A, e[A]);
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(e)) : Iy(Object(e)).forEach(function(A) {
Object.defineProperty(r, A, Object.getOwnPropertyDescriptor(e, A));
});
}
return r;
}
class r4 extends Oi {
constructor(t, e, A) {
super(t, e, A), this.type = "textPath", this.textWidth = 0, this.textHeight = 0, this.pathLength = -1, this.glyphInfo = null, this.letterSpacingCache = [], this.measuresCache = /* @__PURE__ */ new Map([["", 0]]);
var n = this.getHrefAttribute().getDefinition();
this.text = this.getTextFromNode(), this.dataArray = this.parsePathData(n);
}
getText() {
return this.text;
}
path(t) {
var {
dataArray: e
} = this;
t && t.beginPath(), e.forEach((A) => {
var {
type: n,
points: a
} = A;
switch (n) {
case mA.LINE_TO:
t && t.lineTo(a[0], a[1]);
break;
case mA.MOVE_TO:
t && t.moveTo(a[0], a[1]);
break;
case mA.CURVE_TO:
t && t.bezierCurveTo(a[0], a[1], a[2], a[3], a[4], a[5]);
break;
case mA.QUAD_TO:
t && t.quadraticCurveTo(a[0], a[1], a[2], a[3]);
break;
case mA.ARC: {
var [s, i, o, l, u, h, g, c] = a, p = o > l ? o : l, m = o > l ? 1 : o / l, y = o > l ? l / o : 1;
t && (t.translate(s, i), t.rotate(g), t.scale(m, y), t.arc(0, 0, p, u, u + h, !!(1 - c)), t.scale(1 / m, 1 / y), t.rotate(-g), t.translate(-s, -i));
break;
}
case mA.CLOSE_PATH:
t && t.closePath();
break;
}
});
}
renderChildren(t) {
this.setTextData(t), t.save();
var e = this.parent.getStyle("text-decoration").getString(), A = this.getFontSize(), {
glyphInfo: n
} = this, a = t.fillStyle;
e === "underline" && t.beginPath(), n.forEach((s, i) => {
var {
p0: o,
p1: l,
rotation: u,
text: h
} = s;
t.save(), t.translate(o.x, o.y), t.rotate(u), t.fillStyle && t.fillText(h, 0, 0), t.strokeStyle && t.strokeText(h, 0, 0), t.restore(), e === "underline" && (i === 0 && t.moveTo(o.x, o.y + A / 8), t.lineTo(l.x, l.y + A / 5));
}), e === "underline" && (t.lineWidth = A / 20, t.strokeStyle = a, t.stroke(), t.closePath()), t.restore();
}
getLetterSpacingAt() {
var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
return this.letterSpacingCache[t] || 0;
}
findSegmentToFitChar(t, e, A, n, a, s, i, o, l) {
var u = s, h = this.measureText(t, o);
o === " " && e === "justify" && A < n && (h += (n - A) / a), l > -1 && (u += this.getLetterSpacingAt(l));
var g = this.textHeight / 20, c = this.getEquidistantPointOnPath(u, g, 0), p = this.getEquidistantPointOnPath(u + h, g, 0), m = {
p0: c,
p1: p
}, y = c && p ? Math.atan2(p.y - c.y, p.x - c.x) : 0;
if (i) {
var w = Math.cos(Math.PI / 2 + y) * i, E = Math.cos(-y) * i;
m.p0 = Vu(Vu({}, c), {}, {
x: c.x + w,
y: c.y + E
}), m.p1 = Vu(Vu({}, p), {}, {
x: p.x + w,
y: p.y + E
});
}
return u += h, {
offset: u,
segment: m,
rotation: y
};
}
measureText(t, e) {
var {
measuresCache: A
} = this, n = e || this.getText();
if (A.has(n))
return A.get(n);
var a = this.measureTargetText(t, n);
return A.set(n, a), a;
}
// This method supposes what all custom fonts already loaded.
// If some font will be loaded after this method call, <textPath> will not be rendered correctly.
// You need to call this method manually to update glyphs cache.
setTextData(t) {
if (!this.glyphInfo) {
var e = this.getText(), A = e.split(""), n = e.split(" ").length - 1, a = this.parent.getAttribute("dx").split().map((F) => F.getPixels("x")), s = this.parent.getAttribute("dy").getPixels("y"), i = this.parent.getStyle("text-anchor").getString("start"), o = this.getStyle("letter-spacing"), l = this.parent.getStyle("letter-spacing"), u = 0;
!o.hasValue() || o.getValue() === "inherit" ? u = l.getPixels() : o.hasValue() && o.getValue() !== "initial" && o.getValue() !== "unset" && (u = o.getPixels());
var h = [], g = e.length;
this.letterSpacingCache = h;
for (var c = 0; c < g; c++)
h.push(typeof a[c] < "u" ? a[c] : u);
var p = h.reduce((F, H, q) => q === 0 ? 0 : F + H || 0, 0), m = this.measureText(t), y = Math.max(m + p, 0);
this.textWidth = m, this.textHeight = this.getFontSize(), this.glyphInfo = [];
var w = this.getPathLength(), E = this.getStyle("startOffset").getNumber(0) * w, C = 0;
(i === "middle" || i === "center") && (C = -y / 2), (i === "end" || i === "right") && (C = -y), C += E, A.forEach((F, H) => {
var {
offset: q,
segment: N,
rotation: M
} = this.findSegmentToFitChar(t, i, y, w, n, C, s, F, H);
C = q, !(!N.p0 || !N.p1) && this.glyphInfo.push({
// transposeX: midpoint.x,
// transposeY: midpoint.y,
text: A[H],
p0: N.p0,
p1: N.p1,
rotation: M
});
});
}
}
parsePathData(t) {
if (this.pathLength = -1, !t)
return [];
var e = [], {
pathParser: A
} = t;
for (A.reset(); !A.isEnd(); ) {
var {
current: n
} = A, a = n ? n.x : 0, s = n ? n.y : 0, i = A.next(), o = i.type, l = [];
switch (i.type) {
case mA.MOVE_TO:
this.pathM(A, l);
break;
case mA.LINE_TO:
o = this.pathL(A, l);
break;
case mA.HORIZ_LINE_TO:
o = this.pathH(A, l);
break;
case mA.VERT_LINE_TO:
o = this.pathV(A, l);
break;
case mA.CURVE_TO:
this.pathC(A, l);
break;
case mA.SMOOTH_CURVE_TO:
o = this.pathS(A, l);
break;
case mA.QUAD_TO:
this.pathQ(A, l);
break;
case mA.SMOOTH_QUAD_TO:
o = this.pathT(A, l);
break;
case mA.ARC:
l = this.pathA(A);
break;
case mA.CLOSE_PATH:
XA.pathZ(A);
break;
}
i.type !== mA.CLOSE_PATH ? e.push({
type: o,
points: l,
start: {
x: a,
y: s
},
pathLength: this.calcLength(a, s, o, l)
}) : e.push({
type: mA.CLOSE_PATH,
points: [],
pathLength: 0
});
}
return e;
}
pathM(t, e) {
var {
x: A,
y: n
} = XA.pathM(t).point;
e.push(A, n);
}
pathL(t, e) {
var {
x: A,
y: n
} = XA.pathL(t).point;
return e.push(A, n), mA.LINE_TO;
}
pathH(t, e) {
var {
x: A,
y: n
} = XA.pathH(t).point;
return e.push(A, n), mA.LINE_TO;
}
pathV(t, e) {
var {
x: A,
y: n
} = XA.pathV(t).point;
return e.push(A, n), mA.LINE_TO;
}
pathC(t, e) {
var {
point: A,
controlPoint: n,
currentPoint: a
} = XA.pathC(t);
e.push(A.x, A.y, n.x, n.y, a.x, a.y);
}
pathS(t, e) {
var {
point: A,
controlPoint: n,
currentPoint: a
} = XA.pathS(t);
return e.push(A.x, A.y, n.x, n.y, a.x, a.y), mA.CURVE_TO;
}
pathQ(t, e) {
var {
controlPoint: A,
currentPoint: n
} = XA.pathQ(t);
e.push(A.x, A.y, n.x, n.y);
}
pathT(t, e) {
var {
controlPoint: A,
currentPoint: n
} = XA.pathT(t);
return e.push(A.x, A.y, n.x, n.y), mA.QUAD_TO;
}
pathA(t) {
var {
rX: e,
rY: A,
sweepFlag: n,
xAxisRotation: a,
centp: s,
a1: i,
ad: o
} = XA.pathA(t);
return n === 0 && o > 0 && (o -= 2 * Math.PI), n === 1 && o < 0 && (o += 2 * Math.PI), [s.x, s.y, e, A, i, o, a, n];
}
calcLength(t, e, A, n) {
var a = 0, s = null, i = null, o = 0;
switch (A) {
case mA.LINE_TO:
return this.getLineLength(t, e, n[0], n[1]);
case mA.CURVE_TO:
for (a = 0, s = this.getPointOnCubicBezier(0, t, e, n[0], n[1], n[2], n[3], n[4], n[5]), o = 0.01; o <= 1; o += 0.01)
i = this.getPointOnCubicBezier(o, t, e, n[0], n[1], n[2], n[3], n[4], n[5]), a += this.getLineLength(s.x, s.y, i.x, i.y), s = i;
return a;
case mA.QUAD_TO:
for (a = 0, s = this.getPointOnQuadraticBezier(0, t, e, n[0], n[1], n[2], n[3]), o = 0.01; o <= 1; o += 0.01)
i = this.getPointOnQuadraticBezier(o, t, e, n[0], n[1], n[2], n[3]), a += this.getLineLength(s.x, s.y, i.x, i.y), s = i;
return a;
case mA.ARC: {
a = 0;
var l = n[4], u = n[5], h = n[4] + u, g = Math.PI / 180;
if (Math.abs(l - h) < g && (g = Math.abs(l - h)), s = this.getPointOnEllipticalArc(n[0], n[1], n[2], n[3], l, 0), u < 0)
for (o = l - g; o > h; o -= g)
i = this.getPointOnEllipticalArc(n[0], n[1], n[2], n[3], o, 0), a += this.getLineLength(s.x, s.y, i.x, i.y), s = i;
else
for (o = l + g; o < h; o += g)
i = this.getPointOnEllipticalArc(n[0], n[1], n[2], n[3], o, 0), a += this.getLineLength(s.x, s.y, i.x, i.y), s = i;
return i = this.getPointOnEllipticalArc(n[0], n[1], n[2], n[3], h, 0), a += this.getLineLength(s.x, s.y, i.x, i.y), a;
}
}
return 0;
}
getPointOnLine(t, e, A, n, a) {
var s = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : e, i = arguments.length > 6 && arguments[6] !== void 0 ? arguments[6] : A, o = (a - A) / (n - e + Ps), l = Math.sqrt(t * t / (1 + o * o));
n < e && (l *= -1);
var u = o * l, h = null;
if (n === e)
h = {
x: s,
y: i + u
};
else if ((i - A) / (s - e + Ps) === o)
h = {
x: s + l,
y: i + u
};
else {
var g = 0, c = 0, p = this.getLineLength(e, A, n, a);
if (p < Ps)
return null;
var m = (s - e) * (n - e) + (i - A) * (a - A);
m /= p * p, g = e + m * (n - e), c = A + m * (a - A);
var y = this.getLineLength(s, i, g, c), w = Math.sqrt(t * t - y * y);
l = Math.sqrt(w * w / (1 + o * o)), n < e && (l *= -1), u = o * l, h = {
x: g + l,
y: c + u
};
}
return h;
}
getPointOnPath(t) {
var e = this.getPathLength(), A = 0, n = null;
if (t < -5e-5 || t - 5e-5 > e)
return null;
var {
dataArray: a
} = this;
for (var s of a) {
if (s && (s.pathLength < 5e-5 || A + s.pathLength + 5e-5 < t)) {
A += s.pathLength;
continue;
}
var i = t - A, o = 0;
switch (s.type) {
case mA.LINE_TO:
n = this.getPointOnLine(i, s.start.x, s.start.y, s.points[0], s.points[1], s.start.x, s.start.y);
break;
case mA.ARC: {
var l = s.points[4], u = s.points[5], h = s.points[4] + u;
if (o = l + i / s.pathLength * u, u < 0 && o < h || u >= 0 && o > h)
break;
n = this.getPointOnEllipticalArc(s.points[0], s.points[1], s.points[2], s.points[3], o, s.points[6]);
break;
}
case mA.CURVE_TO:
o = i / s.pathLength, o > 1 && (o = 1), n = this.getPointOnCubicBezier(o, s.start.x, s.start.y, s.points[0], s.points[1], s.points[2], s.points[3], s.points[4], s.points[5]);
break;
case mA.QUAD_TO:
o = i / s.pathLength, o > 1 && (o = 1), n = this.getPointOnQuadraticBezier(o, s.start.x, s.start.y, s.points[0], s.points[1], s.points[2], s.points[3]);
break;
}
if (n)
return n;
break;
}
return null;
}
getLineLength(t, e, A, n) {
return Math.sqrt((A - t) * (A - t) + (n - e) * (n - e));
}
getPathLength() {
return this.pathLength === -1 && (this.pathLength = this.dataArray.reduce((t, e) => e.pathLength > 0 ? t + e.pathLength : t, 0)), this.pathLength;
}
getPointOnCubicBezier(t, e, A, n, a, s, i, o, l) {
var u = o * Pp(t) + s * Kp(t) + n * Vp(t) + e * qp(t), h = l * Pp(t) + i * Kp(t) + a * Vp(t) + A * qp(t);
return {
x: u,
y: h
};
}
getPointOnQuadraticBezier(t, e, A, n, a, s, i) {
var o = s * jp(t) + n * Wp(t) + e * Gp(t), l = i * jp(t) + a * Wp(t) + A * Gp(t);
return {
x: o,
y: l
};
}
getPointOnEllipticalArc(t, e, A, n, a, s) {
var i = Math.cos(s), o = Math.sin(s), l = {
x: A * Math.cos(a),
y: n * Math.sin(a)
};
return {
x: t + (l.x * i - l.y * o),
y: e + (l.x * o + l.y * i)
};
}
// TODO need some optimisations. possibly build cache only for curved segments?
buildEquidistantCache(t, e) {
var A = this.getPathLength(), n = e || 0.25, a = t || A / 100;
if (!this.equidistantCache || this.equidistantCache.step !== a || this.equidistantCache.precision !== n) {
this.equidistantCache = {
step: a,
precision: n,
points: []
};
for (var s = 0, i = 0; i <= A; i += n) {
var o = this.getPointOnPath(i), l = this.getPointOnPath(i + n);
!o || !l || (s += this.getLineLength(o.x, o.y, l.x, l.y), s >= a && (this.equidistantCache.points.push({
x: o.x,
y: o.y,
distance: i
}), s -= a));
}
}
}
getEquidistantPointOnPath(t, e, A) {
if (this.buildEquidistantCache(e, A), t < 0 || t - this.getPathLength() > 5e-5)
return null;
var n = Math.round(t / this.getPathLength() * (this.equidistantCache.points.length - 1));
return this.equidistantCache.points[n] || null;
}
}
var G8 = /^\s*data:(([^/,;]+\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;
class n4 extends ws {
constructor(t, e, A) {
super(t, e, A), this.type = "image", this.loaded = !1;
var n = this.getHrefAttribute().getString();
if (n) {
var a = n.endsWith(".svg") || /^\s*data:image\/svg\+xml/i.test(n);
t.images.push(this), a ? this.loadSvg(n) : this.loadImage(n), this.isSvg = a;
}
}
loadImage(t) {
var e = this;
return Mi(function* () {
try {
var A = yield e.document.createImage(t);
e.image = A;
} catch (n) {
console.error('Error while loading image "'.concat(t, '":'), n);
}
e.loaded = !0;
})();
}
loadSvg(t) {
var e = this;
return Mi(function* () {
var A = G8.exec(t);
if (A) {
var n = A[5];
A[4] === "base64" ? e.image = atob(n) : e.image = decodeURIComponent(n);
} else
try {
var a = yield e.document.fetch(t), s = yield a.text();
e.image = s;
} catch (i) {
console.error('Error while loading image "'.concat(t, '":'), i);
}
e.loaded = !0;
})();
}
renderChildren(t) {
var {
document: e,
image: A,
loaded: n
} = this, a = this.getAttribute("x").getPixels("x"), s = this.getAttribute("y").getPixels("y"), i = this.getStyle("width").getPixels("x"), o = this.getStyle("height").getPixels("y");
if (!(!n || !A || !i || !o)) {
if (t.save(), t.translate(a, s), this.isSvg) {
var l = e.canvg.forkString(t, this.image, {
ignoreMouse: !0,
ignoreAnimation: !0,
ignoreDimensions: !0,
ignoreClear: !0,
offsetX: 0,
offsetY: 0,
scaleWidth: i,
scaleHeight: o
});
l.document.documentElement.parent = this, l.render();
} else {
var u = this.image;
e.setViewBox({
ctx: t,
aspectRatio: this.getAttribute("preserveAspectRatio").getString(),
width: i,
desiredWidth: u.width,
height: o,
desiredHeight: u.height
}), this.loaded && (typeof u.complete > "u" || u.complete) && t.drawImage(u, 0, 0);
}
t.restore();
}
}
getBoundingBox() {
var t = this.getAttribute("x").getPixels("x"), e = this.getAttribute("y").getPixels("y"), A = this.getStyle("width").getPixels("x"), n = this.getStyle("height").getPixels("y");
return new Oa(t, e, t + A, e + n);
}
}
class a4 extends ws {
constructor() {
super(...arguments), this.type = "symbol";
}
render(t) {
}
}
class i4 {
constructor(t) {
this.document = t, this.loaded = !1, t.fonts.push(this);
}
load(t, e) {
var A = this;
return Mi(function* () {
try {
var {
document: n
} = A, a = yield n.canvg.parser.load(e), s = a.getElementsByTagName("font");
Array.from(s).forEach((i) => {
var o = n.createElement(i);
n.definitions[t] = o;
});
} catch (i) {
console.error('Error while loading font "'.concat(e, '":'), i);
}
A.loaded = !0;
})();
}
}
class Nv extends gr {
constructor(t, e, A) {
super(t, e, A), this.type = "style";
var n = $s(
Array.from(e.childNodes).map((s) => s.textContent).join("").replace(/(\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm, "").replace(/@import.*;/g, "")
// remove imports
), a = n.split("}");
a.forEach((s) => {
var i = s.trim();
if (i) {
var o = i.split("{"), l = o[0].split(","), u = o[1].split(";");
l.forEach((h) => {
var g = h.trim();
if (g) {
var c = t.styles[g] || {};
if (u.forEach((y) => {
var w = y.indexOf(":"), E = y.substr(0, w).trim(), C = y.substr(w + 1, y.length - w).trim();
E && C && (c[E] = new AA(t, E, C));
}), t.styles[g] = c, t.stylesSpecificity[g] = TC(g), g === "@font-face") {
var p = c["font-family"].getString().replace(/"|'/g, ""), m = c.src.getString().split(",");
m.forEach((y) => {
if (y.indexOf('format("svg")') > 0) {
var w = Tv(y);
w && new i4(t).load(p, w);
}
});
}
}
});
}
});
}
}
Nv.parseExternalUrl = Tv;
class s4 extends ws {
constructor() {
super(...arguments), this.type = "use";
}
setContext(t) {
super.setContext(t);
var e = this.getAttribute("x"), A = this.getAttribute("y");
e.hasValue() && t.translate(e.getPixels("x"), 0), A.hasValue() && t.translate(0, A.getPixels("y"));
}
path(t) {
var {
element: e
} = this;
e && e.path(t);
}
renderChildren(t) {
var {
document: e,
element: A
} = this;
if (A) {
var n = A;
if (A.type === "symbol" && (n = new No(e, null), n.attributes.viewBox = new AA(e, "viewBox", A.getAttribute("viewBox").getString()), n.attributes.preserveAspectRatio = new AA(e, "preserveAspectRatio", A.getAttribute("preserveAspectRatio").getString()), n.attributes.overflow = new AA(e, "overflow", A.getAttribute("overflow").getString()), n.children = A.children, A.styles.opacity = new AA(e, "opacity", this.calculateOpacity())), n.type === "svg") {
var a = this.getStyle("width", !1, !0), s = this.getStyle("height", !1, !0);
a.hasValue() && (n.attributes.width = new AA(e, "width", a.getString())), s.hasValue() && (n.attributes.height = new AA(e, "height", s.getString()));
}
var i = n.parent;
n.parent = this, n.render(t), n.parent = i;
}
}
getBoundingBox(t) {
var {
element: e
} = this;
return e ? e.getBoundingBox(t) : null;
}
elementTransform() {
var {
document: t,
element: e
} = this;
return vs.fromElement(t, e);
}
get element() {
return this.cachedElement || (this.cachedElement = this.getHrefAttribute().getDefinition()), this.cachedElement;
}
}
function qu(r, t, e, A, n, a) {
return r[e * A * 4 + t * 4 + a];
}
function ju(r, t, e, A, n, a, s) {
r[e * A * 4 + t * 4 + a] = s;
}
function Jr(r, t, e) {
var A = r[t];
return A * e;
}
function Ti(r, t, e, A) {
return t + Math.cos(r) * e + Math.sin(r) * A;
}
class Mv extends gr {
constructor(t, e, A) {
super(t, e, A), this.type = "feColorMatrix";
var n = ia(this.getAttribute("values").getString());
switch (this.getAttribute("type").getString("matrix")) {
// http://www.w3.org/TR/SVG/filters.html#feColorMatrixElement
case "saturate": {
var a = n[0];
n = [0.213 + 0.787 * a, 0.715 - 0.715 * a, 0.072 - 0.072 * a, 0, 0, 0.213 - 0.213 * a, 0.715 + 0.285 * a, 0.072 - 0.072 * a, 0, 0, 0.213 - 0.213 * a, 0.715 - 0.715 * a, 0.072 + 0.928 * a, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];
break;
}
case "hueRotate": {
var s = n[0] * Math.PI / 180;
n = [Ti(s, 0.213, 0.787, -0.213), Ti(s, 0.715, -0.715, -0.715), Ti(s, 0.072, -0.072, 0.928), 0, 0, Ti(s, 0.213, -0.213, 0.143), Ti(s, 0.715, 0.285, 0.14), Ti(s, 0.072, -0.072, -0.283), 0, 0, Ti(s, 0.213, -0.213, -0.787), Ti(s, 0.715, -0.715, 0.715), Ti(s, 0.072, 0.928, 0.072), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];
break;
}
case "luminanceToAlpha":
n = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2125, 0.7154, 0.0721, 0, 0, 0, 0, 0, 0, 1];
break;
}
this.matrix = n, this.includeOpacity = this.getAttribute("includeOpacity").hasValue();
}
apply(t, e, A, n, a) {
for (var {
includeOpacity: s,
matrix: i
} = this, o = t.getImageData(0, 0, n, a), l = 0; l < a; l++)
for (var u = 0; u < n; u++) {
var h = qu(o.data, u, l, n, a, 0), g = qu(o.data, u, l, n, a, 1), c = qu(o.data, u, l, n, a, 2), p = qu(o.data, u, l, n, a, 3), m = Jr(i, 0, h) + Jr(i, 1, g) + Jr(i, 2, c) + Jr(i, 3, p) + Jr(i, 4, 1), y = Jr(i, 5, h) + Jr(i, 6, g) + Jr(i, 7, c) + Jr(i, 8, p) + Jr(i, 9, 1), w = Jr(i, 10, h) + Jr(i, 11, g) + Jr(i, 12, c) + Jr(i, 13, p) + Jr(i, 14, 1), E = Jr(i, 15, h) + Jr(i, 16, g) + Jr(i, 17, c) + Jr(i, 18, p) + Jr(i, 19, 1);
s && (m = 0, y = 0, w = 0, E *= p / 255), ju(o.data, u, l, n, a, 0, m), ju(o.data, u, l, n, a, 1, y), ju(o.data, u, l, n, a, 2, w), ju(o.data, u, l, n, a, 3, E);
}
t.clearRect(0, 0, n, a), t.putImageData(o, 0, 0);
}
}
class Pl extends gr {
constructor() {
super(...arguments), this.type = "mask";
}
apply(t, e) {
var {
document: A
} = this, n = this.getAttribute("x").getPixels("x"), a = this.getAttribute("y").getPixels("y"), s = this.getStyle("width").getPixels("x"), i = this.getStyle("height").getPixels("y");
if (!s && !i) {
var o = new Oa();
this.children.forEach((p) => {
o.addBoundingBox(p.getBoundingBox(t));
}), n = Math.floor(o.x1), a = Math.floor(o.y1), s = Math.floor(o.width), i = Math.floor(o.height);
}
var l = this.removeStyles(e, Pl.ignoreStyles), u = A.createCanvas(n + s, a + i), h = u.getContext("2d");
A.screen.setDefaults(h), this.renderChildren(h), new Mv(A, {
nodeType: 1,
childNodes: [],
attributes: [{
nodeName: "type",
value: "luminanceToAlpha"
}, {
nodeName: "includeOpacity",
value: "true"
}]
}).apply(h, 0, 0, n + s, a + i);
var g = A.createCanvas(n + s, a + i), c = g.getContext("2d");
A.screen.setDefaults(c), e.render(c), c.globalCompositeOperation = "destination-in", c.fillStyle = h.createPattern(u, "no-repeat"), c.fillRect(0, 0, n + s, a + i), t.fillStyle = c.createPattern(g, "no-repeat"), t.fillRect(0, 0, n + s, a + i), this.restoreStyles(e, l);
}
render(t) {
}
}
Pl.ignoreStyles = ["mask", "transform", "clip-path"];
var _y = () => {
};
class o4 extends gr {
constructor() {
super(...arguments), this.type = "clipPath";
}
apply(t) {
var {
document: e
} = this, A = Reflect.getPrototypeOf(t), {
beginPath: n,
closePath: a
} = t;
A && (A.beginPath = _y, A.closePath = _y), Reflect.apply(n, t, []), this.children.forEach((s) => {
if (!(typeof s.path > "u")) {
var i = typeof s.elementTransform < "u" ? s.elementTransform() : null;
i || (i = vs.fromElement(e, s)), i && i.apply(t), s.path(t), A && (A.closePath = a), i && i.unapply(t);
}
}), Reflect.apply(a, t, []), t.clip(), A && (A.beginPath = n, A.closePath = a);
}
render(t) {
}
}
class Kl extends gr {
constructor() {
super(...arguments), this.type = "filter";
}
apply(t, e) {
var {
document: A,
children: n
} = this, a = e.getBoundingBox(t);
if (a) {
var s = 0, i = 0;
n.forEach((w) => {
var E = w.extraFilterDistance || 0;
s = Math.max(s, E), i = Math.max(i, E);
});
var o = Math.floor(a.width), l = Math.floor(a.height), u = o + 2 * s, h = l + 2 * i;
if (!(u < 1 || h < 1)) {
var g = Math.floor(a.x), c = Math.floor(a.y), p = this.removeStyles(e, Kl.ignoreStyles), m = A.createCanvas(u, h), y = m.getContext("2d");
A.screen.setDefaults(y), y.translate(-g + s, -c + i), e.render(y), n.forEach((w) => {
typeof w.apply == "function" && w.apply(y, 0, 0, u, h);
}), t.drawImage(m, 0, 0, u, h, g - s, c - i, u, h), this.restoreStyles(e, p);
}
}
}
render(t) {
}
}
Kl.ignoreStyles = ["filter", "transform", "clip-path"];
class l4 extends gr {
constructor(t, e, A) {
super(t, e, A), this.type = "feDropShadow", this.addStylesFromStyleDefinition();
}
apply(t, e, A, n, a) {
}
}
class u4 extends gr {
constructor() {
super(...arguments), this.type = "feMorphology";
}
apply(t, e, A, n, a) {
}
}
class c4 extends gr {
constructor() {
super(...arguments), this.type = "feComposite";
}
apply(t, e, A, n, a) {
}
}
class f4 extends gr {
constructor(t, e, A) {
super(t, e, A), this.type = "feGaussianBlur", this.blurRadius = Math.floor(this.getAttribute("stdDeviation").getNumber()), this.extraFilterDistance = this.blurRadius;
}
apply(t, e, A, n, a) {
var {
document: s,
blurRadius: i
} = this, o = s.window ? s.window.document.body : null, l = t.canvas;
l.id = s.getUniqueId(), o && (l.style.display = "none", o.appendChild(l)), F8(l, e, A, n, a, i), o && o.removeChild(l);
}
}
class h4 extends gr {
constructor() {
super(...arguments), this.type = "title";
}
}
class d4 extends gr {
constructor() {
super(...arguments), this.type = "desc";
}
}
var Y8 = {
svg: No,
rect: Lv,
circle: HC,
ellipse: PC,
line: KC,
polyline: Iv,
polygon: VC,
path: XA,
pattern: qC,
marker: jC,
defs: WC,
linearGradient: GC,
radialGradient: YC,
stop: $C,
animate: Zc,
animateColor: zC,
animateTransform: XC,
font: JC,
"font-face": ZC,
"missing-glyph": e4,
glyph: kv,
text: Oi,
tspan: Hl,
tref: t4,
a: A4,
textPath: r4,
image: n4,
g: Jc,
symbol: a4,
style: Nv,
use: s4,
mask: Pl,
clipPath: o4,
filter: Kl,
feDropShadow: l4,
feMorphology: u4,
feComposite: c4,
feColorMatrix: Mv,
feGaussianBlur: f4,
title: h4,
desc: d4
};
function Ny(r, t) {
var e = Object.keys(r);
if (Object.getOwnPropertySymbols) {
var A = Object.getOwnPropertySymbols(r);
t && (A = A.filter(function(n) {
return Object.getOwnPropertyDescriptor(r, n).enumerable;
})), e.push.apply(e, A);
}
return e;
}
function $8(r) {
for (var t = 1; t < arguments.length; t++) {
var e = arguments[t] != null ? arguments[t] : {};
t % 2 ? Ny(Object(e), !0).forEach(function(A) {
Uv(r, A, e[A]);
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(e)) : Ny(Object(e)).forEach(function(A) {
Object.defineProperty(r, A, Object.getOwnPropertyDescriptor(e, A));
});
}
return r;
}
function z8(r, t) {
var e = document.createElement("canvas");
return e.width = r, e.height = t, e;
}
function X8(r) {
return Yp.apply(this, arguments);
}
function Yp() {
return Yp = Mi(function* (r) {
var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, e = document.createElement("img");
return t && (e.crossOrigin = "Anonymous"), new Promise((A, n) => {
e.onload = () => {
A(e);
}, e.onerror = (a, s, i, o, l) => {
n(l);
}, e.src = r;
});
}), Yp.apply(this, arguments);
}
class _i {
constructor(t) {
var {
rootEmSize: e = 12,
emSize: A = 12,
createCanvas: n = _i.createCanvas,
createImage: a = _i.createImage,
anonymousCrossOrigin: s
} = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
this.canvg = t, this.definitions = /* @__PURE__ */ Object.create(null), this.styles = /* @__PURE__ */ Object.create(null), this.stylesSpecificity = /* @__PURE__ */ Object.create(null), this.images = [], this.fonts = [], this.emSizeStack = [], this.uniqueId = 0, this.screen = t.screen, this.rootEmSize = e, this.emSize = A, this.createCanvas = n, this.createImage = this.bindCreateImage(a, s), this.screen.wait(this.isImagesLoaded.bind(this)), this.screen.wait(this.isFontsLoaded.bind(this));
}
bindCreateImage(t, e) {
return typeof e == "boolean" ? (A, n) => t(A, typeof n == "boolean" ? n : e) : t;
}
get window() {
return this.screen.window;
}
get fetch() {
return this.screen.fetch;
}
get ctx() {
return this.screen.ctx;
}
get emSize() {
var {
emSizeStack: t
} = this;
return t[t.length - 1];
}
set emSize(t) {
var {
emSizeStack: e
} = this;
e.push(t);
}
popEmSize() {
var {
emSizeStack: t
} = this;
t.pop();
}
getUniqueId() {
return "canvg".concat(++this.uniqueId);
}
isImagesLoaded() {
return this.images.every((t) => t.loaded);
}
isFontsLoaded() {
return this.fonts.every((t) => t.loaded);
}
createDocumentElement(t) {
var e = this.createElement(t.documentElement);
return e.root = !0, e.addStylesFromStyleDefinition(), this.documentElement = e, e;
}
createElement(t) {
var e = t.nodeName.replace(/^[^:]+:/, ""), A = _i.elementTypes[e];
return typeof A < "u" ? new A(this, t) : new RC(this, t);
}
createTextNode(t) {
return new W8(this, t);
}
setViewBox(t) {
this.screen.setViewBox($8({
document: this
}, t));
}
}
_i.createCanvas = z8;
_i.createImage = X8;
_i.elementTypes = Y8;
function My(r, t) {
var e = Object.keys(r);
if (Object.getOwnPropertySymbols) {
var A = Object.getOwnPropertySymbols(r);
t && (A = A.filter(function(n) {
return Object.getOwnPropertyDescriptor(r, n).enumerable;
})), e.push.apply(e, A);
}
return e;
}
function Us(r) {
for (var t = 1; t < arguments.length; t++) {
var e = arguments[t] != null ? arguments[t] : {};
t % 2 ? My(Object(e), !0).forEach(function(A) {
Uv(r, A, e[A]);
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(e)) : My(Object(e)).forEach(function(A) {
Object.defineProperty(r, A, Object.getOwnPropertyDescriptor(e, A));
});
}
return r;
}
class Ms {
/**
* Main constructor.
* @param ctx - Rendering context.
* @param svg - SVG Document.
* @param options - Rendering options.
*/
constructor(t, e) {
var A = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
this.parser = new sc(A), this.screen = new Rl(t, A), this.options = A;
var n = new _i(this, A), a = n.createDocumentElement(e);
this.document = n, this.documentElement = a;
}
/**
* Create Canvg instance from SVG source string or URL.
* @param ctx - Rendering context.
* @param svg - SVG source string or URL.
* @param options - Rendering options.
* @returns Canvg instance.
*/
static from(t, e) {
var A = arguments;
return Mi(function* () {
var n = A.length > 2 && A[2] !== void 0 ? A[2] : {}, a = new sc(n), s = yield a.parse(e);
return new Ms(t, s, n);
})();
}
/**
* Create Canvg instance from SVG source string.
* @param ctx - Rendering context.
* @param svg - SVG source string.
* @param options - Rendering options.
* @returns Canvg instance.
*/
static fromString(t, e) {
var A = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, n = new sc(A), a = n.parseFromString(e);
return new Ms(t, a, A);
}
/**
* Create new Canvg instance with inherited options.
* @param ctx - Rendering context.
* @param svg - SVG source string or URL.
* @param options - Rendering options.
* @returns Canvg instance.
*/
fork(t, e) {
var A = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
return Ms.from(t, e, Us(Us({}, this.options), A));
}
/**
* Create new Canvg instance with inherited options.
* @param ctx - Rendering context.
* @param svg - SVG source string.
* @param options - Rendering options.
* @returns Canvg instance.
*/
forkString(t, e) {
var A = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
return Ms.fromString(t, e, Us(Us({}, this.options), A));
}
/**
* Document is ready promise.
* @returns Ready promise.
*/
ready() {
return this.screen.ready();
}
/**
* Document is ready value.
* @returns Is ready or not.
*/
isReady() {
return this.screen.isReady();
}
/**
* Render only first frame, ignoring animations and mouse.
* @param options - Rendering options.
*/
render() {
var t = arguments, e = this;
return Mi(function* () {
var A = t.length > 0 && t[0] !== void 0 ? t[0] : {};
e.start(Us({
enableRedraw: !0,
ignoreAnimation: !0,
ignoreMouse: !0
}, A)), yield e.ready(), e.stop();
})();
}
/**
* Start rendering.
* @param options - Render options.
*/
start() {
var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
documentElement: e,
screen: A,
options: n
} = this;
A.start(e, Us(Us({
enableRedraw: !0
}, n), t));
}
/**
* Stop rendering.
*/
stop() {
this.screen.stop();
}
/**
* Resize SVG to fit in given size.
* @param width
* @param height
* @param preserveAspectRatio
*/
resize(t) {
var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : t, A = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1;
this.documentElement.resize(t, e, A);
}
}
const J8 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
AElement: A4,
AnimateColorElement: zC,
AnimateElement: Zc,
AnimateTransformElement: XC,
BoundingBox: Oa,
CB1: Pp,
CB2: Kp,
CB3: Vp,
CB4: qp,
Canvg: Ms,
CircleElement: HC,
ClipPathElement: o4,
DefsElement: WC,
DescElement: d4,
Document: _i,
Element: gr,
EllipseElement: PC,
FeColorMatrixElement: Mv,
FeCompositeElement: c4,
FeDropShadowElement: l4,
FeGaussianBlurElement: f4,
FeMorphologyElement: u4,
FilterElement: Kl,
Font: Hn,
FontElement: JC,
FontFaceElement: ZC,
GElement: Jc,
GlyphElement: kv,
GradientElement: _v,
ImageElement: n4,
LineElement: KC,
LinearGradientElement: GC,
MarkerElement: jC,
MaskElement: Pl,
Matrix: Qv,
MissingGlyphElement: e4,
Mouse: DC,
PSEUDO_ZERO: Ps,
Parser: sc,
PathElement: XA,
PathParser: mA,
PatternElement: qC,
Point: Rr,
PolygonElement: VC,
PolylineElement: Iv,
Property: AA,
QB1: jp,
QB2: Wp,
QB3: Gp,
RadialGradientElement: YC,
RectElement: Lv,
RenderedElement: ws,
Rotate: _C,
SVGElement: No,
SVGFontLoader: i4,
Scale: NC,
Screen: Rl,
Skew: Dv,
SkewX: MC,
SkewY: OC,
StopElement: $C,
StyleElement: Nv,
SymbolElement: a4,
TRefElement: t4,
TSpanElement: Hl,
TextElement: Oi,
TextPathElement: r4,
TitleElement: h4,
Transform: vs,
Translate: IC,
UnknownElement: RC,
UseElement: s4,
ViewPort: QC,
compressSpaces: $s,
default: Ms,
getSelectorSpecificity: TC,
normalizeAttributeName: SC,
normalizeColor: UC,
parseExternalUrl: Tv,
presets: T8,
toNumbers: ia,
trimLeft: FC,
trimRight: xC,
vectorMagnitude: Rp,
vectorsAngle: Hp,
vectorsRatio: Ec
}, Symbol.toStringTag, { value: "Module" }));
export {
BN as GanttChart,
JU as MilestoneDialog,
S0 as MilestonePoint,
XF as TaskBar,
wU as TaskDrawer,
fF as TaskList,
yN as TaskListColumn,
AF as TaskRow,
Hx as Timeline,
tO as default,
bN as install,
Ma as useI18n,
Ky as useMessage
};