jordium-gantt-vue3
Version:
A modern, flexible, and feature-rich Gantt chart component library for Vue 3
16,680 lines • 888 kB
JavaScript
import { ref as KA, computed as Ce, defineComponent as Er, onMounted as jr, onUnmounted as Wr, resolveComponent as Sg, createElementBlock as DA, openBlock as xA, createElementVNode as X, createCommentVNode as he, normalizeClass as Ke, normalizeStyle as Tt, withModifiers as Kn, createStaticVNode as Nn, createTextVNode as cr, toDisplayString as _A, Fragment as et, renderList as yt, createBlock as li, watch as $t, unref as oe, nextTick as Lr, Teleport as Hg, createVNode as un, Transition as Dg, withCtx as Ng, reactive as Ro, withDirectives as or, vModelText as Hn, vModelSelect as ro, withKeys as kg } from "vue";
const Nc = {
"zh-CN": {
// TaskList Header
taskName: "任务名称",
predecessor: "前置任务",
assignee: "分配人",
startDate: "开始日期",
endDate: "结束日期",
estimatedHours: "预计工时(hr)",
actualHours: "实际工时(hr)",
progress: "进度",
type: "类型",
description: "描述",
// CSV Export Headers(去除重复,仅保留引用)
csvHeaders: {
id: "ID",
taskName: "任务名称",
predecessor: "前置任务",
assignee: "分配人",
startDate: "开始日期",
endDate: "结束日期",
estimatedHours: "预计工时(hr)",
actualHours: "实际工时(hr)",
progress: "进度(%)",
type: "类型",
description: "描述"
},
// 日期格式
yearMonthFormat: (t, e) => `${t}年${String(e).padStart(2, "0")}月`,
// 其他
milestone: "里程碑",
today: "今天",
// 里程碑对话框
milestoneDetails: "里程碑详情",
milestoneName: "里程碑名称",
milestoneDate: "里程碑日期",
milestoneIcon: "里程碑图标",
diamond: "菱形",
rocket: "火箭",
enterMilestoneName: "请输入里程碑名称",
enterAssignee: "请输入负责人",
enterDescription: "请输入描述信息",
milestoneNameRequired: "里程碑名称为必填项",
milestoneDateRequired: "里程碑日期为必填项",
save: "保存",
close: "关闭",
confirm: "确认",
delete: "删除",
confirmDelete: "确定要删除这个里程碑吗?",
// 工具栏按钮
addTask: "新增需求/任务",
addMilestone: "新增里程碑",
todayLocate: "今日",
todayLocateTooltip: "定位到今天",
exportCsv: "导出 CSV",
exportPdf: "导出 PDF",
language: "中文",
languageTooltip: "选择语言",
lightMode: "明亮模式",
darkMode: "暗黑模式",
fullscreen: "全屏",
exitFullscreen: "退出全屏",
githubDocs: "查看Github文档",
giteeDocs: "查看Gitee文档",
// 确认对话框
confirmDialogMessage: "是否需要保留该设置?",
// 新建任务对话框
newTask: "新建任务",
taskNamePlaceholder: "请输入任务名称",
assigneePlaceholder: "请输入负责人",
progressPlaceholder: "0-100",
hoursPlaceholder: "工时",
descriptionPlaceholder: "请输入任务描述...",
hours: "小时",
create: "创建",
taskNameRequired: "任务名称不能为空",
startDateRequired: "开始日期不能为空",
endDateRequired: "结束日期不能为空",
endDateInvalid: "结束日期不能早于开始日期",
// 新建里程碑对话框
newMilestone: "新建里程碑",
editMilestone: "编辑里程碑",
cancel: "取消",
// PDF导出相关
pdfExportLoading: "正在生成PDF,请稍候...",
pdfExportTitle: "甘特图导出",
pdfExportDate: "导出日期",
milestoneGroup: "里程碑",
collapseTaskList: "收起任务列表",
expandTaskList: "展开任务列表",
// TaskDrawer 相关
taskType: "任务类型",
taskTypeRequired: "请选择任务类型",
taskTypeMap: {
task: "任务",
milestone: "里程碑",
story: "需求",
epic: "史诗",
bug: "缺陷"
},
editTask: "编辑任务",
parentTask: "上级任务",
noParentTask: "无上级任务",
update: "更新",
taskNameTooLong: "任务名称不能超过50个字符",
predecessorPlaceholder: "请选择前置任务",
operationFailed: "操作失败,请重试",
taskUpdateSuccess: "任务更新成功",
taskCreateSuccess: "任务创建成功",
confirmDeleteTask: '确定要删除任务"{name}"吗?此操作不可撤销。',
taskDeleteFailed: "删除失败,请重试",
// Story删除相关
confirmDeleteStory: "是否删除该需求{name}及其所有的子任务?该操作不可撤回",
storyDeleteYes: "是, 继续",
storyDeleteNo: "不,仅删除需求",
storyDeleteAllSuccess: "已删除需求【{name}】及其所有子任务",
storyDeleteOnlySuccess: "已删除需求【{name}】,{count}个子任务已升级保留",
storyNotFound: "未找到要删除的需求,ID:{id}",
// 里程碑删除成功
milestoneDeleteSuccess: "里程碑删除成功",
// 其他删除成功消息
taskDeletedSuccess: "已删除任务",
// 选择器占位符
selectAssignee: "请选择负责人",
// 通用消息
customCsvExportCalled: "自定义CSV导出被调用",
languageSwitchedTo: "语言切换到:{language}",
themeSwitchedTo: "主题切换到:{theme}",
lightModeText: "明亮模式",
darkModeText: "暗黑模式",
taskNotFound: "未找到要更新的任务,ID:{id}",
newParentTaskNotFound: "未找到新父任务,ID:{parentId},将作为顶级任务添加",
inPlaceUpdateFailed: "就地更新失败,未找到任务,ID:{id}",
taskToDeleteNotFound: "未找到要删除的任务,ID:{id}",
milestoneIconUpdateNotFound: "未找到要更新图标的里程碑,ID:{id}",
overtime: "超",
overdue: "逾期",
days: "天"
},
"en-US": {
// TaskList Header
taskName: "Task Name",
predecessor: "Predecessor",
assignee: "Assignee",
startDate: "Start Date",
endDate: "End Date",
estimatedHours: "Est. Hours",
actualHours: "Act. Hours",
progress: "Progress",
type: "Type",
// CSV Export Headers(去除重复,仅保留引用)
csvHeaders: {
id: "ID",
taskName: "Task Name",
predecessor: "Predecessor",
assignee: "Assignee",
startDate: "Start Date",
endDate: "End Date",
estimatedHours: "Est. Hours",
actualHours: "Act. Hours",
progress: "Progress (%)",
type: "Type",
description: "Description"
},
// 日期格式
yearMonthFormat: (t, e) => `${t}/${String(e).padStart(2, "0")}`,
// 其他
milestone: "Milestone",
today: "Today",
// 里程碑对话框
milestoneDetails: "Milestone Details",
milestoneName: "Milestone Name",
milestoneDate: "Milestone Date",
milestoneIcon: "Milestone Icon",
diamond: "Diamond",
rocket: "Rocket",
enterMilestoneName: "Enter milestone name",
enterAssignee: "Enter assignee",
enterDescription: "Enter description",
milestoneNameRequired: "Milestone name is required",
milestoneDateRequired: "Milestone date is required",
save: "Save",
close: "Close",
confirm: "Confirm",
description: "Description",
delete: "Delete",
confirmDelete: "Are you sure you want to delete this milestone?",
// 工具栏按钮
addTask: "Add Requirement/Task",
addMilestone: "Add Milestone",
todayLocate: "Today",
todayLocateTooltip: "Locate to today",
exportCsv: "Export CSV",
exportPdf: "Export PDF",
language: "English",
languageTooltip: "Select language",
lightMode: "Light Mode",
darkMode: "Dark Mode",
fullscreen: "Fullscreen",
exitFullscreen: "Exit Fullscreen",
githubDocs: "GitHub Docs",
giteeDocs: "Gitee Docs",
// Confirm dialog
confirmDialogMessage: "Do you want to save this setting?",
taskNamePlaceholder: "Enter task name",
assigneePlaceholder: "Enter assignee",
progressPlaceholder: "0-100",
hoursPlaceholder: "Hours",
descriptionPlaceholder: "Enter task description...",
hours: "Hours",
create: "Create",
taskNameRequired: "Task name is required",
startDateRequired: "Start date is required",
endDateRequired: "End date is required",
endDateInvalid: "End date cannot be earlier than start date",
// 新建里程碑对话框
newMilestone: "New Milestone",
editMilestone: "Edit Milestone",
cancel: "Cancel",
// PDF export
pdfExportLoading: "Generating PDF, please wait...",
pdfExportTitle: "Gantt Chart Export",
pdfExportDate: "Export Date",
milestoneGroup: "Milestone",
collapseTaskList: "Collapse Task List",
expandTaskList: "Expand Task List",
// TaskDrawer related
taskType: "Task Type",
taskTypeRequired: "Please select task type",
taskTypeMap: {
task: "Task",
milestone: "Milestone",
story: "Story",
epic: "Epic",
bug: "Bug"
},
editTask: "Edit Task",
newTask: "New Task",
parentTask: "Parent Task",
noParentTask: "No Parent Task",
update: "Update",
taskNameTooLong: "Task name cannot exceed 50 characters",
predecessorPlaceholder: "Select predecessor",
operationFailed: "Operation failed, please try again",
taskUpdateSuccess: "Task updated successfully",
taskCreateSuccess: "Task created successfully",
confirmDeleteTask: 'Are you sure you want to delete task "{name}"? This action cannot be undone.',
taskDeleteFailed: "Delete failed, please try again",
// Story deletion related
confirmDeleteStory: "Do you want to delete the requirement {name} and all its subtasks? This action cannot be undone",
storyDeleteYes: "Yes, Continue",
storyDeleteNo: "No, Delete Requirement Only",
storyDeleteAllSuccess: "Deleted requirement [{name}] and all its subtasks",
storyDeleteOnlySuccess: "Deleted requirement [{name}], {count} subtasks have been promoted",
storyNotFound: "Requirement not found, ID: {id}",
// Milestone deletion success
milestoneDeleteSuccess: "Milestone deleted successfully",
// Other deletion success messages
taskDeletedSuccess: "Task deleted",
// Selector placeholders
selectAssignee: "Select assignee",
// Common messages
customCsvExportCalled: "Custom CSV export called",
languageSwitchedTo: "Language switched to: {language}",
themeSwitchedTo: "Theme switched to: {theme}",
lightModeText: "Light Mode",
darkModeText: "Dark Mode",
taskNotFound: "Task not found for update, ID: {id}",
newParentTaskNotFound: "New parent task not found, ID: {parentId}, will be added as top-level task",
inPlaceUpdateFailed: "In-place update failed, task not found, ID: {id}",
taskToDeleteNotFound: "Task to delete not found, ID: {id}",
milestoneIconUpdateNotFound: "Milestone not found for icon update, ID: {id}",
overtime: "Over",
overdue: "Overdue",
days: " days"
}
};
function Zu(t, e) {
Nc[t] && Object.assign(Nc[t], e);
}
const _g = "gantt-locale", Tg = () => {
if (typeof window < "u") {
const t = localStorage.getItem(_g);
if (t && (t === "zh-CN" || t === "en-US"))
return t;
}
return "zh-CN";
}, tc = KA(Tg());
function hi() {
const t = Ce(() => Nc[tc.value]), e = (s) => {
const o = t.value[s];
return typeof o == "string" ? o : s;
}, A = (s, o) => {
let c = e(s);
return Object.keys(o).forEach((h) => {
c = c.replace(new RegExp(`{${h}}`, "g"), String(o[h]));
}), c;
}, r = (s) => {
tc.value = s, window.dispatchEvent(
new CustomEvent("locale-changed", {
detail: { locale: s }
})
);
}, n = Ce(() => tc.value);
return {
t,
getTranslation: e,
formatTranslation: A,
locale: n,
setLocale: r,
formatYearMonth: (s, o) => t.value.yearMonthFormat(s, o)
};
}
const Mg = {
width: "12",
height: "12",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, Pg = {
key: 0,
points: "9,18 15,12 9,6"
}, Og = {
key: 1,
points: "18,15 12,9 6,15"
}, Kg = {
key: 1,
class: "milestone-spacer"
}, Rg = { class: "task-icon" }, Gg = {
key: 0,
width: "16",
height: "16",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2",
class: "milestone-group-icon"
}, Vg = {
key: 1,
width: "16",
height: "16",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, jg = {
key: 2,
width: "16",
height: "16",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, qg = ["title"], Wg = {
key: 0,
class: "status-badge overtime"
}, Xg = {
key: 1,
class: "status-badge overdue"
}, zg = { class: "col col-pre" }, Jg = { class: "col col-assignee" }, Yg = { class: "assignee-info" }, $g = { class: "avatar" }, Zg = { class: "assignee-name" }, A1 = { class: "col col-date" }, e1 = { class: "col col-date" }, t1 = { class: "col col-hours" }, r1 = { class: "col col-hours" }, n1 = { class: "col col-progress" }, i1 = 10, a1 = /* @__PURE__ */ Er({
__name: "TaskRow",
props: {
task: {},
level: {},
onDoubleClick: { type: Function },
isHovered: { type: Boolean },
hoveredTaskId: {},
onHover: { type: Function }
},
emits: ["toggle", "dblclick"],
setup(t, { emit: e }) {
const A = t, r = e, { t: n } = hi(), i = Ce(() => {
var j;
return ((j = n.value) == null ? void 0 : j.overtime) ?? "";
}), s = Ce(() => {
var j;
return ((j = n.value) == null ? void 0 : j.overdue) ?? "";
}), o = Ce(() => {
var j;
return ((j = n.value) == null ? void 0 : j.days) ?? "";
}), c = `${i1 + A.level * 20}px`;
function h() {
r("toggle", A.task);
}
function p() {
(A.task.type === "story" || A.task.children && A.task.children.length > 0) && A.task.type !== "milestone-group" && r("toggle", A.task);
}
const d = (j) => {
j.stopPropagation(), A.onDoubleClick && typeof A.onDoubleClick == "function" ? A.onDoubleClick(A.task) : r("dblclick", A.task);
}, w = () => {
v.value || A.onHover && A.onHover(A.task.id);
}, g = () => {
v.value || A.onHover && A.onHover(null);
};
function Q() {
const j = A.task.progress || 0, q = /* @__PURE__ */ new Date(), V = A.task.endDate ? new Date(A.task.endDate) : null;
return V && q > V && j < 100 ? "progress-danger" : j >= 100 ? "progress-success" : j > 0 ? "progress-warning" : "";
}
function y() {
return A.task.actualHours && A.task.estimatedHours && A.task.actualHours > A.task.estimatedHours;
}
function N() {
const j = /* @__PURE__ */ new Date(), q = A.task.endDate ? new Date(A.task.endDate) : null, V = A.task.progress || 0;
if (q && j > q && V < 100) {
const z = new Date(j.getFullYear(), j.getMonth(), j.getDate()), H = new Date(q.getFullYear(), q.getMonth(), q.getDate());
return Math.floor((z.getTime() - H.getTime()) / (1e3 * 60 * 60 * 24));
}
return 0;
}
const v = KA(!1), U = () => {
v.value = !0;
}, K = () => {
v.value = !1;
};
return jr(() => {
window.addEventListener("splitter-drag-start", U), window.addEventListener("splitter-drag-end", K);
}), Wr(() => {
window.removeEventListener("splitter-drag-start", U), window.removeEventListener("splitter-drag-end", K);
}), (j, q) => {
const V = Sg("TaskRow", !0);
return xA(), DA("div", null, [
X("div", {
class: Ke(["task-row", {
"task-row-hovered": j.isHovered,
"parent-task": A.task.type === "story" || A.task.children && A.task.children.length > 0 || A.task.type === "milestone-group",
"milestone-group-row": A.task.type === "milestone-group",
"task-type-story": A.task.type === "story",
"task-type-task": A.task.type === "task",
"task-type-milestone": A.task.type === "milestone"
}]),
onClick: p,
onDblclick: d,
onMouseenter: w,
onMouseleave: g
}, [
X("div", {
class: "col col-name",
style: Tt({ paddingLeft: c })
}, [
(A.task.type === "story" || A.task.children && A.task.children.length > 0) && A.task.type !== "milestone-group" ? (xA(), DA("span", {
key: 0,
class: "collapse-btn",
onClick: Kn(h, ["stop"])
}, [
(xA(), DA("svg", Mg, [
A.task.collapsed ? (xA(), DA("polyline", Pg)) : (xA(), DA("polyline", Og))
]))
])) : he("", !0),
A.task.type === "milestone-group" ? (xA(), DA("span", Kg)) : he("", !0),
X("span", Rg, [
A.task.type === "milestone-group" ? (xA(), DA("svg", Gg, q[2] || (q[2] = [
X("polygon", { points: "12,2 22,12 12,22 2,12" }, null, -1)
]))) : A.task.type === "story" || A.task.children && A.task.children.length > 0 ? (xA(), DA("svg", Vg, q[3] || (q[3] = [
X("path", { d: "M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-5l-2-2H5a2 2 0 00-2 2z" }, null, -1)
]))) : (xA(), DA("svg", jg, q[4] || (q[4] = [
Nn('<path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" data-v-36676023></path><polyline points="14,2 14,8 20,8" data-v-36676023></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-36676023></line><line x1="16" y1="17" x2="8" y2="17" data-v-36676023></line><polyline points="10,9 9,9 8,9" data-v-36676023></polyline>', 5)
])))
]),
X("span", {
class: Ke(["task-name-text", {
"parent-task": A.task.type === "story" || A.task.children && A.task.children.length > 0 || A.task.type === "milestone-group"
}]),
title: A.task.name
}, [
cr(_A(A.task.name) + " ", 1),
y() ? (xA(), DA("span", Wg, _A(i.value), 1)) : he("", !0),
N() > 0 ? (xA(), DA("span", Xg, _A(s.value) + _A(N() > 0 ? N() + o.value : ""), 1)) : he("", !0)
], 10, qg)
], 4),
A.task.type === "milestone-group" ? (xA(), DA(et, { key: 0 }, [
q[5] || (q[5] = Nn('<div class="col col-pre milestone-empty-col" data-v-36676023></div><div class="col col-assignee milestone-empty-col" data-v-36676023></div><div class="col col-date milestone-empty-col" data-v-36676023></div><div class="col col-date milestone-empty-col" data-v-36676023></div><div class="col col-hours milestone-empty-col" data-v-36676023></div><div class="col col-hours milestone-empty-col" data-v-36676023></div><div class="col col-progress milestone-empty-col" data-v-36676023></div>', 7))
], 64)) : (xA(), DA(et, { key: 1 }, [
X("div", zg, _A(A.task.predecessor || "-"), 1),
X("div", Jg, [
X("div", Yg, [
X("div", $g, _A(A.task.assignee ? A.task.assignee.charAt(0) : "-"), 1),
X("span", Zg, _A(A.task.assignee || "-"), 1)
])
]),
X("div", A1, _A(A.task.startDate || "-"), 1),
X("div", e1, _A(A.task.endDate || "-"), 1),
X("div", t1, _A(A.task.estimatedHours || "-"), 1),
X("div", r1, _A(A.task.actualHours || "-"), 1),
X("div", n1, [
X("span", {
class: Ke(["progress-value", Q()])
}, _A(A.task.progress != null ? A.task.progress + "%" : "-"), 3)
])
], 64))
], 34),
A.task.children && !A.task.collapsed && A.task.type !== "milestone-group" ? (xA(!0), DA(et, { key: 0 }, yt(A.task.children, (z) => (xA(), li(V, {
key: z.id,
task: z,
level: A.level + 1,
"is-hovered": A.hoveredTaskId === z.id,
"hovered-task-id": A.hoveredTaskId,
"on-double-click": A.onDoubleClick,
"on-hover": A.onHover,
onToggle: q[0] || (q[0] = (H) => r("toggle", H)),
onDblclick: q[1] || (q[1] = (H) => r("dblclick", H))
}, null, 8, ["task", "level", "is-hovered", "hovered-task-id", "on-double-click", "on-hover"]))), 128)) : he("", !0)
]);
};
}
}), xr = (t, e) => {
const A = t.__vccOpts || t;
for (const [r, n] of e)
A[r] = n;
return A;
}, s1 = /* @__PURE__ */ xr(a1, [["__scopeId", "data-v-36676023"]]), o1 = { class: "task-list" }, l1 = { class: "task-list-header" }, c1 = { class: "col col-name" }, u1 = { class: "col col-pre" }, f1 = { class: "col col-assignee" }, h1 = { class: "col col-date" }, d1 = { class: "col col-date" }, g1 = { class: "col col-hours" }, p1 = { class: "col col-hours" }, B1 = { class: "col col-progress" }, w1 = /* @__PURE__ */ Er({
__name: "TaskList",
props: {
tasks: {},
onTaskDoubleClick: { type: Function },
editComponent: {},
useDefaultDrawer: { type: Boolean }
},
emits: ["task-collapse-change"],
setup(t, { emit: e }) {
const A = t, r = e, { t: n } = hi(), i = KA([]), s = KA(null), o = KA(!1), c = () => {
o.value = !0;
}, h = () => {
o.value = !1;
}, p = (H) => {
o.value || (s.value = H, window.dispatchEvent(
new CustomEvent("task-list-hover", {
detail: H
})
));
}, d = (H) => {
s.value = H.detail;
}, w = (H) => {
H.type === "milestone" || H.type === "milestone-group" || (A.onTaskDoubleClick && typeof A.onTaskDoubleClick == "function" ? A.onTaskDoubleClick(H) : A.useDefaultDrawer && window.dispatchEvent(
new CustomEvent("task-row-double-click", {
detail: H
})
));
}, g = (H) => {
if (!H.children || H.children.length === 0)
return {
progress: H.progress || 0,
startDate: H.startDate || "",
endDate: H.endDate || ""
};
const G = [], tA = (k) => {
k.forEach((W) => {
G.push(W), W.children && W.children.length > 0 && tA(W.children);
});
};
tA(H.children);
const x = G.reduce((k, W) => k + (W.progress || 0), 0), F = G.length > 0 ? Math.round(x / G.length) : 0, _ = G.filter((k) => k.startDate && k.endDate);
if (_.length === 0)
return {
progress: F,
startDate: H.startDate || "",
endDate: H.endDate || ""
};
const P = _.map((k) => new Date(k.startDate)), lA = _.map((k) => new Date(k.endDate)), oA = new Date(Math.min(...P.map((k) => k.getTime()))), iA = new Date(Math.max(...lA.map((k) => k.getTime())));
return {
progress: F,
startDate: oA.toISOString().split("T")[0],
endDate: iA.toISOString().split("T")[0]
};
}, Q = () => {
const H = (G) => G.map((tA) => {
if (tA.children && tA.children.length > 0) {
const x = H(tA.children), F = g({
...tA,
children: x
});
return {
...tA,
progress: F.progress,
startDate: F.startDate,
endDate: F.endDate,
children: x
};
}
return tA;
});
i.value = H(i.value);
}, y = (H) => {
const G = [], tA = (x) => {
x.forEach((F) => {
G.push(F), F.children && F.children.length > 0 && tA(F.children);
});
};
return tA(H), G;
};
$t(
() => A.tasks,
(H) => {
i.value = H || [], Q();
},
{ immediate: !0, deep: !0 }
);
function N(H) {
H.collapsed = !H.collapsed, r("task-collapse-change", H);
}
const v = (H) => {
const G = (tA) => tA.map((x) => x.id === H.id ? {
...x,
...H,
// 完整更新所有字段
children: x.children
// 保留子任务结构
} : x.children ? {
...x,
children: G(x.children)
} : x);
i.value = G(i.value), Q();
}, U = (H) => {
const G = H.detail;
v(G);
}, K = (H) => {
const G = H.detail;
i.value.push(G), Q();
}, j = () => {
const H = y(i.value);
window.dispatchEvent(
new CustomEvent("task-list-updated", {
detail: H
})
);
}, q = (H) => {
const { milestoneId: G, icon: tA } = H.detail, x = (F) => {
for (const _ of F) {
if (_.type === "milestone-group" && _.children) {
const P = _.children.find((lA) => lA.id === G);
if (P)
return P.icon = tA, !0;
}
if (_.children && x(_.children))
return !0;
}
return !1;
};
x(i.value);
}, V = (H) => {
const G = H.target;
if (!G) return;
const tA = G.scrollTop;
window.dispatchEvent(
new CustomEvent("task-list-vertical-scroll", {
detail: { scrollTop: tA }
})
);
}, z = (H) => {
const { scrollTop: G } = H.detail, tA = document.querySelector(".task-list-body");
tA && tA.scrollTop !== G && (tA.scrollTop = G);
};
return jr(async () => {
window.addEventListener("task-updated", U), window.addEventListener("task-added", K), window.addEventListener("request-task-list", j), window.addEventListener("timeline-task-hover", d), window.addEventListener("timeline-vertical-scroll", z), window.addEventListener("milestone-icon-changed", q), window.addEventListener("splitter-drag-start", c), window.addEventListener("splitter-drag-end", h), Q();
}), Wr(() => {
window.removeEventListener("task-updated", U), window.removeEventListener("task-added", K), window.removeEventListener("request-task-list", j), window.removeEventListener("timeline-task-hover", d), window.removeEventListener(
"timeline-vertical-scroll",
z
), window.removeEventListener("milestone-icon-changed", q), window.removeEventListener("splitter-drag-start", c), window.removeEventListener("splitter-drag-end", h);
}), (H, G) => (xA(), DA("div", o1, [
X("div", l1, [
X("div", c1, _A(oe(n).taskName), 1),
X("div", u1, _A(oe(n).predecessor), 1),
X("div", f1, _A(oe(n).assignee), 1),
X("div", h1, _A(oe(n).startDate), 1),
X("div", d1, _A(oe(n).endDate), 1),
X("div", g1, _A(oe(n).estimatedHours), 1),
X("div", p1, _A(oe(n).actualHours), 1),
X("div", B1, _A(oe(n).progress), 1)
]),
X("div", {
class: "task-list-body",
onScroll: V
}, [
(xA(!0), DA(et, null, yt(i.value, (tA) => (xA(), li(s1, {
key: tA.id,
task: tA,
level: 0,
"is-hovered": s.value === tA.id,
"hovered-task-id": s.value,
"on-double-click": A.onTaskDoubleClick,
"on-hover": p,
onToggle: N,
onDblclick: w
}, null, 8, ["task", "is-hovered", "hovered-task-id", "on-double-click"]))), 128))
], 32)
]));
}
}), v1 = /* @__PURE__ */ xr(w1, [["__scopeId", "data-v-777d0247"]]), m1 = {
key: 0,
class: "parent-label"
}, C1 = { class: "task-name" }, y1 = {
key: 0,
class: "task-progress"
}, F1 = /* @__PURE__ */ Er({
__name: "TaskBar",
props: {
task: {},
rowHeight: {},
dayWidth: {},
startDate: {},
isParent: { type: Boolean },
onDoubleClick: { type: Function }
},
emits: [
"update:task",
"bar-mounted",
"dblclick",
"drag-end",
// 新增
"resize-end"
// 新增
],
setup(t, { emit: e }) {
const A = t, r = e, n = (F) => {
if (!F) return null;
if (F instanceof Date)
return F;
if (typeof F == "string" && /^\d{4}-\d{2}-\d{2}$/.test(F)) {
const [P, lA, oA] = F.split("-").map(Number);
return new Date(P, lA - 1, oA);
}
const _ = new Date(F);
return isNaN(_.getTime()) ? null : _;
}, i = () => {
const F = /* @__PURE__ */ new Date();
return new Date(F.getFullYear(), F.getMonth(), F.getDate());
}, s = (F) => {
const _ = F.getFullYear(), P = String(F.getMonth() + 1).padStart(2, "0"), lA = String(F.getDate()).padStart(2, "0");
return `${_}-${P}-${lA}`;
}, o = (F, _) => {
const P = new Date(F);
return P.setDate(P.getDate() + _), P;
}, c = KA(!1), h = KA(!1), p = KA(!1), d = KA(0), w = KA(0), g = KA(0), Q = KA(0), y = KA(0), N = KA(0), v = KA(null), U = KA(null), K = Ce(() => {
var W, rA;
const F = ((W = v.value) == null ? void 0 : W.startDate) || A.task.startDate, _ = ((rA = v.value) == null ? void 0 : rA.endDate) || A.task.endDate, P = n(F), lA = n(_), oA = n(A.startDate);
if (!P || !lA || !oA)
return {
left: "0px",
width: "0px",
height: `${A.rowHeight - 10}px`,
top: "4px"
};
const iA = Math.floor((P.getTime() - oA.getTime()) / (1e3 * 60 * 60 * 24)), k = Math.floor((lA.getTime() - P.getTime()) / (1e3 * 60 * 60 * 24)) + 1;
return {
left: `${iA * A.dayWidth}px`,
width: `${k * A.dayWidth}px`,
height: `${A.rowHeight - 10}px`,
top: "4px"
};
}), j = Ce(() => {
if (A.isParent)
return {
type: "parent",
color: "#409eff",
// 与新建按钮一致的蓝色
bgColor: "#409eff",
borderColor: "#409eff"
};
const F = i(), _ = n(A.task.endDate || ""), P = A.task.progress || 0;
return P >= 100 ? {
type: "completed",
color: "#909399",
// info color
bgColor: "#f4f4f5",
borderColor: "#d3d4d6"
} : _ && _ < F && P < 100 ? {
type: "delayed",
color: "#f56c6c",
// danger color
bgColor: "#fef0f0",
borderColor: "#fbc4c4"
} : _ && _ >= F && P > 0 ? {
type: "in-progress",
color: "#e6a23c",
// warning color
bgColor: "#fdf6ec",
borderColor: "#f5dab1"
} : {
type: "not-started",
color: "#409eff",
// primary color
bgColor: "#ecf5ff",
borderColor: "#b3d8ff"
};
}), q = Ce(() => (A.task.progress || 0) >= 100), V = Ce(() => {
const F = A.task.progress || 0, _ = parseInt(K.value.width);
return `${F / 100 * _}px`;
}), z = (F, _) => {
q.value || A.isParent || (F.preventDefault(), F.stopPropagation(), v.value = null, _ === "drag" ? (c.value = !0, d.value = F.clientX, w.value = parseInt(K.value.left), g.value = parseInt(K.value.width)) : _ === "resize-left" ? (h.value = !0, Q.value = F.clientX, y.value = parseInt(K.value.width), N.value = parseInt(K.value.left)) : _ === "resize-right" && (p.value = !0, Q.value = F.clientX, y.value = parseInt(K.value.width), N.value = parseInt(K.value.left)), document.addEventListener("mousemove", G), document.addEventListener("mouseup", tA));
};
function H() {
if (U.value) {
const F = U.value.getBoundingClientRect();
r("bar-mounted", {
id: A.task.id,
left: F.left,
top: F.top,
width: F.width,
height: F.height
});
}
}
const G = (F) => {
if (c.value) {
const _ = F.clientX - d.value, P = Math.max(0, w.value + _), lA = o(A.startDate, P / A.dayWidth), oA = g.value / A.dayWidth, iA = o(lA, oA - 1);
v.value = {
startDate: s(lA),
endDate: s(iA)
};
} else if (h.value) {
const _ = F.clientX - Q.value, P = Math.max(0, N.value + _), lA = o(A.startDate, P / A.dayWidth);
v.value = {
startDate: s(lA),
endDate: A.task.endDate
// 保持原来的结束日期
};
} else if (p.value) {
const _ = F.clientX - Q.value, lA = Math.max(A.dayWidth, y.value + _) / A.dayWidth, oA = o(
A.startDate,
N.value / A.dayWidth + lA - 1
);
v.value = {
startDate: A.task.startDate,
// 保持原来的开始日期
endDate: s(oA)
};
}
}, tA = () => {
if (v.value) {
const F = {
...A.task,
...v.value
};
c.value ? r("drag-end", F) : (h.value || p.value) && r("resize-end", F), r("update:task", F), v.value = null, Lr(() => {
H();
});
}
c.value = !1, h.value = !1, p.value = !1, document.removeEventListener("mousemove", G), document.removeEventListener("mouseup", tA);
};
jr(() => {
Lr(() => {
H();
});
}), $t(
() => [A.task.startDate, A.task.endDate],
() => {
Lr(() => {
H();
});
},
{ deep: !0 }
);
const x = (F) => {
F.stopPropagation(), F.preventDefault(), c.value = !1, h.value = !1, p.value = !1, v.value = null, document.removeEventListener("mousemove", G), document.removeEventListener("mouseup", tA), A.onDoubleClick && typeof A.onDoubleClick == "function" ? A.onDoubleClick(A.task) : r("dblclick", A.task);
};
return Wr(() => {
document.removeEventListener("mousemove", G), document.removeEventListener("mouseup", tA);
}), (F, _) => (xA(), DA("div", {
ref_key: "barRef",
ref: U,
class: Ke(["task-bar", {
dragging: c.value,
resizing: h.value || p.value,
completed: q.value,
"parent-task": F.isParent
}]),
style: Tt({
...K.value,
backgroundColor: j.value.bgColor,
borderColor: j.value.borderColor,
color: j.value.color,
cursor: q.value || F.isParent ? "default" : "move"
}),
onDblclick: x
}, [
F.isParent ? (xA(), DA("div", m1, _A(F.task.name) + " (" + _A(F.task.progress || 0) + "%)", 1)) : he("", !0),
!F.isParent && F.task.progress && F.task.progress > 0 ? (xA(), DA("div", {
key: 1,
class: "progress-bar",
style: Tt({
width: V.value,
backgroundColor: j.value.color
})
}, null, 4)) : he("", !0),
!q.value && !F.isParent ? (xA(), DA("div", {
key: 2,
class: "resize-handle resize-handle-left",
onMousedown: _[0] || (_[0] = (P) => z(P, "resize-left"))
}, null, 32)) : he("", !0),
F.isParent ? he("", !0) : (xA(), DA("div", {
key: 3,
class: "task-bar-content",
onMousedown: _[1] || (_[1] = (P) => z(P, "drag"))
}, [
X("div", C1, _A(F.task.name), 1),
F.task.progress !== void 0 ? (xA(), DA("div", y1, _A(F.task.progress) + "%", 1)) : he("", !0)
], 32)),
!q.value && !F.isParent ? (xA(), DA("div", {
key: 4,
class: "resize-handle resize-handle-right",
onMousedown: _[2] || (_[2] = (P) => z(P, "resize-right"))
}, null, 32)) : he("", !0)
], 38));
}
}), Q1 = /* @__PURE__ */ xr(F1, [["__scopeId", "data-v-8b57e917"]]), b1 = ["title"], U1 = {
width: 24,
height: 24,
viewBox: "0 0 24 24"
}, L1 = {
key: 0,
transform: "rotate(45 16 16)"
}, E1 = ["fill", "stroke"], x1 = { key: 1 }, I1 = {
key: 2,
transform: "rotate(45 16 16)"
}, S1 = ["fill", "stroke"], H1 = {
key: 0,
class: "milestone-label milestone-label-right"
}, D1 = /* @__PURE__ */ Er({
__name: "MilestonePoint",
props: {
date: {},
rowHeight: {},
dayWidth: {},
startDate: {},
name: {},
milestone: {}
},
emits: ["milestone-double-click", "update:milestone", "drag-end"],
setup(t, { emit: e }) {
const A = t, r = e, n = KA(!1), i = KA(0), s = KA(0), o = KA(null), c = (U) => {
if (U.preventDefault(), U.stopPropagation(), n.value = !1, o.value = null, document.removeEventListener("mousemove", w), document.removeEventListener("mouseup", g), A.milestone)
r("milestone-double-click", A.milestone);
else {
const K = {
name: A.name || "里程碑",
startDate: A.date,
type: "milestone"
};
r("milestone-double-click", K);
}
}, h = (U, K) => {
const j = new Date(U);
return j.setDate(j.getDate() + K), j;
}, p = (U) => {
const K = U.getFullYear(), j = String(U.getMonth() + 1).padStart(2, "0"), q = String(U.getDate()).padStart(2, "0");
return `${K}-${j}-${q}`;
}, d = (U) => {
U.preventDefault(), U.stopPropagation(), i.value = U.clientX, s.value = parseInt(Q.value.left), o.value = null, document.addEventListener("mousemove", w), document.addEventListener("mouseup", g);
}, w = (U) => {
const K = U.clientX - i.value;
if (Math.abs(K) > 3) {
n.value = !0;
const j = Math.max(0, s.value + K), q = h(A.startDate, j / A.dayWidth);
o.value = {
startDate: p(q)
};
}
}, g = () => {
if (n.value && o.value && A.milestone) {
const U = {
...A.milestone,
...o.value
};
r("update:milestone", U), r("drag-end", U);
}
n.value = !1, o.value = null, document.removeEventListener("mousemove", w), document.removeEventListener("mouseup", g);
}, Q = Ce(() => {
var q;
const U = (q = o.value) != null && q.startDate ? new Date(o.value.startDate) : new Date(A.date);
if (!A.startDate || isNaN(new Date(A.date).getTime()))
return {
left: "0px",
top: "0px",
width: "auto",
height: "auto"
};
const K = Math.floor(
(U.getTime() - A.startDate.getTime()) / (1e3 * 60 * 60 * 24)
), j = Math.min(A.rowHeight, A.dayWidth * 1.2, 24);
return {
left: `${K * A.dayWidth + A.dayWidth / 2 - j / 2}px`,
top: `${(A.rowHeight - j) / 2}px`,
width: "auto",
height: "auto"
};
}), y = Ce(() => "var(--gantt-danger, #f56c6c)"), N = Ce(() => "var(--gantt-danger-light, #fab6b6)"), v = Ce(() => {
var U;
return ((U = A.milestone) == null ? void 0 : U.icon) || "diamond";
});
return Wr(() => {
n.value = !1, o.value = null, document.removeEventListener("mousemove", w), document.removeEventListener("mouseup", g);
}), (U, K) => (xA(), DA("div", {
class: Ke(["milestone", { dragging: n.value }]),
style: Tt(Q.value),
title: A.name || "里程碑",
onDblclick: c,
onMousedown: d
}, [
(xA(), DA("svg", U1, [
v.value === "diamond" ? (xA(), DA("g", L1, [
X("rect", {
x: "4",
y: "8",
width: "15",
height: "15",
rx: "6",
ry: "6",
fill: y.value,
stroke: N.value,
"stroke-width": "2"
}, null, 8, E1)
])) : v.value === "rocket" ? (xA(), DA("g", x1, K[0] || (K[0] = [
X("foreignObject", {
x: "0",
y: "0",
width: "24",
height: "24"
}, [
X("div", { class: "rocket-emoji" }, "🚀")
], -1)
]))) : (xA(), DA("g", I1, [
X("rect", {
x: "4",
y: "8",
width: "15",
height: "15",
rx: "6",
ry: "6",
fill: y.value,
stroke: N.value,
"stroke-width": "2"
}, null, 8, S1)
]))
])),
A.name ? (xA(), DA("span", H1, _A(A.name), 1)) : he("", !0)
], 46, b1));
}
}), N1 = /* @__PURE__ */ xr(D1, [["__scopeId", "data-v-2b6a4847"]]), k1 = {
success: "#67c23a",
// 绿色
warning: "#e6a23c",
// 黄色
error: "#f56c6c",
// 红色
info: "#909399"
// 灰色
};
let ni = null;
function _1() {
return ni || (ni = document.createElement("div"), ni.className = "message-container", ni.style.cssText = `
position: fixed;
top: 20px;
right: 20px;
z-index: 9999;
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 12px;
pointer-events: none;
`, document.body.appendChild(ni)), ni;
}
const no = /* @__PURE__ */ new Map(), Af = 1e3;
function Ch() {
return { showMessage: (e, A = "success", r) => {
const n = Date.now(), i = `${A}:${e}`, s = no.get(i);
if (!(r != null && r.allowDuplicate) && s && n - s < Af)
return;
no.set(i, n);
for (const [Q, y] of no.entries())
n - y > Af * 2 && no.delete(Q);
const o = document.createElement("div");
o.className = `message ${A}`, o.textContent = e, o.style.cssText = `
min-width: 180px;
max-width: 360px;
margin: 0;
padding: 12px 20px 12px 20px;
border-radius: 4px;
color: white;
font-size: 14px;
background: ${k1[A]};
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
pointer-events: auto;
opacity: 0;
display: flex;
align-items: center;
gap: 12px;
transform: translateY(-20px);
transition: opacity 0.25s, transform 0.25s;
position: relative;
`;
let c = !1;
const h = (r == null ? void 0 : r.closable) ?? !1;
if (h) {
const Q = document.createElement("button");
Q.innerHTML = '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>', Q.style.cssText = `
background: transparent;
border: none;
color: white;
cursor: pointer;
margin-left: 8px;
padding: 0;
display: flex;
align-items: center;
opacity: 0.7;
transition: opacity 0.2s;
`, Q.onmouseenter = () => Q.style.opacity = "1", Q.onmouseleave = () => Q.style.opacity = "0.7", Q.onclick = () => g(), o.appendChild(Q);
}
const p = _1();
p.appendChild(o), setTimeout(() => {
o.style.opacity = "0.98", o.style.transform = "translateY(0)";
}, 10);
const d = (r == null ? void 0 : r.duration) ?? (h ? 0 : 3e3);
let w;
!h && d > 0 && (w = window.setTimeout(() => g(), d));
function g() {
c || (c = !0, o.style.opacity = "0", o.style.transform = "translateY(-20px)", w && clearTimeout(w), setTimeout(() => {
o.parentNode && (p.removeChild(o), p.childElementCount === 0 && (p.remove(), ni = null));
}, 250));
}
} };
}
const T1 = { class: "el-input__wrapper" }, M1 = { class: "el-input__inner" }, P1 = ["value", "placeholder", "disabled"], O1 = { class: "el-input__suffix" }, K1 = { class: "el-input__suffix-inner" }, R1 = {
key: 1,
class: "el-input__icon"
}, G1 = {
key: 0,
class: "el-year-picker"
}, V1 = { class: "el-year-picker__header" }, j1 = { class: "el-year-picker__header-label" }, q1 = { class: "el-year-picker__content" }, W1 = ["onClick"], X1 = {
key: 1,
class: "el-month-picker"
}, z1 = { class: "el-month-picker__header" }, J1 = { class: "el-month-picker__content" }, Y1 = ["onClick"], $1 = {
key: 2,
class: "el-date-picker__content-wrapper"
}, Z1 = { class: "el-date-picker__header" }, A0 = { class: "el-date-picker__header-label" }, e0 = { class: "el-date-picker__content" }, t0 = { class: "el-date-table__header" }, r0 = { class: "el-date-table__body" }, n0 = ["onClick"], i0 = { class: "el-date-table__cell-inner" }, a0 = /* @__PURE__ */ Er({
__name: "DatePicker",
props: {
modelValue: { default: "" },
type: { default: "date" },
placeholder: { default: "请选择日期" },
startPlaceholder: { default: "开始日期" },
endPlaceholder: { default: "结束日期" },
disabled: { type: Boolean, default: !1 },
clearable: { type: Boolean, default: !0 },
size: { default: "default" },
format: { default: "YYYY-MM-DD" },
valueFormat: { default: "YYYY-MM-DD" },
rangeSeparator: { default: "至" }
},
emits: ["update:modelValue", "change", "focus", "blur"],
setup(t, { emit: e }) {
const A = t, r = e, n = KA(!1), i = KA(!1), s = KA(!1), o = KA(!1), c = KA(!1), h = KA(), p = KA(), d = KA(null), w = KA(0), g = KA((/* @__PURE__ */ new Date()).getFullYear()), Q = KA((/* @__PURE__ */ new Date()).getMonth()), y = KA(Math.floor((/* @__PURE__ */ new Date()).getFullYear() / 10) * 10), N = KA(""), v = KA(""), U = KA(""), K = KA("start"), j = ($) => {
if (!$) return "";
const BA = new Date($);
return `${BA.getFullYear()}-${String(BA.getMonth() + 1).padStart(2, "0")}-${String(BA.getDate()).padStart(2, "0")}`;
}, q = Ce(() => {
if (A.type === "daterange") {
const $ = v.value ? j(v.value) : "", BA = U.value ? j(U.value) : "";
return $ && BA ? `${$} ${A.rangeSeparator} ${BA}` : $ || BA || "";
}
return N.value ? j(N.value) : "";
});
$t(
() => A.modelValue,
($) => {
A.type === "daterange" ? Array.isArray($) && $.length === 2 ? (v.value = $[0] || "", U.value = $[1] || "") : (v.value = "", U.value = "") : N.value = $ || "";
},
{ immediate: !0 }
);
const V = () => {
A.type === "daterange" ? (v.value = "", U.value = "", r("update:modelValue", ["", ""]), r("change", ["", ""])) : (N.value = "", r("update:modelValue", ""), r("change", "")), s.value = !1;
}, z = () => {
if (!A.disabled && (s.value = !s.value, s.value)) {
tA.x = window.scrollX, tA.y = window.scrollY, w.value++;
let $;
A.type === "daterange" ? $ = v.value ? new Date(v.value) : /* @__PURE__ */ new Date() : $ = N.value ? new Date(N.value) : /* @__PURE__ */ new Date(), g.value = $.getFullYear(), Q.value = $.getMonth();
}
}, H = () => {
s.value = !1, o.value = !1, c.value = !1, n.value = !1, d.value && (clearTimeout(d.value), d.value = null);
}, G = ($) => {
var sA, pA;
const BA = $.target;
!((sA = h.value) != null && sA.contains(BA)) && !((pA = p.value) != null && pA.contains(BA)) && H();
}, tA = { x: 0, y: 0 }, x = () => {
if (s.value) {
const $ = window.scrollX, BA = window.scrollY, sA = Math.abs($ - tA.x), pA = Math.abs(BA - tA.y);
sA < 50 && pA < 50 ? w.value++ : H(), tA.x = $, tA.y = BA;
}
}, F = () => {
s.value && w.value++;
}, _ = Ce(() => {
const $ = new Date(g.value, Q.value, 1), BA = new Date($);
BA.setDate(BA.getDate() - $.getDay());
const sA = [];
for (let pA = 0; pA < 42; pA++) {
const FA = new Date(BA);
FA.setDate(BA.getDate() + pA);
const UA = `${FA.getFullYear()}-${String(FA.getMonth() + 1).padStart(2, "0")}-${String(FA.getDate()).padStart(2, "0")}`, SA = FA.getMonth() === Q.value, QA = UA === (/* @__PURE__ */ new Date()).toISOString().split("T")[0], yA = A.type === "daterange" ? UA === v.value || UA === U.value : UA === N.value, PA = A.type === "daterange" && v.value && U.value ? UA >= v.value && UA <= U.value : !1;
sA.push({
date: FA,
dateStr: UA,
day: FA.getDate(),
isCurrentMonth: SA,
isToday: QA,
isSelected: yA,
isInRange: PA
});
}
return sA;
}), P = ($) => {
if (A.type === "daterange")
if (K.value === "start" || !v.value || v.value && U.value)
v.value = $, U.value = "", K.value = "end";
else {
$ < v.value ? (U.value = v.value, v.value = $) : U.value = $, K.value = "start";
const BA = [v.value, U.value];
r("update:modelValue", BA), r("change", BA), setTimeout(() => {
H();
}, 150);
}
else
N.value = $, r("update:modelValue", $), r("change", $), setTimeout(() => {
H();
}, 150);
}, lA = ($) => {
$ && ($.preventDefault(), $.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), Q.value === 0 ? (Q.value = 11, g.value--) : Q.value--;
}, oA = ($) => {
$ && ($.preventDefault(), $.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), Q.value === 11 ? (Q.value = 0, g.value++) : Q.value++;
}, iA = ($) => {
$ && ($.preventDefault(), $.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), g.value--;
}, k = ($) => {
$ && ($.preventDefault(), $.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), g.value++;
}, W = ($) => {
$ && ($.preventDefault(), $.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), o.value = !0, c.value = !1, y.value = Math.floor(g.value / 10) * 10;
}, rA = ($) => {
$ && ($.preventDefault(), $.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), c.value = !0, o.value = !1;
}, OA = ($, BA) => {
BA && (BA.preventDefault(), BA.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), g.value = $, o.value = !1, c.value = !0;
}, L = ($, BA) => {
BA && (BA.preventDefault(), BA.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), Q.value = $, c.value = !1;
}, M = ($) => {
$ && ($.preventDefault(), $.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), y.value -= 10;
}, R = ($) => {
$ && ($.preventDefault(), $.stopPropagation()), d.value && (clearTimeout(d.value), d.value = null), y.value += 10;
}, J = Ce(() => {
const $ = [];
for (let BA = 0; BA < 10; BA++)
$.push(y.value + BA);
return $;
}), eA = [
"一月",
"二月",
"三月",
"四月",
"五月",
"六月",
"七月",
"八月",
"九月",
"十月",
"十一月",
"十二月"
], uA = ["日", "一", "二", "三", "四", "五", "六"];
jr(() => {
document.addEventListener("click", G), window.addEventListener("scroll", x, !0), window.addEventListener("resize", F), tA.x = window.scrollX, tA.y = window.scrollY;
}), Wr(() => {
document.removeEventListener("click", G), window.removeEventListener("scroll", x, !0), window.removeEventListener("resize", F), d.value && (clearTimeout(d.value), d.value = null);
});
const dA = ($) => {
d.value && (clearTimeout(d.value), d.value = null), n.value = !0, r("focus", $);
}, gA = ($) => {
d.value = setTimeout(() => {
n.value = !1, H(), r("blur", $);
}, 150);
}, MA = () => {
d.value && (clearTimeout(d.value), d.value = null);
}, NA = () => {
d.value = setTimeout(() => {
H();
}, 150);
}, RA = () => {
i.value = !0;
}, GA = () => {
i.value = !1;
}, ee = Ce(() => [
"el-date-picker",
`el-date-picker--${A.size}`,
{
"is-disabled": A.disabled,
"is-focused": n.value,
"is-range": A.type === "daterange"
}
]), wA = Ce(() => !A.clearable || A.disabled ? !1 : A.type === "daterange" ? (v.value || U.value) && i.value : N.value && i.value), D = Ce(() => {
if (!h.value || !s.value) return {};
const $ = h.value.getBoundingClientRect(), BA = 280, sA = 300, pA = 4, FA = window.innerWidth, UA = window.innerHeight, SA = {
position: "fixed",
zIndex: "10000"
}, QA = UA - $.bottom, yA = $.top;
QA >= sA + pA || QA >= yA ? SA.top = `${$.bottom + pA}px` : SA.top = `${$.top - sA - pA}px`;
const PA = FA - $.left, ZA = $.right;
if (PA >= BA)
SA.left = `${$.left}px`;
else if (ZA >= BA)
SA.left = `${$.right - BA}px`;
else {
const ne = $.left + ($.width - BA) / 2, VA = pA, Ve = FA - BA - pA;
SA.left = `${Math.max(VA, Math.min(ne, Ve))}px`;
}
const ue = parseFloat(SA.top), YA = parseFloat(SA.left);
return ue < pA ? SA.top = `${pA}px` : ue + sA > UA - pA && (SA.top = `${UA - sA - pA}px`), YA < pA ? SA.left = `${pA}px` : YA + BA > FA - pA && (SA.left = `${FA - BA - pA}px`), SA;
});
return ($, BA) => (xA(), DA("div", {
class: Ke(ee.value),
onMouseenter: RA,
onMouseleave: GA
}, [
X("div", {
ref_key: "inputRef",
ref: h,
class: "el-input",
onClick: z
}, [
X("div", T1, [
X("div", M1, [
X("input", {
value: q.value,
type: "text",
class: "el-input__inner-input",
placeholder: $.type === "daterange" ? `${$.startPlaceholder} ${$.rangeSeparator} ${$.endPlaceholder}` : $.placeholder,
disabled: $.disabled,
readonly: "",
onFocus: dA,
onBlur: gA
}, null, 40, P1)
]),
X("div", O1, [
X("div", K1, [
wA.value ? (xA(), DA("button", {
key: 0,
type: "button",
class: "el-input__clear",
onClick: Kn(V, ["stop"])
}, BA[3] || (BA[3] = [
X("svg", {
class: "el-icon",
viewBox: "0 0 1024 1024"
}, [
X("path", {
fill: "currentColor",
d: "M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"
})
], -1)
]))) : (xA(), DA("span", R1, BA[4] || (BA[4] = [
X("svg", {
class: "el-icon",
viewBox: "0 0 1024 1024"
}, [
X("path", {
fill: "currentColor",
d: "M128 384v512h768V384H128zm-32-64h832a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V352a32 32 0 0 1 32-32z"
}),
X("path", {
fill: "currentColor",
d: "M288 128a32 32 0 0 1 64 0v192a32 32 0 0 1-64 0V128zm384 0a32 32 0 0 1 64 0v192a32 32 0 0 1-64 0V128z"
}),
X("path", {
fill: "currentColor",
d: "M96 320h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32z"
})
], -1)
])))
])
])
])
], 512),
(xA(), li(Hg, { to: "body" }, [
un(Dg, { name: "picker-fade" }, {
default: Ng(() => [
s.value ? (xA(), DA("div", {
key: 0,
ref_key: "pickerRef",
ref: p,
class: "el-picker-panel",
style: Tt(D.value),
tabindex: "-1",
onFocus: MA,
onBlur: NA
}, [
o.value ? (xA(), DA("div", G1, [
X("div", V1, [
X("button", {
type: "button",
class: "el-picker-panel__icon-btn",
onClick: M
}, " << "),
X("span", j1, _A(y.value) + " - " + _A(y.value + 9), 1),
X("button", {
type: "button",
class: "el-picker-panel__icon-btn",
onClick: R
}, " >> ")
]),
X("div", q1, [
(xA(!0), DA(et, null, yt(J.value, (sA) => (xA(), DA("div", {
key: sA,
class: Ke(["el-year-picker__item", { "is-current": sA === g.value }]),
onClick: (pA) => OA(sA, pA)
}, _A(sA), 11, W1))), 128))
])
])) : c.value ? (xA(), DA("div", X1, [
X("div", z1, [
X("button", {
type: "button",
class: "el-picker-panel__icon-btn",
onClick: iA
}, " << "),
X("span", {
class: "el-month-picker__header-label",
onClick: BA[0] || (BA[0] = (sA) => W(sA))
}, _A(g.value) + "年 ", 1),
X("button", {
type: "button",
class: "el-picker-panel__icon-btn",
onClick: k
}, " >> ")
]),
X("div", J1, [
(xA(), DA(et, null, yt(eA, (sA, pA) => X("div", {
key: pA,
class: Ke(["el-month-picker__item", { "is-current": pA === Q.value }]),
onClick: (FA) => L(pA, FA)
}, _A(sA), 11, Y1)), 64))
])
])) : (xA(), DA("div", $1, [
X("div", Z1, [
X("button", {
type: "button",
class: "el-picker-panel__icon-btn",
onClick: iA
}, " << "),
X("button", {
type: "button",
class: "el-picker-panel__icon-btn",
onClick: lA
}, " < "),
X("span", A0, [
X("span", {
class: "el-date-picker__header-year",
onClick: BA[1] || (BA[1] = (sA) => W(sA))
}, _A(g.value) + "年 ", 1),
X("span", {
class: "el-date-picker__header-month",
onClick: BA[2] || (BA[2] = (sA) => rA(sA))
}, _A(eA[Q.value]), 1)
]),
X("button", {
type: "button",
class: "el-picker-panel__icon-btn",
onClick: oA
}, " > "),
X("button", {
type: "button",
class: "el-picker-panel__icon-btn",
onClick: k
}, " >> ")
]),
X("div", e0, [
X("div", t0, [
(xA(), DA(et, null, yt(uA, (sA) => X("div", {
key: sA,
class: "el-date-table__header-cell"
}, _A(sA), 1)), 64))
]),
X("div", r0, [
(xA(!0), DA(et, null, yt(_.value, (sA) => (xA(), DA("div", {
key: `${sA.date.getTime()}`,
class: Ke(["el-date-table__cell", {
"is-other-month": !sA.isCurrentMonth,
"is-today": sA.isToday,
"is-selected": sA.isSelected,
"is-in-range": sA.isInRange,
"is-range-start": $.type === "daterange" && sA.dateStr === v.value,
"is-range-end": $.type === "daterange" && sA.dateStr === U.value
}]),
onClick: (pA) => P(sA.dateStr)
}, [
X("div", i0, _A(sA.day), 1)
], 10, n0))), 128))
])
])
]))
], 36)) : he("", !0)
]),
_: 1
})
]))
], 34));
}
}), kc = /* @__PURE__ */ xr(a0, [["__scopeId", "data-v-fec0bd04"]]), s0 = { class: "gantt-confirm-header" }, o0 = { class: "gantt-confirm-title" }, l0 = { class: "gantt-confirm-content" }, c0 = { class: "gantt-confirm-footer" }, u0 = { class: "gantt-confirm-footer-right" }, f0 = /* @__PURE__ */ Er({
__name: "GanttConfirmDialog",
props: {
visible: Boolean,
title: { type: String, default: "确认" },
message: { type: String, default: "" },
confirmText: { type: String, default: "确认" },
cancelText: { type: String, default: "取消" },
yesText: { type: String, default: "是" },
noText: { type: String, default: "否" },
type: { type: String, default: "confirm-cancel" }
// 'confirm-cancel' | 'yes-no-cancel'
},
emits: ["confirm", "cancel", "yes", "no"],
setup(t, { emit: e }) {
const A = t, r = e, n = () => r("confirm"), i = () => r("cancel"), s = () => r("yes"), o = () => r("no");
return (c, h) => t.visible ? (xA(), DA("div", {
key: 0,
class: "gantt-confirm-overlay",
onClick: i
}, [
X("div", {
class: "gantt-confirm-dialog",
onClick: h[0] || (h[0] = Kn(() => {
}, ["stop"]))
}, [
X("div", s0, [
X("h4", o0, _A(A.title), 1)
]),
X("div", l0, [
X("p", null, _A(A.message), 1)
]),
X("div", c0, [
A.type === "yes-no-cancel" ? (xA(), DA(et, { key: 0 }, [
X("button", {
type: "button",
class: "btn btn-default",
onClick: i
}, _A(A.cancelText), 1),
X("div", u0, [
X("button", {
type: "button",
class: "btn btn-warning",
onClick: o
}, _A(A.noText), 1),
X("button", {
type: "button",
class: "btn btn-danger",
onClick: s
}, _A(A.yesText), 1)
])
], 64)) : (xA(), DA(et, { key: 1 }, [
X("button", {
type: "button",
class: "btn btn-default",
onClick: i
}, _A(A.cancelText), 1),
X("button", {
type: "button",
class: "btn btn-danger",
onClick: n
}, _A(A.confirmText), 1)
], 64))
])
])
])) : he("", !0);
}
}), yh = /* @__PURE__ */ xr(f0, [["__scopeId", "data-v-200a3102"]]), h0 = { class: "drawer-header" }, d0 = { class: "drawer-title" }, g0 = { class: "drawer-body" }, p0 = { class: "form-group" }, B0 = {
class: "form-label",
for: "task-name"
}, w0 = ["placeholder"], v0 = {
key: 0,
class: "error-text"
}, m0 = { class: "form-group" }, C0 = {
class: "form-label",
for: "task-type"
}, y0 = { value: "story" }, F0 = { value: "task" }, Q0 = { value: "bug" }, b0 = {
key: 0,
class: "error-text"
}, U0 = { class: "form-group" }, L0 = {
class: "form-label",
for: "task-assignee"
}, E0 = { value: "" }, x0 = { class: "form-group" }, I0 = {
class: "form-label",
for: "task-parent"
}, S0 = { value: void 0 }, H0 = ["value"], D0 = { class: "form-row" }, N0 = { class: "form-group" }, k0 = {
class: "form-label",
for: "task-start-date"
}, _0 = {
key: 0,
class: "error-text"
}, T0 = { class: "form-group" }, M0 = {
class: "form-label",
for: "task-end-date"
}, P0 = {
key: 0,
class: "error-text"
}, O0 = { class: "form-group" }, K0 = {
class: "form-label",
for: "task-predecessor"
}, R0 = { value: "" }, G0 = ["value"], V0 = { class: "form-row" }, j0 = { class: "form-group" }, q0 = {
class: "form-label",
for: "task-estimated-hours"
}, W0 = { class: "form-group" }, X0 = {
class: "form-label",
for: "task-actual-hours"
}, z0 = { class: "form-group" }, J0 = {
class: "form-label",
for: "task-progress"
}, Y0 = { class: "progress-container" }, $0 = { class: "progress-input-group" }, Z0 = { class: "form-group" }, Ap = {
class: "form-label",
for: "task-description"
}, ep = ["placeholder"], tp = { class: "drawer-footer" }, rp = { class: "footer-left" }, np = ["disabled"], ip = {
key: 0,
class: "loading-spinner"
}, ap = { class: "footer-right" }, sp = ["disabled"], op = {
key: 0,
class: "loading-spinner"
}, lp = /* @__PURE__ */ Er({
__name: "TaskDrawer",
props: {
visible: { type: Boolean, default: !1 },
task: { default: null },
isEdit: { type: Boolean, default: !1 },
onDelete: { type: Function, default: void 0 }
},
emits: ["update:visible", "submit", "close", "delete"],
setup(t, { emit: e }) {
const A = t, r = e, { t: n } = hi(), { showMessage: i } = Ch(), s = KA(!1), o = KA(A.visible), c = KA(!1), h = Ce(() => {
var k;
return ((k = A.task) == null ? void 0 : k.type) === "story" ? "yes-no-cancel" : "confirm-cancel";
}), p = Ce(() => {
var k, W, rA;
return ((k = A.task) == null ? void 0 : k.type) === "story" ? n.value.confirmDeleteStory.replace("{name}", ((W = A.task) == null ? void 0 : W.name) || "") : n.value.confirmDeleteTask.replace("{name}", ((rA = A.task) == null ? void 0 : rA.name) || "");
}), d = Ro({
id: 0,
// 默认值,创建时会被重新分配
name: "",
type: "task",
assignee: "",
startDate: "",
endDate: "",
predecessor: "",
estimatedHours: 0,
actualHours: 0,
progress: 0,
description: "",
parentId: void 0
// 上级任务ID
}), w = KA([]), g = Ce(() => w.value.filter(
(k) => {
var W;
return k.type === "task" && k.id !== ((W = A.task) == null ? void 0 : W.id);
}
// 排除当前任务自己
)), Q = Ce(() => w.value.filter(
(k) => {
var W;
return k.id !== ((W = A.task) == null ? void 0 : W.id) && // 排除当前任务自己
(k.type === "story" || k.type === "task");
}
// 只显示story和task类型
).map((k) => ({
...k,
displayName: `${k.name} (${y(k.type || "task")})`
}))), y = (k) => {
var W;
return ((W = n.value.taskTypeMap) == null ? void 0 : W[k]) || k;
}, N = Ce(() => ({
"--progress-percent": `${d.progress || 0}%`
})), v = KA("0"), U = (k) => {
const W = k.target;
let rA = W.value;
rA = rA.replace(/[^\d]/g, ""), W.value = rA, v.value = rA;
}, K = () => {
const k = v.value;
let W = parseInt(k) || 0;
W < 0 || isNaN(W) ? W = 0 : W > 100 && (W = 100), d.progress = W, v.value = W.toString();
}, j = (k) => {
const W = k.target;
setTimeout(() => {
W.select();
}, 0);
}, q = (k) => {
const W = k.key, rA = [
"Backspace",
"Delete",
"Tab",
"Escape",
"Enter",
"ArrowLeft",
"ArrowRight",
"ArrowUp",
"ArrowDown",
"Home",
"End",
"Control",
"Meta",
"Alt",
"Shift"
], OA = /^\d$/.test(W), L = rA.includes(W);
k.ctrlKey || k.metaKey || !OA && !L && k.preventDefault();
}, V = Ro({
name: "",
type: "",
startDate: "",
endDate: ""
});
$t(
() => A.visible,
(k) => {
o.value = k, k && (z(), A.task && A.isEdit && Object.assign(d, A.task), window.dispatchEvent(new CustomEvent("request-task-list")));
}
), $t(o, (k) => {
r("update:visible", k);
});
const z = () => {
Object.assign(d, {
name: "",
type: "task",
assignee: "",
startDate: "",
endDate: "",
predecessor: "",
estimatedHours: 0,
actualHours: 0,
progress: 0,
description: "",
parentId: void 0
}), Object.keys(V).forEach((k) => {
V[k] = "";
});
}, H = () => {
var W;
let k = !0;
return Object.keys(V).forEach((rA) => {
V[rA] = "";
}), (W = d.name) != null && W.trim() ? d.name.length > 50 && (V.name = n.value.taskNameTooLong, k = !1) : (V.name = n.value.taskNameRequired, k = !1), d.type || (V.type = n.value.taskTypeRequired, k = !1), d.startDate || (V.startDate = n.value.startDateRequired, k = !1), d.endDate ? d.startDate && new Date(d.endDate) < new Date(d.startDate) && (V.endDate = n.value.endDateInvalid, k = !1) : (V.endDate = n.value.endDateRequired, k = !1), k;
}, G = () => {
o.value = !1, r("close");
}, tA = () => {
G();
}, x = async () => {
if (H())
try {
s.value = !0;
const k = {
...d,
id: A.isEdit && A.task ? A.task.id : Date.now()
};
r("submit", k), i(A.isEdit ? n.value.taskUpdateSuccess : n.value.taskCreateSuccess, "success"), G();
} catch {
i(n.value.operationFailed, "error");
} finally {
s.value = !1;
}
}, F = () => {
c.value = !0;
}, _ = () => {
if (c.value = !1, A.task && A.isEdit)
try {
s.value = !0, r("delete", A.task), G();
} catch {
i(n.value.taskDeleteFailed, "error");
} finally {
s.value = !1;
}
}, P = () => {
c.value = !1;
}, lA = () => {
if (c.value = !1, A.task && A.isEdit)
try {
s.value = !0, r("delete", A.task, !0), G();
} catch {
i(n.value.taskDeleteFailed, "error");
} finally {
s.value = !1;
}
}, oA = () => {
if (c.value = !1, A.task && A.isEdit)
try {
s.value = !0, r("delete", A.task, !1), G();
} catch {
i(n.value.taskDeleteFailed, "error");
} finally {
s.value = !1;
}
}, iA = (k) => {
w.value = k.detail || [];
};
return jr(() => {
window.addEventListener("task-list-updated", iA), window.dispatchEvent(new CustomEvent("request-task-list"));
}), Wr(() => {
window.removeEventListener("task-list-updated", iA);
}), $t(
() => d.progress,
(k) => {
v.value = (k || 0).toString();
},
{ immediate: !0 }
), (k, W) => o.value ? (xA(), DA("div", {
key: 0,
class: "drawer-overlay",
onClick: tA
}, [
X("div", {
class: "drawer-container",
onClick: W[12] || (W[12] = Kn(() => {
}, ["stop"]))
}, [
X("div", h0, [
X("h3", d0, _A(k.isEdit ? oe(n).editTask : oe(n).newTask), 1),
X("button", {
class: "drawer-close-btn",
type: "button",
onClick: G
}, W[13] || (W[13] = [
X("svg", {
class: "close-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor"
}, [
X("line", {
x1: "18",
y1: "6",
x2: "6",
y2: "18"
}),
X("line", {
x1: "6",
y1: "6",
x2: "18",
y2: "18"
})
], -1)
]))
]),
X("div", g0, [
X("form", {
class: "task-form",
onSubmit: Kn(x, ["prevent"])
}, [
X("div", p0, [
X("label", B0, [
cr(_A(oe(n).taskName) + " ", 1),
W[14] || (W[14] = X("span", { class: "required" }, "*", -1))
]),
or(X("input", {
id: "task-name",
"onUpdate:modelValue": W[0] || (W[0] = (rA) => d.name = rA),
type: "text",
class: Ke(["form-input", { error: V.name }]),
placeholder: oe(n).taskNamePlaceholder
}, null, 10, w0), [
[Hn, d.name]
]),
V.name ? (xA(), DA("span", v0, _A(V.name), 1)) : he("", !0)
]),
X("div", m0, [
X("label", C0, [
cr(_A(oe(n).taskType) + " ", 1),
W[15] || (W[15] = X("span", { class: "required" }, "*", -1))
]),
or(X("select", {
id: "task-type",
"onUpdate:modelValue": W[1] || (W[1] = (rA) => d.type = rA),
class: Ke(["form-select", { error: V.type }])
}, [
X("option", y0, _A(oe(n).taskTypeMap.story), 1),
X("option", F0, _A(oe(n).taskTypeMap.task), 1),
X("option", Q0, _A(oe(n).taskTypeMap.bug), 1)
], 2), [
[ro, d.type]
]),
V.type ? (xA(), DA("span", b0, _A(V.type), 1)) : he("", !0)
]),
X("div", U0, [
X("label", L0, _A(oe(n).assignee), 1),
or(X("select", {
id: "task-assignee",
"onUpdate:modelValue": W[2] || (W[2] = (rA) => d.assignee = rA),
class: "form-select"
}, [
X("option", E0, _A(oe(n).selectAssignee), 1),
W[16] || (W[16] = Nn('<option value="张三" data-v-077ca457>张三</option><option value="李四" data-v-077ca457>李四</option><option value="王五" data-v-077ca457>王五</option><option value="赵六" data-v-077ca457>赵六</option><option value="钱七" data-v-077ca457>钱七</option>', 5))
], 512), [
[ro, d.assignee]
])
]),
X("div", x0, [
X("label", I0, _A(oe(n).parentTask), 1),
or(X("select", {
id: "task-parent",
"onUpdate:modelValue": W[3] || (W[3] = (rA) => d.parentId = rA),
class: "form-select"
}, [
X("option", S0, _A(oe(n).noParentTask), 1),
(xA(!0), DA(et, null, yt(Q.value, (rA) => (xA(), DA("option", {
key: rA.id,
value: rA.id
}, _A(rA.displayName), 9, H0))), 128))
], 512), [
[ro, d.parentId]
])
]),
X("div", D0, [
X("div", N0, [
X("label", k0, [
cr(_A(oe(n).startDate) + " ", 1),
W[17] || (W[17] = X("span", { class: "required" }, "*", -1))
]),
un(kc, {
id: "task-start-date",
modelValue: d.startDate,
"onUpdate:modelValue": W[4] || (W[4] = (rA) => d.startDate = rA),
type: "date",
placeholder: oe(n).startDateRequired,
class: Ke({ error: V.startDate })
}, null, 8, ["modelValue", "placeholder", "class"]),
V.startDate ? (xA(), DA("span", _0, _A(V.startDate), 1)) : he("", !0)
]),
X("div", T0, [
X("label", M0, [
cr(_A(oe(n).endDate) + " ", 1),
W[18] || (W[18] = X("span", { class: "required" }, "*", -1))
]),
un(kc, {
id: "task-end-date",
modelValue: d.endDate,
"onUpdate:modelValue": W[5] || (W[5] = (rA) => d.endDate = rA),
type: "date",
placeholder: oe(n).endDateRequired,
class: Ke({ error: V.endDate })
}, null, 8, ["modelValue", "placeholder", "class"]),
V.endDate ? (xA(), DA("span", P0, _A(V.endDate), 1)) : he("", !0)
])
]),
X("div", O0, [
X("label", K0, _A(oe(n).predecessor), 1),
or(X("select", {
id: "task-predecessor",
"onUpdate:modelValue": W[6] || (W[6] = (rA) => d.predecessor = rA),
class: "form-select"
}, [
X("option", R0, _A(oe(n).predecessorPlaceholder), 1),
(xA(!0), DA(et, null, yt(g.value, (rA) => (xA(), DA("option", {
key: rA.id,
value: rA.id
}, _A(rA.name) + " (ID: " + _A(rA.id) + ") ", 9, G0))), 128))
], 512), [
[ro, d.predecessor]
])
]),
X("div", V0, [
X("div", j0, [
X("label", q0, _A(oe(n).estimatedHours), 1),
or(X("input", {
id: "task-estimated-hours",
"onUpdate:modelValue": W[7] || (W[7] = (rA) => d.estimatedHours = rA),
type: "number",
class: "form-input",
placeholder: "0",
min: "0",
max: "999"
}, null, 512), [
[
Hn,
d.estimatedHours,
void 0,
{ number: !0 }
]
])
]),
X("div", W0, [
X("label", X0, _A(oe(n).actualHours), 1),
or(X("input", {
id: "task-actual-hours",
"onUpdate:modelValue": W[8] || (W[8] = (rA) => d.actualHours = rA),
type: "number",
class: "form-input",
placeholder: "0",
min: "0",
max: "999"
}, null, 512), [
[
Hn,
d.actualHours,
void 0,
{ number: !0 }
]
])
])
]),
X("div", z0, [
X("label", J0, _A(oe(n).progress), 1),
X("div", Y0, [
or(X("input", {
id: "task-progress",
"onUpdate:modelValue": W[9] || (W[9] = (rA) => d.progress = rA),
type: "range",
class: "progress-slider",
style: Tt(N.value),
min: "0",
max: "100",
step: "5"
}, null, 4), [
[
Hn,
d.progress,
void 0,
{ number: !0 }
]
]),
X("div", $0, [
or(X("input", {
"onUpdate:modelValue": W[10] || (W[10] = (rA) => v.value = rA),
type: "text",
class: "progress-input",
placeholder: "0",
maxlength: "3",
onBlur: K,
onKeyup: kg(K, ["enter"]),
onInput: U,
onFocus: j,
onKeydown: q
}, null, 544), [
[Hn, v.value]
]),
W[19] || (W[19] = X("span", { class: "progress-unit" }, "%", -1))
])
])
]),
X("div", Z0, [
X("label", Ap, _A(oe(n).description), 1),
or(X("textarea", {
id: "task-description",
"onUpdate:modelValue": W[11] || (W[11] = (rA) => d.description = rA),
class: "form-textarea",
placeholder: oe(n).descriptionPlaceholder,
rows: "3"
}, null, 8, ep), [
[Hn, d.description]
])
])
], 32)
]),
X("div", tp, [
X("div", rp, [
k.isEdit && k.task ? (xA(), DA("button", {
key: 0,
type: "button",
class: "btn btn-danger",
disabled: s.value,
onClick: F
}, [
s.value ? (xA(), DA("span", ip)) : he("", !0),
cr(" " + _A(oe(n).delete), 1)
], 8, np)) : he("", !0),
un(yh, {
visible: c.value,
title: oe(n).delete,
type: h.value,
message: p.value,
"confirm-text": oe(n).confirm,
"cancel-text": oe(n).cancel,
"yes-text": oe(n).storyDeleteYes,
"no-text": oe(n).storyDeleteNo,
onConfirm: _,
onYes: lA,
onNo: oA,
onCancel: P
}, null, 8, ["visible", "title", "type", "message", "confirm-text", "cancel-text", "yes-text", "no-text"])
]),
X("div", ap, [
X("button", {
type: "button",
class: "btn btn-default",
onClick: G
}, _A(oe(n).cancel), 1),
X("button", {
type: "button",
class: "btn btn-primary",
disabled: s.value,
onClick: x
}, [
s.value ? (xA(), DA("span", op)) : he("", !0),
cr(" " + _A(k.isEdit ? oe(n).update : oe(n).create), 1)
], 8, sp)
])
])
])
])) : he("", !0);
}
}), cp = /* @__PURE__ */ xr(lp, [["__scopeId", "data-v-077ca457"]]), up = { class: "milestone-dialog-header" }, fp = { class: "milestone-dialog-title" }, hp = ["title"], dp = { class: "milestone-dialog-content" }, gp = { class: "milestone-form-row" }, pp = { class: "milestone-form-item milestone-form-item-full" }, Bp = {
class: "milestone-form-label required",
for: "milestone-name"
}, wp = ["placeholder"], vp = {
key: 0,
class: "milestone-form-error"
}, mp = { class: "milestone-form-row" }, Cp = { class: "milestone-form-item" }, yp = {
class: "milestone-form-label required",
for: "milestone-date"
}, Fp = {
key: 0,
class: "milestone-form-error"
}, Qp = { class: "milestone-form-item" }, bp = {
class: "milestone-form-label",
for: "milestone-icon"
}, Up = ["aria-expanded"], Lp = { class: "selected-icon" }, Ep = {
key: 0,
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, xp = {
key: 1,
class: "rocket-emoji-mini"
}, Ip = {
key: 0,
class: "milestone-icon-options"
}, Sp = { class: "milestone-form-row" }, Hp = { class: "milestone-form-item milestone-form-item-full" }, Dp = {
class: "milestone-form-label",
for: "milestone-description"
}, Np = { class: "textarea-wrapper" }, kp = ["placeholder"], _p = { class: "textarea-footer" }, Tp = { class: "char-count" }, Mp = { class: "milestone-dialog-footer" }, Pp = { class: "milestone-dialog-footer-left" }, Op = { class: "milestone-dialog-footer-right" }, Kp = ["disabled"], Rp = /* @__PURE__ */ Er({
__name: "MilestoneDialog",
props: {
visible: { type: Boolean },
milestone: {}
},
emits: ["update:visible", "close", "save", "delete"],
setup(t, { emit: e }) {
const A = t, r = e, n = Ro({
name: "",
startDate: "",
assignee: "",
type: "milestone",
icon: "diamond",
description: ""
}), i = Ro({
name: "",
startDate: ""
}), s = KA(!1), o = KA(!1), c = KA(null), h = () => {
const V = c.value;
V && (V.style.height = "auto", V.style.height = `${Math.min(V.scrollHeight, 120)}px`);
};
$t(
() => A.milestone,
(V) => {
V ? Object.assign(n, {
id: V.id,
name: V.name || "",
startDate: V.startDate || "",
assignee: V.assignee || "",
type: V.type || "milestone",
icon: V.icon || "diamond",
description: V.description || ""
}) : Object.assign(n, {
id: void 0,
name: "",
startDate: "",
assignee: "",
type: "milestone",
icon: "diamond",
description: ""
}), i.name = "", i.startDate = "";
},
{ immediate: !0 }
);
const p = () => {
i.name = "", i.startDate = "";
let V = !0;
return n.name.trim() || (i.name = q("milestoneNameRequired"), V = !1), n.startDate || (i.startDate = q("milestoneDateRequired"), V = !1), V;
}, d = Ce(() => n.name.trim() && n.startDate), w = (V) => {
n.icon = V, s.value = !1;
}, g = () => {
p() && (r("save", { ...n }), U());
}, Q = () => {
n.id && (o.value = !0);
}, y = () => {
n.id && (r("delete", n.id), o.value = !1, U());
}, N = () => {
o.value = !1;
}, v = Ce(() => A.milestone && A.milestone.id), U = () => {
s.value = !1, r("update:visible", !1), r("close");
}, K = () => {
U();
}, { t: j } = hi(), q = (V) => j.value[V] || V;
return (V, z) => {
var H;
return V.visible ? (xA(), DA("div", {
key: 0,
class: "milestone-dialog-overlay",
onClick: K
}, [
X("div", {
class: "milestone-dialog",
onClick: z[6] || (z[6] = Kn(() => {
}, ["stop"]))
}, [
X("div", up, [
X("h3", fp, [
z[7] || (z[7] = X("svg", {
class: "milestone-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, [
X("g", { transform: "rotate(45 12 12)" }, [
X("rect", {
x: "4",
y: "4",
width: "16",
height: "16",
rx: "4",
ry: "4",
fill: "currentColor",
opacity: "0.1"
}),
X("rect", {
x: "4",
y: "4",
width: "16",
height: "16",
rx: "4",
ry: "4",
stroke: "currentColor",
fill: "none"
})
])
], -1)),
cr(" " + _A(v.value ? oe(j).editMilestone : oe(j).newMilestone), 1)
]),
X("button", {
class: "milestone-dialog-close",
title: q("close"),
onClick: U
}, "×", 8, hp)
]),
X("div", dp, [
X("form", {
class: "milestone-form",
onSubmit: Kn(g, ["prevent"])
}, [
X("div", gp, [
X("div", pp, [
X("label", Bp, _A(q("milestoneName")), 1),
or(X("input", {
id: "milestone-name",
"onUpdate:modelValue": z[0] || (z[0] = (G) => n.name = G),
type: "text",
class: Ke(["milestone-form-input", { error: i.name }]),
placeholder: q("enterMilestoneName"),
required: ""
}, null, 10, wp), [
[Hn, n.name]
]),
i.name ? (xA(), DA("span", vp, _A(i.name), 1)) : he("", !0)
])
]),
X("div", mp, [
X("div", Cp, [
X("label", yp, _A(q("milestoneDate")), 1),
un(kc, {
id: "milestone-date",
modelValue: n.startDate,
"onUpdate:modelValue": z[1] || (z[1] = (G) => n.startDate = G),
type: "date",
placeholder: "请选择里程碑日期",
class: Ke({ error: i.startDate })
}, null, 8, ["modelValue", "class"]),
i.startDate ? (xA(), DA("span", Fp, _A(i.startDate), 1)) : he("", !0)
]),
X("div", Qp, [
X("label", bp, _A(q("milestoneIcon")), 1),
X("div", {
class: Ke(["milestone-icon-dropdown", { active: s.value }])
}, [
X("button", {
id: "milestone-icon",
type: "button",
class: "milestone-icon-trigger",
"aria-expanded": s.value,
"aria-haspopup": "listbox",
onClick: z[2] || (z[2] = (G) => s.value = !s.value)
}, [
X("div", Lp, [
n.icon === "diamond" ? (xA(), DA("svg", Ep, z[8] || (z[8] = [
X("g", { transform: "rotate(45 12 12)" }, [
X("rect", {
x: "6",
y: "6",
width: "12",
height: "12",
rx: "3",
ry: "3",
fill: "currentColor"
})
], -1)
]))) : n.icon === "rocket" ? (xA(), DA("div", xp, "🚀")) : he("", !0),
X("span", null, _A(q(n.icon || "diamond")), 1)
]),
z[9] || (z[9] = X("svg", {
class: "dropdown-arrow",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, [
X("polyline", { points: "6,9 12,15 18,9" })
], -1))
], 8, Up),
s.value ? (xA(), DA("div", Ip, [
X("div", {
class: Ke(["icon-option", { selected: n.icon === "diamond" }]),
onClick: z[3] || (z[3] = (G) => w("diamond"))
}, [
z[10] || (z[10] = X("svg", {
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, [
X("g", { transform: "rotate(45 12 12)" }, [
X("rect", {
x: "6",
y: "6",
width: "12",
height: "12",
rx: "3",
ry: "3",
fill: "currentColor"
})
])
], -1)),
X("span", null, _A(q("diamond")), 1)
], 2),
X("div", {
class: Ke(["icon-option", { selected: n.icon === "rocket" }]),
onClick: z[4] || (z[4] = (G) => w("rocket"))
}, [
z[11] || (z[11] = X("div", { class: "rocket-emoji-option" }, "🚀", -1)),
X("span", null, _A(q("rocket")), 1)
], 2)
])) : he("", !0)
], 2)
])
]),
X("div", Sp, [
X("div", Hp, [
X("label", Dp, _A(q("description")), 1),
X("div", Np, [
or(X("textarea", {
id: "milestone-description",
ref_key: "descriptionTextarea",
ref: c,
"onUpdate:modelValue": z[5] || (z[5] = (G) => n.description = G),
class: "milestone-form-textarea",
placeholder: q("enterDescription"),
rows: "4",
maxlength: "500",
onInput: h
}, null, 40, kp), [
[Hn, n.description]
]),
X("div", _p, [
X("span", Tp, _A(((H = n.description) == null ? void 0 : H.length) || 0) + "/500", 1)
])
])
])
])
], 32)
]),
X("div", Mp, [
X("div", Pp, [
v.value ? (xA(), DA("button", {
key: 0,
type: "button",
class: "btn btn-danger",
onClick: Q
}, _A(oe(j).delete), 1)) : he("", !0)
]),
X("div", Op, [
X("button", {
type: "button",
class: "btn btn-default",
onClick: U
}, _A(oe(j).cancel), 1),
X("button", {
type: "button",
class: "btn btn-primary",
disabled: !d.value,
onClick: g
}, _A(oe(j).confirm), 9, Kp)
])
])
]),
un(yh, {
visible: o.value,
title: oe(j).delete,
message: oe(j).confirmDelete,
"confirm-text": oe(j).confirm,
"cancel-text": oe(j).cancel,
onConfirm: y,
onCancel: N
}, null, 8, ["visible", "title", "message", "confirm-text", "cancel-text"])
])) : he("", !0);
};
}
}), Gp = /* @__PURE__ */ xr(Rp, [["__scopeId", "data-v-67a961b6"]]), Vp = { class: "timeline-header" }, jp = { class: "timeline-header-row year-month-row" }, qp = { class: "year-month-label" }, Wp = { class: "timeline-header-row days-row" }, Xp = { class: "day-label" }, zp = ["width", "height"], Jp = ["d"], Yp = ["onMouseenter"], $p = /* @__PURE__ */ Er({
__name: "Timeline",
props: {
tasks: { default: () => [] },
milestones: { default: () => [] },
onTaskDoubleClick: { type: Function, default: void 0 },
editComponent: { default: void 0 },
useDefaultDrawer: { type: Boolean, default: !0 },
onTaskDelete: { type: Function, default: void 0 },
onMilestoneSave: { type: Function, default: void 0 },
startDate: { default: void 0 },
endDate: { default: void 0 }
},
setup(t, { expose: e }) {
const A = t, { formatYearMonth: r } = hi(), n = () => {
const mA = /* @__PURE__ */ new Date(), TA = new Date(mA.getFullYear(), mA.getMonth() - 6, 1), IA = new Date(mA.getFullYear(), mA.getMonth() + 6 + 1, 0);
return {
startDate: TA,
endDate: IA
};
}, i = Ce(() => A.startDate ? new Date(A.startDate) : n().startDate), s = Ce(() => A.endDate ? new Date(A.endDate) : n().endDate), o = KA({
startDate: i.value,
endDate: s.value,
zoomLevel: 1
});
$t([i, s], ([mA, TA]) => {
o.value.startDate = mA, o.value.endDate = TA;
});
const c = Ce(() => A.tasks || []), h = KA(!1), p = KA(null), d = KA(!1), w = KA(!1), g = KA(null), Q = KA(null), y = KA(!1), N = KA(!1), v = KA(!1), U = KA(0), K = KA(!1);
let j = null;
const q = KA(0);
let V = null;
const z = () => {
y.value = !0;
}, H = () => {
y.value = !1;
}, G = (mA) => {
y.value || (Q.value = mA, window.dispatchEvent(
new CustomEvent("timeline-task-hover", {
detail: mA
})
));
}, tA = Ce(() => {
const IA = c.value.length * 51;
return Math.max(IA, 400, q.value);
}), x = (mA) => {
Q.value = mA.detail;
}, F = (mA) => {
const TA = mA.detail;
dA(TA);
}, _ = () => {
L.value = rA();
}, P = (mA) => {
g.value = mA, w.value = !0;
}, lA = () => {
w.value = !1, g.value = null;
}, oA = (mA, TA) => {
window.dispatchEvent(
new CustomEvent("milestone-icon-changed", {
detail: { milestoneId: mA, icon: TA }
})
);
}, iA = (mA) => {
A.onMilestoneSave && typeof A.onMilestoneSave == "function" && A.onMilestoneSave(mA), lA(), window.dispatchEvent(
new CustomEvent("milestone-data-updated", {
detail: { milestone: mA }
})
);
}, k = (mA) => {
lA(), window.dispatchEvent(
new CustomEvent("milestone-deleted", {
detail: { milestoneId: mA }
})
), window.dispatchEvent(
new CustomEvent("milestone-data-changed", {
detail: { milestoneId: mA }
})
);
}, W = (mA) => {
A.onMilestoneSave && typeof A.onMilestoneSave == "function" && A.onMilestoneSave(mA), window.dispatchEvent(
new CustomEvent("milestone-data-updated", {
detail: { milestone: mA }
})
);
}, rA = () => {
const mA = [], TA = new Date(o.value.startDate);
for (; TA <= o.value.endDate; ) {
const IA = TA.getFullYear(), Ae = TA.getMonth() + 1, me = [], se = new Date(IA, Ae, 0).getDate();
for (let He = 1; He <= se; He++) {
const we = new Date(IA, Ae - 1, He), Oe = we.getDay(), ze = Oe === 0 || Oe === 6;
me.push({
day: He,
date: we,
label: String(He).padStart(2, "0"),
isToday: OA(we),
isWeekend: ze
});
}
mA.push({
year: IA,
month: Ae,
yearMonthLabel: r(IA, Ae),
startDate: new Date(TA),
endDate: new Date(IA, Ae, 0),
days: me
}), TA.setMonth(TA.getMonth() + 1);
}
return mA;
}, OA = (mA) => {
const TA = /* @__PURE__ */ new Date();
return mA.getDate() === TA.getDate() && mA.getMonth() === TA.getMonth() && mA.getFullYear() === TA.getFullYear();
}, L = KA(rA());
$t(
() => [o.value.startDate, o.value.endDate],
() => {
L.value = rA();
}
);
let M = !1;
$t(
() => [L.value, o.value.startDate, o.value.endDate],
() => {
M || Lr(() => {
R(), M = !0;
});
},
{ deep: !0 }
);
const R = (mA = 0) => {
const TA = /* @__PURE__ */ new Date(), IA = o.value.startDate, Ae = new Date(TA.getFullYear(), TA.getMonth(), TA.getDate()), me = new Date(
IA.getFullYear(),
IA.getMonth(),
IA.getDate()
), se = Ae.getTime() - me.getTime(), we = Math.floor(se / (1e3 * 60 * 60 * 24)) * 30, Oe = document.querySelector(".timeline"), ze = Oe.clientWidth;
if (ze === 0 && mA < 10) {
setTimeout(() => R(mA + 1), 60);
return;
}
const ve = we - ze / 2 + 15;
typeof Oe.scrollTo == "function" ? Oe.scrollTo({ left: Math.max(0, ve), behavior: "smooth" }) : Oe.scrollLeft = Math.max(0, ve);
}, J = () => {
if (c.value.length === 0) {
eA();
return;
}
const mA = c.value.map((ve) => ve.startDate).filter((ve) => !!ve).map((ve) => new Date(ve));
if (mA.length === 0) {
eA();
return;
}
const TA = new Date(Math.min(...mA.map((ve) => ve.getTime()))), IA = TA.getFullYear(), Ae = TA.getMonth(), me = TA.getDate();
let se = 0;
for (let ve = 0; ve < Ae; ve++)
se += new Date(IA, ve + 1, 0).getDate();
se += me;
const He = document.querySelector(".gantt-panel-right"), we = He == null ? void 0 : He.clientWidth, Oe = (se - 1) * 30 - (we ? we / 2 : 200), ze = document.querySelector(".timeline");
ze && (ze.scrollLeft = Math.max(0, Oe));
}, eA = () => {
const mA = /* @__PURE__ */ new Date(), TA = o.value.startDate, IA = new Date(mA.getFullYear(), mA.getMonth(), mA.getDate()), Ae = new Date(
TA.getFullYear(),
TA.getMonth(),
TA.getDate()
), me = IA.getTime() - Ae.getTime(), se = Math.floor(me / (1e3 * 60 * 60 * 24));
if (se < 0 || IA > o.value.endDate)
return;
const He = se * 30, we = document.querySelector(".timeline");
if (!we) return;
const Oe = we.clientWidth, ze = He - Oe / 2 + 15;
we.scrollTo({
left: Math.max(0, ze),
behavior: "smooth"
}), setTimeout(() => {
document.querySelectorAll(".day-column.today").forEach((ce) => {
ce.classList.add("today-highlight"), setTimeout(() => {
ce.classList.remove("today-highlight");
}, 2e3);
});
}, 500);
}, uA = (mA) => {
window.dispatchEvent(
new CustomEvent("task-updated", {
detail: mA
})
);
}, dA = (mA) => {
A.onTaskDoubleClick && typeof A.onTaskDoubleClick == "function" ? A.onTaskDoubleClick(mA) : A.useDefaultDrawer && (p.value = mA, d.value = !0, h.value = !0);
}, gA = (mA) => {
d.value ? uA(mA) : window.dispatchEvent(
new CustomEvent("task-added", {
detail: mA
})
), h.value = !1;
}, MA = () => {
p.value = null, d.value = !1;
}, NA = KA({}), RA = KA(null), GA = KA(0), ee = KA(0);
function wA() {
RA.value && (GA.value = RA.value.offsetWidth, ee.value = tA.value);
}
function D(mA) {
if (!RA.value) return;
const TA = RA.value.getBoundingClientRect();
NA.value[mA.id] = {
left: mA.left - TA.left,
top: mA.top - TA.top,
width: mA.width,
height: mA.height
}, wA();
}
const $ = (mA) => {
window.dispatchEvent(new CustomEvent("taskbar-drag-end", { detail: mA }));
}, BA = (mA) => {
window.dispatchEvent(new CustomEvent("taskbar-resize-end", { detail: mA }));
}, sA = (mA) => {
window.dispatchEvent(new CustomEvent("milestone-drag-end", { detail: mA }));
}, pA = Ce(() => {
const mA = [];
for (const TA of c.value)
if (TA.predecessor && NA.value[TA.id] && NA.value[Number(TA.predecessor)]) {
const IA = NA.value[Number(TA.predecessor)], Ae = NA.value[TA.id], me = IA.left + IA.width, se = IA.top + IA.height / 2, He = Ae.left, we = Ae.top + Ae.height / 2, Oe = me + 40, ze = se, ve = He - 40, Ue = `M${me},${se} C${Oe},${ze} ${ve},${we} ${He},${we}`;
mA.push({ from: Number(TA.predecessor), to: TA.id, path: Ue });
}
return mA;
});
jr(() => {
Lr(() => {
setTimeout(() => {
R();
}, 60);
}), window.addEventListener("task-row-double-click", F), window.addEventListener("task-list-hover", x), window.addEventListener(
"task-list-vertical-scroll",
FA
), window.addEventListener("locale-changed", _), window.addEventListener("splitter-drag-start", z), window.addEventListener("splitter-drag-end", H), Lr(() => {
const mA = document.querySelector(".timeline-body");
mA && (q.value = mA.clientHeight, V = new ResizeObserver((TA) => {
for (const IA of TA)
q.value = IA.contentRect.height;
}), V.observe(mA));
}), setTimeout(() => {
R(), wA();
}, 200), window.addEventListener("resize", wA), window.addEventListener("scroll", YA);
});
const FA = (mA) => {
const { scrollTop: TA } = mA.detail, IA = document.querySelector(".timeline-body");
IA && IA.scrollTop !== TA && (IA.scrollTop = TA);
};
$t(
() => c.value.length,
() => {
Lr(() => {
wA();
});
},
{ immediate: !0 }
);
const UA = KA(!1), SA = KA(0), QA = KA(0), yA = KA(null), PA = (mA) => {
var me;
const TA = mA.target, IA = TA.closest(".timeline-header"), Ae = TA.closest(".timeline-body");
!IA && !Ae || Ae && [
".task-bar",
".milestone",
"button",
"input",
"select",
"textarea",
".task-bar-content",
".progress-bar",
".task-name",
".task-controls"
].some((we) => TA.closest(we)) || (UA.value = !0, SA.value = mA.pageX, QA.value = ((me = yA.value) == null ? void 0 : me.scrollLeft) || 0, yA.value && (yA.value.style.cursor = "grabbing", yA.value.style.userSelect = "none"), mA.preventDefault(), document.addEventListener("mousemove", ZA), document.addEventListener("mouseup", ue));
}, ZA = (mA) => {
if (!UA.value || !yA.value) return;
mA.preventDefault();
const IA = (mA.pageX - SA.value) * 1.5;
yA.value.scrollLeft = QA.value - IA;
}, ue = () => {
UA.value = !1, yA.value && (yA.value.style.cursor = "grab", yA.value.style.userSelect = "auto"), document.removeEventListener("mousemove", ZA), document.removeEventListener("mouseup", ue);
}, YA = (mA) => {
const TA = mA.target;
if (!TA) return;
const IA = TA.scrollLeft, Ae = TA.scrollTop, me = TA.scrollWidth, se = TA.clientWidth, He = me - se;
U.value = He > 0 ? IA / He : 0, N.value = IA > 20, v.value = IA < He - 20, Ae >= 0 && window.dispatchEvent(
new CustomEvent("timeline-vertical-scroll", {
detail: { scrollTop: Ae }
})
), K.value = !0, TA && "classList" in TA && typeof TA.classList.add == "function" && TA.classList.add("scrolling"), j && clearTimeout(j), j = setTimeout(() => {
K.value = !1, TA && "classList" in TA && typeof TA.classList.remove == "function" && TA.classList.remove("scrolling");
}, 500);
};
Wr(() => {
document.removeEventListener("mousemove", ZA), document.removeEventListener("mouseup", ue), window.removeEventListener("task-row-double-click", F), window.removeEventListener("task-list-hover", x), window.removeEventListener(
"task-list-vertical-scroll",
FA
), window.removeEventListener("locale-changed", _), window.removeEventListener("splitter-drag-start", z), window.removeEventListener("splitter-drag-end", H), window.removeEventListener("resize", wA), window.removeEventListener("scroll", YA), V && (V.disconnect(), V = null);
});
const ne = (mA, TA) => {
if (A.onTaskDelete && typeof A.onTaskDelete == "function") {
const IA = c.value.find((Ae) => Ae.id === mA);
IA && A.onTaskDelete(IA, TA);
}
window.dispatchEvent(
new CustomEvent("task-deleted", {
detail: mA
})
), h.value = !1, p.value = null, d.value = !1;
}, VA = (mA, TA) => {
ne(mA.id, TA);
};
e({
// 基础滚动功能
scrollToTasks: J,
scrollToToday: eA,
scrollToTodayCenter: R,
// 时间线配置
timelineConfig: o
});
const Ve = (mA) => {
const TA = mA.startDate || mA.endDate || "";
return {
...mA,
type: "milestone",
startDate: TA,
endDate: mA.startDate || mA.endDate
};
};
return (mA, TA) => (xA(), DA("div", {
ref_key: "timelineContainer",
ref: yA,
class: "timeline",
onMousedown: PA
}, [
X("div", Vp, [
X("div", jp, [
(xA(!0), DA(et, null, yt(L.value, (IA) => (xA(), DA("div", {
key: `year-month-${IA.year}-${IA.month}`,
class: "timeline-month",
style: Tt({ width: `${IA.days.length * 30}px` })
}, [
X("div", qp, _A(IA.yearMonthLabel), 1)
], 4))), 128))
]),
X("div", Wp, [
(xA(!0), DA(et, null, yt(L.value, (IA) => (xA(), DA("div", {
key: `days-${IA.year}-${IA.month}`,
class: "timeline-month-days",
style: Tt({ width: `${IA.days.length * 30}px` })
}, [
(xA(!0), DA(et, null, yt(IA.days, (Ae) => (xA(), DA("div", {
key: `day-${IA.year}-${IA.month}-${Ae.day}`,
class: Ke(["timeline-day", {
today: Ae.isToday,
weekend: Ae.isWeekend && !Ae.isToday
}])
}, [
X("div", Xp, _A(Ae.label), 1)
], 2))), 128))
], 4))), 128))
])
]),
X("div", {
class: "timeline-body",
onScroll: YA
}, [
X("div", {
ref_key: "bodyContentRef",
ref: RA,
class: "timeline-body-content"
}, [
(xA(), DA("svg", {
class: "gantt-links",
width: GA.value,
height: ee.value,
style: { position: "absolute", left: "0", top: "0", "z-index": "25", "pointer-events": "none" }
}, [
TA[3] || (TA[3] = X("defs", null, [
X("marker", {
id: "arrow",
markerWidth: "4",
markerHeight: "4",
refX: "4",
refY: "2",
orient: "auto",
markerUnits: "strokeWidth"
}, [
X("polygon", {
points: "0,0 4,2 0,4",
fill: "#c0c4cc"
})
])
], -1)),
X("g", null, [
(xA(!0), DA(et, null, yt(pA.value, (IA) => (xA(), DA("path", {
key: IA.from + "-" + IA.to,
d: IA.path,
stroke: "#c0c4cc",
"stroke-width": "2",
"stroke-dasharray": "6,4",
fill: "none",
"marker-end": "url(#arrow)"
}, null, 8, Jp))), 128))
])
], 8, zp)),
X("div", {
class: "day-columns",
style: Tt({ height: `${tA.value}px` })
}, [
(xA(!0), DA(et, null, yt(L.value, (IA) => (xA(), DA("div", {
key: `day-col-${IA.year}-${IA.month}`,
class: "month-day-columns",
style: Tt({ width: `${IA.days.length * 30}px`, height: `${tA.value}px` })
}, [
(xA(!0), DA(et, null, yt(IA.days, (Ae) => (xA(), DA("div", {
key: `day-col-${IA.year}-${IA.month}-${Ae.day}`,
class: Ke(["day-column", {
weekend: Ae.isWeekend,
today: Ae.isToday
}]),
style: Tt({ height: `${tA.value}px` })
}, null, 6))), 128))
], 4))), 128))
], 4),
X("div", {
class: "task-bar-container",
style: Tt({ height: `${tA.value}px` })
}, [
X("div", {
class: "task-rows",
style: Tt({ height: `${tA.value}px` })
}, [
(xA(!0), DA(et, null, yt(c.value, (IA, Ae) => (xA(), DA("div", {
key: IA.id,
class: Ke(["task-row", { "task-row-hovered": Q.value === IA.id }]),
style: Tt({ top: `${Ae * 51}px` }),
onMouseenter: (me) => G(IA.id),
onMouseleave: TA[0] || (TA[0] = (me) => G(null))
}, [
IA.type === "milestone-group" && IA.children ? (xA(!0), DA(et, { key: 0 }, yt(IA.children, (me) => (xA(), li(N1, {
key: me.id,
date: me.startDate || "",
"row-height": 50,
"day-width": 30,
"start-date": o.value.startDate,
name: me.name,
milestone: Ve(me),
onMilestoneDoubleClick: P,
"onUpdate:milestone": W,
onDragEnd: sA
}, null, 8, ["date", "start-date", "name", "milestone"]))), 128)) : IA.type !== "milestone-group" && IA.type !== "milestone" ? (xA(), li(Q1, {
key: 1,
task: IA,
"row-height": 50,
"day-width": 30,
"start-date": o.value.startDate,
"is-parent": IA.isParent,
"on-double-click": A.onTaskDoubleClick,
"edit-component": A.editComponent,
"onUpdate:task": uA,
onBarMounted: D,
onDblclick: (me) => dA(IA),
onDragEnd: $,
onResizeEnd: BA
}, null, 8, ["task", "start-date", "is-parent", "on-double-click", "edit-component", "onDblclick"])) : he("", !0)
], 46, Yp))), 128))
], 4)
], 4)
], 512)
], 32),
A.useDefaultDrawer ? (xA(), li(cp, {
key: 0,
visible: h.value,
"onUpdate:visible": TA[1] || (TA[1] = (IA) => h.value = IA),
task: p.value,
"is-edit": d.value,
onSubmit: gA,
onClose: MA,
onDelete: VA
}, null, 8, ["visible", "task", "is-edit"])) : he("", !0),
un(Gp, {
visible: w.value,
"onUpdate:visible": TA[2] || (TA[2] = (IA) => w.value = IA),
milestone: g.value,
onClose: lA,
onSave: iA,
onDelete: k,
onIconChanged: oA
}, null, 8, ["visible", "milestone"])
], 544));
}
}), Zp = /* @__PURE__ */ xr($p, [["__scopeId", "data-v-b2a999ff"]]), A2 = { class: "gantt-toolbar" }, e2 = { class: "toolbar-left" }, t2 = {
key: 0,
class: "btn-group add-btn-group"
}, r2 = ["title"], n2 = ["title"], i2 = {
key: 1,
class: "btn-group"
}, a2 = ["title"], s2 = ["title"], o2 = { class: "toolbar-right" }, l2 = {
key: 0,
class: "language-dropdown"
}, c2 = ["title"], u2 = { class: "lang-text" }, f2 = {
key: 0,
class: "language-menu"
}, h2 = ["onClick"], d2 = { class: "option-text" }, g2 = {
key: 0,
class: "check-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, p2 = ["title"], B2 = ["title"], w2 = {
key: 0,
class: "btn-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, v2 = {
key: 1,
class: "btn-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, m2 = { class: "icon-fallback" }, C2 = ["title"], y2 = {
key: 0,
class: "btn-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, F2 = {
key: 1,
class: "btn-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, Q2 = { class: "icon-fallback" }, b2 = {
key: 0,
class: "confirm-dialog"
}, U2 = { class: "dialog-content" }, L2 = { class: "dialog-message" }, E2 = { class: "dialog-actions" }, rc = "gantt-theme", x2 = "gantt-locale", I2 = /* @__PURE__ */ Er({
__name: "GanttToolbar",
props: {
config: { default: () => ({}) },
onAddTask: { type: Function, default: void 0 },
onAddMilestone: { type: Function, default: void 0 },
onTodayLocate: { type: Function, default: void 0 },
onExportCsv: { type: Function, default: void 0 },
onExportPdf: { type: Function, default: void 0 },
onLanguageChange: { type: Function, default: void 0 },
onThemeChange: { type: Function, default: void 0 },
onFullscreenChange: { type: Function, default: void 0 },
onSettingsConfirm: { type: Function, default: void 0 }
},
emits: ["add-task", "add-milestone", "today-locate", "export-csv", "export-pdf", "language-change", "theme-change", "fullscreen-change"],
setup(t, { emit: e }) {
const A = t, r = e, n = {
zh: "zh-CN",
en: "en-US"
}, i = () => {
if (typeof window < "u") {
const iA = localStorage.getItem(rc);
return iA !== null ? iA === "dark" : window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches;
}
return !1;
}, { locale: s, setLocale: o, getTranslation: c } = hi(), h = KA("zh"), p = KA(i()), d = KA(!1), w = KA(!1), g = (iA) => c(iA), Q = Ce(() => g("language")), y = KA(!1), N = KA(null), v = KA(null), U = () => {
A.onAddTask && typeof A.onAddTask == "function" ? A.onAddTask() : r("add-task");
}, K = () => {
A.onAddMilestone && typeof A.onAddMilestone == "function" ? A.onAddMilestone() : r("add-milestone");
}, j = () => {
A.onTodayLocate && typeof A.onTodayLocate == "function" ? A.onTodayLocate() : r("today-locate");
}, q = () => {
A.onExportCsv && typeof A.onExportCsv == "function" ? A.onExportCsv() : r("export-csv");
}, V = () => {
A.onExportPdf && typeof A.onExportPdf == "function" ? A.onExportPdf() : r("export-pdf");
}, z = () => {
w.value = !w.value;
}, H = (iA) => {
h.value = iA, w.value = !1;
const k = n[h.value];
o(k), A.onLanguageChange && typeof A.onLanguageChange == "function" ? A.onLanguageChange(k) : r("language-change", k), v.value = k, N.value = "language", y.value = !0;
}, G = async () => {
if (!N.value || v.value === null) {
_();
return;
}
if (A.onSettingsConfirm && typeof A.onSettingsConfirm == "function")
try {
if (!await A.onSettingsConfirm(N.value, v.value)) {
_();
return;
}
} catch {
_();
return;
}
N.value === "theme" ? tA() : N.value === "language" && x(), _();
}, tA = () => {
typeof window < "u" && typeof v.value == "boolean" && localStorage.setItem(rc, v.value ? "dark" : "light");
}, x = () => {
typeof window < "u" && typeof v.value == "string" && localStorage.setItem(x2, v.value);
}, F = () => {
_();
}, _ = () => {
y.value = !1, N.value = null, v.value = null;
}, P = () => {
const iA = !p.value;
p.value = iA, document.documentElement.setAttribute("data-theme", iA ? "dark" : "light"), A.onThemeChange && typeof A.onThemeChange == "function" ? A.onThemeChange(iA) : r("theme-change", iA), v.value = iA, N.value = "theme", y.value = !0;
}, lA = () => {
d.value = !d.value, window.dispatchEvent(
new CustomEvent("fullscreen-toggle", {
detail: d.value
})
), A.onFullscreenChange && typeof A.onFullscreenChange == "function" ? A.onFullscreenChange(d.value) : r("fullscreen-change", d.value);
}, oA = (iA) => {
!iA.target.closest(".language-dropdown") && w.value && (w.value = !1);
};
return jr(() => {
const iA = s.value;
h.value = iA === "zh-CN" ? "zh" : "en", document.documentElement.setAttribute("data-theme", p.value ? "dark" : "light"), document.addEventListener("click", oA), window.matchMedia && typeof window < "u" && !localStorage.getItem(rc) && window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (k) => {
p.value = k.matches, document.documentElement.setAttribute("data-theme", k.matches ? "dark" : "light");
});
}), Wr(() => {
document.removeEventListener("click", oA);
}), (iA, k) => (xA(), DA("div", A2, [
X("div", e2, [
iA.config.showAddTask !== !1 || iA.config.showAddMilestone !== !1 ? (xA(), DA("div", t2, [
iA.config.showAddTask !== !1 ? (xA(), DA("button", {
key: 0,
class: "btn-group-item",
title: g("addTask"),
onClick: U
}, [
k[0] || (k[0] = X("svg", {
class: "btn-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, [
X("line", {
x1: "12",
y1: "5",
x2: "12",
y2: "19"
}),
X("line", {
x1: "5",
y1: "12",
x2: "19",
y2: "12"
})
], -1)),
cr(" " + _A(g("addTask")), 1)
], 8, r2)) : he("", !0),
iA.config.showAddMilestone !== !1 ? (xA(), DA("button", {
key: 1,
class: "btn-group-item",
title: g("addMilestone"),
onClick: K
}, [
k[1] || (k[1] = Nn('<svg class="btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-fe8c679e><g transform="rotate(45 12 12)" data-v-fe8c679e><rect x="4" y="4" width="16" height="16" rx="4" ry="4" fill="none" stroke="currentColor" data-v-fe8c679e></rect></g><line x1="12" y1="8" x2="12" y2="16" data-v-fe8c679e></line><line x1="8" y1="12" x2="16" y2="12" data-v-fe8c679e></line></svg>', 1)),
cr(" " + _A(g("addMilestone")), 1)
], 8, n2)) : he("", !0)
])) : he("", !0),
iA.config.showExportCsv !== !1 || iA.config.showExportPdf !== !1 ? (xA(), DA("div", i2, [
iA.config.showExportCsv !== !1 ? (xA(), DA("button", {
key: 0,
class: "btn-group-item",
title: g("exportCsv"),
onClick: q
}, [
k[2] || (k[2] = Nn('<svg class="btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-fe8c679e><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" data-v-fe8c679e></path><polyline points="14,2 14,8 20,8" data-v-fe8c679e></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-fe8c679e></line><line x1="16" y1="17" x2="8" y2="17" data-v-fe8c679e></line><polyline points="10,9 9,9 8,9" data-v-fe8c679e></polyline></svg>', 1)),
cr(" " + _A(g("exportCsv")), 1)
], 8, a2)) : he("", !0),
iA.config.showExportPdf !== !1 ? (xA(), DA("button", {
key: 1,
class: "btn-group-item",
title: g("exportPdf"),
onClick: V
}, [
k[3] || (k[3] = Nn('<svg class="btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-fe8c679e><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" data-v-fe8c679e></path><polyline points="14,2 14,8 20,8" data-v-fe8c679e></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-fe8c679e></line><line x1="16" y1="17" x2="8" y2="17" data-v-fe8c679e></line><line x1="12" y1="13" x2="12" y2="17" data-v-fe8c679e></line></svg>', 1)),
cr(" " + _A(g("exportPdf")), 1)
], 8, s2)) : he("", !0)
])) : he("", !0)
]),
X("div", o2, [
iA.config.showLanguage !== !1 ? (xA(), DA("div", l2, [
X("button", {
class: "toolbar-lang-btn",
title: g("languageTooltip"),
onClick: z
}, [
k[4] || (k[4] = X("svg", {
class: "btn-icon",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, [
X("circle", {
cx: "12",
cy: "12",
r: "10"
}),
X("line", {
x1: "2",
y1: "12",
x2: "22",
y2: "12"
}),
X("path", { d: "M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" })
], -1)),
X("span", u2, _A(Q.value), 1),
k[5] || (k[5] = X("svg", {
class: "dropdown-arrow",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2"
}, [
X("polyline", { points: "6,9 12,15 18,9" })
], -1))
], 8, c2),
w.value ? (xA(), DA("div", f2, [
(xA(), DA(et, null, yt(["zh", "en"], (W) => X("div", {
key: W,
class: Ke(["language-option", { active: h.value === W }]),
onClick: (rA) => H(W)
}, [
X("span", d2, _A(W === "zh" ? "中文" : "English"), 1),
h.value === W ? (xA(), DA("svg", g2, k[6] || (k[6] = [
X("polyline", { points: "20,6 9,17 4,12" }, null, -1)
]))) : he("", !0)
], 10, h2)), 64))
])) : he("", !0)
])) : he("", !0),
iA.config.showTodayLocate !== !1 ? (xA(), DA("button", {
key: 1,
class: "toolbar-icon-btn today-locate-btn",
title: g("todayLocateTooltip"),
onClick: j
}, k[7] || (k[7] = [
Nn('<svg class="btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-fe8c679e><rect x="3" y="4" width="18" height="18" rx="2" ry="2" data-v-fe8c679e></rect><line x1="16" y1="2" x2="16" y2="6" data-v-fe8c679e></line><line x1="8" y1="2" x2="8" y2="6" data-v-fe8c679e></line><line x1="3" y1="10" x2="21" y2="10" data-v-fe8c679e></line><circle cx="12" cy="16" r="1" data-v-fe8c679e></circle></svg>', 1)
]), 8, p2)) : he("", !0),
iA.config.showTheme !== !1 ? (xA(), DA("button", {
key: 2,
class: "toolbar-icon-btn",
title: g(p.value ? "lightMode" : "darkMode"),
onClick: P
}, [
p.value ? (xA(), DA("svg", w2, k[8] || (k[8] = [
Nn('<circle cx="12" cy="12" r="5" data-v-fe8c679e></circle><line x1="12" y1="1" x2="12" y2="3" data-v-fe8c679e></line><line x1="12" y1="21" x2="12" y2="23" data-v-fe8c679e></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64" data-v-fe8c679e></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78" data-v-fe8c679e></line><line x1="1" y1="12" x2="3" y2="12" data-v-fe8c679e></line><line x1="21" y1="12" x2="23" y2="12" data-v-fe8c679e></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36" data-v-fe8c679e></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22" data-v-fe8c679e></line>', 9)
]))) : (xA(), DA("svg", v2, k[9] || (k[9] = [
X("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" }, null, -1)
]))),
X("span", m2, _A(p.value ? "☀️" : "🌙"), 1)
], 8, B2)) : he("", !0),
iA.config.showFullscreen !== !1 ? (xA(), DA("button", {
key: 3,
class: "toolbar-icon-btn",
title: g(d.value ? "exitFullscreen" : "fullscreen"),
onClick: lA
}, [
d.value ? (xA(), DA("svg", y2, k[10] || (k[10] = [
X("path", { d: "M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3" }, null, -1)
]))) : (xA(), DA("svg", F2, k[11] || (k[11] = [
X("path", { d: "M8 3H5a2 2 0 00-2 2v3m18 0V5a2 2 0 00-2-2h-3m0 18h3a2 2 0 002-2v-3M3 16v3a2 2 0 002 2h3" }, null, -1)
]))),
X("span", Q2, _A(d.value ? "⇲" : "⇱"), 1)
], 8, C2)) : he("", !0)
]),
y.value ? (xA(), DA("div", b2, [
X("div", U2, [
X("p", L2, _A(g("confirmDialogMessage")), 1),
X("div", E2, [
X("button", {
class: "btn btn-default",
onClick: F
}, _A(g("cancel")), 1),
X("button", {
class: "btn btn-primary",
onClick: G
}, _A(g("confirm")), 1)
])
])
])) : he("", !0)
]));
}
}), S2 = /* @__PURE__ */ xr(I2, [["__scopeId", "data-v-fe8c679e"]]);
function Se(t) {
"@babel/helpers - typeof";
return Se = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
return typeof e;
} : function(e) {
return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
}, Se(t);
}
var Ht = Uint8Array, Zt = Uint16Array, pu = Int32Array, el = new Ht([
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
1,
1,
2,
2,
2,
2,
3,
3,
3,
3,
4,
4,
4,
4,
5,
5,
5,
5,
0,
/* unused */
0,
0,
/* impossible */
0
]), tl = new Ht([
0,
0,
0,
0,
1,
1,
2,
2,
3,
3,
4,
4,
5,
5,
6,
6,
7,
7,
8,
8,
9,
9,
10,
10,
11,
11,
12,
12,
13,
13,
/* unused */
0,
0
]), _c = new Ht([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), Fh = function(t, e) {
for (var A = new Zt(31), r = 0; r < 31; ++r)
A[r] = e += 1 << t[r - 1];
for (var n = new pu(A[30]), r = 1; r < 30; ++r)
for (var i = A[r]; i < A[r + 1]; ++i)
n[i] = i - A[r] << 5 | r;
return { b: A, r: n };
}, Qh = Fh(el, 2), bh = Qh.b, Tc = Qh.r;
bh[28] = 258, Tc[258] = 28;
var Uh = Fh(tl, 0), H2 = Uh.b, ef = Uh.r, Mc = new Zt(32768);
for (var Re = 0; Re < 32768; ++Re) {
var En = (Re & 43690) >> 1 | (Re & 21845) << 1;
En = (En & 52428) >> 2 | (En & 13107) << 2, En = (En & 61680) >> 4 | (En & 3855) << 4, Mc[Re] = ((En & 65280) >> 8 | (En & 255) << 8) >> 1;
}
var qr = function(t, e, A) {
for (var r = t.length, n = 0, i = new Zt(e); n < r; ++n)
t[n] && ++i[t[n] - 1];
var s = new Zt(e);
for (n = 1; n < e; ++n)
s[n] = s[n - 1] + i[n - 1] << 1;
var o;
if (A) {
o = new Zt(1 << e);
var c = 15 - e;
for (n = 0; n < r; ++n)
if (t[n])
for (var h = n << 4 | t[n], p = e - t[n], d = s[t[n] - 1]++ << p, w = d | (1 << p) - 1; d <= w; ++d)
o[Mc[d] >> c] = h;
} else
for (o = new Zt(r), n = 0; n < r; ++n)
t[n] && (o[n] = Mc[s[t[n] - 1]++] >> 15 - t[n]);
return o;
}, Rn = new Ht(288);
for (var Re = 0; Re < 144; ++Re)
Rn[Re] = 8;
for (var Re = 144; Re < 256; ++Re)
Rn[Re] = 9;
for (var Re = 256; Re < 280; ++Re)
Rn[Re] = 7;
for (var Re = 280; Re < 288; ++Re)
Rn[Re] = 8;
var ss = new Ht(32);
for (var Re = 0; Re < 32; ++Re)
ss[Re] = 5;
var D2 = /* @__PURE__ */ qr(Rn, 9, 0), N2 = /* @__PURE__ */ qr(Rn, 9, 1), k2 = /* @__PURE__ */ qr(ss, 5, 0), _2 = /* @__PURE__ */ qr(ss, 5, 1), nc = function(t) {
for (var e = t[0], A = 1; A < t.length; ++A)
t[A] > e && (e = t[A]);
return e;
}, Fr = function(t, e, A) {
var r = e / 8 | 0;
return (t[r] | t[r + 1] << 8) >> (e & 7) & A;
}, ic = function(t, e) {
var A = e / 8 | 0;
return (t[A] | t[A + 1] << 8 | t[A + 2] << 16) >> (e & 7);
}, Bu = function(t) {
return (t + 7) / 8 | 0;
}, Lh = function(t, e, A) {
return (A == null || A > t.length) && (A = t.length), new Ht(t.subarray(e, A));
}, T2 = [
"unexpected EOF",
"invalid block type",
"invalid length/literal",
"invalid distance",
"stream finished",
"no stream handler",
,
"no callback",
"invalid UTF-8 data",
"extra field too long",
"date not in range 1980-2099",
"filename too long",
"stream finishing",
"invalid zip data"
// determined by unknown compression method
], Ur = function(t, e, A) {
var r = new Error(e || T2[t]);
if (r.code = t, Error.captureStackTrace && Error.captureStackTrace(r, Ur), !A)
throw r;
return r;
}, M2 = function(t, e, A, r) {
var n = t.length, i = 0;
if (!n || e.f && !e.l)
return A || new Ht(0);
var s = !A, o = s || e.i != 2, c = e.i;
s && (A = new Ht(n * 3));
var h = function(NA) {
var RA = A.length;
if (NA > RA) {
var GA = new Ht(Math.max(RA * 2, NA));
GA.set(A), A = GA;
}
}, p = e.f || 0, d = e.p || 0, w = e.b || 0, g = e.l, Q = e.d, y = e.m, N = e.n, v = n * 8;
do {
if (!g) {
p = Fr(t, d, 1);
var U = Fr(t, d + 1, 3);
if (d += 3, U)
if (U == 1)
g = N2, Q = _2, y = 9, N = 5;
else if (U == 2) {
var V = Fr(t, d, 31) + 257, z = Fr(t, d + 10, 15) + 4, H = V + Fr(t, d + 5, 31) + 1;
d += 14;
for (var G = new Ht(H), tA = new Ht(19), x = 0; x < z; ++x)
tA[_c[x]] = Fr(t, d + x * 3, 7);
d += z * 3;
for (var F = nc(tA), _ = (1 << F) - 1, P = qr(tA, F, 1), x = 0; x < H; ) {
var lA = P[Fr(t, d, _)];
d += lA & 15;
var K = lA >> 4;
if (K < 16)
G[x++] = K;
else {
var oA = 0, iA = 0;
for (K == 16 ? (iA = 3 + Fr(t, d, 3), d += 2, oA = G[x - 1]) : K == 17 ? (iA = 3 + Fr(t, d, 7), d += 3) : K == 18 && (iA = 11 + Fr(t, d, 127), d += 7); iA--; )
G[x++] = oA;
}
}
var k = G.subarray(0, V), W = G.subarray(V);
y = nc(k), N = nc(W), g = qr(k, y, 1), Q = qr(W, N, 1);
} else
Ur(1);
else {
var K = Bu(d) + 4, j = t[K - 4] | t[K - 3] << 8, q = K + j;
if (q > n) {
c && Ur(0);
break;
}
o && h(w + j), A.set(t.subarray(K, q), w), e.b = w += j, e.p = d = q * 8, e.f = p;
continue;
}
if (d > v) {
c && Ur(0);
break;
}
}
o && h(w + 131072);
for (var rA = (1 << y) - 1, OA = (1 << N) - 1, L = d; ; L = d) {
var oA = g[ic(t, d) & rA], M = oA >> 4;
if (d += oA & 15, d > v) {
c && Ur(0);
break;
}
if (oA || Ur(2), M < 256)
A[w++] = M;
else if (M == 256) {
L = d, g = null;
break;
} else {
var R = M - 254;
if (M > 264) {
var x = M - 257, J = el[x];
R = Fr(t, d, (1 << J) - 1) + bh[x], d += J;
}
var eA = Q[ic(t, d) & OA], uA = eA >> 4;
eA || Ur(3), d += eA & 15;
var W = H2[uA];
if (uA > 3) {
var J = tl[uA];
W += ic(t, d) & (1 << J) - 1, d += J;
}
if (d > v) {
c && Ur(0);
break;
}
o && h(w + 131072);
var dA = w + R;
if (w < W) {
var gA = i - W, MA = Math.min(W, dA);
for (gA + w < 0 && Ur(3); w < MA; ++w)
A[w] = r[gA + w];
}
for (; w < dA; ++w)
A[w] = A[w - W];
}
}
e.l = g, e.p = L, e.b = w, e.f = p, g && (p = 1, e.m = y, e.d = Q, e.n = N);
} while (!p);
return w != A.length && s ? Lh(A, 0, w) : A.subarray(0, w);
}, on = function(t, e, A) {
A <<= e & 7;
var r = e / 8 | 0;
t[r] |= A, t[r + 1] |= A >> 8;
}, Ra = function(t, e, A) {
A <<= e & 7;
var r = e / 8 | 0;
t[r] |= A, t[r + 1] |= A >> 8, t[r + 2] |= A >> 16;
}, ac = function(t, e) {
for (var A = [], r = 0; r < t.length; ++r)
t[r] && A.push({ s: r, f: t[r] });
var n = A.length, i = A.slice();
if (!n)
return { t: xh, l: 0 };
if (n == 1) {
var s = new Ht(A[0].s + 1);
return s[A[0].s] = 1, { t: s, l: 1 };
}
A.sort(function(q, V) {
return q.f - V.f;
}), A.push({ s: -1, f: 25001 });
var o = A[0], c = A[1], h = 0, p = 1, d = 2;
for (A[0] = { s: -1, f: o.f + c.f, l: o, r: c }; p != n - 1; )
o = A[A[h].f < A[d].f ? h++ : d++], c = A[h != p && A[h].f < A[d].f ? h++ : d++], A[p++] = { s: -1, f: o.f + c.f, l: o, r: c };
for (var w = i[0].s, r = 1; r < n; ++r)
i[r].s > w && (w = i[r].s);
var g = new Zt(w + 1), Q = Pc(A[p - 1], g, 0);
if (Q > e) {
var r = 0, y = 0, N = Q - e, v = 1 << N;
for (i.sort(function(V, z) {
return g[z.s] - g[V.s] || V.f - z.f;
}); r < n; ++r) {
var U = i[r].s;
if (g[U] > e)
y += v - (1 << Q - g[U]), g[U] = e;
else
break;
}
for (y >>= N; y > 0; ) {
var K = i[r].s;
g[K] < e ? y -= 1 << e - g[K]++ - 1 : ++r;
}
for (; r >= 0 && y; --r) {
var j = i[r].s;
g[j] == e && (--g[j], ++y);
}
Q = e;
}
return { t: new Ht(g), l: Q };
}, Pc = function(t, e, A) {
return t.s == -1 ? Math.max(Pc(t.l, e, A + 1), Pc(t.r, e, A + 1)) : e[t.s] = A;
}, tf = function(t) {
for (var e = t.length; e && !t[--e]; )
;
for (var A = new Zt(++e), r = 0, n = t[0], i = 1, s = function(c) {
A[r++] = c;
}, o = 1; o <= e; ++o)
if (t[o] == n && o != e)
++i;
else {
if (!n && i > 2) {
for (; i > 138; i -= 138)
s(32754);
i > 2 && (s(i > 10 ? i - 11 << 5 | 28690 : i - 3 << 5 | 12305), i = 0);
} else if (i > 3) {
for (s(n), --i; i > 6; i -= 6)
s(8304);
i > 2 && (s(i - 3 << 5 | 8208), i = 0);
}
for (; i--; )
s(n);
i = 1, n = t[o];
}
return { c: A.subarray(0, r), n: e };
}, Ga = function(t, e) {
for (var A = 0, r = 0; r < e.length; ++r)
A += t[r] * e[r];
return A;
}, Eh = function(t, e, A) {
var r = A.length, n = Bu(e + 2);
t[n] = r & 255, t[n + 1] = r >> 8, t[n + 2] = t[n] ^ 255, t[n + 3] = t[n + 1] ^ 255;
for (var i = 0; i < r; ++i)
t[n + i + 4] = A[i];
return (n + 4 + r) * 8;
}, rf = function(t, e, A, r, n, i, s, o, c, h, p) {
on(e, p++, A), ++n[256];
for (var d = ac(n, 15), w = d.t, g = d.l, Q = ac(i, 15), y = Q.t, N = Q.l, v = tf(w), U = v.c, K = v.n, j = tf(y), q = j.c, V = j.n, z = new Zt(19), H = 0; H < U.length; ++H)
++z[U[H] & 31];
for (var H = 0; H < q.length; ++H)
++z[q[H] & 31];
for (var G = ac(z, 7), tA = G.t, x = G.l, F = 19; F > 4 && !tA[_c[F - 1]]; --F)
;
var _ = h + 5 << 3, P = Ga(n, Rn) + Ga(i, ss) + s, lA = Ga(n, w) + Ga(i, y) + s + 14 + 3 * F + Ga(z, tA) + 2 * z[16] + 3 * z[17] + 7 * z[18];
if (c >= 0 && _ <= P && _ <= lA)
return Eh(e, p, t.subarray(c, c + h));
var oA, iA, k, W;
if (on(e, p, 1 + (lA < P)), p += 2, lA < P) {
oA = qr(w, g, 0), iA = w, k = qr(y, N, 0), W = y;
var rA = qr(tA, x, 0);
on(e, p, K - 257), on(e, p + 5, V - 1), on(e, p + 10, F - 4), p += 14;
for (var H = 0; H < F; ++H)
on(e, p + 3 * H, tA[_c[H]]);
p += 3 * F;
for (var OA = [U, q], L = 0; L < 2; ++L)
for (var M = OA[L], H = 0; H < M.length; ++H) {
var R = M[H] & 31;
on(e, p, rA[R]), p += tA[R], R > 15 && (on(e, p, M[H] >> 5 & 127), p += M[H] >> 12);
}
} else
oA = D2, iA = Rn, k = k2, W = ss;
for (var H = 0; H < o; ++H) {
var J = r[H];
if (J > 255) {
var R = J >> 18 & 31;
Ra(e, p, oA[R + 257]), p += iA[R + 257], R > 7 && (on(e, p, J >> 23 & 31), p += el[R]);
var eA = J & 31;
Ra(e, p, k[eA]), p += W[eA], eA > 3 && (Ra(e, p, J >> 5 & 8191), p += tl[eA]);
} else
Ra(e, p, oA[J]), p += iA[J];
}
return Ra(e, p, oA[256]), p + iA[256];
}, P2 = /* @__PURE__ */ new pu([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]), xh = /* @__PURE__ */ new Ht(0), O2 = function(t, e, A, r, n, i) {
var s = i.z || t.length, o = new Ht(r + s + 5 * (1 + Math.ceil(s / 7e3)) + n), c = o.subarray(r, o.length - n), h = i.l, p = (i.r || 0) & 7;
if (e) {
p && (c[0] = i.r >> 3);
for (var d = P2[e - 1], w = d >> 13, g = d & 8191, Q = (1 << A) - 1, y = i.p || new Zt(32768), N = i.h || new Zt(Q + 1), v = Math.ceil(A / 3), U = 2 * v, K = function(ee) {
return (t[ee] ^ t[ee + 1] << v ^ t[ee + 2] << U) & Q;
}, j = new pu(25e3), q = new Zt(288), V = new Zt(32), z = 0, H = 0, G = i.i || 0, tA = 0, x = i.w || 0, F = 0; G + 2 < s; ++G) {
var _ = K(G), P = G & 32767, lA = N[_];
if (y[P] = lA, N[_] = P, x <= G) {
var oA = s - G;
if ((z > 7e3 || tA > 24576) && (oA > 423 || !h)) {
p = rf(t, c, 0, j, q, V, H, tA, F, G - F, p), tA = z = H = 0, F = G;
for (var iA = 0; iA < 286; ++iA)
q[iA] = 0;
for (var iA = 0; iA < 30; ++iA)
V[iA] = 0;
}
var k = 2, W = 0, rA = g, OA = P - lA & 32767;
if (oA > 2 && _ == K(G - OA))
for (var L = Math.min(w, oA) - 1, M = Math.min(32767, G), R = Math.min(258, oA); OA <= M && --rA && P != lA; ) {
if (t[G + k] == t[G + k - OA]) {
for (var J = 0; J < R && t[G + J] == t[G + J - OA]; ++J)
;
if (J > k) {
if (k = J, W = OA, J > L)
break;
for (var eA = Math.min(OA, J - 2), uA = 0, iA = 0; iA < eA; ++iA) {
var dA = G - OA + iA & 32767, gA = y[dA], MA = dA - gA & 32767;
MA > uA && (uA = MA, lA = dA);
}
}
}
P = lA, lA = y[P], OA += P - lA & 32767;
}
if (W) {
j[tA++] = 268435456 | Tc[k] << 18 | ef[W];
var NA = Tc[k] & 31, RA = ef[W] & 31;
H += el[NA] + tl[RA], ++q[257 + NA], ++V[RA], x = G + k, ++z;
} else
j[tA++] = t[G], ++q[t[G]];
}
}
for (G = Math.max(G, x); G < s; ++G)
j[tA++] = t[G], ++q[t[G]];
p = rf(t, c, h, j, q, V, H, tA, F, G - F, p), h || (i.r = p & 7 | c[p / 8 | 0] << 3, p -= 7, i.h = N, i.p = y, i.i = G, i.w = x);
} else {
for (var G = i.w || 0; G < s + h; G += 65535) {
var GA = G + 65535;
GA >= s && (c[p / 8 | 0] = h, GA = s), p = Eh(c, p + 1, t.subarray(G, GA));
}
i.i = s;
}
return Lh(o, 0, r + Bu(p) + n);
}, Ih = function() {
var t = 1, e = 0;
return {
p: function(A) {
for (var r = t, n = e, i = A.length | 0, s = 0; s != i; ) {
for (var o = Math.min(s + 2655, i); s < o; ++s)
n += r += A[s];
r = (r & 65535) + 15 * (r >> 16), n = (n & 65535) + 15 * (n >> 16);
}
t = r, e = n;
},
d: function() {
return t %= 65521, e %= 65521, (t & 255) << 24 | (t & 65280) << 8 | (e & 255) << 8 | e >> 8;
}
};
}, K2 = function(t, e, A, r, n) {
if (!n && (n = { l: 1 }, e.dictionary)) {
var i = e.dictionary.subarray(-32768), s = new Ht(i.length + t.length);
s.set(i), s.set(t, i.length), t = s, n.w = i.length;
}
return O2(t, e.level == null ? 6 : e.level, e.mem == null ? n.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(t.length))) * 1.5) : 20 : 12 + e.mem, A, r, n);
}, Sh = function(t, e, A) {
for (; A; ++e)
t[e] = A, A >>>= 8;
}, R2 = function(t, e) {
var A = e.level, r = A == 0 ? 0 : A < 6 ? 1 : A == 9 ? 3 : 2;
if (t[0] = 120, t[1] = r << 6 | (e.dictionary && 32), t[1] |= 31 - (t[0] << 8 | t[1]) % 31, e.dictionary) {
var n = Ih();
n.p(e.dictionary), Sh(t, 2, n.d());
}
}, G2 = function(t, e) {
return ((t[0] & 15) != 8 || t[0] >> 4 > 7 || (t[0] << 8 | t[1]) % 31) && Ur(6, "invalid zlib data"), (t[1] >> 5 & 1) == 1 && Ur(6, "invalid zlib data: " + (t[1] & 32 ? "need" : "unexpected") + " dictionary"), (t[1] >> 3 & 4) + 2;
};
function Oc(t, e) {
e || (e = {});
var A = Ih();
A.p(t);
var r = K2(t, e, e.dictionary ? 6 : 2, 4);
return R2(r, e), Sh(r, r.length - 4, A.d()), r;
}
function V2(t, e) {
return M2(t.subarray(G2(t), -4), { i: 2 }, e, e);
}
var j2 = typeof TextDecoder < "u" && /* @__PURE__ */ new TextDecoder(), q2 = 0;
try {
j2.decode(xh, { stream: !0 }), q2 = 1;
} catch {
}
/** @license
*
* jsPDF - PDF Document creation from JavaScript
* Version 3.0.1 Built on 2025-03-17T14:19:36.873Z
* CommitID 00000000
*
* Copyright (c) 2010-2021 James Hall <james@parall.ax>, https://github.com/MrRio/jsPDF
* 2015-2021 yWorks GmbH, http://www.yworks.com
* 2015-2021 Lukas Holländer <lukas.hollaender@yworks.com>, https://github.com/HackbrettXXX
* 2016-2018 Aras Abbasi <aras.abbasi@gmail.com>
* 2010 Aaron Spike, https://github.com/acspike
* 2012 Willow Systems Corporation, https://github.com/willowsystems
* 2012 Pablo Hess, https://github.com/pablohess
* 2012 Florian Jenett, https://github.com/fjenett
* 2013 Warren Weckesser, https://github.com/warrenweckesser
* 2013 Youssef Beddad, https://github.com/lifof
* 2013 Lee Driscoll, https://github.com/lsdriscoll
* 2013 Stefan Slonevskiy, https://github.com/stefslon
* 2013 Jeremy Morel, https://github.com/jmorel
* 2013 Christoph Hartmann, https://github.com/chris-rock
* 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria
* 2014 James Makes, https://github.com/dollaruw
* 2014 Diego Casorran, https://github.com/diegocr
* 2014 Steven Spungin, https://github.com/Flamenco
* 2014 Kenneth Glassey, https://github.com/Gavvers
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Contributor(s):
* siefkenj, ahwolf, rickygu, Midnith, saintclair, eaparango,
* kim3er, mfo, alnorth, Flamenco
*/
var le = /* @__PURE__ */ function() {
return typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : this;
}();
function sc() {
le.console && typeof le.console.log == "function" && le.console.log.apply(le.console, arguments);
}
var _e = { log: sc, warn: function(t) {
le.console && (typeof le.console.warn == "function" ? le.console.warn.apply(le.console, arguments) : sc.call(null, arguments));
}, error: function(t) {
le.console && (typeof le.console.error == "function" ? le.console.error.apply(le.console, arguments) : sc(t));
} };
function oc(t, e, A) {
var r = new XMLHttpRequest();
r.open("GET", t), r.responseType = "blob", r.onload = function() {
ii(r.response, e, A);
}, r.onerror = function() {
_e.error("could not download file");
}, r.send();
}
function nf(t) {
var e = new XMLHttpRequest();
e.open("HEAD", t, !1);
try {
e.send();
} catch {
}
return e.status >= 200 && e.status <= 299;
}
function io(t) {
try {
t.dispatchEvent(new MouseEvent("click"));
} catch {
var e = document.createEvent("MouseEvents");
e.initMouseEvent("click", !0, !0, window, 0, 0, 0, 80, 20, !1, !1, !1, !1, 0, null), t.dispatchEvent(e);
}
}
var es, Kc, ii = le.saveAs || ((typeof window > "u" ? "undefined" : Se(window)) !== "object" || window !== le ? function() {
} : typeof HTMLAnchorElement < "u" && "download" in HTMLAnchorElement.prototype ? function(t, e, A) {
var r = le.URL || le.webkitURL, n = document.createElement("a");
e = e || t.name || "download", n.download = e, n.rel = "noopener", typeof t == "string" ? (n.href = t, n.origin !== location.origin ? nf(n.href) ? oc(t, e, A) : io(n, n.target = "_blank") : io(n)) : (n.href = r.createObjectURL(t), setTimeout(function() {
r.revokeObjectURL(n.href);
}, 4e4), setTimeout(function() {
io(n);
}, 0));
} : "msSaveOrOpenBlob" in navigator ? function(t, e, A) {
if (e = e || t.name || "download", typeof t == "string") if (nf(t)) oc(t, e, A);
else {
var r = document.createElement("a");
r.href = t, r.target = "_blank", setTimeout(function() {
io(r);
});
}
else navigator.msSaveOrOpenBlob(function(n, i) {
return i === void 0 ? i = { autoBom: !1 } : Se(i) !== "object" && (_e.warn("Deprecated: Expected third argument to be a object"), i = { autoBom: !i }), i.autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(n.type) ? new Blob(["\uFEFF", n], { type: n.type }) : n;
}(t, A), e);
} : function(t, e, A, r) {
if ((r = r || open("", "_blank")) && (r.document.title = r.document.body.innerText = "downloading..."), typeof t == "string") return oc(t, e, A);
var n = t.type === "application/octet-stream", i = /constructor/i.test(le.HTMLElement) || le.safari, s = /CriOS\/[\d]+/.test(navigator.userAgent);
if ((s || n && i) && (typeof FileReader > "u" ? "undefined" : Se(FileReader)) === "object") {
var o = new FileReader();
o.onloadend = function() {
var p = o.result;
p = s ? p : p.replace(/^data:[^;]*;/, "data:attachment/file;"), r ? r.location.href = p : location = p, r = null;
}, o.readAsDataURL(t);
} else {
var c = le.URL || le.webkitURL, h = c.createObjectURL(t);
r ? r.location = h : location.href = h, r = null, setTimeout(function() {
c.revokeObjectURL(h);
}, 4e4);
}
});
/**
* A class to parse color values
* @author Stoyan Stefanov <sstoo@gmail.com>
* {@link http://www.phpied.com/rgb-color-parser-in-javascript/}
* @license Use it if you like it
*/
function Hh(t) {
var e;
t = t || "", this.ok = !1, t.charAt(0) == "#" && (t = t.substr(1, 6)), t = { aliceblue: "f0f8ff", antiquewhite: "faebd7", aqua: "00ffff", aquamarine: "7fffd4", azure: "f0ffff", beige: "f5f5dc", bisque: "ffe4c4", black: "000000", blanchedalmond: "ffebcd", blue: "0000ff", blueviolet: "8a2be2", brown: "a52a2a", burlywood: "deb887", cadetblue: "5f9ea0", chartreuse: "7fff00", chocolate: "d2691e", coral: "ff7f50", cornflowerblue: "6495ed", cornsilk: "fff8dc", crimson: "dc143c", cyan: "00ffff", darkblue: "00008b", darkcyan: "008b8b", darkgoldenrod: "b8860b", darkgray: "a9a9a9", darkgreen: "006400", darkkhaki: "bdb76b", darkmagenta: "8b008b", darkolivegreen: "556b2f", darkorange: "ff8c00", darkorchid: "9932cc", darkred: "8b0000", darksalmon: "e9967a", darkseagreen: "8fbc8f", darkslateblue: "483d8b", darkslategray: "2f4f4f", darkturquoise: "00ced1", darkviolet: "9400d3", deeppink: "ff1493", deepskyblue: "00bfff", dimgray: "696969", dodgerblue: "1e90ff", feldspar: "d19275", firebrick: "b22222", floralwhite: "fffaf0", forestgreen: "228b22", fuchsia: "ff00ff", gainsboro: "dcdcdc", ghostwhite: "f8f8ff", gold: "ffd700", goldenrod: "daa520", gray: "808080", green: "008000", greenyellow: "adff2f", honeydew: "f0fff0", hotpink: "ff69b4", indianred: "cd5c5c", indigo: "4b0082", ivory: "fffff0", khaki: "f0e68c", lavender: "e6e6fa", lavenderblush: "fff0f5", lawngreen: "7cfc00", lemonchiffon: "fffacd", lightblue: "add8e6", lightcoral: "f08080", lightcyan: "e0ffff", lightgoldenrodyellow: "fafad2", lightgrey: "d3d3d3", lightgreen: "90ee90", lightpink: "ffb6c1", lightsalmon: "ffa07a", lightseagreen: "20b2aa", lightskyblue: "87cefa", lightslateblue: "8470ff", lightslategray: "778899", lightsteelblue: "b0c4de", lightyellow: "ffffe0", lime: "00ff00", limegreen: "32cd32", linen: "faf0e6", magenta: "ff00ff", maroon: "800000", mediumaquamarine: "66cdaa", mediumblue: "0000cd", mediumorchid: "ba55d3", mediumpurple: "9370d8", mediumseagreen: "3cb371", mediumslateblue: "7b68ee", mediumspringgreen: "00fa9a", mediumturquoise: "48d1cc", mediumvioletred: "c71585", midnightblue: "191970", mintcream: "f5fffa", mistyrose: "ffe4e1", moccasin: "ffe4b5", navajowhite: "ffdead", navy: "000080", oldlace: "fdf5e6", olive: "808000", olivedrab: "6b8e23", orange: "ffa500", orangered: "ff4500", orchid: "da70d6", palegoldenrod: "eee8aa", palegreen: "98fb98", paleturquoise: "afeeee", palevioletred: "d87093", papayawhip: "ffefd5", peachpuff: "ffdab9", peru: "cd853f", pink: "ffc0cb", plum: "dda0dd", powderblue: "b0e0e6", purple: "800080", red: "ff0000", rosybrown: "bc8f8f", royalblue: "4169e1", saddlebrown: "8b4513", salmon: "fa8072", sandybrown: "f4a460", seagreen: "2e8b57", seashell: "fff5ee", sienna: "a0522d", silver: "c0c0c0", skyblue: "87ceeb", slateblue: "6a5acd", slategray: "708090", snow: "fffafa", springgreen: "00ff7f", steelblue: "4682b4", tan: "d2b48c", teal: "008080", thistle: "d8bfd8", tomato: "ff6347", turquoise: "40e0d0", violet: "ee82ee", violetred: "d02090", wheat: "f5deb3", white: "ffffff", whitesmoke: "f5f5f5", yellow: "ffff00", yellowgreen: "9acd32" }[t = (t = t.replace(/ /g, "")).toLowerCase()] || t;
for (var A = [{ re: /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/, example: ["rgb(123, 234, 45)", "rgb(255,234,245)"], process: function(o) {
return [parseInt(o[1]), parseInt(o[2]), parseInt(o[3])];
} }, { re: /^(\w{2})(\w{2})(\w{2})$/, example: ["#00ff00", "336699"], process: function(o) {
return [parseInt(o[1], 16), parseInt(o[2], 16), parseInt(o[3], 16)];
} }, { re: /^(\w{1})(\w{1})(\w{1})$/, example: ["#fb0", "f0f"], process: function(o) {
return [parseInt(o[1] + o[1], 16), parseInt(o[2] + o[2], 16), parseInt(o[3] + o[3], 16)];
} }], r = 0; r < A.length; r++) {
var n = A[r].re, i = A[r].process, s = n.exec(t);
s && (e = i(s), this.r = e[0], this.g = e[1], this.b = e[2], this.ok = !0);
}
this.r = this.r < 0 || isNaN(this.r) ? 0 : this.r > 255 ? 255 : this.r, this.g = this.g < 0 || isNaN(this.g) ? 0 : this.g > 255 ? 255 : this.g, this.b = this.b < 0 || isNaN(this.b) ? 0 : this.b > 255 ? 255 : this.b, this.toRGB = function() {
return "rgb(" + this.r + ", " + this.g + ", " + this.b + ")";
}, this.toHex = function() {
var o = this.r.toString(16), c = this.g.toString(16), h = this.b.toString(16);
return o.length == 1 && (o = "0" + o), c.length == 1 && (c = "0" + c), h.length == 1 && (h = "0" + h), "#" + o + c + h;
};
}
/**
* @license
* Joseph Myers does not specify a particular license for his work.
*
* Author: Joseph Myers
* Accessed from: http://www.myersdaily.org/joseph/javascript/md5.js
*
* Modified by: Owen Leong
*/
function lc(t, e) {
var A = t[0], r = t[1], n = t[2], i = t[3];
A = Ut(A, r, n, i, e[0], 7, -680876936), i = Ut(i, A, r, n, e[1], 12, -389564586), n = Ut(n, i, A, r, e[2], 17, 606105819), r = Ut(r, n, i, A, e[3], 22, -1044525330), A = Ut(A, r, n, i, e[4], 7, -176418897), i = Ut(i, A, r, n, e[5], 12, 1200080426), n = Ut(n, i, A, r, e[6], 17, -1473231341), r = Ut(r, n, i, A, e[7], 22, -45705983), A = Ut(A, r, n, i, e[8], 7, 1770035416), i = Ut(i, A, r, n, e[9], 12, -1958414417), n = Ut(n, i, A, r, e[10], 17, -42063), r = Ut(r, n, i, A, e[11], 22, -1990404162), A = Ut(A, r, n, i, e[12], 7, 1804603682), i = Ut(i, A, r, n, e[13], 12, -40341101), n = Ut(n, i, A, r, e[14], 17, -1502002290), A = Lt(A, r = Ut(r, n, i, A, e[15], 22, 1236535329), n, i, e[1], 5, -165796510), i = Lt(i, A, r, n, e[6], 9, -1069501632), n = Lt(n, i, A, r, e[11], 14, 643717713), r = Lt(r, n, i, A, e[0], 20, -373897302), A = Lt(A, r, n, i, e[5], 5, -701558691), i = Lt(i, A, r, n, e[10], 9, 38016083), n = Lt(n, i, A, r, e[15], 14, -660478335), r = Lt(r, n, i, A, e[4], 20, -405537848), A = Lt(A, r, n, i, e[9], 5, 568446438), i = Lt(i, A, r, n, e[14], 9, -1019803690), n = Lt(n, i, A, r, e[3], 14, -187363961), r = Lt(r, n, i, A, e[8], 20, 1163531501), A = Lt(A, r, n, i, e[13], 5, -1444681467), i = Lt(i, A, r, n, e[2], 9, -51403784), n = Lt(n, i, A, r, e[7], 14, 1735328473), A = Et(A, r = Lt(r, n, i, A, e[12], 20, -1926607734), n, i, e[5], 4, -378558), i = Et(i, A, r, n, e[8], 11, -2022574463), n = Et(n, i, A, r, e[11], 16, 1839030562), r = Et(r, n, i, A, e[14], 23, -35309556), A = Et(A, r, n, i, e[1], 4, -1530992060), i = Et(i, A, r, n, e[4], 11, 1272893353), n = Et(n, i, A, r, e[7], 16, -155497632), r = Et(r, n, i, A, e[10], 23, -1094730640), A = Et(A, r, n, i, e[13], 4, 681279174), i = Et(i, A, r, n, e[0], 11, -358537222), n = Et(n, i, A, r, e[3], 16, -722521979), r = Et(r, n, i, A, e[6], 23, 76029189), A = Et(A, r, n, i, e[9], 4, -640364487), i = Et(i, A, r, n, e[12], 11, -421815835), n = Et(n, i, A, r, e[15], 16, 530742520), A = xt(A, r = Et(r, n, i, A, e[2], 23, -995338651), n, i, e[0], 6, -198630844), i = xt(i, A, r, n, e[7], 10, 1126891415), n = xt(n, i, A, r, e[14], 15, -1416354905), r = xt(r, n, i, A, e[5], 21, -57434055), A = xt(A, r, n, i, e[12], 6, 1700485571), i = xt(i, A, r, n, e[3], 10, -1894986606), n = xt(n, i, A, r, e[10], 15, -1051523), r = xt(r, n, i, A, e[1], 21, -2054922799), A = xt(A, r, n, i, e[8], 6, 1873313359), i = xt(i, A, r, n, e[15], 10, -30611744), n = xt(n, i, A, r, e[6], 15, -1560198380), r = xt(r, n, i, A, e[13], 21, 1309151649), A = xt(A, r, n, i, e[4], 6, -145523070), i = xt(i, A, r, n, e[11], 10, -1120210379), n = xt(n, i, A, r, e[2], 15, 718787259), r = xt(r, n, i, A, e[9], 21, -343485551), t[0] = kn(A, t[0]), t[1] = kn(r, t[1]), t[2] = kn(n, t[2]), t[3] = kn(i, t[3]);
}
function rl(t, e, A, r, n, i) {
return e = kn(kn(e, t), kn(r, i)), kn(e << n | e >>> 32 - n, A);
}
function Ut(t, e, A, r, n, i, s) {
return rl(e & A | ~e & r, t, e, n, i, s);
}
function Lt(t, e, A, r, n, i, s) {
return rl(e & r | A & ~r, t, e, n, i, s);
}
function Et(t, e, A, r, n, i, s) {
return rl(e ^ A ^ r, t, e, n, i, s);
}
function xt(t, e, A, r, n, i, s) {
return rl(A ^ (e | ~r), t, e, n, i, s);
}
function Dh(t) {
var e, A = t.length, r = [1732584193, -271733879, -1732584194, 271733878];
for (e = 64; e <= t.length; e += 64) lc(r, W2(t.substring(e - 64, e)));
t = t.substring(e - 64);
var n = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
for (e = 0; e < t.length; e++) n[e >> 2] |= t.charCodeAt(e) << (e % 4 << 3);
if (n[e >> 2] |= 128 << (e % 4 << 3), e > 55) for (lc(r, n), e = 0; e < 16; e++) n[e] = 0;
return n[14] = 8 * A, lc(r, n), r;
}
function W2(t) {
var e, A = [];
for (e = 0; e < 64; e += 4) A[e >> 2] = t.charCodeAt(e) + (t.charCodeAt(e + 1) << 8) + (t.charCodeAt(e + 2) << 16) + (t.charCodeAt(e + 3) << 24);
return A;
}
es = le.atob.bind(le), Kc = le.btoa.bind(le);
var af = "0123456789abcdef".split("");
function X2(t) {
for (var e = "", A = 0; A < 4; A++) e += af[t >> 8 * A + 4 & 15] + af[t >> 8 * A & 15];
return e;
}
function z2(t) {
return String.fromCharCode((255 & t) >> 0, (65280 & t) >> 8, (16711680 & t) >> 16, (4278190080 & t) >> 24);
}
function Rc(t) {
return Dh(t).map(z2).join("");
}
var J2 = function(t) {
for (var e = 0; e < t.length; e++) t[e] = X2(t[e]);
return t.join("");
}(Dh("hello")) != "5d41402abc4b2a76b9719d911017c592";
function kn(t, e) {
if (J2) {
var A = (65535 & t) + (65535 & e);
return (t >> 16) + (e >> 16) + (A >> 16) << 16 | 65535 & A;
}
return t + e & 4294967295;
}
/**
* @license
* FPDF is released under a permissive license: there is no usage restriction.
* You may embed it freely in your application (commercial or not), with or
* without modifications.
*
* Reference: http://www.fpdf.org/en/script/script37.php
*/
function Gc(t, e) {
var A, r, n, i;
if (t !== A) {
for (var s = (n = t, i = 1 + (256 / t.length >> 0), new Array(i + 1).join(n)), o = [], c = 0; c < 256; c++) o[c] = c;
var h = 0;
for (c = 0; c < 256; c++) {
var p = o[c];
h = (h + p + s.charCodeAt(c)) % 256, o[c] = o[h], o[h] = p;
}
A = t, r = o;
} else o = r;
var d = e.length, w = 0, g = 0, Q = "";
for (c = 0; c < d; c++) g = (g + (p = o[w = (w + 1) % 256])) % 256, o[w] = o[g], o[g] = p, s = o[(o[w] + o[g]) % 256], Q += String.fromCharCode(e.charCodeAt(c) ^ s);
return Q;
}
/**
* @license
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
* Author: Owen Leong (@owenl131)
* Date: 15 Oct 2020
* References:
* https://www.cs.cmu.edu/~dst/Adobe/Gallery/anon21jul01-pdf-encryption.txt
* https://github.com/foliojs/pdfkit/blob/master/lib/security.js
* http://www.fpdf.org/en/script/script37.php
*/
var sf = { print: 4, modify: 8, copy: 16, "annot-forms": 32 };
function Zi(t, e, A, r) {
this.v = 1, this.r = 2;
var n = 192;
t.forEach(function(o) {
if (sf.perm !== void 0) throw new Error("Invalid permission: " + o);
n += sf[o];
}), this.padding = "(¿N^NuAd\0NVÿú\b..\0¶Ðh>/\f©þdSiz";
var i = (e + this.padding).substr(0, 32), s = (A + this.padding).substr(0, 32);
this.O = this.processOwnerPassword(i, s), this.P = -(1 + (255 ^ n)), this.encryptionKey = Rc(i + this.O + this.lsbFirstWord(this.P) + this.hexToBytes(r)).substr(0, 5), this.U = Gc(this.encryptionKey, this.padding);
}
function Aa(t) {
if (/[^\u0000-\u00ff]/.test(t)) throw new Error("Invalid PDF Name Object: " + t + ", Only accept ASCII characters.");
for (var e = "", A = t.length, r = 0; r < A; r++) {
var n = t.charCodeAt(r);
n < 33 || n === 35 || n === 37 || n === 40 || n === 41 || n === 47 || n === 60 || n === 62 || n === 91 || n === 93 || n === 123 || n === 125 || n > 126 ? e += "#" + ("0" + n.toString(16)).slice(-2) : e += t[r];
}
return e;
}
function of(t) {
if (Se(t) !== "object") throw new Error("Invalid Context passed to initialize PubSub (jsPDF-module)");
var e = {};
this.subscribe = function(A, r, n) {
if (n = n || !1, typeof A != "string" || typeof r != "function" || typeof n != "boolean") throw new Error("Invalid arguments passed to PubSub.subscribe (jsPDF-module)");
e.hasOwnProperty(A) || (e[A] = {});
var i = Math.random().toString(35);
return e[A][i] = [r, !!n], i;
}, this.unsubscribe = function(A) {
for (var r in e) if (e[r][A]) return delete e[r][A], Object.keys(e[r]).length === 0 && delete e[r], !0;
return !1;
}, this.publish = function(A) {
if (e.hasOwnProperty(A)) {
var r = Array.prototype.slice.call(arguments, 1), n = [];
for (var i in e[A]) {
var s = e[A][i];
try {
s[0].apply(t, r);
} catch (o) {
le.console && _e.error("jsPDF PubSub Error", o.message, o);
}
s[1] && n.push(i);
}
n.length && n.forEach(this.unsubscribe);
}
}, this.getTopics = function() {
return e;
};
}
function Go(t) {
if (!(this instanceof Go)) return new Go(t);
var e = "opacity,stroke-opacity".split(",");
for (var A in t) t.hasOwnProperty(A) && e.indexOf(A) >= 0 && (this[A] = t[A]);
this.id = "", this.objectNumber = -1;
}
function Nh(t, e) {
this.gState = t, this.matrix = e, this.id = "", this.objectNumber = -1;
}
function ai(t, e, A, r, n) {
if (!(this instanceof ai)) return new ai(t, e, A, r, n);
this.type = t === "axial" ? 2 : 3, this.coords = e, this.colors = A, Nh.call(this, r, n);
}
function ra(t, e, A, r, n) {
if (!(this instanceof ra)) return new ra(t, e, A, r, n);
this.boundingBox = t, this.xStep = e, this.yStep = A, this.stream = "", this.cloneIndex = 0, Nh.call(this, r, n);
}
function ae(t) {
var e, A = typeof arguments[0] == "string" ? arguments[0] : "p", r = arguments[1], n = arguments[2], i = arguments[3], s = [], o = 1, c = 16, h = "S", p = null;
Se(t = t || {}) === "object" && (A = t.orientation, r = t.unit || r, n = t.format || n, i = t.compress || t.compressPdf || i, (p = t.encryption || null) !== null && (p.userPassword = p.userPassword || "", p.ownerPassword = p.ownerPassword || "", p.userPermissions = p.userPermissions || []), o = typeof t.userUnit == "number" ? Math.abs(t.userUnit) : 1, t.precision !== void 0 && (e = t.precision), t.floatPrecision !== void 0 && (c = t.floatPrecision), h = t.defaultPathOperation || "S"), s = t.filters || (i === !0 ? ["FlateEncode"] : s), r = r || "mm", A = ("" + (A || "P")).toLowerCase();
var d = t.putOnlyUsedFonts || !1, w = {}, g = { internal: {}, __private__: {} };
g.__private__.PubSub = of;
var Q = "1.3", y = g.__private__.getPdfVersion = function() {
return Q;
};
g.__private__.setPdfVersion = function(u) {
Q = u;
};
var N = { a0: [2383.94, 3370.39], a1: [1683.78, 2383.94], a2: [1190.55, 1683.78], a3: [841.89, 1190.55], a4: [595.28, 841.89], a5: [419.53, 595.28], a6: [297.64, 419.53], a7: [209.76, 297.64], a8: [147.4, 209.76], a9: [104.88, 147.4], a10: [73.7, 104.88], b0: [2834.65, 4008.19], b1: [2004.09, 2834.65], b2: [1417.32, 2004.09], b3: [1000.63, 1417.32], b4: [708.66, 1000.63], b5: [498.9, 708.66], b6: [354.33, 498.9], b7: [249.45, 354.33], b8: [175.75, 249.45], b9: [124.72, 175.75], b10: [87.87, 124.72], c0: [2599.37, 3676.54], c1: [1836.85, 2599.37], c2: [1298.27, 1836.85], c3: [918.43, 1298.27], c4: [649.13, 918.43], c5: [459.21, 649.13], c6: [323.15, 459.21], c7: [229.61, 323.15], c8: [161.57, 229.61], c9: [113.39, 161.57], c10: [79.37, 113.39], dl: [311.81, 623.62], letter: [612, 792], "government-letter": [576, 756], legal: [612, 1008], "junior-legal": [576, 360], ledger: [1224, 792], tabloid: [792, 1224], "credit-card": [153, 243] };
g.__private__.getPageFormats = function() {
return N;
};
var v = g.__private__.getPageFormat = function(u) {
return N[u];
};
n = n || "a4";
var U = { COMPAT: "compat", ADVANCED: "advanced" }, K = U.COMPAT;
function j() {
this.saveGraphicsState(), D(new ie(VA, 0, 0, -VA, 0, pn() * VA).toString() + " cm"), this.setFontSize(this.getFontSize() / VA), h = "n", K = U.ADVANCED;
}
function q() {
this.restoreGraphicsState(), h = "S", K = U.COMPAT;
}
var V = g.__private__.combineFontStyleAndFontWeight = function(u, C) {
if (u == "bold" && C == "normal" || u == "bold" && C == 400 || u == "normal" && C == "italic" || u == "bold" && C == "italic") throw new Error("Invalid Combination of fontweight and fontstyle");
return C && (u = C == 400 || C === "normal" ? u === "italic" ? "italic" : "normal" : C != 700 && C !== "bold" || u !== "normal" ? (C == 700 ? "bold" : C) + "" + u : "bold"), u;
};
g.advancedAPI = function(u) {
var C = K === U.COMPAT;
return C && j.call(this), typeof u != "function" || (u(this), C && q.call(this)), this;
}, g.compatAPI = function(u) {
var C = K === U.ADVANCED;
return C && q.call(this), typeof u != "function" || (u(this), C && j.call(this)), this;
}, g.isAdvancedAPI = function() {
return K === U.ADVANCED;
};
var z, H = function(u) {
if (K !== U.ADVANCED) throw new Error(u + " is only available in 'advanced' API mode. You need to call advancedAPI() first.");
}, G = g.roundToPrecision = g.__private__.roundToPrecision = function(u, C) {
var O = e || C;
if (isNaN(u) || isNaN(O)) throw new Error("Invalid argument passed to jsPDF.roundToPrecision");
return u.toFixed(O).replace(/0+$/, "");
};
z = g.hpf = g.__private__.hpf = typeof c == "number" ? function(u) {
if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.hpf");
return G(u, c);
} : c === "smart" ? function(u) {
if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.hpf");
return G(u, u > -1 && u < 1 ? 16 : 5);
} : function(u) {
if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.hpf");
return G(u, 16);
};
var tA = g.f2 = g.__private__.f2 = function(u) {
if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.f2");
return G(u, 2);
}, x = g.__private__.f3 = function(u) {
if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.f3");
return G(u, 3);
}, F = g.scale = g.__private__.scale = function(u) {
if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.scale");
return K === U.COMPAT ? u * VA : K === U.ADVANCED ? u : void 0;
}, _ = function(u) {
return K === U.COMPAT ? pn() - u : K === U.ADVANCED ? u : void 0;
}, P = function(u) {
return F(_(u));
};
g.__private__.setPrecision = g.setPrecision = function(u) {
typeof parseInt(u, 10) == "number" && (e = parseInt(u, 10));
};
var lA, oA = "00000000000000000000000000000000", iA = g.__private__.getFileId = function() {
return oA;
}, k = g.__private__.setFileId = function(u) {
return oA = u !== void 0 && /^[a-fA-F0-9]{32}$/.test(u) ? u.toUpperCase() : oA.split("").map(function() {
return "ABCDEF0123456789".charAt(Math.floor(16 * Math.random()));
}).join(""), p !== null && (Qt = new Zi(p.userPermissions, p.userPassword, p.ownerPassword, oA)), oA;
};
g.setFileId = function(u) {
return k(u), this;
}, g.getFileId = function() {
return iA();
};
var W = g.__private__.convertDateToPDFDate = function(u) {
var C = u.getTimezoneOffset(), O = C < 0 ? "+" : "-", Y = Math.floor(Math.abs(C / 60)), cA = Math.abs(C % 60), CA = [O, R(Y), "'", R(cA), "'"].join("");
return ["D:", u.getFullYear(), R(u.getMonth() + 1), R(u.getDate()), R(u.getHours()), R(u.getMinutes()), R(u.getSeconds()), CA].join("");
}, rA = g.__private__.convertPDFDateToDate = function(u) {
var C = parseInt(u.substr(2, 4), 10), O = parseInt(u.substr(6, 2), 10) - 1, Y = parseInt(u.substr(8, 2), 10), cA = parseInt(u.substr(10, 2), 10), CA = parseInt(u.substr(12, 2), 10), kA = parseInt(u.substr(14, 2), 10);
return new Date(C, O, Y, cA, CA, kA, 0);
}, OA = g.__private__.setCreationDate = function(u) {
var C;
if (u === void 0 && (u = /* @__PURE__ */ new Date()), u instanceof Date) C = W(u);
else {
if (!/^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\+0[0-9]|\+1[0-4]|-0[0-9]|-1[0-1])'(0[0-9]|[1-5][0-9])'?$/.test(u)) throw new Error("Invalid argument passed to jsPDF.setCreationDate");
C = u;
}
return lA = C;
}, L = g.__private__.getCreationDate = function(u) {
var C = lA;
return u === "jsDate" && (C = rA(lA)), C;
};
g.setCreationDate = function(u) {
return OA(u), this;
}, g.getCreationDate = function(u) {
return L(u);
};
var M, R = g.__private__.padd2 = function(u) {
return ("0" + parseInt(u)).slice(-2);
}, J = g.__private__.padd2Hex = function(u) {
return ("00" + (u = u.toString())).substr(u.length);
}, eA = 0, uA = [], dA = [], gA = 0, MA = [], NA = [], RA = !1, GA = dA, ee = function() {
eA = 0, gA = 0, dA = [], uA = [], MA = [], Yr = it(), gr = it();
};
g.__private__.setCustomOutputDestination = function(u) {
RA = !0, GA = u;
};
var wA = function(u) {
RA || (GA = u);
};
g.__private__.resetCustomOutputDestination = function() {
RA = !1, GA = dA;
};
var D = g.__private__.out = function(u) {
return u = u.toString(), gA += u.length + 1, GA.push(u), GA;
}, $ = g.__private__.write = function(u) {
return D(arguments.length === 1 ? u.toString() : Array.prototype.join.call(arguments, " "));
}, BA = g.__private__.getArrayBuffer = function(u) {
for (var C = u.length, O = new ArrayBuffer(C), Y = new Uint8Array(O); C--; ) Y[C] = u.charCodeAt(C);
return O;
}, sA = [["Helvetica", "helvetica", "normal", "WinAnsiEncoding"], ["Helvetica-Bold", "helvetica", "bold", "WinAnsiEncoding"], ["Helvetica-Oblique", "helvetica", "italic", "WinAnsiEncoding"], ["Helvetica-BoldOblique", "helvetica", "bolditalic", "WinAnsiEncoding"], ["Courier", "courier", "normal", "WinAnsiEncoding"], ["Courier-Bold", "courier", "bold", "WinAnsiEncoding"], ["Courier-Oblique", "courier", "italic", "WinAnsiEncoding"], ["Courier-BoldOblique", "courier", "bolditalic", "WinAnsiEncoding"], ["Times-Roman", "times", "normal", "WinAnsiEncoding"], ["Times-Bold", "times", "bold", "WinAnsiEncoding"], ["Times-Italic", "times", "italic", "WinAnsiEncoding"], ["Times-BoldItalic", "times", "bolditalic", "WinAnsiEncoding"], ["ZapfDingbats", "zapfdingbats", "normal", null], ["Symbol", "symbol", "normal", null]];
g.__private__.getStandardFonts = function() {
return sA;
};
var pA = t.fontSize || 16;
g.__private__.setFontSize = g.setFontSize = function(u) {
return pA = K === U.ADVANCED ? u / VA : u, this;
};
var FA, UA = g.__private__.getFontSize = g.getFontSize = function() {
return K === U.COMPAT ? pA : pA * VA;
}, SA = t.R2L || !1;
g.__private__.setR2L = g.setR2L = function(u) {
return SA = u, this;
}, g.__private__.getR2L = g.getR2L = function() {
return SA;
};
var QA, yA = g.__private__.setZoomMode = function(u) {
var C = [void 0, null, "fullwidth", "fullheight", "fullpage", "original"];
if (/^(?:\d+\.\d*|\d*\.\d+|\d+)%$/.test(u)) FA = u;
else if (isNaN(u)) {
if (C.indexOf(u) === -1) throw new Error('zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. "' + u + '" is not recognized.');
FA = u;
} else FA = parseInt(u, 10);
};
g.__private__.getZoomMode = function() {
return FA;
};
var PA, ZA = g.__private__.setPageMode = function(u) {
if ([void 0, null, "UseNone", "UseOutlines", "UseThumbs", "FullScreen"].indexOf(u) == -1) throw new Error('Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. "' + u + '" is not recognized.');
QA = u;
};
g.__private__.getPageMode = function() {
return QA;
};
var ue = g.__private__.setLayoutMode = function(u) {
if ([void 0, null, "continuous", "single", "twoleft", "tworight", "two"].indexOf(u) == -1) throw new Error('Layout mode must be one of continuous, single, twoleft, tworight. "' + u + '" is not recognized.');
PA = u;
};
g.__private__.getLayoutMode = function() {
return PA;
}, g.__private__.setDisplayMode = g.setDisplayMode = function(u, C, O) {
return yA(u), ue(C), ZA(O), this;
};
var YA = { title: "", subject: "", author: "", keywords: "", creator: "" };
g.__private__.getDocumentProperty = function(u) {
if (Object.keys(YA).indexOf(u) === -1) throw new Error("Invalid argument passed to jsPDF.getDocumentProperty");
return YA[u];
}, g.__private__.getDocumentProperties = function() {
return YA;
}, g.__private__.setDocumentProperties = g.setProperties = g.setDocumentProperties = function(u) {
for (var C in YA) YA.hasOwnProperty(C) && u[C] && (YA[C] = u[C]);
return this;
}, g.__private__.setDocumentProperty = function(u, C) {
if (Object.keys(YA).indexOf(u) === -1) throw new Error("Invalid arguments passed to jsPDF.setDocumentProperty");
return YA[u] = C;
};
var ne, VA, Ve, mA, TA, IA = {}, Ae = {}, me = [], se = {}, He = {}, we = {}, Oe = {}, ze = null, ve = 0, ce = [], Ue = new of(g), jn = t.hotfixes || [], wt = {}, Dr = {}, Nr = [], ie = function u(C, O, Y, cA, CA, kA) {
if (!(this instanceof u)) return new u(C, O, Y, cA, CA, kA);
isNaN(C) && (C = 1), isNaN(O) && (O = 0), isNaN(Y) && (Y = 0), isNaN(cA) && (cA = 1), isNaN(CA) && (CA = 0), isNaN(kA) && (kA = 0), this._matrix = [C, O, Y, cA, CA, kA];
};
Object.defineProperty(ie.prototype, "sx", { get: function() {
return this._matrix[0];
}, set: function(u) {
this._matrix[0] = u;
} }), Object.defineProperty(ie.prototype, "shy", { get: function() {
return this._matrix[1];
}, set: function(u) {
this._matrix[1] = u;
} }), Object.defineProperty(ie.prototype, "shx", { get: function() {
return this._matrix[2];
}, set: function(u) {
this._matrix[2] = u;
} }), Object.defineProperty(ie.prototype, "sy", { get: function() {
return this._matrix[3];
}, set: function(u) {
this._matrix[3] = u;
} }), Object.defineProperty(ie.prototype, "tx", { get: function() {
return this._matrix[4];
}, set: function(u) {
this._matrix[4] = u;
} }), Object.defineProperty(ie.prototype, "ty", { get: function() {
return this._matrix[5];
}, set: function(u) {
this._matrix[5] = u;
} }), Object.defineProperty(ie.prototype, "a", { get: function() {
return this._matrix[0];
}, set: function(u) {
this._matrix[0] = u;
} }), Object.defineProperty(ie.prototype, "b", { get: function() {
return this._matrix[1];
}, set: function(u) {
this._matrix[1] = u;
} }), Object.defineProperty(ie.prototype, "c", { get: function() {
return this._matrix[2];
}, set: function(u) {
this._matrix[2] = u;
} }), Object.defineProperty(ie.prototype, "d", { get: function() {
return this._matrix[3];
}, set: function(u) {
this._matrix[3] = u;
} }), Object.defineProperty(ie.prototype, "e", { get: function() {
return this._matrix[4];
}, set: function(u) {
this._matrix[4] = u;
} }), Object.defineProperty(ie.prototype, "f", { get: function() {
return this._matrix[5];
}, set: function(u) {
this._matrix[5] = u;
} }), Object.defineProperty(ie.prototype, "rotation", { get: function() {
return Math.atan2(this.shx, this.sx);
} }), Object.defineProperty(ie.prototype, "scaleX", { get: function() {
return this.decompose().scale.sx;
} }), Object.defineProperty(ie.prototype, "scaleY", { get: function() {
return this.decompose().scale.sy;
} }), Object.defineProperty(ie.prototype, "isIdentity", { get: function() {
return this.sx === 1 && this.shy === 0 && this.shx === 0 && this.sy === 1 && this.tx === 0 && this.ty === 0;
} }), ie.prototype.join = function(u) {
return [this.sx, this.shy, this.shx, this.sy, this.tx, this.ty].map(z).join(u);
}, ie.prototype.multiply = function(u) {
var C = u.sx * this.sx + u.shy * this.shx, O = u.sx * this.shy + u.shy * this.sy, Y = u.shx * this.sx + u.sy * this.shx, cA = u.shx * this.shy + u.sy * this.sy, CA = u.tx * this.sx + u.ty * this.shx + this.tx, kA = u.tx * this.shy + u.ty * this.sy + this.ty;
return new ie(C, O, Y, cA, CA, kA);
}, ie.prototype.decompose = function() {
var u = this.sx, C = this.shy, O = this.shx, Y = this.sy, cA = this.tx, CA = this.ty, kA = Math.sqrt(u * u + C * C), XA = (u /= kA) * O + (C /= kA) * Y;
O -= u * XA, Y -= C * XA;
var te = Math.sqrt(O * O + Y * Y);
return XA /= te, u * (Y /= te) < C * (O /= te) && (u = -u, C = -C, XA = -XA, kA = -kA), { scale: new ie(kA, 0, 0, te, 0, 0), translate: new ie(1, 0, 0, 1, cA, CA), rotate: new ie(u, C, -C, u, 0, 0), skew: new ie(1, 0, XA, 1, 0, 0) };
}, ie.prototype.toString = function(u) {
return this.join(" ");
}, ie.prototype.inversed = function() {
var u = this.sx, C = this.shy, O = this.shx, Y = this.sy, cA = this.tx, CA = this.ty, kA = 1 / (u * Y - C * O), XA = Y * kA, te = -C * kA, pe = -O * kA, de = u * kA;
return new ie(XA, te, pe, de, -XA * cA - pe * CA, -te * cA - de * CA);
}, ie.prototype.applyToPoint = function(u) {
var C = u.x * this.sx + u.y * this.shx + this.tx, O = u.x * this.shy + u.y * this.sy + this.ty;
return new Ei(C, O);
}, ie.prototype.applyToRectangle = function(u) {
var C = this.applyToPoint(u), O = this.applyToPoint(new Ei(u.x + u.w, u.y + u.h));
return new ya(C.x, C.y, O.x - C.x, O.y - C.y);
}, ie.prototype.clone = function() {
var u = this.sx, C = this.shy, O = this.shx, Y = this.sy, cA = this.tx, CA = this.ty;
return new ie(u, C, O, Y, cA, CA);
}, g.Matrix = ie;
var dr = g.matrixMult = function(u, C) {
return C.multiply(u);
}, kr = new ie(1, 0, 0, 1, 0, 0);
g.unitMatrix = g.identityMatrix = kr;
var Mt = function(u, C) {
if (!He[u]) {
var O = (C instanceof ai ? "Sh" : "P") + (Object.keys(se).length + 1).toString(10);
C.id = O, He[u] = O, se[O] = C, Ue.publish("addPattern", C);
}
};
g.ShadingPattern = ai, g.TilingPattern = ra, g.addShadingPattern = function(u, C) {
return H("addShadingPattern()"), Mt(u, C), this;
}, g.beginTilingPattern = function(u) {
H("beginTilingPattern()"), Ss(u.boundingBox[0], u.boundingBox[1], u.boundingBox[2] - u.boundingBox[0], u.boundingBox[3] - u.boundingBox[1], u.matrix);
}, g.endTilingPattern = function(u, C) {
H("endTilingPattern()"), C.stream = NA[M].join(`
`), Mt(u, C), Ue.publish("endTilingPattern", C), Nr.pop().restore();
};
var ct = g.__private__.newObject = function() {
var u = it();
return qt(u, !0), u;
}, it = g.__private__.newObjectDeferred = function() {
return eA++, uA[eA] = function() {
return gA;
}, eA;
}, qt = function(u, C) {
return C = typeof C == "boolean" && C, uA[u] = gA, C && D(u + " 0 obj"), u;
}, gi = g.__private__.newAdditionalObject = function() {
var u = { objId: it(), content: "" };
return MA.push(u), u;
}, Yr = it(), gr = it(), pr = g.__private__.decodeColorString = function(u) {
var C = u.split(" ");
if (C.length !== 2 || C[1] !== "g" && C[1] !== "G")
C.length === 5 && (C[4] === "k" || C[4] === "K") && (C = [(1 - C[0]) * (1 - C[3]), (1 - C[1]) * (1 - C[3]), (1 - C[2]) * (1 - C[3]), "r"]);
else {
var O = parseFloat(C[0]);
C = [O, O, O, "r"];
}
for (var Y = "#", cA = 0; cA < 3; cA++) Y += ("0" + Math.floor(255 * parseFloat(C[cA])).toString(16)).slice(-2);
return Y;
}, Br = g.__private__.encodeColorString = function(u) {
var C;
typeof u == "string" && (u = { ch1: u });
var O = u.ch1, Y = u.ch2, cA = u.ch3, CA = u.ch4, kA = u.pdfColorType === "draw" ? ["G", "RG", "K"] : ["g", "rg", "k"];
if (typeof O == "string" && O.charAt(0) !== "#") {
var XA = new Hh(O);
if (XA.ok) O = XA.toHex();
else if (!/^\d*\.?\d*$/.test(O)) throw new Error('Invalid color "' + O + '" passed to jsPDF.encodeColorString.');
}
if (typeof O == "string" && /^#[0-9A-Fa-f]{3}$/.test(O) && (O = "#" + O[1] + O[1] + O[2] + O[2] + O[3] + O[3]), typeof O == "string" && /^#[0-9A-Fa-f]{6}$/.test(O)) {
var te = parseInt(O.substr(1), 16);
O = te >> 16 & 255, Y = te >> 8 & 255, cA = 255 & te;
}
if (Y === void 0 || CA === void 0 && O === Y && Y === cA) if (typeof O == "string") C = O + " " + kA[0];
else switch (u.precision) {
case 2:
C = tA(O / 255) + " " + kA[0];
break;
case 3:
default:
C = x(O / 255) + " " + kA[0];
}
else if (CA === void 0 || Se(CA) === "object") {
if (CA && !isNaN(CA.a) && CA.a === 0) return C = ["1.", "1.", "1.", kA[1]].join(" ");
if (typeof O == "string") C = [O, Y, cA, kA[1]].join(" ");
else switch (u.precision) {
case 2:
C = [tA(O / 255), tA(Y / 255), tA(cA / 255), kA[1]].join(" ");
break;
default:
case 3:
C = [x(O / 255), x(Y / 255), x(cA / 255), kA[1]].join(" ");
}
} else if (typeof O == "string") C = [O, Y, cA, CA, kA[2]].join(" ");
else switch (u.precision) {
case 2:
C = [tA(O), tA(Y), tA(cA), tA(CA), kA[2]].join(" ");
break;
case 3:
default:
C = [x(O), x(Y), x(cA), x(CA), kA[2]].join(" ");
}
return C;
}, _r = g.__private__.getFilters = function() {
return s;
}, Ar = g.__private__.putStream = function(u) {
var C = (u = u || {}).data || "", O = u.filters || _r(), Y = u.alreadyAppliedFilters || [], cA = u.addLength1 || !1, CA = C.length, kA = u.objectId, XA = function(bt) {
return bt;
};
if (p !== null && kA === void 0) throw new Error("ObjectId must be passed to putStream for file encryption");
p !== null && (XA = Qt.encryptor(kA, 0));
var te = {};
O === !0 && (O = ["FlateEncode"]);
var pe = u.additionalKeyValues || [], de = (te = ae.API.processDataByFilters !== void 0 ? ae.API.processDataByFilters(C, O) : { data: C, reverseChain: [] }).reverseChain + (Array.isArray(Y) ? Y.join(" ") : Y.toString());
if (te.data.length !== 0 && (pe.push({ key: "Length", value: te.data.length }), cA === !0 && pe.push({ key: "Length1", value: CA })), de.length != 0) if (de.split("/").length - 1 == 1) pe.push({ key: "Filter", value: de });
else {
pe.push({ key: "Filter", value: "[" + de + "]" });
for (var Qe = 0; Qe < pe.length; Qe += 1) if (pe[Qe].key === "DecodeParms") {
for (var je = [], qe = 0; qe < te.reverseChain.split("/").length - 1; qe += 1) je.push("null");
je.push(pe[Qe].value), pe[Qe].value = "[" + je.join(" ") + "]";
}
}
D("<<");
for (var at = 0; at < pe.length; at++) D("/" + pe[at].key + " " + pe[at].value);
D(">>"), te.data.length !== 0 && (D("stream"), D(XA(te.data)), D("endstream"));
}, Tr = g.__private__.putPage = function(u) {
var C = u.number, O = u.data, Y = u.objId, cA = u.contentsObjId;
qt(Y, !0), D("<</Type /Page"), D("/Parent " + u.rootDictionaryObjId + " 0 R"), D("/Resources " + u.resourceDictionaryObjId + " 0 R"), D("/MediaBox [" + parseFloat(z(u.mediaBox.bottomLeftX)) + " " + parseFloat(z(u.mediaBox.bottomLeftY)) + " " + z(u.mediaBox.topRightX) + " " + z(u.mediaBox.topRightY) + "]"), u.cropBox !== null && D("/CropBox [" + z(u.cropBox.bottomLeftX) + " " + z(u.cropBox.bottomLeftY) + " " + z(u.cropBox.topRightX) + " " + z(u.cropBox.topRightY) + "]"), u.bleedBox !== null && D("/BleedBox [" + z(u.bleedBox.bottomLeftX) + " " + z(u.bleedBox.bottomLeftY) + " " + z(u.bleedBox.topRightX) + " " + z(u.bleedBox.topRightY) + "]"), u.trimBox !== null && D("/TrimBox [" + z(u.trimBox.bottomLeftX) + " " + z(u.trimBox.bottomLeftY) + " " + z(u.trimBox.topRightX) + " " + z(u.trimBox.topRightY) + "]"), u.artBox !== null && D("/ArtBox [" + z(u.artBox.bottomLeftX) + " " + z(u.artBox.bottomLeftY) + " " + z(u.artBox.topRightX) + " " + z(u.artBox.topRightY) + "]"), typeof u.userUnit == "number" && u.userUnit !== 1 && D("/UserUnit " + u.userUnit), Ue.publish("putPage", { objId: Y, pageContext: ce[C], pageNumber: C, page: O }), D("/Contents " + cA + " 0 R"), D(">>"), D("endobj");
var CA = O.join(`
`);
return K === U.ADVANCED && (CA += `
Q`), qt(cA, !0), Ar({ data: CA, filters: _r(), objectId: cA }), D("endobj"), Y;
}, qn = g.__private__.putPages = function() {
var u, C, O = [];
for (u = 1; u <= ve; u++) ce[u].objId = it(), ce[u].contentsObjId = it();
for (u = 1; u <= ve; u++) O.push(Tr({ number: u, data: NA[u], objId: ce[u].objId, contentsObjId: ce[u].contentsObjId, mediaBox: ce[u].mediaBox, cropBox: ce[u].cropBox, bleedBox: ce[u].bleedBox, trimBox: ce[u].trimBox, artBox: ce[u].artBox, userUnit: ce[u].userUnit, rootDictionaryObjId: Yr, resourceDictionaryObjId: gr }));
qt(Yr, !0), D("<</Type /Pages");
var Y = "/Kids [";
for (C = 0; C < ve; C++) Y += O[C] + " 0 R ";
D(Y + "]"), D("/Count " + ve), D(">>"), D("endobj"), Ue.publish("postPutPages");
}, pi = function(u) {
Ue.publish("putFont", { font: u, out: D, newObject: ct, putStream: Ar }), u.isAlreadyPutted !== !0 && (u.objectNumber = ct(), D("<<"), D("/Type /Font"), D("/BaseFont /" + Aa(u.postScriptName)), D("/Subtype /Type1"), typeof u.encoding == "string" && D("/Encoding /" + u.encoding), D("/FirstChar 32"), D("/LastChar 255"), D(">>"), D("endobj"));
}, Bi = function() {
for (var u in IA) IA.hasOwnProperty(u) && (d === !1 || d === !0 && w.hasOwnProperty(u)) && pi(IA[u]);
}, wi = function(u) {
u.objectNumber = ct();
var C = [];
C.push({ key: "Type", value: "/XObject" }), C.push({ key: "Subtype", value: "/Form" }), C.push({ key: "BBox", value: "[" + [z(u.x), z(u.y), z(u.x + u.width), z(u.y + u.height)].join(" ") + "]" }), C.push({ key: "Matrix", value: "[" + u.matrix.toString() + "]" });
var O = u.pages[1].join(`
`);
Ar({ data: O, additionalKeyValues: C, objectId: u.objectNumber }), D("endobj");
}, vi = function() {
for (var u in wt) wt.hasOwnProperty(u) && wi(wt[u]);
}, hs = function(u, C) {
var O, Y = [], cA = 1 / (C - 1);
for (O = 0; O < 1; O += cA) Y.push(O);
if (Y.push(1), u[0].offset != 0) {
var CA = { offset: 0, color: u[0].color };
u.unshift(CA);
}
if (u[u.length - 1].offset != 1) {
var kA = { offset: 1, color: u[u.length - 1].color };
u.push(kA);
}
for (var XA = "", te = 0, pe = 0; pe < Y.length; pe++) {
for (O = Y[pe]; O > u[te + 1].offset; ) te++;
var de = u[te].offset, Qe = (O - de) / (u[te + 1].offset - de), je = u[te].color, qe = u[te + 1].color;
XA += J(Math.round((1 - Qe) * je[0] + Qe * qe[0]).toString(16)) + J(Math.round((1 - Qe) * je[1] + Qe * qe[1]).toString(16)) + J(Math.round((1 - Qe) * je[2] + Qe * qe[2]).toString(16));
}
return XA.trim();
}, dl = function(u, C) {
C || (C = 21);
var O = ct(), Y = hs(u.colors, C), cA = [];
cA.push({ key: "FunctionType", value: "0" }), cA.push({ key: "Domain", value: "[0.0 1.0]" }), cA.push({ key: "Size", value: "[" + C + "]" }), cA.push({ key: "BitsPerSample", value: "8" }), cA.push({ key: "Range", value: "[0.0 1.0 0.0 1.0 0.0 1.0]" }), cA.push({ key: "Decode", value: "[0.0 1.0 0.0 1.0 0.0 1.0]" }), Ar({ data: Y, additionalKeyValues: cA, alreadyAppliedFilters: ["/ASCIIHexDecode"], objectId: O }), D("endobj"), u.objectNumber = ct(), D("<< /ShadingType " + u.type), D("/ColorSpace /DeviceRGB");
var CA = "/Coords [" + z(parseFloat(u.coords[0])) + " " + z(parseFloat(u.coords[1])) + " ";
u.type === 2 ? CA += z(parseFloat(u.coords[2])) + " " + z(parseFloat(u.coords[3])) : CA += z(parseFloat(u.coords[2])) + " " + z(parseFloat(u.coords[3])) + " " + z(parseFloat(u.coords[4])) + " " + z(parseFloat(u.coords[5])), D(CA += "]"), u.matrix && D("/Matrix [" + u.matrix.toString() + "]"), D("/Function " + O + " 0 R"), D("/Extend [true true]"), D(">>"), D("endobj");
}, gl = function(u, C) {
var O = it(), Y = ct();
C.push({ resourcesOid: O, objectOid: Y }), u.objectNumber = Y;
var cA = [];
cA.push({ key: "Type", value: "/Pattern" }), cA.push({ key: "PatternType", value: "1" }), cA.push({ key: "PaintType", value: "1" }), cA.push({ key: "TilingType", value: "1" }), cA.push({ key: "BBox", value: "[" + u.boundingBox.map(z).join(" ") + "]" }), cA.push({ key: "XStep", value: z(u.xStep) }), cA.push({ key: "YStep", value: z(u.yStep) }), cA.push({ key: "Resources", value: O + " 0 R" }), u.matrix && cA.push({ key: "Matrix", value: "[" + u.matrix.toString() + "]" }), Ar({ data: u.stream, additionalKeyValues: cA, objectId: u.objectNumber }), D("endobj");
}, mi = function(u) {
var C;
for (C in se) se.hasOwnProperty(C) && (se[C] instanceof ai ? dl(se[C]) : se[C] instanceof ra && gl(se[C], u));
}, ds = function(u) {
for (var C in u.objectNumber = ct(), D("<<"), u) switch (C) {
case "opacity":
D("/ca " + tA(u[C]));
break;
case "stroke-opacity":
D("/CA " + tA(u[C]));
}
D(">>"), D("endobj");
}, pl = function() {
var u;
for (u in we) we.hasOwnProperty(u) && ds(we[u]);
}, fa = function() {
for (var u in D("/XObject <<"), wt) wt.hasOwnProperty(u) && wt[u].objectNumber >= 0 && D("/" + u + " " + wt[u].objectNumber + " 0 R");
Ue.publish("putXobjectDict"), D(">>");
}, Bl = function() {
Qt.oid = ct(), D("<<"), D("/Filter /Standard"), D("/V " + Qt.v), D("/R " + Qt.r), D("/U <" + Qt.toHexString(Qt.U) + ">"), D("/O <" + Qt.toHexString(Qt.O) + ">"), D("/P " + Qt.P), D(">>"), D("endobj");
}, gs = function() {
for (var u in D("/Font <<"), IA) IA.hasOwnProperty(u) && (d === !1 || d === !0 && w.hasOwnProperty(u)) && D("/" + u + " " + IA[u].objectNumber + " 0 R");
D(">>");
}, wl = function() {
if (Object.keys(se).length > 0) {
for (var u in D("/Shading <<"), se) se.hasOwnProperty(u) && se[u] instanceof ai && se[u].objectNumber >= 0 && D("/" + u + " " + se[u].objectNumber + " 0 R");
Ue.publish("putShadingPatternDict"), D(">>");
}
}, Ci = function(u) {
if (Object.keys(se).length > 0) {
for (var C in D("/Pattern <<"), se) se.hasOwnProperty(C) && se[C] instanceof g.TilingPattern && se[C].objectNumber >= 0 && se[C].objectNumber < u && D("/" + C + " " + se[C].objectNumber + " 0 R");
Ue.publish("putTilingPatternDict"), D(">>");
}
}, vl = function() {
if (Object.keys(we).length > 0) {
var u;
for (u in D("/ExtGState <<"), we) we.hasOwnProperty(u) && we[u].objectNumber >= 0 && D("/" + u + " " + we[u].objectNumber + " 0 R");
Ue.publish("putGStateDict"), D(">>");
}
}, Je = function(u) {
qt(u.resourcesOid, !0), D("<<"), D("/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]"), gs(), wl(), Ci(u.objectOid), vl(), fa(), D(">>"), D("endobj");
}, ps = function() {
var u = [];
Bi(), pl(), vi(), mi(u), Ue.publish("putResources"), u.forEach(Je), Je({ resourcesOid: gr, objectOid: Number.MAX_SAFE_INTEGER }), Ue.publish("postPutResources");
}, Bs = function() {
Ue.publish("putAdditionalObjects");
for (var u = 0; u < MA.length; u++) {
var C = MA[u];
qt(C.objId, !0), D(C.content), D("endobj");
}
Ue.publish("postPutAdditionalObjects");
}, ws = function(u) {
Ae[u.fontName] = Ae[u.fontName] || {}, Ae[u.fontName][u.fontStyle] = u.id;
}, ha = function(u, C, O, Y, cA) {
var CA = { id: "F" + (Object.keys(IA).length + 1).toString(10), postScriptName: u, fontName: C, fontStyle: O, encoding: Y, isStandardFont: cA || !1, metadata: {} };
return Ue.publish("addFont", { font: CA, instance: this }), IA[CA.id] = CA, ws(CA), CA.id;
}, ml = function(u) {
for (var C = 0, O = sA.length; C < O; C++) {
var Y = ha.call(this, u[C][0], u[C][1], u[C][2], sA[C][3], !0);
d === !1 && (w[Y] = !0);
var cA = u[C][0].split("-");
ws({ id: Y, fontName: cA[0], fontStyle: cA[1] || "" });
}
Ue.publish("addFonts", { fonts: IA, dictionary: Ae });
}, wr = function(u) {
return u.foo = function() {
try {
return u.apply(this, arguments);
} catch (Y) {
var C = Y.stack || "";
~C.indexOf(" at ") && (C = C.split(" at ")[1]);
var O = "Error in function " + C.split(`
`)[0].split("<")[0] + ": " + Y.message;
if (!le.console) throw new Error(O);
le.console.error(O, Y), le.alert && alert(O);
}
}, u.foo.bar = u, u.foo;
}, yi = function(u, C) {
var O, Y, cA, CA, kA, XA, te, pe, de;
if (cA = (C = C || {}).sourceEncoding || "Unicode", kA = C.outputEncoding, (C.autoencode || kA) && IA[ne].metadata && IA[ne].metadata[cA] && IA[ne].metadata[cA].encoding && (CA = IA[ne].metadata[cA].encoding, !kA && IA[ne].encoding && (kA = IA[ne].encoding), !kA && CA.codePages && (kA = CA.codePages[0]), typeof kA == "string" && (kA = CA[kA]), kA)) {
for (te = !1, XA = [], O = 0, Y = u.length; O < Y; O++) (pe = kA[u.charCodeAt(O)]) ? XA.push(String.fromCharCode(pe)) : XA.push(u[O]), XA[O].charCodeAt(0) >> 8 && (te = !0);
u = XA.join("");
}
for (O = u.length; te === void 0 && O !== 0; ) u.charCodeAt(O - 1) >> 8 && (te = !0), O--;
if (!te) return u;
for (XA = C.noBOM ? [] : [254, 255], O = 0, Y = u.length; O < Y; O++) {
if ((de = (pe = u.charCodeAt(O)) >> 8) >> 8) throw new Error("Character at position " + O + " of string '" + u + "' exceeds 16bits. Cannot be encoded into UCS-2 BE");
XA.push(de), XA.push(pe - (de << 8));
}
return String.fromCharCode.apply(void 0, XA);
}, Pt = g.__private__.pdfEscape = g.pdfEscape = function(u, C) {
return yi(u, C).replace(/\\/g, "\\\\").replace(/\(/g, "\\(").replace(/\)/g, "\\)");
}, da = g.__private__.beginPage = function(u) {
NA[++ve] = [], ce[ve] = { objId: 0, contentsObjId: 0, userUnit: Number(o), artBox: null, bleedBox: null, cropBox: null, trimBox: null, mediaBox: { bottomLeftX: 0, bottomLeftY: 0, topRightX: Number(u[0]), topRightY: Number(u[1]) } }, ms(ve), wA(NA[M]);
}, vs = function(u, C) {
var O, Y, cA;
switch (A = C || A, typeof u == "string" && (O = v(u.toLowerCase()), Array.isArray(O) && (Y = O[0], cA = O[1])), Array.isArray(u) && (Y = u[0] * VA, cA = u[1] * VA), isNaN(Y) && (Y = n[0], cA = n[1]), (Y > 14400 || cA > 14400) && (_e.warn("A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400"), Y = Math.min(14400, Y), cA = Math.min(14400, cA)), n = [Y, cA], A.substr(0, 1)) {
case "l":
cA > Y && (n = [cA, Y]);
break;
case "p":
Y > cA && (n = [cA, Y]);
}
da(n), Us(wa), D(vr), ma !== 0 && D(ma + " J"), Ca !== 0 && D(Ca + " j"), Ue.publish("addPage", { pageNumber: ve });
}, Cl = function(u) {
u > 0 && u <= ve && (NA.splice(u, 1), ce.splice(u, 1), ve--, M > ve && (M = ve), this.setPage(M));
}, ms = function(u) {
u > 0 && u <= ve && (M = u);
}, yl = g.__private__.getNumberOfPages = g.getNumberOfPages = function() {
return NA.length - 1;
}, Cs = function(u, C, O) {
var Y, cA = void 0;
return O = O || {}, u = u !== void 0 ? u : IA[ne].fontName, C = C !== void 0 ? C : IA[ne].fontStyle, Y = u.toLowerCase(), Ae[Y] !== void 0 && Ae[Y][C] !== void 0 ? cA = Ae[Y][C] : Ae[u] !== void 0 && Ae[u][C] !== void 0 ? cA = Ae[u][C] : O.disableWarning === !1 && _e.warn("Unable to look up font label for font '" + u + "', '" + C + "'. Refer to getFontList() for available fonts."), cA || O.noFallback || (cA = Ae.times[C]) == null && (cA = Ae.times.normal), cA;
}, Fl = g.__private__.putInfo = function() {
var u = ct(), C = function(Y) {
return Y;
};
for (var O in p !== null && (C = Qt.encryptor(u, 0)), D("<<"), D("/Producer (" + Pt(C("jsPDF " + ae.version)) + ")"), YA) YA.hasOwnProperty(O) && YA[O] && D("/" + O.substr(0, 1).toUpperCase() + O.substr(1) + " (" + Pt(C(YA[O])) + ")");
D("/CreationDate (" + Pt(C(lA)) + ")"), D(">>"), D("endobj");
}, ga = g.__private__.putCatalog = function(u) {
var C = (u = u || {}).rootDictionaryObjId || Yr;
switch (ct(), D("<<"), D("/Type /Catalog"), D("/Pages " + C + " 0 R"), FA || (FA = "fullwidth"), FA) {
case "fullwidth":
D("/OpenAction [3 0 R /FitH null]");
break;
case "fullheight":
D("/OpenAction [3 0 R /FitV null]");
break;
case "fullpage":
D("/OpenAction [3 0 R /Fit]");
break;
case "original":
D("/OpenAction [3 0 R /XYZ null null 1]");
break;
default:
var O = "" + FA;
O.substr(O.length - 1) === "%" && (FA = parseInt(FA) / 100), typeof FA == "number" && D("/OpenAction [3 0 R /XYZ null null " + tA(FA) + "]");
}
switch (PA || (PA = "continuous"), PA) {
case "continuous":
D("/PageLayout /OneColumn");
break;
case "single":
D("/PageLayout /SinglePage");
break;
case "two":
case "twoleft":
D("/PageLayout /TwoColumnLeft");
break;
case "tworight":
D("/PageLayout /TwoColumnRight");
}
QA && D("/PageMode /" + QA), Ue.publish("putCatalog"), D(">>"), D("endobj");
}, Ql = g.__private__.putTrailer = function() {
D("trailer"), D("<<"), D("/Size " + (eA + 1)), D("/Root " + eA + " 0 R"), D("/Info " + (eA - 1) + " 0 R"), p !== null && D("/Encrypt " + Qt.oid + " 0 R"), D("/ID [ <" + oA + "> <" + oA + "> ]"), D(">>");
}, bl = g.__private__.putHeader = function() {
D("%PDF-" + Q), D("%ºß¬à");
}, Ul = g.__private__.putXRef = function() {
var u = "0000000000";
D("xref"), D("0 " + (eA + 1)), D("0000000000 65535 f ");
for (var C = 1; C <= eA; C++)
typeof uA[C] == "function" ? D((u + uA[C]()).slice(-10) + " 00000 n ") : uA[C] !== void 0 ? D((u + uA[C]).slice(-10) + " 00000 n ") : D("0000000000 00000 n ");
}, $r = g.__private__.buildDocument = function() {
ee(), wA(dA), Ue.publish("buildDocument"), bl(), qn(), Bs(), ps(), p !== null && Bl(), Fl(), ga();
var u = gA;
return Ul(), Ql(), D("startxref"), D("" + u), D("%%EOF"), wA(NA[M]), dA.join(`
`);
}, Fi = g.__private__.getBlob = function(u) {
return new Blob([BA(u)], { type: "application/pdf" });
}, Qi = g.output = g.__private__.output = wr(function(u, C) {
switch (typeof (C = C || {}) == "string" ? C = { filename: C } : C.filename = C.filename || "generated.pdf", u) {
case void 0:
return $r();
case "save":
g.save(C.filename);
break;
case "arraybuffer":
return BA($r());
case "blob":
return Fi($r());
case "bloburi":
case "bloburl":
if (le.URL !== void 0 && typeof le.URL.createObjectURL == "function") return le.URL && le.URL.createObjectURL(Fi($r())) || void 0;
_e.warn("bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.");
break;
case "datauristring":
case "dataurlstring":
var O = "", Y = $r();
try {
O = Kc(Y);
} catch {
O = Kc(unescape(encodeURIComponent(Y)));
}
return "data:application/pdf;filename=" + C.filename + ";base64," + O;
case "pdfobjectnewwindow":
if (Object.prototype.toString.call(le) === "[object Window]") {
var cA = "https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js", CA = ' integrity="sha512-4ze/a9/4jqu+tX9dfOqJYSvyYd5M6qum/3HpCLr+/Jqf0whc37VUbkpNGHR7/8pSnCFw47T1fmIpwBV7UySh3g==" crossorigin="anonymous"';
C.pdfObjectUrl && (cA = C.pdfObjectUrl, CA = "");
var kA = '<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style><body><script src="' + cA + '"' + CA + '><\/script><script >PDFObject.embed("' + this.output("dataurlstring") + '", ' + JSON.stringify(C) + ");<\/script></body></html>", XA = le.open();
return XA !== null && XA.document.write(kA), XA;
}
throw new Error("The option pdfobjectnewwindow just works in a browser-environment.");
case "pdfjsnewwindow":
if (Object.prototype.toString.call(le) === "[object Window]") {
var te = '<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style><body><iframe id="pdfViewer" src="' + (C.pdfJsUrl || "examples/PDF.js/web/viewer.html") + "?file=&downloadName=" + C.filename + '" width="500px" height="400px" /></body></html>', pe = le.open();
if (pe !== null) {
pe.document.write(te);
var de = this;
pe.document.documentElement.querySelector("#pdfViewer").onload = function() {
pe.document.title = C.filename, pe.document.documentElement.querySelector("#pdfViewer").contentWindow.PDFViewerApplication.open(de.output("bloburl"));
};
}
return pe;
}
throw new Error("The option pdfjsnewwindow just works in a browser-environment.");
case "dataurlnewwindow":
if (Object.prototype.toString.call(le) !== "[object Window]") throw new Error("The option dataurlnewwindow just works in a browser-environment.");
var Qe = '<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style><body><iframe src="' + this.output("datauristring", C) + '"></iframe></body></html>', je = le.open();
if (je !== null && (je.document.write(Qe), je.document.title = C.filename), je || typeof safari > "u") return je;
break;
case "datauri":
case "dataurl":
return le.document.location.href = this.output("datauristring", C);
default:
return null;
}
}), ys = function(u) {
return Array.isArray(jn) === !0 && jn.indexOf(u) > -1;
};
switch (r) {
case "pt":
VA = 1;
break;
case "mm":
VA = 72 / 25.4;
break;
case "cm":
VA = 72 / 2.54;
break;
case "in":
VA = 72;
break;
case "px":
VA = ys("px_scaling") == 1 ? 0.75 : 96 / 72;
break;
case "pc":
case "em":
VA = 12;
break;
case "ex":
VA = 6;
break;
default:
if (typeof r != "number") throw new Error("Invalid unit: " + r);
VA = r;
}
var Qt = null;
OA(), k();
var Ll = function(u) {
return p !== null ? Qt.encryptor(u, 0) : function(C) {
return C;
};
}, Fs = g.__private__.getPageInfo = g.getPageInfo = function(u) {
if (isNaN(u) || u % 1 != 0) throw new Error("Invalid argument passed to jsPDF.getPageInfo");
return { objId: ce[u].objId, pageNumber: u, pageContext: ce[u] };
}, fe = g.__private__.getPageInfoByObjId = function(u) {
if (isNaN(u) || u % 1 != 0) throw new Error("Invalid argument passed to jsPDF.getPageInfoByObjId");
for (var C in ce) if (ce[C].objId === u) break;
return Fs(C);
}, El = g.__private__.getCurrentPageInfo = g.getCurrentPageInfo = function() {
return { objId: ce[M].objId, pageNumber: M, pageContext: ce[M] };
};
g.addPage = function() {
return vs.apply(this, arguments), this;
}, g.setPage = function() {
return ms.apply(this, arguments), wA.call(this, NA[M]), this;
}, g.insertPage = function(u) {
return this.addPage(), this.movePage(M, u), this;
}, g.movePage = function(u, C) {
var O, Y;
if (u > C) {
O = NA[u], Y = ce[u];
for (var cA = u; cA > C; cA--) NA[cA] = NA[cA - 1], ce[cA] = ce[cA - 1];
NA[C] = O, ce[C] = Y, this.setPage(C);
} else if (u < C) {
O = NA[u], Y = ce[u];
for (var CA = u; CA < C; CA++) NA[CA] = NA[CA + 1], ce[CA] = ce[CA + 1];
NA[C] = O, ce[C] = Y, this.setPage(C);
}
return this;
}, g.deletePage = function() {
return Cl.apply(this, arguments), this;
}, g.__private__.text = g.text = function(u, C, O, Y, cA) {
var CA, kA, XA, te, pe, de, Qe, je, qe, at = (Y = Y || {}).scope || this;
if (typeof u == "number" && typeof C == "number" && (typeof O == "string" || Array.isArray(O))) {
var bt = O;
O = C, C = u, u = bt;
}
if (arguments[3] instanceof ie ? (H("The transform parameter of text() with a Matrix value"), qe = cA) : (XA = arguments[4], te = arguments[5], Se(Qe = arguments[3]) === "object" && Qe !== null || (typeof XA == "string" && (te = XA, XA = null), typeof Qe == "string" && (te = Qe, Qe = null), typeof Qe == "number" && (XA = Qe, Qe = null), Y = { flags: Qe, angle: XA, align: te })), isNaN(C) || isNaN(O) || u == null) throw new Error("Invalid arguments passed to jsPDF.text");
if (u.length === 0) return at;
var ht = "", mr = !1, Wt = typeof Y.lineHeightFactor == "number" ? Y.lineHeightFactor : Xn, Or = at.internal.scaleFactor;
function Hs(Te) {
return Te = Te.split(" ").join(Array(Y.TabLen || 9).join(" ")), Pt(Te, Qe);
}
function Ua(Te) {
for (var Me, $e = Te.concat(), ut = [], rn = $e.length; rn--; ) typeof (Me = $e.shift()) == "string" ? ut.push(Me) : Array.isArray(Te) && (Me.length === 1 || Me[1] === void 0 && Me[2] === void 0) ? ut.push(Me[0]) : ut.push([Me[0], Me[1], Me[2]]);
return ut;
}
function La(Te, Me) {
var $e;
if (typeof Te == "string") $e = Me(Te)[0];
else if (Array.isArray(Te)) {
for (var ut, rn, ka = Te.concat(), Pi = [], Ts = ka.length; Ts--; ) typeof (ut = ka.shift()) == "string" ? Pi.push(Me(ut)[0]) : Array.isArray(ut) && typeof ut[0] == "string" && (rn = Me(ut[0], ut[1], ut[2]), Pi.push([rn[0], rn[1], rn[2]]));
$e = Pi;
}
return $e;
}
var Ii = !1, Ea = !0;
if (typeof u == "string") Ii = !0;
else if (Array.isArray(u)) {
var xa = u.concat();
kA = [];
for (var Si, vt = xa.length; vt--; ) (typeof (Si = xa.shift()) != "string" || Array.isArray(Si) && typeof Si[0] != "string") && (Ea = !1);
Ii = Ea;
}
if (Ii === !1) throw new Error('Type of text must be string or Array. "' + u + '" is not recognized.');
typeof u == "string" && (u = u.match(/[\r?\n]/) ? u.split(/\r\n|\r|\n/g) : [u]);
var Hi = pA / at.internal.scaleFactor, Di = Hi * (Wt - 1);
switch (Y.baseline) {
case "bottom":
O -= Di;
break;
case "top":
O += Hi - Di;
break;
case "hanging":
O += Hi - 2 * Di;
break;
case "middle":
O += Hi / 2 - Di;
}
if ((de = Y.maxWidth || 0) > 0 && (typeof u == "string" ? u = at.splitTextToSize(u, de) : Object.prototype.toString.call(u) === "[object Array]" && (u = u.reduce(function(Te, Me) {
return Te.concat(at.splitTextToSize(Me, de));
}, []))), CA = { text: u, x: C, y: O, options: Y, mutex: { pdfEscape: Pt, activeFontKey: ne, fonts: IA, activeFontSize: pA } }, Ue.publish("preProcessText", CA), u = CA.text, XA = (Y = CA.options).angle, !(qe instanceof ie) && XA && typeof XA == "number") {
XA *= Math.PI / 180, Y.rotationDirection === 0 && (XA = -XA), K === U.ADVANCED && (XA = -XA);
var Ni = Math.cos(XA), Ia = Math.sin(XA);
qe = new ie(Ni, Ia, -Ia, Ni, 0, 0);
} else XA && XA instanceof ie && (qe = XA);
K !== U.ADVANCED || qe || (qe = kr), (pe = Y.charSpace || Li) !== void 0 && (ht += z(F(pe)) + ` Tc
`, this.setCharSpace(this.getCharSpace() || 0)), (je = Y.horizontalScale) !== void 0 && (ht += z(100 * je) + ` Tz
`), Y.lang;
var Ot = -1, Ml = Y.renderingMode !== void 0 ? Y.renderingMode : Y.stroke, Sa = at.internal.getCurrentPageInfo().pageContext;
switch (Ml) {
case 0:
case !1:
case "fill":
Ot = 0;
break;
case 1:
case !0:
case "stroke":
Ot = 1;
break;
case 2:
case "fillThenStroke":
Ot = 2;
break;
case 3:
case "invisible":
Ot = 3;
break;
case 4:
case "fillAndAddForClipping":
Ot = 4;
break;
case 5:
case "strokeAndAddPathForClipping":
Ot = 5;
break;
case 6:
case "fillThenStrokeAndAddToPathForClipping":
Ot = 6;
break;
case 7:
case "addToPathForClipping":
Ot = 7;
}
var Ds = Sa.usedRenderingMode !== void 0 ? Sa.usedRenderingMode : -1;
Ot !== -1 ? ht += Ot + ` Tr
` : Ds !== -1 && (ht += `0 Tr
`), Ot !== -1 && (Sa.usedRenderingMode = Ot), te = Y.align || "left";
var er, ki = pA * Wt, Ns = at.internal.pageSize.getWidth(), ks = IA[ne];
pe = Y.charSpace || Li, de = Y.maxWidth || 0, Qe = Object.assign({ autoencode: !0, noBOM: !0 }, Y.flags);
var Bn = [], Yn = function(Te) {
return at.getStringUnitWidth(Te, { font: ks, charSpace: pe, fontSize: pA, doKerning: !1 }) * pA / Or;
};
if (Object.prototype.toString.call(u) === "[object Array]") {
var Kt;
kA = Ua(u), te !== "left" && (er = kA.map(Yn));
var Dt, wn = 0;
if (te === "right") {
C -= er[0], u = [], vt = kA.length;
for (var An = 0; An < vt; An++) An === 0 ? (Dt = Pr(C), Kt = Zr(O)) : (Dt = F(wn - er[An]), Kt = -ki), u.push([kA[An], Dt, Kt]), wn = er[An];
} else if (te === "center") {
C -= er[0] / 2, u = [], vt = kA.length;
for (var en = 0; en < vt; en++) en === 0 ? (Dt = Pr(C), Kt = Zr(O)) : (Dt = F((wn - er[en]) / 2), Kt = -ki), u.push([kA[en], Dt, Kt]), wn = er[en];
} else if (te === "left") {
u = [], vt = kA.length;
for (var _i = 0; _i < vt; _i++) u.push(kA[_i]);
} else if (te === "justify" && ks.encoding === "Identity-H") {
u = [], vt = kA.length, de = de !== 0 ? de : Ns;
for (var tn = 0, Ye = 0; Ye < vt; Ye++) if (Kt = Ye === 0 ? Zr(O) : -ki, Dt = Ye === 0 ? Pr(C) : tn, Ye < vt - 1) {
var Ha = F((de - er[Ye]) / (kA[Ye].split(" ").length - 1)), Nt = kA[Ye].split(" ");
u.push([Nt[0] + " ", Dt, Kt]), tn = 0;
for (var tr = 1; tr < Nt.length; tr++) {
var Ti = (Yn(Nt[tr - 1] + " " + Nt[tr]) - Yn(Nt[tr])) * Or + Ha;
tr == Nt.length - 1 ? u.push([Nt[tr], Ti, 0]) : u.push([Nt[tr] + " ", Ti, 0]), tn -= Ti;
}
} else u.push([kA[Ye], Dt, Kt]);
u.push(["", tn, 0]);
} else {
if (te !== "justify") throw new Error('Unrecognized alignment option, use "left", "center", "right" or "justify".');
for (u = [], vt = kA.length, de = de !== 0 ? de : Ns, Ye = 0; Ye < vt; Ye++) Kt = Ye === 0 ? Zr(O) : -ki, Dt = Ye === 0 ? Pr(C) : 0, Ye < vt - 1 ? Bn.push(z(F((de - er[Ye]) / (kA[Ye].split(" ").length - 1)))) : Bn.push(0), u.push([kA[Ye], Dt, Kt]);
}
}
var _s = typeof Y.R2L == "boolean" ? Y.R2L : SA;
_s === !0 && (u = La(u, function(Te, Me, $e) {
return [Te.split("").reverse().join(""), Me, $e];
})), CA = { text: u, x: C, y: O, options: Y, mutex: { pdfEscape: Pt, activeFontKey: ne, fonts: IA, activeFontSize: pA } }, Ue.publish("postProcessText", CA), u = CA.text, mr = CA.mutex.isHex || !1;
var Da = IA[ne].encoding;
Da !== "WinAnsiEncoding" && Da !== "StandardEncoding" || (u = La(u, function(Te, Me, $e) {
return [Hs(Te), Me, $e];
})), kA = Ua(u), u = [];
for (var $n, Zn, vn, Ai = 0, Mi = 1, ei = Array.isArray(kA[0]) ? Mi : Ai, mn = "", Na = function(Te, Me, $e) {
var ut = "";
return $e instanceof ie ? ($e = typeof Y.angle == "number" ? dr($e, new ie(1, 0, 0, 1, Te, Me)) : dr(new ie(1, 0, 0, 1, Te, Me), $e), K === U.ADVANCED && ($e = dr(new ie(1, 0, 0, -1, 0, 0), $e)), ut = $e.join(" ") + ` Tm
`) : ut = z(Te) + " " + z(Me) + ` Td
`, ut;
}, rr = 0; rr < kA.length; rr++) {
switch (mn = "", ei) {
case Mi:
vn = (mr ? "<" : "(") + kA[rr][0] + (mr ? ">" : ")"), $n = parseFloat(kA[rr][1]), Zn = parseFloat(kA[rr][2]);
break;
case Ai:
vn = (mr ? "<" : "(") + kA[rr] + (mr ? ">" : ")"), $n = Pr(C), Zn = Zr(O);
}
Bn !== void 0 && Bn[rr] !== void 0 && (mn = Bn[rr] + ` Tw
`), rr === 0 ? u.push(mn + Na($n, Zn, qe) + vn) : ei === Ai ? u.push(mn + vn) : ei === Mi && u.push(mn + Na($n, Zn, qe) + vn);
}
u = ei === Ai ? u.join(` Tj
T* `) : u.join(` Tj
`), u += ` Tj
`;
var nr = `BT
/`;
return nr += ne + " " + pA + ` Tf
`, nr += z(pA * Wt) + ` TL
`, nr += zn + `
`, nr += ht, nr += u, D(nr += "ET"), w[ne] = !0, at;
};
var xl = g.__private__.clip = g.clip = function(u) {
return D(u === "evenodd" ? "W*" : "W"), this;
};
g.clipEvenOdd = function() {
return xl("evenodd");
}, g.__private__.discardPath = g.discardPath = function() {
return D("n"), this;
};
var Mr = g.__private__.isValidStyle = function(u) {
var C = !1;
return [void 0, null, "S", "D", "F", "DF", "FD", "f", "f*", "B", "B*", "n"].indexOf(u) !== -1 && (C = !0), C;
};
g.__private__.setDefaultPathOperation = g.setDefaultPathOperation = function(u) {
return Mr(u) && (h = u), this;
};
var Qs = g.__private__.getStyle = g.getStyle = function(u) {
var C = h;
switch (u) {
case "D":
case "S":
C = "S";
break;
case "F":
C = "f";
break;
case "FD":
case "DF":
C = "B";
break;
case "f":
case "f*":
case "B":
case "B*":
C = u;
}
return C;
}, bs = g.close = function() {
return D("h"), this;
};
g.stroke = function() {
return D("S"), this;
}, g.fill = function(u) {
return bi("f", u), this;
}, g.fillEvenOdd = function(u) {
return bi("f*", u), this;
}, g.fillStroke = function(u) {
return bi("B", u), this;
}, g.fillStrokeEvenOdd = function(u) {
return bi("B*", u), this;
};
var bi = function(u, C) {
Se(C) === "object" ? Sl(C, u) : D(u);
}, pa = function(u) {
u === null || K === U.ADVANCED && u === void 0 || (u = Qs(u), D(u));
};
function Il(u, C, O, Y, cA) {
var CA = new ra(C || this.boundingBox, O || this.xStep, Y || this.yStep, this.gState, cA || this.matrix);
CA.stream = this.stream;
var kA = u + "$$" + this.cloneIndex++ + "$$";
return Mt(kA, CA), CA;
}
var Sl = function(u, C) {
var O = He[u.key], Y = se[O];
if (Y instanceof ai) D("q"), D(Hl(C)), Y.gState && g.setGState(Y.gState), D(u.matrix.toString() + " cm"), D("/" + O + " sh"), D("Q");
else if (Y instanceof ra) {
var cA = new ie(1, 0, 0, -1, 0, pn());
u.matrix && (cA = cA.multiply(u.matrix || kr), O = Il.call(Y, u.key, u.boundingBox, u.xStep, u.yStep, cA).id), D("q"), D("/Pattern cs"), D("/" + O + " scn"), Y.gState && g.setGState(Y.gState), D(C), D("Q");
}
}, Hl = function(u) {
switch (u) {
case "f":
case "F":
return "W n";
case "f*":
return "W* n";
case "B":
return "W S";
case "B*":
return "W* S";
case "S":
return "W S";
case "n":
return "W n";
}
}, Ba = g.moveTo = function(u, C) {
return D(z(F(u)) + " " + z(P(C)) + " m"), this;
}, Wn = g.lineTo = function(u, C) {
return D(z(F(u)) + " " + z(P(C)) + " l"), this;
}, dn = g.curveTo = function(u, C, O, Y, cA, CA) {
return D([z(F(u)), z(P(C)), z(F(O)), z(P(Y)), z(F(cA)), z(P(CA)), "c"].join(" ")), this;
};
g.__private__.line = g.line = function(u, C, O, Y, cA) {
if (isNaN(u) || isNaN(C) || isNaN(O) || isNaN(Y) || !Mr(cA)) throw new Error("Invalid arguments passed to jsPDF.line");
return K === U.COMPAT ? this.lines([[O - u, Y - C]], u, C, [1, 1], cA || "S") : this.lines([[O - u, Y - C]], u, C, [1, 1]).stroke();
}, g.__private__.lines = g.lines = function(u, C, O, Y, cA, CA) {
var kA, XA, te, pe, de, Qe, je, qe, at, bt, ht, mr;
if (typeof u == "number" && (mr = O, O = C, C = u, u = mr), Y = Y || [1, 1], CA = CA || !1, isNaN(C) || isNaN(O) || !Array.isArray(u) || !Array.isArray(Y) || !Mr(cA) || typeof CA != "boolean") throw new Error("Invalid arguments passed to jsPDF.lines");
for (Ba(C, O), kA = Y[0], XA = Y[1], pe = u.length, bt = C, ht = O, te = 0; te < pe; te++) (de = u[te]).length === 2 ? (bt = de[0] * kA + bt, ht = de[1] * XA + ht, Wn(bt, ht)) : (Qe = de[0] * kA + bt, je = de[1] * XA + ht, qe = de[2] * kA + bt, at = de[3] * XA + ht, bt = de[4] * kA + bt, ht = de[5] * XA + ht, dn(Qe, je, qe, at, bt, ht));
return CA && bs(), pa(cA), this;
}, g.path = function(u) {
for (var C = 0; C < u.length; C++) {
var O = u[C], Y = O.c;
switch (O.op) {
case "m":
Ba(Y[0], Y[1]);
break;
case "l":
Wn(Y[0], Y[1]);
break;
case "c":
dn.apply(this, Y);
break;
case "h":
bs();
}
}
return this;
}, g.__private__.rect = g.rect = function(u, C, O, Y, cA) {
if (isNaN(u) || isNaN(C) || isNaN(O) || isNaN(Y) || !Mr(cA)) throw new Error("Invalid arguments passed to jsPDF.rect");
return K === U.COMPAT && (Y = -Y), D([z(F(u)), z(P(C)), z(F(O)), z(F(Y)), "re"].join(" ")), pa(cA), this;
}, g.__private__.triangle = g.triangle = function(u, C, O, Y, cA, CA, kA) {
if (isNaN(u) || isNaN(C) || isNaN(O) || isNaN(Y) || isNaN(cA) || isNaN(CA) || !Mr(kA)) throw new Error("Invalid arguments passed to jsPDF.triangle");
return this.lines([[O - u, Y - C], [cA - O, CA - Y], [u - cA, C - CA]], u, C, [1, 1], kA, !0), this;
}, g.__private__.roundedRect = g.roundedRect = function(u, C, O, Y, cA, CA, kA) {
if (isNaN(u) || isNaN(C) || isNaN(O) || isNaN(Y) || isNaN(cA) || isNaN(CA) || !Mr(kA)) throw new Error("Invalid arguments passed to jsPDF.roundedRect");
var XA = 4 / 3 * (Math.SQRT2 - 1);
return cA = Math.min(cA, 0.5 * O), CA = Math.min(CA, 0.5 * Y), this.lines([[O - 2 * cA, 0], [cA * XA, 0, cA, CA - CA * XA, cA, CA], [0, Y - 2 * CA], [0, CA * XA, -cA * XA, CA, -cA, CA], [2 * cA - O, 0], [-cA * XA, 0, -cA, -CA * XA, -cA, -CA], [0, 2 * CA - Y], [0, -CA * XA, cA * XA, -CA, cA, -CA]], u + cA, C, [1, 1], kA, !0), this;
}, g.__private__.ellipse = g.ellipse = function(u, C, O, Y, cA) {
if (isNaN(u) || isNaN(C) || isNaN(O) || isNaN(Y) || !Mr(cA)) throw new Error("Invalid arguments passed to jsPDF.ellipse");
var CA = 4 / 3 * (Math.SQRT2 - 1) * O, kA = 4 / 3 * (Math.SQRT2 - 1) * Y;
return Ba(u + O, C), dn(u + O, C - kA, u + CA, C - Y, u, C - Y), dn(u - CA, C - Y, u - O, C - kA, u - O, C), dn(u - O, C + kA, u - CA, C + Y, u, C + Y), dn(u + CA, C + Y, u + O, C + kA, u + O, C), pa(cA), this;
}, g.__private__.circle = g.circle = function(u, C, O, Y) {
if (isNaN(u) || isNaN(C) || isNaN(O) || !Mr(Y)) throw new Error("Invalid arguments passed to jsPDF.circle");
return this.ellipse(u, C, O, O, Y);
}, g.setFont = function(u, C, O) {
return O && (C = V(C, O)), ne = Cs(u, C, { disableWarning: !1 }), this;
};
var Dl = g.__private__.getFont = g.getFont = function() {
return IA[Cs.apply(g, arguments)];
};
g.__private__.getFontList = g.getFontList = function() {
var u, C, O = {};
for (u in Ae) if (Ae.hasOwnProperty(u)) for (C in O[u] = [], Ae[u]) Ae[u].hasOwnProperty(C) && O[u].push(C);
return O;
}, g.addFont = function(u, C, O, Y, cA) {
var CA = ["StandardEncoding", "MacRomanEncoding", "Identity-H", "WinAnsiEncoding"];
return arguments[3] && CA.indexOf(arguments[3]) !== -1 ? cA = arguments[3] : arguments[3] && CA.indexOf(arguments[3]) == -1 && (O = V(O, Y)), cA = cA || "Identity-H", ha.call(this, u, C, O, cA);
};
var Xn, wa = t.lineWidth || 0.200025, Ui = g.__private__.getLineWidth = g.getLineWidth = function() {
return wa;
}, Us = g.__private__.setLineWidth = g.setLineWidth = function(u) {
return wa = u, D(z(F(u)) + " w"), this;
};
g.__private__.setLineDash = ae.API.setLineDash = ae.API.setLineDashPattern = function(u, C) {
if (u = u || [], C = C || 0, isNaN(C) || !Array.isArray(u)) throw new Error("Invalid arguments passed to jsPDF.setLineDash");
return u = u.map(function(O) {
return z(F(O));
}).join(" "), C = z(F(C)), D("[" + u + "] " + C + " d"), this;
};
var Ls = g.__private__.getLineHeight = g.getLineHeight = function() {
return pA * Xn;
};
g.__private__.getLineHeight = g.getLineHeight = function() {
return pA * Xn;
};
var Es = g.__private__.setLineHeightFactor = g.setLineHeightFactor = function(u) {
return typeof (u = u || 1.15) == "number" && (Xn = u), this;
}, xs = g.__private__.getLineHeightFactor = g.getLineHeightFactor = function() {
return Xn;
};
Es(t.lineHeight);
var Pr = g.__private__.getHorizontalCoordinate = function(u) {
return F(u);
}, Zr = g.__private__.getVerticalCoordinate = function(u) {
return K === U.ADVANCED ? u : ce[M].mediaBox.topRightY - ce[M].mediaBox.bottomLeftY - F(u);
}, Nl = g.__private__.getHorizontalCoordinateString = g.getHorizontalCoordinateString = function(u) {
return z(Pr(u));
}, gn = g.__private__.getVerticalCoordinateString = g.getVerticalCoordinateString = function(u) {
return z(Zr(u));
}, vr = t.strokeColor || "0 G";
g.__private__.getStrokeColor = g.getDrawColor = function() {
return pr(vr);
}, g.__private__.setStrokeColor = g.setDrawColor = function(u, C, O, Y) {
return vr = Br({ ch1: u, ch2: C, ch3: O, ch4: Y, pdfColorType: "draw", precision: 2 }), D(vr), this;
};
var va = t.fillColor || "0 g";
g.__private__.getFillColor = g.getFillColor = function() {
return pr(va);
}, g.__private__.setFillColor = g.setFillColor = function(u, C, O, Y) {
return va = Br({ ch1: u, ch2: C, ch3: O, ch4: Y, pdfColorType: "fill", precision: 2 }), D(va), this;
};
var zn = t.textColor || "0 g", kl = g.__private__.getTextColor = g.getTextColor = function() {
return pr(zn);
};
g.__private__.setTextColor = g.setTextColor = function(u, C, O, Y) {
return zn = Br({ ch1: u, ch2: C, ch3: O, ch4: Y, pdfColorType: "text", precision: 3 }), this;
};
var Li = t.charSpace, _l = g.__private__.getCharSpace = g.getCharSpace = function() {
return parseFloat(Li || 0);
};
g.__private__.setCharSpace = g.setCharSpace = function(u) {
if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.setCharSpace");
return Li = u, this;
};
var ma = 0;
g.CapJoinStyles = { 0: 0, butt: 0, but: 0, miter: 0, 1: 1, round: 1, rounded: 1, circle: 1, 2: 2, projecting: 2, project: 2, square: 2, bevel: 2 }, g.__private__.setLineCap = g.setLineCap = function(u) {
var C = g.CapJoinStyles[u];
if (C === void 0) throw new Error("Line cap style of '" + u + "' is not recognized. See or extend .CapJoinStyles property for valid styles");
return ma = C, D(C + " J"), this;
};
var Ca = 0;
g.__private__.setLineJoin = g.setLineJoin = function(u) {
var C = g.CapJoinStyles[u];
if (C === void 0) throw new Error("Line join style of '" + u + "' is not recognized. See or extend .CapJoinStyles property for valid styles");
return Ca = C, D(C + " j"), this;
}, g.__private__.setLineMiterLimit = g.__private__.setMiterLimit = g.setLineMiterLimit = g.setMiterLimit = function(u) {
if (u = u || 0, isNaN(u)) throw new Error("Invalid argument passed to jsPDF.setLineMiterLimit");
return D(z(F(u)) + " M"), this;
}, g.GState = Go, g.setGState = function(u) {
(u = typeof u == "string" ? we[Oe[u]] : Is(null, u)).equals(ze) || (D("/" + u.id + " gs"), ze = u);
};
var Is = function(u, C) {
if (!u || !Oe[u]) {
var O = !1;
for (var Y in we) if (we.hasOwnProperty(Y) && we[Y].equals(C)) {
O = !0;
break;
}
if (O) C = we[Y];
else {
var cA = "GS" + (Object.keys(we).length + 1).toString(10);
we[cA] = C, C.id = cA;
}
return u && (Oe[u] = C.id), Ue.publish("addGState", C), C;
}
};
g.addGState = function(u, C) {
return Is(u, C), this;
}, g.saveGraphicsState = function() {
return D("q"), me.push({ key: ne, size: pA, color: zn }), this;
}, g.restoreGraphicsState = function() {
D("Q");
var u = me.pop();
return ne = u.key, pA = u.size, zn = u.color, ze = null, this;
}, g.setCurrentTransformationMatrix = function(u) {
return D(u.toString() + " cm"), this;
}, g.comment = function(u) {
return D("#" + u), this;
};
var Ei = function(u, C) {
var O = u || 0;
Object.defineProperty(this, "x", { enumerable: !0, get: function() {
return O;
}, set: function(CA) {
isNaN(CA) || (O = parseFloat(CA));
} });
var Y = C || 0;
Object.defineProperty(this, "y", { enumerable: !0, get: function() {
return Y;
}, set: function(CA) {
isNaN(CA) || (Y = parseFloat(CA));
} });
var cA = "pt";
return Object.defineProperty(this, "type", { enumerable: !0, get: function() {
return cA;
}, set: function(CA) {
cA = CA.toString();
} }), this;
}, ya = function(u, C, O, Y) {
Ei.call(this, u, C), this.type = "rect";
var cA = O || 0;
Object.defineProperty(this, "w", { enumerable: !0, get: function() {
return cA;
}, set: function(kA) {
isNaN(kA) || (cA = parseFloat(kA));
} });
var CA = Y || 0;
return Object.defineProperty(this, "h", { enumerable: !0, get: function() {
return CA;
}, set: function(kA) {
isNaN(kA) || (CA = parseFloat(kA));
} }), this;
}, Fa = function() {
this.page = ve, this.currentPage = M, this.pages = NA.slice(0), this.pagesContext = ce.slice(0), this.x = Ve, this.y = mA, this.matrix = TA, this.width = Jn(M), this.height = pn(M), this.outputDestination = GA, this.id = "", this.objectNumber = -1;
};
Fa.prototype.restore = function() {
ve = this.page, M = this.currentPage, ce = this.pagesContext, NA = this.pages, Ve = this.x, mA = this.y, TA = this.matrix, Qa(M, this.width), ba(M, this.height), GA = this.outputDestination;
};
var Ss = function(u, C, O, Y, cA) {
Nr.push(new Fa()), ve = M = 0, NA = [], Ve = u, mA = C, TA = cA, da([O, Y]);
}, Tl = function(u) {
if (Dr[u]) Nr.pop().restore();
else {
var C = new Fa(), O = "Xo" + (Object.keys(wt).length + 1).toString(10);
C.id = O, Dr[u] = O, wt[O] = C, Ue.publish("addFormObject", C), Nr.pop().restore();
}
};
for (var xi in g.beginFormObject = function(u, C, O, Y, cA) {
return Ss(u, C, O, Y, cA), this;
}, g.endFormObject = function(u) {
return Tl(u), this;
}, g.doFormObject = function(u, C) {
var O = wt[Dr[u]];
return D("q"), D(C.toString() + " cm"), D("/" + O.id + " Do"), D("Q"), this;
}, g.getFormObject = function(u) {
var C = wt[Dr[u]];
return { x: C.x, y: C.y, width: C.width, height: C.height, matrix: C.matrix };
}, g.save = function(u, C) {
return u = u || "generated.pdf", (C = C || {}).returnPromise = C.returnPromise || !1, C.returnPromise === !1 ? (ii(Fi($r()), u), typeof ii.unload == "function" && le.setTimeout && setTimeout(ii.unload, 911), this) : new Promise(function(O, Y) {
try {
var cA = ii(Fi($r()), u);
typeof ii.unload == "function" && le.setTimeout && setTimeout(ii.unload, 911), O(cA);
} catch (CA) {
Y(CA.message);
}
});
}, ae.API) ae.API.hasOwnProperty(xi) && (xi === "events" && ae.API.events.length ? function(u, C) {
var O, Y, cA;
for (cA = C.length - 1; cA !== -1; cA--) O = C[cA][0], Y = C[cA][1], u.subscribe.apply(u, [O].concat(typeof Y == "function" ? [Y] : Y));
}(Ue, ae.API.events) : g[xi] = ae.API[xi]);
var Jn = g.getPageWidth = function(u) {
return (ce[u = u || M].mediaBox.topRightX - ce[u].mediaBox.bottomLeftX) / VA;
}, Qa = g.setPageWidth = function(u, C) {
ce[u].mediaBox.topRightX = C * VA + ce[u].mediaBox.bottomLeftX;
}, pn = g.getPageHeight = function(u) {
return (ce[u = u || M].mediaBox.topRightY - ce[u].mediaBox.bottomLeftY) / VA;
}, ba = g.setPageHeight = function(u, C) {
ce[u].mediaBox.topRightY = C * VA + ce[u].mediaBox.bottomLeftY;
};
return g.internal = { pdfEscape: Pt, getStyle: Qs, getFont: Dl, getFontSize: UA, getCharSpace: _l, getTextColor: kl, getLineHeight: Ls, getLineHeightFactor: xs, getLineWidth: Ui, write: $, getHorizontalCoordinate: Pr, getVerticalCoordinate: Zr, getCoordinateString: Nl, getVerticalCoordinateString: gn, collections: {}, newObject: ct, newAdditionalObject: gi, newObjectDeferred: it, newObjectDeferredBegin: qt, getFilters: _r, putStream: Ar, events: Ue, scaleFactor: VA, pageSize: { getWidth: function() {
return Jn(M);
}, setWidth: function(u) {
Qa(M, u);
}, getHeight: function() {
return pn(M);
}, setHeight: function(u) {
ba(M, u);
} }, encryptionOptions: p, encryption: Qt, getEncryptor: Ll, output: Qi, getNumberOfPages: yl, pages: NA, out: D, f2: tA, f3: x, getPageInfo: Fs, getPageInfoByObjId: fe, getCurrentPageInfo: El, getPDFVersion: y, Point: Ei, Rectangle: ya, Matrix: ie, hasHotfix: ys }, Object.defineProperty(g.internal.pageSize, "width", { get: function() {
return Jn(M);
}, set: function(u) {
Qa(M, u);
}, enumerable: !0, configurable: !0 }), Object.defineProperty(g.internal.pageSize, "height", { get: function() {
return pn(M);
}, set: function(u) {
ba(M, u);
}, enumerable: !0, configurable: !0 }), ml.call(g, sA), ne = "F1", vs(n, A), Ue.publish("initialized"), g;
}
Zi.prototype.lsbFirstWord = function(t) {
return String.fromCharCode(t >> 0 & 255, t >> 8 & 255, t >> 16 & 255, t >> 24 & 255);
}, Zi.prototype.toHexString = function(t) {
return t.split("").map(function(e) {
return ("0" + (255 & e.charCodeAt(0)).toString(16)).slice(-2);
}).join("");
}, Zi.prototype.hexToBytes = function(t) {
for (var e = [], A = 0; A < t.length; A += 2) e.push(String.fromCharCode(parseInt(t.substr(A, 2), 16)));
return e.join("");
}, Zi.prototype.processOwnerPassword = function(t, e) {
return Gc(Rc(e).substr(0, 5), t);
}, Zi.prototype.encryptor = function(t, e) {
var A = Rc(this.encryptionKey + String.fromCharCode(255 & t, t >> 8 & 255, t >> 16 & 255, 255 & e, e >> 8 & 255)).substr(0, 10);
return function(r) {
return Gc(A, r);
};
}, Go.prototype.equals = function(t) {
var e, A = "id,objectNumber,equals";
if (!t || Se(t) !== Se(this)) return !1;
var r = 0;
for (e in this) if (!(A.indexOf(e) >= 0)) {
if (this.hasOwnProperty(e) && !t.hasOwnProperty(e) || this[e] !== t[e]) return !1;
r++;
}
for (e in t) t.hasOwnProperty(e) && A.indexOf(e) < 0 && r--;
return r === 0;
}, ae.API = { events: [] }, ae.version = "3.0.1";
var Xe = ae.API, wu = 1, di = function(t) {
return t.replace(/\\/g, "\\\\").replace(/\(/g, "\\(").replace(/\)/g, "\\)");
}, Vi = function(t) {
return t.replace(/\\\\/g, "\\").replace(/\\\(/g, "(").replace(/\\\)/g, ")");
}, ge = function(t) {
return t.toFixed(2);
}, xn = function(t) {
return t.toFixed(5);
};
Xe.__acroform__ = {};
var jt = function(t, e) {
t.prototype = Object.create(e.prototype), t.prototype.constructor = t;
}, lf = function(t) {
return t * wu;
}, Gr = function(t) {
var e = new _h(), A = $A.internal.getHeight(t) || 0, r = $A.internal.getWidth(t) || 0;
return e.BBox = [0, 0, Number(ge(r)), Number(ge(A))], e;
}, Y2 = Xe.__acroform__.setBit = function(t, e) {
if (t = t || 0, e = e || 0, isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.setBit");
return t |= 1 << e;
}, $2 = Xe.__acroform__.clearBit = function(t, e) {
if (t = t || 0, e = e || 0, isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.clearBit");
return t &= ~(1 << e);
}, Z2 = Xe.__acroform__.getBit = function(t, e) {
if (isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.getBit");
return (t & 1 << e) == 0 ? 0 : 1;
}, tt = Xe.__acroform__.getBitForPdf = function(t, e) {
if (isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf");
return Z2(t, e - 1);
}, rt = Xe.__acroform__.setBitForPdf = function(t, e) {
if (isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf");
return Y2(t, e - 1);
}, nt = Xe.__acroform__.clearBitForPdf = function(t, e) {
if (isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf");
return $2(t, e - 1);
}, AB = Xe.__acroform__.calculateCoordinates = function(t, e) {
var A = e.internal.getHorizontalCoordinate, r = e.internal.getVerticalCoordinate, n = t[0], i = t[1], s = t[2], o = t[3], c = {};
return c.lowerLeft_X = A(n) || 0, c.lowerLeft_Y = r(i + o) || 0, c.upperRight_X = A(n + s) || 0, c.upperRight_Y = r(i) || 0, [Number(ge(c.lowerLeft_X)), Number(ge(c.lowerLeft_Y)), Number(ge(c.upperRight_X)), Number(ge(c.upperRight_Y))];
}, eB = function(t) {
if (t.appearanceStreamContent) return t.appearanceStreamContent;
if (t.V || t.DV) {
var e = [], A = t._V || t.DV, r = Vc(t, A), n = t.scope.internal.getFont(t.fontName, t.fontStyle).id;
e.push("/Tx BMC"), e.push("q"), e.push("BT"), e.push(t.scope.__private__.encodeColorString(t.color)), e.push("/" + n + " " + ge(r.fontSize) + " Tf"), e.push("1 0 0 1 0 0 Tm"), e.push(r.text), e.push("ET"), e.push("Q"), e.push("EMC");
var i = Gr(t);
return i.scope = t.scope, i.stream = e.join(`
`), i;
}
}, Vc = function(t, e) {
var A = t.fontSize === 0 ? t.maxFontSize : t.fontSize, r = { text: "", fontSize: "" }, n = (e = (e = e.substr(0, 1) == "(" ? e.substr(1) : e).substr(e.length - 1) == ")" ? e.substr(0, e.length - 1) : e).split(" ");
n = t.multiline ? n.map(function(x) {
return x.split(`
`);
}) : n.map(function(x) {
return [x];
});
var i = A, s = $A.internal.getHeight(t) || 0;
s = s < 0 ? -s : s;
var o = $A.internal.getWidth(t) || 0;
o = o < 0 ? -o : o;
var c = function(x, F, _) {
if (x + 1 < n.length) {
var P = F + " " + n[x + 1][0];
return ao(P, t, _).width <= o - 4;
}
return !1;
};
i++;
A: for (; i > 0; ) {
e = "", i--;
var h, p, d = ao("3", t, i).height, w = t.multiline ? s - i : (s - d) / 2, g = w += 2, Q = 0, y = 0, N = 0;
if (i <= 0) {
e = `(...) Tj
`, e += "% Width of Text: " + ao(e, t, i = 12).width + ", FieldWidth:" + o + `
`;
break;
}
for (var v = "", U = 0, K = 0; K < n.length; K++) if (n.hasOwnProperty(K)) {
var j = !1;
if (n[K].length !== 1 && N !== n[K].length - 1) {
if ((d + 2) * (U + 2) + 2 > s) continue A;
v += n[K][N], j = !0, y = K, K--;
} else {
v = (v += n[K][N] + " ").substr(v.length - 1) == " " ? v.substr(0, v.length - 1) : v;
var q = parseInt(K), V = c(q, v, i), z = K >= n.length - 1;
if (V && !z) {
v += " ", N = 0;
continue;
}
if (V || z) {
if (z) y = q;
else if (t.multiline && (d + 2) * (U + 2) + 2 > s) continue A;
} else {
if (!t.multiline || (d + 2) * (U + 2) + 2 > s) continue A;
y = q;
}
}
for (var H = "", G = Q; G <= y; G++) {
var tA = n[G];
if (t.multiline) {
if (G === y) {
H += tA[N] + " ", N = (N + 1) % tA.length;
continue;
}
if (G === Q) {
H += tA[tA.length - 1] + " ";
continue;
}
}
H += tA[0] + " ";
}
switch (H = H.substr(H.length - 1) == " " ? H.substr(0, H.length - 1) : H, p = ao(H, t, i).width, t.textAlign) {
case "right":
h = o - p - 2;
break;
case "center":
h = (o - p) / 2;
break;
case "left":
default:
h = 2;
}
e += ge(h) + " " + ge(g) + ` Td
`, e += "(" + di(H) + `) Tj
`, e += -ge(h) + ` 0 Td
`, g = -(i + 2), p = 0, Q = j ? y : y + 1, U++, v = "";
}
break;
}
return r.text = e, r.fontSize = i, r;
}, ao = function(t, e, A) {
var r = e.scope.internal.getFont(e.fontName, e.fontStyle), n = e.scope.getStringUnitWidth(t, { font: r, fontSize: parseFloat(A), charSpace: 0 }) * parseFloat(A);
return { height: e.scope.getStringUnitWidth("3", { font: r, fontSize: parseFloat(A), charSpace: 0 }) * parseFloat(A) * 1.5, width: n };
}, tB = { fields: [], xForms: [], acroFormDictionaryRoot: null, printedOut: !1, internal: null, isInitialized: !1 }, rB = function(t, e) {
var A = { type: "reference", object: t };
e.internal.getPageInfo(t.page).pageContext.annotations.find(function(r) {
return r.type === A.type && r.object === A.object;
}) === void 0 && e.internal.getPageInfo(t.page).pageContext.annotations.push(A);
}, nB = function(t, e) {
for (var A in t) if (t.hasOwnProperty(A)) {
var r = A, n = t[A];
e.internal.newObjectDeferredBegin(n.objId, !0), Se(n) === "object" && typeof n.putStream == "function" && n.putStream(), delete t[r];
}
}, iB = function(t, e) {
if (e.scope = t, t.internal !== void 0 && (t.internal.acroformPlugin === void 0 || t.internal.acroformPlugin.isInitialized === !1)) {
if (Ir.FieldNum = 0, t.internal.acroformPlugin = JSON.parse(JSON.stringify(tB)), t.internal.acroformPlugin.acroFormDictionaryRoot) throw new Error("Exception while creating AcroformDictionary");
wu = t.internal.scaleFactor, t.internal.acroformPlugin.acroFormDictionaryRoot = new Th(), t.internal.acroformPlugin.acroFormDictionaryRoot.scope = t, t.internal.acroformPlugin.acroFormDictionaryRoot._eventID = t.internal.events.subscribe("postPutResources", function() {
(function(A) {
A.internal.events.unsubscribe(A.internal.acroformPlugin.acroFormDictionaryRoot._eventID), delete A.internal.acroformPlugin.acroFormDictionaryRoot._eventID, A.internal.acroformPlugin.printedOut = !0;
})(t);
}), t.internal.events.subscribe("buildDocument", function() {
(function(A) {
A.internal.acroformPlugin.acroFormDictionaryRoot.objId = void 0;
var r = A.internal.acroformPlugin.acroFormDictionaryRoot.Fields;
for (var n in r) if (r.hasOwnProperty(n)) {
var i = r[n];
i.objId = void 0, i.hasAnnotation && rB(i, A);
}
})(t);
}), t.internal.events.subscribe("putCatalog", function() {
(function(A) {
if (A.internal.acroformPlugin.acroFormDictionaryRoot === void 0) throw new Error("putCatalogCallback: Root missing.");
A.internal.write("/AcroForm " + A.internal.acroformPlugin.acroFormDictionaryRoot.objId + " 0 R");
})(t);
}), t.internal.events.subscribe("postPutPages", function(A) {
(function(r, n) {
var i = !r;
for (var s in r || (n.internal.newObjectDeferredBegin(n.internal.acroformPlugin.acroFormDictionaryRoot.objId, !0), n.internal.acroformPlugin.acroFormDictionaryRoot.putStream()), r = r || n.internal.acroformPlugin.acroFormDictionaryRoot.Kids) if (r.hasOwnProperty(s)) {
var o = r[s], c = [], h = o.Rect;
if (o.Rect && (o.Rect = AB(o.Rect, n)), n.internal.newObjectDeferredBegin(o.objId, !0), o.DA = $A.createDefaultAppearanceStream(o), Se(o) === "object" && typeof o.getKeyValueListForStream == "function" && (c = o.getKeyValueListForStream()), o.Rect = h, o.hasAppearanceStream && !o.appearanceStreamContent) {
var p = eB(o);
c.push({ key: "AP", value: "<</N " + p + ">>" }), n.internal.acroformPlugin.xForms.push(p);
}
if (o.appearanceStreamContent) {
var d = "";
for (var w in o.appearanceStreamContent) if (o.appearanceStreamContent.hasOwnProperty(w)) {
var g = o.appearanceStreamContent[w];
if (d += "/" + w + " ", d += "<<", Object.keys(g).length >= 1 || Array.isArray(g)) {
for (var s in g) if (g.hasOwnProperty(s)) {
var Q = g[s];
typeof Q == "function" && (Q = Q.call(n, o)), d += "/" + s + " " + Q + " ", n.internal.acroformPlugin.xForms.indexOf(Q) >= 0 || n.internal.acroformPlugin.xForms.push(Q);
}
} else typeof (Q = g) == "function" && (Q = Q.call(n, o)), d += "/" + s + " " + Q, n.internal.acroformPlugin.xForms.indexOf(Q) >= 0 || n.internal.acroformPlugin.xForms.push(Q);
d += ">>";
}
c.push({ key: "AP", value: `<<
` + d + ">>" });
}
n.internal.putStream({ additionalKeyValues: c, objectId: o.objId }), n.internal.out("endobj");
}
i && nB(n.internal.acroformPlugin.xForms, n);
})(A, t);
}), t.internal.acroformPlugin.isInitialized = !0;
}
}, kh = Xe.__acroform__.arrayToPdfArray = function(t, e, A) {
var r = function(s) {
return s;
};
if (Array.isArray(t)) {
for (var n = "[", i = 0; i < t.length; i++) switch (i !== 0 && (n += " "), Se(t[i])) {
case "boolean":
case "number":
case "object":
n += t[i].toString();
break;
case "string":
t[i].substr(0, 1) !== "/" ? (e !== void 0 && A && (r = A.internal.getEncryptor(e)), n += "(" + di(r(t[i].toString())) + ")") : n += t[i].toString();
}
return n += "]";
}
throw new Error("Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray");
}, cc = function(t, e, A) {
var r = function(n) {
return n;
};
return e !== void 0 && A && (r = A.internal.getEncryptor(e)), (t = t || "").toString(), t = "(" + di(r(t)) + ")";
}, Vr = function() {
this._objId = void 0, this._scope = void 0, Object.defineProperty(this, "objId", { get: function() {
if (this._objId === void 0) {
if (this.scope === void 0) return;
this._objId = this.scope.internal.newObjectDeferred();
}
return this._objId;
}, set: function(t) {
this._objId = t;
} }), Object.defineProperty(this, "scope", { value: this._scope, writable: !0 });
};
Vr.prototype.toString = function() {
return this.objId + " 0 R";
}, Vr.prototype.putStream = function() {
var t = this.getKeyValueListForStream();
this.scope.internal.putStream({ data: this.stream, additionalKeyValues: t, objectId: this.objId }), this.scope.internal.out("endobj");
}, Vr.prototype.getKeyValueListForStream = function() {
var t = [], e = Object.getOwnPropertyNames(this).filter(function(i) {
return i != "content" && i != "appearanceStreamContent" && i != "scope" && i != "objId" && i.substring(0, 1) != "_";
});
for (var A in e) if (Object.getOwnPropertyDescriptor(this, e[A]).configurable === !1) {
var r = e[A], n = this[r];
n && (Array.isArray(n) ? t.push({ key: r, value: kh(n, this.objId, this.scope) }) : n instanceof Vr ? (n.scope = this.scope, t.push({ key: r, value: n.objId + " 0 R" })) : typeof n != "function" && t.push({ key: r, value: n }));
}
return t;
};
var _h = function() {
Vr.call(this), Object.defineProperty(this, "Type", { value: "/XObject", configurable: !1, writable: !0 }), Object.defineProperty(this, "Subtype", { value: "/Form", configurable: !1, writable: !0 }), Object.defineProperty(this, "FormType", { value: 1, configurable: !1, writable: !0 });
var t, e = [];
Object.defineProperty(this, "BBox", { configurable: !1, get: function() {
return e;
}, set: function(A) {
e = A;
} }), Object.defineProperty(this, "Resources", { value: "2 0 R", configurable: !1, writable: !0 }), Object.defineProperty(this, "stream", { enumerable: !1, configurable: !0, set: function(A) {
t = A.trim();
}, get: function() {
return t || null;
} });
};
jt(_h, Vr);
var Th = function() {
Vr.call(this);
var t, e = [];
Object.defineProperty(this, "Kids", { enumerable: !1, configurable: !0, get: function() {
return e.length > 0 ? e : void 0;
} }), Object.defineProperty(this, "Fields", { enumerable: !1, configurable: !1, get: function() {
return e;
} }), Object.defineProperty(this, "DA", { enumerable: !1, configurable: !1, get: function() {
if (t) {
var A = function(r) {
return r;
};
return this.scope && (A = this.scope.internal.getEncryptor(this.objId)), "(" + di(A(t)) + ")";
}
}, set: function(A) {
t = A;
} });
};
jt(Th, Vr);
var Ir = function t() {
Vr.call(this);
var e = 4;
Object.defineProperty(this, "F", { enumerable: !1, configurable: !1, get: function() {
return e;
}, set: function(v) {
if (isNaN(v)) throw new Error('Invalid value "' + v + '" for attribute F supplied.');
e = v;
} }), Object.defineProperty(this, "showWhenPrinted", { enumerable: !0, configurable: !0, get: function() {
return !!tt(e, 3);
}, set: function(v) {
v ? this.F = rt(e, 3) : this.F = nt(e, 3);
} });
var A = 0;
Object.defineProperty(this, "Ff", { enumerable: !1, configurable: !1, get: function() {
return A;
}, set: function(v) {
if (isNaN(v)) throw new Error('Invalid value "' + v + '" for attribute Ff supplied.');
A = v;
} });
var r = [];
Object.defineProperty(this, "Rect", { enumerable: !1, configurable: !1, get: function() {
if (r.length !== 0) return r;
}, set: function(v) {
r = v !== void 0 ? v : [];
} }), Object.defineProperty(this, "x", { enumerable: !0, configurable: !0, get: function() {
return !r || isNaN(r[0]) ? 0 : r[0];
}, set: function(v) {
r[0] = v;
} }), Object.defineProperty(this, "y", { enumerable: !0, configurable: !0, get: function() {
return !r || isNaN(r[1]) ? 0 : r[1];
}, set: function(v) {
r[1] = v;
} }), Object.defineProperty(this, "width", { enumerable: !0, configurable: !0, get: function() {
return !r || isNaN(r[2]) ? 0 : r[2];
}, set: function(v) {
r[2] = v;
} }), Object.defineProperty(this, "height", { enumerable: !0, configurable: !0, get: function() {
return !r || isNaN(r[3]) ? 0 : r[3];
}, set: function(v) {
r[3] = v;
} });
var n = "";
Object.defineProperty(this, "FT", { enumerable: !0, configurable: !1, get: function() {
return n;
}, set: function(v) {
switch (v) {
case "/Btn":
case "/Tx":
case "/Ch":
case "/Sig":
n = v;
break;
default:
throw new Error('Invalid value "' + v + '" for attribute FT supplied.');
}
} });
var i = null;
Object.defineProperty(this, "T", { enumerable: !0, configurable: !1, get: function() {
if (!i || i.length < 1) {
if (this instanceof Vo) return;
i = "FieldObject" + t.FieldNum++;
}
var v = function(U) {
return U;
};
return this.scope && (v = this.scope.internal.getEncryptor(this.objId)), "(" + di(v(i)) + ")";
}, set: function(v) {
i = v.toString();
} }), Object.defineProperty(this, "fieldName", { configurable: !0, enumerable: !0, get: function() {
return i;
}, set: function(v) {
i = v;
} });
var s = "helvetica";
Object.defineProperty(this, "fontName", { enumerable: !0, configurable: !0, get: function() {
return s;
}, set: function(v) {
s = v;
} });
var o = "normal";
Object.defineProperty(this, "fontStyle", { enumerable: !0, configurable: !0, get: function() {
return o;
}, set: function(v) {
o = v;
} });
var c = 0;
Object.defineProperty(this, "fontSize", { enumerable: !0, configurable: !0, get: function() {
return c;
}, set: function(v) {
c = v;
} });
var h = void 0;
Object.defineProperty(this, "maxFontSize", { enumerable: !0, configurable: !0, get: function() {
return h === void 0 ? 50 / wu : h;
}, set: function(v) {
h = v;
} });
var p = "black";
Object.defineProperty(this, "color", { enumerable: !0, configurable: !0, get: function() {
return p;
}, set: function(v) {
p = v;
} });
var d = "/F1 0 Tf 0 g";
Object.defineProperty(this, "DA", { enumerable: !0, configurable: !1, get: function() {
if (!(!d || this instanceof Vo || this instanceof ci)) return cc(d, this.objId, this.scope);
}, set: function(v) {
v = v.toString(), d = v;
} });
var w = null;
Object.defineProperty(this, "DV", { enumerable: !1, configurable: !1, get: function() {
if (w) return this instanceof Bt ? w : cc(w, this.objId, this.scope);
}, set: function(v) {
v = v.toString(), w = this instanceof Bt ? v : v.substr(0, 1) === "(" ? Vi(v.substr(1, v.length - 2)) : Vi(v);
} }), Object.defineProperty(this, "defaultValue", { enumerable: !0, configurable: !0, get: function() {
return this instanceof Bt ? Vi(w.substr(1, w.length - 1)) : w;
}, set: function(v) {
v = v.toString(), w = this instanceof Bt ? "/" + v : v;
} });
var g = null;
Object.defineProperty(this, "_V", { enumerable: !1, configurable: !1, get: function() {
if (g) return g;
}, set: function(v) {
this.V = v;
} }), Object.defineProperty(this, "V", { enumerable: !1, configurable: !1, get: function() {
if (g) return this instanceof Bt ? g : cc(g, this.objId, this.scope);
}, set: function(v) {
v = v.toString(), g = this instanceof Bt ? v : v.substr(0, 1) === "(" ? Vi(v.substr(1, v.length - 2)) : Vi(v);
} }), Object.defineProperty(this, "value", { enumerable: !0, configurable: !0, get: function() {
return this instanceof Bt ? Vi(g.substr(1, g.length - 1)) : g;
}, set: function(v) {
v = v.toString(), g = this instanceof Bt ? "/" + v : v;
} }), Object.defineProperty(this, "hasAnnotation", { enumerable: !0, configurable: !0, get: function() {
return this.Rect;
} }), Object.defineProperty(this, "Type", { enumerable: !0, configurable: !1, get: function() {
return this.hasAnnotation ? "/Annot" : null;
} }), Object.defineProperty(this, "Subtype", { enumerable: !0, configurable: !1, get: function() {
return this.hasAnnotation ? "/Widget" : null;
} });
var Q, y = !1;
Object.defineProperty(this, "hasAppearanceStream", { enumerable: !0, configurable: !0, get: function() {
return y;
}, set: function(v) {
v = !!v, y = v;
} }), Object.defineProperty(this, "page", { enumerable: !0, configurable: !0, get: function() {
if (Q) return Q;
}, set: function(v) {
Q = v;
} }), Object.defineProperty(this, "readOnly", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 1);
}, set: function(v) {
v ? this.Ff = rt(this.Ff, 1) : this.Ff = nt(this.Ff, 1);
} }), Object.defineProperty(this, "required", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 2);
}, set: function(v) {
v ? this.Ff = rt(this.Ff, 2) : this.Ff = nt(this.Ff, 2);
} }), Object.defineProperty(this, "noExport", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 3);
}, set: function(v) {
v ? this.Ff = rt(this.Ff, 3) : this.Ff = nt(this.Ff, 3);
} });
var N = null;
Object.defineProperty(this, "Q", { enumerable: !0, configurable: !1, get: function() {
if (N !== null) return N;
}, set: function(v) {
if ([0, 1, 2].indexOf(v) === -1) throw new Error('Invalid value "' + v + '" for attribute Q supplied.');
N = v;
} }), Object.defineProperty(this, "textAlign", { get: function() {
var v;
switch (N) {
case 0:
default:
v = "left";
break;
case 1:
v = "center";
break;
case 2:
v = "right";
}
return v;
}, configurable: !0, enumerable: !0, set: function(v) {
switch (v) {
case "right":
case 2:
N = 2;
break;
case "center":
case 1:
N = 1;
break;
case "left":
case 0:
default:
N = 0;
}
} });
};
jt(Ir, Vr);
var ia = function() {
Ir.call(this), this.FT = "/Ch", this.V = "()", this.fontName = "zapfdingbats";
var t = 0;
Object.defineProperty(this, "TI", { enumerable: !0, configurable: !1, get: function() {
return t;
}, set: function(A) {
t = A;
} }), Object.defineProperty(this, "topIndex", { enumerable: !0, configurable: !0, get: function() {
return t;
}, set: function(A) {
t = A;
} });
var e = [];
Object.defineProperty(this, "Opt", { enumerable: !0, configurable: !1, get: function() {
return kh(e, this.objId, this.scope);
}, set: function(A) {
var r, n;
n = [], typeof (r = A) == "string" && (n = function(i, s, o) {
o || (o = 1);
for (var c, h = []; c = s.exec(i); ) h.push(c[o]);
return h;
}(r, /\((.*?)\)/g)), e = n;
} }), this.getOptions = function() {
return e;
}, this.setOptions = function(A) {
e = A, this.sort && e.sort();
}, this.addOption = function(A) {
A = (A = A || "").toString(), e.push(A), this.sort && e.sort();
}, this.removeOption = function(A, r) {
for (r = r || !1, A = (A = A || "").toString(); e.indexOf(A) !== -1 && (e.splice(e.indexOf(A), 1), r !== !1); ) ;
}, Object.defineProperty(this, "combo", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 18);
}, set: function(A) {
A ? this.Ff = rt(this.Ff, 18) : this.Ff = nt(this.Ff, 18);
} }), Object.defineProperty(this, "edit", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 19);
}, set: function(A) {
this.combo === !0 && (A ? this.Ff = rt(this.Ff, 19) : this.Ff = nt(this.Ff, 19));
} }), Object.defineProperty(this, "sort", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 20);
}, set: function(A) {
A ? (this.Ff = rt(this.Ff, 20), e.sort()) : this.Ff = nt(this.Ff, 20);
} }), Object.defineProperty(this, "multiSelect", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 22);
}, set: function(A) {
A ? this.Ff = rt(this.Ff, 22) : this.Ff = nt(this.Ff, 22);
} }), Object.defineProperty(this, "doNotSpellCheck", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 23);
}, set: function(A) {
A ? this.Ff = rt(this.Ff, 23) : this.Ff = nt(this.Ff, 23);
} }), Object.defineProperty(this, "commitOnSelChange", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 27);
}, set: function(A) {
A ? this.Ff = rt(this.Ff, 27) : this.Ff = nt(this.Ff, 27);
} }), this.hasAppearanceStream = !1;
};
jt(ia, Ir);
var aa = function() {
ia.call(this), this.fontName = "helvetica", this.combo = !1;
};
jt(aa, ia);
var sa = function() {
aa.call(this), this.combo = !0;
};
jt(sa, aa);
var No = function() {
sa.call(this), this.edit = !0;
};
jt(No, sa);
var Bt = function() {
Ir.call(this), this.FT = "/Btn", Object.defineProperty(this, "noToggleToOff", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 15);
}, set: function(A) {
A ? this.Ff = rt(this.Ff, 15) : this.Ff = nt(this.Ff, 15);
} }), Object.defineProperty(this, "radio", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 16);
}, set: function(A) {
A ? this.Ff = rt(this.Ff, 16) : this.Ff = nt(this.Ff, 16);
} }), Object.defineProperty(this, "pushButton", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 17);
}, set: function(A) {
A ? this.Ff = rt(this.Ff, 17) : this.Ff = nt(this.Ff, 17);
} }), Object.defineProperty(this, "radioIsUnison", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 26);
}, set: function(A) {
A ? this.Ff = rt(this.Ff, 26) : this.Ff = nt(this.Ff, 26);
} });
var t, e = {};
Object.defineProperty(this, "MK", { enumerable: !1, configurable: !1, get: function() {
var A = function(i) {
return i;
};
if (this.scope && (A = this.scope.internal.getEncryptor(this.objId)), Object.keys(e).length !== 0) {
var r, n = [];
for (r in n.push("<<"), e) n.push("/" + r + " (" + di(A(e[r])) + ")");
return n.push(">>"), n.join(`
`);
}
}, set: function(A) {
Se(A) === "object" && (e = A);
} }), Object.defineProperty(this, "caption", { enumerable: !0, configurable: !0, get: function() {
return e.CA || "";
}, set: function(A) {
typeof A == "string" && (e.CA = A);
} }), Object.defineProperty(this, "AS", { enumerable: !1, configurable: !1, get: function() {
return t;
}, set: function(A) {
t = A;
} }), Object.defineProperty(this, "appearanceState", { enumerable: !0, configurable: !0, get: function() {
return t.substr(1, t.length - 1);
}, set: function(A) {
t = "/" + A;
} });
};
jt(Bt, Ir);
var ko = function() {
Bt.call(this), this.pushButton = !0;
};
jt(ko, Bt);
var oa = function() {
Bt.call(this), this.radio = !0, this.pushButton = !1;
var t = [];
Object.defineProperty(this, "Kids", { enumerable: !0, configurable: !1, get: function() {
return t;
}, set: function(e) {
t = e !== void 0 ? e : [];
} });
};
jt(oa, Bt);
var Vo = function() {
var t, e;
Ir.call(this), Object.defineProperty(this, "Parent", { enumerable: !1, configurable: !1, get: function() {
return t;
}, set: function(n) {
t = n;
} }), Object.defineProperty(this, "optionName", { enumerable: !1, configurable: !0, get: function() {
return e;
}, set: function(n) {
e = n;
} });
var A, r = {};
Object.defineProperty(this, "MK", { enumerable: !1, configurable: !1, get: function() {
var n = function(o) {
return o;
};
this.scope && (n = this.scope.internal.getEncryptor(this.objId));
var i, s = [];
for (i in s.push("<<"), r) s.push("/" + i + " (" + di(n(r[i])) + ")");
return s.push(">>"), s.join(`
`);
}, set: function(n) {
Se(n) === "object" && (r = n);
} }), Object.defineProperty(this, "caption", { enumerable: !0, configurable: !0, get: function() {
return r.CA || "";
}, set: function(n) {
typeof n == "string" && (r.CA = n);
} }), Object.defineProperty(this, "AS", { enumerable: !1, configurable: !1, get: function() {
return A;
}, set: function(n) {
A = n;
} }), Object.defineProperty(this, "appearanceState", { enumerable: !0, configurable: !0, get: function() {
return A.substr(1, A.length - 1);
}, set: function(n) {
A = "/" + n;
} }), this.caption = "l", this.appearanceState = "Off", this._AppearanceType = $A.RadioButton.Circle, this.appearanceStreamContent = this._AppearanceType.createAppearanceStream(this.optionName);
};
jt(Vo, Ir), oa.prototype.setAppearance = function(t) {
if (!("createAppearanceStream" in t) || !("getCA" in t)) throw new Error("Couldn't assign Appearance to RadioButton. Appearance was Invalid!");
for (var e in this.Kids) if (this.Kids.hasOwnProperty(e)) {
var A = this.Kids[e];
A.appearanceStreamContent = t.createAppearanceStream(A.optionName), A.caption = t.getCA();
}
}, oa.prototype.createOption = function(t) {
var e = new Vo();
return e.Parent = this, e.optionName = t, this.Kids.push(e), aB.call(this.scope, e), e;
};
var _o = function() {
Bt.call(this), this.fontName = "zapfdingbats", this.caption = "3", this.appearanceState = "On", this.value = "On", this.textAlign = "center", this.appearanceStreamContent = $A.CheckBox.createAppearanceStream();
};
jt(_o, Bt);
var ci = function() {
Ir.call(this), this.FT = "/Tx", Object.defineProperty(this, "multiline", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 13);
}, set: function(e) {
e ? this.Ff = rt(this.Ff, 13) : this.Ff = nt(this.Ff, 13);
} }), Object.defineProperty(this, "fileSelect", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 21);
}, set: function(e) {
e ? this.Ff = rt(this.Ff, 21) : this.Ff = nt(this.Ff, 21);
} }), Object.defineProperty(this, "doNotSpellCheck", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 23);
}, set: function(e) {
e ? this.Ff = rt(this.Ff, 23) : this.Ff = nt(this.Ff, 23);
} }), Object.defineProperty(this, "doNotScroll", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 24);
}, set: function(e) {
e ? this.Ff = rt(this.Ff, 24) : this.Ff = nt(this.Ff, 24);
} }), Object.defineProperty(this, "comb", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 25);
}, set: function(e) {
e ? this.Ff = rt(this.Ff, 25) : this.Ff = nt(this.Ff, 25);
} }), Object.defineProperty(this, "richText", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 26);
}, set: function(e) {
e ? this.Ff = rt(this.Ff, 26) : this.Ff = nt(this.Ff, 26);
} });
var t = null;
Object.defineProperty(this, "MaxLen", { enumerable: !0, configurable: !1, get: function() {
return t;
}, set: function(e) {
t = e;
} }), Object.defineProperty(this, "maxLength", { enumerable: !0, configurable: !0, get: function() {
return t;
}, set: function(e) {
Number.isInteger(e) && (t = e);
} }), Object.defineProperty(this, "hasAppearanceStream", { enumerable: !0, configurable: !0, get: function() {
return this.V || this.DV;
} });
};
jt(ci, Ir);
var To = function() {
ci.call(this), Object.defineProperty(this, "password", { enumerable: !0, configurable: !0, get: function() {
return !!tt(this.Ff, 14);
}, set: function(t) {
t ? this.Ff = rt(this.Ff, 14) : this.Ff = nt(this.Ff, 14);
} }), this.password = !0;
};
jt(To, ci);
var $A = { CheckBox: { createAppearanceStream: function() {
return { N: { On: $A.CheckBox.YesNormal }, D: { On: $A.CheckBox.YesPushDown, Off: $A.CheckBox.OffPushDown } };
}, YesPushDown: function(t) {
var e = Gr(t);
e.scope = t.scope;
var A = [], r = t.scope.internal.getFont(t.fontName, t.fontStyle).id, n = t.scope.__private__.encodeColorString(t.color), i = Vc(t, t.caption);
return A.push("0.749023 g"), A.push("0 0 " + ge($A.internal.getWidth(t)) + " " + ge($A.internal.getHeight(t)) + " re"), A.push("f"), A.push("BMC"), A.push("q"), A.push("0 0 1 rg"), A.push("/" + r + " " + ge(i.fontSize) + " Tf " + n), A.push("BT"), A.push(i.text), A.push("ET"), A.push("Q"), A.push("EMC"), e.stream = A.join(`
`), e;
}, YesNormal: function(t) {
var e = Gr(t);
e.scope = t.scope;
var A = t.scope.internal.getFont(t.fontName, t.fontStyle).id, r = t.scope.__private__.encodeColorString(t.color), n = [], i = $A.internal.getHeight(t), s = $A.internal.getWidth(t), o = Vc(t, t.caption);
return n.push("1 g"), n.push("0 0 " + ge(s) + " " + ge(i) + " re"), n.push("f"), n.push("q"), n.push("0 0 1 rg"), n.push("0 0 " + ge(s - 1) + " " + ge(i - 1) + " re"), n.push("W"), n.push("n"), n.push("0 g"), n.push("BT"), n.push("/" + A + " " + ge(o.fontSize) + " Tf " + r), n.push(o.text), n.push("ET"), n.push("Q"), e.stream = n.join(`
`), e;
}, OffPushDown: function(t) {
var e = Gr(t);
e.scope = t.scope;
var A = [];
return A.push("0.749023 g"), A.push("0 0 " + ge($A.internal.getWidth(t)) + " " + ge($A.internal.getHeight(t)) + " re"), A.push("f"), e.stream = A.join(`
`), e;
} }, RadioButton: { Circle: { createAppearanceStream: function(t) {
var e = { D: { Off: $A.RadioButton.Circle.OffPushDown }, N: {} };
return e.N[t] = $A.RadioButton.Circle.YesNormal, e.D[t] = $A.RadioButton.Circle.YesPushDown, e;
}, getCA: function() {
return "l";
}, YesNormal: function(t) {
var e = Gr(t);
e.scope = t.scope;
var A = [], r = $A.internal.getWidth(t) <= $A.internal.getHeight(t) ? $A.internal.getWidth(t) / 4 : $A.internal.getHeight(t) / 4;
r = Number((0.9 * r).toFixed(5));
var n = $A.internal.Bezier_C, i = Number((r * n).toFixed(5));
return A.push("q"), A.push("1 0 0 1 " + xn($A.internal.getWidth(t) / 2) + " " + xn($A.internal.getHeight(t) / 2) + " cm"), A.push(r + " 0 m"), A.push(r + " " + i + " " + i + " " + r + " 0 " + r + " c"), A.push("-" + i + " " + r + " -" + r + " " + i + " -" + r + " 0 c"), A.push("-" + r + " -" + i + " -" + i + " -" + r + " 0 -" + r + " c"), A.push(i + " -" + r + " " + r + " -" + i + " " + r + " 0 c"), A.push("f"), A.push("Q"), e.stream = A.join(`
`), e;
}, YesPushDown: function(t) {
var e = Gr(t);
e.scope = t.scope;
var A = [], r = $A.internal.getWidth(t) <= $A.internal.getHeight(t) ? $A.internal.getWidth(t) / 4 : $A.internal.getHeight(t) / 4;
r = Number((0.9 * r).toFixed(5));
var n = Number((2 * r).toFixed(5)), i = Number((n * $A.internal.Bezier_C).toFixed(5)), s = Number((r * $A.internal.Bezier_C).toFixed(5));
return A.push("0.749023 g"), A.push("q"), A.push("1 0 0 1 " + xn($A.internal.getWidth(t) / 2) + " " + xn($A.internal.getHeight(t) / 2) + " cm"), A.push(n + " 0 m"), A.push(n + " " + i + " " + i + " " + n + " 0 " + n + " c"), A.push("-" + i + " " + n + " -" + n + " " + i + " -" + n + " 0 c"), A.push("-" + n + " -" + i + " -" + i + " -" + n + " 0 -" + n + " c"), A.push(i + " -" + n + " " + n + " -" + i + " " + n + " 0 c"), A.push("f"), A.push("Q"), A.push("0 g"), A.push("q"), A.push("1 0 0 1 " + xn($A.internal.getWidth(t) / 2) + " " + xn($A.internal.getHeight(t) / 2) + " cm"), A.push(r + " 0 m"), A.push(r + " " + s + " " + s + " " + r + " 0 " + r + " c"), A.push("-" + s + " " + r + " -" + r + " " + s + " -" + r + " 0 c"), A.push("-" + r + " -" + s + " -" + s + " -" + r + " 0 -" + r + " c"), A.push(s + " -" + r + " " + r + " -" + s + " " + r + " 0 c"), A.push("f"), A.push("Q"), e.stream = A.join(`
`), e;
}, OffPushDown: function(t) {
var e = Gr(t);
e.scope = t.scope;
var A = [], r = $A.internal.getWidth(t) <= $A.internal.getHeight(t) ? $A.internal.getWidth(t) / 4 : $A.internal.getHeight(t) / 4;
r = Number((0.9 * r).toFixed(5));
var n = Number((2 * r).toFixed(5)), i = Number((n * $A.internal.Bezier_C).toFixed(5));
return A.push("0.749023 g"), A.push("q"), A.push("1 0 0 1 " + xn($A.internal.getWidth(t) / 2) + " " + xn($A.internal.getHeight(t) / 2) + " cm"), A.push(n + " 0 m"), A.push(n + " " + i + " " + i + " " + n + " 0 " + n + " c"), A.push("-" + i + " " + n + " -" + n + " " + i + " -" + n + " 0 c"), A.push("-" + n + " -" + i + " -" + i + " -" + n + " 0 -" + n + " c"), A.push(i + " -" + n + " " + n + " -" + i + " " + n + " 0 c"), A.push("f"), A.push("Q"), e.stream = A.join(`
`), e;
} }, Cross: { createAppearanceStream: function(t) {
var e = { D: { Off: $A.RadioButton.Cross.OffPushDown }, N: {} };
return e.N[t] = $A.RadioButton.Cross.YesNormal, e.D[t] = $A.RadioButton.Cross.YesPushDown, e;
}, getCA: function() {
return "8";
}, YesNormal: function(t) {
var e = Gr(t);
e.scope = t.scope;
var A = [], r = $A.internal.calculateCross(t);
return A.push("q"), A.push("1 1 " + ge($A.internal.getWidth(t) - 2) + " " + ge($A.internal.getHeight(t) - 2) + " re"), A.push("W"), A.push("n"), A.push(ge(r.x1.x) + " " + ge(r.x1.y) + " m"), A.push(ge(r.x2.x) + " " + ge(r.x2.y) + " l"), A.push(ge(r.x4.x) + " " + ge(r.x4.y) + " m"), A.push(ge(r.x3.x) + " " + ge(r.x3.y) + " l"), A.push("s"), A.push("Q"), e.stream = A.join(`
`), e;
}, YesPushDown: function(t) {
var e = Gr(t);
e.scope = t.scope;
var A = $A.internal.calculateCross(t), r = [];
return r.push("0.749023 g"), r.push("0 0 " + ge($A.internal.getWidth(t)) + " " + ge($A.internal.getHeight(t)) + " re"), r.push("f"), r.push("q"), r.push("1 1 " + ge($A.internal.getWidth(t) - 2) + " " + ge($A.internal.getHeight(t) - 2) + " re"), r.push("W"), r.push("n"), r.push(ge(A.x1.x) + " " + ge(A.x1.y) + " m"), r.push(ge(A.x2.x) + " " + ge(A.x2.y) + " l"), r.push(ge(A.x4.x) + " " + ge(A.x4.y) + " m"), r.push(ge(A.x3.x) + " " + ge(A.x3.y) + " l"), r.push("s"), r.push("Q"), e.stream = r.join(`
`), e;
}, OffPushDown: function(t) {
var e = Gr(t);
e.scope = t.scope;
var A = [];
return A.push("0.749023 g"), A.push("0 0 " + ge($A.internal.getWidth(t)) + " " + ge($A.internal.getHeight(t)) + " re"), A.push("f"), e.stream = A.join(`
`), e;
} } }, createDefaultAppearanceStream: function(t) {
var e = t.scope.internal.getFont(t.fontName, t.fontStyle).id, A = t.scope.__private__.encodeColorString(t.color);
return "/" + e + " " + t.fontSize + " Tf " + A;
} };
$A.internal = { Bezier_C: 0.551915024494, calculateCross: function(t) {
var e = $A.internal.getWidth(t), A = $A.internal.getHeight(t), r = Math.min(e, A);
return { x1: { x: (e - r) / 2, y: (A - r) / 2 + r }, x2: { x: (e - r) / 2 + r, y: (A - r) / 2 }, x3: { x: (e - r) / 2, y: (A - r) / 2 }, x4: { x: (e - r) / 2 + r, y: (A - r) / 2 + r } };
} }, $A.internal.getWidth = function(t) {
var e = 0;
return Se(t) === "object" && (e = lf(t.Rect[2])), e;
}, $A.internal.getHeight = function(t) {
var e = 0;
return Se(t) === "object" && (e = lf(t.Rect[3])), e;
};
var aB = Xe.addField = function(t) {
if (iB(this, t), !(t instanceof Ir)) throw new Error("Invalid argument passed to jsPDF.addField.");
var e;
return (e = t).scope.internal.acroformPlugin.printedOut && (e.scope.internal.acroformPlugin.printedOut = !1, e.scope.internal.acroformPlugin.acroFormDictionaryRoot = null), e.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(e), t.page = t.scope.internal.getCurrentPageInfo().pageNumber, this;
};
Xe.AcroFormChoiceField = ia, Xe.AcroFormListBox = aa, Xe.AcroFormComboBox = sa, Xe.AcroFormEditBox = No, Xe.AcroFormButton = Bt, Xe.AcroFormPushButton = ko, Xe.AcroFormRadioButton = oa, Xe.AcroFormCheckBox = _o, Xe.AcroFormTextField = ci, Xe.AcroFormPasswordField = To, Xe.AcroFormAppearance = $A, Xe.AcroForm = { ChoiceField: ia, ListBox: aa, ComboBox: sa, EditBox: No, Button: Bt, PushButton: ko, RadioButton: oa, CheckBox: _o, TextField: ci, PasswordField: To, Appearance: $A }, ae.AcroForm = { ChoiceField: ia, ListBox: aa, ComboBox: sa, EditBox: No, Button: Bt, PushButton: ko, RadioButton: oa, CheckBox: _o, TextField: ci, PasswordField: To, Appearance: $A };
ae.AcroForm;
function Mh(t) {
return t.reduce(function(e, A, r) {
return e[A] = r, e;
}, {});
}
(function(t) {
t.__addimage__ = {};
var e = "UNKNOWN", A = { PNG: [[137, 80, 78, 71]], TIFF: [[77, 77, 0, 42], [73, 73, 42, 0]], JPEG: [[255, 216, 255, 224, void 0, void 0, 74, 70, 73, 70, 0], [255, 216, 255, 225, void 0, void 0, 69, 120, 105, 102, 0, 0], [255, 216, 255, 219], [255, 216, 255, 238]], JPEG2000: [[0, 0, 0, 12, 106, 80, 32, 32]], GIF87a: [[71, 73, 70, 56, 55, 97]], GIF89a: [[71, 73, 70, 56, 57, 97]], WEBP: [[82, 73, 70, 70, void 0, void 0, void 0, void 0, 87, 69, 66, 80]], BMP: [[66, 77], [66, 65], [67, 73], [67, 80], [73, 67], [80, 84]] }, r = t.__addimage__.getImageFileTypeByImageData = function(x, F) {
var _, P, lA, oA, iA, k = e;
if ((F = F || e) === "RGBA" || x.data !== void 0 && x.data instanceof Uint8ClampedArray && "height" in x && "width" in x) return "RGBA";
if (V(x)) for (iA in A) for (lA = A[iA], _ = 0; _ < lA.length; _ += 1) {
for (oA = !0, P = 0; P < lA[_].length; P += 1) if (lA[_][P] !== void 0 && lA[_][P] !== x[P]) {
oA = !1;
break;
}
if (oA === !0) {
k = iA;
break;
}
}
else for (iA in A) for (lA = A[iA], _ = 0; _ < lA.length; _ += 1) {
for (oA = !0, P = 0; P < lA[_].length; P += 1) if (lA[_][P] !== void 0 && lA[_][P] !== x.charCodeAt(P)) {
oA = !1;
break;
}
if (oA === !0) {
k = iA;
break;
}
}
return k === e && F !== e && (k = F), k;
}, n = function x(F) {
for (var _ = this.internal.write, P = this.internal.putStream, lA = (0, this.internal.getFilters)(); lA.indexOf("FlateEncode") !== -1; ) lA.splice(lA.indexOf("FlateEncode"), 1);
F.objectId = this.internal.newObject();
var oA = [];
if (oA.push({ key: "Type", value: "/XObject" }), oA.push({ key: "Subtype", value: "/Image" }), oA.push({ key: "Width", value: F.width }), oA.push({ key: "Height", value: F.height }), F.colorSpace === N.INDEXED ? oA.push({ key: "ColorSpace", value: "[/Indexed /DeviceRGB " + (F.palette.length / 3 - 1) + " " + ("sMask" in F && F.sMask !== void 0 ? F.objectId + 2 : F.objectId + 1) + " 0 R]" }) : (oA.push({ key: "ColorSpace", value: "/" + F.colorSpace }), F.colorSpace === N.DEVICE_CMYK && oA.push({ key: "Decode", value: "[1 0 1 0 1 0 1 0]" })), oA.push({ key: "BitsPerComponent", value: F.bitsPerComponent }), "decodeParameters" in F && F.decodeParameters !== void 0 && oA.push({ key: "DecodeParms", value: "<<" + F.decodeParameters + ">>" }), "transparency" in F && Array.isArray(F.transparency)) {
for (var iA = "", k = 0, W = F.transparency.length; k < W; k++) iA += F.transparency[k] + " " + F.transparency[k] + " ";
oA.push({ key: "Mask", value: "[" + iA + "]" });
}
F.sMask !== void 0 && oA.push({ key: "SMask", value: F.objectId + 1 + " 0 R" });
var rA = F.filter !== void 0 ? ["/" + F.filter] : void 0;
if (P({ data: F.data, additionalKeyValues: oA, alreadyAppliedFilters: rA, objectId: F.objectId }), _("endobj"), "sMask" in F && F.sMask !== void 0) {
var OA = "/Predictor " + F.predictor + " /Colors 1 /BitsPerComponent " + F.bitsPerComponent + " /Columns " + F.width, L = { width: F.width, height: F.height, colorSpace: "DeviceGray", bitsPerComponent: F.bitsPerComponent, decodeParameters: OA, data: F.sMask };
"filter" in F && (L.filter = F.filter), x.call(this, L);
}
if (F.colorSpace === N.INDEXED) {
var M = this.internal.newObject();
P({ data: H(new Uint8Array(F.palette)), objectId: M }), _("endobj");
}
}, i = function() {
var x = this.internal.collections.addImage_images;
for (var F in x) n.call(this, x[F]);
}, s = function() {
var x, F = this.internal.collections.addImage_images, _ = this.internal.write;
for (var P in F) _("/I" + (x = F[P]).index, x.objectId, "0", "R");
}, o = function() {
this.internal.collections.addImage_images || (this.internal.collections.addImage_images = {}, this.internal.events.subscribe("putResources", i), this.internal.events.subscribe("putXobjectDict", s));
}, c = function() {
var x = this.internal.collections.addImage_images;
return o.call(this), x;
}, h = function() {
return Object.keys(this.internal.collections.addImage_images).length;
}, p = function(x) {
return typeof t["process" + x.toUpperCase()] == "function";
}, d = function(x) {
return Se(x) === "object" && x.nodeType === 1;
}, w = function(x, F) {
if (x.nodeName === "IMG" && x.hasAttribute("src")) {
var _ = "" + x.getAttribute("src");
if (_.indexOf("data:image/") === 0) return es(unescape(_).split("base64,").pop());
var P = t.loadFile(_, !0);
if (P !== void 0) return P;
}
if (x.nodeName === "CANVAS") {
if (x.width === 0 || x.height === 0) throw new Error("Given canvas must have data. Canvas width: " + x.width + ", height: " + x.height);
var lA;
switch (F) {
case "PNG":
lA = "image/png";
break;
case "WEBP":
lA = "image/webp";
break;
case "JPEG":
case "JPG":
default:
lA = "image/jpeg";
}
return es(x.toDataURL(lA, 1).split("base64,").pop());
}
}, g = function(x) {
var F = this.internal.collections.addImage_images;
if (F) {
for (var _ in F) if (x === F[_].alias) return F[_];
}
}, Q = function(x, F, _) {
return x || F || (x = -96, F = -96), x < 0 && (x = -1 * _.width * 72 / x / this.internal.scaleFactor), F < 0 && (F = -1 * _.height * 72 / F / this.internal.scaleFactor), x === 0 && (x = F * _.width / _.height), F === 0 && (F = x * _.height / _.width), [x, F];
}, y = function(x, F, _, P, lA, oA) {
var iA = Q.call(this, _, P, lA), k = this.internal.getCoordinateString, W = this.internal.getVerticalCoordinateString, rA = c.call(this);
if (_ = iA[0], P = iA[1], rA[lA.index] = lA, oA) {
oA *= Math.PI / 180;
var OA = Math.cos(oA), L = Math.sin(oA), M = function(J) {
return J.toFixed(4);
}, R = [M(OA), M(L), M(-1 * L), M(OA), 0, 0, "cm"];
}
this.internal.write("q"), oA ? (this.internal.write([1, "0", "0", 1, k(x), W(F + P), "cm"].join(" ")), this.internal.write(R.join(" ")), this.internal.write([k(_), "0", "0", k(P), "0", "0", "cm"].join(" "))) : this.internal.write([k(_), "0", "0", k(P), k(x), W(F + P), "cm"].join(" ")), this.isAdvancedAPI() && this.internal.write([1, 0, 0, -1, 0, 0, "cm"].join(" ")), this.internal.write("/I" + lA.index + " Do"), this.internal.write("Q");
}, N = t.color_spaces = { DEVICE_RGB: "DeviceRGB", DEVICE_GRAY: "DeviceGray", DEVICE_CMYK: "DeviceCMYK", CAL_GREY: "CalGray", CAL_RGB: "CalRGB", LAB: "Lab", ICC_BASED: "ICCBased", INDEXED: "Indexed", PATTERN: "Pattern", SEPARATION: "Separation", DEVICE_N: "DeviceN" };
t.decode = { DCT_DECODE: "DCTDecode", FLATE_DECODE: "FlateDecode", LZW_DECODE: "LZWDecode", JPX_DECODE: "JPXDecode", JBIG2_DECODE: "JBIG2Decode", ASCII85_DECODE: "ASCII85Decode", ASCII_HEX_DECODE: "ASCIIHexDecode", RUN_LENGTH_DECODE: "RunLengthDecode", CCITT_FAX_DECODE: "CCITTFaxDecode" };
var v = t.image_compression = { NONE: "NONE", FAST: "FAST", MEDIUM: "MEDIUM", SLOW: "SLOW" }, U = t.__addimage__.sHashCode = function(x) {
var F, _, P = 0;
if (typeof x == "string") for (_ = x.length, F = 0; F < _; F++) P = (P << 5) - P + x.charCodeAt(F), P |= 0;
else if (V(x)) for (_ = x.byteLength / 2, F = 0; F < _; F++) P = (P << 5) - P + x[F], P |= 0;
return P;
}, K = t.__addimage__.validateStringAsBase64 = function(x) {
(x = x || "").toString().trim();
var F = !0;
return x.length === 0 && (F = !1), x.length % 4 != 0 && (F = !1), /^[A-Za-z0-9+/]+$/.test(x.substr(0, x.length - 2)) === !1 && (F = !1), /^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(x.substr(-2)) === !1 && (F = !1), F;
}, j = t.__addimage__.extractImageFromDataUrl = function(x) {
if (x == null || !(x = x.trim()).startsWith("data:")) return null;
var F = x.indexOf(",");
return F < 0 ? null : x.substring(0, F).trim().endsWith("base64") ? x.substring(F + 1) : null;
}, q = t.__addimage__.supportsArrayBuffer = function() {
return typeof ArrayBuffer < "u" && typeof Uint8Array < "u";
};
t.__addimage__.isArrayBuffer = function(x) {
return q() && x instanceof ArrayBuffer;
};
var V = t.__addimage__.isArrayBufferView = function(x) {
return q() && typeof Uint32Array < "u" && (x instanceof Int8Array || x instanceof Uint8Array || typeof Uint8ClampedArray < "u" && x instanceof Uint8ClampedArray || x instanceof Int16Array || x instanceof Uint16Array || x instanceof Int32Array || x instanceof Uint32Array || x instanceof Float32Array || x instanceof Float64Array);
}, z = t.__addimage__.binaryStringToUint8Array = function(x) {
for (var F = x.length, _ = new Uint8Array(F), P = 0; P < F; P++) _[P] = x.charCodeAt(P);
return _;
}, H = t.__addimage__.arrayBufferToBinaryString = function(x) {
for (var F = "", _ = V(x) ? x : new Uint8Array(x), P = 0; P < _.length; P += 8192) F += String.fromCharCode.apply(null, _.subarray(P, P + 8192));
return F;
};
t.addImage = function() {
var x, F, _, P, lA, oA, iA, k, W;
if (typeof arguments[1] == "number" ? (F = e, _ = arguments[1], P = arguments[2], lA = arguments[3], oA = arguments[4], iA = arguments[5], k = arguments[6], W = arguments[7]) : (F = arguments[1], _ = arguments[2], P = arguments[3], lA = arguments[4], oA = arguments[5], iA = arguments[6], k = arguments[7], W = arguments[8]), Se(x = arguments[0]) === "object" && !d(x) && "imageData" in x) {
var rA = x;
x = rA.imageData, F = rA.format || F || e, _ = rA.x || _ || 0, P = rA.y || P || 0, lA = rA.w || rA.width || lA, oA = rA.h || rA.height || oA, iA = rA.alias || iA, k = rA.compression || k, W = rA.rotation || rA.angle || W;
}
var OA = this.internal.getFilters();
if (k === void 0 && OA.indexOf("FlateEncode") !== -1 && (k = "SLOW"), isNaN(_) || isNaN(P)) throw new Error("Invalid coordinates passed to jsPDF.addImage");
o.call(this);
var L = G.call(this, x, F, iA, k);
return y.call(this, _, P, lA, oA, L, W), this;
};
var G = function(x, F, _, P) {
var lA, oA, iA;
if (typeof x == "string" && r(x) === e) {
x = unescape(x);
var k = tA(x, !1);
(k !== "" || (k = t.loadFile(x, !0)) !== void 0) && (x = k);
}
if (d(x) && (x = w(x, F)), F = r(x, F), !p(F)) throw new Error("addImage does not support files of type '" + F + "', please ensure that a plugin for '" + F + "' support is added.");
if (((iA = _) == null || iA.length === 0) && (_ = function(W) {
return typeof W == "string" || V(W) ? U(W) : V(W.data) ? U(W.data) : null;
}(x)), (lA = g.call(this, _)) || (q() && (x instanceof Uint8Array || F === "RGBA" || (oA = x, x = z(x))), lA = this["process" + F.toUpperCase()](x, h.call(this), _, function(W) {
return W && typeof W == "string" && (W = W.toUpperCase()), W in t.image_compression ? W : v.NONE;
}(P), oA)), !lA) throw new Error("An unknown error occurred whilst processing the image.");
return lA;
}, tA = t.__addimage__.convertBase64ToBinaryString = function(x, F) {
F = typeof F != "boolean" || F;
var _, P = "";
if (typeof x == "string") {
var lA;
_ = (lA = j(x)) !== null && lA !== void 0 ? lA : x;
try {
P = es(_);
} catch (oA) {
if (F) throw K(_) ? new Error("atob-Error in jsPDF.convertBase64ToBinaryString " + oA.message) : new Error("Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString ");
}
}
return P;
};
t.getImageProperties = function(x) {
var F, _, P = "";
if (d(x) && (x = w(x)), typeof x == "string" && r(x) === e && ((P = tA(x, !1)) === "" && (P = t.loadFile(x) || ""), x = P), _ = r(x), !p(_)) throw new Error("addImage does not support files of type '" + _ + "', please ensure that a plugin for '" + _ + "' support is added.");
if (!q() || x instanceof Uint8Array || (x = z(x)), !(F = this["process" + _.toUpperCase()](x))) throw new Error("An unknown error occurred whilst processing the image");
return F.fileType = _, F;
};
})(ae.API), /**
* @license
* Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
function(t) {
var e = function(A) {
if (A !== void 0 && A != "") return !0;
};
ae.API.events.push(["addPage", function(A) {
this.internal.getPageInfo(A.pageNumber).pageContext.annotations = [];
}]), t.events.push(["putPage", function(A) {
for (var r, n, i, s = this.internal.getCoordinateString, o = this.internal.getVerticalCoordinateString, c = this.internal.getPageInfoByObjId(A.objId), h = A.pageContext.annotations, p = !1, d = 0; d < h.length && !p; d++) switch ((r = h[d]).type) {
case "link":
(e(r.options.url) || e(r.options.pageNumber)) && (p = !0);
break;
case "reference":
case "text":
case "freetext":
p = !0;
}
if (p != 0) {
this.internal.write("/Annots [");
for (var w = 0; w < h.length; w++) {
r = h[w];
var g = this.internal.pdfEscape, Q = this.internal.getEncryptor(A.objId);
switch (r.type) {
case "reference":
this.internal.write(" " + r.object.objId + " 0 R ");
break;
case "text":
var y = this.internal.newAdditionalObject(), N = this.internal.newAdditionalObject(), v = this.internal.getEncryptor(y.objId), U = r.title || "Note";
i = "<</Type /Annot /Subtype /Text " + (n = "/Rect [" + s(r.bounds.x) + " " + o(r.bounds.y + r.bounds.h) + " " + s(r.bounds.x + r.bounds.w) + " " + o(r.bounds.y) + "] ") + "/Contents (" + g(v(r.contents)) + ")", i += " /Popup " + N.objId + " 0 R", i += " /P " + c.objId + " 0 R", i += " /T (" + g(v(U)) + ") >>", y.content = i;
var K = y.objId + " 0 R";
i = "<</Type /Annot /Subtype /Popup " + (n = "/Rect [" + s(r.bounds.x + 30) + " " + o(r.bounds.y + r.bounds.h) + " " + s(r.bounds.x + r.bounds.w + 30) + " " + o(r.bounds.y) + "] ") + " /Parent " + K, r.open && (i += " /Open true"), i += " >>", N.content = i, this.internal.write(y.objId, "0 R", N.objId, "0 R");
break;
case "freetext":
n = "/Rect [" + s(r.bounds.x) + " " + o(r.bounds.y) + " " + s(r.bounds.x + r.bounds.w) + " " + o(r.bounds.y + r.bounds.h) + "] ";
var j = r.color || "#000000";
i = "<</Type /Annot /Subtype /FreeText " + n + "/Contents (" + g(Q(r.contents)) + ")", i += " /DS(font: Helvetica,sans-serif 12.0pt; text-align:left; color:#" + j + ")", i += " /Border [0 0 0]", i += " >>", this.internal.write(i);
break;
case "link":
if (r.options.name) {
var q = this.annotations._nameMap[r.options.name];
r.options.pageNumber = q.page, r.options.top = q.y;
} else r.options.top || (r.options.top = 0);
if (n = "/Rect [" + r.finalBounds.x + " " + r.finalBounds.y + " " + r.finalBounds.w + " " + r.finalBounds.h + "] ", i = "", r.options.url) i = "<</Type /Annot /Subtype /Link " + n + "/Border [0 0 0] /A <</S /URI /URI (" + g(Q(r.options.url)) + ") >>";
else if (r.options.pageNumber)
switch (i = "<</Type /Annot /Subtype /Link " + n + "/Border [0 0 0] /Dest [" + this.internal.getPageInfo(r.options.pageNumber).objId + " 0 R", r.options.magFactor = r.options.magFactor || "XYZ", r.options.magFactor) {
case "Fit":
i += " /Fit]";
break;
case "FitH":
i += " /FitH " + r.options.top + "]";
break;
case "FitV":
r.options.left = r.options.left || 0, i += " /FitV " + r.options.left + "]";
break;
case "XYZ":
default:
var V = o(r.options.top);
r.options.left = r.options.left || 0, r.options.zoom === void 0 && (r.options.zoom = 0), i += " /XYZ " + r.options.left + " " + V + " " + r.options.zoom + "]";
}
i != "" && (i += " >>", this.internal.write(i));
}
}
this.internal.write("]");
}
}]), t.createAnnotation = function(A) {
var r = this.internal.getCurrentPageInfo();
switch (A.type) {
case "link":
this.link(A.bounds.x, A.bounds.y, A.bounds.w, A.bounds.h, A);
break;
case "text":
case "freetext":
r.pageContext.annotations.push(A);
}
}, t.link = function(A, r, n, i, s) {
var o = this.internal.getCurrentPageInfo(), c = this.internal.getCoordinateString, h = this.internal.getVerticalCoordinateString;
o.pageContext.annotations.push({ finalBounds: { x: c(A), y: h(r), w: c(A + n), h: h(r + i) }, options: s, type: "link" });
}, t.textWithLink = function(A, r, n, i) {
var s, o, c = this.getTextWidth(A), h = this.internal.getLineHeight() / this.internal.scaleFactor;
if (i.maxWidth !== void 0) {
o = i.maxWidth;
var p = this.splitTextToSize(A, o).length;
s = Math.ceil(h * p);
} else o = c, s = h;
return this.text(A, r, n, i), n += 0.2 * h, i.align === "center" && (r -= c / 2), i.align === "right" && (r -= c), this.link(r, n - h, o, s, i), c;
}, t.getTextWidth = function(A) {
var r = this.internal.getFontSize();
return this.getStringUnitWidth(A) * r / this.internal.scaleFactor;
};
}(ae.API), /**
* @license
* Copyright (c) 2017 Aras Abbasi
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
function(t) {
var e = { 1569: [65152], 1570: [65153, 65154], 1571: [65155, 65156], 1572: [65157, 65158], 1573: [65159, 65160], 1574: [65161, 65162, 65163, 65164], 1575: [65165, 65166], 1576: [65167, 65168, 65169, 65170], 1577: [65171, 65172], 1578: [65173, 65174, 65175, 65176], 1579: [65177, 65178, 65179, 65180], 1580: [65181, 65182, 65183, 65184], 1581: [65185, 65186, 65187, 65188], 1582: [65189, 65190, 65191, 65192], 1583: [65193, 65194], 1584: [65195, 65196], 1585: [65197, 65198], 1586: [65199, 65200], 1587: [65201, 65202, 65203, 65204], 1588: [65205, 65206, 65207, 65208], 1589: [65209, 65210, 65211, 65212], 1590: [65213, 65214, 65215, 65216], 1591: [65217, 65218, 65219, 65220], 1592: [65221, 65222, 65223, 65224], 1593: [65225, 65226, 65227, 65228], 1594: [65229, 65230, 65231, 65232], 1601: [65233, 65234, 65235, 65236], 1602: [65237, 65238, 65239, 65240], 1603: [65241, 65242, 65243, 65244], 1604: [65245, 65246, 65247, 65248], 1605: [65249, 65250, 65251, 65252], 1606: [65253, 65254, 65255, 65256], 1607: [65257, 65258, 65259, 65260], 1608: [65261, 65262], 1609: [65263, 65264, 64488, 64489], 1610: [65265, 65266, 65267, 65268], 1649: [64336, 64337], 1655: [64477], 1657: [64358, 64359, 64360, 64361], 1658: [64350, 64351, 64352, 64353], 1659: [64338, 64339, 64340, 64341], 1662: [64342, 64343, 64344, 64345], 1663: [64354, 64355, 64356, 64357], 1664: [64346, 64347, 64348, 64349], 1667: [64374, 64375, 64376, 64377], 1668: [64370, 64371, 64372, 64373], 1670: [64378, 64379, 64380, 64381], 1671: [64382, 64383, 64384, 64385], 1672: [64392, 64393], 1676: [64388, 64389], 1677: [64386, 64387], 1678: [64390, 64391], 1681: [64396, 64397], 1688: [64394, 64395], 1700: [64362, 64363, 64364, 64365], 1702: [64366, 64367, 64368, 64369], 1705: [64398, 64399, 64400, 64401], 1709: [64467, 64468, 64469, 64470], 1711: [64402, 64403, 64404, 64405], 1713: [64410, 64411, 64412, 64413], 1715: [64406, 64407, 64408, 64409], 1722: [64414, 64415], 1723: [64416, 64417, 64418, 64419], 1726: [64426, 64427, 64428, 64429], 1728: [64420, 64421], 1729: [64422, 64423, 64424, 64425], 1733: [64480, 64481], 1734: [64473, 64474], 1735: [64471, 64472], 1736: [64475, 64476], 1737: [64482, 64483], 1739: [64478, 64479], 1740: [64508, 64509, 64510, 64511], 1744: [64484, 64485, 64486, 64487], 1746: [64430, 64431], 1747: [64432, 64433] }, A = { 65247: { 65154: 65269, 65156: 65271, 65160: 65273, 65166: 65275 }, 65248: { 65154: 65270, 65156: 65272, 65160: 65274, 65166: 65276 }, 65165: { 65247: { 65248: { 65258: 65010 } } }, 1617: { 1612: 64606, 1613: 64607, 1614: 64608, 1615: 64609, 1616: 64610 } }, r = { 1612: 64606, 1613: 64607, 1614: 64608, 1615: 64609, 1616: 64610 }, n = [1570, 1571, 1573, 1575];
t.__arabicParser__ = {};
var i = t.__arabicParser__.isInArabicSubstitutionA = function(y) {
return e[y.charCodeAt(0)] !== void 0;
}, s = t.__arabicParser__.isArabicLetter = function(y) {
return typeof y == "string" && /^[\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF]+$/.test(y);
}, o = t.__arabicParser__.isArabicEndLetter = function(y) {
return s(y) && i(y) && e[y.charCodeAt(0)].length <= 2;
}, c = t.__arabicParser__.isArabicAlfLetter = function(y) {
return s(y) && n.indexOf(y.charCodeAt(0)) >= 0;
};
t.__arabicParser__.arabicLetterHasIsolatedForm = function(y) {
return s(y) && i(y) && e[y.charCodeAt(0)].length >= 1;
};
var h = t.__arabicParser__.arabicLetterHasFinalForm = function(y) {
return s(y) && i(y) && e[y.charCodeAt(0)].length >= 2;
};
t.__arabicParser__.arabicLetterHasInitialForm = function(y) {
return s(y) && i(y) && e[y.charCodeAt(0)].length >= 3;
};
var p = t.__arabicParser__.arabicLetterHasMedialForm = function(y) {
return s(y) && i(y) && e[y.charCodeAt(0)].length == 4;
}, d = t.__arabicParser__.resolveLigatures = function(y) {
var N = 0, v = A, U = "", K = 0;
for (N = 0; N < y.length; N += 1) v[y.charCodeAt(N)] !== void 0 ? (K++, typeof (v = v[y.charCodeAt(N)]) == "number" && (U += String.fromCharCode(v), v = A, K = 0), N === y.length - 1 && (v = A, U += y.charAt(N - (K - 1)), N -= K - 1, K = 0)) : (v = A, U += y.charAt(N - K), N -= K, K = 0);
return U;
};
t.__arabicParser__.isArabicDiacritic = function(y) {
return y !== void 0 && r[y.charCodeAt(0)] !== void 0;
};
var w = t.__arabicParser__.getCorrectForm = function(y, N, v) {
return s(y) ? i(y) === !1 ? -1 : !h(y) || !s(N) && !s(v) || !s(v) && o(N) || o(y) && !s(N) || o(y) && c(N) || o(y) && o(N) ? 0 : p(y) && s(N) && !o(N) && s(v) && h(v) ? 3 : o(y) || !s(v) ? 1 : 2 : -1;
}, g = function(y) {
var N = 0, v = 0, U = 0, K = "", j = "", q = "", V = (y = y || "").split("\\s+"), z = [];
for (N = 0; N < V.length; N += 1) {
for (z.push(""), v = 0; v < V[N].length; v += 1) K = V[N][v], j = V[N][v - 1], q = V[N][v + 1], s(K) ? (U = w(K, j, q), z[N] += U !== -1 ? String.fromCharCode(e[K.charCodeAt(0)][U]) : K) : z[N] += K;
z[N] = d(z[N]);
}
return z.join(" ");
}, Q = t.__arabicParser__.processArabic = t.processArabic = function() {
var y, N = typeof arguments[0] == "string" ? arguments[0] : arguments[0].text, v = [];
if (Array.isArray(N)) {
var U = 0;
for (v = [], U = 0; U < N.length; U += 1) Array.isArray(N[U]) ? v.push([g(N[U][0]), N[U][1], N[U][2]]) : v.push([g(N[U])]);
y = v;
} else y = g(N);
return typeof arguments[0] == "string" ? y : (arguments[0].text = y, arguments[0]);
};
t.events.push(["preProcessText", Q]);
}(ae.API), ae.API.autoPrint = function(t) {
var e;
switch ((t = t || {}).variant = t.variant || "non-conform", t.variant) {
case "javascript":
this.addJS("print({});");
break;
case "non-conform":
default:
this.internal.events.subscribe("postPutResources", function() {
e = this.internal.newObject(), this.internal.out("<<"), this.internal.out("/S /Named"), this.internal.out("/Type /Action"), this.internal.out("/N /Print"), this.internal.out(">>"), this.internal.out("endobj");
}), this.internal.events.subscribe("putCatalog", function() {
this.internal.out("/OpenAction " + e + " 0 R");
});
}
return this;
}, /**
* @license
* Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
function(t) {
var e = function() {
var A = void 0;
Object.defineProperty(this, "pdf", { get: function() {
return A;
}, set: function(o) {
A = o;
} });
var r = 150;
Object.defineProperty(this, "width", { get: function() {
return r;
}, set: function(o) {
r = isNaN(o) || Number.isInteger(o) === !1 || o < 0 ? 150 : o, this.getContext("2d").pageWrapXEnabled && (this.getContext("2d").pageWrapX = r + 1);
} });
var n = 300;
Object.defineProperty(this, "height", { get: function() {
return n;
}, set: function(o) {
n = isNaN(o) || Number.isInteger(o) === !1 || o < 0 ? 300 : o, this.getContext("2d").pageWrapYEnabled && (this.getContext("2d").pageWrapY = n + 1);
} });
var i = [];
Object.defineProperty(this, "childNodes", { get: function() {
return i;
}, set: function(o) {
i = o;
} });
var s = {};
Object.defineProperty(this, "style", { get: function() {
return s;
}, set: function(o) {
s = o;
} }), Object.defineProperty(this, "parentNode", {});
};
e.prototype.getContext = function(A, r) {
var n;
if ((A = A || "2d") !== "2d") return null;
for (n in r) this.pdf.context2d.hasOwnProperty(n) && (this.pdf.context2d[n] = r[n]);
return this.pdf.context2d._canvas = this, this.pdf.context2d;
}, e.prototype.toDataURL = function() {
throw new Error("toDataURL is not implemented.");
}, t.events.push(["initialized", function() {
this.canvas = new e(), this.canvas.pdf = this;
}]);
}(ae.API), function(t) {
var e = { left: 0, top: 0, bottom: 0, right: 0 }, A = !1, r = function() {
this.internal.__cell__ === void 0 && (this.internal.__cell__ = {}, this.internal.__cell__.padding = 3, this.internal.__cell__.headerFunction = void 0, this.internal.__cell__.margins = Object.assign({}, e), this.internal.__cell__.margins.width = this.getPageWidth(), n.call(this));
}, n = function() {
this.internal.__cell__.lastCell = new i(), this.internal.__cell__.pages = 1;
}, i = function() {
var c = arguments[0];
Object.defineProperty(this, "x", { enumerable: !0, get: function() {
return c;
}, set: function(y) {
c = y;
} });
var h = arguments[1];
Object.defineProperty(this, "y", { enumerable: !0, get: function() {
return h;
}, set: function(y) {
h = y;
} });
var p = arguments[2];
Object.defineProperty(this, "width", { enumerable: !0, get: function() {
return p;
}, set: function(y) {
p = y;
} });
var d = arguments[3];
Object.defineProperty(this, "height", { enumerable: !0, get: function() {
return d;
}, set: function(y) {
d = y;
} });
var w = arguments[4];
Object.defineProperty(this, "text", { enumerable: !0, get: function() {
return w;
}, set: function(y) {
w = y;
} });
var g = arguments[5];
Object.defineProperty(this, "lineNumber", { enumerable: !0, get: function() {
return g;
}, set: function(y) {
g = y;
} });
var Q = arguments[6];
return Object.defineProperty(this, "align", { enumerable: !0, get: function() {
return Q;
}, set: function(y) {
Q = y;
} }), this;
};
i.prototype.clone = function() {
return new i(this.x, this.y, this.width, this.height, this.text, this.lineNumber, this.align);
}, i.prototype.toArray = function() {
return [this.x, this.y, this.width, this.height, this.text, this.lineNumber, this.align];
}, t.setHeaderFunction = function(c) {
return r.call(this), this.internal.__cell__.headerFunction = typeof c == "function" ? c : void 0, this;
}, t.getTextDimensions = function(c, h) {
r.call(this);
var p = (h = h || {}).fontSize || this.getFontSize(), d = h.font || this.getFont(), w = h.scaleFactor || this.internal.scaleFactor, g = 0, Q = 0, y = 0, N = this;
if (!Array.isArray(c) && typeof c != "string") {
if (typeof c != "number") throw new Error("getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.");
c = String(c);
}
var v = h.maxWidth;
v > 0 ? typeof c == "string" ? c = this.splitTextToSize(c, v) : Object.prototype.toString.call(c) === "[object Array]" && (c = c.reduce(function(K, j) {
return K.concat(N.splitTextToSize(j, v));
}, [])) : c = Array.isArray(c) ? c : [c];
for (var U = 0; U < c.length; U++) g < (y = this.getStringUnitWidth(c[U], { font: d }) * p) && (g = y);
return g !== 0 && (Q = c.length), { w: g /= w, h: Math.max((Q * p * this.getLineHeightFactor() - p * (this.getLineHeightFactor() - 1)) / w, 0) };
}, t.cellAddPage = function() {
r.call(this), this.addPage();
var c = this.internal.__cell__.margins || e;
return this.internal.__cell__.lastCell = new i(c.left, c.top, void 0, void 0), this.internal.__cell__.pages += 1, this;
};
var s = t.cell = function() {
var c;
c = arguments[0] instanceof i ? arguments[0] : new i(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]), r.call(this);
var h = this.internal.__cell__.lastCell, p = this.internal.__cell__.padding, d = this.internal.__cell__.margins || e, w = this.internal.__cell__.tableHeaderRow, g = this.internal.__cell__.printHeaders;
return h.lineNumber !== void 0 && (h.lineNumber === c.lineNumber ? (c.x = (h.x || 0) + (h.width || 0), c.y = h.y || 0) : h.y + h.height + c.height + d.bottom > this.getPageHeight() ? (this.cellAddPage(), c.y = d.top, g && w && (this.printHeaderRow(c.lineNumber, !0), c.y += w[0].height)) : c.y = h.y + h.height || c.y), c.text[0] !== void 0 && (this.rect(c.x, c.y, c.width, c.height, A === !0 ? "FD" : void 0), c.align === "right" ? this.text(c.text, c.x + c.width - p, c.y + p, { align: "right", baseline: "top" }) : c.align === "center" ? this.text(c.text, c.x + c.width / 2, c.y + p, { align: "center", baseline: "top", maxWidth: c.width - p - p }) : this.text(c.text, c.x + p, c.y + p, { align: "left", baseline: "top", maxWidth: c.width - p - p })), this.internal.__cell__.lastCell = c, this;
};
t.table = function(c, h, p, d, w) {
if (r.call(this), !p) throw new Error("No data for PDF table.");
var g, Q, y, N, v = [], U = [], K = [], j = {}, q = {}, V = [], z = [], H = (w = w || {}).autoSize || !1, G = w.printHeaders !== !1, tA = w.css && w.css["font-size"] !== void 0 ? 16 * w.css["font-size"] : w.fontSize || 12, x = w.margins || Object.assign({ width: this.getPageWidth() }, e), F = typeof w.padding == "number" ? w.padding : 3, _ = w.headerBackgroundColor || "#c8c8c8", P = w.headerTextColor || "#000";
if (n.call(this), this.internal.__cell__.printHeaders = G, this.internal.__cell__.margins = x, this.internal.__cell__.table_font_size = tA, this.internal.__cell__.padding = F, this.internal.__cell__.headerBackgroundColor = _, this.internal.__cell__.headerTextColor = P, this.setFontSize(tA), d == null) U = v = Object.keys(p[0]), K = v.map(function() {
return "left";
});
else if (Array.isArray(d) && Se(d[0]) === "object") for (v = d.map(function(rA) {
return rA.name;
}), U = d.map(function(rA) {
return rA.prompt || rA.name || "";
}), K = d.map(function(rA) {
return rA.align || "left";
}), g = 0; g < d.length; g += 1) q[d[g].name] = d[g].width * (19.049976 / 25.4);
else Array.isArray(d) && typeof d[0] == "string" && (U = v = d, K = v.map(function() {
return "left";
}));
if (H || Array.isArray(d) && typeof d[0] == "string") for (g = 0; g < v.length; g += 1) {
for (j[N = v[g]] = p.map(function(rA) {
return rA[N];
}), this.setFont(void 0, "bold"), V.push(this.getTextDimensions(U[g], { fontSize: this.internal.__cell__.table_font_size, scaleFactor: this.internal.scaleFactor }).w), Q = j[N], this.setFont(void 0, "normal"), y = 0; y < Q.length; y += 1) V.push(this.getTextDimensions(Q[y], { fontSize: this.internal.__cell__.table_font_size, scaleFactor: this.internal.scaleFactor }).w);
q[N] = Math.max.apply(null, V) + F + F, V = [];
}
if (G) {
var lA = {};
for (g = 0; g < v.length; g += 1) lA[v[g]] = {}, lA[v[g]].text = U[g], lA[v[g]].align = K[g];
var oA = o.call(this, lA, q);
z = v.map(function(rA) {
return new i(c, h, q[rA], oA, lA[rA].text, void 0, lA[rA].align);
}), this.setTableHeaderRow(z), this.printHeaderRow(1, !1);
}
var iA = d.reduce(function(rA, OA) {
return rA[OA.name] = OA.align, rA;
}, {});
for (g = 0; g < p.length; g += 1) {
"rowStart" in w && w.rowStart instanceof Function && w.rowStart({ row: g, data: p[g] }, this);
var k = o.call(this, p[g], q);
for (y = 0; y < v.length; y += 1) {
var W = p[g][v[y]];
"cellStart" in w && w.cellStart instanceof Function && w.cellStart({ row: g, col: y, data: W }, this), s.call(this, new i(c, h, q[v[y]], k, W, g + 2, iA[v[y]]));
}
}
return this.internal.__cell__.table_x = c, this.internal.__cell__.table_y = h, this;
};
var o = function(c, h) {
var p = this.internal.__cell__.padding, d = this.internal.__cell__.table_font_size, w = this.internal.scaleFactor;
return Object.keys(c).map(function(g) {
var Q = c[g];
return this.splitTextToSize(Q.hasOwnProperty("text") ? Q.text : Q, h[g] - p - p);
}, this).map(function(g) {
return this.getLineHeightFactor() * g.length * d / w + p + p;
}, this).reduce(function(g, Q) {
return Math.max(g, Q);
}, 0);
};
t.setTableHeaderRow = function(c) {
r.call(this), this.internal.__cell__.tableHeaderRow = c;
}, t.printHeaderRow = function(c, h) {
if (r.call(this), !this.internal.__cell__.tableHeaderRow) throw new Error("Property tableHeaderRow does not exist.");
var p;
if (A = !0, typeof this.internal.__cell__.headerFunction == "function") {
var d = this.internal.__cell__.headerFunction(this, this.internal.__cell__.pages);
this.internal.__cell__.lastCell = new i(d[0], d[1], d[2], d[3], void 0, -1);
}
this.setFont(void 0, "bold");
for (var w = [], g = 0; g < this.internal.__cell__.tableHeaderRow.length; g += 1) {
p = this.internal.__cell__.tableHeaderRow[g].clone(), h && (p.y = this.internal.__cell__.margins.top || 0, w.push(p)), p.lineNumber = c;
var Q = this.getTextColor();
this.setTextColor(this.internal.__cell__.headerTextColor), this.setFillColor(this.internal.__cell__.headerBackgroundColor), s.call(this, p), this.setTextColor(Q);
}
w.length > 0 && this.setTableHeaderRow(w), this.setFont(void 0, "normal"), A = !1;
};
}(ae.API);
var Ph = { italic: ["italic", "oblique", "normal"], oblique: ["oblique", "italic", "normal"], normal: ["normal", "oblique", "italic"] }, Oh = ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded"], jc = Mh(Oh), Kh = [100, 200, 300, 400, 500, 600, 700, 800, 900], sB = Mh(Kh);
function qc(t) {
var e = t.family.replace(/"|'/g, "").toLowerCase(), A = function(i) {
return Ph[i = i || "normal"] ? i : "normal";
}(t.style), r = function(i) {
if (!i) return 400;
if (typeof i == "number") return i >= 100 && i <= 900 && i % 100 == 0 ? i : 400;
if (/^\d00$/.test(i)) return parseInt(i);
switch (i) {
case "bold":
return 700;
case "normal":
default:
return 400;
}
}(t.weight), n = function(i) {
return typeof jc[i = i || "normal"] == "number" ? i : "normal";
}(t.stretch);
return { family: e, style: A, weight: r, stretch: n, src: t.src || [], ref: t.ref || { name: e, style: [n, A, r].join(" ") } };
}
function cf(t, e, A, r) {
var n;
for (n = A; n >= 0 && n < e.length; n += r) if (t[e[n]]) return t[e[n]];
for (n = A; n >= 0 && n < e.length; n -= r) if (t[e[n]]) return t[e[n]];
}
var oB = { "sans-serif": "helvetica", fixed: "courier", monospace: "courier", terminal: "courier", cursive: "times", fantasy: "times", serif: "times" }, uf = { caption: "times", icon: "times", menu: "times", "message-box": "times", "small-caption": "times", "status-bar": "times" };
function ff(t) {
return [t.stretch, t.style, t.weight, t.family].join(" ");
}
function lB(t, e, A) {
for (var r = (A = A || {}).defaultFontFamily || "times", n = Object.assign({}, oB, A.genericFontFamilies || {}), i = null, s = null, o = 0; o < e.length; ++o) if (n[(i = qc(e[o])).family] && (i.family = n[i.family]), t.hasOwnProperty(i.family)) {
s = t[i.family];
break;
}
if (!(s = s || t[r])) throw new Error("Could not find a font-family for the rule '" + ff(i) + "' and default family '" + r + "'.");
if (s = function(c, h) {
if (h[c]) return h[c];
var p = jc[c], d = p <= jc.normal ? -1 : 1, w = cf(h, Oh, p, d);
if (!w) throw new Error("Could not find a matching font-stretch value for " + c);
return w;
}(i.stretch, s), s = function(c, h) {
if (h[c]) return h[c];
for (var p = Ph[c], d = 0; d < p.length; ++d) if (h[p[d]]) return h[p[d]];
throw new Error("Could not find a matching font-style for " + c);
}(i.style, s), !(s = function(c, h) {
if (h[c]) return h[c];
if (c === 400 && h[500]) return h[500];
if (c === 500 && h[400]) return h[400];
var p = sB[c], d = cf(h, Kh, p, c < 400 ? -1 : 1);
if (!d) throw new Error("Could not find a matching font-weight for value " + c);
return d;
}(i.weight, s))) throw new Error("Failed to resolve a font for the rule '" + ff(i) + "'.");
return s;
}
function hf(t) {
return t.trimLeft();
}
function cB(t, e) {
for (var A = 0; A < t.length; ) {
if (t.charAt(A) === e) return [t.substring(0, A), t.substring(A + 1)];
A += 1;
}
return null;
}
function uB(t) {
var e = t.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);
return e === null ? null : [e[0], t.substring(e[0].length)];
}
var so, df, gf, uc = ["times"];
(function(t) {
var e, A, r, n, i, s, o, c, h, p = function(L) {
return L = L || {}, this.isStrokeTransparent = L.isStrokeTransparent || !1, this.strokeOpacity = L.strokeOpacity || 1, this.strokeStyle = L.strokeStyle || "#000000", this.fillStyle = L.fillStyle || "#000000", this.isFillTransparent = L.isFillTransparent || !1, this.fillOpacity = L.fillOpacity || 1, this.font = L.font || "10px sans-serif", this.textBaseline = L.textBaseline || "alphabetic", this.textAlign = L.textAlign || "left", this.lineWidth = L.lineWidth || 1, this.lineJoin = L.lineJoin || "miter", this.lineCap = L.lineCap || "butt", this.path = L.path || [], this.transform = L.transform !== void 0 ? L.transform.clone() : new c(), this.globalCompositeOperation = L.globalCompositeOperation || "normal", this.globalAlpha = L.globalAlpha || 1, this.clip_path = L.clip_path || [], this.currentPoint = L.currentPoint || new s(), this.miterLimit = L.miterLimit || 10, this.lastPoint = L.lastPoint || new s(), this.lineDashOffset = L.lineDashOffset || 0, this.lineDash = L.lineDash || [], this.margin = L.margin || [0, 0, 0, 0], this.prevPageLastElemOffset = L.prevPageLastElemOffset || 0, this.ignoreClearRect = typeof L.ignoreClearRect != "boolean" || L.ignoreClearRect, this;
};
t.events.push(["initialized", function() {
this.context2d = new d(this), e = this.internal.f2, A = this.internal.getCoordinateString, r = this.internal.getVerticalCoordinateString, n = this.internal.getHorizontalCoordinate, i = this.internal.getVerticalCoordinate, s = this.internal.Point, o = this.internal.Rectangle, c = this.internal.Matrix, h = new p();
}]);
var d = function(L) {
Object.defineProperty(this, "canvas", { get: function() {
return { parentNode: !1, style: !1 };
} });
var M = L;
Object.defineProperty(this, "pdf", { get: function() {
return M;
} });
var R = !1;
Object.defineProperty(this, "pageWrapXEnabled", { get: function() {
return R;
}, set: function(wA) {
R = !!wA;
} });
var J = !1;
Object.defineProperty(this, "pageWrapYEnabled", { get: function() {
return J;
}, set: function(wA) {
J = !!wA;
} });
var eA = 0;
Object.defineProperty(this, "posX", { get: function() {
return eA;
}, set: function(wA) {
isNaN(wA) || (eA = wA);
} });
var uA = 0;
Object.defineProperty(this, "posY", { get: function() {
return uA;
}, set: function(wA) {
isNaN(wA) || (uA = wA);
} }), Object.defineProperty(this, "margin", { get: function() {
return h.margin;
}, set: function(wA) {
var D;
typeof wA == "number" ? D = [wA, wA, wA, wA] : ((D = new Array(4))[0] = wA[0], D[1] = wA.length >= 2 ? wA[1] : D[0], D[2] = wA.length >= 3 ? wA[2] : D[0], D[3] = wA.length >= 4 ? wA[3] : D[1]), h.margin = D;
} });
var dA = !1;
Object.defineProperty(this, "autoPaging", { get: function() {
return dA;
}, set: function(wA) {
dA = wA;
} });
var gA = 0;
Object.defineProperty(this, "lastBreak", { get: function() {
return gA;
}, set: function(wA) {
gA = wA;
} });
var MA = [];
Object.defineProperty(this, "pageBreaks", { get: function() {
return MA;
}, set: function(wA) {
MA = wA;
} }), Object.defineProperty(this, "ctx", { get: function() {
return h;
}, set: function(wA) {
wA instanceof p && (h = wA);
} }), Object.defineProperty(this, "path", { get: function() {
return h.path;
}, set: function(wA) {
h.path = wA;
} });
var NA = [];
Object.defineProperty(this, "ctxStack", { get: function() {
return NA;
}, set: function(wA) {
NA = wA;
} }), Object.defineProperty(this, "fillStyle", { get: function() {
return this.ctx.fillStyle;
}, set: function(wA) {
var D;
D = w(wA), this.ctx.fillStyle = D.style, this.ctx.isFillTransparent = D.a === 0, this.ctx.fillOpacity = D.a, this.pdf.setFillColor(D.r, D.g, D.b, { a: D.a }), this.pdf.setTextColor(D.r, D.g, D.b, { a: D.a });
} }), Object.defineProperty(this, "strokeStyle", { get: function() {
return this.ctx.strokeStyle;
}, set: function(wA) {
var D = w(wA);
this.ctx.strokeStyle = D.style, this.ctx.isStrokeTransparent = D.a === 0, this.ctx.strokeOpacity = D.a, D.a === 0 ? this.pdf.setDrawColor(255, 255, 255) : (D.a, this.pdf.setDrawColor(D.r, D.g, D.b));
} }), Object.defineProperty(this, "lineCap", { get: function() {
return this.ctx.lineCap;
}, set: function(wA) {
["butt", "round", "square"].indexOf(wA) !== -1 && (this.ctx.lineCap = wA, this.pdf.setLineCap(wA));
} }), Object.defineProperty(this, "lineWidth", { get: function() {
return this.ctx.lineWidth;
}, set: function(wA) {
isNaN(wA) || (this.ctx.lineWidth = wA, this.pdf.setLineWidth(wA));
} }), Object.defineProperty(this, "lineJoin", { get: function() {
return this.ctx.lineJoin;
}, set: function(wA) {
["bevel", "round", "miter"].indexOf(wA) !== -1 && (this.ctx.lineJoin = wA, this.pdf.setLineJoin(wA));
} }), Object.defineProperty(this, "miterLimit", { get: function() {
return this.ctx.miterLimit;
}, set: function(wA) {
isNaN(wA) || (this.ctx.miterLimit = wA, this.pdf.setMiterLimit(wA));
} }), Object.defineProperty(this, "textBaseline", { get: function() {
return this.ctx.textBaseline;
}, set: function(wA) {
this.ctx.textBaseline = wA;
} }), Object.defineProperty(this, "textAlign", { get: function() {
return this.ctx.textAlign;
}, set: function(wA) {
["right", "end", "center", "left", "start"].indexOf(wA) !== -1 && (this.ctx.textAlign = wA);
} });
var RA = null;
function GA(wA, D) {
if (RA === null) {
var $ = function(BA) {
var sA = [];
return Object.keys(BA).forEach(function(pA) {
BA[pA].forEach(function(FA) {
var UA = null;
switch (FA) {
case "bold":
UA = { family: pA, weight: "bold" };
break;
case "italic":
UA = { family: pA, style: "italic" };
break;
case "bolditalic":
UA = { family: pA, weight: "bold", style: "italic" };
break;
case "":
case "normal":
UA = { family: pA };
}
UA !== null && (UA.ref = { name: pA, style: FA }, sA.push(UA));
});
}), sA;
}(wA.getFontList());
RA = function(BA) {
for (var sA = {}, pA = 0; pA < BA.length; ++pA) {
var FA = qc(BA[pA]), UA = FA.family, SA = FA.stretch, QA = FA.style, yA = FA.weight;
sA[UA] = sA[UA] || {}, sA[UA][SA] = sA[UA][SA] || {}, sA[UA][SA][QA] = sA[UA][SA][QA] || {}, sA[UA][SA][QA][yA] = FA;
}
return sA;
}($.concat(D));
}
return RA;
}
var ee = null;
Object.defineProperty(this, "fontFaces", { get: function() {
return ee;
}, set: function(wA) {
RA = null, ee = wA;
} }), Object.defineProperty(this, "font", { get: function() {
return this.ctx.font;
}, set: function(wA) {
var D;
if (this.ctx.font = wA, (D = /^\s*(?=(?:(?:[-a-z]+\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\1|\2|\3)\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\d]+(?:\%|in|[cem]m|ex|p[ctx]))(?:\s*\/\s*(normal|[.\d]+(?:\%|in|[cem]m|ex|p[ctx])))?\s*([-_,\"\'\sa-z]+?)\s*$/i.exec(wA)) !== null) {
var $ = D[1];
D[2];
var BA = D[3], sA = D[4];
D[5];
var pA = D[6], FA = /^([.\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i.exec(sA)[2];
sA = Math.floor(FA === "px" ? parseFloat(sA) * this.pdf.internal.scaleFactor : FA === "em" ? parseFloat(sA) * this.pdf.getFontSize() : parseFloat(sA) * this.pdf.internal.scaleFactor), this.pdf.setFontSize(sA);
var UA = function(YA) {
var ne, VA, Ve = [], mA = YA.trim();
if (mA === "") return uc;
if (mA in uf) return [uf[mA]];
for (; mA !== ""; ) {
switch (VA = null, ne = (mA = hf(mA)).charAt(0)) {
case '"':
case "'":
VA = cB(mA.substring(1), ne);
break;
default:
VA = uB(mA);
}
if (VA === null || (Ve.push(VA[0]), (mA = hf(VA[1])) !== "" && mA.charAt(0) !== ",")) return uc;
mA = mA.replace(/^,/, "");
}
return Ve;
}(pA);
if (this.fontFaces) {
var SA = lB(GA(this.pdf, this.fontFaces), UA.map(function(YA) {
return { family: YA, stretch: "normal", weight: BA, style: $ };
}));
this.pdf.setFont(SA.ref.name, SA.ref.style);
} else {
var QA = "";
(BA === "bold" || parseInt(BA, 10) >= 700 || $ === "bold") && (QA = "bold"), $ === "italic" && (QA += "italic"), QA.length === 0 && (QA = "normal");
for (var yA = "", PA = { arial: "Helvetica", Arial: "Helvetica", verdana: "Helvetica", Verdana: "Helvetica", helvetica: "Helvetica", Helvetica: "Helvetica", "sans-serif": "Helvetica", fixed: "Courier", monospace: "Courier", terminal: "Courier", cursive: "Times", fantasy: "Times", serif: "Times" }, ZA = 0; ZA < UA.length; ZA++) {
if (this.pdf.internal.getFont(UA[ZA], QA, { noFallback: !0, disableWarning: !0 }) !== void 0) {
yA = UA[ZA];
break;
}
if (QA === "bolditalic" && this.pdf.internal.getFont(UA[ZA], "bold", { noFallback: !0, disableWarning: !0 }) !== void 0) yA = UA[ZA], QA = "bold";
else if (this.pdf.internal.getFont(UA[ZA], "normal", { noFallback: !0, disableWarning: !0 }) !== void 0) {
yA = UA[ZA], QA = "normal";
break;
}
}
if (yA === "") {
for (var ue = 0; ue < UA.length; ue++) if (PA[UA[ue]]) {
yA = PA[UA[ue]];
break;
}
}
yA = yA === "" ? "Times" : yA, this.pdf.setFont(yA, QA);
}
}
} }), Object.defineProperty(this, "globalCompositeOperation", { get: function() {
return this.ctx.globalCompositeOperation;
}, set: function(wA) {
this.ctx.globalCompositeOperation = wA;
} }), Object.defineProperty(this, "globalAlpha", { get: function() {
return this.ctx.globalAlpha;
}, set: function(wA) {
this.ctx.globalAlpha = wA;
} }), Object.defineProperty(this, "lineDashOffset", { get: function() {
return this.ctx.lineDashOffset;
}, set: function(wA) {
this.ctx.lineDashOffset = wA, OA.call(this);
} }), Object.defineProperty(this, "lineDash", { get: function() {
return this.ctx.lineDash;
}, set: function(wA) {
this.ctx.lineDash = wA, OA.call(this);
} }), Object.defineProperty(this, "ignoreClearRect", { get: function() {
return this.ctx.ignoreClearRect;
}, set: function(wA) {
this.ctx.ignoreClearRect = !!wA;
} });
};
d.prototype.setLineDash = function(L) {
this.lineDash = L;
}, d.prototype.getLineDash = function() {
return this.lineDash.length % 2 ? this.lineDash.concat(this.lineDash) : this.lineDash.slice();
}, d.prototype.fill = function() {
j.call(this, "fill", !1);
}, d.prototype.stroke = function() {
j.call(this, "stroke", !1);
}, d.prototype.beginPath = function() {
this.path = [{ type: "begin" }];
}, d.prototype.moveTo = function(L, M) {
if (isNaN(L) || isNaN(M)) throw _e.error("jsPDF.context2d.moveTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.moveTo");
var R = this.ctx.transform.applyToPoint(new s(L, M));
this.path.push({ type: "mt", x: R.x, y: R.y }), this.ctx.lastPoint = new s(L, M);
}, d.prototype.closePath = function() {
var L = new s(0, 0), M = 0;
for (M = this.path.length - 1; M !== -1; M--) if (this.path[M].type === "begin" && Se(this.path[M + 1]) === "object" && typeof this.path[M + 1].x == "number") {
L = new s(this.path[M + 1].x, this.path[M + 1].y);
break;
}
this.path.push({ type: "close" }), this.ctx.lastPoint = new s(L.x, L.y);
}, d.prototype.lineTo = function(L, M) {
if (isNaN(L) || isNaN(M)) throw _e.error("jsPDF.context2d.lineTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.lineTo");
var R = this.ctx.transform.applyToPoint(new s(L, M));
this.path.push({ type: "lt", x: R.x, y: R.y }), this.ctx.lastPoint = new s(R.x, R.y);
}, d.prototype.clip = function() {
this.ctx.clip_path = JSON.parse(JSON.stringify(this.path)), j.call(this, null, !0);
}, d.prototype.quadraticCurveTo = function(L, M, R, J) {
if (isNaN(R) || isNaN(J) || isNaN(L) || isNaN(M)) throw _e.error("jsPDF.context2d.quadraticCurveTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.quadraticCurveTo");
var eA = this.ctx.transform.applyToPoint(new s(R, J)), uA = this.ctx.transform.applyToPoint(new s(L, M));
this.path.push({ type: "qct", x1: uA.x, y1: uA.y, x: eA.x, y: eA.y }), this.ctx.lastPoint = new s(eA.x, eA.y);
}, d.prototype.bezierCurveTo = function(L, M, R, J, eA, uA) {
if (isNaN(eA) || isNaN(uA) || isNaN(L) || isNaN(M) || isNaN(R) || isNaN(J)) throw _e.error("jsPDF.context2d.bezierCurveTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.bezierCurveTo");
var dA = this.ctx.transform.applyToPoint(new s(eA, uA)), gA = this.ctx.transform.applyToPoint(new s(L, M)), MA = this.ctx.transform.applyToPoint(new s(R, J));
this.path.push({ type: "bct", x1: gA.x, y1: gA.y, x2: MA.x, y2: MA.y, x: dA.x, y: dA.y }), this.ctx.lastPoint = new s(dA.x, dA.y);
}, d.prototype.arc = function(L, M, R, J, eA, uA) {
if (isNaN(L) || isNaN(M) || isNaN(R) || isNaN(J) || isNaN(eA)) throw _e.error("jsPDF.context2d.arc: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.arc");
if (uA = !!uA, !this.ctx.transform.isIdentity) {
var dA = this.ctx.transform.applyToPoint(new s(L, M));
L = dA.x, M = dA.y;
var gA = this.ctx.transform.applyToPoint(new s(0, R)), MA = this.ctx.transform.applyToPoint(new s(0, 0));
R = Math.sqrt(Math.pow(gA.x - MA.x, 2) + Math.pow(gA.y - MA.y, 2));
}
Math.abs(eA - J) >= 2 * Math.PI && (J = 0, eA = 2 * Math.PI), this.path.push({ type: "arc", x: L, y: M, radius: R, startAngle: J, endAngle: eA, counterclockwise: uA });
}, d.prototype.arcTo = function(L, M, R, J, eA) {
throw new Error("arcTo not implemented.");
}, d.prototype.rect = function(L, M, R, J) {
if (isNaN(L) || isNaN(M) || isNaN(R) || isNaN(J)) throw _e.error("jsPDF.context2d.rect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.rect");
this.moveTo(L, M), this.lineTo(L + R, M), this.lineTo(L + R, M + J), this.lineTo(L, M + J), this.lineTo(L, M), this.lineTo(L + R, M), this.lineTo(L, M);
}, d.prototype.fillRect = function(L, M, R, J) {
if (isNaN(L) || isNaN(M) || isNaN(R) || isNaN(J)) throw _e.error("jsPDF.context2d.fillRect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.fillRect");
if (!g.call(this)) {
var eA = {};
this.lineCap !== "butt" && (eA.lineCap = this.lineCap, this.lineCap = "butt"), this.lineJoin !== "miter" && (eA.lineJoin = this.lineJoin, this.lineJoin = "miter"), this.beginPath(), this.rect(L, M, R, J), this.fill(), eA.hasOwnProperty("lineCap") && (this.lineCap = eA.lineCap), eA.hasOwnProperty("lineJoin") && (this.lineJoin = eA.lineJoin);
}
}, d.prototype.strokeRect = function(L, M, R, J) {
if (isNaN(L) || isNaN(M) || isNaN(R) || isNaN(J)) throw _e.error("jsPDF.context2d.strokeRect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.strokeRect");
Q.call(this) || (this.beginPath(), this.rect(L, M, R, J), this.stroke());
}, d.prototype.clearRect = function(L, M, R, J) {
if (isNaN(L) || isNaN(M) || isNaN(R) || isNaN(J)) throw _e.error("jsPDF.context2d.clearRect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.clearRect");
this.ignoreClearRect || (this.fillStyle = "#ffffff", this.fillRect(L, M, R, J));
}, d.prototype.save = function(L) {
L = typeof L != "boolean" || L;
for (var M = this.pdf.internal.getCurrentPageInfo().pageNumber, R = 0; R < this.pdf.internal.getNumberOfPages(); R++) this.pdf.setPage(R + 1), this.pdf.internal.out("q");
if (this.pdf.setPage(M), L) {
this.ctx.fontSize = this.pdf.internal.getFontSize();
var J = new p(this.ctx);
this.ctxStack.push(this.ctx), this.ctx = J;
}
}, d.prototype.restore = function(L) {
L = typeof L != "boolean" || L;
for (var M = this.pdf.internal.getCurrentPageInfo().pageNumber, R = 0; R < this.pdf.internal.getNumberOfPages(); R++) this.pdf.setPage(R + 1), this.pdf.internal.out("Q");
this.pdf.setPage(M), L && this.ctxStack.length !== 0 && (this.ctx = this.ctxStack.pop(), this.fillStyle = this.ctx.fillStyle, this.strokeStyle = this.ctx.strokeStyle, this.font = this.ctx.font, this.lineCap = this.ctx.lineCap, this.lineWidth = this.ctx.lineWidth, this.lineJoin = this.ctx.lineJoin, this.lineDash = this.ctx.lineDash, this.lineDashOffset = this.ctx.lineDashOffset);
}, d.prototype.toDataURL = function() {
throw new Error("toDataUrl not implemented.");
};
var w = function(L) {
var M, R, J, eA;
if (L.isCanvasGradient === !0 && (L = L.getColor()), !L) return { r: 0, g: 0, b: 0, a: 0, style: L };
if (/transparent|rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*0+\s*\)/.test(L)) M = 0, R = 0, J = 0, eA = 0;
else {
var uA = /rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/.exec(L);
if (uA !== null) M = parseInt(uA[1]), R = parseInt(uA[2]), J = parseInt(uA[3]), eA = 1;
else if ((uA = /rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d.]+)\s*\)/.exec(L)) !== null) M = parseInt(uA[1]), R = parseInt(uA[2]), J = parseInt(uA[3]), eA = parseFloat(uA[4]);
else {
if (eA = 1, typeof L == "string" && L.charAt(0) !== "#") {
var dA = new Hh(L);
L = dA.ok ? dA.toHex() : "#000000";
}
L.length === 4 ? (M = L.substring(1, 2), M += M, R = L.substring(2, 3), R += R, J = L.substring(3, 4), J += J) : (M = L.substring(1, 3), R = L.substring(3, 5), J = L.substring(5, 7)), M = parseInt(M, 16), R = parseInt(R, 16), J = parseInt(J, 16);
}
}
return { r: M, g: R, b: J, a: eA, style: L };
}, g = function() {
return this.ctx.isFillTransparent || this.globalAlpha == 0;
}, Q = function() {
return !!(this.ctx.isStrokeTransparent || this.globalAlpha == 0);
};
d.prototype.fillText = function(L, M, R, J) {
if (isNaN(M) || isNaN(R) || typeof L != "string") throw _e.error("jsPDF.context2d.fillText: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.fillText");
if (J = isNaN(J) ? void 0 : J, !g.call(this)) {
var eA = k(this.ctx.transform.rotation), uA = this.ctx.transform.scaleX;
F.call(this, { text: L, x: M, y: R, scale: uA, angle: eA, align: this.textAlign, maxWidth: J });
}
}, d.prototype.strokeText = function(L, M, R, J) {
if (isNaN(M) || isNaN(R) || typeof L != "string") throw _e.error("jsPDF.context2d.strokeText: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.strokeText");
if (!Q.call(this)) {
J = isNaN(J) ? void 0 : J;
var eA = k(this.ctx.transform.rotation), uA = this.ctx.transform.scaleX;
F.call(this, { text: L, x: M, y: R, scale: uA, renderingMode: "stroke", angle: eA, align: this.textAlign, maxWidth: J });
}
}, d.prototype.measureText = function(L) {
if (typeof L != "string") throw _e.error("jsPDF.context2d.measureText: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.measureText");
var M = this.pdf, R = this.pdf.internal.scaleFactor, J = M.internal.getFontSize(), eA = M.getStringUnitWidth(L) * J / M.internal.scaleFactor, uA = function(dA) {
var gA = (dA = dA || {}).width || 0;
return Object.defineProperty(this, "width", { get: function() {
return gA;
} }), this;
};
return new uA({ width: eA *= Math.round(96 * R / 72 * 1e4) / 1e4 });
}, d.prototype.scale = function(L, M) {
if (isNaN(L) || isNaN(M)) throw _e.error("jsPDF.context2d.scale: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.scale");
var R = new c(L, 0, 0, M, 0, 0);
this.ctx.transform = this.ctx.transform.multiply(R);
}, d.prototype.rotate = function(L) {
if (isNaN(L)) throw _e.error("jsPDF.context2d.rotate: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.rotate");
var M = new c(Math.cos(L), Math.sin(L), -Math.sin(L), Math.cos(L), 0, 0);
this.ctx.transform = this.ctx.transform.multiply(M);
}, d.prototype.translate = function(L, M) {
if (isNaN(L) || isNaN(M)) throw _e.error("jsPDF.context2d.translate: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.translate");
var R = new c(1, 0, 0, 1, L, M);
this.ctx.transform = this.ctx.transform.multiply(R);
}, d.prototype.transform = function(L, M, R, J, eA, uA) {
if (isNaN(L) || isNaN(M) || isNaN(R) || isNaN(J) || isNaN(eA) || isNaN(uA)) throw _e.error("jsPDF.context2d.transform: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.transform");
var dA = new c(L, M, R, J, eA, uA);
this.ctx.transform = this.ctx.transform.multiply(dA);
}, d.prototype.setTransform = function(L, M, R, J, eA, uA) {
L = isNaN(L) ? 1 : L, M = isNaN(M) ? 0 : M, R = isNaN(R) ? 0 : R, J = isNaN(J) ? 1 : J, eA = isNaN(eA) ? 0 : eA, uA = isNaN(uA) ? 0 : uA, this.ctx.transform = new c(L, M, R, J, eA, uA);
};
var y = function() {
return this.margin[0] > 0 || this.margin[1] > 0 || this.margin[2] > 0 || this.margin[3] > 0;
};
d.prototype.drawImage = function(L, M, R, J, eA, uA, dA, gA, MA) {
var NA = this.pdf.getImageProperties(L), RA = 1, GA = 1, ee = 1, wA = 1;
J !== void 0 && gA !== void 0 && (ee = gA / J, wA = MA / eA, RA = NA.width / J * gA / J, GA = NA.height / eA * MA / eA), uA === void 0 && (uA = M, dA = R, M = 0, R = 0), J !== void 0 && gA === void 0 && (gA = J, MA = eA), J === void 0 && gA === void 0 && (gA = NA.width, MA = NA.height);
for (var D, $ = this.ctx.transform.decompose(), BA = k($.rotate.shx), sA = new c(), pA = (sA = (sA = (sA = sA.multiply($.translate)).multiply($.skew)).multiply($.scale)).applyToRectangle(new o(uA - M * ee, dA - R * wA, J * RA, eA * GA)), FA = N.call(this, pA), UA = [], SA = 0; SA < FA.length; SA += 1) UA.indexOf(FA[SA]) === -1 && UA.push(FA[SA]);
if (K(UA), this.autoPaging) for (var QA = UA[0], yA = UA[UA.length - 1], PA = QA; PA < yA + 1; PA++) {
this.pdf.setPage(PA);
var ZA = this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1], ue = PA === 1 ? this.posY + this.margin[0] : this.margin[0], YA = this.pdf.internal.pageSize.height - this.posY - this.margin[0] - this.margin[2], ne = this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2], VA = PA === 1 ? 0 : YA + (PA - 2) * ne;
if (this.ctx.clip_path.length !== 0) {
var Ve = this.path;
D = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = U(D, this.posX + this.margin[3], -VA + ue + this.ctx.prevPageLastElemOffset), q.call(this, "fill", !0), this.path = Ve;
}
var mA = JSON.parse(JSON.stringify(pA));
mA = U([mA], this.posX + this.margin[3], -VA + ue + this.ctx.prevPageLastElemOffset)[0];
var TA = (PA > QA || PA < yA) && y.call(this);
TA && (this.pdf.saveGraphicsState(), this.pdf.rect(this.margin[3], this.margin[0], ZA, ne, null).clip().discardPath()), this.pdf.addImage(L, "JPEG", mA.x, mA.y, mA.w, mA.h, null, null, BA), TA && this.pdf.restoreGraphicsState();
}
else this.pdf.addImage(L, "JPEG", pA.x, pA.y, pA.w, pA.h, null, null, BA);
};
var N = function(L, M, R) {
var J = [];
M = M || this.pdf.internal.pageSize.width, R = R || this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];
var eA = this.posY + this.ctx.prevPageLastElemOffset;
switch (L.type) {
default:
case "mt":
case "lt":
J.push(Math.floor((L.y + eA) / R) + 1);
break;
case "arc":
J.push(Math.floor((L.y + eA - L.radius) / R) + 1), J.push(Math.floor((L.y + eA + L.radius) / R) + 1);
break;
case "qct":
var uA = W(this.ctx.lastPoint.x, this.ctx.lastPoint.y, L.x1, L.y1, L.x, L.y);
J.push(Math.floor((uA.y + eA) / R) + 1), J.push(Math.floor((uA.y + uA.h + eA) / R) + 1);
break;
case "bct":
var dA = rA(this.ctx.lastPoint.x, this.ctx.lastPoint.y, L.x1, L.y1, L.x2, L.y2, L.x, L.y);
J.push(Math.floor((dA.y + eA) / R) + 1), J.push(Math.floor((dA.y + dA.h + eA) / R) + 1);
break;
case "rect":
J.push(Math.floor((L.y + eA) / R) + 1), J.push(Math.floor((L.y + L.h + eA) / R) + 1);
}
for (var gA = 0; gA < J.length; gA += 1) for (; this.pdf.internal.getNumberOfPages() < J[gA]; ) v.call(this);
return J;
}, v = function() {
var L = this.fillStyle, M = this.strokeStyle, R = this.font, J = this.lineCap, eA = this.lineWidth, uA = this.lineJoin;
this.pdf.addPage(), this.fillStyle = L, this.strokeStyle = M, this.font = R, this.lineCap = J, this.lineWidth = eA, this.lineJoin = uA;
}, U = function(L, M, R) {
for (var J = 0; J < L.length; J++) switch (L[J].type) {
case "bct":
L[J].x2 += M, L[J].y2 += R;
case "qct":
L[J].x1 += M, L[J].y1 += R;
case "mt":
case "lt":
case "arc":
default:
L[J].x += M, L[J].y += R;
}
return L;
}, K = function(L) {
return L.sort(function(M, R) {
return M - R;
});
}, j = function(L, M) {
for (var R, J, eA = this.fillStyle, uA = this.strokeStyle, dA = this.lineCap, gA = this.lineWidth, MA = Math.abs(gA * this.ctx.transform.scaleX), NA = this.lineJoin, RA = JSON.parse(JSON.stringify(this.path)), GA = JSON.parse(JSON.stringify(this.path)), ee = [], wA = 0; wA < GA.length; wA++) if (GA[wA].x !== void 0) for (var D = N.call(this, GA[wA]), $ = 0; $ < D.length; $ += 1) ee.indexOf(D[$]) === -1 && ee.push(D[$]);
for (var BA = 0; BA < ee.length; BA++) for (; this.pdf.internal.getNumberOfPages() < ee[BA]; ) v.call(this);
if (K(ee), this.autoPaging) for (var sA = ee[0], pA = ee[ee.length - 1], FA = sA; FA < pA + 1; FA++) {
this.pdf.setPage(FA), this.fillStyle = eA, this.strokeStyle = uA, this.lineCap = dA, this.lineWidth = MA, this.lineJoin = NA;
var UA = this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1], SA = FA === 1 ? this.posY + this.margin[0] : this.margin[0], QA = this.pdf.internal.pageSize.height - this.posY - this.margin[0] - this.margin[2], yA = this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2], PA = FA === 1 ? 0 : QA + (FA - 2) * yA;
if (this.ctx.clip_path.length !== 0) {
var ZA = this.path;
R = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = U(R, this.posX + this.margin[3], -PA + SA + this.ctx.prevPageLastElemOffset), q.call(this, L, !0), this.path = ZA;
}
if (J = JSON.parse(JSON.stringify(RA)), this.path = U(J, this.posX + this.margin[3], -PA + SA + this.ctx.prevPageLastElemOffset), M === !1 || FA === 0) {
var ue = (FA > sA || FA < pA) && y.call(this);
ue && (this.pdf.saveGraphicsState(), this.pdf.rect(this.margin[3], this.margin[0], UA, yA, null).clip().discardPath()), q.call(this, L, M), ue && this.pdf.restoreGraphicsState();
}
this.lineWidth = gA;
}
else this.lineWidth = MA, q.call(this, L, M), this.lineWidth = gA;
this.path = RA;
}, q = function(L, M) {
if ((L !== "stroke" || M || !Q.call(this)) && (L === "stroke" || M || !g.call(this))) {
for (var R, J, eA = [], uA = this.path, dA = 0; dA < uA.length; dA++) {
var gA = uA[dA];
switch (gA.type) {
case "begin":
eA.push({ begin: !0 });
break;
case "close":
eA.push({ close: !0 });
break;
case "mt":
eA.push({ start: gA, deltas: [], abs: [] });
break;
case "lt":
var MA = eA.length;
if (uA[dA - 1] && !isNaN(uA[dA - 1].x) && (R = [gA.x - uA[dA - 1].x, gA.y - uA[dA - 1].y], MA > 0)) {
for (; MA >= 0; MA--) if (eA[MA - 1].close !== !0 && eA[MA - 1].begin !== !0) {
eA[MA - 1].deltas.push(R), eA[MA - 1].abs.push(gA);
break;
}
}
break;
case "bct":
R = [gA.x1 - uA[dA - 1].x, gA.y1 - uA[dA - 1].y, gA.x2 - uA[dA - 1].x, gA.y2 - uA[dA - 1].y, gA.x - uA[dA - 1].x, gA.y - uA[dA - 1].y], eA[eA.length - 1].deltas.push(R);
break;
case "qct":
var NA = uA[dA - 1].x + 2 / 3 * (gA.x1 - uA[dA - 1].x), RA = uA[dA - 1].y + 2 / 3 * (gA.y1 - uA[dA - 1].y), GA = gA.x + 2 / 3 * (gA.x1 - gA.x), ee = gA.y + 2 / 3 * (gA.y1 - gA.y), wA = gA.x, D = gA.y;
R = [NA - uA[dA - 1].x, RA - uA[dA - 1].y, GA - uA[dA - 1].x, ee - uA[dA - 1].y, wA - uA[dA - 1].x, D - uA[dA - 1].y], eA[eA.length - 1].deltas.push(R);
break;
case "arc":
eA.push({ deltas: [], abs: [], arc: !0 }), Array.isArray(eA[eA.length - 1].abs) && eA[eA.length - 1].abs.push(gA);
}
}
J = M ? null : L === "stroke" ? "stroke" : "fill";
for (var $ = !1, BA = 0; BA < eA.length; BA++) if (eA[BA].arc) for (var sA = eA[BA].abs, pA = 0; pA < sA.length; pA++) {
var FA = sA[pA];
FA.type === "arc" ? H.call(this, FA.x, FA.y, FA.radius, FA.startAngle, FA.endAngle, FA.counterclockwise, void 0, M, !$) : _.call(this, FA.x, FA.y), $ = !0;
}
else if (eA[BA].close === !0) this.pdf.internal.out("h"), $ = !1;
else if (eA[BA].begin !== !0) {
var UA = eA[BA].start.x, SA = eA[BA].start.y;
P.call(this, eA[BA].deltas, UA, SA), $ = !0;
}
J && G.call(this, J), M && tA.call(this);
}
}, V = function(L) {
var M = this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor, R = M * (this.pdf.internal.getLineHeightFactor() - 1);
switch (this.ctx.textBaseline) {
case "bottom":
return L - R;
case "top":
return L + M - R;
case "hanging":
return L + M - 2 * R;
case "middle":
return L + M / 2 - R;
case "ideographic":
return L;
case "alphabetic":
default:
return L;
}
}, z = function(L) {
return L + this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor * (this.pdf.internal.getLineHeightFactor() - 1);
};
d.prototype.createLinearGradient = function() {
var L = function() {
};
return L.colorStops = [], L.addColorStop = function(M, R) {
this.colorStops.push([M, R]);
}, L.getColor = function() {
return this.colorStops.length === 0 ? "#000000" : this.colorStops[0][1];
}, L.isCanvasGradient = !0, L;
}, d.prototype.createPattern = function() {
return this.createLinearGradient();
}, d.prototype.createRadialGradient = function() {
return this.createLinearGradient();
};
var H = function(L, M, R, J, eA, uA, dA, gA, MA) {
for (var NA = oA.call(this, R, J, eA, uA), RA = 0; RA < NA.length; RA++) {
var GA = NA[RA];
RA === 0 && (MA ? x.call(this, GA.x1 + L, GA.y1 + M) : _.call(this, GA.x1 + L, GA.y1 + M)), lA.call(this, L, M, GA.x2, GA.y2, GA.x3, GA.y3, GA.x4, GA.y4);
}
gA ? tA.call(this) : G.call(this, dA);
}, G = function(L) {
switch (L) {
case "stroke":
this.pdf.internal.out("S");
break;
case "fill":
this.pdf.internal.out("f");
}
}, tA = function() {
this.pdf.clip(), this.pdf.discardPath();
}, x = function(L, M) {
this.pdf.internal.out(A(L) + " " + r(M) + " m");
}, F = function(L) {
var M;
switch (L.align) {
case "right":
case "end":
M = "right";
break;
case "center":
M = "center";
break;
case "left":
case "start":
default:
M = "left";
}
var R = this.pdf.getTextDimensions(L.text), J = V.call(this, L.y), eA = z.call(this, J) - R.h, uA = this.ctx.transform.applyToPoint(new s(L.x, J)), dA = this.ctx.transform.decompose(), gA = new c();
gA = (gA = (gA = gA.multiply(dA.translate)).multiply(dA.skew)).multiply(dA.scale);
for (var MA, NA, RA, GA = this.ctx.transform.applyToRectangle(new o(L.x, J, R.w, R.h)), ee = gA.applyToRectangle(new o(L.x, eA, R.w, R.h)), wA = N.call(this, ee), D = [], $ = 0; $ < wA.length; $ += 1) D.indexOf(wA[$]) === -1 && D.push(wA[$]);
if (K(D), this.autoPaging) for (var BA = D[0], sA = D[D.length - 1], pA = BA; pA < sA + 1; pA++) {
this.pdf.setPage(pA);
var FA = pA === 1 ? this.posY + this.margin[0] : this.margin[0], UA = this.pdf.internal.pageSize.height - this.posY - this.margin[0] - this.margin[2], SA = this.pdf.internal.pageSize.height - this.margin[2], QA = SA - this.margin[0], yA = this.pdf.internal.pageSize.width - this.margin[1], PA = yA - this.margin[3], ZA = pA === 1 ? 0 : UA + (pA - 2) * QA;
if (this.ctx.clip_path.length !== 0) {
var ue = this.path;
MA = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = U(MA, this.posX + this.margin[3], -1 * ZA + FA), q.call(this, "fill", !0), this.path = ue;
}
var YA = U([JSON.parse(JSON.stringify(ee))], this.posX + this.margin[3], -ZA + FA + this.ctx.prevPageLastElemOffset)[0];
L.scale >= 0.01 && (NA = this.pdf.internal.getFontSize(), this.pdf.setFontSize(NA * L.scale), RA = this.lineWidth, this.lineWidth = RA * L.scale);
var ne = this.autoPaging !== "text";
if (ne || YA.y + YA.h <= SA) {
if (ne || YA.y >= FA && YA.x <= yA) {
var VA = ne ? L.text : this.pdf.splitTextToSize(L.text, L.maxWidth || yA - YA.x)[0], Ve = U([JSON.parse(JSON.stringify(GA))], this.posX + this.margin[3], -ZA + FA + this.ctx.prevPageLastElemOffset)[0], mA = ne && (pA > BA || pA < sA) && y.call(this);
mA && (this.pdf.saveGraphicsState(), this.pdf.rect(this.margin[3], this.margin[0], PA, QA, null).clip().discardPath()), this.pdf.text(VA, Ve.x, Ve.y, { angle: L.angle, align: M, renderingMode: L.renderingMode }), mA && this.pdf.restoreGraphicsState();
}
} else YA.y < SA && (this.ctx.prevPageLastElemOffset += SA - YA.y);
L.scale >= 0.01 && (this.pdf.setFontSize(NA), this.lineWidth = RA);
}
else L.scale >= 0.01 && (NA = this.pdf.internal.getFontSize(), this.pdf.setFontSize(NA * L.scale), RA = this.lineWidth, this.lineWidth = RA * L.scale), this.pdf.text(L.text, uA.x + this.posX, uA.y + this.posY, { angle: L.angle, align: M, renderingMode: L.renderingMode, maxWidth: L.maxWidth }), L.scale >= 0.01 && (this.pdf.setFontSize(NA), this.lineWidth = RA);
}, _ = function(L, M, R, J) {
R = R || 0, J = J || 0, this.pdf.internal.out(A(L + R) + " " + r(M + J) + " l");
}, P = function(L, M, R) {
return this.pdf.lines(L, M, R, null, null);
}, lA = function(L, M, R, J, eA, uA, dA, gA) {
this.pdf.internal.out([e(n(R + L)), e(i(J + M)), e(n(eA + L)), e(i(uA + M)), e(n(dA + L)), e(i(gA + M)), "c"].join(" "));
}, oA = function(L, M, R, J) {
for (var eA = 2 * Math.PI, uA = Math.PI / 2; M > R; ) M -= eA;
var dA = Math.abs(R - M);
dA < eA && J && (dA = eA - dA);
for (var gA = [], MA = J ? -1 : 1, NA = M; dA > 1e-5; ) {
var RA = NA + MA * Math.min(dA, uA);
gA.push(iA.call(this, L, NA, RA)), dA -= Math.abs(RA - NA), NA = RA;
}
return gA;
}, iA = function(L, M, R) {
var J = (R - M) / 2, eA = L * Math.cos(J), uA = L * Math.sin(J), dA = eA, gA = -uA, MA = dA * dA + gA * gA, NA = MA + dA * eA + gA * uA, RA = 4 / 3 * (Math.sqrt(2 * MA * NA) - NA) / (dA * uA - gA * eA), GA = dA - RA * gA, ee = gA + RA * dA, wA = GA, D = -ee, $ = J + M, BA = Math.cos($), sA = Math.sin($);
return { x1: L * Math.cos(M), y1: L * Math.sin(M), x2: GA * BA - ee * sA, y2: GA * sA + ee * BA, x3: wA * BA - D * sA, y3: wA * sA + D * BA, x4: L * Math.cos(R), y4: L * Math.sin(R) };
}, k = function(L) {
return 180 * L / Math.PI;
}, W = function(L, M, R, J, eA, uA) {
var dA = L + 0.5 * (R - L), gA = M + 0.5 * (J - M), MA = eA + 0.5 * (R - eA), NA = uA + 0.5 * (J - uA), RA = Math.min(L, eA, dA, MA), GA = Math.max(L, eA, dA, MA), ee = Math.min(M, uA, gA, NA), wA = Math.max(M, uA, gA, NA);
return new o(RA, ee, GA - RA, wA - ee);
}, rA = function(L, M, R, J, eA, uA, dA, gA) {
var MA, NA, RA, GA, ee, wA, D, $, BA, sA, pA, FA, UA, SA, QA = R - L, yA = J - M, PA = eA - R, ZA = uA - J, ue = dA - eA, YA = gA - uA;
for (NA = 0; NA < 41; NA++) BA = (D = (RA = L + (MA = NA / 40) * QA) + MA * ((ee = R + MA * PA) - RA)) + MA * (ee + MA * (eA + MA * ue - ee) - D), sA = ($ = (GA = M + MA * yA) + MA * ((wA = J + MA * ZA) - GA)) + MA * (wA + MA * (uA + MA * YA - wA) - $), NA == 0 ? (pA = BA, FA = sA, UA = BA, SA = sA) : (pA = Math.min(pA, BA), FA = Math.min(FA, sA), UA = Math.max(UA, BA), SA = Math.max(SA, sA));
return new o(Math.round(pA), Math.round(FA), Math.round(UA - pA), Math.round(SA - FA));
}, OA = function() {
if (this.prevLineDash || this.ctx.lineDash.length || this.ctx.lineDashOffset) {
var L, M, R = (L = this.ctx.lineDash, M = this.ctx.lineDashOffset, JSON.stringify({ lineDash: L, lineDashOffset: M }));
this.prevLineDash !== R && (this.pdf.setLineDash(this.ctx.lineDash, this.ctx.lineDashOffset), this.prevLineDash = R);
}
};
})(ae.API), /**
* @license
* jsPDF filters PlugIn
* Copyright (c) 2014 Aras Abbasi
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
function(t) {
var e = function(i) {
var s, o, c, h, p, d, w, g, Q, y;
for (o = [], c = 0, h = (i += s = "\0\0\0\0".slice(i.length % 4 || 4)).length; h > c; c += 4) (p = (i.charCodeAt(c) << 24) + (i.charCodeAt(c + 1) << 16) + (i.charCodeAt(c + 2) << 8) + i.charCodeAt(c + 3)) !== 0 ? (d = (p = ((p = ((p = ((p = (p - (y = p % 85)) / 85) - (Q = p % 85)) / 85) - (g = p % 85)) / 85) - (w = p % 85)) / 85) % 85, o.push(d + 33, w + 33, g + 33, Q + 33, y + 33)) : o.push(122);
return function(N, v) {
for (var U = v; U > 0; U--) N.pop();
}(o, s.length), String.fromCharCode.apply(String, o) + "~>";
}, A = function(i) {
var s, o, c, h, p, d = String, w = "length", g = 255, Q = "charCodeAt", y = "slice", N = "replace";
for (i[y](-2), i = i[y](0, -2)[N](/\s/g, "")[N]("z", "!!!!!"), c = [], h = 0, p = (i += s = "uuuuu"[y](i[w] % 5 || 5))[w]; p > h; h += 5) o = 52200625 * (i[Q](h) - 33) + 614125 * (i[Q](h + 1) - 33) + 7225 * (i[Q](h + 2) - 33) + 85 * (i[Q](h + 3) - 33) + (i[Q](h + 4) - 33), c.push(g & o >> 24, g & o >> 16, g & o >> 8, g & o);
return function(v, U) {
for (var K = U; K > 0; K--) v.pop();
}(c, s[w]), d.fromCharCode.apply(d, c);
}, r = function(i) {
var s = new RegExp(/^([0-9A-Fa-f]{2})+$/);
if ((i = i.replace(/\s/g, "")).indexOf(">") !== -1 && (i = i.substr(0, i.indexOf(">"))), i.length % 2 && (i += "0"), s.test(i) === !1) return "";
for (var o = "", c = 0; c < i.length; c += 2) o += String.fromCharCode("0x" + (i[c] + i[c + 1]));
return o;
}, n = function(i) {
for (var s = new Uint8Array(i.length), o = i.length; o--; ) s[o] = i.charCodeAt(o);
return i = (s = Oc(s)).reduce(function(c, h) {
return c + String.fromCharCode(h);
}, "");
};
t.processDataByFilters = function(i, s) {
var o = 0, c = i || "", h = [];
for (typeof (s = s || []) == "string" && (s = [s]), o = 0; o < s.length; o += 1) switch (s[o]) {
case "ASCII85Decode":
case "/ASCII85Decode":
c = A(c), h.push("/ASCII85Encode");
break;
case "ASCII85Encode":
case "/ASCII85Encode":
c = e(c), h.push("/ASCII85Decode");
break;
case "ASCIIHexDecode":
case "/ASCIIHexDecode":
c = r(c), h.push("/ASCIIHexEncode");
break;
case "ASCIIHexEncode":
case "/ASCIIHexEncode":
c = c.split("").map(function(p) {
return ("0" + p.charCodeAt().toString(16)).slice(-2);
}).join("") + ">", h.push("/ASCIIHexDecode");
break;
case "FlateEncode":
case "/FlateEncode":
c = n(c), h.push("/FlateDecode");
break;
default:
throw new Error('The filter: "' + s[o] + '" is not implemented');
}
return { data: c, reverseChain: h.reverse().join(" ") };
};
}(ae.API), /**
* @license
* jsPDF fileloading PlugIn
* Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
function(t) {
t.loadFile = function(e, A, r) {
return function(n, i, s) {
i = i !== !1, s = typeof s == "function" ? s : function() {
};
var o = void 0;
try {
o = function(c, h, p) {
var d = new XMLHttpRequest(), w = 0, g = function(Q) {
var y = Q.length, N = [], v = String.fromCharCode;
for (w = 0; w < y; w += 1) N.push(v(255 & Q.charCodeAt(w)));
return N.join("");
};
if (d.open("GET", c, !h), d.overrideMimeType("text/plain; charset=x-user-defined"), h === !1 && (d.onload = function() {
d.status === 200 ? p(g(this.responseText)) : p(void 0);
}), d.send(null), h && d.status === 200) return g(d.responseText);
}(n, i, s);
} catch {
}
return o;
}(e, A, r);
}, t.loadImageFile = t.loadFile;
}(ae.API), function(t) {
function e() {
return (le.html2canvas ? Promise.resolve(le.html2canvas) : Promise.resolve().then(() => Z4)).catch(function(s) {
return Promise.reject(new Error("Could not load html2canvas: " + s));
}).then(function(s) {
return s.default ? s.default : s;
});
}
function A() {
return (le.DOMPurify ? Promise.resolve(le.DOMPurify) : import("./purify.es-DHbHSKL1.js")).catch(function(s) {
return Promise.reject(new Error("Could not load dompurify: " + s));
}).then(function(s) {
return s.default ? s.default : s;
});
}
var r = function(s) {
var o = Se(s);
return o === "undefined" ? "undefined" : o === "string" || s instanceof String ? "string" : o === "number" || s instanceof Number ? "number" : o === "function" || s instanceof Function ? "function" : s && s.constructor === Array ? "array" : s && s.nodeType === 1 ? "element" : o === "object" ? "object" : "unknown";
}, n = function(s, o) {
var c = document.createElement(s);
for (var h in o.className && (c.className = o.className), o.innerHTML && o.dompurify && (c.innerHTML = o.dompurify.sanitize(o.innerHTML)), o.style) c.style[h] = o.style[h];
return c;
}, i = function s(o) {
var c = Object.assign(s.convert(Promise.resolve()), JSON.parse(JSON.stringify(s.template))), h = s.convert(Promise.resolve(), c);
return h = (h = h.setProgress(1, s, 1, [s])).set(o);
};
(i.prototype = Object.create(Promise.prototype)).constructor = i, i.convert = function(s, o) {
return s.__proto__ = o || i.prototype, s;
}, i.template = { prop: { src: null, container: null, overlay: null, canvas: null, img: null, pdf: null, pageSize: null, callback: function() {
} }, progress: { val: 0, state: null, n: 0, stack: [] }, opt: { filename: "file.pdf", margin: [0, 0, 0, 0], enableLinks: !0, x: 0, y: 0, html2canvas: {}, jsPDF: {}, backgroundColor: "transparent" } }, i.prototype.from = function(s, o) {
return this.then(function() {
switch (o = o || function(c) {
switch (r(c)) {
case "string":
return "string";
case "element":
return c.nodeName.toLowerCase() === "canvas" ? "canvas" : "element";
default:
return "unknown";
}
}(s)) {
case "string":
return this.then(A).then(function(c) {
return this.set({ src: n("div", { innerHTML: s, dompurify: c }) });
});
case "element":
return this.set({ src: s });
case "canvas":
return this.set({ canvas: s });
case "img":
return this.set({ img: s });
default:
return this.error("Unknown source type.");
}
});
}, i.prototype.to = function(s) {
switch (s) {
case "container":
return this.toContainer();
case "canvas":
return this.toCanvas();
case "img":
return this.toImg();
case "pdf":
return this.toPdf();
default:
return this.error("Invalid target.");
}
}, i.prototype.toContainer = function() {
return this.thenList([function() {
return this.prop.src || this.error("Cannot duplicate - no source HTML.");
}, function() {
return this.prop.pageSize || this.setPageSize();
}]).then(function() {
var s = { position: "relative", display: "inline-block", width: (typeof this.opt.width != "number" || isNaN(this.opt.width) || typeof this.opt.windowWidth != "number" || isNaN(this.opt.windowWidth) ? Math.max(this.prop.src.clientWidth, this.prop.src.scrollWidth, this.prop.src.offsetWidth) : this.opt.windowWidth) + "px", left: 0, right: 0, top: 0, margin: "auto", backgroundColor: this.opt.backgroundColor }, o = function c(h, p) {
for (var d = h.nodeType === 3 ? document.createTextNode(h.nodeValue) : h.cloneNode(!1), w = h.firstChild; w; w = w.nextSibling) p !== !0 && w.nodeType === 1 && w.nodeName === "SCRIPT" || d.appendChild(c(w, p));
return h.nodeType === 1 && (h.nodeName === "CANVAS" ? (d.width = h.width, d.height = h.height, d.getContext("2d").drawImage(h, 0, 0)) : h.nodeName !== "TEXTAREA" && h.nodeName !== "SELECT" || (d.value = h.value), d.addEventListener("load", function() {
d.scrollTop = h.scrollTop, d.scrollLeft = h.scrollLeft;
}, !0)), d;
}(this.prop.src, this.opt.html2canvas.javascriptEnabled);
o.tagName === "BODY" && (s.height = Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight) + "px"), this.prop.overlay = n("div", { className: "html2pdf__overlay", style: { position: "fixed", overflow: "hidden", zIndex: 1e3, left: "-100000px", right: 0, bottom: 0, top: 0 } }), this.prop.container = n("div", { className: "html2pdf__container", style: s }), this.prop.container.appendChild(o), this.prop.container.firstChild.appendChild(n("div", { style: { clear: "both", border: "0 none transparent", margin: 0, padding: 0, height: 0 } })), this.prop.container.style.float = "none", this.prop.overlay.appendChild(this.prop.container), document.body.appendChild(this.prop.overlay), this.prop.container.firstChild.style.position = "relative", this.prop.container.height = Math.max(this.prop.container.firstChild.clientHeight, this.prop.container.firstChild.scrollHeight, this.prop.container.firstChild.offsetHeight) + "px";
});
}, i.prototype.toCanvas = function() {
var s = [function() {
return document.body.contains(this.prop.container) || this.toContainer();
}];
return this.thenList(s).then(e).then(function(o) {
var c = Object.assign({}, this.opt.html2canvas);
return delete c.onrendered, o(this.prop.container, c);
}).then(function(o) {
(this.opt.html2canvas.onrendered || function() {
})(o), this.prop.canvas = o, document.body.removeChild(this.prop.overlay);
});
}, i.prototype.toContext2d = function() {
var s = [function() {
return document.body.contains(this.prop.container) || this.toContainer();
}];
return this.thenList(s).then(e).then(function(o) {
var c = this.opt.jsPDF, h = this.opt.fontFaces, p = typeof this.opt.width != "number" || isNaN(this.opt.width) || typeof this.opt.windowWidth != "number" || isNaN(this.opt.windowWidth) ? 1 : this.opt.width / this.opt.windowWidth, d = Object.assign({ async: !0, allowTaint: !0, scale: p, scrollX: this.opt.scrollX || 0, scrollY: this.opt.scrollY || 0, backgroundColor: "#ffffff", imageTimeout: 15e3, logging: !0, proxy: null, removeContainer: !0, foreignObjectRendering: !1, useCORS: !1 }, this.opt.html2canvas);
if (delete d.onrendered, c.context2d.autoPaging = this.opt.autoPaging === void 0 || this.opt.autoPaging, c.context2d.posX = this.opt.x, c.context2d.posY = this.opt.y, c.context2d.margin = this.opt.margin, c.context2d.fontFaces = h, h) for (var w = 0; w < h.length; ++w) {
var g = h[w], Q = g.src.find(function(y) {
return y.format === "truetype";
});
Q && c.addFont(Q.url, g.ref.name, g.ref.style);
}
return d.windowHeight = d.windowHeight || 0, d.windowHeight = d.windowHeight == 0 ? Math.max(this.prop.container.clientHeight, this.prop.container.scrollHeight, this.prop.container.offsetHeight) : d.windowHeight, c.context2d.save(!0), o(this.prop.container, d);
}).then(function(o) {
this.opt.jsPDF.context2d.restore(!0), (this.opt.html2canvas.onrendered || function() {
})(o), this.prop.canvas = o, document.body.removeChild(this.prop.overlay);
});
}, i.prototype.toImg = function() {
return this.thenList([function() {
return this.prop.canvas || this.toCanvas();
}]).then(function() {
var s = this.prop.canvas.toDataURL("image/" + this.opt.image.type, this.opt.image.quality);
this.prop.img = document.createElement("img"), this.prop.img.src = s;
});
}, i.prototype.toPdf = function() {
return this.thenList([function() {
return this.toContext2d();
}]).then(function() {
this.prop.pdf = this.prop.pdf || this.opt.jsPDF;
});
}, i.prototype.output = function(s, o, c) {
return (c = c || "pdf").toLowerCase() === "img" || c.toLowerCase() === "image" ? this.outputImg(s, o) : this.outputPdf(s, o);
}, i.prototype.outputPdf = function(s, o) {
return this.thenList([function() {
return this.prop.pdf || this.toPdf();
}]).then(function() {
return this.prop.pdf.output(s, o);
});
}, i.prototype.outputImg = function(s) {
return this.thenList([function() {
return this.prop.img || this.toImg();
}]).then(function() {
switch (s) {
case void 0:
case "img":
return this.prop.img;
case "datauristring":
case "dataurlstring":
return this.prop.img.src;
case "datauri":
case "dataurl":
return document.location.href = this.prop.img.src;
default:
throw 'Image output type "' + s + '" is not supported.';
}
});
}, i.prototype.save = function(s) {
return this.thenList([function() {
return this.prop.pdf || this.toPdf();
}]).set(s ? { filename: s } : null).then(function() {
this.prop.pdf.save(this.opt.filename);
});
}, i.prototype.doCallback = function() {
return this.thenList([function() {
return this.prop.pdf || this.toPdf();
}]).then(function() {
this.prop.callback(this.prop.pdf);
});
}, i.prototype.set = function(s) {
if (r(s) !== "object") return this;
var o = Object.keys(s || {}).map(function(c) {
if (c in i.template.prop) return function() {
this.prop[c] = s[c];
};
switch (c) {
case "margin":
return this.setMargin.bind(this, s.margin);
case "jsPDF":
return function() {
return this.opt.jsPDF = s.jsPDF, this.setPageSize();
};
case "pageSize":
return this.setPageSize.bind(this, s.pageSize);
default:
return function() {
this.opt[c] = s[c];
};
}
}, this);
return this.then(function() {
return this.thenList(o);
});
}, i.prototype.get = function(s, o) {
return this.then(function() {
var c = s in i.template.prop ? this.prop[s] : this.opt[s];
return o ? o(c) : c;
});
}, i.prototype.setMargin = function(s) {
return this.then(function() {
switch (r(s)) {
case "number":
s = [s, s, s, s];
case "array":
if (s.length === 2 && (s = [s[0], s[1], s[0], s[1]]), s.length === 4) break;
default:
return this.error("Invalid margin array.");
}
this.opt.margin = s;
}).then(this.setPageSize);
}, i.prototype.setPageSize = function(s) {
function o(c, h) {
return Math.floor(c * h / 72 * 96);
}
return this.then(function() {
(s = s || ae.getPageSize(this.opt.jsPDF)).hasOwnProperty("inner") || (s.inner = { width: s.width - this.opt.margin[1] - this.opt.margin[3], height: s.height - this.opt.margin[0] - this.opt.margin[2] }, s.inner.px = { width: o(s.inner.width, s.k), height: o(s.inner.height, s.k) }, s.inner.ratio = s.inner.height / s.inner.width), this.prop.pageSize = s;
});
}, i.prototype.setProgress = function(s, o, c, h) {
return s != null && (this.progress.val = s), o != null && (this.progress.state = o), c != null && (this.progress.n = c), h != null && (this.progress.stack = h), this.progress.ratio = this.progress.val / this.progress.state, this;
}, i.prototype.updateProgress = function(s, o, c, h) {
return this.setProgress(s ? this.progress.val + s : null, o || null, c ? this.progress.n + c : null, h ? this.progress.stack.concat(h) : null);
}, i.prototype.then = function(s, o) {
var c = this;
return this.thenCore(s, o, function(h, p) {
return c.updateProgress(null, null, 1, [h]), Promise.prototype.then.call(this, function(d) {
return c.updateProgress(null, h), d;
}).then(h, p).then(function(d) {
return c.updateProgress(1), d;
});
});
}, i.prototype.thenCore = function(s, o, c) {
c = c || Promise.prototype.then, s && (s = s.bind(this)), o && (o = o.bind(this));
var h = Promise.toString().indexOf("[native code]") !== -1 && Promise.name === "Promise" ? this : i.convert(Object.assign({}, this), Promise.prototype), p = c.call(h, s, o);
return i.convert(p, this.__proto__);
}, i.prototype.thenExternal = function(s, o) {
return Promise.prototype.then.call(this, s, o);
}, i.prototype.thenList = function(s) {
var o = this;
return s.forEach(function(c) {
o = o.thenCore(c);
}), o;
}, i.prototype.catch = function(s) {
s && (s = s.bind(this));
var o = Promise.prototype.catch.call(this, s);
return i.convert(o, this);
}, i.prototype.catchExternal = function(s) {
return Promise.prototype.catch.call(this, s);
}, i.prototype.error = function(s) {
return this.then(function() {
throw new Error(s);
});
}, i.prototype.using = i.prototype.set, i.prototype.saveAs = i.prototype.save, i.prototype.export = i.prototype.output, i.prototype.run = i.prototype.then, ae.getPageSize = function(s, o, c) {
if (Se(s) === "object") {
var h = s;
s = h.orientation, o = h.unit || o, c = h.format || c;
}
o = o || "mm", c = c || "a4", s = ("" + (s || "P")).toLowerCase();
var p, d = ("" + c).toLowerCase(), w = { a0: [2383.94, 3370.39], a1: [1683.78, 2383.94], a2: [1190.55, 1683.78], a3: [841.89, 1190.55], a4: [595.28, 841.89], a5: [419.53, 595.28], a6: [297.64, 419.53], a7: [209.76, 297.64], a8: [147.4, 209.76], a9: [104.88, 147.4], a10: [73.7, 104.88], b0: [2834.65, 4008.19], b1: [2004.09, 2834.65], b2: [1417.32, 2004.09], b3: [1000.63, 1417.32], b4: [708.66, 1000.63], b5: [498.9, 708.66], b6: [354.33, 498.9], b7: [249.45, 354.33], b8: [175.75, 249.45], b9: [124.72, 175.75], b10: [87.87, 124.72], c0: [2599.37, 3676.54], c1: [1836.85, 2599.37], c2: [1298.27, 1836.85], c3: [918.43, 1298.27], c4: [649.13, 918.43], c5: [459.21, 649.13], c6: [323.15, 459.21], c7: [229.61, 323.15], c8: [161.57, 229.61], c9: [113.39, 161.57], c10: [79.37, 113.39], dl: [311.81, 623.62], letter: [612, 792], "government-letter": [576, 756], legal: [612, 1008], "junior-legal": [576, 360], ledger: [1224, 792], tabloid: [792, 1224], "credit-card": [153, 243] };
switch (o) {
case "pt":
p = 1;
break;
case "mm":
p = 72 / 25.4;
break;
case "cm":
p = 72 / 2.54;
break;
case "in":
p = 72;
break;
case "px":
p = 0.75;
break;
case "pc":
case "em":
p = 12;
break;
case "ex":
p = 6;
break;
default:
throw "Invalid unit: " + o;
}
var g, Q = 0, y = 0;
if (w.hasOwnProperty(d)) Q = w[d][1] / p, y = w[d][0] / p;
else try {
Q = c[1], y = c[0];
} catch {
throw new Error("Invalid format: " + c);
}
if (s === "p" || s === "portrait") s = "p", y > Q && (g = y, y = Q, Q = g);
else {
if (s !== "l" && s !== "landscape") throw "Invalid orientation: " + s;
s = "l", Q > y && (g = y, y = Q, Q = g);
}
return { width: y, height: Q, unit: o, k: p, orientation: s };
}, t.html = function(s, o) {
(o = o || {}).callback = o.callback || function() {
}, o.html2canvas = o.html2canvas || {}, o.html2canvas.canvas = o.html2canvas.canvas || this.canvas, o.jsPDF = o.jsPDF || this, o.fontFaces = o.fontFaces ? o.fontFaces.map(qc) : null;
var c = new i(o);
return o.worker ? c : c.from(s).doCallback();
};
}(ae.API), ae.API.addJS = function(t) {
return gf = t, this.internal.events.subscribe("postPutResources", function() {
so = this.internal.newObject(), this.internal.out("<<"), this.internal.out("/Names [(EmbeddedJS) " + (so + 1) + " 0 R]"), this.internal.out(">>"), this.internal.out("endobj"), df = this.internal.newObject(), this.internal.out("<<"), this.internal.out("/S /JavaScript"), this.internal.out("/JS (" + gf + ")"), this.internal.out(">>"), this.internal.out("endobj");
}), this.internal.events.subscribe("putCatalog", function() {
so !== void 0 && df !== void 0 && this.internal.out("/Names <</JavaScript " + so + " 0 R>>");
}), this;
}, /**
* @license
* Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
function(t) {
var e;
t.events.push(["postPutResources", function() {
var A = this, r = /^(\d+) 0 obj$/;
if (this.outline.root.children.length > 0) for (var n = A.outline.render().split(/\r\n/), i = 0; i < n.length; i++) {
var s = n[i], o = r.exec(s);
if (o != null) {
var c = o[1];
A.internal.newObjectDeferredBegin(c, !1);
}
A.internal.write(s);
}
if (this.outline.createNamedDestinations) {
var h = this.internal.pages.length, p = [];
for (i = 0; i < h; i++) {
var d = A.internal.newObject();
p.push(d);
var w = A.internal.getPageInfo(i + 1);
A.internal.write("<< /D[" + w.objId + " 0 R /XYZ null null null]>> endobj");
}
var g = A.internal.newObject();
for (A.internal.write("<< /Names [ "), i = 0; i < p.length; i++) A.internal.write("(page_" + (i + 1) + ")" + p[i] + " 0 R");
A.internal.write(" ] >>", "endobj"), e = A.internal.newObject(), A.internal.write("<< /Dests " + g + " 0 R"), A.internal.write(">>", "endobj");
}
}]), t.events.push(["putCatalog", function() {
this.outline.root.children.length > 0 && (this.internal.write("/Outlines", this.outline.makeRef(this.outline.root)), this.outline.createNamedDestinations && this.internal.write("/Names " + e + " 0 R"));
}]), t.events.push(["initialized", function() {
var A = this;
A.outline = { createNamedDestinations: !1, root: { children: [] } }, A.outline.add = function(r, n, i) {
var s = { title: n, options: i, children: [] };
return r == null && (r = this.root), r.children.push(s), s;
}, A.outline.render = function() {
return this.ctx = {}, this.ctx.val = "", this.ctx.pdf = A, this.genIds_r(this.root), this.renderRoot(this.root), this.renderItems(this.root), this.ctx.val;
}, A.outline.genIds_r = function(r) {
r.id = A.internal.newObjectDeferred();
for (var n = 0; n < r.children.length; n++) this.genIds_r(r.children[n]);
}, A.outline.renderRoot = function(r) {
this.objStart(r), this.line("/Type /Outlines"), r.children.length > 0 && (this.line("/First " + this.makeRef(r.children[0])), this.line("/Last " + this.makeRef(r.children[r.children.length - 1]))), this.line("/Count " + this.count_r({ count: 0 }, r)), this.objEnd();
}, A.outline.renderItems = function(r) {
for (var n = this.ctx.pdf.internal.getVerticalCoordinateString, i = 0; i < r.children.length; i++) {
var s = r.children[i];
this.objStart(s), this.line("/Title " + this.makeString(s.title)), this.line("/Parent " + this.makeRef(r)), i > 0 && this.line("/Prev " + this.makeRef(r.children[i - 1])), i < r.children.length - 1 && this.line("/Next " + this.makeRef(r.children[i + 1])), s.children.length > 0 && (this.line("/First " + this.makeRef(s.children[0])), this.line("/Last " + this.makeRef(s.children[s.children.length - 1])));
var o = this.count = this.count_r({ count: 0 }, s);
if (o > 0 && this.line("/Count " + o), s.options && s.options.pageNumber) {
var c = A.internal.getPageInfo(s.options.pageNumber);
this.line("/Dest [" + c.objId + " 0 R /XYZ 0 " + n(0) + " 0]");
}
this.objEnd();
}
for (var h = 0; h < r.children.length; h++) this.renderItems(r.children[h]);
}, A.outline.line = function(r) {
this.ctx.val += r + `\r
`;
}, A.outline.makeRef = function(r) {
return r.id + " 0 R";
}, A.outline.makeString = function(r) {
return "(" + A.internal.pdfEscape(r) + ")";
}, A.outline.objStart = function(r) {
this.ctx.val += `\r
` + r.id + ` 0 obj\r
<<\r
`;
}, A.outline.objEnd = function() {
this.ctx.val += `>> \r
endobj\r
`;
}, A.outline.count_r = function(r, n) {
for (var i = 0; i < n.children.length; i++) r.count++, this.count_r(r, n.children[i]);
return r.count;
};
}]);
}(ae.API), /**
* @license
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
function(t) {
var e = [192, 193, 194, 195, 196, 197, 198, 199];
t.processJPEG = function(A, r, n, i, s, o) {
var c, h = this.decode.DCT_DECODE, p = null;
if (typeof A == "string" || this.__addimage__.isArrayBuffer(A) || this.__addimage__.isArrayBufferView(A)) {
switch (A = s || A, A = this.__addimage__.isArrayBuffer(A) ? new Uint8Array(A) : A, (c = function(d) {
for (var w, g = 256 * d.charCodeAt(4) + d.charCodeAt(5), Q = d.length, y = { width: 0, height: 0, numcomponents: 1 }, N = 4; N < Q; N += 2) {
if (N += g, e.indexOf(d.charCodeAt(N + 1)) !== -1) {
w = 256 * d.charCodeAt(N + 5) + d.charCodeAt(N + 6), y = { width: 256 * d.charCodeAt(N + 7) + d.charCodeAt(N + 8), height: w, numcomponents: d.charCodeAt(N + 9) };
break;
}
g = 256 * d.charCodeAt(N + 2) + d.charCodeAt(N + 3);
}
return y;
}(A = this.__addimage__.isArrayBufferView(A) ? this.__addimage__.arrayBufferToBinaryString(A) : A)).numcomponents) {
case 1:
o = this.color_spaces.DEVICE_GRAY;
break;
case 4:
o = this.color_spaces.DEVICE_CMYK;
break;
case 3:
o = this.color_spaces.DEVICE_RGB;
}
p = { data: A, width: c.width, height: c.height, colorSpace: o, bitsPerComponent: 8, filter: h, index: r, alias: n };
}
return p;
};
}(ae.API);
var ji, oo, pf, Bf, wf, fB = function() {
var t, e, A;
function r(i) {
var s, o, c, h, p, d, w, g, Q, y, N, v, U, K;
for (this.data = i, this.pos = 8, this.palette = [], this.imgData = [], this.transparency = {}, this.animation = null, this.text = {}, d = null; ; ) {
switch (s = this.readUInt32(), Q = (function() {
var j, q;
for (q = [], j = 0; j < 4; ++j) q.push(String.fromCharCode(this.data[this.pos++]));
return q;
}).call(this).join("")) {
case "IHDR":
this.width = this.readUInt32(), this.height = this.readUInt32(), this.bits = this.data[this.pos++], this.colorType = this.data[this.pos++], this.compressionMethod = this.data[this.pos++], this.filterMethod = this.data[this.pos++], this.interlaceMethod = this.data[this.pos++];
break;
case "acTL":
this.animation = { numFrames: this.readUInt32(), numPlays: this.readUInt32() || 1 / 0, frames: [] };
break;
case "PLTE":
this.palette = this.read(s);
break;
case "fcTL":
d && this.animation.frames.push(d), this.pos += 4, d = { width: this.readUInt32(), height: this.readUInt32(), xOffset: this.readUInt32(), yOffset: this.readUInt32() }, p = this.readUInt16(), h = this.readUInt16() || 100, d.delay = 1e3 * p / h, d.disposeOp = this.data[this.pos++], d.blendOp = this.data[this.pos++], d.data = [];
break;
case "IDAT":
case "fdAT":
for (Q === "fdAT" && (this.pos += 4, s -= 4), i = (d != null ? d.data : void 0) || this.imgData, v = 0; 0 <= s ? v < s : v > s; 0 <= s ? ++v : --v) i.push(this.data[this.pos++]);
break;
case "tRNS":
switch (this.transparency = {}, this.colorType) {
case 3:
if (c = this.palette.length / 3, this.transparency.indexed = this.read(s), this.transparency.indexed.length > c) throw new Error("More transparent colors than palette size");
if ((y = c - this.transparency.indexed.length) > 0) for (U = 0; 0 <= y ? U < y : U > y; 0 <= y ? ++U : --U) this.transparency.indexed.push(255);
break;
case 0:
this.transparency.grayscale = this.read(s)[0];
break;
case 2:
this.transparency.rgb = this.read(s);
}
break;
case "tEXt":
w = (N = this.read(s)).indexOf(0), g = String.fromCharCode.apply(String, N.slice(0, w)), this.text[g] = String.fromCharCode.apply(String, N.slice(w + 1));
break;
case "IEND":
return d && this.animation.frames.push(d), this.colors = (function() {
switch (this.colorType) {
case 0:
case 3:
case 4:
return 1;
case 2:
case 6:
return 3;
}
}).call(this), this.hasAlphaChannel = (K = this.colorType) === 4 || K === 6, o = this.colors + (this.hasAlphaChannel ? 1 : 0), this.pixelBitlength = this.bits * o, this.colorSpace = (function() {
switch (this.colors) {
case 1:
return "DeviceGray";
case 3:
return "DeviceRGB";
}
}).call(this), void (this.imgData = new Uint8Array(this.imgData));
default:
this.pos += s;
}
if (this.pos += 4, this.pos > this.data.length) throw new Error("Incomplete or corrupt PNG file");
}
}
r.prototype.read = function(i) {
var s, o;
for (o = [], s = 0; 0 <= i ? s < i : s > i; 0 <= i ? ++s : --s) o.push(this.data[this.pos++]);
return o;
}, r.prototype.readUInt32 = function() {
return this.data[this.pos++] << 24 | this.data[this.pos++] << 16 | this.data[this.pos++] << 8 | this.data[this.pos++];
}, r.prototype.readUInt16 = function() {
return this.data[this.pos++] << 8 | this.data[this.pos++];
}, r.prototype.decodePixels = function(i) {
var s = this.pixelBitlength / 8, o = new Uint8Array(this.width * this.height * s), c = 0, h = this;
if (i == null && (i = this.imgData), i.length === 0) return new Uint8Array(0);
function p(d, w, g, Q) {
var y, N, v, U, K, j, q, V, z, H, G, tA, x, F, _, P, lA, oA, iA, k, W, rA = Math.ceil((h.width - d) / g), OA = Math.ceil((h.height - w) / Q), L = h.width == rA && h.height == OA;
for (F = s * rA, tA = L ? o : new Uint8Array(F * OA), j = i.length, x = 0, N = 0; x < OA && c < j; ) {
switch (i[c++]) {
case 0:
for (U = lA = 0; lA < F; U = lA += 1) tA[N++] = i[c++];
break;
case 1:
for (U = oA = 0; oA < F; U = oA += 1) y = i[c++], K = U < s ? 0 : tA[N - s], tA[N++] = (y + K) % 256;
break;
case 2:
for (U = iA = 0; iA < F; U = iA += 1) y = i[c++], v = (U - U % s) / s, _ = x && tA[(x - 1) * F + v * s + U % s], tA[N++] = (_ + y) % 256;
break;
case 3:
for (U = k = 0; k < F; U = k += 1) y = i[c++], v = (U - U % s) / s, K = U < s ? 0 : tA[N - s], _ = x && tA[(x - 1) * F + v * s + U % s], tA[N++] = (y + Math.floor((K + _) / 2)) % 256;
break;
case 4:
for (U = W = 0; W < F; U = W += 1) y = i[c++], v = (U - U % s) / s, K = U < s ? 0 : tA[N - s], x === 0 ? _ = P = 0 : (_ = tA[(x - 1) * F + v * s + U % s], P = v && tA[(x - 1) * F + (v - 1) * s + U % s]), q = K + _ - P, V = Math.abs(q - K), H = Math.abs(q - _), G = Math.abs(q - P), z = V <= H && V <= G ? K : H <= G ? _ : P, tA[N++] = (y + z) % 256;
break;
default:
throw new Error("Invalid filter algorithm: " + i[c - 1]);
}
if (!L) {
var M = ((w + x * Q) * h.width + d) * s, R = x * F;
for (U = 0; U < rA; U += 1) {
for (var J = 0; J < s; J += 1) o[M++] = tA[R++];
M += (g - 1) * s;
}
}
x++;
}
}
return i = V2(i), h.interlaceMethod == 1 ? (p(0, 0, 8, 8), p(4, 0, 8, 8), p(0, 4, 4, 8), p(2, 0, 4, 4), p(0, 2, 2, 4), p(1, 0, 2, 2), p(0, 1, 1, 2)) : p(0, 0, 1, 1), o;
}, r.prototype.decodePalette = function() {
var i, s, o, c, h, p, d, w, g;
for (o = this.palette, p = this.transparency.indexed || [], h = new Uint8Array((p.length || 0) + o.length), c = 0, i = 0, s = d = 0, w = o.length; d < w; s = d += 3) h[c++] = o[s], h[c++] = o[s + 1], h[c++] = o[s + 2], h[c++] = (g = p[i++]) != null ? g : 255;
return h;
}, r.prototype.copyToImageData = function(i, s) {
var o, c, h, p, d, w, g, Q, y, N, v;
if (c = this.colors, y = null, o = this.hasAlphaChannel, this.palette.length && (y = (v = this._decodedPalette) != null ? v : this._decodedPalette = this.decodePalette(), c = 4, o = !0), Q = (h = i.data || i).length, d = y || s, p = w = 0, c === 1) for (; p < Q; ) g = y ? 4 * s[p / 4] : w, N = d[g++], h[p++] = N, h[p++] = N, h[p++] = N, h[p++] = o ? d[g++] : 255, w = g;
else for (; p < Q; ) g = y ? 4 * s[p / 4] : w, h[p++] = d[g++], h[p++] = d[g++], h[p++] = d[g++], h[p++] = o ? d[g++] : 255, w = g;
}, r.prototype.decode = function() {
var i;
return i = new Uint8Array(this.width * this.height * 4), this.copyToImageData(i, this.decodePixels()), i;
};
var n = function() {
if (Object.prototype.toString.call(le) === "[object Window]") {
try {
e = le.document.createElement("canvas"), A = e.getContext("2d");
} catch {
return !1;
}
return !0;
}
return !1;
};
return n(), t = function(i) {
var s;
if (n() === !0) return A.width = i.width, A.height = i.height, A.clearRect(0, 0, i.width, i.height), A.putImageData(i, 0, 0), (s = new Image()).src = e.toDataURL(), s;
throw new Error("This method requires a Browser with Canvas-capability.");
}, r.prototype.decodeFrames = function(i) {
var s, o, c, h, p, d, w, g;
if (this.animation) {
for (g = [], o = p = 0, d = (w = this.animation.frames).length; p < d; o = ++p) s = w[o], c = i.createImageData(s.width, s.height), h = this.decodePixels(new Uint8Array(s.data)), this.copyToImageData(c, h), s.imageData = c, g.push(s.image = t(c));
return g;
}
}, r.prototype.renderFrame = function(i, s) {
var o, c, h;
return o = (c = this.animation.frames)[s], h = c[s - 1], s === 0 && i.clearRect(0, 0, this.width, this.height), (h != null ? h.disposeOp : void 0) === 1 ? i.clearRect(h.xOffset, h.yOffset, h.width, h.height) : (h != null ? h.disposeOp : void 0) === 2 && i.putImageData(h.imageData, h.xOffset, h.yOffset), o.blendOp === 0 && i.clearRect(o.xOffset, o.yOffset, o.width, o.height), i.drawImage(o.image, o.xOffset, o.yOffset);
}, r.prototype.animate = function(i) {
var s, o, c, h, p, d, w = this;
return o = 0, d = this.animation, h = d.numFrames, c = d.frames, p = d.numPlays, (s = function() {
var g, Q;
if (g = o++ % h, Q = c[g], w.renderFrame(i, g), h > 1 && o / h < p) return w.animation._timeout = setTimeout(s, Q.delay);
})();
}, r.prototype.stopAnimation = function() {
var i;
return clearTimeout((i = this.animation) != null ? i._timeout : void 0);
}, r.prototype.render = function(i) {
var s, o;
return i._png && i._png.stopAnimation(), i._png = this, i.width = this.width, i.height = this.height, s = i.getContext("2d"), this.animation ? (this.decodeFrames(s), this.animate(s)) : (o = s.createImageData(this.width, this.height), this.copyToImageData(o, this.decodePixels()), s.putImageData(o, 0, 0));
}, r;
}();
/**
* @license
*
* Copyright (c) 2014 James Robb, https://github.com/jamesbrobb
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* ====================================================================
*/
/**
* @license
* (c) Dean McNamee <dean@gmail.com>, 2013.
*
* https://github.com/deanm/omggif
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
* deal in the Software without restriction, including without limitation the
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*
* omggif is a JavaScript implementation of a GIF 89a encoder and decoder,
* including animation and compression. It does not rely on any specific
* underlying system, so should run in the browser, Node, or Plask.
*/
function hB(t) {
var e = 0;
if (t[e++] !== 71 || t[e++] !== 73 || t[e++] !== 70 || t[e++] !== 56 || (t[e++] + 1 & 253) != 56 || t[e++] !== 97) throw new Error("Invalid GIF 87a/89a header.");
var A = t[e++] | t[e++] << 8, r = t[e++] | t[e++] << 8, n = t[e++], i = n >> 7, s = 1 << (7 & n) + 1;
t[e++], t[e++];
var o = null, c = null;
i && (o = e, c = s, e += 3 * s);
var h = !0, p = [], d = 0, w = null, g = 0, Q = null;
for (this.width = A, this.height = r; h && e < t.length; ) switch (t[e++]) {
case 33:
switch (t[e++]) {
case 255:
if (t[e] !== 11 || t[e + 1] == 78 && t[e + 2] == 69 && t[e + 3] == 84 && t[e + 4] == 83 && t[e + 5] == 67 && t[e + 6] == 65 && t[e + 7] == 80 && t[e + 8] == 69 && t[e + 9] == 50 && t[e + 10] == 46 && t[e + 11] == 48 && t[e + 12] == 3 && t[e + 13] == 1 && t[e + 16] == 0) e += 14, Q = t[e++] | t[e++] << 8, e++;
else for (e += 12; ; ) {
if (!((x = t[e++]) >= 0)) throw Error("Invalid block size");
if (x === 0) break;
e += x;
}
break;
case 249:
if (t[e++] !== 4 || t[e + 4] !== 0) throw new Error("Invalid graphics extension block.");
var y = t[e++];
d = t[e++] | t[e++] << 8, w = t[e++], (1 & y) == 0 && (w = null), g = y >> 2 & 7, e++;
break;
case 254:
for (; ; ) {
if (!((x = t[e++]) >= 0)) throw Error("Invalid block size");
if (x === 0) break;
e += x;
}
break;
default:
throw new Error("Unknown graphic control label: 0x" + t[e - 1].toString(16));
}
break;
case 44:
var N = t[e++] | t[e++] << 8, v = t[e++] | t[e++] << 8, U = t[e++] | t[e++] << 8, K = t[e++] | t[e++] << 8, j = t[e++], q = j >> 6 & 1, V = 1 << (7 & j) + 1, z = o, H = c, G = !1;
j >> 7 && (G = !0, z = e, H = V, e += 3 * V);
var tA = e;
for (e++; ; ) {
var x;
if (!((x = t[e++]) >= 0)) throw Error("Invalid block size");
if (x === 0) break;
e += x;
}
p.push({ x: N, y: v, width: U, height: K, has_local_palette: G, palette_offset: z, palette_size: H, data_offset: tA, data_length: e - tA, transparent_index: w, interlaced: !!q, delay: d, disposal: g });
break;
case 59:
h = !1;
break;
default:
throw new Error("Unknown gif block: 0x" + t[e - 1].toString(16));
}
this.numFrames = function() {
return p.length;
}, this.loopCount = function() {
return Q;
}, this.frameInfo = function(F) {
if (F < 0 || F >= p.length) throw new Error("Frame index out of range.");
return p[F];
}, this.decodeAndBlitFrameBGRA = function(F, _) {
var P = this.frameInfo(F), lA = P.width * P.height, oA = new Uint8Array(lA);
vf(t, P.data_offset, oA, lA);
var iA = P.palette_offset, k = P.transparent_index;
k === null && (k = 256);
var W = P.width, rA = A - W, OA = W, L = 4 * (P.y * A + P.x), M = 4 * ((P.y + P.height) * A + P.x), R = L, J = 4 * rA;
P.interlaced === !0 && (J += 4 * A * 7);
for (var eA = 8, uA = 0, dA = oA.length; uA < dA; ++uA) {
var gA = oA[uA];
if (OA === 0 && (OA = W, (R += J) >= M && (J = 4 * rA + 4 * A * (eA - 1), R = L + (W + rA) * (eA << 1), eA >>= 1)), gA === k) R += 4;
else {
var MA = t[iA + 3 * gA], NA = t[iA + 3 * gA + 1], RA = t[iA + 3 * gA + 2];
_[R++] = RA, _[R++] = NA, _[R++] = MA, _[R++] = 255;
}
--OA;
}
}, this.decodeAndBlitFrameRGBA = function(F, _) {
var P = this.frameInfo(F), lA = P.width * P.height, oA = new Uint8Array(lA);
vf(t, P.data_offset, oA, lA);
var iA = P.palette_offset, k = P.transparent_index;
k === null && (k = 256);
var W = P.width, rA = A - W, OA = W, L = 4 * (P.y * A + P.x), M = 4 * ((P.y + P.height) * A + P.x), R = L, J = 4 * rA;
P.interlaced === !0 && (J += 4 * A * 7);
for (var eA = 8, uA = 0, dA = oA.length; uA < dA; ++uA) {
var gA = oA[uA];
if (OA === 0 && (OA = W, (R += J) >= M && (J = 4 * rA + 4 * A * (eA - 1), R = L + (W + rA) * (eA << 1), eA >>= 1)), gA === k) R += 4;
else {
var MA = t[iA + 3 * gA], NA = t[iA + 3 * gA + 1], RA = t[iA + 3 * gA + 2];
_[R++] = MA, _[R++] = NA, _[R++] = RA, _[R++] = 255;
}
--OA;
}
};
}
function vf(t, e, A, r) {
for (var n = t[e++], i = 1 << n, s = i + 1, o = s + 1, c = n + 1, h = (1 << c) - 1, p = 0, d = 0, w = 0, g = t[e++], Q = new Int32Array(4096), y = null; ; ) {
for (; p < 16 && g !== 0; ) d |= t[e++] << p, p += 8, g === 1 ? g = t[e++] : --g;
if (p < c) break;
var N = d & h;
if (d >>= c, p -= c, N !== i) {
if (N === s) break;
for (var v = N < o ? N : y, U = 0, K = v; K > i; ) K = Q[K] >> 8, ++U;
var j = K;
if (w + U + (v !== N ? 1 : 0) > r) return void _e.log("Warning, gif stream longer than expected.");
A[w++] = j;
var q = w += U;
for (v !== N && (A[w++] = j), K = v; U--; ) K = Q[K], A[--q] = 255 & K, K >>= 8;
y !== null && o < 4096 && (Q[o++] = y << 8 | j, o >= h + 1 && c < 12 && (++c, h = h << 1 | 1)), y = N;
} else o = s + 1, h = (1 << (c = n + 1)) - 1, y = null;
}
return w !== r && _e.log("Warning, gif stream shorter than expected."), A;
}
/**
* @license
Copyright (c) 2008, Adobe Systems Incorporated
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of Adobe Systems Incorporated nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
function fc(t) {
var e, A, r, n, i, s = Math.floor, o = new Array(64), c = new Array(64), h = new Array(64), p = new Array(64), d = new Array(65535), w = new Array(65535), g = new Array(64), Q = new Array(64), y = [], N = 0, v = 7, U = new Array(64), K = new Array(64), j = new Array(64), q = new Array(256), V = new Array(2048), z = [0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63], H = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], G = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], tA = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125], x = [1, 2, 3, 0, 4, 17, 5, 18, 33, 49, 65, 6, 19, 81, 97, 7, 34, 113, 20, 50, 129, 145, 161, 8, 35, 66, 177, 193, 21, 82, 209, 240, 36, 51, 98, 114, 130, 9, 10, 22, 23, 24, 25, 26, 37, 38, 39, 40, 41, 42, 52, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], F = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], _ = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], P = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119], lA = [0, 1, 2, 3, 17, 4, 5, 33, 49, 6, 18, 65, 81, 7, 97, 113, 19, 34, 50, 129, 8, 20, 66, 145, 161, 177, 193, 9, 35, 51, 82, 240, 21, 98, 114, 209, 10, 22, 36, 52, 225, 37, 241, 23, 24, 25, 26, 38, 39, 40, 41, 42, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 130, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 226, 227, 228, 229, 230, 231, 232, 233, 234, 242, 243, 244, 245, 246, 247, 248, 249, 250];
function oA(L, M) {
for (var R = 0, J = 0, eA = new Array(), uA = 1; uA <= 16; uA++) {
for (var dA = 1; dA <= L[uA]; dA++) eA[M[J]] = [], eA[M[J]][0] = R, eA[M[J]][1] = uA, J++, R++;
R *= 2;
}
return eA;
}
function iA(L) {
for (var M = L[0], R = L[1] - 1; R >= 0; ) M & 1 << R && (N |= 1 << v), R--, --v < 0 && (N == 255 ? (k(255), k(0)) : k(N), v = 7, N = 0);
}
function k(L) {
y.push(L);
}
function W(L) {
k(L >> 8 & 255), k(255 & L);
}
function rA(L, M, R, J, eA) {
for (var uA, dA = eA[0], gA = eA[240], MA = function(sA, pA) {
var FA, UA, SA, QA, yA, PA, ZA, ue, YA, ne, VA = 0;
for (YA = 0; YA < 8; ++YA) {
FA = sA[VA], UA = sA[VA + 1], SA = sA[VA + 2], QA = sA[VA + 3], yA = sA[VA + 4], PA = sA[VA + 5], ZA = sA[VA + 6];
var Ve = FA + (ue = sA[VA + 7]), mA = FA - ue, TA = UA + ZA, IA = UA - ZA, Ae = SA + PA, me = SA - PA, se = QA + yA, He = QA - yA, we = Ve + se, Oe = Ve - se, ze = TA + Ae, ve = TA - Ae;
sA[VA] = we + ze, sA[VA + 4] = we - ze;
var ce = 0.707106781 * (ve + Oe);
sA[VA + 2] = Oe + ce, sA[VA + 6] = Oe - ce;
var Ue = 0.382683433 * ((we = He + me) - (ve = IA + mA)), jn = 0.5411961 * we + Ue, wt = 1.306562965 * ve + Ue, Dr = 0.707106781 * (ze = me + IA), Nr = mA + Dr, ie = mA - Dr;
sA[VA + 5] = ie + jn, sA[VA + 3] = ie - jn, sA[VA + 1] = Nr + wt, sA[VA + 7] = Nr - wt, VA += 8;
}
for (VA = 0, YA = 0; YA < 8; ++YA) {
FA = sA[VA], UA = sA[VA + 8], SA = sA[VA + 16], QA = sA[VA + 24], yA = sA[VA + 32], PA = sA[VA + 40], ZA = sA[VA + 48];
var dr = FA + (ue = sA[VA + 56]), kr = FA - ue, Mt = UA + ZA, ct = UA - ZA, it = SA + PA, qt = SA - PA, gi = QA + yA, Yr = QA - yA, gr = dr + gi, pr = dr - gi, Br = Mt + it, _r = Mt - it;
sA[VA] = gr + Br, sA[VA + 32] = gr - Br;
var Ar = 0.707106781 * (_r + pr);
sA[VA + 16] = pr + Ar, sA[VA + 48] = pr - Ar;
var Tr = 0.382683433 * ((gr = Yr + qt) - (_r = ct + kr)), qn = 0.5411961 * gr + Tr, pi = 1.306562965 * _r + Tr, Bi = 0.707106781 * (Br = qt + ct), wi = kr + Bi, vi = kr - Bi;
sA[VA + 40] = vi + qn, sA[VA + 24] = vi - qn, sA[VA + 8] = wi + pi, sA[VA + 56] = wi - pi, VA++;
}
for (YA = 0; YA < 64; ++YA) ne = sA[YA] * pA[YA], g[YA] = ne > 0 ? ne + 0.5 | 0 : ne - 0.5 | 0;
return g;
}(L, M), NA = 0; NA < 64; ++NA) Q[z[NA]] = MA[NA];
var RA = Q[0] - R;
R = Q[0], RA == 0 ? iA(J[0]) : (iA(J[w[uA = 32767 + RA]]), iA(d[uA]));
for (var GA = 63; GA > 0 && Q[GA] == 0; ) GA--;
if (GA == 0) return iA(dA), R;
for (var ee, wA = 1; wA <= GA; ) {
for (var D = wA; Q[wA] == 0 && wA <= GA; ) ++wA;
var $ = wA - D;
if ($ >= 16) {
ee = $ >> 4;
for (var BA = 1; BA <= ee; ++BA) iA(gA);
$ &= 15;
}
uA = 32767 + Q[wA], iA(eA[($ << 4) + w[uA]]), iA(d[uA]), wA++;
}
return GA != 63 && iA(dA), R;
}
function OA(L) {
L = Math.min(Math.max(L, 1), 100), i != L && (function(M) {
for (var R = [16, 11, 10, 16, 24, 40, 51, 61, 12, 12, 14, 19, 26, 58, 60, 55, 14, 13, 16, 24, 40, 57, 69, 56, 14, 17, 22, 29, 51, 87, 80, 62, 18, 22, 37, 56, 68, 109, 103, 77, 24, 35, 55, 64, 81, 104, 113, 92, 49, 64, 78, 87, 103, 121, 120, 101, 72, 92, 95, 98, 112, 100, 103, 99], J = 0; J < 64; J++) {
var eA = s((R[J] * M + 50) / 100);
eA = Math.min(Math.max(eA, 1), 255), o[z[J]] = eA;
}
for (var uA = [17, 18, 24, 47, 99, 99, 99, 99, 18, 21, 26, 66, 99, 99, 99, 99, 24, 26, 56, 99, 99, 99, 99, 99, 47, 66, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99], dA = 0; dA < 64; dA++) {
var gA = s((uA[dA] * M + 50) / 100);
gA = Math.min(Math.max(gA, 1), 255), c[z[dA]] = gA;
}
for (var MA = [1, 1.387039845, 1.306562965, 1.175875602, 1, 0.785694958, 0.5411961, 0.275899379], NA = 0, RA = 0; RA < 8; RA++) for (var GA = 0; GA < 8; GA++) h[NA] = 1 / (o[z[NA]] * MA[RA] * MA[GA] * 8), p[NA] = 1 / (c[z[NA]] * MA[RA] * MA[GA] * 8), NA++;
}(L < 50 ? Math.floor(5e3 / L) : Math.floor(200 - 2 * L)), i = L);
}
this.encode = function(L, M) {
M && OA(M), y = new Array(), N = 0, v = 7, W(65496), W(65504), W(16), k(74), k(70), k(73), k(70), k(0), k(1), k(1), k(0), W(1), W(1), k(0), k(0), function() {
W(65499), W(132), k(0);
for (var UA = 0; UA < 64; UA++) k(o[UA]);
k(1);
for (var SA = 0; SA < 64; SA++) k(c[SA]);
}(), function(UA, SA) {
W(65472), W(17), k(8), W(SA), W(UA), k(3), k(1), k(17), k(0), k(2), k(17), k(1), k(3), k(17), k(1);
}(L.width, L.height), function() {
W(65476), W(418), k(0);
for (var UA = 0; UA < 16; UA++) k(H[UA + 1]);
for (var SA = 0; SA <= 11; SA++) k(G[SA]);
k(16);
for (var QA = 0; QA < 16; QA++) k(tA[QA + 1]);
for (var yA = 0; yA <= 161; yA++) k(x[yA]);
k(1);
for (var PA = 0; PA < 16; PA++) k(F[PA + 1]);
for (var ZA = 0; ZA <= 11; ZA++) k(_[ZA]);
k(17);
for (var ue = 0; ue < 16; ue++) k(P[ue + 1]);
for (var YA = 0; YA <= 161; YA++) k(lA[YA]);
}(), W(65498), W(12), k(3), k(1), k(0), k(2), k(17), k(3), k(17), k(0), k(63), k(0);
var R = 0, J = 0, eA = 0;
N = 0, v = 7, this.encode.displayName = "_encode_";
for (var uA, dA, gA, MA, NA, RA, GA, ee, wA, D = L.data, $ = L.width, BA = L.height, sA = 4 * $, pA = 0; pA < BA; ) {
for (uA = 0; uA < sA; ) {
for (NA = sA * pA + uA, GA = -1, ee = 0, wA = 0; wA < 64; wA++) RA = NA + (ee = wA >> 3) * sA + (GA = 4 * (7 & wA)), pA + ee >= BA && (RA -= sA * (pA + 1 + ee - BA)), uA + GA >= sA && (RA -= uA + GA - sA + 4), dA = D[RA++], gA = D[RA++], MA = D[RA++], U[wA] = (V[dA] + V[gA + 256 >> 0] + V[MA + 512 >> 0] >> 16) - 128, K[wA] = (V[dA + 768 >> 0] + V[gA + 1024 >> 0] + V[MA + 1280 >> 0] >> 16) - 128, j[wA] = (V[dA + 1280 >> 0] + V[gA + 1536 >> 0] + V[MA + 1792 >> 0] >> 16) - 128;
R = rA(U, h, R, e, r), J = rA(K, p, J, A, n), eA = rA(j, p, eA, A, n), uA += 32;
}
pA += 8;
}
if (v >= 0) {
var FA = [];
FA[1] = v + 1, FA[0] = (1 << v + 1) - 1, iA(FA);
}
return W(65497), new Uint8Array(y);
}, t = t || 50, function() {
for (var L = String.fromCharCode, M = 0; M < 256; M++) q[M] = L(M);
}(), e = oA(H, G), A = oA(F, _), r = oA(tA, x), n = oA(P, lA), function() {
for (var L = 1, M = 2, R = 1; R <= 15; R++) {
for (var J = L; J < M; J++) w[32767 + J] = R, d[32767 + J] = [], d[32767 + J][1] = R, d[32767 + J][0] = J;
for (var eA = -(M - 1); eA <= -L; eA++) w[32767 + eA] = R, d[32767 + eA] = [], d[32767 + eA][1] = R, d[32767 + eA][0] = M - 1 + eA;
L <<= 1, M <<= 1;
}
}(), function() {
for (var L = 0; L < 256; L++) V[L] = 19595 * L, V[L + 256 >> 0] = 38470 * L, V[L + 512 >> 0] = 7471 * L + 32768, V[L + 768 >> 0] = -11059 * L, V[L + 1024 >> 0] = -21709 * L, V[L + 1280 >> 0] = 32768 * L + 8421375, V[L + 1536 >> 0] = -27439 * L, V[L + 1792 >> 0] = -5329 * L;
}(), OA(t);
}
/**
* @license
* Copyright (c) 2017 Aras Abbasi
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
function Qr(t, e) {
if (this.pos = 0, this.buffer = t, this.datav = new DataView(t.buffer), this.is_with_alpha = !!e, this.bottom_up = !0, this.flag = String.fromCharCode(this.buffer[0]) + String.fromCharCode(this.buffer[1]), this.pos += 2, ["BM", "BA", "CI", "CP", "IC", "PT"].indexOf(this.flag) === -1) throw new Error("Invalid BMP File");
this.parseHeader(), this.parseBGR();
}
function mf(t) {
function e(H) {
if (!H) throw Error("assert :P");
}
function A(H, G, tA) {
for (var x = 0; 4 > x; x++) if (H[G + x] != tA.charCodeAt(x)) return !0;
return !1;
}
function r(H, G, tA, x, F) {
for (var _ = 0; _ < F; _++) H[G + _] = tA[x + _];
}
function n(H, G, tA, x) {
for (var F = 0; F < x; F++) H[G + F] = tA;
}
function i(H) {
return new Int32Array(H);
}
function s(H, G) {
for (var tA = [], x = 0; x < H; x++) tA.push(new G());
return tA;
}
function o(H, G) {
var tA = [];
return function x(F, _, P) {
for (var lA = P[_], oA = 0; oA < lA && (F.push(P.length > _ + 1 ? [] : new G()), !(P.length < _ + 1)); oA++) x(F[oA], _ + 1, P);
}(tA, 0, H), tA;
}
var c = function() {
var H = this;
function G(a, l) {
for (var f = 1 << l - 1 >>> 0; a & f; ) f >>>= 1;
return f ? (a & f - 1) + f : a;
}
function tA(a, l, f, B, m) {
e(!(B % f));
do
a[l + (B -= f)] = m;
while (0 < B);
}
function x(a, l, f, B, m) {
if (e(2328 >= m), 512 >= m) var b = i(512);
else if ((b = i(m)) == null) return 0;
return function(E, I, S, T, Z, fA) {
var hA, aA, EA = I, vA = 1 << S, AA = i(16), nA = i(16);
for (e(Z != 0), e(T != null), e(E != null), e(0 < S), aA = 0; aA < Z; ++aA) {
if (15 < T[aA]) return 0;
++AA[T[aA]];
}
if (AA[0] == Z) return 0;
for (nA[1] = 0, hA = 1; 15 > hA; ++hA) {
if (AA[hA] > 1 << hA) return 0;
nA[hA + 1] = nA[hA] + AA[hA];
}
for (aA = 0; aA < Z; ++aA) hA = T[aA], 0 < T[aA] && (fA[nA[hA]++] = aA);
if (nA[15] == 1) return (T = new F()).g = 0, T.value = fA[0], tA(E, EA, 1, vA, T), vA;
var bA, HA = -1, LA = vA - 1, zA = 0, jA = 1, re = 1, qA = 1 << S;
for (aA = 0, hA = 1, Z = 2; hA <= S; ++hA, Z <<= 1) {
if (jA += re <<= 1, 0 > (re -= AA[hA])) return 0;
for (; 0 < AA[hA]; --AA[hA]) (T = new F()).g = hA, T.value = fA[aA++], tA(E, EA + zA, Z, qA, T), zA = G(zA, hA);
}
for (hA = S + 1, Z = 2; 15 >= hA; ++hA, Z <<= 1) {
if (jA += re <<= 1, 0 > (re -= AA[hA])) return 0;
for (; 0 < AA[hA]; --AA[hA]) {
if (T = new F(), (zA & LA) != HA) {
for (EA += qA, bA = 1 << (HA = hA) - S; 15 > HA && !(0 >= (bA -= AA[HA])); ) ++HA, bA <<= 1;
vA += qA = 1 << (bA = HA - S), E[I + (HA = zA & LA)].g = bA + S, E[I + HA].value = EA - I - HA;
}
T.g = hA - S, T.value = fA[aA++], tA(E, EA + (zA >> S), Z, qA, T), zA = G(zA, hA);
}
}
return jA != 2 * nA[15] - 1 ? 0 : vA;
}(a, l, f, B, m, b);
}
function F() {
this.value = this.g = 0;
}
function _() {
this.value = this.g = 0;
}
function P() {
this.G = s(5, F), this.H = i(5), this.jc = this.Qb = this.qb = this.nd = 0, this.pd = s(vt, _);
}
function lA(a, l, f, B) {
e(a != null), e(l != null), e(2147483648 > B), a.Ca = 254, a.I = 0, a.b = -8, a.Ka = 0, a.oa = l, a.pa = f, a.Jd = l, a.Yc = f + B, a.Zc = 4 <= B ? f + B - 4 + 1 : f, uA(a);
}
function oA(a, l) {
for (var f = 0; 0 < l--; ) f |= gA(a, 128) << l;
return f;
}
function iA(a, l) {
var f = oA(a, l);
return dA(a) ? -f : f;
}
function k(a, l, f, B) {
var m, b = 0;
for (e(a != null), e(l != null), e(4294967288 > B), a.Sb = B, a.Ra = 0, a.u = 0, a.h = 0, 4 < B && (B = 4), m = 0; m < B; ++m) b += l[f + m] << 8 * m;
a.Ra = b, a.bb = B, a.oa = l, a.pa = f;
}
function W(a) {
for (; 8 <= a.u && a.bb < a.Sb; ) a.Ra >>>= 8, a.Ra += a.oa[a.pa + a.bb] << Ni - 8 >>> 0, ++a.bb, a.u -= 8;
R(a) && (a.h = 1, a.u = 0);
}
function rA(a, l) {
if (e(0 <= l), !a.h && l <= Di) {
var f = M(a) & Hi[l];
return a.u += l, W(a), f;
}
return a.h = 1, a.u = 0;
}
function OA() {
this.b = this.Ca = this.I = 0, this.oa = [], this.pa = 0, this.Jd = [], this.Yc = 0, this.Zc = [], this.Ka = 0;
}
function L() {
this.Ra = 0, this.oa = [], this.h = this.u = this.bb = this.Sb = this.pa = 0;
}
function M(a) {
return a.Ra >>> (a.u & Ni - 1) >>> 0;
}
function R(a) {
return e(a.bb <= a.Sb), a.h || a.bb == a.Sb && a.u > Ni;
}
function J(a, l) {
a.u = l, a.h = R(a);
}
function eA(a) {
a.u >= Ia && (e(a.u >= Ia), W(a));
}
function uA(a) {
e(a != null && a.oa != null), a.pa < a.Zc ? (a.I = (a.oa[a.pa++] | a.I << 8) >>> 0, a.b += 8) : (e(a != null && a.oa != null), a.pa < a.Yc ? (a.b += 8, a.I = a.oa[a.pa++] | a.I << 8) : a.Ka ? a.b = 0 : (a.I <<= 8, a.b += 8, a.Ka = 1));
}
function dA(a) {
return oA(a, 1);
}
function gA(a, l) {
var f = a.Ca;
0 > a.b && uA(a);
var B = a.b, m = f * l >>> 8, b = (a.I >>> B > m) + 0;
for (b ? (f -= m, a.I -= m + 1 << B >>> 0) : f = m + 1, B = f, m = 0; 256 <= B; ) m += 8, B >>= 8;
return B = 7 ^ m + Ot[B], a.b -= B, a.Ca = (f << B) - 1, b;
}
function MA(a, l, f) {
a[l + 0] = f >> 24 & 255, a[l + 1] = f >> 16 & 255, a[l + 2] = f >> 8 & 255, a[l + 3] = f >> 0 & 255;
}
function NA(a, l) {
return a[l + 0] << 0 | a[l + 1] << 8;
}
function RA(a, l) {
return NA(a, l) | a[l + 2] << 16;
}
function GA(a, l) {
return NA(a, l) | NA(a, l + 2) << 16;
}
function ee(a, l) {
var f = 1 << l;
return e(a != null), e(0 < l), a.X = i(f), a.X == null ? 0 : (a.Mb = 32 - l, a.Xa = l, 1);
}
function wA(a, l) {
e(a != null), e(l != null), e(a.Xa == l.Xa), r(l.X, 0, a.X, 0, 1 << l.Xa);
}
function D() {
this.X = [], this.Xa = this.Mb = 0;
}
function $(a, l, f, B) {
e(f != null), e(B != null);
var m = f[0], b = B[0];
return m == 0 && (m = (a * b + l / 2) / l), b == 0 && (b = (l * m + a / 2) / a), 0 >= m || 0 >= b ? 0 : (f[0] = m, B[0] = b, 1);
}
function BA(a, l) {
return a + (1 << l) - 1 >>> l;
}
function sA(a, l) {
return ((4278255360 & a) + (4278255360 & l) >>> 0 & 4278255360) + ((16711935 & a) + (16711935 & l) >>> 0 & 16711935) >>> 0;
}
function pA(a, l) {
H[l] = function(f, B, m, b, E, I, S) {
var T;
for (T = 0; T < E; ++T) {
var Z = H[a](I[S + T - 1], m, b + T);
I[S + T] = sA(f[B + T], Z);
}
};
}
function FA() {
this.ud = this.hd = this.jd = 0;
}
function UA(a, l) {
return ((4278124286 & (a ^ l)) >>> 1) + (a & l) >>> 0;
}
function SA(a) {
return 0 <= a && 256 > a ? a : 0 > a ? 0 : 255 < a ? 255 : void 0;
}
function QA(a, l) {
return SA(a + (a - l + 0.5 >> 1));
}
function yA(a, l, f) {
return Math.abs(l - f) - Math.abs(a - f);
}
function PA(a, l, f, B, m, b, E) {
for (B = b[E - 1], f = 0; f < m; ++f) b[E + f] = B = sA(a[l + f], B);
}
function ZA(a, l, f, B, m) {
var b;
for (b = 0; b < f; ++b) {
var E = a[l + b], I = E >> 8 & 255, S = 16711935 & (S = (S = 16711935 & E) + ((I << 16) + I));
B[m + b] = (4278255360 & E) + S >>> 0;
}
}
function ue(a, l) {
l.jd = a >> 0 & 255, l.hd = a >> 8 & 255, l.ud = a >> 16 & 255;
}
function YA(a, l, f, B, m, b) {
var E;
for (E = 0; E < B; ++E) {
var I = l[f + E], S = I >>> 8, T = I, Z = 255 & (Z = (Z = I >>> 16) + ((a.jd << 24 >> 24) * (S << 24 >> 24) >>> 5));
T = 255 & (T = (T = T + ((a.hd << 24 >> 24) * (S << 24 >> 24) >>> 5)) + ((a.ud << 24 >> 24) * (Z << 24 >> 24) >>> 5)), m[b + E] = (4278255360 & I) + (Z << 16) + T;
}
}
function ne(a, l, f, B, m) {
H[l] = function(b, E, I, S, T, Z, fA, hA, aA) {
for (S = fA; S < hA; ++S) for (fA = 0; fA < aA; ++fA) T[Z++] = m(I[B(b[E++])]);
}, H[a] = function(b, E, I, S, T, Z, fA) {
var hA = 8 >> b.b, aA = b.Ea, EA = b.K[0], vA = b.w;
if (8 > hA) for (b = (1 << b.b) - 1, vA = (1 << hA) - 1; E < I; ++E) {
var AA, nA = 0;
for (AA = 0; AA < aA; ++AA) AA & b || (nA = B(S[T++])), Z[fA++] = m(EA[nA & vA]), nA >>= hA;
}
else H["VP8LMapColor" + f](S, T, EA, vA, Z, fA, E, I, aA);
};
}
function VA(a, l, f, B, m) {
for (f = l + f; l < f; ) {
var b = a[l++];
B[m++] = b >> 16 & 255, B[m++] = b >> 8 & 255, B[m++] = b >> 0 & 255;
}
}
function Ve(a, l, f, B, m) {
for (f = l + f; l < f; ) {
var b = a[l++];
B[m++] = b >> 16 & 255, B[m++] = b >> 8 & 255, B[m++] = b >> 0 & 255, B[m++] = b >> 24 & 255;
}
}
function mA(a, l, f, B, m) {
for (f = l + f; l < f; ) {
var b = (E = a[l++]) >> 16 & 240 | E >> 12 & 15, E = E >> 0 & 240 | E >> 28 & 15;
B[m++] = b, B[m++] = E;
}
}
function TA(a, l, f, B, m) {
for (f = l + f; l < f; ) {
var b = (E = a[l++]) >> 16 & 248 | E >> 13 & 7, E = E >> 5 & 224 | E >> 3 & 31;
B[m++] = b, B[m++] = E;
}
}
function IA(a, l, f, B, m) {
for (f = l + f; l < f; ) {
var b = a[l++];
B[m++] = b >> 0 & 255, B[m++] = b >> 8 & 255, B[m++] = b >> 16 & 255;
}
}
function Ae(a, l, f, B, m, b) {
if (b == 0) for (f = l + f; l < f; ) MA(B, ((b = a[l++])[0] >> 24 | b[1] >> 8 & 65280 | b[2] << 8 & 16711680 | b[3] << 24) >>> 0), m += 32;
else r(B, m, a, l, f);
}
function me(a, l) {
H[l][0] = H[a + "0"], H[l][1] = H[a + "1"], H[l][2] = H[a + "2"], H[l][3] = H[a + "3"], H[l][4] = H[a + "4"], H[l][5] = H[a + "5"], H[l][6] = H[a + "6"], H[l][7] = H[a + "7"], H[l][8] = H[a + "8"], H[l][9] = H[a + "9"], H[l][10] = H[a + "10"], H[l][11] = H[a + "11"], H[l][12] = H[a + "12"], H[l][13] = H[a + "13"], H[l][14] = H[a + "0"], H[l][15] = H[a + "0"];
}
function se(a) {
return a == Kl || a == Rl || a == Gs || a == Gl;
}
function He() {
this.eb = [], this.size = this.A = this.fb = 0;
}
function we() {
this.y = [], this.f = [], this.ea = [], this.F = [], this.Tc = this.Ed = this.Cd = this.Fd = this.lb = this.Db = this.Ab = this.fa = this.J = this.W = this.N = this.O = 0;
}
function Oe() {
this.Rd = this.height = this.width = this.S = 0, this.f = {}, this.f.RGBA = new He(), this.f.kb = new we(), this.sd = null;
}
function ze() {
this.width = [0], this.height = [0], this.Pd = [0], this.Qd = [0], this.format = [0];
}
function ve() {
this.Id = this.fd = this.Md = this.hb = this.ib = this.da = this.bd = this.cd = this.j = this.v = this.Da = this.Sd = this.ob = 0;
}
function ce(a) {
return alert("todo:WebPSamplerProcessPlane"), a.T;
}
function Ue(a, l) {
var f = a.T, B = l.ba.f.RGBA, m = B.eb, b = B.fb + a.ka * B.A, E = ar[l.ba.S], I = a.y, S = a.O, T = a.f, Z = a.N, fA = a.ea, hA = a.W, aA = l.cc, EA = l.dc, vA = l.Mc, AA = l.Nc, nA = a.ka, bA = a.ka + a.T, HA = a.U, LA = HA + 1 >> 1;
for (nA == 0 ? E(I, S, null, null, T, Z, fA, hA, T, Z, fA, hA, m, b, null, null, HA) : (E(l.ec, l.fc, I, S, aA, EA, vA, AA, T, Z, fA, hA, m, b - B.A, m, b, HA), ++f); nA + 2 < bA; nA += 2) aA = T, EA = Z, vA = fA, AA = hA, Z += a.Rc, hA += a.Rc, b += 2 * B.A, E(I, (S += 2 * a.fa) - a.fa, I, S, aA, EA, vA, AA, T, Z, fA, hA, m, b - B.A, m, b, HA);
return S += a.fa, a.j + bA < a.o ? (r(l.ec, l.fc, I, S, HA), r(l.cc, l.dc, T, Z, LA), r(l.Mc, l.Nc, fA, hA, LA), f--) : 1 & bA || E(I, S, null, null, T, Z, fA, hA, T, Z, fA, hA, m, b + B.A, null, null, HA), f;
}
function jn(a, l, f) {
var B = a.F, m = [a.J];
if (B != null) {
var b = a.U, E = l.ba.S, I = E == Rs || E == Gs;
l = l.ba.f.RGBA;
var S = [0], T = a.ka;
S[0] = a.T, a.Kb && (T == 0 ? --S[0] : (--T, m[0] -= a.width), a.j + a.ka + a.T == a.o && (S[0] = a.o - a.j - T));
var Z = l.eb;
T = l.fb + T * l.A, a = Me(B, m[0], a.width, b, S, Z, T + (I ? 0 : 3), l.A), e(f == S), a && se(E) && nr(Z, T, I, b, S, l.A);
}
return 0;
}
function wt(a) {
var l = a.ma, f = l.ba.S, B = 11 > f, m = f == Os || f == Ks || f == Rs || f == Ol || f == 12 || se(f);
if (l.memory = null, l.Ib = null, l.Jb = null, l.Nd = null, !Ea(l.Oa, a, m ? 11 : 12)) return 0;
if (m && se(f) && kA(), a.da) alert("todo:use_scaling");
else {
if (B) {
if (l.Ib = ce, a.Kb) {
if (f = a.U + 1 >> 1, l.memory = i(a.U + 2 * f), l.memory == null) return 0;
l.ec = l.memory, l.fc = 0, l.cc = l.ec, l.dc = l.fc + a.U, l.Mc = l.cc, l.Nc = l.dc + f, l.Ib = Ue, kA();
}
} else alert("todo:EmitYUV");
m && (l.Jb = jn, B && cA());
}
if (B && !ku) {
for (a = 0; 256 > a; ++a) fg[a] = 89858 * (a - 128) + js >> Vs, gg[a] = -22014 * (a - 128) + js, dg[a] = -45773 * (a - 128), hg[a] = 113618 * (a - 128) + js >> Vs;
for (a = Ta; a < ql; ++a) l = 76283 * (a - 16) + js >> Vs, pg[a - Ta] = Wt(l, 255), Bg[a - Ta] = Wt(l + 8 >> 4, 15);
ku = 1;
}
return 1;
}
function Dr(a) {
var l = a.ma, f = a.U, B = a.T;
return e(!(1 & a.ka)), 0 >= f || 0 >= B ? 0 : (f = l.Ib(a, l), l.Jb != null && l.Jb(a, l, f), l.Dc += f, 1);
}
function Nr(a) {
a.ma.memory = null;
}
function ie(a, l, f, B) {
return rA(a, 8) != 47 ? 0 : (l[0] = rA(a, 14) + 1, f[0] = rA(a, 14) + 1, B[0] = rA(a, 1), rA(a, 3) != 0 ? 0 : !a.h);
}
function dr(a, l) {
if (4 > a) return a + 1;
var f = a - 2 >> 1;
return (2 + (1 & a) << f) + rA(l, f) + 1;
}
function kr(a, l) {
return 120 < l ? l - 120 : 1 <= (f = ((f = $d[l - 1]) >> 4) * a + (8 - (15 & f))) ? f : 1;
var f;
}
function Mt(a, l, f) {
var B = M(f), m = a[l += 255 & B].g - 8;
return 0 < m && (J(f, f.u + 8), B = M(f), l += a[l].value, l += B & (1 << m) - 1), J(f, f.u + a[l].g), a[l].value;
}
function ct(a, l, f) {
return f.g += a.g, f.value += a.value << l >>> 0, e(8 >= f.g), a.g;
}
function it(a, l, f) {
var B = a.xc;
return e((l = B == 0 ? 0 : a.vc[a.md * (f >> B) + (l >> B)]) < a.Wb), a.Ya[l];
}
function qt(a, l, f, B) {
var m = a.ab, b = a.c * l, E = a.C;
l = E + l;
var I = f, S = B;
for (B = a.Ta, f = a.Ua; 0 < m--; ) {
var T = a.gc[m], Z = E, fA = l, hA = I, aA = S, EA = (S = B, I = f, T.Ea);
switch (e(Z < fA), e(fA <= T.nc), T.hc) {
case 2:
Ds(hA, aA, (fA - Z) * EA, S, I);
break;
case 0:
var vA = Z, AA = fA, nA = S, bA = I, HA = (qA = T).Ea;
vA == 0 && (Ml(hA, aA, null, null, 1, nA, bA), PA(hA, aA + 1, 0, 0, HA - 1, nA, bA + 1), aA += HA, bA += HA, ++vA);
for (var LA = 1 << qA.b, zA = LA - 1, jA = BA(HA, qA.b), re = qA.K, qA = qA.w + (vA >> qA.b) * jA; vA < AA; ) {
var Le = re, xe = qA, be = 1;
for (Sa(hA, aA, nA, bA - HA, 1, nA, bA); be < HA; ) {
var ye = (be & ~zA) + LA;
ye > HA && (ye = HA), (0, Bn[Le[xe++] >> 8 & 15])(hA, aA + +be, nA, bA + be - HA, ye - be, nA, bA + be), be = ye;
}
aA += HA, bA += HA, ++vA & zA || (qA += jA);
}
fA != T.nc && r(S, I - EA, S, I + (fA - Z - 1) * EA, EA);
break;
case 1:
for (EA = hA, AA = aA, HA = (hA = T.Ea) - (bA = hA & ~(nA = (aA = 1 << T.b) - 1)), vA = BA(hA, T.b), LA = T.K, T = T.w + (Z >> T.b) * vA; Z < fA; ) {
for (zA = LA, jA = T, re = new FA(), qA = AA + bA, Le = AA + hA; AA < qA; ) ue(zA[jA++], re), Yn(re, EA, AA, aA, S, I), AA += aA, I += aA;
AA < Le && (ue(zA[jA++], re), Yn(re, EA, AA, HA, S, I), AA += HA, I += HA), ++Z & nA || (T += vA);
}
break;
case 3:
if (hA == S && aA == I && 0 < T.b) {
for (AA = S, hA = EA = I + (fA - Z) * EA - (bA = (fA - Z) * BA(T.Ea, T.b)), aA = S, nA = I, vA = [], bA = (HA = bA) - 1; 0 <= bA; --bA) vA[bA] = aA[nA + bA];
for (bA = HA - 1; 0 <= bA; --bA) AA[hA + bA] = vA[bA];
er(T, Z, fA, S, EA, S, I);
} else er(T, Z, fA, hA, aA, S, I);
}
I = B, S = f;
}
S != f && r(B, f, I, S, b);
}
function gi(a, l) {
var f = a.V, B = a.Ba + a.c * a.C, m = l - a.C;
if (e(l <= a.l.o), e(16 >= m), 0 < m) {
var b = a.l, E = a.Ta, I = a.Ua, S = b.width;
if (qt(a, m, f, B), m = I = [I], e((f = a.C) < (B = l)), e(b.v < b.va), B > b.o && (B = b.o), f < b.j) {
var T = b.j - f;
f = b.j, m[0] += T * S;
}
if (f >= B ? f = 0 : (m[0] += 4 * b.v, b.ka = f - b.j, b.U = b.va - b.v, b.T = B - f, f = 1), f) {
if (I = I[0], 11 > (f = a.ca).S) {
var Z = f.f.RGBA, fA = (B = f.S, m = b.U, b = b.T, T = Z.eb, Z.A), hA = b;
for (Z = Z.fb + a.Ma * Z.A; 0 < hA--; ) {
var aA = E, EA = I, vA = m, AA = T, nA = Z;
switch (B) {
case Ps:
Kt(aA, EA, vA, AA, nA);
break;
case Os:
Dt(aA, EA, vA, AA, nA);
break;
case Kl:
Dt(aA, EA, vA, AA, nA), nr(AA, nA, 0, vA, 1, 0);
break;
case Uu:
en(aA, EA, vA, AA, nA);
break;
case Ks:
Ae(aA, EA, vA, AA, nA, 1);
break;
case Rl:
Ae(aA, EA, vA, AA, nA, 1), nr(AA, nA, 0, vA, 1, 0);
break;
case Rs:
Ae(aA, EA, vA, AA, nA, 0);
break;
case Gs:
Ae(aA, EA, vA, AA, nA, 0), nr(AA, nA, 1, vA, 1, 0);
break;
case Ol:
wn(aA, EA, vA, AA, nA);
break;
case Gl:
wn(aA, EA, vA, AA, nA), Te(AA, nA, vA, 1, 0);
break;
case Lu:
An(aA, EA, vA, AA, nA);
break;
default:
e(0);
}
I += S, Z += fA;
}
a.Ma += b;
} else alert("todo:EmitRescaledRowsYUVA");
e(a.Ma <= f.height);
}
}
a.C = l, e(a.C <= a.i);
}
function Yr(a) {
var l;
if (0 < a.ua) return 0;
for (l = 0; l < a.Wb; ++l) {
var f = a.Ya[l].G, B = a.Ya[l].H;
if (0 < f[1][B[1] + 0].g || 0 < f[2][B[2] + 0].g || 0 < f[3][B[3] + 0].g) return 0;
}
return 1;
}
function gr(a, l, f, B, m, b) {
if (a.Z != 0) {
var E = a.qd, I = a.rd;
for (e(yn[a.Z] != null); l < f; ++l) yn[a.Z](E, I, B, m, B, m, b), E = B, I = m, m += b;
a.qd = E, a.rd = I;
}
}
function pr(a, l) {
var f = a.l.ma, B = f.Z == 0 || f.Z == 1 ? a.l.j : a.C;
if (B = a.C < B ? B : a.C, e(l <= a.l.o), l > B) {
var m = a.l.width, b = f.ca, E = f.tb + m * B, I = a.V, S = a.Ba + a.c * B, T = a.gc;
e(a.ab == 1), e(T[0].hc == 3), Ns(T[0], B, l, I, S, b, E), gr(f, B, l, b, E, m);
}
a.C = a.Ma = l;
}
function Br(a, l, f, B, m, b, E) {
var I = a.$ / B, S = a.$ % B, T = a.m, Z = a.s, fA = f + a.$, hA = fA;
m = f + B * m;
var aA = f + B * b, EA = 280 + Z.ua, vA = a.Pb ? I : 16777216, AA = 0 < Z.ua ? Z.Wa : null, nA = Z.wc, bA = fA < aA ? it(Z, S, I) : null;
e(a.C < b), e(aA <= m);
var HA = !1;
A: for (; ; ) {
for (; HA || fA < aA; ) {
var LA = 0;
if (I >= vA) {
var zA = fA - f;
e((vA = a).Pb), vA.wd = vA.m, vA.xd = zA, 0 < vA.s.ua && wA(vA.s.Wa, vA.s.vb), vA = I + Ag;
}
if (S & nA || (bA = it(Z, S, I)), e(bA != null), bA.Qb && (l[fA] = bA.qb, HA = !0), !HA) if (eA(T), bA.jc) {
LA = T, zA = l;
var jA = fA, re = bA.pd[M(LA) & vt - 1];
e(bA.jc), 256 > re.g ? (J(LA, LA.u + re.g), zA[jA] = re.value, LA = 0) : (J(LA, LA.u + re.g - 256), e(256 <= re.value), LA = re.value), LA == 0 && (HA = !0);
} else LA = Mt(bA.G[0], bA.H[0], T);
if (T.h) break;
if (HA || 256 > LA) {
if (!HA) if (bA.nd) l[fA] = (bA.qb | LA << 8) >>> 0;
else {
if (eA(T), HA = Mt(bA.G[1], bA.H[1], T), eA(T), zA = Mt(bA.G[2], bA.H[2], T), jA = Mt(bA.G[3], bA.H[3], T), T.h) break;
l[fA] = (jA << 24 | HA << 16 | LA << 8 | zA) >>> 0;
}
if (HA = !1, ++fA, ++S >= B && (S = 0, ++I, E != null && I <= b && !(I % 16) && E(a, I), AA != null)) for (; hA < fA; ) LA = l[hA++], AA.X[(506832829 * LA & 4294967295) >>> AA.Mb] = LA;
} else if (280 > LA) {
if (LA = dr(LA - 256, T), zA = Mt(bA.G[4], bA.H[4], T), eA(T), zA = kr(B, zA = dr(zA, T)), T.h) break;
if (fA - f < zA || m - fA < LA) break A;
for (jA = 0; jA < LA; ++jA) l[fA + jA] = l[fA + jA - zA];
for (fA += LA, S += LA; S >= B; ) S -= B, ++I, E != null && I <= b && !(I % 16) && E(a, I);
if (e(fA <= m), S & nA && (bA = it(Z, S, I)), AA != null) for (; hA < fA; ) LA = l[hA++], AA.X[(506832829 * LA & 4294967295) >>> AA.Mb] = LA;
} else {
if (!(LA < EA)) break A;
for (HA = LA - 280, e(AA != null); hA < fA; ) LA = l[hA++], AA.X[(506832829 * LA & 4294967295) >>> AA.Mb] = LA;
LA = fA, e(!(HA >>> (zA = AA).Xa)), l[LA] = zA.X[HA], HA = !0;
}
HA || e(T.h == R(T));
}
if (a.Pb && T.h && fA < m) e(a.m.h), a.a = 5, a.m = a.wd, a.$ = a.xd, 0 < a.s.ua && wA(a.s.vb, a.s.Wa);
else {
if (T.h) break A;
E != null && E(a, I > b ? b : I), a.a = 0, a.$ = fA - f;
}
return 1;
}
return a.a = 3, 0;
}
function _r(a) {
e(a != null), a.vc = null, a.yc = null, a.Ya = null;
var l = a.Wa;
l != null && (l.X = null), a.vb = null, e(a != null);
}
function Ar() {
var a = new Tl();
return a == null ? null : (a.a = 0, a.xb = Iu, me("Predictor", "VP8LPredictors"), me("Predictor", "VP8LPredictors_C"), me("PredictorAdd", "VP8LPredictorsAdd"), me("PredictorAdd", "VP8LPredictorsAdd_C"), Ds = ZA, Yn = YA, Kt = VA, Dt = Ve, wn = mA, An = TA, en = IA, H.VP8LMapColor32b = ki, H.VP8LMapColor8b = ks, a);
}
function Tr(a, l, f, B, m) {
var b = 1, E = [a], I = [l], S = B.m, T = B.s, Z = null, fA = 0;
A: for (; ; ) {
if (f) for (; b && rA(S, 1); ) {
var hA = E, aA = I, EA = B, vA = 1, AA = EA.m, nA = EA.gc[EA.ab], bA = rA(AA, 2);
if (EA.Oc & 1 << bA) b = 0;
else {
switch (EA.Oc |= 1 << bA, nA.hc = bA, nA.Ea = hA[0], nA.nc = aA[0], nA.K = [null], ++EA.ab, e(4 >= EA.ab), bA) {
case 0:
case 1:
nA.b = rA(AA, 3) + 2, vA = Tr(BA(nA.Ea, nA.b), BA(nA.nc, nA.b), 0, EA, nA.K), nA.K = nA.K[0];
break;
case 3:
var HA, LA = rA(AA, 8) + 1, zA = 16 < LA ? 0 : 4 < LA ? 1 : 2 < LA ? 2 : 3;
if (hA[0] = BA(nA.Ea, zA), nA.b = zA, HA = vA = Tr(LA, 1, 0, EA, nA.K)) {
var jA, re = LA, qA = nA, Le = 1 << (8 >> qA.b), xe = i(Le);
if (xe == null) HA = 0;
else {
var be = qA.K[0], ye = qA.w;
for (xe[0] = qA.K[0][0], jA = 1; jA < 1 * re; ++jA) xe[jA] = sA(be[ye + jA], xe[jA - 1]);
for (; jA < 4 * Le; ++jA) xe[jA] = 0;
qA.K[0] = null, qA.K[0] = xe, HA = 1;
}
}
vA = HA;
break;
case 2:
break;
default:
e(0);
}
b = vA;
}
}
if (E = E[0], I = I[0], b && rA(S, 1) && !(b = 1 <= (fA = rA(S, 4)) && 11 >= fA)) {
B.a = 3;
break A;
}
var ke;
if (ke = b) e: {
var De, Be, st, Rt = B, ot = E, Gt = I, Ie = fA, zt = f, Jt = Rt.m, dt = Rt.s, mt = [null], kt = 1, sr = 0, Kr = Zd[Ie];
t: for (; ; ) {
if (zt && rA(Jt, 1)) {
var gt = rA(Jt, 3) + 2, an = BA(ot, gt), ti = BA(Gt, gt), Oi = an * ti;
if (!Tr(an, ti, 0, Rt, mt)) break t;
for (mt = mt[0], dt.xc = gt, De = 0; De < Oi; ++De) {
var Fn = mt[De] >> 8 & 65535;
mt[De] = Fn, Fn >= kt && (kt = Fn + 1);
}
}
if (Jt.h) break t;
for (Be = 0; 5 > Be; ++Be) {
var We = Eu[Be];
!Be && 0 < Ie && (We += 1 << Ie), sr < We && (sr = We);
}
var Wl = s(kt * Kr, F), Mu = kt, Pu = s(Mu, P);
if (Pu == null) var Ws = null;
else e(65536 >= Mu), Ws = Pu;
var Ma = i(sr);
if (Ws == null || Ma == null || Wl == null) {
Rt.a = 1;
break t;
}
var Xs = Wl;
for (De = st = 0; De < kt; ++De) {
var yr = Ws[De], Ki = yr.G, Ri = yr.H, Ou = 0, zs = 1, Ku = 0;
for (Be = 0; 5 > Be; ++Be) {
We = Eu[Be], Ki[Be] = Xs, Ri[Be] = st, !Be && 0 < Ie && (We += 1 << Ie);
n: {
var Js, Xl = We, Ys = Rt, Pa = Ma, mg = Xs, Cg = st, zl = 0, Qn = Ys.m, yg = rA(Qn, 1);
if (n(Pa, 0, 0, Xl), yg) {
var Fg = rA(Qn, 1) + 1, Qg = rA(Qn, 1), Ru = rA(Qn, Qg == 0 ? 1 : 8);
Pa[Ru] = 1, Fg == 2 && (Pa[Ru = rA(Qn, 8)] = 1);
var $s = 1;
} else {
var Gu = i(19), Vu = rA(Qn, 4) + 4;
if (19 < Vu) {
Ys.a = 3;
var Zs = 0;
break n;
}
for (Js = 0; Js < Vu; ++Js) Gu[Yd[Js]] = rA(Qn, 3);
var Jl = void 0, Oa = void 0, ju = Ys, bg = Gu, Ao = Xl, qu = Pa, Yl = 0, bn = ju.m, Wu = 8, Xu = s(128, F);
r: for (; x(Xu, 0, 7, bg, 19); ) {
if (rA(bn, 1)) {
var Ug = 2 + 2 * rA(bn, 3);
if ((Jl = 2 + rA(bn, Ug)) > Ao) break r;
} else Jl = Ao;
for (Oa = 0; Oa < Ao && Jl--; ) {
eA(bn);
var zu = Xu[0 + (127 & M(bn))];
J(bn, bn.u + zu.g);
var Gi = zu.value;
if (16 > Gi) qu[Oa++] = Gi, Gi != 0 && (Wu = Gi);
else {
var Lg = Gi == 16, Ju = Gi - 16, Eg = zd[Ju], Yu = rA(bn, Xd[Ju]) + Eg;
if (Oa + Yu > Ao) break r;
for (var xg = Lg ? Wu : 0; 0 < Yu--; ) qu[Oa++] = xg;
}
}
Yl = 1;
break r;
}
Yl || (ju.a = 3), $s = Yl;
}
($s = $s && !Qn.h) && (zl = x(mg, Cg, 8, Pa, Xl)), $s && zl != 0 ? Zs = zl : (Ys.a = 3, Zs = 0);
}
if (Zs == 0) break t;
if (zs && Jd[Be] == 1 && (zs = Xs[st].g == 0), Ou += Xs[st].g, st += Zs, 3 >= Be) {
var Ka, $l = Ma[0];
for (Ka = 1; Ka < We; ++Ka) Ma[Ka] > $l && ($l = Ma[Ka]);
Ku += $l;
}
}
if (yr.nd = zs, yr.Qb = 0, zs && (yr.qb = (Ki[3][Ri[3] + 0].value << 24 | Ki[1][Ri[1] + 0].value << 16 | Ki[2][Ri[2] + 0].value) >>> 0, Ou == 0 && 256 > Ki[0][Ri[0] + 0].value && (yr.Qb = 1, yr.qb += Ki[0][Ri[0] + 0].value << 8)), yr.jc = !yr.Qb && 6 > Ku, yr.jc) {
var eo, sn = yr;
for (eo = 0; eo < vt; ++eo) {
var Un = eo, Ln = sn.pd[Un], to = sn.G[0][sn.H[0] + Un];
256 <= to.value ? (Ln.g = to.g + 256, Ln.value = to.value) : (Ln.g = 0, Ln.value = 0, Un >>= ct(to, 8, Ln), Un >>= ct(sn.G[1][sn.H[1] + Un], 16, Ln), Un >>= ct(sn.G[2][sn.H[2] + Un], 0, Ln), ct(sn.G[3][sn.H[3] + Un], 24, Ln));
}
}
}
dt.vc = mt, dt.Wb = kt, dt.Ya = Ws, dt.yc = Wl, ke = 1;
break e;
}
ke = 0;
}
if (!(b = ke)) {
B.a = 3;
break A;
}
if (0 < fA) {
if (T.ua = 1 << fA, !ee(T.Wa, fA)) {
B.a = 1, b = 0;
break A;
}
} else T.ua = 0;
var Zl = B, $u = E, Ig = I, Ac = Zl.s, ec = Ac.xc;
if (Zl.c = $u, Zl.i = Ig, Ac.md = BA($u, ec), Ac.wc = ec == 0 ? -1 : (1 << ec) - 1, f) {
B.xb = sg;
break A;
}
if ((Z = i(E * I)) == null) {
B.a = 1, b = 0;
break A;
}
b = (b = Br(B, Z, 0, E, I, I, null)) && !S.h;
break A;
}
return b ? (m != null ? m[0] = Z : (e(Z == null), e(f)), B.$ = 0, f || _r(T)) : _r(T), b;
}
function qn(a, l) {
var f = a.c * a.i, B = f + l + 16 * l;
return e(a.c <= l), a.V = i(B), a.V == null ? (a.Ta = null, a.Ua = 0, a.a = 1, 0) : (a.Ta = a.V, a.Ua = a.Ba + f + l, 1);
}
function pi(a, l) {
var f = a.C, B = l - f, m = a.V, b = a.Ba + a.c * f;
for (e(l <= a.l.o); 0 < B; ) {
var E = 16 < B ? 16 : B, I = a.l.ma, S = a.l.width, T = S * E, Z = I.ca, fA = I.tb + S * f, hA = a.Ta, aA = a.Ua;
qt(a, E, m, b), $e(hA, aA, Z, fA, T), gr(I, f, f + E, Z, fA, S), B -= E, m += E * a.c, f += E;
}
e(f == l), a.C = a.Ma = l;
}
function Bi() {
this.ub = this.yd = this.td = this.Rb = 0;
}
function wi() {
this.Kd = this.Ld = this.Ud = this.Td = this.i = this.c = 0;
}
function vi() {
this.Fb = this.Bb = this.Cb = 0, this.Zb = i(4), this.Lb = i(4);
}
function hs() {
this.Yb = function() {
var a = [];
return function l(f, B, m) {
for (var b = m[B], E = 0; E < b && (f.push(m.length > B + 1 ? [] : 0), !(m.length < B + 1)); E++) l(f[E], B + 1, m);
}(a, 0, [3, 11]), a;
}();
}
function dl() {
this.jb = i(3), this.Wc = o([4, 8], hs), this.Xc = o([4, 17], hs);
}
function gl() {
this.Pc = this.wb = this.Tb = this.zd = 0, this.vd = new i(4), this.od = new i(4);
}
function mi() {
this.ld = this.La = this.dd = this.tc = 0;
}
function ds() {
this.Na = this.la = 0;
}
function pl() {
this.Sc = [0, 0], this.Eb = [0, 0], this.Qc = [0, 0], this.ia = this.lc = 0;
}
function fa() {
this.ad = i(384), this.Za = 0, this.Ob = i(16), this.$b = this.Ad = this.ia = this.Gc = this.Hc = this.Dd = 0;
}
function Bl() {
this.uc = this.M = this.Nb = 0, this.wa = Array(new mi()), this.Y = 0, this.ya = Array(new fa()), this.aa = 0, this.l = new Ci();
}
function gs() {
this.y = i(16), this.f = i(8), this.ea = i(8);
}
function wl() {
this.cb = this.a = 0, this.sc = "", this.m = new OA(), this.Od = new Bi(), this.Kc = new wi(), this.ed = new gl(), this.Qa = new vi(), this.Ic = this.$c = this.Aa = 0, this.D = new Bl(), this.Xb = this.Va = this.Hb = this.zb = this.yb = this.Ub = this.za = 0, this.Jc = s(8, OA), this.ia = 0, this.pb = s(4, pl), this.Pa = new dl(), this.Bd = this.kc = 0, this.Ac = [], this.Bc = 0, this.zc = [0, 0, 0, 0], this.Gd = Array(new gs()), this.Hd = 0, this.rb = Array(new ds()), this.sb = 0, this.wa = Array(new mi()), this.Y = 0, this.oc = [], this.pc = 0, this.sa = [], this.ta = 0, this.qa = [], this.ra = 0, this.Ha = [], this.B = this.R = this.Ia = 0, this.Ec = [], this.M = this.ja = this.Vb = this.Fc = 0, this.ya = Array(new fa()), this.L = this.aa = 0, this.gd = o([4, 2], mi), this.ga = null, this.Fa = [], this.Cc = this.qc = this.P = 0, this.Gb = [], this.Uc = 0, this.mb = [], this.nb = 0, this.rc = [], this.Ga = this.Vc = 0;
}
function Ci() {
this.T = this.U = this.ka = this.height = this.width = 0, this.y = [], this.f = [], this.ea = [], this.Rc = this.fa = this.W = this.N = this.O = 0, this.ma = "void", this.put = "VP8IoPutHook", this.ac = "VP8IoSetupHook", this.bc = "VP8IoTeardownHook", this.ha = this.Kb = 0, this.data = [], this.hb = this.ib = this.da = this.o = this.j = this.va = this.v = this.Da = this.ob = this.w = 0, this.F = [], this.J = 0;
}
function vl() {
var a = new wl();
return a != null && (a.a = 0, a.sc = "OK", a.cb = 0, a.Xb = 0, _a || (_a = ws)), a;
}
function Je(a, l, f) {
return a.a == 0 && (a.a = l, a.sc = f, a.cb = 0), 0;
}
function ps(a, l, f) {
return 3 <= f && a[l + 0] == 157 && a[l + 1] == 1 && a[l + 2] == 42;
}
function Bs(a, l) {
if (a == null) return 0;
if (a.a = 0, a.sc = "OK", l == null) return Je(a, 2, "null VP8Io passed to VP8GetHeaders()");
var f = l.data, B = l.w, m = l.ha;
if (4 > m) return Je(a, 7, "Truncated header.");
var b = f[B + 0] | f[B + 1] << 8 | f[B + 2] << 16, E = a.Od;
if (E.Rb = !(1 & b), E.td = b >> 1 & 7, E.yd = b >> 4 & 1, E.ub = b >> 5, 3 < E.td) return Je(a, 3, "Incorrect keyframe parameters.");
if (!E.yd) return Je(a, 4, "Frame not displayable.");
B += 3, m -= 3;
var I = a.Kc;
if (E.Rb) {
if (7 > m) return Je(a, 7, "cannot parse picture header");
if (!ps(f, B, m)) return Je(a, 3, "Bad code word");
I.c = 16383 & (f[B + 4] << 8 | f[B + 3]), I.Td = f[B + 4] >> 6, I.i = 16383 & (f[B + 6] << 8 | f[B + 5]), I.Ud = f[B + 6] >> 6, B += 7, m -= 7, a.za = I.c + 15 >> 4, a.Ub = I.i + 15 >> 4, l.width = I.c, l.height = I.i, l.Da = 0, l.j = 0, l.v = 0, l.va = l.width, l.o = l.height, l.da = 0, l.ib = l.width, l.hb = l.height, l.U = l.width, l.T = l.height, n((b = a.Pa).jb, 0, 255, b.jb.length), e((b = a.Qa) != null), b.Cb = 0, b.Bb = 0, b.Fb = 1, n(b.Zb, 0, 0, b.Zb.length), n(b.Lb, 0, 0, b.Lb);
}
if (E.ub > m) return Je(a, 7, "bad partition length");
lA(b = a.m, f, B, E.ub), B += E.ub, m -= E.ub, E.Rb && (I.Ld = dA(b), I.Kd = dA(b)), I = a.Qa;
var S, T = a.Pa;
if (e(b != null), e(I != null), I.Cb = dA(b), I.Cb) {
if (I.Bb = dA(b), dA(b)) {
for (I.Fb = dA(b), S = 0; 4 > S; ++S) I.Zb[S] = dA(b) ? iA(b, 7) : 0;
for (S = 0; 4 > S; ++S) I.Lb[S] = dA(b) ? iA(b, 6) : 0;
}
if (I.Bb) for (S = 0; 3 > S; ++S) T.jb[S] = dA(b) ? oA(b, 8) : 255;
} else I.Bb = 0;
if (b.Ka) return Je(a, 3, "cannot parse segment header");
if ((I = a.ed).zd = dA(b), I.Tb = oA(b, 6), I.wb = oA(b, 3), I.Pc = dA(b), I.Pc && dA(b)) {
for (T = 0; 4 > T; ++T) dA(b) && (I.vd[T] = iA(b, 6));
for (T = 0; 4 > T; ++T) dA(b) && (I.od[T] = iA(b, 6));
}
if (a.L = I.Tb == 0 ? 0 : I.zd ? 1 : 2, b.Ka) return Je(a, 3, "cannot parse filter header");
var Z = m;
if (m = S = B, B = S + Z, I = Z, a.Xb = (1 << oA(a.m, 2)) - 1, Z < 3 * (T = a.Xb)) f = 7;
else {
for (S += 3 * T, I -= 3 * T, Z = 0; Z < T; ++Z) {
var fA = f[m + 0] | f[m + 1] << 8 | f[m + 2] << 16;
fA > I && (fA = I), lA(a.Jc[+Z], f, S, fA), S += fA, I -= fA, m += 3;
}
lA(a.Jc[+T], f, S, I), f = S < B ? 0 : 5;
}
if (f != 0) return Je(a, f, "cannot parse partitions");
for (f = oA(S = a.m, 7), m = dA(S) ? iA(S, 4) : 0, B = dA(S) ? iA(S, 4) : 0, I = dA(S) ? iA(S, 4) : 0, T = dA(S) ? iA(S, 4) : 0, S = dA(S) ? iA(S, 4) : 0, Z = a.Qa, fA = 0; 4 > fA; ++fA) {
if (Z.Cb) {
var hA = Z.Zb[fA];
Z.Fb || (hA += f);
} else {
if (0 < fA) {
a.pb[fA] = a.pb[0];
continue;
}
hA = f;
}
var aA = a.pb[fA];
aA.Sc[0] = Vl[Wt(hA + m, 127)], aA.Sc[1] = jl[Wt(hA + 0, 127)], aA.Eb[0] = 2 * Vl[Wt(hA + B, 127)], aA.Eb[1] = 101581 * jl[Wt(hA + I, 127)] >> 16, 8 > aA.Eb[1] && (aA.Eb[1] = 8), aA.Qc[0] = Vl[Wt(hA + T, 117)], aA.Qc[1] = jl[Wt(hA + S, 127)], aA.lc = hA + S;
}
if (!E.Rb) return Je(a, 4, "Not a key frame.");
for (dA(b), E = a.Pa, f = 0; 4 > f; ++f) {
for (m = 0; 8 > m; ++m) for (B = 0; 3 > B; ++B) for (I = 0; 11 > I; ++I) T = gA(b, ig[f][m][B][I]) ? oA(b, 8) : rg[f][m][B][I], E.Wc[f][m].Yb[B][I] = T;
for (m = 0; 17 > m; ++m) E.Xc[f][m] = E.Wc[f][ag[m]];
}
return a.kc = dA(b), a.kc && (a.Bd = oA(b, 8)), a.cb = 1;
}
function ws(a, l, f, B, m, b, E) {
var I = l[m].Yb[f];
for (f = 0; 16 > m; ++m) {
if (!gA(a, I[f + 0])) return m;
for (; !gA(a, I[f + 1]); ) if (I = l[++m].Yb[0], f = 0, m == 16) return 16;
var S = l[m + 1].Yb;
if (gA(a, I[f + 2])) {
var T = a, Z = 0;
if (gA(T, (hA = I)[(fA = f) + 3])) if (gA(T, hA[fA + 6])) {
for (I = 0, fA = 2 * (Z = gA(T, hA[fA + 8])) + (hA = gA(T, hA[fA + 9 + Z])), Z = 0, hA = eg[fA]; hA[I]; ++I) Z += Z + gA(T, hA[I]);
Z += 3 + (8 << fA);
} else gA(T, hA[fA + 7]) ? (Z = 7 + 2 * gA(T, 165), Z += gA(T, 145)) : Z = 5 + gA(T, 159);
else Z = gA(T, hA[fA + 4]) ? 3 + gA(T, hA[fA + 5]) : 2;
I = S[2];
} else Z = 1, I = S[1];
S = E + tg[m], 0 > (T = a).b && uA(T);
var fA, hA = T.b, aA = (fA = T.Ca >> 1) - (T.I >> hA) >> 31;
--T.b, T.Ca += aA, T.Ca |= 1, T.I -= (fA + 1 & aA) << hA, b[S] = ((Z ^ aA) - aA) * B[(0 < m) + 0];
}
return 16;
}
function ha(a) {
var l = a.rb[a.sb - 1];
l.la = 0, l.Na = 0, n(a.zc, 0, 0, a.zc.length), a.ja = 0;
}
function ml(a, l) {
if (a == null) return 0;
if (l == null) return Je(a, 2, "NULL VP8Io parameter in VP8Decode().");
if (!a.cb && !Bs(a, l)) return 0;
if (e(a.cb), l.ac == null || l.ac(l)) {
l.ob && (a.L = 0);
var f = qs[a.L];
if (a.L == 2 ? (a.yb = 0, a.zb = 0) : (a.yb = l.v - f >> 4, a.zb = l.j - f >> 4, 0 > a.yb && (a.yb = 0), 0 > a.zb && (a.zb = 0)), a.Va = l.o + 15 + f >> 4, a.Hb = l.va + 15 + f >> 4, a.Hb > a.za && (a.Hb = a.za), a.Va > a.Ub && (a.Va = a.Ub), 0 < a.L) {
var B = a.ed;
for (f = 0; 4 > f; ++f) {
var m;
if (a.Qa.Cb) {
var b = a.Qa.Lb[f];
a.Qa.Fb || (b += B.Tb);
} else b = B.Tb;
for (m = 0; 1 >= m; ++m) {
var E = a.gd[f][m], I = b;
if (B.Pc && (I += B.vd[0], m && (I += B.od[0])), 0 < (I = 0 > I ? 0 : 63 < I ? 63 : I)) {
var S = I;
0 < B.wb && (S = 4 < B.wb ? S >> 2 : S >> 1) > 9 - B.wb && (S = 9 - B.wb), 1 > S && (S = 1), E.dd = S, E.tc = 2 * I + S, E.ld = 40 <= I ? 2 : 15 <= I ? 1 : 0;
} else E.tc = 0;
E.La = m;
}
}
}
f = 0;
} else Je(a, 6, "Frame setup failed"), f = a.a;
if (f = f == 0) {
if (f) {
a.$c = 0, 0 < a.Aa || (a.Ic = vg);
A: {
f = a.Ic, B = 4 * (S = a.za);
var T = 32 * S, Z = S + 1, fA = 0 < a.L ? S * (0 < a.Aa ? 2 : 1) : 0, hA = (a.Aa == 2 ? 2 : 1) * S;
if ((E = B + 832 + (m = 3 * (16 * f + qs[a.L]) / 2 * T) + (b = a.Fa != null && 0 < a.Fa.length ? a.Kc.c * a.Kc.i : 0)) != E) f = 0;
else {
if (E > a.Vb) {
if (a.Vb = 0, a.Ec = i(E), a.Fc = 0, a.Ec == null) {
f = Je(a, 1, "no memory during frame initialization.");
break A;
}
a.Vb = E;
}
E = a.Ec, I = a.Fc, a.Ac = E, a.Bc = I, I += B, a.Gd = s(T, gs), a.Hd = 0, a.rb = s(Z + 1, ds), a.sb = 1, a.wa = fA ? s(fA, mi) : null, a.Y = 0, a.D.Nb = 0, a.D.wa = a.wa, a.D.Y = a.Y, 0 < a.Aa && (a.D.Y += S), e(!0), a.oc = E, a.pc = I, I += 832, a.ya = s(hA, fa), a.aa = 0, a.D.ya = a.ya, a.D.aa = a.aa, a.Aa == 2 && (a.D.aa += S), a.R = 16 * S, a.B = 8 * S, S = (T = qs[a.L]) * a.R, T = T / 2 * a.B, a.sa = E, a.ta = I + S, a.qa = a.sa, a.ra = a.ta + 16 * f * a.R + T, a.Ha = a.qa, a.Ia = a.ra + 8 * f * a.B + T, a.$c = 0, I += m, a.mb = b ? E : null, a.nb = b ? I : null, e(I + b <= a.Fc + a.Vb), ha(a), n(a.Ac, a.Bc, 0, B), f = 1;
}
}
if (f) {
if (l.ka = 0, l.y = a.sa, l.O = a.ta, l.f = a.qa, l.N = a.ra, l.ea = a.Ha, l.Vd = a.Ia, l.fa = a.R, l.Rc = a.B, l.F = null, l.J = 0, !Ts) {
for (f = -255; 255 >= f; ++f) ut[255 + f] = 0 > f ? -f : f;
for (f = -1020; 1020 >= f; ++f) rn[1020 + f] = -128 > f ? -128 : 127 < f ? 127 : f;
for (f = -112; 112 >= f; ++f) ka[112 + f] = -16 > f ? -16 : 15 < f ? 15 : f;
for (f = -255; 510 >= f; ++f) Pi[255 + f] = 0 > f ? 0 : 255 < f ? 255 : f;
Ts = 1;
}
_i = Fl, tn = Cl, Ha = ms, Nt = yl, tr = Cs, Ye = vs, Ti = va, _s = zn, Da = _l, $n = ma, Zn = kl, vn = Li, Ai = Ca, Mi = Is, ei = xs, mn = Pr, Na = Zr, rr = Nl, Cr[0] = Mr, Cr[1] = Ql, Cr[2] = El, Cr[3] = xl, Cr[4] = Qs, Cr[5] = bi, Cr[6] = bs, Cr[7] = pa, Cr[8] = Sl, Cr[9] = Il, Cn[0] = ys, Cn[1] = Ul, Cn[2] = $r, Cn[3] = Fi, Cn[4] = Qt, Cn[5] = Ll, Cn[6] = Fs, nn[0] = dn, nn[1] = bl, nn[2] = Hl, nn[3] = Ba, nn[4] = Xn, nn[5] = Dl, nn[6] = wa, f = 1;
} else f = 0;
}
f && (f = function(aA, EA) {
for (aA.M = 0; aA.M < aA.Va; ++aA.M) {
var vA, AA = aA.Jc[aA.M & aA.Xb], nA = aA.m, bA = aA;
for (vA = 0; vA < bA.za; ++vA) {
var HA = nA, LA = bA, zA = LA.Ac, jA = LA.Bc + 4 * vA, re = LA.zc, qA = LA.ya[LA.aa + vA];
if (LA.Qa.Bb ? qA.$b = gA(HA, LA.Pa.jb[0]) ? 2 + gA(HA, LA.Pa.jb[2]) : gA(HA, LA.Pa.jb[1]) : qA.$b = 0, LA.kc && (qA.Ad = gA(HA, LA.Bd)), qA.Za = !gA(HA, 145) + 0, qA.Za) {
var Le = qA.Ob, xe = 0;
for (LA = 0; 4 > LA; ++LA) {
var be, ye = re[0 + LA];
for (be = 0; 4 > be; ++be) {
ye = ng[zA[jA + be]][ye];
for (var ke = xu[gA(HA, ye[0])]; 0 < ke; ) ke = xu[2 * ke + gA(HA, ye[ke])];
ye = -ke, zA[jA + be] = ye;
}
r(Le, xe, zA, jA, 4), xe += 4, re[0 + LA] = ye;
}
} else ye = gA(HA, 156) ? gA(HA, 128) ? 1 : 3 : gA(HA, 163) ? 2 : 0, qA.Ob[0] = ye, n(zA, jA, ye, 4), n(re, 0, ye, 4);
qA.Dd = gA(HA, 142) ? gA(HA, 114) ? gA(HA, 183) ? 1 : 3 : 2 : 0;
}
if (bA.m.Ka) return Je(aA, 7, "Premature end-of-partition0 encountered.");
for (; aA.ja < aA.za; ++aA.ja) {
if (bA = AA, HA = (nA = aA).rb[nA.sb - 1], zA = nA.rb[nA.sb + nA.ja], vA = nA.ya[nA.aa + nA.ja], jA = nA.kc ? vA.Ad : 0) HA.la = zA.la = 0, vA.Za || (HA.Na = zA.Na = 0), vA.Hc = 0, vA.Gc = 0, vA.ia = 0;
else {
var De, Be;
if (HA = zA, zA = bA, jA = nA.Pa.Xc, re = nA.ya[nA.aa + nA.ja], qA = nA.pb[re.$b], LA = re.ad, Le = 0, xe = nA.rb[nA.sb - 1], ye = be = 0, n(LA, Le, 0, 384), re.Za) var st = 0, Rt = jA[3];
else {
ke = i(16);
var ot = HA.Na + xe.Na;
if (ot = _a(zA, jA[1], ot, qA.Eb, 0, ke, 0), HA.Na = xe.Na = (0 < ot) + 0, 1 < ot) _i(ke, 0, LA, Le);
else {
var Gt = ke[0] + 3 >> 3;
for (ke = 0; 256 > ke; ke += 16) LA[Le + ke] = Gt;
}
st = 1, Rt = jA[0];
}
var Ie = 15 & HA.la, zt = 15 & xe.la;
for (ke = 0; 4 > ke; ++ke) {
var Jt = 1 & zt;
for (Gt = Be = 0; 4 > Gt; ++Gt) Ie = Ie >> 1 | (Jt = (ot = _a(zA, Rt, ot = Jt + (1 & Ie), qA.Sc, st, LA, Le)) > st) << 7, Be = Be << 2 | (3 < ot ? 3 : 1 < ot ? 2 : LA[Le + 0] != 0), Le += 16;
Ie >>= 4, zt = zt >> 1 | Jt << 7, be = (be << 8 | Be) >>> 0;
}
for (Rt = Ie, st = zt >> 4, De = 0; 4 > De; De += 2) {
for (Be = 0, Ie = HA.la >> 4 + De, zt = xe.la >> 4 + De, ke = 0; 2 > ke; ++ke) {
for (Jt = 1 & zt, Gt = 0; 2 > Gt; ++Gt) ot = Jt + (1 & Ie), Ie = Ie >> 1 | (Jt = 0 < (ot = _a(zA, jA[2], ot, qA.Qc, 0, LA, Le))) << 3, Be = Be << 2 | (3 < ot ? 3 : 1 < ot ? 2 : LA[Le + 0] != 0), Le += 16;
Ie >>= 2, zt = zt >> 1 | Jt << 5;
}
ye |= Be << 4 * De, Rt |= Ie << 4 << De, st |= (240 & zt) << De;
}
HA.la = Rt, xe.la = st, re.Hc = be, re.Gc = ye, re.ia = 43690 & ye ? 0 : qA.ia, jA = !(be | ye);
}
if (0 < nA.L && (nA.wa[nA.Y + nA.ja] = nA.gd[vA.$b][vA.Za], nA.wa[nA.Y + nA.ja].La |= !jA), bA.Ka) return Je(aA, 7, "Premature end-of-file encountered.");
}
if (ha(aA), nA = EA, bA = 1, vA = (AA = aA).D, HA = 0 < AA.L && AA.M >= AA.zb && AA.M <= AA.Va, AA.Aa == 0) A: {
if (vA.M = AA.M, vA.uc = HA, La(AA, vA), bA = 1, vA = (Be = AA.D).Nb, HA = (ye = qs[AA.L]) * AA.R, zA = ye / 2 * AA.B, ke = 16 * vA * AA.R, Gt = 8 * vA * AA.B, jA = AA.sa, re = AA.ta - HA + ke, qA = AA.qa, LA = AA.ra - zA + Gt, Le = AA.Ha, xe = AA.Ia - zA + Gt, zt = (Ie = Be.M) == 0, be = Ie >= AA.Va - 1, AA.Aa == 2 && La(AA, Be), Be.uc) for (Jt = (ot = AA).D.M, e(ot.D.uc), Be = ot.yb; Be < ot.Hb; ++Be) {
st = Be, Rt = Jt;
var dt = (mt = (We = ot).D).Nb;
De = We.R;
var mt = mt.wa[mt.Y + st], kt = We.sa, sr = We.ta + 16 * dt * De + 16 * st, Kr = mt.dd, gt = mt.tc;
if (gt != 0) if (e(3 <= gt), We.L == 1) 0 < st && mn(kt, sr, De, gt + 4), mt.La && rr(kt, sr, De, gt), 0 < Rt && ei(kt, sr, De, gt + 4), mt.La && Na(kt, sr, De, gt);
else {
var an = We.B, ti = We.qa, Oi = We.ra + 8 * dt * an + 8 * st, Fn = We.Ha, We = We.Ia + 8 * dt * an + 8 * st;
dt = mt.ld, 0 < st && (_s(kt, sr, De, gt + 4, Kr, dt), $n(ti, Oi, Fn, We, an, gt + 4, Kr, dt)), mt.La && (vn(kt, sr, De, gt, Kr, dt), Mi(ti, Oi, Fn, We, an, gt, Kr, dt)), 0 < Rt && (Ti(kt, sr, De, gt + 4, Kr, dt), Da(ti, Oi, Fn, We, an, gt + 4, Kr, dt)), mt.La && (Zn(kt, sr, De, gt, Kr, dt), Ai(ti, Oi, Fn, We, an, gt, Kr, dt));
}
}
if (AA.ia && alert("todo:DitherRow"), nA.put != null) {
if (Be = 16 * Ie, Ie = 16 * (Ie + 1), zt ? (nA.y = AA.sa, nA.O = AA.ta + ke, nA.f = AA.qa, nA.N = AA.ra + Gt, nA.ea = AA.Ha, nA.W = AA.Ia + Gt) : (Be -= ye, nA.y = jA, nA.O = re, nA.f = qA, nA.N = LA, nA.ea = Le, nA.W = xe), be || (Ie -= ye), Ie > nA.o && (Ie = nA.o), nA.F = null, nA.J = null, AA.Fa != null && 0 < AA.Fa.length && Be < Ie && (nA.J = ba(AA, nA, Be, Ie - Be), nA.F = AA.mb, nA.F == null && nA.F.length == 0)) {
bA = Je(AA, 3, "Could not decode alpha data.");
break A;
}
Be < nA.j && (ye = nA.j - Be, Be = nA.j, e(!(1 & ye)), nA.O += AA.R * ye, nA.N += AA.B * (ye >> 1), nA.W += AA.B * (ye >> 1), nA.F != null && (nA.J += nA.width * ye)), Be < Ie && (nA.O += nA.v, nA.N += nA.v >> 1, nA.W += nA.v >> 1, nA.F != null && (nA.J += nA.v), nA.ka = Be - nA.j, nA.U = nA.va - nA.v, nA.T = Ie - Be, bA = nA.put(nA));
}
vA + 1 != AA.Ic || be || (r(AA.sa, AA.ta - HA, jA, re + 16 * AA.R, HA), r(AA.qa, AA.ra - zA, qA, LA + 8 * AA.B, zA), r(AA.Ha, AA.Ia - zA, Le, xe + 8 * AA.B, zA));
}
if (!bA) return Je(aA, 6, "Output aborted.");
}
return 1;
}(a, l)), l.bc != null && l.bc(l), f &= 1;
}
return f ? (a.cb = 0, f) : 0;
}
function wr(a, l, f, B, m) {
m = a[l + f + 32 * B] + (m >> 3), a[l + f + 32 * B] = -256 & m ? 0 > m ? 0 : 255 : m;
}
function yi(a, l, f, B, m, b) {
wr(a, l, 0, f, B + m), wr(a, l, 1, f, B + b), wr(a, l, 2, f, B - b), wr(a, l, 3, f, B - m);
}
function Pt(a) {
return (20091 * a >> 16) + a;
}
function da(a, l, f, B) {
var m, b = 0, E = i(16);
for (m = 0; 4 > m; ++m) {
var I = a[l + 0] + a[l + 8], S = a[l + 0] - a[l + 8], T = (35468 * a[l + 4] >> 16) - Pt(a[l + 12]), Z = Pt(a[l + 4]) + (35468 * a[l + 12] >> 16);
E[b + 0] = I + Z, E[b + 1] = S + T, E[b + 2] = S - T, E[b + 3] = I - Z, b += 4, l++;
}
for (m = b = 0; 4 > m; ++m) I = (a = E[b + 0] + 4) + E[b + 8], S = a - E[b + 8], T = (35468 * E[b + 4] >> 16) - Pt(E[b + 12]), wr(f, B, 0, 0, I + (Z = Pt(E[b + 4]) + (35468 * E[b + 12] >> 16))), wr(f, B, 1, 0, S + T), wr(f, B, 2, 0, S - T), wr(f, B, 3, 0, I - Z), b++, B += 32;
}
function vs(a, l, f, B) {
var m = a[l + 0] + 4, b = 35468 * a[l + 4] >> 16, E = Pt(a[l + 4]), I = 35468 * a[l + 1] >> 16;
yi(f, B, 0, m + E, a = Pt(a[l + 1]), I), yi(f, B, 1, m + b, a, I), yi(f, B, 2, m - b, a, I), yi(f, B, 3, m - E, a, I);
}
function Cl(a, l, f, B, m) {
da(a, l, f, B), m && da(a, l + 16, f, B + 4);
}
function ms(a, l, f, B) {
tn(a, l + 0, f, B, 1), tn(a, l + 32, f, B + 128, 1);
}
function yl(a, l, f, B) {
var m;
for (a = a[l + 0] + 4, m = 0; 4 > m; ++m) for (l = 0; 4 > l; ++l) wr(f, B, l, m, a);
}
function Cs(a, l, f, B) {
a[l + 0] && Nt(a, l + 0, f, B), a[l + 16] && Nt(a, l + 16, f, B + 4), a[l + 32] && Nt(a, l + 32, f, B + 128), a[l + 48] && Nt(a, l + 48, f, B + 128 + 4);
}
function Fl(a, l, f, B) {
var m, b = i(16);
for (m = 0; 4 > m; ++m) {
var E = a[l + 0 + m] + a[l + 12 + m], I = a[l + 4 + m] + a[l + 8 + m], S = a[l + 4 + m] - a[l + 8 + m], T = a[l + 0 + m] - a[l + 12 + m];
b[0 + m] = E + I, b[8 + m] = E - I, b[4 + m] = T + S, b[12 + m] = T - S;
}
for (m = 0; 4 > m; ++m) E = (a = b[0 + 4 * m] + 3) + b[3 + 4 * m], I = b[1 + 4 * m] + b[2 + 4 * m], S = b[1 + 4 * m] - b[2 + 4 * m], T = a - b[3 + 4 * m], f[B + 0] = E + I >> 3, f[B + 16] = T + S >> 3, f[B + 32] = E - I >> 3, f[B + 48] = T - S >> 3, B += 64;
}
function ga(a, l, f) {
var B, m = l - 32, b = Xt, E = 255 - a[m - 1];
for (B = 0; B < f; ++B) {
var I, S = b, T = E + a[l - 1];
for (I = 0; I < f; ++I) a[l + I] = S[T + a[m + I]];
l += 32;
}
}
function Ql(a, l) {
ga(a, l, 4);
}
function bl(a, l) {
ga(a, l, 8);
}
function Ul(a, l) {
ga(a, l, 16);
}
function $r(a, l) {
var f;
for (f = 0; 16 > f; ++f) r(a, l + 32 * f, a, l - 32, 16);
}
function Fi(a, l) {
var f;
for (f = 16; 0 < f; --f) n(a, l, a[l - 1], 16), l += 32;
}
function Qi(a, l, f) {
var B;
for (B = 0; 16 > B; ++B) n(l, f + 32 * B, a, 16);
}
function ys(a, l) {
var f, B = 16;
for (f = 0; 16 > f; ++f) B += a[l - 1 + 32 * f] + a[l + f - 32];
Qi(B >> 5, a, l);
}
function Qt(a, l) {
var f, B = 8;
for (f = 0; 16 > f; ++f) B += a[l - 1 + 32 * f];
Qi(B >> 4, a, l);
}
function Ll(a, l) {
var f, B = 8;
for (f = 0; 16 > f; ++f) B += a[l + f - 32];
Qi(B >> 4, a, l);
}
function Fs(a, l) {
Qi(128, a, l);
}
function fe(a, l, f) {
return a + 2 * l + f + 2 >> 2;
}
function El(a, l) {
var f, B = l - 32;
for (B = new Uint8Array([fe(a[B - 1], a[B + 0], a[B + 1]), fe(a[B + 0], a[B + 1], a[B + 2]), fe(a[B + 1], a[B + 2], a[B + 3]), fe(a[B + 2], a[B + 3], a[B + 4])]), f = 0; 4 > f; ++f) r(a, l + 32 * f, B, 0, B.length);
}
function xl(a, l) {
var f = a[l - 1], B = a[l - 1 + 32], m = a[l - 1 + 64], b = a[l - 1 + 96];
MA(a, l + 0, 16843009 * fe(a[l - 1 - 32], f, B)), MA(a, l + 32, 16843009 * fe(f, B, m)), MA(a, l + 64, 16843009 * fe(B, m, b)), MA(a, l + 96, 16843009 * fe(m, b, b));
}
function Mr(a, l) {
var f, B = 4;
for (f = 0; 4 > f; ++f) B += a[l + f - 32] + a[l - 1 + 32 * f];
for (B >>= 3, f = 0; 4 > f; ++f) n(a, l + 32 * f, B, 4);
}
function Qs(a, l) {
var f = a[l - 1 + 0], B = a[l - 1 + 32], m = a[l - 1 + 64], b = a[l - 1 - 32], E = a[l + 0 - 32], I = a[l + 1 - 32], S = a[l + 2 - 32], T = a[l + 3 - 32];
a[l + 0 + 96] = fe(B, m, a[l - 1 + 96]), a[l + 1 + 96] = a[l + 0 + 64] = fe(f, B, m), a[l + 2 + 96] = a[l + 1 + 64] = a[l + 0 + 32] = fe(b, f, B), a[l + 3 + 96] = a[l + 2 + 64] = a[l + 1 + 32] = a[l + 0 + 0] = fe(E, b, f), a[l + 3 + 64] = a[l + 2 + 32] = a[l + 1 + 0] = fe(I, E, b), a[l + 3 + 32] = a[l + 2 + 0] = fe(S, I, E), a[l + 3 + 0] = fe(T, S, I);
}
function bs(a, l) {
var f = a[l + 1 - 32], B = a[l + 2 - 32], m = a[l + 3 - 32], b = a[l + 4 - 32], E = a[l + 5 - 32], I = a[l + 6 - 32], S = a[l + 7 - 32];
a[l + 0 + 0] = fe(a[l + 0 - 32], f, B), a[l + 1 + 0] = a[l + 0 + 32] = fe(f, B, m), a[l + 2 + 0] = a[l + 1 + 32] = a[l + 0 + 64] = fe(B, m, b), a[l + 3 + 0] = a[l + 2 + 32] = a[l + 1 + 64] = a[l + 0 + 96] = fe(m, b, E), a[l + 3 + 32] = a[l + 2 + 64] = a[l + 1 + 96] = fe(b, E, I), a[l + 3 + 64] = a[l + 2 + 96] = fe(E, I, S), a[l + 3 + 96] = fe(I, S, S);
}
function bi(a, l) {
var f = a[l - 1 + 0], B = a[l - 1 + 32], m = a[l - 1 + 64], b = a[l - 1 - 32], E = a[l + 0 - 32], I = a[l + 1 - 32], S = a[l + 2 - 32], T = a[l + 3 - 32];
a[l + 0 + 0] = a[l + 1 + 64] = b + E + 1 >> 1, a[l + 1 + 0] = a[l + 2 + 64] = E + I + 1 >> 1, a[l + 2 + 0] = a[l + 3 + 64] = I + S + 1 >> 1, a[l + 3 + 0] = S + T + 1 >> 1, a[l + 0 + 96] = fe(m, B, f), a[l + 0 + 64] = fe(B, f, b), a[l + 0 + 32] = a[l + 1 + 96] = fe(f, b, E), a[l + 1 + 32] = a[l + 2 + 96] = fe(b, E, I), a[l + 2 + 32] = a[l + 3 + 96] = fe(E, I, S), a[l + 3 + 32] = fe(I, S, T);
}
function pa(a, l) {
var f = a[l + 0 - 32], B = a[l + 1 - 32], m = a[l + 2 - 32], b = a[l + 3 - 32], E = a[l + 4 - 32], I = a[l + 5 - 32], S = a[l + 6 - 32], T = a[l + 7 - 32];
a[l + 0 + 0] = f + B + 1 >> 1, a[l + 1 + 0] = a[l + 0 + 64] = B + m + 1 >> 1, a[l + 2 + 0] = a[l + 1 + 64] = m + b + 1 >> 1, a[l + 3 + 0] = a[l + 2 + 64] = b + E + 1 >> 1, a[l + 0 + 32] = fe(f, B, m), a[l + 1 + 32] = a[l + 0 + 96] = fe(B, m, b), a[l + 2 + 32] = a[l + 1 + 96] = fe(m, b, E), a[l + 3 + 32] = a[l + 2 + 96] = fe(b, E, I), a[l + 3 + 64] = fe(E, I, S), a[l + 3 + 96] = fe(I, S, T);
}
function Il(a, l) {
var f = a[l - 1 + 0], B = a[l - 1 + 32], m = a[l - 1 + 64], b = a[l - 1 + 96];
a[l + 0 + 0] = f + B + 1 >> 1, a[l + 2 + 0] = a[l + 0 + 32] = B + m + 1 >> 1, a[l + 2 + 32] = a[l + 0 + 64] = m + b + 1 >> 1, a[l + 1 + 0] = fe(f, B, m), a[l + 3 + 0] = a[l + 1 + 32] = fe(B, m, b), a[l + 3 + 32] = a[l + 1 + 64] = fe(m, b, b), a[l + 3 + 64] = a[l + 2 + 64] = a[l + 0 + 96] = a[l + 1 + 96] = a[l + 2 + 96] = a[l + 3 + 96] = b;
}
function Sl(a, l) {
var f = a[l - 1 + 0], B = a[l - 1 + 32], m = a[l - 1 + 64], b = a[l - 1 + 96], E = a[l - 1 - 32], I = a[l + 0 - 32], S = a[l + 1 - 32], T = a[l + 2 - 32];
a[l + 0 + 0] = a[l + 2 + 32] = f + E + 1 >> 1, a[l + 0 + 32] = a[l + 2 + 64] = B + f + 1 >> 1, a[l + 0 + 64] = a[l + 2 + 96] = m + B + 1 >> 1, a[l + 0 + 96] = b + m + 1 >> 1, a[l + 3 + 0] = fe(I, S, T), a[l + 2 + 0] = fe(E, I, S), a[l + 1 + 0] = a[l + 3 + 32] = fe(f, E, I), a[l + 1 + 32] = a[l + 3 + 64] = fe(B, f, E), a[l + 1 + 64] = a[l + 3 + 96] = fe(m, B, f), a[l + 1 + 96] = fe(b, m, B);
}
function Hl(a, l) {
var f;
for (f = 0; 8 > f; ++f) r(a, l + 32 * f, a, l - 32, 8);
}
function Ba(a, l) {
var f;
for (f = 0; 8 > f; ++f) n(a, l, a[l - 1], 8), l += 32;
}
function Wn(a, l, f) {
var B;
for (B = 0; 8 > B; ++B) n(l, f + 32 * B, a, 8);
}
function dn(a, l) {
var f, B = 8;
for (f = 0; 8 > f; ++f) B += a[l + f - 32] + a[l - 1 + 32 * f];
Wn(B >> 4, a, l);
}
function Dl(a, l) {
var f, B = 4;
for (f = 0; 8 > f; ++f) B += a[l + f - 32];
Wn(B >> 3, a, l);
}
function Xn(a, l) {
var f, B = 4;
for (f = 0; 8 > f; ++f) B += a[l - 1 + 32 * f];
Wn(B >> 3, a, l);
}
function wa(a, l) {
Wn(128, a, l);
}
function Ui(a, l, f) {
var B = a[l - f], m = a[l + 0], b = 3 * (m - B) + Pl[1020 + a[l - 2 * f] - a[l + f]], E = Ms[112 + (b + 4 >> 3)];
a[l - f] = Xt[255 + B + Ms[112 + (b + 3 >> 3)]], a[l + 0] = Xt[255 + m - E];
}
function Us(a, l, f, B) {
var m = a[l + 0], b = a[l + f];
return ir[255 + a[l - 2 * f] - a[l - f]] > B || ir[255 + b - m] > B;
}
function Ls(a, l, f, B) {
return 4 * ir[255 + a[l - f] - a[l + 0]] + ir[255 + a[l - 2 * f] - a[l + f]] <= B;
}
function Es(a, l, f, B, m) {
var b = a[l - 3 * f], E = a[l - 2 * f], I = a[l - f], S = a[l + 0], T = a[l + f], Z = a[l + 2 * f], fA = a[l + 3 * f];
return 4 * ir[255 + I - S] + ir[255 + E - T] > B ? 0 : ir[255 + a[l - 4 * f] - b] <= m && ir[255 + b - E] <= m && ir[255 + E - I] <= m && ir[255 + fA - Z] <= m && ir[255 + Z - T] <= m && ir[255 + T - S] <= m;
}
function xs(a, l, f, B) {
var m = 2 * B + 1;
for (B = 0; 16 > B; ++B) Ls(a, l + B, f, m) && Ui(a, l + B, f);
}
function Pr(a, l, f, B) {
var m = 2 * B + 1;
for (B = 0; 16 > B; ++B) Ls(a, l + B * f, 1, m) && Ui(a, l + B * f, 1);
}
function Zr(a, l, f, B) {
var m;
for (m = 3; 0 < m; --m) xs(a, l += 4 * f, f, B);
}
function Nl(a, l, f, B) {
var m;
for (m = 3; 0 < m; --m) Pr(a, l += 4, f, B);
}
function gn(a, l, f, B, m, b, E, I) {
for (b = 2 * b + 1; 0 < m--; ) {
if (Es(a, l, f, b, E)) if (Us(a, l, f, I)) Ui(a, l, f);
else {
var S = a, T = l, Z = f, fA = S[T - 2 * Z], hA = S[T - Z], aA = S[T + 0], EA = S[T + Z], vA = S[T + 2 * Z], AA = 27 * (bA = Pl[1020 + 3 * (aA - hA) + Pl[1020 + fA - EA]]) + 63 >> 7, nA = 18 * bA + 63 >> 7, bA = 9 * bA + 63 >> 7;
S[T - 3 * Z] = Xt[255 + S[T - 3 * Z] + bA], S[T - 2 * Z] = Xt[255 + fA + nA], S[T - Z] = Xt[255 + hA + AA], S[T + 0] = Xt[255 + aA - AA], S[T + Z] = Xt[255 + EA - nA], S[T + 2 * Z] = Xt[255 + vA - bA];
}
l += B;
}
}
function vr(a, l, f, B, m, b, E, I) {
for (b = 2 * b + 1; 0 < m--; ) {
if (Es(a, l, f, b, E)) if (Us(a, l, f, I)) Ui(a, l, f);
else {
var S = a, T = l, Z = f, fA = S[T - Z], hA = S[T + 0], aA = S[T + Z], EA = Ms[112 + ((vA = 3 * (hA - fA)) + 4 >> 3)], vA = Ms[112 + (vA + 3 >> 3)], AA = EA + 1 >> 1;
S[T - 2 * Z] = Xt[255 + S[T - 2 * Z] + AA], S[T - Z] = Xt[255 + fA + vA], S[T + 0] = Xt[255 + hA - EA], S[T + Z] = Xt[255 + aA - AA];
}
l += B;
}
}
function va(a, l, f, B, m, b) {
gn(a, l, f, 1, 16, B, m, b);
}
function zn(a, l, f, B, m, b) {
gn(a, l, 1, f, 16, B, m, b);
}
function kl(a, l, f, B, m, b) {
var E;
for (E = 3; 0 < E; --E) vr(a, l += 4 * f, f, 1, 16, B, m, b);
}
function Li(a, l, f, B, m, b) {
var E;
for (E = 3; 0 < E; --E) vr(a, l += 4, 1, f, 16, B, m, b);
}
function _l(a, l, f, B, m, b, E, I) {
gn(a, l, m, 1, 8, b, E, I), gn(f, B, m, 1, 8, b, E, I);
}
function ma(a, l, f, B, m, b, E, I) {
gn(a, l, 1, m, 8, b, E, I), gn(f, B, 1, m, 8, b, E, I);
}
function Ca(a, l, f, B, m, b, E, I) {
vr(a, l + 4 * m, m, 1, 8, b, E, I), vr(f, B + 4 * m, m, 1, 8, b, E, I);
}
function Is(a, l, f, B, m, b, E, I) {
vr(a, l + 4, 1, m, 8, b, E, I), vr(f, B + 4, 1, m, 8, b, E, I);
}
function Ei() {
this.ba = new Oe(), this.ec = [], this.cc = [], this.Mc = [], this.Dc = this.Nc = this.dc = this.fc = 0, this.Oa = new ve(), this.memory = 0, this.Ib = "OutputFunc", this.Jb = "OutputAlphaFunc", this.Nd = "OutputRowFunc";
}
function ya() {
this.data = [], this.offset = this.kd = this.ha = this.w = 0, this.na = [], this.xa = this.gb = this.Ja = this.Sa = this.P = 0;
}
function Fa() {
this.nc = this.Ea = this.b = this.hc = 0, this.K = [], this.w = 0;
}
function Ss() {
this.ua = 0, this.Wa = new D(), this.vb = new D(), this.md = this.xc = this.wc = 0, this.vc = [], this.Wb = 0, this.Ya = new P(), this.yc = new F();
}
function Tl() {
this.xb = this.a = 0, this.l = new Ci(), this.ca = new Oe(), this.V = [], this.Ba = 0, this.Ta = [], this.Ua = 0, this.m = new L(), this.Pb = 0, this.wd = new L(), this.Ma = this.$ = this.C = this.i = this.c = this.xd = 0, this.s = new Ss(), this.ab = 0, this.gc = s(4, Fa), this.Oc = 0;
}
function xi() {
this.Lc = this.Z = this.$a = this.i = this.c = 0, this.l = new Ci(), this.ic = 0, this.ca = [], this.tb = 0, this.qd = null, this.rd = 0;
}
function Jn(a, l, f, B, m, b, E) {
for (a = a == null ? 0 : a[l + 0], l = 0; l < E; ++l) m[b + l] = a + f[B + l] & 255, a = m[b + l];
}
function Qa(a, l, f, B, m, b, E) {
var I;
if (a == null) Jn(null, null, f, B, m, b, E);
else for (I = 0; I < E; ++I) m[b + I] = a[l + I] + f[B + I] & 255;
}
function pn(a, l, f, B, m, b, E) {
if (a == null) Jn(null, null, f, B, m, b, E);
else {
var I, S = a[l + 0], T = S, Z = S;
for (I = 0; I < E; ++I) T = Z + (S = a[l + I]) - T, Z = f[B + I] + (-256 & T ? 0 > T ? 0 : 255 : T) & 255, T = S, m[b + I] = Z;
}
}
function ba(a, l, f, B) {
var m = l.width, b = l.o;
if (e(a != null && l != null), 0 > f || 0 >= B || f + B > b) return null;
if (!a.Cc) {
if (a.ga == null) {
var E;
if (a.ga = new xi(), (E = a.ga == null) || (E = l.width * l.o, e(a.Gb.length == 0), a.Gb = i(E), a.Uc = 0, a.Gb == null ? E = 0 : (a.mb = a.Gb, a.nb = a.Uc, a.rc = null, E = 1), E = !E), !E) {
E = a.ga;
var I = a.Fa, S = a.P, T = a.qc, Z = a.mb, fA = a.nb, hA = S + 1, aA = T - 1, EA = E.l;
if (e(I != null && Z != null && l != null), yn[0] = null, yn[1] = Jn, yn[2] = Qa, yn[3] = pn, E.ca = Z, E.tb = fA, E.c = l.width, E.i = l.height, e(0 < E.c && 0 < E.i), 1 >= T) l = 0;
else if (E.$a = I[S + 0] >> 0 & 3, E.Z = I[S + 0] >> 2 & 3, E.Lc = I[S + 0] >> 4 & 3, S = I[S + 0] >> 6 & 3, 0 > E.$a || 1 < E.$a || 4 <= E.Z || 1 < E.Lc || S) l = 0;
else if (EA.put = Dr, EA.ac = wt, EA.bc = Nr, EA.ma = E, EA.width = l.width, EA.height = l.height, EA.Da = l.Da, EA.v = l.v, EA.va = l.va, EA.j = l.j, EA.o = l.o, E.$a) A: {
e(E.$a == 1), l = Ar();
e: for (; ; ) {
if (l == null) {
l = 0;
break A;
}
if (e(E != null), E.mc = l, l.c = E.c, l.i = E.i, l.l = E.l, l.l.ma = E, l.l.width = E.c, l.l.height = E.i, l.a = 0, k(l.m, I, hA, aA), !Tr(E.c, E.i, 1, l, null) || (l.ab == 1 && l.gc[0].hc == 3 && Yr(l.s) ? (E.ic = 1, I = l.c * l.i, l.Ta = null, l.Ua = 0, l.V = i(I), l.Ba = 0, l.V == null ? (l.a = 1, l = 0) : l = 1) : (E.ic = 0, l = qn(l, E.c)), !l)) break e;
l = 1;
break A;
}
E.mc = null, l = 0;
}
else l = aA >= E.c * E.i;
E = !l;
}
if (E) return null;
a.ga.Lc != 1 ? a.Ga = 0 : B = b - f;
}
e(a.ga != null), e(f + B <= b);
A: {
if (l = (I = a.ga).c, b = I.l.o, I.$a == 0) {
if (hA = a.rc, aA = a.Vc, EA = a.Fa, S = a.P + 1 + f * l, T = a.mb, Z = a.nb + f * l, e(S <= a.P + a.qc), I.Z != 0) for (e(yn[I.Z] != null), E = 0; E < B; ++E) yn[I.Z](hA, aA, EA, S, T, Z, l), hA = T, aA = Z, Z += l, S += l;
else for (E = 0; E < B; ++E) r(T, Z, EA, S, l), hA = T, aA = Z, Z += l, S += l;
a.rc = hA, a.Vc = aA;
} else {
if (e(I.mc != null), l = f + B, e((E = I.mc) != null), e(l <= E.i), E.C >= l) l = 1;
else if (I.ic || cA(), I.ic) {
I = E.V, hA = E.Ba, aA = E.c;
var vA = E.i, AA = (EA = 1, S = E.$ / aA, T = E.$ % aA, Z = E.m, fA = E.s, E.$), nA = aA * vA, bA = aA * l, HA = fA.wc, LA = AA < bA ? it(fA, T, S) : null;
e(AA <= nA), e(l <= vA), e(Yr(fA));
e: for (; ; ) {
for (; !Z.h && AA < bA; ) {
if (T & HA || (LA = it(fA, T, S)), e(LA != null), eA(Z), 256 > (vA = Mt(LA.G[0], LA.H[0], Z))) I[hA + AA] = vA, ++AA, ++T >= aA && (T = 0, ++S <= l && !(S % 16) && pr(E, S));
else {
if (!(280 > vA)) {
EA = 0;
break e;
}
vA = dr(vA - 256, Z);
var zA, jA = Mt(LA.G[4], LA.H[4], Z);
if (eA(Z), !(AA >= (jA = kr(aA, jA = dr(jA, Z))) && nA - AA >= vA)) {
EA = 0;
break e;
}
for (zA = 0; zA < vA; ++zA) I[hA + AA + zA] = I[hA + AA + zA - jA];
for (AA += vA, T += vA; T >= aA; ) T -= aA, ++S <= l && !(S % 16) && pr(E, S);
AA < bA && T & HA && (LA = it(fA, T, S));
}
e(Z.h == R(Z));
}
pr(E, S > l ? l : S);
break e;
}
!EA || Z.h && AA < nA ? (EA = 0, E.a = Z.h ? 5 : 3) : E.$ = AA, l = EA;
} else l = Br(E, E.V, E.Ba, E.c, E.i, l, pi);
if (!l) {
B = 0;
break A;
}
}
f + B >= b && (a.Cc = 1), B = 1;
}
if (!B) return null;
if (a.Cc && ((B = a.ga) != null && (B.mc = null), a.ga = null, 0 < a.Ga)) return alert("todo:WebPDequantizeLevels"), null;
}
return a.nb + f * m;
}
function u(a, l, f, B, m, b) {
for (; 0 < m--; ) {
var E, I = a, S = l + (f ? 1 : 0), T = a, Z = l + (f ? 0 : 3);
for (E = 0; E < B; ++E) {
var fA = T[Z + 4 * E];
fA != 255 && (fA *= 32897, I[S + 4 * E + 0] = I[S + 4 * E + 0] * fA >> 23, I[S + 4 * E + 1] = I[S + 4 * E + 1] * fA >> 23, I[S + 4 * E + 2] = I[S + 4 * E + 2] * fA >> 23);
}
l += b;
}
}
function C(a, l, f, B, m) {
for (; 0 < B--; ) {
var b;
for (b = 0; b < f; ++b) {
var E = a[l + 2 * b + 0], I = 15 & (T = a[l + 2 * b + 1]), S = 4369 * I, T = (240 & T | T >> 4) * S >> 16;
a[l + 2 * b + 0] = (240 & E | E >> 4) * S >> 16 & 240 | (15 & E | E << 4) * S >> 16 >> 4 & 15, a[l + 2 * b + 1] = 240 & T | I;
}
l += m;
}
}
function O(a, l, f, B, m, b, E, I) {
var S, T, Z = 255;
for (T = 0; T < m; ++T) {
for (S = 0; S < B; ++S) {
var fA = a[l + S];
b[E + 4 * S] = fA, Z &= fA;
}
l += f, E += I;
}
return Z != 255;
}
function Y(a, l, f, B, m) {
var b;
for (b = 0; b < m; ++b) f[B + b] = a[l + b] >> 8;
}
function cA() {
nr = u, Te = C, Me = O, $e = Y;
}
function CA(a, l, f) {
H[a] = function(B, m, b, E, I, S, T, Z, fA, hA, aA, EA, vA, AA, nA, bA, HA) {
var LA, zA = HA - 1 >> 1, jA = I[S + 0] | T[Z + 0] << 16, re = fA[hA + 0] | aA[EA + 0] << 16;
e(B != null);
var qA = 3 * jA + re + 131074 >> 2;
for (l(B[m + 0], 255 & qA, qA >> 16, vA, AA), b != null && (qA = 3 * re + jA + 131074 >> 2, l(b[E + 0], 255 & qA, qA >> 16, nA, bA)), LA = 1; LA <= zA; ++LA) {
var Le = I[S + LA] | T[Z + LA] << 16, xe = fA[hA + LA] | aA[EA + LA] << 16, be = jA + Le + re + xe + 524296, ye = be + 2 * (Le + re) >> 3;
qA = ye + jA >> 1, jA = (be = be + 2 * (jA + xe) >> 3) + Le >> 1, l(B[m + 2 * LA - 1], 255 & qA, qA >> 16, vA, AA + (2 * LA - 1) * f), l(B[m + 2 * LA - 0], 255 & jA, jA >> 16, vA, AA + (2 * LA - 0) * f), b != null && (qA = be + re >> 1, jA = ye + xe >> 1, l(b[E + 2 * LA - 1], 255 & qA, qA >> 16, nA, bA + (2 * LA - 1) * f), l(b[E + 2 * LA + 0], 255 & jA, jA >> 16, nA, bA + (2 * LA + 0) * f)), jA = Le, re = xe;
}
1 & HA || (qA = 3 * jA + re + 131074 >> 2, l(B[m + HA - 1], 255 & qA, qA >> 16, vA, AA + (HA - 1) * f), b != null && (qA = 3 * re + jA + 131074 >> 2, l(b[E + HA - 1], 255 & qA, qA >> 16, nA, bA + (HA - 1) * f)));
};
}
function kA() {
ar[Ps] = og, ar[Os] = Su, ar[Uu] = lg, ar[Ks] = Hu, ar[Rs] = Du, ar[Ol] = Nu, ar[Lu] = cg, ar[Kl] = Su, ar[Rl] = Hu, ar[Gs] = Du, ar[Gl] = Nu;
}
function XA(a) {
return a & -16384 ? 0 > a ? 0 : 255 : a >> ug;
}
function te(a, l) {
return XA((19077 * a >> 8) + (26149 * l >> 8) - 14234);
}
function pe(a, l, f) {
return XA((19077 * a >> 8) - (6419 * l >> 8) - (13320 * f >> 8) + 8708);
}
function de(a, l) {
return XA((19077 * a >> 8) + (33050 * l >> 8) - 17685);
}
function Qe(a, l, f, B, m) {
B[m + 0] = te(a, f), B[m + 1] = pe(a, l, f), B[m + 2] = de(a, l);
}
function je(a, l, f, B, m) {
B[m + 0] = de(a, l), B[m + 1] = pe(a, l, f), B[m + 2] = te(a, f);
}
function qe(a, l, f, B, m) {
var b = pe(a, l, f);
l = b << 3 & 224 | de(a, l) >> 3, B[m + 0] = 248 & te(a, f) | b >> 5, B[m + 1] = l;
}
function at(a, l, f, B, m) {
var b = 240 & de(a, l) | 15;
B[m + 0] = 240 & te(a, f) | pe(a, l, f) >> 4, B[m + 1] = b;
}
function bt(a, l, f, B, m) {
B[m + 0] = 255, Qe(a, l, f, B, m + 1);
}
function ht(a, l, f, B, m) {
je(a, l, f, B, m), B[m + 3] = 255;
}
function mr(a, l, f, B, m) {
Qe(a, l, f, B, m), B[m + 3] = 255;
}
function Wt(a, l) {
return 0 > a ? 0 : a > l ? l : a;
}
function Or(a, l, f) {
H[a] = function(B, m, b, E, I, S, T, Z, fA) {
for (var hA = Z + (-2 & fA) * f; Z != hA; ) l(B[m + 0], b[E + 0], I[S + 0], T, Z), l(B[m + 1], b[E + 0], I[S + 0], T, Z + f), m += 2, ++E, ++S, Z += 2 * f;
1 & fA && l(B[m + 0], b[E + 0], I[S + 0], T, Z);
};
}
function Hs(a, l, f) {
return f == 0 ? a == 0 ? l == 0 ? 6 : 5 : l == 0 ? 4 : 0 : f;
}
function Ua(a, l, f, B, m) {
switch (a >>> 30) {
case 3:
tn(l, f, B, m, 0);
break;
case 2:
Ye(l, f, B, m);
break;
case 1:
Nt(l, f, B, m);
}
}
function La(a, l) {
var f, B, m = l.M, b = l.Nb, E = a.oc, I = a.pc + 40, S = a.oc, T = a.pc + 584, Z = a.oc, fA = a.pc + 600;
for (f = 0; 16 > f; ++f) E[I + 32 * f - 1] = 129;
for (f = 0; 8 > f; ++f) S[T + 32 * f - 1] = 129, Z[fA + 32 * f - 1] = 129;
for (0 < m ? E[I - 1 - 32] = S[T - 1 - 32] = Z[fA - 1 - 32] = 129 : (n(E, I - 32 - 1, 127, 21), n(S, T - 32 - 1, 127, 9), n(Z, fA - 32 - 1, 127, 9)), B = 0; B < a.za; ++B) {
var hA = l.ya[l.aa + B];
if (0 < B) {
for (f = -1; 16 > f; ++f) r(E, I + 32 * f - 4, E, I + 32 * f + 12, 4);
for (f = -1; 8 > f; ++f) r(S, T + 32 * f - 4, S, T + 32 * f + 4, 4), r(Z, fA + 32 * f - 4, Z, fA + 32 * f + 4, 4);
}
var aA = a.Gd, EA = a.Hd + B, vA = hA.ad, AA = hA.Hc;
if (0 < m && (r(E, I - 32, aA[EA].y, 0, 16), r(S, T - 32, aA[EA].f, 0, 8), r(Z, fA - 32, aA[EA].ea, 0, 8)), hA.Za) {
var nA = E, bA = I - 32 + 16;
for (0 < m && (B >= a.za - 1 ? n(nA, bA, aA[EA].y[15], 4) : r(nA, bA, aA[EA + 1].y, 0, 4)), f = 0; 4 > f; f++) nA[bA + 128 + f] = nA[bA + 256 + f] = nA[bA + 384 + f] = nA[bA + 0 + f];
for (f = 0; 16 > f; ++f, AA <<= 2) nA = E, bA = I + _u[f], Cr[hA.Ob[f]](nA, bA), Ua(AA, vA, 16 * +f, nA, bA);
} else if (nA = Hs(B, m, hA.Ob[0]), Cn[nA](E, I), AA != 0) for (f = 0; 16 > f; ++f, AA <<= 2) Ua(AA, vA, 16 * +f, E, I + _u[f]);
for (f = hA.Gc, nA = Hs(B, m, hA.Dd), nn[nA](S, T), nn[nA](Z, fA), AA = vA, nA = S, bA = T, 255 & (hA = f >> 0) && (170 & hA ? Ha(AA, 256, nA, bA) : tr(AA, 256, nA, bA)), hA = Z, AA = fA, 255 & (f >>= 8) && (170 & f ? Ha(vA, 320, hA, AA) : tr(vA, 320, hA, AA)), m < a.Ub - 1 && (r(aA[EA].y, 0, E, I + 480, 16), r(aA[EA].f, 0, S, T + 224, 8), r(aA[EA].ea, 0, Z, fA + 224, 8)), f = 8 * b * a.B, aA = a.sa, EA = a.ta + 16 * B + 16 * b * a.R, vA = a.qa, hA = a.ra + 8 * B + f, AA = a.Ha, nA = a.Ia + 8 * B + f, f = 0; 16 > f; ++f) r(aA, EA + f * a.R, E, I + 32 * f, 16);
for (f = 0; 8 > f; ++f) r(vA, hA + f * a.B, S, T + 32 * f, 8), r(AA, nA + f * a.B, Z, fA + 32 * f, 8);
}
}
function Ii(a, l, f, B, m, b, E, I, S) {
var T = [0], Z = [0], fA = 0, hA = S != null ? S.kd : 0, aA = S ?? new ya();
if (a == null || 12 > f) return 7;
aA.data = a, aA.w = l, aA.ha = f, l = [l], f = [f], aA.gb = [aA.gb];
A: {
var EA = l, vA = f, AA = aA.gb;
if (e(a != null), e(vA != null), e(AA != null), AA[0] = 0, 12 <= vA[0] && !A(a, EA[0], "RIFF")) {
if (A(a, EA[0] + 8, "WEBP")) {
AA = 3;
break A;
}
var nA = GA(a, EA[0] + 4);
if (12 > nA || 4294967286 < nA) {
AA = 3;
break A;
}
if (hA && nA > vA[0] - 8) {
AA = 7;
break A;
}
AA[0] = nA, EA[0] += 12, vA[0] -= 12;
}
AA = 0;
}
if (AA != 0) return AA;
for (nA = 0 < aA.gb[0], f = f[0]; ; ) {
A: {
var bA = a;
vA = l, AA = f;
var HA = T, LA = Z, zA = EA = [0];
if ((qA = fA = [fA])[0] = 0, 8 > AA[0]) AA = 7;
else {
if (!A(bA, vA[0], "VP8X")) {
if (GA(bA, vA[0] + 4) != 10) {
AA = 3;
break A;
}
if (18 > AA[0]) {
AA = 7;
break A;
}
var jA = GA(bA, vA[0] + 8), re = 1 + RA(bA, vA[0] + 12);
if (2147483648 <= re * (bA = 1 + RA(bA, vA[0] + 15))) {
AA = 3;
break A;
}
zA != null && (zA[0] = jA), HA != null && (HA[0] = re), LA != null && (LA[0] = bA), vA[0] += 18, AA[0] -= 18, qA[0] = 1;
}
AA = 0;
}
}
if (fA = fA[0], EA = EA[0], AA != 0) return AA;
if (vA = !!(2 & EA), !nA && fA) return 3;
if (b != null && (b[0] = !!(16 & EA)), E != null && (E[0] = vA), I != null && (I[0] = 0), E = T[0], EA = Z[0], fA && vA && S == null) {
AA = 0;
break;
}
if (4 > f) {
AA = 7;
break;
}
if (nA && fA || !nA && !fA && !A(a, l[0], "ALPH")) {
f = [f], aA.na = [aA.na], aA.P = [aA.P], aA.Sa = [aA.Sa];
A: {
jA = a, AA = l, nA = f;
var qA = aA.gb;
HA = aA.na, LA = aA.P, zA = aA.Sa, re = 22, e(jA != null), e(nA != null), bA = AA[0];
var Le = nA[0];
for (e(HA != null), e(zA != null), HA[0] = null, LA[0] = null, zA[0] = 0; ; ) {
if (AA[0] = bA, nA[0] = Le, 8 > Le) {
AA = 7;
break A;
}
var xe = GA(jA, bA + 4);
if (4294967286 < xe) {
AA = 3;
break A;
}
var be = 8 + xe + 1 & -2;
if (re += be, 0 < qA && re > qA) {
AA = 3;
break A;
}
if (!A(jA, bA, "VP8 ") || !A(jA, bA, "VP8L")) {
AA = 0;
break A;
}
if (Le[0] < be) {
AA = 7;
break A;
}
A(jA, bA, "ALPH") || (HA[0] = jA, LA[0] = bA + 8, zA[0] = xe), bA += be, Le -= be;
}
}
if (f = f[0], aA.na = aA.na[0], aA.P = aA.P[0], aA.Sa = aA.Sa[0], AA != 0) break;
}
f = [f], aA.Ja = [aA.Ja], aA.xa = [aA.xa];
A: if (qA = a, AA = l, nA = f, HA = aA.gb[0], LA = aA.Ja, zA = aA.xa, jA = AA[0], bA = !A(qA, jA, "VP8 "), re = !A(qA, jA, "VP8L"), e(qA != null), e(nA != null), e(LA != null), e(zA != null), 8 > nA[0]) AA = 7;
else {
if (bA || re) {
if (qA = GA(qA, jA + 4), 12 <= HA && qA > HA - 12) {
AA = 3;
break A;
}
if (hA && qA > nA[0] - 8) {
AA = 7;
break A;
}
LA[0] = qA, AA[0] += 8, nA[0] -= 8, zA[0] = re;
} else zA[0] = 5 <= nA[0] && qA[jA + 0] == 47 && !(qA[jA + 4] >> 5), LA[0] = nA[0];
AA = 0;
}
if (f = f[0], aA.Ja = aA.Ja[0], aA.xa = aA.xa[0], l = l[0], AA != 0) break;
if (4294967286 < aA.Ja) return 3;
if (I == null || vA || (I[0] = aA.xa ? 2 : 1), E = [E], EA = [EA], aA.xa) {
if (5 > f) {
AA = 7;
break;
}
I = E, hA = EA, vA = b, a == null || 5 > f ? a = 0 : 5 <= f && a[l + 0] == 47 && !(a[l + 4] >> 5) ? (nA = [0], qA = [0], HA = [0], k(LA = new L(), a, l, f), ie(LA, nA, qA, HA) ? (I != null && (I[0] = nA[0]), hA != null && (hA[0] = qA[0]), vA != null && (vA[0] = HA[0]), a = 1) : a = 0) : a = 0;
} else {
if (10 > f) {
AA = 7;
break;
}
I = EA, a == null || 10 > f || !ps(a, l + 3, f - 3) ? a = 0 : (hA = a[l + 0] | a[l + 1] << 8 | a[l + 2] << 16, vA = 16383 & (a[l + 7] << 8 | a[l + 6]), a = 16383 & (a[l + 9] << 8 | a[l + 8]), 1 & hA || 3 < (hA >> 1 & 7) || !(hA >> 4 & 1) || hA >> 5 >= aA.Ja || !vA || !a ? a = 0 : (E && (E[0] = vA), I && (I[0] = a), a = 1));
}
if (!a || (E = E[0], EA = EA[0], fA && (T[0] != E || Z[0] != EA))) return 3;
S != null && (S[0] = aA, S.offset = l - S.w, e(4294967286 > l - S.w), e(S.offset == S.ha - f));
break;
}
return AA == 0 || AA == 7 && fA && S == null ? (b != null && (b[0] |= aA.na != null && 0 < aA.na.length), B != null && (B[0] = E), m != null && (m[0] = EA), 0) : AA;
}
function Ea(a, l, f) {
var B = l.width, m = l.height, b = 0, E = 0, I = B, S = m;
if (l.Da = a != null && 0 < a.Da, l.Da && (I = a.cd, S = a.bd, b = a.v, E = a.j, 11 > f || (b &= -2, E &= -2), 0 > b || 0 > E || 0 >= I || 0 >= S || b + I > B || E + S > m)) return 0;
if (l.v = b, l.j = E, l.va = b + I, l.o = E + S, l.U = I, l.T = S, l.da = a != null && 0 < a.da, l.da) {
if (!$(I, S, f = [a.ib], b = [a.hb])) return 0;
l.ib = f[0], l.hb = b[0];
}
return l.ob = a != null && a.ob, l.Kb = a == null || !a.Sd, l.da && (l.ob = l.ib < 3 * B / 4 && l.hb < 3 * m / 4, l.Kb = 0), 1;
}
function xa(a) {
if (a == null) return 2;
if (11 > a.S) {
var l = a.f.RGBA;
l.fb += (a.height - 1) * l.A, l.A = -l.A;
} else l = a.f.kb, a = a.height, l.O += (a - 1) * l.fa, l.fa = -l.fa, l.N += (a - 1 >> 1) * l.Ab, l.Ab = -l.Ab, l.W += (a - 1 >> 1) * l.Db, l.Db = -l.Db, l.F != null && (l.J += (a - 1) * l.lb, l.lb = -l.lb);
return 0;
}
function Si(a, l, f, B) {
if (B == null || 0 >= a || 0 >= l) return 2;
if (f != null) {
if (f.Da) {
var m = f.cd, b = f.bd, E = -2 & f.v, I = -2 & f.j;
if (0 > E || 0 > I || 0 >= m || 0 >= b || E + m > a || I + b > l) return 2;
a = m, l = b;
}
if (f.da) {
if (!$(a, l, m = [f.ib], b = [f.hb])) return 2;
a = m[0], l = b[0];
}
}
B.width = a, B.height = l;
A: {
var S = B.width, T = B.height;
if (a = B.S, 0 >= S || 0 >= T || !(a >= Ps && 13 > a)) a = 2;
else {
if (0 >= B.Rd && B.sd == null) {
E = b = m = l = 0;
var Z = (I = S * Tu[a]) * T;
if (11 > a || (b = (T + 1) / 2 * (l = (S + 1) / 2), a == 12 && (E = (m = S) * T)), (T = i(Z + 2 * b + E)) == null) {
a = 1;
break A;
}
B.sd = T, 11 > a ? ((S = B.f.RGBA).eb = T, S.fb = 0, S.A = I, S.size = Z) : ((S = B.f.kb).y = T, S.O = 0, S.fa = I, S.Fd = Z, S.f = T, S.N = 0 + Z, S.Ab = l, S.Cd = b, S.ea = T, S.W = 0 + Z + b, S.Db = l, S.Ed = b, a == 12 && (S.F = T, S.J = 0 + Z + 2 * b), S.Tc = E, S.lb = m);
}
if (l = 1, m = B.S, b = B.width, E = B.height, m >= Ps && 13 > m) if (11 > m) a = B.f.RGBA, l &= (I = Math.abs(a.A)) * (E - 1) + b <= a.size, l &= I >= b * Tu[m], l &= a.eb != null;
else {
a = B.f.kb, I = (b + 1) / 2, Z = (E + 1) / 2, S = Math.abs(a.fa), T = Math.abs(a.Ab);
var fA = Math.abs(a.Db), hA = Math.abs(a.lb), aA = hA * (E - 1) + b;
l &= S * (E - 1) + b <= a.Fd, l &= T * (Z - 1) + I <= a.Cd, l = (l &= fA * (Z - 1) + I <= a.Ed) & S >= b & T >= I & fA >= I, l &= a.y != null, l &= a.f != null, l &= a.ea != null, m == 12 && (l &= hA >= b, l &= aA <= a.Tc, l &= a.F != null);
}
else l = 0;
a = l ? 0 : 2;
}
}
return a != 0 || f != null && f.fd && (a = xa(B)), a;
}
var vt = 64, Hi = [0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535, 131071, 262143, 524287, 1048575, 2097151, 4194303, 8388607, 16777215], Di = 24, Ni = 32, Ia = 8, Ot = [0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7];
pA("Predictor0", "PredictorAdd0"), H.Predictor0 = function() {
return 4278190080;
}, H.Predictor1 = function(a) {
return a;
}, H.Predictor2 = function(a, l, f) {
return l[f + 0];
}, H.Predictor3 = function(a, l, f) {
return l[f + 1];
}, H.Predictor4 = function(a, l, f) {
return l[f - 1];
}, H.Predictor5 = function(a, l, f) {
return UA(UA(a, l[f + 1]), l[f + 0]);
}, H.Predictor6 = function(a, l, f) {
return UA(a, l[f - 1]);
}, H.Predictor7 = function(a, l, f) {
return UA(a, l[f + 0]);
}, H.Predictor8 = function(a, l, f) {
return UA(l[f - 1], l[f + 0]);
}, H.Predictor9 = function(a, l, f) {
return UA(l[f + 0], l[f + 1]);
}, H.Predictor10 = function(a, l, f) {
return UA(UA(a, l[f - 1]), UA(l[f + 0], l[f + 1]));
}, H.Predictor11 = function(a, l, f) {
var B = l[f + 0];
return 0 >= yA(B >> 24 & 255, a >> 24 & 255, (l = l[f - 1]) >> 24 & 255) + yA(B >> 16 & 255, a >> 16 & 255, l >> 16 & 255) + yA(B >> 8 & 255, a >> 8 & 255, l >> 8 & 255) + yA(255 & B, 255 & a, 255 & l) ? B : a;
}, H.Predictor12 = function(a, l, f) {
var B = l[f + 0];
return (SA((a >> 24 & 255) + (B >> 24 & 255) - ((l = l[f - 1]) >> 24 & 255)) << 24 | SA((a >> 16 & 255) + (B >> 16 & 255) - (l >> 16 & 255)) << 16 | SA((a >> 8 & 255) + (B >> 8 & 255) - (l >> 8 & 255)) << 8 | SA((255 & a) + (255 & B) - (255 & l))) >>> 0;
}, H.Predictor13 = function(a, l, f) {
var B = l[f - 1];
return (QA((a = UA(a, l[f + 0])) >> 24 & 255, B >> 24 & 255) << 24 | QA(a >> 16 & 255, B >> 16 & 255) << 16 | QA(a >> 8 & 255, B >> 8 & 255) << 8 | QA(a >> 0 & 255, B >> 0 & 255)) >>> 0;
};
var Ml = H.PredictorAdd0;
H.PredictorAdd1 = PA, pA("Predictor2", "PredictorAdd2"), pA("Predictor3", "PredictorAdd3"), pA("Predictor4", "PredictorAdd4"), pA("Predictor5", "PredictorAdd5"), pA("Predictor6", "PredictorAdd6"), pA("Predictor7", "PredictorAdd7"), pA("Predictor8", "PredictorAdd8"), pA("Predictor9", "PredictorAdd9"), pA("Predictor10", "PredictorAdd10"), pA("Predictor11", "PredictorAdd11"), pA("Predictor12", "PredictorAdd12"), pA("Predictor13", "PredictorAdd13");
var Sa = H.PredictorAdd2;
ne("ColorIndexInverseTransform", "MapARGB", "32b", function(a) {
return a >> 8 & 255;
}, function(a) {
return a;
}), ne("VP8LColorIndexInverseTransformAlpha", "MapAlpha", "8b", function(a) {
return a;
}, function(a) {
return a >> 8 & 255;
});
var Ds, er = H.ColorIndexInverseTransform, ki = H.MapARGB, Ns = H.VP8LColorIndexInverseTransformAlpha, ks = H.MapAlpha, Bn = H.VP8LPredictorsAdd = [];
Bn.length = 16, (H.VP8LPredictors = []).length = 16, (H.VP8LPredictorsAdd_C = []).length = 16, (H.VP8LPredictors_C = []).length = 16;
var Yn, Kt, Dt, wn, An, en, _i, tn, Ye, Ha, Nt, tr, Ti, _s, Da, $n, Zn, vn, Ai, Mi, ei, mn, Na, rr, nr, Te, Me, $e, ut = i(511), rn = i(2041), ka = i(225), Pi = i(767), Ts = 0, Pl = rn, Ms = ka, Xt = Pi, ir = ut, Ps = 0, Os = 1, Uu = 2, Ks = 3, Rs = 4, Ol = 5, Lu = 6, Kl = 7, Rl = 8, Gs = 9, Gl = 10, Xd = [2, 3, 7], zd = [3, 3, 11], Eu = [280, 256, 256, 256, 40], Jd = [0, 1, 1, 1, 0], Yd = [17, 18, 0, 1, 2, 3, 4, 5, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], $d = [24, 7, 23, 25, 40, 6, 39, 41, 22, 26, 38, 42, 56, 5, 55, 57, 21, 27, 54, 58, 37, 43, 72, 4, 71, 73, 20, 28, 53, 59, 70, 74, 36, 44, 88, 69, 75, 52, 60, 3, 87, 89, 19, 29, 86, 90, 35, 45, 68, 76, 85, 91, 51, 61, 104, 2, 103, 105, 18, 30, 102, 106, 34, 46, 84, 92, 67, 77, 101, 107, 50, 62, 120, 1, 119, 121, 83, 93, 17, 31, 100, 108, 66, 78, 118, 122, 33, 47, 117, 123, 49, 63, 99, 109, 82, 94, 0, 116, 124, 65, 79, 16, 32, 98, 110, 48, 115, 125, 81, 95, 64, 114, 126, 97, 111, 80, 113, 127, 96, 112], Zd = [2954, 2956, 2958, 2962, 2970, 2986, 3018, 3082, 3212, 3468, 3980, 5004], Ag = 8, Vl = [4, 5, 6, 7, 8, 9, 10, 10, 11, 12, 13, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 25, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 91, 93, 95, 96, 98, 100, 101, 102, 104, 106, 108, 110, 112, 114, 116, 118, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 143, 145, 148, 151, 154, 157], jl = [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 119, 122, 125, 128, 131, 134, 137, 140, 143, 146, 149, 152, 155, 158, 161, 164, 167, 170, 173, 177, 181, 185, 189, 193, 197, 201, 205, 209, 213, 217, 221, 225, 229, 234, 239, 245, 249, 254, 259, 264, 269, 274, 279, 284], _a = null, eg = [[173, 148, 140, 0], [176, 155, 140, 135, 0], [180, 157, 141, 134, 130, 0], [254, 254, 243, 230, 196, 177, 153, 140, 133, 130, 129, 0]], tg = [0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15], xu = [-0, 1, -1, 2, -2, 3, 4, 6, -3, 5, -4, -5, -6, 7, -7, 8, -8, -9], rg = [[[[128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128], [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128], [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]], [[253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128], [189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128], [106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128]], [[1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128], [181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128], [78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128]], [[1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128], [184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128], [77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128]], [[1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128], [170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128], [37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128]], [[1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128], [207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128], [102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128]], [[1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128], [177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128], [80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128]], [[1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128], [246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128], [255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]]], [[[198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62], [131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1], [68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128]], [[1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128], [184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128], [81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128]], [[1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128], [99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128], [23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128]], [[1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128], [109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128], [44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128]], [[1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128], [94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128], [22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128]], [[1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128], [124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128], [35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128]], [[1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128], [121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128], [45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128]], [[1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128], [203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128], [137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128]]], [[[253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128], [175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128], [73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128]], [[1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128], [239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128], [155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128]], [[1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128], [201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128], [69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128]], [[1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128], [223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128], [141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128]], [[1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128], [190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128], [149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]], [[1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128], [247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128], [240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128]], [[1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128], [213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128], [55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128]], [[128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128], [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128], [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]]], [[[202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255], [126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128], [61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128]], [[1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128], [166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128], [39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128]], [[1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128], [124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128], [24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128]], [[1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128], [149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128], [28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128]], [[1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128], [123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128], [20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128]], [[1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128], [168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128], [47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128]], [[1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128], [141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128], [42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128]], [[1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128], [244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128], [238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]]]], ng = [[[231, 120, 48, 89, 115, 113, 120, 152, 112], [152, 179, 64, 126, 170, 118, 46, 70, 95], [175, 69, 143, 80, 85, 82, 72, 155, 103], [56, 58, 10, 171, 218, 189, 17, 13, 152], [114, 26, 17, 163, 44, 195, 21, 10, 173], [121, 24, 80, 195, 26, 62, 44, 64, 85], [144, 71, 10, 38, 171, 213, 144, 34, 26], [170, 46, 55, 19, 136, 160, 33, 206, 71], [63, 20, 8, 114, 114, 208, 12, 9, 226], [81, 40, 11, 96, 182, 84, 29, 16, 36]], [[134, 183, 89, 137, 98, 101, 106, 165, 148], [72, 187, 100, 130, 157, 111, 32, 75, 80], [66, 102, 167, 99, 74, 62, 40, 234, 128], [41, 53, 9, 178, 241, 141, 26, 8, 107], [74, 43, 26, 146, 73, 166, 49, 23, 157], [65, 38, 105, 160, 51, 52, 31, 115, 128], [104, 79, 12, 27, 217, 255, 87, 17, 7], [87, 68, 71, 44, 114, 51, 15, 186, 23], [47, 41, 14, 110, 182, 183, 21, 17, 194], [66, 45, 25, 102, 197, 189, 23, 18, 22]], [[88, 88, 147, 150, 42, 46, 45, 196, 205], [43, 97, 183, 117, 85, 38, 35, 179, 61], [39, 53, 200, 87, 26, 21, 43, 232, 171], [56, 34, 51, 104, 114, 102, 29, 93, 77], [39, 28, 85, 171, 58, 165, 90, 98, 64], [34, 22, 116, 206, 23, 34, 43, 166, 73], [107, 54, 32, 26, 51, 1, 81, 43, 31], [68, 25, 106, 22, 64, 171, 36, 225, 114], [34, 19, 21, 102, 132, 188, 16, 76, 124], [62, 18, 78, 95, 85, 57, 50, 48, 51]], [[193, 101, 35, 159, 215, 111, 89, 46, 111], [60, 148, 31, 172, 219, 228, 21, 18, 111], [112, 113, 77, 85, 179, 255, 38, 120, 114], [40, 42, 1, 196, 245, 209, 10, 25, 109], [88, 43, 29, 140, 166, 213, 37, 43, 154], [61, 63, 30, 155, 67, 45, 68, 1, 209], [100, 80, 8, 43, 154, 1, 51, 26, 71], [142, 78, 78, 16, 255, 128, 34, 197, 171], [41, 40, 5, 102, 211, 183, 4, 1, 221], [51, 50, 17, 168, 209, 192, 23, 25, 82]], [[138, 31, 36, 171, 27, 166, 38, 44, 229], [67, 87, 58, 169, 82, 115, 26, 59, 179], [63, 59, 90, 180, 59, 166, 93, 73, 154], [40, 40, 21, 116, 143, 209, 34, 39, 175], [47, 15, 16, 183, 34, 223, 49, 45, 183], [46, 17, 33, 183, 6, 98, 15, 32, 183], [57, 46, 22, 24, 128, 1, 54, 17, 37], [65, 32, 73, 115, 28, 128, 23, 128, 205], [40, 3, 9, 115, 51, 192, 18, 6, 223], [87, 37, 9, 115, 59, 77, 64, 21, 47]], [[104, 55, 44, 218, 9, 54, 53, 130, 226], [64, 90, 70, 205, 40, 41, 23, 26, 57], [54, 57, 112, 184, 5, 41, 38, 166, 213], [30, 34, 26, 133, 152, 116, 10, 32, 134], [39, 19, 53, 221, 26, 114, 32, 73, 255], [31, 9, 65, 234, 2, 15, 1, 118, 73], [75, 32, 12, 51, 192, 255, 160, 43, 51], [88, 31, 35, 67, 102, 85, 55, 186, 85], [56, 21, 23, 111, 59, 205, 45, 37, 192], [55, 38, 70, 124, 73, 102, 1, 34, 98]], [[125, 98, 42, 88, 104, 85, 117, 175, 82], [95, 84, 53, 89, 128, 100, 113, 101, 45], [75, 79, 123, 47, 51, 128, 81, 171, 1], [57, 17, 5, 71, 102, 57, 53, 41, 49], [38, 33, 13, 121, 57, 73, 26, 1, 85], [41, 10, 67, 138, 77, 110, 90, 47, 114], [115, 21, 2, 10, 102, 255, 166, 23, 6], [101, 29, 16, 10, 85, 128, 101, 196, 26], [57, 18, 10, 102, 102, 213, 34, 20, 43], [117, 20, 15, 36, 163, 128, 68, 1, 26]], [[102, 61, 71, 37, 34, 53, 31, 243, 192], [69, 60, 71, 38, 73, 119, 28, 222, 37], [68, 45, 128, 34, 1, 47, 11, 245, 171], [62, 17, 19, 70, 146, 85, 55, 62, 70], [37, 43, 37, 154, 100, 163, 85, 160, 1], [63, 9, 92, 136, 28, 64, 32, 201, 85], [75, 15, 9, 9, 64, 255, 184, 119, 16], [86, 6, 28, 5, 64, 255, 25, 248, 1], [56, 8, 17, 132, 137, 255, 55, 116, 128], [58, 15, 20, 82, 135, 57, 26, 121, 40]], [[164, 50, 31, 137, 154, 133, 25, 35, 218], [51, 103, 44, 131, 131, 123, 31, 6, 158], [86, 40, 64, 135, 148, 224, 45, 183, 128], [22, 26, 17, 131, 240, 154, 14, 1, 209], [45, 16, 21, 91, 64, 222, 7, 1, 197], [56, 21, 39, 155, 60, 138, 23, 102, 213], [83, 12, 13, 54, 192, 255, 68, 47, 28], [85, 26, 85, 85, 128, 128, 32, 146, 171], [18, 11, 7, 63, 144, 171, 4, 4, 246], [35, 27, 10, 146, 174, 171, 12, 26, 128]], [[190, 80, 35, 99, 180, 80, 126, 54, 45], [85, 126, 47, 87, 176, 51, 41, 20, 32], [101, 75, 128, 139, 118, 146, 116, 128, 85], [56, 41, 15, 176, 236, 85, 37, 9, 62], [71, 30, 17, 119, 118, 255, 17, 18, 138], [101, 38, 60, 138, 55, 70, 43, 26, 142], [146, 36, 19, 30, 171, 255, 97, 27, 20], [138, 45, 61, 62, 219, 1, 81, 188, 64], [32, 41, 20, 117, 151, 142, 20, 21, 163], [112, 19, 12, 61, 195, 128, 48, 4, 24]]], ig = [[[[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255], [223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255], [249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255], [234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255], [239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255], [251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255], [250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]]], [[[217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255], [234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255]], [[255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255]], [[255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255], [249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255], [247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255], [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]]], [[[186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255], [234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255], [251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255]], [[255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255]], [[255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]]], [[[248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255], [248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255]], [[255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255], [246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255], [252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255]], [[255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255], [248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255], [253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255]], [[255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255], [245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255], [253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255], [252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255], [249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255], [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]]]], ag = [0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0], Cn = [], Cr = [], nn = [], sg = 1, Iu = 2, yn = [], ar = [];
CA("UpsampleRgbLinePair", Qe, 3), CA("UpsampleBgrLinePair", je, 3), CA("UpsampleRgbaLinePair", mr, 4), CA("UpsampleBgraLinePair", ht, 4), CA("UpsampleArgbLinePair", bt, 4), CA("UpsampleRgba4444LinePair", at, 2), CA("UpsampleRgb565LinePair", qe, 2);
var og = H.UpsampleRgbLinePair, lg = H.UpsampleBgrLinePair, Su = H.UpsampleRgbaLinePair, Hu = H.UpsampleBgraLinePair, Du = H.UpsampleArgbLinePair, Nu = H.UpsampleRgba4444LinePair, cg = H.UpsampleRgb565LinePair, Vs = 16, js = 1 << Vs - 1, Ta = -227, ql = 482, ug = 6, ku = 0, fg = i(256), hg = i(256), dg = i(256), gg = i(256), pg = i(ql - Ta), Bg = i(ql - Ta);
Or("YuvToRgbRow", Qe, 3), Or("YuvToBgrRow", je, 3), Or("YuvToRgbaRow", mr, 4), Or("YuvToBgraRow", ht, 4), Or("YuvToArgbRow", bt, 4), Or("YuvToRgba4444Row", at, 2), Or("YuvToRgb565Row", qe, 2);
var _u = [0, 4, 8, 12, 128, 132, 136, 140, 256, 260, 264, 268, 384, 388, 392, 396], qs = [0, 2, 8], wg = [8, 7, 6, 4, 4, 2, 2, 2, 1, 1, 1, 1], vg = 1;
this.WebPDecodeRGBA = function(a, l, f, B, m) {
var b = Os, E = new Ei(), I = new Oe();
E.ba = I, I.S = b, I.width = [I.width], I.height = [I.height];
var S = I.width, T = I.height, Z = new ze();
if (Z == null || a == null) var fA = 2;
else e(Z != null), fA = Ii(a, l, f, Z.width, Z.height, Z.Pd, Z.Qd, Z.format, null);
if (fA != 0 ? S = 0 : (S != null && (S[0] = Z.width[0]), T != null && (T[0] = Z.height[0]), S = 1), S) {
I.width = I.width[0], I.height = I.height[0], B != null && (B[0] = I.width), m != null && (m[0] = I.height);
A: {
if (B = new Ci(), (m = new ya()).data = a, m.w = l, m.ha = f, m.kd = 1, l = [0], e(m != null), ((a = Ii(m.data, m.w, m.ha, null, null, null, l, null, m)) == 0 || a == 7) && l[0] && (a = 4), (l = a) == 0) {
if (e(E != null), B.data = m.data, B.w = m.w + m.offset, B.ha = m.ha - m.offset, B.put = Dr, B.ac = wt, B.bc = Nr, B.ma = E, m.xa) {
if ((a = Ar()) == null) {
E = 1;
break A;
}
if (function(hA, aA) {
var EA = [0], vA = [0], AA = [0];
e: for (; ; ) {
if (hA == null) return 0;
if (aA == null) return hA.a = 2, 0;
if (hA.l = aA, hA.a = 0, k(hA.m, aA.data, aA.w, aA.ha), !ie(hA.m, EA, vA, AA)) {
hA.a = 3;
break e;
}
if (hA.xb = Iu, aA.width = EA[0], aA.height = vA[0], !Tr(EA[0], vA[0], 1, hA, null)) break e;
return 1;
}
return e(hA.a != 0), 0;
}(a, B)) {
if (B = (l = Si(B.width, B.height, E.Oa, E.ba)) == 0) {
e: {
B = a;
t: for (; ; ) {
if (B == null) {
B = 0;
break e;
}
if (e(B.s.yc != null), e(B.s.Ya != null), e(0 < B.s.Wb), e((f = B.l) != null), e((m = f.ma) != null), B.xb != 0) {
if (B.ca = m.ba, B.tb = m.tb, e(B.ca != null), !Ea(m.Oa, f, Ks)) {
B.a = 2;
break t;
}
if (!qn(B, f.width) || f.da) break t;
if ((f.da || se(B.ca.S)) && cA(), 11 > B.ca.S || (alert("todo:WebPInitConvertARGBToYUV"), B.ca.f.kb.F != null && cA()), B.Pb && 0 < B.s.ua && B.s.vb.X == null && !ee(B.s.vb, B.s.Wa.Xa)) {
B.a = 1;
break t;
}
B.xb = 0;
}
if (!Br(B, B.V, B.Ba, B.c, B.i, f.o, gi)) break t;
m.Dc = B.Ma, B = 1;
break e;
}
e(B.a != 0), B = 0;
}
B = !B;
}
B && (l = a.a);
} else l = a.a;
} else {
if ((a = new vl()) == null) {
E = 1;
break A;
}
if (a.Fa = m.na, a.P = m.P, a.qc = m.Sa, Bs(a, B)) {
if ((l = Si(B.width, B.height, E.Oa, E.ba)) == 0) {
if (a.Aa = 0, f = E.Oa, e((m = a) != null), f != null) {
if (0 < (S = 0 > (S = f.Md) ? 0 : 100 < S ? 255 : 255 * S / 100)) {
for (T = Z = 0; 4 > T; ++T) 12 > (fA = m.pb[T]).lc && (fA.ia = S * wg[0 > fA.lc ? 0 : fA.lc] >> 3), Z |= fA.ia;
Z && (alert("todo:VP8InitRandom"), m.ia = 1);
}
m.Ga = f.Id, 100 < m.Ga ? m.Ga = 100 : 0 > m.Ga && (m.Ga = 0);
}
ml(a, B) || (l = a.a);
}
} else l = a.a;
}
l == 0 && E.Oa != null && E.Oa.fd && (l = xa(E.ba));
}
E = l;
}
b = E != 0 ? null : 11 > b ? I.f.RGBA.eb : I.f.kb.y;
} else b = null;
return b;
};
var Tu = [3, 4, 3, 4, 4, 2, 2, 4, 4, 4, 2, 1, 1];
};
function h(H, G) {
for (var tA = "", x = 0; x < 4; x++) tA += String.fromCharCode(H[G++]);
return tA;
}
function p(H, G) {
return (H[G + 0] << 0 | H[G + 1] << 8 | H[G + 2] << 16) >>> 0;
}
function d(H, G) {
return (H[G + 0] << 0 | H[G + 1] << 8 | H[G + 2] << 16 | H[G + 3] << 24) >>> 0;
}
new c();
var w = [0], g = [0], Q = [], y = new c(), N = t, v = function(H, G) {
var tA = {}, x = 0, F = !1, _ = 0, P = 0;
if (tA.frames = [], !/** @license
* Copyright (c) 2017 Dominik Homberger
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
https://webpjs.appspot.com
WebPRiffParser dominikhlbg@gmail.com
*/
function(M, R, J, eA) {
for (var uA = 0; uA < eA; uA++) if (M[R + uA] != J.charCodeAt(uA)) return !0;
return !1;
}(H, G, "RIFF", 4)) {
for (d(H, G += 4), G += 8; G < H.length; ) {
var lA = h(H, G), oA = d(H, G += 4);
G += 4;
var iA = oA + (1 & oA);
switch (lA) {
case "VP8 ":
case "VP8L":
tA.frames[x] === void 0 && (tA.frames[x] = {}), (rA = tA.frames[x]).src_off = F ? P : G - 8, rA.src_size = _ + oA + 8, x++, F && (F = !1, _ = 0, P = 0);
break;
case "VP8X":
(rA = tA.header = {}).feature_flags = H[G];
var k = G + 4;
rA.canvas_width = 1 + p(H, k), k += 3, rA.canvas_height = 1 + p(H, k), k += 3;
break;
case "ALPH":
F = !0, _ = iA + 8, P = G - 8;
break;
case "ANIM":
(rA = tA.header).bgcolor = d(H, G), k = G + 4, rA.loop_count = (OA = H)[(L = k) + 0] << 0 | OA[L + 1] << 8, k += 2;
break;
case "ANMF":
var W, rA;
(rA = tA.frames[x] = {}).offset_x = 2 * p(H, G), G += 3, rA.offset_y = 2 * p(H, G), G += 3, rA.width = 1 + p(H, G), G += 3, rA.height = 1 + p(H, G), G += 3, rA.duration = p(H, G), G += 3, W = H[G++], rA.dispose = 1 & W, rA.blend = W >> 1 & 1;
}
lA != "ANMF" && (G += iA);
}
var OA, L;
return tA;
}
}(N, 0);
v.response = N, v.rgbaoutput = !0, v.dataurl = !1;
var U = v.header ? v.header : null, K = v.frames ? v.frames : null;
if (U) {
U.loop_counter = U.loop_count, w = [U.canvas_height], g = [U.canvas_width];
for (var j = 0; j < K.length && K[j].blend != 0; j++) ;
}
var q = K[0], V = y.WebPDecodeRGBA(N, q.src_off, q.src_size, g, w);
q.rgba = V, q.imgwidth = g[0], q.imgheight = w[0];
for (var z = 0; z < g[0] * w[0] * 4; z++) Q[z] = V[z];
return this.width = g, this.height = w, this.data = Q, this;
}
(function(t) {
var e = function() {
return typeof Oc == "function";
}, A = function(w, g, Q, y) {
var N = 4, v = s;
switch (y) {
case t.image_compression.FAST:
N = 1, v = i;
break;
case t.image_compression.MEDIUM:
N = 6, v = o;
break;
case t.image_compression.SLOW:
N = 9, v = c;
}
w = r(w, g, Q, v);
var U = Oc(w, { level: N });
return t.__addimage__.arrayBufferToBinaryString(U);
}, r = function(w, g, Q, y) {
for (var N, v, U, K = w.length / g, j = new Uint8Array(w.length + K), q = p(), V = 0; V < K; V += 1) {
if (U = V * g, N = w.subarray(U, U + g), y) j.set(y(N, Q, v), U + V);
else {
for (var z, H = q.length, G = []; z < H; z += 1) G[z] = q[z](N, Q, v);
var tA = d(G.concat());
j.set(G[tA], U + V);
}
v = N;
}
return j;
}, n = function(w) {
var g = Array.apply([], w);
return g.unshift(0), g;
}, i = function(w, g) {
var Q, y = [], N = w.length;
y[0] = 1;
for (var v = 0; v < N; v += 1) Q = w[v - g] || 0, y[v + 1] = w[v] - Q + 256 & 255;
return y;
}, s = function(w, g, Q) {
var y, N = [], v = w.length;
N[0] = 2;
for (var U = 0; U < v; U += 1) y = Q && Q[U] || 0, N[U + 1] = w[U] - y + 256 & 255;
return N;
}, o = function(w, g, Q) {
var y, N, v = [], U = w.length;
v[0] = 3;
for (var K = 0; K < U; K += 1) y = w[K - g] || 0, N = Q && Q[K] || 0, v[K + 1] = w[K] + 256 - (y + N >>> 1) & 255;
return v;
}, c = function(w, g, Q) {
var y, N, v, U, K = [], j = w.length;
K[0] = 4;
for (var q = 0; q < j; q += 1) y = w[q - g] || 0, N = Q && Q[q] || 0, v = Q && Q[q - g] || 0, U = h(y, N, v), K[q + 1] = w[q] - U + 256 & 255;
return K;
}, h = function(w, g, Q) {
if (w === g && g === Q) return w;
var y = Math.abs(g - Q), N = Math.abs(w - Q), v = Math.abs(w + g - Q - Q);
return y <= N && y <= v ? w : N <= v ? g : Q;
}, p = function() {
return [n, i, s, o, c];
}, d = function(w) {
var g = w.map(function(Q) {
return Q.reduce(function(y, N) {
return y + Math.abs(N);
}, 0);
});
return g.indexOf(Math.min.apply(null, g));
};
t.processPNG = function(w, g, Q, y) {
var N, v, U, K, j, q, V, z, H, G, tA, x, F, _, P, lA = this.decode.FLATE_DECODE, oA = "";
if (this.__addimage__.isArrayBuffer(w) && (w = new Uint8Array(w)), this.__addimage__.isArrayBufferView(w)) {
if (w = (U = new fB(w)).imgData, v = U.bits, N = U.colorSpace, j = U.colors, [4, 6].indexOf(U.colorType) !== -1) {
if (U.bits === 8) {
H = (z = U.pixelBitlength == 32 ? new Uint32Array(U.decodePixels().buffer) : U.pixelBitlength == 16 ? new Uint16Array(U.decodePixels().buffer) : new Uint8Array(U.decodePixels().buffer)).length, tA = new Uint8Array(H * U.colors), G = new Uint8Array(H);
var iA, k = U.pixelBitlength - U.bits;
for (_ = 0, P = 0; _ < H; _++) {
for (F = z[_], iA = 0; iA < k; ) tA[P++] = F >>> iA & 255, iA += U.bits;
G[_] = F >>> iA & 255;
}
}
if (U.bits === 16) {
H = (z = new Uint32Array(U.decodePixels().buffer)).length, tA = new Uint8Array(H * (32 / U.pixelBitlength) * U.colors), G = new Uint8Array(H * (32 / U.pixelBitlength)), x = U.colors > 1, _ = 0, P = 0;
for (var W = 0; _ < H; ) F = z[_++], tA[P++] = F >>> 0 & 255, x && (tA[P++] = F >>> 16 & 255, F = z[_++], tA[P++] = F >>> 0 & 255), G[W++] = F >>> 16 & 255;
v = 8;
}
y !== t.image_compression.NONE && e() ? (w = A(tA, U.width * U.colors, U.colors, y), V = A(G, U.width, 1, y)) : (w = tA, V = G, lA = void 0);
}
if (U.colorType === 3 && (N = this.color_spaces.INDEXED, q = U.palette, U.transparency.indexed)) {
var rA = U.transparency.indexed, OA = 0;
for (_ = 0, H = rA.length; _ < H; ++_) OA += rA[_];
if ((OA /= 255) === H - 1 && rA.indexOf(0) !== -1) K = [rA.indexOf(0)];
else if (OA !== H) {
for (z = U.decodePixels(), G = new Uint8Array(z.length), _ = 0, H = z.length; _ < H; _++) G[_] = rA[z[_]];
V = A(G, U.width, 1);
}
}
var L = function(M) {
var R;
switch (M) {
case t.image_compression.FAST:
R = 11;
break;
case t.image_compression.MEDIUM:
R = 13;
break;
case t.image_compression.SLOW:
R = 14;
break;
default:
R = 12;
}
return R;
}(y);
return lA === this.decode.FLATE_DECODE && (oA = "/Predictor " + L + " "), oA += "/Colors " + j + " /BitsPerComponent " + v + " /Columns " + U.width, (this.__addimage__.isArrayBuffer(w) || this.__addimage__.isArrayBufferView(w)) && (w = this.__addimage__.arrayBufferToBinaryString(w)), (V && this.__addimage__.isArrayBuffer(V) || this.__addimage__.isArrayBufferView(V)) && (V = this.__addimage__.arrayBufferToBinaryString(V)), { alias: Q, data: w, index: g, filter: lA, decodeParameters: oA, transparency: K, palette: q, sMask: V, predictor: L, width: U.width, height: U.height, bitsPerComponent: v, colorSpace: N };
}
};
})(ae.API), function(t) {
t.processGIF89A = function(e, A, r, n) {
var i = new hB(e), s = i.width, o = i.height, c = [];
i.decodeAndBlitFrameRGBA(0, c);
var h = { data: c, width: s, height: o }, p = new fc(100).encode(h, 100);
return t.processJPEG.call(this, p, A, r, n);
}, t.processGIF87A = t.processGIF89A;
}(ae.API), Qr.prototype.parseHeader = function() {
if (this.fileSize = this.datav.getUint32(this.pos, !0), this.pos += 4, this.reserved = this.datav.getUint32(this.pos, !0), this.pos += 4, this.offset = this.datav.getUint32(this.pos, !0), this.pos += 4, this.headerSize = this.datav.getUint32(this.pos, !0), this.pos += 4, this.width = this.datav.getUint32(this.pos, !0), this.pos += 4, this.height = this.datav.getInt32(this.pos, !0), this.pos += 4, this.planes = this.datav.getUint16(this.pos, !0), this.pos += 2, this.bitPP = this.datav.getUint16(this.pos, !0), this.pos += 2, this.compress = this.datav.getUint32(this.pos, !0), this.pos += 4, this.rawSize = this.datav.getUint32(this.pos, !0), this.pos += 4, this.hr = this.datav.getUint32(this.pos, !0), this.pos += 4, this.vr = this.datav.getUint32(this.pos, !0), this.pos += 4, this.colors = this.datav.getUint32(this.pos, !0), this.pos += 4, this.importantColors = this.datav.getUint32(this.pos, !0), this.pos += 4, this.bitPP === 16 && this.is_with_alpha && (this.bitPP = 15), this.bitPP < 15) {
var t = this.colors === 0 ? 1 << this.bitPP : this.colors;
this.palette = new Array(t);
for (var e = 0; e < t; e++) {
var A = this.datav.getUint8(this.pos++, !0), r = this.datav.getUint8(this.pos++, !0), n = this.datav.getUint8(this.pos++, !0), i = this.datav.getUint8(this.pos++, !0);
this.palette[e] = { red: n, green: r, blue: A, quad: i };
}
}
this.height < 0 && (this.height *= -1, this.bottom_up = !1);
}, Qr.prototype.parseBGR = function() {
this.pos = this.offset;
try {
var t = "bit" + this.bitPP, e = this.width * this.height * 4;
this.data = new Uint8Array(e), this[t]();
} catch (A) {
_e.log("bit decode error:" + A);
}
}, Qr.prototype.bit1 = function() {
var t, e = Math.ceil(this.width / 8), A = e % 4;
for (t = this.height - 1; t >= 0; t--) {
for (var r = this.bottom_up ? t : this.height - 1 - t, n = 0; n < e; n++) for (var i = this.datav.getUint8(this.pos++, !0), s = r * this.width * 4 + 8 * n * 4, o = 0; o < 8 && 8 * n + o < this.width; o++) {
var c = this.palette[i >> 7 - o & 1];
this.data[s + 4 * o] = c.blue, this.data[s + 4 * o + 1] = c.green, this.data[s + 4 * o + 2] = c.red, this.data[s + 4 * o + 3] = 255;
}
A !== 0 && (this.pos += 4 - A);
}
}, Qr.prototype.bit4 = function() {
for (var t = Math.ceil(this.width / 2), e = t % 4, A = this.height - 1; A >= 0; A--) {
for (var r = this.bottom_up ? A : this.height - 1 - A, n = 0; n < t; n++) {
var i = this.datav.getUint8(this.pos++, !0), s = r * this.width * 4 + 2 * n * 4, o = i >> 4, c = 15 & i, h = this.palette[o];
if (this.data[s] = h.blue, this.data[s + 1] = h.green, this.data[s + 2] = h.red, this.data[s + 3] = 255, 2 * n + 1 >= this.width) break;
h = this.palette[c], this.data[s + 4] = h.blue, this.data[s + 4 + 1] = h.green, this.data[s + 4 + 2] = h.red, this.data[s + 4 + 3] = 255;
}
e !== 0 && (this.pos += 4 - e);
}
}, Qr.prototype.bit8 = function() {
for (var t = this.width % 4, e = this.height - 1; e >= 0; e--) {
for (var A = this.bottom_up ? e : this.height - 1 - e, r = 0; r < this.width; r++) {
var n = this.datav.getUint8(this.pos++, !0), i = A * this.width * 4 + 4 * r;
if (n < this.palette.length) {
var s = this.palette[n];
this.data[i] = s.red, this.data[i + 1] = s.green, this.data[i + 2] = s.blue, this.data[i + 3] = 255;
} else this.data[i] = 255, this.data[i + 1] = 255, this.data[i + 2] = 255, this.data[i + 3] = 255;
}
t !== 0 && (this.pos += 4 - t);
}
}, Qr.prototype.bit15 = function() {
for (var t = this.width % 3, e = parseInt("11111", 2), A = this.height - 1; A >= 0; A--) {
for (var r = this.bottom_up ? A : this.height - 1 - A, n = 0; n < this.width; n++) {
var i = this.datav.getUint16(this.pos, !0);
this.pos += 2;
var s = (i & e) / e * 255 | 0, o = (i >> 5 & e) / e * 255 | 0, c = (i >> 10 & e) / e * 255 | 0, h = i >> 15 ? 255 : 0, p = r * this.width * 4 + 4 * n;
this.data[p] = c, this.data[p + 1] = o, this.data[p + 2] = s, this.data[p + 3] = h;
}
this.pos += t;
}
}, Qr.prototype.bit16 = function() {
for (var t = this.width % 3, e = parseInt("11111", 2), A = parseInt("111111", 2), r = this.height - 1; r >= 0; r--) {
for (var n = this.bottom_up ? r : this.height - 1 - r, i = 0; i < this.width; i++) {
var s = this.datav.getUint16(this.pos, !0);
this.pos += 2;
var o = (s & e) / e * 255 | 0, c = (s >> 5 & A) / A * 255 | 0, h = (s >> 11) / e * 255 | 0, p = n * this.width * 4 + 4 * i;
this.data[p] = h, this.data[p + 1] = c, this.data[p + 2] = o, this.data[p + 3] = 255;
}
this.pos += t;
}
}, Qr.prototype.bit24 = function() {
for (var t = this.height - 1; t >= 0; t--) {
for (var e = this.bottom_up ? t : this.height - 1 - t, A = 0; A < this.width; A++) {
var r = this.datav.getUint8(this.pos++, !0), n = this.datav.getUint8(this.pos++, !0), i = this.datav.getUint8(this.pos++, !0), s = e * this.width * 4 + 4 * A;
this.data[s] = i, this.data[s + 1] = n, this.data[s + 2] = r, this.data[s + 3] = 255;
}
this.pos += this.width % 4;
}
}, Qr.prototype.bit32 = function() {
for (var t = this.height - 1; t >= 0; t--) for (var e = this.bottom_up ? t : this.height - 1 - t, A = 0; A < this.width; A++) {
var r = this.datav.getUint8(this.pos++, !0), n = this.datav.getUint8(this.pos++, !0), i = this.datav.getUint8(this.pos++, !0), s = this.datav.getUint8(this.pos++, !0), o = e * this.width * 4 + 4 * A;
this.data[o] = i, this.data[o + 1] = n, this.data[o + 2] = r, this.data[o + 3] = s;
}
}, Qr.prototype.getData = function() {
return this.data;
}, /**
* @license
* Copyright (c) 2018 Aras Abbasi
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
function(t) {
t.processBMP = function(e, A, r, n) {
var i = new Qr(e, !1), s = i.width, o = i.height, c = { data: i.getData(), width: s, height: o }, h = new fc(100).encode(c, 100);
return t.processJPEG.call(this, h, A, r, n);
};
}(ae.API), mf.prototype.getData = function() {
return this.data;
}, /**
* @license
* Copyright (c) 2019 Aras Abbasi
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
function(t) {
t.processWEBP = function(e, A, r, n) {
var i = new mf(e), s = i.width, o = i.height, c = { data: i.getData(), width: s, height: o }, h = new fc(100).encode(c, 100);
return t.processJPEG.call(this, h, A, r, n);
};
}(ae.API), ae.API.processRGBA = function(t, e, A) {
for (var r = t.data, n = r.length, i = new Uint8Array(n / 4 * 3), s = new Uint8Array(n / 4), o = 0, c = 0, h = 0; h < n; h += 4) {
var p = r[h], d = r[h + 1], w = r[h + 2], g = r[h + 3];
i[o++] = p, i[o++] = d, i[o++] = w, s[c++] = g;
}
var Q = this.__addimage__.arrayBufferToBinaryString(i);
return { alpha: this.__addimage__.arrayBufferToBinaryString(s), data: Q, index: e, alias: A, colorSpace: "DeviceRGB", bitsPerComponent: 8, width: t.width, height: t.height };
}, ae.API.setLanguage = function(t) {
return this.internal.languageSettings === void 0 && (this.internal.languageSettings = {}, this.internal.languageSettings.isSubscribed = !1), { af: "Afrikaans", sq: "Albanian", ar: "Arabic (Standard)", "ar-DZ": "Arabic (Algeria)", "ar-BH": "Arabic (Bahrain)", "ar-EG": "Arabic (Egypt)", "ar-IQ": "Arabic (Iraq)", "ar-JO": "Arabic (Jordan)", "ar-KW": "Arabic (Kuwait)", "ar-LB": "Arabic (Lebanon)", "ar-LY": "Arabic (Libya)", "ar-MA": "Arabic (Morocco)", "ar-OM": "Arabic (Oman)", "ar-QA": "Arabic (Qatar)", "ar-SA": "Arabic (Saudi Arabia)", "ar-SY": "Arabic (Syria)", "ar-TN": "Arabic (Tunisia)", "ar-AE": "Arabic (U.A.E.)", "ar-YE": "Arabic (Yemen)", an: "Aragonese", hy: "Armenian", as: "Assamese", ast: "Asturian", az: "Azerbaijani", eu: "Basque", be: "Belarusian", bn: "Bengali", bs: "Bosnian", br: "Breton", bg: "Bulgarian", my: "Burmese", ca: "Catalan", ch: "Chamorro", ce: "Chechen", zh: "Chinese", "zh-HK": "Chinese (Hong Kong)", "zh-CN": "Chinese (PRC)", "zh-SG": "Chinese (Singapore)", "zh-TW": "Chinese (Taiwan)", cv: "Chuvash", co: "Corsican", cr: "Cree", hr: "Croatian", cs: "Czech", da: "Danish", nl: "Dutch (Standard)", "nl-BE": "Dutch (Belgian)", en: "English", "en-AU": "English (Australia)", "en-BZ": "English (Belize)", "en-CA": "English (Canada)", "en-IE": "English (Ireland)", "en-JM": "English (Jamaica)", "en-NZ": "English (New Zealand)", "en-PH": "English (Philippines)", "en-ZA": "English (South Africa)", "en-TT": "English (Trinidad & Tobago)", "en-GB": "English (United Kingdom)", "en-US": "English (United States)", "en-ZW": "English (Zimbabwe)", eo: "Esperanto", et: "Estonian", fo: "Faeroese", fj: "Fijian", fi: "Finnish", fr: "French (Standard)", "fr-BE": "French (Belgium)", "fr-CA": "French (Canada)", "fr-FR": "French (France)", "fr-LU": "French (Luxembourg)", "fr-MC": "French (Monaco)", "fr-CH": "French (Switzerland)", fy: "Frisian", fur: "Friulian", gd: "Gaelic (Scots)", "gd-IE": "Gaelic (Irish)", gl: "Galacian", ka: "Georgian", de: "German (Standard)", "de-AT": "German (Austria)", "de-DE": "German (Germany)", "de-LI": "German (Liechtenstein)", "de-LU": "German (Luxembourg)", "de-CH": "German (Switzerland)", el: "Greek", gu: "Gujurati", ht: "Haitian", he: "Hebrew", hi: "Hindi", hu: "Hungarian", is: "Icelandic", id: "Indonesian", iu: "Inuktitut", ga: "Irish", it: "Italian (Standard)", "it-CH": "Italian (Switzerland)", ja: "Japanese", kn: "Kannada", ks: "Kashmiri", kk: "Kazakh", km: "Khmer", ky: "Kirghiz", tlh: "Klingon", ko: "Korean", "ko-KP": "Korean (North Korea)", "ko-KR": "Korean (South Korea)", la: "Latin", lv: "Latvian", lt: "Lithuanian", lb: "Luxembourgish", mk: "North Macedonia", ms: "Malay", ml: "Malayalam", mt: "Maltese", mi: "Maori", mr: "Marathi", mo: "Moldavian", nv: "Navajo", ng: "Ndonga", ne: "Nepali", no: "Norwegian", nb: "Norwegian (Bokmal)", nn: "Norwegian (Nynorsk)", oc: "Occitan", or: "Oriya", om: "Oromo", fa: "Persian", "fa-IR": "Persian/Iran", pl: "Polish", pt: "Portuguese", "pt-BR": "Portuguese (Brazil)", pa: "Punjabi", "pa-IN": "Punjabi (India)", "pa-PK": "Punjabi (Pakistan)", qu: "Quechua", rm: "Rhaeto-Romanic", ro: "Romanian", "ro-MO": "Romanian (Moldavia)", ru: "Russian", "ru-MO": "Russian (Moldavia)", sz: "Sami (Lappish)", sg: "Sango", sa: "Sanskrit", sc: "Sardinian", sd: "Sindhi", si: "Singhalese", sr: "Serbian", sk: "Slovak", sl: "Slovenian", so: "Somani", sb: "Sorbian", es: "Spanish", "es-AR": "Spanish (Argentina)", "es-BO": "Spanish (Bolivia)", "es-CL": "Spanish (Chile)", "es-CO": "Spanish (Colombia)", "es-CR": "Spanish (Costa Rica)", "es-DO": "Spanish (Dominican Republic)", "es-EC": "Spanish (Ecuador)", "es-SV": "Spanish (El Salvador)", "es-GT": "Spanish (Guatemala)", "es-HN": "Spanish (Honduras)", "es-MX": "Spanish (Mexico)", "es-NI": "Spanish (Nicaragua)", "es-PA": "Spanish (Panama)", "es-PY": "Spanish (Paraguay)", "es-PE": "Spanish (Peru)", "es-PR": "Spanish (Puerto Rico)", "es-ES": "Spanish (Spain)", "es-UY": "Spanish (Uruguay)", "es-VE": "Spanish (Venezuela)", sx: "Sutu", sw: "Swahili", sv: "Swedish", "sv-FI": "Swedish (Finland)", "sv-SV": "Swedish (Sweden)", ta: "Tamil", tt: "Tatar", te: "Teluga", th: "Thai", tig: "Tigre", ts: "Tsonga", tn: "Tswana", tr: "Turkish", tk: "Turkmen", uk: "Ukrainian", hsb: "Upper Sorbian", ur: "Urdu", ve: "Venda", vi: "Vietnamese", vo: "Volapuk", wa: "Walloon", cy: "Welsh", xh: "Xhosa", ji: "Yiddish", zu: "Zulu" }[t] !== void 0 && (this.internal.languageSettings.languageCode = t, this.internal.languageSettings.isSubscribed === !1 && (this.internal.events.subscribe("putCatalog", function() {
this.internal.write("/Lang (" + this.internal.languageSettings.languageCode + ")");
}), this.internal.languageSettings.isSubscribed = !0)), this;
}, ji = ae.API, oo = ji.getCharWidthsArray = function(t, e) {
var A, r, n = (e = e || {}).font || this.internal.getFont(), i = e.fontSize || this.internal.getFontSize(), s = e.charSpace || this.internal.getCharSpace(), o = e.widths ? e.widths : n.metadata.Unicode.widths, c = o.fof ? o.fof : 1, h = e.kerning ? e.kerning : n.metadata.Unicode.kerning, p = h.fof ? h.fof : 1, d = e.doKerning !== !1, w = 0, g = t.length, Q = 0, y = o[0] || c, N = [];
for (A = 0; A < g; A++) r = t.charCodeAt(A), typeof n.metadata.widthOfString == "function" ? N.push((n.metadata.widthOfGlyph(n.metadata.characterToGlyph(r)) + s * (1e3 / i) || 0) / 1e3) : (w = d && Se(h[r]) === "object" && !isNaN(parseInt(h[r][Q], 10)) ? h[r][Q] / p : 0, N.push((o[r] || y) / c + w)), Q = r;
return N;
}, pf = ji.getStringUnitWidth = function(t, e) {
var A = (e = e || {}).fontSize || this.internal.getFontSize(), r = e.font || this.internal.getFont(), n = e.charSpace || this.internal.getCharSpace();
return ji.processArabic && (t = ji.processArabic(t)), typeof r.metadata.widthOfString == "function" ? r.metadata.widthOfString(t, A, n) / A : oo.apply(this, arguments).reduce(function(i, s) {
return i + s;
}, 0);
}, Bf = function(t, e, A, r) {
for (var n = [], i = 0, s = t.length, o = 0; i !== s && o + e[i] < A; ) o += e[i], i++;
n.push(t.slice(0, i));
var c = i;
for (o = 0; i !== s; ) o + e[i] > r && (n.push(t.slice(c, i)), o = 0, c = i), o += e[i], i++;
return c !== i && n.push(t.slice(c, i)), n;
}, wf = function(t, e, A) {
A || (A = {});
var r, n, i, s, o, c, h, p = [], d = [p], w = A.textIndent || 0, g = 0, Q = 0, y = t.split(" "), N = oo.apply(this, [" ", A])[0];
if (c = A.lineIndent === -1 ? y[0].length + 2 : A.lineIndent || 0) {
var v = Array(c).join(" "), U = [];
y.map(function(j) {
(j = j.split(/\s*\n/)).length > 1 ? U = U.concat(j.map(function(q, V) {
return (V && q.length ? `
` : "") + q;
})) : U.push(j[0]);
}), y = U, c = pf.apply(this, [v, A]);
}
for (i = 0, s = y.length; i < s; i++) {
var K = 0;
if (r = y[i], c && r[0] == `
` && (r = r.substr(1), K = 1), w + g + (Q = (n = oo.apply(this, [r, A])).reduce(function(j, q) {
return j + q;
}, 0)) > e || K) {
if (Q > e) {
for (o = Bf.apply(this, [r, n, e - (w + g), e]), p.push(o.shift()), p = [o.pop()]; o.length; ) d.push([o.shift()]);
Q = n.slice(r.length - (p[0] ? p[0].length : 0)).reduce(function(j, q) {
return j + q;
}, 0);
} else p = [r];
d.push(p), w = Q + c, g = N;
} else p.push(r), w += g + Q, g = N;
}
return h = c ? function(j, q) {
return (q ? v : "") + j.join(" ");
} : function(j) {
return j.join(" ");
}, d.map(h);
}, ji.splitTextToSize = function(t, e, A) {
var r, n = (A = A || {}).fontSize || this.internal.getFontSize(), i = (function(p) {
if (p.widths && p.kerning) return { widths: p.widths, kerning: p.kerning };
var d = this.internal.getFont(p.fontName, p.fontStyle);
return d.metadata.Unicode ? { widths: d.metadata.Unicode.widths || { 0: 1 }, kerning: d.metadata.Unicode.kerning || {} } : { font: d.metadata, fontSize: this.internal.getFontSize(), charSpace: this.internal.getCharSpace() };
}).call(this, A);
r = Array.isArray(t) ? t : String(t).split(/\r?\n/);
var s = 1 * this.internal.scaleFactor * e / n;
i.textIndent = A.textIndent ? 1 * A.textIndent * this.internal.scaleFactor / n : 0, i.lineIndent = A.lineIndent;
var o, c, h = [];
for (o = 0, c = r.length; o < c; o++) h = h.concat(wf.apply(this, [r[o], s, i]));
return h;
}, function(t) {
t.__fontmetrics__ = t.__fontmetrics__ || {};
for (var e = "klmnopqrstuvwxyz", A = {}, r = {}, n = 0; n < e.length; n++) A[e[n]] = "0123456789abcdef"[n], r["0123456789abcdef"[n]] = e[n];
var i = function(d) {
return "0x" + parseInt(d, 10).toString(16);
}, s = t.__fontmetrics__.compress = function(d) {
var w, g, Q, y, N = ["{"];
for (var v in d) {
if (w = d[v], isNaN(parseInt(v, 10)) ? g = "'" + v + "'" : (v = parseInt(v, 10), g = (g = i(v).slice(2)).slice(0, -1) + r[g.slice(-1)]), typeof w == "number") w < 0 ? (Q = i(w).slice(3), y = "-") : (Q = i(w).slice(2), y = ""), Q = y + Q.slice(0, -1) + r[Q.slice(-1)];
else {
if (Se(w) !== "object") throw new Error("Don't know what to do with value type " + Se(w) + ".");
Q = s(w);
}
N.push(g + Q);
}
return N.push("}"), N.join("");
}, o = t.__fontmetrics__.uncompress = function(d) {
if (typeof d != "string") throw new Error("Invalid argument passed to uncompress.");
for (var w, g, Q, y, N = {}, v = 1, U = N, K = [], j = "", q = "", V = d.length - 1, z = 1; z < V; z += 1) (y = d[z]) == "'" ? w ? (Q = w.join(""), w = void 0) : w = [] : w ? w.push(y) : y == "{" ? (K.push([U, Q]), U = {}, Q = void 0) : y == "}" ? ((g = K.pop())[0][g[1]] = U, Q = void 0, U = g[0]) : y == "-" ? v = -1 : Q === void 0 ? A.hasOwnProperty(y) ? (j += A[y], Q = parseInt(j, 16) * v, v = 1, j = "") : j += y : A.hasOwnProperty(y) ? (q += A[y], U[Q] = parseInt(q, 16) * v, v = 1, Q = void 0, q = "") : q += y;
return N;
}, c = { codePages: ["WinAnsiEncoding"], WinAnsiEncoding: o("{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}") }, h = { Unicode: { Courier: c, "Courier-Bold": c, "Courier-BoldOblique": c, "Courier-Oblique": c, Helvetica: c, "Helvetica-Bold": c, "Helvetica-BoldOblique": c, "Helvetica-Oblique": c, "Times-Roman": c, "Times-Bold": c, "Times-BoldItalic": c, "Times-Italic": c } }, p = { Unicode: { "Courier-Oblique": o("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Times-BoldItalic": o("{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}"), "Helvetica-Bold": o("{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}"), Courier: o("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Courier-BoldOblique": o("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Times-Bold": o("{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}"), Symbol: o("{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}"), Helvetica: o("{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}"), "Helvetica-BoldOblique": o("{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}"), ZapfDingbats: o("{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}"), "Courier-Bold": o("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Times-Italic": o("{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}"), "Times-Roman": o("{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}"), "Helvetica-Oblique": o("{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}") } };
t.events.push(["addFont", function(d) {
var w = d.font, g = p.Unicode[w.postScriptName];
g && (w.metadata.Unicode = {}, w.metadata.Unicode.widths = g.widths, w.metadata.Unicode.kerning = g.kerning);
var Q = h.Unicode[w.postScriptName];
Q && (w.metadata.Unicode.encoding = Q, w.encoding = Q.codePages[0]);
}]);
}(ae.API), /**
* @license
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
function(t) {
var e = function(A) {
for (var r = A.length, n = new Uint8Array(r), i = 0; i < r; i++) n[i] = A.charCodeAt(i);
return n;
};
t.API.events.push(["addFont", function(A) {
var r = void 0, n = A.font, i = A.instance;
if (!n.isStandardFont) {
if (i === void 0) throw new Error("Font does not exist in vFS, import fonts or remove declaration doc.addFont('" + n.postScriptName + "').");
if (typeof (r = i.existsFileInVFS(n.postScriptName) === !1 ? i.loadFile(n.postScriptName) : i.getFileFromVFS(n.postScriptName)) != "string") throw new Error("Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('" + n.postScriptName + "').");
(function(s, o) {
o = /^\x00\x01\x00\x00/.test(o) ? e(o) : e(es(o)), s.metadata = t.API.TTFFont.open(o), s.metadata.Unicode = s.metadata.Unicode || { encoding: {}, kerning: {}, widths: [] }, s.metadata.glyIdsUsed = [0];
})(n, r);
}
}]);
}(ae), /** @license
* Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* ====================================================================
*/
function(t) {
function e() {
return (le.canvg ? Promise.resolve(le.canvg) : import("./index.es-C5rYq0Vf.js")).catch(function(A) {
return Promise.reject(new Error("Could not load canvg: " + A));
}).then(function(A) {
return A.default ? A.default : A;
});
}
ae.API.addSvgAsImage = function(A, r, n, i, s, o, c, h) {
if (isNaN(r) || isNaN(n)) throw _e.error("jsPDF.addSvgAsImage: Invalid coordinates", arguments), new Error("Invalid coordinates passed to jsPDF.addSvgAsImage");
if (isNaN(i) || isNaN(s)) throw _e.error("jsPDF.addSvgAsImage: Invalid measurements", arguments), new Error("Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage");
var p = document.createElement("canvas");
p.width = i, p.height = s;
var d = p.getContext("2d");
d.fillStyle = "#fff", d.fillRect(0, 0, p.width, p.height);
var w = { ignoreMouse: !0, ignoreAnimation: !0, ignoreDimensions: !0 }, g = this;
return e().then(function(Q) {
return Q.fromString(d, A, w);
}, function() {
return Promise.reject(new Error("Could not load canvg."));
}).then(function(Q) {
return Q.render(w);
}).then(function() {
g.addImage(p.toDataURL("image/jpeg", 1), r, n, i, s, c, h);
});
};
}(), ae.API.putTotalPages = function(t) {
var e, A = 0;
parseInt(this.internal.getFont().id.substr(1), 10) < 15 ? (e = new RegExp(t, "g"), A = this.internal.getNumberOfPages()) : (e = new RegExp(this.pdfEscape16(t, this.internal.getFont()), "g"), A = this.pdfEscape16(this.internal.getNumberOfPages() + "", this.internal.getFont()));
for (var r = 1; r <= this.internal.getNumberOfPages(); r++) for (var n = 0; n < this.internal.pages[r].length; n++) this.internal.pages[r][n] = this.internal.pages[r][n].replace(e, A);
return this;
}, ae.API.viewerPreferences = function(t, e) {
var A;
t = t || {}, e = e || !1;
var r, n, i, s = { HideToolbar: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, HideMenubar: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, HideWindowUI: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, FitWindow: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, CenterWindow: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, DisplayDocTitle: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.4 }, NonFullScreenPageMode: { defaultValue: "UseNone", value: "UseNone", type: "name", explicitSet: !1, valueSet: ["UseNone", "UseOutlines", "UseThumbs", "UseOC"], pdfVersion: 1.3 }, Direction: { defaultValue: "L2R", value: "L2R", type: "name", explicitSet: !1, valueSet: ["L2R", "R2L"], pdfVersion: 1.3 }, ViewArea: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, ViewClip: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, PrintArea: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, PrintClip: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, PrintScaling: { defaultValue: "AppDefault", value: "AppDefault", type: "name", explicitSet: !1, valueSet: ["AppDefault", "None"], pdfVersion: 1.6 }, Duplex: { defaultValue: "", value: "none", type: "name", explicitSet: !1, valueSet: ["Simplex", "DuplexFlipShortEdge", "DuplexFlipLongEdge", "none"], pdfVersion: 1.7 }, PickTrayByPDFSize: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.7 }, PrintPageRange: { defaultValue: "", value: "", type: "array", explicitSet: !1, valueSet: null, pdfVersion: 1.7 }, NumCopies: { defaultValue: 1, value: 1, type: "integer", explicitSet: !1, valueSet: null, pdfVersion: 1.7 } }, o = Object.keys(s), c = [], h = 0, p = 0, d = 0;
function w(Q, y) {
var N, v = !1;
for (N = 0; N < Q.length; N += 1) Q[N] === y && (v = !0);
return v;
}
if (this.internal.viewerpreferences === void 0 && (this.internal.viewerpreferences = {}, this.internal.viewerpreferences.configuration = JSON.parse(JSON.stringify(s)), this.internal.viewerpreferences.isSubscribed = !1), A = this.internal.viewerpreferences.configuration, t === "reset" || e === !0) {
var g = o.length;
for (d = 0; d < g; d += 1) A[o[d]].value = A[o[d]].defaultValue, A[o[d]].explicitSet = !1;
}
if (Se(t) === "object") {
for (n in t) if (i = t[n], w(o, n) && i !== void 0) {
if (A[n].type === "boolean" && typeof i == "boolean") A[n].value = i;
else if (A[n].type === "name" && w(A[n].valueSet, i)) A[n].value = i;
else if (A[n].type === "integer" && Number.isInteger(i)) A[n].value = i;
else if (A[n].type === "array") {
for (h = 0; h < i.length; h += 1) if (r = !0, i[h].length === 1 && typeof i[h][0] == "number") c.push(String(i[h] - 1));
else if (i[h].length > 1) {
for (p = 0; p < i[h].length; p += 1) typeof i[h][p] != "number" && (r = !1);
r === !0 && c.push([i[h][0] - 1, i[h][1] - 1].join(" "));
}
A[n].value = "[" + c.join(" ") + "]";
} else A[n].value = A[n].defaultValue;
A[n].explicitSet = !0;
}
}
return this.internal.viewerpreferences.isSubscribed === !1 && (this.internal.events.subscribe("putCatalog", function() {
var Q, y = [];
for (Q in A) A[Q].explicitSet === !0 && (A[Q].type === "name" ? y.push("/" + Q + " /" + A[Q].value) : y.push("/" + Q + " " + A[Q].value));
y.length !== 0 && this.internal.write(`/ViewerPreferences
<<
` + y.join(`
`) + `
>>`);
}), this.internal.viewerpreferences.isSubscribed = !0), this.internal.viewerpreferences.configuration = A, this;
}, /** ====================================================================
* @license
* jsPDF XMP metadata plugin
* Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* ====================================================================
*/
function(t) {
var e = function() {
var r = '<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description rdf:about="" xmlns:jspdf="' + this.internal.__metadata__.namespaceuri + '"><jspdf:metadata>', n = unescape(encodeURIComponent('<x:xmpmeta xmlns:x="adobe:ns:meta/">')), i = unescape(encodeURIComponent(r)), s = unescape(encodeURIComponent(this.internal.__metadata__.metadata)), o = unescape(encodeURIComponent("</jspdf:metadata></rdf:Description></rdf:RDF>")), c = unescape(encodeURIComponent("</x:xmpmeta>")), h = i.length + s.length + o.length + n.length + c.length;
this.internal.__metadata__.metadata_object_number = this.internal.newObject(), this.internal.write("<< /Type /Metadata /Subtype /XML /Length " + h + " >>"), this.internal.write("stream"), this.internal.write(n + i + s + o + c), this.internal.write("endstream"), this.internal.write("endobj");
}, A = function() {
this.internal.__metadata__.metadata_object_number && this.internal.write("/Metadata " + this.internal.__metadata__.metadata_object_number + " 0 R");
};
t.addMetadata = function(r, n) {
return this.internal.__metadata__ === void 0 && (this.internal.__metadata__ = { metadata: r, namespaceuri: n || "http://jspdf.default.namespaceuri/" }, this.internal.events.subscribe("putCatalog", A), this.internal.events.subscribe("postPutResources", e)), this;
};
}(ae.API), function(t) {
var e = t.API, A = e.pdfEscape16 = function(i, s) {
for (var o, c = s.metadata.Unicode.widths, h = ["", "0", "00", "000", "0000"], p = [""], d = 0, w = i.length; d < w; ++d) {
if (o = s.metadata.characterToGlyph(i.charCodeAt(d)), s.metadata.glyIdsUsed.push(o), s.metadata.toUnicode[o] = i.charCodeAt(d), c.indexOf(o) == -1 && (c.push(o), c.push([parseInt(s.metadata.widthOfGlyph(o), 10)])), o == "0") return p.join("");
o = o.toString(16), p.push(h[4 - o.length], o);
}
return p.join("");
}, r = function(i) {
var s, o, c, h, p, d, w;
for (p = `/CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo <<
/Registry (Adobe)
/Ordering (UCS)
/Supplement 0
>> def
/CMapName /Adobe-Identity-UCS def
/CMapType 2 def
1 begincodespacerange
<0000><ffff>
endcodespacerange`, c = [], d = 0, w = (o = Object.keys(i).sort(function(g, Q) {
return g - Q;
})).length; d < w; d++) s = o[d], c.length >= 100 && (p += `
` + c.length + ` beginbfchar
` + c.join(`
`) + `
endbfchar`, c = []), i[s] !== void 0 && i[s] !== null && typeof i[s].toString == "function" && (h = ("0000" + i[s].toString(16)).slice(-4), s = ("0000" + (+s).toString(16)).slice(-4), c.push("<" + s + "><" + h + ">"));
return c.length && (p += `
` + c.length + ` beginbfchar
` + c.join(`
`) + `
endbfchar
`), p += `endcmap
CMapName currentdict /CMap defineresource pop
end
end`;
};
e.events.push(["putFont", function(i) {
(function(s) {
var o = s.font, c = s.out, h = s.newObject, p = s.putStream;
if (o.metadata instanceof t.API.TTFFont && o.encoding === "Identity-H") {
for (var d = o.metadata.Unicode.widths, w = o.metadata.subset.encode(o.metadata.glyIdsUsed, 1), g = "", Q = 0; Q < w.length; Q++) g += String.fromCharCode(w[Q]);
var y = h();
p({ data: g, addLength1: !0, objectId: y }), c("endobj");
var N = h();
p({ data: r(o.metadata.toUnicode), addLength1: !0, objectId: N }), c("endobj");
var v = h();
c("<<"), c("/Type /FontDescriptor"), c("/FontName /" + Aa(o.fontName)), c("/FontFile2 " + y + " 0 R"), c("/FontBBox " + t.API.PDFObject.convert(o.metadata.bbox)), c("/Flags " + o.metadata.flags), c("/StemV " + o.metadata.stemV), c("/ItalicAngle " + o.metadata.italicAngle), c("/Ascent " + o.metadata.ascender), c("/Descent " + o.metadata.decender), c("/CapHeight " + o.metadata.capHeight), c(">>"), c("endobj");
var U = h();
c("<<"), c("/Type /Font"), c("/BaseFont /" + Aa(o.fontName)), c("/FontDescriptor " + v + " 0 R"), c("/W " + t.API.PDFObject.convert(d)), c("/CIDToGIDMap /Identity"), c("/DW 1000"), c("/Subtype /CIDFontType2"), c("/CIDSystemInfo"), c("<<"), c("/Supplement 0"), c("/Registry (Adobe)"), c("/Ordering (" + o.encoding + ")"), c(">>"), c(">>"), c("endobj"), o.objectNumber = h(), c("<<"), c("/Type /Font"), c("/Subtype /Type0"), c("/ToUnicode " + N + " 0 R"), c("/BaseFont /" + Aa(o.fontName)), c("/Encoding /" + o.encoding), c("/DescendantFonts [" + U + " 0 R]"), c(">>"), c("endobj"), o.isAlreadyPutted = !0;
}
})(i);
}]), e.events.push(["putFont", function(i) {
(function(s) {
var o = s.font, c = s.out, h = s.newObject, p = s.putStream;
if (o.metadata instanceof t.API.TTFFont && o.encoding === "WinAnsiEncoding") {
for (var d = o.metadata.rawData, w = "", g = 0; g < d.length; g++) w += String.fromCharCode(d[g]);
var Q = h();
p({ data: w, addLength1: !0, objectId: Q }), c("endobj");
var y = h();
p({ data: r(o.metadata.toUnicode), addLength1: !0, objectId: y }), c("endobj");
var N = h();
c("<<"), c("/Descent " + o.metadata.decender), c("/CapHeight " + o.metadata.capHeight), c("/StemV " + o.metadata.stemV), c("/Type /FontDescriptor"), c("/FontFile2 " + Q + " 0 R"), c("/Flags 96"), c("/FontBBox " + t.API.PDFObject.convert(o.metadata.bbox)), c("/FontName /" + Aa(o.fontName)), c("/ItalicAngle " + o.metadata.italicAngle), c("/Ascent " + o.metadata.ascender), c(">>"), c("endobj"), o.objectNumber = h();
for (var v = 0; v < o.metadata.hmtx.widths.length; v++) o.metadata.hmtx.widths[v] = parseInt(o.metadata.hmtx.widths[v] * (1e3 / o.metadata.head.unitsPerEm));
c("<</Subtype/TrueType/Type/Font/ToUnicode " + y + " 0 R/BaseFont/" + Aa(o.fontName) + "/FontDescriptor " + N + " 0 R/Encoding/" + o.encoding + " /FirstChar 29 /LastChar 255 /Widths " + t.API.PDFObject.convert(o.metadata.hmtx.widths) + ">>"), c("endobj"), o.isAlreadyPutted = !0;
}
})(i);
}]);
var n = function(i) {
var s, o = i.text || "", c = i.x, h = i.y, p = i.options || {}, d = i.mutex || {}, w = d.pdfEscape, g = d.activeFontKey, Q = d.fonts, y = g, N = "", v = 0, U = "", K = Q[y].encoding;
if (Q[y].encoding !== "Identity-H") return { text: o, x: c, y: h, options: p, mutex: d };
for (U = o, y = g, Array.isArray(o) && (U = o[0]), v = 0; v < U.length; v += 1) Q[y].metadata.hasOwnProperty("cmap") && (s = Q[y].metadata.cmap.unicode.codeMap[U[v].charCodeAt(0)]), s || U[v].charCodeAt(0) < 256 && Q[y].metadata.hasOwnProperty("Unicode") ? N += U[v] : N += "";
var j = "";
return parseInt(y.slice(1)) < 14 || K === "WinAnsiEncoding" ? j = w(N, y).split("").map(function(q) {
return q.charCodeAt(0).toString(16);
}).join("") : K === "Identity-H" && (j = A(N, Q[y])), d.isHex = !0, { text: j, x: c, y: h, options: p, mutex: d };
};
e.events.push(["postProcessText", function(i) {
var s = i.text || "", o = [], c = { text: s, x: i.x, y: i.y, options: i.options, mutex: i.mutex };
if (Array.isArray(s)) {
var h = 0;
for (h = 0; h < s.length; h += 1) Array.isArray(s[h]) && s[h].length === 3 ? o.push([n(Object.assign({}, c, { text: s[h][0] })).text, s[h][1], s[h][2]]) : o.push(n(Object.assign({}, c, { text: s[h] })).text);
i.text = o;
} else i.text = n(Object.assign({}, c, { text: s })).text;
}]);
}(ae), /**
* @license
* jsPDF virtual FileSystem functionality
*
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
function(t) {
var e = function() {
return this.internal.vFS === void 0 && (this.internal.vFS = {}), !0;
};
t.existsFileInVFS = function(A) {
return e.call(this), this.internal.vFS[A] !== void 0;
}, t.addFileToVFS = function(A, r) {
return e.call(this), this.internal.vFS[A] = r, this;
}, t.getFileFromVFS = function(A) {
return e.call(this), this.internal.vFS[A] !== void 0 ? this.internal.vFS[A] : null;
};
}(ae.API), /**
* @license
* Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)
* MIT License
*/
function(t) {
t.__bidiEngine__ = t.prototype.__bidiEngine__ = function(r) {
var n, i, s, o, c, h, p, d = e, w = [[0, 3, 0, 1, 0, 0, 0], [0, 3, 0, 1, 2, 2, 0], [0, 3, 0, 17, 2, 0, 1], [0, 3, 5, 5, 4, 1, 0], [0, 3, 21, 21, 4, 0, 1], [0, 3, 5, 5, 4, 2, 0]], g = [[2, 0, 1, 1, 0, 1, 0], [2, 0, 1, 1, 0, 2, 0], [2, 0, 2, 1, 3, 2, 0], [2, 0, 2, 33, 3, 1, 1]], Q = { L: 0, R: 1, EN: 2, AN: 3, N: 4, B: 5, S: 6 }, y = { 0: 0, 5: 1, 6: 2, 7: 3, 32: 4, 251: 5, 254: 6, 255: 7 }, N = ["(", ")", "(", "<", ">", "<", "[", "]", "[", "{", "}", "{", "«", "»", "«", "‹", "›", "‹", "⁅", "⁆", "⁅", "⁽", "⁾", "⁽", "₍", "₎", "₍", "≤", "≥", "≤", "〈", "〉", "〈", "﹙", "﹚", "﹙", "﹛", "﹜", "﹛", "﹝", "﹞", "﹝", "﹤", "﹥", "﹤"], v = new RegExp(/^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/), U = !1, K = 0;
this.__bidiEngine__ = {};
var j = function(x) {
var F = x.charCodeAt(), _ = F >> 8, P = y[_];
return P !== void 0 ? d[256 * P + (255 & F)] : _ === 252 || _ === 253 ? "AL" : v.test(_) ? "L" : _ === 8 ? "R" : "N";
}, q = function(x) {
for (var F, _ = 0; _ < x.length; _++) {
if ((F = j(x.charAt(_))) === "L") return !1;
if (F === "R") return !0;
}
return !1;
}, V = function(x, F, _, P) {
var lA, oA, iA, k, W = F[P];
switch (W) {
case "L":
case "R":
U = !1;
break;
case "N":
case "AN":
break;
case "EN":
U && (W = "AN");
break;
case "AL":
U = !0, W = "R";
break;
case "WS":
W = "N";
break;
case "CS":
P < 1 || P + 1 >= F.length || (lA = _[P - 1]) !== "EN" && lA !== "AN" || (oA = F[P + 1]) !== "EN" && oA !== "AN" ? W = "N" : U && (oA = "AN"), W = oA === lA ? oA : "N";
break;
case "ES":
W = (lA = P > 0 ? _[P - 1] : "B") === "EN" && P + 1 < F.length && F[P + 1] === "EN" ? "EN" : "N";
break;
case "ET":
if (P > 0 && _[P - 1] === "EN") {
W = "EN";
break;
}
if (U) {
W = "N";
break;
}
for (iA = P + 1, k = F.length; iA < k && F[iA] === "ET"; ) iA++;
W = iA < k && F[iA] === "EN" ? "EN" : "N";
break;
case "NSM":
if (s && !o) {
for (k = F.length, iA = P + 1; iA < k && F[iA] === "NSM"; ) iA++;
if (iA < k) {
var rA = x[P], OA = rA >= 1425 && rA <= 2303 || rA === 64286;
if (lA = F[iA], OA && (lA === "R" || lA === "AL")) {
W = "R";
break;
}
}
}
W = P < 1 || (lA = F[P - 1]) === "B" ? "N" : _[P - 1];
break;
case "B":
U = !1, n = !0, W = K;
break;
case "S":
i = !0, W = "N";
break;
case "LRE":
case "RLE":
case "LRO":
case "RLO":
case "PDF":
U = !1;
break;
case "BN":
W = "N";
}
return W;
}, z = function(x, F, _) {
var P = x.split("");
return _ && H(P, _, { hiLevel: K }), P.reverse(), F && F.reverse(), P.join("");
}, H = function(x, F, _) {
var P, lA, oA, iA, k, W = -1, rA = x.length, OA = 0, L = [], M = K ? g : w, R = [];
for (U = !1, n = !1, i = !1, lA = 0; lA < rA; lA++) R[lA] = j(x[lA]);
for (oA = 0; oA < rA; oA++) {
if (k = OA, L[oA] = V(x, R, L, oA), P = 240 & (OA = M[k][Q[L[oA]]]), OA &= 15, F[oA] = iA = M[OA][5], P > 0) if (P === 16) {
for (lA = W; lA < oA; lA++) F[lA] = 1;
W = -1;
} else W = -1;
if (M[OA][6]) W === -1 && (W = oA);
else if (W > -1) {
for (lA = W; lA < oA; lA++) F[lA] = iA;
W = -1;
}
R[oA] === "B" && (F[oA] = 0), _.hiLevel |= iA;
}
i && function(J, eA, uA) {
for (var dA = 0; dA < uA; dA++) if (J[dA] === "S") {
eA[dA] = K;
for (var gA = dA - 1; gA >= 0 && J[gA] === "WS"; gA--) eA[gA] = K;
}
}(R, F, rA);
}, G = function(x, F, _, P, lA) {
if (!(lA.hiLevel < x)) {
if (x === 1 && K === 1 && !n) return F.reverse(), void (_ && _.reverse());
for (var oA, iA, k, W, rA = F.length, OA = 0; OA < rA; ) {
if (P[OA] >= x) {
for (k = OA + 1; k < rA && P[k] >= x; ) k++;
for (W = OA, iA = k - 1; W < iA; W++, iA--) oA = F[W], F[W] = F[iA], F[iA] = oA, _ && (oA = _[W], _[W] = _[iA], _[iA] = oA);
OA = k;
}
OA++;
}
}
}, tA = function(x, F, _) {
var P = x.split(""), lA = { hiLevel: K };
return _ || (_ = []), H(P, _, lA), function(oA, iA, k) {
if (k.hiLevel !== 0 && p) for (var W, rA = 0; rA < oA.length; rA++) iA[rA] === 1 && (W = N.indexOf(oA[rA])) >= 0 && (oA[rA] = N[W + 1]);
}(P, _, lA), G(2, P, F, _, lA), G(1, P, F, _, lA), P.join("");
};
return this.__bidiEngine__.doBidiReorder = function(x, F, _) {
if (function(lA, oA) {
if (oA) for (var iA = 0; iA < lA.length; iA++) oA[iA] = iA;
o === void 0 && (o = q(lA)), h === void 0 && (h = q(lA));
}(x, F), s || !c || h) if (s && c && o ^ h) K = o ? 1 : 0, x = z(x, F, _);
else if (!s && c && h) K = o ? 1 : 0, x = tA(x, F, _), x = z(x, F);
else if (!s || o || c || h) {
if (s && !c && o ^ h) x = z(x, F), o ? (K = 0, x = tA(x, F, _)) : (K = 1, x = tA(x, F, _), x = z(x, F));
else if (s && o && !c && h) K = 1, x = tA(x, F, _), x = z(x, F);
else if (!s && !c && o ^ h) {
var P = p;
o ? (K = 1, x = tA(x, F, _), K = 0, p = !1, x = tA(x, F, _), p = P) : (K = 0, x = tA(x, F, _), x = z(x, F), K = 1, p = !1, x = tA(x, F, _), p = P, x = z(x, F));
}
} else K = 0, x = tA(x, F, _);
else K = o ? 1 : 0, x = tA(x, F, _);
return x;
}, this.__bidiEngine__.setOptions = function(x) {
x && (s = x.isInputVisual, c = x.isOutputVisual, o = x.isInputRtl, h = x.isOutputRtl, p = x.isSymmetricSwapping);
}, this.__bidiEngine__.setOptions(r), this.__bidiEngine__;
};
var e = ["BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "S", "B", "S", "WS", "B", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "B", "B", "B", "S", "WS", "N", "N", "ET", "ET", "ET", "N", "N", "N", "N", "N", "ES", "CS", "ES", "CS", "CS", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "CS", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "BN", "BN", "BN", "BN", "BN", "BN", "B", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "CS", "N", "ET", "ET", "ET", "ET", "N", "N", "N", "N", "L", "N", "N", "BN", "N", "N", "ET", "ET", "EN", "EN", "N", "L", "N", "N", "N", "EN", "L", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "L", "L", "L", "L", "L", "L", "L", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "L", "N", "N", "N", "N", "N", "ET", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "R", "NSM", "R", "NSM", "NSM", "R", "NSM", "NSM", "R", "NSM", "N", "N", "N", "N", "N", "N", "N", "N", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "N", "N", "N", "N", "N", "R", "R", "R", "R", "R", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "AN", "AN", "AN", "AN", "AN", "AN", "N", "N", "AL", "ET", "ET", "AL", "CS", "AL", "N", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "N", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "ET", "AN", "AN", "AL", "AL", "AL", "NSM", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AN", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "NSM", "NSM", "N", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "N", "AL", "AL", "NSM", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "N", "N", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "R", "R", "N", "N", "N", "N", "R", "N", "N", "N", "N", "N", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "BN", "BN", "BN", "L", "R", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "WS", "B", "LRE", "RLE", "PDF", "LRO", "RLO", "CS", "ET", "ET", "ET", "ET", "ET", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "CS", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "WS", "BN", "BN", "BN", "BN", "BN", "N", "LRI", "RLI", "FSI", "PDI", "BN", "BN", "BN", "BN", "BN", "BN", "EN", "L", "N", "N", "EN", "EN", "EN", "EN", "EN", "EN", "ES", "ES", "N", "N", "N", "L", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "ES", "ES", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "R", "NSM", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "ES", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "N", "R", "R", "R", "R", "R", "N", "R", "N", "R", "R", "N", "R", "R", "N", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "CS", "N", "CS", "N", "N", "CS", "N", "N", "N", "N", "N", "N", "N", "N", "N", "ET", "N", "N", "ES", "ES", "N", "N", "N", "N", "N", "ET", "ET", "N", "N", "N", "N", "N", "AL", "AL", "AL", "AL", "AL", "N", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "N", "N", "BN", "N", "N", "N", "ET", "ET", "ET", "N", "N", "N", "N", "N", "ES", "CS", "ES", "CS", "CS", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "CS", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "L", "L", "L", "L", "L", "L", "N", "N", "L", "L", "L", "L", "L", "L", "N", "N", "L", "L", "L", "L", "L", "L", "N", "N", "L", "L", "L", "N", "N", "N", "ET", "ET", "N", "N", "N", "ET", "ET", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N"], A = new t.__bidiEngine__({ isInputVisual: !0 });
t.API.events.push(["postProcessText", function(r) {
var n = r.text;
r.x, r.y;
var i = r.options || {};
r.mutex, i.lang;
var s = [];
if (i.isInputVisual = typeof i.isInputVisual != "boolean" || i.isInputVisual, A.setOptions(i), Object.prototype.toString.call(n) === "[object Array]") {
var o = 0;
for (s = [], o = 0; o < n.length; o += 1) Object.prototype.toString.call(n[o]) === "[object Array]" ? s.push([A.doBidiReorder(n[o][0]), n[o][1], n[o][2]]) : s.push([A.doBidiReorder(n[o])]);
r.text = s;
} else r.text = A.doBidiReorder(n);
A.setOptions({ isInputVisual: !0 });
}]);
}(ae), ae.API.TTFFont = function() {
function t(e) {
var A;
if (this.rawData = e, A = this.contents = new Gn(e), this.contents.pos = 4, A.readString(4) === "ttcf") throw new Error("TTCF not supported.");
A.pos = 0, this.parse(), this.subset = new EB(this), this.registerTTF();
}
return t.open = function(e) {
return new t(e);
}, t.prototype.parse = function() {
return this.directory = new dB(this.contents), this.head = new pB(this), this.name = new CB(this), this.cmap = new Rh(this), this.toUnicode = {}, this.hhea = new BB(this), this.maxp = new yB(this), this.hmtx = new FB(this), this.post = new vB(this), this.os2 = new wB(this), this.loca = new LB(this), this.glyf = new QB(this), this.ascender = this.os2.exists && this.os2.ascender || this.hhea.ascender, this.decender = this.os2.exists && this.os2.decender || this.hhea.decender, this.lineGap = this.os2.exists && this.os2.lineGap || this.hhea.lineGap, this.bbox = [this.head.xMin, this.head.yMin, this.head.xMax, this.head.yMax];
}, t.prototype.registerTTF = function() {
var e, A, r, n, i;
if (this.scaleFactor = 1e3 / this.head.unitsPerEm, this.bbox = (function() {
var s, o, c, h;
for (h = [], s = 0, o = (c = this.bbox).length; s < o; s++) e = c[s], h.push(Math.round(e * this.scaleFactor));
return h;
}).call(this), this.stemV = 0, this.post.exists ? (r = 255 & (n = this.post.italic_angle), (32768 & (A = n >> 16)) != 0 && (A = -(1 + (65535 ^ A))), this.italicAngle = +(A + "." + r)) : this.italicAngle = 0, this.ascender = Math.round(this.ascender * this.scaleFactor), this.decender = Math.round(this.decender * this.scaleFactor), this.lineGap = Math.round(this.lineGap * this.scaleFactor), this.capHeight = this.os2.exists && this.os2.capHeight || this.ascender, this.xHeight = this.os2.exists && this.os2.xHeight || 0, this.familyClass = (this.os2.exists && this.os2.familyClass || 0) >> 8, this.isSerif = (i = this.familyClass) === 1 || i === 2 || i === 3 || i === 4 || i === 5 || i === 7, this.isScript = this.familyClass === 10, this.flags = 0, this.post.isFixedPitch && (this.flags |= 1), this.isSerif && (this.flags |= 2), this.isScript && (this.flags |= 8), this.italicAngle !== 0 && (this.flags |= 64), this.flags |= 32, !this.cmap.unicode) throw new Error("No unicode cmap for font");
}, t.prototype.characterToGlyph = function(e) {
var A;
return ((A = this.cmap.unicode) != null ? A.codeMap[e] : void 0) || 0;
}, t.prototype.widthOfGlyph = function(e) {
var A;
return A = 1e3 / this.head.unitsPerEm, this.hmtx.forGlyph(e).advance * A;
}, t.prototype.widthOfString = function(e, A, r) {
var n, i, s, o;
for (s = 0, i = 0, o = (e = "" + e).length; 0 <= o ? i < o : i > o; i = 0 <= o ? ++i : --i) n = e.charCodeAt(i), s += this.widthOfGlyph(this.characterToGlyph(n)) + r * (1e3 / A) || 0;
return s * (A / 1e3);
}, t.prototype.lineHeight = function(e, A) {
var r;
return A == null && (A = !1), r = A ? this.lineGap : 0, (this.ascender + r - this.decender) / 1e3 * e;
}, t;
}();
var Sr, Gn = function() {
function t(e) {
this.data = e ?? [], this.pos = 0, this.length = this.data.length;
}
return t.prototype.readByte = function() {
return this.data[this.pos++];
}, t.prototype.writeByte = function(e) {
return this.data[this.pos++] = e;
}, t.prototype.readUInt32 = function() {
return 16777216 * this.readByte() + (this.readByte() << 16) + (this.readByte() << 8) + this.readByte();
}, t.prototype.writeUInt32 = function(e) {
return this.writeByte(e >>> 24 & 255), this.writeByte(e >> 16 & 255), this.writeByte(e >> 8 & 255), this.writeByte(255 & e);
}, t.prototype.readInt32 = function() {
var e;
return (e = this.readUInt32()) >= 2147483648 ? e - 4294967296 : e;
}, t.prototype.writeInt32 = function(e) {
return e < 0 && (e += 4294967296), this.writeUInt32(e);
}, t.prototype.readUInt16 = function() {
return this.readByte() << 8 | this.readByte();
}, t.prototype.writeUInt16 = function(e) {
return this.writeByte(e >> 8 & 255), this.writeByte(255 & e);
}, t.prototype.readInt16 = function() {
var e;
return (e = this.readUInt16()) >= 32768 ? e - 65536 : e;
}, t.prototype.writeInt16 = function(e) {
return e < 0 && (e += 65536), this.writeUInt16(e);
}, t.prototype.readString = function(e) {
var A, r;
for (r = [], A = 0; 0 <= e ? A < e : A > e; A = 0 <= e ? ++A : --A) r[A] = String.fromCharCode(this.readByte());
return r.join("");
}, t.prototype.writeString = function(e) {
var A, r, n;
for (n = [], A = 0, r = e.length; 0 <= r ? A < r : A > r; A = 0 <= r ? ++A : --A) n.push(this.writeByte(e.charCodeAt(A)));
return n;
}, t.prototype.readShort = function() {
return this.readInt16();
}, t.prototype.writeShort = function(e) {
return this.writeInt16(e);
}, t.prototype.readLongLong = function() {
var e, A, r, n, i, s, o, c;
return e = this.readByte(), A = this.readByte(), r = this.readByte(), n = this.readByte(), i = this.readByte(), s = this.readByte(), o = this.readByte(), c = this.readByte(), 128 & e ? -1 * (72057594037927940 * (255 ^ e) + 281474976710656 * (255 ^ A) + 1099511627776 * (255 ^ r) + 4294967296 * (255 ^ n) + 16777216 * (255 ^ i) + 65536 * (255 ^ s) + 256 * (255 ^ o) + (255 ^ c) + 1) : 72057594037927940 * e + 281474976710656 * A + 1099511627776 * r + 4294967296 * n + 16777216 * i + 65536 * s + 256 * o + c;
}, t.prototype.writeLongLong = function(e) {
var A, r;
return A = Math.floor(e / 4294967296), r = 4294967295 & e, this.writeByte(A >> 24 & 255), this.writeByte(A >> 16 & 255), this.writeByte(A >> 8 & 255), this.writeByte(255 & A), this.writeByte(r >> 24 & 255), this.writeByte(r >> 16 & 255), this.writeByte(r >> 8 & 255), this.writeByte(255 & r);
}, t.prototype.readInt = function() {
return this.readInt32();
}, t.prototype.writeInt = function(e) {
return this.writeInt32(e);
}, t.prototype.read = function(e) {
var A, r;
for (A = [], r = 0; 0 <= e ? r < e : r > e; r = 0 <= e ? ++r : --r) A.push(this.readByte());
return A;
}, t.prototype.write = function(e) {
var A, r, n, i;
for (i = [], r = 0, n = e.length; r < n; r++) A = e[r], i.push(this.writeByte(A));
return i;
}, t;
}(), dB = function() {
var t;
function e(A) {
var r, n, i;
for (this.scalarType = A.readInt(), this.tableCount = A.readShort(), this.searchRange = A.readShort(), this.entrySelector = A.readShort(), this.rangeShift = A.readShort(), this.tables = {}, n = 0, i = this.tableCount; 0 <= i ? n < i : n > i; n = 0 <= i ? ++n : --n) r = { tag: A.readString(4), checksum: A.readInt(), offset: A.readInt(), length: A.readInt() }, this.tables[r.tag] = r;
}
return e.prototype.encode = function(A) {
var r, n, i, s, o, c, h, p, d, w, g, Q, y;
for (y in g = Object.keys(A).length, c = Math.log(2), d = 16 * Math.floor(Math.log(g) / c), s = Math.floor(d / c), p = 16 * g - d, (n = new Gn()).writeInt(this.scalarType), n.writeShort(g), n.writeShort(d), n.writeShort(s), n.writeShort(p), i = 16 * g, h = n.pos + i, o = null, Q = [], A) for (w = A[y], n.writeString(y), n.writeInt(t(w)), n.writeInt(h), n.writeInt(w.length), Q = Q.concat(w), y === "head" && (o = h), h += w.length; h % 4; ) Q.push(0), h++;
return n.write(Q), r = 2981146554 - t(n.data), n.pos = o + 8, n.writeUInt32(r), n.data;
}, t = function(A) {
var r, n, i, s;
for (A = Gh.call(A); A.length % 4; ) A.push(0);
for (i = new Gn(A), n = 0, r = 0, s = A.length; r < s; r = r += 4) n += i.readUInt32();
return 4294967295 & n;
}, e;
}(), gB = {}.hasOwnProperty, Xr = function(t, e) {
for (var A in e) gB.call(e, A) && (t[A] = e[A]);
function r() {
this.constructor = t;
}
return r.prototype = e.prototype, t.prototype = new r(), t.__super__ = e.prototype, t;
};
Sr = function() {
function t(e) {
var A;
this.file = e, A = this.file.directory.tables[this.tag], this.exists = !!A, A && (this.offset = A.offset, this.length = A.length, this.parse(this.file.contents));
}
return t.prototype.parse = function() {
}, t.prototype.encode = function() {
}, t.prototype.raw = function() {
return this.exists ? (this.file.contents.pos = this.offset, this.file.contents.read(this.length)) : null;
}, t;
}();
var pB = function(t) {
function e() {
return e.__super__.constructor.apply(this, arguments);
}
return Xr(e, Sr), e.prototype.tag = "head", e.prototype.parse = function(A) {
return A.pos = this.offset, this.version = A.readInt(), this.revision = A.readInt(), this.checkSumAdjustment = A.readInt(), this.magicNumber = A.readInt(), this.flags = A.readShort(), this.unitsPerEm = A.readShort(), this.created = A.readLongLong(), this.modified = A.readLongLong(), this.xMin = A.readShort(), this.yMin = A.readShort(), this.xMax = A.readShort(), this.yMax = A.readShort(), this.macStyle = A.readShort(), this.lowestRecPPEM = A.readShort(), this.fontDirectionHint = A.readShort(), this.indexToLocFormat = A.readShort(), this.glyphDataFormat = A.readShort();
}, e.prototype.encode = function(A) {
var r;
return (r = new Gn()).writeInt(this.version), r.writeInt(this.revision), r.writeInt(this.checkSumAdjustment), r.writeInt(this.magicNumber), r.writeShort(this.flags), r.writeShort(this.unitsPerEm), r.writeLongLong(this.created), r.writeLongLong(this.modified), r.writeShort(this.xMin), r.writeShort(this.yMin), r.writeShort(this.xMax), r.writeShort(this.yMax), r.writeShort(this.macStyle), r.writeShort(this.lowestRecPPEM), r.writeShort(this.fontDirectionHint), r.writeShort(A), r.writeShort(this.glyphDataFormat), r.data;
}, e;
}(), Cf = function() {
function t(e, A) {
var r, n, i, s, o, c, h, p, d, w, g, Q, y, N, v, U, K;
switch (this.platformID = e.readUInt16(), this.encodingID = e.readShort(), this.offset = A + e.readInt(), d = e.pos, e.pos = this.offset, this.format = e.readUInt16(), this.length = e.readUInt16(), this.language = e.readUInt16(), this.isUnicode = this.platformID === 3 && this.encodingID === 1 && this.format === 4 || this.platformID === 0 && this.format === 4, this.codeMap = {}, this.format) {
case 0:
for (c = 0; c < 256; ++c) this.codeMap[c] = e.readByte();
break;
case 4:
for (g = e.readUInt16(), w = g / 2, e.pos += 6, i = function() {
var j, q;
for (q = [], c = j = 0; 0 <= w ? j < w : j > w; c = 0 <= w ? ++j : --j) q.push(e.readUInt16());
return q;
}(), e.pos += 2, y = function() {
var j, q;
for (q = [], c = j = 0; 0 <= w ? j < w : j > w; c = 0 <= w ? ++j : --j) q.push(e.readUInt16());
return q;
}(), h = function() {
var j, q;
for (q = [], c = j = 0; 0 <= w ? j < w : j > w; c = 0 <= w ? ++j : --j) q.push(e.readUInt16());
return q;
}(), p = function() {
var j, q;
for (q = [], c = j = 0; 0 <= w ? j < w : j > w; c = 0 <= w ? ++j : --j) q.push(e.readUInt16());
return q;
}(), n = (this.length - e.pos + this.offset) / 2, o = function() {
var j, q;
for (q = [], c = j = 0; 0 <= n ? j < n : j > n; c = 0 <= n ? ++j : --j) q.push(e.readUInt16());
return q;
}(), c = v = 0, K = i.length; v < K; c = ++v) for (N = i[c], r = U = Q = y[c]; Q <= N ? U <= N : U >= N; r = Q <= N ? ++U : --U) p[c] === 0 ? s = r + h[c] : (s = o[p[c] / 2 + (r - Q) - (w - c)] || 0) !== 0 && (s += h[c]), this.codeMap[r] = 65535 & s;
}
e.pos = d;
}
return t.encode = function(e, A) {
var r, n, i, s, o, c, h, p, d, w, g, Q, y, N, v, U, K, j, q, V, z, H, G, tA, x, F, _, P, lA, oA, iA, k, W, rA, OA, L, M, R, J, eA, uA, dA, gA, MA, NA, RA;
switch (P = new Gn(), s = Object.keys(e).sort(function(GA, ee) {
return GA - ee;
}), A) {
case "macroman":
for (y = 0, N = function() {
var GA = [];
for (Q = 0; Q < 256; ++Q) GA.push(0);
return GA;
}(), U = { 0: 0 }, i = {}, lA = 0, W = s.length; lA < W; lA++) U[gA = e[n = s[lA]]] == null && (U[gA] = ++y), i[n] = { old: e[n], new: U[e[n]] }, N[n] = U[e[n]];
return P.writeUInt16(1), P.writeUInt16(0), P.writeUInt32(12), P.writeUInt16(0), P.writeUInt16(262), P.writeUInt16(0), P.write(N), { charMap: i, subtable: P.data, maxGlyphID: y + 1 };
case "unicode":
for (F = [], d = [], K = 0, U = {}, r = {}, v = h = null, oA = 0, rA = s.length; oA < rA; oA++) U[q = e[n = s[oA]]] == null && (U[q] = ++K), r[n] = { old: q, new: U[q] }, o = U[q] - n, v != null && o === h || (v && d.push(v), F.push(n), h = o), v = n;
for (v && d.push(v), d.push(65535), F.push(65535), tA = 2 * (G = F.length), H = 2 * Math.pow(Math.log(G) / Math.LN2, 2), w = Math.log(H / 2) / Math.LN2, z = 2 * G - H, c = [], V = [], g = [], Q = iA = 0, OA = F.length; iA < OA; Q = ++iA) {
if (x = F[Q], p = d[Q], x === 65535) {
c.push(0), V.push(0);
break;
}
if (x - (_ = r[x].new) >= 32768) for (c.push(0), V.push(2 * (g.length + G - Q)), n = k = x; x <= p ? k <= p : k >= p; n = x <= p ? ++k : --k) g.push(r[n].new);
else c.push(_ - x), V.push(0);
}
for (P.writeUInt16(3), P.writeUInt16(1), P.writeUInt32(12), P.writeUInt16(4), P.writeUInt16(16 + 8 * G + 2 * g.length), P.writeUInt16(0), P.writeUInt16(tA), P.writeUInt16(H), P.writeUInt16(w), P.writeUInt16(z), uA = 0, L = d.length; uA < L; uA++) n = d[uA], P.writeUInt16(n);
for (P.writeUInt16(0), dA = 0, M = F.length; dA < M; dA++) n = F[dA], P.writeUInt16(n);
for (MA = 0, R = c.length; MA < R; MA++) o = c[MA], P.writeUInt16(o);
for (NA = 0, J = V.length; NA < J; NA++) j = V[NA], P.writeUInt16(j);
for (RA = 0, eA = g.length; RA < eA; RA++) y = g[RA], P.writeUInt16(y);
return { charMap: r, subtable: P.data, maxGlyphID: K + 1 };
}
}, t;
}(), Rh = function(t) {
function e() {
return e.__super__.constructor.apply(this, arguments);
}
return Xr(e, Sr), e.prototype.tag = "cmap", e.prototype.parse = function(A) {
var r, n, i;
for (A.pos = this.offset, this.version = A.readUInt16(), i = A.readUInt16(), this.tables = [], this.unicode = null, n = 0; 0 <= i ? n < i : n > i; n = 0 <= i ? ++n : --n) r = new Cf(A, this.offset), this.tables.push(r), r.isUnicode && this.unicode == null && (this.unicode = r);
return !0;
}, e.encode = function(A, r) {
var n, i;
return r == null && (r = "macroman"), n = Cf.encode(A, r), (i = new Gn()).writeUInt16(0), i.writeUInt16(1), n.table = i.data.concat(n.subtable), n;
}, e;
}(), BB = function(t) {
function e() {
return e.__super__.constructor.apply(this, arguments);
}
return Xr(e, Sr), e.prototype.tag = "hhea", e.prototype.parse = function(A) {
return A.pos = this.offset, this.version = A.readInt(), this.ascender = A.readShort(), this.decender = A.readShort(), this.lineGap = A.readShort(), this.advanceWidthMax = A.readShort(), this.minLeftSideBearing = A.readShort(), this.minRightSideBearing = A.readShort(), this.xMaxExtent = A.readShort(), this.caretSlopeRise = A.readShort(), this.caretSlopeRun = A.readShort(), this.caretOffset = A.readShort(), A.pos += 8, this.metricDataFormat = A.readShort(), this.numberOfMetrics = A.readUInt16();
}, e;
}(), wB = function(t) {
function e() {
return e.__super__.constructor.apply(this, arguments);
}
return Xr(e, Sr), e.prototype.tag = "OS/2", e.prototype.parse = function(A) {
if (A.pos = this.offset, this.version = A.readUInt16(), this.averageCharWidth = A.readShort(), this.weightClass = A.readUInt16(), this.widthClass = A.readUInt16(), this.type = A.readShort(), this.ySubscriptXSize = A.readShort(), this.ySubscriptYSize = A.readShort(), this.ySubscriptXOffset = A.readShort(), this.ySubscriptYOffset = A.readShort(), this.ySuperscriptXSize = A.readShort(), this.ySuperscriptYSize = A.readShort(), this.ySuperscriptXOffset = A.readShort(), this.ySuperscriptYOffset = A.readShort(), this.yStrikeoutSize = A.readShort(), this.yStrikeoutPosition = A.readShort(), this.familyClass = A.readShort(), this.panose = function() {
var r, n;
for (n = [], r = 0; r < 10; ++r) n.push(A.readByte());
return n;
}(), this.charRange = function() {
var r, n;
for (n = [], r = 0; r < 4; ++r) n.push(A.readInt());
return n;
}(), this.vendorID = A.readString(4), this.selection = A.readShort(), this.firstCharIndex = A.readShort(), this.lastCharIndex = A.readShort(), this.version > 0 && (this.ascent = A.readShort(), this.descent = A.readShort(), this.lineGap = A.readShort(), this.winAscent = A.readShort(), this.winDescent = A.readShort(), this.codePageRange = function() {
var r, n;
for (n = [], r = 0; r < 2; r = ++r) n.push(A.readInt());
return n;
}(), this.version > 1)) return this.xHeight = A.readShort(), this.capHeight = A.readShort(), this.defaultChar = A.readShort(), this.breakChar = A.readShort(), this.maxContext = A.readShort();
}, e;
}(), vB = function(t) {
function e() {
return e.__super__.constructor.apply(this, arguments);
}
return Xr(e, Sr), e.prototype.tag = "post", e.prototype.parse = function(A) {
var r, n, i;
switch (A.pos = this.offset, this.format = A.readInt(), this.italicAngle = A.readInt(), this.underlinePosition = A.readShort(), this.underlineThickness = A.readShort(), this.isFixedPitch = A.readInt(), this.minMemType42 = A.readInt(), this.maxMemType42 = A.readInt(), this.minMemType1 = A.readInt(), this.maxMemType1 = A.readInt(), this.format) {
case 65536:
break;
case 131072:
var s;
for (n = A.readUInt16(), this.glyphNameIndex = [], s = 0; 0 <= n ? s < n : s > n; s = 0 <= n ? ++s : --s) this.glyphNameIndex.push(A.readUInt16());
for (this.names = [], i = []; A.pos < this.offset + this.length; ) r = A.readByte(), i.push(this.names.push(A.readString(r)));
return i;
case 151552:
return n = A.readUInt16(), this.offsets = A.read(n);
case 196608:
break;
case 262144:
return this.map = (function() {
var o, c, h;
for (h = [], s = o = 0, c = this.file.maxp.numGlyphs; 0 <= c ? o < c : o > c; s = 0 <= c ? ++o : --o) h.push(A.readUInt32());
return h;
}).call(this);
}
}, e;
}(), mB = function(t, e) {
this.raw = t, this.length = t.length, this.platformID = e.platformID, this.encodingID = e.encodingID, this.languageID = e.languageID;
}, CB = function(t) {
function e() {
return e.__super__.constructor.apply(this, arguments);
}
return Xr(e, Sr), e.prototype.tag = "name", e.prototype.parse = function(A) {
var r, n, i, s, o, c, h, p, d, w, g;
for (A.pos = this.offset, A.readShort(), r = A.readShort(), c = A.readShort(), n = [], s = 0; 0 <= r ? s < r : s > r; s = 0 <= r ? ++s : --s) n.push({ platformID: A.readShort(), encodingID: A.readShort(), languageID: A.readShort(), nameID: A.readShort(), length: A.readShort(), offset: this.offset + c + A.readShort() });
for (h = {}, s = d = 0, w = n.length; d < w; s = ++d) i = n[s], A.pos = i.offset, p = A.readString(i.length), o = new mB(p, i), h[g = i.nameID] == null && (h[g] = []), h[i.nameID].push(o);
this.strings = h, this.copyright = h[0], this.fontFamily = h[1], this.fontSubfamily = h[2], this.uniqueSubfamily = h[3], this.fontName = h[4], this.version = h[5];
try {
this.postscriptName = h[6][0].raw.replace(/[\x00-\x19\x80-\xff]/g, "");
} catch {
this.postscriptName = h[4][0].raw.replace(/[\x00-\x19\x80-\xff]/g, "");
}
return this.trademark = h[7], this.manufacturer = h[8], this.designer = h[9], this.description = h[10], this.vendorUrl = h[11], this.designerUrl = h[12], this.license = h[13], this.licenseUrl = h[14], this.preferredFamily = h[15], this.preferredSubfamily = h[17], this.compatibleFull = h[18], this.sampleText = h[19];
}, e;
}(), yB = function(t) {
function e() {
return e.__super__.constructor.apply(this, arguments);
}
return Xr(e, Sr), e.prototype.tag = "maxp", e.prototype.parse = function(A) {
return A.pos = this.offset, this.version = A.readInt(), this.numGlyphs = A.readUInt16(), this.maxPoints = A.readUInt16(), this.maxContours = A.readUInt16(), this.maxCompositePoints = A.readUInt16(), this.maxComponentContours = A.readUInt16(), this.maxZones = A.readUInt16(), this.maxTwilightPoints = A.readUInt16(), this.maxStorage = A.readUInt16(), this.maxFunctionDefs = A.readUInt16(), this.maxInstructionDefs = A.readUInt16(), this.maxStackElements = A.readUInt16(), this.maxSizeOfInstructions = A.readUInt16(), this.maxComponentElements = A.readUInt16(), this.maxComponentDepth = A.readUInt16();
}, e;
}(), FB = function(t) {
function e() {
return e.__super__.constructor.apply(this, arguments);
}
return Xr(e, Sr), e.prototype.tag = "hmtx", e.prototype.parse = function(A) {
var r, n, i, s, o, c, h;
for (A.pos = this.offset, this.metrics = [], r = 0, c = this.file.hhea.numberOfMetrics; 0 <= c ? r < c : r > c; r = 0 <= c ? ++r : --r) this.metrics.push({ advance: A.readUInt16(), lsb: A.readInt16() });
for (i = this.file.maxp.numGlyphs - this.file.hhea.numberOfMetrics, this.leftSideBearings = function() {
var p, d;
for (d = [], r = p = 0; 0 <= i ? p < i : p > i; r = 0 <= i ? ++p : --p) d.push(A.readInt16());
return d;
}(), this.widths = (function() {
var p, d, w, g;
for (g = [], p = 0, d = (w = this.metrics).length; p < d; p++) s = w[p], g.push(s.advance);
return g;
}).call(this), n = this.widths[this.widths.length - 1], h = [], r = o = 0; 0 <= i ? o < i : o > i; r = 0 <= i ? ++o : --o) h.push(this.widths.push(n));
return h;
}, e.prototype.forGlyph = function(A) {
return A in this.metrics ? this.metrics[A] : { advance: this.metrics[this.metrics.length - 1].advance, lsb: this.leftSideBearings[A - this.metrics.length] };
}, e;
}(), Gh = [].slice, QB = function(t) {
function e() {
return e.__super__.constructor.apply(this, arguments);
}
return Xr(e, Sr), e.prototype.tag = "glyf", e.prototype.parse = function() {
return this.cache = {};
}, e.prototype.glyphFor = function(A) {
var r, n, i, s, o, c, h, p, d, w;
return A in this.cache ? this.cache[A] : (s = this.file.loca, r = this.file.contents, n = s.indexOf(A), (i = s.lengthOf(A)) === 0 ? this.cache[A] = null : (r.pos = this.offset + n, o = (c = new Gn(r.read(i))).readShort(), p = c.readShort(), w = c.readShort(), h = c.readShort(), d = c.readShort(), this.cache[A] = o === -1 ? new UB(c, p, w, h, d) : new bB(c, o, p, w, h, d), this.cache[A]));
}, e.prototype.encode = function(A, r, n) {
var i, s, o, c, h;
for (o = [], s = [], c = 0, h = r.length; c < h; c++) i = A[r[c]], s.push(o.length), i && (o = o.concat(i.encode(n)));
return s.push(o.length), { table: o, offsets: s };
}, e;
}(), bB = function() {
function t(e, A, r, n, i, s) {
this.raw = e, this.numberOfContours = A, this.xMin = r, this.yMin = n, this.xMax = i, this.yMax = s, this.compound = !1;
}
return t.prototype.encode = function() {
return this.raw.data;
}, t;
}(), UB = function() {
function t(e, A, r, n, i) {
var s, o;
for (this.raw = e, this.xMin = A, this.yMin = r, this.xMax = n, this.yMax = i, this.compound = !0, this.glyphIDs = [], this.glyphOffsets = [], s = this.raw; o = s.readShort(), this.glyphOffsets.push(s.pos), this.glyphIDs.push(s.readUInt16()), 32 & o; ) s.pos += 1 & o ? 4 : 2, 128 & o ? s.pos += 8 : 64 & o ? s.pos += 4 : 8 & o && (s.pos += 2);
}
return t.prototype.encode = function() {
var e, A, r;
for (A = new Gn(Gh.call(this.raw.data)), e = 0, r = this.glyphIDs.length; e < r; ++e) A.pos = this.glyphOffsets[e];
return A.data;
}, t;
}(), LB = function(t) {
function e() {
return e.__super__.constructor.apply(this, arguments);
}
return Xr(e, Sr), e.prototype.tag = "loca", e.prototype.parse = function(A) {
var r, n;
return A.pos = this.offset, r = this.file.head.indexToLocFormat, this.offsets = r === 0 ? (function() {
var i, s;
for (s = [], n = 0, i = this.length; n < i; n += 2) s.push(2 * A.readUInt16());
return s;
}).call(this) : (function() {
var i, s;
for (s = [], n = 0, i = this.length; n < i; n += 4) s.push(A.readUInt32());
return s;
}).call(this);
}, e.prototype.indexOf = function(A) {
return this.offsets[A];
}, e.prototype.lengthOf = function(A) {
return this.offsets[A + 1] - this.offsets[A];
}, e.prototype.encode = function(A, r) {
for (var n = new Uint32Array(this.offsets.length), i = 0, s = 0, o = 0; o < n.length; ++o) if (n[o] = i, s < r.length && r[s] == o) {
++s, n[o] = i;
var c = this.offsets[o], h = this.offsets[o + 1] - c;
h > 0 && (i += h);
}
for (var p = new Array(4 * n.length), d = 0; d < n.length; ++d) p[4 * d + 3] = 255 & n[d], p[4 * d + 2] = (65280 & n[d]) >> 8, p[4 * d + 1] = (16711680 & n[d]) >> 16, p[4 * d] = (4278190080 & n[d]) >> 24;
return p;
}, e;
}(), EB = function() {
function t(e) {
this.font = e, this.subset = {}, this.unicodes = {}, this.next = 33;
}
return t.prototype.generateCmap = function() {
var e, A, r, n, i;
for (A in n = this.font.cmap.tables[0].codeMap, e = {}, i = this.subset) r = i[A], e[A] = n[r];
return e;
}, t.prototype.glyphsFor = function(e) {
var A, r, n, i, s, o, c;
for (n = {}, s = 0, o = e.length; s < o; s++) n[i = e[s]] = this.font.glyf.glyphFor(i);
for (i in A = [], n) (r = n[i]) != null && r.compound && A.push.apply(A, r.glyphIDs);
if (A.length > 0) for (i in c = this.glyphsFor(A)) r = c[i], n[i] = r;
return n;
}, t.prototype.encode = function(e, A) {
var r, n, i, s, o, c, h, p, d, w, g, Q, y, N, v;
for (n in r = Rh.encode(this.generateCmap(), "unicode"), s = this.glyphsFor(e), g = { 0: 0 }, v = r.charMap) g[(c = v[n]).old] = c.new;
for (Q in w = r.maxGlyphID, s) Q in g || (g[Q] = w++);
return p = function(U) {
var K, j;
for (K in j = {}, U) j[U[K]] = K;
return j;
}(g), d = Object.keys(p).sort(function(U, K) {
return U - K;
}), y = function() {
var U, K, j;
for (j = [], U = 0, K = d.length; U < K; U++) o = d[U], j.push(p[o]);
return j;
}(), i = this.font.glyf.encode(s, y, g), h = this.font.loca.encode(i.offsets, y), N = { cmap: this.font.cmap.raw(), glyf: i.table, loca: h, hmtx: this.font.hmtx.raw(), hhea: this.font.hhea.raw(), maxp: this.font.maxp.raw(), post: this.font.post.raw(), name: this.font.name.raw(), head: this.font.head.encode(A) }, this.font.os2.exists && (N["OS/2"] = this.font.os2.raw()), this.font.directory.encode(N);
}, t;
}();
ae.API.PDFObject = function() {
var t;
function e() {
}
return t = function(A, r) {
return (Array(r + 1).join("0") + A).slice(-r);
}, e.convert = function(A) {
var r, n, i, s;
if (Array.isArray(A)) return "[" + function() {
var o, c, h;
for (h = [], o = 0, c = A.length; o < c; o++) r = A[o], h.push(e.convert(r));
return h;
}().join(" ") + "]";
if (typeof A == "string") return "/" + A;
if (A != null && A.isString) return "(" + A + ")";
if (A instanceof Date) return "(D:" + t(A.getUTCFullYear(), 4) + t(A.getUTCMonth(), 2) + t(A.getUTCDate(), 2) + t(A.getUTCHours(), 2) + t(A.getUTCMinutes(), 2) + t(A.getUTCSeconds(), 2) + "Z)";
if ({}.toString.call(A) === "[object Object]") {
for (n in i = ["<<"], A) s = A[n], i.push("/" + n + " " + e.convert(s));
return i.push(">>"), i.join(`
`);
}
return "" + A;
}, e;
}();
/*!
* html2canvas 1.4.1 <https://html2canvas.hertzen.com>
* Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>
* Released under MIT License
*/
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
var Wc = function(t, e) {
return Wc = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(A, r) {
A.__proto__ = r;
} || function(A, r) {
for (var n in r) Object.prototype.hasOwnProperty.call(r, n) && (A[n] = r[n]);
}, Wc(t, e);
};
function Hr(t, e) {
if (typeof e != "function" && e !== null)
throw new TypeError("Class extends value " + String(e) + " is not a constructor or null");
Wc(t, e);
function A() {
this.constructor = t;
}
t.prototype = e === null ? Object.create(e) : (A.prototype = e.prototype, new A());
}
var Xc = function() {
return Xc = Object.assign || function(e) {
for (var A, r = 1, n = arguments.length; r < n; r++) {
A = arguments[r];
for (var i in A) Object.prototype.hasOwnProperty.call(A, i) && (e[i] = A[i]);
}
return e;
}, Xc.apply(this, arguments);
};
function _t(t, e, A, r) {
function n(i) {
return i instanceof A ? i : new A(function(s) {
s(i);
});
}
return new (A || (A = Promise))(function(i, s) {
function o(p) {
try {
h(r.next(p));
} catch (d) {
s(d);
}
}
function c(p) {
try {
h(r.throw(p));
} catch (d) {
s(d);
}
}
function h(p) {
p.done ? i(p.value) : n(p.value).then(o, c);
}
h((r = r.apply(t, [])).next());
});
}
function It(t, e) {
var A = { label: 0, sent: function() {
if (i[0] & 1) throw i[1];
return i[1];
}, trys: [], ops: [] }, r, n, i, s;
return s = { next: o(0), throw: o(1), return: o(2) }, typeof Symbol == "function" && (s[Symbol.iterator] = function() {
return this;
}), s;
function o(h) {
return function(p) {
return c([h, p]);
};
}
function c(h) {
if (r) throw new TypeError("Generator is already executing.");
for (; A; ) try {
if (r = 1, n && (i = h[0] & 2 ? n.return : h[0] ? n.throw || ((i = n.return) && i.call(n), 0) : n.next) && !(i = i.call(n, h[1])).done) return i;
switch (n = 0, i && (h = [h[0] & 2, i.value]), h[0]) {
case 0:
case 1:
i = h;
break;
case 4:
return A.label++, { value: h[1], done: !1 };
case 5:
A.label++, n = h[1], h = [0];
continue;
case 7:
h = A.ops.pop(), A.trys.pop();
continue;
default:
if (i = A.trys, !(i = i.length > 0 && i[i.length - 1]) && (h[0] === 6 || h[0] === 2)) {
A = 0;
continue;
}
if (h[0] === 3 && (!i || h[1] > i[0] && h[1] < i[3])) {
A.label = h[1];
break;
}
if (h[0] === 6 && A.label < i[1]) {
A.label = i[1], i = h;
break;
}
if (i && A.label < i[2]) {
A.label = i[2], A.ops.push(h);
break;
}
i[2] && A.ops.pop(), A.trys.pop();
continue;
}
h = e.call(t, A);
} catch (p) {
h = [6, p], n = 0;
} finally {
r = i = 0;
}
if (h[0] & 5) throw h[1];
return { value: h[0] ? h[1] : void 0, done: !0 };
}
}
function lo(t, e, A) {
if (arguments.length === 2) for (var r = 0, n = e.length, i; r < n; r++)
(i || !(r in e)) && (i || (i = Array.prototype.slice.call(e, 0, r)), i[r] = e[r]);
return t.concat(i || e);
}
var hn = (
/** @class */
function() {
function t(e, A, r, n) {
this.left = e, this.top = A, this.width = r, this.height = n;
}
return t.prototype.add = function(e, A, r, n) {
return new t(this.left + e, this.top + A, this.width + r, this.height + n);
}, t.fromClientRect = function(e, A) {
return new t(A.left + e.windowBounds.left, A.top + e.windowBounds.top, A.width, A.height);
}, t.fromDOMRectList = function(e, A) {
var r = Array.from(A).find(function(n) {
return n.width !== 0;
});
return r ? new t(r.left + e.windowBounds.left, r.top + e.windowBounds.top, r.width, r.height) : t.EMPTY;
}, t.EMPTY = new t(0, 0, 0, 0), t;
}()
), nl = function(t, e) {
return hn.fromClientRect(t, e.getBoundingClientRect());
}, xB = function(t) {
var e = t.body, A = t.documentElement;
if (!e || !A)
throw new Error("Unable to get document size");
var r = Math.max(Math.max(e.scrollWidth, A.scrollWidth), Math.max(e.offsetWidth, A.offsetWidth), Math.max(e.clientWidth, A.clientWidth)), n = Math.max(Math.max(e.scrollHeight, A.scrollHeight), Math.max(e.offsetHeight, A.offsetHeight), Math.max(e.clientHeight, A.clientHeight));
return new hn(0, 0, r, n);
}, il = function(t) {
for (var e = [], A = 0, r = t.length; A < r; ) {
var n = t.charCodeAt(A++);
if (n >= 55296 && n <= 56319 && A < r) {
var i = t.charCodeAt(A++);
(i & 64512) === 56320 ? e.push(((n & 1023) << 10) + (i & 1023) + 65536) : (e.push(n), A--);
} else
e.push(n);
}
return e;
}, At = function() {
for (var t = [], e = 0; e < arguments.length; e++)
t[e] = arguments[e];
if (String.fromCodePoint)
return String.fromCodePoint.apply(String, t);
var A = t.length;
if (!A)
return "";
for (var r = [], n = -1, i = ""; ++n < A; ) {
var s = t[n];
s <= 65535 ? r.push(s) : (s -= 65536, r.push((s >> 10) + 55296, s % 1024 + 56320)), (n + 1 === A || r.length > 16384) && (i += String.fromCharCode.apply(String, r), r.length = 0);
}
return i;
}, yf = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", IB = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var co = 0; co < yf.length; co++)
IB[yf.charCodeAt(co)] = co;
var Ff = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", Xa = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var uo = 0; uo < Ff.length; uo++)
Xa[Ff.charCodeAt(uo)] = uo;
var SB = function(t) {
var e = t.length * 0.75, A = t.length, r, n = 0, i, s, o, c;
t[t.length - 1] === "=" && (e--, t[t.length - 2] === "=" && e--);
var h = typeof ArrayBuffer < "u" && typeof Uint8Array < "u" && typeof Uint8Array.prototype.slice < "u" ? new ArrayBuffer(e) : new Array(e), p = Array.isArray(h) ? h : new Uint8Array(h);
for (r = 0; r < A; r += 4)
i = Xa[t.charCodeAt(r)], s = Xa[t.charCodeAt(r + 1)], o = Xa[t.charCodeAt(r + 2)], c = Xa[t.charCodeAt(r + 3)], p[n++] = i << 2 | s >> 4, p[n++] = (s & 15) << 4 | o >> 2, p[n++] = (o & 3) << 6 | c & 63;
return h;
}, HB = function(t) {
for (var e = t.length, A = [], r = 0; r < e; r += 2)
A.push(t[r + 1] << 8 | t[r]);
return A;
}, DB = function(t) {
for (var e = t.length, A = [], r = 0; r < e; r += 4)
A.push(t[r + 3] << 24 | t[r + 2] << 16 | t[r + 1] << 8 | t[r]);
return A;
}, ui = 5, vu = 11, hc = 2, NB = vu - ui, Vh = 65536 >> ui, kB = 1 << ui, dc = kB - 1, _B = 1024 >> ui, TB = Vh + _B, MB = TB, PB = 32, OB = MB + PB, KB = 65536 >> vu, RB = 1 << NB, GB = RB - 1, Qf = function(t, e, A) {
return t.slice ? t.slice(e, A) : new Uint16Array(Array.prototype.slice.call(t, e, A));
}, VB = function(t, e, A) {
return t.slice ? t.slice(e, A) : new Uint32Array(Array.prototype.slice.call(t, e, A));
}, jB = function(t, e) {
var A = SB(t), r = Array.isArray(A) ? DB(A) : new Uint32Array(A), n = Array.isArray(A) ? HB(A) : new Uint16Array(A), i = 24, s = Qf(n, i / 2, r[4] / 2), o = r[5] === 2 ? Qf(n, (i + r[4]) / 2) : VB(r, Math.ceil((i + r[4]) / 4));
return new qB(r[0], r[1], r[2], r[3], s, o);
}, qB = (
/** @class */
function() {
function t(e, A, r, n, i, s) {
this.initialValue = e, this.errorValue = A, this.highStart = r, this.highValueIndex = n, this.index = i, this.data = s;
}
return t.prototype.get = function(e) {
var A;
if (e >= 0) {
if (e < 55296 || e > 56319 && e <= 65535)
return A = this.index[e >> ui], A = (A << hc) + (e & dc), this.data[A];
if (e <= 65535)
return A = this.index[Vh + (e - 55296 >> ui)], A = (A << hc) + (e & dc), this.data[A];
if (e < this.highStart)
return A = OB - KB + (e >> vu), A = this.index[A], A += e >> ui & GB, A = this.index[A], A = (A << hc) + (e & dc), this.data[A];
if (e <= 1114111)
return this.data[this.highValueIndex];
}
return this.errorValue;
}, t;
}()
), bf = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", WB = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var fo = 0; fo < bf.length; fo++)
WB[bf.charCodeAt(fo)] = fo;
var XB = "KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==", Uf = 50, zB = 1, jh = 2, qh = 3, JB = 4, YB = 5, Lf = 7, Wh = 8, Ef = 9, _n = 10, zc = 11, xf = 12, Jc = 13, $B = 14, za = 15, Yc = 16, ho = 17, Va = 18, ZB = 19, If = 20, $c = 21, ja = 22, gc = 23, qi = 24, Yt = 25, Ja = 26, Ya = 27, Wi = 28, Aw = 29, si = 30, ew = 31, go = 32, po = 33, Zc = 34, Au = 35, eu = 36, os = 37, tu = 38, Mo = 39, Po = 40, pc = 41, Xh = 42, tw = 43, rw = [9001, 65288], zh = "!", Fe = "×", Bo = "÷", ru = jB(XB), ln = [si, eu], nu = [zB, jh, qh, YB], Jh = [_n, Wh], Sf = [Ya, Ja], nw = nu.concat(Jh), Hf = [tu, Mo, Po, Zc, Au], iw = [za, Jc], aw = function(t, e) {
e === void 0 && (e = "strict");
var A = [], r = [], n = [];
return t.forEach(function(i, s) {
var o = ru.get(i);
if (o > Uf ? (n.push(!0), o -= Uf) : n.push(!1), ["normal", "auto", "loose"].indexOf(e) !== -1 && [8208, 8211, 12316, 12448].indexOf(i) !== -1)
return r.push(s), A.push(Yc);
if (o === JB || o === zc) {
if (s === 0)
return r.push(s), A.push(si);
var c = A[s - 1];
return nw.indexOf(c) === -1 ? (r.push(r[s - 1]), A.push(c)) : (r.push(s), A.push(si));
}
if (r.push(s), o === ew)
return A.push(e === "strict" ? $c : os);
if (o === Xh || o === Aw)
return A.push(si);
if (o === tw)
return i >= 131072 && i <= 196605 || i >= 196608 && i <= 262141 ? A.push(os) : A.push(si);
A.push(o);
}), [r, A, n];
}, Bc = function(t, e, A, r) {
var n = r[A];
if (Array.isArray(t) ? t.indexOf(n) !== -1 : t === n)
for (var i = A; i <= r.length; ) {
i++;
var s = r[i];
if (s === e)
return !0;
if (s !== _n)
break;
}
if (n === _n)
for (var i = A; i > 0; ) {
i--;
var o = r[i];
if (Array.isArray(t) ? t.indexOf(o) !== -1 : t === o)
for (var c = A; c <= r.length; ) {
c++;
var s = r[c];
if (s === e)
return !0;
if (s !== _n)
break;
}
if (o !== _n)
break;
}
return !1;
}, Df = function(t, e) {
for (var A = t; A >= 0; ) {
var r = e[A];
if (r === _n)
A--;
else
return r;
}
return 0;
}, sw = function(t, e, A, r, n) {
if (A[r] === 0)
return Fe;
var i = r - 1;
if (Array.isArray(n) && n[i] === !0)
return Fe;
var s = i - 1, o = i + 1, c = e[i], h = s >= 0 ? e[s] : 0, p = e[o];
if (c === jh && p === qh)
return Fe;
if (nu.indexOf(c) !== -1)
return zh;
if (nu.indexOf(p) !== -1 || Jh.indexOf(p) !== -1)
return Fe;
if (Df(i, e) === Wh)
return Bo;
if (ru.get(t[i]) === zc || (c === go || c === po) && ru.get(t[o]) === zc || c === Lf || p === Lf || c === Ef || [_n, Jc, za].indexOf(c) === -1 && p === Ef || [ho, Va, ZB, qi, Wi].indexOf(p) !== -1 || Df(i, e) === ja || Bc(gc, ja, i, e) || Bc([ho, Va], $c, i, e) || Bc(xf, xf, i, e))
return Fe;
if (c === _n)
return Bo;
if (c === gc || p === gc)
return Fe;
if (p === Yc || c === Yc)
return Bo;
if ([Jc, za, $c].indexOf(p) !== -1 || c === $B || h === eu && iw.indexOf(c) !== -1 || c === Wi && p === eu || p === If || ln.indexOf(p) !== -1 && c === Yt || ln.indexOf(c) !== -1 && p === Yt || c === Ya && [os, go, po].indexOf(p) !== -1 || [os, go, po].indexOf(c) !== -1 && p === Ja || ln.indexOf(c) !== -1 && Sf.indexOf(p) !== -1 || Sf.indexOf(c) !== -1 && ln.indexOf(p) !== -1 || // (PR | PO) × ( OP | HY )? NU
[Ya, Ja].indexOf(c) !== -1 && (p === Yt || [ja, za].indexOf(p) !== -1 && e[o + 1] === Yt) || // ( OP | HY ) × NU
[ja, za].indexOf(c) !== -1 && p === Yt || // NU × (NU | SY | IS)
c === Yt && [Yt, Wi, qi].indexOf(p) !== -1)
return Fe;
if ([Yt, Wi, qi, ho, Va].indexOf(p) !== -1)
for (var d = i; d >= 0; ) {
var w = e[d];
if (w === Yt)
return Fe;
if ([Wi, qi].indexOf(w) !== -1)
d--;
else
break;
}
if ([Ya, Ja].indexOf(p) !== -1)
for (var d = [ho, Va].indexOf(c) !== -1 ? s : i; d >= 0; ) {
var w = e[d];
if (w === Yt)
return Fe;
if ([Wi, qi].indexOf(w) !== -1)
d--;
else
break;
}
if (tu === c && [tu, Mo, Zc, Au].indexOf(p) !== -1 || [Mo, Zc].indexOf(c) !== -1 && [Mo, Po].indexOf(p) !== -1 || [Po, Au].indexOf(c) !== -1 && p === Po || Hf.indexOf(c) !== -1 && [If, Ja].indexOf(p) !== -1 || Hf.indexOf(p) !== -1 && c === Ya || ln.indexOf(c) !== -1 && ln.indexOf(p) !== -1 || c === qi && ln.indexOf(p) !== -1 || ln.concat(Yt).indexOf(c) !== -1 && p === ja && rw.indexOf(t[o]) === -1 || ln.concat(Yt).indexOf(p) !== -1 && c === Va)
return Fe;
if (c === pc && p === pc) {
for (var g = A[i], Q = 1; g > 0 && (g--, e[g] === pc); )
Q++;
if (Q % 2 !== 0)
return Fe;
}
return c === go && p === po ? Fe : Bo;
}, ow = function(t, e) {
e || (e = { lineBreak: "normal", wordBreak: "normal" });
var A = aw(t, e.lineBreak), r = A[0], n = A[1], i = A[2];
(e.wordBreak === "break-all" || e.wordBreak === "break-word") && (n = n.map(function(o) {
return [Yt, si, Xh].indexOf(o) !== -1 ? os : o;
}));
var s = e.wordBreak === "keep-all" ? i.map(function(o, c) {
return o && t[c] >= 19968 && t[c] <= 40959;
}) : void 0;
return [r, n, s];
}, lw = (
/** @class */
function() {
function t(e, A, r, n) {
this.codePoints = e, this.required = A === zh, this.start = r, this.end = n;
}
return t.prototype.slice = function() {
return At.apply(void 0, this.codePoints.slice(this.start, this.end));
}, t;
}()
), cw = function(t, e) {
var A = il(t), r = ow(A, e), n = r[0], i = r[1], s = r[2], o = A.length, c = 0, h = 0;
return {
next: function() {
if (h >= o)
return { done: !0, value: null };
for (var p = Fe; h < o && (p = sw(A, i, n, ++h, s)) === Fe; )
;
if (p !== Fe || h === o) {
var d = new lw(A, p, c, h);
return c = h, { value: d, done: !1 };
}
return { done: !0, value: null };
}
};
}, uw = 1, fw = 2, us = 4, Nf = 8, jo = 10, kf = 47, ts = 92, hw = 9, dw = 32, wo = 34, qa = 61, gw = 35, pw = 36, Bw = 37, vo = 39, mo = 40, Wa = 41, ww = 95, Vt = 45, vw = 33, mw = 60, Cw = 62, yw = 64, Fw = 91, Qw = 93, bw = 61, Uw = 123, Co = 63, Lw = 125, _f = 124, Ew = 126, xw = 128, Tf = 65533, wc = 42, oi = 43, Iw = 44, Sw = 58, Hw = 59, ls = 46, Dw = 0, Nw = 8, kw = 11, _w = 14, Tw = 31, Mw = 127, Rr = -1, Yh = 48, $h = 97, Zh = 101, Pw = 102, Ow = 117, Kw = 122, Ad = 65, ed = 69, td = 70, Rw = 85, Gw = 90, St = function(t) {
return t >= Yh && t <= 57;
}, Vw = function(t) {
return t >= 55296 && t <= 57343;
}, Xi = function(t) {
return St(t) || t >= Ad && t <= td || t >= $h && t <= Pw;
}, jw = function(t) {
return t >= $h && t <= Kw;
}, qw = function(t) {
return t >= Ad && t <= Gw;
}, Ww = function(t) {
return jw(t) || qw(t);
}, Xw = function(t) {
return t >= xw;
}, yo = function(t) {
return t === jo || t === hw || t === dw;
}, qo = function(t) {
return Ww(t) || Xw(t) || t === ww;
}, Mf = function(t) {
return qo(t) || St(t) || t === Vt;
}, zw = function(t) {
return t >= Dw && t <= Nw || t === kw || t >= _w && t <= Tw || t === Mw;
}, Dn = function(t, e) {
return t !== ts ? !1 : e !== jo;
}, Fo = function(t, e, A) {
return t === Vt ? qo(e) || Dn(e, A) : qo(t) ? !0 : !!(t === ts && Dn(t, e));
}, vc = function(t, e, A) {
return t === oi || t === Vt ? St(e) ? !0 : e === ls && St(A) : St(t === ls ? e : t);
}, Jw = function(t) {
var e = 0, A = 1;
(t[e] === oi || t[e] === Vt) && (t[e] === Vt && (A = -1), e++);
for (var r = []; St(t[e]); )
r.push(t[e++]);
var n = r.length ? parseInt(At.apply(void 0, r), 10) : 0;
t[e] === ls && e++;
for (var i = []; St(t[e]); )
i.push(t[e++]);
var s = i.length, o = s ? parseInt(At.apply(void 0, i), 10) : 0;
(t[e] === ed || t[e] === Zh) && e++;
var c = 1;
(t[e] === oi || t[e] === Vt) && (t[e] === Vt && (c = -1), e++);
for (var h = []; St(t[e]); )
h.push(t[e++]);
var p = h.length ? parseInt(At.apply(void 0, h), 10) : 0;
return A * (n + o * Math.pow(10, -s)) * Math.pow(10, c * p);
}, Yw = {
type: 2
/* LEFT_PARENTHESIS_TOKEN */
}, $w = {
type: 3
/* RIGHT_PARENTHESIS_TOKEN */
}, Zw = {
type: 4
/* COMMA_TOKEN */
}, A5 = {
type: 13
/* SUFFIX_MATCH_TOKEN */
}, e5 = {
type: 8
/* PREFIX_MATCH_TOKEN */
}, t5 = {
type: 21
/* COLUMN_TOKEN */
}, r5 = {
type: 9
/* DASH_MATCH_TOKEN */
}, n5 = {
type: 10
/* INCLUDE_MATCH_TOKEN */
}, i5 = {
type: 11
/* LEFT_CURLY_BRACKET_TOKEN */
}, a5 = {
type: 12
/* RIGHT_CURLY_BRACKET_TOKEN */
}, s5 = {
type: 14
/* SUBSTRING_MATCH_TOKEN */
}, Qo = {
type: 23
/* BAD_URL_TOKEN */
}, o5 = {
type: 1
/* BAD_STRING_TOKEN */
}, l5 = {
type: 25
/* CDO_TOKEN */
}, c5 = {
type: 24
/* CDC_TOKEN */
}, u5 = {
type: 26
/* COLON_TOKEN */
}, f5 = {
type: 27
/* SEMICOLON_TOKEN */
}, h5 = {
type: 28
/* LEFT_SQUARE_BRACKET_TOKEN */
}, d5 = {
type: 29
/* RIGHT_SQUARE_BRACKET_TOKEN */
}, g5 = {
type: 31
/* WHITESPACE_TOKEN */
}, iu = {
type: 32
/* EOF_TOKEN */
}, rd = (
/** @class */
function() {
function t() {
this._value = [];
}
return t.prototype.write = function(e) {
this._value = this._value.concat(il(e));
}, t.prototype.read = function() {
for (var e = [], A = this.consumeToken(); A !== iu; )
e.push(A), A = this.consumeToken();
return e;
}, t.prototype.consumeToken = function() {
var e = this.consumeCodePoint();
switch (e) {
case wo:
return this.consumeStringToken(wo);
case gw:
var A = this.peekCodePoint(0), r = this.peekCodePoint(1), n = this.peekCodePoint(2);
if (Mf(A) || Dn(r, n)) {
var i = Fo(A, r, n) ? fw : uw, s = this.consumeName();
return { type: 5, value: s, flags: i };
}
break;
case pw:
if (this.peekCodePoint(0) === qa)
return this.consumeCodePoint(), A5;
break;
case vo:
return this.consumeStringToken(vo);
case mo:
return Yw;
case Wa:
return $w;
case wc:
if (this.peekCodePoint(0) === qa)
return this.consumeCodePoint(), s5;
break;
case oi:
if (vc(e, this.peekCodePoint(0), this.peekCodePoint(1)))
return this.reconsumeCodePoint(e), this.consumeNumericToken();
break;
case Iw:
return Zw;
case Vt:
var o = e, c = this.peekCodePoint(0), h = this.peekCodePoint(1);
if (vc(o, c, h))
return this.reconsumeCodePoint(e), this.consumeNumericToken();
if (Fo(o, c, h))
return this.reconsumeCodePoint(e), this.consumeIdentLikeToken();
if (c === Vt && h === Cw)
return this.consumeCodePoint(), this.consumeCodePoint(), c5;
break;
case ls:
if (vc(e, this.peekCodePoint(0), this.peekCodePoint(1)))
return this.reconsumeCodePoint(e), this.consumeNumericToken();
break;
case kf:
if (this.peekCodePoint(0) === wc)
for (this.consumeCodePoint(); ; ) {
var p = this.consumeCodePoint();
if (p === wc && (p = this.consumeCodePoint(), p === kf))
return this.consumeToken();
if (p === Rr)
return this.consumeToken();
}
break;
case Sw:
return u5;
case Hw:
return f5;
case mw:
if (this.peekCodePoint(0) === vw && this.peekCodePoint(1) === Vt && this.peekCodePoint(2) === Vt)
return this.consumeCodePoint(), this.consumeCodePoint(), l5;
break;
case yw:
var d = this.peekCodePoint(0), w = this.peekCodePoint(1), g = this.peekCodePoint(2);
if (Fo(d, w, g)) {
var s = this.consumeName();
return { type: 7, value: s };
}
break;
case Fw:
return h5;
case ts:
if (Dn(e, this.peekCodePoint(0)))
return this.reconsumeCodePoint(e), this.consumeIdentLikeToken();
break;
case Qw:
return d5;
case bw:
if (this.peekCodePoint(0) === qa)
return this.consumeCodePoint(), e5;
break;
case Uw:
return i5;
case Lw:
return a5;
case Ow:
case Rw:
var Q = this.peekCodePoint(0), y = this.peekCodePoint(1);
return Q === oi && (Xi(y) || y === Co) && (this.consumeCodePoint(), this.consumeUnicodeRangeToken()), this.reconsumeCodePoint(e), this.consumeIdentLikeToken();
case _f:
if (this.peekCodePoint(0) === qa)
return this.consumeCodePoint(), r5;
if (this.peekCodePoint(0) === _f)
return this.consumeCodePoint(), t5;
break;
case Ew:
if (this.peekCodePoint(0) === qa)
return this.consumeCodePoint(), n5;
break;
case Rr:
return iu;
}
return yo(e) ? (this.consumeWhiteSpace(), g5) : St(e) ? (this.reconsumeCodePoint(e), this.consumeNumericToken()) : qo(e) ? (this.reconsumeCodePoint(e), this.consumeIdentLikeToken()) : { type: 6, value: At(e) };
}, t.prototype.consumeCodePoint = function() {
var e = this._value.shift();
return typeof e > "u" ? -1 : e;
}, t.prototype.reconsumeCodePoint = function(e) {
this._value.unshift(e);
}, t.prototype.peekCodePoint = function(e) {
return e >= this._value.length ? -1 : this._value[e];
}, t.prototype.consumeUnicodeRangeToken = function() {
for (var e = [], A = this.consumeCodePoint(); Xi(A) && e.length < 6; )
e.push(A), A = this.consumeCodePoint();
for (var r = !1; A === Co && e.length < 6; )
e.push(A), A = this.consumeCodePoint(), r = !0;
if (r) {
var n = parseInt(At.apply(void 0, e.map(function(c) {
return c === Co ? Yh : c;
})), 16), i = parseInt(At.apply(void 0, e.map(function(c) {
return c === Co ? td : c;
})), 16);
return { type: 30, start: n, end: i };
}
var s = parseInt(At.apply(void 0, e), 16);
if (this.peekCodePoint(0) === Vt && Xi(this.peekCodePoint(1))) {
this.consumeCodePoint(), A = this.consumeCodePoint();
for (var o = []; Xi(A) && o.length < 6; )
o.push(A), A = this.consumeCodePoint();
var i = parseInt(At.apply(void 0, o), 16);
return { type: 30, start: s, end: i };
} else
return { type: 30, start: s, end: s };
}, t.prototype.consumeIdentLikeToken = function() {
var e = this.consumeName();
return e.toLowerCase() === "url" && this.peekCodePoint(0) === mo ? (this.consumeCodePoint(), this.consumeUrlToken()) : this.peekCodePoint(0) === mo ? (this.consumeCodePoint(), { type: 19, value: e }) : { type: 20, value: e };
}, t.prototype.consumeUrlToken = function() {
var e = [];
if (this.consumeWhiteSpace(), this.peekCodePoint(0) === Rr)
return { type: 22, value: "" };
var A = this.peekCodePoint(0);
if (A === vo || A === wo) {
var r = this.consumeStringToken(this.consumeCodePoint());
return r.type === 0 && (this.consumeWhiteSpace(), this.peekCodePoint(0) === Rr || this.peekCodePoint(0) === Wa) ? (this.consumeCodePoint(), { type: 22, value: r.value }) : (this.consumeBadUrlRemnants(), Qo);
}
for (; ; ) {
var n = this.consumeCodePoint();
if (n === Rr || n === Wa)
return { type: 22, value: At.apply(void 0, e) };
if (yo(n))
return this.consumeWhiteSpace(), this.peekCodePoint(0) === Rr || this.peekCodePoint(0) === Wa ? (this.consumeCodePoint(), { type: 22, value: At.apply(void 0, e) }) : (this.consumeBadUrlRemnants(), Qo);
if (n === wo || n === vo || n === mo || zw(n))
return this.consumeBadUrlRemnants(), Qo;
if (n === ts)
if (Dn(n, this.peekCodePoint(0)))
e.push(this.consumeEscapedCodePoint());
else
return this.consumeBadUrlRemnants(), Qo;
else
e.push(n);
}
}, t.prototype.consumeWhiteSpace = function() {
for (; yo(this.peekCodePoint(0)); )
this.consumeCodePoint();
}, t.prototype.consumeBadUrlRemnants = function() {
for (; ; ) {
var e = this.consumeCodePoint();
if (e === Wa || e === Rr)
return;
Dn(e, this.peekCodePoint(0)) && this.consumeEscapedCodePoint();
}
}, t.prototype.consumeStringSlice = function(e) {
for (var A = 5e4, r = ""; e > 0; ) {
var n = Math.min(A, e);
r += At.apply(void 0, this._value.splice(0, n)), e -= n;
}
return this._value.shift(), r;
}, t.prototype.consumeStringToken = function(e) {
var A = "", r = 0;
do {
var n = this._value[r];
if (n === Rr || n === void 0 || n === e)
return A += this.consumeStringSlice(r), { type: 0, value: A };
if (n === jo)
return this._value.splice(0, r), o5;
if (n === ts) {
var i = this._value[r + 1];
i !== Rr && i !== void 0 && (i === jo ? (A += this.consumeStringSlice(r), r = -1, this._value.shift()) : Dn(n, i) && (A += this.consumeStringSlice(r), A += At(this.consumeEscapedCodePoint()), r = -1));
}
r++;
} while (!0);
}, t.prototype.consumeNumber = function() {
var e = [], A = us, r = this.peekCodePoint(0);
for ((r === oi || r === Vt) && e.push(this.consumeCodePoint()); St(this.peekCodePoint(0)); )
e.push(this.consumeCodePoint());
r = this.peekCodePoint(0);
var n = this.peekCodePoint(1);
if (r === ls && St(n))
for (e.push(this.consumeCodePoint(), this.consumeCodePoint()), A = Nf; St(this.peekCodePoint(0)); )
e.push(this.consumeCodePoint());
r = this.peekCodePoint(0), n = this.peekCodePoint(1);
var i = this.peekCodePoint(2);
if ((r === ed || r === Zh) && ((n === oi || n === Vt) && St(i) || St(n)))
for (e.push(this.consumeCodePoint(), this.consumeCodePoint()), A = Nf; St(this.peekCodePoint(0)); )
e.push(this.consumeCodePoint());
return [Jw(e), A];
}, t.prototype.consumeNumericToken = function() {
var e = this.consumeNumber(), A = e[0], r = e[1], n = this.peekCodePoint(0), i = this.peekCodePoint(1), s = this.peekCodePoint(2);
if (Fo(n, i, s)) {
var o = this.consumeName();
return { type: 15, number: A, flags: r, unit: o };
}
return n === Bw ? (this.consumeCodePoint(), { type: 16, number: A, flags: r }) : { type: 17, number: A, flags: r };
}, t.prototype.consumeEscapedCodePoint = function() {
var e = this.consumeCodePoint();
if (Xi(e)) {
for (var A = At(e); Xi(this.peekCodePoint(0)) && A.length < 6; )
A += At(this.consumeCodePoint());
yo(this.peekCodePoint(0)) && this.consumeCodePoint();
var r = parseInt(A, 16);
return r === 0 || Vw(r) || r > 1114111 ? Tf : r;
}
return e === Rr ? Tf : e;
}, t.prototype.consumeName = function() {
for (var e = ""; ; ) {
var A = this.consumeCodePoint();
if (Mf(A))
e += At(A);
else if (Dn(A, this.peekCodePoint(0)))
e += At(this.consumeEscapedCodePoint());
else
return this.reconsumeCodePoint(A), e;
}
}, t;
}()
), nd = (
/** @class */
function() {
function t(e) {
this._tokens = e;
}
return t.create = function(e) {
var A = new rd();
return A.write(e), new t(A.read());
}, t.parseValue = function(e) {
return t.create(e).parseComponentValue();
}, t.parseValues = function(e) {
return t.create(e).parseComponentValues();
}, t.prototype.parseComponentValue = function() {
for (var e = this.consumeToken(); e.type === 31; )
e = this.consumeToken();
if (e.type === 32)
throw new SyntaxError("Error parsing CSS component value, unexpected EOF");
this.reconsumeToken(e);
var A = this.consumeComponentValue();
do
e = this.consumeToken();
while (e.type === 31);
if (e.type === 32)
return A;
throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one");
}, t.prototype.parseComponentValues = function() {
for (var e = []; ; ) {
var A = this.consumeComponentValue();
if (A.type === 32)
return e;
e.push(A), e.push();
}
}, t.prototype.consumeComponentValue = function() {
var e = this.consumeToken();
switch (e.type) {
case 11:
case 28:
case 2:
return this.consumeSimpleBlock(e.type);
case 19:
return this.consumeFunction(e);
}
return e;
}, t.prototype.consumeSimpleBlock = function(e) {
for (var A = { type: e, values: [] }, r = this.consumeToken(); ; ) {
if (r.type === 32 || B5(r, e))
return A;
this.reconsumeToken(r), A.values.push(this.consumeComponentValue()), r = this.consumeToken();
}
}, t.prototype.consumeFunction = function(e) {
for (var A = {
name: e.value,
values: [],
type: 18
/* FUNCTION */
}; ; ) {
var r = this.consumeToken();
if (r.type === 32 || r.type === 3)
return A;
this.reconsumeToken(r), A.values.push(this.consumeComponentValue());
}
}, t.prototype.consumeToken = function() {
var e = this._tokens.shift();
return typeof e > "u" ? iu : e;
}, t.prototype.reconsumeToken = function(e) {
this._tokens.unshift(e);
}, t;
}()
), fs = function(t) {
return t.type === 15;
}, ua = function(t) {
return t.type === 17;
}, Ne = function(t) {
return t.type === 20;
}, p5 = function(t) {
return t.type === 0;
}, au = function(t, e) {
return Ne(t) && t.value === e;
}, id = function(t) {
return t.type !== 31;
}, ca = function(t) {
return t.type !== 31 && t.type !== 4;
}, zr = function(t) {
var e = [], A = [];
return t.forEach(function(r) {
if (r.type === 4) {
if (A.length === 0)
throw new Error("Error parsing function args, zero tokens for arg");
e.push(A), A = [];
return;
}
r.type !== 31 && A.push(r);
}), A.length && e.push(A), e;
}, B5 = function(t, e) {
return e === 11 && t.type === 12 || e === 28 && t.type === 29 ? !0 : e === 2 && t.type === 3;
}, Vn = function(t) {
return t.type === 17 || t.type === 15;
}, lt = function(t) {
return t.type === 16 || Vn(t);
}, ad = function(t) {
return t.length > 1 ? [t[0], t[1]] : [t[0]];
}, Ft = {
type: 17,
number: 0,
flags: us
}, mu = {
type: 16,
number: 50,
flags: us
}, Tn = {
type: 16,
number: 100,
flags: us
}, $a = function(t, e, A) {
var r = t[0], n = t[1];
return [Pe(r, e), Pe(typeof n < "u" ? n : r, A)];
}, Pe = function(t, e) {
if (t.type === 16)
return t.number / 100 * e;
if (fs(t))
switch (t.unit) {
case "rem":
case "em":
return 16 * t.number;
// TODO use correct font-size
case "px":
default:
return t.number;
}
return t.number;
}, sd = "deg", od = "grad", ld = "rad", cd = "turn", al = {
name: "angle",
parse: function(t, e) {
if (e.type === 15)
switch (e.unit) {
case sd:
return Math.PI * e.number / 180;
case od:
return Math.PI / 200 * e.number;
case ld:
return e.number;
case cd:
return Math.PI * 2 * e.number;
}
throw new Error("Unsupported angle type");
}
}, ud = function(t) {
return t.type === 15 && (t.unit === sd || t.unit === od || t.unit === ld || t.unit === cd);
}, fd = function(t) {
var e = t.filter(Ne).map(function(A) {
return A.value;
}).join(" ");
switch (e) {
case "to bottom right":
case "to right bottom":
case "left top":
case "top left":
return [Ft, Ft];
case "to top":
case "bottom":
return fr(0);
case "to bottom left":
case "to left bottom":
case "right top":
case "top right":
return [Ft, Tn];
case "to right":
case "left":
return fr(90);
case "to top left":
case "to left top":
case "right bottom":
case "bottom right":
return [Tn, Tn];
case "to bottom":
case "top":
return fr(180);
case "to top right":
case "to right top":
case "left bottom":
case "bottom left":
return [Tn, Ft];
case "to left":
case "right":
return fr(270);
}
return 0;
}, fr = function(t) {
return Math.PI * t / 180;
}, Pn = {
name: "color",
parse: function(t, e) {
if (e.type === 18) {
var A = w5[e.name];
if (typeof A > "u")
throw new Error('Attempting to parse an unsupported color function "' + e.name + '"');
return A(t, e.values);
}
if (e.type === 5) {
if (e.value.length === 3) {
var r = e.value.substring(0, 1), n = e.value.substring(1, 2), i = e.value.substring(2, 3);
return Mn(parseInt(r + r, 16), parseInt(n + n, 16), parseInt(i + i, 16), 1);
}
if (e.value.length === 4) {
var r = e.value.substring(0, 1), n = e.value.substring(1, 2), i = e.value.substring(2, 3), s = e.value.substring(3, 4);
return Mn(parseInt(r + r, 16), parseInt(n + n, 16), parseInt(i + i, 16), parseInt(s + s, 16) / 255);
}
if (e.value.length === 6) {
var r = e.value.substring(0, 2), n = e.value.substring(2, 4), i = e.value.substring(4, 6);
return Mn(parseInt(r, 16), parseInt(n, 16), parseInt(i, 16), 1);
}
if (e.value.length === 8) {
var r = e.value.substring(0, 2), n = e.value.substring(2, 4), i = e.value.substring(4, 6), s = e.value.substring(6, 8);
return Mn(parseInt(r, 16), parseInt(n, 16), parseInt(i, 16), parseInt(s, 16) / 255);
}
}
if (e.type === 20) {
var o = fn[e.value.toUpperCase()];
if (typeof o < "u")
return o;
}
return fn.TRANSPARENT;
}
}, On = function(t) {
return (255 & t) === 0;
}, pt = function(t) {
var e = 255 & t, A = 255 & t >> 8, r = 255 & t >> 16, n = 255 & t >> 24;
return e < 255 ? "rgba(" + n + "," + r + "," + A + "," + e / 255 + ")" : "rgb(" + n + "," + r + "," + A + ")";
}, Mn = function(t, e, A, r) {
return (t << 24 | e << 16 | A << 8 | Math.round(r * 255) << 0) >>> 0;
}, Pf = function(t, e) {
if (t.type === 17)
return t.number;
if (t.type === 16) {
var A = e === 3 ? 1 : 255;
return e === 3 ? t.number / 100 * A : Math.round(t.number / 100 * A);
}
return 0;
}, Of = function(t, e) {
var A = e.filter(ca);
if (A.length === 3) {
var r = A.map(Pf), n = r[0], i = r[1], s = r[2];
return Mn(n, i, s, 1);
}
if (A.length === 4) {
var o = A.map(Pf), n = o[0], i = o[1], s = o[2], c = o[3];
return Mn(n, i, s, c);
}
return 0;
};
function mc(t, e, A) {
return A < 0 && (A += 1), A >= 1 && (A -= 1), A < 1 / 6 ? (e - t) * A * 6 + t : A < 1 / 2 ? e : A < 2 / 3 ? (e - t) * 6 * (2 / 3 - A) + t : t;
}
var Kf = function(t, e) {
var A = e.filter(ca), r = A[0], n = A[1], i = A[2], s = A[3], o = (r.type === 17 ? fr(r.number) : al.parse(t, r)) / (Math.PI * 2), c = lt(n) ? n.number / 100 : 0, h = lt(i) ? i.number / 100 : 0, p = typeof s < "u" && lt(s) ? Pe(s, 1) : 1;
if (c === 0)
return Mn(h * 255, h * 255, h * 255, 1);
var d = h <= 0.5 ? h * (c + 1) : h + c - h * c, w = h * 2 - d, g = mc(w, d, o + 1 / 3), Q = mc(w, d, o), y = mc(w, d, o - 1 / 3);
return Mn(g * 255, Q * 255, y * 255, p);
}, w5 = {
hsl: Kf,
hsla: Kf,
rgb: Of,
rgba: Of
}, rs = function(t, e) {
return Pn.parse(t, nd.create(e).parseComponentValue());
}, fn = {
ALICEBLUE: 4042850303,
ANTIQUEWHITE: 4209760255,
AQUA: 16777215,
AQUAMARINE: 2147472639,
AZURE: 4043309055,
BEIGE: 4126530815,
BISQUE: 4293182719,
BLACK: 255,
BLANCHEDALMOND: 4293643775,
BLUE: 65535,
BLUEVIOLET: 2318131967,
BROWN: 2771004159,
BURLYWOOD: 3736635391,
CADETBLUE: 1604231423,
CHARTREUSE: 2147418367,
CHOCOLATE: 3530104575,
CORAL: 4286533887,
CORNFLOWERBLUE: 1687547391,
CORNSILK: 4294499583,
CRIMSON: 3692313855,
CYAN: 16777215,
DARKBLUE: 35839,
DARKCYAN: 9145343,
DARKGOLDENROD: 3095837695,
DARKGRAY: 2846468607,
DARKGREEN: 6553855,
DARKGREY: 2846468607,
DARKKHAKI: 3182914559,
DARKMAGENTA: 2332068863,
DARKOLIVEGREEN: 1433087999,
DARKORANGE: 4287365375,
DARKORCHID: 2570243327,
DARKRED: 2332033279,
DARKSALMON: 3918953215,
DARKSEAGREEN: 2411499519,
DARKSLATEBLUE: 1211993087,
DARKSLATEGRAY: 793726975,
DARKSLATEGREY: 793726975,
DARKTURQUOISE: 13554175,
DARKVIOLET: 2483082239,
DEEPPINK: 4279538687,
DEEPSKYBLUE: 12582911,
DIMGRAY: 1768516095,
DIMGREY: 1768516095,
DODGERBLUE: 512819199,
FIREBRICK: 2988581631,
FLORALWHITE: 4294635775,
FORESTGREEN: 579543807,
FUCHSIA: 4278255615,
GAINSBORO: 3705462015,
GHOSTWHITE: 4177068031,
GOLD: 4292280575,
GOLDENROD: 3668254975,
GRAY: 2155905279,
GREEN: 8388863,
GREENYELLOW: 2919182335,
GREY: 2155905279,
HONEYDEW: 4043305215,
HOTPINK: 4285117695,
INDIANRED: 3445382399,
INDIGO: 1258324735,
IVORY: 4294963455,
KHAKI: 4041641215,
LAVENDER: 3873897215,
LAVENDERBLUSH: 4293981695,
LAWNGREEN: 2096890111,
LEMONCHIFFON: 4294626815,
LIGHTBLUE: 2916673279,
LIGHTCORAL: 4034953471,
LIGHTCYAN: 3774873599,
LIGHTGOLDENRODYELLOW: 4210742015,
LIGHTGRAY: 3553874943,
LIGHTGREEN: 2431553791,
LIGHTGREY: 3553874943,
LIGHTPINK: 4290167295,
LIGHTSALMON: 4288707327,
LIGHTSEAGREEN: 548580095,
LIGHTSKYBLUE: 2278488831,
LIGHTSLATEGRAY: 2005441023,
LIGHTSLATEGREY: 2005441023,
LIGHTSTEELBLUE: 2965692159,
LIGHTYELLOW: 4294959359,
LIME: 16711935,
LIMEGREEN: 852308735,
LINEN: 4210091775,
MAGENTA: 4278255615,
MAROON: 2147483903,
MEDIUMAQUAMARINE: 1724754687,
MEDIUMBLUE: 52735,
MEDIUMORCHID: 3126187007,
MEDIUMPURPLE: 2473647103,
MEDIUMSEAGREEN: 1018393087,
MEDIUMSLATEBLUE: 2070474495,
MEDIUMSPRINGGREEN: 16423679,
MEDIUMTURQUOISE: 1221709055,
MEDIUMVIOLETRED: 3340076543,
MIDNIGHTBLUE: 421097727,
MINTCREAM: 4127193855,
MISTYROSE: 4293190143,
MOCCASIN: 4293178879,
NAVAJOWHITE: 4292783615,
NAVY: 33023,
OLDLACE: 4260751103,
OLIVE: 2155872511,
OLIVEDRAB: 1804477439,
ORANGE: 4289003775,
ORANGERED: 4282712319,
ORCHID: 3664828159,
PALEGOLDENROD: 4008225535,
PALEGREEN: 2566625535,
PALETURQUOISE: 2951671551,
PALEVIOLETRED: 3681588223,
PAPAYAWHIP: 4293907967,
PEACHPUFF: 4292524543,
PERU: 3448061951,
PINK: 4290825215,
PLUM: 3718307327,
POWDERBLUE: 2967529215,
PURPLE: 2147516671,
REBECCAPURPLE: 1714657791,
RED: 4278190335,
ROSYBROWN: 3163525119,
ROYALBLUE: 1097458175,
SADDLEBROWN: 2336560127,
SALMON: 4202722047,
SANDYBROWN: 4104413439,
SEAGREEN: 780883967,
SEASHELL: 4294307583,
SIENNA: 2689740287,
SILVER: 3233857791,
SKYBLUE: 2278484991,
SLATEBLUE: 1784335871,
SLATEGRAY: 1887473919,
SLATEGREY: 1887473919,
SNOW: 4294638335,
SPRINGGREEN: 16744447,
STEELBLUE: 1182971135,
TAN: 3535047935,
TEAL: 8421631,
THISTLE: 3636451583,
TOMATO: 4284696575,
TRANSPARENT: 0,
TURQUOISE: 1088475391,
VIOLET: 4001558271,
WHEAT: 4125012991,
WHITE: 4294967295,
WHITESMOKE: 4126537215,
YELLOW: 4294902015,
YELLOWGREEN: 2597139199
}, v5 = {
name: "background-clip",
initialValue: "border-box",
prefix: !1,
type: 1,
parse: function(t, e) {
return e.map(function(A) {
if (Ne(A))
switch (A.value) {
case "padding-box":
return 1;
case "content-box":
return 2;
}
return 0;
});
}
}, m5 = {
name: "background-color",
initialValue: "transparent",
prefix: !1,
type: 3,
format: "color"
}, sl = function(t, e) {
var A = Pn.parse(t, e[0]), r = e[1];
return r && lt(r) ? { color: A, stop: r } : { color: A, stop: null };
}, Rf = function(t, e) {
var A = t[0], r = t[t.length - 1];
A.stop === null && (A.stop = Ft), r.stop === null && (r.stop = Tn);
for (var n = [], i = 0, s = 0; s < t.length; s++) {
var o = t[s].stop;
if (o !== null) {
var c = Pe(o, e);
c > i ? n.push(c) : n.push(i), i = c;
} else
n.push(null);
}
for (var h = null, s = 0; s < n.length; s++) {
var p = n[s];
if (p === null)
h === null && (h = s);
else if (h !== null) {
for (var d = s - h, w = n[h - 1], g = (p - w) / (d + 1), Q = 1; Q <= d; Q++)
n[h + Q - 1] = g * Q;
h = null;
}
}
return t.map(function(y, N) {
var v = y.color;
return { color: v, stop: Math.max(Math.min(1, n[N] / e), 0) };
});
}, C5 = function(t, e, A) {
var r = e / 2, n = A / 2, i = Pe(t[0], e) - r, s = n - Pe(t[1], A);
return (Math.atan2(s, i) + Math.PI * 2) % (Math.PI * 2);
}, y5 = function(t, e, A) {
var r = typeof t == "number" ? t : C5(t, e, A), n = Math.abs(e * Math.sin(r)) + Math.abs(A * Math.cos(r)), i = e / 2, s = A / 2, o = n / 2, c = Math.sin(r - Math.PI / 2) * o, h = Math.cos(r - Math.PI / 2) * o;
return [n, i - h, i + h, s - c, s + c];
}, br = function(t, e) {
return Math.sqrt(t * t + e * e);
}, Gf = function(t, e, A, r, n) {
var i = [
[0, 0],
[0, e],
[t, 0],
[t, e]
];
return i.reduce(function(s, o) {
var c = o[0], h = o[1], p = br(A - c, r - h);
return (n ? p < s.optimumDistance : p > s.optimumDistance) ? {
optimumCorner: o,
optimumDistance: p
} : s;
}, {
optimumDistance: n ? 1 / 0 : -1 / 0,
optimumCorner: null
}).optimumCorner;
}, F5 = function(t, e, A, r, n) {
var i = 0, s = 0;
switch (t.size) {
case 0:
t.shape === 0 ? i = s = Math.min(Math.abs(e), Math.abs(e - r), Math.abs(A), Math.abs(A - n)) : t.shape === 1 && (i = Math.min(Math.abs(e), Math.abs(e - r)), s = Math.min(Math.abs(A), Math.abs(A - n)));
break;
case 2:
if (t.shape === 0)
i = s = Math.min(br(e, A), br(e, A - n), br(e - r, A), br(e - r, A - n));
else if (t.shape === 1) {
var o = Math.min(Math.abs(A), Math.abs(A - n)) / Math.min(Math.abs(e), Math.abs(e - r)), c = Gf(r, n, e, A, !0), h = c[0], p = c[1];
i = br(h - e, (p - A) / o), s = o * i;
}
break;
case 1:
t.shape === 0 ? i = s = Math.max(Math.abs(e), Math.abs(e - r), Math.abs(A), Math.abs(A - n)) : t.shape === 1 && (i = Math.max(Math.abs(e), Math.abs(e - r)), s = Math.max(Math.abs(A), Math.abs(A - n)));
break;
case 3:
if (t.shape === 0)
i = s = Math.max(br(e, A), br(e, A - n), br(e - r, A), br(e - r, A - n));
else if (t.shape === 1) {
var o = Math.max(Math.abs(A), Math.abs(A - n)) / Math.max(Math.abs(e), Math.abs(e - r)), d = Gf(r, n, e, A, !1), h = d[0], p = d[1];
i = br(h - e, (p - A) / o), s = o * i;
}
break;
}
return Array.isArray(t.size) && (i = Pe(t.size[0], r), s = t.size.length === 2 ? Pe(t.size[1], n) : i), [i, s];
}, Q5 = function(t, e) {
var A = fr(180), r = [];
return zr(e).forEach(function(n, i) {
if (i === 0) {
var s = n[0];
if (s.type === 20 && s.value === "to") {
A = fd(n);
return;
} else if (ud(s)) {
A = al.parse(t, s);
return;
}
}
var o = sl(t, n);
r.push(o);
}), {
angle: A,
stops: r,
type: 1
/* LINEAR_GRADIENT */
};
}, bo = function(t, e) {
var A = fr(180), r = [];
return zr(e).forEach(function(n, i) {
if (i === 0) {
var s = n[0];
if (s.type === 20 && ["top", "left", "right", "bottom"].indexOf(s.value) !== -1) {
A = fd(n);
return;
} else if (ud(s)) {
A = (al.parse(t, s) + fr(270)) % fr(360);
return;
}
}
var o = sl(t, n);
r.push(o);
}), {
angle: A,
stops: r,
type: 1
/* LINEAR_GRADIENT */
};
}, b5 = function(t, e) {
var A = fr(180), r = [], n = 1, i = 0, s = 3, o = [];
return zr(e).forEach(function(c, h) {
var p = c[0];
if (h === 0) {
if (Ne(p) && p.value === "linear") {
n = 1;
return;
} else if (Ne(p) && p.value === "radial") {
n = 2;
return;
}
}
if (p.type === 18) {
if (p.name === "from") {
var d = Pn.parse(t, p.values[0]);
r.push({ stop: Ft, color: d });
} else if (p.name === "to") {
var d = Pn.parse(t, p.values[0]);
r.push({ stop: Tn, color: d });
} else if (p.name === "color-stop") {
var w = p.values.filter(ca);
if (w.length === 2) {
var d = Pn.parse(t, w[1]), g = w[0];
ua(g) && r.push({
stop: { type: 16, number: g.number * 100, flags: g.flags },
color: d
});
}
}
}
}), n === 1 ? {
angle: (A + fr(180)) % fr(360),
stops: r,
type: n
} : { size: s, shape: i, stops: r, position: o, type: n };
}, hd = "closest-side", dd = "farthest-side", gd = "closest-corner", pd = "farthest-corner", Bd = "circle", wd = "ellipse", vd = "cover", md = "contain", U5 = function(t, e) {
var A = 0, r = 3, n = [], i = [];
return zr(e).forEach(function(s, o) {
var c = !0;
if (o === 0) {
var h = !1;
c = s.reduce(function(d, w) {
if (h)
if (Ne(w))
switch (w.value) {
case "center":
return i.push(mu), d;
case "top":
case "left":
return i.push(Ft), d;
case "right":
case "bottom":
return i.push(Tn), d;
}
else (lt(w) || Vn(w)) && i.push(w);
else if (Ne(w))
switch (w.value) {
case Bd:
return A = 0, !1;
case wd:
return A = 1, !1;
case "at":
return h = !0, !1;
case hd:
return r = 0, !1;
case vd:
case dd:
return r = 1, !1;
case md:
case gd:
return r = 2, !1;
case pd:
return r = 3, !1;
}
else if (Vn(w) || lt(w))
return Array.isArray(r) || (r = []), r.push(w), !1;
return d;
}, c);
}
if (c) {
var p = sl(t, s);
n.push(p);
}
}), {
size: r,
shape: A,
stops: n,
position: i,
type: 2
/* RADIAL_GRADIENT */
};
}, Uo = function(t, e) {
var A = 0, r = 3, n = [], i = [];
return zr(e).forEach(function(s, o) {
var c = !0;
if (o === 0 ? c = s.reduce(function(p, d) {
if (Ne(d))
switch (d.value) {
case "center":
return i.push(mu), !1;
case "top":
case "left":
return i.push(Ft), !1;
case "right":
case "bottom":
return i.push(Tn), !1;
}
else if (lt(d) || Vn(d))
return i.push(d), !1;
return p;
}, c) : o === 1 && (c = s.reduce(function(p, d) {
if (Ne(d))
switch (d.value) {
case Bd:
return A = 0, !1;
case wd:
return A = 1, !1;
case md:
case hd:
return r = 0, !1;
case dd:
return r = 1, !1;
case gd:
return r = 2, !1;
case vd:
case pd:
return r = 3, !1;
}
else if (Vn(d) || lt(d))
return Array.isArray(r) || (r = []), r.push(d), !1;
return p;
}, c)), c) {
var h = sl(t, s);
n.push(h);
}
}), {
size: r,
shape: A,
stops: n,
position: i,
type: 2
/* RADIAL_GRADIENT */
};
}, L5 = function(t) {
return t.type === 1;
}, E5 = function(t) {
return t.type === 2;
}, Cu = {
name: "image",
parse: function(t, e) {
if (e.type === 22) {
var A = {
url: e.value,
type: 0
/* URL */
};
return t.cache.addImage(e.value), A;
}
if (e.type === 18) {
var r = Cd[e.name];
if (typeof r > "u")
throw new Error('Attempting to parse an unsupported image function "' + e.name + '"');
return r(t, e.values);
}
throw new Error("Unsupported image type " + e.type);
}
};
function x5(t) {
return !(t.type === 20 && t.value === "none") && (t.type !== 18 || !!Cd[t.name]);
}
var Cd = {
"linear-gradient": Q5,
"-moz-linear-gradient": bo,
"-ms-linear-gradient": bo,
"-o-linear-gradient": bo,
"-webkit-linear-gradient": bo,
"radial-gradient": U5,
"-moz-radial-gradient": Uo,
"-ms-radial-gradient": Uo,
"-o-radial-gradient": Uo,
"-webkit-radial-gradient": Uo,
"-webkit-gradient": b5
}, I5 = {
name: "background-image",
initialValue: "none",
type: 1,
prefix: !1,
parse: function(t, e) {
if (e.length === 0)
return [];
var A = e[0];
return A.type === 20 && A.value === "none" ? [] : e.filter(function(r) {
return ca(r) && x5(r);
}).map(function(r) {
return Cu.parse(t, r);
});
}
}, S5 = {
name: "background-origin",
initialValue: "border-box",
prefix: !1,
type: 1,
parse: function(t, e) {
return e.map(function(A) {
if (Ne(A))
switch (A.value) {
case "padding-box":
return 1;
case "content-box":
return 2;
}
return 0;
});
}
}, H5 = {
name: "background-position",
initialValue: "0% 0%",
type: 1,
prefix: !1,
parse: function(t, e) {
return zr(e).map(function(A) {
return A.filter(lt);
}).map(ad);
}
}, D5 = {
name: "background-repeat",
initialValue: "repeat",
prefix: !1,
type: 1,
parse: function(t, e) {
return zr(e).map(function(A) {
return A.filter(Ne).map(function(r) {
return r.value;
}).join(" ");
}).map(N5);
}
}, N5 = function(t) {
switch (t) {
case "no-repeat":
return 1;
case "repeat-x":
case "repeat no-repeat":
return 2;
case "repeat-y":
case "no-repeat repeat":
return 3;
case "repeat":
default:
return 0;
}
}, la;
(function(t) {
t.AUTO = "auto", t.CONTAIN = "contain", t.COVER = "cover";
})(la || (la = {}));
var k5 = {
name: "background-size",
initialValue: "0",
prefix: !1,
type: 1,
parse: function(t, e) {
return zr(e).map(function(A) {
return A.filter(_5);
});
}
}, _5 = function(t) {
return Ne(t) || lt(t);
}, ol = function(t) {
return {
name: "border-" + t + "-color",
initialValue: "transparent",
prefix: !1,
type: 3,
format: "color"
};
}, T5 = ol("top"), M5 = ol("right"), P5 = ol("bottom"), O5 = ol("left"), ll = function(t) {
return {
name: "border-radius-" + t,
initialValue: "0 0",
prefix: !1,
type: 1,
parse: function(e, A) {
return ad(A.filter(lt));
}
};
}, K5 = ll("top-left"), R5 = ll("top-right"), G5 = ll("bottom-right"), V5 = ll("bottom-left"), cl = function(t) {
return {
name: "border-" + t + "-style",
initialValue: "solid",
prefix: !1,
type: 2,
parse: function(e, A) {
switch (A) {
case "none":
return 0;
case "dashed":
return 2;
case "dotted":
return 3;
case "double":
return 4;
}
return 1;
}
};
}, j5 = cl("top"), q5 = cl("right"), W5 = cl("bottom"), X5 = cl("left"), ul = function(t) {
return {
name: "border-" + t + "-width",
initialValue: "0",
type: 0,
prefix: !1,
parse: function(e, A) {
return fs(A) ? A.number : 0;
}
};
}, z5 = ul("top"), J5 = ul("right"), Y5 = ul("bottom"), $5 = ul("left"), Z5 = {
name: "color",
initialValue: "transparent",
prefix: !1,
type: 3,
format: "color"
}, Av = {
name: "direction",
initialValue: "ltr",
prefix: !1,
type: 2,
parse: function(t, e) {
switch (e) {
case "rtl":
return 1;
case "ltr":
default:
return 0;
}
}
}, ev = {
name: "display",
initialValue: "inline-block",
prefix: !1,
type: 1,
parse: function(t, e) {
return e.filter(Ne).reduce(
function(A, r) {
return A | tv(r.value);
},
0
/* NONE */
);
}
}, tv = function(t) {
switch (t) {
case "block":
case "-webkit-box":
return 2;
case "inline":
return 4;
case "run-in":
return 8;
case "flow":
return 16;
case "flow-root":
return 32;
case "table":
return 64;
case "flex":
case "-webkit-flex":
return 128;
case "grid":
case "-ms-grid":
return 256;
case "ruby":
return 512;
case "subgrid":
return 1024;
case "list-item":
return 2048;
case "table-row-group":
return 4096;
case "table-header-group":
return 8192;
case "table-footer-group":
return 16384;
case "table-row":
return 32768;
case "table-cell":
return 65536;
case "table-column-group":
return 131072;
case "table-column":
return 262144;
case "table-caption":
return 524288;
case "ruby-base":
return 1048576;
case "ruby-text":
return 2097152;
case "ruby-base-container":
return 4194304;
case "ruby-text-container":
return 8388608;
case "contents":
return 16777216;
case "inline-block":
return 33554432;
case "inline-list-item":
return 67108864;
case "inline-table":
return 134217728;
case "inline-flex":
return 268435456;
case "inline-grid":
return 536870912;
}
return 0;
}, rv = {
name: "float",
initialValue: "none",
prefix: !1,
type: 2,
parse: function(t, e) {
switch (e) {
case "left":
return 1;
case "right":
return 2;
case "inline-start":
return 3;
case "inline-end":
return 4;
}
return 0;
}
}, nv = {
name: "letter-spacing",
initialValue: "0",
prefix: !1,
type: 0,
parse: function(t, e) {
return e.type === 20 && e.value === "normal" ? 0 : e.type === 17 || e.type === 15 ? e.number : 0;
}
}, Wo;
(function(t) {
t.NORMAL = "normal", t.STRICT = "strict";
})(Wo || (Wo = {}));
var iv = {
name: "line-break",
initialValue: "normal",
prefix: !1,
type: 2,
parse: function(t, e) {
switch (e) {
case "strict":
return Wo.STRICT;
case "normal":
default:
return Wo.NORMAL;
}
}
}, av = {
name: "line-height",
initialValue: "normal",
prefix: !1,
type: 4
/* TOKEN_VALUE */
}, Vf = function(t, e) {
return Ne(t) && t.value === "normal" ? 1.2 * e : t.type === 17 ? e * t.number : lt(t) ? Pe(t, e) : e;
}, sv = {
name: "list-style-image",
initialValue: "none",
type: 0,
prefix: !1,
parse: function(t, e) {
return e.type === 20 && e.value === "none" ? null : Cu.parse(t, e);
}
}, ov = {
name: "list-style-position",
initialValue: "outside",
prefix: !1,
type: 2,
parse: function(t, e) {
switch (e) {
case "inside":
return 0;
case "outside":
default:
return 1;
}
}
}, su = {
name: "list-style-type",
initialValue: "none",
prefix: !1,
type: 2,
parse: function(t, e) {
switch (e) {
case "disc":
return 0;
case "circle":
return 1;
case "square":
return 2;
case "decimal":
return 3;
case "cjk-decimal":
return 4;
case "decimal-leading-zero":
return 5;
case "lower-roman":
return 6;
case "upper-roman":
return 7;
case "lower-greek":
return 8;
case "lower-alpha":
return 9;
case "upper-alpha":
return 10;
case "arabic-indic":
return 11;
case "armenian":
return 12;
case "bengali":
return 13;
case "cambodian":
return 14;
case "cjk-earthly-branch":
return 15;
case "cjk-heavenly-stem":
return 16;
case "cjk-ideographic":
return 17;
case "devanagari":
return 18;
case "ethiopic-numeric":
return 19;
case "georgian":
return 20;
case "gujarati":
return 21;
case "gurmukhi":
return 22;
case "hebrew":
return 22;
case "hiragana":
return 23;
case "hiragana-iroha":
return 24;
case "japanese-formal":
return 25;
case "japanese-informal":
return 26;
case "kannada":
return 27;
case "katakana":
return 28;
case "katakana-iroha":
return 29;
case "khmer":
return 30;
case "korean-hangul-formal":
return 31;
case "korean-hanja-formal":
return 32;
case "korean-hanja-informal":
return 33;
case "lao":
return 34;
case "lower-armenian":
return 35;
case "malayalam":
return 36;
case "mongolian":
return 37;
case "myanmar":
return 38;
case "oriya":
return 39;
case "persian":
return 40;
case "simp-chinese-formal":
return 41;
case "simp-chinese-informal":
return 42;
case "tamil":
return 43;
case "telugu":
return 44;
case "thai":
return 45;
case "tibetan":
return 46;
case "trad-chinese-formal":
return 47;
case "trad-chinese-informal":
return 48;
case "upper-armenian":
return 49;
case "disclosure-open":
return 50;
case "disclosure-closed":
return 51;
case "none":
default:
return -1;
}
}
}, fl = function(t) {
return {
name: "margin-" + t,
initialValue: "0",
prefix: !1,
type: 4
/* TOKEN_VALUE */
};
}, lv = fl("top"), cv = fl("right"), uv = fl("bottom"), fv = fl("left"), hv = {
name: "overflow",
initialValue: "visible",
prefix: !1,
type: 1,
parse: function(t, e) {
return e.filter(Ne).map(function(A) {
switch (A.value) {
case "hidden":
return 1;
case "scroll":
return 2;
case "clip":
return 3;
case "auto":
return 4;
case "visible":
default:
return 0;
}
});
}
}, dv = {
name: "overflow-wrap",
initialValue: "normal",
prefix: !1,
type: 2,
parse: function(t, e) {
switch (e) {
case "break-word":
return "break-word";
case "normal":
default:
return "normal";
}
}
}, hl = function(t) {
return {
name: "padding-" + t,
initialValue: "0",
prefix: !1,
type: 3,
format: "length-percentage"
};
}, gv = hl("top"), pv = hl("right"), Bv = hl("bottom"), wv = hl("left"), vv = {
name: "text-align",
initialValue: "left",
prefix: !1,
type: 2,
parse: function(t, e) {
switch (e) {
case "right":
return 2;
case "center":
case "justify":
return 1;
case "left":
default:
return 0;
}
}
}, mv = {
name: "position",
initialValue: "static",
prefix: !1,
type: 2,
parse: function(t, e) {
switch (e) {
case "relative":
return 1;
case "absolute":
return 2;
case "fixed":
return 3;
case "sticky":
return 4;
}
return 0;
}
}, Cv = {
name: "text-shadow",
initialValue: "none",
type: 1,
prefix: !1,
parse: function(t, e) {
return e.length === 1 && au(e[0], "none") ? [] : zr(e).map(function(A) {
for (var r = {
color: fn.TRANSPARENT,
offsetX: Ft,
offsetY: Ft,
blur: Ft
}, n = 0, i = 0; i < A.length; i++) {
var s = A[i];
Vn(s) ? (n === 0 ? r.offsetX = s : n === 1 ? r.offsetY = s : r.blur = s, n++) : r.color = Pn.parse(t, s);
}
return r;
});
}
}, yv = {
name: "text-transform",
initialValue: "none",
prefix: !1,
type: 2,
parse: function(t, e) {
switch (e) {
case "uppercase":
return 2;
case "lowercase":
return 1;
case "capitalize":
return 3;
}
return 0;
}
}, Fv = {
name: "transform",
initialValue: "none",
prefix: !0,
type: 0,
parse: function(t, e) {
if (e.type === 20 && e.value === "none")
return null;
if (e.type === 18) {
var A = Uv[e.name];
if (typeof A > "u")
throw new Error('Attempting to parse an unsupported transform function "' + e.name + '"');
return A(e.values);
}
return null;
}
}, Qv = function(t) {
var e = t.filter(function(A) {
return A.type === 17;
}).map(function(A) {
return A.number;
});
return e.length === 6 ? e : null;
}, bv = function(t) {
var e = t.filter(function(c) {
return c.type === 17;
}).map(function(c) {
return c.number;
}), A = e[0], r = e[1];
e[2], e[3];
var n = e[4], i = e[5];
e[6], e[7], e[8], e[9], e[10], e[11];
var s = e[12], o = e[13];
return e[14], e[15], e.length === 16 ? [A, r, n, i, s, o] : null;
}, Uv = {
matrix: Qv,
matrix3d: bv
}, jf = {
type: 16,
number: 50,
flags: us
}, Lv = [jf, jf], Ev = {
name: "transform-origin",
initialValue: "50% 50%",
prefix: !0,
type: 1,
parse: function(t, e) {
var A = e.filter(lt);
return A.length !== 2 ? Lv : [A[0], A[1]];
}
}, xv = {
name: "visible",
initialValue: "none",
prefix: !1,
type: 2,
parse: function(t, e) {
switch (e) {
case "hidden":
return 1;
case "collapse":
return 2;
case "visible":
default:
return 0;
}
}
}, ns;
(function(t) {
t.NORMAL = "normal", t.BREAK_ALL = "break-all", t.KEEP_ALL = "keep-all";
})(ns || (ns = {}));
var Iv = {
name: "word-break",
initialValue: "normal",
prefix: !1,
type: 2,
parse: function(t, e) {
switch (e) {
case "break-all":
return ns.BREAK_ALL;
case "keep-all":
return ns.KEEP_ALL;
case "normal":
default:
return ns.NORMAL;
}
}
}, Sv = {
name: "z-index",
initialValue: "auto",
prefix: !1,
type: 0,
parse: function(t, e) {
if (e.type === 20)
return { auto: !0, order: 0 };
if (ua(e))
return { auto: !1, order: e.number };
throw new Error("Invalid z-index number parsed");
}
}, yd = {
name: "time",
parse: function(t, e) {
if (e.type === 15)
switch (e.unit.toLowerCase()) {
case "s":
return 1e3 * e.number;
case "ms":
return e.number;
}
throw new Error("Unsupported time type");
}
}, Hv = {
name: "opacity",
initialValue: "1",
type: 0,
prefix: !1,
parse: function(t, e) {
return ua(e) ? e.number : 1;
}
}, Dv = {
name: "text-decoration-color",
initialValue: "transparent",
prefix: !1,
type: 3,
format: "color"
}, Nv = {
name: "text-decoration-line",
initialValue: "none",
prefix: !1,
type: 1,
parse: function(t, e) {
return e.filter(Ne).map(function(A) {
switch (A.value) {
case "underline":
return 1;
case "overline":
return 2;
case "line-through":
return 3;
case "none":
return 4;
}
return 0;
}).filter(function(A) {
return A !== 0;
});
}
}, kv = {
name: "font-family",
initialValue: "",
prefix: !1,
type: 1,
parse: function(t, e) {
var A = [], r = [];
return e.forEach(function(n) {
switch (n.type) {
case 20:
case 0:
A.push(n.value);
break;
case 17:
A.push(n.number.toString());
break;
case 4:
r.push(A.join(" ")), A.length = 0;
break;
}
}), A.length && r.push(A.join(" ")), r.map(function(n) {
return n.indexOf(" ") === -1 ? n : "'" + n + "'";
});
}
}, _v = {
name: "font-size",
initialValue: "0",
prefix: !1,
type: 3,
format: "length"
}, Tv = {
name: "font-weight",
initialValue: "normal",
type: 0,
prefix: !1,
parse: function(t, e) {
if (ua(e))
return e.number;
if (Ne(e))
switch (e.value) {
case "bold":
return 700;
case "normal":
default:
return 400;
}
return 400;
}
}, Mv = {
name: "font-variant",
initialValue: "none",
type: 1,
prefix: !1,
parse: function(t, e) {
return e.filter(Ne).map(function(A) {
return A.value;
});
}
}, Pv = {
name: "font-style",
initialValue: "normal",
prefix: !1,
type: 2,
parse: function(t, e) {
switch (e) {
case "oblique":
return "oblique";
case "italic":
return "italic";
case "normal":
default:
return "normal";
}
}
}, ft = function(t, e) {
return (t & e) !== 0;
}, Ov = {
name: "content",
initialValue: "none",
type: 1,
prefix: !1,
parse: function(t, e) {
if (e.length === 0)
return [];
var A = e[0];
return A.type === 20 && A.value === "none" ? [] : e;
}
}, Kv = {
name: "counter-increment",
initialValue: "none",
prefix: !0,
type: 1,
parse: function(t, e) {
if (e.length === 0)
return null;
var A = e[0];
if (A.type === 20 && A.value === "none")
return null;
for (var r = [], n = e.filter(id), i = 0; i < n.length; i++) {
var s = n[i], o = n[i + 1];
if (s.type === 20) {
var c = o && ua(o) ? o.number : 1;
r.push({ counter: s.value, increment: c });
}
}
return r;
}
}, Rv = {
name: "counter-reset",
initialValue: "none",
prefix: !0,
type: 1,
parse: function(t, e) {
if (e.length === 0)
return [];
for (var A = [], r = e.filter(id), n = 0; n < r.length; n++) {
var i = r[n], s = r[n + 1];
if (Ne(i) && i.value !== "none") {
var o = s && ua(s) ? s.number : 0;
A.push({ counter: i.value, reset: o });
}
}
return A;
}
}, Gv = {
name: "duration",
initialValue: "0s",
prefix: !1,
type: 1,
parse: function(t, e) {
return e.filter(fs).map(function(A) {
return yd.parse(t, A);
});
}
}, Vv = {
name: "quotes",
initialValue: "none",
prefix: !0,
type: 1,
parse: function(t, e) {
if (e.length === 0)
return null;
var A = e[0];
if (A.type === 20 && A.value === "none")
return null;
var r = [], n = e.filter(p5);
if (n.length % 2 !== 0)
return null;
for (var i = 0; i < n.length; i += 2) {
var s = n[i].value, o = n[i + 1].value;
r.push({ open: s, close: o });
}
return r;
}
}, qf = function(t, e, A) {
if (!t)
return "";
var r = t[Math.min(e, t.length - 1)];
return r ? A ? r.open : r.close : "";
}, jv = {
name: "box-shadow",
initialValue: "none",
type: 1,
prefix: !1,
parse: function(t, e) {
return e.length === 1 && au(e[0], "none") ? [] : zr(e).map(function(A) {
for (var r = {
color: 255,
offsetX: Ft,
offsetY: Ft,
blur: Ft,
spread: Ft,
inset: !1
}, n = 0, i = 0; i < A.length; i++) {
var s = A[i];
au(s, "inset") ? r.inset = !0 : Vn(s) ? (n === 0 ? r.offsetX = s : n === 1 ? r.offsetY = s : n === 2 ? r.blur = s : r.spread = s, n++) : r.color = Pn.parse(t, s);
}
return r;
});
}
}, qv = {
name: "paint-order",
initialValue: "normal",
prefix: !1,
type: 1,
parse: function(t, e) {
var A = [
0,
1,
2
/* MARKERS */
], r = [];
return e.filter(Ne).forEach(function(n) {
switch (n.value) {
case "stroke":
r.push(
1
/* STROKE */
);
break;
case "fill":
r.push(
0
/* FILL */
);
break;
case "markers":
r.push(
2
/* MARKERS */
);
break;
}
}), A.forEach(function(n) {
r.indexOf(n) === -1 && r.push(n);
}), r;
}
}, Wv = {
name: "-webkit-text-stroke-color",
initialValue: "currentcolor",
prefix: !1,
type: 3,
format: "color"
}, Xv = {
name: "-webkit-text-stroke-width",
initialValue: "0",
type: 0,
prefix: !1,
parse: function(t, e) {
return fs(e) ? e.number : 0;
}
}, zv = (
/** @class */
function() {
function t(e, A) {
var r, n;
this.animationDuration = JA(e, Gv, A.animationDuration), this.backgroundClip = JA(e, v5, A.backgroundClip), this.backgroundColor = JA(e, m5, A.backgroundColor), this.backgroundImage = JA(e, I5, A.backgroundImage), this.backgroundOrigin = JA(e, S5, A.backgroundOrigin), this.backgroundPosition = JA(e, H5, A.backgroundPosition), this.backgroundRepeat = JA(e, D5, A.backgroundRepeat), this.backgroundSize = JA(e, k5, A.backgroundSize), this.borderTopColor = JA(e, T5, A.borderTopColor), this.borderRightColor = JA(e, M5, A.borderRightColor), this.borderBottomColor = JA(e, P5, A.borderBottomColor), this.borderLeftColor = JA(e, O5, A.borderLeftColor), this.borderTopLeftRadius = JA(e, K5, A.borderTopLeftRadius), this.borderTopRightRadius = JA(e, R5, A.borderTopRightRadius), this.borderBottomRightRadius = JA(e, G5, A.borderBottomRightRadius), this.borderBottomLeftRadius = JA(e, V5, A.borderBottomLeftRadius), this.borderTopStyle = JA(e, j5, A.borderTopStyle), this.borderRightStyle = JA(e, q5, A.borderRightStyle), this.borderBottomStyle = JA(e, W5, A.borderBottomStyle), this.borderLeftStyle = JA(e, X5, A.borderLeftStyle), this.borderTopWidth = JA(e, z5, A.borderTopWidth), this.borderRightWidth = JA(e, J5, A.borderRightWidth), this.borderBottomWidth = JA(e, Y5, A.borderBottomWidth), this.borderLeftWidth = JA(e, $5, A.borderLeftWidth), this.boxShadow = JA(e, jv, A.boxShadow), this.color = JA(e, Z5, A.color), this.direction = JA(e, Av, A.direction), this.display = JA(e, ev, A.display), this.float = JA(e, rv, A.cssFloat), this.fontFamily = JA(e, kv, A.fontFamily), this.fontSize = JA(e, _v, A.fontSize), this.fontStyle = JA(e, Pv, A.fontStyle), this.fontVariant = JA(e, Mv, A.fontVariant), this.fontWeight = JA(e, Tv, A.fontWeight), this.letterSpacing = JA(e, nv, A.letterSpacing), this.lineBreak = JA(e, iv, A.lineBreak), this.lineHeight = JA(e, av, A.lineHeight), this.listStyleImage = JA(e, sv, A.listStyleImage), this.listStylePosition = JA(e, ov, A.listStylePosition), this.listStyleType = JA(e, su, A.listStyleType), this.marginTop = JA(e, lv, A.marginTop), this.marginRight = JA(e, cv, A.marginRight), this.marginBottom = JA(e, uv, A.marginBottom), this.marginLeft = JA(e, fv, A.marginLeft), this.opacity = JA(e, Hv, A.opacity);
var i = JA(e, hv, A.overflow);
this.overflowX = i[0], this.overflowY = i[i.length > 1 ? 1 : 0], this.overflowWrap = JA(e, dv, A.overflowWrap), this.paddingTop = JA(e, gv, A.paddingTop), this.paddingRight = JA(e, pv, A.paddingRight), this.paddingBottom = JA(e, Bv, A.paddingBottom), this.paddingLeft = JA(e, wv, A.paddingLeft), this.paintOrder = JA(e, qv, A.paintOrder), this.position = JA(e, mv, A.position), this.textAlign = JA(e, vv, A.textAlign), this.textDecorationColor = JA(e, Dv, (r = A.textDecorationColor) !== null && r !== void 0 ? r : A.color), this.textDecorationLine = JA(e, Nv, (n = A.textDecorationLine) !== null && n !== void 0 ? n : A.textDecoration), this.textShadow = JA(e, Cv, A.textShadow), this.textTransform = JA(e, yv, A.textTransform), this.transform = JA(e, Fv, A.transform), this.transformOrigin = JA(e, Ev, A.transformOrigin), this.visibility = JA(e, xv, A.visibility), this.webkitTextStrokeColor = JA(e, Wv, A.webkitTextStrokeColor), this.webkitTextStrokeWidth = JA(e, Xv, A.webkitTextStrokeWidth), this.wordBreak = JA(e, Iv, A.wordBreak), this.zIndex = JA(e, Sv, A.zIndex);
}
return t.prototype.isVisible = function() {
return this.display > 0 && this.opacity > 0 && this.visibility === 0;
}, t.prototype.isTransparent = function() {
return On(this.backgroundColor);
}, t.prototype.isTransformed = function() {
return this.transform !== null;
}, t.prototype.isPositioned = function() {
return this.position !== 0;
}, t.prototype.isPositionedWithZIndex = function() {
return this.isPositioned() && !this.zIndex.auto;
}, t.prototype.isFloating = function() {
return this.float !== 0;
}, t.prototype.isInlineLevel = function() {
return ft(
this.display,
4
/* INLINE */
) || ft(
this.display,
33554432
/* INLINE_BLOCK */
) || ft(
this.display,
268435456
/* INLINE_FLEX */
) || ft(
this.display,
536870912
/* INLINE_GRID */
) || ft(
this.display,
67108864
/* INLINE_LIST_ITEM */
) || ft(
this.display,
134217728
/* INLINE_TABLE */
);
}, t;
}()
), Jv = (
/** @class */
/* @__PURE__ */ function() {
function t(e, A) {
this.content = JA(e, Ov, A.content), this.quotes = JA(e, Vv, A.quotes);
}
return t;
}()
), Wf = (
/** @class */
/* @__PURE__ */ function() {
function t(e, A) {
this.counterIncrement = JA(e, Kv, A.counterIncrement), this.counterReset = JA(e, Rv, A.counterReset);
}
return t;
}()
), JA = function(t, e, A) {
var r = new rd(), n = A !== null && typeof A < "u" ? A.toString() : e.initialValue;
r.write(n);
var i = new nd(r.read());
switch (e.type) {
case 2:
var s = i.parseComponentValue();
return e.parse(t, Ne(s) ? s.value : e.initialValue);
case 0:
return e.parse(t, i.parseComponentValue());
case 1:
return e.parse(t, i.parseComponentValues());
case 4:
return i.parseComponentValue();
case 3:
switch (e.format) {
case "angle":
return al.parse(t, i.parseComponentValue());
case "color":
return Pn.parse(t, i.parseComponentValue());
case "image":
return Cu.parse(t, i.parseComponentValue());
case "length":
var o = i.parseComponentValue();
return Vn(o) ? o : Ft;
case "length-percentage":
var c = i.parseComponentValue();
return lt(c) ? c : Ft;
case "time":
return yd.parse(t, i.parseComponentValue());
}
break;
}
}, Yv = "data-html2canvas-debug", $v = function(t) {
var e = t.getAttribute(Yv);
switch (e) {
case "all":
return 1;
case "clone":
return 2;
case "parse":
return 3;
case "render":
return 4;
default:
return 0;
}
}, ou = function(t, e) {
var A = $v(t);
return A === 1 || e === A;
}, Jr = (
/** @class */
/* @__PURE__ */ function() {
function t(e, A) {
if (this.context = e, this.textNodes = [], this.elements = [], this.flags = 0, ou(
A,
3
/* PARSE */
))
debugger;
this.styles = new zv(e, window.getComputedStyle(A, null)), uu(A) && (this.styles.animationDuration.some(function(r) {
return r > 0;
}) && (A.style.animationDuration = "0s"), this.styles.transform !== null && (A.style.transform = "none")), this.bounds = nl(this.context, A), ou(
A,
4
/* RENDER */
) && (this.flags |= 16);
}
return t;
}()
), Zv = "AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=", Xf = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", Za = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var Lo = 0; Lo < Xf.length; Lo++)
Za[Xf.charCodeAt(Lo)] = Lo;
var Am = function(t) {
var e = t.length * 0.75, A = t.length, r, n = 0, i, s, o, c;
t[t.length - 1] === "=" && (e--, t[t.length - 2] === "=" && e--);
var h = typeof ArrayBuffer < "u" && typeof Uint8Array < "u" && typeof Uint8Array.prototype.slice < "u" ? new ArrayBuffer(e) : new Array(e), p = Array.isArray(h) ? h : new Uint8Array(h);
for (r = 0; r < A; r += 4)
i = Za[t.charCodeAt(r)], s = Za[t.charCodeAt(r + 1)], o = Za[t.charCodeAt(r + 2)], c = Za[t.charCodeAt(r + 3)], p[n++] = i << 2 | s >> 4, p[n++] = (s & 15) << 4 | o >> 2, p[n++] = (o & 3) << 6 | c & 63;
return h;
}, em = function(t) {
for (var e = t.length, A = [], r = 0; r < e; r += 2)
A.push(t[r + 1] << 8 | t[r]);
return A;
}, tm = function(t) {
for (var e = t.length, A = [], r = 0; r < e; r += 4)
A.push(t[r + 3] << 24 | t[r + 2] << 16 | t[r + 1] << 8 | t[r]);
return A;
}, fi = 5, yu = 11, Cc = 2, rm = yu - fi, Fd = 65536 >> fi, nm = 1 << fi, yc = nm - 1, im = 1024 >> fi, am = Fd + im, sm = am, om = 32, lm = sm + om, cm = 65536 >> yu, um = 1 << rm, fm = um - 1, zf = function(t, e, A) {
return t.slice ? t.slice(e, A) : new Uint16Array(Array.prototype.slice.call(t, e, A));
}, hm = function(t, e, A) {
return t.slice ? t.slice(e, A) : new Uint32Array(Array.prototype.slice.call(t, e, A));
}, dm = function(t, e) {
var A = Am(t), r = Array.isArray(A) ? tm(A) : new Uint32Array(A), n = Array.isArray(A) ? em(A) : new Uint16Array(A), i = 24, s = zf(n, i / 2, r[4] / 2), o = r[5] === 2 ? zf(n, (i + r[4]) / 2) : hm(r, Math.ceil((i + r[4]) / 4));
return new gm(r[0], r[1], r[2], r[3], s, o);
}, gm = (
/** @class */
function() {
function t(e, A, r, n, i, s) {
this.initialValue = e, this.errorValue = A, this.highStart = r, this.highValueIndex = n, this.index = i, this.data = s;
}
return t.prototype.get = function(e) {
var A;
if (e >= 0) {
if (e < 55296 || e > 56319 && e <= 65535)
return A = this.index[e >> fi], A = (A << Cc) + (e & yc), this.data[A];
if (e <= 65535)
return A = this.index[Fd + (e - 55296 >> fi)], A = (A << Cc) + (e & yc), this.data[A];
if (e < this.highStart)
return A = lm - cm + (e >> yu), A = this.index[A], A += e >> fi & fm, A = this.index[A], A = (A << Cc) + (e & yc), this.data[A];
if (e <= 1114111)
return this.data[this.highValueIndex];
}
return this.errorValue;
}, t;
}()
), Jf = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", pm = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var Eo = 0; Eo < Jf.length; Eo++)
pm[Jf.charCodeAt(Eo)] = Eo;
var Bm = 1, Fc = 2, Qc = 3, Yf = 4, $f = 5, wm = 7, Zf = 8, bc = 9, Uc = 10, Ah = 11, eh = 12, th = 13, rh = 14, Lc = 15, vm = function(t) {
for (var e = [], A = 0, r = t.length; A < r; ) {
var n = t.charCodeAt(A++);
if (n >= 55296 && n <= 56319 && A < r) {
var i = t.charCodeAt(A++);
(i & 64512) === 56320 ? e.push(((n & 1023) << 10) + (i & 1023) + 65536) : (e.push(n), A--);
} else
e.push(n);
}
return e;
}, mm = function() {
for (var t = [], e = 0; e < arguments.length; e++)
t[e] = arguments[e];
if (String.fromCodePoint)
return String.fromCodePoint.apply(String, t);
var A = t.length;
if (!A)
return "";
for (var r = [], n = -1, i = ""; ++n < A; ) {
var s = t[n];
s <= 65535 ? r.push(s) : (s -= 65536, r.push((s >> 10) + 55296, s % 1024 + 56320)), (n + 1 === A || r.length > 16384) && (i += String.fromCharCode.apply(String, r), r.length = 0);
}
return i;
}, Cm = dm(Zv), lr = "×", Ec = "÷", ym = function(t) {
return Cm.get(t);
}, Fm = function(t, e, A) {
var r = A - 2, n = e[r], i = e[A - 1], s = e[A];
if (i === Fc && s === Qc)
return lr;
if (i === Fc || i === Qc || i === Yf || s === Fc || s === Qc || s === Yf)
return Ec;
if (i === Zf && [Zf, bc, Ah, eh].indexOf(s) !== -1 || (i === Ah || i === bc) && (s === bc || s === Uc) || (i === eh || i === Uc) && s === Uc || s === th || s === $f || s === wm || i === Bm)
return lr;
if (i === th && s === rh) {
for (; n === $f; )
n = e[--r];
if (n === rh)
return lr;
}
if (i === Lc && s === Lc) {
for (var o = 0; n === Lc; )
o++, n = e[--r];
if (o % 2 === 0)
return lr;
}
return Ec;
}, Qm = function(t) {
var e = vm(t), A = e.length, r = 0, n = 0, i = e.map(ym);
return {
next: function() {
if (r >= A)
return { done: !0, value: null };
for (var s = lr; r < A && (s = Fm(e, i, ++r)) === lr; )
;
if (s !== lr || r === A) {
var o = mm.apply(null, e.slice(n, r));
return n = r, { value: o, done: !1 };
}
return { done: !0, value: null };
}
};
}, bm = function(t) {
for (var e = Qm(t), A = [], r; !(r = e.next()).done; )
r.value && A.push(r.value.slice());
return A;
}, Um = function(t) {
var e = 123;
if (t.createRange) {
var A = t.createRange();
if (A.getBoundingClientRect) {
var r = t.createElement("boundtest");
r.style.height = e + "px", r.style.display = "block", t.body.appendChild(r), A.selectNode(r);
var n = A.getBoundingClientRect(), i = Math.round(n.height);
if (t.body.removeChild(r), i === e)
return !0;
}
}
return !1;
}, Lm = function(t) {
var e = t.createElement("boundtest");
e.style.width = "50px", e.style.display = "block", e.style.fontSize = "12px", e.style.letterSpacing = "0px", e.style.wordSpacing = "0px", t.body.appendChild(e);
var A = t.createRange();
e.innerHTML = typeof "".repeat == "function" ? "👨".repeat(10) : "";
var r = e.firstChild, n = il(r.data).map(function(c) {
return At(c);
}), i = 0, s = {}, o = n.every(function(c, h) {
A.setStart(r, i), A.setEnd(r, i + c.length);
var p = A.getBoundingClientRect();
i += c.length;
var d = p.x > s.x || p.y > s.y;
return s = p, h === 0 ? !0 : d;
});
return t.body.removeChild(e), o;
}, Em = function() {
return typeof new Image().crossOrigin < "u";
}, xm = function() {
return typeof new XMLHttpRequest().responseType == "string";
}, Im = function(t) {
var e = new Image(), A = t.createElement("canvas"), r = A.getContext("2d");
if (!r)
return !1;
e.src = "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";
try {
r.drawImage(e, 0, 0), A.toDataURL();
} catch {
return !1;
}
return !0;
}, nh = function(t) {
return t[0] === 0 && t[1] === 255 && t[2] === 0 && t[3] === 255;
}, Sm = function(t) {
var e = t.createElement("canvas"), A = 100;
e.width = A, e.height = A;
var r = e.getContext("2d");
if (!r)
return Promise.reject(!1);
r.fillStyle = "rgb(0, 255, 0)", r.fillRect(0, 0, A, A);
var n = new Image(), i = e.toDataURL();
n.src = i;
var s = lu(A, A, 0, 0, n);
return r.fillStyle = "red", r.fillRect(0, 0, A, A), ih(s).then(function(o) {
r.drawImage(o, 0, 0);
var c = r.getImageData(0, 0, A, A).data;
r.fillStyle = "red", r.fillRect(0, 0, A, A);
var h = t.createElement("div");
return h.style.backgroundImage = "url(" + i + ")", h.style.height = A + "px", nh(c) ? ih(lu(A, A, 0, 0, h)) : Promise.reject(!1);
}).then(function(o) {
return r.drawImage(o, 0, 0), nh(r.getImageData(0, 0, A, A).data);
}).catch(function() {
return !1;
});
}, lu = function(t, e, A, r, n) {
var i = "http://www.w3.org/2000/svg", s = document.createElementNS(i, "svg"), o = document.createElementNS(i, "foreignObject");
return s.setAttributeNS(null, "width", t.toString()), s.setAttributeNS(null, "height", e.toString()), o.setAttributeNS(null, "width", "100%"), o.setAttributeNS(null, "height", "100%"), o.setAttributeNS(null, "x", A.toString()), o.setAttributeNS(null, "y", r.toString()), o.setAttributeNS(null, "externalResourcesRequired", "true"), s.appendChild(o), o.appendChild(n), s;
}, ih = function(t) {
return new Promise(function(e, A) {
var r = new Image();
r.onload = function() {
return e(r);
}, r.onerror = A, r.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(t));
});
}, Ct = {
get SUPPORT_RANGE_BOUNDS() {
var t = Um(document);
return Object.defineProperty(Ct, "SUPPORT_RANGE_BOUNDS", { value: t }), t;
},
get SUPPORT_WORD_BREAKING() {
var t = Ct.SUPPORT_RANGE_BOUNDS && Lm(document);
return Object.defineProperty(Ct, "SUPPORT_WORD_BREAKING", { value: t }), t;
},
get SUPPORT_SVG_DRAWING() {
var t = Im(document);
return Object.defineProperty(Ct, "SUPPORT_SVG_DRAWING", { value: t }), t;
},
get SUPPORT_FOREIGNOBJECT_DRAWING() {
var t = typeof Array.from == "function" && typeof window.fetch == "function" ? Sm(document) : Promise.resolve(!1);
return Object.defineProperty(Ct, "SUPPORT_FOREIGNOBJECT_DRAWING", { value: t }), t;
},
get SUPPORT_CORS_IMAGES() {
var t = Em();
return Object.defineProperty(Ct, "SUPPORT_CORS_IMAGES", { value: t }), t;
},
get SUPPORT_RESPONSE_TYPE() {
var t = xm();
return Object.defineProperty(Ct, "SUPPORT_RESPONSE_TYPE", { value: t }), t;
},
get SUPPORT_CORS_XHR() {
var t = "withCredentials" in new XMLHttpRequest();
return Object.defineProperty(Ct, "SUPPORT_CORS_XHR", { value: t }), t;
},
get SUPPORT_NATIVE_TEXT_SEGMENTATION() {
var t = !!(typeof Intl < "u" && Intl.Segmenter);
return Object.defineProperty(Ct, "SUPPORT_NATIVE_TEXT_SEGMENTATION", { value: t }), t;
}
}, is = (
/** @class */
/* @__PURE__ */ function() {
function t(e, A) {
this.text = e, this.bounds = A;
}
return t;
}()
), Hm = function(t, e, A, r) {
var n = km(e, A), i = [], s = 0;
return n.forEach(function(o) {
if (A.textDecorationLine.length || o.trim().length > 0)
if (Ct.SUPPORT_RANGE_BOUNDS) {
var c = ah(r, s, o.length).getClientRects();
if (c.length > 1) {
var h = Fu(o), p = 0;
h.forEach(function(w) {
i.push(new is(w, hn.fromDOMRectList(t, ah(r, p + s, w.length).getClientRects()))), p += w.length;
});
} else
i.push(new is(o, hn.fromDOMRectList(t, c)));
} else {
var d = r.splitText(o.length);
i.push(new is(o, Dm(t, r))), r = d;
}
else Ct.SUPPORT_RANGE_BOUNDS || (r = r.splitText(o.length));
s += o.length;
}), i;
}, Dm = function(t, e) {
var A = e.ownerDocument;
if (A) {
var r = A.createElement("html2canvaswrapper");
r.appendChild(e.cloneNode(!0));
var n = e.parentNode;
if (n) {
n.replaceChild(r, e);
var i = nl(t, r);
return r.firstChild && n.replaceChild(r.firstChild, r), i;
}
}
return hn.EMPTY;
}, ah = function(t, e, A) {
var r = t.ownerDocument;
if (!r)
throw new Error("Node has no owner document");
var n = r.createRange();
return n.setStart(t, e), n.setEnd(t, e + A), n;
}, Fu = function(t) {
if (Ct.SUPPORT_NATIVE_TEXT_SEGMENTATION) {
var e = new Intl.Segmenter(void 0, { granularity: "grapheme" });
return Array.from(e.segment(t)).map(function(A) {
return A.segment;
});
}
return bm(t);
}, Nm = function(t, e) {
if (Ct.SUPPORT_NATIVE_TEXT_SEGMENTATION) {
var A = new Intl.Segmenter(void 0, {
granularity: "word"
});
return Array.from(A.segment(t)).map(function(r) {
return r.segment;
});
}
return Tm(t, e);
}, km = function(t, e) {
return e.letterSpacing !== 0 ? Fu(t) : Nm(t, e);
}, _m = [32, 160, 4961, 65792, 65793, 4153, 4241], Tm = function(t, e) {
for (var A = cw(t, {
lineBreak: e.lineBreak,
wordBreak: e.overflowWrap === "break-word" ? "break-word" : e.wordBreak
}), r = [], n, i = function() {
if (n.value) {
var s = n.value.slice(), o = il(s), c = "";
o.forEach(function(h) {
_m.indexOf(h) === -1 ? c += At(h) : (c.length && r.push(c), r.push(At(h)), c = "");
}), c.length && r.push(c);
}
}; !(n = A.next()).done; )
i();
return r;
}, Mm = (
/** @class */
/* @__PURE__ */ function() {
function t(e, A, r) {
this.text = Pm(A.data, r.textTransform), this.textBounds = Hm(e, this.text, r, A);
}
return t;
}()
), Pm = function(t, e) {
switch (e) {
case 1:
return t.toLowerCase();
case 3:
return t.replace(Om, Km);
case 2:
return t.toUpperCase();
default:
return t;
}
}, Om = /(^|\s|:|-|\(|\))([a-z])/g, Km = function(t, e, A) {
return t.length > 0 ? e + A.toUpperCase() : t;
}, Qd = (
/** @class */
function(t) {
Hr(e, t);
function e(A, r) {
var n = t.call(this, A, r) || this;
return n.src = r.currentSrc || r.src, n.intrinsicWidth = r.naturalWidth, n.intrinsicHeight = r.naturalHeight, n.context.cache.addImage(n.src), n;
}
return e;
}(Jr)
), bd = (
/** @class */
function(t) {
Hr(e, t);
function e(A, r) {
var n = t.call(this, A, r) || this;
return n.canvas = r, n.intrinsicWidth = r.width, n.intrinsicHeight = r.height, n;
}
return e;
}(Jr)
), Ud = (
/** @class */
function(t) {
Hr(e, t);
function e(A, r) {
var n = t.call(this, A, r) || this, i = new XMLSerializer(), s = nl(A, r);
return r.setAttribute("width", s.width + "px"), r.setAttribute("height", s.height + "px"), n.svg = "data:image/svg+xml," + encodeURIComponent(i.serializeToString(r)), n.intrinsicWidth = r.width.baseVal.value, n.intrinsicHeight = r.height.baseVal.value, n.context.cache.addImage(n.svg), n;
}
return e;
}(Jr)
), Ld = (
/** @class */
function(t) {
Hr(e, t);
function e(A, r) {
var n = t.call(this, A, r) || this;
return n.value = r.value, n;
}
return e;
}(Jr)
), cu = (
/** @class */
function(t) {
Hr(e, t);
function e(A, r) {
var n = t.call(this, A, r) || this;
return n.start = r.start, n.reversed = typeof r.reversed == "boolean" && r.reversed === !0, n;
}
return e;
}(Jr)
), Rm = [
{
type: 15,
flags: 0,
unit: "px",
number: 3
}
], Gm = [
{
type: 16,
flags: 0,
number: 50
}
], Vm = function(t) {
return t.width > t.height ? new hn(t.left + (t.width - t.height) / 2, t.top, t.height, t.height) : t.width < t.height ? new hn(t.left, t.top + (t.height - t.width) / 2, t.width, t.width) : t;
}, jm = function(t) {
var e = t.type === qm ? new Array(t.value.length + 1).join("•") : t.value;
return e.length === 0 ? t.placeholder || "" : e;
}, Xo = "checkbox", zo = "radio", qm = "password", sh = 707406591, Qu = (
/** @class */
function(t) {
Hr(e, t);
function e(A, r) {
var n = t.call(this, A, r) || this;
switch (n.type = r.type.toLowerCase(), n.checked = r.checked, n.value = jm(r), (n.type === Xo || n.type === zo) && (n.styles.backgroundColor = 3739148031, n.styles.borderTopColor = n.styles.borderRightColor = n.styles.borderBottomColor = n.styles.borderLeftColor = 2779096575, n.styles.borderTopWidth = n.styles.borderRightWidth = n.styles.borderBottomWidth = n.styles.borderLeftWidth = 1, n.styles.borderTopStyle = n.styles.borderRightStyle = n.styles.borderBottomStyle = n.styles.borderLeftStyle = 1, n.styles.backgroundClip = [
0
/* BORDER_BOX */
], n.styles.backgroundOrigin = [
0
/* BORDER_BOX */
], n.bounds = Vm(n.bounds)), n.type) {
case Xo:
n.styles.borderTopRightRadius = n.styles.borderTopLeftRadius = n.styles.borderBottomRightRadius = n.styles.borderBottomLeftRadius = Rm;
break;
case zo:
n.styles.borderTopRightRadius = n.styles.borderTopLeftRadius = n.styles.borderBottomRightRadius = n.styles.borderBottomLeftRadius = Gm;
break;
}
return n;
}
return e;
}(Jr)
), Ed = (
/** @class */
function(t) {
Hr(e, t);
function e(A, r) {
var n = t.call(this, A, r) || this, i = r.options[r.selectedIndex || 0];
return n.value = i && i.text || "", n;
}
return e;
}(Jr)
), xd = (
/** @class */
function(t) {
Hr(e, t);
function e(A, r) {
var n = t.call(this, A, r) || this;
return n.value = r.value, n;
}
return e;
}(Jr)
), Id = (
/** @class */
function(t) {
Hr(e, t);
function e(A, r) {
var n = t.call(this, A, r) || this;
n.src = r.src, n.width = parseInt(r.width, 10) || 0, n.height = parseInt(r.height, 10) || 0, n.backgroundColor = n.styles.backgroundColor;
try {
if (r.contentWindow && r.contentWindow.document && r.contentWindow.document.documentElement) {
n.tree = Hd(A, r.contentWindow.document.documentElement);
var i = r.contentWindow.document.documentElement ? rs(A, getComputedStyle(r.contentWindow.document.documentElement).backgroundColor) : fn.TRANSPARENT, s = r.contentWindow.document.body ? rs(A, getComputedStyle(r.contentWindow.document.body).backgroundColor) : fn.TRANSPARENT;
n.backgroundColor = On(i) ? On(s) ? n.styles.backgroundColor : s : i;
}
} catch {
}
return n;
}
return e;
}(Jr)
), Wm = ["OL", "UL", "MENU"], Oo = function(t, e, A, r) {
for (var n = e.firstChild, i = void 0; n; n = i)
if (i = n.nextSibling, Dd(n) && n.data.trim().length > 0)
A.textNodes.push(new Mm(t, n, A.styles));
else if (na(n))
if (Td(n) && n.assignedNodes)
n.assignedNodes().forEach(function(o) {
return Oo(t, o, A, r);
});
else {
var s = Sd(t, n);
s.styles.isVisible() && (Xm(n, s, r) ? s.flags |= 4 : zm(s.styles) && (s.flags |= 2), Wm.indexOf(n.tagName) !== -1 && (s.flags |= 8), A.elements.push(s), n.slot, n.shadowRoot ? Oo(t, n.shadowRoot, s, r) : !Jo(n) && !Nd(n) && !Yo(n) && Oo(t, n, s, r));
}
}, Sd = function(t, e) {
return fu(e) ? new Qd(t, e) : kd(e) ? new bd(t, e) : Nd(e) ? new Ud(t, e) : Jm(e) ? new Ld(t, e) : Ym(e) ? new cu(t, e) : $m(e) ? new Qu(t, e) : Yo(e) ? new Ed(t, e) : Jo(e) ? new xd(t, e) : _d(e) ? new Id(t, e) : new Jr(t, e);
}, Hd = function(t, e) {
var A = Sd(t, e);
return A.flags |= 4, Oo(t, e, A, A), A;
}, Xm = function(t, e, A) {
return e.styles.isPositionedWithZIndex() || e.styles.opacity < 1 || e.styles.isTransformed() || bu(t) && A.styles.isTransparent();
}, zm = function(t) {
return t.isPositioned() || t.isFloating();
}, Dd = function(t) {
return t.nodeType === Node.TEXT_NODE;
}, na = function(t) {
return t.nodeType === Node.ELEMENT_NODE;
}, uu = function(t) {
return na(t) && typeof t.style < "u" && !Ko(t);
}, Ko = function(t) {
return typeof t.className == "object";
}, Jm = function(t) {
return t.tagName === "LI";
}, Ym = function(t) {
return t.tagName === "OL";
}, $m = function(t) {
return t.tagName === "INPUT";
}, Zm = function(t) {
return t.tagName === "HTML";
}, Nd = function(t) {
return t.tagName === "svg";
}, bu = function(t) {
return t.tagName === "BODY";
}, kd = function(t) {
return t.tagName === "CANVAS";
}, oh = function(t) {
return t.tagName === "VIDEO";
}, fu = function(t) {
return t.tagName === "IMG";
}, _d = function(t) {
return t.tagName === "IFRAME";
}, lh = function(t) {
return t.tagName === "STYLE";
}, A4 = function(t) {
return t.tagName === "SCRIPT";
}, Jo = function(t) {
return t.tagName === "TEXTAREA";
}, Yo = function(t) {
return t.tagName === "SELECT";
}, Td = function(t) {
return t.tagName === "SLOT";
}, ch = function(t) {
return t.tagName.indexOf("-") > 0;
}, e4 = (
/** @class */
function() {
function t() {
this.counters = {};
}
return t.prototype.getCounterValue = function(e) {
var A = this.counters[e];
return A && A.length ? A[A.length - 1] : 1;
}, t.prototype.getCounterValues = function(e) {
var A = this.counters[e];
return A || [];
}, t.prototype.pop = function(e) {
var A = this;
e.forEach(function(r) {
return A.counters[r].pop();
});
}, t.prototype.parse = function(e) {
var A = this, r = e.counterIncrement, n = e.counterReset, i = !0;
r !== null && r.forEach(function(o) {
var c = A.counters[o.counter];
c && o.increment !== 0 && (i = !1, c.length || c.push(1), c[Math.max(0, c.length - 1)] += o.increment);
});
var s = [];
return i && n.forEach(function(o) {
var c = A.counters[o.counter];
s.push(o.counter), c || (c = A.counters[o.counter] = []), c.push(o.reset);
}), s;
}, t;
}()
), uh = {
integers: [1e3, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],
values: ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"]
}, fh = {
integers: [
9e3,
8e3,
7e3,
6e3,
5e3,
4e3,
3e3,
2e3,
1e3,
900,
800,
700,
600,
500,
400,
300,
200,
100,
90,
80,
70,
60,
50,
40,
30,
20,
10,
9,
8,
7,
6,
5,
4,
3,
2,
1
],
values: [
"Ք",
"Փ",
"Ւ",
"Ց",
"Ր",
"Տ",
"Վ",
"Ս",
"Ռ",
"Ջ",
"Պ",
"Չ",
"Ո",
"Շ",
"Ն",
"Յ",
"Մ",
"Ճ",
"Ղ",
"Ձ",
"Հ",
"Կ",
"Ծ",
"Խ",
"Լ",
"Ի",
"Ժ",
"Թ",
"Ը",
"Է",
"Զ",
"Ե",
"Դ",
"Գ",
"Բ",
"Ա"
]
}, t4 = {
integers: [
1e4,
9e3,
8e3,
7e3,
6e3,
5e3,
4e3,
3e3,
2e3,
1e3,
400,
300,
200,
100,
90,
80,
70,
60,
50,
40,
30,
20,
19,
18,
17,
16,
15,
10,
9,
8,
7,
6,
5,
4,
3,
2,
1
],
values: [
"י׳",
"ט׳",
"ח׳",
"ז׳",
"ו׳",
"ה׳",
"ד׳",
"ג׳",
"ב׳",
"א׳",
"ת",
"ש",
"ר",
"ק",
"צ",
"פ",
"ע",
"ס",
"נ",
"מ",
"ל",
"כ",
"יט",
"יח",
"יז",
"טז",
"טו",
"י",
"ט",
"ח",
"ז",
"ו",
"ה",
"ד",
"ג",
"ב",
"א"
]
}, r4 = {
integers: [
1e4,
9e3,
8e3,
7e3,
6e3,
5e3,
4e3,
3e3,
2e3,
1e3,
900,
800,
700,
600,
500,
400,
300,
200,
100,
90,
80,
70,
60,
50,
40,
30,
20,
10,
9,
8,
7,
6,
5,
4,
3,
2,
1
],
values: [
"ჵ",
"ჰ",
"ჯ",
"ჴ",
"ხ",
"ჭ",
"წ",
"ძ",
"ც",
"ჩ",
"შ",
"ყ",
"ღ",
"ქ",
"ფ",
"ჳ",
"ტ",
"ს",
"რ",
"ჟ",
"პ",
"ო",
"ჲ",
"ნ",
"მ",
"ლ",
"კ",
"ი",
"თ",
"ჱ",
"ზ",
"ვ",
"ე",
"დ",
"გ",
"ბ",
"ა"
]
}, zi = function(t, e, A, r, n, i) {
return t < e || t > A ? cs(t, n, i.length > 0) : r.integers.reduce(function(s, o, c) {
for (; t >= o; )
t -= o, s += r.values[c];
return s;
}, "") + i;
}, Md = function(t, e, A, r) {
var n = "";
do
A || t--, n = r(t) + n, t /= e;
while (t * e >= e);
return n;
}, Ze = function(t, e, A, r, n) {
var i = A - e + 1;
return (t < 0 ? "-" : "") + (Md(Math.abs(t), i, r, function(s) {
return At(Math.floor(s % i) + e);
}) + n);
}, ri = function(t, e, A) {
A === void 0 && (A = ". ");
var r = e.length;
return Md(Math.abs(t), r, !1, function(n) {
return e[Math.floor(n % r)];
}) + A;
}, ea = 1, In = 2, Sn = 4, As = 8, cn = function(t, e, A, r, n, i) {
if (t < -9999 || t > 9999)
return cs(t, 4, n.length > 0);
var s = Math.abs(t), o = n;
if (s === 0)
return e[0] + o;
for (var c = 0; s > 0 && c <= 4; c++) {
var h = s % 10;
h === 0 && ft(i, ea) && o !== "" ? o = e[h] + o : h > 1 || h === 1 && c === 0 || h === 1 && c === 1 && ft(i, In) || h === 1 && c === 1 && ft(i, Sn) && t > 100 || h === 1 && c > 1 && ft(i, As) ? o = e[h] + (c > 0 ? A[c - 1] : "") + o : h === 1 && c > 0 && (o = A[c - 1] + o), s = Math.floor(s / 10);
}
return (t < 0 ? r : "") + o;
}, hh = "十百千萬", dh = "拾佰仟萬", gh = "マイナス", xc = "마이너스", cs = function(t, e, A) {
var r = A ? ". " : "", n = A ? "、" : "", i = A ? ", " : "", s = A ? " " : "";
switch (e) {
case 0:
return "•" + s;
case 1:
return "◦" + s;
case 2:
return "◾" + s;
case 5:
var o = Ze(t, 48, 57, !0, r);
return o.length < 4 ? "0" + o : o;
case 4:
return ri(t, "〇一二三四五六七八九", n);
case 6:
return zi(t, 1, 3999, uh, 3, r).toLowerCase();
case 7:
return zi(t, 1, 3999, uh, 3, r);
case 8:
return Ze(t, 945, 969, !1, r);
case 9:
return Ze(t, 97, 122, !1, r);
case 10:
return Ze(t, 65, 90, !1, r);
case 11:
return Ze(t, 1632, 1641, !0, r);
case 12:
case 49:
return zi(t, 1, 9999, fh, 3, r);
case 35:
return zi(t, 1, 9999, fh, 3, r).toLowerCase();
case 13:
return Ze(t, 2534, 2543, !0, r);
case 14:
case 30:
return Ze(t, 6112, 6121, !0, r);
case 15:
return ri(t, "子丑寅卯辰巳午未申酉戌亥", n);
case 16:
return ri(t, "甲乙丙丁戊己庚辛壬癸", n);
case 17:
case 48:
return cn(t, "零一二三四五六七八九", hh, "負", n, In | Sn | As);
case 47:
return cn(t, "零壹貳參肆伍陸柒捌玖", dh, "負", n, ea | In | Sn | As);
case 42:
return cn(t, "零一二三四五六七八九", hh, "负", n, In | Sn | As);
case 41:
return cn(t, "零壹贰叁肆伍陆柒捌玖", dh, "负", n, ea | In | Sn | As);
case 26:
return cn(t, "〇一二三四五六七八九", "十百千万", gh, n, 0);
case 25:
return cn(t, "零壱弐参四伍六七八九", "拾百千万", gh, n, ea | In | Sn);
case 31:
return cn(t, "영일이삼사오육칠팔구", "십백천만", xc, i, ea | In | Sn);
case 33:
return cn(t, "零一二三四五六七八九", "十百千萬", xc, i, 0);
case 32:
return cn(t, "零壹貳參四五六七八九", "拾百千", xc, i, ea | In | Sn);
case 18:
return Ze(t, 2406, 2415, !0, r);
case 20:
return zi(t, 1, 19999, r4, 3, r);
case 21:
return Ze(t, 2790, 2799, !0, r);
case 22:
return Ze(t, 2662, 2671, !0, r);
case 22:
return zi(t, 1, 10999, t4, 3, r);
case 23:
return ri(t, "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");
case 24:
return ri(t, "いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");
case 27:
return Ze(t, 3302, 3311, !0, r);
case 28:
return ri(t, "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン", n);
case 29:
return ri(t, "イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス", n);
case 34:
return Ze(t, 3792, 3801, !0, r);
case 37:
return Ze(t, 6160, 6169, !0, r);
case 38:
return Ze(t, 4160, 4169, !0, r);
case 39:
return Ze(t, 2918, 2927, !0, r);
case 40:
return Ze(t, 1776, 1785, !0, r);
case 43:
return Ze(t, 3046, 3055, !0, r);
case 44:
return Ze(t, 3174, 3183, !0, r);
case 45:
return Ze(t, 3664, 3673, !0, r);
case 46:
return Ze(t, 3872, 3881, !0, r);
case 3:
default:
return Ze(t, 48, 57, !0, r);
}
}, Pd = "data-html2canvas-ignore", ph = (
/** @class */
function() {
function t(e, A, r) {
if (this.context = e, this.options = r, this.scrolledElements = [], this.referenceElement = A, this.counters = new e4(), this.quoteDepth = 0, !A.ownerDocument)
throw new Error("Cloned element does not have an owner document");
this.documentElement = this.cloneNode(A.ownerDocument.documentElement, !1);
}
return t.prototype.toIFrame = function(e, A) {
var r = this, n = n4(e, A);
if (!n.contentWindow)
return Promise.reject("Unable to find iframe window");
var i = e.defaultView.pageXOffset, s = e.defaultView.pageYOffset, o = n.contentWindow, c = o.document, h = s4(n).then(function() {
return _t(r, void 0, void 0, function() {
var p, d;
return It(this, function(w) {
switch (w.label) {
case 0:
return this.scrolledElements.forEach(u4), o && (o.scrollTo(A.left, A.top), /(iPad|iPhone|iPod)/g.test(navigator.userAgent) && (o.scrollY !== A.top || o.scrollX !== A.left) && (this.context.logger.warn("Unable to restore scroll position for cloned document"), this.context.windowBounds = this.context.windowBounds.add(o.scrollX - A.left, o.scrollY - A.top, 0, 0))), p = this.options.onclone, d = this.clonedReferenceElement, typeof d > "u" ? [2, Promise.reject("Error finding the " + this.referenceElement.nodeName + " in the cloned document")] : c.fonts && c.fonts.ready ? [4, c.fonts.ready] : [3, 2];
case 1:
w.sent(), w.label = 2;
case 2:
return /(AppleWebKit)/g.test(navigator.userAgent) ? [4, a4(c)] : [3, 4];
case 3:
w.sent(), w.label = 4;
case 4:
return typeof p == "function" ? [2, Promise.resolve().then(function() {
return p(c, d);
}).then(function() {
return n;
})] : [2, n];
}
});
});
});
return c.open(), c.write(l4(document.doctype) + "<html></html>"), c4(this.referenceElement.ownerDocument, i, s), c.replaceChild(c.adoptNode(this.documentElement), c.documentElement), c.close(), h;
}, t.prototype.createElementClone = function(e) {
if (ou(
e,
2
/* CLONE */
))
debugger;
if (kd(e))
return this.createCanvasClone(e);
if (oh(e))
return this.createVideoClone(e);
if (lh(e))
return this.createStyleClone(e);
var A = e.cloneNode(!1);
return fu(A) && (fu(e) && e.currentSrc && e.currentSrc !== e.src && (A.src = e.currentSrc, A.srcset = ""), A.loading === "lazy" && (A.loading = "eager")), ch(A) ? this.createCustomElementClone(A) : A;
}, t.prototype.createCustomElementClone = function(e) {
var A = document.createElement("html2canvascustomelement");
return Ic(e.style, A), A;
}, t.prototype.createStyleClone = function(e) {
try {
var A = e.sheet;
if (A && A.cssRules) {
var r = [].slice.call(A.cssRules, 0).reduce(function(i, s) {
return s && typeof s.cssText == "string" ? i + s.cssText : i;
}, ""), n = e.cloneNode(!1);
return n.textContent = r, n;
}
} catch (i) {
if (this.context.logger.error("Unable to access cssRules property", i), i.name !== "SecurityError")
throw i;
}
return e.cloneNode(!1);
}, t.prototype.createCanvasClone = function(e) {
var A;
if (this.options.inlineImages && e.ownerDocument) {
var r = e.ownerDocument.createElement("img");
try {
return r.src = e.toDataURL(), r;
} catch {
this.context.logger.info("Unable to inline canvas contents, canvas is tainted", e);
}
}
var n = e.cloneNode(!1);
try {
n.width = e.width, n.height = e.height;
var i = e.getContext("2d"), s = n.getContext("2d");
if (s)
if (!this.options.allowTaint && i)
s.putImageData(i.getImageData(0, 0, e.width, e.height), 0, 0);
else {
var o = (A = e.getContext("webgl2")) !== null && A !== void 0 ? A : e.getContext("webgl");
if (o) {
var c = o.getContextAttributes();
(c == null ? void 0 : c.preserveDrawingBuffer) === !1 && this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false", e);
}
s.drawImage(e, 0, 0);
}
return n;
} catch {
this.context.logger.info("Unable to clone canvas as it is tainted", e);
}
return n;
}, t.prototype.createVideoClone = function(e) {
var A = e.ownerDocument.createElement("canvas");
A.width = e.offsetWidth, A.height = e.offsetHeight;
var r = A.getContext("2d");
try {
return r && (r.drawImage(e, 0, 0, A.width, A.height), this.options.allowTaint || r.getImageData(0, 0, A.width, A.height)), A;
} catch {
this.context.logger.info("Unable to clone video as it is tainted", e);
}
var n = e.ownerDocument.createElement("canvas");
return n.width = e.offsetWidth, n.height = e.offsetHeight, n;
}, t.prototype.appendChildNode = function(e, A, r) {
(!na(A) || !A4(A) && !A.hasAttribute(Pd) && (typeof this.options.ignoreElements != "function" || !this.options.ignoreElements(A))) && (!this.options.copyStyles || !na(A) || !lh(A)) && e.appendChild(this.cloneNode(A, r));
}, t.prototype.cloneChildNodes = function(e, A, r) {
for (var n = this, i = e.shadowRoot ? e.shadowRoot.firstChild : e.firstChild; i; i = i.nextSibling)
if (na(i) && Td(i) && typeof i.assignedNodes == "function") {
var s = i.assignedNodes();
s.length && s.forEach(function(o) {
return n.appendChildNode(A, o, r);
});
} else
this.appendChildNode(A, i, r);
}, t.prototype.cloneNode = function(e, A) {
if (Dd(e))
return document.createTextNode(e.data);
if (!e.ownerDocument)
return e.cloneNode(!1);
var r = e.ownerDocument.defaultView;
if (r && na(e) && (uu(e) || Ko(e))) {
var n = this.createElementClone(e);
n.style.transitionProperty = "none";
var i = r.getComputedStyle(e), s = r.getComputedStyle(e, ":before"), o = r.getComputedStyle(e, ":after");
this.referenceElement === e && uu(n) && (this.clonedReferenceElement = n), bu(n) && d4(n);
var c = this.counters.parse(new Wf(this.context, i)), h = this.resolvePseudoContent(e, n, s, as.BEFORE);
ch(e) && (A = !0), oh(e) || this.cloneChildNodes(e, n, A), h && n.insertBefore(h, n.firstChild);
var p = this.resolvePseudoContent(e, n, o, as.AFTER);
return p && n.appendChild(p), this.counters.pop(c), (i && (this.options.copyStyles || Ko(e)) && !_d(e) || A) && Ic(i, n), (e.scrollTop !== 0 || e.scrollLeft !== 0) && this.scrolledElements.push([n, e.scrollLeft, e.scrollTop]), (Jo(e) || Yo(e)) && (Jo(n) || Yo(n)) && (n.value = e.value), n;
}
return e.cloneNode(!1);
}, t.prototype.resolvePseudoContent = function(e, A, r, n) {
var i = this;
if (r) {
var s = r.content, o = A.ownerDocument;
if (!(!o || !s || s === "none" || s === "-moz-alt-content" || r.display === "none")) {
this.counters.parse(new Wf(this.context, r));
var c = new Jv(this.context, r), h = o.createElement("html2canvaspseudoelement");
Ic(r, h), c.content.forEach(function(d) {
if (d.type === 0)
h.appendChild(o.createTextNode(d.value));
else if (d.type === 22) {
var w = o.createElement("img");
w.src = d.value, w.style.opacity = "1", h.appendChild(w);
} else if (d.type === 18) {
if (d.name === "attr") {
var g = d.values.filter(Ne);
g.length && h.appendChild(o.createTextNode(e.getAttribute(g[0].value) || ""));
} else if (d.name === "counter") {
var Q = d.values.filter(ca), y = Q[0], N = Q[1];
if (y && Ne(y)) {
var v = i.counters.getCounterValue(y.value), U = N && Ne(N) ? su.parse(i.context, N.value) : 3;
h.appendChild(o.createTextNode(cs(v, U, !1)));
}
} else if (d.name === "counters") {
var K = d.values.filter(ca), y = K[0], j = K[1], N = K[2];
if (y && Ne(y)) {
var q = i.counters.getCounterValues(y.value), V = N && Ne(N) ? su.parse(i.context, N.value) : 3, z = j && j.type === 0 ? j.value : "", H = q.map(function(x) {
return cs(x, V, !1);
}).join(z);
h.appendChild(o.createTextNode(H));
}
}
} else if (d.type === 20)
switch (d.value) {
case "open-quote":
h.appendChild(o.createTextNode(qf(c.quotes, i.quoteDepth++, !0)));
break;
case "close-quote":
h.appendChild(o.createTextNode(qf(c.quotes, --i.quoteDepth, !1)));
break;
default:
h.appendChild(o.createTextNode(d.value));
}
}), h.className = hu + " " + du;
var p = n === as.BEFORE ? " " + hu : " " + du;
return Ko(A) ? A.className.baseValue += p : A.className += p, h;
}
}
}, t.destroy = function(e) {
return e.parentNode ? (e.parentNode.removeChild(e), !0) : !1;
}, t;
}()
), as;
(function(t) {
t[t.BEFORE = 0] = "BEFORE", t[t.AFTER = 1] = "AFTER";
})(as || (as = {}));
var n4 = function(t, e) {
var A = t.createElement("iframe");
return A.className = "html2canvas-container", A.style.visibility = "hidden", A.style.position = "fixed", A.style.left = "-10000px", A.style.top = "0px", A.style.border = "0", A.width = e.width.toString(), A.height = e.height.toString(), A.scrolling = "no", A.setAttribute(Pd, "true"), t.body.appendChild(A), A;
}, i4 = function(t) {
return new Promise(function(e) {
if (t.complete) {
e();
return;
}
if (!t.src) {
e();
return;
}
t.onload = e, t.onerror = e;
});
}, a4 = function(t) {
return Promise.all([].slice.call(t.images, 0).map(i4));
}, s4 = function(t) {
return new Promise(function(e, A) {
var r = t.contentWindow;
if (!r)
return A("No window assigned for iframe");
var n = r.document;
r.onload = t.onload = function() {
r.onload = t.onload = null;
var i = setInterval(function() {
n.body.childNodes.length > 0 && n.readyState === "complete" && (clearInterval(i), e(t));
}, 50);
};
});
}, o4 = [
"all",
"d",
"content"
// Safari shows pseudoelements if content is set
], Ic = function(t, e) {
for (var A = t.length - 1; A >= 0; A--) {
var r = t.item(A);
o4.indexOf(r) === -1 && e.style.setProperty(r, t.getPropertyValue(r));
}
return e;
}, l4 = function(t) {
var e = "";
return t && (e += "<!DOCTYPE ", t.name && (e += t.name), t.internalSubset && (e += t.internalSubset), t.publicId && (e += '"' + t.publicId + '"'), t.systemId && (e += '"' + t.systemId + '"'), e += ">"), e;
}, c4 = function(t, e, A) {
t && t.defaultView && (e !== t.defaultView.pageXOffset || A !== t.defaultView.pageYOffset) && t.defaultView.scrollTo(e, A);
}, u4 = function(t) {
var e = t[0], A = t[1], r = t[2];
e.scrollLeft = A, e.scrollTop = r;
}, f4 = ":before", h4 = ":after", hu = "___html2canvas___pseudoelement_before", du = "___html2canvas___pseudoelement_after", Bh = `{
content: "" !important;
display: none !important;
}`, d4 = function(t) {
g4(t, "." + hu + f4 + Bh + `
.` + du + h4 + Bh);
}, g4 = function(t, e) {
var A = t.ownerDocument;
if (A) {
var r = A.createElement("style");
r.textContent = e, t.appendChild(r);
}
}, Od = (
/** @class */
function() {
function t() {
}
return t.getOrigin = function(e) {
var A = t._link;
return A ? (A.href = e, A.href = A.href, A.protocol + A.hostname + A.port) : "about:blank";
}, t.isSameOrigin = function(e) {
return t.getOrigin(e) === t._origin;
}, t.setContext = function(e) {
t._link = e.document.createElement("a"), t._origin = t.getOrigin(e.location.href);
}, t._origin = "about:blank", t;
}()
), p4 = (
/** @class */
function() {
function t(e, A) {
this.context = e, this._options = A, this._cache = {};
}
return t.prototype.addImage = function(e) {
var A = Promise.resolve();
return this.has(e) || (Hc(e) || m4(e)) && (this._cache[e] = this.loadImage(e)).catch(function() {
}), A;
}, t.prototype.match = function(e) {
return this._cache[e];
}, t.prototype.loadImage = function(e) {
return _t(this, void 0, void 0, function() {
var A, r, n, i, s = this;
return It(this, function(o) {
switch (o.label) {
case 0:
return A = Od.isSameOrigin(e), r = !Sc(e) && this._options.useCORS === !0 && Ct.SUPPORT_CORS_IMAGES && !A, n = !Sc(e) && !A && !Hc(e) && typeof this._options.proxy == "string" && Ct.SUPPORT_CORS_XHR && !r, !A && this._options.allowTaint === !1 && !Sc(e) && !Hc(e) && !n && !r ? [
2
/*return*/
] : (i = e, n ? [4, this.proxy(i)] : [3, 2]);
case 1:
i = o.sent(), o.label = 2;
case 2:
return this.context.logger.debug("Added image " + e.substring(0, 256)), [4, new Promise(function(c, h) {
var p = new Image();
p.onload = function() {
return c(p);
}, p.onerror = h, (C4(i) || r) && (p.crossOrigin = "anonymous"), p.src = i, p.complete === !0 && setTimeout(function() {
return c(p);
}, 500), s._options.imageTimeout > 0 && setTimeout(function() {
return h("Timed out (" + s._options.imageTimeout + "ms) loading image");
}, s._options.imageTimeout);
})];
case 3:
return [2, o.sent()];
}
});
});
}, t.prototype.has = function(e) {
return typeof this._cache[e] < "u";
}, t.prototype.keys = function() {
return Promise.resolve(Object.keys(this._cache));
}, t.prototype.proxy = function(e) {
var A = this, r = this._options.proxy;
if (!r)
throw new Error("No proxy defined");
var n = e.substring(0, 256);
return new Promise(function(i, s) {
var o = Ct.SUPPORT_RESPONSE_TYPE ? "blob" : "text", c = new XMLHttpRequest();
c.onload = function() {
if (c.status === 200)
if (o === "text")
i(c.response);
else {
var d = new FileReader();
d.addEventListener("load", function() {
return i(d.result);
}, !1), d.addEventListener("error", function(w) {
return s(w);
}, !1), d.readAsDataURL(c.response);
}
else
s("Failed to proxy resource " + n + " with status code " + c.status);
}, c.onerror = s;
var h = r.indexOf("?") > -1 ? "&" : "?";
if (c.open("GET", "" + r + h + "url=" + encodeURIComponent(e) + "&responseType=" + o), o !== "text" && c instanceof XMLHttpRequest && (c.responseType = o), A._options.imageTimeout) {
var p = A._options.imageTimeout;
c.timeout = p, c.ontimeout = function() {
return s("Timed out (" + p + "ms) proxying " + n);
};
}
c.send();
});
}, t;
}()
), B4 = /^data:image\/svg\+xml/i, w4 = /^data:image\/.*;base64,/i, v4 = /^data:image\/.*/i, m4 = function(t) {
return Ct.SUPPORT_SVG_DRAWING || !y4(t);
}, Sc = function(t) {
return v4.test(t);
}, C4 = function(t) {
return w4.test(t);
}, Hc = function(t) {
return t.substr(0, 4) === "blob";
}, y4 = function(t) {
return t.substr(-3).toLowerCase() === "svg" || B4.test(t);
}, WA = (
/** @class */
function() {
function t(e, A) {
this.type = 0, this.x = e, this.y = A;
}
return t.prototype.add = function(e, A) {
return new t(this.x + e, this.y + A);
}, t;
}()
), Ji = function(t, e, A) {
return new WA(t.x + (e.x - t.x) * A, t.y + (e.y - t.y) * A);
}, xo = (
/** @class */
function() {
function t(e, A, r, n) {
this.type = 1, this.start = e, this.startControl = A, this.endControl = r, this.end = n;
}
return t.prototype.subdivide = function(e, A) {
var r = Ji(this.start, this.startControl, e), n = Ji(this.startControl, this.endControl, e), i = Ji(this.endControl, this.end, e), s = Ji(r, n, e), o = Ji(n, i, e), c = Ji(s, o, e);
return A ? new t(this.start, r, s, c) : new t(c, o, i, this.end);
}, t.prototype.add = function(e, A) {
return new t(this.start.add(e, A), this.startControl.add(e, A), this.endControl.add(e, A), this.end.add(e, A));
}, t.prototype.reverse = function() {
return new t(this.end, this.endControl, this.startControl, this.start);
}, t;
}()
), ur = function(t) {
return t.type === 1;
}, F4 = (
/** @class */
/* @__PURE__ */ function() {
function t(e) {
var A = e.styles, r = e.bounds, n = $a(A.borderTopLeftRadius, r.width, r.height), i = n[0], s = n[1], o = $a(A.borderTopRightRadius, r.width, r.height), c = o[0], h = o[1], p = $a(A.borderBottomRightRadius, r.width, r.height), d = p[0], w = p[1], g = $a(A.borderBottomLeftRadius, r.width, r.height), Q = g[0], y = g[1], N = [];
N.push((i + c) / r.width), N.push((Q + d) / r.width), N.push((s + y) / r.height), N.push((h + w) / r.height);
var v = Math.max.apply(Math, N);
v > 1 && (i /= v, s /= v, c /= v, h /= v, d /= v, w /= v, Q /= v, y /= v);
var U = r.width - c, K = r.height - w, j = r.width - d, q = r.height - y, V = A.borderTopWidth, z = A.borderRightWidth, H = A.borderBottomWidth, G = A.borderLeftWidth, tA = Pe(A.paddingTop, e.bounds.width), x = Pe(A.paddingRight, e.bounds.width), F = Pe(A.paddingBottom, e.bounds.width), _ = Pe(A.paddingLeft, e.bounds.width);
this.topLeftBorderDoubleOuterBox = i > 0 || s > 0 ? Ge(r.left + G / 3, r.top + V / 3, i - G / 3, s - V / 3, Ee.TOP_LEFT) : new WA(r.left + G / 3, r.top + V / 3), this.topRightBorderDoubleOuterBox = i > 0 || s > 0 ? Ge(r.left + U, r.top + V / 3, c - z / 3, h - V / 3, Ee.TOP_RIGHT) : new WA(r.left + r.width - z / 3, r.top + V / 3), this.bottomRightBorderDoubleOuterBox = d > 0 || w > 0 ? Ge(r.left + j, r.top + K, d - z / 3, w - H / 3, Ee.BOTTOM_RIGHT) : new WA(r.left + r.width - z / 3, r.top + r.height - H / 3), this.bottomLeftBorderDoubleOuterBox = Q > 0 || y > 0 ? Ge(r.left + G / 3, r.top + q, Q - G / 3, y - H / 3, Ee.BOTTOM_LEFT) : new WA(r.left + G / 3, r.top + r.height - H / 3), this.topLeftBorderDoubleInnerBox = i > 0 || s > 0 ? Ge(r.left + G * 2 / 3, r.top + V * 2 / 3, i - G * 2 / 3, s - V * 2 / 3, Ee.TOP_LEFT) : new WA(r.left + G * 2 / 3, r.top + V * 2 / 3), this.topRightBorderDoubleInnerBox = i > 0 || s > 0 ? Ge(r.left + U, r.top + V * 2 / 3, c - z * 2 / 3, h - V * 2 / 3, Ee.TOP_RIGHT) : new WA(r.left + r.width - z * 2 / 3, r.top + V * 2 / 3), this.bottomRightBorderDoubleInnerBox = d > 0 || w > 0 ? Ge(r.left + j, r.top + K, d - z * 2 / 3, w - H * 2 / 3, Ee.BOTTOM_RIGHT) : new WA(r.left + r.width - z * 2 / 3, r.top + r.height - H * 2 / 3), this.bottomLeftBorderDoubleInnerBox = Q > 0 || y > 0 ? Ge(r.left + G * 2 / 3, r.top + q, Q - G * 2 / 3, y - H * 2 / 3, Ee.BOTTOM_LEFT) : new WA(r.left + G * 2 / 3, r.top + r.height - H * 2 / 3), this.topLeftBorderStroke = i > 0 || s > 0 ? Ge(r.left + G / 2, r.top + V / 2, i - G / 2, s - V / 2, Ee.TOP_LEFT) : new WA(r.left + G / 2, r.top + V / 2), this.topRightBorderStroke = i > 0 || s > 0 ? Ge(r.left + U, r.top + V / 2, c - z / 2, h - V / 2, Ee.TOP_RIGHT) : new WA(r.left + r.width - z / 2, r.top + V / 2), this.bottomRightBorderStroke = d > 0 || w > 0 ? Ge(r.left + j, r.top + K, d - z / 2, w - H / 2, Ee.BOTTOM_RIGHT) : new WA(r.left + r.width - z / 2, r.top + r.height - H / 2), this.bottomLeftBorderStroke = Q > 0 || y > 0 ? Ge(r.left + G / 2, r.top + q, Q - G / 2, y - H / 2, Ee.BOTTOM_LEFT) : new WA(r.left + G / 2, r.top + r.height - H / 2), this.topLeftBorderBox = i > 0 || s > 0 ? Ge(r.left, r.top, i, s, Ee.TOP_LEFT) : new WA(r.left, r.top), this.topRightBorderBox = c > 0 || h > 0 ? Ge(r.left + U, r.top, c, h, Ee.TOP_RIGHT) : new WA(r.left + r.width, r.top), this.bottomRightBorderBox = d > 0 || w > 0 ? Ge(r.left + j, r.top + K, d, w, Ee.BOTTOM_RIGHT) : new WA(r.left + r.width, r.top + r.height), this.bottomLeftBorderBox = Q > 0 || y > 0 ? Ge(r.left, r.top + q, Q, y, Ee.BOTTOM_LEFT) : new WA(r.left, r.top + r.height), this.topLeftPaddingBox = i > 0 || s > 0 ? Ge(r.left + G, r.top + V, Math.max(0, i - G), Math.max(0, s - V), Ee.TOP_LEFT) : new WA(r.left + G, r.top + V), this.topRightPaddingBox = c > 0 || h > 0 ? Ge(r.left + Math.min(U, r.width - z), r.top + V, U > r.width + z ? 0 : Math.max(0, c - z), Math.max(0, h - V), Ee.TOP_RIGHT) : new WA(r.left + r.width - z, r.top + V), this.bottomRightPaddingBox = d > 0 || w > 0 ? Ge(r.left + Math.min(j, r.width - G), r.top + Math.min(K, r.height - H), Math.max(0, d - z), Math.max(0, w - H), Ee.BOTTOM_RIGHT) : new WA(r.left + r.width - z, r.top + r.height - H), this.bottomLeftPaddingBox = Q > 0 || y > 0 ? Ge(r.left + G, r.top + Math.min(q, r.height - H), Math.max(0, Q - G), Math.max(0, y - H), Ee.BOTTOM_LEFT) : new WA(r.left + G, r.top + r.height - H), this.topLeftContentBox = i > 0 || s > 0 ? Ge(r.left + G + _, r.top + V + tA, Math.max(0, i - (G + _)), Math.max(0, s - (V + tA)), Ee.TOP_LEFT) : new WA(r.left + G + _, r.top + V + tA), this.topRightContentBox = c > 0 || h > 0 ? Ge(r.left + Math.min(U, r.width + G + _), r.top + V + tA, U > r.width + G + _ ? 0 : c - G + _, h - (V + tA), Ee.TOP_RIGHT) : new WA(r.left + r.width - (z + x), r.top + V + tA), this.bottomRightContentBox = d > 0 || w > 0 ? Ge(r.left + Math.min(j, r.width - (G + _)), r.top + Math.min(K, r.height + V + tA), Math.max(0, d - (z + x)), w - (H + F), Ee.BOTTOM_RIGHT) : new WA(r.left + r.width - (z + x), r.top + r.height - (H + F)), this.bottomLeftContentBox = Q > 0 || y > 0 ? Ge(r.left + G + _, r.top + q, Math.max(0, Q - (G + _)), y - (H + F), Ee.BOTTOM_LEFT) : new WA(r.left + G + _, r.top + r.height - (H + F));
}
return t;
}()
), Ee;
(function(t) {
t[t.TOP_LEFT = 0] = "TOP_LEFT", t[t.TOP_RIGHT = 1] = "TOP_RIGHT", t[t.BOTTOM_RIGHT = 2] = "BOTTOM_RIGHT", t[t.BOTTOM_LEFT = 3] = "BOTTOM_LEFT";
})(Ee || (Ee = {}));
var Ge = function(t, e, A, r, n) {
var i = 4 * ((Math.sqrt(2) - 1) / 3), s = A * i, o = r * i, c = t + A, h = e + r;
switch (n) {
case Ee.TOP_LEFT:
return new xo(new WA(t, h), new WA(t, h - o), new WA(c - s, e), new WA(c, e));
case Ee.TOP_RIGHT:
return new xo(new WA(t, e), new WA(t + s, e), new WA(c, h - o), new WA(c, h));
case Ee.BOTTOM_RIGHT:
return new xo(new WA(c, e), new WA(c, e + o), new WA(t + s, h), new WA(t, h));
case Ee.BOTTOM_LEFT:
default:
return new xo(new WA(c, h), new WA(c - s, h), new WA(t, e + o), new WA(t, e));
}
}, $o = function(t) {
return [t.topLeftBorderBox, t.topRightBorderBox, t.bottomRightBorderBox, t.bottomLeftBorderBox];
}, Q4 = function(t) {
return [
t.topLeftContentBox,
t.topRightContentBox,
t.bottomRightContentBox,
t.bottomLeftContentBox
];
}, Zo = function(t) {
return [
t.topLeftPaddingBox,
t.topRightPaddingBox,
t.bottomRightPaddingBox,
t.bottomLeftPaddingBox
];
}, b4 = (
/** @class */
/* @__PURE__ */ function() {
function t(e, A, r) {
this.offsetX = e, this.offsetY = A, this.matrix = r, this.type = 0, this.target = 6;
}
return t;
}()
), Io = (
/** @class */
/* @__PURE__ */ function() {
function t(e, A) {
this.path = e, this.target = A, this.type = 1;
}
return t;
}()
), U4 = (
/** @class */
/* @__PURE__ */ function() {
function t(e) {
this.opacity = e, this.type = 2, this.target = 6;
}
return t;
}()
), L4 = function(t) {
return t.type === 0;
}, Kd = function(t) {
return t.type === 1;
}, E4 = function(t) {
return t.type === 2;
}, wh = function(t, e) {
return t.length === e.length ? t.some(function(A, r) {
return A === e[r];
}) : !1;
}, x4 = function(t, e, A, r, n) {
return t.map(function(i, s) {
switch (s) {
case 0:
return i.add(e, A);
case 1:
return i.add(e + r, A);
case 2:
return i.add(e + r, A + n);
case 3:
return i.add(e, A + n);
}
return i;
});
}, Rd = (
/** @class */
/* @__PURE__ */ function() {
function t(e) {
this.element = e, this.inlineLevel = [], this.nonInlineLevel = [], this.negativeZIndex = [], this.zeroOrAutoZIndexOrTransformedOrOpacity = [], this.positiveZIndex = [], this.nonPositionedFloats = [], this.nonPositionedInlineLevel = [];
}
return t;
}()
), Gd = (
/** @class */
function() {
function t(e, A) {
if (this.container = e, this.parent = A, this.effects = [], this.curves = new F4(this.container), this.container.styles.opacity < 1 && this.effects.push(new U4(this.container.styles.opacity)), this.container.styles.transform !== null) {
var r = this.container.bounds.left + this.container.styles.transformOrigin[0].number, n = this.container.bounds.top + this.container.styles.transformOrigin[1].number, i = this.container.styles.transform;
this.effects.push(new b4(r, n, i));
}
if (this.container.styles.overflowX !== 0) {
var s = $o(this.curves), o = Zo(this.curves);
wh(s, o) ? this.effects.push(new Io(
s,
6
/* CONTENT */
)) : (this.effects.push(new Io(
s,
2
/* BACKGROUND_BORDERS */
)), this.effects.push(new Io(
o,
4
/* CONTENT */
)));
}
}
return t.prototype.getEffects = function(e) {
for (var A = [
2,
3
/* FIXED */
].indexOf(this.container.styles.position) === -1, r = this.parent, n = this.effects.slice(0); r; ) {
var i = r.effects.filter(function(c) {
return !Kd(c);
});
if (A || r.container.styles.position !== 0 || !r.parent) {
if (n.unshift.apply(n, i), A = [
2,
3
/* FIXED */
].indexOf(r.container.styles.position) === -1, r.container.styles.overflowX !== 0) {
var s = $o(r.curves), o = Zo(r.curves);
wh(s, o) || n.unshift(new Io(
o,
6
/* CONTENT */
));
}
} else
n.unshift.apply(n, i);
r = r.parent;
}
return n.filter(function(c) {
return ft(c.target, e);
});
}, t;
}()
), gu = function(t, e, A, r) {
t.container.elements.forEach(function(n) {
var i = ft(
n.flags,
4
/* CREATES_REAL_STACKING_CONTEXT */
), s = ft(
n.flags,
2
/* CREATES_STACKING_CONTEXT */
), o = new Gd(n, t);
ft(
n.styles.display,
2048
/* LIST_ITEM */
) && r.push(o);
var c = ft(
n.flags,
8
/* IS_LIST_OWNER */
) ? [] : r;
if (i || s) {
var h = i || n.styles.isPositioned() ? A : e, p = new Rd(o);
if (n.styles.isPositioned() || n.styles.opacity < 1 || n.styles.isTransformed()) {
var d = n.styles.zIndex.order;
if (d < 0) {
var w = 0;
h.negativeZIndex.some(function(Q, y) {
return d > Q.element.container.styles.zIndex.order ? (w = y, !1) : w > 0;
}), h.negativeZIndex.splice(w, 0, p);
} else if (d > 0) {
var g = 0;
h.positiveZIndex.some(function(Q, y) {
return d >= Q.element.container.styles.zIndex.order ? (g = y + 1, !1) : g > 0;
}), h.positiveZIndex.splice(g, 0, p);
} else
h.zeroOrAutoZIndexOrTransformedOrOpacity.push(p);
} else
n.styles.isFloating() ? h.nonPositionedFloats.push(p) : h.nonPositionedInlineLevel.push(p);
gu(o, p, i ? p : A, c);
} else
n.styles.isInlineLevel() ? e.inlineLevel.push(o) : e.nonInlineLevel.push(o), gu(o, e, A, c);
ft(
n.flags,
8
/* IS_LIST_OWNER */
) && Vd(n, c);
});
}, Vd = function(t, e) {
for (var A = t instanceof cu ? t.start : 1, r = t instanceof cu ? t.reversed : !1, n = 0; n < e.length; n++) {
var i = e[n];
i.container instanceof Ld && typeof i.container.value == "number" && i.container.value !== 0 && (A = i.container.value), i.listValue = cs(A, i.container.styles.listStyleType, !0), A += r ? -1 : 1;
}
}, I4 = function(t) {
var e = new Gd(t, null), A = new Rd(e), r = [];
return gu(e, A, A, r), Vd(e.container, r), A;
}, vh = function(t, e) {
switch (e) {
case 0:
return hr(t.topLeftBorderBox, t.topLeftPaddingBox, t.topRightBorderBox, t.topRightPaddingBox);
case 1:
return hr(t.topRightBorderBox, t.topRightPaddingBox, t.bottomRightBorderBox, t.bottomRightPaddingBox);
case 2:
return hr(t.bottomRightBorderBox, t.bottomRightPaddingBox, t.bottomLeftBorderBox, t.bottomLeftPaddingBox);
case 3:
default:
return hr(t.bottomLeftBorderBox, t.bottomLeftPaddingBox, t.topLeftBorderBox, t.topLeftPaddingBox);
}
}, S4 = function(t, e) {
switch (e) {
case 0:
return hr(t.topLeftBorderBox, t.topLeftBorderDoubleOuterBox, t.topRightBorderBox, t.topRightBorderDoubleOuterBox);
case 1:
return hr(t.topRightBorderBox, t.topRightBorderDoubleOuterBox, t.bottomRightBorderBox, t.bottomRightBorderDoubleOuterBox);
case 2:
return hr(t.bottomRightBorderBox, t.bottomRightBorderDoubleOuterBox, t.bottomLeftBorderBox, t.bottomLeftBorderDoubleOuterBox);
case 3:
default:
return hr(t.bottomLeftBorderBox, t.bottomLeftBorderDoubleOuterBox, t.topLeftBorderBox, t.topLeftBorderDoubleOuterBox);
}
}, H4 = function(t, e) {
switch (e) {
case 0:
return hr(t.topLeftBorderDoubleInnerBox, t.topLeftPaddingBox, t.topRightBorderDoubleInnerBox, t.topRightPaddingBox);
case 1:
return hr(t.topRightBorderDoubleInnerBox, t.topRightPaddingBox, t.bottomRightBorderDoubleInnerBox, t.bottomRightPaddingBox);
case 2:
return hr(t.bottomRightBorderDoubleInnerBox, t.bottomRightPaddingBox, t.bottomLeftBorderDoubleInnerBox, t.bottomLeftPaddingBox);
case 3:
default:
return hr(t.bottomLeftBorderDoubleInnerBox, t.bottomLeftPaddingBox, t.topLeftBorderDoubleInnerBox, t.topLeftPaddingBox);
}
}, D4 = function(t, e) {
switch (e) {
case 0:
return So(t.topLeftBorderStroke, t.topRightBorderStroke);
case 1:
return So(t.topRightBorderStroke, t.bottomRightBorderStroke);
case 2:
return So(t.bottomRightBorderStroke, t.bottomLeftBorderStroke);
case 3:
default:
return So(t.bottomLeftBorderStroke, t.topLeftBorderStroke);
}
}, So = function(t, e) {
var A = [];
return ur(t) ? A.push(t.subdivide(0.5, !1)) : A.push(t), ur(e) ? A.push(e.subdivide(0.5, !0)) : A.push(e), A;
}, hr = function(t, e, A, r) {
var n = [];
return ur(t) ? n.push(t.subdivide(0.5, !1)) : n.push(t), ur(A) ? n.push(A.subdivide(0.5, !0)) : n.push(A), ur(r) ? n.push(r.subdivide(0.5, !0).reverse()) : n.push(r), ur(e) ? n.push(e.subdivide(0.5, !1).reverse()) : n.push(e), n;
}, jd = function(t) {
var e = t.bounds, A = t.styles;
return e.add(A.borderLeftWidth, A.borderTopWidth, -(A.borderRightWidth + A.borderLeftWidth), -(A.borderTopWidth + A.borderBottomWidth));
}, Al = function(t) {
var e = t.styles, A = t.bounds, r = Pe(e.paddingLeft, A.width), n = Pe(e.paddingRight, A.width), i = Pe(e.paddingTop, A.width), s = Pe(e.paddingBottom, A.width);
return A.add(r + e.borderLeftWidth, i + e.borderTopWidth, -(e.borderRightWidth + e.borderLeftWidth + r + n), -(e.borderTopWidth + e.borderBottomWidth + i + s));
}, N4 = function(t, e) {
return t === 0 ? e.bounds : t === 2 ? Al(e) : jd(e);
}, k4 = function(t, e) {
return t === 0 ? e.bounds : t === 2 ? Al(e) : jd(e);
}, Dc = function(t, e, A) {
var r = N4(ta(t.styles.backgroundOrigin, e), t), n = k4(ta(t.styles.backgroundClip, e), t), i = _4(ta(t.styles.backgroundSize, e), A, r), s = i[0], o = i[1], c = $a(ta(t.styles.backgroundPosition, e), r.width - s, r.height - o), h = T4(ta(t.styles.backgroundRepeat, e), c, i, r, n), p = Math.round(r.left + c[0]), d = Math.round(r.top + c[1]);
return [h, p, d, s, o];
}, Yi = function(t) {
return Ne(t) && t.value === la.AUTO;
}, Ho = function(t) {
return typeof t == "number";
}, _4 = function(t, e, A) {
var r = e[0], n = e[1], i = e[2], s = t[0], o = t[1];
if (!s)
return [0, 0];
if (lt(s) && o && lt(o))
return [Pe(s, A.width), Pe(o, A.height)];
var c = Ho(i);
if (Ne(s) && (s.value === la.CONTAIN || s.value === la.COVER)) {
if (Ho(i)) {
var h = A.width / A.height;
return h < i != (s.value === la.COVER) ? [A.width, A.width / i] : [A.height * i, A.height];
}
return [A.width, A.height];
}
var p = Ho(r), d = Ho(n), w = p || d;
if (Yi(s) && (!o || Yi(o))) {
if (p && d)
return [r, n];
if (!c && !w)
return [A.width, A.height];
if (w && c) {
var g = p ? r : n * i, Q = d ? n : r / i;
return [g, Q];
}
var y = p ? r : A.width, N = d ? n : A.height;
return [y, N];
}
if (c) {
var v = 0, U = 0;
return lt(s) ? v = Pe(s, A.width) : lt(o) && (U = Pe(o, A.height)), Yi(s) ? v = U * i : (!o || Yi(o)) && (U = v / i), [v, U];
}
var K = null, j = null;
if (lt(s) ? K = Pe(s, A.width) : o && lt(o) && (j = Pe(o, A.height)), K !== null && (!o || Yi(o)) && (j = p && d ? K / r * n : A.height), j !== null && Yi(s) && (K = p && d ? j / n * r : A.width), K !== null && j !== null)
return [K, j];
throw new Error("Unable to calculate background-size for element");
}, ta = function(t, e) {
var A = t[e];
return typeof A > "u" ? t[0] : A;
}, T4 = function(t, e, A, r, n) {
var i = e[0], s = e[1], o = A[0], c = A[1];
switch (t) {
case 2:
return [
new WA(Math.round(r.left), Math.round(r.top + s)),
new WA(Math.round(r.left + r.width), Math.round(r.top + s)),
new WA(Math.round(r.left + r.width), Math.round(c + r.top + s)),
new WA(Math.round(r.left), Math.round(c + r.top + s))
];
case 3:
return [
new WA(Math.round(r.left + i), Math.round(r.top)),
new WA(Math.round(r.left + i + o), Math.round(r.top)),
new WA(Math.round(r.left + i + o), Math.round(r.height + r.top)),
new WA(Math.round(r.left + i), Math.round(r.height + r.top))
];
case 1:
return [
new WA(Math.round(r.left + i), Math.round(r.top + s)),
new WA(Math.round(r.left + i + o), Math.round(r.top + s)),
new WA(Math.round(r.left + i + o), Math.round(r.top + s + c)),
new WA(Math.round(r.left + i), Math.round(r.top + s + c))
];
default:
return [
new WA(Math.round(n.left), Math.round(n.top)),
new WA(Math.round(n.left + n.width), Math.round(n.top)),
new WA(Math.round(n.left + n.width), Math.round(n.height + n.top)),
new WA(Math.round(n.left), Math.round(n.height + n.top))
];
}
}, M4 = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", mh = "Hidden Text", P4 = (
/** @class */
function() {
function t(e) {
this._data = {}, this._document = e;
}
return t.prototype.parseMetrics = function(e, A) {
var r = this._document.createElement("div"), n = this._document.createElement("img"), i = this._document.createElement("span"), s = this._document.body;
r.style.visibility = "hidden", r.style.fontFamily = e, r.style.fontSize = A, r.style.margin = "0", r.style.padding = "0", r.style.whiteSpace = "nowrap", s.appendChild(r), n.src = M4, n.width = 1, n.height = 1, n.style.margin = "0", n.style.padding = "0", n.style.verticalAlign = "baseline", i.style.fontFamily = e, i.style.fontSize = A, i.style.margin = "0", i.style.padding = "0", i.appendChild(this._document.createTextNode(mh)), r.appendChild(i), r.appendChild(n);
var o = n.offsetTop - i.offsetTop + 2;
r.removeChild(i), r.appendChild(this._document.createTextNode(mh)), r.style.lineHeight = "normal", n.style.verticalAlign = "super";
var c = n.offsetTop - r.offsetTop + 2;
return s.removeChild(r), { baseline: o, middle: c };
}, t.prototype.getMetrics = function(e, A) {
var r = e + " " + A;
return typeof this._data[r] > "u" && (this._data[r] = this.parseMetrics(e, A)), this._data[r];
}, t;
}()
), qd = (
/** @class */
/* @__PURE__ */ function() {
function t(e, A) {
this.context = e, this.options = A;
}
return t;
}()
), O4 = 1e4, K4 = (
/** @class */
function(t) {
Hr(e, t);
function e(A, r) {
var n = t.call(this, A, r) || this;
return n._activeEffects = [], n.canvas = r.canvas ? r.canvas : document.createElement("canvas"), n.ctx = n.canvas.getContext("2d"), r.canvas || (n.canvas.width = Math.floor(r.width * r.scale), n.canvas.height = Math.floor(r.height * r.scale), n.canvas.style.width = r.width + "px", n.canvas.style.height = r.height + "px"), n.fontMetrics = new P4(document), n.ctx.scale(n.options.scale, n.options.scale), n.ctx.translate(-r.x, -r.y), n.ctx.textBaseline = "bottom", n._activeEffects = [], n.context.logger.debug("Canvas renderer initialized (" + r.width + "x" + r.height + ") with scale " + r.scale), n;
}
return e.prototype.applyEffects = function(A) {
for (var r = this; this._activeEffects.length; )
this.popEffect();
A.forEach(function(n) {
return r.applyEffect(n);
});
}, e.prototype.applyEffect = function(A) {
this.ctx.save(), E4(A) && (this.ctx.globalAlpha = A.opacity), L4(A) && (this.ctx.translate(A.offsetX, A.offsetY), this.ctx.transform(A.matrix[0], A.matrix[1], A.matrix[2], A.matrix[3], A.matrix[4], A.matrix[5]), this.ctx.translate(-A.offsetX, -A.offsetY)), Kd(A) && (this.path(A.path), this.ctx.clip()), this._activeEffects.push(A);
}, e.prototype.popEffect = function() {
this._activeEffects.pop(), this.ctx.restore();
}, e.prototype.renderStack = function(A) {
return _t(this, void 0, void 0, function() {
var r;
return It(this, function(n) {
switch (n.label) {
case 0:
return r = A.element.container.styles, r.isVisible() ? [4, this.renderStackContent(A)] : [3, 2];
case 1:
n.sent(), n.label = 2;
case 2:
return [
2
/*return*/
];
}
});
});
}, e.prototype.renderNode = function(A) {
return _t(this, void 0, void 0, function() {
return It(this, function(r) {
switch (r.label) {
case 0:
if (ft(
A.container.flags,
16
/* DEBUG_RENDER */
))
debugger;
return A.container.styles.isVisible() ? [4, this.renderNodeBackgroundAndBorders(A)] : [3, 3];
case 1:
return r.sent(), [4, this.renderNodeContent(A)];
case 2:
r.sent(), r.label = 3;
case 3:
return [
2
/*return*/
];
}
});
});
}, e.prototype.renderTextWithLetterSpacing = function(A, r, n) {
var i = this;
if (r === 0)
this.ctx.fillText(A.text, A.bounds.left, A.bounds.top + n);
else {
var s = Fu(A.text);
s.reduce(function(o, c) {
return i.ctx.fillText(c, o, A.bounds.top + n), o + i.ctx.measureText(c).width;
}, A.bounds.left);
}
}, e.prototype.createFontStyle = function(A) {
var r = A.fontVariant.filter(function(s) {
return s === "normal" || s === "small-caps";
}).join(""), n = q4(A.fontFamily).join(", "), i = fs(A.fontSize) ? "" + A.fontSize.number + A.fontSize.unit : A.fontSize.number + "px";
return [
[A.fontStyle, r, A.fontWeight, i, n].join(" "),
n,
i
];
}, e.prototype.renderTextNode = function(A, r) {
return _t(this, void 0, void 0, function() {
var n, i, s, o, c, h, p, d, w = this;
return It(this, function(g) {
return n = this.createFontStyle(r), i = n[0], s = n[1], o = n[2], this.ctx.font = i, this.ctx.direction = r.direction === 1 ? "rtl" : "ltr", this.ctx.textAlign = "left", this.ctx.textBaseline = "alphabetic", c = this.fontMetrics.getMetrics(s, o), h = c.baseline, p = c.middle, d = r.paintOrder, A.textBounds.forEach(function(Q) {
d.forEach(function(y) {
switch (y) {
case 0:
w.ctx.fillStyle = pt(r.color), w.renderTextWithLetterSpacing(Q, r.letterSpacing, h);
var N = r.textShadow;
N.length && Q.text.trim().length && (N.slice(0).reverse().forEach(function(v) {
w.ctx.shadowColor = pt(v.color), w.ctx.shadowOffsetX = v.offsetX.number * w.options.scale, w.ctx.shadowOffsetY = v.offsetY.number * w.options.scale, w.ctx.shadowBlur = v.blur.number, w.renderTextWithLetterSpacing(Q, r.letterSpacing, h);
}), w.ctx.shadowColor = "", w.ctx.shadowOffsetX = 0, w.ctx.shadowOffsetY = 0, w.ctx.shadowBlur = 0), r.textDecorationLine.length && (w.ctx.fillStyle = pt(r.textDecorationColor || r.color), r.textDecorationLine.forEach(function(v) {
switch (v) {
case 1:
w.ctx.fillRect(Q.bounds.left, Math.round(Q.bounds.top + h), Q.bounds.width, 1);
break;
case 2:
w.ctx.fillRect(Q.bounds.left, Math.round(Q.bounds.top), Q.bounds.width, 1);
break;
case 3:
w.ctx.fillRect(Q.bounds.left, Math.ceil(Q.bounds.top + p), Q.bounds.width, 1);
break;
}
}));
break;
case 1:
r.webkitTextStrokeWidth && Q.text.trim().length && (w.ctx.strokeStyle = pt(r.webkitTextStrokeColor), w.ctx.lineWidth = r.webkitTextStrokeWidth, w.ctx.lineJoin = window.chrome ? "miter" : "round", w.ctx.strokeText(Q.text, Q.bounds.left, Q.bounds.top + h)), w.ctx.strokeStyle = "", w.ctx.lineWidth = 0, w.ctx.lineJoin = "miter";
break;
}
});
}), [
2
/*return*/
];
});
});
}, e.prototype.renderReplacedElement = function(A, r, n) {
if (n && A.intrinsicWidth > 0 && A.intrinsicHeight > 0) {
var i = Al(A), s = Zo(r);
this.path(s), this.ctx.save(), this.ctx.clip(), this.ctx.drawImage(n, 0, 0, A.intrinsicWidth, A.intrinsicHeight, i.left, i.top, i.width, i.height), this.ctx.restore();
}
}, e.prototype.renderNodeContent = function(A) {
return _t(this, void 0, void 0, function() {
var r, n, i, s, o, c, U, U, h, p, d, w, j, g, Q, q, y, N, v, U, K, j, q;
return It(this, function(V) {
switch (V.label) {
case 0:
this.applyEffects(A.getEffects(
4
/* CONTENT */
)), r = A.container, n = A.curves, i = r.styles, s = 0, o = r.textNodes, V.label = 1;
case 1:
return s < o.length ? (c = o[s], [4, this.renderTextNode(c, i)]) : [3, 4];
case 2:
V.sent(), V.label = 3;
case 3:
return s++, [3, 1];
case 4:
if (!(r instanceof Qd)) return [3, 8];
V.label = 5;
case 5:
return V.trys.push([5, 7, , 8]), [4, this.context.cache.match(r.src)];
case 6:
return U = V.sent(), this.renderReplacedElement(r, n, U), [3, 8];
case 7:
return V.sent(), this.context.logger.error("Error loading image " + r.src), [3, 8];
case 8:
if (r instanceof bd && this.renderReplacedElement(r, n, r.canvas), !(r instanceof Ud)) return [3, 12];
V.label = 9;
case 9:
return V.trys.push([9, 11, , 12]), [4, this.context.cache.match(r.svg)];
case 10:
return U = V.sent(), this.renderReplacedElement(r, n, U), [3, 12];
case 11:
return V.sent(), this.context.logger.error("Error loading svg " + r.svg.substring(0, 255)), [3, 12];
case 12:
return r instanceof Id && r.tree ? (h = new e(this.context, {
scale: this.options.scale,
backgroundColor: r.backgroundColor,
x: 0,
y: 0,
width: r.width,
height: r.height
}), [4, h.render(r.tree)]) : [3, 14];
case 13:
p = V.sent(), r.width && r.height && this.ctx.drawImage(p, 0, 0, r.width, r.height, r.bounds.left, r.bounds.top, r.bounds.width, r.bounds.height), V.label = 14;
case 14:
if (r instanceof Qu && (d = Math.min(r.bounds.width, r.bounds.height), r.type === Xo ? r.checked && (this.ctx.save(), this.path([
new WA(r.bounds.left + d * 0.39363, r.bounds.top + d * 0.79),
new WA(r.bounds.left + d * 0.16, r.bounds.top + d * 0.5549),
new WA(r.bounds.left + d * 0.27347, r.bounds.top + d * 0.44071),
new WA(r.bounds.left + d * 0.39694, r.bounds.top + d * 0.5649),
new WA(r.bounds.left + d * 0.72983, r.bounds.top + d * 0.23),
new WA(r.bounds.left + d * 0.84, r.bounds.top + d * 0.34085),
new WA(r.bounds.left + d * 0.39363, r.bounds.top + d * 0.79)
]), this.ctx.fillStyle = pt(sh), this.ctx.fill(), this.ctx.restore()) : r.type === zo && r.checked && (this.ctx.save(), this.ctx.beginPath(), this.ctx.arc(r.bounds.left + d / 2, r.bounds.top + d / 2, d / 4, 0, Math.PI * 2, !0), this.ctx.fillStyle = pt(sh), this.ctx.fill(), this.ctx.restore())), R4(r) && r.value.length) {
switch (w = this.createFontStyle(i), j = w[0], g = w[1], Q = this.fontMetrics.getMetrics(j, g).baseline, this.ctx.font = j, this.ctx.fillStyle = pt(i.color), this.ctx.textBaseline = "alphabetic", this.ctx.textAlign = V4(r.styles.textAlign), q = Al(r), y = 0, r.styles.textAlign) {
case 1:
y += q.width / 2;
break;
case 2:
y += q.width;
break;
}
N = q.add(y, 0, 0, -q.height / 2 + 1), this.ctx.save(), this.path([
new WA(q.left, q.top),
new WA(q.left + q.width, q.top),
new WA(q.left + q.width, q.top + q.height),
new WA(q.left, q.top + q.height)
]), this.ctx.clip(), this.renderTextWithLetterSpacing(new is(r.value, N), i.letterSpacing, Q), this.ctx.restore(), this.ctx.textBaseline = "alphabetic", this.ctx.textAlign = "left";
}
if (!ft(
r.styles.display,
2048
/* LIST_ITEM */
)) return [3, 20];
if (r.styles.listStyleImage === null) return [3, 19];
if (v = r.styles.listStyleImage, v.type !== 0) return [3, 18];
U = void 0, K = v.url, V.label = 15;
case 15:
return V.trys.push([15, 17, , 18]), [4, this.context.cache.match(K)];
case 16:
return U = V.sent(), this.ctx.drawImage(U, r.bounds.left - (U.width + 10), r.bounds.top), [3, 18];
case 17:
return V.sent(), this.context.logger.error("Error loading list-style-image " + K), [3, 18];
case 18:
return [3, 20];
case 19:
A.listValue && r.styles.listStyleType !== -1 && (j = this.createFontStyle(i)[0], this.ctx.font = j, this.ctx.fillStyle = pt(i.color), this.ctx.textBaseline = "middle", this.ctx.textAlign = "right", q = new hn(r.bounds.left, r.bounds.top + Pe(r.styles.paddingTop, r.bounds.width), r.bounds.width, Vf(i.lineHeight, i.fontSize.number) / 2 + 1), this.renderTextWithLetterSpacing(new is(A.listValue, q), i.letterSpacing, Vf(i.lineHeight, i.fontSize.number) / 2 + 2), this.ctx.textBaseline = "bottom", this.ctx.textAlign = "left"), V.label = 20;
case 20:
return [
2
/*return*/
];
}
});
});
}, e.prototype.renderStackContent = function(A) {
return _t(this, void 0, void 0, function() {
var r, n, v, i, s, v, o, c, v, h, p, v, d, w, v, g, Q, v, y, N, v;
return It(this, function(U) {
switch (U.label) {
case 0:
if (ft(
A.element.container.flags,
16
/* DEBUG_RENDER */
))
debugger;
return [4, this.renderNodeBackgroundAndBorders(A.element)];
case 1:
U.sent(), r = 0, n = A.negativeZIndex, U.label = 2;
case 2:
return r < n.length ? (v = n[r], [4, this.renderStack(v)]) : [3, 5];
case 3:
U.sent(), U.label = 4;
case 4:
return r++, [3, 2];
case 5:
return [4, this.renderNodeContent(A.element)];
case 6:
U.sent(), i = 0, s = A.nonInlineLevel, U.label = 7;
case 7:
return i < s.length ? (v = s[i], [4, this.renderNode(v)]) : [3, 10];
case 8:
U.sent(), U.label = 9;
case 9:
return i++, [3, 7];
case 10:
o = 0, c = A.nonPositionedFloats, U.label = 11;
case 11:
return o < c.length ? (v = c[o], [4, this.renderStack(v)]) : [3, 14];
case 12:
U.sent(), U.label = 13;
case 13:
return o++, [3, 11];
case 14:
h = 0, p = A.nonPositionedInlineLevel, U.label = 15;
case 15:
return h < p.length ? (v = p[h], [4, this.renderStack(v)]) : [3, 18];
case 16:
U.sent(), U.label = 17;
case 17:
return h++, [3, 15];
case 18:
d = 0, w = A.inlineLevel, U.label = 19;
case 19:
return d < w.length ? (v = w[d], [4, this.renderNode(v)]) : [3, 22];
case 20:
U.sent(), U.label = 21;
case 21:
return d++, [3, 19];
case 22:
g = 0, Q = A.zeroOrAutoZIndexOrTransformedOrOpacity, U.label = 23;
case 23:
return g < Q.length ? (v = Q[g], [4, this.renderStack(v)]) : [3, 26];
case 24:
U.sent(), U.label = 25;
case 25:
return g++, [3, 23];
case 26:
y = 0, N = A.positiveZIndex, U.label = 27;
case 27:
return y < N.length ? (v = N[y], [4, this.renderStack(v)]) : [3, 30];
case 28:
U.sent(), U.label = 29;
case 29:
return y++, [3, 27];
case 30:
return [
2
/*return*/
];
}
});
});
}, e.prototype.mask = function(A) {
this.ctx.beginPath(), this.ctx.moveTo(0, 0), this.ctx.lineTo(this.canvas.width, 0), this.ctx.lineTo(this.canvas.width, this.canvas.height), this.ctx.lineTo(0, this.canvas.height), this.ctx.lineTo(0, 0), this.formatPath(A.slice(0).reverse()), this.ctx.closePath();
}, e.prototype.path = function(A) {
this.ctx.beginPath(), this.formatPath(A), this.ctx.closePath();
}, e.prototype.formatPath = function(A) {
var r = this;
A.forEach(function(n, i) {
var s = ur(n) ? n.start : n;
i === 0 ? r.ctx.moveTo(s.x, s.y) : r.ctx.lineTo(s.x, s.y), ur(n) && r.ctx.bezierCurveTo(n.startControl.x, n.startControl.y, n.endControl.x, n.endControl.y, n.end.x, n.end.y);
});
}, e.prototype.renderRepeat = function(A, r, n, i) {
this.path(A), this.ctx.fillStyle = r, this.ctx.translate(n, i), this.ctx.fill(), this.ctx.translate(-n, -i);
}, e.prototype.resizeImage = function(A, r, n) {
var i;
if (A.width === r && A.height === n)
return A;
var s = (i = this.canvas.ownerDocument) !== null && i !== void 0 ? i : document, o = s.createElement("canvas");
o.width = Math.max(1, r), o.height = Math.max(1, n);
var c = o.getContext("2d");
return c.drawImage(A, 0, 0, A.width, A.height, 0, 0, r, n), o;
}, e.prototype.renderBackgroundImage = function(A) {
return _t(this, void 0, void 0, function() {
var r, n, i, s, o, c;
return It(this, function(h) {
switch (h.label) {
case 0:
r = A.styles.backgroundImage.length - 1, n = function(p) {
var d, w, g, tA, oA, iA, _, P, H, Q, tA, oA, iA, _, P, y, N, v, U, K, j, q, V, z, H, G, tA, x, F, _, P, lA, oA, iA, k, W, rA, OA, L, M, R, J;
return It(this, function(eA) {
switch (eA.label) {
case 0:
if (p.type !== 0) return [3, 5];
d = void 0, w = p.url, eA.label = 1;
case 1:
return eA.trys.push([1, 3, , 4]), [4, i.context.cache.match(w)];
case 2:
return d = eA.sent(), [3, 4];
case 3:
return eA.sent(), i.context.logger.error("Error loading background-image " + w), [3, 4];
case 4:
return d && (g = Dc(A, r, [
d.width,
d.height,
d.width / d.height
]), tA = g[0], oA = g[1], iA = g[2], _ = g[3], P = g[4], H = i.ctx.createPattern(i.resizeImage(d, _, P), "repeat"), i.renderRepeat(tA, H, oA, iA)), [3, 6];
case 5:
L5(p) ? (Q = Dc(A, r, [null, null, null]), tA = Q[0], oA = Q[1], iA = Q[2], _ = Q[3], P = Q[4], y = y5(p.angle, _, P), N = y[0], v = y[1], U = y[2], K = y[3], j = y[4], q = document.createElement("canvas"), q.width = _, q.height = P, V = q.getContext("2d"), z = V.createLinearGradient(v, K, U, j), Rf(p.stops, N).forEach(function(uA) {
return z.addColorStop(uA.stop, pt(uA.color));
}), V.fillStyle = z, V.fillRect(0, 0, _, P), _ > 0 && P > 0 && (H = i.ctx.createPattern(q, "repeat"), i.renderRepeat(tA, H, oA, iA))) : E5(p) && (G = Dc(A, r, [
null,
null,
null
]), tA = G[0], x = G[1], F = G[2], _ = G[3], P = G[4], lA = p.position.length === 0 ? [mu] : p.position, oA = Pe(lA[0], _), iA = Pe(lA[lA.length - 1], P), k = F5(p, oA, iA, _, P), W = k[0], rA = k[1], W > 0 && rA > 0 && (OA = i.ctx.createRadialGradient(x + oA, F + iA, 0, x + oA, F + iA, W), Rf(p.stops, W * 2).forEach(function(uA) {
return OA.addColorStop(uA.stop, pt(uA.color));
}), i.path(tA), i.ctx.fillStyle = OA, W !== rA ? (L = A.bounds.left + 0.5 * A.bounds.width, M = A.bounds.top + 0.5 * A.bounds.height, R = rA / W, J = 1 / R, i.ctx.save(), i.ctx.translate(L, M), i.ctx.transform(1, 0, 0, R, 0, 0), i.ctx.translate(-L, -M), i.ctx.fillRect(x, J * (F - M) + M, _, P * J), i.ctx.restore()) : i.ctx.fill())), eA.label = 6;
case 6:
return r--, [
2
/*return*/
];
}
});
}, i = this, s = 0, o = A.styles.backgroundImage.slice(0).reverse(), h.label = 1;
case 1:
return s < o.length ? (c = o[s], [5, n(c)]) : [3, 4];
case 2:
h.sent(), h.label = 3;
case 3:
return s++, [3, 1];
case 4:
return [
2
/*return*/
];
}
});
});
}, e.prototype.renderSolidBorder = function(A, r, n) {
return _t(this, void 0, void 0, function() {
return It(this, function(i) {
return this.path(vh(n, r)), this.ctx.fillStyle = pt(A), this.ctx.fill(), [
2
/*return*/
];
});
});
}, e.prototype.renderDoubleBorder = function(A, r, n, i) {
return _t(this, void 0, void 0, function() {
var s, o;
return It(this, function(c) {
switch (c.label) {
case 0:
return r < 3 ? [4, this.renderSolidBorder(A, n, i)] : [3, 2];
case 1:
return c.sent(), [
2
/*return*/
];
case 2:
return s = S4(i, n), this.path(s), this.ctx.fillStyle = pt(A), this.ctx.fill(), o = H4(i, n), this.path(o), this.ctx.fill(), [
2
/*return*/
];
}
});
});
}, e.prototype.renderNodeBackgroundAndBorders = function(A) {
return _t(this, void 0, void 0, function() {
var r, n, i, s, o, c, h, p, d = this;
return It(this, function(w) {
switch (w.label) {
case 0:
return this.applyEffects(A.getEffects(
2
/* BACKGROUND_BORDERS */
)), r = A.container.styles, n = !On(r.backgroundColor) || r.backgroundImage.length, i = [
{ style: r.borderTopStyle, color: r.borderTopColor, width: r.borderTopWidth },
{ style: r.borderRightStyle, color: r.borderRightColor, width: r.borderRightWidth },
{ style: r.borderBottomStyle, color: r.borderBottomColor, width: r.borderBottomWidth },
{ style: r.borderLeftStyle, color: r.borderLeftColor, width: r.borderLeftWidth }
], s = G4(ta(r.backgroundClip, 0), A.curves), n || r.boxShadow.length ? (this.ctx.save(), this.path(s), this.ctx.clip(), On(r.backgroundColor) || (this.ctx.fillStyle = pt(r.backgroundColor), this.ctx.fill()), [4, this.renderBackgroundImage(A.container)]) : [3, 2];
case 1:
w.sent(), this.ctx.restore(), r.boxShadow.slice(0).reverse().forEach(function(g) {
d.ctx.save();
var Q = $o(A.curves), y = g.inset ? 0 : O4, N = x4(Q, -y + (g.inset ? 1 : -1) * g.spread.number, (g.inset ? 1 : -1) * g.spread.number, g.spread.number * (g.inset ? -2 : 2), g.spread.number * (g.inset ? -2 : 2));
g.inset ? (d.path(Q), d.ctx.clip(), d.mask(N)) : (d.mask(Q), d.ctx.clip(), d.path(N)), d.ctx.shadowOffsetX = g.offsetX.number + y, d.ctx.shadowOffsetY = g.offsetY.number, d.ctx.shadowColor = pt(g.color), d.ctx.shadowBlur = g.blur.number, d.ctx.fillStyle = g.inset ? pt(g.color) : "rgba(0,0,0,1)", d.ctx.fill(), d.ctx.restore();
}), w.label = 2;
case 2:
o = 0, c = 0, h = i, w.label = 3;
case 3:
return c < h.length ? (p = h[c], p.style !== 0 && !On(p.color) && p.width > 0 ? p.style !== 2 ? [3, 5] : [4, this.renderDashedDottedBorder(
p.color,
p.width,
o,
A.curves,
2
/* DASHED */
)] : [3, 11]) : [3, 13];
case 4:
return w.sent(), [3, 11];
case 5:
return p.style !== 3 ? [3, 7] : [4, this.renderDashedDottedBorder(
p.color,
p.width,
o,
A.curves,
3
/* DOTTED */
)];
case 6:
return w.sent(), [3, 11];
case 7:
return p.style !== 4 ? [3, 9] : [4, this.renderDoubleBorder(p.color, p.width, o, A.curves)];
case 8:
return w.sent(), [3, 11];
case 9:
return [4, this.renderSolidBorder(p.color, o, A.curves)];
case 10:
w.sent(), w.label = 11;
case 11:
o++, w.label = 12;
case 12:
return c++, [3, 3];
case 13:
return [
2
/*return*/
];
}
});
});
}, e.prototype.renderDashedDottedBorder = function(A, r, n, i, s) {
return _t(this, void 0, void 0, function() {
var o, c, h, p, d, w, g, Q, y, N, v, U, K, j, q, V, q, V;
return It(this, function(z) {
return this.ctx.save(), o = D4(i, n), c = vh(i, n), s === 2 && (this.path(c), this.ctx.clip()), ur(c[0]) ? (h = c[0].start.x, p = c[0].start.y) : (h = c[0].x, p = c[0].y), ur(c[1]) ? (d = c[1].end.x, w = c[1].end.y) : (d = c[1].x, w = c[1].y), n === 0 || n === 2 ? g = Math.abs(h - d) : g = Math.abs(p - w), this.ctx.beginPath(), s === 3 ? this.formatPath(o) : this.formatPath(c.slice(0, 2)), Q = r < 3 ? r * 3 : r * 2, y = r < 3 ? r * 2 : r, s === 3 && (Q = r, y = r), N = !0, g <= Q * 2 ? N = !1 : g <= Q * 2 + y ? (v = g / (2 * Q + y), Q *= v, y *= v) : (U = Math.floor((g + y) / (Q + y)), K = (g - U * Q) / (U - 1), j = (g - (U + 1) * Q) / U, y = j <= 0 || Math.abs(y - K) < Math.abs(y - j) ? K : j), N && (s === 3 ? this.ctx.setLineDash([0, Q + y]) : this.ctx.setLineDash([Q, y])), s === 3 ? (this.ctx.lineCap = "round", this.ctx.lineWidth = r) : this.ctx.lineWidth = r * 2 + 1.1, this.ctx.strokeStyle = pt(A), this.ctx.stroke(), this.ctx.setLineDash([]), s === 2 && (ur(c[0]) && (q = c[3], V = c[0], this.ctx.beginPath(), this.formatPath([new WA(q.end.x, q.end.y), new WA(V.start.x, V.start.y)]), this.ctx.stroke()), ur(c[1]) && (q = c[1], V = c[2], this.ctx.beginPath(), this.formatPath([new WA(q.end.x, q.end.y), new WA(V.start.x, V.start.y)]), this.ctx.stroke())), this.ctx.restore(), [
2
/*return*/
];
});
});
}, e.prototype.render = function(A) {
return _t(this, void 0, void 0, function() {
var r;
return It(this, function(n) {
switch (n.label) {
case 0:
return this.options.backgroundColor && (this.ctx.fillStyle = pt(this.options.backgroundColor), this.ctx.fillRect(this.options.x, this.options.y, this.options.width, this.options.height)), r = I4(A), [4, this.renderStack(r)];
case 1:
return n.sent(), this.applyEffects([]), [2, this.canvas];
}
});
});
}, e;
}(qd)
), R4 = function(t) {
return t instanceof xd || t instanceof Ed ? !0 : t instanceof Qu && t.type !== zo && t.type !== Xo;
}, G4 = function(t, e) {
switch (t) {
case 0:
return $o(e);
case 2:
return Q4(e);
case 1:
default:
return Zo(e);
}
}, V4 = function(t) {
switch (t) {
case 1:
return "center";
case 2:
return "right";
case 0:
default:
return "left";
}
}, j4 = ["-apple-system", "system-ui"], q4 = function(t) {
return /iPhone OS 15_(0|1)/.test(window.navigator.userAgent) ? t.filter(function(e) {
return j4.indexOf(e) === -1;
}) : t;
}, W4 = (
/** @class */
function(t) {
Hr(e, t);
function e(A, r) {
var n = t.call(this, A, r) || this;
return n.canvas = r.canvas ? r.canvas : document.createElement("canvas"), n.ctx = n.canvas.getContext("2d"), n.options = r, n.canvas.width = Math.floor(r.width * r.scale), n.canvas.height = Math.floor(r.height * r.scale), n.canvas.style.width = r.width + "px", n.canvas.style.height = r.height + "px", n.ctx.scale(n.options.scale, n.options.scale), n.ctx.translate(-r.x, -r.y), n.context.logger.debug("EXPERIMENTAL ForeignObject renderer initialized (" + r.width + "x" + r.height + " at " + r.x + "," + r.y + ") with scale " + r.scale), n;
}
return e.prototype.render = function(A) {
return _t(this, void 0, void 0, function() {
var r, n;
return It(this, function(i) {
switch (i.label) {
case 0:
return r = lu(this.options.width * this.options.scale, this.options.height * this.options.scale, this.options.scale, this.options.scale, A), [4, X4(r)];
case 1:
return n = i.sent(), this.options.backgroundColor && (this.ctx.fillStyle = pt(this.options.backgroundColor), this.ctx.fillRect(0, 0, this.options.width * this.options.scale, this.options.height * this.options.scale)), this.ctx.drawImage(n, -this.options.x * this.options.scale, -this.options.y * this.options.scale), [2, this.canvas];
}
});
});
}, e;
}(qd)
), X4 = function(t) {
return new Promise(function(e, A) {
var r = new Image();
r.onload = function() {
e(r);
}, r.onerror = A, r.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(t));
});
}, z4 = (
/** @class */
function() {
function t(e) {
var A = e.id, r = e.enabled;
this.id = A, this.enabled = r, this.start = Date.now();
}
return t.prototype.debug = function() {
for (var e = [], A = 0; A < arguments.length; A++)
e[A] = arguments[A];
this.enabled && (typeof window < "u" && window.console && typeof console.debug == "function" ? console.debug.apply(console, lo([this.id, this.getTime() + "ms"], e)) : this.info.apply(this, e));
}, t.prototype.getTime = function() {
return Date.now() - this.start;
}, t.prototype.info = function() {
for (var e = [], A = 0; A < arguments.length; A++)
e[A] = arguments[A];
this.enabled && typeof window < "u" && window.console && typeof console.info == "function" && console.info.apply(console, lo([this.id, this.getTime() + "ms"], e));
}, t.prototype.warn = function() {
for (var e = [], A = 0; A < arguments.length; A++)
e[A] = arguments[A];
this.enabled && (typeof window < "u" && window.console && typeof console.warn == "function" ? console.warn.apply(console, lo([this.id, this.getTime() + "ms"], e)) : this.info.apply(this, e));
}, t.prototype.error = function() {
for (var e = [], A = 0; A < arguments.length; A++)
e[A] = arguments[A];
this.enabled && (typeof window < "u" && window.console && typeof console.error == "function" ? console.error.apply(console, lo([this.id, this.getTime() + "ms"], e)) : this.info.apply(this, e));
}, t.instances = {}, t;
}()
), J4 = (
/** @class */
function() {
function t(e, A) {
var r;
this.windowBounds = A, this.instanceName = "#" + t.instanceCount++, this.logger = new z4({ id: this.instanceName, enabled: e.logging }), this.cache = (r = e.cache) !== null && r !== void 0 ? r : new p4(this, e);
}
return t.instanceCount = 1, t;
}()
), Wd = function(t, e) {
return e === void 0 && (e = {}), Y4(t, e);
};
typeof window < "u" && Od.setContext(window);
var Y4 = function(t, e) {
return _t(void 0, void 0, void 0, function() {
var A, r, n, i, s, o, c, h, p, d, w, g, Q, y, N, v, U, K, j, q, z, V, z, H, G, tA, x, F, _, P, lA, oA, iA, k, W, rA, OA, L, M, R;
return It(this, function(J) {
switch (J.label) {
case 0:
if (!t || typeof t != "object")
return [2, Promise.reject("Invalid element provided as first argument")];
if (A = t.ownerDocument, !A)
throw new Error("Element is not attached to a Document");
if (r = A.defaultView, !r)
throw new Error("Document is not attached to a Window");
return n = {
allowTaint: (H = e.allowTaint) !== null && H !== void 0 ? H : !1,
imageTimeout: (G = e.imageTimeout) !== null && G !== void 0 ? G : 15e3,
proxy: e.proxy,
useCORS: (tA = e.useCORS) !== null && tA !== void 0 ? tA : !1
}, i = Xc({ logging: (x = e.logging) !== null && x !== void 0 ? x : !0, cache: e.cache }, n), s = {
windowWidth: (F = e.windowWidth) !== null && F !== void 0 ? F : r.innerWidth,
windowHeight: (_ = e.windowHeight) !== null && _ !== void 0 ? _ : r.innerHeight,
scrollX: (P = e.scrollX) !== null && P !== void 0 ? P : r.pageXOffset,
scrollY: (lA = e.scrollY) !== null && lA !== void 0 ? lA : r.pageYOffset
}, o = new hn(s.scrollX, s.scrollY, s.windowWidth, s.windowHeight), c = new J4(i, o), h = (oA = e.foreignObjectRendering) !== null && oA !== void 0 ? oA : !1, p = {
allowTaint: (iA = e.allowTaint) !== null && iA !== void 0 ? iA : !1,
onclone: e.onclone,
ignoreElements: e.ignoreElements,
inlineImages: h,
copyStyles: h
}, c.logger.debug("Starting document clone with size " + o.width + "x" + o.height + " scrolled to " + -o.left + "," + -o.top), d = new ph(c, t, p), w = d.clonedReferenceElement, w ? [4, d.toIFrame(A, o)] : [2, Promise.reject("Unable to find element in cloned iframe")];
case 1:
return g = J.sent(), Q = bu(w) || Zm(w) ? xB(w.ownerDocument) : nl(c, w), y = Q.width, N = Q.height, v = Q.left, U = Q.top, K = $4(c, w, e.backgroundColor), j = {
canvas: e.canvas,
backgroundColor: K,
scale: (W = (k = e.scale) !== null && k !== void 0 ? k : r.devicePixelRatio) !== null && W !== void 0 ? W : 1,
x: ((rA = e.x) !== null && rA !== void 0 ? rA : 0) + v,
y: ((OA = e.y) !== null && OA !== void 0 ? OA : 0) + U,
width: (L = e.width) !== null && L !== void 0 ? L : Math.ceil(y),
height: (M = e.height) !== null && M !== void 0 ? M : Math.ceil(N)
}, h ? (c.logger.debug("Document cloned, using foreign object rendering"), z = new W4(c, j), [4, z.render(w)]) : [3, 3];
case 2:
return q = J.sent(), [3, 5];
case 3:
return c.logger.debug("Document cloned, element located at " + v + "," + U + " with size " + y + "x" + N + " using computed rendering"), c.logger.debug("Starting DOM parsing"), V = Hd(c, w), K === V.styles.backgroundColor && (V.styles.backgroundColor = fn.TRANSPARENT), c.logger.debug("Starting renderer for element at " + j.x + "," + j.y + " with size " + j.width + "x" + j.height), z = new K4(c, j), [4, z.render(V)];
case 4:
q = J.sent(), J.label = 5;
case 5:
return (!((R = e.removeContainer) !== null && R !== void 0) || R) && (ph.destroy(g) || c.logger.error("Cannot detach cloned iframe as it is not in the DOM anymore")), c.logger.debug("Finished rendering"), [2, q];
}
});
});
}, $4 = function(t, e, A) {
var r = e.ownerDocument, n = r.documentElement ? rs(t, getComputedStyle(r.documentElement).backgroundColor) : fn.TRANSPARENT, i = r.body ? rs(t, getComputedStyle(r.body).backgroundColor) : fn.TRANSPARENT, s = typeof A == "string" ? rs(t, A) : A === null ? fn.TRANSPARENT : 4294967295;
return e === r.documentElement ? On(n) ? On(i) ? s : i : n : s;
};
const Z4 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
default: Wd
}, Symbol.toStringTag, { value: "Module" })), AC = { class: "gantt-body" }, eC = ["title"], tC = {
width: "16",
height: "16",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2.5"
}, rC = {
key: 0,
points: "15,18 9,12 15,6"
}, nC = {
key: 1,
points: "9,18 15,12 9,6"
}, $i = 1160, Do = 320, iC = /* @__PURE__ */ Er({
__name: "GanttChart",
props: {
tasks: { default: () => [] },
milestones: { default: () => [] },
onTaskDoubleClick: { type: Function, default: void 0 },
editComponent: { default: void 0 },
useDefaultDrawer: { type: Boolean, default: !0 },
onTaskDelete: { type: Function, default: void 0 },
onMilestoneSave: { type: Function, default: void 0 },
onMilestoneDelete: { type: Function, default: void 0 },
onTaskUpdate: { type: Function, default: void 0 },
onTaskAdd: { type: Function, default: void 0 },
onMilestoneIconChange: { type: Function, default: void 0 },
toolbarConfig: { default: () => ({}) },
showToolbar: { type: Boolean, default: !0 },
onAddTask: { type: Function, default: void 0 },
onAddMilestone: { type: Function, default: void 0 },
onTodayLocate: { type: Function, default: void 0 },
onExportCsv: { type: Function, default: void 0 },
onExportPdf: { type: Function, default: void 0 },
onLanguageChange: { type: Function, default: void 0 },
onThemeChange: { type: Function, default: void 0 },
onFullscreenChange: { type: Function, default: void 0 },
localeMessages: { default: void 0 }
},
emits: ["taskbar-drag-end", "taskbar-resize-end", "milestone-drag-end"],
setup(t, { emit: e }) {
const A = t, r = e, { showMessage: n } = Ch(), i = KA(320), s = KA(null), o = KA($i), c = KA(Do), h = KA(Do), p = KA($i), d = KA($i), w = (D) => D < c.value ? c.value : D > d.value ? d.value : Math.max(c.value, D), g = KA(!1);
function Q(D) {
if (D.target.closest(".task-list-toggle"))
return;
D.preventDefault(), D.stopPropagation(), g.value = !0;
const BA = D.clientX, sA = i.value, pA = document.querySelector(".task-list-body");
if (!pA) return;
const FA = pA.getBoundingClientRect();
o.value = FA.width, p.value = window.innerWidth * 0.8 - 6, d.value = Math.min(p.value, o.value), window.dispatchEvent(new CustomEvent("splitter-drag-start")), document.body.style.userSelect = "none", document.body.style.webkitUserSelect = "none", document.body.style.cursor = "col-resize";
function UA(QA) {
if (!g.value) return;
QA.preventDefault(), QA.stopPropagation();
const yA = QA.clientX - BA, PA = sA + yA, ZA = w(PA);
i.value = ZA;
}
function SA() {
g.value = !1, window.dispatchEvent(new CustomEvent("splitter-drag-end")), document.body.style.userSelect = "", document.body.style.webkitUserSelect = "", document.body.style.cursor = "", o.value = $i, c.value = Do, p.value = $i, d.value = $i, h.value = Do, window.removeEventListener("mousemove", UA), window.removeEventListener("mouseup", SA);
}
window.addEventListener("mousemove", UA), window.addEventListener("mouseup", SA);
}
const y = KA(!0), N = KA(!1), v = KA(""), U = () => {
N.value || (N.value = !0, y.value ? v.value = "impact-left" : v.value = "impact-right", setTimeout(() => {
y.value = !y.value;
}, 200), setTimeout(() => {
N.value = !1, v.value = "";
}, 400));
}, K = (D) => {
y.value = D.detail;
};
function j(D) {
r("taskbar-drag-end", D.detail);
}
function q(D) {
r("taskbar-resize-end", D.detail);
}
function V(D) {
r("milestone-drag-end", D.detail);
}
jr(() => {
window.addEventListener("taskbar-drag-end", j), window.addEventListener("taskbar-resize-end", q), window.addEventListener("milestone-drag-end", V);
}), Wr(() => {
window.removeEventListener("taskbar-drag-end", j), window.removeEventListener("taskbar-resize-end", q), window.removeEventListener("milestone-drag-end", V);
});
const z = (D) => {
const $ = (BA, sA, pA) => {
for (const FA of BA) {
if (FA.id === sA)
return FA.collapsed = pA, !0;
if (FA.children && FA.children.length > 0 && $(FA.children, sA, pA))
return !0;
}
return !1;
};
A.tasks && $(A.tasks, D.id, D.collapsed ?? !1), H.value++;
}, H = KA(0), G = () => {
const D = [], $ = (BA) => {
BA.forEach((sA) => {
D.push(sA), sA.children && sA.children.length > 0 && $(sA.children);
});
};
A.tasks && $(A.tasks), A.milestones && D.push(...A.milestones), window.dispatchEvent(new CustomEvent("task-list-updated", { detail: D }));
}, tA = () => {
G();
};
$t(
[() => A.tasks, () => A.milestones],
() => {
Lr(() => {
tA();
});
},
{ deep: !0, immediate: !0 }
), jr(() => {
window.addEventListener("toggle-task-list", K), window.addEventListener("fullscreen-toggle", M), window.addEventListener("task-updated", J), window.addEventListener("task-added", uA), window.addEventListener("milestone-icon-changed", dA), window.addEventListener("milestone-deleted", gA), window.addEventListener("milestone-data-changed", MA), window.addEventListener("request-task-list", G), window.addEventListener("resize", wA), Lr(() => {
s.value && typeof s.value.scrollToTodayCenter == "function" && s.value.scrollToTodayCenter();
});
}), Wr(() => {
g.value = !1, window.removeEventListener("toggle-task-list", K), window.removeEventListener("fullscreen-toggle", M), window.removeEventListener("task-updated", J), window.removeEventListener("task-added", uA), window.removeEventListener(
"milestone-icon-changed",
dA
), window.removeEventListener("milestone-deleted", gA), window.removeEventListener("milestone-data-changed", MA), window.removeEventListener("request-task-list", G), window.removeEventListener("resize", wA);
});
const x = KA(!1), { t: F, locale: _ } = hi(), P = Ce(() => F.value.collapseTaskList), lA = Ce(() => F.value.expandTaskList), oA = Ce(() => {
const D = [];
if (A.milestones && A.milestones.length > 0) {
const $ = {
id: -1,
name: F.value.milestoneGroup,
startDate: "",
endDate: "",
type: "milestone-group",
children: A.milestones,
isParent: !0,
collapsed: !1
};
D.push($);
}
return A.tasks && A.tasks.length > 0 && D.push(...A.tasks), D;
}), iA = Ce(() => {
H.value >= 0;
const D = [];
if (A.milestones && A.milestones.length > 0) {
const $ = {
id: -1,
name: F.value.milestoneGroup,
startDate: "",
endDate: "",
type: "milestone-group",
children: A.milestones,
isParent: !0,
collapsed: !1
};
D.push($);
}
if (A.tasks && A.tasks.length > 0) {
const $ = (QA) => {
const yA = [], PA = [];
return QA.forEach((ZA) => {
if (ZA.startDate && yA.push(ZA.startDate), ZA.endDate && PA.push(ZA.endDate), ZA.children && ZA.children.length > 0) {
const ue = $(ZA.children);
yA.push(...ue.starts), PA.push(...ue.ends);
}
}), { starts: yA, ends: PA };
}, BA = (QA) => {
if (!QA.children || QA.children.length === 0)
return {
startDate: QA.startDate || "",
endDate: QA.endDate || ""
};
const { starts: yA, ends: PA } = $(QA.children);
if (yA.length === 0 || PA.length === 0)
return {
startDate: QA.startDate || "",
endDate: QA.endDate || ""
};
const ZA = yA.reduce((YA, ne) => new Date(ne) < new Date(YA) ? ne : YA), ue = PA.reduce((YA, ne) => new Date(ne) > new Date(YA) ? ne : YA);
return { startDate: ZA, endDate: ue };
}, sA = (QA) => QA.map((yA) => {
let PA = { ...yA };
yA.children && yA.children.length > 0 && (PA.children = sA(yA.children));
const ZA = yA.type === "story" || PA.children && PA.children.length > 0;
if (PA.isParent = ZA, ZA && PA.children && PA.children.length > 0) {
const { startDate: ue, endDate: YA } = BA(PA);
PA = {
...PA,
startDate: ue,
endDate: YA
};
}
return PA;
}), pA = (QA, yA = 0) => {
const PA = [];
return QA.forEach((ZA) => {
const ue = {
...ZA,
level: yA
};
if (PA.push(ue), ZA.children && ZA.children.length > 0 && !ZA.collapsed) {
const YA = pA(ZA.children, yA + 1);
PA.push(...YA);
}
}), PA;
}, FA = oA.value.filter((QA) => QA.type !== "milestone-group"), UA = sA(FA), SA = pA(UA);
D.push(...SA);
}
return D;
}), k = Ce(() => {
const D = (QA) => {
let yA = [];
return QA.forEach((PA) => {
yA.push(PA), PA.children && PA.children.length > 0 && (yA = yA.concat(D(PA.children)));
}), yA;
};
let $ = [];
A.tasks && ($ = $.concat(D(A.tasks))), A.milestones && ($ = $.concat(A.milestones));
const BA = $.map((QA) => QA.startDate).filter(Boolean).map((QA) => new Date(QA)), sA = $.map((QA) => QA.endDate).filter(Boolean).map((QA) => new Date(QA));
if (BA.length === 0 || sA.length === 0) {
const QA = /* @__PURE__ */ new Date(), yA = new Date(QA.getFullYear(), QA.getMonth() - 6, 1), PA = new Date(QA.getFullYear(), QA.getMonth() + 6 + 1, 0);
return { min: yA, max: PA };
}
const pA = new Date(Math.min(...BA.map((QA) => QA.getTime()))), FA = new Date(Math.max(...sA.map((QA) => QA.getTime()))), UA = new Date(pA.getFullYear(), pA.getMonth() - 6, 1), SA = new Date(FA.getFullYear(), FA.getMonth() + 6 + 1, 0);
return { min: UA, max: SA };
}), W = () => {
if (A.onExportCsv && typeof A.onExportCsv == "function") {
A.onExportCsv() === !1 && rA();
return;
}
rA();
}, rA = () => {
try {
const D = [];
A.tasks && A.tasks.length > 0 && D.push(...A.tasks), A.milestones && A.milestones.length > 0 && D.push(...A.milestones);
const sA = "\uFEFF" + OA(D), pA = new Blob([sA], {
type: "text/csv;charset=utf-8;"
}), FA = document.createElement("a"), UA = URL.createObjectURL(pA), QA = `gantt-tasks-${(/* @__PURE__ */ new Date()).toISOString().split("T")[0]}.csv`;
FA.setAttribute("href", UA), FA.setAttribute("download", QA), FA.style.visibility = "hidden", document.body.appendChild(FA), FA.click(), document.body.removeChild(FA), URL.revokeObjectURL(UA);
} catch (D) {
console.error("CSV导出失败:", D), n("CSV导出失败", "error", { closable: !1 });
}
}, OA = (D) => {
const $ = F.value.csvHeaders, BA = [
$.id,
$.taskName,
$.predecessor,
$.assignee,
$.startDate,
$.endDate,
$.estimatedHours,
$.actualHours,
$.progress,
$.type,
$.description
], sA = (SA) => {
if (SA == null)
return "";
const QA = String(SA);
return QA.includes(",") || QA.includes('"') || QA.includes(`
`) || QA.includes("\r") ? `"${QA.replace(/"/g, '""')}"` : QA;
}, pA = (SA) => {
const QA = [];
return SA.forEach((yA) => {
QA.push({
id: yA.id,
name: yA.name || "",
predecessor: yA.predecessor || "",
assignee: yA.assignee || "",
startDate: yA.startDate || "",
endDate: yA.endDate || "",
estimatedHours: yA.estimatedHours || "",
actualHours: yA.actualHours || "",
progress: yA.progress !== void 0 ? `${yA.progress}%` : "",
type: yA.type || "",
description: yA.description || ""
}), yA.children && yA.children.length > 0 && QA.push(...pA(yA.children));
}), QA;
}, FA = pA(D);
return [
// 头部行 - 也需要进行转义处理
BA.map((SA) => sA(SA)).join(","),
// 数据行
...FA.map((SA) => [
sA(SA.id),
sA(SA.name),
sA(SA.predecessor),
sA(SA.assignee),
sA(SA.startDate),
sA(SA.endDate),
sA(SA.estimatedHours),
sA(SA.actualHours),
sA(SA.progress),
sA(SA.type),
sA(SA.description)
].join(","))
].join(`
`);
}, L = async () => {
try {
const D = F.value.pdfExportLoading, $ = F.value.pdfExportTitle, BA = F.value.pdfExportDate, sA = document.createElement("div");
sA.innerHTML = `
<div style="position: fixed; top: 0; left: 0; width: 100%; height: 100%;
background: rgba(0,0,0,0.5); display: flex; align-items: center;
justify-content: center; z-index: 10000; color: white; font-size: 16px;">
${D}
</div>
`, document.body.appendChild(sA);
const pA = document.querySelector(".gantt-body");
if (!pA)
throw new Error("找不到甘特图元素");
const FA = {
overflow: pA.style.overflow,
height: pA.style.height
};
pA.style.overflow = "visible", pA.style.height = "auto";
const UA = await Wd(pA, {
allowTaint: !0,
useCORS: !0,
scale: 2,
// 提高清晰度
width: pA.scrollWidth,
height: pA.scrollHeight,
backgroundColor: "#ffffff"
});
pA.style.overflow = FA.overflow, pA.style.height = FA.height;
const SA = UA.toDataURL("image/png"), QA = new ae({
orientation: "landscape",
// 横向布局更适合甘特图
unit: "mm",
format: "a4"
}), yA = QA.internal.pageSize.getWidth(), PA = QA.internal.pageSize.getHeight(), ZA = UA.width, ue = UA.height, YA = Math.min(yA / ZA, PA / ue), ne = ZA * YA, VA = ue * YA, Ve = (yA - ne) / 2, mA = (PA - VA) / 2;
QA.setFontSize(16), QA.text($, yA / 2, 15, { align: "center" }), QA.setFontSize(10);
const TA = (/* @__PURE__ */ new Date()).toLocaleDateString(_.value);
if (QA.text(`${BA}: ${TA}`, yA - 10, 10, { align: "right" }), QA.addImage(SA, "PNG", Ve, mA + 10, ne, VA - 15), VA > PA - 30) {
const Ae = Math.ceil(VA / (PA - 30));
for (let me = 1; me < Ae; me++) {
QA.addPage();
const se = -me * (PA - 30);
QA.addImage(SA, "PNG", Ve, mA + 10 + se, ne, VA - 15);
}
}
const IA = `gantt-chart-${(/* @__PURE__ */ new Date()).toISOString().split("T")[0]}.pdf`;
QA.save(IA), sA && sA.parentNode && sA.parentNode.removeChild(sA);
} catch (D) {
const $ = document.querySelector('[style*="position: fixed"]');
$ && $.parentNode && $.parentNode.removeChild($), console.error("PDF导出失败:", D), alert("PDF导出失败");
}
}, M = (D) => {
x.value = D.detail, A.onFullscreenChange && typeof A.onFullscreenChange == "function" && A.onFullscreenChange(x.value);
}, R = (D) => {
A.onMilestoneSave && typeof A.onMilestoneSave == "function" && A.onMilestoneSave(D);
}, J = (D) => {
const $ = D.detail;
if ($.type === "task" && $.parentId) {
const BA = eA($.parentId, $);
A.onTaskUpdate && typeof A.onTaskUpdate == "function" && A.onTaskUpdate($), BA && A.onTaskUpdate && typeof A.onTaskUpdate == "function" && A.onTaskUpdate(BA);
} else A.onTaskUpdate && typeof A.onTaskUpdate == "function" && A.onTaskUpdate($);
H.value++;
}, eA = (D, $) => {
const BA = [...A.tasks || []], sA = [], pA = (yA) => {
yA.forEach((PA) => {
sA.push(PA), PA.children && PA.children.length > 0 && pA(PA.children);
});
};
pA(BA);
const FA = sA.find((yA) => yA.id === D && yA.type === "story");
if (!FA) return null;
let UA = sA.filter((yA) => yA.parentId === D && yA.type === "task");
if (UA.length === 0) return null;
$ && $.type === "task" && $.parentId === D && (UA = UA.map((yA) => yA.id === $.id ? $ : yA));
const SA = UA.reduce((yA, PA) => yA + (PA.progress || 0), 0), QA = Math.round(SA / UA.length);
return FA.progress !== QA ? { ...FA, progress: QA } : null;
}, uA = (D) => {
const $ = D.detail;
A.onTaskAdd && typeof A.onTaskAdd == "function" && A.onTaskAdd($), H.value++;
}, dA = (D) => {
const { milestoneId: $, icon: BA } = D.detail;
A.onMilestoneIconChange && typeof A.onMilestoneIconChange == "function" && A.onMilestoneIconChange($, BA);
}, gA = (D) => {
const { milestoneId: $ } = D.detail;
A.onMilestoneDelete && typeof A.onMilestoneDelete == "function" && A.onMilestoneDelete($), H.value++;
}, MA = () => {
H.value++, Lr(() => {
});
};
jr(() => {
Lr(() => {
s.value && typeof s.value.scrollToTodayCenter == "function" && s.value.scrollToTodayCenter();
});
});
const NA = () => {
if (A.onTodayLocate && typeof A.onTodayLocate == "function") {
A.onTodayLocate();
return;
}
if (s.value && typeof s.value.scrollToTodayCenter == "function") {
s.value.scrollToTodayCenter();
return;
}
ee();
}, RA = () => {
if (A.onAddMilestone && typeof A.onAddMilestone == "function") {
A.onAddMilestone();
return;
}
GA();
}, GA = () => {
window.dispatchEvent(new CustomEvent("add-milestone"));
}, ee = () => {
if (s.value && typeof s.value.scrollToToday == "function") {
s.value.scrollToToday();
return;
}
const D = /* @__PURE__ */ new Date(), $ = D.getMonth(), BA = D.getDate();
let sA = 0;
for (let yA = 0; yA < $; yA++)
sA += new Date(D.getFullYear(), yA + 1, 0).getDate();
sA += BA;
const pA = document.querySelector(".gantt-panel-right"), FA = pA == null ? void 0 : pA.clientWidth, UA = FA ? FA / 2 : 200, SA = (sA - 1) * 30 - UA, QA = document.querySelector(".timeline");
if (QA) {
QA.scrollLeft = Math.max(0, SA);
const yA = QA.querySelector(".day-column.today");
yA && (yA.classList.add("today-highlight"), setTimeout(() => {
yA.classList.remove("today-highlight");
}, 2e3));
}
}, wA = () => {
const D = w(i.value);
D !== i.value && (i.value = D);
};
return A.localeMessages && Zu(_.value, A.localeMessages), $t(
() => A.localeMessages,
(D) => {
D && Zu(_.value, D);
},
{ deep: !0 }
), (D, $) => (xA(), DA("div", {
class: Ke(["gantt-root", { "gantt-fullscreen": x.value, "splitter-dragging": g.value }])
}, [
A.showToolbar ? (xA(), li(S2, {
key: 0,
config: A.toolbarConfig,
"on-add-task": A.onAddTask,
"on-add-milestone": RA,
"on-today-locate": NA,
"on-export-csv": W,
"on-export-pdf": L,
"on-language-change": A.onLanguageChange,
"on-theme-change": A.onThemeChange,
"on-fullscreen-change": A.onFullscreenChange
}, null, 8, ["config", "on-add-task", "on-language-change", "on-theme-change", "on-fullscreen-change"])) : he("", !0),
X("div", AC, [
y.value ? (xA(), DA("div", {
key: 0,
class: "gantt-panel gantt-panel-left",
style: Tt({ width: i.value + "px" })
}, [
un(v1, {
tasks: oA.value,
"on-task-double-click": A.onTaskDoubleClick,
"edit-component": A.editComponent,
"use-default-drawer": A.useDefaultDrawer,
onTaskCollapseChange: z
}, null, 8, ["tasks", "on-task-double-click", "edit-component", "use-default-drawer"])
], 4)) : he("", !0),
X("div", {
class: "gantt-splitter",
onMousedown: Q
}, [
X("div", {
class: Ke(["task-list-toggle", {
collapsed: !y.value,
[v.value]: N.value
}]),
title: y.value ? P.value : lA.value,
onClick: Kn(U, ["stop"])
}, [
(xA(), DA("svg", tC, [
y.value ? (xA(), DA("polyline", rC)) : (xA(), DA("polyline", nC))
]))
], 10, eC)
], 32),
X("div", {
class: Ke(["gantt-panel gantt-panel-right", { "full-width": !y.value }])
}, [
$[0] || ($[0] = X("div", { class: "timeline-fade-overlay timeline-fade-left" }, null, -1)),
$[1] || ($[1] = X("div", { class: "timeline-fade-overlay timeline-fade-right" }, null, -1)),
un(Zp, {
ref_key: "timelineRef",
ref: s,
tasks: iA.value,
milestones: A.milestones,
"start-date": k.value.min,
"end-date": k.value.max,
"on-task-double-click": A.onTaskDoubleClick,
"edit-component": A.editComponent,
"use-default-drawer": A.useDefaultDrawer,
"on-task-delete": A.onTaskDelete,
"on-milestone-save": R
}, null, 8, ["tasks", "milestones", "start-date", "end-date", "on-task-double-click", "edit-component", "use-default-drawer", "on-task-delete"])
], 2)
])
], 2));
}
}), aC = /* @__PURE__ */ xr(iC, [["__scopeId", "data-v-9fc7d7d0"]]), sC = (t) => {
t.component("GanttChart", aC);
}, lC = {
install: sC
};
export {
aC as G,
N1 as M,
v1 as T,
Se as _,
lC as a,
Zp as b,
Q1 as c,
cp as d,
Gp as e,
s1 as f,
sC as i,
Ch as u
};