\ No newline at end of file
diff --git a/portal-ui/build/scripts/pdf.worker.min.js b/portal-ui/build/scripts/pdf.worker.min.js
new file mode 100644
index 0000000000..519195050b
--- /dev/null
+++ b/portal-ui/build/scripts/pdf.worker.min.js
@@ -0,0 +1,61779 @@
+/**
+ * @licstart The following is the entire license notice for the
+ * JavaScript code in this page
+ *
+ * Copyright 2023 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @licend The above is the entire license notice for the
+ * JavaScript code in this page
+ */
+!(function webpackUniversalModuleDefinition(e, t) {
+ "object" == typeof exports && "object" == typeof module
+ ? (module.exports = e.pdfjsWorker = t())
+ : "function" == typeof define && define.amd
+ ? define("pdfjs-dist/build/pdf.worker", [], () => (e.pdfjsWorker = t()))
+ : "object" == typeof exports
+ ? (exports["pdfjs-dist/build/pdf.worker"] = e.pdfjsWorker = t())
+ : (e["pdfjs-dist/build/pdf.worker"] = e.pdfjsWorker = t());
+})(globalThis, () =>
+ (() => {
+ "use strict";
+ var e = [
+ ,
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.WorkerTask = t.WorkerMessageHandler = void 0;
+ var r = a(2),
+ n = a(3),
+ i = a(4),
+ s = a(6),
+ o = a(10),
+ c = a(68),
+ l = a(73),
+ h = a(104),
+ u = a(105),
+ d = a(72);
+ class WorkerTask {
+ constructor(e) {
+ this.name = e;
+ this.terminated = !1;
+ this._capability = new r.PromiseCapability();
+ }
+ get finished() {
+ return this._capability.promise;
+ }
+ finish() {
+ this._capability.resolve();
+ }
+ terminate() {
+ this.terminated = !0;
+ }
+ ensureNotTerminated() {
+ if (this.terminated)
+ throw new Error("Worker task was terminated");
+ }
+ }
+ t.WorkerTask = WorkerTask;
+ class WorkerMessageHandler {
+ static setup(e, t) {
+ let a = !1;
+ e.on("test", function (t) {
+ if (!a) {
+ a = !0;
+ e.send("test", t instanceof Uint8Array);
+ }
+ });
+ e.on("configure", function (e) {
+ (0, r.setVerbosityLevel)(e.verbosity);
+ });
+ e.on("GetDocRequest", function (e) {
+ return WorkerMessageHandler.createDocumentHandler(e, t);
+ });
+ }
+ static createDocumentHandler(e, t) {
+ let a,
+ f = !1,
+ g = null;
+ const p = new Set(),
+ m = (0, r.getVerbosityLevel)(),
+ { docId: b, apiVersion: y } = e,
+ w = "3.11.174";
+ if (y !== w)
+ throw new Error(
+ `The API version "${y}" does not match the Worker version "${w}".`,
+ );
+ const S = [];
+ for (const e in []) S.push(e);
+ if (S.length)
+ throw new Error(
+ "The `Array.prototype` contains unexpected enumerable properties: " +
+ S.join(", ") +
+ "; thus breaking e.g. `for...in` iteration of `Array`s.",
+ );
+ const x = b + "_worker";
+ let C = new h.MessageHandler(x, b, t);
+ function ensureNotTerminated() {
+ if (f) throw new Error("Worker was terminated");
+ }
+ function startWorkerTask(e) {
+ p.add(e);
+ }
+ function finishWorkerTask(e) {
+ e.finish();
+ p.delete(e);
+ }
+ async function loadDocument(e) {
+ await a.ensureDoc("checkHeader");
+ await a.ensureDoc("parseStartXRef");
+ await a.ensureDoc("parse", [e]);
+ await a.ensureDoc("checkFirstPage", [e]);
+ await a.ensureDoc("checkLastPage", [e]);
+ const t = await a.ensureDoc("isPureXfa");
+ if (t) {
+ const e = new WorkerTask("loadXfaFonts");
+ startWorkerTask(e);
+ await Promise.all([
+ a
+ .loadXfaFonts(C, e)
+ .catch((e) => {})
+ .then(() => finishWorkerTask(e)),
+ a.loadXfaImages(),
+ ]);
+ }
+ const [r, n] = await Promise.all([
+ a.ensureDoc("numPages"),
+ a.ensureDoc("fingerprints"),
+ ]);
+ return {
+ numPages: r,
+ fingerprints: n,
+ htmlForXfa: t ? await a.ensureDoc("htmlForXfa") : null,
+ };
+ }
+ function getPdfManager({
+ data: e,
+ password: t,
+ disableAutoFetch: a,
+ rangeChunkSize: i,
+ length: o,
+ docBaseUrl: c,
+ enableXfa: l,
+ evaluatorOptions: h,
+ }) {
+ const d = {
+ source: null,
+ disableAutoFetch: a,
+ docBaseUrl: c,
+ docId: b,
+ enableXfa: l,
+ evaluatorOptions: h,
+ handler: C,
+ length: o,
+ password: t,
+ rangeChunkSize: i,
+ },
+ f = new r.PromiseCapability();
+ let p;
+ if (e) {
+ try {
+ d.source = e;
+ p = new s.LocalPdfManager(d);
+ f.resolve(p);
+ } catch (e) {
+ f.reject(e);
+ }
+ return f.promise;
+ }
+ let m,
+ y = [];
+ try {
+ m = new u.PDFWorkerStream(C);
+ } catch (e) {
+ f.reject(e);
+ return f.promise;
+ }
+ const w = m.getFullReader();
+ w.headersReady
+ .then(function () {
+ if (w.isRangeSupported) {
+ d.source = m;
+ d.length = w.contentLength;
+ d.disableAutoFetch ||= w.isStreamingSupported;
+ p = new s.NetworkPdfManager(d);
+ for (const e of y) p.sendProgressiveData(e);
+ y = [];
+ f.resolve(p);
+ g = null;
+ }
+ })
+ .catch(function (e) {
+ f.reject(e);
+ g = null;
+ });
+ let S = 0;
+ new Promise(function (e, t) {
+ const readChunk = function ({ value: e, done: a }) {
+ try {
+ ensureNotTerminated();
+ if (a) {
+ p ||
+ (function () {
+ const e = (0, n.arrayBuffersToBytes)(y);
+ o &&
+ e.length !== o &&
+ (0, r.warn)(
+ "reported HTTP length is different from actual",
+ );
+ try {
+ d.source = e;
+ p = new s.LocalPdfManager(d);
+ f.resolve(p);
+ } catch (e) {
+ f.reject(e);
+ }
+ y = [];
+ })();
+ g = null;
+ return;
+ }
+ S += e.byteLength;
+ w.isStreamingSupported ||
+ C.send("DocProgress", {
+ loaded: S,
+ total: Math.max(S, w.contentLength || 0),
+ });
+ p ? p.sendProgressiveData(e) : y.push(e);
+ w.read().then(readChunk, t);
+ } catch (e) {
+ t(e);
+ }
+ };
+ w.read().then(readChunk, t);
+ }).catch(function (e) {
+ f.reject(e);
+ g = null;
+ });
+ g = function (e) {
+ m.cancelAllRequests(e);
+ };
+ return f.promise;
+ }
+ C.on("GetPage", function (e) {
+ return a.getPage(e.pageIndex).then(function (e) {
+ return Promise.all([
+ a.ensure(e, "rotate"),
+ a.ensure(e, "ref"),
+ a.ensure(e, "userUnit"),
+ a.ensure(e, "view"),
+ ]).then(function ([e, t, a, r]) {
+ return { rotate: e, ref: t, userUnit: a, view: r };
+ });
+ });
+ });
+ C.on("GetPageIndex", function (e) {
+ const t = i.Ref.get(e.num, e.gen);
+ return a.ensureCatalog("getPageIndex", [t]);
+ });
+ C.on("GetDestinations", function (e) {
+ return a.ensureCatalog("destinations");
+ });
+ C.on("GetDestination", function (e) {
+ return a.ensureCatalog("getDestination", [e.id]);
+ });
+ C.on("GetPageLabels", function (e) {
+ return a.ensureCatalog("pageLabels");
+ });
+ C.on("GetPageLayout", function (e) {
+ return a.ensureCatalog("pageLayout");
+ });
+ C.on("GetPageMode", function (e) {
+ return a.ensureCatalog("pageMode");
+ });
+ C.on("GetViewerPreferences", function (e) {
+ return a.ensureCatalog("viewerPreferences");
+ });
+ C.on("GetOpenAction", function (e) {
+ return a.ensureCatalog("openAction");
+ });
+ C.on("GetAttachments", function (e) {
+ return a.ensureCatalog("attachments");
+ });
+ C.on("GetDocJSActions", function (e) {
+ return a.ensureCatalog("jsActions");
+ });
+ C.on("GetPageJSActions", function ({ pageIndex: e }) {
+ return a.getPage(e).then(function (e) {
+ return a.ensure(e, "jsActions");
+ });
+ });
+ C.on("GetOutline", function (e) {
+ return a.ensureCatalog("documentOutline");
+ });
+ C.on("GetOptionalContentConfig", function (e) {
+ return a.ensureCatalog("optionalContentConfig");
+ });
+ C.on("GetPermissions", function (e) {
+ return a.ensureCatalog("permissions");
+ });
+ C.on("GetMetadata", function (e) {
+ return Promise.all([
+ a.ensureDoc("documentInfo"),
+ a.ensureCatalog("metadata"),
+ ]);
+ });
+ C.on("GetMarkInfo", function (e) {
+ return a.ensureCatalog("markInfo");
+ });
+ C.on("GetData", function (e) {
+ return a.requestLoadedStream().then(function (e) {
+ return e.bytes;
+ });
+ });
+ C.on("GetAnnotations", function ({ pageIndex: e, intent: t }) {
+ return a.getPage(e).then(function (a) {
+ const r = new WorkerTask(`GetAnnotations: page ${e}`);
+ startWorkerTask(r);
+ return a.getAnnotationsData(C, r, t).then(
+ (e) => {
+ finishWorkerTask(r);
+ return e;
+ },
+ (e) => {
+ finishWorkerTask(r);
+ throw e;
+ },
+ );
+ });
+ });
+ C.on("GetFieldObjects", function (e) {
+ return a.ensureDoc("fieldObjects");
+ });
+ C.on("HasJSActions", function (e) {
+ return a.ensureDoc("hasJSActions");
+ });
+ C.on("GetCalculationOrderIds", function (e) {
+ return a.ensureDoc("calculationOrderIds");
+ });
+ C.on(
+ "SaveDocument",
+ async function ({
+ isPureXfa: e,
+ numPages: t,
+ annotationStorage: s,
+ filename: c,
+ }) {
+ const h = [
+ a.requestLoadedStream(),
+ a.ensureCatalog("acroForm"),
+ a.ensureCatalog("acroFormRef"),
+ a.ensureDoc("startXRef"),
+ a.ensureDoc("xref"),
+ a.ensureDoc("linearization"),
+ a.ensureCatalog("structTreeRoot"),
+ ],
+ u = [],
+ f = e ? null : (0, n.getNewAnnotationsMap)(s),
+ [g, p, m, b, y, w, S] = await Promise.all(h),
+ x = y.trailer.getRaw("Root") || null;
+ let k;
+ if (f) {
+ S
+ ? (await S.canUpdateStructTree({
+ pdfManager: a,
+ newAnnotationsByPage: f,
+ })) && (k = S)
+ : (await d.StructTreeRoot.canCreateStructureTree({
+ catalogRef: x,
+ pdfManager: a,
+ newAnnotationsByPage: f,
+ })) && (k = null);
+ const e = o.AnnotationFactory.generateImages(
+ s.values(),
+ y,
+ a.evaluatorOptions.isOffscreenCanvasSupported,
+ ),
+ t = void 0 === k ? u : [];
+ for (const [r, n] of f)
+ t.push(
+ a.getPage(r).then((t) => {
+ const a = new WorkerTask(`Save (editor): page ${r}`);
+ return t
+ .saveNewAnnotations(C, a, n, e)
+ .finally(function () {
+ finishWorkerTask(a);
+ });
+ }),
+ );
+ null === k
+ ? u.push(
+ Promise.all(t).then(async (e) => {
+ await d.StructTreeRoot.createStructureTree({
+ newAnnotationsByPage: f,
+ xref: y,
+ catalogRef: x,
+ pdfManager: a,
+ newRefs: e,
+ });
+ return e;
+ }),
+ )
+ : k &&
+ u.push(
+ Promise.all(t).then(async (e) => {
+ await k.updateStructureTree({
+ newAnnotationsByPage: f,
+ pdfManager: a,
+ newRefs: e,
+ });
+ return e;
+ }),
+ );
+ }
+ if (e) u.push(a.serializeXfaData(s));
+ else
+ for (let e = 0; e < t; e++)
+ u.push(
+ a.getPage(e).then(function (t) {
+ const a = new WorkerTask(`Save: page ${e}`);
+ return t.save(C, a, s).finally(function () {
+ finishWorkerTask(a);
+ });
+ }),
+ );
+ const v = await Promise.all(u);
+ let F = [],
+ O = null;
+ if (e) {
+ O = v[0];
+ if (!O) return g.bytes;
+ } else {
+ F = v.flat(2);
+ if (0 === F.length) return g.bytes;
+ }
+ const T =
+ m &&
+ p instanceof i.Dict &&
+ F.some((e) => e.needAppearances),
+ M = (p instanceof i.Dict && p.get("XFA")) || null;
+ let D = null,
+ E = !1;
+ if (Array.isArray(M)) {
+ for (let e = 0, t = M.length; e < t; e += 2)
+ if ("datasets" === M[e]) {
+ D = M[e + 1];
+ E = !0;
+ }
+ null === D && (D = y.getNewTemporaryRef());
+ } else M && (0, r.warn)("Unsupported XFA type.");
+ let N = Object.create(null);
+ if (y.trailer) {
+ const e = Object.create(null),
+ t = y.trailer.get("Info") || null;
+ t instanceof i.Dict &&
+ t.forEach((t, a) => {
+ "string" == typeof a &&
+ (e[t] = (0, r.stringToPDFString)(a));
+ });
+ N = {
+ rootRef: x,
+ encryptRef: y.trailer.getRaw("Encrypt") || null,
+ newRef: y.getNewTemporaryRef(),
+ infoRef: y.trailer.getRaw("Info") || null,
+ info: e,
+ fileIds: y.trailer.get("ID") || null,
+ startXRef: w ? b : y.lastXRefStreamPos ?? b,
+ filename: c,
+ };
+ }
+ return (0, l.incrementalUpdate)({
+ originalData: g.bytes,
+ xrefInfo: N,
+ newRefs: F,
+ xref: y,
+ hasXfa: !!M,
+ xfaDatasetsRef: D,
+ hasXfaDatasetsEntry: E,
+ needAppearances: T,
+ acroFormRef: m,
+ acroForm: p,
+ xfaData: O,
+ }).finally(() => {
+ y.resetNewTemporaryRef();
+ });
+ },
+ );
+ C.on("GetOperatorList", function (e, t) {
+ const n = e.pageIndex;
+ a.getPage(n).then(function (a) {
+ const i = new WorkerTask(`GetOperatorList: page ${n}`);
+ startWorkerTask(i);
+ const s = m >= r.VerbosityLevel.INFOS ? Date.now() : 0;
+ a.getOperatorList({
+ handler: C,
+ sink: t,
+ task: i,
+ intent: e.intent,
+ cacheKey: e.cacheKey,
+ annotationStorage: e.annotationStorage,
+ }).then(
+ function (e) {
+ finishWorkerTask(i);
+ s &&
+ (0, r.info)(
+ `page=${n + 1} - getOperatorList: time=${
+ Date.now() - s
+ }ms, len=${e.length}`,
+ );
+ t.close();
+ },
+ function (e) {
+ finishWorkerTask(i);
+ i.terminated || t.error(e);
+ },
+ );
+ });
+ });
+ C.on("GetTextContent", function (e, t) {
+ const {
+ pageIndex: n,
+ includeMarkedContent: i,
+ disableNormalization: s,
+ } = e;
+ a.getPage(n).then(function (e) {
+ const a = new WorkerTask("GetTextContent: page " + n);
+ startWorkerTask(a);
+ const o = m >= r.VerbosityLevel.INFOS ? Date.now() : 0;
+ e.extractTextContent({
+ handler: C,
+ task: a,
+ sink: t,
+ includeMarkedContent: i,
+ disableNormalization: s,
+ }).then(
+ function () {
+ finishWorkerTask(a);
+ o &&
+ (0, r.info)(
+ `page=${n + 1} - getTextContent: time=` +
+ (Date.now() - o) +
+ "ms",
+ );
+ t.close();
+ },
+ function (e) {
+ finishWorkerTask(a);
+ a.terminated || t.error(e);
+ },
+ );
+ });
+ });
+ C.on("GetStructTree", function (e) {
+ return a.getPage(e.pageIndex).then(function (e) {
+ return a.ensure(e, "getStructTree");
+ });
+ });
+ C.on("FontFallback", function (e) {
+ return a.fontFallback(e.id, C);
+ });
+ C.on("Cleanup", function (e) {
+ return a.cleanup(!0);
+ });
+ C.on("Terminate", function (e) {
+ f = !0;
+ const t = [];
+ if (a) {
+ a.terminate(new r.AbortException("Worker was terminated."));
+ const e = a.cleanup();
+ t.push(e);
+ a = null;
+ } else (0, c.clearGlobalCaches)();
+ g && g(new r.AbortException("Worker was terminated."));
+ for (const e of p) {
+ t.push(e.finished);
+ e.terminate();
+ }
+ return Promise.all(t).then(function () {
+ C.destroy();
+ C = null;
+ });
+ });
+ C.on("Ready", function (t) {
+ !(function setupDoc(e) {
+ function onSuccess(e) {
+ ensureNotTerminated();
+ C.send("GetDoc", { pdfInfo: e });
+ }
+ function onFailure(e) {
+ ensureNotTerminated();
+ if (e instanceof r.PasswordException) {
+ const t = new WorkerTask(
+ `PasswordException: response ${e.code}`,
+ );
+ startWorkerTask(t);
+ C.sendWithPromise("PasswordRequest", e)
+ .then(function ({ password: e }) {
+ finishWorkerTask(t);
+ a.updatePassword(e);
+ pdfManagerReady();
+ })
+ .catch(function () {
+ finishWorkerTask(t);
+ C.send("DocException", e);
+ });
+ } else
+ e instanceof r.InvalidPDFException ||
+ e instanceof r.MissingPDFException ||
+ e instanceof r.UnexpectedResponseException ||
+ e instanceof r.UnknownErrorException
+ ? C.send("DocException", e)
+ : C.send(
+ "DocException",
+ new r.UnknownErrorException(
+ e.message,
+ e.toString(),
+ ),
+ );
+ }
+ function pdfManagerReady() {
+ ensureNotTerminated();
+ loadDocument(!1).then(onSuccess, function (e) {
+ ensureNotTerminated();
+ e instanceof n.XRefParseException
+ ? a.requestLoadedStream().then(function () {
+ ensureNotTerminated();
+ loadDocument(!0).then(onSuccess, onFailure);
+ })
+ : onFailure(e);
+ });
+ }
+ ensureNotTerminated();
+ getPdfManager(e)
+ .then(function (e) {
+ if (f) {
+ e.terminate(
+ new r.AbortException("Worker was terminated."),
+ );
+ throw new Error("Worker was terminated");
+ }
+ a = e;
+ a.requestLoadedStream(!0).then((e) => {
+ C.send("DataLoaded", { length: e.bytes.byteLength });
+ });
+ })
+ .then(pdfManagerReady, onFailure);
+ })(e);
+ e = null;
+ });
+ return x;
+ }
+ static initializeFromPort(e) {
+ const t = new h.MessageHandler("worker", "main", e);
+ WorkerMessageHandler.setup(t, e);
+ t.send("ready", null);
+ }
+ }
+ t.WorkerMessageHandler = WorkerMessageHandler;
+ "undefined" == typeof window &&
+ !r.isNodeJS &&
+ "undefined" != typeof self &&
+ (function isMessagePort(e) {
+ return "function" == typeof e.postMessage && "onmessage" in e;
+ })(self) &&
+ WorkerMessageHandler.initializeFromPort(self);
+ },
+ (e, t) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.VerbosityLevel =
+ t.Util =
+ t.UnknownErrorException =
+ t.UnexpectedResponseException =
+ t.TextRenderingMode =
+ t.RenderingIntentFlag =
+ t.PromiseCapability =
+ t.PermissionFlag =
+ t.PasswordResponses =
+ t.PasswordException =
+ t.PageActionEventType =
+ t.OPS =
+ t.MissingPDFException =
+ t.MAX_IMAGE_SIZE_TO_CACHE =
+ t.LINE_FACTOR =
+ t.LINE_DESCENT_FACTOR =
+ t.InvalidPDFException =
+ t.ImageKind =
+ t.IDENTITY_MATRIX =
+ t.FormatError =
+ t.FeatureTest =
+ t.FONT_IDENTITY_MATRIX =
+ t.DocumentActionEventType =
+ t.CMapCompressionType =
+ t.BaseException =
+ t.BASELINE_FACTOR =
+ t.AnnotationType =
+ t.AnnotationReplyType =
+ t.AnnotationPrefix =
+ t.AnnotationMode =
+ t.AnnotationFlag =
+ t.AnnotationFieldFlag =
+ t.AnnotationEditorType =
+ t.AnnotationEditorPrefix =
+ t.AnnotationEditorParamsType =
+ t.AnnotationBorderStyleType =
+ t.AnnotationActionEventType =
+ t.AbortException =
+ void 0;
+ t.assert = function assert(e, t) {
+ e || unreachable(t);
+ };
+ t.bytesToString = bytesToString;
+ t.createValidAbsoluteUrl = function createValidAbsoluteUrl(
+ e,
+ t = null,
+ a = null,
+ ) {
+ if (!e) return null;
+ try {
+ if (a && "string" == typeof e) {
+ if (a.addDefaultProtocol && e.startsWith("www.")) {
+ const t = e.match(/\./g);
+ t?.length >= 2 && (e = `http://${e}`);
+ }
+ if (a.tryConvertEncoding)
+ try {
+ e = stringToUTF8String(e);
+ } catch {}
+ }
+ const r = t ? new URL(e, t) : new URL(e);
+ if (
+ (function _isValidProtocol(e) {
+ switch (e?.protocol) {
+ case "http:":
+ case "https:":
+ case "ftp:":
+ case "mailto:":
+ case "tel:":
+ return !0;
+ default:
+ return !1;
+ }
+ })(r)
+ )
+ return r;
+ } catch {}
+ return null;
+ };
+ t.getModificationDate = function getModificationDate(e = new Date()) {
+ return [
+ e.getUTCFullYear().toString(),
+ (e.getUTCMonth() + 1).toString().padStart(2, "0"),
+ e.getUTCDate().toString().padStart(2, "0"),
+ e.getUTCHours().toString().padStart(2, "0"),
+ e.getUTCMinutes().toString().padStart(2, "0"),
+ e.getUTCSeconds().toString().padStart(2, "0"),
+ ].join("");
+ };
+ t.getUuid = function getUuid() {
+ if (
+ "undefined" != typeof crypto &&
+ "function" == typeof crypto?.randomUUID
+ )
+ return crypto.randomUUID();
+ const e = new Uint8Array(32);
+ if (
+ "undefined" != typeof crypto &&
+ "function" == typeof crypto?.getRandomValues
+ )
+ crypto.getRandomValues(e);
+ else
+ for (let t = 0; t < 32; t++)
+ e[t] = Math.floor(255 * Math.random());
+ return bytesToString(e);
+ };
+ t.getVerbosityLevel = function getVerbosityLevel() {
+ return n;
+ };
+ t.info = function info(e) {
+ n >= r.INFOS && console.log(`Info: ${e}`);
+ };
+ t.isArrayBuffer = function isArrayBuffer(e) {
+ return "object" == typeof e && void 0 !== e?.byteLength;
+ };
+ t.isArrayEqual = function isArrayEqual(e, t) {
+ if (e.length !== t.length) return !1;
+ for (let a = 0, r = e.length; a < r; a++)
+ if (e[a] !== t[a]) return !1;
+ return !0;
+ };
+ t.isNodeJS = void 0;
+ t.normalizeUnicode = function normalizeUnicode(e) {
+ if (!c) {
+ c =
+ /([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu;
+ l = new Map([["ſt", "ſt"]]);
+ }
+ return e.replaceAll(c, (e, t, a) =>
+ t ? t.normalize("NFKC") : l.get(a),
+ );
+ };
+ t.objectFromMap = function objectFromMap(e) {
+ const t = Object.create(null);
+ for (const [a, r] of e) t[a] = r;
+ return t;
+ };
+ t.objectSize = function objectSize(e) {
+ return Object.keys(e).length;
+ };
+ t.setVerbosityLevel = function setVerbosityLevel(e) {
+ Number.isInteger(e) && (n = e);
+ };
+ t.shadow = shadow;
+ t.string32 = function string32(e) {
+ return String.fromCharCode(
+ (e >> 24) & 255,
+ (e >> 16) & 255,
+ (e >> 8) & 255,
+ 255 & e,
+ );
+ };
+ t.stringToBytes = stringToBytes;
+ t.stringToPDFString = function stringToPDFString(e) {
+ if (e[0] >= "ï") {
+ let t;
+ "þ" === e[0] && "ÿ" === e[1]
+ ? (t = "utf-16be")
+ : "ÿ" === e[0] && "þ" === e[1]
+ ? (t = "utf-16le")
+ : "ï" === e[0] &&
+ "»" === e[1] &&
+ "¿" === e[2] &&
+ (t = "utf-8");
+ if (t)
+ try {
+ const a = new TextDecoder(t, { fatal: !0 }),
+ r = stringToBytes(e);
+ return a.decode(r);
+ } catch (e) {
+ warn(`stringToPDFString: "${e}".`);
+ }
+ }
+ const t = [];
+ for (let a = 0, r = e.length; a < r; a++) {
+ const r = o[e.charCodeAt(a)];
+ t.push(r ? String.fromCharCode(r) : e.charAt(a));
+ }
+ return t.join("");
+ };
+ t.stringToUTF8String = stringToUTF8String;
+ t.unreachable = unreachable;
+ t.utf8StringToString = function utf8StringToString(e) {
+ return unescape(encodeURIComponent(e));
+ };
+ t.warn = warn;
+ const a = !(
+ "object" != typeof process ||
+ process + "" != "[object process]" ||
+ process.versions.nw ||
+ (process.versions.electron &&
+ process.type &&
+ "browser" !== process.type)
+ );
+ t.isNodeJS = a;
+ t.IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];
+ t.FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];
+ t.MAX_IMAGE_SIZE_TO_CACHE = 1e7;
+ t.LINE_FACTOR = 1.35;
+ t.LINE_DESCENT_FACTOR = 0.35;
+ t.BASELINE_FACTOR = 0.25925925925925924;
+ t.RenderingIntentFlag = {
+ ANY: 1,
+ DISPLAY: 2,
+ PRINT: 4,
+ SAVE: 8,
+ ANNOTATIONS_FORMS: 16,
+ ANNOTATIONS_STORAGE: 32,
+ ANNOTATIONS_DISABLE: 64,
+ OPLIST: 256,
+ };
+ t.AnnotationMode = {
+ DISABLE: 0,
+ ENABLE: 1,
+ ENABLE_FORMS: 2,
+ ENABLE_STORAGE: 3,
+ };
+ t.AnnotationEditorPrefix = "pdfjs_internal_editor_";
+ t.AnnotationEditorType = {
+ DISABLE: -1,
+ NONE: 0,
+ FREETEXT: 3,
+ STAMP: 13,
+ INK: 15,
+ };
+ t.AnnotationEditorParamsType = {
+ RESIZE: 1,
+ CREATE: 2,
+ FREETEXT_SIZE: 11,
+ FREETEXT_COLOR: 12,
+ FREETEXT_OPACITY: 13,
+ INK_COLOR: 21,
+ INK_THICKNESS: 22,
+ INK_OPACITY: 23,
+ };
+ t.PermissionFlag = {
+ PRINT: 4,
+ MODIFY_CONTENTS: 8,
+ COPY: 16,
+ MODIFY_ANNOTATIONS: 32,
+ FILL_INTERACTIVE_FORMS: 256,
+ COPY_FOR_ACCESSIBILITY: 512,
+ ASSEMBLE: 1024,
+ PRINT_HIGH_QUALITY: 2048,
+ };
+ t.TextRenderingMode = {
+ FILL: 0,
+ STROKE: 1,
+ FILL_STROKE: 2,
+ INVISIBLE: 3,
+ FILL_ADD_TO_PATH: 4,
+ STROKE_ADD_TO_PATH: 5,
+ FILL_STROKE_ADD_TO_PATH: 6,
+ ADD_TO_PATH: 7,
+ FILL_STROKE_MASK: 3,
+ ADD_TO_PATH_FLAG: 4,
+ };
+ t.ImageKind = { GRAYSCALE_1BPP: 1, RGB_24BPP: 2, RGBA_32BPP: 3 };
+ t.AnnotationType = {
+ TEXT: 1,
+ LINK: 2,
+ FREETEXT: 3,
+ LINE: 4,
+ SQUARE: 5,
+ CIRCLE: 6,
+ POLYGON: 7,
+ POLYLINE: 8,
+ HIGHLIGHT: 9,
+ UNDERLINE: 10,
+ SQUIGGLY: 11,
+ STRIKEOUT: 12,
+ STAMP: 13,
+ CARET: 14,
+ INK: 15,
+ POPUP: 16,
+ FILEATTACHMENT: 17,
+ SOUND: 18,
+ MOVIE: 19,
+ WIDGET: 20,
+ SCREEN: 21,
+ PRINTERMARK: 22,
+ TRAPNET: 23,
+ WATERMARK: 24,
+ THREED: 25,
+ REDACT: 26,
+ };
+ t.AnnotationReplyType = { GROUP: "Group", REPLY: "R" };
+ t.AnnotationFlag = {
+ INVISIBLE: 1,
+ HIDDEN: 2,
+ PRINT: 4,
+ NOZOOM: 8,
+ NOROTATE: 16,
+ NOVIEW: 32,
+ READONLY: 64,
+ LOCKED: 128,
+ TOGGLENOVIEW: 256,
+ LOCKEDCONTENTS: 512,
+ };
+ t.AnnotationFieldFlag = {
+ READONLY: 1,
+ REQUIRED: 2,
+ NOEXPORT: 4,
+ MULTILINE: 4096,
+ PASSWORD: 8192,
+ NOTOGGLETOOFF: 16384,
+ RADIO: 32768,
+ PUSHBUTTON: 65536,
+ COMBO: 131072,
+ EDIT: 262144,
+ SORT: 524288,
+ FILESELECT: 1048576,
+ MULTISELECT: 2097152,
+ DONOTSPELLCHECK: 4194304,
+ DONOTSCROLL: 8388608,
+ COMB: 16777216,
+ RICHTEXT: 33554432,
+ RADIOSINUNISON: 33554432,
+ COMMITONSELCHANGE: 67108864,
+ };
+ t.AnnotationBorderStyleType = {
+ SOLID: 1,
+ DASHED: 2,
+ BEVELED: 3,
+ INSET: 4,
+ UNDERLINE: 5,
+ };
+ t.AnnotationActionEventType = {
+ E: "Mouse Enter",
+ X: "Mouse Exit",
+ D: "Mouse Down",
+ U: "Mouse Up",
+ Fo: "Focus",
+ Bl: "Blur",
+ PO: "PageOpen",
+ PC: "PageClose",
+ PV: "PageVisible",
+ PI: "PageInvisible",
+ K: "Keystroke",
+ F: "Format",
+ V: "Validate",
+ C: "Calculate",
+ };
+ t.DocumentActionEventType = {
+ WC: "WillClose",
+ WS: "WillSave",
+ DS: "DidSave",
+ WP: "WillPrint",
+ DP: "DidPrint",
+ };
+ t.PageActionEventType = { O: "PageOpen", C: "PageClose" };
+ const r = { ERRORS: 0, WARNINGS: 1, INFOS: 5 };
+ t.VerbosityLevel = r;
+ t.CMapCompressionType = { NONE: 0, BINARY: 1 };
+ t.OPS = {
+ dependency: 1,
+ setLineWidth: 2,
+ setLineCap: 3,
+ setLineJoin: 4,
+ setMiterLimit: 5,
+ setDash: 6,
+ setRenderingIntent: 7,
+ setFlatness: 8,
+ setGState: 9,
+ save: 10,
+ restore: 11,
+ transform: 12,
+ moveTo: 13,
+ lineTo: 14,
+ curveTo: 15,
+ curveTo2: 16,
+ curveTo3: 17,
+ closePath: 18,
+ rectangle: 19,
+ stroke: 20,
+ closeStroke: 21,
+ fill: 22,
+ eoFill: 23,
+ fillStroke: 24,
+ eoFillStroke: 25,
+ closeFillStroke: 26,
+ closeEOFillStroke: 27,
+ endPath: 28,
+ clip: 29,
+ eoClip: 30,
+ beginText: 31,
+ endText: 32,
+ setCharSpacing: 33,
+ setWordSpacing: 34,
+ setHScale: 35,
+ setLeading: 36,
+ setFont: 37,
+ setTextRenderingMode: 38,
+ setTextRise: 39,
+ moveText: 40,
+ setLeadingMoveText: 41,
+ setTextMatrix: 42,
+ nextLine: 43,
+ showText: 44,
+ showSpacedText: 45,
+ nextLineShowText: 46,
+ nextLineSetSpacingShowText: 47,
+ setCharWidth: 48,
+ setCharWidthAndBounds: 49,
+ setStrokeColorSpace: 50,
+ setFillColorSpace: 51,
+ setStrokeColor: 52,
+ setStrokeColorN: 53,
+ setFillColor: 54,
+ setFillColorN: 55,
+ setStrokeGray: 56,
+ setFillGray: 57,
+ setStrokeRGBColor: 58,
+ setFillRGBColor: 59,
+ setStrokeCMYKColor: 60,
+ setFillCMYKColor: 61,
+ shadingFill: 62,
+ beginInlineImage: 63,
+ beginImageData: 64,
+ endInlineImage: 65,
+ paintXObject: 66,
+ markPoint: 67,
+ markPointProps: 68,
+ beginMarkedContent: 69,
+ beginMarkedContentProps: 70,
+ endMarkedContent: 71,
+ beginCompat: 72,
+ endCompat: 73,
+ paintFormXObjectBegin: 74,
+ paintFormXObjectEnd: 75,
+ beginGroup: 76,
+ endGroup: 77,
+ beginAnnotation: 80,
+ endAnnotation: 81,
+ paintImageMaskXObject: 83,
+ paintImageMaskXObjectGroup: 84,
+ paintImageXObject: 85,
+ paintInlineImageXObject: 86,
+ paintInlineImageXObjectGroup: 87,
+ paintImageXObjectRepeat: 88,
+ paintImageMaskXObjectRepeat: 89,
+ paintSolidColorImageMask: 90,
+ constructPath: 91,
+ };
+ t.PasswordResponses = { NEED_PASSWORD: 1, INCORRECT_PASSWORD: 2 };
+ let n = r.WARNINGS;
+ function warn(e) {
+ n >= r.WARNINGS && console.log(`Warning: ${e}`);
+ }
+ function unreachable(e) {
+ throw new Error(e);
+ }
+ function shadow(e, t, a, r = !1) {
+ Object.defineProperty(e, t, {
+ value: a,
+ enumerable: !r,
+ configurable: !0,
+ writable: !1,
+ });
+ return a;
+ }
+ const i = (function BaseExceptionClosure() {
+ function BaseException(e, t) {
+ this.constructor === BaseException &&
+ unreachable("Cannot initialize BaseException.");
+ this.message = e;
+ this.name = t;
+ }
+ BaseException.prototype = new Error();
+ BaseException.constructor = BaseException;
+ return BaseException;
+ })();
+ t.BaseException = i;
+ t.PasswordException = class PasswordException extends i {
+ constructor(e, t) {
+ super(e, "PasswordException");
+ this.code = t;
+ }
+ };
+ t.UnknownErrorException = class UnknownErrorException extends i {
+ constructor(e, t) {
+ super(e, "UnknownErrorException");
+ this.details = t;
+ }
+ };
+ t.InvalidPDFException = class InvalidPDFException extends i {
+ constructor(e) {
+ super(e, "InvalidPDFException");
+ }
+ };
+ t.MissingPDFException = class MissingPDFException extends i {
+ constructor(e) {
+ super(e, "MissingPDFException");
+ }
+ };
+ t.UnexpectedResponseException = class UnexpectedResponseException extends (
+ i
+ ) {
+ constructor(e, t) {
+ super(e, "UnexpectedResponseException");
+ this.status = t;
+ }
+ };
+ t.FormatError = class FormatError extends i {
+ constructor(e) {
+ super(e, "FormatError");
+ }
+ };
+ t.AbortException = class AbortException extends i {
+ constructor(e) {
+ super(e, "AbortException");
+ }
+ };
+ function bytesToString(e) {
+ ("object" == typeof e && void 0 !== e?.length) ||
+ unreachable("Invalid argument for bytesToString");
+ const t = e.length,
+ a = 8192;
+ if (t < a) return String.fromCharCode.apply(null, e);
+ const r = [];
+ for (let n = 0; n < t; n += a) {
+ const i = Math.min(n + a, t),
+ s = e.subarray(n, i);
+ r.push(String.fromCharCode.apply(null, s));
+ }
+ return r.join("");
+ }
+ function stringToBytes(e) {
+ "string" != typeof e &&
+ unreachable("Invalid argument for stringToBytes");
+ const t = e.length,
+ a = new Uint8Array(t);
+ for (let r = 0; r < t; ++r) a[r] = 255 & e.charCodeAt(r);
+ return a;
+ }
+ t.FeatureTest = class FeatureTest {
+ static get isLittleEndian() {
+ return shadow(
+ this,
+ "isLittleEndian",
+ (function isLittleEndian() {
+ const e = new Uint8Array(4);
+ e[0] = 1;
+ return 1 === new Uint32Array(e.buffer, 0, 1)[0];
+ })(),
+ );
+ }
+ static get isEvalSupported() {
+ return shadow(
+ this,
+ "isEvalSupported",
+ (function isEvalSupported() {
+ try {
+ new Function("");
+ return !0;
+ } catch {
+ return !1;
+ }
+ })(),
+ );
+ }
+ static get isOffscreenCanvasSupported() {
+ return shadow(
+ this,
+ "isOffscreenCanvasSupported",
+ "undefined" != typeof OffscreenCanvas,
+ );
+ }
+ static get platform() {
+ return "undefined" == typeof navigator
+ ? shadow(this, "platform", { isWin: !1, isMac: !1 })
+ : shadow(this, "platform", {
+ isWin: navigator.platform.includes("Win"),
+ isMac: navigator.platform.includes("Mac"),
+ });
+ }
+ static get isCSSRoundSupported() {
+ return shadow(
+ this,
+ "isCSSRoundSupported",
+ globalThis.CSS?.supports?.("width: round(1.5px, 1px)"),
+ );
+ }
+ };
+ const s = [...Array(256).keys()].map((e) =>
+ e.toString(16).padStart(2, "0"),
+ );
+ t.Util = class Util {
+ static makeHexColor(e, t, a) {
+ return `#${s[e]}${s[t]}${s[a]}`;
+ }
+ static scaleMinMax(e, t) {
+ let a;
+ if (e[0]) {
+ if (e[0] < 0) {
+ a = t[0];
+ t[0] = t[1];
+ t[1] = a;
+ }
+ t[0] *= e[0];
+ t[1] *= e[0];
+ if (e[3] < 0) {
+ a = t[2];
+ t[2] = t[3];
+ t[3] = a;
+ }
+ t[2] *= e[3];
+ t[3] *= e[3];
+ } else {
+ a = t[0];
+ t[0] = t[2];
+ t[2] = a;
+ a = t[1];
+ t[1] = t[3];
+ t[3] = a;
+ if (e[1] < 0) {
+ a = t[2];
+ t[2] = t[3];
+ t[3] = a;
+ }
+ t[2] *= e[1];
+ t[3] *= e[1];
+ if (e[2] < 0) {
+ a = t[0];
+ t[0] = t[1];
+ t[1] = a;
+ }
+ t[0] *= e[2];
+ t[1] *= e[2];
+ }
+ t[0] += e[4];
+ t[1] += e[4];
+ t[2] += e[5];
+ t[3] += e[5];
+ }
+ static transform(e, t) {
+ return [
+ e[0] * t[0] + e[2] * t[1],
+ e[1] * t[0] + e[3] * t[1],
+ e[0] * t[2] + e[2] * t[3],
+ e[1] * t[2] + e[3] * t[3],
+ e[0] * t[4] + e[2] * t[5] + e[4],
+ e[1] * t[4] + e[3] * t[5] + e[5],
+ ];
+ }
+ static applyTransform(e, t) {
+ return [
+ e[0] * t[0] + e[1] * t[2] + t[4],
+ e[0] * t[1] + e[1] * t[3] + t[5],
+ ];
+ }
+ static applyInverseTransform(e, t) {
+ const a = t[0] * t[3] - t[1] * t[2];
+ return [
+ (e[0] * t[3] - e[1] * t[2] + t[2] * t[5] - t[4] * t[3]) / a,
+ (-e[0] * t[1] + e[1] * t[0] + t[4] * t[1] - t[5] * t[0]) / a,
+ ];
+ }
+ static getAxialAlignedBoundingBox(e, t) {
+ const a = this.applyTransform(e, t),
+ r = this.applyTransform(e.slice(2, 4), t),
+ n = this.applyTransform([e[0], e[3]], t),
+ i = this.applyTransform([e[2], e[1]], t);
+ return [
+ Math.min(a[0], r[0], n[0], i[0]),
+ Math.min(a[1], r[1], n[1], i[1]),
+ Math.max(a[0], r[0], n[0], i[0]),
+ Math.max(a[1], r[1], n[1], i[1]),
+ ];
+ }
+ static inverseTransform(e) {
+ const t = e[0] * e[3] - e[1] * e[2];
+ return [
+ e[3] / t,
+ -e[1] / t,
+ -e[2] / t,
+ e[0] / t,
+ (e[2] * e[5] - e[4] * e[3]) / t,
+ (e[4] * e[1] - e[5] * e[0]) / t,
+ ];
+ }
+ static singularValueDecompose2dScale(e) {
+ const t = [e[0], e[2], e[1], e[3]],
+ a = e[0] * t[0] + e[1] * t[2],
+ r = e[0] * t[1] + e[1] * t[3],
+ n = e[2] * t[0] + e[3] * t[2],
+ i = e[2] * t[1] + e[3] * t[3],
+ s = (a + i) / 2,
+ o = Math.sqrt((a + i) ** 2 - 4 * (a * i - n * r)) / 2,
+ c = s + o || 1,
+ l = s - o || 1;
+ return [Math.sqrt(c), Math.sqrt(l)];
+ }
+ static normalizeRect(e) {
+ const t = e.slice(0);
+ if (e[0] > e[2]) {
+ t[0] = e[2];
+ t[2] = e[0];
+ }
+ if (e[1] > e[3]) {
+ t[1] = e[3];
+ t[3] = e[1];
+ }
+ return t;
+ }
+ static intersect(e, t) {
+ const a = Math.max(Math.min(e[0], e[2]), Math.min(t[0], t[2])),
+ r = Math.min(Math.max(e[0], e[2]), Math.max(t[0], t[2]));
+ if (a > r) return null;
+ const n = Math.max(Math.min(e[1], e[3]), Math.min(t[1], t[3])),
+ i = Math.min(Math.max(e[1], e[3]), Math.max(t[1], t[3]));
+ return n > i ? null : [a, n, r, i];
+ }
+ static bezierBoundingBox(e, t, a, r, n, i, s, o) {
+ const c = [],
+ l = [[], []];
+ let h, u, d, f, g, p, m, b;
+ for (let l = 0; l < 2; ++l) {
+ if (0 === l) {
+ u = 6 * e - 12 * a + 6 * n;
+ h = -3 * e + 9 * a - 9 * n + 3 * s;
+ d = 3 * a - 3 * e;
+ } else {
+ u = 6 * t - 12 * r + 6 * i;
+ h = -3 * t + 9 * r - 9 * i + 3 * o;
+ d = 3 * r - 3 * t;
+ }
+ if (Math.abs(h) < 1e-12) {
+ if (Math.abs(u) < 1e-12) continue;
+ f = -d / u;
+ 0 < f && f < 1 && c.push(f);
+ } else {
+ m = u * u - 4 * d * h;
+ b = Math.sqrt(m);
+ if (!(m < 0)) {
+ g = (-u + b) / (2 * h);
+ 0 < g && g < 1 && c.push(g);
+ p = (-u - b) / (2 * h);
+ 0 < p && p < 1 && c.push(p);
+ }
+ }
+ }
+ let y,
+ w = c.length;
+ const S = w;
+ for (; w--; ) {
+ f = c[w];
+ y = 1 - f;
+ l[0][w] =
+ y * y * y * e +
+ 3 * y * y * f * a +
+ 3 * y * f * f * n +
+ f * f * f * s;
+ l[1][w] =
+ y * y * y * t +
+ 3 * y * y * f * r +
+ 3 * y * f * f * i +
+ f * f * f * o;
+ }
+ l[0][S] = e;
+ l[1][S] = t;
+ l[0][S + 1] = s;
+ l[1][S + 1] = o;
+ l[0].length = l[1].length = S + 2;
+ return [
+ Math.min(...l[0]),
+ Math.min(...l[1]),
+ Math.max(...l[0]),
+ Math.max(...l[1]),
+ ];
+ }
+ };
+ const o = [
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 728, 711, 710, 729, 733, 731, 730, 732, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8226, 8224,
+ 8225, 8230, 8212, 8211, 402, 8260, 8249, 8250, 8722, 8240, 8222,
+ 8220, 8221, 8216, 8217, 8218, 8482, 64257, 64258, 321, 338, 352,
+ 376, 381, 305, 322, 339, 353, 382, 0, 8364,
+ ];
+ function stringToUTF8String(e) {
+ return decodeURIComponent(escape(e));
+ }
+ t.PromiseCapability = class PromiseCapability {
+ #e = !1;
+ constructor() {
+ this.promise = new Promise((e, t) => {
+ this.resolve = (t) => {
+ this.#e = !0;
+ e(t);
+ };
+ this.reject = (e) => {
+ this.#e = !0;
+ t(e);
+ };
+ });
+ }
+ get settled() {
+ return this.#e;
+ }
+ };
+ let c = null,
+ l = null;
+ t.AnnotationPrefix = "pdfjs_internal_id_";
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.XRefParseException =
+ t.XRefEntryException =
+ t.ParserEOFException =
+ t.PDF_VERSION_REGEXP =
+ t.MissingDataException =
+ void 0;
+ t.arrayBuffersToBytes = function arrayBuffersToBytes(e) {
+ const t = e.length;
+ if (0 === t) return new Uint8Array(0);
+ if (1 === t) return new Uint8Array(e[0]);
+ let a = 0;
+ for (let r = 0; r < t; r++) a += e[r].byteLength;
+ const r = new Uint8Array(a);
+ let n = 0;
+ for (let a = 0; a < t; a++) {
+ const t = new Uint8Array(e[a]);
+ r.set(t, n);
+ n += t.byteLength;
+ }
+ return r;
+ };
+ t.collectActions = function collectActions(e, t, a) {
+ const i = Object.create(null),
+ s = getInheritableProperty({
+ dict: t,
+ key: "AA",
+ stopWhenFound: !1,
+ });
+ if (s)
+ for (let t = s.length - 1; t >= 0; t--) {
+ const r = s[t];
+ if (r instanceof n.Dict)
+ for (const t of r.getKeys()) {
+ const s = a[t];
+ if (!s) continue;
+ const o = [];
+ _collectJS(r.getRaw(t), e, o, new n.RefSet());
+ o.length > 0 && (i[s] = o);
+ }
+ }
+ if (t.has("A")) {
+ const a = [];
+ _collectJS(t.get("A"), e, a, new n.RefSet());
+ a.length > 0 && (i.Action = a);
+ }
+ return (0, r.objectSize)(i) > 0 ? i : null;
+ };
+ t.encodeToXmlString = function encodeToXmlString(e) {
+ const t = [];
+ let a = 0;
+ for (let r = 0, n = e.length; r < n; r++) {
+ const n = e.codePointAt(r);
+ if (32 <= n && n <= 126) {
+ const i = o[n];
+ if (i) {
+ a < r && t.push(e.substring(a, r));
+ t.push(i);
+ a = r + 1;
+ }
+ } else {
+ a < r && t.push(e.substring(a, r));
+ t.push(`${n.toString(16).toUpperCase()};`);
+ n > 55295 && (n < 57344 || n > 65533) && r++;
+ a = r + 1;
+ }
+ }
+ if (0 === t.length) return e;
+ a < e.length && t.push(e.substring(a, e.length));
+ return t.join("");
+ };
+ t.escapePDFName = function escapePDFName(e) {
+ const t = [];
+ let a = 0;
+ for (let r = 0, n = e.length; r < n; r++) {
+ const n = e.charCodeAt(r);
+ if (
+ n < 33 ||
+ n > 126 ||
+ 35 === n ||
+ 40 === n ||
+ 41 === n ||
+ 60 === n ||
+ 62 === n ||
+ 91 === n ||
+ 93 === n ||
+ 123 === n ||
+ 125 === n ||
+ 47 === n ||
+ 37 === n
+ ) {
+ a < r && t.push(e.substring(a, r));
+ t.push(`#${n.toString(16)}`);
+ a = r + 1;
+ }
+ }
+ if (0 === t.length) return e;
+ a < e.length && t.push(e.substring(a, e.length));
+ return t.join("");
+ };
+ t.escapeString = function escapeString(e) {
+ return e.replaceAll(/([()\\\n\r])/g, (e) =>
+ "\n" === e ? "\\n" : "\r" === e ? "\\r" : `\\${e}`,
+ );
+ };
+ t.getInheritableProperty = getInheritableProperty;
+ t.getLookupTableFactory = function getLookupTableFactory(e) {
+ let t;
+ return function () {
+ if (e) {
+ t = Object.create(null);
+ e(t);
+ e = null;
+ }
+ return t;
+ };
+ };
+ t.getNewAnnotationsMap = function getNewAnnotationsMap(e) {
+ if (!e) return null;
+ const t = new Map();
+ for (const [a, n] of e) {
+ if (!a.startsWith(r.AnnotationEditorPrefix)) continue;
+ let e = t.get(n.pageIndex);
+ if (!e) {
+ e = [];
+ t.set(n.pageIndex, e);
+ }
+ e.push(n);
+ }
+ return t.size > 0 ? t : null;
+ };
+ t.getRotationMatrix = function getRotationMatrix(e, t, a) {
+ switch (e) {
+ case 90:
+ return [0, 1, -1, 0, t, 0];
+ case 180:
+ return [-1, 0, 0, -1, t, a];
+ case 270:
+ return [0, -1, 1, 0, 0, a];
+ default:
+ throw new Error("Invalid rotation");
+ }
+ };
+ t.isAscii = function isAscii(e) {
+ return /^[\x00-\x7F]*$/.test(e);
+ };
+ t.isWhiteSpace = function isWhiteSpace(e) {
+ return 32 === e || 9 === e || 13 === e || 10 === e;
+ };
+ t.log2 = function log2(e) {
+ if (e <= 0) return 0;
+ return Math.ceil(Math.log2(e));
+ };
+ t.numberToString = function numberToString(e) {
+ if (Number.isInteger(e)) return e.toString();
+ const t = Math.round(100 * e);
+ if (t % 100 == 0) return (t / 100).toString();
+ if (t % 10 == 0) return e.toFixed(1);
+ return e.toFixed(2);
+ };
+ t.parseXFAPath = function parseXFAPath(e) {
+ const t = /(.+)\[(\d+)\]$/;
+ return e.split(".").map((e) => {
+ const a = e.match(t);
+ return a
+ ? { name: a[1], pos: parseInt(a[2], 10) }
+ : { name: e, pos: 0 };
+ });
+ };
+ t.readInt8 = function readInt8(e, t) {
+ return (e[t] << 24) >> 24;
+ };
+ t.readUint16 = function readUint16(e, t) {
+ return (e[t] << 8) | e[t + 1];
+ };
+ t.readUint32 = function readUint32(e, t) {
+ return (
+ ((e[t] << 24) | (e[t + 1] << 16) | (e[t + 2] << 8) | e[t + 3]) >>>
+ 0
+ );
+ };
+ t.recoverJsURL = function recoverJsURL(e) {
+ const t = new RegExp(
+ "^\\s*(" +
+ ["app.launchURL", "window.open", "xfa.host.gotoURL"]
+ .join("|")
+ .replaceAll(".", "\\.") +
+ ")\\((?:'|\")([^'\"]*)(?:'|\")(?:,\\s*(\\w+)\\)|\\))",
+ "i",
+ ).exec(e);
+ if (t?.[2]) {
+ const e = t[2];
+ let a = !1;
+ "true" === t[3] && "app.launchURL" === t[1] && (a = !0);
+ return { url: e, newWindow: a };
+ }
+ return null;
+ };
+ t.stringToUTF16HexString = function stringToUTF16HexString(e) {
+ const t = [];
+ for (let a = 0, r = e.length; a < r; a++) {
+ const r = e.charCodeAt(a);
+ t.push(
+ ((r >> 8) & 255).toString(16).padStart(2, "0"),
+ (255 & r).toString(16).padStart(2, "0"),
+ );
+ }
+ return t.join("");
+ };
+ t.stringToUTF16String = function stringToUTF16String(e, t = !1) {
+ const a = [];
+ t && a.push("þÿ");
+ for (let t = 0, r = e.length; t < r; t++) {
+ const r = e.charCodeAt(t);
+ a.push(
+ String.fromCharCode((r >> 8) & 255),
+ String.fromCharCode(255 & r),
+ );
+ }
+ return a.join("");
+ };
+ t.toRomanNumerals = function toRomanNumerals(e, t = !1) {
+ (0, r.assert)(
+ Number.isInteger(e) && e > 0,
+ "The number should be a positive integer.",
+ );
+ const a = [];
+ let n;
+ for (; e >= 1e3; ) {
+ e -= 1e3;
+ a.push("M");
+ }
+ n = (e / 100) | 0;
+ e %= 100;
+ a.push(s[n]);
+ n = (e / 10) | 0;
+ e %= 10;
+ a.push(s[10 + n]);
+ a.push(s[20 + e]);
+ const i = a.join("");
+ return t ? i.toLowerCase() : i;
+ };
+ t.validateCSSFont = function validateCSSFont(e) {
+ const t = new Set([
+ "100",
+ "200",
+ "300",
+ "400",
+ "500",
+ "600",
+ "700",
+ "800",
+ "900",
+ "1000",
+ "normal",
+ "bold",
+ "bolder",
+ "lighter",
+ ]),
+ { fontFamily: a, fontWeight: r, italicAngle: n } = e;
+ if (!validateFontName(a, !0)) return !1;
+ const i = r ? r.toString() : "";
+ e.fontWeight = t.has(i) ? i : "400";
+ const s = parseFloat(n);
+ e.italicAngle = isNaN(s) || s < -90 || s > 90 ? "14" : n.toString();
+ return !0;
+ };
+ t.validateFontName = validateFontName;
+ var r = a(2),
+ n = a(4),
+ i = a(5);
+ t.PDF_VERSION_REGEXP = /^[1-9]\.\d$/;
+ class MissingDataException extends r.BaseException {
+ constructor(e, t) {
+ super(`Missing data [${e}, ${t})`, "MissingDataException");
+ this.begin = e;
+ this.end = t;
+ }
+ }
+ t.MissingDataException = MissingDataException;
+ class ParserEOFException extends r.BaseException {
+ constructor(e) {
+ super(e, "ParserEOFException");
+ }
+ }
+ t.ParserEOFException = ParserEOFException;
+ class XRefEntryException extends r.BaseException {
+ constructor(e) {
+ super(e, "XRefEntryException");
+ }
+ }
+ t.XRefEntryException = XRefEntryException;
+ class XRefParseException extends r.BaseException {
+ constructor(e) {
+ super(e, "XRefParseException");
+ }
+ }
+ t.XRefParseException = XRefParseException;
+ function getInheritableProperty({
+ dict: e,
+ key: t,
+ getArray: a = !1,
+ stopWhenFound: r = !0,
+ }) {
+ let i;
+ const s = new n.RefSet();
+ for (; e instanceof n.Dict && (!e.objId || !s.has(e.objId)); ) {
+ e.objId && s.put(e.objId);
+ const n = a ? e.getArray(t) : e.get(t);
+ if (void 0 !== n) {
+ if (r) return n;
+ (i ||= []).push(n);
+ }
+ e = e.get("Parent");
+ }
+ return i;
+ }
+ const s = [
+ "",
+ "C",
+ "CC",
+ "CCC",
+ "CD",
+ "D",
+ "DC",
+ "DCC",
+ "DCCC",
+ "CM",
+ "",
+ "X",
+ "XX",
+ "XXX",
+ "XL",
+ "L",
+ "LX",
+ "LXX",
+ "LXXX",
+ "XC",
+ "",
+ "I",
+ "II",
+ "III",
+ "IV",
+ "V",
+ "VI",
+ "VII",
+ "VIII",
+ "IX",
+ ];
+ function _collectJS(e, t, a, s) {
+ if (!e) return;
+ let o = null;
+ if (e instanceof n.Ref) {
+ if (s.has(e)) return;
+ o = e;
+ s.put(o);
+ e = t.fetch(e);
+ }
+ if (Array.isArray(e)) for (const r of e) _collectJS(r, t, a, s);
+ else if (e instanceof n.Dict) {
+ if ((0, n.isName)(e.get("S"), "JavaScript")) {
+ const t = e.get("JS");
+ let n;
+ t instanceof i.BaseStream
+ ? (n = t.getString())
+ : "string" == typeof t && (n = t);
+ n &&= (0, r.stringToPDFString)(n).replaceAll("\0", "");
+ n && a.push(n);
+ }
+ _collectJS(e.getRaw("Next"), t, a, s);
+ }
+ o && s.remove(o);
+ }
+ const o = {
+ 60: "<",
+ 62: ">",
+ 38: "&",
+ 34: """,
+ 39: "'",
+ };
+ function validateFontName(e, t = !1) {
+ const a = /^("|').*("|')$/.exec(e);
+ if (a && a[1] === a[2]) {
+ if (new RegExp(`[^\\\\]${a[1]}`).test(e.slice(1, -1))) {
+ t &&
+ (0, r.warn)(`FontFamily contains unescaped ${a[1]}: ${e}.`);
+ return !1;
+ }
+ } else
+ for (const a of e.split(/[ \t]+/))
+ if (/^(\d|(-(\d|-)))/.test(a) || !/^[\w-\\]+$/.test(a)) {
+ t &&
+ (0, r.warn)(
+ `FontFamily contains invalid : ${e}.`,
+ );
+ return !1;
+ }
+ return !0;
+ }
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.RefSetCache =
+ t.RefSet =
+ t.Ref =
+ t.Name =
+ t.EOF =
+ t.Dict =
+ t.Cmd =
+ t.CIRCULAR_REF =
+ void 0;
+ t.clearPrimitiveCaches = function clearPrimitiveCaches() {
+ s = Object.create(null);
+ o = Object.create(null);
+ c = Object.create(null);
+ };
+ t.isCmd = function isCmd(e, t) {
+ return e instanceof Cmd && (void 0 === t || e.cmd === t);
+ };
+ t.isDict = function isDict(e, t) {
+ return (
+ e instanceof Dict && (void 0 === t || isName(e.get("Type"), t))
+ );
+ };
+ t.isName = isName;
+ t.isRefsEqual = function isRefsEqual(e, t) {
+ return e.num === t.num && e.gen === t.gen;
+ };
+ var r = a(2);
+ const n = Symbol("CIRCULAR_REF");
+ t.CIRCULAR_REF = n;
+ const i = Symbol("EOF");
+ t.EOF = i;
+ let s = Object.create(null),
+ o = Object.create(null),
+ c = Object.create(null);
+ class Name {
+ constructor(e) {
+ this.name = e;
+ }
+ static get(e) {
+ return (o[e] ||= new Name(e));
+ }
+ }
+ t.Name = Name;
+ class Cmd {
+ constructor(e) {
+ this.cmd = e;
+ }
+ static get(e) {
+ return (s[e] ||= new Cmd(e));
+ }
+ }
+ t.Cmd = Cmd;
+ const l = function nonSerializableClosure() {
+ return l;
+ };
+ class Dict {
+ constructor(e = null) {
+ this._map = Object.create(null);
+ this.xref = e;
+ this.objId = null;
+ this.suppressEncryption = !1;
+ this.__nonSerializable__ = l;
+ }
+ assignXref(e) {
+ this.xref = e;
+ }
+ get size() {
+ return Object.keys(this._map).length;
+ }
+ get(e, t, a) {
+ let r = this._map[e];
+ if (void 0 === r && void 0 !== t) {
+ r = this._map[t];
+ void 0 === r && void 0 !== a && (r = this._map[a]);
+ }
+ return r instanceof Ref && this.xref
+ ? this.xref.fetch(r, this.suppressEncryption)
+ : r;
+ }
+ async getAsync(e, t, a) {
+ let r = this._map[e];
+ if (void 0 === r && void 0 !== t) {
+ r = this._map[t];
+ void 0 === r && void 0 !== a && (r = this._map[a]);
+ }
+ return r instanceof Ref && this.xref
+ ? this.xref.fetchAsync(r, this.suppressEncryption)
+ : r;
+ }
+ getArray(e, t, a) {
+ let r = this._map[e];
+ if (void 0 === r && void 0 !== t) {
+ r = this._map[t];
+ void 0 === r && void 0 !== a && (r = this._map[a]);
+ }
+ r instanceof Ref &&
+ this.xref &&
+ (r = this.xref.fetch(r, this.suppressEncryption));
+ if (Array.isArray(r)) {
+ r = r.slice();
+ for (let e = 0, t = r.length; e < t; e++)
+ r[e] instanceof Ref &&
+ this.xref &&
+ (r[e] = this.xref.fetch(r[e], this.suppressEncryption));
+ }
+ return r;
+ }
+ getRaw(e) {
+ return this._map[e];
+ }
+ getKeys() {
+ return Object.keys(this._map);
+ }
+ getRawValues() {
+ return Object.values(this._map);
+ }
+ set(e, t) {
+ this._map[e] = t;
+ }
+ has(e) {
+ return void 0 !== this._map[e];
+ }
+ forEach(e) {
+ for (const t in this._map) e(t, this.get(t));
+ }
+ static get empty() {
+ const e = new Dict(null);
+ e.set = (e, t) => {
+ (0, r.unreachable)(
+ "Should not call `set` on the empty dictionary.",
+ );
+ };
+ return (0, r.shadow)(this, "empty", e);
+ }
+ static merge({ xref: e, dictArray: t, mergeSubDicts: a = !1 }) {
+ const r = new Dict(e),
+ n = new Map();
+ for (const e of t)
+ if (e instanceof Dict)
+ for (const [t, r] of Object.entries(e._map)) {
+ let e = n.get(t);
+ if (void 0 === e) {
+ e = [];
+ n.set(t, e);
+ } else if (!(a && r instanceof Dict)) continue;
+ e.push(r);
+ }
+ for (const [t, a] of n) {
+ if (1 === a.length || !(a[0] instanceof Dict)) {
+ r._map[t] = a[0];
+ continue;
+ }
+ const n = new Dict(e);
+ for (const e of a)
+ for (const [t, a] of Object.entries(e._map))
+ void 0 === n._map[t] && (n._map[t] = a);
+ n.size > 0 && (r._map[t] = n);
+ }
+ n.clear();
+ return r.size > 0 ? r : Dict.empty;
+ }
+ clone() {
+ const e = new Dict(this.xref);
+ for (const t of this.getKeys()) e.set(t, this.getRaw(t));
+ return e;
+ }
+ }
+ t.Dict = Dict;
+ class Ref {
+ constructor(e, t) {
+ this.num = e;
+ this.gen = t;
+ }
+ toString() {
+ return 0 === this.gen
+ ? `${this.num}R`
+ : `${this.num}R${this.gen}`;
+ }
+ static fromString(e) {
+ const t = c[e];
+ if (t) return t;
+ const a = /^(\d+)R(\d*)$/.exec(e);
+ return a && "0" !== a[1]
+ ? (c[e] = new Ref(parseInt(a[1]), a[2] ? parseInt(a[2]) : 0))
+ : null;
+ }
+ static get(e, t) {
+ const a = 0 === t ? `${e}R` : `${e}R${t}`;
+ return (c[a] ||= new Ref(e, t));
+ }
+ }
+ t.Ref = Ref;
+ class RefSet {
+ constructor(e = null) {
+ this._set = new Set(e?._set);
+ }
+ has(e) {
+ return this._set.has(e.toString());
+ }
+ put(e) {
+ this._set.add(e.toString());
+ }
+ remove(e) {
+ this._set.delete(e.toString());
+ }
+ [Symbol.iterator]() {
+ return this._set.values();
+ }
+ clear() {
+ this._set.clear();
+ }
+ }
+ t.RefSet = RefSet;
+ class RefSetCache {
+ constructor() {
+ this._map = new Map();
+ }
+ get size() {
+ return this._map.size;
+ }
+ get(e) {
+ return this._map.get(e.toString());
+ }
+ has(e) {
+ return this._map.has(e.toString());
+ }
+ put(e, t) {
+ this._map.set(e.toString(), t);
+ }
+ putAlias(e, t) {
+ this._map.set(e.toString(), this.get(t));
+ }
+ [Symbol.iterator]() {
+ return this._map.values();
+ }
+ clear() {
+ this._map.clear();
+ }
+ }
+ t.RefSetCache = RefSetCache;
+ function isName(e, t) {
+ return e instanceof Name && (void 0 === t || e.name === t);
+ }
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.BaseStream = void 0;
+ var r = a(2);
+ class BaseStream {
+ constructor() {
+ this.constructor === BaseStream &&
+ (0, r.unreachable)("Cannot initialize BaseStream.");
+ }
+ get length() {
+ (0, r.unreachable)("Abstract getter `length` accessed");
+ }
+ get isEmpty() {
+ (0, r.unreachable)("Abstract getter `isEmpty` accessed");
+ }
+ get isDataLoaded() {
+ return (0, r.shadow)(this, "isDataLoaded", !0);
+ }
+ getByte() {
+ (0, r.unreachable)("Abstract method `getByte` called");
+ }
+ getBytes(e) {
+ (0, r.unreachable)("Abstract method `getBytes` called");
+ }
+ peekByte() {
+ const e = this.getByte();
+ -1 !== e && this.pos--;
+ return e;
+ }
+ peekBytes(e) {
+ const t = this.getBytes(e);
+ this.pos -= t.length;
+ return t;
+ }
+ getUint16() {
+ const e = this.getByte(),
+ t = this.getByte();
+ return -1 === e || -1 === t ? -1 : (e << 8) + t;
+ }
+ getInt32() {
+ return (
+ (this.getByte() << 24) +
+ (this.getByte() << 16) +
+ (this.getByte() << 8) +
+ this.getByte()
+ );
+ }
+ getByteRange(e, t) {
+ (0, r.unreachable)("Abstract method `getByteRange` called");
+ }
+ getString(e) {
+ return (0, r.bytesToString)(this.getBytes(e));
+ }
+ skip(e) {
+ this.pos += e || 1;
+ }
+ reset() {
+ (0, r.unreachable)("Abstract method `reset` called");
+ }
+ moveStart() {
+ (0, r.unreachable)("Abstract method `moveStart` called");
+ }
+ makeSubStream(e, t, a = null) {
+ (0, r.unreachable)("Abstract method `makeSubStream` called");
+ }
+ getBaseStreams() {
+ return null;
+ }
+ }
+ t.BaseStream = BaseStream;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.NetworkPdfManager = t.LocalPdfManager = void 0;
+ var r = a(2),
+ n = a(7),
+ i = a(3),
+ s = a(9),
+ o = a(8);
+ class BasePdfManager {
+ constructor(e) {
+ this.constructor === BasePdfManager &&
+ (0, r.unreachable)("Cannot initialize BasePdfManager.");
+ this._docBaseUrl = (function parseDocBaseUrl(e) {
+ if (e) {
+ const t = (0, r.createValidAbsoluteUrl)(e);
+ if (t) return t.href;
+ (0, r.warn)(`Invalid absolute docBaseUrl: "${e}".`);
+ }
+ return null;
+ })(e.docBaseUrl);
+ this._docId = e.docId;
+ this._password = e.password;
+ this.enableXfa = e.enableXfa;
+ e.evaluatorOptions.isOffscreenCanvasSupported &&=
+ r.FeatureTest.isOffscreenCanvasSupported;
+ this.evaluatorOptions = e.evaluatorOptions;
+ }
+ get docId() {
+ return this._docId;
+ }
+ get password() {
+ return this._password;
+ }
+ get docBaseUrl() {
+ return this._docBaseUrl;
+ }
+ get catalog() {
+ return this.pdfDocument.catalog;
+ }
+ ensureDoc(e, t) {
+ return this.ensure(this.pdfDocument, e, t);
+ }
+ ensureXRef(e, t) {
+ return this.ensure(this.pdfDocument.xref, e, t);
+ }
+ ensureCatalog(e, t) {
+ return this.ensure(this.pdfDocument.catalog, e, t);
+ }
+ getPage(e) {
+ return this.pdfDocument.getPage(e);
+ }
+ fontFallback(e, t) {
+ return this.pdfDocument.fontFallback(e, t);
+ }
+ loadXfaFonts(e, t) {
+ return this.pdfDocument.loadXfaFonts(e, t);
+ }
+ loadXfaImages() {
+ return this.pdfDocument.loadXfaImages();
+ }
+ serializeXfaData(e) {
+ return this.pdfDocument.serializeXfaData(e);
+ }
+ cleanup(e = !1) {
+ return this.pdfDocument.cleanup(e);
+ }
+ async ensure(e, t, a) {
+ (0, r.unreachable)("Abstract method `ensure` called");
+ }
+ requestRange(e, t) {
+ (0, r.unreachable)("Abstract method `requestRange` called");
+ }
+ requestLoadedStream(e = !1) {
+ (0, r.unreachable)(
+ "Abstract method `requestLoadedStream` called",
+ );
+ }
+ sendProgressiveData(e) {
+ (0, r.unreachable)(
+ "Abstract method `sendProgressiveData` called",
+ );
+ }
+ updatePassword(e) {
+ this._password = e;
+ }
+ terminate(e) {
+ (0, r.unreachable)("Abstract method `terminate` called");
+ }
+ }
+ t.LocalPdfManager = class LocalPdfManager extends BasePdfManager {
+ constructor(e) {
+ super(e);
+ const t = new o.Stream(e.source);
+ this.pdfDocument = new s.PDFDocument(this, t);
+ this._loadedStreamPromise = Promise.resolve(t);
+ }
+ async ensure(e, t, a) {
+ const r = e[t];
+ return "function" == typeof r ? r.apply(e, a) : r;
+ }
+ requestRange(e, t) {
+ return Promise.resolve();
+ }
+ requestLoadedStream(e = !1) {
+ return this._loadedStreamPromise;
+ }
+ terminate(e) {}
+ };
+ t.NetworkPdfManager = class NetworkPdfManager extends BasePdfManager {
+ constructor(e) {
+ super(e);
+ this.streamManager = new n.ChunkedStreamManager(e.source, {
+ msgHandler: e.handler,
+ length: e.length,
+ disableAutoFetch: e.disableAutoFetch,
+ rangeChunkSize: e.rangeChunkSize,
+ });
+ this.pdfDocument = new s.PDFDocument(
+ this,
+ this.streamManager.getStream(),
+ );
+ }
+ async ensure(e, t, a) {
+ try {
+ const r = e[t];
+ return "function" == typeof r ? r.apply(e, a) : r;
+ } catch (r) {
+ if (!(r instanceof i.MissingDataException)) throw r;
+ await this.requestRange(r.begin, r.end);
+ return this.ensure(e, t, a);
+ }
+ }
+ requestRange(e, t) {
+ return this.streamManager.requestRange(e, t);
+ }
+ requestLoadedStream(e = !1) {
+ return this.streamManager.requestAllChunks(e);
+ }
+ sendProgressiveData(e) {
+ this.streamManager.onReceiveData({ chunk: e });
+ }
+ terminate(e) {
+ this.streamManager.abort(e);
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.ChunkedStreamManager = t.ChunkedStream = void 0;
+ var r = a(3),
+ n = a(2),
+ i = a(8);
+ class ChunkedStream extends i.Stream {
+ constructor(e, t, a) {
+ super(new Uint8Array(e), 0, e, null);
+ this.chunkSize = t;
+ this._loadedChunks = new Set();
+ this.numChunks = Math.ceil(e / t);
+ this.manager = a;
+ this.progressiveDataLength = 0;
+ this.lastSuccessfulEnsureByteChunk = -1;
+ }
+ getMissingChunks() {
+ const e = [];
+ for (let t = 0, a = this.numChunks; t < a; ++t)
+ this._loadedChunks.has(t) || e.push(t);
+ return e;
+ }
+ get numChunksLoaded() {
+ return this._loadedChunks.size;
+ }
+ get isDataLoaded() {
+ return this.numChunksLoaded === this.numChunks;
+ }
+ onReceiveData(e, t) {
+ const a = this.chunkSize;
+ if (e % a != 0) throw new Error(`Bad begin offset: ${e}`);
+ const r = e + t.byteLength;
+ if (r % a != 0 && r !== this.bytes.length)
+ throw new Error(`Bad end offset: ${r}`);
+ this.bytes.set(new Uint8Array(t), e);
+ const n = Math.floor(e / a),
+ i = Math.floor((r - 1) / a) + 1;
+ for (let e = n; e < i; ++e) this._loadedChunks.add(e);
+ }
+ onReceiveProgressiveData(e) {
+ let t = this.progressiveDataLength;
+ const a = Math.floor(t / this.chunkSize);
+ this.bytes.set(new Uint8Array(e), t);
+ t += e.byteLength;
+ this.progressiveDataLength = t;
+ const r =
+ t >= this.end ? this.numChunks : Math.floor(t / this.chunkSize);
+ for (let e = a; e < r; ++e) this._loadedChunks.add(e);
+ }
+ ensureByte(e) {
+ if (e < this.progressiveDataLength) return;
+ const t = Math.floor(e / this.chunkSize);
+ if (
+ !(t > this.numChunks) &&
+ t !== this.lastSuccessfulEnsureByteChunk
+ ) {
+ if (!this._loadedChunks.has(t))
+ throw new r.MissingDataException(e, e + 1);
+ this.lastSuccessfulEnsureByteChunk = t;
+ }
+ }
+ ensureRange(e, t) {
+ if (e >= t) return;
+ if (t <= this.progressiveDataLength) return;
+ const a = Math.floor(e / this.chunkSize);
+ if (a > this.numChunks) return;
+ const n = Math.min(
+ Math.floor((t - 1) / this.chunkSize) + 1,
+ this.numChunks,
+ );
+ for (let i = a; i < n; ++i)
+ if (!this._loadedChunks.has(i))
+ throw new r.MissingDataException(e, t);
+ }
+ nextEmptyChunk(e) {
+ const t = this.numChunks;
+ for (let a = 0; a < t; ++a) {
+ const r = (e + a) % t;
+ if (!this._loadedChunks.has(r)) return r;
+ }
+ return null;
+ }
+ hasChunk(e) {
+ return this._loadedChunks.has(e);
+ }
+ getByte() {
+ const e = this.pos;
+ if (e >= this.end) return -1;
+ e >= this.progressiveDataLength && this.ensureByte(e);
+ return this.bytes[this.pos++];
+ }
+ getBytes(e) {
+ const t = this.bytes,
+ a = this.pos,
+ r = this.end;
+ if (!e) {
+ r > this.progressiveDataLength && this.ensureRange(a, r);
+ return t.subarray(a, r);
+ }
+ let n = a + e;
+ n > r && (n = r);
+ n > this.progressiveDataLength && this.ensureRange(a, n);
+ this.pos = n;
+ return t.subarray(a, n);
+ }
+ getByteRange(e, t) {
+ e < 0 && (e = 0);
+ t > this.end && (t = this.end);
+ t > this.progressiveDataLength && this.ensureRange(e, t);
+ return this.bytes.subarray(e, t);
+ }
+ makeSubStream(e, t, a = null) {
+ t
+ ? e + t > this.progressiveDataLength &&
+ this.ensureRange(e, e + t)
+ : e >= this.progressiveDataLength && this.ensureByte(e);
+ function ChunkedStreamSubstream() {}
+ ChunkedStreamSubstream.prototype = Object.create(this);
+ ChunkedStreamSubstream.prototype.getMissingChunks = function () {
+ const e = this.chunkSize,
+ t = Math.floor(this.start / e),
+ a = Math.floor((this.end - 1) / e) + 1,
+ r = [];
+ for (let e = t; e < a; ++e)
+ this._loadedChunks.has(e) || r.push(e);
+ return r;
+ };
+ Object.defineProperty(
+ ChunkedStreamSubstream.prototype,
+ "isDataLoaded",
+ {
+ get() {
+ return (
+ this.numChunksLoaded === this.numChunks ||
+ 0 === this.getMissingChunks().length
+ );
+ },
+ configurable: !0,
+ },
+ );
+ const r = new ChunkedStreamSubstream();
+ r.pos = r.start = e;
+ r.end = e + t || this.end;
+ r.dict = a;
+ return r;
+ }
+ getBaseStreams() {
+ return [this];
+ }
+ }
+ t.ChunkedStream = ChunkedStream;
+ t.ChunkedStreamManager = class ChunkedStreamManager {
+ constructor(e, t) {
+ this.length = t.length;
+ this.chunkSize = t.rangeChunkSize;
+ this.stream = new ChunkedStream(
+ this.length,
+ this.chunkSize,
+ this,
+ );
+ this.pdfNetworkStream = e;
+ this.disableAutoFetch = t.disableAutoFetch;
+ this.msgHandler = t.msgHandler;
+ this.currRequestId = 0;
+ this._chunksNeededByRequest = new Map();
+ this._requestsByChunk = new Map();
+ this._promisesByRequest = new Map();
+ this.progressiveDataLength = 0;
+ this.aborted = !1;
+ this._loadedStreamCapability = new n.PromiseCapability();
+ }
+ sendRequest(e, t) {
+ const a = this.pdfNetworkStream.getRangeReader(e, t);
+ a.isStreamingSupported ||
+ (a.onProgress = this.onProgress.bind(this));
+ let n = [],
+ i = 0;
+ return new Promise((e, t) => {
+ const readChunk = ({ value: s, done: o }) => {
+ try {
+ if (o) {
+ const t = (0, r.arrayBuffersToBytes)(n);
+ n = null;
+ e(t);
+ return;
+ }
+ i += s.byteLength;
+ a.isStreamingSupported && this.onProgress({ loaded: i });
+ n.push(s);
+ a.read().then(readChunk, t);
+ } catch (e) {
+ t(e);
+ }
+ };
+ a.read().then(readChunk, t);
+ }).then((t) => {
+ this.aborted || this.onReceiveData({ chunk: t, begin: e });
+ });
+ }
+ requestAllChunks(e = !1) {
+ if (!e) {
+ const e = this.stream.getMissingChunks();
+ this._requestChunks(e);
+ }
+ return this._loadedStreamCapability.promise;
+ }
+ _requestChunks(e) {
+ const t = this.currRequestId++,
+ a = new Set();
+ this._chunksNeededByRequest.set(t, a);
+ for (const t of e) this.stream.hasChunk(t) || a.add(t);
+ if (0 === a.size) return Promise.resolve();
+ const r = new n.PromiseCapability();
+ this._promisesByRequest.set(t, r);
+ const i = [];
+ for (const e of a) {
+ let a = this._requestsByChunk.get(e);
+ if (!a) {
+ a = [];
+ this._requestsByChunk.set(e, a);
+ i.push(e);
+ }
+ a.push(t);
+ }
+ if (i.length > 0) {
+ const e = this.groupChunks(i);
+ for (const t of e) {
+ const e = t.beginChunk * this.chunkSize,
+ a = Math.min(t.endChunk * this.chunkSize, this.length);
+ this.sendRequest(e, a).catch(r.reject);
+ }
+ }
+ return r.promise.catch((e) => {
+ if (!this.aborted) throw e;
+ });
+ }
+ getStream() {
+ return this.stream;
+ }
+ requestRange(e, t) {
+ t = Math.min(t, this.length);
+ const a = this.getBeginChunk(e),
+ r = this.getEndChunk(t),
+ n = [];
+ for (let e = a; e < r; ++e) n.push(e);
+ return this._requestChunks(n);
+ }
+ requestRanges(e = []) {
+ const t = [];
+ for (const a of e) {
+ const e = this.getBeginChunk(a.begin),
+ r = this.getEndChunk(a.end);
+ for (let a = e; a < r; ++a) t.includes(a) || t.push(a);
+ }
+ t.sort(function (e, t) {
+ return e - t;
+ });
+ return this._requestChunks(t);
+ }
+ groupChunks(e) {
+ const t = [];
+ let a = -1,
+ r = -1;
+ for (let n = 0, i = e.length; n < i; ++n) {
+ const i = e[n];
+ a < 0 && (a = i);
+ if (r >= 0 && r + 1 !== i) {
+ t.push({ beginChunk: a, endChunk: r + 1 });
+ a = i;
+ }
+ n + 1 === e.length &&
+ t.push({ beginChunk: a, endChunk: i + 1 });
+ r = i;
+ }
+ return t;
+ }
+ onProgress(e) {
+ this.msgHandler.send("DocProgress", {
+ loaded: this.stream.numChunksLoaded * this.chunkSize + e.loaded,
+ total: this.length,
+ });
+ }
+ onReceiveData(e) {
+ const t = e.chunk,
+ a = void 0 === e.begin,
+ r = a ? this.progressiveDataLength : e.begin,
+ n = r + t.byteLength,
+ i = Math.floor(r / this.chunkSize),
+ s =
+ n < this.length
+ ? Math.floor(n / this.chunkSize)
+ : Math.ceil(n / this.chunkSize);
+ if (a) {
+ this.stream.onReceiveProgressiveData(t);
+ this.progressiveDataLength = n;
+ } else this.stream.onReceiveData(r, t);
+ this.stream.isDataLoaded &&
+ this._loadedStreamCapability.resolve(this.stream);
+ const o = [];
+ for (let e = i; e < s; ++e) {
+ const t = this._requestsByChunk.get(e);
+ if (t) {
+ this._requestsByChunk.delete(e);
+ for (const a of t) {
+ const t = this._chunksNeededByRequest.get(a);
+ t.has(e) && t.delete(e);
+ t.size > 0 || o.push(a);
+ }
+ }
+ }
+ if (!this.disableAutoFetch && 0 === this._requestsByChunk.size) {
+ let e;
+ if (1 === this.stream.numChunksLoaded) {
+ const t = this.stream.numChunks - 1;
+ this.stream.hasChunk(t) || (e = t);
+ } else e = this.stream.nextEmptyChunk(s);
+ Number.isInteger(e) && this._requestChunks([e]);
+ }
+ for (const e of o) {
+ const t = this._promisesByRequest.get(e);
+ this._promisesByRequest.delete(e);
+ t.resolve();
+ }
+ this.msgHandler.send("DocProgress", {
+ loaded: this.stream.numChunksLoaded * this.chunkSize,
+ total: this.length,
+ });
+ }
+ onError(e) {
+ this._loadedStreamCapability.reject(e);
+ }
+ getBeginChunk(e) {
+ return Math.floor(e / this.chunkSize);
+ }
+ getEndChunk(e) {
+ return Math.floor((e - 1) / this.chunkSize) + 1;
+ }
+ abort(e) {
+ this.aborted = !0;
+ this.pdfNetworkStream?.cancelAllRequests(e);
+ for (const t of this._promisesByRequest.values()) t.reject(e);
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.StringStream = t.Stream = t.NullStream = void 0;
+ var r = a(5),
+ n = a(2);
+ class Stream extends r.BaseStream {
+ constructor(e, t, a, r) {
+ super();
+ this.bytes = e instanceof Uint8Array ? e : new Uint8Array(e);
+ this.start = t || 0;
+ this.pos = this.start;
+ this.end = t + a || this.bytes.length;
+ this.dict = r;
+ }
+ get length() {
+ return this.end - this.start;
+ }
+ get isEmpty() {
+ return 0 === this.length;
+ }
+ getByte() {
+ return this.pos >= this.end ? -1 : this.bytes[this.pos++];
+ }
+ getBytes(e) {
+ const t = this.bytes,
+ a = this.pos,
+ r = this.end;
+ if (!e) return t.subarray(a, r);
+ let n = a + e;
+ n > r && (n = r);
+ this.pos = n;
+ return t.subarray(a, n);
+ }
+ getByteRange(e, t) {
+ e < 0 && (e = 0);
+ t > this.end && (t = this.end);
+ return this.bytes.subarray(e, t);
+ }
+ reset() {
+ this.pos = this.start;
+ }
+ moveStart() {
+ this.start = this.pos;
+ }
+ makeSubStream(e, t, a = null) {
+ return new Stream(this.bytes.buffer, e, t, a);
+ }
+ }
+ t.Stream = Stream;
+ t.StringStream = class StringStream extends Stream {
+ constructor(e) {
+ super((0, n.stringToBytes)(e));
+ }
+ };
+ t.NullStream = class NullStream extends Stream {
+ constructor() {
+ super(new Uint8Array(0));
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.Page = t.PDFDocument = void 0;
+ var r = a(2),
+ n = a(10),
+ i = a(3),
+ s = a(4),
+ o = a(51),
+ c = a(5),
+ l = a(74),
+ h = a(66),
+ u = a(68),
+ d = a(102),
+ f = a(16),
+ g = a(8),
+ p = a(76),
+ m = a(64),
+ b = a(13),
+ y = a(18),
+ w = a(72),
+ S = a(73),
+ x = a(77),
+ C = a(103);
+ const k = [0, 0, 612, 792];
+ class Page {
+ constructor({
+ pdfManager: e,
+ xref: t,
+ pageIndex: a,
+ pageDict: r,
+ ref: n,
+ globalIdFactory: i,
+ fontCache: s,
+ builtInCMapCache: o,
+ standardFontDataCache: c,
+ globalImageCache: l,
+ systemFontCache: h,
+ nonBlendModesSet: u,
+ xfaFactory: d,
+ }) {
+ this.pdfManager = e;
+ this.pageIndex = a;
+ this.pageDict = r;
+ this.xref = t;
+ this.ref = n;
+ this.fontCache = s;
+ this.builtInCMapCache = o;
+ this.standardFontDataCache = c;
+ this.globalImageCache = l;
+ this.systemFontCache = h;
+ this.nonBlendModesSet = u;
+ this.evaluatorOptions = e.evaluatorOptions;
+ this.resourcesPromise = null;
+ this.xfaFactory = d;
+ const f = { obj: 0 };
+ this._localIdFactory = class extends i {
+ static createObjId() {
+ return `p${a}_${++f.obj}`;
+ }
+ static getPageObjId() {
+ return `p${n.toString()}`;
+ }
+ };
+ }
+ _getInheritableProperty(e, t = !1) {
+ const a = (0, i.getInheritableProperty)({
+ dict: this.pageDict,
+ key: e,
+ getArray: t,
+ stopWhenFound: !1,
+ });
+ return Array.isArray(a)
+ ? 1 !== a.length && a[0] instanceof s.Dict
+ ? s.Dict.merge({ xref: this.xref, dictArray: a })
+ : a[0]
+ : a;
+ }
+ get content() {
+ return this.pageDict.getArray("Contents");
+ }
+ get resources() {
+ const e = this._getInheritableProperty("Resources");
+ return (0, r.shadow)(
+ this,
+ "resources",
+ e instanceof s.Dict ? e : s.Dict.empty,
+ );
+ }
+ _getBoundingBox(e) {
+ if (this.xfaData) return this.xfaData.bbox;
+ let t = this._getInheritableProperty(e, !0);
+ if (Array.isArray(t) && 4 === t.length) {
+ t = r.Util.normalizeRect(t);
+ if (t[2] - t[0] > 0 && t[3] - t[1] > 0) return t;
+ (0, r.warn)(`Empty, or invalid, /${e} entry.`);
+ }
+ return null;
+ }
+ get mediaBox() {
+ return (0, r.shadow)(
+ this,
+ "mediaBox",
+ this._getBoundingBox("MediaBox") || k,
+ );
+ }
+ get cropBox() {
+ return (0, r.shadow)(
+ this,
+ "cropBox",
+ this._getBoundingBox("CropBox") || this.mediaBox,
+ );
+ }
+ get userUnit() {
+ let e = this.pageDict.get("UserUnit");
+ ("number" != typeof e || e <= 0) && (e = 1);
+ return (0, r.shadow)(this, "userUnit", e);
+ }
+ get view() {
+ const { cropBox: e, mediaBox: t } = this;
+ if (e !== t && !(0, r.isArrayEqual)(e, t)) {
+ const a = r.Util.intersect(e, t);
+ if (a && a[2] - a[0] > 0 && a[3] - a[1] > 0)
+ return (0, r.shadow)(this, "view", a);
+ (0, r.warn)("Empty /CropBox and /MediaBox intersection.");
+ }
+ return (0, r.shadow)(this, "view", t);
+ }
+ get rotate() {
+ let e = this._getInheritableProperty("Rotate") || 0;
+ e % 90 != 0
+ ? (e = 0)
+ : e >= 360
+ ? (e %= 360)
+ : e < 0 && (e = ((e % 360) + 360) % 360);
+ return (0, r.shadow)(this, "rotate", e);
+ }
+ _onSubStreamError(e, t) {
+ if (!this.evaluatorOptions.ignoreErrors) throw e;
+ (0, r.warn)(
+ `getContentStream - ignoring sub-stream (${t}): "${e}".`,
+ );
+ }
+ getContentStream() {
+ return this.pdfManager
+ .ensure(this, "content")
+ .then((e) =>
+ e instanceof c.BaseStream
+ ? e
+ : Array.isArray(e)
+ ? new y.StreamsSequenceStream(
+ e,
+ this._onSubStreamError.bind(this),
+ )
+ : new g.NullStream(),
+ );
+ }
+ get xfaData() {
+ return (0, r.shadow)(
+ this,
+ "xfaData",
+ this.xfaFactory
+ ? { bbox: this.xfaFactory.getBoundingBox(this.pageIndex) }
+ : null,
+ );
+ }
+ #t(e, t, a) {
+ for (const n of e)
+ if (n.id) {
+ const e = s.Ref.fromString(n.id);
+ if (!e) {
+ (0, r.warn)(
+ `A non-linked annotation cannot be modified: ${n.id}`,
+ );
+ continue;
+ }
+ if (n.deleted) {
+ t.put(e);
+ continue;
+ }
+ a?.put(e);
+ n.ref = e;
+ delete n.id;
+ }
+ }
+ async saveNewAnnotations(e, t, a, r) {
+ if (this.xfaFactory)
+ throw new Error("XFA: Cannot save new annotations.");
+ const i = new b.PartialEvaluator({
+ xref: this.xref,
+ handler: e,
+ pageIndex: this.pageIndex,
+ idFactory: this._localIdFactory,
+ fontCache: this.fontCache,
+ builtInCMapCache: this.builtInCMapCache,
+ standardFontDataCache: this.standardFontDataCache,
+ globalImageCache: this.globalImageCache,
+ systemFontCache: this.systemFontCache,
+ options: this.evaluatorOptions,
+ }),
+ o = new s.RefSet(),
+ c = new s.RefSet();
+ this.#t(a, o, c);
+ const l = this.pageDict,
+ h = this.annotations.filter(
+ (e) => !(e instanceof s.Ref && o.has(e)),
+ ),
+ u = await n.AnnotationFactory.saveNewAnnotations(i, t, a, r);
+ for (const { ref: e } of u.annotations)
+ e instanceof s.Ref && !c.has(e) && h.push(e);
+ const d = l.get("Annots");
+ l.set("Annots", h);
+ const f = [];
+ await (0, S.writeObject)(this.ref, l, f, this.xref);
+ d && l.set("Annots", d);
+ const g = u.dependencies;
+ g.push({ ref: this.ref, data: f.join("") }, ...u.annotations);
+ return g;
+ }
+ save(e, t, a) {
+ const n = new b.PartialEvaluator({
+ xref: this.xref,
+ handler: e,
+ pageIndex: this.pageIndex,
+ idFactory: this._localIdFactory,
+ fontCache: this.fontCache,
+ builtInCMapCache: this.builtInCMapCache,
+ standardFontDataCache: this.standardFontDataCache,
+ globalImageCache: this.globalImageCache,
+ systemFontCache: this.systemFontCache,
+ options: this.evaluatorOptions,
+ });
+ return this._parsedAnnotations.then(function (e) {
+ const i = [];
+ for (const s of e)
+ s.mustBePrinted(a) &&
+ i.push(
+ s.save(n, t, a).catch(function (e) {
+ (0, r.warn)(
+ `save - ignoring annotation data during "${t.name}" task: "${e}".`,
+ );
+ return null;
+ }),
+ );
+ return Promise.all(i).then(function (e) {
+ return e.filter((e) => !!e);
+ });
+ });
+ }
+ loadResources(e) {
+ this.resourcesPromise ||
+ (this.resourcesPromise = this.pdfManager.ensure(
+ this,
+ "resources",
+ ));
+ return this.resourcesPromise.then(() =>
+ new p.ObjectLoader(this.resources, e, this.xref).load(),
+ );
+ }
+ getOperatorList({
+ handler: e,
+ sink: t,
+ task: a,
+ intent: o,
+ cacheKey: c,
+ annotationStorage: l = null,
+ }) {
+ const h = this.getContentStream(),
+ u = this.loadResources([
+ "ColorSpace",
+ "ExtGState",
+ "Font",
+ "Pattern",
+ "Properties",
+ "Shading",
+ "XObject",
+ ]),
+ d = new b.PartialEvaluator({
+ xref: this.xref,
+ handler: e,
+ pageIndex: this.pageIndex,
+ idFactory: this._localIdFactory,
+ fontCache: this.fontCache,
+ builtInCMapCache: this.builtInCMapCache,
+ standardFontDataCache: this.standardFontDataCache,
+ globalImageCache: this.globalImageCache,
+ systemFontCache: this.systemFontCache,
+ options: this.evaluatorOptions,
+ }),
+ f = this.xfaFactory ? null : (0, i.getNewAnnotationsMap)(l);
+ let g = null,
+ p = Promise.resolve(null);
+ if (f) {
+ const e = f.get(this.pageIndex);
+ if (e) {
+ const t = this.pdfManager.ensureDoc("annotationGlobals");
+ let i;
+ const o = new Set();
+ for (const { bitmapId: t, bitmap: a } of e)
+ !t || a || o.has(t) || o.add(t);
+ const { isOffscreenCanvasSupported: c } =
+ this.evaluatorOptions;
+ if (o.size > 0) {
+ const t = e.slice();
+ for (const [e, a] of l)
+ e.startsWith(r.AnnotationEditorPrefix) &&
+ a.bitmap &&
+ o.has(a.bitmapId) &&
+ t.push(a);
+ i = n.AnnotationFactory.generateImages(t, this.xref, c);
+ } else
+ i = n.AnnotationFactory.generateImages(e, this.xref, c);
+ g = new s.RefSet();
+ this.#t(e, g, null);
+ p = t.then((t) =>
+ t
+ ? n.AnnotationFactory.printNewAnnotations(t, d, a, e, i)
+ : null,
+ );
+ }
+ }
+ const y = Promise.all([h, u]).then(([r]) => {
+ const n = new m.OperatorList(o, t);
+ e.send("StartRenderPage", {
+ transparency: d.hasBlendModes(
+ this.resources,
+ this.nonBlendModesSet,
+ ),
+ pageIndex: this.pageIndex,
+ cacheKey: c,
+ });
+ return d
+ .getOperatorList({
+ stream: r,
+ task: a,
+ resources: this.resources,
+ operatorList: n,
+ })
+ .then(function () {
+ return n;
+ });
+ });
+ return Promise.all([y, this._parsedAnnotations, p]).then(
+ function ([e, t, n]) {
+ if (n) {
+ t = t.filter((e) => !(e.ref && g.has(e.ref)));
+ for (let e = 0, a = n.length; e < a; e++) {
+ const r = n[e];
+ if (r.refToReplace) {
+ const i = t.findIndex(
+ (e) =>
+ e.ref && (0, s.isRefsEqual)(e.ref, r.refToReplace),
+ );
+ if (i >= 0) {
+ t.splice(i, 1, r);
+ n.splice(e--, 1);
+ a--;
+ }
+ }
+ }
+ t = t.concat(n);
+ }
+ if (
+ 0 === t.length ||
+ o & r.RenderingIntentFlag.ANNOTATIONS_DISABLE
+ ) {
+ e.flush(!0);
+ return { length: e.totalLength };
+ }
+ const i = !!(o & r.RenderingIntentFlag.ANNOTATIONS_FORMS),
+ c = !!(o & r.RenderingIntentFlag.ANY),
+ h = !!(o & r.RenderingIntentFlag.DISPLAY),
+ u = !!(o & r.RenderingIntentFlag.PRINT),
+ f = [];
+ for (const e of t)
+ (c ||
+ (h && e.mustBeViewed(l, i)) ||
+ (u && e.mustBePrinted(l))) &&
+ f.push(
+ e.getOperatorList(d, a, o, i, l).catch(function (e) {
+ (0, r.warn)(
+ `getOperatorList - ignoring annotation data during "${a.name}" task: "${e}".`,
+ );
+ return {
+ opList: null,
+ separateForm: !1,
+ separateCanvas: !1,
+ };
+ }),
+ );
+ return Promise.all(f).then(function (t) {
+ let a = !1,
+ r = !1;
+ for (const {
+ opList: n,
+ separateForm: i,
+ separateCanvas: s,
+ } of t) {
+ e.addOpList(n);
+ a ||= i;
+ r ||= s;
+ }
+ e.flush(!0, { form: a, canvas: r });
+ return { length: e.totalLength };
+ });
+ },
+ );
+ }
+ extractTextContent({
+ handler: e,
+ task: t,
+ includeMarkedContent: a,
+ disableNormalization: r,
+ sink: n,
+ }) {
+ const i = this.getContentStream(),
+ s = this.loadResources([
+ "ExtGState",
+ "Font",
+ "Properties",
+ "XObject",
+ ]);
+ return Promise.all([i, s]).then(([i]) =>
+ new b.PartialEvaluator({
+ xref: this.xref,
+ handler: e,
+ pageIndex: this.pageIndex,
+ idFactory: this._localIdFactory,
+ fontCache: this.fontCache,
+ builtInCMapCache: this.builtInCMapCache,
+ standardFontDataCache: this.standardFontDataCache,
+ globalImageCache: this.globalImageCache,
+ systemFontCache: this.systemFontCache,
+ options: this.evaluatorOptions,
+ }).getTextContent({
+ stream: i,
+ task: t,
+ resources: this.resources,
+ includeMarkedContent: a,
+ disableNormalization: r,
+ sink: n,
+ viewBox: this.view,
+ }),
+ );
+ }
+ async getStructTree() {
+ const e = await this.pdfManager.ensureCatalog("structTreeRoot");
+ if (!e) return null;
+ await this._parsedAnnotations;
+ return (
+ await this.pdfManager.ensure(this, "_parseStructTree", [e])
+ ).serializable;
+ }
+ _parseStructTree(e) {
+ const t = new w.StructTreePage(e, this.pageDict);
+ t.parse(this.ref);
+ return t;
+ }
+ async getAnnotationsData(e, t, a) {
+ const n = await this._parsedAnnotations;
+ if (0 === n.length) return n;
+ const i = [],
+ s = [];
+ let o;
+ const c = !!(a & r.RenderingIntentFlag.ANY),
+ l = !!(a & r.RenderingIntentFlag.DISPLAY),
+ h = !!(a & r.RenderingIntentFlag.PRINT);
+ for (const a of n) {
+ const n = c || (l && a.viewable);
+ (n || (h && a.printable)) && i.push(a.data);
+ if (a.hasTextContent && n) {
+ o ||= new b.PartialEvaluator({
+ xref: this.xref,
+ handler: e,
+ pageIndex: this.pageIndex,
+ idFactory: this._localIdFactory,
+ fontCache: this.fontCache,
+ builtInCMapCache: this.builtInCMapCache,
+ standardFontDataCache: this.standardFontDataCache,
+ globalImageCache: this.globalImageCache,
+ systemFontCache: this.systemFontCache,
+ options: this.evaluatorOptions,
+ });
+ s.push(
+ a
+ .extractTextContent(o, t, [-1 / 0, -1 / 0, 1 / 0, 1 / 0])
+ .catch(function (e) {
+ (0, r.warn)(
+ `getAnnotationsData - ignoring textContent during "${t.name}" task: "${e}".`,
+ );
+ }),
+ );
+ }
+ }
+ await Promise.all(s);
+ return i;
+ }
+ get annotations() {
+ const e = this._getInheritableProperty("Annots");
+ return (0, r.shadow)(
+ this,
+ "annotations",
+ Array.isArray(e) ? e : [],
+ );
+ }
+ get _parsedAnnotations() {
+ const e = this.pdfManager
+ .ensure(this, "annotations")
+ .then(async (e) => {
+ if (0 === e.length) return e;
+ const t =
+ await this.pdfManager.ensureDoc("annotationGlobals");
+ if (!t) return [];
+ const a = [];
+ for (const i of e)
+ a.push(
+ n.AnnotationFactory.create(
+ this.xref,
+ i,
+ t,
+ this._localIdFactory,
+ !1,
+ this.ref,
+ ).catch(function (e) {
+ (0, r.warn)(`_parsedAnnotations: "${e}".`);
+ return null;
+ }),
+ );
+ const i = [];
+ let s;
+ for (const e of await Promise.all(a))
+ e &&
+ (e instanceof n.PopupAnnotation
+ ? (s ||= []).push(e)
+ : i.push(e));
+ s && i.push(...s);
+ return i;
+ });
+ return (0, r.shadow)(this, "_parsedAnnotations", e);
+ }
+ get jsActions() {
+ const e = (0, i.collectActions)(
+ this.xref,
+ this.pageDict,
+ r.PageActionEventType,
+ );
+ return (0, r.shadow)(this, "jsActions", e);
+ }
+ }
+ t.Page = Page;
+ const v = new Uint8Array([37, 80, 68, 70, 45]),
+ F = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]),
+ O = new Uint8Array([101, 110, 100, 111, 98, 106]);
+ function find(e, t, a = 1024, r = !1) {
+ const n = t.length,
+ i = e.peekBytes(a),
+ s = i.length - n;
+ if (s <= 0) return !1;
+ if (r) {
+ const a = n - 1;
+ let r = i.length - 1;
+ for (; r >= a; ) {
+ let s = 0;
+ for (; s < n && i[r - s] === t[a - s]; ) s++;
+ if (s >= n) {
+ e.pos += r - a;
+ return !0;
+ }
+ r--;
+ }
+ } else {
+ let a = 0;
+ for (; a <= s; ) {
+ let r = 0;
+ for (; r < n && i[a + r] === t[r]; ) r++;
+ if (r >= n) {
+ e.pos += a;
+ return !0;
+ }
+ a++;
+ }
+ }
+ return !1;
+ }
+ t.PDFDocument = class PDFDocument {
+ constructor(e, t) {
+ if (t.length <= 0)
+ throw new r.InvalidPDFException(
+ "The PDF file is empty, i.e. its size is zero bytes.",
+ );
+ this.pdfManager = e;
+ this.stream = t;
+ this.xref = new C.XRef(t, e);
+ this._pagePromises = new Map();
+ this._version = null;
+ const a = { font: 0 };
+ this._globalIdFactory = class {
+ static getDocId() {
+ return `g_${e.docId}`;
+ }
+ static createFontId() {
+ return "f" + ++a.font;
+ }
+ static createObjId() {
+ (0, r.unreachable)("Abstract method `createObjId` called.");
+ }
+ static getPageObjId() {
+ (0, r.unreachable)("Abstract method `getPageObjId` called.");
+ }
+ };
+ }
+ parse(e) {
+ this.xref.parse(e);
+ this.catalog = new h.Catalog(this.pdfManager, this.xref);
+ }
+ get linearization() {
+ let e = null;
+ try {
+ e = f.Linearization.create(this.stream);
+ } catch (e) {
+ if (e instanceof i.MissingDataException) throw e;
+ (0, r.info)(e);
+ }
+ return (0, r.shadow)(this, "linearization", e);
+ }
+ get startXRef() {
+ const e = this.stream;
+ let t = 0;
+ if (this.linearization) {
+ e.reset();
+ find(e, O) && (t = e.pos + 6 - e.start);
+ } else {
+ const a = 1024,
+ r = F.length;
+ let n = !1,
+ s = e.end;
+ for (; !n && s > 0; ) {
+ s -= a - r;
+ s < 0 && (s = 0);
+ e.pos = s;
+ n = find(e, F, a, !0);
+ }
+ if (n) {
+ e.skip(9);
+ let a;
+ do {
+ a = e.getByte();
+ } while ((0, i.isWhiteSpace)(a));
+ let r = "";
+ for (; a >= 32 && a <= 57; ) {
+ r += String.fromCharCode(a);
+ a = e.getByte();
+ }
+ t = parseInt(r, 10);
+ isNaN(t) && (t = 0);
+ }
+ }
+ return (0, r.shadow)(this, "startXRef", t);
+ }
+ checkHeader() {
+ const e = this.stream;
+ e.reset();
+ if (!find(e, v)) return;
+ e.moveStart();
+ e.skip(v.length);
+ let t,
+ a = "";
+ for (; (t = e.getByte()) > 32 && a.length < 7; )
+ a += String.fromCharCode(t);
+ i.PDF_VERSION_REGEXP.test(a)
+ ? (this._version = a)
+ : (0, r.warn)(`Invalid PDF header version: ${a}`);
+ }
+ parseStartXRef() {
+ this.xref.setStartXRef(this.startXRef);
+ }
+ get numPages() {
+ let e = 0;
+ e = this.catalog.hasActualNumPages
+ ? this.catalog.numPages
+ : this.xfaFactory
+ ? this.xfaFactory.getNumPages()
+ : this.linearization
+ ? this.linearization.numPages
+ : this.catalog.numPages;
+ return (0, r.shadow)(this, "numPages", e);
+ }
+ _hasOnlyDocumentSignatures(e, t = 0) {
+ return (
+ !!Array.isArray(e) &&
+ e.every((e) => {
+ if (!((e = this.xref.fetchIfRef(e)) instanceof s.Dict))
+ return !1;
+ if (e.has("Kids")) {
+ if (++t > 10) {
+ (0, r.warn)(
+ "_hasOnlyDocumentSignatures: maximum recursion depth reached",
+ );
+ return !1;
+ }
+ return this._hasOnlyDocumentSignatures(e.get("Kids"), t);
+ }
+ const a = (0, s.isName)(e.get("FT"), "Sig"),
+ n = e.get("Rect"),
+ i = Array.isArray(n) && n.every((e) => 0 === e);
+ return a && i;
+ })
+ );
+ }
+ get _xfaStreams() {
+ const e = this.catalog.acroForm;
+ if (!e) return null;
+ const t = e.get("XFA"),
+ a = {
+ "xdp:xdp": "",
+ template: "",
+ datasets: "",
+ config: "",
+ connectionSet: "",
+ localeSet: "",
+ stylesheet: "",
+ "/xdp:xdp": "",
+ };
+ if (t instanceof c.BaseStream && !t.isEmpty) {
+ a["xdp:xdp"] = t;
+ return a;
+ }
+ if (!Array.isArray(t) || 0 === t.length) return null;
+ for (let e = 0, r = t.length; e < r; e += 2) {
+ let n;
+ n = 0 === e ? "xdp:xdp" : e === r - 2 ? "/xdp:xdp" : t[e];
+ if (!a.hasOwnProperty(n)) continue;
+ const i = this.xref.fetchIfRef(t[e + 1]);
+ i instanceof c.BaseStream && !i.isEmpty && (a[n] = i);
+ }
+ return a;
+ }
+ get xfaDatasets() {
+ const e = this._xfaStreams;
+ if (!e) return (0, r.shadow)(this, "xfaDatasets", null);
+ for (const t of ["datasets", "xdp:xdp"]) {
+ const a = e[t];
+ if (a)
+ try {
+ const e = { [t]: (0, r.stringToUTF8String)(a.getString()) };
+ return (0, r.shadow)(
+ this,
+ "xfaDatasets",
+ new d.DatasetReader(e),
+ );
+ } catch {
+ (0, r.warn)("XFA - Invalid utf-8 string.");
+ break;
+ }
+ }
+ return (0, r.shadow)(this, "xfaDatasets", null);
+ }
+ get xfaData() {
+ const e = this._xfaStreams;
+ if (!e) return null;
+ const t = Object.create(null);
+ for (const [a, n] of Object.entries(e))
+ if (n)
+ try {
+ t[a] = (0, r.stringToUTF8String)(n.getString());
+ } catch {
+ (0, r.warn)("XFA - Invalid utf-8 string.");
+ return null;
+ }
+ return t;
+ }
+ get xfaFactory() {
+ let e;
+ this.pdfManager.enableXfa &&
+ this.catalog.needsRendering &&
+ this.formInfo.hasXfa &&
+ !this.formInfo.hasAcroForm &&
+ (e = this.xfaData);
+ return (0, r.shadow)(
+ this,
+ "xfaFactory",
+ e ? new x.XFAFactory(e) : null,
+ );
+ }
+ get isPureXfa() {
+ return !!this.xfaFactory && this.xfaFactory.isValid();
+ }
+ get htmlForXfa() {
+ return this.xfaFactory ? this.xfaFactory.getPages() : null;
+ }
+ async loadXfaImages() {
+ const e = await this.pdfManager.ensureCatalog("xfaImages");
+ if (!e) return;
+ const t = e.getKeys(),
+ a = new p.ObjectLoader(e, t, this.xref);
+ await a.load();
+ const r = new Map();
+ for (const a of t) {
+ const t = e.get(a);
+ t instanceof c.BaseStream && r.set(a, t.getBytes());
+ }
+ this.xfaFactory.setImages(r);
+ }
+ async loadXfaFonts(e, t) {
+ const a = await this.pdfManager.ensureCatalog("acroForm");
+ if (!a) return;
+ const n = await a.getAsync("DR");
+ if (!(n instanceof s.Dict)) return;
+ const c = new p.ObjectLoader(n, ["Font"], this.xref);
+ await c.load();
+ const l = n.get("Font");
+ if (!(l instanceof s.Dict)) return;
+ const h = Object.assign(
+ Object.create(null),
+ this.pdfManager.evaluatorOptions,
+ );
+ h.useSystemFonts = !1;
+ const u = new b.PartialEvaluator({
+ xref: this.xref,
+ handler: e,
+ pageIndex: -1,
+ idFactory: this._globalIdFactory,
+ fontCache: this.catalog.fontCache,
+ builtInCMapCache: this.catalog.builtInCMapCache,
+ standardFontDataCache: this.catalog.standardFontDataCache,
+ options: h,
+ }),
+ d = new m.OperatorList(),
+ f = [],
+ g = {
+ get font() {
+ return f.at(-1);
+ },
+ set font(e) {
+ f.push(e);
+ },
+ clone() {
+ return this;
+ },
+ },
+ y = new Map();
+ l.forEach((e, t) => {
+ y.set(e, t);
+ });
+ const w = [];
+ for (const [e, a] of y) {
+ const o = a.get("FontDescriptor");
+ if (!(o instanceof s.Dict)) continue;
+ let c = o.get("FontFamily");
+ c = c.replaceAll(/[ ]+(\d)/g, "$1");
+ const l = {
+ fontFamily: c,
+ fontWeight: o.get("FontWeight"),
+ italicAngle: -o.get("ItalicAngle"),
+ };
+ (0, i.validateCSSFont)(l) &&
+ w.push(
+ u
+ .handleSetFont(
+ n,
+ [s.Name.get(e), 1],
+ null,
+ d,
+ t,
+ g,
+ null,
+ l,
+ )
+ .catch(function (e) {
+ (0, r.warn)(`loadXfaFonts: "${e}".`);
+ return null;
+ }),
+ );
+ }
+ await Promise.all(w);
+ const S = this.xfaFactory.setFonts(f);
+ if (!S) return;
+ h.ignoreErrors = !0;
+ w.length = 0;
+ f.length = 0;
+ const x = new Set();
+ for (const e of S)
+ (0, o.getXfaFontName)(`${e}-Regular`) || x.add(e);
+ x.size && S.push("PdfJS-Fallback");
+ for (const e of S)
+ if (!x.has(e))
+ for (const a of [
+ { name: "Regular", fontWeight: 400, italicAngle: 0 },
+ { name: "Bold", fontWeight: 700, italicAngle: 0 },
+ { name: "Italic", fontWeight: 400, italicAngle: 12 },
+ { name: "BoldItalic", fontWeight: 700, italicAngle: 12 },
+ ]) {
+ const i = `${e}-${a.name}`,
+ c = (0, o.getXfaFontDict)(i);
+ w.push(
+ u
+ .handleSetFont(
+ n,
+ [s.Name.get(i), 1],
+ null,
+ d,
+ t,
+ g,
+ c,
+ {
+ fontFamily: e,
+ fontWeight: a.fontWeight,
+ italicAngle: a.italicAngle,
+ },
+ )
+ .catch(function (e) {
+ (0, r.warn)(`loadXfaFonts: "${e}".`);
+ return null;
+ }),
+ );
+ }
+ await Promise.all(w);
+ this.xfaFactory.appendFonts(f, x);
+ }
+ async serializeXfaData(e) {
+ return this.xfaFactory ? this.xfaFactory.serializeData(e) : null;
+ }
+ get version() {
+ return this.catalog.version || this._version;
+ }
+ get formInfo() {
+ const e = {
+ hasFields: !1,
+ hasAcroForm: !1,
+ hasXfa: !1,
+ hasSignatures: !1,
+ },
+ t = this.catalog.acroForm;
+ if (!t) return (0, r.shadow)(this, "formInfo", e);
+ try {
+ const a = t.get("Fields"),
+ r = Array.isArray(a) && a.length > 0;
+ e.hasFields = r;
+ const n = t.get("XFA");
+ e.hasXfa =
+ (Array.isArray(n) && n.length > 0) ||
+ (n instanceof c.BaseStream && !n.isEmpty);
+ const i = !!(1 & t.get("SigFlags")),
+ s = i && this._hasOnlyDocumentSignatures(a);
+ e.hasAcroForm = r && !s;
+ e.hasSignatures = i;
+ } catch (e) {
+ if (e instanceof i.MissingDataException) throw e;
+ (0, r.warn)(`Cannot fetch form information: "${e}".`);
+ }
+ return (0, r.shadow)(this, "formInfo", e);
+ }
+ get documentInfo() {
+ const e = {
+ PDFFormatVersion: this.version,
+ Language: this.catalog.lang,
+ EncryptFilterName: this.xref.encrypt
+ ? this.xref.encrypt.filterName
+ : null,
+ IsLinearized: !!this.linearization,
+ IsAcroFormPresent: this.formInfo.hasAcroForm,
+ IsXFAPresent: this.formInfo.hasXfa,
+ IsCollectionPresent: !!this.catalog.collection,
+ IsSignaturesPresent: this.formInfo.hasSignatures,
+ };
+ let t;
+ try {
+ t = this.xref.trailer.get("Info");
+ } catch (e) {
+ if (e instanceof i.MissingDataException) throw e;
+ (0, r.info)("The document information dictionary is invalid.");
+ }
+ if (!(t instanceof s.Dict))
+ return (0, r.shadow)(this, "documentInfo", e);
+ for (const a of t.getKeys()) {
+ const n = t.get(a);
+ switch (a) {
+ case "Title":
+ case "Author":
+ case "Subject":
+ case "Keywords":
+ case "Creator":
+ case "Producer":
+ case "CreationDate":
+ case "ModDate":
+ if ("string" == typeof n) {
+ e[a] = (0, r.stringToPDFString)(n);
+ continue;
+ }
+ break;
+ case "Trapped":
+ if (n instanceof s.Name) {
+ e[a] = n;
+ continue;
+ }
+ break;
+ default:
+ let t;
+ switch (typeof n) {
+ case "string":
+ t = (0, r.stringToPDFString)(n);
+ break;
+ case "number":
+ case "boolean":
+ t = n;
+ break;
+ default:
+ n instanceof s.Name && (t = n);
+ }
+ if (void 0 === t) {
+ (0, r.warn)(
+ `Bad value, for custom key "${a}", in Info: ${n}.`,
+ );
+ continue;
+ }
+ e.Custom || (e.Custom = Object.create(null));
+ e.Custom[a] = t;
+ continue;
+ }
+ (0, r.warn)(`Bad value, for key "${a}", in Info: ${n}.`);
+ }
+ return (0, r.shadow)(this, "documentInfo", e);
+ }
+ get fingerprints() {
+ function validate(e) {
+ return (
+ "string" == typeof e &&
+ e.length > 0 &&
+ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" !== e
+ );
+ }
+ function hexString(e) {
+ const t = [];
+ for (const a of e) {
+ const e = a.toString(16);
+ t.push(e.padStart(2, "0"));
+ }
+ return t.join("");
+ }
+ const e = this.xref.trailer.get("ID");
+ let t, a;
+ if (Array.isArray(e) && validate(e[0])) {
+ t = (0, r.stringToBytes)(e[0]);
+ e[1] !== e[0] &&
+ validate(e[1]) &&
+ (a = (0, r.stringToBytes)(e[1]));
+ } else
+ t = (0, l.calculateMD5)(
+ this.stream.getByteRange(0, 1024),
+ 0,
+ 1024,
+ );
+ return (0, r.shadow)(this, "fingerprints", [
+ hexString(t),
+ a ? hexString(a) : null,
+ ]);
+ }
+ async _getLinearizationPage(e) {
+ const { catalog: t, linearization: a, xref: n } = this,
+ i = s.Ref.get(a.objectNumberFirst, 0);
+ try {
+ const e = await n.fetchAsync(i);
+ if (e instanceof s.Dict) {
+ let a = e.getRaw("Type");
+ a instanceof s.Ref && (a = await n.fetchAsync(a));
+ if (
+ (0, s.isName)(a, "Page") ||
+ (!e.has("Type") && !e.has("Kids"))
+ ) {
+ t.pageKidsCountCache.has(i) ||
+ t.pageKidsCountCache.put(i, 1);
+ t.pageIndexCache.has(i) || t.pageIndexCache.put(i, 0);
+ return [e, i];
+ }
+ }
+ throw new r.FormatError(
+ "The Linearization dictionary doesn't point to a valid Page dictionary.",
+ );
+ } catch (a) {
+ (0, r.warn)(`_getLinearizationPage: "${a.message}".`);
+ return t.getPageDict(e);
+ }
+ }
+ getPage(e) {
+ const t = this._pagePromises.get(e);
+ if (t) return t;
+ const { catalog: a, linearization: r, xfaFactory: n } = this;
+ let i;
+ i = n
+ ? Promise.resolve([s.Dict.empty, null])
+ : r?.pageFirst === e
+ ? this._getLinearizationPage(e)
+ : a.getPageDict(e);
+ i = i.then(
+ ([t, r]) =>
+ new Page({
+ pdfManager: this.pdfManager,
+ xref: this.xref,
+ pageIndex: e,
+ pageDict: t,
+ ref: r,
+ globalIdFactory: this._globalIdFactory,
+ fontCache: a.fontCache,
+ builtInCMapCache: a.builtInCMapCache,
+ standardFontDataCache: a.standardFontDataCache,
+ globalImageCache: a.globalImageCache,
+ systemFontCache: a.systemFontCache,
+ nonBlendModesSet: a.nonBlendModesSet,
+ xfaFactory: n,
+ }),
+ );
+ this._pagePromises.set(e, i);
+ return i;
+ }
+ async checkFirstPage(e = !1) {
+ if (!e)
+ try {
+ await this.getPage(0);
+ } catch (e) {
+ if (e instanceof i.XRefEntryException) {
+ this._pagePromises.delete(0);
+ await this.cleanup();
+ throw new i.XRefParseException();
+ }
+ }
+ }
+ async checkLastPage(e = !1) {
+ const { catalog: t, pdfManager: a } = this;
+ t.setActualNumPages();
+ let n;
+ try {
+ await Promise.all([
+ a.ensureDoc("xfaFactory"),
+ a.ensureDoc("linearization"),
+ a.ensureCatalog("numPages"),
+ ]);
+ if (this.xfaFactory) return;
+ n = this.linearization
+ ? this.linearization.numPages
+ : t.numPages;
+ if (!Number.isInteger(n))
+ throw new r.FormatError("Page count is not an integer.");
+ if (n <= 1) return;
+ await this.getPage(n - 1);
+ } catch (s) {
+ this._pagePromises.delete(n - 1);
+ await this.cleanup();
+ if (s instanceof i.XRefEntryException && !e)
+ throw new i.XRefParseException();
+ (0, r.warn)(
+ `checkLastPage - invalid /Pages tree /Count: ${n}.`,
+ );
+ let o;
+ try {
+ o = await t.getAllPageDicts(e);
+ } catch (a) {
+ if (a instanceof i.XRefEntryException && !e)
+ throw new i.XRefParseException();
+ t.setActualNumPages(1);
+ return;
+ }
+ for (const [e, [r, n]] of o) {
+ let i;
+ if (r instanceof Error) {
+ i = Promise.reject(r);
+ i.catch(() => {});
+ } else
+ i = Promise.resolve(
+ new Page({
+ pdfManager: a,
+ xref: this.xref,
+ pageIndex: e,
+ pageDict: r,
+ ref: n,
+ globalIdFactory: this._globalIdFactory,
+ fontCache: t.fontCache,
+ builtInCMapCache: t.builtInCMapCache,
+ standardFontDataCache: t.standardFontDataCache,
+ globalImageCache: t.globalImageCache,
+ systemFontCache: t.systemFontCache,
+ nonBlendModesSet: t.nonBlendModesSet,
+ xfaFactory: null,
+ }),
+ );
+ this._pagePromises.set(e, i);
+ }
+ t.setActualNumPages(o.size);
+ }
+ }
+ fontFallback(e, t) {
+ return this.catalog.fontFallback(e, t);
+ }
+ async cleanup(e = !1) {
+ return this.catalog
+ ? this.catalog.cleanup(e)
+ : (0, u.clearGlobalCaches)();
+ }
+ #a(e, t, a, i) {
+ const s = this.xref.fetchIfRef(t);
+ if (s.has("T")) {
+ const t = (0, r.stringToPDFString)(s.get("T"));
+ e = "" === e ? t : `${e}.${t}`;
+ }
+ a.has(e) || a.set(e, []);
+ a.get(e).push(
+ n.AnnotationFactory.create(
+ this.xref,
+ t,
+ i,
+ this._localIdFactory,
+ !0,
+ null,
+ )
+ .then((e) => e?.getFieldObject())
+ .catch(function (e) {
+ (0, r.warn)(`#collectFieldObjects: "${e}".`);
+ return null;
+ }),
+ );
+ if (s.has("Kids"))
+ for (const t of s.get("Kids")) this.#a(e, t, a, i);
+ }
+ get fieldObjects() {
+ if (!this.formInfo.hasFields)
+ return (0, r.shadow)(
+ this,
+ "fieldObjects",
+ Promise.resolve(null),
+ );
+ const e = this.pdfManager
+ .ensureDoc("annotationGlobals")
+ .then(async (e) => {
+ if (!e) return null;
+ const t = Object.create(null),
+ a = new Map();
+ for (const t of this.catalog.acroForm.get("Fields"))
+ this.#a("", t, a, e);
+ const r = [];
+ for (const [e, n] of a)
+ r.push(
+ Promise.all(n).then((a) => {
+ (a = a.filter((e) => !!e)).length > 0 && (t[e] = a);
+ }),
+ );
+ await Promise.all(r);
+ return t;
+ });
+ return (0, r.shadow)(this, "fieldObjects", e);
+ }
+ get hasJSActions() {
+ const e = this.pdfManager.ensureDoc("_parseHasJSActions");
+ return (0, r.shadow)(this, "hasJSActions", e);
+ }
+ async _parseHasJSActions() {
+ const [e, t] = await Promise.all([
+ this.pdfManager.ensureCatalog("jsActions"),
+ this.pdfManager.ensureDoc("fieldObjects"),
+ ]);
+ return (
+ !!e ||
+ (!!t &&
+ Object.values(t).some((e) =>
+ e.some((e) => null !== e.actions),
+ ))
+ );
+ }
+ get calculationOrderIds() {
+ const e = this.catalog.acroForm;
+ if (!e?.has("CO"))
+ return (0, r.shadow)(this, "calculationOrderIds", null);
+ const t = e.get("CO");
+ if (!Array.isArray(t) || 0 === t.length)
+ return (0, r.shadow)(this, "calculationOrderIds", null);
+ const a = [];
+ for (const e of t) e instanceof s.Ref && a.push(e.toString());
+ return 0 === a.length
+ ? (0, r.shadow)(this, "calculationOrderIds", null)
+ : (0, r.shadow)(this, "calculationOrderIds", a);
+ }
+ get annotationGlobals() {
+ return (0, r.shadow)(
+ this,
+ "annotationGlobals",
+ n.AnnotationFactory.createGlobals(this.pdfManager),
+ );
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.PopupAnnotation =
+ t.MarkupAnnotation =
+ t.AnnotationFactory =
+ t.AnnotationBorderStyle =
+ t.Annotation =
+ void 0;
+ t.getQuadPoints = getQuadPoints;
+ var r = a(2),
+ n = a(3),
+ i = a(11),
+ s = a(4),
+ o = a(8),
+ c = a(5),
+ l = a(60),
+ h = a(66),
+ u = a(12),
+ d = a(69),
+ f = a(26),
+ g = a(76),
+ p = a(64),
+ m = a(73),
+ b = a(77);
+ t.AnnotationFactory = class AnnotationFactory {
+ static createGlobals(e) {
+ return Promise.all([
+ e.ensureCatalog("acroForm"),
+ e.ensureDoc("xfaDatasets"),
+ e.ensureCatalog("structTreeRoot"),
+ e.ensureCatalog("baseUrl"),
+ e.ensureCatalog("attachments"),
+ ]).then(
+ ([t, a, r, n, i]) => ({
+ pdfManager: e,
+ acroForm: t instanceof s.Dict ? t : s.Dict.empty,
+ xfaDatasets: a,
+ structTreeRoot: r,
+ baseUrl: n,
+ attachments: i,
+ }),
+ (e) => {
+ (0, r.warn)(`createGlobals: "${e}".`);
+ return null;
+ },
+ );
+ }
+ static async create(e, t, a, r, n, i) {
+ const s = n ? await this._getPageIndex(e, t, a.pdfManager) : null;
+ return a.pdfManager.ensure(this, "_create", [
+ e,
+ t,
+ a,
+ r,
+ n,
+ s,
+ i,
+ ]);
+ }
+ static _create(e, t, a, i, o = !1, c = null, l = null) {
+ const h = e.fetchIfRef(t);
+ if (!(h instanceof s.Dict)) return;
+ const { acroForm: u, pdfManager: d } = a,
+ f =
+ t instanceof s.Ref
+ ? t.toString()
+ : `annot_${i.createObjId()}`;
+ let g = h.get("Subtype");
+ g = g instanceof s.Name ? g.name : null;
+ const p = {
+ xref: e,
+ ref: t,
+ dict: h,
+ subtype: g,
+ id: f,
+ annotationGlobals: a,
+ collectFields: o,
+ needAppearances: !o && !0 === u.get("NeedAppearances"),
+ pageIndex: c,
+ evaluatorOptions: d.evaluatorOptions,
+ pageRef: l,
+ };
+ switch (g) {
+ case "Link":
+ return new LinkAnnotation(p);
+ case "Text":
+ return new TextAnnotation(p);
+ case "Widget":
+ let e = (0, n.getInheritableProperty)({ dict: h, key: "FT" });
+ e = e instanceof s.Name ? e.name : null;
+ switch (e) {
+ case "Tx":
+ return new TextWidgetAnnotation(p);
+ case "Btn":
+ return new ButtonWidgetAnnotation(p);
+ case "Ch":
+ return new ChoiceWidgetAnnotation(p);
+ case "Sig":
+ return new SignatureWidgetAnnotation(p);
+ }
+ (0, r.warn)(
+ `Unimplemented widget field type "${e}", falling back to base field type.`,
+ );
+ return new WidgetAnnotation(p);
+ case "Popup":
+ return new PopupAnnotation(p);
+ case "FreeText":
+ return new FreeTextAnnotation(p);
+ case "Line":
+ return new LineAnnotation(p);
+ case "Square":
+ return new SquareAnnotation(p);
+ case "Circle":
+ return new CircleAnnotation(p);
+ case "PolyLine":
+ return new PolylineAnnotation(p);
+ case "Polygon":
+ return new PolygonAnnotation(p);
+ case "Caret":
+ return new CaretAnnotation(p);
+ case "Ink":
+ return new InkAnnotation(p);
+ case "Highlight":
+ return new HighlightAnnotation(p);
+ case "Underline":
+ return new UnderlineAnnotation(p);
+ case "Squiggly":
+ return new SquigglyAnnotation(p);
+ case "StrikeOut":
+ return new StrikeOutAnnotation(p);
+ case "Stamp":
+ return new StampAnnotation(p);
+ case "FileAttachment":
+ return new FileAttachmentAnnotation(p);
+ default:
+ o ||
+ (g
+ ? (0, r.warn)(
+ `Unimplemented annotation type "${g}", falling back to base annotation.`,
+ )
+ : (0, r.warn)(
+ "Annotation is missing the required /Subtype.",
+ ));
+ return new Annotation(p);
+ }
+ }
+ static async _getPageIndex(e, t, a) {
+ try {
+ const n = await e.fetchIfRefAsync(t);
+ if (!(n instanceof s.Dict)) return -1;
+ const i = n.getRaw("P");
+ if (i instanceof s.Ref)
+ try {
+ return await a.ensureCatalog("getPageIndex", [i]);
+ } catch (e) {
+ (0, r.info)(
+ `_getPageIndex -- not a valid page reference: "${e}".`,
+ );
+ }
+ if (n.has("Kids")) return -1;
+ const o = await a.ensureDoc("numPages");
+ for (let e = 0; e < o; e++) {
+ const r = await a.getPage(e),
+ n = await a.ensure(r, "annotations");
+ for (const a of n)
+ if (a instanceof s.Ref && (0, s.isRefsEqual)(a, t))
+ return e;
+ }
+ } catch (e) {
+ (0, r.warn)(`_getPageIndex: "${e}".`);
+ }
+ return -1;
+ }
+ static generateImages(e, t, a) {
+ if (!a) {
+ (0, r.warn)(
+ "generateImages: OffscreenCanvas is not supported, cannot save or print some annotations with images.",
+ );
+ return null;
+ }
+ let n;
+ for (const { bitmapId: a, bitmap: r } of e)
+ if (r) {
+ n ||= new Map();
+ n.set(a, StampAnnotation.createImage(r, t));
+ }
+ return n;
+ }
+ static async saveNewAnnotations(e, t, a, n) {
+ const i = e.xref;
+ let o;
+ const c = [],
+ l = [],
+ { isOffscreenCanvasSupported: h } = e.options;
+ for (const u of a)
+ if (!u.deleted)
+ switch (u.annotationType) {
+ case r.AnnotationEditorType.FREETEXT:
+ if (!o) {
+ const e = new s.Dict(i);
+ e.set("BaseFont", s.Name.get("Helvetica"));
+ e.set("Type", s.Name.get("Font"));
+ e.set("Subtype", s.Name.get("Type1"));
+ e.set("Encoding", s.Name.get("WinAnsiEncoding"));
+ const t = [];
+ o = i.getNewTemporaryRef();
+ await (0, m.writeObject)(o, e, t, i);
+ c.push({ ref: o, data: t.join("") });
+ }
+ l.push(
+ FreeTextAnnotation.createNewAnnotation(i, u, c, {
+ evaluator: e,
+ task: t,
+ baseFontRef: o,
+ }),
+ );
+ break;
+ case r.AnnotationEditorType.INK:
+ l.push(InkAnnotation.createNewAnnotation(i, u, c));
+ break;
+ case r.AnnotationEditorType.STAMP:
+ if (!h) break;
+ const a = await n.get(u.bitmapId);
+ if (a.imageStream) {
+ const { imageStream: e, smaskStream: t } = a,
+ r = [];
+ if (t) {
+ const a = i.getNewTemporaryRef();
+ await (0, m.writeObject)(a, t, r, i);
+ c.push({ ref: a, data: r.join("") });
+ e.dict.set("SMask", a);
+ r.length = 0;
+ }
+ const n = (a.imageRef = i.getNewTemporaryRef());
+ await (0, m.writeObject)(n, e, r, i);
+ c.push({ ref: n, data: r.join("") });
+ a.imageStream = a.smaskStream = null;
+ }
+ l.push(
+ StampAnnotation.createNewAnnotation(i, u, c, {
+ image: a,
+ }),
+ );
+ }
+ return { annotations: await Promise.all(l), dependencies: c };
+ }
+ static async printNewAnnotations(e, t, a, n, i) {
+ if (!n) return null;
+ const { options: s, xref: o } = t,
+ c = [];
+ for (const l of n)
+ if (!l.deleted)
+ switch (l.annotationType) {
+ case r.AnnotationEditorType.FREETEXT:
+ c.push(
+ FreeTextAnnotation.createNewPrintAnnotation(e, o, l, {
+ evaluator: t,
+ task: a,
+ evaluatorOptions: s,
+ }),
+ );
+ break;
+ case r.AnnotationEditorType.INK:
+ c.push(
+ InkAnnotation.createNewPrintAnnotation(e, o, l, {
+ evaluatorOptions: s,
+ }),
+ );
+ break;
+ case r.AnnotationEditorType.STAMP:
+ if (!s.isOffscreenCanvasSupported) break;
+ const n = await i.get(l.bitmapId);
+ if (n.imageStream) {
+ const { imageStream: e, smaskStream: t } = n;
+ t && e.dict.set("SMask", t);
+ n.imageRef = new f.JpegStream(e, e.length);
+ n.imageStream = n.smaskStream = null;
+ }
+ c.push(
+ StampAnnotation.createNewPrintAnnotation(e, o, l, {
+ image: n,
+ evaluatorOptions: s,
+ }),
+ );
+ }
+ return Promise.all(c);
+ }
+ };
+ function getRgbColor(e, t = new Uint8ClampedArray(3)) {
+ if (!Array.isArray(e)) return t;
+ const a = t || new Uint8ClampedArray(3);
+ switch (e.length) {
+ case 0:
+ return null;
+ case 1:
+ u.ColorSpace.singletons.gray.getRgbItem(e, 0, a, 0);
+ return a;
+ case 3:
+ u.ColorSpace.singletons.rgb.getRgbItem(e, 0, a, 0);
+ return a;
+ case 4:
+ u.ColorSpace.singletons.cmyk.getRgbItem(e, 0, a, 0);
+ return a;
+ default:
+ return t;
+ }
+ }
+ function getPdfColorArray(e) {
+ return Array.from(e, (e) => e / 255);
+ }
+ function getQuadPoints(e, t) {
+ const a = e.getArray("QuadPoints");
+ if (!Array.isArray(a) || 0 === a.length || a.length % 8 > 0)
+ return null;
+ const r = [];
+ for (let e = 0, n = a.length / 8; e < n; e++) {
+ let n = 1 / 0,
+ i = -1 / 0,
+ s = 1 / 0,
+ o = -1 / 0;
+ for (let t = 8 * e, r = 8 * e + 8; t < r; t += 2) {
+ const e = a[t],
+ r = a[t + 1];
+ n = Math.min(e, n);
+ i = Math.max(e, i);
+ s = Math.min(r, s);
+ o = Math.max(r, o);
+ }
+ if (null !== t && (n < t[0] || i > t[2] || s < t[1] || o > t[3]))
+ return null;
+ r.push([
+ { x: n, y: o },
+ { x: i, y: o },
+ { x: n, y: s },
+ { x: i, y: s },
+ ]);
+ }
+ return r;
+ }
+ function getTransformMatrix(e, t, a) {
+ const [n, i, s, o] = r.Util.getAxialAlignedBoundingBox(t, a);
+ if (n === s || i === o) return [1, 0, 0, 1, e[0], e[1]];
+ const c = (e[2] - e[0]) / (s - n),
+ l = (e[3] - e[1]) / (o - i);
+ return [c, 0, 0, l, e[0] - n * c, e[1] - i * l];
+ }
+ class Annotation {
+ constructor(e) {
+ const { dict: t, xref: a, annotationGlobals: i } = e;
+ this.setTitle(t.get("T"));
+ this.setContents(t.get("Contents"));
+ this.setModificationDate(t.get("M"));
+ this.setFlags(t.get("F"));
+ this.setRectangle(t.getArray("Rect"));
+ this.setColor(t.getArray("C"));
+ this.setBorderStyle(t);
+ this.setAppearance(t);
+ this.setOptionalContent(t);
+ const o = t.get("MK");
+ this.setBorderAndBackgroundColors(o);
+ this.setRotation(o, t);
+ this.ref = e.ref instanceof s.Ref ? e.ref : null;
+ this._streams = [];
+ this.appearance && this._streams.push(this.appearance);
+ const c = !!(this.flags & r.AnnotationFlag.LOCKED),
+ l = !!(this.flags & r.AnnotationFlag.LOCKEDCONTENTS);
+ if (i.structTreeRoot) {
+ let a = t.get("StructParent");
+ a = Number.isInteger(a) && a >= 0 ? a : -1;
+ i.structTreeRoot.addAnnotationIdToPage(e.pageRef, a);
+ }
+ this.data = {
+ annotationFlags: this.flags,
+ borderStyle: this.borderStyle,
+ color: this.color,
+ backgroundColor: this.backgroundColor,
+ borderColor: this.borderColor,
+ rotation: this.rotation,
+ contentsObj: this._contents,
+ hasAppearance: !!this.appearance,
+ id: e.id,
+ modificationDate: this.modificationDate,
+ rect: this.rectangle,
+ subtype: e.subtype,
+ hasOwnCanvas: !1,
+ noRotate: !!(this.flags & r.AnnotationFlag.NOROTATE),
+ noHTML: c && l,
+ };
+ if (e.collectFields) {
+ const i = t.get("Kids");
+ if (Array.isArray(i)) {
+ const e = [];
+ for (const t of i) t instanceof s.Ref && e.push(t.toString());
+ 0 !== e.length && (this.data.kidIds = e);
+ }
+ this.data.actions = (0, n.collectActions)(
+ a,
+ t,
+ r.AnnotationActionEventType,
+ );
+ this.data.fieldName = this._constructFieldName(t);
+ this.data.pageIndex = e.pageIndex;
+ }
+ this._isOffscreenCanvasSupported =
+ e.evaluatorOptions.isOffscreenCanvasSupported;
+ this._fallbackFontDict = null;
+ this._needAppearances = !1;
+ }
+ _hasFlag(e, t) {
+ return !!(e & t);
+ }
+ _isViewable(e) {
+ return (
+ !this._hasFlag(e, r.AnnotationFlag.INVISIBLE) &&
+ !this._hasFlag(e, r.AnnotationFlag.NOVIEW)
+ );
+ }
+ _isPrintable(e) {
+ return (
+ this._hasFlag(e, r.AnnotationFlag.PRINT) &&
+ !this._hasFlag(e, r.AnnotationFlag.HIDDEN) &&
+ !this._hasFlag(e, r.AnnotationFlag.INVISIBLE)
+ );
+ }
+ mustBeViewed(e, t) {
+ const a = e?.get(this.data.id)?.noView;
+ return void 0 !== a
+ ? !a
+ : this.viewable &&
+ !this._hasFlag(this.flags, r.AnnotationFlag.HIDDEN);
+ }
+ mustBePrinted(e) {
+ const t = e?.get(this.data.id)?.noPrint;
+ return void 0 !== t ? !t : this.printable;
+ }
+ get viewable() {
+ return (
+ null !== this.data.quadPoints &&
+ (0 === this.flags || this._isViewable(this.flags))
+ );
+ }
+ get printable() {
+ return (
+ null !== this.data.quadPoints &&
+ 0 !== this.flags &&
+ this._isPrintable(this.flags)
+ );
+ }
+ _parseStringHelper(e) {
+ const t = "string" == typeof e ? (0, r.stringToPDFString)(e) : "";
+ return {
+ str: t,
+ dir: t && "rtl" === (0, l.bidi)(t).dir ? "rtl" : "ltr",
+ };
+ }
+ setDefaultAppearance(e) {
+ const { dict: t, annotationGlobals: a } = e,
+ r =
+ (0, n.getInheritableProperty)({ dict: t, key: "DA" }) ||
+ a.acroForm.get("DA");
+ this._defaultAppearance = "string" == typeof r ? r : "";
+ this.data.defaultAppearanceData = (0, i.parseDefaultAppearance)(
+ this._defaultAppearance,
+ );
+ }
+ setTitle(e) {
+ this._title = this._parseStringHelper(e);
+ }
+ setContents(e) {
+ this._contents = this._parseStringHelper(e);
+ }
+ setModificationDate(e) {
+ this.modificationDate = "string" == typeof e ? e : null;
+ }
+ setFlags(e) {
+ this.flags = Number.isInteger(e) && e > 0 ? e : 0;
+ }
+ hasFlag(e) {
+ return this._hasFlag(this.flags, e);
+ }
+ setRectangle(e) {
+ this.rectangle =
+ Array.isArray(e) && 4 === e.length
+ ? r.Util.normalizeRect(e)
+ : [0, 0, 0, 0];
+ }
+ setColor(e) {
+ this.color = getRgbColor(e);
+ }
+ setLineEndings(e) {
+ this.lineEndings = ["None", "None"];
+ if (Array.isArray(e) && 2 === e.length)
+ for (let t = 0; t < 2; t++) {
+ const a = e[t];
+ if (a instanceof s.Name)
+ switch (a.name) {
+ case "None":
+ continue;
+ case "Square":
+ case "Circle":
+ case "Diamond":
+ case "OpenArrow":
+ case "ClosedArrow":
+ case "Butt":
+ case "ROpenArrow":
+ case "RClosedArrow":
+ case "Slash":
+ this.lineEndings[t] = a.name;
+ continue;
+ }
+ (0, r.warn)(`Ignoring invalid lineEnding: ${a}`);
+ }
+ }
+ setRotation(e, t) {
+ this.rotation = 0;
+ let a =
+ e instanceof s.Dict ? e.get("R") || 0 : t.get("Rotate") || 0;
+ if (Number.isInteger(a) && 0 !== a) {
+ a %= 360;
+ a < 0 && (a += 360);
+ a % 90 == 0 && (this.rotation = a);
+ }
+ }
+ setBorderAndBackgroundColors(e) {
+ if (e instanceof s.Dict) {
+ this.borderColor = getRgbColor(e.getArray("BC"), null);
+ this.backgroundColor = getRgbColor(e.getArray("BG"), null);
+ } else this.borderColor = this.backgroundColor = null;
+ }
+ setBorderStyle(e) {
+ this.borderStyle = new AnnotationBorderStyle();
+ if (e instanceof s.Dict)
+ if (e.has("BS")) {
+ const t = e.get("BS"),
+ a = t.get("Type");
+ if (!a || (0, s.isName)(a, "Border")) {
+ this.borderStyle.setWidth(t.get("W"), this.rectangle);
+ this.borderStyle.setStyle(t.get("S"));
+ this.borderStyle.setDashArray(t.getArray("D"));
+ }
+ } else if (e.has("Border")) {
+ const t = e.getArray("Border");
+ if (Array.isArray(t) && t.length >= 3) {
+ this.borderStyle.setHorizontalCornerRadius(t[0]);
+ this.borderStyle.setVerticalCornerRadius(t[1]);
+ this.borderStyle.setWidth(t[2], this.rectangle);
+ 4 === t.length && this.borderStyle.setDashArray(t[3], !0);
+ }
+ } else this.borderStyle.setWidth(0);
+ }
+ setAppearance(e) {
+ this.appearance = null;
+ const t = e.get("AP");
+ if (!(t instanceof s.Dict)) return;
+ const a = t.get("N");
+ if (a instanceof c.BaseStream) {
+ this.appearance = a;
+ return;
+ }
+ if (!(a instanceof s.Dict)) return;
+ const r = e.get("AS");
+ if (!(r instanceof s.Name && a.has(r.name))) return;
+ const n = a.get(r.name);
+ n instanceof c.BaseStream && (this.appearance = n);
+ }
+ setOptionalContent(e) {
+ this.oc = null;
+ const t = e.get("OC");
+ t instanceof s.Name
+ ? (0, r.warn)(
+ "setOptionalContent: Support for /Name-entry is not implemented.",
+ )
+ : t instanceof s.Dict && (this.oc = t);
+ }
+ loadResources(e, t) {
+ return t.dict.getAsync("Resources").then((t) => {
+ if (!t) return;
+ return new g.ObjectLoader(t, e, t.xref)
+ .load()
+ .then(function () {
+ return t;
+ });
+ });
+ }
+ async getOperatorList(e, t, a, n, i) {
+ const c = this.data;
+ let l = this.appearance;
+ const h = !!(
+ this.data.hasOwnCanvas && a & r.RenderingIntentFlag.DISPLAY
+ );
+ if (!l) {
+ if (!h)
+ return {
+ opList: new p.OperatorList(),
+ separateForm: !1,
+ separateCanvas: !1,
+ };
+ l = new o.StringStream("");
+ l.dict = new s.Dict();
+ }
+ const u = l.dict,
+ d = await this.loadResources(
+ [
+ "ExtGState",
+ "ColorSpace",
+ "Pattern",
+ "Shading",
+ "XObject",
+ "Font",
+ ],
+ l,
+ ),
+ f = u.getArray("BBox") || [0, 0, 1, 1],
+ g = u.getArray("Matrix") || [1, 0, 0, 1, 0, 0],
+ m = getTransformMatrix(c.rect, f, g),
+ b = new p.OperatorList();
+ let y;
+ this.oc && (y = await e.parseMarkedContentProps(this.oc, null));
+ void 0 !== y && b.addOp(r.OPS.beginMarkedContentProps, ["OC", y]);
+ b.addOp(r.OPS.beginAnnotation, [c.id, c.rect, m, g, h]);
+ await e.getOperatorList({
+ stream: l,
+ task: t,
+ resources: d,
+ operatorList: b,
+ fallbackFontDict: this._fallbackFontDict,
+ });
+ b.addOp(r.OPS.endAnnotation, []);
+ void 0 !== y && b.addOp(r.OPS.endMarkedContent, []);
+ this.reset();
+ return { opList: b, separateForm: !1, separateCanvas: h };
+ }
+ async save(e, t, a) {
+ return null;
+ }
+ get hasTextContent() {
+ return !1;
+ }
+ async extractTextContent(e, t, a) {
+ if (!this.appearance) return;
+ const n = await this.loadResources(
+ ["ExtGState", "Font", "Properties", "XObject"],
+ this.appearance,
+ ),
+ i = [],
+ s = [];
+ let o = null;
+ const c = {
+ desiredSize: Math.Infinity,
+ ready: !0,
+ enqueue(e, t) {
+ for (const t of e.items)
+ if (void 0 !== t.str) {
+ o ||= t.transform.slice(-2);
+ s.push(t.str);
+ if (t.hasEOL) {
+ i.push(s.join(""));
+ s.length = 0;
+ }
+ }
+ },
+ };
+ await e.getTextContent({
+ stream: this.appearance,
+ task: t,
+ resources: n,
+ includeMarkedContent: !0,
+ sink: c,
+ viewBox: a,
+ });
+ this.reset();
+ s.length && i.push(s.join(""));
+ if (i.length > 1 || i[0]) {
+ const e = this.appearance.dict,
+ t = e.getArray("BBox") || [0, 0, 1, 1],
+ a = e.getArray("Matrix") || [1, 0, 0, 1, 0, 0],
+ n = this.data.rect,
+ s = getTransformMatrix(n, t, a);
+ s[4] -= n[0];
+ s[5] -= n[1];
+ o = r.Util.applyTransform(o, s);
+ o = r.Util.applyTransform(o, a);
+ this.data.textPosition = o;
+ this.data.textContent = i;
+ }
+ }
+ getFieldObject() {
+ return this.data.kidIds
+ ? {
+ id: this.data.id,
+ actions: this.data.actions,
+ name: this.data.fieldName,
+ strokeColor: this.data.borderColor,
+ fillColor: this.data.backgroundColor,
+ type: "",
+ kidIds: this.data.kidIds,
+ page: this.data.pageIndex,
+ rotation: this.rotation,
+ }
+ : null;
+ }
+ reset() {
+ for (const e of this._streams) e.reset();
+ }
+ _constructFieldName(e) {
+ if (!e.has("T") && !e.has("Parent")) {
+ (0, r.warn)(
+ "Unknown field name, falling back to empty field name.",
+ );
+ return "";
+ }
+ if (!e.has("Parent")) return (0, r.stringToPDFString)(e.get("T"));
+ const t = [];
+ e.has("T") && t.unshift((0, r.stringToPDFString)(e.get("T")));
+ let a = e;
+ const n = new s.RefSet();
+ e.objId && n.put(e.objId);
+ for (; a.has("Parent"); ) {
+ a = a.get("Parent");
+ if (!(a instanceof s.Dict) || (a.objId && n.has(a.objId)))
+ break;
+ a.objId && n.put(a.objId);
+ a.has("T") && t.unshift((0, r.stringToPDFString)(a.get("T")));
+ }
+ return t.join(".");
+ }
+ }
+ t.Annotation = Annotation;
+ class AnnotationBorderStyle {
+ constructor() {
+ this.width = 1;
+ this.style = r.AnnotationBorderStyleType.SOLID;
+ this.dashArray = [3];
+ this.horizontalCornerRadius = 0;
+ this.verticalCornerRadius = 0;
+ }
+ setWidth(e, t = [0, 0, 0, 0]) {
+ if (e instanceof s.Name) this.width = 0;
+ else if ("number" == typeof e) {
+ if (e > 0) {
+ const a = (t[2] - t[0]) / 2,
+ n = (t[3] - t[1]) / 2;
+ if (a > 0 && n > 0 && (e > a || e > n)) {
+ (0, r.warn)(
+ `AnnotationBorderStyle.setWidth - ignoring width: ${e}`,
+ );
+ e = 1;
+ }
+ }
+ this.width = e;
+ }
+ }
+ setStyle(e) {
+ if (e instanceof s.Name)
+ switch (e.name) {
+ case "S":
+ this.style = r.AnnotationBorderStyleType.SOLID;
+ break;
+ case "D":
+ this.style = r.AnnotationBorderStyleType.DASHED;
+ break;
+ case "B":
+ this.style = r.AnnotationBorderStyleType.BEVELED;
+ break;
+ case "I":
+ this.style = r.AnnotationBorderStyleType.INSET;
+ break;
+ case "U":
+ this.style = r.AnnotationBorderStyleType.UNDERLINE;
+ }
+ }
+ setDashArray(e, t = !1) {
+ if (Array.isArray(e) && e.length > 0) {
+ let a = !0,
+ r = !0;
+ for (const t of e) {
+ if (!(+t >= 0)) {
+ a = !1;
+ break;
+ }
+ t > 0 && (r = !1);
+ }
+ if (a && !r) {
+ this.dashArray = e;
+ t && this.setStyle(s.Name.get("D"));
+ } else this.width = 0;
+ } else e && (this.width = 0);
+ }
+ setHorizontalCornerRadius(e) {
+ Number.isInteger(e) && (this.horizontalCornerRadius = e);
+ }
+ setVerticalCornerRadius(e) {
+ Number.isInteger(e) && (this.verticalCornerRadius = e);
+ }
+ }
+ t.AnnotationBorderStyle = AnnotationBorderStyle;
+ class MarkupAnnotation extends Annotation {
+ constructor(e) {
+ super(e);
+ const { dict: t } = e;
+ if (t.has("IRT")) {
+ const e = t.getRaw("IRT");
+ this.data.inReplyTo = e instanceof s.Ref ? e.toString() : null;
+ const a = t.get("RT");
+ this.data.replyType =
+ a instanceof s.Name ? a.name : r.AnnotationReplyType.REPLY;
+ }
+ let a = null;
+ if (this.data.replyType === r.AnnotationReplyType.GROUP) {
+ const e = t.get("IRT");
+ this.setTitle(e.get("T"));
+ this.data.titleObj = this._title;
+ this.setContents(e.get("Contents"));
+ this.data.contentsObj = this._contents;
+ if (e.has("CreationDate")) {
+ this.setCreationDate(e.get("CreationDate"));
+ this.data.creationDate = this.creationDate;
+ } else this.data.creationDate = null;
+ if (e.has("M")) {
+ this.setModificationDate(e.get("M"));
+ this.data.modificationDate = this.modificationDate;
+ } else this.data.modificationDate = null;
+ a = e.getRaw("Popup");
+ if (e.has("C")) {
+ this.setColor(e.getArray("C"));
+ this.data.color = this.color;
+ } else this.data.color = null;
+ } else {
+ this.data.titleObj = this._title;
+ this.setCreationDate(t.get("CreationDate"));
+ this.data.creationDate = this.creationDate;
+ a = t.getRaw("Popup");
+ t.has("C") || (this.data.color = null);
+ }
+ this.data.popupRef = a instanceof s.Ref ? a.toString() : null;
+ t.has("RC") &&
+ (this.data.richText = b.XFAFactory.getRichTextAsHtml(
+ t.get("RC"),
+ ));
+ }
+ setCreationDate(e) {
+ this.creationDate = "string" == typeof e ? e : null;
+ }
+ _setDefaultAppearance({
+ xref: e,
+ extra: t,
+ strokeColor: a,
+ fillColor: r,
+ blendMode: n,
+ strokeAlpha: i,
+ fillAlpha: c,
+ pointsCallback: l,
+ }) {
+ let h = Number.MAX_VALUE,
+ u = Number.MAX_VALUE,
+ d = Number.MIN_VALUE,
+ f = Number.MIN_VALUE;
+ const g = ["q"];
+ t && g.push(t);
+ a && g.push(`${a[0]} ${a[1]} ${a[2]} RG`);
+ r && g.push(`${r[0]} ${r[1]} ${r[2]} rg`);
+ let p = this.data.quadPoints;
+ p ||
+ (p = [
+ [
+ { x: this.rectangle[0], y: this.rectangle[3] },
+ { x: this.rectangle[2], y: this.rectangle[3] },
+ { x: this.rectangle[0], y: this.rectangle[1] },
+ { x: this.rectangle[2], y: this.rectangle[1] },
+ ],
+ ]);
+ for (const e of p) {
+ const [t, a, r, n] = l(g, e);
+ h = Math.min(h, t);
+ d = Math.max(d, a);
+ u = Math.min(u, r);
+ f = Math.max(f, n);
+ }
+ g.push("Q");
+ const m = new s.Dict(e),
+ b = new s.Dict(e);
+ b.set("Subtype", s.Name.get("Form"));
+ const y = new o.StringStream(g.join(" "));
+ y.dict = b;
+ m.set("Fm0", y);
+ const w = new s.Dict(e);
+ n && w.set("BM", s.Name.get(n));
+ "number" == typeof i && w.set("CA", i);
+ "number" == typeof c && w.set("ca", c);
+ const S = new s.Dict(e);
+ S.set("GS0", w);
+ const x = new s.Dict(e);
+ x.set("ExtGState", S);
+ x.set("XObject", m);
+ const C = new s.Dict(e);
+ C.set("Resources", x);
+ const k = (this.data.rect = [h, u, d, f]);
+ C.set("BBox", k);
+ this.appearance = new o.StringStream("/GS0 gs /Fm0 Do");
+ this.appearance.dict = C;
+ this._streams.push(this.appearance, y);
+ }
+ static async createNewAnnotation(e, t, a, r) {
+ const n = (t.ref ||= e.getNewTemporaryRef()),
+ i = await this.createNewAppearanceStream(t, e, r),
+ s = [];
+ let o;
+ if (i) {
+ const r = e.getNewTemporaryRef();
+ o = this.createNewDict(t, e, { apRef: r });
+ await (0, m.writeObject)(r, i, s, e);
+ a.push({ ref: r, data: s.join("") });
+ } else o = this.createNewDict(t, e, {});
+ Number.isInteger(t.parentTreeId) &&
+ o.set("StructParent", t.parentTreeId);
+ s.length = 0;
+ await (0, m.writeObject)(n, o, s, e);
+ return { ref: n, data: s.join("") };
+ }
+ static async createNewPrintAnnotation(e, t, a, r) {
+ const n = await this.createNewAppearanceStream(a, t, r),
+ i = this.createNewDict(a, t, { ap: n }),
+ s = new this.prototype.constructor({
+ dict: i,
+ xref: t,
+ annotationGlobals: e,
+ evaluatorOptions: r.evaluatorOptions,
+ });
+ a.ref && (s.ref = s.refToReplace = a.ref);
+ return s;
+ }
+ }
+ t.MarkupAnnotation = MarkupAnnotation;
+ class WidgetAnnotation extends Annotation {
+ constructor(e) {
+ super(e);
+ const { dict: t, xref: a, annotationGlobals: i } = e,
+ o = this.data;
+ this._needAppearances = e.needAppearances;
+ o.annotationType = r.AnnotationType.WIDGET;
+ void 0 === o.fieldName &&
+ (o.fieldName = this._constructFieldName(t));
+ void 0 === o.actions &&
+ (o.actions = (0, n.collectActions)(
+ a,
+ t,
+ r.AnnotationActionEventType,
+ ));
+ let c = (0, n.getInheritableProperty)({
+ dict: t,
+ key: "V",
+ getArray: !0,
+ });
+ o.fieldValue = this._decodeFormValue(c);
+ const l = (0, n.getInheritableProperty)({
+ dict: t,
+ key: "DV",
+ getArray: !0,
+ });
+ o.defaultFieldValue = this._decodeFormValue(l);
+ if (void 0 === c && i.xfaDatasets) {
+ const e = this._title.str;
+ if (e) {
+ this._hasValueFromXFA = !0;
+ o.fieldValue = c = i.xfaDatasets.getValue(e);
+ }
+ }
+ void 0 === c &&
+ null !== o.defaultFieldValue &&
+ (o.fieldValue = o.defaultFieldValue);
+ o.alternativeText = (0, r.stringToPDFString)(t.get("TU") || "");
+ this.setDefaultAppearance(e);
+ o.hasAppearance ||=
+ this._needAppearances &&
+ void 0 !== o.fieldValue &&
+ null !== o.fieldValue;
+ const h = (0, n.getInheritableProperty)({ dict: t, key: "FT" });
+ o.fieldType = h instanceof s.Name ? h.name : null;
+ const u = (0, n.getInheritableProperty)({ dict: t, key: "DR" }),
+ d = i.acroForm.get("DR"),
+ f = this.appearance?.dict.get("Resources");
+ this._fieldResources = {
+ localResources: u,
+ acroFormResources: d,
+ appearanceResources: f,
+ mergedResources: s.Dict.merge({
+ xref: a,
+ dictArray: [u, f, d],
+ mergeSubDicts: !0,
+ }),
+ };
+ o.fieldFlags = (0, n.getInheritableProperty)({
+ dict: t,
+ key: "Ff",
+ });
+ (!Number.isInteger(o.fieldFlags) || o.fieldFlags < 0) &&
+ (o.fieldFlags = 0);
+ o.readOnly = this.hasFieldFlag(r.AnnotationFieldFlag.READONLY);
+ o.required = this.hasFieldFlag(r.AnnotationFieldFlag.REQUIRED);
+ o.hidden =
+ this._hasFlag(o.annotationFlags, r.AnnotationFlag.HIDDEN) ||
+ this._hasFlag(o.annotationFlags, r.AnnotationFlag.NOVIEW);
+ }
+ _decodeFormValue(e) {
+ return Array.isArray(e)
+ ? e
+ .filter((e) => "string" == typeof e)
+ .map((e) => (0, r.stringToPDFString)(e))
+ : e instanceof s.Name
+ ? (0, r.stringToPDFString)(e.name)
+ : "string" == typeof e
+ ? (0, r.stringToPDFString)(e)
+ : null;
+ }
+ hasFieldFlag(e) {
+ return !!(this.data.fieldFlags & e);
+ }
+ _isViewable(e) {
+ return !this._hasFlag(e, r.AnnotationFlag.INVISIBLE);
+ }
+ mustBeViewed(e, t) {
+ return t
+ ? this.viewable
+ : super.mustBeViewed(e, t) &&
+ !this._hasFlag(this.flags, r.AnnotationFlag.NOVIEW);
+ }
+ getRotationMatrix(e) {
+ let t = e?.get(this.data.id)?.rotation;
+ void 0 === t && (t = this.rotation);
+ if (0 === t) return r.IDENTITY_MATRIX;
+ const a = this.data.rect[2] - this.data.rect[0],
+ i = this.data.rect[3] - this.data.rect[1];
+ return (0, n.getRotationMatrix)(t, a, i);
+ }
+ getBorderAndBackgroundAppearances(e) {
+ let t = e?.get(this.data.id)?.rotation;
+ void 0 === t && (t = this.rotation);
+ if (!this.backgroundColor && !this.borderColor) return "";
+ const a = this.data.rect[2] - this.data.rect[0],
+ r = this.data.rect[3] - this.data.rect[1],
+ n =
+ 0 === t || 180 === t
+ ? `0 0 ${a} ${r} re`
+ : `0 0 ${r} ${a} re`;
+ let s = "";
+ this.backgroundColor &&
+ (s = `${(0, i.getPdfColor)(this.backgroundColor, !0)} ${n} f `);
+ if (this.borderColor) {
+ s += `${this.borderStyle.width || 1} w ${(0, i.getPdfColor)(
+ this.borderColor,
+ !1,
+ )} ${n} S `;
+ }
+ return s;
+ }
+ async getOperatorList(e, t, a, n, i) {
+ if (
+ n &&
+ !(this instanceof SignatureWidgetAnnotation) &&
+ !this.data.noHTML &&
+ !this.data.hasOwnCanvas
+ )
+ return {
+ opList: new p.OperatorList(),
+ separateForm: !0,
+ separateCanvas: !1,
+ };
+ if (!this._hasText) return super.getOperatorList(e, t, a, n, i);
+ const s = await this._getAppearance(e, t, a, i);
+ if (this.appearance && null === s)
+ return super.getOperatorList(e, t, a, n, i);
+ const c = new p.OperatorList();
+ if (!this._defaultAppearance || null === s)
+ return { opList: c, separateForm: !1, separateCanvas: !1 };
+ const l = !!(
+ this.data.hasOwnCanvas && a & r.RenderingIntentFlag.DISPLAY
+ ),
+ h = [
+ 0,
+ 0,
+ this.data.rect[2] - this.data.rect[0],
+ this.data.rect[3] - this.data.rect[1],
+ ],
+ u = getTransformMatrix(this.data.rect, h, [1, 0, 0, 1, 0, 0]);
+ let d;
+ this.oc && (d = await e.parseMarkedContentProps(this.oc, null));
+ void 0 !== d && c.addOp(r.OPS.beginMarkedContentProps, ["OC", d]);
+ c.addOp(r.OPS.beginAnnotation, [
+ this.data.id,
+ this.data.rect,
+ u,
+ this.getRotationMatrix(i),
+ l,
+ ]);
+ const f = new o.StringStream(s);
+ await e.getOperatorList({
+ stream: f,
+ task: t,
+ resources: this._fieldResources.mergedResources,
+ operatorList: c,
+ });
+ c.addOp(r.OPS.endAnnotation, []);
+ void 0 !== d && c.addOp(r.OPS.endMarkedContent, []);
+ return { opList: c, separateForm: !1, separateCanvas: l };
+ }
+ _getMKDict(e) {
+ const t = new s.Dict(null);
+ e && t.set("R", e);
+ this.borderColor &&
+ t.set("BC", getPdfColorArray(this.borderColor));
+ this.backgroundColor &&
+ t.set("BG", getPdfColorArray(this.backgroundColor));
+ return t.size > 0 ? t : null;
+ }
+ amendSavedDict(e, t) {}
+ async save(e, t, a) {
+ const i = a?.get(this.data.id);
+ let c = i?.value,
+ l = i?.rotation;
+ if (c === this.data.fieldValue || void 0 === c) {
+ if (!this._hasValueFromXFA && void 0 === l) return null;
+ c ||= this.data.fieldValue;
+ }
+ if (
+ void 0 === l &&
+ !this._hasValueFromXFA &&
+ Array.isArray(c) &&
+ Array.isArray(this.data.fieldValue) &&
+ c.length === this.data.fieldValue.length &&
+ c.every((e, t) => e === this.data.fieldValue[t])
+ )
+ return null;
+ void 0 === l && (l = this.rotation);
+ let h = null;
+ if (!this._needAppearances) {
+ h = await this._getAppearance(
+ e,
+ t,
+ r.RenderingIntentFlag.SAVE,
+ a,
+ );
+ if (null === h) return null;
+ }
+ let u = !1;
+ if (h?.needAppearances) {
+ u = !0;
+ h = null;
+ }
+ const { xref: d } = e,
+ f = d.fetchIfRef(this.ref);
+ if (!(f instanceof s.Dict)) return null;
+ const g = new s.Dict(d);
+ for (const e of f.getKeys()) "AP" !== e && g.set(e, f.getRaw(e));
+ const p = { path: this.data.fieldName, value: c },
+ encoder = (e) =>
+ (0, n.isAscii)(e) ? e : (0, n.stringToUTF16String)(e, !0);
+ g.set("V", Array.isArray(c) ? c.map(encoder) : encoder(c));
+ this.amendSavedDict(a, g);
+ const b = this._getMKDict(l);
+ b && g.set("MK", b);
+ const y = [],
+ w = [{ ref: this.ref, data: "", xfa: p, needAppearances: u }];
+ if (null !== h) {
+ const e = d.getNewTemporaryRef(),
+ t = new s.Dict(d);
+ g.set("AP", t);
+ t.set("N", e);
+ const n = this._getSaveFieldResources(d),
+ i = new o.StringStream(h),
+ c = (i.dict = new s.Dict(d));
+ c.set("Subtype", s.Name.get("Form"));
+ c.set("Resources", n);
+ c.set("BBox", [
+ 0,
+ 0,
+ this.data.rect[2] - this.data.rect[0],
+ this.data.rect[3] - this.data.rect[1],
+ ]);
+ const l = this.getRotationMatrix(a);
+ l !== r.IDENTITY_MATRIX && c.set("Matrix", l);
+ await (0, m.writeObject)(e, i, y, d);
+ w.push({
+ ref: e,
+ data: y.join(""),
+ xfa: null,
+ needAppearances: !1,
+ });
+ y.length = 0;
+ }
+ g.set("M", `D:${(0, r.getModificationDate)()}`);
+ await (0, m.writeObject)(this.ref, g, y, d);
+ w[0].data = y.join("");
+ return w;
+ }
+ async _getAppearance(e, t, a, s) {
+ if (this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD))
+ return null;
+ const o = s?.get(this.data.id);
+ let c, l;
+ if (o) {
+ c = o.formattedValue || o.value;
+ l = o.rotation;
+ }
+ if (
+ void 0 === l &&
+ void 0 === c &&
+ !this._needAppearances &&
+ (!this._hasValueFromXFA || this.appearance)
+ )
+ return null;
+ const h = this.getBorderAndBackgroundAppearances(s);
+ if (void 0 === c) {
+ c = this.data.fieldValue;
+ if (!c) return `/Tx BMC q ${h}Q EMC`;
+ }
+ Array.isArray(c) && 1 === c.length && (c = c[0]);
+ (0, r.assert)(
+ "string" == typeof c,
+ "Expected `value` to be a string.",
+ );
+ c = c.trim();
+ if (this.data.combo) {
+ const e = this.data.options.find(
+ ({ exportValue: e }) => c === e,
+ );
+ c = e?.displayValue || c;
+ }
+ if ("" === c) return `/Tx BMC q ${h}Q EMC`;
+ void 0 === l && (l = this.rotation);
+ let u,
+ d = -1;
+ if (this.data.multiLine) {
+ u = c.split(/\r\n?|\n/).map((e) => e.normalize("NFC"));
+ d = u.length;
+ } else u = [c.replace(/\r\n?|\n/, "").normalize("NFC")];
+ let f = this.data.rect[3] - this.data.rect[1],
+ g = this.data.rect[2] - this.data.rect[0];
+ (90 !== l && 270 !== l) || ([g, f] = [f, g]);
+ this._defaultAppearance ||
+ (this.data.defaultAppearanceData = (0,
+ i.parseDefaultAppearance)(
+ (this._defaultAppearance = "/Helvetica 0 Tf 0 g"),
+ ));
+ let p,
+ m,
+ b,
+ y = await WidgetAnnotation._getFontData(
+ e,
+ t,
+ this.data.defaultAppearanceData,
+ this._fieldResources.mergedResources,
+ );
+ const w = [];
+ let S = !1;
+ for (const e of u) {
+ const t = y.encodeString(e);
+ t.length > 1 && (S = !0);
+ w.push(t.join(""));
+ }
+ if (S && a & r.RenderingIntentFlag.SAVE)
+ return { needAppearances: !0 };
+ if (S && this._isOffscreenCanvasSupported) {
+ const a = this.data.comb ? "monospace" : "sans-serif",
+ r = new i.FakeUnicodeFont(e.xref, a),
+ s = r.createFontResources(u.join("")),
+ o = s.getRaw("Font");
+ if (this._fieldResources.mergedResources.has("Font")) {
+ const e = this._fieldResources.mergedResources.get("Font");
+ for (const t of o.getKeys()) e.set(t, o.getRaw(t));
+ } else this._fieldResources.mergedResources.set("Font", o);
+ const l = r.fontName.name;
+ y = await WidgetAnnotation._getFontData(
+ e,
+ t,
+ { fontName: l, fontSize: 0 },
+ s,
+ );
+ for (let e = 0, t = w.length; e < t; e++)
+ w[e] = (0, n.stringToUTF16String)(u[e]);
+ const h = Object.assign(
+ Object.create(null),
+ this.data.defaultAppearanceData,
+ );
+ this.data.defaultAppearanceData.fontSize = 0;
+ this.data.defaultAppearanceData.fontName = l;
+ [p, m, b] = this._computeFontSize(f - 2, g - 4, c, y, d);
+ this.data.defaultAppearanceData = h;
+ } else {
+ this._isOffscreenCanvasSupported ||
+ (0, r.warn)(
+ "_getAppearance: OffscreenCanvas is not supported, annotation may not render correctly.",
+ );
+ [p, m, b] = this._computeFontSize(f - 2, g - 4, c, y, d);
+ }
+ let x = y.descent;
+ x = isNaN(x)
+ ? r.BASELINE_FACTOR * b
+ : Math.max(r.BASELINE_FACTOR * b, Math.abs(x) * m);
+ const C = Math.min(Math.floor((f - m) / 2), 1),
+ k = this.data.textAlignment;
+ if (this.data.multiLine)
+ return this._getMultilineAppearance(
+ p,
+ w,
+ y,
+ m,
+ g,
+ f,
+ k,
+ 2,
+ C,
+ x,
+ b,
+ s,
+ );
+ if (this.data.comb)
+ return this._getCombAppearance(
+ p,
+ y,
+ w[0],
+ m,
+ g,
+ f,
+ 2,
+ C,
+ x,
+ b,
+ s,
+ );
+ const v = C + x;
+ if (0 === k || k > 2)
+ return (
+ `/Tx BMC q ${h}BT ` +
+ p +
+ ` 1 0 0 1 ${(0, n.numberToString)(2)} ${(0, n.numberToString)(
+ v,
+ )} Tm (${(0, n.escapeString)(w[0])}) Tj ET Q EMC`
+ );
+ return (
+ `/Tx BMC q ${h}BT ` +
+ p +
+ ` 1 0 0 1 0 0 Tm ${this._renderText(
+ w[0],
+ y,
+ m,
+ g,
+ k,
+ { shift: 0 },
+ 2,
+ v,
+ )} ET Q EMC`
+ );
+ }
+ static async _getFontData(e, t, a, r) {
+ const n = new p.OperatorList(),
+ i = {
+ font: null,
+ clone() {
+ return this;
+ },
+ },
+ { fontName: o, fontSize: c } = a;
+ await e.handleSetFont(
+ r,
+ [o && s.Name.get(o), c],
+ null,
+ n,
+ t,
+ i,
+ null,
+ );
+ return i.font;
+ }
+ _getTextWidth(e, t) {
+ return t.charsToGlyphs(e).reduce((e, t) => e + t.width, 0) / 1e3;
+ }
+ _computeFontSize(e, t, a, n, s) {
+ let { fontSize: o } = this.data.defaultAppearanceData,
+ c = (o || 12) * r.LINE_FACTOR,
+ l = Math.round(e / c);
+ if (!o) {
+ const roundWithTwoDigits = (e) => Math.floor(100 * e) / 100;
+ if (-1 === s) {
+ const i = this._getTextWidth(a, n);
+ o = roundWithTwoDigits(
+ Math.min(e / r.LINE_FACTOR, i > t ? t / i : 1 / 0),
+ );
+ l = 1;
+ } else {
+ const i = a.split(/\r\n?|\n/),
+ h = [];
+ for (const e of i) {
+ const t = n.encodeString(e).join(""),
+ a = n.charsToGlyphs(t),
+ r = n.getCharPositions(t);
+ h.push({ line: t, glyphs: a, positions: r });
+ }
+ const isTooBig = (a) => {
+ let r = 0;
+ for (const i of h) {
+ r += this._splitLine(null, n, a, t, i).length * a;
+ if (r > e) return !0;
+ }
+ return !1;
+ };
+ l = Math.max(l, s);
+ for (;;) {
+ c = e / l;
+ o = roundWithTwoDigits(c / r.LINE_FACTOR);
+ if (!isTooBig(o)) break;
+ l++;
+ }
+ }
+ const { fontName: h, fontColor: u } =
+ this.data.defaultAppearanceData;
+ this._defaultAppearance = (0, i.createDefaultAppearance)({
+ fontSize: o,
+ fontName: h,
+ fontColor: u,
+ });
+ }
+ return [this._defaultAppearance, o, e / l];
+ }
+ _renderText(e, t, a, r, i, s, o, c) {
+ let l;
+ if (1 === i) {
+ l = (r - this._getTextWidth(e, t) * a) / 2;
+ } else if (2 === i) {
+ l = r - this._getTextWidth(e, t) * a - o;
+ } else l = o;
+ const h = (0, n.numberToString)(l - s.shift);
+ s.shift = l;
+ return `${h} ${(c = (0, n.numberToString)(c))} Td (${(0,
+ n.escapeString)(e)}) Tj`;
+ }
+ _getSaveFieldResources(e) {
+ const {
+ localResources: t,
+ appearanceResources: a,
+ acroFormResources: r,
+ } = this._fieldResources,
+ n = this.data.defaultAppearanceData?.fontName;
+ if (!n) return t || s.Dict.empty;
+ for (const e of [t, a])
+ if (e instanceof s.Dict) {
+ const t = e.get("Font");
+ if (t instanceof s.Dict && t.has(n)) return e;
+ }
+ if (r instanceof s.Dict) {
+ const a = r.get("Font");
+ if (a instanceof s.Dict && a.has(n)) {
+ const r = new s.Dict(e);
+ r.set(n, a.getRaw(n));
+ const i = new s.Dict(e);
+ i.set("Font", r);
+ return s.Dict.merge({
+ xref: e,
+ dictArray: [i, t],
+ mergeSubDicts: !0,
+ });
+ }
+ }
+ return t || s.Dict.empty;
+ }
+ getFieldObject() {
+ return null;
+ }
+ }
+ class TextWidgetAnnotation extends WidgetAnnotation {
+ constructor(e) {
+ super(e);
+ this.data.hasOwnCanvas = this.data.readOnly && !this.data.noHTML;
+ this._hasText = !0;
+ const t = e.dict;
+ "string" != typeof this.data.fieldValue &&
+ (this.data.fieldValue = "");
+ let a = (0, n.getInheritableProperty)({ dict: t, key: "Q" });
+ (!Number.isInteger(a) || a < 0 || a > 2) && (a = null);
+ this.data.textAlignment = a;
+ let i = (0, n.getInheritableProperty)({ dict: t, key: "MaxLen" });
+ (!Number.isInteger(i) || i < 0) && (i = 0);
+ this.data.maxLen = i;
+ this.data.multiLine = this.hasFieldFlag(
+ r.AnnotationFieldFlag.MULTILINE,
+ );
+ this.data.comb =
+ this.hasFieldFlag(r.AnnotationFieldFlag.COMB) &&
+ !this.hasFieldFlag(r.AnnotationFieldFlag.MULTILINE) &&
+ !this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD) &&
+ !this.hasFieldFlag(r.AnnotationFieldFlag.FILESELECT) &&
+ 0 !== this.data.maxLen;
+ this.data.doNotScroll = this.hasFieldFlag(
+ r.AnnotationFieldFlag.DONOTSCROLL,
+ );
+ }
+ get hasTextContent() {
+ return !!this.appearance && !this._needAppearances;
+ }
+ _getCombAppearance(e, t, a, r, i, s, o, c, l, h, u) {
+ const d = i / this.data.maxLen,
+ f = this.getBorderAndBackgroundAppearances(u),
+ g = [],
+ p = t.getCharPositions(a);
+ for (const [e, t] of p)
+ g.push(`(${(0, n.escapeString)(a.substring(e, t))}) Tj`);
+ const m = g.join(` ${(0, n.numberToString)(d)} 0 Td `);
+ return (
+ `/Tx BMC q ${f}BT ` +
+ e +
+ ` 1 0 0 1 ${(0, n.numberToString)(o)} ${(0, n.numberToString)(
+ c + l,
+ )} Tm ${m} ET Q EMC`
+ );
+ }
+ _getMultilineAppearance(e, t, a, r, i, s, o, c, l, h, u, d) {
+ const f = [],
+ g = i - 2 * c,
+ p = { shift: 0 };
+ for (let e = 0, n = t.length; e < n; e++) {
+ const n = t[e],
+ s = this._splitLine(n, a, r, g);
+ for (let t = 0, n = s.length; t < n; t++) {
+ const n = s[t],
+ d = 0 === e && 0 === t ? -l - (u - h) : -u;
+ f.push(this._renderText(n, a, r, i, o, p, c, d));
+ }
+ }
+ const m = this.getBorderAndBackgroundAppearances(d),
+ b = f.join("\n");
+ return (
+ `/Tx BMC q ${m}BT ` +
+ e +
+ ` 1 0 0 1 0 ${(0, n.numberToString)(s)} Tm ${b} ET Q EMC`
+ );
+ }
+ _splitLine(e, t, a, r, n = {}) {
+ e = n.line || e;
+ const i = n.glyphs || t.charsToGlyphs(e);
+ if (i.length <= 1) return [e];
+ const s = n.positions || t.getCharPositions(e),
+ o = a / 1e3,
+ c = [];
+ let l = -1,
+ h = -1,
+ u = -1,
+ d = 0,
+ f = 0;
+ for (let t = 0, a = i.length; t < a; t++) {
+ const [a, n] = s[t],
+ g = i[t],
+ p = g.width * o;
+ if (" " === g.unicode)
+ if (f + p > r) {
+ c.push(e.substring(d, a));
+ d = a;
+ f = p;
+ l = -1;
+ u = -1;
+ } else {
+ f += p;
+ l = a;
+ h = n;
+ u = t;
+ }
+ else if (f + p > r)
+ if (-1 !== l) {
+ c.push(e.substring(d, h));
+ d = h;
+ t = u + 1;
+ l = -1;
+ f = 0;
+ } else {
+ c.push(e.substring(d, a));
+ d = a;
+ f = p;
+ }
+ else f += p;
+ }
+ d < e.length && c.push(e.substring(d, e.length));
+ return c;
+ }
+ getFieldObject() {
+ return {
+ id: this.data.id,
+ value: this.data.fieldValue,
+ defaultValue: this.data.defaultFieldValue || "",
+ multiline: this.data.multiLine,
+ password: this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD),
+ charLimit: this.data.maxLen,
+ comb: this.data.comb,
+ editable: !this.data.readOnly,
+ hidden: this.data.hidden,
+ name: this.data.fieldName,
+ rect: this.data.rect,
+ actions: this.data.actions,
+ page: this.data.pageIndex,
+ strokeColor: this.data.borderColor,
+ fillColor: this.data.backgroundColor,
+ rotation: this.rotation,
+ type: "text",
+ };
+ }
+ }
+ class ButtonWidgetAnnotation extends WidgetAnnotation {
+ constructor(e) {
+ super(e);
+ this.checkedAppearance = null;
+ this.uncheckedAppearance = null;
+ this.data.checkBox =
+ !this.hasFieldFlag(r.AnnotationFieldFlag.RADIO) &&
+ !this.hasFieldFlag(r.AnnotationFieldFlag.PUSHBUTTON);
+ this.data.radioButton =
+ this.hasFieldFlag(r.AnnotationFieldFlag.RADIO) &&
+ !this.hasFieldFlag(r.AnnotationFieldFlag.PUSHBUTTON);
+ this.data.pushButton = this.hasFieldFlag(
+ r.AnnotationFieldFlag.PUSHBUTTON,
+ );
+ this.data.isTooltipOnly = !1;
+ if (this.data.checkBox) this._processCheckBox(e);
+ else if (this.data.radioButton) this._processRadioButton(e);
+ else if (this.data.pushButton) {
+ this.data.hasOwnCanvas = !0;
+ this._processPushButton(e);
+ } else
+ (0, r.warn)("Invalid field flags for button widget annotation");
+ }
+ async getOperatorList(e, t, a, n, i) {
+ if (this.data.pushButton)
+ return super.getOperatorList(e, t, a, !1, i);
+ let s = null,
+ o = null;
+ if (i) {
+ const e = i.get(this.data.id);
+ s = e ? e.value : null;
+ o = e ? e.rotation : null;
+ }
+ if (null === s && this.appearance)
+ return super.getOperatorList(e, t, a, n, i);
+ null == s &&
+ (s = this.data.checkBox
+ ? this.data.fieldValue === this.data.exportValue
+ : this.data.fieldValue === this.data.buttonValue);
+ const c = s ? this.checkedAppearance : this.uncheckedAppearance;
+ if (c) {
+ const s = this.appearance,
+ l = c.dict.getArray("Matrix") || r.IDENTITY_MATRIX;
+ o && c.dict.set("Matrix", this.getRotationMatrix(i));
+ this.appearance = c;
+ const h = super.getOperatorList(e, t, a, n, i);
+ this.appearance = s;
+ c.dict.set("Matrix", l);
+ return h;
+ }
+ return {
+ opList: new p.OperatorList(),
+ separateForm: !1,
+ separateCanvas: !1,
+ };
+ }
+ async save(e, t, a) {
+ return this.data.checkBox
+ ? this._saveCheckbox(e, t, a)
+ : this.data.radioButton
+ ? this._saveRadioButton(e, t, a)
+ : null;
+ }
+ async _saveCheckbox(e, t, a) {
+ if (!a) return null;
+ const n = a.get(this.data.id);
+ let i = n?.rotation,
+ o = n?.value;
+ if (void 0 === i) {
+ if (void 0 === o) return null;
+ if ((this.data.fieldValue === this.data.exportValue) === o)
+ return null;
+ }
+ const c = e.xref.fetchIfRef(this.ref);
+ if (!(c instanceof s.Dict)) return null;
+ void 0 === i && (i = this.rotation);
+ void 0 === o &&
+ (o = this.data.fieldValue === this.data.exportValue);
+ const l = {
+ path: this.data.fieldName,
+ value: o ? this.data.exportValue : "",
+ },
+ h = s.Name.get(o ? this.data.exportValue : "Off");
+ c.set("V", h);
+ c.set("AS", h);
+ c.set("M", `D:${(0, r.getModificationDate)()}`);
+ const u = this._getMKDict(i);
+ u && c.set("MK", u);
+ const d = [];
+ await (0, m.writeObject)(this.ref, c, d, e.xref);
+ return [{ ref: this.ref, data: d.join(""), xfa: l }];
+ }
+ async _saveRadioButton(e, t, a) {
+ if (!a) return null;
+ const n = a.get(this.data.id);
+ let i = n?.rotation,
+ o = n?.value;
+ if (void 0 === i) {
+ if (void 0 === o) return null;
+ if ((this.data.fieldValue === this.data.buttonValue) === o)
+ return null;
+ }
+ const c = e.xref.fetchIfRef(this.ref);
+ if (!(c instanceof s.Dict)) return null;
+ void 0 === o &&
+ (o = this.data.fieldValue === this.data.buttonValue);
+ void 0 === i && (i = this.rotation);
+ const l = {
+ path: this.data.fieldName,
+ value: o ? this.data.buttonValue : "",
+ },
+ h = s.Name.get(o ? this.data.buttonValue : "Off"),
+ u = [];
+ let d = null;
+ if (o)
+ if (this.parent instanceof s.Ref) {
+ const t = e.xref.fetch(this.parent);
+ t.set("V", h);
+ await (0, m.writeObject)(this.parent, t, u, e.xref);
+ d = u.join("");
+ u.length = 0;
+ } else this.parent instanceof s.Dict && this.parent.set("V", h);
+ c.set("AS", h);
+ c.set("M", `D:${(0, r.getModificationDate)()}`);
+ const f = this._getMKDict(i);
+ f && c.set("MK", f);
+ await (0, m.writeObject)(this.ref, c, u, e.xref);
+ const g = [{ ref: this.ref, data: u.join(""), xfa: l }];
+ d && g.push({ ref: this.parent, data: d, xfa: null });
+ return g;
+ }
+ _getDefaultCheckedAppearance(e, t) {
+ const a = this.data.rect[2] - this.data.rect[0],
+ i = this.data.rect[3] - this.data.rect[1],
+ c = [0, 0, a, i],
+ l = 0.8 * Math.min(a, i);
+ let h, u;
+ if ("check" === t) {
+ h = { width: 0.755 * l, height: 0.705 * l };
+ u = "3";
+ } else if ("disc" === t) {
+ h = { width: 0.791 * l, height: 0.705 * l };
+ u = "l";
+ } else
+ (0, r.unreachable)(
+ `_getDefaultCheckedAppearance - unsupported type: ${t}`,
+ );
+ const d = `q BT /PdfJsZaDb ${l} Tf 0 g ${(0, n.numberToString)(
+ (a - h.width) / 2,
+ )} ${(0, n.numberToString)(
+ (i - h.height) / 2,
+ )} Td (${u}) Tj ET Q`,
+ f = new s.Dict(e.xref);
+ f.set("FormType", 1);
+ f.set("Subtype", s.Name.get("Form"));
+ f.set("Type", s.Name.get("XObject"));
+ f.set("BBox", c);
+ f.set("Matrix", [1, 0, 0, 1, 0, 0]);
+ f.set("Length", d.length);
+ const g = new s.Dict(e.xref),
+ p = new s.Dict(e.xref);
+ p.set("PdfJsZaDb", this.fallbackFontDict);
+ g.set("Font", p);
+ f.set("Resources", g);
+ this.checkedAppearance = new o.StringStream(d);
+ this.checkedAppearance.dict = f;
+ this._streams.push(this.checkedAppearance);
+ }
+ _processCheckBox(e) {
+ const t = e.dict.get("AP");
+ if (!(t instanceof s.Dict)) return;
+ const a = t.get("N");
+ if (!(a instanceof s.Dict)) return;
+ const r = this._decodeFormValue(e.dict.get("AS"));
+ "string" == typeof r && (this.data.fieldValue = r);
+ const n =
+ null !== this.data.fieldValue &&
+ "Off" !== this.data.fieldValue
+ ? this.data.fieldValue
+ : "Yes",
+ i = a.getKeys();
+ if (0 === i.length) i.push("Off", n);
+ else if (1 === i.length)
+ "Off" === i[0] ? i.push(n) : i.unshift("Off");
+ else if (i.includes(n)) {
+ i.length = 0;
+ i.push("Off", n);
+ } else {
+ const e = i.find((e) => "Off" !== e);
+ i.length = 0;
+ i.push("Off", e);
+ }
+ i.includes(this.data.fieldValue) ||
+ (this.data.fieldValue = "Off");
+ this.data.exportValue = i[1];
+ const o = a.get(this.data.exportValue);
+ this.checkedAppearance = o instanceof c.BaseStream ? o : null;
+ const l = a.get("Off");
+ this.uncheckedAppearance = l instanceof c.BaseStream ? l : null;
+ this.checkedAppearance
+ ? this._streams.push(this.checkedAppearance)
+ : this._getDefaultCheckedAppearance(e, "check");
+ this.uncheckedAppearance &&
+ this._streams.push(this.uncheckedAppearance);
+ this._fallbackFontDict = this.fallbackFontDict;
+ null === this.data.defaultFieldValue &&
+ (this.data.defaultFieldValue = "Off");
+ }
+ _processRadioButton(e) {
+ this.data.fieldValue = this.data.buttonValue = null;
+ const t = e.dict.get("Parent");
+ if (t instanceof s.Dict) {
+ this.parent = e.dict.getRaw("Parent");
+ const a = t.get("V");
+ a instanceof s.Name &&
+ (this.data.fieldValue = this._decodeFormValue(a));
+ }
+ const a = e.dict.get("AP");
+ if (!(a instanceof s.Dict)) return;
+ const r = a.get("N");
+ if (!(r instanceof s.Dict)) return;
+ for (const e of r.getKeys())
+ if ("Off" !== e) {
+ this.data.buttonValue = this._decodeFormValue(e);
+ break;
+ }
+ const n = r.get(this.data.buttonValue);
+ this.checkedAppearance = n instanceof c.BaseStream ? n : null;
+ const i = r.get("Off");
+ this.uncheckedAppearance = i instanceof c.BaseStream ? i : null;
+ this.checkedAppearance
+ ? this._streams.push(this.checkedAppearance)
+ : this._getDefaultCheckedAppearance(e, "disc");
+ this.uncheckedAppearance &&
+ this._streams.push(this.uncheckedAppearance);
+ this._fallbackFontDict = this.fallbackFontDict;
+ null === this.data.defaultFieldValue &&
+ (this.data.defaultFieldValue = "Off");
+ }
+ _processPushButton(e) {
+ const { dict: t, annotationGlobals: a } = e;
+ if (t.has("A") || t.has("AA") || this.data.alternativeText) {
+ this.data.isTooltipOnly = !t.has("A") && !t.has("AA");
+ h.Catalog.parseDestDictionary({
+ destDict: t,
+ resultObj: this.data,
+ docBaseUrl: a.baseUrl,
+ docAttachments: a.attachments,
+ });
+ } else
+ (0, r.warn)(
+ "Push buttons without action dictionaries are not supported",
+ );
+ }
+ getFieldObject() {
+ let e,
+ t = "button";
+ if (this.data.checkBox) {
+ t = "checkbox";
+ e = this.data.exportValue;
+ } else if (this.data.radioButton) {
+ t = "radiobutton";
+ e = this.data.buttonValue;
+ }
+ return {
+ id: this.data.id,
+ value: this.data.fieldValue || "Off",
+ defaultValue: this.data.defaultFieldValue,
+ exportValues: e,
+ editable: !this.data.readOnly,
+ name: this.data.fieldName,
+ rect: this.data.rect,
+ hidden: this.data.hidden,
+ actions: this.data.actions,
+ page: this.data.pageIndex,
+ strokeColor: this.data.borderColor,
+ fillColor: this.data.backgroundColor,
+ rotation: this.rotation,
+ type: t,
+ };
+ }
+ get fallbackFontDict() {
+ const e = new s.Dict();
+ e.set("BaseFont", s.Name.get("ZapfDingbats"));
+ e.set("Type", s.Name.get("FallbackType"));
+ e.set("Subtype", s.Name.get("FallbackType"));
+ e.set("Encoding", s.Name.get("ZapfDingbatsEncoding"));
+ return (0, r.shadow)(this, "fallbackFontDict", e);
+ }
+ }
+ class ChoiceWidgetAnnotation extends WidgetAnnotation {
+ constructor(e) {
+ super(e);
+ const { dict: t, xref: a } = e;
+ this.indices = t.getArray("I");
+ this.hasIndices =
+ Array.isArray(this.indices) && this.indices.length > 0;
+ this.data.options = [];
+ const i = (0, n.getInheritableProperty)({ dict: t, key: "Opt" });
+ if (Array.isArray(i))
+ for (let e = 0, t = i.length; e < t; e++) {
+ const t = a.fetchIfRef(i[e]),
+ r = Array.isArray(t);
+ this.data.options[e] = {
+ exportValue: this._decodeFormValue(
+ r ? a.fetchIfRef(t[0]) : t,
+ ),
+ displayValue: this._decodeFormValue(
+ r ? a.fetchIfRef(t[1]) : t,
+ ),
+ };
+ }
+ if (this.hasIndices) {
+ this.data.fieldValue = [];
+ const e = this.data.options.length;
+ for (const t of this.indices)
+ Number.isInteger(t) &&
+ t >= 0 &&
+ t < e &&
+ this.data.fieldValue.push(this.data.options[t].exportValue);
+ } else
+ "string" == typeof this.data.fieldValue
+ ? (this.data.fieldValue = [this.data.fieldValue])
+ : this.data.fieldValue || (this.data.fieldValue = []);
+ this.data.combo = this.hasFieldFlag(r.AnnotationFieldFlag.COMBO);
+ this.data.multiSelect = this.hasFieldFlag(
+ r.AnnotationFieldFlag.MULTISELECT,
+ );
+ this._hasText = !0;
+ }
+ getFieldObject() {
+ const e = this.data.combo ? "combobox" : "listbox",
+ t =
+ this.data.fieldValue.length > 0
+ ? this.data.fieldValue[0]
+ : null;
+ return {
+ id: this.data.id,
+ value: t,
+ defaultValue: this.data.defaultFieldValue,
+ editable: !this.data.readOnly,
+ name: this.data.fieldName,
+ rect: this.data.rect,
+ numItems: this.data.fieldValue.length,
+ multipleSelection: this.data.multiSelect,
+ hidden: this.data.hidden,
+ actions: this.data.actions,
+ items: this.data.options,
+ page: this.data.pageIndex,
+ strokeColor: this.data.borderColor,
+ fillColor: this.data.backgroundColor,
+ rotation: this.rotation,
+ type: e,
+ };
+ }
+ amendSavedDict(e, t) {
+ if (!this.hasIndices) return;
+ let a = e?.get(this.data.id)?.value;
+ Array.isArray(a) || (a = [a]);
+ const r = [],
+ { options: n } = this.data;
+ for (let e = 0, t = 0, i = n.length; e < i; e++)
+ if (n[e].exportValue === a[t]) {
+ r.push(e);
+ t += 1;
+ }
+ t.set("I", r);
+ }
+ async _getAppearance(e, t, a, n) {
+ if (this.data.combo) return super._getAppearance(e, t, a, n);
+ let s, o;
+ const c = n?.get(this.data.id);
+ if (c) {
+ o = c.rotation;
+ s = c.value;
+ }
+ if (void 0 === o && void 0 === s && !this._needAppearances)
+ return null;
+ void 0 === s
+ ? (s = this.data.fieldValue)
+ : Array.isArray(s) || (s = [s]);
+ let l = this.data.rect[3] - this.data.rect[1],
+ h = this.data.rect[2] - this.data.rect[0];
+ (90 !== o && 270 !== o) || ([h, l] = [l, h]);
+ const u = this.data.options.length,
+ d = [];
+ for (let e = 0; e < u; e++) {
+ const { exportValue: t } = this.data.options[e];
+ s.includes(t) && d.push(e);
+ }
+ this._defaultAppearance ||
+ (this.data.defaultAppearanceData = (0,
+ i.parseDefaultAppearance)(
+ (this._defaultAppearance = "/Helvetica 0 Tf 0 g"),
+ ));
+ const f = await WidgetAnnotation._getFontData(
+ e,
+ t,
+ this.data.defaultAppearanceData,
+ this._fieldResources.mergedResources,
+ );
+ let g,
+ { fontSize: p } = this.data.defaultAppearanceData;
+ if (p) g = this._defaultAppearance;
+ else {
+ const e = (l - 1) / u;
+ let t,
+ a = -1;
+ for (const { displayValue: e } of this.data.options) {
+ const r = this._getTextWidth(e, f);
+ if (r > a) {
+ a = r;
+ t = e;
+ }
+ }
+ [g, p] = this._computeFontSize(e, h - 4, t, f, -1);
+ }
+ const m = p * r.LINE_FACTOR,
+ b = (m - p) / 2,
+ y = Math.floor(l / m);
+ let w = 0;
+ if (d.length > 0) {
+ const e = Math.min(...d),
+ t = Math.max(...d);
+ w = Math.max(0, t - y + 1);
+ w > e && (w = e);
+ }
+ const S = Math.min(w + y + 1, u),
+ x = ["/Tx BMC q", `1 1 ${h} ${l} re W n`];
+ if (d.length) {
+ x.push("0.600006 0.756866 0.854904 rg");
+ for (const e of d)
+ w <= e &&
+ e < S &&
+ x.push(`1 ${l - (e - w + 1) * m} ${h} ${m} re f`);
+ }
+ x.push("BT", g, `1 0 0 1 0 ${l} Tm`);
+ const C = { shift: 0 };
+ for (let e = w; e < S; e++) {
+ const { displayValue: t } = this.data.options[e],
+ a = e === w ? b : 0;
+ x.push(this._renderText(t, f, p, h, 0, C, 2, -m + a));
+ }
+ x.push("ET Q EMC");
+ return x.join("\n");
+ }
+ }
+ class SignatureWidgetAnnotation extends WidgetAnnotation {
+ constructor(e) {
+ super(e);
+ this.data.fieldValue = null;
+ this.data.hasOwnCanvas = this.data.noRotate;
+ }
+ getFieldObject() {
+ return {
+ id: this.data.id,
+ value: null,
+ page: this.data.pageIndex,
+ type: "signature",
+ };
+ }
+ }
+ class TextAnnotation extends MarkupAnnotation {
+ constructor(e) {
+ super(e);
+ this.data.noRotate = !0;
+ this.data.hasOwnCanvas = this.data.noRotate;
+ const { dict: t } = e;
+ this.data.annotationType = r.AnnotationType.TEXT;
+ if (this.data.hasAppearance) this.data.name = "NoIcon";
+ else {
+ this.data.rect[1] = this.data.rect[3] - 22;
+ this.data.rect[2] = this.data.rect[0] + 22;
+ this.data.name = t.has("Name") ? t.get("Name").name : "Note";
+ }
+ if (t.has("State")) {
+ this.data.state = t.get("State") || null;
+ this.data.stateModel = t.get("StateModel") || null;
+ } else {
+ this.data.state = null;
+ this.data.stateModel = null;
+ }
+ }
+ }
+ class LinkAnnotation extends Annotation {
+ constructor(e) {
+ super(e);
+ const { dict: t, annotationGlobals: a } = e;
+ this.data.annotationType = r.AnnotationType.LINK;
+ const n = getQuadPoints(t, this.rectangle);
+ n && (this.data.quadPoints = n);
+ this.data.borderColor ||= this.data.color;
+ h.Catalog.parseDestDictionary({
+ destDict: t,
+ resultObj: this.data,
+ docBaseUrl: a.baseUrl,
+ docAttachments: a.attachments,
+ });
+ }
+ }
+ class PopupAnnotation extends Annotation {
+ constructor(e) {
+ super(e);
+ const { dict: t } = e;
+ this.data.annotationType = r.AnnotationType.POPUP;
+ (this.data.rect[0] !== this.data.rect[2] &&
+ this.data.rect[1] !== this.data.rect[3]) ||
+ (this.data.rect = null);
+ let a = t.get("Parent");
+ if (!a) {
+ (0, r.warn)(
+ "Popup annotation has a missing or invalid parent annotation.",
+ );
+ return;
+ }
+ const n = a.getArray("Rect");
+ this.data.parentRect =
+ Array.isArray(n) && 4 === n.length
+ ? r.Util.normalizeRect(n)
+ : null;
+ const i = a.get("RT");
+ (0, s.isName)(i, r.AnnotationReplyType.GROUP) &&
+ (a = a.get("IRT"));
+ if (a.has("M")) {
+ this.setModificationDate(a.get("M"));
+ this.data.modificationDate = this.modificationDate;
+ } else this.data.modificationDate = null;
+ if (a.has("C")) {
+ this.setColor(a.getArray("C"));
+ this.data.color = this.color;
+ } else this.data.color = null;
+ if (!this.viewable) {
+ const e = a.get("F");
+ this._isViewable(e) && this.setFlags(e);
+ }
+ this.setTitle(a.get("T"));
+ this.data.titleObj = this._title;
+ this.setContents(a.get("Contents"));
+ this.data.contentsObj = this._contents;
+ a.has("RC") &&
+ (this.data.richText = b.XFAFactory.getRichTextAsHtml(
+ a.get("RC"),
+ ));
+ this.data.open = !!t.get("Open");
+ }
+ }
+ t.PopupAnnotation = PopupAnnotation;
+ class FreeTextAnnotation extends MarkupAnnotation {
+ constructor(e) {
+ super(e);
+ this.data.hasOwnCanvas = !0;
+ const { evaluatorOptions: t, xref: a } = e;
+ this.data.annotationType = r.AnnotationType.FREETEXT;
+ this.setDefaultAppearance(e);
+ if (this.appearance) {
+ const { fontColor: e, fontSize: r } = (0,
+ i.parseAppearanceStream)(this.appearance, t, a);
+ this.data.defaultAppearanceData.fontColor = e;
+ this.data.defaultAppearanceData.fontSize = r || 10;
+ } else if (this._isOffscreenCanvasSupported) {
+ const t = e.dict.get("CA"),
+ r = new i.FakeUnicodeFont(a, "sans-serif");
+ this.data.defaultAppearanceData.fontSize ||= 10;
+ const { fontColor: n, fontSize: s } =
+ this.data.defaultAppearanceData;
+ this.appearance = r.createAppearance(
+ this._contents.str,
+ this.rectangle,
+ this.rotation,
+ s,
+ n,
+ t,
+ );
+ this._streams.push(
+ this.appearance,
+ i.FakeUnicodeFont.toUnicodeStream,
+ );
+ } else
+ (0, r.warn)(
+ "FreeTextAnnotation: OffscreenCanvas is not supported, annotation may not render correctly.",
+ );
+ }
+ get hasTextContent() {
+ return !!this.appearance;
+ }
+ static createNewDict(e, t, { apRef: a, ap: o }) {
+ const {
+ color: c,
+ fontSize: l,
+ rect: h,
+ rotation: u,
+ user: d,
+ value: f,
+ } = e,
+ g = new s.Dict(t);
+ g.set("Type", s.Name.get("Annot"));
+ g.set("Subtype", s.Name.get("FreeText"));
+ g.set("CreationDate", `D:${(0, r.getModificationDate)()}`);
+ g.set("Rect", h);
+ const p = `/Helv ${l} Tf ${(0, i.getPdfColor)(c, !0)}`;
+ g.set("DA", p);
+ g.set(
+ "Contents",
+ (0, n.isAscii)(f) ? f : (0, n.stringToUTF16String)(f, !0),
+ );
+ g.set("F", 4);
+ g.set("Border", [0, 0, 0]);
+ g.set("Rotate", u);
+ d &&
+ g.set(
+ "T",
+ (0, n.isAscii)(d) ? d : (0, n.stringToUTF16String)(d, !0),
+ );
+ if (a || o) {
+ const e = new s.Dict(t);
+ g.set("AP", e);
+ a ? e.set("N", a) : e.set("N", o);
+ }
+ return g;
+ }
+ static async createNewAppearanceStream(e, t, a) {
+ const { baseFontRef: c, evaluator: l, task: h } = a,
+ { color: u, fontSize: d, rect: f, rotation: g, value: p } = e,
+ m = new s.Dict(t),
+ b = new s.Dict(t);
+ if (c) b.set("Helv", c);
+ else {
+ const e = new s.Dict(t);
+ e.set("BaseFont", s.Name.get("Helvetica"));
+ e.set("Type", s.Name.get("Font"));
+ e.set("Subtype", s.Name.get("Type1"));
+ e.set("Encoding", s.Name.get("WinAnsiEncoding"));
+ b.set("Helv", e);
+ }
+ m.set("Font", b);
+ const y = await WidgetAnnotation._getFontData(
+ l,
+ h,
+ { fontName: "Helv", fontSize: d },
+ m,
+ ),
+ [w, S, x, C] = f;
+ let k = x - w,
+ v = C - S;
+ g % 180 != 0 && ([k, v] = [v, k]);
+ const F = p.split("\n"),
+ O = d / 1e3;
+ let T = -1 / 0;
+ const M = [];
+ for (let e of F) {
+ const t = y.encodeString(e);
+ if (t.length > 1) return null;
+ e = t.join("");
+ M.push(e);
+ let a = 0;
+ const r = y.charsToGlyphs(e);
+ for (const e of r) a += e.width * O;
+ T = Math.max(T, a);
+ }
+ let D = 1;
+ T > k && (D = k / T);
+ let E = 1;
+ const N = r.LINE_FACTOR * d,
+ R = (r.LINE_FACTOR - r.LINE_DESCENT_FACTOR) * d,
+ L = N * F.length;
+ L > v && (E = v / L);
+ const $ = d * Math.min(D, E);
+ let _, j, U;
+ switch (g) {
+ case 0:
+ U = [1, 0, 0, 1];
+ j = [f[0], f[1], k, v];
+ _ = [f[0], f[3] - R];
+ break;
+ case 90:
+ U = [0, 1, -1, 0];
+ j = [f[1], -f[2], k, v];
+ _ = [f[1], -f[0] - R];
+ break;
+ case 180:
+ U = [-1, 0, 0, -1];
+ j = [-f[2], -f[3], k, v];
+ _ = [-f[2], -f[1] - R];
+ break;
+ case 270:
+ U = [0, -1, 1, 0];
+ j = [-f[3], f[0], k, v];
+ _ = [-f[3], f[2] - R];
+ }
+ const X = [
+ "q",
+ `${U.join(" ")} 0 0 cm`,
+ `${j.join(" ")} re W n`,
+ "BT",
+ `${(0, i.getPdfColor)(u, !0)}`,
+ `0 Tc /Helv ${(0, n.numberToString)($)} Tf`,
+ ];
+ X.push(`${_.join(" ")} Td (${(0, n.escapeString)(M[0])}) Tj`);
+ const H = (0, n.numberToString)(N);
+ for (let e = 1, t = M.length; e < t; e++) {
+ const t = M[e];
+ X.push(`0 -${H} Td (${(0, n.escapeString)(t)}) Tj`);
+ }
+ X.push("ET", "Q");
+ const q = X.join("\n"),
+ z = new s.Dict(t);
+ z.set("FormType", 1);
+ z.set("Subtype", s.Name.get("Form"));
+ z.set("Type", s.Name.get("XObject"));
+ z.set("BBox", f);
+ z.set("Resources", m);
+ z.set("Matrix", [1, 0, 0, 1, -f[0], -f[1]]);
+ const W = new o.StringStream(q);
+ W.dict = z;
+ return W;
+ }
+ }
+ class LineAnnotation extends MarkupAnnotation {
+ constructor(e) {
+ super(e);
+ const { dict: t, xref: a } = e;
+ this.data.annotationType = r.AnnotationType.LINE;
+ this.data.hasOwnCanvas = this.data.noRotate;
+ const n = t.getArray("L");
+ this.data.lineCoordinates = r.Util.normalizeRect(n);
+ this.setLineEndings(t.getArray("LE"));
+ this.data.lineEndings = this.lineEndings;
+ if (!this.appearance) {
+ const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0],
+ i = t.get("CA"),
+ s = getRgbColor(t.getArray("IC"), null),
+ o = s ? getPdfColorArray(s) : null,
+ c = o ? i : null,
+ l = this.borderStyle.width || 1,
+ h = 2 * l,
+ u = [
+ this.data.lineCoordinates[0] - h,
+ this.data.lineCoordinates[1] - h,
+ this.data.lineCoordinates[2] + h,
+ this.data.lineCoordinates[3] + h,
+ ];
+ r.Util.intersect(this.rectangle, u) || (this.rectangle = u);
+ this._setDefaultAppearance({
+ xref: a,
+ extra: `${l} w`,
+ strokeColor: e,
+ fillColor: o,
+ strokeAlpha: i,
+ fillAlpha: c,
+ pointsCallback: (e, t) => {
+ e.push(`${n[0]} ${n[1]} m`, `${n[2]} ${n[3]} l`, "S");
+ return [t[0].x - l, t[1].x + l, t[3].y - l, t[1].y + l];
+ },
+ });
+ }
+ }
+ }
+ class SquareAnnotation extends MarkupAnnotation {
+ constructor(e) {
+ super(e);
+ const { dict: t, xref: a } = e;
+ this.data.annotationType = r.AnnotationType.SQUARE;
+ this.data.hasOwnCanvas = this.data.noRotate;
+ if (!this.appearance) {
+ const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0],
+ r = t.get("CA"),
+ n = getRgbColor(t.getArray("IC"), null),
+ i = n ? getPdfColorArray(n) : null,
+ s = i ? r : null;
+ if (0 === this.borderStyle.width && !i) return;
+ this._setDefaultAppearance({
+ xref: a,
+ extra: `${this.borderStyle.width} w`,
+ strokeColor: e,
+ fillColor: i,
+ strokeAlpha: r,
+ fillAlpha: s,
+ pointsCallback: (e, t) => {
+ const a = t[2].x + this.borderStyle.width / 2,
+ r = t[2].y + this.borderStyle.width / 2,
+ n = t[3].x - t[2].x - this.borderStyle.width,
+ s = t[1].y - t[3].y - this.borderStyle.width;
+ e.push(`${a} ${r} ${n} ${s} re`);
+ i ? e.push("B") : e.push("S");
+ return [t[0].x, t[1].x, t[3].y, t[1].y];
+ },
+ });
+ }
+ }
+ }
+ class CircleAnnotation extends MarkupAnnotation {
+ constructor(e) {
+ super(e);
+ const { dict: t, xref: a } = e;
+ this.data.annotationType = r.AnnotationType.CIRCLE;
+ if (!this.appearance) {
+ const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0],
+ r = t.get("CA"),
+ n = getRgbColor(t.getArray("IC"), null),
+ i = n ? getPdfColorArray(n) : null,
+ s = i ? r : null;
+ if (0 === this.borderStyle.width && !i) return;
+ const o = (4 / 3) * Math.tan(Math.PI / 8);
+ this._setDefaultAppearance({
+ xref: a,
+ extra: `${this.borderStyle.width} w`,
+ strokeColor: e,
+ fillColor: i,
+ strokeAlpha: r,
+ fillAlpha: s,
+ pointsCallback: (e, t) => {
+ const a = t[0].x + this.borderStyle.width / 2,
+ r = t[0].y - this.borderStyle.width / 2,
+ n = t[3].x - this.borderStyle.width / 2,
+ s = t[3].y + this.borderStyle.width / 2,
+ c = a + (n - a) / 2,
+ l = r + (s - r) / 2,
+ h = ((n - a) / 2) * o,
+ u = ((s - r) / 2) * o;
+ e.push(
+ `${c} ${s} m`,
+ `${c + h} ${s} ${n} ${l + u} ${n} ${l} c`,
+ `${n} ${l - u} ${c + h} ${r} ${c} ${r} c`,
+ `${c - h} ${r} ${a} ${l - u} ${a} ${l} c`,
+ `${a} ${l + u} ${c - h} ${s} ${c} ${s} c`,
+ "h",
+ );
+ i ? e.push("B") : e.push("S");
+ return [t[0].x, t[1].x, t[3].y, t[1].y];
+ },
+ });
+ }
+ }
+ }
+ class PolylineAnnotation extends MarkupAnnotation {
+ constructor(e) {
+ super(e);
+ const { dict: t, xref: a } = e;
+ this.data.annotationType = r.AnnotationType.POLYLINE;
+ this.data.hasOwnCanvas = this.data.noRotate;
+ this.data.vertices = [];
+ if (!(this instanceof PolygonAnnotation)) {
+ this.setLineEndings(t.getArray("LE"));
+ this.data.lineEndings = this.lineEndings;
+ }
+ const n = t.getArray("Vertices");
+ if (Array.isArray(n)) {
+ for (let e = 0, t = n.length; e < t; e += 2)
+ this.data.vertices.push({ x: n[e], y: n[e + 1] });
+ if (!this.appearance) {
+ const e = this.color
+ ? getPdfColorArray(this.color)
+ : [0, 0, 0],
+ n = t.get("CA"),
+ i = this.borderStyle.width || 1,
+ s = 2 * i,
+ o = [1 / 0, 1 / 0, -1 / 0, -1 / 0];
+ for (const e of this.data.vertices) {
+ o[0] = Math.min(o[0], e.x - s);
+ o[1] = Math.min(o[1], e.y - s);
+ o[2] = Math.max(o[2], e.x + s);
+ o[3] = Math.max(o[3], e.y + s);
+ }
+ r.Util.intersect(this.rectangle, o) || (this.rectangle = o);
+ this._setDefaultAppearance({
+ xref: a,
+ extra: `${i} w`,
+ strokeColor: e,
+ strokeAlpha: n,
+ pointsCallback: (e, t) => {
+ const a = this.data.vertices;
+ for (let t = 0, r = a.length; t < r; t++)
+ e.push(`${a[t].x} ${a[t].y} ${0 === t ? "m" : "l"}`);
+ e.push("S");
+ return [t[0].x, t[1].x, t[3].y, t[1].y];
+ },
+ });
+ }
+ }
+ }
+ }
+ class PolygonAnnotation extends PolylineAnnotation {
+ constructor(e) {
+ super(e);
+ this.data.annotationType = r.AnnotationType.POLYGON;
+ }
+ }
+ class CaretAnnotation extends MarkupAnnotation {
+ constructor(e) {
+ super(e);
+ this.data.annotationType = r.AnnotationType.CARET;
+ }
+ }
+ class InkAnnotation extends MarkupAnnotation {
+ constructor(e) {
+ super(e);
+ this.data.hasOwnCanvas = this.data.noRotate;
+ const { dict: t, xref: a } = e;
+ this.data.annotationType = r.AnnotationType.INK;
+ this.data.inkLists = [];
+ const n = t.getArray("InkList");
+ if (Array.isArray(n)) {
+ for (let e = 0, t = n.length; e < t; ++e) {
+ this.data.inkLists.push([]);
+ for (let t = 0, r = n[e].length; t < r; t += 2)
+ this.data.inkLists[e].push({
+ x: a.fetchIfRef(n[e][t]),
+ y: a.fetchIfRef(n[e][t + 1]),
+ });
+ }
+ if (!this.appearance) {
+ const e = this.color
+ ? getPdfColorArray(this.color)
+ : [0, 0, 0],
+ n = t.get("CA"),
+ i = this.borderStyle.width || 1,
+ s = 2 * i,
+ o = [1 / 0, 1 / 0, -1 / 0, -1 / 0];
+ for (const e of this.data.inkLists)
+ for (const t of e) {
+ o[0] = Math.min(o[0], t.x - s);
+ o[1] = Math.min(o[1], t.y - s);
+ o[2] = Math.max(o[2], t.x + s);
+ o[3] = Math.max(o[3], t.y + s);
+ }
+ r.Util.intersect(this.rectangle, o) || (this.rectangle = o);
+ this._setDefaultAppearance({
+ xref: a,
+ extra: `${i} w`,
+ strokeColor: e,
+ strokeAlpha: n,
+ pointsCallback: (e, t) => {
+ for (const t of this.data.inkLists) {
+ for (let a = 0, r = t.length; a < r; a++)
+ e.push(`${t[a].x} ${t[a].y} ${0 === a ? "m" : "l"}`);
+ e.push("S");
+ }
+ return [t[0].x, t[1].x, t[3].y, t[1].y];
+ },
+ });
+ }
+ }
+ }
+ static createNewDict(e, t, { apRef: a, ap: n }) {
+ const {
+ color: i,
+ opacity: o,
+ paths: c,
+ rect: l,
+ rotation: h,
+ thickness: u,
+ } = e,
+ d = new s.Dict(t);
+ d.set("Type", s.Name.get("Annot"));
+ d.set("Subtype", s.Name.get("Ink"));
+ d.set("CreationDate", `D:${(0, r.getModificationDate)()}`);
+ d.set("Rect", l);
+ d.set(
+ "InkList",
+ c.map((e) => e.points),
+ );
+ d.set("F", 4);
+ d.set("Rotate", h);
+ const f = new s.Dict(t);
+ d.set("BS", f);
+ f.set("W", u);
+ d.set(
+ "C",
+ Array.from(i, (e) => e / 255),
+ );
+ d.set("CA", o);
+ const g = new s.Dict(t);
+ d.set("AP", g);
+ a ? g.set("N", a) : g.set("N", n);
+ return d;
+ }
+ static async createNewAppearanceStream(e, t, a) {
+ const {
+ color: r,
+ rect: c,
+ paths: l,
+ thickness: h,
+ opacity: u,
+ } = e,
+ d = [`${h} w 1 J 1 j`, `${(0, i.getPdfColor)(r, !1)}`];
+ 1 !== u && d.push("/R0 gs");
+ const f = [];
+ for (const { bezier: e } of l) {
+ f.length = 0;
+ f.push(
+ `${(0, n.numberToString)(e[0])} ${(0, n.numberToString)(
+ e[1],
+ )} m`,
+ );
+ for (let t = 2, a = e.length; t < a; t += 6) {
+ const a = e
+ .slice(t, t + 6)
+ .map(n.numberToString)
+ .join(" ");
+ f.push(`${a} c`);
+ }
+ f.push("S");
+ d.push(f.join("\n"));
+ }
+ const g = d.join("\n"),
+ p = new s.Dict(t);
+ p.set("FormType", 1);
+ p.set("Subtype", s.Name.get("Form"));
+ p.set("Type", s.Name.get("XObject"));
+ p.set("BBox", c);
+ p.set("Length", g.length);
+ if (1 !== u) {
+ const e = new s.Dict(t),
+ a = new s.Dict(t),
+ r = new s.Dict(t);
+ r.set("CA", u);
+ r.set("Type", s.Name.get("ExtGState"));
+ a.set("R0", r);
+ e.set("ExtGState", a);
+ p.set("Resources", e);
+ }
+ const m = new o.StringStream(g);
+ m.dict = p;
+ return m;
+ }
+ }
+ class HighlightAnnotation extends MarkupAnnotation {
+ constructor(e) {
+ super(e);
+ const { dict: t, xref: a } = e;
+ this.data.annotationType = r.AnnotationType.HIGHLIGHT;
+ if ((this.data.quadPoints = getQuadPoints(t, null))) {
+ const e = this.appearance?.dict.get("Resources");
+ if (!this.appearance || !e?.has("ExtGState")) {
+ this.appearance &&
+ (0, r.warn)(
+ "HighlightAnnotation - ignoring built-in appearance stream.",
+ );
+ const e = this.color
+ ? getPdfColorArray(this.color)
+ : [1, 1, 0],
+ n = t.get("CA");
+ this._setDefaultAppearance({
+ xref: a,
+ fillColor: e,
+ blendMode: "Multiply",
+ fillAlpha: n,
+ pointsCallback: (e, t) => {
+ e.push(
+ `${t[0].x} ${t[0].y} m`,
+ `${t[1].x} ${t[1].y} l`,
+ `${t[3].x} ${t[3].y} l`,
+ `${t[2].x} ${t[2].y} l`,
+ "f",
+ );
+ return [t[0].x, t[1].x, t[3].y, t[1].y];
+ },
+ });
+ }
+ } else this.data.popupRef = null;
+ }
+ }
+ class UnderlineAnnotation extends MarkupAnnotation {
+ constructor(e) {
+ super(e);
+ const { dict: t, xref: a } = e;
+ this.data.annotationType = r.AnnotationType.UNDERLINE;
+ if ((this.data.quadPoints = getQuadPoints(t, null))) {
+ if (!this.appearance) {
+ const e = this.color
+ ? getPdfColorArray(this.color)
+ : [0, 0, 0],
+ r = t.get("CA");
+ this._setDefaultAppearance({
+ xref: a,
+ extra: "[] 0 d 0.571 w",
+ strokeColor: e,
+ strokeAlpha: r,
+ pointsCallback: (e, t) => {
+ e.push(
+ `${t[2].x} ${t[2].y + 1.3} m`,
+ `${t[3].x} ${t[3].y + 1.3} l`,
+ "S",
+ );
+ return [t[0].x, t[1].x, t[3].y, t[1].y];
+ },
+ });
+ }
+ } else this.data.popupRef = null;
+ }
+ }
+ class SquigglyAnnotation extends MarkupAnnotation {
+ constructor(e) {
+ super(e);
+ const { dict: t, xref: a } = e;
+ this.data.annotationType = r.AnnotationType.SQUIGGLY;
+ if ((this.data.quadPoints = getQuadPoints(t, null))) {
+ if (!this.appearance) {
+ const e = this.color
+ ? getPdfColorArray(this.color)
+ : [0, 0, 0],
+ r = t.get("CA");
+ this._setDefaultAppearance({
+ xref: a,
+ extra: "[] 0 d 1 w",
+ strokeColor: e,
+ strokeAlpha: r,
+ pointsCallback: (e, t) => {
+ const a = (t[0].y - t[2].y) / 6;
+ let r = a,
+ n = t[2].x;
+ const i = t[2].y,
+ s = t[3].x;
+ e.push(`${n} ${i + r} m`);
+ do {
+ n += 2;
+ r = 0 === r ? a : 0;
+ e.push(`${n} ${i + r} l`);
+ } while (n < s);
+ e.push("S");
+ return [t[2].x, s, i - 2 * a, i + 2 * a];
+ },
+ });
+ }
+ } else this.data.popupRef = null;
+ }
+ }
+ class StrikeOutAnnotation extends MarkupAnnotation {
+ constructor(e) {
+ super(e);
+ const { dict: t, xref: a } = e;
+ this.data.annotationType = r.AnnotationType.STRIKEOUT;
+ if ((this.data.quadPoints = getQuadPoints(t, null))) {
+ if (!this.appearance) {
+ const e = this.color
+ ? getPdfColorArray(this.color)
+ : [0, 0, 0],
+ r = t.get("CA");
+ this._setDefaultAppearance({
+ xref: a,
+ extra: "[] 0 d 1 w",
+ strokeColor: e,
+ strokeAlpha: r,
+ pointsCallback: (e, t) => {
+ e.push(
+ (t[0].x + t[2].x) / 2 +
+ " " +
+ (t[0].y + t[2].y) / 2 +
+ " m",
+ (t[1].x + t[3].x) / 2 +
+ " " +
+ (t[1].y + t[3].y) / 2 +
+ " l",
+ "S",
+ );
+ return [t[0].x, t[1].x, t[3].y, t[1].y];
+ },
+ });
+ }
+ } else this.data.popupRef = null;
+ }
+ }
+ class StampAnnotation extends MarkupAnnotation {
+ constructor(e) {
+ super(e);
+ this.data.annotationType = r.AnnotationType.STAMP;
+ this.data.hasOwnCanvas = this.data.noRotate;
+ }
+ static async createImage(e, t) {
+ const { width: a, height: n } = e,
+ i = new OffscreenCanvas(a, n),
+ c = i.getContext("2d", { alpha: !0 });
+ c.drawImage(e, 0, 0);
+ const l = c.getImageData(0, 0, a, n).data,
+ h = new Uint32Array(l.buffer),
+ u = h.some(
+ r.FeatureTest.isLittleEndian
+ ? (e) => e >>> 24 != 255
+ : (e) => 255 != (255 & e),
+ );
+ if (u) {
+ c.fillStyle = "white";
+ c.fillRect(0, 0, a, n);
+ c.drawImage(e, 0, 0);
+ }
+ const d = i
+ .convertToBlob({ type: "image/jpeg", quality: 1 })
+ .then((e) => e.arrayBuffer()),
+ f = s.Name.get("XObject"),
+ g = s.Name.get("Image"),
+ p = new s.Dict(t);
+ p.set("Type", f);
+ p.set("Subtype", g);
+ p.set("BitsPerComponent", 8);
+ p.set("ColorSpace", s.Name.get("DeviceRGB"));
+ p.set("Filter", s.Name.get("DCTDecode"));
+ p.set("BBox", [0, 0, a, n]);
+ p.set("Width", a);
+ p.set("Height", n);
+ let m = null;
+ if (u) {
+ const e = new Uint8Array(h.length);
+ if (r.FeatureTest.isLittleEndian)
+ for (let t = 0, a = h.length; t < a; t++) e[t] = h[t] >>> 24;
+ else
+ for (let t = 0, a = h.length; t < a; t++) e[t] = 255 & h[t];
+ const i = new s.Dict(t);
+ i.set("Type", f);
+ i.set("Subtype", g);
+ i.set("BitsPerComponent", 8);
+ i.set("ColorSpace", s.Name.get("DeviceGray"));
+ i.set("Width", a);
+ i.set("Height", n);
+ m = new o.Stream(e, 0, 0, i);
+ }
+ return {
+ imageStream: new o.Stream(await d, 0, 0, p),
+ smaskStream: m,
+ width: a,
+ height: n,
+ };
+ }
+ static createNewDict(e, t, { apRef: a, ap: i }) {
+ const { rect: o, rotation: c, user: l } = e,
+ h = new s.Dict(t);
+ h.set("Type", s.Name.get("Annot"));
+ h.set("Subtype", s.Name.get("Stamp"));
+ h.set("CreationDate", `D:${(0, r.getModificationDate)()}`);
+ h.set("Rect", o);
+ h.set("F", 4);
+ h.set("Border", [0, 0, 0]);
+ h.set("Rotate", c);
+ l &&
+ h.set(
+ "T",
+ (0, n.isAscii)(l) ? l : (0, n.stringToUTF16String)(l, !0),
+ );
+ if (a || i) {
+ const e = new s.Dict(t);
+ h.set("AP", e);
+ a ? e.set("N", a) : e.set("N", i);
+ }
+ return h;
+ }
+ static async createNewAppearanceStream(e, t, a) {
+ const { rotation: r } = e,
+ { imageRef: i, width: c, height: l } = a.image,
+ h = new s.Dict(t),
+ u = new s.Dict(t);
+ h.set("XObject", u);
+ u.set("Im0", i);
+ const d = `q ${c} 0 0 ${l} 0 0 cm /Im0 Do Q`,
+ f = new s.Dict(t);
+ f.set("FormType", 1);
+ f.set("Subtype", s.Name.get("Form"));
+ f.set("Type", s.Name.get("XObject"));
+ f.set("BBox", [0, 0, c, l]);
+ f.set("Resources", h);
+ if (r) {
+ const e = (0, n.getRotationMatrix)(r, c, l);
+ f.set("Matrix", e);
+ }
+ const g = new o.StringStream(d);
+ g.dict = f;
+ return g;
+ }
+ }
+ class FileAttachmentAnnotation extends MarkupAnnotation {
+ constructor(e) {
+ super(e);
+ const { dict: t, xref: a } = e,
+ n = new d.FileSpec(t.get("FS"), a);
+ this.data.annotationType = r.AnnotationType.FILEATTACHMENT;
+ this.data.hasOwnCanvas = this.data.noRotate;
+ this.data.file = n.serializable;
+ const i = t.get("Name");
+ this.data.name =
+ i instanceof s.Name
+ ? (0, r.stringToPDFString)(i.name)
+ : "PushPin";
+ const o = t.get("ca");
+ this.data.fillAlpha =
+ "number" == typeof o && o >= 0 && o <= 1 ? o : null;
+ }
+ }
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.FakeUnicodeFont = void 0;
+ t.createDefaultAppearance = function createDefaultAppearance({
+ fontSize: e,
+ fontName: t,
+ fontColor: a,
+ }) {
+ return `/${(0, n.escapePDFName)(t)} ${e} Tf ${getPdfColor(a, !0)}`;
+ };
+ t.getPdfColor = getPdfColor;
+ t.parseAppearanceStream = function parseAppearanceStream(e, t, a) {
+ return new AppearanceStreamEvaluator(e, t, a).parse();
+ };
+ t.parseDefaultAppearance = function parseDefaultAppearance(e) {
+ return new DefaultAppearanceEvaluator(e).parse();
+ };
+ var r = a(4),
+ n = a(3),
+ i = a(2),
+ s = a(12),
+ o = a(13),
+ c = a(59),
+ l = a(57),
+ h = a(8);
+ class DefaultAppearanceEvaluator extends o.EvaluatorPreprocessor {
+ constructor(e) {
+ super(new h.StringStream(e));
+ }
+ parse() {
+ const e = { fn: 0, args: [] },
+ t = {
+ fontSize: 0,
+ fontName: "",
+ fontColor: new Uint8ClampedArray(3),
+ };
+ try {
+ for (;;) {
+ e.args.length = 0;
+ if (!this.read(e)) break;
+ if (0 !== this.savedStatesDepth) continue;
+ const { fn: a, args: n } = e;
+ switch (0 | a) {
+ case i.OPS.setFont:
+ const [e, a] = n;
+ e instanceof r.Name && (t.fontName = e.name);
+ "number" == typeof a && a > 0 && (t.fontSize = a);
+ break;
+ case i.OPS.setFillRGBColor:
+ s.ColorSpace.singletons.rgb.getRgbItem(
+ n,
+ 0,
+ t.fontColor,
+ 0,
+ );
+ break;
+ case i.OPS.setFillGray:
+ s.ColorSpace.singletons.gray.getRgbItem(
+ n,
+ 0,
+ t.fontColor,
+ 0,
+ );
+ break;
+ case i.OPS.setFillCMYKColor:
+ s.ColorSpace.singletons.cmyk.getRgbItem(
+ n,
+ 0,
+ t.fontColor,
+ 0,
+ );
+ }
+ }
+ } catch (e) {
+ (0, i.warn)(
+ `parseDefaultAppearance - ignoring errors: "${e}".`,
+ );
+ }
+ return t;
+ }
+ }
+ class AppearanceStreamEvaluator extends o.EvaluatorPreprocessor {
+ constructor(e, t, a) {
+ super(e);
+ this.stream = e;
+ this.evaluatorOptions = t;
+ this.xref = a;
+ this.resources = e.dict?.get("Resources");
+ }
+ parse() {
+ const e = { fn: 0, args: [] };
+ let t = {
+ scaleFactor: 1,
+ fontSize: 0,
+ fontName: "",
+ fontColor: new Uint8ClampedArray(3),
+ fillColorSpace: s.ColorSpace.singletons.gray,
+ },
+ a = !1;
+ const n = [];
+ try {
+ for (;;) {
+ e.args.length = 0;
+ if (a || !this.read(e)) break;
+ const { fn: o, args: c } = e;
+ switch (0 | o) {
+ case i.OPS.save:
+ n.push({
+ scaleFactor: t.scaleFactor,
+ fontSize: t.fontSize,
+ fontName: t.fontName,
+ fontColor: t.fontColor.slice(),
+ fillColorSpace: t.fillColorSpace,
+ });
+ break;
+ case i.OPS.restore:
+ t = n.pop() || t;
+ break;
+ case i.OPS.setTextMatrix:
+ t.scaleFactor *= Math.hypot(c[0], c[1]);
+ break;
+ case i.OPS.setFont:
+ const [e, o] = c;
+ e instanceof r.Name && (t.fontName = e.name);
+ "number" == typeof o &&
+ o > 0 &&
+ (t.fontSize = o * t.scaleFactor);
+ break;
+ case i.OPS.setFillColorSpace:
+ t.fillColorSpace = s.ColorSpace.parse({
+ cs: c[0],
+ xref: this.xref,
+ resources: this.resources,
+ pdfFunctionFactory: this._pdfFunctionFactory,
+ localColorSpaceCache: this._localColorSpaceCache,
+ });
+ break;
+ case i.OPS.setFillColor:
+ t.fillColorSpace.getRgbItem(c, 0, t.fontColor, 0);
+ break;
+ case i.OPS.setFillRGBColor:
+ s.ColorSpace.singletons.rgb.getRgbItem(
+ c,
+ 0,
+ t.fontColor,
+ 0,
+ );
+ break;
+ case i.OPS.setFillGray:
+ s.ColorSpace.singletons.gray.getRgbItem(
+ c,
+ 0,
+ t.fontColor,
+ 0,
+ );
+ break;
+ case i.OPS.setFillCMYKColor:
+ s.ColorSpace.singletons.cmyk.getRgbItem(
+ c,
+ 0,
+ t.fontColor,
+ 0,
+ );
+ break;
+ case i.OPS.showText:
+ case i.OPS.showSpacedText:
+ case i.OPS.nextLineShowText:
+ case i.OPS.nextLineSetSpacingShowText:
+ a = !0;
+ }
+ }
+ } catch (e) {
+ (0, i.warn)(`parseAppearanceStream - ignoring errors: "${e}".`);
+ }
+ this.stream.reset();
+ delete t.scaleFactor;
+ delete t.fillColorSpace;
+ return t;
+ }
+ get _localColorSpaceCache() {
+ return (0, i.shadow)(
+ this,
+ "_localColorSpaceCache",
+ new c.LocalColorSpaceCache(),
+ );
+ }
+ get _pdfFunctionFactory() {
+ const e = new l.PDFFunctionFactory({
+ xref: this.xref,
+ isEvalSupported: this.evaluatorOptions.isEvalSupported,
+ });
+ return (0, i.shadow)(this, "_pdfFunctionFactory", e);
+ }
+ }
+ function getPdfColor(e, t) {
+ if (e[0] === e[1] && e[1] === e[2]) {
+ const a = e[0] / 255;
+ return `${(0, n.numberToString)(a)} ${t ? "g" : "G"}`;
+ }
+ return (
+ Array.from(e, (e) => (0, n.numberToString)(e / 255)).join(" ") +
+ " " +
+ (t ? "rg" : "RG")
+ );
+ }
+ class FakeUnicodeFont {
+ constructor(e, t) {
+ this.xref = e;
+ this.widths = null;
+ this.firstChar = 1 / 0;
+ this.lastChar = -1 / 0;
+ this.fontFamily = t;
+ const a = new OffscreenCanvas(1, 1);
+ this.ctxMeasure = a.getContext("2d");
+ FakeUnicodeFont._fontNameId || (FakeUnicodeFont._fontNameId = 1);
+ this.fontName = r.Name.get(
+ `InvalidPDFjsFont_${t}_${FakeUnicodeFont._fontNameId++}`,
+ );
+ }
+ get toUnicodeRef() {
+ if (!FakeUnicodeFont._toUnicodeRef) {
+ const e =
+ "/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n/CIDSystemInfo\n<< /Registry (Adobe)\n/Ordering (UCS) /Supplement 0 >> def\n/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n1 begincodespacerange\n<0000> \nendcodespacerange\n1 beginbfrange\n<0000> <0000>\nendbfrange\nendcmap CMapName currentdict /CMap defineresource pop end end",
+ t = (FakeUnicodeFont.toUnicodeStream = new h.StringStream(e)),
+ a = new r.Dict(this.xref);
+ t.dict = a;
+ a.set("Length", e.length);
+ FakeUnicodeFont._toUnicodeRef =
+ this.xref.getNewPersistentRef(t);
+ }
+ return FakeUnicodeFont._toUnicodeRef;
+ }
+ get fontDescriptorRef() {
+ if (!FakeUnicodeFont._fontDescriptorRef) {
+ const e = new r.Dict(this.xref);
+ e.set("Type", r.Name.get("FontDescriptor"));
+ e.set("FontName", this.fontName);
+ e.set("FontFamily", "MyriadPro Regular");
+ e.set("FontBBox", [0, 0, 0, 0]);
+ e.set("FontStretch", r.Name.get("Normal"));
+ e.set("FontWeight", 400);
+ e.set("ItalicAngle", 0);
+ FakeUnicodeFont._fontDescriptorRef =
+ this.xref.getNewPersistentRef(e);
+ }
+ return FakeUnicodeFont._fontDescriptorRef;
+ }
+ get descendantFontRef() {
+ const e = new r.Dict(this.xref);
+ e.set("BaseFont", this.fontName);
+ e.set("Type", r.Name.get("Font"));
+ e.set("Subtype", r.Name.get("CIDFontType0"));
+ e.set("CIDToGIDMap", r.Name.get("Identity"));
+ e.set("FirstChar", this.firstChar);
+ e.set("LastChar", this.lastChar);
+ e.set("FontDescriptor", this.fontDescriptorRef);
+ e.set("DW", 1e3);
+ const t = [],
+ a = [...this.widths.entries()].sort();
+ let n = null,
+ i = null;
+ for (const [e, r] of a)
+ if (n)
+ if (e === n + i.length) i.push(r);
+ else {
+ t.push(n, i);
+ n = e;
+ i = [r];
+ }
+ else {
+ n = e;
+ i = [r];
+ }
+ n && t.push(n, i);
+ e.set("W", t);
+ const s = new r.Dict(this.xref);
+ s.set("Ordering", "Identity");
+ s.set("Registry", "Adobe");
+ s.set("Supplement", 0);
+ e.set("CIDSystemInfo", s);
+ return this.xref.getNewPersistentRef(e);
+ }
+ get baseFontRef() {
+ const e = new r.Dict(this.xref);
+ e.set("BaseFont", this.fontName);
+ e.set("Type", r.Name.get("Font"));
+ e.set("Subtype", r.Name.get("Type0"));
+ e.set("Encoding", r.Name.get("Identity-H"));
+ e.set("DescendantFonts", [this.descendantFontRef]);
+ e.set("ToUnicode", this.toUnicodeRef);
+ return this.xref.getNewPersistentRef(e);
+ }
+ get resources() {
+ const e = new r.Dict(this.xref),
+ t = new r.Dict(this.xref);
+ t.set(this.fontName.name, this.baseFontRef);
+ e.set("Font", t);
+ return e;
+ }
+ _createContext() {
+ this.widths = new Map();
+ this.ctxMeasure.font = `1000px ${this.fontFamily}`;
+ return this.ctxMeasure;
+ }
+ createFontResources(e) {
+ const t = this._createContext();
+ for (const a of e.split(/\r\n?|\n/))
+ for (const e of a.split("")) {
+ const a = e.charCodeAt(0);
+ if (this.widths.has(a)) continue;
+ const r = t.measureText(e),
+ n = Math.ceil(r.width);
+ this.widths.set(a, n);
+ this.firstChar = Math.min(a, this.firstChar);
+ this.lastChar = Math.max(a, this.lastChar);
+ }
+ return this.resources;
+ }
+ createAppearance(e, t, a, s, o, c) {
+ const l = this._createContext(),
+ u = [];
+ let d = -1 / 0;
+ for (const t of e.split(/\r\n?|\n/)) {
+ u.push(t);
+ const e = l.measureText(t).width;
+ d = Math.max(d, e);
+ for (const e of t.split("")) {
+ const t = e.charCodeAt(0);
+ let a = this.widths.get(t);
+ if (void 0 === a) {
+ const r = l.measureText(e);
+ a = Math.ceil(r.width);
+ this.widths.set(t, a);
+ this.firstChar = Math.min(t, this.firstChar);
+ this.lastChar = Math.max(t, this.lastChar);
+ }
+ }
+ }
+ d *= s / 1e3;
+ const [f, g, p, m] = t;
+ let b = p - f,
+ y = m - g;
+ a % 180 != 0 && ([b, y] = [y, b]);
+ let w = 1;
+ d > b && (w = b / d);
+ let S = 1;
+ const x = i.LINE_FACTOR * s,
+ C = i.LINE_DESCENT_FACTOR * s,
+ k = x * u.length;
+ k > y && (S = y / k);
+ const v = s * Math.min(w, S),
+ F = [
+ "q",
+ `0 0 ${(0, n.numberToString)(b)} ${(0, n.numberToString)(
+ y,
+ )} re W n`,
+ "BT",
+ `1 0 0 1 0 ${(0, n.numberToString)(
+ y + C,
+ )} Tm 0 Tc ${getPdfColor(o, !0)}`,
+ `/${this.fontName.name} ${(0, n.numberToString)(v)} Tf`,
+ ],
+ { resources: O } = this;
+ if (
+ 1 !== (c = "number" == typeof c && c >= 0 && c <= 1 ? c : 1)
+ ) {
+ F.push("/R0 gs");
+ const e = new r.Dict(this.xref),
+ t = new r.Dict(this.xref);
+ t.set("ca", c);
+ t.set("CA", c);
+ t.set("Type", r.Name.get("ExtGState"));
+ e.set("R0", t);
+ O.set("ExtGState", e);
+ }
+ const T = (0, n.numberToString)(x);
+ for (const e of u)
+ F.push(`0 -${T} Td <${(0, n.stringToUTF16HexString)(e)}> Tj`);
+ F.push("ET", "Q");
+ const M = F.join("\n"),
+ D = new r.Dict(this.xref);
+ D.set("Subtype", r.Name.get("Form"));
+ D.set("Type", r.Name.get("XObject"));
+ D.set("BBox", [0, 0, b, y]);
+ D.set("Length", M.length);
+ D.set("Resources", O);
+ if (a) {
+ const e = (0, n.getRotationMatrix)(a, b, y);
+ D.set("Matrix", e);
+ }
+ const E = new h.StringStream(M);
+ E.dict = D;
+ return E;
+ }
+ }
+ t.FakeUnicodeFont = FakeUnicodeFont;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.ColorSpace = void 0;
+ var r = a(2),
+ n = a(4),
+ i = a(5),
+ s = a(3);
+ class ColorSpace {
+ constructor(e, t) {
+ this.constructor === ColorSpace &&
+ (0, r.unreachable)("Cannot initialize ColorSpace.");
+ this.name = e;
+ this.numComps = t;
+ }
+ getRgb(e, t) {
+ const a = new Uint8ClampedArray(3);
+ this.getRgbItem(e, t, a, 0);
+ return a;
+ }
+ getRgbItem(e, t, a, n) {
+ (0, r.unreachable)("Should not call ColorSpace.getRgbItem");
+ }
+ getRgbBuffer(e, t, a, n, i, s, o) {
+ (0, r.unreachable)("Should not call ColorSpace.getRgbBuffer");
+ }
+ getOutputLength(e, t) {
+ (0, r.unreachable)("Should not call ColorSpace.getOutputLength");
+ }
+ isPassthrough(e) {
+ return !1;
+ }
+ isDefaultDecode(e, t) {
+ return ColorSpace.isDefaultDecode(e, this.numComps);
+ }
+ fillRgb(e, t, a, r, n, i, s, o, c) {
+ const l = t * a;
+ let h = null;
+ const u = 1 << s,
+ d = a !== n || t !== r;
+ if (this.isPassthrough(s)) h = o;
+ else if (
+ 1 === this.numComps &&
+ l > u &&
+ "DeviceGray" !== this.name &&
+ "DeviceRGB" !== this.name
+ ) {
+ const t = s <= 8 ? new Uint8Array(u) : new Uint16Array(u);
+ for (let e = 0; e < u; e++) t[e] = e;
+ const a = new Uint8ClampedArray(3 * u);
+ this.getRgbBuffer(t, 0, u, a, 0, s, 0);
+ if (d) {
+ h = new Uint8Array(3 * l);
+ let e = 0;
+ for (let t = 0; t < l; ++t) {
+ const r = 3 * o[t];
+ h[e++] = a[r];
+ h[e++] = a[r + 1];
+ h[e++] = a[r + 2];
+ }
+ } else {
+ let t = 0;
+ for (let r = 0; r < l; ++r) {
+ const n = 3 * o[r];
+ e[t++] = a[n];
+ e[t++] = a[n + 1];
+ e[t++] = a[n + 2];
+ t += c;
+ }
+ }
+ } else if (d) {
+ h = new Uint8ClampedArray(3 * l);
+ this.getRgbBuffer(o, 0, l, h, 0, s, 0);
+ } else this.getRgbBuffer(o, 0, r * i, e, 0, s, c);
+ if (h)
+ if (d)
+ !(function resizeRgbImage(e, t, a, r, n, i, s) {
+ s = 1 !== s ? 0 : s;
+ const o = a / n,
+ c = r / i;
+ let l,
+ h = 0;
+ const u = new Uint16Array(n),
+ d = 3 * a;
+ for (let e = 0; e < n; e++) u[e] = 3 * Math.floor(e * o);
+ for (let a = 0; a < i; a++) {
+ const r = Math.floor(a * c) * d;
+ for (let a = 0; a < n; a++) {
+ l = r + u[a];
+ t[h++] = e[l++];
+ t[h++] = e[l++];
+ t[h++] = e[l++];
+ h += s;
+ }
+ }
+ })(h, e, t, a, r, n, c);
+ else {
+ let t = 0,
+ a = 0;
+ for (let n = 0, s = r * i; n < s; n++) {
+ e[t++] = h[a++];
+ e[t++] = h[a++];
+ e[t++] = h[a++];
+ t += c;
+ }
+ }
+ }
+ get usesZeroToOneRange() {
+ return (0, r.shadow)(this, "usesZeroToOneRange", !0);
+ }
+ static _cache(e, t, a, r) {
+ if (!a)
+ throw new Error(
+ 'ColorSpace._cache - expected "localColorSpaceCache" argument.',
+ );
+ if (!r)
+ throw new Error(
+ 'ColorSpace._cache - expected "parsedColorSpace" argument.',
+ );
+ let i, s;
+ if (e instanceof n.Ref) {
+ s = e;
+ e = t.fetch(e);
+ }
+ e instanceof n.Name && (i = e.name);
+ (i || s) && a.set(i, s, r);
+ }
+ static getCached(e, t, a) {
+ if (!a)
+ throw new Error(
+ 'ColorSpace.getCached - expected "localColorSpaceCache" argument.',
+ );
+ if (e instanceof n.Ref) {
+ const r = a.getByRef(e);
+ if (r) return r;
+ try {
+ e = t.fetch(e);
+ } catch (e) {
+ if (e instanceof s.MissingDataException) throw e;
+ }
+ }
+ if (e instanceof n.Name) {
+ const t = a.getByName(e.name);
+ if (t) return t;
+ }
+ return null;
+ }
+ static async parseAsync({
+ cs: e,
+ xref: t,
+ resources: a = null,
+ pdfFunctionFactory: r,
+ localColorSpaceCache: n,
+ }) {
+ const i = this._parse(e, t, a, r);
+ this._cache(e, t, n, i);
+ return i;
+ }
+ static parse({
+ cs: e,
+ xref: t,
+ resources: a = null,
+ pdfFunctionFactory: r,
+ localColorSpaceCache: n,
+ }) {
+ const i = this.getCached(e, t, n);
+ if (i) return i;
+ const s = this._parse(e, t, a, r);
+ this._cache(e, t, n, s);
+ return s;
+ }
+ static _parse(e, t, a = null, i) {
+ if ((e = t.fetchIfRef(e)) instanceof n.Name)
+ switch (e.name) {
+ case "G":
+ case "DeviceGray":
+ return this.singletons.gray;
+ case "RGB":
+ case "DeviceRGB":
+ return this.singletons.rgb;
+ case "CMYK":
+ case "DeviceCMYK":
+ return this.singletons.cmyk;
+ case "Pattern":
+ return new PatternCS(null);
+ default:
+ if (a instanceof n.Dict) {
+ const r = a.get("ColorSpace");
+ if (r instanceof n.Dict) {
+ const s = r.get(e.name);
+ if (s) {
+ if (s instanceof n.Name)
+ return this._parse(s, t, a, i);
+ e = s;
+ break;
+ }
+ }
+ }
+ throw new r.FormatError(
+ `Unrecognized ColorSpace: ${e.name}`,
+ );
+ }
+ if (Array.isArray(e)) {
+ const n = t.fetchIfRef(e[0]).name;
+ let s, o, c, l, h, u;
+ switch (n) {
+ case "G":
+ case "DeviceGray":
+ return this.singletons.gray;
+ case "RGB":
+ case "DeviceRGB":
+ return this.singletons.rgb;
+ case "CMYK":
+ case "DeviceCMYK":
+ return this.singletons.cmyk;
+ case "CalGray":
+ s = t.fetchIfRef(e[1]);
+ l = s.getArray("WhitePoint");
+ h = s.getArray("BlackPoint");
+ u = s.get("Gamma");
+ return new CalGrayCS(l, h, u);
+ case "CalRGB":
+ s = t.fetchIfRef(e[1]);
+ l = s.getArray("WhitePoint");
+ h = s.getArray("BlackPoint");
+ u = s.getArray("Gamma");
+ const d = s.getArray("Matrix");
+ return new CalRGBCS(l, h, u, d);
+ case "ICCBased":
+ const f = t.fetchIfRef(e[1]).dict;
+ o = f.get("N");
+ const g = f.get("Alternate");
+ if (g) {
+ const e = this._parse(g, t, a, i);
+ if (e.numComps === o) return e;
+ (0, r.warn)(
+ "ICCBased color space: Ignoring incorrect /Alternate entry.",
+ );
+ }
+ if (1 === o) return this.singletons.gray;
+ if (3 === o) return this.singletons.rgb;
+ if (4 === o) return this.singletons.cmyk;
+ break;
+ case "Pattern":
+ c = e[1] || null;
+ c && (c = this._parse(c, t, a, i));
+ return new PatternCS(c);
+ case "I":
+ case "Indexed":
+ c = this._parse(e[1], t, a, i);
+ const p = t.fetchIfRef(e[2]) + 1,
+ m = t.fetchIfRef(e[3]);
+ return new IndexedCS(c, p, m);
+ case "Separation":
+ case "DeviceN":
+ const b = t.fetchIfRef(e[1]);
+ o = Array.isArray(b) ? b.length : 1;
+ c = this._parse(e[2], t, a, i);
+ const y = i.create(e[3]);
+ return new AlternateCS(o, c, y);
+ case "Lab":
+ s = t.fetchIfRef(e[1]);
+ l = s.getArray("WhitePoint");
+ h = s.getArray("BlackPoint");
+ const w = s.getArray("Range");
+ return new LabCS(l, h, w);
+ default:
+ throw new r.FormatError(
+ `Unimplemented ColorSpace object: ${n}`,
+ );
+ }
+ }
+ throw new r.FormatError(`Unrecognized ColorSpace object: ${e}`);
+ }
+ static isDefaultDecode(e, t) {
+ if (!Array.isArray(e)) return !0;
+ if (2 * t !== e.length) {
+ (0, r.warn)("The decode map is not the correct length");
+ return !0;
+ }
+ for (let t = 0, a = e.length; t < a; t += 2)
+ if (0 !== e[t] || 1 !== e[t + 1]) return !1;
+ return !0;
+ }
+ static get singletons() {
+ return (0, r.shadow)(this, "singletons", {
+ get gray() {
+ return (0, r.shadow)(this, "gray", new DeviceGrayCS());
+ },
+ get rgb() {
+ return (0, r.shadow)(this, "rgb", new DeviceRgbCS());
+ },
+ get cmyk() {
+ return (0, r.shadow)(this, "cmyk", new DeviceCmykCS());
+ },
+ });
+ }
+ }
+ t.ColorSpace = ColorSpace;
+ class AlternateCS extends ColorSpace {
+ constructor(e, t, a) {
+ super("Alternate", e);
+ this.base = t;
+ this.tintFn = a;
+ this.tmpBuf = new Float32Array(t.numComps);
+ }
+ getRgbItem(e, t, a, r) {
+ const n = this.tmpBuf;
+ this.tintFn(e, t, n, 0);
+ this.base.getRgbItem(n, 0, a, r);
+ }
+ getRgbBuffer(e, t, a, r, n, i, s) {
+ const o = this.tintFn,
+ c = this.base,
+ l = 1 / ((1 << i) - 1),
+ h = c.numComps,
+ u = c.usesZeroToOneRange,
+ d = (c.isPassthrough(8) || !u) && 0 === s;
+ let f = d ? n : 0;
+ const g = d ? r : new Uint8ClampedArray(h * a),
+ p = this.numComps,
+ m = new Float32Array(p),
+ b = new Float32Array(h);
+ let y, w;
+ for (y = 0; y < a; y++) {
+ for (w = 0; w < p; w++) m[w] = e[t++] * l;
+ o(m, 0, b, 0);
+ if (u) for (w = 0; w < h; w++) g[f++] = 255 * b[w];
+ else {
+ c.getRgbItem(b, 0, g, f);
+ f += h;
+ }
+ }
+ d || c.getRgbBuffer(g, 0, a, r, n, 8, s);
+ }
+ getOutputLength(e, t) {
+ return this.base.getOutputLength(
+ (e * this.base.numComps) / this.numComps,
+ t,
+ );
+ }
+ }
+ class PatternCS extends ColorSpace {
+ constructor(e) {
+ super("Pattern", null);
+ this.base = e;
+ }
+ isDefaultDecode(e, t) {
+ (0, r.unreachable)("Should not call PatternCS.isDefaultDecode");
+ }
+ }
+ class IndexedCS extends ColorSpace {
+ constructor(e, t, a) {
+ super("Indexed", 1);
+ this.base = e;
+ this.highVal = t;
+ const n = e.numComps * t;
+ this.lookup = new Uint8Array(n);
+ if (a instanceof i.BaseStream) {
+ const e = a.getBytes(n);
+ this.lookup.set(e);
+ } else {
+ if ("string" != typeof a)
+ throw new r.FormatError(
+ `IndexedCS - unrecognized lookup table: ${a}`,
+ );
+ for (let e = 0; e < n; ++e)
+ this.lookup[e] = 255 & a.charCodeAt(e);
+ }
+ }
+ getRgbItem(e, t, a, r) {
+ const n = this.base.numComps,
+ i = e[t] * n;
+ this.base.getRgbBuffer(this.lookup, i, 1, a, r, 8, 0);
+ }
+ getRgbBuffer(e, t, a, r, n, i, s) {
+ const o = this.base,
+ c = o.numComps,
+ l = o.getOutputLength(c, s),
+ h = this.lookup;
+ for (let i = 0; i < a; ++i) {
+ const a = e[t++] * c;
+ o.getRgbBuffer(h, a, 1, r, n, 8, s);
+ n += l;
+ }
+ }
+ getOutputLength(e, t) {
+ return this.base.getOutputLength(e * this.base.numComps, t);
+ }
+ isDefaultDecode(e, t) {
+ if (!Array.isArray(e)) return !0;
+ if (2 !== e.length) {
+ (0, r.warn)("Decode map length is not correct");
+ return !0;
+ }
+ if (!Number.isInteger(t) || t < 1) {
+ (0, r.warn)("Bits per component is not correct");
+ return !0;
+ }
+ return 0 === e[0] && e[1] === (1 << t) - 1;
+ }
+ }
+ class DeviceGrayCS extends ColorSpace {
+ constructor() {
+ super("DeviceGray", 1);
+ }
+ getRgbItem(e, t, a, r) {
+ const n = 255 * e[t];
+ a[r] = a[r + 1] = a[r + 2] = n;
+ }
+ getRgbBuffer(e, t, a, r, n, i, s) {
+ const o = 255 / ((1 << i) - 1);
+ let c = t,
+ l = n;
+ for (let t = 0; t < a; ++t) {
+ const t = o * e[c++];
+ r[l++] = t;
+ r[l++] = t;
+ r[l++] = t;
+ l += s;
+ }
+ }
+ getOutputLength(e, t) {
+ return e * (3 + t);
+ }
+ }
+ class DeviceRgbCS extends ColorSpace {
+ constructor() {
+ super("DeviceRGB", 3);
+ }
+ getRgbItem(e, t, a, r) {
+ a[r] = 255 * e[t];
+ a[r + 1] = 255 * e[t + 1];
+ a[r + 2] = 255 * e[t + 2];
+ }
+ getRgbBuffer(e, t, a, r, n, i, s) {
+ if (8 === i && 0 === s) {
+ r.set(e.subarray(t, t + 3 * a), n);
+ return;
+ }
+ const o = 255 / ((1 << i) - 1);
+ let c = t,
+ l = n;
+ for (let t = 0; t < a; ++t) {
+ r[l++] = o * e[c++];
+ r[l++] = o * e[c++];
+ r[l++] = o * e[c++];
+ l += s;
+ }
+ }
+ getOutputLength(e, t) {
+ return ((e * (3 + t)) / 3) | 0;
+ }
+ isPassthrough(e) {
+ return 8 === e;
+ }
+ }
+ class DeviceCmykCS extends ColorSpace {
+ constructor() {
+ super("DeviceCMYK", 4);
+ }
+ #r(e, t, a, r, n) {
+ const i = e[t] * a,
+ s = e[t + 1] * a,
+ o = e[t + 2] * a,
+ c = e[t + 3] * a;
+ r[n] =
+ 255 +
+ i *
+ (-4.387332384609988 * i +
+ 54.48615194189176 * s +
+ 18.82290502165302 * o +
+ 212.25662451639585 * c -
+ 285.2331026137004) +
+ s *
+ (1.7149763477362134 * s -
+ 5.6096736904047315 * o +
+ -17.873870861415444 * c -
+ 5.497006427196366) +
+ o *
+ (-2.5217340131683033 * o -
+ 21.248923337353073 * c +
+ 17.5119270841813) +
+ c * (-21.86122147463605 * c - 189.48180835922747);
+ r[n + 1] =
+ 255 +
+ i *
+ (8.841041422036149 * i +
+ 60.118027045597366 * s +
+ 6.871425592049007 * o +
+ 31.159100130055922 * c -
+ 79.2970844816548) +
+ s *
+ (-15.310361306967817 * s +
+ 17.575251261109482 * o +
+ 131.35250912493976 * c -
+ 190.9453302588951) +
+ o *
+ (4.444339102852739 * o +
+ 9.8632861493405 * c -
+ 24.86741582555878) +
+ c * (-20.737325471181034 * c - 187.80453709719578);
+ r[n + 2] =
+ 255 +
+ i *
+ (0.8842522430003296 * i +
+ 8.078677503112928 * s +
+ 30.89978309703729 * o -
+ 0.23883238689178934 * c -
+ 14.183576799673286) +
+ s *
+ (10.49593273432072 * s +
+ 63.02378494754052 * o +
+ 50.606957656360734 * c -
+ 112.23884253719248) +
+ o *
+ (0.03296041114873217 * o +
+ 115.60384449646641 * c -
+ 193.58209356861505) +
+ c * (-22.33816807309886 * c - 180.12613974708367);
+ }
+ getRgbItem(e, t, a, r) {
+ this.#r(e, t, 1, a, r);
+ }
+ getRgbBuffer(e, t, a, r, n, i, s) {
+ const o = 1 / ((1 << i) - 1);
+ for (let i = 0; i < a; i++) {
+ this.#r(e, t, o, r, n);
+ t += 4;
+ n += 3 + s;
+ }
+ }
+ getOutputLength(e, t) {
+ return ((e / 4) * (3 + t)) | 0;
+ }
+ }
+ class CalGrayCS extends ColorSpace {
+ constructor(e, t, a) {
+ super("CalGray", 1);
+ if (!e)
+ throw new r.FormatError(
+ "WhitePoint missing - required for color space CalGray",
+ );
+ [this.XW, this.YW, this.ZW] = e;
+ [this.XB, this.YB, this.ZB] = t || [0, 0, 0];
+ this.G = a || 1;
+ if (this.XW < 0 || this.ZW < 0 || 1 !== this.YW)
+ throw new r.FormatError(
+ `Invalid WhitePoint components for ${this.name}, no fallback available`,
+ );
+ if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {
+ (0, r.info)(
+ `Invalid BlackPoint for ${this.name}, falling back to default.`,
+ );
+ this.XB = this.YB = this.ZB = 0;
+ }
+ (0 === this.XB && 0 === this.YB && 0 === this.ZB) ||
+ (0, r.warn)(
+ `${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ZB: ${this.ZB}, only default values are supported.`,
+ );
+ if (this.G < 1) {
+ (0, r.info)(
+ `Invalid Gamma: ${this.G} for ${this.name}, falling back to default.`,
+ );
+ this.G = 1;
+ }
+ }
+ #r(e, t, a, r, n) {
+ const i = (e[t] * n) ** this.G,
+ s = this.YW * i,
+ o = Math.max(295.8 * s ** 0.3333333333333333 - 40.8, 0);
+ a[r] = o;
+ a[r + 1] = o;
+ a[r + 2] = o;
+ }
+ getRgbItem(e, t, a, r) {
+ this.#r(e, t, a, r, 1);
+ }
+ getRgbBuffer(e, t, a, r, n, i, s) {
+ const o = 1 / ((1 << i) - 1);
+ for (let i = 0; i < a; ++i) {
+ this.#r(e, t, r, n, o);
+ t += 1;
+ n += 3 + s;
+ }
+ }
+ getOutputLength(e, t) {
+ return e * (3 + t);
+ }
+ }
+ class CalRGBCS extends ColorSpace {
+ static #n = new Float32Array([
+ 0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685,
+ 1.0296,
+ ]);
+ static #i = new Float32Array([
+ 0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912,
+ -0.0085287, 0.0400428, 0.9684867,
+ ]);
+ static #s = new Float32Array([
+ 3.2404542, -1.5371385, -0.4985314, -0.969266, 1.8760108, 0.041556,
+ 0.0556434, -0.2040259, 1.0572252,
+ ]);
+ static #o = new Float32Array([1, 1, 1]);
+ static #c = new Float32Array(3);
+ static #l = new Float32Array(3);
+ static #h = new Float32Array(3);
+ static #u = (24 / 116) ** 3 / 8;
+ constructor(e, t, a, n) {
+ super("CalRGB", 3);
+ if (!e)
+ throw new r.FormatError(
+ "WhitePoint missing - required for color space CalRGB",
+ );
+ const [i, s, o] = (this.whitePoint = e),
+ [c, l, h] = (this.blackPoint = t || new Float32Array(3));
+ [this.GR, this.GG, this.GB] = a || new Float32Array([1, 1, 1]);
+ [
+ this.MXA,
+ this.MYA,
+ this.MZA,
+ this.MXB,
+ this.MYB,
+ this.MZB,
+ this.MXC,
+ this.MYC,
+ this.MZC,
+ ] = n || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);
+ if (i < 0 || o < 0 || 1 !== s)
+ throw new r.FormatError(
+ `Invalid WhitePoint components for ${this.name}, no fallback available`,
+ );
+ if (c < 0 || l < 0 || h < 0) {
+ (0, r.info)(
+ `Invalid BlackPoint for ${this.name} [${c}, ${l}, ${h}], falling back to default.`,
+ );
+ this.blackPoint = new Float32Array(3);
+ }
+ if (this.GR < 0 || this.GG < 0 || this.GB < 0) {
+ (0, r.info)(
+ `Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ${this.name}, falling back to default.`,
+ );
+ this.GR = this.GG = this.GB = 1;
+ }
+ }
+ #d(e, t, a) {
+ a[0] = e[0] * t[0] + e[1] * t[1] + e[2] * t[2];
+ a[1] = e[3] * t[0] + e[4] * t[1] + e[5] * t[2];
+ a[2] = e[6] * t[0] + e[7] * t[1] + e[8] * t[2];
+ }
+ #f(e, t, a) {
+ a[0] = (1 * t[0]) / e[0];
+ a[1] = (1 * t[1]) / e[1];
+ a[2] = (1 * t[2]) / e[2];
+ }
+ #g(e, t, a) {
+ a[0] = (0.95047 * t[0]) / e[0];
+ a[1] = (1 * t[1]) / e[1];
+ a[2] = (1.08883 * t[2]) / e[2];
+ }
+ #p(e) {
+ return e <= 0.0031308
+ ? this.#m(0, 1, 12.92 * e)
+ : e >= 0.99554525
+ ? 1
+ : this.#m(0, 1, 1.055 * e ** (1 / 2.4) - 0.055);
+ }
+ #m(e, t, a) {
+ return Math.max(e, Math.min(t, a));
+ }
+ #b(e) {
+ return e < 0
+ ? -this.#b(-e)
+ : e > 8
+ ? ((e + 16) / 116) ** 3
+ : e * CalRGBCS.#u;
+ }
+ #y(e, t, a) {
+ if (0 === e[0] && 0 === e[1] && 0 === e[2]) {
+ a[0] = t[0];
+ a[1] = t[1];
+ a[2] = t[2];
+ return;
+ }
+ const r = this.#b(0),
+ n = (1 - r) / (1 - this.#b(e[0])),
+ i = 1 - n,
+ s = (1 - r) / (1 - this.#b(e[1])),
+ o = 1 - s,
+ c = (1 - r) / (1 - this.#b(e[2])),
+ l = 1 - c;
+ a[0] = t[0] * n + i;
+ a[1] = t[1] * s + o;
+ a[2] = t[2] * c + l;
+ }
+ #w(e, t, a) {
+ if (1 === e[0] && 1 === e[2]) {
+ a[0] = t[0];
+ a[1] = t[1];
+ a[2] = t[2];
+ return;
+ }
+ const r = a;
+ this.#d(CalRGBCS.#n, t, r);
+ const n = CalRGBCS.#c;
+ this.#f(e, r, n);
+ this.#d(CalRGBCS.#i, n, a);
+ }
+ #S(e, t, a) {
+ const r = a;
+ this.#d(CalRGBCS.#n, t, r);
+ const n = CalRGBCS.#c;
+ this.#g(e, r, n);
+ this.#d(CalRGBCS.#i, n, a);
+ }
+ #r(e, t, a, r, n) {
+ const i = this.#m(0, 1, e[t] * n),
+ s = this.#m(0, 1, e[t + 1] * n),
+ o = this.#m(0, 1, e[t + 2] * n),
+ c = 1 === i ? 1 : i ** this.GR,
+ l = 1 === s ? 1 : s ** this.GG,
+ h = 1 === o ? 1 : o ** this.GB,
+ u = this.MXA * c + this.MXB * l + this.MXC * h,
+ d = this.MYA * c + this.MYB * l + this.MYC * h,
+ f = this.MZA * c + this.MZB * l + this.MZC * h,
+ g = CalRGBCS.#l;
+ g[0] = u;
+ g[1] = d;
+ g[2] = f;
+ const p = CalRGBCS.#h;
+ this.#w(this.whitePoint, g, p);
+ const m = CalRGBCS.#l;
+ this.#y(this.blackPoint, p, m);
+ const b = CalRGBCS.#h;
+ this.#S(CalRGBCS.#o, m, b);
+ const y = CalRGBCS.#l;
+ this.#d(CalRGBCS.#s, b, y);
+ a[r] = 255 * this.#p(y[0]);
+ a[r + 1] = 255 * this.#p(y[1]);
+ a[r + 2] = 255 * this.#p(y[2]);
+ }
+ getRgbItem(e, t, a, r) {
+ this.#r(e, t, a, r, 1);
+ }
+ getRgbBuffer(e, t, a, r, n, i, s) {
+ const o = 1 / ((1 << i) - 1);
+ for (let i = 0; i < a; ++i) {
+ this.#r(e, t, r, n, o);
+ t += 3;
+ n += 3 + s;
+ }
+ }
+ getOutputLength(e, t) {
+ return ((e * (3 + t)) / 3) | 0;
+ }
+ }
+ class LabCS extends ColorSpace {
+ constructor(e, t, a) {
+ super("Lab", 3);
+ if (!e)
+ throw new r.FormatError(
+ "WhitePoint missing - required for color space Lab",
+ );
+ [this.XW, this.YW, this.ZW] = e;
+ [this.amin, this.amax, this.bmin, this.bmax] = a || [
+ -100, 100, -100, 100,
+ ];
+ [this.XB, this.YB, this.ZB] = t || [0, 0, 0];
+ if (this.XW < 0 || this.ZW < 0 || 1 !== this.YW)
+ throw new r.FormatError(
+ "Invalid WhitePoint components, no fallback available",
+ );
+ if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {
+ (0, r.info)("Invalid BlackPoint, falling back to default");
+ this.XB = this.YB = this.ZB = 0;
+ }
+ if (this.amin > this.amax || this.bmin > this.bmax) {
+ (0, r.info)("Invalid Range, falling back to defaults");
+ this.amin = -100;
+ this.amax = 100;
+ this.bmin = -100;
+ this.bmax = 100;
+ }
+ }
+ #x(e) {
+ return e >= 6 / 29 ? e ** 3 : (108 / 841) * (e - 4 / 29);
+ }
+ #A(e, t, a, r) {
+ return a + (e * (r - a)) / t;
+ }
+ #r(e, t, a, r, n) {
+ let i = e[t],
+ s = e[t + 1],
+ o = e[t + 2];
+ if (!1 !== a) {
+ i = this.#A(i, a, 0, 100);
+ s = this.#A(s, a, this.amin, this.amax);
+ o = this.#A(o, a, this.bmin, this.bmax);
+ }
+ s > this.amax
+ ? (s = this.amax)
+ : s < this.amin && (s = this.amin);
+ o > this.bmax
+ ? (o = this.bmax)
+ : o < this.bmin && (o = this.bmin);
+ const c = (i + 16) / 116,
+ l = c + s / 500,
+ h = c - o / 200,
+ u = this.XW * this.#x(l),
+ d = this.YW * this.#x(c),
+ f = this.ZW * this.#x(h);
+ let g, p, m;
+ if (this.ZW < 1) {
+ g = 3.1339 * u + -1.617 * d + -0.4906 * f;
+ p = -0.9785 * u + 1.916 * d + 0.0333 * f;
+ m = 0.072 * u + -0.229 * d + 1.4057 * f;
+ } else {
+ g = 3.2406 * u + -1.5372 * d + -0.4986 * f;
+ p = -0.9689 * u + 1.8758 * d + 0.0415 * f;
+ m = 0.0557 * u + -0.204 * d + 1.057 * f;
+ }
+ r[n] = 255 * Math.sqrt(g);
+ r[n + 1] = 255 * Math.sqrt(p);
+ r[n + 2] = 255 * Math.sqrt(m);
+ }
+ getRgbItem(e, t, a, r) {
+ this.#r(e, t, !1, a, r);
+ }
+ getRgbBuffer(e, t, a, r, n, i, s) {
+ const o = (1 << i) - 1;
+ for (let i = 0; i < a; i++) {
+ this.#r(e, t, o, r, n);
+ t += 3;
+ n += 3 + s;
+ }
+ }
+ getOutputLength(e, t) {
+ return ((e * (3 + t)) / 3) | 0;
+ }
+ isDefaultDecode(e, t) {
+ return !0;
+ }
+ get usesZeroToOneRange() {
+ return (0, r.shadow)(this, "usesZeroToOneRange", !1);
+ }
+ }
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.PartialEvaluator = t.EvaluatorPreprocessor = void 0;
+ var r = a(2),
+ n = a(14),
+ i = a(4),
+ s = a(34),
+ o = a(37),
+ c = a(41),
+ l = a(50),
+ h = a(51),
+ u = a(42),
+ d = a(57),
+ f = a(16),
+ g = a(59),
+ p = a(8),
+ m = a(5),
+ b = a(60),
+ y = a(12),
+ w = a(18),
+ S = a(38),
+ x = a(61),
+ C = a(39),
+ k = a(45),
+ v = a(40),
+ F = a(62),
+ O = a(63),
+ T = a(64),
+ M = a(65);
+ const D = Object.freeze({
+ maxImageSize: -1,
+ disableFontFace: !1,
+ ignoreErrors: !1,
+ isEvalSupported: !0,
+ isOffscreenCanvasSupported: !1,
+ canvasMaxAreaInBytes: -1,
+ fontExtraProperties: !1,
+ useSystemFonts: !0,
+ cMapUrl: null,
+ standardFontDataUrl: null,
+ }),
+ E = 1,
+ N = 2,
+ R = Promise.resolve();
+ function normalizeBlendMode(e, t = !1) {
+ if (Array.isArray(e)) {
+ for (const t of e) {
+ const e = normalizeBlendMode(t, !0);
+ if (e) return e;
+ }
+ (0, r.warn)(`Unsupported blend mode Array: ${e}`);
+ return "source-over";
+ }
+ if (!(e instanceof i.Name)) return t ? null : "source-over";
+ switch (e.name) {
+ case "Normal":
+ case "Compatible":
+ return "source-over";
+ case "Multiply":
+ return "multiply";
+ case "Screen":
+ return "screen";
+ case "Overlay":
+ return "overlay";
+ case "Darken":
+ return "darken";
+ case "Lighten":
+ return "lighten";
+ case "ColorDodge":
+ return "color-dodge";
+ case "ColorBurn":
+ return "color-burn";
+ case "HardLight":
+ return "hard-light";
+ case "SoftLight":
+ return "soft-light";
+ case "Difference":
+ return "difference";
+ case "Exclusion":
+ return "exclusion";
+ case "Hue":
+ return "hue";
+ case "Saturation":
+ return "saturation";
+ case "Color":
+ return "color";
+ case "Luminosity":
+ return "luminosity";
+ }
+ if (t) return null;
+ (0, r.warn)(`Unsupported blend mode: ${e.name}`);
+ return "source-over";
+ }
+ function incrementCachedImageMaskCount(e) {
+ e.fn === r.OPS.paintImageMaskXObject &&
+ e.args[0]?.count > 0 &&
+ e.args[0].count++;
+ }
+ class TimeSlotManager {
+ static TIME_SLOT_DURATION_MS = 20;
+ static CHECK_TIME_EVERY = 100;
+ constructor() {
+ this.reset();
+ }
+ check() {
+ if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) return !1;
+ this.checked = 0;
+ return this.endTime <= Date.now();
+ }
+ reset() {
+ this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS;
+ this.checked = 0;
+ }
+ }
+ class PartialEvaluator {
+ constructor({
+ xref: e,
+ handler: t,
+ pageIndex: a,
+ idFactory: r,
+ fontCache: n,
+ builtInCMapCache: i,
+ standardFontDataCache: s,
+ globalImageCache: o,
+ systemFontCache: c,
+ options: l = null,
+ }) {
+ this.xref = e;
+ this.handler = t;
+ this.pageIndex = a;
+ this.idFactory = r;
+ this.fontCache = n;
+ this.builtInCMapCache = i;
+ this.standardFontDataCache = s;
+ this.globalImageCache = o;
+ this.systemFontCache = c;
+ this.options = l || D;
+ this.parsingType3Font = !1;
+ this._regionalImageCache = new g.RegionalImageCache();
+ this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this);
+ F.ImageResizer.setMaxArea(this.options.canvasMaxAreaInBytes);
+ }
+ get _pdfFunctionFactory() {
+ const e = new d.PDFFunctionFactory({
+ xref: this.xref,
+ isEvalSupported: this.options.isEvalSupported,
+ });
+ return (0, r.shadow)(this, "_pdfFunctionFactory", e);
+ }
+ clone(e = null) {
+ const t = Object.create(this);
+ t.options = Object.assign(Object.create(null), this.options, e);
+ return t;
+ }
+ hasBlendModes(e, t) {
+ if (!(e instanceof i.Dict)) return !1;
+ if (e.objId && t.has(e.objId)) return !1;
+ const a = new i.RefSet(t);
+ e.objId && a.put(e.objId);
+ const n = [e],
+ s = this.xref;
+ for (; n.length; ) {
+ const e = n.shift(),
+ t = e.get("ExtGState");
+ if (t instanceof i.Dict)
+ for (let e of t.getRawValues()) {
+ if (e instanceof i.Ref) {
+ if (a.has(e)) continue;
+ try {
+ e = s.fetch(e);
+ } catch (t) {
+ a.put(e);
+ (0, r.info)(
+ `hasBlendModes - ignoring ExtGState: "${t}".`,
+ );
+ continue;
+ }
+ }
+ if (!(e instanceof i.Dict)) continue;
+ e.objId && a.put(e.objId);
+ const t = e.get("BM");
+ if (t instanceof i.Name) {
+ if ("Normal" !== t.name) return !0;
+ } else if (void 0 !== t && Array.isArray(t))
+ for (const e of t)
+ if (e instanceof i.Name && "Normal" !== e.name)
+ return !0;
+ }
+ const o = e.get("XObject");
+ if (o instanceof i.Dict)
+ for (let e of o.getRawValues()) {
+ if (e instanceof i.Ref) {
+ if (a.has(e)) continue;
+ try {
+ e = s.fetch(e);
+ } catch (t) {
+ a.put(e);
+ (0, r.info)(
+ `hasBlendModes - ignoring XObject: "${t}".`,
+ );
+ continue;
+ }
+ }
+ if (!(e instanceof m.BaseStream)) continue;
+ e.dict.objId && a.put(e.dict.objId);
+ const t = e.dict.get("Resources");
+ if (t instanceof i.Dict && (!t.objId || !a.has(t.objId))) {
+ n.push(t);
+ t.objId && a.put(t.objId);
+ }
+ }
+ }
+ for (const e of a) t.put(e);
+ return !1;
+ }
+ async fetchBuiltInCMap(e) {
+ const t = this.builtInCMapCache.get(e);
+ if (t) return t;
+ let a;
+ if (null !== this.options.cMapUrl) {
+ const t = `${this.options.cMapUrl}${e}.bcmap`,
+ n = await fetch(t);
+ if (!n.ok)
+ throw new Error(
+ `fetchBuiltInCMap: failed to fetch file "${t}" with "${n.statusText}".`,
+ );
+ a = {
+ cMapData: new Uint8Array(await n.arrayBuffer()),
+ compressionType: r.CMapCompressionType.BINARY,
+ };
+ } else
+ a = await this.handler.sendWithPromise("FetchBuiltInCMap", {
+ name: e,
+ });
+ a.compressionType !== r.CMapCompressionType.NONE &&
+ this.builtInCMapCache.set(e, a);
+ return a;
+ }
+ async fetchStandardFontData(e) {
+ const t = this.standardFontDataCache.get(e);
+ if (t) return new p.Stream(t);
+ if (
+ this.options.useSystemFonts &&
+ "Symbol" !== e &&
+ "ZapfDingbats" !== e
+ )
+ return null;
+ const a = (0, c.getFontNameToFileMap)()[e];
+ let n;
+ if (null !== this.options.standardFontDataUrl) {
+ const e = `${this.options.standardFontDataUrl}${a}`,
+ t = await fetch(e);
+ t.ok
+ ? (n = await t.arrayBuffer())
+ : (0, r.warn)(
+ `fetchStandardFontData: failed to fetch file "${e}" with "${t.statusText}".`,
+ );
+ } else
+ try {
+ n = await this.handler.sendWithPromise(
+ "FetchStandardFontData",
+ { filename: a },
+ );
+ } catch (e) {
+ (0, r.warn)(
+ `fetchStandardFontData: failed to fetch file "${a}" with "${e}".`,
+ );
+ }
+ if (!n) return null;
+ this.standardFontDataCache.set(e, n);
+ return new p.Stream(n);
+ }
+ async buildFormXObject(e, t, a, n, s, o, c) {
+ const l = t.dict,
+ h = l.getArray("Matrix");
+ let u,
+ d,
+ f = l.getArray("BBox");
+ f =
+ Array.isArray(f) && 4 === f.length
+ ? r.Util.normalizeRect(f)
+ : null;
+ l.has("OC") &&
+ (u = await this.parseMarkedContentProps(l.get("OC"), e));
+ void 0 !== u && n.addOp(r.OPS.beginMarkedContentProps, ["OC", u]);
+ const g = l.get("Group");
+ if (g) {
+ d = {
+ matrix: h,
+ bbox: f,
+ smask: a,
+ isolated: !1,
+ knockout: !1,
+ };
+ const t = g.get("S");
+ let s = null;
+ if ((0, i.isName)(t, "Transparency")) {
+ d.isolated = g.get("I") || !1;
+ d.knockout = g.get("K") || !1;
+ if (g.has("CS")) {
+ const t = g.getRaw("CS"),
+ a = y.ColorSpace.getCached(t, this.xref, c);
+ s =
+ a ||
+ (await this.parseColorSpace({
+ cs: t,
+ resources: e,
+ localColorSpaceCache: c,
+ }));
+ }
+ }
+ if (a?.backdrop) {
+ s ||= y.ColorSpace.singletons.rgb;
+ a.backdrop = s.getRgb(a.backdrop, 0);
+ }
+ n.addOp(r.OPS.beginGroup, [d]);
+ }
+ const p = g ? [h, null] : [h, f];
+ n.addOp(r.OPS.paintFormXObjectBegin, p);
+ return this.getOperatorList({
+ stream: t,
+ task: s,
+ resources: l.get("Resources") || e,
+ operatorList: n,
+ initialState: o,
+ }).then(function () {
+ n.addOp(r.OPS.paintFormXObjectEnd, []);
+ g && n.addOp(r.OPS.endGroup, [d]);
+ void 0 !== u && n.addOp(r.OPS.endMarkedContent, []);
+ });
+ }
+ _sendImgData(e, t, a = !1) {
+ const r = t ? [t.bitmap || t.data.buffer] : null;
+ return this.parsingType3Font || a
+ ? this.handler.send("commonobj", [e, "Image", t], r)
+ : this.handler.send("obj", [e, this.pageIndex, "Image", t], r);
+ }
+ async buildPaintImageXObject({
+ resources: e,
+ image: t,
+ isInline: a = !1,
+ operatorList: n,
+ cacheKey: i,
+ localImageCache: s,
+ localColorSpaceCache: o,
+ }) {
+ const c = t.dict,
+ l = c.objId,
+ h = c.get("W", "Width"),
+ u = c.get("H", "Height");
+ if (!h || "number" != typeof h || !u || "number" != typeof u) {
+ (0, r.warn)("Image dimensions are missing, or not numbers.");
+ return;
+ }
+ const d = this.options.maxImageSize;
+ if (-1 !== d && h * u > d) {
+ const e =
+ "Image exceeded maximum allowed size and was removed.";
+ if (this.options.ignoreErrors) {
+ (0, r.warn)(e);
+ return;
+ }
+ throw new Error(e);
+ }
+ let f;
+ c.has("OC") &&
+ (f = await this.parseMarkedContentProps(c.get("OC"), e));
+ let g, p;
+ if (c.get("IM", "ImageMask") || !1) {
+ const e = c.get("I", "Interpolate"),
+ a = (h + 7) >> 3,
+ o = t.getBytes(a * u),
+ d = c.getArray("D", "Decode");
+ if (this.parsingType3Font) {
+ g = M.PDFImage.createRawMask({
+ imgArray: o,
+ width: h,
+ height: u,
+ imageIsFromDecodeStream: t instanceof w.DecodeStream,
+ inverseDecode: d?.[0] > 0,
+ interpolate: e,
+ });
+ g.cached = !!i;
+ p = [g];
+ n.addImageOps(r.OPS.paintImageMaskXObject, p, f);
+ if (i) {
+ const e = {
+ fn: r.OPS.paintImageMaskXObject,
+ args: p,
+ optionalContent: f,
+ };
+ s.set(i, l, e);
+ l && this._regionalImageCache.set(null, l, e);
+ }
+ return;
+ }
+ g = await M.PDFImage.createMask({
+ imgArray: o,
+ width: h,
+ height: u,
+ imageIsFromDecodeStream: t instanceof w.DecodeStream,
+ inverseDecode: d?.[0] > 0,
+ interpolate: e,
+ isOffscreenCanvasSupported:
+ this.options.isOffscreenCanvasSupported,
+ });
+ if (g.isSingleOpaquePixel) {
+ n.addImageOps(r.OPS.paintSolidColorImageMask, [], f);
+ if (i) {
+ const e = {
+ fn: r.OPS.paintSolidColorImageMask,
+ args: [],
+ optionalContent: f,
+ };
+ s.set(i, l, e);
+ l && this._regionalImageCache.set(null, l, e);
+ }
+ return;
+ }
+ const m = `mask_${this.idFactory.createObjId()}`;
+ n.addDependency(m);
+ this._sendImgData(m, g);
+ p = [
+ {
+ data: m,
+ width: g.width,
+ height: g.height,
+ interpolate: g.interpolate,
+ count: 1,
+ },
+ ];
+ n.addImageOps(r.OPS.paintImageMaskXObject, p, f);
+ if (i) {
+ const e = {
+ fn: r.OPS.paintImageMaskXObject,
+ args: p,
+ optionalContent: f,
+ };
+ s.set(i, l, e);
+ l && this._regionalImageCache.set(null, l, e);
+ }
+ return;
+ }
+ if (a && !c.has("SMask") && !c.has("Mask") && h + u < 200) {
+ const i = new M.PDFImage({
+ xref: this.xref,
+ res: e,
+ image: t,
+ isInline: a,
+ pdfFunctionFactory: this._pdfFunctionFactory,
+ localColorSpaceCache: o,
+ });
+ g = await i.createImageData(!0, !1);
+ n.isOffscreenCanvasSupported =
+ this.options.isOffscreenCanvasSupported;
+ n.addImageOps(r.OPS.paintInlineImageXObject, [g], f);
+ return;
+ }
+ let m = `img_${this.idFactory.createObjId()}`,
+ b = !1;
+ if (this.parsingType3Font)
+ m = `${this.idFactory.getDocId()}_type3_${m}`;
+ else if (l) {
+ b = this.globalImageCache.shouldCache(l, this.pageIndex);
+ b && (m = `${this.idFactory.getDocId()}_${m}`);
+ }
+ n.addDependency(m);
+ p = [m, h, u];
+ M.PDFImage.buildImage({
+ xref: this.xref,
+ res: e,
+ image: t,
+ isInline: a,
+ pdfFunctionFactory: this._pdfFunctionFactory,
+ localColorSpaceCache: o,
+ })
+ .then(async (e) => {
+ g = await e.createImageData(
+ !1,
+ this.options.isOffscreenCanvasSupported,
+ );
+ if (i && l && b) {
+ const e = g.bitmap ? g.width * g.height * 4 : g.data.length;
+ this.globalImageCache.addByteSize(l, e);
+ }
+ return this._sendImgData(m, g, b);
+ })
+ .catch((e) => {
+ (0, r.warn)(`Unable to decode image "${m}": "${e}".`);
+ return this._sendImgData(m, null, b);
+ });
+ n.addImageOps(r.OPS.paintImageXObject, p, f);
+ if (i) {
+ const e = {
+ fn: r.OPS.paintImageXObject,
+ args: p,
+ optionalContent: f,
+ };
+ s.set(i, l, e);
+ if (l) {
+ this._regionalImageCache.set(null, l, e);
+ if (b) {
+ (0, r.assert)(!a, "Cannot cache an inline image globally.");
+ this.globalImageCache.setData(l, {
+ objId: m,
+ fn: r.OPS.paintImageXObject,
+ args: p,
+ optionalContent: f,
+ byteSize: 0,
+ });
+ }
+ }
+ }
+ }
+ handleSMask(e, t, a, r, n, i) {
+ const s = e.get("G"),
+ o = { subtype: e.get("S").name, backdrop: e.get("BC") },
+ c = e.get("TR");
+ if ((0, d.isPDFFunction)(c)) {
+ const e = this._pdfFunctionFactory.create(c),
+ t = new Uint8Array(256),
+ a = new Float32Array(1);
+ for (let r = 0; r < 256; r++) {
+ a[0] = r / 255;
+ e(a, 0, a, 0);
+ t[r] = (255 * a[0]) | 0;
+ }
+ o.transferMap = t;
+ }
+ return this.buildFormXObject(t, s, o, a, r, n.state.clone(), i);
+ }
+ handleTransferFunction(e) {
+ let t;
+ if (Array.isArray(e)) t = e;
+ else {
+ if (!(0, d.isPDFFunction)(e)) return null;
+ t = [e];
+ }
+ const a = [];
+ let r = 0,
+ n = 0;
+ for (const e of t) {
+ const t = this.xref.fetchIfRef(e);
+ r++;
+ if ((0, i.isName)(t, "Identity")) {
+ a.push(null);
+ continue;
+ }
+ if (!(0, d.isPDFFunction)(t)) return null;
+ const s = this._pdfFunctionFactory.create(t),
+ o = new Uint8Array(256),
+ c = new Float32Array(1);
+ for (let e = 0; e < 256; e++) {
+ c[0] = e / 255;
+ s(c, 0, c, 0);
+ o[e] = (255 * c[0]) | 0;
+ }
+ a.push(o);
+ n++;
+ }
+ return (1 !== r && 4 !== r) || 0 === n ? null : a;
+ }
+ handleTilingType(e, t, a, n, s, o, c, h) {
+ const u = new T.OperatorList(),
+ d = i.Dict.merge({
+ xref: this.xref,
+ dictArray: [s.get("Resources"), a],
+ });
+ return this.getOperatorList({
+ stream: n,
+ task: c,
+ resources: d,
+ operatorList: u,
+ })
+ .then(function () {
+ const a = u.getIR(),
+ r = (0, l.getTilingPatternIR)(a, s, t);
+ o.addDependencies(u.dependencies);
+ o.addOp(e, r);
+ s.objId &&
+ h.set(null, s.objId, { operatorListIR: a, dict: s });
+ })
+ .catch((e) => {
+ if (!(e instanceof r.AbortException)) {
+ if (!this.options.ignoreErrors) throw e;
+ (0, r.warn)(`handleTilingType - ignoring pattern: "${e}".`);
+ }
+ });
+ }
+ handleSetFont(e, t, a, r, n, o, c = null, l = null) {
+ const h = t?.[0] instanceof i.Name ? t[0].name : null;
+ return this.loadFont(h, a, e, c, l)
+ .then((t) =>
+ t.font.isType3Font
+ ? t
+ .loadType3Data(this, e, n)
+ .then(function () {
+ r.addDependencies(t.type3Dependencies);
+ return t;
+ })
+ .catch(
+ (e) =>
+ new TranslatedFont({
+ loadedName: "g_font_error",
+ font: new s.ErrorFont(
+ `Type3 font load error: ${e}`,
+ ),
+ dict: t.font,
+ evaluatorOptions: this.options,
+ }),
+ )
+ : t,
+ )
+ .then((e) => {
+ o.font = e.font;
+ e.send(this.handler);
+ return e.loadedName;
+ });
+ }
+ handleText(e, t) {
+ const a = t.font,
+ n = a.charsToGlyphs(e);
+ if (a.data) {
+ (!!(
+ t.textRenderingMode & r.TextRenderingMode.ADD_TO_PATH_FLAG
+ ) ||
+ "Pattern" === t.fillColorSpace.name ||
+ a.disableFontFace ||
+ this.options.disableFontFace) &&
+ PartialEvaluator.buildFontPaths(
+ a,
+ n,
+ this.handler,
+ this.options,
+ );
+ }
+ return n;
+ }
+ ensureStateFont(e) {
+ if (e.font) return;
+ const t = new r.FormatError(
+ "Missing setFont (Tf) operator before text rendering operator.",
+ );
+ if (!this.options.ignoreErrors) throw t;
+ (0, r.warn)(`ensureStateFont: "${t}".`);
+ }
+ async setGState({
+ resources: e,
+ gState: t,
+ operatorList: a,
+ cacheKey: n,
+ task: s,
+ stateManager: o,
+ localGStateCache: c,
+ localColorSpaceCache: l,
+ }) {
+ const h = t.objId;
+ let u = !0;
+ const d = [];
+ let f = Promise.resolve();
+ for (const n of t.getKeys()) {
+ const c = t.get(n);
+ switch (n) {
+ case "Type":
+ break;
+ case "LW":
+ case "LC":
+ case "LJ":
+ case "ML":
+ case "D":
+ case "RI":
+ case "FL":
+ case "CA":
+ case "ca":
+ d.push([n, c]);
+ break;
+ case "Font":
+ u = !1;
+ f = f.then(() =>
+ this.handleSetFont(e, null, c[0], a, s, o.state).then(
+ function (e) {
+ a.addDependency(e);
+ d.push([n, [e, c[1]]]);
+ },
+ ),
+ );
+ break;
+ case "BM":
+ d.push([n, normalizeBlendMode(c)]);
+ break;
+ case "SMask":
+ if ((0, i.isName)(c, "None")) {
+ d.push([n, !1]);
+ break;
+ }
+ if (c instanceof i.Dict) {
+ u = !1;
+ f = f.then(() => this.handleSMask(c, e, a, s, o, l));
+ d.push([n, !0]);
+ } else (0, r.warn)("Unsupported SMask type");
+ break;
+ case "TR":
+ const t = this.handleTransferFunction(c);
+ d.push([n, t]);
+ break;
+ case "OP":
+ case "op":
+ case "OPM":
+ case "BG":
+ case "BG2":
+ case "UCR":
+ case "UCR2":
+ case "TR2":
+ case "HT":
+ case "SM":
+ case "SA":
+ case "AIS":
+ case "TK":
+ (0, r.info)("graphic state operator " + n);
+ break;
+ default:
+ (0, r.info)("Unknown graphic state operator " + n);
+ }
+ }
+ return f.then(function () {
+ d.length > 0 && a.addOp(r.OPS.setGState, [d]);
+ u && c.set(n, h, d);
+ });
+ }
+ loadFont(e, t, a, n = null, o = null) {
+ const errorFont = async () =>
+ new TranslatedFont({
+ loadedName: "g_font_error",
+ font: new s.ErrorFont(`Font "${e}" is not available.`),
+ dict: t,
+ evaluatorOptions: this.options,
+ });
+ let c;
+ if (t) t instanceof i.Ref && (c = t);
+ else {
+ const t = a.get("Font");
+ t && (c = t.getRaw(e));
+ }
+ if (c) {
+ if (this.parsingType3Font && this.type3FontRefs.has(c))
+ return errorFont();
+ if (this.fontCache.has(c)) return this.fontCache.get(c);
+ t = this.xref.fetchIfRef(c);
+ }
+ if (!(t instanceof i.Dict)) {
+ if (!this.options.ignoreErrors && !this.parsingType3Font) {
+ (0, r.warn)(`Font "${e}" is not available.`);
+ return errorFont();
+ }
+ (0, r.warn)(
+ `Font "${e}" is not available -- attempting to fallback to a default font.`,
+ );
+ t = n || PartialEvaluator.fallbackFontDict;
+ }
+ if (t.cacheKey && this.fontCache.has(t.cacheKey))
+ return this.fontCache.get(t.cacheKey);
+ const l = new r.PromiseCapability();
+ let h;
+ try {
+ h = this.preEvaluateFont(t);
+ h.cssFontInfo = o;
+ } catch (e) {
+ (0, r.warn)(`loadFont - preEvaluateFont failed: "${e}".`);
+ return errorFont();
+ }
+ const { descriptor: u, hash: d } = h,
+ f = c instanceof i.Ref;
+ let g;
+ if (d && u instanceof i.Dict) {
+ const e = (u.fontAliases ||= Object.create(null));
+ if (e[d]) {
+ const t = e[d].aliasRef;
+ if (f && t && this.fontCache.has(t)) {
+ this.fontCache.putAlias(c, t);
+ return this.fontCache.get(c);
+ }
+ } else e[d] = { fontID: this.idFactory.createFontId() };
+ f && (e[d].aliasRef = c);
+ g = e[d].fontID;
+ } else g = this.idFactory.createFontId();
+ (0, r.assert)(
+ g?.startsWith("f"),
+ 'The "fontID" must be (correctly) defined.',
+ );
+ if (f) this.fontCache.put(c, l.promise);
+ else {
+ t.cacheKey = `cacheKey_${g}`;
+ this.fontCache.put(t.cacheKey, l.promise);
+ }
+ t.loadedName = `${this.idFactory.getDocId()}_${g}`;
+ this.translateFont(h)
+ .then((e) => {
+ l.resolve(
+ new TranslatedFont({
+ loadedName: t.loadedName,
+ font: e,
+ dict: t,
+ evaluatorOptions: this.options,
+ }),
+ );
+ })
+ .catch((e) => {
+ (0, r.warn)(`loadFont - translateFont failed: "${e}".`);
+ l.resolve(
+ new TranslatedFont({
+ loadedName: t.loadedName,
+ font: new s.ErrorFont(e instanceof Error ? e.message : e),
+ dict: t,
+ evaluatorOptions: this.options,
+ }),
+ );
+ });
+ return l.promise;
+ }
+ buildPath(e, t, a, n = !1) {
+ const i = e.length - 1;
+ a || (a = []);
+ if (i < 0 || e.fnArray[i] !== r.OPS.constructPath) {
+ if (n) {
+ (0, r.warn)(
+ `Encountered path operator "${t}" inside of a text object.`,
+ );
+ e.addOp(r.OPS.save, null);
+ }
+ let i;
+ switch (t) {
+ case r.OPS.rectangle:
+ const e = a[0] + a[2],
+ t = a[1] + a[3];
+ i = [
+ Math.min(a[0], e),
+ Math.max(a[0], e),
+ Math.min(a[1], t),
+ Math.max(a[1], t),
+ ];
+ break;
+ case r.OPS.moveTo:
+ case r.OPS.lineTo:
+ i = [a[0], a[0], a[1], a[1]];
+ break;
+ default:
+ i = [1 / 0, -1 / 0, 1 / 0, -1 / 0];
+ }
+ e.addOp(r.OPS.constructPath, [[t], a, i]);
+ n && e.addOp(r.OPS.restore, null);
+ } else {
+ const n = e.argsArray[i];
+ n[0].push(t);
+ n[1].push(...a);
+ const s = n[2];
+ switch (t) {
+ case r.OPS.rectangle:
+ const e = a[0] + a[2],
+ t = a[1] + a[3];
+ s[0] = Math.min(s[0], a[0], e);
+ s[1] = Math.max(s[1], a[0], e);
+ s[2] = Math.min(s[2], a[1], t);
+ s[3] = Math.max(s[3], a[1], t);
+ break;
+ case r.OPS.moveTo:
+ case r.OPS.lineTo:
+ s[0] = Math.min(s[0], a[0]);
+ s[1] = Math.max(s[1], a[0]);
+ s[2] = Math.min(s[2], a[1]);
+ s[3] = Math.max(s[3], a[1]);
+ }
+ }
+ }
+ parseColorSpace({ cs: e, resources: t, localColorSpaceCache: a }) {
+ return y.ColorSpace.parseAsync({
+ cs: e,
+ xref: this.xref,
+ resources: t,
+ pdfFunctionFactory: this._pdfFunctionFactory,
+ localColorSpaceCache: a,
+ }).catch((e) => {
+ if (e instanceof r.AbortException) return null;
+ if (this.options.ignoreErrors) {
+ (0, r.warn)(`parseColorSpace - ignoring ColorSpace: "${e}".`);
+ return null;
+ }
+ throw e;
+ });
+ }
+ parseShading({
+ shading: e,
+ resources: t,
+ localColorSpaceCache: a,
+ localShadingPatternCache: r,
+ }) {
+ let n = r.get(e);
+ if (!n) {
+ const i = l.Pattern.parseShading(
+ e,
+ this.xref,
+ t,
+ this._pdfFunctionFactory,
+ a,
+ ).getIR();
+ n = `pattern_${this.idFactory.createObjId()}`;
+ this.parsingType3Font &&
+ (n = `${this.idFactory.getDocId()}_type3_${n}`);
+ r.set(e, n);
+ this.parsingType3Font
+ ? this.handler.send("commonobj", [n, "Pattern", i])
+ : this.handler.send("obj", [n, this.pageIndex, "Pattern", i]);
+ }
+ return n;
+ }
+ handleColorN(e, t, a, n, s, o, c, h, u, d) {
+ const f = a.pop();
+ if (f instanceof i.Name) {
+ const g = s.getRaw(f.name),
+ p = g instanceof i.Ref && u.getByRef(g);
+ if (p)
+ try {
+ const r = n.base ? n.base.getRgb(a, 0) : null,
+ i = (0, l.getTilingPatternIR)(
+ p.operatorListIR,
+ p.dict,
+ r,
+ );
+ e.addOp(t, i);
+ return;
+ } catch {}
+ const b = this.xref.fetchIfRef(g);
+ if (b) {
+ const i = b instanceof m.BaseStream ? b.dict : b,
+ s = i.get("PatternType");
+ if (s === E) {
+ const r = n.base ? n.base.getRgb(a, 0) : null;
+ return this.handleTilingType(t, r, o, b, i, e, c, u);
+ }
+ if (s === N) {
+ const a = i.get("Shading"),
+ r = i.getArray("Matrix"),
+ n = this.parseShading({
+ shading: a,
+ resources: o,
+ localColorSpaceCache: h,
+ localShadingPatternCache: d,
+ });
+ e.addOp(t, ["Shading", n, r]);
+ return;
+ }
+ throw new r.FormatError(`Unknown PatternType: ${s}`);
+ }
+ }
+ throw new r.FormatError(`Unknown PatternName: ${f}`);
+ }
+ _parseVisibilityExpression(e, t, a) {
+ if (++t > 10) {
+ (0, r.warn)("Visibility expression is too deeply nested");
+ return;
+ }
+ const n = e.length,
+ s = this.xref.fetchIfRef(e[0]);
+ if (!(n < 2) && s instanceof i.Name) {
+ switch (s.name) {
+ case "And":
+ case "Or":
+ case "Not":
+ a.push(s.name);
+ break;
+ default:
+ (0, r.warn)(
+ `Invalid operator ${s.name} in visibility expression`,
+ );
+ return;
+ }
+ for (let r = 1; r < n; r++) {
+ const n = e[r],
+ s = this.xref.fetchIfRef(n);
+ if (Array.isArray(s)) {
+ const e = [];
+ a.push(e);
+ this._parseVisibilityExpression(s, t, e);
+ } else n instanceof i.Ref && a.push(n.toString());
+ }
+ } else (0, r.warn)("Invalid visibility expression");
+ }
+ async parseMarkedContentProps(e, t) {
+ let a;
+ if (e instanceof i.Name) {
+ a = t.get("Properties").get(e.name);
+ } else {
+ if (!(e instanceof i.Dict))
+ throw new r.FormatError(
+ "Optional content properties malformed.",
+ );
+ a = e;
+ }
+ const n = a.get("Type")?.name;
+ if ("OCG" === n) return { type: n, id: a.objId };
+ if ("OCMD" === n) {
+ const e = a.get("VE");
+ if (Array.isArray(e)) {
+ const t = [];
+ this._parseVisibilityExpression(e, 0, t);
+ if (t.length > 0) return { type: "OCMD", expression: t };
+ }
+ const t = a.get("OCGs");
+ if (Array.isArray(t) || t instanceof i.Dict) {
+ const e = [];
+ if (Array.isArray(t)) for (const a of t) e.push(a.toString());
+ else e.push(t.objId);
+ return {
+ type: n,
+ ids: e,
+ policy:
+ a.get("P") instanceof i.Name ? a.get("P").name : null,
+ expression: null,
+ };
+ }
+ if (t instanceof i.Ref) return { type: n, id: t.toString() };
+ }
+ return null;
+ }
+ getOperatorList({
+ stream: e,
+ task: t,
+ resources: a,
+ operatorList: n,
+ initialState: s = null,
+ fallbackFontDict: o = null,
+ }) {
+ a ||= i.Dict.empty;
+ s ||= new EvalState();
+ if (!n)
+ throw new Error(
+ 'getOperatorList: missing "operatorList" parameter',
+ );
+ const c = this,
+ l = this.xref;
+ let h = !1;
+ const u = new g.LocalImageCache(),
+ d = new g.LocalColorSpaceCache(),
+ f = new g.LocalGStateCache(),
+ p = new g.LocalTilingPatternCache(),
+ b = new Map(),
+ w = a.get("XObject") || i.Dict.empty,
+ S = a.get("Pattern") || i.Dict.empty,
+ x = new StateManager(s),
+ C = new EvaluatorPreprocessor(e, l, x),
+ k = new TimeSlotManager();
+ function closePendingRestoreOPS(e) {
+ for (let e = 0, t = C.savedStatesDepth; e < t; e++)
+ n.addOp(r.OPS.restore, []);
+ }
+ return new Promise(function promiseBody(e, s) {
+ const next = function (t) {
+ Promise.all([t, n.ready]).then(function () {
+ try {
+ promiseBody(e, s);
+ } catch (e) {
+ s(e);
+ }
+ }, s);
+ };
+ t.ensureNotTerminated();
+ k.reset();
+ const g = {};
+ let v, F, O, T, M, D;
+ for (; !(v = k.check()); ) {
+ g.args = null;
+ if (!C.read(g)) break;
+ let e = g.args,
+ s = g.fn;
+ switch (0 | s) {
+ case r.OPS.paintXObject:
+ D = e[0] instanceof i.Name;
+ M = e[0].name;
+ if (D) {
+ const t = u.getByName(M);
+ if (t) {
+ n.addImageOps(t.fn, t.args, t.optionalContent);
+ incrementCachedImageMaskCount(t);
+ e = null;
+ continue;
+ }
+ }
+ next(
+ new Promise(function (e, s) {
+ if (!D)
+ throw new r.FormatError(
+ "XObject must be referred to by name.",
+ );
+ let o = w.getRaw(M);
+ if (o instanceof i.Ref) {
+ const t =
+ u.getByRef(o) ||
+ c._regionalImageCache.getByRef(o);
+ if (t) {
+ n.addImageOps(t.fn, t.args, t.optionalContent);
+ incrementCachedImageMaskCount(t);
+ e();
+ return;
+ }
+ const a = c.globalImageCache.getData(
+ o,
+ c.pageIndex,
+ );
+ if (a) {
+ n.addDependency(a.objId);
+ n.addImageOps(a.fn, a.args, a.optionalContent);
+ e();
+ return;
+ }
+ o = l.fetch(o);
+ }
+ if (!(o instanceof m.BaseStream))
+ throw new r.FormatError(
+ "XObject should be a stream",
+ );
+ const h = o.dict.get("Subtype");
+ if (!(h instanceof i.Name))
+ throw new r.FormatError(
+ "XObject should have a Name subtype",
+ );
+ if ("Form" !== h.name)
+ if ("Image" !== h.name) {
+ if ("PS" !== h.name)
+ throw new r.FormatError(
+ `Unhandled XObject subtype ${h.name}`,
+ );
+ (0, r.info)("Ignored XObject subtype PS");
+ e();
+ } else
+ c.buildPaintImageXObject({
+ resources: a,
+ image: o,
+ operatorList: n,
+ cacheKey: M,
+ localImageCache: u,
+ localColorSpaceCache: d,
+ }).then(e, s);
+ else {
+ x.save();
+ c.buildFormXObject(
+ a,
+ o,
+ null,
+ n,
+ t,
+ x.state.clone(),
+ d,
+ ).then(function () {
+ x.restore();
+ e();
+ }, s);
+ }
+ }).catch(function (e) {
+ if (!(e instanceof r.AbortException)) {
+ if (!c.options.ignoreErrors) throw e;
+ (0, r.warn)(
+ `getOperatorList - ignoring XObject: "${e}".`,
+ );
+ }
+ }),
+ );
+ return;
+ case r.OPS.setFont:
+ var E = e[1];
+ next(
+ c
+ .handleSetFont(a, e, null, n, t, x.state, o)
+ .then(function (e) {
+ n.addDependency(e);
+ n.addOp(r.OPS.setFont, [e, E]);
+ }),
+ );
+ return;
+ case r.OPS.beginText:
+ h = !0;
+ break;
+ case r.OPS.endText:
+ h = !1;
+ break;
+ case r.OPS.endInlineImage:
+ var N = e[0].cacheKey;
+ if (N) {
+ const t = u.getByName(N);
+ if (t) {
+ n.addImageOps(t.fn, t.args, t.optionalContent);
+ incrementCachedImageMaskCount(t);
+ e = null;
+ continue;
+ }
+ }
+ next(
+ c.buildPaintImageXObject({
+ resources: a,
+ image: e[0],
+ isInline: !0,
+ operatorList: n,
+ cacheKey: N,
+ localImageCache: u,
+ localColorSpaceCache: d,
+ }),
+ );
+ return;
+ case r.OPS.showText:
+ if (!x.state.font) {
+ c.ensureStateFont(x.state);
+ continue;
+ }
+ e[0] = c.handleText(e[0], x.state);
+ break;
+ case r.OPS.showSpacedText:
+ if (!x.state.font) {
+ c.ensureStateFont(x.state);
+ continue;
+ }
+ var L = [],
+ $ = x.state;
+ for (const t of e[0])
+ "string" == typeof t
+ ? L.push(...c.handleText(t, $))
+ : "number" == typeof t && L.push(t);
+ e[0] = L;
+ s = r.OPS.showText;
+ break;
+ case r.OPS.nextLineShowText:
+ if (!x.state.font) {
+ c.ensureStateFont(x.state);
+ continue;
+ }
+ n.addOp(r.OPS.nextLine);
+ e[0] = c.handleText(e[0], x.state);
+ s = r.OPS.showText;
+ break;
+ case r.OPS.nextLineSetSpacingShowText:
+ if (!x.state.font) {
+ c.ensureStateFont(x.state);
+ continue;
+ }
+ n.addOp(r.OPS.nextLine);
+ n.addOp(r.OPS.setWordSpacing, [e.shift()]);
+ n.addOp(r.OPS.setCharSpacing, [e.shift()]);
+ e[0] = c.handleText(e[0], x.state);
+ s = r.OPS.showText;
+ break;
+ case r.OPS.setTextRenderingMode:
+ x.state.textRenderingMode = e[0];
+ break;
+ case r.OPS.setFillColorSpace: {
+ const t = y.ColorSpace.getCached(e[0], l, d);
+ if (t) {
+ x.state.fillColorSpace = t;
+ continue;
+ }
+ next(
+ c
+ .parseColorSpace({
+ cs: e[0],
+ resources: a,
+ localColorSpaceCache: d,
+ })
+ .then(function (e) {
+ e && (x.state.fillColorSpace = e);
+ }),
+ );
+ return;
+ }
+ case r.OPS.setStrokeColorSpace: {
+ const t = y.ColorSpace.getCached(e[0], l, d);
+ if (t) {
+ x.state.strokeColorSpace = t;
+ continue;
+ }
+ next(
+ c
+ .parseColorSpace({
+ cs: e[0],
+ resources: a,
+ localColorSpaceCache: d,
+ })
+ .then(function (e) {
+ e && (x.state.strokeColorSpace = e);
+ }),
+ );
+ return;
+ }
+ case r.OPS.setFillColor:
+ T = x.state.fillColorSpace;
+ e = T.getRgb(e, 0);
+ s = r.OPS.setFillRGBColor;
+ break;
+ case r.OPS.setStrokeColor:
+ T = x.state.strokeColorSpace;
+ e = T.getRgb(e, 0);
+ s = r.OPS.setStrokeRGBColor;
+ break;
+ case r.OPS.setFillGray:
+ x.state.fillColorSpace = y.ColorSpace.singletons.gray;
+ e = y.ColorSpace.singletons.gray.getRgb(e, 0);
+ s = r.OPS.setFillRGBColor;
+ break;
+ case r.OPS.setStrokeGray:
+ x.state.strokeColorSpace = y.ColorSpace.singletons.gray;
+ e = y.ColorSpace.singletons.gray.getRgb(e, 0);
+ s = r.OPS.setStrokeRGBColor;
+ break;
+ case r.OPS.setFillCMYKColor:
+ x.state.fillColorSpace = y.ColorSpace.singletons.cmyk;
+ e = y.ColorSpace.singletons.cmyk.getRgb(e, 0);
+ s = r.OPS.setFillRGBColor;
+ break;
+ case r.OPS.setStrokeCMYKColor:
+ x.state.strokeColorSpace = y.ColorSpace.singletons.cmyk;
+ e = y.ColorSpace.singletons.cmyk.getRgb(e, 0);
+ s = r.OPS.setStrokeRGBColor;
+ break;
+ case r.OPS.setFillRGBColor:
+ x.state.fillColorSpace = y.ColorSpace.singletons.rgb;
+ e = y.ColorSpace.singletons.rgb.getRgb(e, 0);
+ break;
+ case r.OPS.setStrokeRGBColor:
+ x.state.strokeColorSpace = y.ColorSpace.singletons.rgb;
+ e = y.ColorSpace.singletons.rgb.getRgb(e, 0);
+ break;
+ case r.OPS.setFillColorN:
+ T = x.state.fillColorSpace;
+ if ("Pattern" === T.name) {
+ next(
+ c.handleColorN(
+ n,
+ r.OPS.setFillColorN,
+ e,
+ T,
+ S,
+ a,
+ t,
+ d,
+ p,
+ b,
+ ),
+ );
+ return;
+ }
+ e = T.getRgb(e, 0);
+ s = r.OPS.setFillRGBColor;
+ break;
+ case r.OPS.setStrokeColorN:
+ T = x.state.strokeColorSpace;
+ if ("Pattern" === T.name) {
+ next(
+ c.handleColorN(
+ n,
+ r.OPS.setStrokeColorN,
+ e,
+ T,
+ S,
+ a,
+ t,
+ d,
+ p,
+ b,
+ ),
+ );
+ return;
+ }
+ e = T.getRgb(e, 0);
+ s = r.OPS.setStrokeRGBColor;
+ break;
+ case r.OPS.shadingFill:
+ var _ = a.get("Shading");
+ if (!_)
+ throw new r.FormatError("No shading resource found");
+ var j = _.get(e[0].name);
+ if (!j)
+ throw new r.FormatError("No shading object found");
+ e = [
+ c.parseShading({
+ shading: j,
+ resources: a,
+ localColorSpaceCache: d,
+ localShadingPatternCache: b,
+ }),
+ ];
+ s = r.OPS.shadingFill;
+ break;
+ case r.OPS.setGState:
+ D = e[0] instanceof i.Name;
+ M = e[0].name;
+ if (D) {
+ const t = f.getByName(M);
+ if (t) {
+ t.length > 0 && n.addOp(r.OPS.setGState, [t]);
+ e = null;
+ continue;
+ }
+ }
+ next(
+ new Promise(function (e, s) {
+ if (!D)
+ throw new r.FormatError(
+ "GState must be referred to by name.",
+ );
+ const o = a.get("ExtGState");
+ if (!(o instanceof i.Dict))
+ throw new r.FormatError(
+ "ExtGState should be a dictionary.",
+ );
+ const l = o.get(M);
+ if (!(l instanceof i.Dict))
+ throw new r.FormatError(
+ "GState should be a dictionary.",
+ );
+ c.setGState({
+ resources: a,
+ gState: l,
+ operatorList: n,
+ cacheKey: M,
+ task: t,
+ stateManager: x,
+ localGStateCache: f,
+ localColorSpaceCache: d,
+ }).then(e, s);
+ }).catch(function (e) {
+ if (!(e instanceof r.AbortException)) {
+ if (!c.options.ignoreErrors) throw e;
+ (0, r.warn)(
+ `getOperatorList - ignoring ExtGState: "${e}".`,
+ );
+ }
+ }),
+ );
+ return;
+ case r.OPS.moveTo:
+ case r.OPS.lineTo:
+ case r.OPS.curveTo:
+ case r.OPS.curveTo2:
+ case r.OPS.curveTo3:
+ case r.OPS.closePath:
+ case r.OPS.rectangle:
+ c.buildPath(n, s, e, h);
+ continue;
+ case r.OPS.markPoint:
+ case r.OPS.markPointProps:
+ case r.OPS.beginCompat:
+ case r.OPS.endCompat:
+ continue;
+ case r.OPS.beginMarkedContentProps:
+ if (!(e[0] instanceof i.Name)) {
+ (0, r.warn)(
+ `Expected name for beginMarkedContentProps arg0=${e[0]}`,
+ );
+ continue;
+ }
+ if ("OC" === e[0].name) {
+ next(
+ c
+ .parseMarkedContentProps(e[1], a)
+ .then((e) => {
+ n.addOp(r.OPS.beginMarkedContentProps, ["OC", e]);
+ })
+ .catch((e) => {
+ if (!(e instanceof r.AbortException)) {
+ if (!c.options.ignoreErrors) throw e;
+ (0, r.warn)(
+ `getOperatorList - ignoring beginMarkedContentProps: "${e}".`,
+ );
+ }
+ }),
+ );
+ return;
+ }
+ e = [
+ e[0].name,
+ e[1] instanceof i.Dict ? e[1].get("MCID") : null,
+ ];
+ break;
+ case r.OPS.beginMarkedContent:
+ case r.OPS.endMarkedContent:
+ default:
+ if (null !== e) {
+ for (
+ F = 0, O = e.length;
+ F < O && !(e[F] instanceof i.Dict);
+ F++
+ );
+ if (F < O) {
+ (0, r.warn)(
+ "getOperatorList - ignoring operator: " + s,
+ );
+ continue;
+ }
+ }
+ }
+ n.addOp(s, e);
+ }
+ if (v) next(R);
+ else {
+ closePendingRestoreOPS();
+ e();
+ }
+ }).catch((e) => {
+ if (!(e instanceof r.AbortException)) {
+ if (!this.options.ignoreErrors) throw e;
+ (0, r.warn)(
+ `getOperatorList - ignoring errors during "${t.name}" task: "${e}".`,
+ );
+ closePendingRestoreOPS();
+ }
+ });
+ }
+ getTextContent({
+ stream: e,
+ task: t,
+ resources: a,
+ stateManager: n = null,
+ includeMarkedContent: s = !1,
+ sink: o,
+ seenStyles: c = new Set(),
+ viewBox: l,
+ markedContentData: h = null,
+ disableNormalization: u = !1,
+ }) {
+ a ||= i.Dict.empty;
+ n ||= new StateManager(new TextState());
+ s && (h ||= { level: 0 });
+ const d = { items: [], styles: Object.create(null) },
+ f = {
+ initialized: !1,
+ str: [],
+ totalWidth: 0,
+ totalHeight: 0,
+ width: 0,
+ height: 0,
+ vertical: !1,
+ prevTransform: null,
+ textAdvanceScale: 0,
+ spaceInFlowMin: 0,
+ spaceInFlowMax: 0,
+ trackingSpaceMin: 1 / 0,
+ negativeSpaceMax: -1 / 0,
+ notASpace: -1 / 0,
+ transform: null,
+ fontName: null,
+ hasEOL: !1,
+ },
+ p = [" ", " "];
+ let y = 0;
+ function saveLastChar(e) {
+ const t = (y + 1) % 2,
+ a = " " !== p[y] && " " === p[t];
+ p[y] = e;
+ y = t;
+ return a;
+ }
+ function shouldAddWhitepsace() {
+ return " " !== p[y] && " " === p[(y + 1) % 2];
+ }
+ function resetLastChars() {
+ p[0] = p[1] = " ";
+ y = 0;
+ }
+ const w = this,
+ S = this.xref,
+ x = [];
+ let C = null;
+ const k = new g.LocalImageCache(),
+ v = new g.LocalGStateCache(),
+ F = new EvaluatorPreprocessor(e, S, n);
+ let O;
+ function pushWhitespace({
+ width: e = 0,
+ height: t = 0,
+ transform: a = f.prevTransform,
+ fontName: r = f.fontName,
+ }) {
+ d.items.push({
+ str: " ",
+ dir: "ltr",
+ width: e,
+ height: t,
+ transform: a,
+ fontName: r,
+ hasEOL: !1,
+ });
+ }
+ function getCurrentTextTransform() {
+ const e = O.font,
+ t = [
+ O.fontSize * O.textHScale,
+ 0,
+ 0,
+ O.fontSize,
+ 0,
+ O.textRise,
+ ];
+ if (
+ e.isType3Font &&
+ (O.fontSize <= 1 || e.isCharBBox) &&
+ !(0, r.isArrayEqual)(O.fontMatrix, r.FONT_IDENTITY_MATRIX)
+ ) {
+ const a = e.bbox[3] - e.bbox[1];
+ a > 0 && (t[3] *= a * O.fontMatrix[3]);
+ }
+ return r.Util.transform(
+ O.ctm,
+ r.Util.transform(O.textMatrix, t),
+ );
+ }
+ function ensureTextContentItem() {
+ if (f.initialized) return f;
+ const { font: e, loadedName: t } = O;
+ if (!c.has(t)) {
+ c.add(t);
+ d.styles[t] = {
+ fontFamily: e.fallbackName,
+ ascent: e.ascent,
+ descent: e.descent,
+ vertical: e.vertical,
+ };
+ }
+ f.fontName = t;
+ const a = (f.transform = getCurrentTextTransform());
+ if (e.vertical) {
+ f.width = f.totalWidth = Math.hypot(a[0], a[1]);
+ f.height = f.totalHeight = 0;
+ f.vertical = !0;
+ } else {
+ f.width = f.totalWidth = 0;
+ f.height = f.totalHeight = Math.hypot(a[2], a[3]);
+ f.vertical = !1;
+ }
+ const r = Math.hypot(O.textLineMatrix[0], O.textLineMatrix[1]),
+ n = Math.hypot(O.ctm[0], O.ctm[1]);
+ f.textAdvanceScale = n * r;
+ const { fontSize: i } = O;
+ f.trackingSpaceMin = 0.102 * i;
+ f.notASpace = 0.03 * i;
+ f.negativeSpaceMax = -0.2 * i;
+ f.spaceInFlowMin = 0.102 * i;
+ f.spaceInFlowMax = 0.6 * i;
+ f.hasEOL = !1;
+ f.initialized = !0;
+ return f;
+ }
+ function updateAdvanceScale() {
+ if (!f.initialized) return;
+ const e = Math.hypot(O.textLineMatrix[0], O.textLineMatrix[1]),
+ t = Math.hypot(O.ctm[0], O.ctm[1]) * e;
+ if (t !== f.textAdvanceScale) {
+ if (f.vertical) {
+ f.totalHeight += f.height * f.textAdvanceScale;
+ f.height = 0;
+ } else {
+ f.totalWidth += f.width * f.textAdvanceScale;
+ f.width = 0;
+ }
+ f.textAdvanceScale = t;
+ }
+ }
+ function handleSetFont(e, n) {
+ return w
+ .loadFont(e, n, a)
+ .then(function (e) {
+ return e.font.isType3Font
+ ? e
+ .loadType3Data(w, a, t)
+ .catch(function () {})
+ .then(function () {
+ return e;
+ })
+ : e;
+ })
+ .then(function (e) {
+ O.loadedName = e.loadedName;
+ O.font = e.font;
+ O.fontMatrix = e.font.fontMatrix || r.FONT_IDENTITY_MATRIX;
+ });
+ }
+ function applyInverseRotation(e, t, a) {
+ const r = Math.hypot(a[0], a[1]);
+ return [(a[0] * e + a[1] * t) / r, (a[2] * e + a[3] * t) / r];
+ }
+ function compareWithLastPosition(e) {
+ const t = getCurrentTextTransform();
+ let a = t[4],
+ r = t[5];
+ if (O.font?.vertical) {
+ if (a < l[0] || a > l[2] || r + e < l[1] || r > l[3])
+ return !1;
+ } else if (a + e < l[0] || a > l[2] || r < l[1] || r > l[3])
+ return !1;
+ if (!O.font || !f.prevTransform) return !0;
+ let n = f.prevTransform[4],
+ i = f.prevTransform[5];
+ if (n === a && i === r) return !0;
+ let s = -1;
+ t[0] && 0 === t[1] && 0 === t[2]
+ ? (s = t[0] > 0 ? 0 : 180)
+ : t[1] &&
+ 0 === t[0] &&
+ 0 === t[3] &&
+ (s = t[1] > 0 ? 90 : 270);
+ switch (s) {
+ case 0:
+ break;
+ case 90:
+ [a, r] = [r, a];
+ [n, i] = [i, n];
+ break;
+ case 180:
+ [a, r, n, i] = [-a, -r, -n, -i];
+ break;
+ case 270:
+ [a, r] = [-r, -a];
+ [n, i] = [-i, -n];
+ break;
+ default:
+ [a, r] = applyInverseRotation(a, r, t);
+ [n, i] = applyInverseRotation(n, i, f.prevTransform);
+ }
+ if (O.font.vertical) {
+ const e = (i - r) / f.textAdvanceScale,
+ t = a - n,
+ s = Math.sign(f.height);
+ if (e < s * f.negativeSpaceMax) {
+ if (Math.abs(t) > 0.5 * f.width) {
+ appendEOL();
+ return !0;
+ }
+ resetLastChars();
+ flushTextContentItem();
+ return !0;
+ }
+ if (Math.abs(t) > f.width) {
+ appendEOL();
+ return !0;
+ }
+ e <= s * f.notASpace && resetLastChars();
+ if (e <= s * f.trackingSpaceMin)
+ if (shouldAddWhitepsace()) {
+ resetLastChars();
+ flushTextContentItem();
+ pushWhitespace({ height: Math.abs(e) });
+ } else f.height += e;
+ else if (!addFakeSpaces(e, f.prevTransform, s))
+ if (0 === f.str.length) {
+ resetLastChars();
+ pushWhitespace({ height: Math.abs(e) });
+ } else f.height += e;
+ Math.abs(t) > 0.25 * f.width && flushTextContentItem();
+ return !0;
+ }
+ const o = (a - n) / f.textAdvanceScale,
+ c = r - i,
+ h = Math.sign(f.width);
+ if (o < h * f.negativeSpaceMax) {
+ if (Math.abs(c) > 0.5 * f.height) {
+ appendEOL();
+ return !0;
+ }
+ resetLastChars();
+ flushTextContentItem();
+ return !0;
+ }
+ if (Math.abs(c) > f.height) {
+ appendEOL();
+ return !0;
+ }
+ o <= h * f.notASpace && resetLastChars();
+ if (o <= h * f.trackingSpaceMin)
+ if (shouldAddWhitepsace()) {
+ resetLastChars();
+ flushTextContentItem();
+ pushWhitespace({ width: Math.abs(o) });
+ } else f.width += o;
+ else if (!addFakeSpaces(o, f.prevTransform, h))
+ if (0 === f.str.length) {
+ resetLastChars();
+ pushWhitespace({ width: Math.abs(o) });
+ } else f.width += o;
+ Math.abs(c) > 0.25 * f.height && flushTextContentItem();
+ return !0;
+ }
+ function buildTextContentItem({ chars: e, extraSpacing: t }) {
+ const a = O.font;
+ if (!e) {
+ const e = O.charSpacing + t;
+ e &&
+ (a.vertical
+ ? O.translateTextMatrix(0, -e)
+ : O.translateTextMatrix(e * O.textHScale, 0));
+ return;
+ }
+ const r = a.charsToGlyphs(e),
+ n = O.fontMatrix[0] * O.fontSize;
+ for (let e = 0, i = r.length; e < i; e++) {
+ const s = r[e],
+ { category: o } = s;
+ if (o.isInvisibleFormatMark) continue;
+ let c = O.charSpacing + (e + 1 === i ? t : 0),
+ l = s.width;
+ a.vertical && (l = s.vmetric ? s.vmetric[0] : -l);
+ let h = l * n;
+ if (o.isWhitespace) {
+ if (a.vertical) {
+ c += -h + O.wordSpacing;
+ O.translateTextMatrix(0, -c);
+ } else {
+ c += h + O.wordSpacing;
+ O.translateTextMatrix(c * O.textHScale, 0);
+ }
+ saveLastChar(" ");
+ continue;
+ }
+ if (!o.isZeroWidthDiacritic && !compareWithLastPosition(h)) {
+ a.vertical
+ ? O.translateTextMatrix(0, h)
+ : O.translateTextMatrix(h * O.textHScale, 0);
+ continue;
+ }
+ const u = ensureTextContentItem();
+ o.isZeroWidthDiacritic && (h = 0);
+ if (a.vertical) {
+ O.translateTextMatrix(0, h);
+ h = Math.abs(h);
+ u.height += h;
+ } else {
+ h *= O.textHScale;
+ O.translateTextMatrix(h, 0);
+ u.width += h;
+ }
+ h && (u.prevTransform = getCurrentTextTransform());
+ const d = s.unicode;
+ saveLastChar(d) && u.str.push(" ");
+ u.str.push(d);
+ c &&
+ (a.vertical
+ ? O.translateTextMatrix(0, -c)
+ : O.translateTextMatrix(c * O.textHScale, 0));
+ }
+ }
+ function appendEOL() {
+ resetLastChars();
+ if (f.initialized) {
+ f.hasEOL = !0;
+ flushTextContentItem();
+ } else
+ d.items.push({
+ str: "",
+ dir: "ltr",
+ width: 0,
+ height: 0,
+ transform: getCurrentTextTransform(),
+ fontName: O.loadedName,
+ hasEOL: !0,
+ });
+ }
+ function addFakeSpaces(e, t, a) {
+ if (a * f.spaceInFlowMin <= e && e <= a * f.spaceInFlowMax) {
+ if (f.initialized) {
+ resetLastChars();
+ f.str.push(" ");
+ }
+ return !1;
+ }
+ const r = f.fontName;
+ let n = 0;
+ if (f.vertical) {
+ n = e;
+ e = 0;
+ }
+ flushTextContentItem();
+ resetLastChars();
+ pushWhitespace({
+ width: Math.abs(e),
+ height: Math.abs(n),
+ transform: t || getCurrentTextTransform(),
+ fontName: r,
+ });
+ return !0;
+ }
+ function flushTextContentItem() {
+ if (f.initialized && f.str) {
+ f.vertical
+ ? (f.totalHeight += f.height * f.textAdvanceScale)
+ : (f.totalWidth += f.width * f.textAdvanceScale);
+ d.items.push(
+ (function runBidiTransform(e) {
+ let t = e.str.join("");
+ u || (t = (0, r.normalizeUnicode)(t));
+ const a = (0, b.bidi)(t, -1, e.vertical);
+ return {
+ str: a.str,
+ dir: a.dir,
+ width: Math.abs(e.totalWidth),
+ height: Math.abs(e.totalHeight),
+ transform: e.transform,
+ fontName: e.fontName,
+ hasEOL: e.hasEOL,
+ };
+ })(f),
+ );
+ f.initialized = !1;
+ f.str.length = 0;
+ }
+ }
+ function enqueueChunk(e = !1) {
+ const t = d.items.length;
+ if (0 !== t && !(e && t < 10)) {
+ o.enqueue(d, t);
+ d.items = [];
+ d.styles = Object.create(null);
+ }
+ }
+ const T = new TimeSlotManager();
+ return new Promise(function promiseBody(e, f) {
+ const next = function (t) {
+ enqueueChunk(!0);
+ Promise.all([t, o.ready]).then(function () {
+ try {
+ promiseBody(e, f);
+ } catch (e) {
+ f(e);
+ }
+ }, f);
+ };
+ t.ensureNotTerminated();
+ T.reset();
+ const g = {};
+ let p,
+ b = [];
+ for (; !(p = T.check()); ) {
+ b.length = 0;
+ g.args = b;
+ if (!F.read(g)) break;
+ const e = O;
+ O = n.state;
+ const f = g.fn;
+ b = g.args;
+ switch (0 | f) {
+ case r.OPS.setFont:
+ var y = b[0].name,
+ M = b[1];
+ if (O.font && y === O.fontName && M === O.fontSize) break;
+ flushTextContentItem();
+ O.fontName = y;
+ O.fontSize = M;
+ next(handleSetFont(y, null));
+ return;
+ case r.OPS.setTextRise:
+ O.textRise = b[0];
+ break;
+ case r.OPS.setHScale:
+ O.textHScale = b[0] / 100;
+ break;
+ case r.OPS.setLeading:
+ O.leading = b[0];
+ break;
+ case r.OPS.moveText:
+ O.translateTextLineMatrix(b[0], b[1]);
+ O.textMatrix = O.textLineMatrix.slice();
+ break;
+ case r.OPS.setLeadingMoveText:
+ O.leading = -b[1];
+ O.translateTextLineMatrix(b[0], b[1]);
+ O.textMatrix = O.textLineMatrix.slice();
+ break;
+ case r.OPS.nextLine:
+ O.carriageReturn();
+ break;
+ case r.OPS.setTextMatrix:
+ O.setTextMatrix(b[0], b[1], b[2], b[3], b[4], b[5]);
+ O.setTextLineMatrix(b[0], b[1], b[2], b[3], b[4], b[5]);
+ updateAdvanceScale();
+ break;
+ case r.OPS.setCharSpacing:
+ O.charSpacing = b[0];
+ break;
+ case r.OPS.setWordSpacing:
+ O.wordSpacing = b[0];
+ break;
+ case r.OPS.beginText:
+ O.textMatrix = r.IDENTITY_MATRIX.slice();
+ O.textLineMatrix = r.IDENTITY_MATRIX.slice();
+ break;
+ case r.OPS.showSpacedText:
+ if (!n.state.font) {
+ w.ensureStateFont(n.state);
+ continue;
+ }
+ const f = ((O.font.vertical ? 1 : -1) * O.fontSize) / 1e3,
+ g = b[0];
+ for (let e = 0, t = g.length; e < t; e++) {
+ const t = g[e];
+ if ("string" == typeof t) x.push(t);
+ else if ("number" == typeof t && 0 !== t) {
+ const e = x.join("");
+ x.length = 0;
+ buildTextContentItem({
+ chars: e,
+ extraSpacing: t * f,
+ });
+ }
+ }
+ if (x.length > 0) {
+ const e = x.join("");
+ x.length = 0;
+ buildTextContentItem({ chars: e, extraSpacing: 0 });
+ }
+ break;
+ case r.OPS.showText:
+ if (!n.state.font) {
+ w.ensureStateFont(n.state);
+ continue;
+ }
+ buildTextContentItem({ chars: b[0], extraSpacing: 0 });
+ break;
+ case r.OPS.nextLineShowText:
+ if (!n.state.font) {
+ w.ensureStateFont(n.state);
+ continue;
+ }
+ O.carriageReturn();
+ buildTextContentItem({ chars: b[0], extraSpacing: 0 });
+ break;
+ case r.OPS.nextLineSetSpacingShowText:
+ if (!n.state.font) {
+ w.ensureStateFont(n.state);
+ continue;
+ }
+ O.wordSpacing = b[0];
+ O.charSpacing = b[1];
+ O.carriageReturn();
+ buildTextContentItem({ chars: b[2], extraSpacing: 0 });
+ break;
+ case r.OPS.paintXObject:
+ flushTextContentItem();
+ C || (C = a.get("XObject") || i.Dict.empty);
+ var D = b[0] instanceof i.Name,
+ E = b[0].name;
+ if (D && k.getByName(E)) break;
+ next(
+ new Promise(function (e, d) {
+ if (!D)
+ throw new r.FormatError(
+ "XObject must be referred to by name.",
+ );
+ let f = C.getRaw(E);
+ if (f instanceof i.Ref) {
+ if (k.getByRef(f)) {
+ e();
+ return;
+ }
+ if (w.globalImageCache.getData(f, w.pageIndex)) {
+ e();
+ return;
+ }
+ f = S.fetch(f);
+ }
+ if (!(f instanceof m.BaseStream))
+ throw new r.FormatError(
+ "XObject should be a stream",
+ );
+ const g = f.dict.get("Subtype");
+ if (!(g instanceof i.Name))
+ throw new r.FormatError(
+ "XObject should have a Name subtype",
+ );
+ if ("Form" !== g.name) {
+ k.set(E, f.dict.objId, !0);
+ e();
+ return;
+ }
+ const p = n.state.clone(),
+ b = new StateManager(p),
+ y = f.dict.getArray("Matrix");
+ Array.isArray(y) && 6 === y.length && b.transform(y);
+ enqueueChunk();
+ const x = {
+ enqueueInvoked: !1,
+ enqueue(e, t) {
+ this.enqueueInvoked = !0;
+ o.enqueue(e, t);
+ },
+ get desiredSize() {
+ return o.desiredSize;
+ },
+ get ready() {
+ return o.ready;
+ },
+ };
+ w.getTextContent({
+ stream: f,
+ task: t,
+ resources: f.dict.get("Resources") || a,
+ stateManager: b,
+ includeMarkedContent: s,
+ sink: x,
+ seenStyles: c,
+ viewBox: l,
+ markedContentData: h,
+ disableNormalization: u,
+ }).then(function () {
+ x.enqueueInvoked || k.set(E, f.dict.objId, !0);
+ e();
+ }, d);
+ }).catch(function (e) {
+ if (!(e instanceof r.AbortException)) {
+ if (!w.options.ignoreErrors) throw e;
+ (0, r.warn)(
+ `getTextContent - ignoring XObject: "${e}".`,
+ );
+ }
+ }),
+ );
+ return;
+ case r.OPS.setGState:
+ D = b[0] instanceof i.Name;
+ E = b[0].name;
+ if (D && v.getByName(E)) break;
+ next(
+ new Promise(function (e, t) {
+ if (!D)
+ throw new r.FormatError(
+ "GState must be referred to by name.",
+ );
+ const n = a.get("ExtGState");
+ if (!(n instanceof i.Dict))
+ throw new r.FormatError(
+ "ExtGState should be a dictionary.",
+ );
+ const s = n.get(E);
+ if (!(s instanceof i.Dict))
+ throw new r.FormatError(
+ "GState should be a dictionary.",
+ );
+ const o = s.get("Font");
+ if (o) {
+ flushTextContentItem();
+ O.fontName = null;
+ O.fontSize = o[1];
+ handleSetFont(null, o[0]).then(e, t);
+ } else {
+ v.set(E, s.objId, !0);
+ e();
+ }
+ }).catch(function (e) {
+ if (!(e instanceof r.AbortException)) {
+ if (!w.options.ignoreErrors) throw e;
+ (0, r.warn)(
+ `getTextContent - ignoring ExtGState: "${e}".`,
+ );
+ }
+ }),
+ );
+ return;
+ case r.OPS.beginMarkedContent:
+ flushTextContentItem();
+ if (s) {
+ h.level++;
+ d.items.push({
+ type: "beginMarkedContent",
+ tag: b[0] instanceof i.Name ? b[0].name : null,
+ });
+ }
+ break;
+ case r.OPS.beginMarkedContentProps:
+ flushTextContentItem();
+ if (s) {
+ h.level++;
+ let e = null;
+ b[1] instanceof i.Dict && (e = b[1].get("MCID"));
+ d.items.push({
+ type: "beginMarkedContentProps",
+ id: Number.isInteger(e)
+ ? `${w.idFactory.getPageObjId()}_mc${e}`
+ : null,
+ tag: b[0] instanceof i.Name ? b[0].name : null,
+ });
+ }
+ break;
+ case r.OPS.endMarkedContent:
+ flushTextContentItem();
+ if (s) {
+ if (0 === h.level) break;
+ h.level--;
+ d.items.push({ type: "endMarkedContent" });
+ }
+ break;
+ case r.OPS.restore:
+ !e ||
+ (e.font === O.font &&
+ e.fontSize === O.fontSize &&
+ e.fontName === O.fontName) ||
+ flushTextContentItem();
+ }
+ if (d.items.length >= o.desiredSize) {
+ p = !0;
+ break;
+ }
+ }
+ if (p) next(R);
+ else {
+ flushTextContentItem();
+ enqueueChunk();
+ e();
+ }
+ }).catch((e) => {
+ if (!(e instanceof r.AbortException)) {
+ if (!this.options.ignoreErrors) throw e;
+ (0, r.warn)(
+ `getTextContent - ignoring errors during "${t.name}" task: "${e}".`,
+ );
+ flushTextContentItem();
+ enqueueChunk();
+ }
+ });
+ }
+ extractDataStructures(e, t, a) {
+ const n = this.xref;
+ let s;
+ const l = this.readToUnicode(
+ a.toUnicode || e.get("ToUnicode") || t.get("ToUnicode"),
+ );
+ if (a.composite) {
+ const t = e.get("CIDSystemInfo");
+ t instanceof i.Dict &&
+ (a.cidSystemInfo = {
+ registry: (0, r.stringToPDFString)(t.get("Registry")),
+ ordering: (0, r.stringToPDFString)(t.get("Ordering")),
+ supplement: t.get("Supplement"),
+ });
+ try {
+ const t = e.get("CIDToGIDMap");
+ t instanceof m.BaseStream && (s = t.getBytes());
+ } catch (e) {
+ if (!this.options.ignoreErrors) throw e;
+ (0, r.warn)(
+ `extractDataStructures - ignoring CIDToGIDMap data: "${e}".`,
+ );
+ }
+ }
+ const h = [];
+ let u,
+ d = null;
+ if (e.has("Encoding")) {
+ u = e.get("Encoding");
+ if (u instanceof i.Dict) {
+ d = u.get("BaseEncoding");
+ d = d instanceof i.Name ? d.name : null;
+ if (u.has("Differences")) {
+ const e = u.get("Differences");
+ let t = 0;
+ for (const a of e) {
+ const e = n.fetchIfRef(a);
+ if ("number" == typeof e) t = e;
+ else {
+ if (!(e instanceof i.Name))
+ throw new r.FormatError(
+ `Invalid entry in 'Differences' array: ${e}`,
+ );
+ h[t++] = e.name;
+ }
+ }
+ }
+ } else if (u instanceof i.Name) d = u.name;
+ else {
+ const e = "Encoding is not a Name nor a Dict";
+ if (!this.options.ignoreErrors) throw new r.FormatError(e);
+ (0, r.warn)(e);
+ }
+ "MacRomanEncoding" !== d &&
+ "MacExpertEncoding" !== d &&
+ "WinAnsiEncoding" !== d &&
+ (d = null);
+ }
+ const f = !a.file || a.isInternalFont,
+ g = (0, c.getSymbolsFonts)()[a.name];
+ d && f && g && (d = null);
+ if (d) a.defaultEncoding = (0, o.getEncoding)(d);
+ else {
+ const e = !!(a.flags & S.FontFlags.Symbolic),
+ t = !!(a.flags & S.FontFlags.Nonsymbolic);
+ u = o.StandardEncoding;
+ "TrueType" !== a.type || t || (u = o.WinAnsiEncoding);
+ if (e || g) {
+ u = o.MacRomanEncoding;
+ f &&
+ (/Symbol/i.test(a.name)
+ ? (u = o.SymbolSetEncoding)
+ : /Dingbats/i.test(a.name)
+ ? (u = o.ZapfDingbatsEncoding)
+ : /Wingdings/i.test(a.name) && (u = o.WinAnsiEncoding));
+ }
+ a.defaultEncoding = u;
+ }
+ a.differences = h;
+ a.baseEncodingName = d;
+ a.hasEncoding = !!d || h.length > 0;
+ a.dict = e;
+ return l
+ .then((e) => {
+ a.toUnicode = e;
+ return this.buildToUnicode(a);
+ })
+ .then((e) => {
+ a.toUnicode = e;
+ s && (a.cidToGidMap = this.readCidToGidMap(s, e));
+ return a;
+ });
+ }
+ _simpleFontToUnicode(e, t = !1) {
+ (0, r.assert)(!e.composite, "Must be a simple font.");
+ const a = [],
+ n = e.defaultEncoding.slice(),
+ i = e.baseEncodingName,
+ s = e.differences;
+ for (const e in s) {
+ const t = s[e];
+ ".notdef" !== t && (n[e] = t);
+ }
+ const c = (0, C.getGlyphsUnicode)();
+ for (const r in n) {
+ let s = n[r];
+ if ("" === s) continue;
+ let l = c[s];
+ if (void 0 !== l) {
+ a[r] = String.fromCharCode(l);
+ continue;
+ }
+ let h = 0;
+ switch (s[0]) {
+ case "G":
+ 3 === s.length && (h = parseInt(s.substring(1), 16));
+ break;
+ case "g":
+ 5 === s.length && (h = parseInt(s.substring(1), 16));
+ break;
+ case "C":
+ case "c":
+ if (s.length >= 3 && s.length <= 4) {
+ const a = s.substring(1);
+ if (t) {
+ h = parseInt(a, 16);
+ break;
+ }
+ h = +a;
+ if (Number.isNaN(h) && Number.isInteger(parseInt(a, 16)))
+ return this._simpleFontToUnicode(e, !0);
+ }
+ break;
+ case "u":
+ l = (0, v.getUnicodeForGlyph)(s, c);
+ -1 !== l && (h = l);
+ break;
+ default:
+ switch (s) {
+ case "f_h":
+ case "f_t":
+ case "T_h":
+ a[r] = s.replaceAll("_", "");
+ continue;
+ }
+ }
+ if (h > 0 && h <= 1114111 && Number.isInteger(h)) {
+ if (i && h === +r) {
+ const e = (0, o.getEncoding)(i);
+ if (e && (s = e[r])) {
+ a[r] = String.fromCharCode(c[s]);
+ continue;
+ }
+ }
+ a[r] = String.fromCodePoint(h);
+ }
+ }
+ return a;
+ }
+ async buildToUnicode(e) {
+ e.hasIncludedToUnicodeMap = e.toUnicode?.length > 0;
+ if (e.hasIncludedToUnicodeMap) {
+ !e.composite &&
+ e.hasEncoding &&
+ (e.fallbackToUnicode = this._simpleFontToUnicode(e));
+ return e.toUnicode;
+ }
+ if (!e.composite)
+ return new u.ToUnicodeMap(this._simpleFontToUnicode(e));
+ if (
+ e.composite &&
+ ((e.cMap.builtInCMap && !(e.cMap instanceof n.IdentityCMap)) ||
+ ("Adobe" === e.cidSystemInfo.registry &&
+ ("GB1" === e.cidSystemInfo.ordering ||
+ "CNS1" === e.cidSystemInfo.ordering ||
+ "Japan1" === e.cidSystemInfo.ordering ||
+ "Korea1" === e.cidSystemInfo.ordering)))
+ ) {
+ const { registry: t, ordering: a } = e.cidSystemInfo,
+ s = i.Name.get(`${t}-${a}-UCS2`),
+ o = await n.CMapFactory.create({
+ encoding: s,
+ fetchBuiltInCMap: this._fetchBuiltInCMapBound,
+ useCMap: null,
+ }),
+ c = [],
+ l = [];
+ e.cMap.forEach(function (e, t) {
+ if (t > 65535)
+ throw new r.FormatError("Max size of CID is 65,535");
+ const a = o.lookup(t);
+ if (a) {
+ l.length = 0;
+ for (let e = 0, t = a.length; e < t; e += 2)
+ l.push((a.charCodeAt(e) << 8) + a.charCodeAt(e + 1));
+ c[e] = String.fromCharCode(...l);
+ }
+ });
+ return new u.ToUnicodeMap(c);
+ }
+ return new u.IdentityToUnicodeMap(e.firstChar, e.lastChar);
+ }
+ readToUnicode(e) {
+ return e
+ ? e instanceof i.Name
+ ? n.CMapFactory.create({
+ encoding: e,
+ fetchBuiltInCMap: this._fetchBuiltInCMapBound,
+ useCMap: null,
+ }).then(function (e) {
+ return e instanceof n.IdentityCMap
+ ? new u.IdentityToUnicodeMap(0, 65535)
+ : new u.ToUnicodeMap(e.getMap());
+ })
+ : e instanceof m.BaseStream
+ ? n.CMapFactory.create({
+ encoding: e,
+ fetchBuiltInCMap: this._fetchBuiltInCMapBound,
+ useCMap: null,
+ }).then(
+ function (e) {
+ if (e instanceof n.IdentityCMap)
+ return new u.IdentityToUnicodeMap(0, 65535);
+ const t = new Array(e.length);
+ e.forEach(function (e, a) {
+ if ("number" == typeof a) {
+ t[e] = String.fromCodePoint(a);
+ return;
+ }
+ const r = [];
+ for (let e = 0; e < a.length; e += 2) {
+ const t =
+ (a.charCodeAt(e) << 8) | a.charCodeAt(e + 1);
+ if (55296 != (63488 & t)) {
+ r.push(t);
+ continue;
+ }
+ e += 2;
+ const n =
+ (a.charCodeAt(e) << 8) | a.charCodeAt(e + 1);
+ r.push(((1023 & t) << 10) + (1023 & n) + 65536);
+ }
+ t[e] = String.fromCodePoint(...r);
+ });
+ return new u.ToUnicodeMap(t);
+ },
+ (e) => {
+ if (e instanceof r.AbortException) return null;
+ if (this.options.ignoreErrors) {
+ (0, r.warn)(
+ `readToUnicode - ignoring ToUnicode data: "${e}".`,
+ );
+ return null;
+ }
+ throw e;
+ },
+ )
+ : Promise.resolve(null)
+ : Promise.resolve(null);
+ }
+ readCidToGidMap(e, t) {
+ const a = [];
+ for (let r = 0, n = e.length; r < n; r++) {
+ const n = (e[r++] << 8) | e[r],
+ i = r >> 1;
+ (0 !== n || t.has(i)) && (a[i] = n);
+ }
+ return a;
+ }
+ extractWidths(e, t, a) {
+ const r = this.xref;
+ let n = [],
+ s = 0;
+ const o = [];
+ let c, l, h, u, d, f, g, p;
+ if (a.composite) {
+ s = e.has("DW") ? e.get("DW") : 1e3;
+ p = e.get("W");
+ if (p)
+ for (l = 0, h = p.length; l < h; l++) {
+ f = r.fetchIfRef(p[l++]);
+ g = r.fetchIfRef(p[l]);
+ if (Array.isArray(g))
+ for (u = 0, d = g.length; u < d; u++)
+ n[f++] = r.fetchIfRef(g[u]);
+ else {
+ const e = r.fetchIfRef(p[++l]);
+ for (u = f; u <= g; u++) n[u] = e;
+ }
+ }
+ if (a.vertical) {
+ let t = e.getArray("DW2") || [880, -1e3];
+ c = [t[1], 0.5 * s, t[0]];
+ t = e.get("W2");
+ if (t)
+ for (l = 0, h = t.length; l < h; l++) {
+ f = r.fetchIfRef(t[l++]);
+ g = r.fetchIfRef(t[l]);
+ if (Array.isArray(g))
+ for (u = 0, d = g.length; u < d; u++)
+ o[f++] = [
+ r.fetchIfRef(g[u++]),
+ r.fetchIfRef(g[u++]),
+ r.fetchIfRef(g[u]),
+ ];
+ else {
+ const e = [
+ r.fetchIfRef(t[++l]),
+ r.fetchIfRef(t[++l]),
+ r.fetchIfRef(t[++l]),
+ ];
+ for (u = f; u <= g; u++) o[u] = e;
+ }
+ }
+ }
+ } else {
+ const o = a.firstChar;
+ p = e.get("Widths");
+ if (p) {
+ u = o;
+ for (l = 0, h = p.length; l < h; l++)
+ n[u++] = r.fetchIfRef(p[l]);
+ s = parseFloat(t.get("MissingWidth")) || 0;
+ } else {
+ const t = e.get("BaseFont");
+ if (t instanceof i.Name) {
+ const e = this.getBaseFontMetrics(t.name);
+ n = this.buildCharCodeToWidth(e.widths, a);
+ s = e.defaultWidth;
+ }
+ }
+ }
+ let m = !0,
+ b = s;
+ for (const e in n) {
+ const t = n[e];
+ if (t)
+ if (b) {
+ if (b !== t) {
+ m = !1;
+ break;
+ }
+ } else b = t;
+ }
+ m
+ ? (a.flags |= S.FontFlags.FixedPitch)
+ : (a.flags &= ~S.FontFlags.FixedPitch);
+ a.defaultWidth = s;
+ a.widths = n;
+ a.defaultVMetrics = c;
+ a.vmetrics = o;
+ }
+ isSerifFont(e) {
+ const t = e.split("-")[0];
+ return t in (0, c.getSerifFonts)() || /serif/gi.test(t);
+ }
+ getBaseFontMetrics(e) {
+ let t = 0,
+ a = Object.create(null),
+ r = !1;
+ let n = (0, c.getStdFontMap)()[e] || e;
+ const i = (0, k.getMetrics)();
+ n in i || (n = this.isSerifFont(e) ? "Times-Roman" : "Helvetica");
+ const s = i[n];
+ if ("number" == typeof s) {
+ t = s;
+ r = !0;
+ } else a = s();
+ return { defaultWidth: t, monospace: r, widths: a };
+ }
+ buildCharCodeToWidth(e, t) {
+ const a = Object.create(null),
+ r = t.differences,
+ n = t.defaultEncoding;
+ for (let t = 0; t < 256; t++)
+ t in r && e[r[t]]
+ ? (a[t] = e[r[t]])
+ : t in n && e[n[t]] && (a[t] = e[n[t]]);
+ return a;
+ }
+ preEvaluateFont(e) {
+ const t = e;
+ let a = e.get("Subtype");
+ if (!(a instanceof i.Name))
+ throw new r.FormatError("invalid font Subtype");
+ let n,
+ s,
+ o = !1;
+ if ("Type0" === a.name) {
+ const t = e.get("DescendantFonts");
+ if (!t)
+ throw new r.FormatError("Descendant fonts are not specified");
+ if (
+ !(
+ (e = Array.isArray(t)
+ ? this.xref.fetchIfRef(t[0])
+ : t) instanceof i.Dict
+ )
+ )
+ throw new r.FormatError(
+ "Descendant font is not a dictionary.",
+ );
+ a = e.get("Subtype");
+ if (!(a instanceof i.Name))
+ throw new r.FormatError("invalid font Subtype");
+ o = !0;
+ }
+ const c = e.get("FirstChar") || 0,
+ l = e.get("LastChar") || (o ? 65535 : 255),
+ h = e.get("FontDescriptor");
+ if (h) {
+ n = new O.MurmurHash3_64();
+ const a = t.getRaw("Encoding");
+ if (a instanceof i.Name) n.update(a.name);
+ else if (a instanceof i.Ref) n.update(a.toString());
+ else if (a instanceof i.Dict)
+ for (const e of a.getRawValues())
+ if (e instanceof i.Name) n.update(e.name);
+ else if (e instanceof i.Ref) n.update(e.toString());
+ else if (Array.isArray(e)) {
+ const t = e.length,
+ a = new Array(t);
+ for (let r = 0; r < t; r++) {
+ const t = e[r];
+ t instanceof i.Name
+ ? (a[r] = t.name)
+ : ("number" == typeof t || t instanceof i.Ref) &&
+ (a[r] = t.toString());
+ }
+ n.update(a.join());
+ }
+ n.update(`${c}-${l}`);
+ s = e.get("ToUnicode") || t.get("ToUnicode");
+ if (s instanceof m.BaseStream) {
+ const e = s.str || s,
+ t = e.buffer
+ ? new Uint8Array(e.buffer.buffer, 0, e.bufferLength)
+ : new Uint8Array(
+ e.bytes.buffer,
+ e.start,
+ e.end - e.start,
+ );
+ n.update(t);
+ } else s instanceof i.Name && n.update(s.name);
+ const r = e.get("Widths") || t.get("Widths");
+ if (Array.isArray(r)) {
+ const e = [];
+ for (const t of r)
+ ("number" == typeof t || t instanceof i.Ref) &&
+ e.push(t.toString());
+ n.update(e.join());
+ }
+ if (o) {
+ n.update("compositeFont");
+ const a = e.get("W") || t.get("W");
+ if (Array.isArray(a)) {
+ const e = [];
+ for (const t of a)
+ if ("number" == typeof t || t instanceof i.Ref)
+ e.push(t.toString());
+ else if (Array.isArray(t)) {
+ const a = [];
+ for (const e of t)
+ ("number" == typeof e || e instanceof i.Ref) &&
+ a.push(e.toString());
+ e.push(`[${a.join()}]`);
+ }
+ n.update(e.join());
+ }
+ const r = e.getRaw("CIDToGIDMap") || t.getRaw("CIDToGIDMap");
+ r instanceof i.Name
+ ? n.update(r.name)
+ : r instanceof i.Ref
+ ? n.update(r.toString())
+ : r instanceof m.BaseStream && n.update(r.peekBytes());
+ }
+ }
+ return {
+ descriptor: h,
+ dict: e,
+ baseDict: t,
+ composite: o,
+ type: a.name,
+ firstChar: c,
+ lastChar: l,
+ toUnicode: s,
+ hash: n ? n.hexdigest() : "",
+ };
+ }
+ async translateFont({
+ descriptor: e,
+ dict: t,
+ baseDict: a,
+ composite: o,
+ type: l,
+ firstChar: u,
+ lastChar: d,
+ toUnicode: f,
+ cssFontInfo: g,
+ }) {
+ const m = "Type3" === l;
+ let b;
+ if (!e) {
+ if (!m) {
+ let e = t.get("BaseFont");
+ if (!(e instanceof i.Name))
+ throw new r.FormatError("Base font is not specified");
+ e = e.name.replaceAll(/[,_]/g, "-");
+ const n = this.getBaseFontMetrics(e),
+ o = e.split("-")[0],
+ h =
+ (this.isSerifFont(o) ? S.FontFlags.Serif : 0) |
+ (n.monospace ? S.FontFlags.FixedPitch : 0) |
+ ((0, c.getSymbolsFonts)()[o]
+ ? S.FontFlags.Symbolic
+ : S.FontFlags.Nonsymbolic);
+ b = {
+ type: l,
+ name: e,
+ loadedName: a.loadedName,
+ systemFontInfo: null,
+ widths: n.widths,
+ defaultWidth: n.defaultWidth,
+ isSimulatedFlags: !0,
+ flags: h,
+ firstChar: u,
+ lastChar: d,
+ toUnicode: f,
+ xHeight: 0,
+ capHeight: 0,
+ italicAngle: 0,
+ isType3Font: m,
+ };
+ const g = t.get("Widths"),
+ p = (0, c.getStandardFontName)(e);
+ let y = null;
+ if (p) {
+ y = await this.fetchStandardFontData(p);
+ b.isInternalFont = !!y;
+ }
+ !b.isInternalFont &&
+ this.options.useSystemFonts &&
+ (b.systemFontInfo = (0, x.getFontSubstitution)(
+ this.systemFontCache,
+ this.idFactory,
+ this.options.standardFontDataUrl,
+ e,
+ p,
+ ));
+ return this.extractDataStructures(t, t, b).then((t) => {
+ if (g) {
+ const e = [];
+ let a = u;
+ for (const t of g) e[a++] = this.xref.fetchIfRef(t);
+ t.widths = e;
+ } else t.widths = this.buildCharCodeToWidth(n.widths, t);
+ return new s.Font(e, y, t);
+ });
+ }
+ (e = new i.Dict(null)).set("FontName", i.Name.get(l));
+ e.set("FontBBox", t.getArray("FontBBox") || [0, 0, 0, 0]);
+ }
+ let y = e.get("FontName"),
+ w = t.get("BaseFont");
+ "string" == typeof y && (y = i.Name.get(y));
+ "string" == typeof w && (w = i.Name.get(w));
+ const C = y?.name,
+ k = w?.name;
+ if (!m && C !== k) {
+ (0, r.info)(
+ `The FontDescriptor's FontName is "${C}" but should be the same as the Font's BaseFont "${k}".`,
+ );
+ C &&
+ k &&
+ (k.startsWith(C) ||
+ (!(0, c.isKnownFontName)(C) &&
+ (0, c.isKnownFontName)(k))) &&
+ (y = null);
+ }
+ y ||= w;
+ if (!(y instanceof i.Name))
+ throw new r.FormatError("invalid font name");
+ let v, F, O, T, M;
+ try {
+ v = e.get("FontFile", "FontFile2", "FontFile3");
+ } catch (e) {
+ if (!this.options.ignoreErrors) throw e;
+ (0, r.warn)(
+ `translateFont - fetching "${y.name}" font file: "${e}".`,
+ );
+ v = new p.NullStream();
+ }
+ let D = !1,
+ E = null,
+ N = null;
+ if (v) {
+ if (v.dict) {
+ const e = v.dict.get("Subtype");
+ e instanceof i.Name && (F = e.name);
+ O = v.dict.get("Length1");
+ T = v.dict.get("Length2");
+ M = v.dict.get("Length3");
+ }
+ } else if (g) {
+ const e = (0, h.getXfaFontName)(y.name);
+ if (e) {
+ g.fontFamily = `${g.fontFamily}-PdfJS-XFA`;
+ g.metrics = e.metrics || null;
+ E = e.factors || null;
+ v = await this.fetchStandardFontData(e.name);
+ D = !!v;
+ a = t = (0, h.getXfaFontDict)(y.name);
+ o = !0;
+ }
+ } else if (!m) {
+ const e = (0, c.getStandardFontName)(y.name);
+ if (e) {
+ v = await this.fetchStandardFontData(e);
+ D = !!v;
+ }
+ !D &&
+ this.options.useSystemFonts &&
+ (N = (0, x.getFontSubstitution)(
+ this.systemFontCache,
+ this.idFactory,
+ this.options.standardFontDataUrl,
+ y.name,
+ e,
+ ));
+ }
+ b = {
+ type: l,
+ name: y.name,
+ subtype: F,
+ file: v,
+ length1: O,
+ length2: T,
+ length3: M,
+ isInternalFont: D,
+ loadedName: a.loadedName,
+ composite: o,
+ fixedPitch: !1,
+ fontMatrix: t.getArray("FontMatrix") || r.FONT_IDENTITY_MATRIX,
+ firstChar: u,
+ lastChar: d,
+ toUnicode: f,
+ bbox: e.getArray("FontBBox") || t.getArray("FontBBox"),
+ ascent: e.get("Ascent"),
+ descent: e.get("Descent"),
+ xHeight: e.get("XHeight") || 0,
+ capHeight: e.get("CapHeight") || 0,
+ flags: e.get("Flags"),
+ italicAngle: e.get("ItalicAngle") || 0,
+ isType3Font: m,
+ cssFontInfo: g,
+ scaleFactors: E,
+ systemFontInfo: N,
+ };
+ if (o) {
+ const e = a.get("Encoding");
+ e instanceof i.Name && (b.cidEncoding = e.name);
+ const t = await n.CMapFactory.create({
+ encoding: e,
+ fetchBuiltInCMap: this._fetchBuiltInCMapBound,
+ useCMap: null,
+ });
+ b.cMap = t;
+ b.vertical = b.cMap.vertical;
+ }
+ return this.extractDataStructures(t, a, b).then((a) => {
+ this.extractWidths(t, e, a);
+ return new s.Font(y.name, v, a);
+ });
+ }
+ static buildFontPaths(e, t, a, n) {
+ function buildPath(t) {
+ const i = `${e.loadedName}_path_${t}`;
+ try {
+ if (e.renderer.hasBuiltPath(t)) return;
+ a.send("commonobj", [i, "FontPath", e.renderer.getPathJs(t)]);
+ } catch (e) {
+ if (n.ignoreErrors) {
+ (0, r.warn)(
+ `buildFontPaths - ignoring ${i} glyph: "${e}".`,
+ );
+ return;
+ }
+ throw e;
+ }
+ }
+ for (const e of t) {
+ buildPath(e.fontChar);
+ const t = e.accent;
+ t?.fontChar && buildPath(t.fontChar);
+ }
+ }
+ static get fallbackFontDict() {
+ const e = new i.Dict();
+ e.set("BaseFont", i.Name.get("Helvetica"));
+ e.set("Type", i.Name.get("FallbackType"));
+ e.set("Subtype", i.Name.get("FallbackType"));
+ e.set("Encoding", i.Name.get("WinAnsiEncoding"));
+ return (0, r.shadow)(this, "fallbackFontDict", e);
+ }
+ }
+ t.PartialEvaluator = PartialEvaluator;
+ class TranslatedFont {
+ constructor({
+ loadedName: e,
+ font: t,
+ dict: a,
+ evaluatorOptions: r,
+ }) {
+ this.loadedName = e;
+ this.font = t;
+ this.dict = a;
+ this._evaluatorOptions = r || D;
+ this.type3Loaded = null;
+ this.type3Dependencies = t.isType3Font ? new Set() : null;
+ this.sent = !1;
+ }
+ send(e) {
+ if (!this.sent) {
+ this.sent = !0;
+ e.send("commonobj", [
+ this.loadedName,
+ "Font",
+ this.font.exportData(
+ this._evaluatorOptions.fontExtraProperties,
+ ),
+ ]);
+ }
+ }
+ fallback(e) {
+ if (this.font.data) {
+ this.font.disableFontFace = !0;
+ PartialEvaluator.buildFontPaths(
+ this.font,
+ this.font.glyphCacheValues,
+ e,
+ this._evaluatorOptions,
+ );
+ }
+ }
+ loadType3Data(e, t, a) {
+ if (this.type3Loaded) return this.type3Loaded;
+ if (!this.font.isType3Font)
+ throw new Error("Must be a Type3 font.");
+ const n = e.clone({ ignoreErrors: !1 });
+ n.parsingType3Font = !0;
+ const s = new i.RefSet(e.type3FontRefs);
+ this.dict.objId &&
+ !s.has(this.dict.objId) &&
+ s.put(this.dict.objId);
+ n.type3FontRefs = s;
+ const o = this.font,
+ c = this.type3Dependencies;
+ let l = Promise.resolve();
+ const h = this.dict.get("CharProcs"),
+ u = this.dict.get("Resources") || t,
+ d = Object.create(null),
+ f = r.Util.normalizeRect(o.bbox || [0, 0, 0, 0]),
+ g = f[2] - f[0],
+ p = f[3] - f[1],
+ m = Math.hypot(g, p);
+ for (const e of h.getKeys())
+ l = l.then(() => {
+ const t = h.get(e),
+ i = new T.OperatorList();
+ return n
+ .getOperatorList({
+ stream: t,
+ task: a,
+ resources: u,
+ operatorList: i,
+ })
+ .then(() => {
+ i.fnArray[0] === r.OPS.setCharWidthAndBounds &&
+ this._removeType3ColorOperators(i, m);
+ d[e] = i.getIR();
+ for (const e of i.dependencies) c.add(e);
+ })
+ .catch(function (t) {
+ (0, r.warn)(
+ `Type3 font resource "${e}" is not available.`,
+ );
+ const a = new T.OperatorList();
+ d[e] = a.getIR();
+ });
+ });
+ this.type3Loaded = l.then(() => {
+ o.charProcOperatorList = d;
+ if (this._bbox) {
+ o.isCharBBox = !0;
+ o.bbox = this._bbox;
+ }
+ });
+ return this.type3Loaded;
+ }
+ _removeType3ColorOperators(e, t = NaN) {
+ const a = r.Util.normalizeRect(e.argsArray[0].slice(2)),
+ n = a[2] - a[0],
+ i = a[3] - a[1],
+ s = Math.hypot(n, i);
+ if (0 === n || 0 === i) {
+ e.fnArray.splice(0, 1);
+ e.argsArray.splice(0, 1);
+ } else if (0 === t || Math.round(s / t) >= 10) {
+ this._bbox || (this._bbox = [1 / 0, 1 / 0, -1 / 0, -1 / 0]);
+ this._bbox[0] = Math.min(this._bbox[0], a[0]);
+ this._bbox[1] = Math.min(this._bbox[1], a[1]);
+ this._bbox[2] = Math.max(this._bbox[2], a[2]);
+ this._bbox[3] = Math.max(this._bbox[3], a[3]);
+ }
+ let o = 0,
+ c = e.length;
+ for (; o < c; ) {
+ switch (e.fnArray[o]) {
+ case r.OPS.setCharWidthAndBounds:
+ break;
+ case r.OPS.setStrokeColorSpace:
+ case r.OPS.setFillColorSpace:
+ case r.OPS.setStrokeColor:
+ case r.OPS.setStrokeColorN:
+ case r.OPS.setFillColor:
+ case r.OPS.setFillColorN:
+ case r.OPS.setStrokeGray:
+ case r.OPS.setFillGray:
+ case r.OPS.setStrokeRGBColor:
+ case r.OPS.setFillRGBColor:
+ case r.OPS.setStrokeCMYKColor:
+ case r.OPS.setFillCMYKColor:
+ case r.OPS.shadingFill:
+ case r.OPS.setRenderingIntent:
+ e.fnArray.splice(o, 1);
+ e.argsArray.splice(o, 1);
+ c--;
+ continue;
+ case r.OPS.setGState:
+ const [t] = e.argsArray[o];
+ let a = 0,
+ n = t.length;
+ for (; a < n; ) {
+ const [e] = t[a];
+ switch (e) {
+ case "TR":
+ case "TR2":
+ case "HT":
+ case "BG":
+ case "BG2":
+ case "UCR":
+ case "UCR2":
+ t.splice(a, 1);
+ n--;
+ continue;
+ }
+ a++;
+ }
+ }
+ o++;
+ }
+ }
+ }
+ class StateManager {
+ constructor(e = new EvalState()) {
+ this.state = e;
+ this.stateStack = [];
+ }
+ save() {
+ const e = this.state;
+ this.stateStack.push(this.state);
+ this.state = e.clone();
+ }
+ restore() {
+ const e = this.stateStack.pop();
+ e && (this.state = e);
+ }
+ transform(e) {
+ this.state.ctm = r.Util.transform(this.state.ctm, e);
+ }
+ }
+ class TextState {
+ constructor() {
+ this.ctm = new Float32Array(r.IDENTITY_MATRIX);
+ this.fontName = null;
+ this.fontSize = 0;
+ this.loadedName = null;
+ this.font = null;
+ this.fontMatrix = r.FONT_IDENTITY_MATRIX;
+ this.textMatrix = r.IDENTITY_MATRIX.slice();
+ this.textLineMatrix = r.IDENTITY_MATRIX.slice();
+ this.charSpacing = 0;
+ this.wordSpacing = 0;
+ this.leading = 0;
+ this.textHScale = 1;
+ this.textRise = 0;
+ }
+ setTextMatrix(e, t, a, r, n, i) {
+ const s = this.textMatrix;
+ s[0] = e;
+ s[1] = t;
+ s[2] = a;
+ s[3] = r;
+ s[4] = n;
+ s[5] = i;
+ }
+ setTextLineMatrix(e, t, a, r, n, i) {
+ const s = this.textLineMatrix;
+ s[0] = e;
+ s[1] = t;
+ s[2] = a;
+ s[3] = r;
+ s[4] = n;
+ s[5] = i;
+ }
+ translateTextMatrix(e, t) {
+ const a = this.textMatrix;
+ a[4] = a[0] * e + a[2] * t + a[4];
+ a[5] = a[1] * e + a[3] * t + a[5];
+ }
+ translateTextLineMatrix(e, t) {
+ const a = this.textLineMatrix;
+ a[4] = a[0] * e + a[2] * t + a[4];
+ a[5] = a[1] * e + a[3] * t + a[5];
+ }
+ carriageReturn() {
+ this.translateTextLineMatrix(0, -this.leading);
+ this.textMatrix = this.textLineMatrix.slice();
+ }
+ clone() {
+ const e = Object.create(this);
+ e.textMatrix = this.textMatrix.slice();
+ e.textLineMatrix = this.textLineMatrix.slice();
+ e.fontMatrix = this.fontMatrix.slice();
+ return e;
+ }
+ }
+ class EvalState {
+ constructor() {
+ this.ctm = new Float32Array(r.IDENTITY_MATRIX);
+ this.font = null;
+ this.textRenderingMode = r.TextRenderingMode.FILL;
+ this.fillColorSpace = y.ColorSpace.singletons.gray;
+ this.strokeColorSpace = y.ColorSpace.singletons.gray;
+ }
+ clone() {
+ return Object.create(this);
+ }
+ }
+ class EvaluatorPreprocessor {
+ static get opMap() {
+ return (0, r.shadow)(this, "opMap", {
+ w: { id: r.OPS.setLineWidth, numArgs: 1, variableArgs: !1 },
+ J: { id: r.OPS.setLineCap, numArgs: 1, variableArgs: !1 },
+ j: { id: r.OPS.setLineJoin, numArgs: 1, variableArgs: !1 },
+ M: { id: r.OPS.setMiterLimit, numArgs: 1, variableArgs: !1 },
+ d: { id: r.OPS.setDash, numArgs: 2, variableArgs: !1 },
+ ri: {
+ id: r.OPS.setRenderingIntent,
+ numArgs: 1,
+ variableArgs: !1,
+ },
+ i: { id: r.OPS.setFlatness, numArgs: 1, variableArgs: !1 },
+ gs: { id: r.OPS.setGState, numArgs: 1, variableArgs: !1 },
+ q: { id: r.OPS.save, numArgs: 0, variableArgs: !1 },
+ Q: { id: r.OPS.restore, numArgs: 0, variableArgs: !1 },
+ cm: { id: r.OPS.transform, numArgs: 6, variableArgs: !1 },
+ m: { id: r.OPS.moveTo, numArgs: 2, variableArgs: !1 },
+ l: { id: r.OPS.lineTo, numArgs: 2, variableArgs: !1 },
+ c: { id: r.OPS.curveTo, numArgs: 6, variableArgs: !1 },
+ v: { id: r.OPS.curveTo2, numArgs: 4, variableArgs: !1 },
+ y: { id: r.OPS.curveTo3, numArgs: 4, variableArgs: !1 },
+ h: { id: r.OPS.closePath, numArgs: 0, variableArgs: !1 },
+ re: { id: r.OPS.rectangle, numArgs: 4, variableArgs: !1 },
+ S: { id: r.OPS.stroke, numArgs: 0, variableArgs: !1 },
+ s: { id: r.OPS.closeStroke, numArgs: 0, variableArgs: !1 },
+ f: { id: r.OPS.fill, numArgs: 0, variableArgs: !1 },
+ F: { id: r.OPS.fill, numArgs: 0, variableArgs: !1 },
+ "f*": { id: r.OPS.eoFill, numArgs: 0, variableArgs: !1 },
+ B: { id: r.OPS.fillStroke, numArgs: 0, variableArgs: !1 },
+ "B*": { id: r.OPS.eoFillStroke, numArgs: 0, variableArgs: !1 },
+ b: { id: r.OPS.closeFillStroke, numArgs: 0, variableArgs: !1 },
+ "b*": {
+ id: r.OPS.closeEOFillStroke,
+ numArgs: 0,
+ variableArgs: !1,
+ },
+ n: { id: r.OPS.endPath, numArgs: 0, variableArgs: !1 },
+ W: { id: r.OPS.clip, numArgs: 0, variableArgs: !1 },
+ "W*": { id: r.OPS.eoClip, numArgs: 0, variableArgs: !1 },
+ BT: { id: r.OPS.beginText, numArgs: 0, variableArgs: !1 },
+ ET: { id: r.OPS.endText, numArgs: 0, variableArgs: !1 },
+ Tc: { id: r.OPS.setCharSpacing, numArgs: 1, variableArgs: !1 },
+ Tw: { id: r.OPS.setWordSpacing, numArgs: 1, variableArgs: !1 },
+ Tz: { id: r.OPS.setHScale, numArgs: 1, variableArgs: !1 },
+ TL: { id: r.OPS.setLeading, numArgs: 1, variableArgs: !1 },
+ Tf: { id: r.OPS.setFont, numArgs: 2, variableArgs: !1 },
+ Tr: {
+ id: r.OPS.setTextRenderingMode,
+ numArgs: 1,
+ variableArgs: !1,
+ },
+ Ts: { id: r.OPS.setTextRise, numArgs: 1, variableArgs: !1 },
+ Td: { id: r.OPS.moveText, numArgs: 2, variableArgs: !1 },
+ TD: {
+ id: r.OPS.setLeadingMoveText,
+ numArgs: 2,
+ variableArgs: !1,
+ },
+ Tm: { id: r.OPS.setTextMatrix, numArgs: 6, variableArgs: !1 },
+ "T*": { id: r.OPS.nextLine, numArgs: 0, variableArgs: !1 },
+ Tj: { id: r.OPS.showText, numArgs: 1, variableArgs: !1 },
+ TJ: { id: r.OPS.showSpacedText, numArgs: 1, variableArgs: !1 },
+ "'": {
+ id: r.OPS.nextLineShowText,
+ numArgs: 1,
+ variableArgs: !1,
+ },
+ '"': {
+ id: r.OPS.nextLineSetSpacingShowText,
+ numArgs: 3,
+ variableArgs: !1,
+ },
+ d0: { id: r.OPS.setCharWidth, numArgs: 2, variableArgs: !1 },
+ d1: {
+ id: r.OPS.setCharWidthAndBounds,
+ numArgs: 6,
+ variableArgs: !1,
+ },
+ CS: {
+ id: r.OPS.setStrokeColorSpace,
+ numArgs: 1,
+ variableArgs: !1,
+ },
+ cs: {
+ id: r.OPS.setFillColorSpace,
+ numArgs: 1,
+ variableArgs: !1,
+ },
+ SC: { id: r.OPS.setStrokeColor, numArgs: 4, variableArgs: !0 },
+ SCN: {
+ id: r.OPS.setStrokeColorN,
+ numArgs: 33,
+ variableArgs: !0,
+ },
+ sc: { id: r.OPS.setFillColor, numArgs: 4, variableArgs: !0 },
+ scn: { id: r.OPS.setFillColorN, numArgs: 33, variableArgs: !0 },
+ G: { id: r.OPS.setStrokeGray, numArgs: 1, variableArgs: !1 },
+ g: { id: r.OPS.setFillGray, numArgs: 1, variableArgs: !1 },
+ RG: {
+ id: r.OPS.setStrokeRGBColor,
+ numArgs: 3,
+ variableArgs: !1,
+ },
+ rg: { id: r.OPS.setFillRGBColor, numArgs: 3, variableArgs: !1 },
+ K: {
+ id: r.OPS.setStrokeCMYKColor,
+ numArgs: 4,
+ variableArgs: !1,
+ },
+ k: { id: r.OPS.setFillCMYKColor, numArgs: 4, variableArgs: !1 },
+ sh: { id: r.OPS.shadingFill, numArgs: 1, variableArgs: !1 },
+ BI: {
+ id: r.OPS.beginInlineImage,
+ numArgs: 0,
+ variableArgs: !1,
+ },
+ ID: { id: r.OPS.beginImageData, numArgs: 0, variableArgs: !1 },
+ EI: { id: r.OPS.endInlineImage, numArgs: 1, variableArgs: !1 },
+ Do: { id: r.OPS.paintXObject, numArgs: 1, variableArgs: !1 },
+ MP: { id: r.OPS.markPoint, numArgs: 1, variableArgs: !1 },
+ DP: { id: r.OPS.markPointProps, numArgs: 2, variableArgs: !1 },
+ BMC: {
+ id: r.OPS.beginMarkedContent,
+ numArgs: 1,
+ variableArgs: !1,
+ },
+ BDC: {
+ id: r.OPS.beginMarkedContentProps,
+ numArgs: 2,
+ variableArgs: !1,
+ },
+ EMC: {
+ id: r.OPS.endMarkedContent,
+ numArgs: 0,
+ variableArgs: !1,
+ },
+ BX: { id: r.OPS.beginCompat, numArgs: 0, variableArgs: !1 },
+ EX: { id: r.OPS.endCompat, numArgs: 0, variableArgs: !1 },
+ BM: null,
+ BD: null,
+ true: null,
+ fa: null,
+ fal: null,
+ fals: null,
+ false: null,
+ nu: null,
+ nul: null,
+ null: null,
+ });
+ }
+ static MAX_INVALID_PATH_OPS = 10;
+ constructor(e, t, a = new StateManager()) {
+ this.parser = new f.Parser({
+ lexer: new f.Lexer(e, EvaluatorPreprocessor.opMap),
+ xref: t,
+ });
+ this.stateManager = a;
+ this.nonProcessedArgs = [];
+ this._isPathOp = !1;
+ this._numInvalidPathOPS = 0;
+ }
+ get savedStatesDepth() {
+ return this.stateManager.stateStack.length;
+ }
+ read(e) {
+ let t = e.args;
+ for (;;) {
+ const a = this.parser.getObj();
+ if (a instanceof i.Cmd) {
+ const n = a.cmd,
+ i = EvaluatorPreprocessor.opMap[n];
+ if (!i) {
+ (0, r.warn)(`Unknown command "${n}".`);
+ continue;
+ }
+ const s = i.id,
+ o = i.numArgs;
+ let c = null !== t ? t.length : 0;
+ this._isPathOp || (this._numInvalidPathOPS = 0);
+ this._isPathOp = s >= r.OPS.moveTo && s <= r.OPS.endPath;
+ if (i.variableArgs)
+ c > o &&
+ (0, r.info)(
+ `Command ${n}: expected [0, ${o}] args, but received ${c} args.`,
+ );
+ else {
+ if (c !== o) {
+ const e = this.nonProcessedArgs;
+ for (; c > o; ) {
+ e.push(t.shift());
+ c--;
+ }
+ for (; c < o && 0 !== e.length; ) {
+ null === t && (t = []);
+ t.unshift(e.pop());
+ c++;
+ }
+ }
+ if (c < o) {
+ const e = `command ${n}: expected ${o} args, but received ${c} args.`;
+ if (
+ this._isPathOp &&
+ ++this._numInvalidPathOPS >
+ EvaluatorPreprocessor.MAX_INVALID_PATH_OPS
+ )
+ throw new r.FormatError(`Invalid ${e}`);
+ (0, r.warn)(`Skipping ${e}`);
+ null !== t && (t.length = 0);
+ continue;
+ }
+ }
+ this.preprocessCommand(s, t);
+ e.fn = s;
+ e.args = t;
+ return !0;
+ }
+ if (a === i.EOF) return !1;
+ if (null !== a) {
+ null === t && (t = []);
+ t.push(a);
+ if (t.length > 33)
+ throw new r.FormatError("Too many arguments");
+ }
+ }
+ }
+ preprocessCommand(e, t) {
+ switch (0 | e) {
+ case r.OPS.save:
+ this.stateManager.save();
+ break;
+ case r.OPS.restore:
+ this.stateManager.restore();
+ break;
+ case r.OPS.transform:
+ this.stateManager.transform(t);
+ }
+ }
+ }
+ t.EvaluatorPreprocessor = EvaluatorPreprocessor;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.IdentityCMap = t.CMapFactory = t.CMap = void 0;
+ var r = a(2),
+ n = a(4),
+ i = a(5),
+ s = a(15),
+ o = a(16),
+ c = a(3),
+ l = a(8);
+ const h = [
+ "Adobe-GB1-UCS2",
+ "Adobe-CNS1-UCS2",
+ "Adobe-Japan1-UCS2",
+ "Adobe-Korea1-UCS2",
+ "78-EUC-H",
+ "78-EUC-V",
+ "78-H",
+ "78-RKSJ-H",
+ "78-RKSJ-V",
+ "78-V",
+ "78ms-RKSJ-H",
+ "78ms-RKSJ-V",
+ "83pv-RKSJ-H",
+ "90ms-RKSJ-H",
+ "90ms-RKSJ-V",
+ "90msp-RKSJ-H",
+ "90msp-RKSJ-V",
+ "90pv-RKSJ-H",
+ "90pv-RKSJ-V",
+ "Add-H",
+ "Add-RKSJ-H",
+ "Add-RKSJ-V",
+ "Add-V",
+ "Adobe-CNS1-0",
+ "Adobe-CNS1-1",
+ "Adobe-CNS1-2",
+ "Adobe-CNS1-3",
+ "Adobe-CNS1-4",
+ "Adobe-CNS1-5",
+ "Adobe-CNS1-6",
+ "Adobe-GB1-0",
+ "Adobe-GB1-1",
+ "Adobe-GB1-2",
+ "Adobe-GB1-3",
+ "Adobe-GB1-4",
+ "Adobe-GB1-5",
+ "Adobe-Japan1-0",
+ "Adobe-Japan1-1",
+ "Adobe-Japan1-2",
+ "Adobe-Japan1-3",
+ "Adobe-Japan1-4",
+ "Adobe-Japan1-5",
+ "Adobe-Japan1-6",
+ "Adobe-Korea1-0",
+ "Adobe-Korea1-1",
+ "Adobe-Korea1-2",
+ "B5-H",
+ "B5-V",
+ "B5pc-H",
+ "B5pc-V",
+ "CNS-EUC-H",
+ "CNS-EUC-V",
+ "CNS1-H",
+ "CNS1-V",
+ "CNS2-H",
+ "CNS2-V",
+ "ETHK-B5-H",
+ "ETHK-B5-V",
+ "ETen-B5-H",
+ "ETen-B5-V",
+ "ETenms-B5-H",
+ "ETenms-B5-V",
+ "EUC-H",
+ "EUC-V",
+ "Ext-H",
+ "Ext-RKSJ-H",
+ "Ext-RKSJ-V",
+ "Ext-V",
+ "GB-EUC-H",
+ "GB-EUC-V",
+ "GB-H",
+ "GB-V",
+ "GBK-EUC-H",
+ "GBK-EUC-V",
+ "GBK2K-H",
+ "GBK2K-V",
+ "GBKp-EUC-H",
+ "GBKp-EUC-V",
+ "GBT-EUC-H",
+ "GBT-EUC-V",
+ "GBT-H",
+ "GBT-V",
+ "GBTpc-EUC-H",
+ "GBTpc-EUC-V",
+ "GBpc-EUC-H",
+ "GBpc-EUC-V",
+ "H",
+ "HKdla-B5-H",
+ "HKdla-B5-V",
+ "HKdlb-B5-H",
+ "HKdlb-B5-V",
+ "HKgccs-B5-H",
+ "HKgccs-B5-V",
+ "HKm314-B5-H",
+ "HKm314-B5-V",
+ "HKm471-B5-H",
+ "HKm471-B5-V",
+ "HKscs-B5-H",
+ "HKscs-B5-V",
+ "Hankaku",
+ "Hiragana",
+ "KSC-EUC-H",
+ "KSC-EUC-V",
+ "KSC-H",
+ "KSC-Johab-H",
+ "KSC-Johab-V",
+ "KSC-V",
+ "KSCms-UHC-H",
+ "KSCms-UHC-HW-H",
+ "KSCms-UHC-HW-V",
+ "KSCms-UHC-V",
+ "KSCpc-EUC-H",
+ "KSCpc-EUC-V",
+ "Katakana",
+ "NWP-H",
+ "NWP-V",
+ "RKSJ-H",
+ "RKSJ-V",
+ "Roman",
+ "UniCNS-UCS2-H",
+ "UniCNS-UCS2-V",
+ "UniCNS-UTF16-H",
+ "UniCNS-UTF16-V",
+ "UniCNS-UTF32-H",
+ "UniCNS-UTF32-V",
+ "UniCNS-UTF8-H",
+ "UniCNS-UTF8-V",
+ "UniGB-UCS2-H",
+ "UniGB-UCS2-V",
+ "UniGB-UTF16-H",
+ "UniGB-UTF16-V",
+ "UniGB-UTF32-H",
+ "UniGB-UTF32-V",
+ "UniGB-UTF8-H",
+ "UniGB-UTF8-V",
+ "UniJIS-UCS2-H",
+ "UniJIS-UCS2-HW-H",
+ "UniJIS-UCS2-HW-V",
+ "UniJIS-UCS2-V",
+ "UniJIS-UTF16-H",
+ "UniJIS-UTF16-V",
+ "UniJIS-UTF32-H",
+ "UniJIS-UTF32-V",
+ "UniJIS-UTF8-H",
+ "UniJIS-UTF8-V",
+ "UniJIS2004-UTF16-H",
+ "UniJIS2004-UTF16-V",
+ "UniJIS2004-UTF32-H",
+ "UniJIS2004-UTF32-V",
+ "UniJIS2004-UTF8-H",
+ "UniJIS2004-UTF8-V",
+ "UniJISPro-UCS2-HW-V",
+ "UniJISPro-UCS2-V",
+ "UniJISPro-UTF8-V",
+ "UniJISX0213-UTF32-H",
+ "UniJISX0213-UTF32-V",
+ "UniJISX02132004-UTF32-H",
+ "UniJISX02132004-UTF32-V",
+ "UniKS-UCS2-H",
+ "UniKS-UCS2-V",
+ "UniKS-UTF16-H",
+ "UniKS-UTF16-V",
+ "UniKS-UTF32-H",
+ "UniKS-UTF32-V",
+ "UniKS-UTF8-H",
+ "UniKS-UTF8-V",
+ "V",
+ "WP-Symbol",
+ ],
+ u = 2 ** 24 - 1;
+ class CMap {
+ constructor(e = !1) {
+ this.codespaceRanges = [[], [], [], []];
+ this.numCodespaceRanges = 0;
+ this._map = [];
+ this.name = "";
+ this.vertical = !1;
+ this.useCMap = null;
+ this.builtInCMap = e;
+ }
+ addCodespaceRange(e, t, a) {
+ this.codespaceRanges[e - 1].push(t, a);
+ this.numCodespaceRanges++;
+ }
+ mapCidRange(e, t, a) {
+ if (t - e > u)
+ throw new Error(
+ "mapCidRange - ignoring data above MAX_MAP_RANGE.",
+ );
+ for (; e <= t; ) this._map[e++] = a++;
+ }
+ mapBfRange(e, t, a) {
+ if (t - e > u)
+ throw new Error(
+ "mapBfRange - ignoring data above MAX_MAP_RANGE.",
+ );
+ const r = a.length - 1;
+ for (; e <= t; ) {
+ this._map[e++] = a;
+ const t = a.charCodeAt(r) + 1;
+ t > 255
+ ? (a =
+ a.substring(0, r - 1) +
+ String.fromCharCode(a.charCodeAt(r - 1) + 1) +
+ "\0")
+ : (a = a.substring(0, r) + String.fromCharCode(t));
+ }
+ }
+ mapBfRangeToArray(e, t, a) {
+ if (t - e > u)
+ throw new Error(
+ "mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.",
+ );
+ const r = a.length;
+ let n = 0;
+ for (; e <= t && n < r; ) {
+ this._map[e] = a[n++];
+ ++e;
+ }
+ }
+ mapOne(e, t) {
+ this._map[e] = t;
+ }
+ lookup(e) {
+ return this._map[e];
+ }
+ contains(e) {
+ return void 0 !== this._map[e];
+ }
+ forEach(e) {
+ const t = this._map,
+ a = t.length;
+ if (a <= 65536)
+ for (let r = 0; r < a; r++) void 0 !== t[r] && e(r, t[r]);
+ else for (const a in t) e(a, t[a]);
+ }
+ charCodeOf(e) {
+ const t = this._map;
+ if (t.length <= 65536) return t.indexOf(e);
+ for (const a in t) if (t[a] === e) return 0 | a;
+ return -1;
+ }
+ getMap() {
+ return this._map;
+ }
+ readCharCode(e, t, a) {
+ let r = 0;
+ const n = this.codespaceRanges;
+ for (let i = 0, s = n.length; i < s; i++) {
+ r = ((r << 8) | e.charCodeAt(t + i)) >>> 0;
+ const s = n[i];
+ for (let e = 0, t = s.length; e < t; ) {
+ const t = s[e++],
+ n = s[e++];
+ if (r >= t && r <= n) {
+ a.charcode = r;
+ a.length = i + 1;
+ return;
+ }
+ }
+ }
+ a.charcode = 0;
+ a.length = 1;
+ }
+ getCharCodeLength(e) {
+ const t = this.codespaceRanges;
+ for (let a = 0, r = t.length; a < r; a++) {
+ const r = t[a];
+ for (let t = 0, n = r.length; t < n; ) {
+ const n = r[t++],
+ i = r[t++];
+ if (e >= n && e <= i) return a + 1;
+ }
+ }
+ return 1;
+ }
+ get length() {
+ return this._map.length;
+ }
+ get isIdentityCMap() {
+ if ("Identity-H" !== this.name && "Identity-V" !== this.name)
+ return !1;
+ if (65536 !== this._map.length) return !1;
+ for (let e = 0; e < 65536; e++) if (this._map[e] !== e) return !1;
+ return !0;
+ }
+ }
+ t.CMap = CMap;
+ class IdentityCMap extends CMap {
+ constructor(e, t) {
+ super();
+ this.vertical = e;
+ this.addCodespaceRange(t, 0, 65535);
+ }
+ mapCidRange(e, t, a) {
+ (0, r.unreachable)("should not call mapCidRange");
+ }
+ mapBfRange(e, t, a) {
+ (0, r.unreachable)("should not call mapBfRange");
+ }
+ mapBfRangeToArray(e, t, a) {
+ (0, r.unreachable)("should not call mapBfRangeToArray");
+ }
+ mapOne(e, t) {
+ (0, r.unreachable)("should not call mapCidOne");
+ }
+ lookup(e) {
+ return Number.isInteger(e) && e <= 65535 ? e : void 0;
+ }
+ contains(e) {
+ return Number.isInteger(e) && e <= 65535;
+ }
+ forEach(e) {
+ for (let t = 0; t <= 65535; t++) e(t, t);
+ }
+ charCodeOf(e) {
+ return Number.isInteger(e) && e <= 65535 ? e : -1;
+ }
+ getMap() {
+ const e = new Array(65536);
+ for (let t = 0; t <= 65535; t++) e[t] = t;
+ return e;
+ }
+ get length() {
+ return 65536;
+ }
+ get isIdentityCMap() {
+ (0, r.unreachable)("should not access .isIdentityCMap");
+ }
+ }
+ t.IdentityCMap = IdentityCMap;
+ function strToInt(e) {
+ let t = 0;
+ for (let a = 0; a < e.length; a++) t = (t << 8) | e.charCodeAt(a);
+ return t >>> 0;
+ }
+ function expectString(e) {
+ if ("string" != typeof e)
+ throw new r.FormatError("Malformed CMap: expected string.");
+ }
+ function expectInt(e) {
+ if (!Number.isInteger(e))
+ throw new r.FormatError("Malformed CMap: expected int.");
+ }
+ function parseBfChar(e, t) {
+ for (;;) {
+ let a = t.getObj();
+ if (a === n.EOF) break;
+ if ((0, n.isCmd)(a, "endbfchar")) return;
+ expectString(a);
+ const r = strToInt(a);
+ a = t.getObj();
+ expectString(a);
+ const i = a;
+ e.mapOne(r, i);
+ }
+ }
+ function parseBfRange(e, t) {
+ for (;;) {
+ let a = t.getObj();
+ if (a === n.EOF) break;
+ if ((0, n.isCmd)(a, "endbfrange")) return;
+ expectString(a);
+ const r = strToInt(a);
+ a = t.getObj();
+ expectString(a);
+ const i = strToInt(a);
+ a = t.getObj();
+ if (Number.isInteger(a) || "string" == typeof a) {
+ const t = Number.isInteger(a) ? String.fromCharCode(a) : a;
+ e.mapBfRange(r, i, t);
+ } else {
+ if (!(0, n.isCmd)(a, "[")) break;
+ {
+ a = t.getObj();
+ const s = [];
+ for (; !(0, n.isCmd)(a, "]") && a !== n.EOF; ) {
+ s.push(a);
+ a = t.getObj();
+ }
+ e.mapBfRangeToArray(r, i, s);
+ }
+ }
+ }
+ throw new r.FormatError("Invalid bf range.");
+ }
+ function parseCidChar(e, t) {
+ for (;;) {
+ let a = t.getObj();
+ if (a === n.EOF) break;
+ if ((0, n.isCmd)(a, "endcidchar")) return;
+ expectString(a);
+ const r = strToInt(a);
+ a = t.getObj();
+ expectInt(a);
+ const i = a;
+ e.mapOne(r, i);
+ }
+ }
+ function parseCidRange(e, t) {
+ for (;;) {
+ let a = t.getObj();
+ if (a === n.EOF) break;
+ if ((0, n.isCmd)(a, "endcidrange")) return;
+ expectString(a);
+ const r = strToInt(a);
+ a = t.getObj();
+ expectString(a);
+ const i = strToInt(a);
+ a = t.getObj();
+ expectInt(a);
+ const s = a;
+ e.mapCidRange(r, i, s);
+ }
+ }
+ function parseCodespaceRange(e, t) {
+ for (;;) {
+ let a = t.getObj();
+ if (a === n.EOF) break;
+ if ((0, n.isCmd)(a, "endcodespacerange")) return;
+ if ("string" != typeof a) break;
+ const r = strToInt(a);
+ a = t.getObj();
+ if ("string" != typeof a) break;
+ const i = strToInt(a);
+ e.addCodespaceRange(a.length, r, i);
+ }
+ throw new r.FormatError("Invalid codespace range.");
+ }
+ function parseWMode(e, t) {
+ const a = t.getObj();
+ Number.isInteger(a) && (e.vertical = !!a);
+ }
+ function parseCMapName(e, t) {
+ const a = t.getObj();
+ a instanceof n.Name && (e.name = a.name);
+ }
+ async function parseCMap(e, t, a, i) {
+ let s, o;
+ e: for (;;)
+ try {
+ const a = t.getObj();
+ if (a === n.EOF) break;
+ if (a instanceof n.Name) {
+ "WMode" === a.name
+ ? parseWMode(e, t)
+ : "CMapName" === a.name && parseCMapName(e, t);
+ s = a;
+ } else if (a instanceof n.Cmd)
+ switch (a.cmd) {
+ case "endcmap":
+ break e;
+ case "usecmap":
+ s instanceof n.Name && (o = s.name);
+ break;
+ case "begincodespacerange":
+ parseCodespaceRange(e, t);
+ break;
+ case "beginbfchar":
+ parseBfChar(e, t);
+ break;
+ case "begincidchar":
+ parseCidChar(e, t);
+ break;
+ case "beginbfrange":
+ parseBfRange(e, t);
+ break;
+ case "begincidrange":
+ parseCidRange(e, t);
+ }
+ } catch (e) {
+ if (e instanceof c.MissingDataException) throw e;
+ (0, r.warn)("Invalid cMap data: " + e);
+ continue;
+ }
+ !i && o && (i = o);
+ return i ? extendCMap(e, a, i) : e;
+ }
+ async function extendCMap(e, t, a) {
+ e.useCMap = await createBuiltInCMap(a, t);
+ if (0 === e.numCodespaceRanges) {
+ const t = e.useCMap.codespaceRanges;
+ for (let a = 0; a < t.length; a++)
+ e.codespaceRanges[a] = t[a].slice();
+ e.numCodespaceRanges = e.useCMap.numCodespaceRanges;
+ }
+ e.useCMap.forEach(function (t, a) {
+ e.contains(t) || e.mapOne(t, e.useCMap.lookup(t));
+ });
+ return e;
+ }
+ async function createBuiltInCMap(e, t) {
+ if ("Identity-H" === e) return new IdentityCMap(!1, 2);
+ if ("Identity-V" === e) return new IdentityCMap(!0, 2);
+ if (!h.includes(e)) throw new Error("Unknown CMap name: " + e);
+ if (!t)
+ throw new Error("Built-in CMap parameters are not provided.");
+ const { cMapData: a, compressionType: n } = await t(e),
+ i = new CMap(!0);
+ if (n === r.CMapCompressionType.BINARY)
+ return new s.BinaryCMapReader().process(a, i, (e) =>
+ extendCMap(i, t, e),
+ );
+ if (n === r.CMapCompressionType.NONE) {
+ const e = new o.Lexer(new l.Stream(a));
+ return parseCMap(i, e, t, null);
+ }
+ throw new Error(`Invalid CMap "compressionType" value: ${n}`);
+ }
+ t.CMapFactory = class CMapFactory {
+ static async create({
+ encoding: e,
+ fetchBuiltInCMap: t,
+ useCMap: a,
+ }) {
+ if (e instanceof n.Name) return createBuiltInCMap(e.name, t);
+ if (e instanceof i.BaseStream) {
+ const r = await parseCMap(new CMap(), new o.Lexer(e), t, a);
+ return r.isIdentityCMap ? createBuiltInCMap(r.name, t) : r;
+ }
+ throw new Error("Encoding required.");
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.BinaryCMapReader = void 0;
+ var r = a(2);
+ function hexToInt(e, t) {
+ let a = 0;
+ for (let r = 0; r <= t; r++) a = (a << 8) | e[r];
+ return a >>> 0;
+ }
+ function hexToStr(e, t) {
+ return 1 === t
+ ? String.fromCharCode(e[0], e[1])
+ : 3 === t
+ ? String.fromCharCode(e[0], e[1], e[2], e[3])
+ : String.fromCharCode(...e.subarray(0, t + 1));
+ }
+ function addHex(e, t, a) {
+ let r = 0;
+ for (let n = a; n >= 0; n--) {
+ r += e[n] + t[n];
+ e[n] = 255 & r;
+ r >>= 8;
+ }
+ }
+ function incHex(e, t) {
+ let a = 1;
+ for (let r = t; r >= 0 && a > 0; r--) {
+ a += e[r];
+ e[r] = 255 & a;
+ a >>= 8;
+ }
+ }
+ const n = 16;
+ class BinaryCMapStream {
+ constructor(e) {
+ this.buffer = e;
+ this.pos = 0;
+ this.end = e.length;
+ this.tmpBuf = new Uint8Array(19);
+ }
+ readByte() {
+ return this.pos >= this.end ? -1 : this.buffer[this.pos++];
+ }
+ readNumber() {
+ let e,
+ t = 0;
+ do {
+ const a = this.readByte();
+ if (a < 0) throw new r.FormatError("unexpected EOF in bcmap");
+ e = !(128 & a);
+ t = (t << 7) | (127 & a);
+ } while (!e);
+ return t;
+ }
+ readSigned() {
+ const e = this.readNumber();
+ return 1 & e ? ~(e >>> 1) : e >>> 1;
+ }
+ readHex(e, t) {
+ e.set(this.buffer.subarray(this.pos, this.pos + t + 1));
+ this.pos += t + 1;
+ }
+ readHexNumber(e, t) {
+ let a;
+ const n = this.tmpBuf;
+ let i = 0;
+ do {
+ const e = this.readByte();
+ if (e < 0) throw new r.FormatError("unexpected EOF in bcmap");
+ a = !(128 & e);
+ n[i++] = 127 & e;
+ } while (!a);
+ let s = t,
+ o = 0,
+ c = 0;
+ for (; s >= 0; ) {
+ for (; c < 8 && n.length > 0; ) {
+ o |= n[--i] << c;
+ c += 7;
+ }
+ e[s] = 255 & o;
+ s--;
+ o >>= 8;
+ c -= 8;
+ }
+ }
+ readHexSigned(e, t) {
+ this.readHexNumber(e, t);
+ const a = 1 & e[t] ? 255 : 0;
+ let r = 0;
+ for (let n = 0; n <= t; n++) {
+ r = ((1 & r) << 8) | e[n];
+ e[n] = (r >> 1) ^ a;
+ }
+ }
+ readString() {
+ const e = this.readNumber(),
+ t = new Array(e);
+ for (let a = 0; a < e; a++) t[a] = this.readNumber();
+ return String.fromCharCode(...t);
+ }
+ }
+ t.BinaryCMapReader = class BinaryCMapReader {
+ async process(e, t, a) {
+ const r = new BinaryCMapStream(e),
+ i = r.readByte();
+ t.vertical = !!(1 & i);
+ let s = null;
+ const o = new Uint8Array(n),
+ c = new Uint8Array(n),
+ l = new Uint8Array(n),
+ h = new Uint8Array(n),
+ u = new Uint8Array(n);
+ let d, f;
+ for (; (f = r.readByte()) >= 0; ) {
+ const e = f >> 5;
+ if (7 === e) {
+ switch (31 & f) {
+ case 0:
+ r.readString();
+ break;
+ case 1:
+ s = r.readString();
+ }
+ continue;
+ }
+ const a = !!(16 & f),
+ i = 15 & f;
+ if (i + 1 > n)
+ throw new Error(
+ "BinaryCMapReader.process: Invalid dataSize.",
+ );
+ const g = 1,
+ p = r.readNumber();
+ switch (e) {
+ case 0:
+ r.readHex(o, i);
+ r.readHexNumber(c, i);
+ addHex(c, o, i);
+ t.addCodespaceRange(i + 1, hexToInt(o, i), hexToInt(c, i));
+ for (let e = 1; e < p; e++) {
+ incHex(c, i);
+ r.readHexNumber(o, i);
+ addHex(o, c, i);
+ r.readHexNumber(c, i);
+ addHex(c, o, i);
+ t.addCodespaceRange(
+ i + 1,
+ hexToInt(o, i),
+ hexToInt(c, i),
+ );
+ }
+ break;
+ case 1:
+ r.readHex(o, i);
+ r.readHexNumber(c, i);
+ addHex(c, o, i);
+ r.readNumber();
+ for (let e = 1; e < p; e++) {
+ incHex(c, i);
+ r.readHexNumber(o, i);
+ addHex(o, c, i);
+ r.readHexNumber(c, i);
+ addHex(c, o, i);
+ r.readNumber();
+ }
+ break;
+ case 2:
+ r.readHex(l, i);
+ d = r.readNumber();
+ t.mapOne(hexToInt(l, i), d);
+ for (let e = 1; e < p; e++) {
+ incHex(l, i);
+ if (!a) {
+ r.readHexNumber(u, i);
+ addHex(l, u, i);
+ }
+ d = r.readSigned() + (d + 1);
+ t.mapOne(hexToInt(l, i), d);
+ }
+ break;
+ case 3:
+ r.readHex(o, i);
+ r.readHexNumber(c, i);
+ addHex(c, o, i);
+ d = r.readNumber();
+ t.mapCidRange(hexToInt(o, i), hexToInt(c, i), d);
+ for (let e = 1; e < p; e++) {
+ incHex(c, i);
+ if (a) o.set(c);
+ else {
+ r.readHexNumber(o, i);
+ addHex(o, c, i);
+ }
+ r.readHexNumber(c, i);
+ addHex(c, o, i);
+ d = r.readNumber();
+ t.mapCidRange(hexToInt(o, i), hexToInt(c, i), d);
+ }
+ break;
+ case 4:
+ r.readHex(l, g);
+ r.readHex(h, i);
+ t.mapOne(hexToInt(l, g), hexToStr(h, i));
+ for (let e = 1; e < p; e++) {
+ incHex(l, g);
+ if (!a) {
+ r.readHexNumber(u, g);
+ addHex(l, u, g);
+ }
+ incHex(h, i);
+ r.readHexSigned(u, i);
+ addHex(h, u, i);
+ t.mapOne(hexToInt(l, g), hexToStr(h, i));
+ }
+ break;
+ case 5:
+ r.readHex(o, g);
+ r.readHexNumber(c, g);
+ addHex(c, o, g);
+ r.readHex(h, i);
+ t.mapBfRange(
+ hexToInt(o, g),
+ hexToInt(c, g),
+ hexToStr(h, i),
+ );
+ for (let e = 1; e < p; e++) {
+ incHex(c, g);
+ if (a) o.set(c);
+ else {
+ r.readHexNumber(o, g);
+ addHex(o, c, g);
+ }
+ r.readHexNumber(c, g);
+ addHex(c, o, g);
+ r.readHex(h, i);
+ t.mapBfRange(
+ hexToInt(o, g),
+ hexToInt(c, g),
+ hexToStr(h, i),
+ );
+ }
+ break;
+ default:
+ throw new Error(
+ `BinaryCMapReader.process - unknown type: ${e}`,
+ );
+ }
+ }
+ return s ? a(s) : t;
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.Parser = t.Linearization = t.Lexer = void 0;
+ var r = a(2),
+ n = a(4),
+ i = a(3),
+ s = a(8),
+ o = a(17),
+ c = a(19),
+ l = a(20),
+ h = a(22),
+ u = a(23),
+ d = a(26),
+ f = a(29),
+ g = a(31),
+ p = a(32),
+ m = a(33);
+ class Parser {
+ constructor({
+ lexer: e,
+ xref: t,
+ allowStreams: a = !1,
+ recoveryMode: r = !1,
+ }) {
+ this.lexer = e;
+ this.xref = t;
+ this.allowStreams = a;
+ this.recoveryMode = r;
+ this.imageCache = Object.create(null);
+ this._imageId = 0;
+ this.refill();
+ }
+ refill() {
+ this.buf1 = this.lexer.getObj();
+ this.buf2 = this.lexer.getObj();
+ }
+ shift() {
+ if (this.buf2 instanceof n.Cmd && "ID" === this.buf2.cmd) {
+ this.buf1 = this.buf2;
+ this.buf2 = null;
+ } else {
+ this.buf1 = this.buf2;
+ this.buf2 = this.lexer.getObj();
+ }
+ }
+ tryShift() {
+ try {
+ this.shift();
+ return !0;
+ } catch (e) {
+ if (e instanceof i.MissingDataException) throw e;
+ return !1;
+ }
+ }
+ getObj(e = null) {
+ const t = this.buf1;
+ this.shift();
+ if (t instanceof n.Cmd)
+ switch (t.cmd) {
+ case "BI":
+ return this.makeInlineImage(e);
+ case "[":
+ const a = [];
+ for (
+ ;
+ !(0, n.isCmd)(this.buf1, "]") && this.buf1 !== n.EOF;
+
+ )
+ a.push(this.getObj(e));
+ if (this.buf1 === n.EOF) {
+ if (this.recoveryMode) return a;
+ throw new i.ParserEOFException(
+ "End of file inside array.",
+ );
+ }
+ this.shift();
+ return a;
+ case "<<":
+ const s = new n.Dict(this.xref);
+ for (
+ ;
+ !(0, n.isCmd)(this.buf1, ">>") && this.buf1 !== n.EOF;
+
+ ) {
+ if (!(this.buf1 instanceof n.Name)) {
+ (0, r.info)(
+ "Malformed dictionary: key must be a name object",
+ );
+ this.shift();
+ continue;
+ }
+ const t = this.buf1.name;
+ this.shift();
+ if (this.buf1 === n.EOF) break;
+ s.set(t, this.getObj(e));
+ }
+ if (this.buf1 === n.EOF) {
+ if (this.recoveryMode) return s;
+ throw new i.ParserEOFException(
+ "End of file inside dictionary.",
+ );
+ }
+ if ((0, n.isCmd)(this.buf2, "stream"))
+ return this.allowStreams ? this.makeStream(s, e) : s;
+ this.shift();
+ return s;
+ default:
+ return t;
+ }
+ if (Number.isInteger(t)) {
+ if (
+ Number.isInteger(this.buf1) &&
+ (0, n.isCmd)(this.buf2, "R")
+ ) {
+ const e = n.Ref.get(t, this.buf1);
+ this.shift();
+ this.shift();
+ return e;
+ }
+ return t;
+ }
+ return "string" == typeof t && e ? e.decryptString(t) : t;
+ }
+ findDefaultInlineStreamEnd(e) {
+ const { knownCommands: t } = this.lexer,
+ a = e.pos;
+ let o,
+ c,
+ l = 0;
+ for (; -1 !== (o = e.getByte()); )
+ if (0 === l) l = 69 === o ? 1 : 0;
+ else if (1 === l) l = 73 === o ? 2 : 0;
+ else if (32 === o || 10 === o || 13 === o) {
+ c = e.pos;
+ const a = e.peekBytes(15),
+ i = a.length;
+ if (0 === i) break;
+ for (let e = 0; e < i; e++) {
+ o = a[e];
+ if (
+ (0 !== o || 0 === a[e + 1]) &&
+ 10 !== o &&
+ 13 !== o &&
+ (o < 32 || o > 127)
+ ) {
+ l = 0;
+ break;
+ }
+ }
+ if (2 !== l) continue;
+ if (!t) {
+ (0, r.warn)(
+ "findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.",
+ );
+ continue;
+ }
+ const h = new Lexer(new s.Stream(a.slice()), t);
+ h._hexStringWarn = () => {};
+ let u = 0;
+ for (;;) {
+ const e = h.getObj();
+ if (e === n.EOF) {
+ l = 0;
+ break;
+ }
+ if (e instanceof n.Cmd) {
+ const a = t[e.cmd];
+ if (!a) {
+ l = 0;
+ break;
+ }
+ if (a.variableArgs ? u <= a.numArgs : u === a.numArgs)
+ break;
+ u = 0;
+ } else u++;
+ }
+ if (2 === l) break;
+ } else l = 0;
+ if (-1 === o) {
+ (0, r.warn)(
+ "findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker",
+ );
+ if (c) {
+ (0, r.warn)(
+ '... trying to recover by using the last "EI" occurrence.',
+ );
+ e.skip(-(e.pos - c));
+ }
+ }
+ let h = 4;
+ e.skip(-h);
+ o = e.peekByte();
+ e.skip(h);
+ (0, i.isWhiteSpace)(o) || h--;
+ return e.pos - h - a;
+ }
+ findDCTDecodeInlineStreamEnd(e) {
+ const t = e.pos;
+ let a,
+ n,
+ i = !1;
+ for (; -1 !== (a = e.getByte()); )
+ if (255 === a) {
+ switch (e.getByte()) {
+ case 0:
+ break;
+ case 255:
+ e.skip(-1);
+ break;
+ case 217:
+ i = !0;
+ break;
+ case 192:
+ case 193:
+ case 194:
+ case 195:
+ case 197:
+ case 198:
+ case 199:
+ case 201:
+ case 202:
+ case 203:
+ case 205:
+ case 206:
+ case 207:
+ case 196:
+ case 204:
+ case 218:
+ case 219:
+ case 220:
+ case 221:
+ case 222:
+ case 223:
+ case 224:
+ case 225:
+ case 226:
+ case 227:
+ case 228:
+ case 229:
+ case 230:
+ case 231:
+ case 232:
+ case 233:
+ case 234:
+ case 235:
+ case 236:
+ case 237:
+ case 238:
+ case 239:
+ case 254:
+ n = e.getUint16();
+ n > 2 ? e.skip(n - 2) : e.skip(-2);
+ }
+ if (i) break;
+ }
+ const s = e.pos - t;
+ if (-1 === a) {
+ (0, r.warn)(
+ "Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead.",
+ );
+ e.skip(-s);
+ return this.findDefaultInlineStreamEnd(e);
+ }
+ this.inlineStreamSkipEI(e);
+ return s;
+ }
+ findASCII85DecodeInlineStreamEnd(e) {
+ const t = e.pos;
+ let a;
+ for (; -1 !== (a = e.getByte()); )
+ if (126 === a) {
+ const t = e.pos;
+ a = e.peekByte();
+ for (; (0, i.isWhiteSpace)(a); ) {
+ e.skip();
+ a = e.peekByte();
+ }
+ if (62 === a) {
+ e.skip();
+ break;
+ }
+ if (e.pos > t) {
+ const t = e.peekBytes(2);
+ if (69 === t[0] && 73 === t[1]) break;
+ }
+ }
+ const n = e.pos - t;
+ if (-1 === a) {
+ (0, r.warn)(
+ "Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead.",
+ );
+ e.skip(-n);
+ return this.findDefaultInlineStreamEnd(e);
+ }
+ this.inlineStreamSkipEI(e);
+ return n;
+ }
+ findASCIIHexDecodeInlineStreamEnd(e) {
+ const t = e.pos;
+ let a;
+ for (; -1 !== (a = e.getByte()) && 62 !== a; );
+ const n = e.pos - t;
+ if (-1 === a) {
+ (0, r.warn)(
+ "Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead.",
+ );
+ e.skip(-n);
+ return this.findDefaultInlineStreamEnd(e);
+ }
+ this.inlineStreamSkipEI(e);
+ return n;
+ }
+ inlineStreamSkipEI(e) {
+ let t,
+ a = 0;
+ for (; -1 !== (t = e.getByte()); )
+ if (0 === a) a = 69 === t ? 1 : 0;
+ else if (1 === a) a = 73 === t ? 2 : 0;
+ else if (2 === a) break;
+ }
+ makeInlineImage(e) {
+ const t = this.lexer,
+ a = t.stream,
+ i = Object.create(null);
+ let s;
+ for (; !(0, n.isCmd)(this.buf1, "ID") && this.buf1 !== n.EOF; ) {
+ if (!(this.buf1 instanceof n.Name))
+ throw new r.FormatError(
+ "Dictionary key must be a name object",
+ );
+ const t = this.buf1.name;
+ this.shift();
+ if (this.buf1 === n.EOF) break;
+ i[t] = this.getObj(e);
+ }
+ -1 !== t.beginInlineImagePos &&
+ (s = a.pos - t.beginInlineImagePos);
+ const o = this.xref.fetchIfRef(i.F || i.Filter);
+ let c;
+ if (o instanceof n.Name) c = o.name;
+ else if (Array.isArray(o)) {
+ const e = this.xref.fetchIfRef(o[0]);
+ e instanceof n.Name && (c = e.name);
+ }
+ const l = a.pos;
+ let h, u;
+ switch (c) {
+ case "DCT":
+ case "DCTDecode":
+ h = this.findDCTDecodeInlineStreamEnd(a);
+ break;
+ case "A85":
+ case "ASCII85Decode":
+ h = this.findASCII85DecodeInlineStreamEnd(a);
+ break;
+ case "AHx":
+ case "ASCIIHexDecode":
+ h = this.findASCIIHexDecodeInlineStreamEnd(a);
+ break;
+ default:
+ h = this.findDefaultInlineStreamEnd(a);
+ }
+ if (h < 1e3 && s > 0) {
+ const e = a.pos;
+ a.pos = t.beginInlineImagePos;
+ u = (function getInlineImageCacheKey(e) {
+ const t = [],
+ a = e.length;
+ let r = 0;
+ for (; r < a - 1; ) t.push((e[r++] << 8) | e[r++]);
+ r < a && t.push(e[r]);
+ return a + "_" + String.fromCharCode.apply(null, t);
+ })(a.getBytes(s + h));
+ a.pos = e;
+ const r = this.imageCache[u];
+ if (void 0 !== r) {
+ this.buf2 = n.Cmd.get("EI");
+ this.shift();
+ r.reset();
+ return r;
+ }
+ }
+ const d = new n.Dict(this.xref);
+ for (const e in i) d.set(e, i[e]);
+ let f = a.makeSubStream(l, h, d);
+ e && (f = e.createStream(f, h));
+ f = this.filter(f, d, h);
+ f.dict = d;
+ if (void 0 !== u) {
+ f.cacheKey = "inline_img_" + ++this._imageId;
+ this.imageCache[u] = f;
+ }
+ this.buf2 = n.Cmd.get("EI");
+ this.shift();
+ return f;
+ }
+ _findStreamLength(e, t) {
+ const { stream: a } = this.lexer;
+ a.pos = e;
+ const r = t.length;
+ for (; a.pos < a.end; ) {
+ const n = a.peekBytes(2048),
+ i = n.length - r;
+ if (i <= 0) break;
+ let s = 0;
+ for (; s < i; ) {
+ let i = 0;
+ for (; i < r && n[s + i] === t[i]; ) i++;
+ if (i >= r) {
+ a.pos += s;
+ return a.pos - e;
+ }
+ s++;
+ }
+ a.pos += i;
+ }
+ return -1;
+ }
+ makeStream(e, t) {
+ const a = this.lexer;
+ let s = a.stream;
+ a.skipToNextLine();
+ const o = s.pos - 1;
+ let c = e.get("Length");
+ if (!Number.isInteger(c)) {
+ (0, r.info)(`Bad length "${c && c.toString()}" in stream.`);
+ c = 0;
+ }
+ s.pos = o + c;
+ a.nextChar();
+ if (this.tryShift() && (0, n.isCmd)(this.buf2, "endstream"))
+ this.shift();
+ else {
+ const e = new Uint8Array([
+ 101, 110, 100, 115, 116, 114, 101, 97, 109,
+ ]);
+ let t = this._findStreamLength(o, e);
+ if (t < 0) {
+ const a = 1;
+ for (let n = 1; n <= a; n++) {
+ const a = e.length - n,
+ c = e.slice(0, a),
+ l = this._findStreamLength(o, c);
+ if (l >= 0) {
+ const e = s.peekBytes(a + 1)[a];
+ if (!(0, i.isWhiteSpace)(e)) break;
+ (0, r.info)(
+ `Found "${(0, r.bytesToString)(
+ c,
+ )}" when searching for endstream command.`,
+ );
+ t = l;
+ break;
+ }
+ }
+ if (t < 0)
+ throw new r.FormatError("Missing endstream command.");
+ }
+ c = t;
+ a.nextChar();
+ this.shift();
+ this.shift();
+ }
+ this.shift();
+ s = s.makeSubStream(o, c, e);
+ t && (s = t.createStream(s, c));
+ s = this.filter(s, e, c);
+ s.dict = e;
+ return s;
+ }
+ filter(e, t, a) {
+ let i = t.get("F", "Filter"),
+ s = t.get("DP", "DecodeParms");
+ if (i instanceof n.Name) {
+ Array.isArray(s) &&
+ (0, r.warn)(
+ "/DecodeParms should not be an Array, when /Filter is a Name.",
+ );
+ return this.makeFilter(e, i.name, a, s);
+ }
+ let o = a;
+ if (Array.isArray(i)) {
+ const t = i,
+ a = s;
+ for (let c = 0, l = t.length; c < l; ++c) {
+ i = this.xref.fetchIfRef(t[c]);
+ if (!(i instanceof n.Name))
+ throw new r.FormatError(`Bad filter name "${i}"`);
+ s = null;
+ Array.isArray(a) &&
+ c in a &&
+ (s = this.xref.fetchIfRef(a[c]));
+ e = this.makeFilter(e, i.name, o, s);
+ o = null;
+ }
+ }
+ return e;
+ }
+ makeFilter(e, t, a, n) {
+ if (0 === a) {
+ (0, r.warn)(`Empty "${t}" stream.`);
+ return new s.NullStream();
+ }
+ try {
+ switch (t) {
+ case "Fl":
+ case "FlateDecode":
+ return n
+ ? new p.PredictorStream(new h.FlateStream(e, a), a, n)
+ : new h.FlateStream(e, a);
+ case "LZW":
+ case "LZWDecode":
+ let t = 1;
+ if (n) {
+ n.has("EarlyChange") && (t = n.get("EarlyChange"));
+ return new p.PredictorStream(
+ new g.LZWStream(e, a, t),
+ a,
+ n,
+ );
+ }
+ return new g.LZWStream(e, a, t);
+ case "DCT":
+ case "DCTDecode":
+ return new d.JpegStream(e, a, n);
+ case "JPX":
+ case "JPXDecode":
+ return new f.JpxStream(e, a, n);
+ case "A85":
+ case "ASCII85Decode":
+ return new o.Ascii85Stream(e, a);
+ case "AHx":
+ case "ASCIIHexDecode":
+ return new c.AsciiHexStream(e, a);
+ case "CCF":
+ case "CCITTFaxDecode":
+ return new l.CCITTFaxStream(e, a, n);
+ case "RL":
+ case "RunLengthDecode":
+ return new m.RunLengthStream(e, a);
+ case "JBIG2Decode":
+ return new u.Jbig2Stream(e, a, n);
+ }
+ (0, r.warn)(`Filter "${t}" is not supported.`);
+ return e;
+ } catch (e) {
+ if (e instanceof i.MissingDataException) throw e;
+ (0, r.warn)(`Invalid stream: "${e}"`);
+ return new s.NullStream();
+ }
+ }
+ }
+ t.Parser = Parser;
+ const b = [
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0,
+ 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
+ 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0,
+ ];
+ function toHexDigit(e) {
+ return e >= 48 && e <= 57
+ ? 15 & e
+ : (e >= 65 && e <= 70) || (e >= 97 && e <= 102)
+ ? 9 + (15 & e)
+ : -1;
+ }
+ class Lexer {
+ constructor(e, t = null) {
+ this.stream = e;
+ this.nextChar();
+ this.strBuf = [];
+ this.knownCommands = t;
+ this._hexStringNumWarn = 0;
+ this.beginInlineImagePos = -1;
+ }
+ nextChar() {
+ return (this.currentChar = this.stream.getByte());
+ }
+ peekChar() {
+ return this.stream.peekByte();
+ }
+ getNumber() {
+ let e = this.currentChar,
+ t = !1,
+ a = 0,
+ n = 1;
+ if (45 === e) {
+ n = -1;
+ e = this.nextChar();
+ 45 === e && (e = this.nextChar());
+ } else 43 === e && (e = this.nextChar());
+ if (10 === e || 13 === e)
+ do {
+ e = this.nextChar();
+ } while (10 === e || 13 === e);
+ if (46 === e) {
+ a = 10;
+ e = this.nextChar();
+ }
+ if (e < 48 || e > 57) {
+ const t = `Invalid number: ${String.fromCharCode(
+ e,
+ )} (charCode ${e})`;
+ if ((0, i.isWhiteSpace)(e) || -1 === e) {
+ (0, r.info)(`Lexer.getNumber - "${t}".`);
+ return 0;
+ }
+ throw new r.FormatError(t);
+ }
+ let s = e - 48,
+ o = 0,
+ c = 1;
+ for (; (e = this.nextChar()) >= 0; )
+ if (e >= 48 && e <= 57) {
+ const r = e - 48;
+ if (t) o = 10 * o + r;
+ else {
+ 0 !== a && (a *= 10);
+ s = 10 * s + r;
+ }
+ } else if (46 === e) {
+ if (0 !== a) break;
+ a = 1;
+ } else if (45 === e)
+ (0, r.warn)(
+ "Badly formatted number: minus sign in the middle",
+ );
+ else {
+ if (69 !== e && 101 !== e) break;
+ e = this.peekChar();
+ if (43 === e || 45 === e) {
+ c = 45 === e ? -1 : 1;
+ this.nextChar();
+ } else if (e < 48 || e > 57) break;
+ t = !0;
+ }
+ 0 !== a && (s /= a);
+ t && (s *= 10 ** (c * o));
+ return n * s;
+ }
+ getString() {
+ let e = 1,
+ t = !1;
+ const a = this.strBuf;
+ a.length = 0;
+ let n = this.nextChar();
+ for (;;) {
+ let i = !1;
+ switch (0 | n) {
+ case -1:
+ (0, r.warn)("Unterminated string");
+ t = !0;
+ break;
+ case 40:
+ ++e;
+ a.push("(");
+ break;
+ case 41:
+ if (0 == --e) {
+ this.nextChar();
+ t = !0;
+ } else a.push(")");
+ break;
+ case 92:
+ n = this.nextChar();
+ switch (n) {
+ case -1:
+ (0, r.warn)("Unterminated string");
+ t = !0;
+ break;
+ case 110:
+ a.push("\n");
+ break;
+ case 114:
+ a.push("\r");
+ break;
+ case 116:
+ a.push("\t");
+ break;
+ case 98:
+ a.push("\b");
+ break;
+ case 102:
+ a.push("\f");
+ break;
+ case 92:
+ case 40:
+ case 41:
+ a.push(String.fromCharCode(n));
+ break;
+ case 48:
+ case 49:
+ case 50:
+ case 51:
+ case 52:
+ case 53:
+ case 54:
+ case 55:
+ let e = 15 & n;
+ n = this.nextChar();
+ i = !0;
+ if (n >= 48 && n <= 55) {
+ e = (e << 3) + (15 & n);
+ n = this.nextChar();
+ if (n >= 48 && n <= 55) {
+ i = !1;
+ e = (e << 3) + (15 & n);
+ }
+ }
+ a.push(String.fromCharCode(e));
+ break;
+ case 13:
+ 10 === this.peekChar() && this.nextChar();
+ break;
+ case 10:
+ break;
+ default:
+ a.push(String.fromCharCode(n));
+ }
+ break;
+ default:
+ a.push(String.fromCharCode(n));
+ }
+ if (t) break;
+ i || (n = this.nextChar());
+ }
+ return a.join("");
+ }
+ getName() {
+ let e, t;
+ const a = this.strBuf;
+ a.length = 0;
+ for (; (e = this.nextChar()) >= 0 && !b[e]; )
+ if (35 === e) {
+ e = this.nextChar();
+ if (b[e]) {
+ (0, r.warn)(
+ "Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number.",
+ );
+ a.push("#");
+ break;
+ }
+ const n = toHexDigit(e);
+ if (-1 !== n) {
+ t = e;
+ e = this.nextChar();
+ const i = toHexDigit(e);
+ if (-1 === i) {
+ (0, r.warn)(
+ `Lexer_getName: Illegal digit (${String.fromCharCode(
+ e,
+ )}) in hexadecimal number.`,
+ );
+ a.push("#", String.fromCharCode(t));
+ if (b[e]) break;
+ a.push(String.fromCharCode(e));
+ continue;
+ }
+ a.push(String.fromCharCode((n << 4) | i));
+ } else a.push("#", String.fromCharCode(e));
+ } else a.push(String.fromCharCode(e));
+ a.length > 127 &&
+ (0, r.warn)(
+ `Name token is longer than allowed by the spec: ${a.length}`,
+ );
+ return n.Name.get(a.join(""));
+ }
+ _hexStringWarn(e) {
+ 5 != this._hexStringNumWarn++
+ ? this._hexStringNumWarn > 5 ||
+ (0, r.warn)(`getHexString - ignoring invalid character: ${e}`)
+ : (0, r.warn)(
+ "getHexString - ignoring additional invalid characters.",
+ );
+ }
+ getHexString() {
+ const e = this.strBuf;
+ e.length = 0;
+ let t,
+ a,
+ n = this.currentChar,
+ i = !0;
+ this._hexStringNumWarn = 0;
+ for (;;) {
+ if (n < 0) {
+ (0, r.warn)("Unterminated hex string");
+ break;
+ }
+ if (62 === n) {
+ this.nextChar();
+ break;
+ }
+ if (1 !== b[n]) {
+ if (i) {
+ t = toHexDigit(n);
+ if (-1 === t) {
+ this._hexStringWarn(n);
+ n = this.nextChar();
+ continue;
+ }
+ } else {
+ a = toHexDigit(n);
+ if (-1 === a) {
+ this._hexStringWarn(n);
+ n = this.nextChar();
+ continue;
+ }
+ e.push(String.fromCharCode((t << 4) | a));
+ }
+ i = !i;
+ n = this.nextChar();
+ } else n = this.nextChar();
+ }
+ return e.join("");
+ }
+ getObj() {
+ let e = !1,
+ t = this.currentChar;
+ for (;;) {
+ if (t < 0) return n.EOF;
+ if (e) (10 !== t && 13 !== t) || (e = !1);
+ else if (37 === t) e = !0;
+ else if (1 !== b[t]) break;
+ t = this.nextChar();
+ }
+ switch (0 | t) {
+ case 48:
+ case 49:
+ case 50:
+ case 51:
+ case 52:
+ case 53:
+ case 54:
+ case 55:
+ case 56:
+ case 57:
+ case 43:
+ case 45:
+ case 46:
+ return this.getNumber();
+ case 40:
+ return this.getString();
+ case 47:
+ return this.getName();
+ case 91:
+ this.nextChar();
+ return n.Cmd.get("[");
+ case 93:
+ this.nextChar();
+ return n.Cmd.get("]");
+ case 60:
+ t = this.nextChar();
+ if (60 === t) {
+ this.nextChar();
+ return n.Cmd.get("<<");
+ }
+ return this.getHexString();
+ case 62:
+ t = this.nextChar();
+ if (62 === t) {
+ this.nextChar();
+ return n.Cmd.get(">>");
+ }
+ return n.Cmd.get(">");
+ case 123:
+ this.nextChar();
+ return n.Cmd.get("{");
+ case 125:
+ this.nextChar();
+ return n.Cmd.get("}");
+ case 41:
+ this.nextChar();
+ throw new r.FormatError(`Illegal character: ${t}`);
+ }
+ let a = String.fromCharCode(t);
+ if (t < 32 || t > 127) {
+ const e = this.peekChar();
+ if (e >= 32 && e <= 127) {
+ this.nextChar();
+ return n.Cmd.get(a);
+ }
+ }
+ const i = this.knownCommands;
+ let s = void 0 !== i?.[a];
+ for (; (t = this.nextChar()) >= 0 && !b[t]; ) {
+ const e = a + String.fromCharCode(t);
+ if (s && void 0 === i[e]) break;
+ if (128 === a.length)
+ throw new r.FormatError(
+ `Command token too long: ${a.length}`,
+ );
+ a = e;
+ s = void 0 !== i?.[a];
+ }
+ if ("true" === a) return !0;
+ if ("false" === a) return !1;
+ if ("null" === a) return null;
+ "BI" === a && (this.beginInlineImagePos = this.stream.pos);
+ return n.Cmd.get(a);
+ }
+ skipToNextLine() {
+ let e = this.currentChar;
+ for (; e >= 0; ) {
+ if (13 === e) {
+ e = this.nextChar();
+ 10 === e && this.nextChar();
+ break;
+ }
+ if (10 === e) {
+ this.nextChar();
+ break;
+ }
+ e = this.nextChar();
+ }
+ }
+ }
+ t.Lexer = Lexer;
+ t.Linearization = class Linearization {
+ static create(e) {
+ function getInt(e, t, a = !1) {
+ const r = e.get(t);
+ if (Number.isInteger(r) && (a ? r >= 0 : r > 0)) return r;
+ throw new Error(
+ `The "${t}" parameter in the linearization dictionary is invalid.`,
+ );
+ }
+ const t = new Parser({ lexer: new Lexer(e), xref: null }),
+ a = t.getObj(),
+ r = t.getObj(),
+ i = t.getObj(),
+ s = t.getObj();
+ let o, c;
+ if (
+ !(
+ Number.isInteger(a) &&
+ Number.isInteger(r) &&
+ (0, n.isCmd)(i, "obj") &&
+ s instanceof n.Dict &&
+ "number" == typeof (o = s.get("Linearized")) &&
+ o > 0
+ )
+ )
+ return null;
+ if ((c = getInt(s, "L")) !== e.length)
+ throw new Error(
+ 'The "L" parameter in the linearization dictionary does not equal the stream length.',
+ );
+ return {
+ length: c,
+ hints: (function getHints(e) {
+ const t = e.get("H");
+ let a;
+ if (Array.isArray(t) && (2 === (a = t.length) || 4 === a)) {
+ for (let e = 0; e < a; e++) {
+ const a = t[e];
+ if (!(Number.isInteger(a) && a > 0))
+ throw new Error(
+ `Hint (${e}) in the linearization dictionary is invalid.`,
+ );
+ }
+ return t;
+ }
+ throw new Error(
+ "Hint array in the linearization dictionary is invalid.",
+ );
+ })(s),
+ objectNumberFirst: getInt(s, "O"),
+ endFirst: getInt(s, "E"),
+ numPages: getInt(s, "N"),
+ mainXRefEntriesOffset: getInt(s, "T"),
+ pageFirst: s.has("P") ? getInt(s, "P", !0) : 0,
+ };
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.Ascii85Stream = void 0;
+ var r = a(18),
+ n = a(3);
+ class Ascii85Stream extends r.DecodeStream {
+ constructor(e, t) {
+ t && (t *= 0.8);
+ super(t);
+ this.str = e;
+ this.dict = e.dict;
+ this.input = new Uint8Array(5);
+ }
+ readBlock() {
+ const e = this.str;
+ let t = e.getByte();
+ for (; (0, n.isWhiteSpace)(t); ) t = e.getByte();
+ if (-1 === t || 126 === t) {
+ this.eof = !0;
+ return;
+ }
+ const a = this.bufferLength;
+ let r, i;
+ if (122 === t) {
+ r = this.ensureBuffer(a + 4);
+ for (i = 0; i < 4; ++i) r[a + i] = 0;
+ this.bufferLength += 4;
+ } else {
+ const s = this.input;
+ s[0] = t;
+ for (i = 1; i < 5; ++i) {
+ t = e.getByte();
+ for (; (0, n.isWhiteSpace)(t); ) t = e.getByte();
+ s[i] = t;
+ if (-1 === t || 126 === t) break;
+ }
+ r = this.ensureBuffer(a + i - 1);
+ this.bufferLength += i - 1;
+ if (i < 5) {
+ for (; i < 5; ++i) s[i] = 117;
+ this.eof = !0;
+ }
+ let o = 0;
+ for (i = 0; i < 5; ++i) o = 85 * o + (s[i] - 33);
+ for (i = 3; i >= 0; --i) {
+ r[a + i] = 255 & o;
+ o >>= 8;
+ }
+ }
+ }
+ }
+ t.Ascii85Stream = Ascii85Stream;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.StreamsSequenceStream = t.DecodeStream = void 0;
+ var r = a(5),
+ n = a(8);
+ const i = new Uint8Array(0);
+ class DecodeStream extends r.BaseStream {
+ constructor(e) {
+ super();
+ this._rawMinBufferLength = e || 0;
+ this.pos = 0;
+ this.bufferLength = 0;
+ this.eof = !1;
+ this.buffer = i;
+ this.minBufferLength = 512;
+ if (e)
+ for (; this.minBufferLength < e; ) this.minBufferLength *= 2;
+ }
+ get isEmpty() {
+ for (; !this.eof && 0 === this.bufferLength; ) this.readBlock();
+ return 0 === this.bufferLength;
+ }
+ ensureBuffer(e) {
+ const t = this.buffer;
+ if (e <= t.byteLength) return t;
+ let a = this.minBufferLength;
+ for (; a < e; ) a *= 2;
+ const r = new Uint8Array(a);
+ r.set(t);
+ return (this.buffer = r);
+ }
+ getByte() {
+ const e = this.pos;
+ for (; this.bufferLength <= e; ) {
+ if (this.eof) return -1;
+ this.readBlock();
+ }
+ return this.buffer[this.pos++];
+ }
+ getBytes(e) {
+ const t = this.pos;
+ let a;
+ if (e) {
+ this.ensureBuffer(t + e);
+ a = t + e;
+ for (; !this.eof && this.bufferLength < a; ) this.readBlock();
+ const r = this.bufferLength;
+ a > r && (a = r);
+ } else {
+ for (; !this.eof; ) this.readBlock();
+ a = this.bufferLength;
+ }
+ this.pos = a;
+ return this.buffer.subarray(t, a);
+ }
+ reset() {
+ this.pos = 0;
+ }
+ makeSubStream(e, t, a = null) {
+ if (void 0 === t) for (; !this.eof; ) this.readBlock();
+ else {
+ const a = e + t;
+ for (; this.bufferLength <= a && !this.eof; ) this.readBlock();
+ }
+ return new n.Stream(this.buffer, e, t, a);
+ }
+ getBaseStreams() {
+ return this.str ? this.str.getBaseStreams() : null;
+ }
+ }
+ t.DecodeStream = DecodeStream;
+ t.StreamsSequenceStream = class StreamsSequenceStream extends (
+ DecodeStream
+ ) {
+ constructor(e, t = null) {
+ let a = 0;
+ for (const t of e)
+ a +=
+ t instanceof DecodeStream ? t._rawMinBufferLength : t.length;
+ super(a);
+ this.streams = e;
+ this._onError = t;
+ }
+ readBlock() {
+ const e = this.streams;
+ if (0 === e.length) {
+ this.eof = !0;
+ return;
+ }
+ const t = e.shift();
+ let a;
+ try {
+ a = t.getBytes();
+ } catch (e) {
+ if (this._onError) {
+ this._onError(e, t.dict?.objId);
+ return;
+ }
+ throw e;
+ }
+ const r = this.bufferLength,
+ n = r + a.length;
+ this.ensureBuffer(n).set(a, r);
+ this.bufferLength = n;
+ }
+ getBaseStreams() {
+ const e = [];
+ for (const t of this.streams) {
+ const a = t.getBaseStreams();
+ a && e.push(...a);
+ }
+ return e.length > 0 ? e : null;
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.AsciiHexStream = void 0;
+ var r = a(18);
+ class AsciiHexStream extends r.DecodeStream {
+ constructor(e, t) {
+ t && (t *= 0.5);
+ super(t);
+ this.str = e;
+ this.dict = e.dict;
+ this.firstDigit = -1;
+ }
+ readBlock() {
+ const e = this.str.getBytes(8e3);
+ if (!e.length) {
+ this.eof = !0;
+ return;
+ }
+ const t = (e.length + 1) >> 1,
+ a = this.ensureBuffer(this.bufferLength + t);
+ let r = this.bufferLength,
+ n = this.firstDigit;
+ for (const t of e) {
+ let e;
+ if (t >= 48 && t <= 57) e = 15 & t;
+ else {
+ if (!((t >= 65 && t <= 70) || (t >= 97 && t <= 102))) {
+ if (62 === t) {
+ this.eof = !0;
+ break;
+ }
+ continue;
+ }
+ e = 9 + (15 & t);
+ }
+ if (n < 0) n = e;
+ else {
+ a[r++] = (n << 4) | e;
+ n = -1;
+ }
+ }
+ if (n >= 0 && this.eof) {
+ a[r++] = n << 4;
+ n = -1;
+ }
+ this.firstDigit = n;
+ this.bufferLength = r;
+ }
+ }
+ t.AsciiHexStream = AsciiHexStream;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.CCITTFaxStream = void 0;
+ var r = a(21),
+ n = a(18),
+ i = a(4);
+ class CCITTFaxStream extends n.DecodeStream {
+ constructor(e, t, a) {
+ super(t);
+ this.str = e;
+ this.dict = e.dict;
+ a instanceof i.Dict || (a = i.Dict.empty);
+ const n = { next: () => e.getByte() };
+ this.ccittFaxDecoder = new r.CCITTFaxDecoder(n, {
+ K: a.get("K"),
+ EndOfLine: a.get("EndOfLine"),
+ EncodedByteAlign: a.get("EncodedByteAlign"),
+ Columns: a.get("Columns"),
+ Rows: a.get("Rows"),
+ EndOfBlock: a.get("EndOfBlock"),
+ BlackIs1: a.get("BlackIs1"),
+ });
+ }
+ readBlock() {
+ for (; !this.eof; ) {
+ const e = this.ccittFaxDecoder.readNextChar();
+ if (-1 === e) {
+ this.eof = !0;
+ return;
+ }
+ this.ensureBuffer(this.bufferLength + 1);
+ this.buffer[this.bufferLength++] = e;
+ }
+ }
+ }
+ t.CCITTFaxStream = CCITTFaxStream;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.CCITTFaxDecoder = void 0;
+ var r = a(2);
+ const n = -1,
+ i = [
+ [-1, -1],
+ [-1, -1],
+ [7, 8],
+ [7, 7],
+ [6, 6],
+ [6, 6],
+ [6, 5],
+ [6, 5],
+ [4, 0],
+ [4, 0],
+ [4, 0],
+ [4, 0],
+ [4, 0],
+ [4, 0],
+ [4, 0],
+ [4, 0],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 3],
+ [3, 3],
+ [3, 3],
+ [3, 3],
+ [3, 3],
+ [3, 3],
+ [3, 3],
+ [3, 3],
+ [3, 3],
+ [3, 3],
+ [3, 3],
+ [3, 3],
+ [3, 3],
+ [3, 3],
+ [3, 3],
+ [3, 3],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ [1, 2],
+ ],
+ s = [
+ [-1, -1],
+ [12, -2],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [11, 1792],
+ [11, 1792],
+ [12, 1984],
+ [12, 2048],
+ [12, 2112],
+ [12, 2176],
+ [12, 2240],
+ [12, 2304],
+ [11, 1856],
+ [11, 1856],
+ [11, 1920],
+ [11, 1920],
+ [12, 2368],
+ [12, 2432],
+ [12, 2496],
+ [12, 2560],
+ ],
+ o = [
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [8, 29],
+ [8, 29],
+ [8, 30],
+ [8, 30],
+ [8, 45],
+ [8, 45],
+ [8, 46],
+ [8, 46],
+ [7, 22],
+ [7, 22],
+ [7, 22],
+ [7, 22],
+ [7, 23],
+ [7, 23],
+ [7, 23],
+ [7, 23],
+ [8, 47],
+ [8, 47],
+ [8, 48],
+ [8, 48],
+ [6, 13],
+ [6, 13],
+ [6, 13],
+ [6, 13],
+ [6, 13],
+ [6, 13],
+ [6, 13],
+ [6, 13],
+ [7, 20],
+ [7, 20],
+ [7, 20],
+ [7, 20],
+ [8, 33],
+ [8, 33],
+ [8, 34],
+ [8, 34],
+ [8, 35],
+ [8, 35],
+ [8, 36],
+ [8, 36],
+ [8, 37],
+ [8, 37],
+ [8, 38],
+ [8, 38],
+ [7, 19],
+ [7, 19],
+ [7, 19],
+ [7, 19],
+ [8, 31],
+ [8, 31],
+ [8, 32],
+ [8, 32],
+ [6, 1],
+ [6, 1],
+ [6, 1],
+ [6, 1],
+ [6, 1],
+ [6, 1],
+ [6, 1],
+ [6, 1],
+ [6, 12],
+ [6, 12],
+ [6, 12],
+ [6, 12],
+ [6, 12],
+ [6, 12],
+ [6, 12],
+ [6, 12],
+ [8, 53],
+ [8, 53],
+ [8, 54],
+ [8, 54],
+ [7, 26],
+ [7, 26],
+ [7, 26],
+ [7, 26],
+ [8, 39],
+ [8, 39],
+ [8, 40],
+ [8, 40],
+ [8, 41],
+ [8, 41],
+ [8, 42],
+ [8, 42],
+ [8, 43],
+ [8, 43],
+ [8, 44],
+ [8, 44],
+ [7, 21],
+ [7, 21],
+ [7, 21],
+ [7, 21],
+ [7, 28],
+ [7, 28],
+ [7, 28],
+ [7, 28],
+ [8, 61],
+ [8, 61],
+ [8, 62],
+ [8, 62],
+ [8, 63],
+ [8, 63],
+ [8, 0],
+ [8, 0],
+ [8, 320],
+ [8, 320],
+ [8, 384],
+ [8, 384],
+ [5, 10],
+ [5, 10],
+ [5, 10],
+ [5, 10],
+ [5, 10],
+ [5, 10],
+ [5, 10],
+ [5, 10],
+ [5, 10],
+ [5, 10],
+ [5, 10],
+ [5, 10],
+ [5, 10],
+ [5, 10],
+ [5, 10],
+ [5, 10],
+ [5, 11],
+ [5, 11],
+ [5, 11],
+ [5, 11],
+ [5, 11],
+ [5, 11],
+ [5, 11],
+ [5, 11],
+ [5, 11],
+ [5, 11],
+ [5, 11],
+ [5, 11],
+ [5, 11],
+ [5, 11],
+ [5, 11],
+ [5, 11],
+ [7, 27],
+ [7, 27],
+ [7, 27],
+ [7, 27],
+ [8, 59],
+ [8, 59],
+ [8, 60],
+ [8, 60],
+ [9, 1472],
+ [9, 1536],
+ [9, 1600],
+ [9, 1728],
+ [7, 18],
+ [7, 18],
+ [7, 18],
+ [7, 18],
+ [7, 24],
+ [7, 24],
+ [7, 24],
+ [7, 24],
+ [8, 49],
+ [8, 49],
+ [8, 50],
+ [8, 50],
+ [8, 51],
+ [8, 51],
+ [8, 52],
+ [8, 52],
+ [7, 25],
+ [7, 25],
+ [7, 25],
+ [7, 25],
+ [8, 55],
+ [8, 55],
+ [8, 56],
+ [8, 56],
+ [8, 57],
+ [8, 57],
+ [8, 58],
+ [8, 58],
+ [6, 192],
+ [6, 192],
+ [6, 192],
+ [6, 192],
+ [6, 192],
+ [6, 192],
+ [6, 192],
+ [6, 192],
+ [6, 1664],
+ [6, 1664],
+ [6, 1664],
+ [6, 1664],
+ [6, 1664],
+ [6, 1664],
+ [6, 1664],
+ [6, 1664],
+ [8, 448],
+ [8, 448],
+ [8, 512],
+ [8, 512],
+ [9, 704],
+ [9, 768],
+ [8, 640],
+ [8, 640],
+ [8, 576],
+ [8, 576],
+ [9, 832],
+ [9, 896],
+ [9, 960],
+ [9, 1024],
+ [9, 1088],
+ [9, 1152],
+ [9, 1216],
+ [9, 1280],
+ [9, 1344],
+ [9, 1408],
+ [7, 256],
+ [7, 256],
+ [7, 256],
+ [7, 256],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 2],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [4, 3],
+ [5, 128],
+ [5, 128],
+ [5, 128],
+ [5, 128],
+ [5, 128],
+ [5, 128],
+ [5, 128],
+ [5, 128],
+ [5, 128],
+ [5, 128],
+ [5, 128],
+ [5, 128],
+ [5, 128],
+ [5, 128],
+ [5, 128],
+ [5, 128],
+ [5, 8],
+ [5, 8],
+ [5, 8],
+ [5, 8],
+ [5, 8],
+ [5, 8],
+ [5, 8],
+ [5, 8],
+ [5, 8],
+ [5, 8],
+ [5, 8],
+ [5, 8],
+ [5, 8],
+ [5, 8],
+ [5, 8],
+ [5, 8],
+ [5, 9],
+ [5, 9],
+ [5, 9],
+ [5, 9],
+ [5, 9],
+ [5, 9],
+ [5, 9],
+ [5, 9],
+ [5, 9],
+ [5, 9],
+ [5, 9],
+ [5, 9],
+ [5, 9],
+ [5, 9],
+ [5, 9],
+ [5, 9],
+ [6, 16],
+ [6, 16],
+ [6, 16],
+ [6, 16],
+ [6, 16],
+ [6, 16],
+ [6, 16],
+ [6, 16],
+ [6, 17],
+ [6, 17],
+ [6, 17],
+ [6, 17],
+ [6, 17],
+ [6, 17],
+ [6, 17],
+ [6, 17],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 4],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [6, 14],
+ [6, 14],
+ [6, 14],
+ [6, 14],
+ [6, 14],
+ [6, 14],
+ [6, 14],
+ [6, 14],
+ [6, 15],
+ [6, 15],
+ [6, 15],
+ [6, 15],
+ [6, 15],
+ [6, 15],
+ [6, 15],
+ [6, 15],
+ [5, 64],
+ [5, 64],
+ [5, 64],
+ [5, 64],
+ [5, 64],
+ [5, 64],
+ [5, 64],
+ [5, 64],
+ [5, 64],
+ [5, 64],
+ [5, 64],
+ [5, 64],
+ [5, 64],
+ [5, 64],
+ [5, 64],
+ [5, 64],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ [4, 7],
+ ],
+ c = [
+ [-1, -1],
+ [-1, -1],
+ [12, -2],
+ [12, -2],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [11, 1792],
+ [11, 1792],
+ [11, 1792],
+ [11, 1792],
+ [12, 1984],
+ [12, 1984],
+ [12, 2048],
+ [12, 2048],
+ [12, 2112],
+ [12, 2112],
+ [12, 2176],
+ [12, 2176],
+ [12, 2240],
+ [12, 2240],
+ [12, 2304],
+ [12, 2304],
+ [11, 1856],
+ [11, 1856],
+ [11, 1856],
+ [11, 1856],
+ [11, 1920],
+ [11, 1920],
+ [11, 1920],
+ [11, 1920],
+ [12, 2368],
+ [12, 2368],
+ [12, 2432],
+ [12, 2432],
+ [12, 2496],
+ [12, 2496],
+ [12, 2560],
+ [12, 2560],
+ [10, 18],
+ [10, 18],
+ [10, 18],
+ [10, 18],
+ [10, 18],
+ [10, 18],
+ [10, 18],
+ [10, 18],
+ [12, 52],
+ [12, 52],
+ [13, 640],
+ [13, 704],
+ [13, 768],
+ [13, 832],
+ [12, 55],
+ [12, 55],
+ [12, 56],
+ [12, 56],
+ [13, 1280],
+ [13, 1344],
+ [13, 1408],
+ [13, 1472],
+ [12, 59],
+ [12, 59],
+ [12, 60],
+ [12, 60],
+ [13, 1536],
+ [13, 1600],
+ [11, 24],
+ [11, 24],
+ [11, 24],
+ [11, 24],
+ [11, 25],
+ [11, 25],
+ [11, 25],
+ [11, 25],
+ [13, 1664],
+ [13, 1728],
+ [12, 320],
+ [12, 320],
+ [12, 384],
+ [12, 384],
+ [12, 448],
+ [12, 448],
+ [13, 512],
+ [13, 576],
+ [12, 53],
+ [12, 53],
+ [12, 54],
+ [12, 54],
+ [13, 896],
+ [13, 960],
+ [13, 1024],
+ [13, 1088],
+ [13, 1152],
+ [13, 1216],
+ [10, 64],
+ [10, 64],
+ [10, 64],
+ [10, 64],
+ [10, 64],
+ [10, 64],
+ [10, 64],
+ [10, 64],
+ ],
+ l = [
+ [8, 13],
+ [8, 13],
+ [8, 13],
+ [8, 13],
+ [8, 13],
+ [8, 13],
+ [8, 13],
+ [8, 13],
+ [8, 13],
+ [8, 13],
+ [8, 13],
+ [8, 13],
+ [8, 13],
+ [8, 13],
+ [8, 13],
+ [8, 13],
+ [11, 23],
+ [11, 23],
+ [12, 50],
+ [12, 51],
+ [12, 44],
+ [12, 45],
+ [12, 46],
+ [12, 47],
+ [12, 57],
+ [12, 58],
+ [12, 61],
+ [12, 256],
+ [10, 16],
+ [10, 16],
+ [10, 16],
+ [10, 16],
+ [10, 17],
+ [10, 17],
+ [10, 17],
+ [10, 17],
+ [12, 48],
+ [12, 49],
+ [12, 62],
+ [12, 63],
+ [12, 30],
+ [12, 31],
+ [12, 32],
+ [12, 33],
+ [12, 40],
+ [12, 41],
+ [11, 22],
+ [11, 22],
+ [8, 14],
+ [8, 14],
+ [8, 14],
+ [8, 14],
+ [8, 14],
+ [8, 14],
+ [8, 14],
+ [8, 14],
+ [8, 14],
+ [8, 14],
+ [8, 14],
+ [8, 14],
+ [8, 14],
+ [8, 14],
+ [8, 14],
+ [8, 14],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 10],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [7, 11],
+ [9, 15],
+ [9, 15],
+ [9, 15],
+ [9, 15],
+ [9, 15],
+ [9, 15],
+ [9, 15],
+ [9, 15],
+ [12, 128],
+ [12, 192],
+ [12, 26],
+ [12, 27],
+ [12, 28],
+ [12, 29],
+ [11, 19],
+ [11, 19],
+ [11, 20],
+ [11, 20],
+ [12, 34],
+ [12, 35],
+ [12, 36],
+ [12, 37],
+ [12, 38],
+ [12, 39],
+ [11, 21],
+ [11, 21],
+ [12, 42],
+ [12, 43],
+ [10, 0],
+ [10, 0],
+ [10, 0],
+ [10, 0],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ [7, 12],
+ ],
+ h = [
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [-1, -1],
+ [6, 9],
+ [6, 8],
+ [5, 7],
+ [5, 7],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 6],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [4, 5],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 1],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [3, 4],
+ [2, 3],
+ [2, 3],
+ [2, 3],
+ [2, 3],
+ [2, 3],
+ [2, 3],
+ [2, 3],
+ [2, 3],
+ [2, 3],
+ [2, 3],
+ [2, 3],
+ [2, 3],
+ [2, 3],
+ [2, 3],
+ [2, 3],
+ [2, 3],
+ [2, 2],
+ [2, 2],
+ [2, 2],
+ [2, 2],
+ [2, 2],
+ [2, 2],
+ [2, 2],
+ [2, 2],
+ [2, 2],
+ [2, 2],
+ [2, 2],
+ [2, 2],
+ [2, 2],
+ [2, 2],
+ [2, 2],
+ [2, 2],
+ ];
+ t.CCITTFaxDecoder = class CCITTFaxDecoder {
+ constructor(e, t = {}) {
+ if (!e || "function" != typeof e.next)
+ throw new Error(
+ 'CCITTFaxDecoder - invalid "source" parameter.',
+ );
+ this.source = e;
+ this.eof = !1;
+ this.encoding = t.K || 0;
+ this.eoline = t.EndOfLine || !1;
+ this.byteAlign = t.EncodedByteAlign || !1;
+ this.columns = t.Columns || 1728;
+ this.rows = t.Rows || 0;
+ this.eoblock = t.EndOfBlock ?? !0;
+ this.black = t.BlackIs1 || !1;
+ this.codingLine = new Uint32Array(this.columns + 1);
+ this.refLine = new Uint32Array(this.columns + 2);
+ this.codingLine[0] = this.columns;
+ this.codingPos = 0;
+ this.row = 0;
+ this.nextLine2D = this.encoding < 0;
+ this.inputBits = 0;
+ this.inputBuf = 0;
+ this.outputBits = 0;
+ this.rowsDone = !1;
+ let a;
+ for (; 0 === (a = this._lookBits(12)); ) this._eatBits(1);
+ 1 === a && this._eatBits(12);
+ if (this.encoding > 0) {
+ this.nextLine2D = !this._lookBits(1);
+ this._eatBits(1);
+ }
+ }
+ readNextChar() {
+ if (this.eof) return -1;
+ const e = this.refLine,
+ t = this.codingLine,
+ a = this.columns;
+ let i, s, o, c, l;
+ if (0 === this.outputBits) {
+ this.rowsDone && (this.eof = !0);
+ if (this.eof) return -1;
+ this.err = !1;
+ let o, l, h;
+ if (this.nextLine2D) {
+ for (c = 0; t[c] < a; ++c) e[c] = t[c];
+ e[c++] = a;
+ e[c] = a;
+ t[0] = 0;
+ this.codingPos = 0;
+ i = 0;
+ s = 0;
+ for (; t[this.codingPos] < a; ) {
+ o = this._getTwoDimCode();
+ switch (o) {
+ case 0:
+ this._addPixels(e[i + 1], s);
+ e[i + 1] < a && (i += 2);
+ break;
+ case 1:
+ o = l = 0;
+ if (s) {
+ do {
+ o += h = this._getBlackCode();
+ } while (h >= 64);
+ do {
+ l += h = this._getWhiteCode();
+ } while (h >= 64);
+ } else {
+ do {
+ o += h = this._getWhiteCode();
+ } while (h >= 64);
+ do {
+ l += h = this._getBlackCode();
+ } while (h >= 64);
+ }
+ this._addPixels(t[this.codingPos] + o, s);
+ t[this.codingPos] < a &&
+ this._addPixels(t[this.codingPos] + l, 1 ^ s);
+ for (; e[i] <= t[this.codingPos] && e[i] < a; ) i += 2;
+ break;
+ case 7:
+ this._addPixels(e[i] + 3, s);
+ s ^= 1;
+ if (t[this.codingPos] < a) {
+ ++i;
+ for (; e[i] <= t[this.codingPos] && e[i] < a; )
+ i += 2;
+ }
+ break;
+ case 5:
+ this._addPixels(e[i] + 2, s);
+ s ^= 1;
+ if (t[this.codingPos] < a) {
+ ++i;
+ for (; e[i] <= t[this.codingPos] && e[i] < a; )
+ i += 2;
+ }
+ break;
+ case 3:
+ this._addPixels(e[i] + 1, s);
+ s ^= 1;
+ if (t[this.codingPos] < a) {
+ ++i;
+ for (; e[i] <= t[this.codingPos] && e[i] < a; )
+ i += 2;
+ }
+ break;
+ case 2:
+ this._addPixels(e[i], s);
+ s ^= 1;
+ if (t[this.codingPos] < a) {
+ ++i;
+ for (; e[i] <= t[this.codingPos] && e[i] < a; )
+ i += 2;
+ }
+ break;
+ case 8:
+ this._addPixelsNeg(e[i] - 3, s);
+ s ^= 1;
+ if (t[this.codingPos] < a) {
+ i > 0 ? --i : ++i;
+ for (; e[i] <= t[this.codingPos] && e[i] < a; )
+ i += 2;
+ }
+ break;
+ case 6:
+ this._addPixelsNeg(e[i] - 2, s);
+ s ^= 1;
+ if (t[this.codingPos] < a) {
+ i > 0 ? --i : ++i;
+ for (; e[i] <= t[this.codingPos] && e[i] < a; )
+ i += 2;
+ }
+ break;
+ case 4:
+ this._addPixelsNeg(e[i] - 1, s);
+ s ^= 1;
+ if (t[this.codingPos] < a) {
+ i > 0 ? --i : ++i;
+ for (; e[i] <= t[this.codingPos] && e[i] < a; )
+ i += 2;
+ }
+ break;
+ case n:
+ this._addPixels(a, 0);
+ this.eof = !0;
+ break;
+ default:
+ (0, r.info)("bad 2d code");
+ this._addPixels(a, 0);
+ this.err = !0;
+ }
+ }
+ } else {
+ t[0] = 0;
+ this.codingPos = 0;
+ s = 0;
+ for (; t[this.codingPos] < a; ) {
+ o = 0;
+ if (s)
+ do {
+ o += h = this._getBlackCode();
+ } while (h >= 64);
+ else
+ do {
+ o += h = this._getWhiteCode();
+ } while (h >= 64);
+ this._addPixels(t[this.codingPos] + o, s);
+ s ^= 1;
+ }
+ }
+ let u = !1;
+ this.byteAlign && (this.inputBits &= -8);
+ if (this.eoblock || this.row !== this.rows - 1) {
+ o = this._lookBits(12);
+ if (this.eoline)
+ for (; o !== n && 1 !== o; ) {
+ this._eatBits(1);
+ o = this._lookBits(12);
+ }
+ else
+ for (; 0 === o; ) {
+ this._eatBits(1);
+ o = this._lookBits(12);
+ }
+ if (1 === o) {
+ this._eatBits(12);
+ u = !0;
+ } else o === n && (this.eof = !0);
+ } else this.rowsDone = !0;
+ if (!this.eof && this.encoding > 0 && !this.rowsDone) {
+ this.nextLine2D = !this._lookBits(1);
+ this._eatBits(1);
+ }
+ if (this.eoblock && u && this.byteAlign) {
+ o = this._lookBits(12);
+ if (1 === o) {
+ this._eatBits(12);
+ if (this.encoding > 0) {
+ this._lookBits(1);
+ this._eatBits(1);
+ }
+ if (this.encoding >= 0)
+ for (c = 0; c < 4; ++c) {
+ o = this._lookBits(12);
+ 1 !== o && (0, r.info)("bad rtc code: " + o);
+ this._eatBits(12);
+ if (this.encoding > 0) {
+ this._lookBits(1);
+ this._eatBits(1);
+ }
+ }
+ this.eof = !0;
+ }
+ } else if (this.err && this.eoline) {
+ for (;;) {
+ o = this._lookBits(13);
+ if (o === n) {
+ this.eof = !0;
+ return -1;
+ }
+ if (o >> 1 == 1) break;
+ this._eatBits(1);
+ }
+ this._eatBits(12);
+ if (this.encoding > 0) {
+ this._eatBits(1);
+ this.nextLine2D = !(1 & o);
+ }
+ }
+ this.outputBits =
+ t[0] > 0 ? t[(this.codingPos = 0)] : t[(this.codingPos = 1)];
+ this.row++;
+ }
+ if (this.outputBits >= 8) {
+ l = 1 & this.codingPos ? 0 : 255;
+ this.outputBits -= 8;
+ if (0 === this.outputBits && t[this.codingPos] < a) {
+ this.codingPos++;
+ this.outputBits = t[this.codingPos] - t[this.codingPos - 1];
+ }
+ } else {
+ o = 8;
+ l = 0;
+ do {
+ if ("number" != typeof this.outputBits)
+ throw new r.FormatError(
+ 'Invalid /CCITTFaxDecode data, "outputBits" must be a number.',
+ );
+ if (this.outputBits > o) {
+ l <<= o;
+ 1 & this.codingPos || (l |= 255 >> (8 - o));
+ this.outputBits -= o;
+ o = 0;
+ } else {
+ l <<= this.outputBits;
+ 1 & this.codingPos || (l |= 255 >> (8 - this.outputBits));
+ o -= this.outputBits;
+ this.outputBits = 0;
+ if (t[this.codingPos] < a) {
+ this.codingPos++;
+ this.outputBits =
+ t[this.codingPos] - t[this.codingPos - 1];
+ } else if (o > 0) {
+ l <<= o;
+ o = 0;
+ }
+ }
+ } while (o);
+ }
+ this.black && (l ^= 255);
+ return l;
+ }
+ _addPixels(e, t) {
+ const a = this.codingLine;
+ let n = this.codingPos;
+ if (e > a[n]) {
+ if (e > this.columns) {
+ (0, r.info)("row is wrong length");
+ this.err = !0;
+ e = this.columns;
+ }
+ (1 & n) ^ t && ++n;
+ a[n] = e;
+ }
+ this.codingPos = n;
+ }
+ _addPixelsNeg(e, t) {
+ const a = this.codingLine;
+ let n = this.codingPos;
+ if (e > a[n]) {
+ if (e > this.columns) {
+ (0, r.info)("row is wrong length");
+ this.err = !0;
+ e = this.columns;
+ }
+ (1 & n) ^ t && ++n;
+ a[n] = e;
+ } else if (e < a[n]) {
+ if (e < 0) {
+ (0, r.info)("invalid code");
+ this.err = !0;
+ e = 0;
+ }
+ for (; n > 0 && e < a[n - 1]; ) --n;
+ a[n] = e;
+ }
+ this.codingPos = n;
+ }
+ _findTableCode(e, t, a, r) {
+ const i = r || 0;
+ for (let r = e; r <= t; ++r) {
+ let e = this._lookBits(r);
+ if (e === n) return [!0, 1, !1];
+ r < t && (e <<= t - r);
+ if (!i || e >= i) {
+ const t = a[e - i];
+ if (t[0] === r) {
+ this._eatBits(r);
+ return [!0, t[1], !0];
+ }
+ }
+ }
+ return [!1, 0, !1];
+ }
+ _getTwoDimCode() {
+ let e,
+ t = 0;
+ if (this.eoblock) {
+ t = this._lookBits(7);
+ e = i[t];
+ if (e?.[0] > 0) {
+ this._eatBits(e[0]);
+ return e[1];
+ }
+ } else {
+ const e = this._findTableCode(1, 7, i);
+ if (e[0] && e[2]) return e[1];
+ }
+ (0, r.info)("Bad two dim code");
+ return n;
+ }
+ _getWhiteCode() {
+ let e,
+ t = 0;
+ if (this.eoblock) {
+ t = this._lookBits(12);
+ if (t === n) return 1;
+ e = t >> 5 == 0 ? s[t] : o[t >> 3];
+ if (e[0] > 0) {
+ this._eatBits(e[0]);
+ return e[1];
+ }
+ } else {
+ let e = this._findTableCode(1, 9, o);
+ if (e[0]) return e[1];
+ e = this._findTableCode(11, 12, s);
+ if (e[0]) return e[1];
+ }
+ (0, r.info)("bad white code");
+ this._eatBits(1);
+ return 1;
+ }
+ _getBlackCode() {
+ let e, t;
+ if (this.eoblock) {
+ e = this._lookBits(13);
+ if (e === n) return 1;
+ t =
+ e >> 7 == 0
+ ? c[e]
+ : e >> 9 == 0 && e >> 7 != 0
+ ? l[(e >> 1) - 64]
+ : h[e >> 7];
+ if (t[0] > 0) {
+ this._eatBits(t[0]);
+ return t[1];
+ }
+ } else {
+ let e = this._findTableCode(2, 6, h);
+ if (e[0]) return e[1];
+ e = this._findTableCode(7, 12, l, 64);
+ if (e[0]) return e[1];
+ e = this._findTableCode(10, 13, c);
+ if (e[0]) return e[1];
+ }
+ (0, r.info)("bad black code");
+ this._eatBits(1);
+ return 1;
+ }
+ _lookBits(e) {
+ let t;
+ for (; this.inputBits < e; ) {
+ if (-1 === (t = this.source.next()))
+ return 0 === this.inputBits
+ ? n
+ : (this.inputBuf << (e - this.inputBits)) &
+ (65535 >> (16 - e));
+ this.inputBuf = (this.inputBuf << 8) | t;
+ this.inputBits += 8;
+ }
+ return (
+ (this.inputBuf >> (this.inputBits - e)) & (65535 >> (16 - e))
+ );
+ }
+ _eatBits(e) {
+ (this.inputBits -= e) < 0 && (this.inputBits = 0);
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.FlateStream = void 0;
+ var r = a(18),
+ n = a(2);
+ const i = new Int32Array([
+ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15,
+ ]),
+ s = new Int32Array([
+ 3, 4, 5, 6, 7, 8, 9, 10, 65547, 65549, 65551, 65553, 131091,
+ 131095, 131099, 131103, 196643, 196651, 196659, 196667, 262211,
+ 262227, 262243, 262259, 327811, 327843, 327875, 327907, 258, 258,
+ 258,
+ ]),
+ o = new Int32Array([
+ 1, 2, 3, 4, 65541, 65543, 131081, 131085, 196625, 196633, 262177,
+ 262193, 327745, 327777, 393345, 393409, 459009, 459137, 524801,
+ 525057, 590849, 591361, 657409, 658433, 724993, 727041, 794625,
+ 798721, 868353, 876545,
+ ]),
+ c = [
+ new Int32Array([
+ 459008, 524368, 524304, 524568, 459024, 524400, 524336, 590016,
+ 459016, 524384, 524320, 589984, 524288, 524416, 524352, 590048,
+ 459012, 524376, 524312, 589968, 459028, 524408, 524344, 590032,
+ 459020, 524392, 524328, 59e4, 524296, 524424, 524360, 590064,
+ 459010, 524372, 524308, 524572, 459026, 524404, 524340, 590024,
+ 459018, 524388, 524324, 589992, 524292, 524420, 524356, 590056,
+ 459014, 524380, 524316, 589976, 459030, 524412, 524348, 590040,
+ 459022, 524396, 524332, 590008, 524300, 524428, 524364, 590072,
+ 459009, 524370, 524306, 524570, 459025, 524402, 524338, 590020,
+ 459017, 524386, 524322, 589988, 524290, 524418, 524354, 590052,
+ 459013, 524378, 524314, 589972, 459029, 524410, 524346, 590036,
+ 459021, 524394, 524330, 590004, 524298, 524426, 524362, 590068,
+ 459011, 524374, 524310, 524574, 459027, 524406, 524342, 590028,
+ 459019, 524390, 524326, 589996, 524294, 524422, 524358, 590060,
+ 459015, 524382, 524318, 589980, 459031, 524414, 524350, 590044,
+ 459023, 524398, 524334, 590012, 524302, 524430, 524366, 590076,
+ 459008, 524369, 524305, 524569, 459024, 524401, 524337, 590018,
+ 459016, 524385, 524321, 589986, 524289, 524417, 524353, 590050,
+ 459012, 524377, 524313, 589970, 459028, 524409, 524345, 590034,
+ 459020, 524393, 524329, 590002, 524297, 524425, 524361, 590066,
+ 459010, 524373, 524309, 524573, 459026, 524405, 524341, 590026,
+ 459018, 524389, 524325, 589994, 524293, 524421, 524357, 590058,
+ 459014, 524381, 524317, 589978, 459030, 524413, 524349, 590042,
+ 459022, 524397, 524333, 590010, 524301, 524429, 524365, 590074,
+ 459009, 524371, 524307, 524571, 459025, 524403, 524339, 590022,
+ 459017, 524387, 524323, 589990, 524291, 524419, 524355, 590054,
+ 459013, 524379, 524315, 589974, 459029, 524411, 524347, 590038,
+ 459021, 524395, 524331, 590006, 524299, 524427, 524363, 590070,
+ 459011, 524375, 524311, 524575, 459027, 524407, 524343, 590030,
+ 459019, 524391, 524327, 589998, 524295, 524423, 524359, 590062,
+ 459015, 524383, 524319, 589982, 459031, 524415, 524351, 590046,
+ 459023, 524399, 524335, 590014, 524303, 524431, 524367, 590078,
+ 459008, 524368, 524304, 524568, 459024, 524400, 524336, 590017,
+ 459016, 524384, 524320, 589985, 524288, 524416, 524352, 590049,
+ 459012, 524376, 524312, 589969, 459028, 524408, 524344, 590033,
+ 459020, 524392, 524328, 590001, 524296, 524424, 524360, 590065,
+ 459010, 524372, 524308, 524572, 459026, 524404, 524340, 590025,
+ 459018, 524388, 524324, 589993, 524292, 524420, 524356, 590057,
+ 459014, 524380, 524316, 589977, 459030, 524412, 524348, 590041,
+ 459022, 524396, 524332, 590009, 524300, 524428, 524364, 590073,
+ 459009, 524370, 524306, 524570, 459025, 524402, 524338, 590021,
+ 459017, 524386, 524322, 589989, 524290, 524418, 524354, 590053,
+ 459013, 524378, 524314, 589973, 459029, 524410, 524346, 590037,
+ 459021, 524394, 524330, 590005, 524298, 524426, 524362, 590069,
+ 459011, 524374, 524310, 524574, 459027, 524406, 524342, 590029,
+ 459019, 524390, 524326, 589997, 524294, 524422, 524358, 590061,
+ 459015, 524382, 524318, 589981, 459031, 524414, 524350, 590045,
+ 459023, 524398, 524334, 590013, 524302, 524430, 524366, 590077,
+ 459008, 524369, 524305, 524569, 459024, 524401, 524337, 590019,
+ 459016, 524385, 524321, 589987, 524289, 524417, 524353, 590051,
+ 459012, 524377, 524313, 589971, 459028, 524409, 524345, 590035,
+ 459020, 524393, 524329, 590003, 524297, 524425, 524361, 590067,
+ 459010, 524373, 524309, 524573, 459026, 524405, 524341, 590027,
+ 459018, 524389, 524325, 589995, 524293, 524421, 524357, 590059,
+ 459014, 524381, 524317, 589979, 459030, 524413, 524349, 590043,
+ 459022, 524397, 524333, 590011, 524301, 524429, 524365, 590075,
+ 459009, 524371, 524307, 524571, 459025, 524403, 524339, 590023,
+ 459017, 524387, 524323, 589991, 524291, 524419, 524355, 590055,
+ 459013, 524379, 524315, 589975, 459029, 524411, 524347, 590039,
+ 459021, 524395, 524331, 590007, 524299, 524427, 524363, 590071,
+ 459011, 524375, 524311, 524575, 459027, 524407, 524343, 590031,
+ 459019, 524391, 524327, 589999, 524295, 524423, 524359, 590063,
+ 459015, 524383, 524319, 589983, 459031, 524415, 524351, 590047,
+ 459023, 524399, 524335, 590015, 524303, 524431, 524367, 590079,
+ ]),
+ 9,
+ ],
+ l = [
+ new Int32Array([
+ 327680, 327696, 327688, 327704, 327684, 327700, 327692, 327708,
+ 327682, 327698, 327690, 327706, 327686, 327702, 327694, 0,
+ 327681, 327697, 327689, 327705, 327685, 327701, 327693, 327709,
+ 327683, 327699, 327691, 327707, 327687, 327703, 327695, 0,
+ ]),
+ 5,
+ ];
+ class FlateStream extends r.DecodeStream {
+ constructor(e, t) {
+ super(t);
+ this.str = e;
+ this.dict = e.dict;
+ const a = e.getByte(),
+ r = e.getByte();
+ if (-1 === a || -1 === r)
+ throw new n.FormatError(
+ `Invalid header in flate stream: ${a}, ${r}`,
+ );
+ if (8 != (15 & a))
+ throw new n.FormatError(
+ `Unknown compression method in flate stream: ${a}, ${r}`,
+ );
+ if (((a << 8) + r) % 31 != 0)
+ throw new n.FormatError(
+ `Bad FCHECK in flate stream: ${a}, ${r}`,
+ );
+ if (32 & r)
+ throw new n.FormatError(
+ `FDICT bit set in flate stream: ${a}, ${r}`,
+ );
+ this.codeSize = 0;
+ this.codeBuf = 0;
+ }
+ getBits(e) {
+ const t = this.str;
+ let a,
+ r = this.codeSize,
+ i = this.codeBuf;
+ for (; r < e; ) {
+ if (-1 === (a = t.getByte()))
+ throw new n.FormatError("Bad encoding in flate stream");
+ i |= a << r;
+ r += 8;
+ }
+ a = i & ((1 << e) - 1);
+ this.codeBuf = i >> e;
+ this.codeSize = r -= e;
+ return a;
+ }
+ getCode(e) {
+ const t = this.str,
+ a = e[0],
+ r = e[1];
+ let i,
+ s = this.codeSize,
+ o = this.codeBuf;
+ for (; s < r && -1 !== (i = t.getByte()); ) {
+ o |= i << s;
+ s += 8;
+ }
+ const c = a[o & ((1 << r) - 1)],
+ l = c >> 16,
+ h = 65535 & c;
+ if (l < 1 || s < l)
+ throw new n.FormatError("Bad encoding in flate stream");
+ this.codeBuf = o >> l;
+ this.codeSize = s - l;
+ return h;
+ }
+ generateHuffmanTable(e) {
+ const t = e.length;
+ let a,
+ r = 0;
+ for (a = 0; a < t; ++a) e[a] > r && (r = e[a]);
+ const n = 1 << r,
+ i = new Int32Array(n);
+ for (let s = 1, o = 0, c = 2; s <= r; ++s, o <<= 1, c <<= 1)
+ for (let r = 0; r < t; ++r)
+ if (e[r] === s) {
+ let e = 0,
+ t = o;
+ for (a = 0; a < s; ++a) {
+ e = (e << 1) | (1 & t);
+ t >>= 1;
+ }
+ for (a = e; a < n; a += c) i[a] = (s << 16) | r;
+ ++o;
+ }
+ return [i, r];
+ }
+ readBlock() {
+ let e, t;
+ const a = this.str;
+ let r,
+ h,
+ u = this.getBits(3);
+ 1 & u && (this.eof = !0);
+ u >>= 1;
+ if (0 === u) {
+ let t;
+ if (-1 === (t = a.getByte()))
+ throw new n.FormatError("Bad block header in flate stream");
+ let r = t;
+ if (-1 === (t = a.getByte()))
+ throw new n.FormatError("Bad block header in flate stream");
+ r |= t << 8;
+ if (-1 === (t = a.getByte()))
+ throw new n.FormatError("Bad block header in flate stream");
+ let i = t;
+ if (-1 === (t = a.getByte()))
+ throw new n.FormatError("Bad block header in flate stream");
+ i |= t << 8;
+ if (i !== (65535 & ~r) && (0 !== r || 0 !== i))
+ throw new n.FormatError(
+ "Bad uncompressed block length in flate stream",
+ );
+ this.codeBuf = 0;
+ this.codeSize = 0;
+ const s = this.bufferLength,
+ o = s + r;
+ e = this.ensureBuffer(o);
+ this.bufferLength = o;
+ if (0 === r) -1 === a.peekByte() && (this.eof = !0);
+ else {
+ const t = a.getBytes(r);
+ e.set(t, s);
+ t.length < r && (this.eof = !0);
+ }
+ return;
+ }
+ if (1 === u) {
+ r = c;
+ h = l;
+ } else {
+ if (2 !== u)
+ throw new n.FormatError("Unknown block type in flate stream");
+ {
+ const e = this.getBits(5) + 257,
+ a = this.getBits(5) + 1,
+ n = this.getBits(4) + 4,
+ s = new Uint8Array(i.length);
+ let o;
+ for (o = 0; o < n; ++o) s[i[o]] = this.getBits(3);
+ const c = this.generateHuffmanTable(s);
+ t = 0;
+ o = 0;
+ const l = e + a,
+ u = new Uint8Array(l);
+ let d, f, g;
+ for (; o < l; ) {
+ const e = this.getCode(c);
+ if (16 === e) {
+ d = 2;
+ f = 3;
+ g = t;
+ } else if (17 === e) {
+ d = 3;
+ f = 3;
+ g = t = 0;
+ } else {
+ if (18 !== e) {
+ u[o++] = t = e;
+ continue;
+ }
+ d = 7;
+ f = 11;
+ g = t = 0;
+ }
+ let a = this.getBits(d) + f;
+ for (; a-- > 0; ) u[o++] = g;
+ }
+ r = this.generateHuffmanTable(u.subarray(0, e));
+ h = this.generateHuffmanTable(u.subarray(e, l));
+ }
+ }
+ e = this.buffer;
+ let d = e ? e.length : 0,
+ f = this.bufferLength;
+ for (;;) {
+ let a = this.getCode(r);
+ if (a < 256) {
+ if (f + 1 >= d) {
+ e = this.ensureBuffer(f + 1);
+ d = e.length;
+ }
+ e[f++] = a;
+ continue;
+ }
+ if (256 === a) {
+ this.bufferLength = f;
+ return;
+ }
+ a -= 257;
+ a = s[a];
+ let n = a >> 16;
+ n > 0 && (n = this.getBits(n));
+ t = (65535 & a) + n;
+ a = this.getCode(h);
+ a = o[a];
+ n = a >> 16;
+ n > 0 && (n = this.getBits(n));
+ const i = (65535 & a) + n;
+ if (f + t >= d) {
+ e = this.ensureBuffer(f + t);
+ d = e.length;
+ }
+ for (let a = 0; a < t; ++a, ++f) e[f] = e[f - i];
+ }
+ }
+ }
+ t.FlateStream = FlateStream;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.Jbig2Stream = void 0;
+ var r = a(5),
+ n = a(18),
+ i = a(4),
+ s = a(24),
+ o = a(2);
+ class Jbig2Stream extends n.DecodeStream {
+ constructor(e, t, a) {
+ super(t);
+ this.stream = e;
+ this.dict = e.dict;
+ this.maybeLength = t;
+ this.params = a;
+ }
+ get bytes() {
+ return (0, o.shadow)(
+ this,
+ "bytes",
+ this.stream.getBytes(this.maybeLength),
+ );
+ }
+ ensureBuffer(e) {}
+ readBlock() {
+ if (this.eof) return;
+ const e = new s.Jbig2Image(),
+ t = [];
+ if (this.params instanceof i.Dict) {
+ const e = this.params.get("JBIG2Globals");
+ if (e instanceof r.BaseStream) {
+ const a = e.getBytes();
+ t.push({ data: a, start: 0, end: a.length });
+ }
+ }
+ t.push({ data: this.bytes, start: 0, end: this.bytes.length });
+ const a = e.parseChunks(t),
+ n = a.length;
+ for (let e = 0; e < n; e++) a[e] ^= 255;
+ this.buffer = a;
+ this.bufferLength = n;
+ this.eof = !0;
+ }
+ }
+ t.Jbig2Stream = Jbig2Stream;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.Jbig2Image = void 0;
+ var r = a(2),
+ n = a(3),
+ i = a(25),
+ s = a(21);
+ class Jbig2Error extends r.BaseException {
+ constructor(e) {
+ super(`JBIG2 error: ${e}`, "Jbig2Error");
+ }
+ }
+ class ContextCache {
+ getContexts(e) {
+ return e in this ? this[e] : (this[e] = new Int8Array(65536));
+ }
+ }
+ class DecodingContext {
+ constructor(e, t, a) {
+ this.data = e;
+ this.start = t;
+ this.end = a;
+ }
+ get decoder() {
+ const e = new i.ArithmeticDecoder(
+ this.data,
+ this.start,
+ this.end,
+ );
+ return (0, r.shadow)(this, "decoder", e);
+ }
+ get contextCache() {
+ const e = new ContextCache();
+ return (0, r.shadow)(this, "contextCache", e);
+ }
+ }
+ const o = 2 ** 31 - 1,
+ c = -(2 ** 31);
+ function decodeInteger(e, t, a) {
+ const r = e.getContexts(t);
+ let n = 1;
+ function readBits(e) {
+ let t = 0;
+ for (let i = 0; i < e; i++) {
+ const e = a.readBit(r, n);
+ n = n < 256 ? (n << 1) | e : (511 & ((n << 1) | e)) | 256;
+ t = (t << 1) | e;
+ }
+ return t >>> 0;
+ }
+ const i = readBits(1),
+ s = readBits(1)
+ ? readBits(1)
+ ? readBits(1)
+ ? readBits(1)
+ ? readBits(1)
+ ? readBits(32) + 4436
+ : readBits(12) + 340
+ : readBits(8) + 84
+ : readBits(6) + 20
+ : readBits(4) + 4
+ : readBits(2);
+ let l;
+ 0 === i ? (l = s) : s > 0 && (l = -s);
+ return l >= c && l <= o ? l : null;
+ }
+ function decodeIAID(e, t, a) {
+ const r = e.getContexts("IAID");
+ let n = 1;
+ for (let e = 0; e < a; e++) {
+ n = (n << 1) | t.readBit(r, n);
+ }
+ return a < 31 ? n & ((1 << a) - 1) : 2147483647 & n;
+ }
+ const l = [
+ "SymbolDictionary",
+ null,
+ null,
+ null,
+ "IntermediateTextRegion",
+ null,
+ "ImmediateTextRegion",
+ "ImmediateLosslessTextRegion",
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ "PatternDictionary",
+ null,
+ null,
+ null,
+ "IntermediateHalftoneRegion",
+ null,
+ "ImmediateHalftoneRegion",
+ "ImmediateLosslessHalftoneRegion",
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ "IntermediateGenericRegion",
+ null,
+ "ImmediateGenericRegion",
+ "ImmediateLosslessGenericRegion",
+ "IntermediateGenericRefinementRegion",
+ null,
+ "ImmediateGenericRefinementRegion",
+ "ImmediateLosslessGenericRefinementRegion",
+ null,
+ null,
+ null,
+ null,
+ "PageInformation",
+ "EndOfPage",
+ "EndOfStripe",
+ "EndOfFile",
+ "Profiles",
+ "Tables",
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ "Extension",
+ ],
+ h = [
+ [
+ { x: -1, y: -2 },
+ { x: 0, y: -2 },
+ { x: 1, y: -2 },
+ { x: -2, y: -1 },
+ { x: -1, y: -1 },
+ { x: 0, y: -1 },
+ { x: 1, y: -1 },
+ { x: 2, y: -1 },
+ { x: -4, y: 0 },
+ { x: -3, y: 0 },
+ { x: -2, y: 0 },
+ { x: -1, y: 0 },
+ ],
+ [
+ { x: -1, y: -2 },
+ { x: 0, y: -2 },
+ { x: 1, y: -2 },
+ { x: 2, y: -2 },
+ { x: -2, y: -1 },
+ { x: -1, y: -1 },
+ { x: 0, y: -1 },
+ { x: 1, y: -1 },
+ { x: 2, y: -1 },
+ { x: -3, y: 0 },
+ { x: -2, y: 0 },
+ { x: -1, y: 0 },
+ ],
+ [
+ { x: -1, y: -2 },
+ { x: 0, y: -2 },
+ { x: 1, y: -2 },
+ { x: -2, y: -1 },
+ { x: -1, y: -1 },
+ { x: 0, y: -1 },
+ { x: 1, y: -1 },
+ { x: -2, y: 0 },
+ { x: -1, y: 0 },
+ ],
+ [
+ { x: -3, y: -1 },
+ { x: -2, y: -1 },
+ { x: -1, y: -1 },
+ { x: 0, y: -1 },
+ { x: 1, y: -1 },
+ { x: -4, y: 0 },
+ { x: -3, y: 0 },
+ { x: -2, y: 0 },
+ { x: -1, y: 0 },
+ ],
+ ],
+ u = [
+ {
+ coding: [
+ { x: 0, y: -1 },
+ { x: 1, y: -1 },
+ { x: -1, y: 0 },
+ ],
+ reference: [
+ { x: 0, y: -1 },
+ { x: 1, y: -1 },
+ { x: -1, y: 0 },
+ { x: 0, y: 0 },
+ { x: 1, y: 0 },
+ { x: -1, y: 1 },
+ { x: 0, y: 1 },
+ { x: 1, y: 1 },
+ ],
+ },
+ {
+ coding: [
+ { x: -1, y: -1 },
+ { x: 0, y: -1 },
+ { x: 1, y: -1 },
+ { x: -1, y: 0 },
+ ],
+ reference: [
+ { x: 0, y: -1 },
+ { x: -1, y: 0 },
+ { x: 0, y: 0 },
+ { x: 1, y: 0 },
+ { x: 0, y: 1 },
+ { x: 1, y: 1 },
+ ],
+ },
+ ],
+ d = [39717, 1941, 229, 405],
+ f = [32, 8];
+ function decodeBitmap(e, t, a, r, n, i, s, o) {
+ if (e) {
+ return decodeMMRBitmap(
+ new Reader(o.data, o.start, o.end),
+ t,
+ a,
+ !1,
+ );
+ }
+ if (
+ 0 === r &&
+ !i &&
+ !n &&
+ 4 === s.length &&
+ 3 === s[0].x &&
+ -1 === s[0].y &&
+ -3 === s[1].x &&
+ -1 === s[1].y &&
+ 2 === s[2].x &&
+ -2 === s[2].y &&
+ -2 === s[3].x &&
+ -2 === s[3].y
+ )
+ return (function decodeBitmapTemplate0(e, t, a) {
+ const r = a.decoder,
+ n = a.contextCache.getContexts("GB"),
+ i = [];
+ let s, o, c, l, h, u, d;
+ for (o = 0; o < t; o++) {
+ h = i[o] = new Uint8Array(e);
+ u = o < 1 ? h : i[o - 1];
+ d = o < 2 ? h : i[o - 2];
+ s =
+ (d[0] << 13) |
+ (d[1] << 12) |
+ (d[2] << 11) |
+ (u[0] << 7) |
+ (u[1] << 6) |
+ (u[2] << 5) |
+ (u[3] << 4);
+ for (c = 0; c < e; c++) {
+ h[c] = l = r.readBit(n, s);
+ s =
+ ((31735 & s) << 1) |
+ (c + 3 < e ? d[c + 3] << 11 : 0) |
+ (c + 4 < e ? u[c + 4] << 4 : 0) |
+ l;
+ }
+ }
+ return i;
+ })(t, a, o);
+ const c = !!i,
+ l = h[r].concat(s);
+ l.sort(function (e, t) {
+ return e.y - t.y || e.x - t.x;
+ });
+ const u = l.length,
+ f = new Int8Array(u),
+ g = new Int8Array(u),
+ p = [];
+ let m,
+ b,
+ y = 0,
+ w = 0,
+ S = 0,
+ x = 0;
+ for (b = 0; b < u; b++) {
+ f[b] = l[b].x;
+ g[b] = l[b].y;
+ w = Math.min(w, l[b].x);
+ S = Math.max(S, l[b].x);
+ x = Math.min(x, l[b].y);
+ b < u - 1 && l[b].y === l[b + 1].y && l[b].x === l[b + 1].x - 1
+ ? (y |= 1 << (u - 1 - b))
+ : p.push(b);
+ }
+ const C = p.length,
+ k = new Int8Array(C),
+ v = new Int8Array(C),
+ F = new Uint16Array(C);
+ for (m = 0; m < C; m++) {
+ b = p[m];
+ k[m] = l[b].x;
+ v[m] = l[b].y;
+ F[m] = 1 << (u - 1 - b);
+ }
+ const O = -w,
+ T = -x,
+ M = t - S,
+ D = d[r];
+ let E = new Uint8Array(t);
+ const N = [],
+ R = o.decoder,
+ L = o.contextCache.getContexts("GB");
+ let $,
+ _,
+ j,
+ U,
+ X,
+ H = 0,
+ q = 0;
+ for (let e = 0; e < a; e++) {
+ if (n) {
+ H ^= R.readBit(L, D);
+ if (H) {
+ N.push(E);
+ continue;
+ }
+ }
+ E = new Uint8Array(E);
+ N.push(E);
+ for ($ = 0; $ < t; $++) {
+ if (c && i[e][$]) {
+ E[$] = 0;
+ continue;
+ }
+ if ($ >= O && $ < M && e >= T) {
+ q = (q << 1) & y;
+ for (b = 0; b < C; b++) {
+ _ = e + v[b];
+ j = $ + k[b];
+ U = N[_][j];
+ if (U) {
+ U = F[b];
+ q |= U;
+ }
+ }
+ } else {
+ q = 0;
+ X = u - 1;
+ for (b = 0; b < u; b++, X--) {
+ j = $ + f[b];
+ if (j >= 0 && j < t) {
+ _ = e + g[b];
+ if (_ >= 0) {
+ U = N[_][j];
+ U && (q |= U << X);
+ }
+ }
+ }
+ }
+ const a = R.readBit(L, q);
+ E[$] = a;
+ }
+ }
+ return N;
+ }
+ function decodeRefinement(e, t, a, r, n, i, s, o, c) {
+ let l = u[a].coding;
+ 0 === a && (l = l.concat([o[0]]));
+ const h = l.length,
+ d = new Int32Array(h),
+ g = new Int32Array(h);
+ let p;
+ for (p = 0; p < h; p++) {
+ d[p] = l[p].x;
+ g[p] = l[p].y;
+ }
+ let m = u[a].reference;
+ 0 === a && (m = m.concat([o[1]]));
+ const b = m.length,
+ y = new Int32Array(b),
+ w = new Int32Array(b);
+ for (p = 0; p < b; p++) {
+ y[p] = m[p].x;
+ w[p] = m[p].y;
+ }
+ const S = r[0].length,
+ x = r.length,
+ C = f[a],
+ k = [],
+ v = c.decoder,
+ F = c.contextCache.getContexts("GR");
+ let O = 0;
+ for (let a = 0; a < t; a++) {
+ if (s) {
+ O ^= v.readBit(F, C);
+ if (O) throw new Jbig2Error("prediction is not supported");
+ }
+ const t = new Uint8Array(e);
+ k.push(t);
+ for (let s = 0; s < e; s++) {
+ let o,
+ c,
+ l = 0;
+ for (p = 0; p < h; p++) {
+ o = a + g[p];
+ c = s + d[p];
+ o < 0 || c < 0 || c >= e
+ ? (l <<= 1)
+ : (l = (l << 1) | k[o][c]);
+ }
+ for (p = 0; p < b; p++) {
+ o = a + w[p] - i;
+ c = s + y[p] - n;
+ o < 0 || o >= x || c < 0 || c >= S
+ ? (l <<= 1)
+ : (l = (l << 1) | r[o][c]);
+ }
+ const u = v.readBit(F, l);
+ t[s] = u;
+ }
+ }
+ return k;
+ }
+ function decodeTextRegion(
+ e,
+ t,
+ a,
+ r,
+ n,
+ i,
+ s,
+ o,
+ c,
+ l,
+ h,
+ u,
+ d,
+ f,
+ g,
+ p,
+ m,
+ b,
+ y,
+ ) {
+ if (e && t)
+ throw new Jbig2Error("refinement with Huffman is not supported");
+ const w = [];
+ let S, x;
+ for (S = 0; S < r; S++) {
+ x = new Uint8Array(a);
+ if (n) for (let e = 0; e < a; e++) x[e] = n;
+ w.push(x);
+ }
+ const C = m.decoder,
+ k = m.contextCache;
+ let v = e ? -f.tableDeltaT.decode(y) : -decodeInteger(k, "IADT", C),
+ F = 0;
+ S = 0;
+ for (; S < i; ) {
+ v += e ? f.tableDeltaT.decode(y) : decodeInteger(k, "IADT", C);
+ F += e ? f.tableFirstS.decode(y) : decodeInteger(k, "IAFS", C);
+ let r = F;
+ for (;;) {
+ let n = 0;
+ s > 1 && (n = e ? y.readBits(b) : decodeInteger(k, "IAIT", C));
+ const i = s * v + n,
+ F = e ? f.symbolIDTable.decode(y) : decodeIAID(k, C, c),
+ O = t && (e ? y.readBit() : decodeInteger(k, "IARI", C));
+ let T = o[F],
+ M = T[0].length,
+ D = T.length;
+ if (O) {
+ const e = decodeInteger(k, "IARDW", C),
+ t = decodeInteger(k, "IARDH", C);
+ M += e;
+ D += t;
+ T = decodeRefinement(
+ M,
+ D,
+ g,
+ T,
+ (e >> 1) + decodeInteger(k, "IARDX", C),
+ (t >> 1) + decodeInteger(k, "IARDY", C),
+ !1,
+ p,
+ m,
+ );
+ }
+ const E = i - (1 & u ? 0 : D - 1),
+ N = r - (2 & u ? M - 1 : 0);
+ let R, L, $;
+ if (l) {
+ for (R = 0; R < D; R++) {
+ x = w[N + R];
+ if (!x) continue;
+ $ = T[R];
+ const e = Math.min(a - E, M);
+ switch (d) {
+ case 0:
+ for (L = 0; L < e; L++) x[E + L] |= $[L];
+ break;
+ case 2:
+ for (L = 0; L < e; L++) x[E + L] ^= $[L];
+ break;
+ default:
+ throw new Jbig2Error(`operator ${d} is not supported`);
+ }
+ }
+ r += D - 1;
+ } else {
+ for (L = 0; L < D; L++) {
+ x = w[E + L];
+ if (x) {
+ $ = T[L];
+ switch (d) {
+ case 0:
+ for (R = 0; R < M; R++) x[N + R] |= $[R];
+ break;
+ case 2:
+ for (R = 0; R < M; R++) x[N + R] ^= $[R];
+ break;
+ default:
+ throw new Jbig2Error(
+ `operator ${d} is not supported`,
+ );
+ }
+ }
+ }
+ r += M - 1;
+ }
+ S++;
+ const _ = e
+ ? f.tableDeltaS.decode(y)
+ : decodeInteger(k, "IADS", C);
+ if (null === _) break;
+ r += _ + h;
+ }
+ }
+ return w;
+ }
+ function readSegmentHeader(e, t) {
+ const a = {};
+ a.number = (0, n.readUint32)(e, t);
+ const r = e[t + 4],
+ i = 63 & r;
+ if (!l[i]) throw new Jbig2Error("invalid segment type: " + i);
+ a.type = i;
+ a.typeName = l[i];
+ a.deferredNonRetain = !!(128 & r);
+ const s = !!(64 & r),
+ o = e[t + 5];
+ let c = (o >> 5) & 7;
+ const h = [31 & o];
+ let u = t + 6;
+ if (7 === o) {
+ c = 536870911 & (0, n.readUint32)(e, u - 1);
+ u += 3;
+ let t = (c + 7) >> 3;
+ h[0] = e[u++];
+ for (; --t > 0; ) h.push(e[u++]);
+ } else if (5 === o || 6 === o)
+ throw new Jbig2Error("invalid referred-to flags");
+ a.retainBits = h;
+ let d = 4;
+ a.number <= 256 ? (d = 1) : a.number <= 65536 && (d = 2);
+ const f = [];
+ let p, m;
+ for (p = 0; p < c; p++) {
+ let t;
+ t =
+ 1 === d
+ ? e[u]
+ : 2 === d
+ ? (0, n.readUint16)(e, u)
+ : (0, n.readUint32)(e, u);
+ f.push(t);
+ u += d;
+ }
+ a.referredTo = f;
+ if (s) {
+ a.pageAssociation = (0, n.readUint32)(e, u);
+ u += 4;
+ } else a.pageAssociation = e[u++];
+ a.length = (0, n.readUint32)(e, u);
+ u += 4;
+ if (4294967295 === a.length) {
+ if (38 !== i)
+ throw new Jbig2Error("invalid unknown segment length");
+ {
+ const t = readRegionSegmentInformation(e, u),
+ r = !!(1 & e[u + g]),
+ n = 6,
+ i = new Uint8Array(n);
+ if (!r) {
+ i[0] = 255;
+ i[1] = 172;
+ }
+ i[2] = (t.height >>> 24) & 255;
+ i[3] = (t.height >> 16) & 255;
+ i[4] = (t.height >> 8) & 255;
+ i[5] = 255 & t.height;
+ for (p = u, m = e.length; p < m; p++) {
+ let t = 0;
+ for (; t < n && i[t] === e[p + t]; ) t++;
+ if (t === n) {
+ a.length = p + n;
+ break;
+ }
+ }
+ if (4294967295 === a.length)
+ throw new Jbig2Error("segment end was not found");
+ }
+ }
+ a.headerEnd = u;
+ return a;
+ }
+ function readSegments(e, t, a, r) {
+ const n = [];
+ let i = a;
+ for (; i < r; ) {
+ const a = readSegmentHeader(t, i);
+ i = a.headerEnd;
+ const r = { header: a, data: t };
+ if (!e.randomAccess) {
+ r.start = i;
+ i += a.length;
+ r.end = i;
+ }
+ n.push(r);
+ if (51 === a.type) break;
+ }
+ if (e.randomAccess)
+ for (let e = 0, t = n.length; e < t; e++) {
+ n[e].start = i;
+ i += n[e].header.length;
+ n[e].end = i;
+ }
+ return n;
+ }
+ function readRegionSegmentInformation(e, t) {
+ return {
+ width: (0, n.readUint32)(e, t),
+ height: (0, n.readUint32)(e, t + 4),
+ x: (0, n.readUint32)(e, t + 8),
+ y: (0, n.readUint32)(e, t + 12),
+ combinationOperator: 7 & e[t + 16],
+ };
+ }
+ const g = 17;
+ function processSegment(e, t) {
+ const a = e.header,
+ r = e.data,
+ i = e.end;
+ let s,
+ o,
+ c,
+ l,
+ h = e.start;
+ switch (a.type) {
+ case 0:
+ const e = {},
+ t = (0, n.readUint16)(r, h);
+ e.huffman = !!(1 & t);
+ e.refinement = !!(2 & t);
+ e.huffmanDHSelector = (t >> 2) & 3;
+ e.huffmanDWSelector = (t >> 4) & 3;
+ e.bitmapSizeSelector = (t >> 6) & 1;
+ e.aggregationInstancesSelector = (t >> 7) & 1;
+ e.bitmapCodingContextUsed = !!(256 & t);
+ e.bitmapCodingContextRetained = !!(512 & t);
+ e.template = (t >> 10) & 3;
+ e.refinementTemplate = (t >> 12) & 1;
+ h += 2;
+ if (!e.huffman) {
+ l = 0 === e.template ? 4 : 1;
+ o = [];
+ for (c = 0; c < l; c++) {
+ o.push({
+ x: (0, n.readInt8)(r, h),
+ y: (0, n.readInt8)(r, h + 1),
+ });
+ h += 2;
+ }
+ e.at = o;
+ }
+ if (e.refinement && !e.refinementTemplate) {
+ o = [];
+ for (c = 0; c < 2; c++) {
+ o.push({
+ x: (0, n.readInt8)(r, h),
+ y: (0, n.readInt8)(r, h + 1),
+ });
+ h += 2;
+ }
+ e.refinementAt = o;
+ }
+ e.numberOfExportedSymbols = (0, n.readUint32)(r, h);
+ h += 4;
+ e.numberOfNewSymbols = (0, n.readUint32)(r, h);
+ h += 4;
+ s = [e, a.number, a.referredTo, r, h, i];
+ break;
+ case 6:
+ case 7:
+ const u = {};
+ u.info = readRegionSegmentInformation(r, h);
+ h += g;
+ const d = (0, n.readUint16)(r, h);
+ h += 2;
+ u.huffman = !!(1 & d);
+ u.refinement = !!(2 & d);
+ u.logStripSize = (d >> 2) & 3;
+ u.stripSize = 1 << u.logStripSize;
+ u.referenceCorner = (d >> 4) & 3;
+ u.transposed = !!(64 & d);
+ u.combinationOperator = (d >> 7) & 3;
+ u.defaultPixelValue = (d >> 9) & 1;
+ u.dsOffset = (d << 17) >> 27;
+ u.refinementTemplate = (d >> 15) & 1;
+ if (u.huffman) {
+ const e = (0, n.readUint16)(r, h);
+ h += 2;
+ u.huffmanFS = 3 & e;
+ u.huffmanDS = (e >> 2) & 3;
+ u.huffmanDT = (e >> 4) & 3;
+ u.huffmanRefinementDW = (e >> 6) & 3;
+ u.huffmanRefinementDH = (e >> 8) & 3;
+ u.huffmanRefinementDX = (e >> 10) & 3;
+ u.huffmanRefinementDY = (e >> 12) & 3;
+ u.huffmanRefinementSizeSelector = !!(16384 & e);
+ }
+ if (u.refinement && !u.refinementTemplate) {
+ o = [];
+ for (c = 0; c < 2; c++) {
+ o.push({
+ x: (0, n.readInt8)(r, h),
+ y: (0, n.readInt8)(r, h + 1),
+ });
+ h += 2;
+ }
+ u.refinementAt = o;
+ }
+ u.numberOfSymbolInstances = (0, n.readUint32)(r, h);
+ h += 4;
+ s = [u, a.referredTo, r, h, i];
+ break;
+ case 16:
+ const f = {},
+ p = r[h++];
+ f.mmr = !!(1 & p);
+ f.template = (p >> 1) & 3;
+ f.patternWidth = r[h++];
+ f.patternHeight = r[h++];
+ f.maxPatternIndex = (0, n.readUint32)(r, h);
+ h += 4;
+ s = [f, a.number, r, h, i];
+ break;
+ case 22:
+ case 23:
+ const m = {};
+ m.info = readRegionSegmentInformation(r, h);
+ h += g;
+ const b = r[h++];
+ m.mmr = !!(1 & b);
+ m.template = (b >> 1) & 3;
+ m.enableSkip = !!(8 & b);
+ m.combinationOperator = (b >> 4) & 7;
+ m.defaultPixelValue = (b >> 7) & 1;
+ m.gridWidth = (0, n.readUint32)(r, h);
+ h += 4;
+ m.gridHeight = (0, n.readUint32)(r, h);
+ h += 4;
+ m.gridOffsetX = 4294967295 & (0, n.readUint32)(r, h);
+ h += 4;
+ m.gridOffsetY = 4294967295 & (0, n.readUint32)(r, h);
+ h += 4;
+ m.gridVectorX = (0, n.readUint16)(r, h);
+ h += 2;
+ m.gridVectorY = (0, n.readUint16)(r, h);
+ h += 2;
+ s = [m, a.referredTo, r, h, i];
+ break;
+ case 38:
+ case 39:
+ const y = {};
+ y.info = readRegionSegmentInformation(r, h);
+ h += g;
+ const w = r[h++];
+ y.mmr = !!(1 & w);
+ y.template = (w >> 1) & 3;
+ y.prediction = !!(8 & w);
+ if (!y.mmr) {
+ l = 0 === y.template ? 4 : 1;
+ o = [];
+ for (c = 0; c < l; c++) {
+ o.push({
+ x: (0, n.readInt8)(r, h),
+ y: (0, n.readInt8)(r, h + 1),
+ });
+ h += 2;
+ }
+ y.at = o;
+ }
+ s = [y, r, h, i];
+ break;
+ case 48:
+ const S = {
+ width: (0, n.readUint32)(r, h),
+ height: (0, n.readUint32)(r, h + 4),
+ resolutionX: (0, n.readUint32)(r, h + 8),
+ resolutionY: (0, n.readUint32)(r, h + 12),
+ };
+ 4294967295 === S.height && delete S.height;
+ const x = r[h + 16];
+ (0, n.readUint16)(r, h + 17);
+ S.lossless = !!(1 & x);
+ S.refinement = !!(2 & x);
+ S.defaultPixelValue = (x >> 2) & 1;
+ S.combinationOperator = (x >> 3) & 3;
+ S.requiresBuffer = !!(32 & x);
+ S.combinationOperatorOverride = !!(64 & x);
+ s = [S];
+ break;
+ case 49:
+ case 50:
+ case 51:
+ case 62:
+ break;
+ case 53:
+ s = [a.number, r, h, i];
+ break;
+ default:
+ throw new Jbig2Error(
+ `segment type ${a.typeName}(${a.type}) is not implemented`,
+ );
+ }
+ const u = "on" + a.typeName;
+ u in t && t[u].apply(t, s);
+ }
+ function processSegments(e, t) {
+ for (let a = 0, r = e.length; a < r; a++) processSegment(e[a], t);
+ }
+ class SimpleSegmentVisitor {
+ onPageInformation(e) {
+ this.currentPageInfo = e;
+ const t = (e.width + 7) >> 3,
+ a = new Uint8ClampedArray(t * e.height);
+ e.defaultPixelValue && a.fill(255);
+ this.buffer = a;
+ }
+ drawBitmap(e, t) {
+ const a = this.currentPageInfo,
+ r = e.width,
+ n = e.height,
+ i = (a.width + 7) >> 3,
+ s = a.combinationOperatorOverride
+ ? e.combinationOperator
+ : a.combinationOperator,
+ o = this.buffer,
+ c = 128 >> (7 & e.x);
+ let l,
+ h,
+ u,
+ d,
+ f = e.y * i + (e.x >> 3);
+ switch (s) {
+ case 0:
+ for (l = 0; l < n; l++) {
+ u = c;
+ d = f;
+ for (h = 0; h < r; h++) {
+ t[l][h] && (o[d] |= u);
+ u >>= 1;
+ if (!u) {
+ u = 128;
+ d++;
+ }
+ }
+ f += i;
+ }
+ break;
+ case 2:
+ for (l = 0; l < n; l++) {
+ u = c;
+ d = f;
+ for (h = 0; h < r; h++) {
+ t[l][h] && (o[d] ^= u);
+ u >>= 1;
+ if (!u) {
+ u = 128;
+ d++;
+ }
+ }
+ f += i;
+ }
+ break;
+ default:
+ throw new Jbig2Error(`operator ${s} is not supported`);
+ }
+ }
+ onImmediateGenericRegion(e, t, a, r) {
+ const n = e.info,
+ i = new DecodingContext(t, a, r),
+ s = decodeBitmap(
+ e.mmr,
+ n.width,
+ n.height,
+ e.template,
+ e.prediction,
+ null,
+ e.at,
+ i,
+ );
+ this.drawBitmap(n, s);
+ }
+ onImmediateLosslessGenericRegion() {
+ this.onImmediateGenericRegion(...arguments);
+ }
+ onSymbolDictionary(e, t, a, r, i, s) {
+ let o, c;
+ if (e.huffman) {
+ o = (function getSymbolDictionaryHuffmanTables(e, t, a) {
+ let r,
+ n,
+ i,
+ s,
+ o = 0;
+ switch (e.huffmanDHSelector) {
+ case 0:
+ case 1:
+ r = getStandardTable(e.huffmanDHSelector + 4);
+ break;
+ case 3:
+ r = getCustomHuffmanTable(o, t, a);
+ o++;
+ break;
+ default:
+ throw new Jbig2Error("invalid Huffman DH selector");
+ }
+ switch (e.huffmanDWSelector) {
+ case 0:
+ case 1:
+ n = getStandardTable(e.huffmanDWSelector + 2);
+ break;
+ case 3:
+ n = getCustomHuffmanTable(o, t, a);
+ o++;
+ break;
+ default:
+ throw new Jbig2Error("invalid Huffman DW selector");
+ }
+ if (e.bitmapSizeSelector) {
+ i = getCustomHuffmanTable(o, t, a);
+ o++;
+ } else i = getStandardTable(1);
+ s = e.aggregationInstancesSelector
+ ? getCustomHuffmanTable(o, t, a)
+ : getStandardTable(1);
+ return {
+ tableDeltaHeight: r,
+ tableDeltaWidth: n,
+ tableBitmapSize: i,
+ tableAggregateInstances: s,
+ };
+ })(e, a, this.customTables);
+ c = new Reader(r, i, s);
+ }
+ let l = this.symbols;
+ l || (this.symbols = l = {});
+ const h = [];
+ for (const e of a) {
+ const t = l[e];
+ t && h.push(...t);
+ }
+ const u = new DecodingContext(r, i, s);
+ l[t] = (function decodeSymbolDictionary(
+ e,
+ t,
+ a,
+ r,
+ i,
+ s,
+ o,
+ c,
+ l,
+ h,
+ u,
+ d,
+ ) {
+ if (e && t)
+ throw new Jbig2Error(
+ "symbol refinement with Huffman is not supported",
+ );
+ const f = [];
+ let g = 0,
+ p = (0, n.log2)(a.length + r);
+ const m = u.decoder,
+ b = u.contextCache;
+ let y, w;
+ if (e) {
+ y = getStandardTable(1);
+ w = [];
+ p = Math.max(p, 1);
+ }
+ for (; f.length < r; ) {
+ g += e
+ ? s.tableDeltaHeight.decode(d)
+ : decodeInteger(b, "IADH", m);
+ let r = 0,
+ n = 0;
+ const i = e ? w.length : 0;
+ for (;;) {
+ const i = e
+ ? s.tableDeltaWidth.decode(d)
+ : decodeInteger(b, "IADW", m);
+ if (null === i) break;
+ r += i;
+ n += r;
+ let y;
+ if (t) {
+ const n = decodeInteger(b, "IAAI", m);
+ if (n > 1)
+ y = decodeTextRegion(
+ e,
+ t,
+ r,
+ g,
+ 0,
+ n,
+ 1,
+ a.concat(f),
+ p,
+ 0,
+ 0,
+ 1,
+ 0,
+ s,
+ l,
+ h,
+ u,
+ 0,
+ d,
+ );
+ else {
+ const e = decodeIAID(b, m, p),
+ t = decodeInteger(b, "IARDX", m),
+ n = decodeInteger(b, "IARDY", m);
+ y = decodeRefinement(
+ r,
+ g,
+ l,
+ e < a.length ? a[e] : f[e - a.length],
+ t,
+ n,
+ !1,
+ h,
+ u,
+ );
+ }
+ f.push(y);
+ } else if (e) w.push(r);
+ else {
+ y = decodeBitmap(!1, r, g, o, !1, null, c, u);
+ f.push(y);
+ }
+ }
+ if (e && !t) {
+ const e = s.tableBitmapSize.decode(d);
+ d.byteAlign();
+ let t;
+ if (0 === e) t = readUncompressedBitmap(d, n, g);
+ else {
+ const a = d.end,
+ r = d.position + e;
+ d.end = r;
+ t = decodeMMRBitmap(d, n, g, !1);
+ d.end = a;
+ d.position = r;
+ }
+ const a = w.length;
+ if (i === a - 1) f.push(t);
+ else {
+ let e,
+ r,
+ n,
+ s,
+ o,
+ c = 0;
+ for (e = i; e < a; e++) {
+ s = w[e];
+ n = c + s;
+ o = [];
+ for (r = 0; r < g; r++) o.push(t[r].subarray(c, n));
+ f.push(o);
+ c = n;
+ }
+ }
+ }
+ }
+ const S = [],
+ x = [];
+ let C,
+ k,
+ v = !1;
+ const F = a.length + r;
+ for (; x.length < F; ) {
+ let t = e ? y.decode(d) : decodeInteger(b, "IAEX", m);
+ for (; t--; ) x.push(v);
+ v = !v;
+ }
+ for (C = 0, k = a.length; C < k; C++) x[C] && S.push(a[C]);
+ for (let e = 0; e < r; C++, e++) x[C] && S.push(f[e]);
+ return S;
+ })(
+ e.huffman,
+ e.refinement,
+ h,
+ e.numberOfNewSymbols,
+ e.numberOfExportedSymbols,
+ o,
+ e.template,
+ e.at,
+ e.refinementTemplate,
+ e.refinementAt,
+ u,
+ c,
+ );
+ }
+ onImmediateTextRegion(e, t, a, r, i) {
+ const s = e.info;
+ let o, c;
+ const l = this.symbols,
+ h = [];
+ for (const e of t) {
+ const t = l[e];
+ t && h.push(...t);
+ }
+ const u = (0, n.log2)(h.length);
+ if (e.huffman) {
+ c = new Reader(a, r, i);
+ o = (function getTextRegionHuffmanTables(e, t, a, r, n) {
+ const i = [];
+ for (let e = 0; e <= 34; e++) {
+ const t = n.readBits(4);
+ i.push(new HuffmanLine([e, t, 0, 0]));
+ }
+ const s = new HuffmanTable(i, !1);
+ i.length = 0;
+ for (let e = 0; e < r; ) {
+ const t = s.decode(n);
+ if (t >= 32) {
+ let a, r, s;
+ switch (t) {
+ case 32:
+ if (0 === e)
+ throw new Jbig2Error(
+ "no previous value in symbol ID table",
+ );
+ r = n.readBits(2) + 3;
+ a = i[e - 1].prefixLength;
+ break;
+ case 33:
+ r = n.readBits(3) + 3;
+ a = 0;
+ break;
+ case 34:
+ r = n.readBits(7) + 11;
+ a = 0;
+ break;
+ default:
+ throw new Jbig2Error(
+ "invalid code length in symbol ID table",
+ );
+ }
+ for (s = 0; s < r; s++) {
+ i.push(new HuffmanLine([e, a, 0, 0]));
+ e++;
+ }
+ } else {
+ i.push(new HuffmanLine([e, t, 0, 0]));
+ e++;
+ }
+ }
+ n.byteAlign();
+ const o = new HuffmanTable(i, !1);
+ let c,
+ l,
+ h,
+ u = 0;
+ switch (e.huffmanFS) {
+ case 0:
+ case 1:
+ c = getStandardTable(e.huffmanFS + 6);
+ break;
+ case 3:
+ c = getCustomHuffmanTable(u, t, a);
+ u++;
+ break;
+ default:
+ throw new Jbig2Error("invalid Huffman FS selector");
+ }
+ switch (e.huffmanDS) {
+ case 0:
+ case 1:
+ case 2:
+ l = getStandardTable(e.huffmanDS + 8);
+ break;
+ case 3:
+ l = getCustomHuffmanTable(u, t, a);
+ u++;
+ break;
+ default:
+ throw new Jbig2Error("invalid Huffman DS selector");
+ }
+ switch (e.huffmanDT) {
+ case 0:
+ case 1:
+ case 2:
+ h = getStandardTable(e.huffmanDT + 11);
+ break;
+ case 3:
+ h = getCustomHuffmanTable(u, t, a);
+ u++;
+ break;
+ default:
+ throw new Jbig2Error("invalid Huffman DT selector");
+ }
+ if (e.refinement)
+ throw new Jbig2Error(
+ "refinement with Huffman is not supported",
+ );
+ return {
+ symbolIDTable: o,
+ tableFirstS: c,
+ tableDeltaS: l,
+ tableDeltaT: h,
+ };
+ })(e, t, this.customTables, h.length, c);
+ }
+ const d = new DecodingContext(a, r, i),
+ f = decodeTextRegion(
+ e.huffman,
+ e.refinement,
+ s.width,
+ s.height,
+ e.defaultPixelValue,
+ e.numberOfSymbolInstances,
+ e.stripSize,
+ h,
+ u,
+ e.transposed,
+ e.dsOffset,
+ e.referenceCorner,
+ e.combinationOperator,
+ o,
+ e.refinementTemplate,
+ e.refinementAt,
+ d,
+ e.logStripSize,
+ c,
+ );
+ this.drawBitmap(s, f);
+ }
+ onImmediateLosslessTextRegion() {
+ this.onImmediateTextRegion(...arguments);
+ }
+ onPatternDictionary(e, t, a, r, n) {
+ let i = this.patterns;
+ i || (this.patterns = i = {});
+ const s = new DecodingContext(a, r, n);
+ i[t] = (function decodePatternDictionary(e, t, a, r, n, i) {
+ const s = [];
+ if (!e) {
+ s.push({ x: -t, y: 0 });
+ 0 === n &&
+ s.push({ x: -3, y: -1 }, { x: 2, y: -2 }, { x: -2, y: -2 });
+ }
+ const o = decodeBitmap(e, (r + 1) * t, a, n, !1, null, s, i),
+ c = [];
+ for (let e = 0; e <= r; e++) {
+ const r = [],
+ n = t * e,
+ i = n + t;
+ for (let e = 0; e < a; e++) r.push(o[e].subarray(n, i));
+ c.push(r);
+ }
+ return c;
+ })(
+ e.mmr,
+ e.patternWidth,
+ e.patternHeight,
+ e.maxPatternIndex,
+ e.template,
+ s,
+ );
+ }
+ onImmediateHalftoneRegion(e, t, a, r, i) {
+ const s = this.patterns[t[0]],
+ o = e.info,
+ c = new DecodingContext(a, r, i),
+ l = (function decodeHalftoneRegion(
+ e,
+ t,
+ a,
+ r,
+ i,
+ s,
+ o,
+ c,
+ l,
+ h,
+ u,
+ d,
+ f,
+ g,
+ p,
+ ) {
+ if (o) throw new Jbig2Error("skip is not supported");
+ if (0 !== c)
+ throw new Jbig2Error(
+ `operator "${c}" is not supported in halftone region`,
+ );
+ const m = [];
+ let b, y, w;
+ for (b = 0; b < i; b++) {
+ w = new Uint8Array(r);
+ if (s) for (y = 0; y < r; y++) w[y] = s;
+ m.push(w);
+ }
+ const S = t.length,
+ x = t[0],
+ C = x[0].length,
+ k = x.length,
+ v = (0, n.log2)(S),
+ F = [];
+ if (!e) {
+ F.push({ x: a <= 1 ? 3 : 2, y: -1 });
+ 0 === a &&
+ F.push(
+ { x: -3, y: -1 },
+ { x: 2, y: -2 },
+ { x: -2, y: -2 },
+ );
+ }
+ const O = [];
+ let T, M, D, E, N, R, L, $, _, j, U;
+ e && (T = new Reader(p.data, p.start, p.end));
+ for (b = v - 1; b >= 0; b--) {
+ M = e
+ ? decodeMMRBitmap(T, l, h, !0)
+ : decodeBitmap(!1, l, h, a, !1, null, F, p);
+ O[b] = M;
+ }
+ for (D = 0; D < h; D++)
+ for (E = 0; E < l; E++) {
+ N = 0;
+ R = 0;
+ for (y = v - 1; y >= 0; y--) {
+ N ^= O[y][D][E];
+ R |= N << y;
+ }
+ L = t[R];
+ $ = (u + D * g + E * f) >> 8;
+ _ = (d + D * f - E * g) >> 8;
+ if ($ >= 0 && $ + C <= r && _ >= 0 && _ + k <= i)
+ for (b = 0; b < k; b++) {
+ U = m[_ + b];
+ j = L[b];
+ for (y = 0; y < C; y++) U[$ + y] |= j[y];
+ }
+ else {
+ let e, t;
+ for (b = 0; b < k; b++) {
+ t = _ + b;
+ if (!(t < 0 || t >= i)) {
+ U = m[t];
+ j = L[b];
+ for (y = 0; y < C; y++) {
+ e = $ + y;
+ e >= 0 && e < r && (U[e] |= j[y]);
+ }
+ }
+ }
+ }
+ }
+ return m;
+ })(
+ e.mmr,
+ s,
+ e.template,
+ o.width,
+ o.height,
+ e.defaultPixelValue,
+ e.enableSkip,
+ e.combinationOperator,
+ e.gridWidth,
+ e.gridHeight,
+ e.gridOffsetX,
+ e.gridOffsetY,
+ e.gridVectorX,
+ e.gridVectorY,
+ c,
+ );
+ this.drawBitmap(o, l);
+ }
+ onImmediateLosslessHalftoneRegion() {
+ this.onImmediateHalftoneRegion(...arguments);
+ }
+ onTables(e, t, a, r) {
+ let i = this.customTables;
+ i || (this.customTables = i = {});
+ i[e] = (function decodeTablesSegment(e, t, a) {
+ const r = e[t],
+ i = 4294967295 & (0, n.readUint32)(e, t + 1),
+ s = 4294967295 & (0, n.readUint32)(e, t + 5),
+ o = new Reader(e, t + 9, a),
+ c = 1 + ((r >> 1) & 7),
+ l = 1 + ((r >> 4) & 7),
+ h = [];
+ let u,
+ d,
+ f = i;
+ do {
+ u = o.readBits(c);
+ d = o.readBits(l);
+ h.push(new HuffmanLine([f, u, d, 0]));
+ f += 1 << d;
+ } while (f < s);
+ u = o.readBits(c);
+ h.push(new HuffmanLine([i - 1, u, 32, 0, "lower"]));
+ u = o.readBits(c);
+ h.push(new HuffmanLine([s, u, 32, 0]));
+ if (1 & r) {
+ u = o.readBits(c);
+ h.push(new HuffmanLine([u, 0]));
+ }
+ return new HuffmanTable(h, !1);
+ })(t, a, r);
+ }
+ }
+ class HuffmanLine {
+ constructor(e) {
+ if (2 === e.length) {
+ this.isOOB = !0;
+ this.rangeLow = 0;
+ this.prefixLength = e[0];
+ this.rangeLength = 0;
+ this.prefixCode = e[1];
+ this.isLowerRange = !1;
+ } else {
+ this.isOOB = !1;
+ this.rangeLow = e[0];
+ this.prefixLength = e[1];
+ this.rangeLength = e[2];
+ this.prefixCode = e[3];
+ this.isLowerRange = "lower" === e[4];
+ }
+ }
+ }
+ class HuffmanTreeNode {
+ constructor(e) {
+ this.children = [];
+ if (e) {
+ this.isLeaf = !0;
+ this.rangeLength = e.rangeLength;
+ this.rangeLow = e.rangeLow;
+ this.isLowerRange = e.isLowerRange;
+ this.isOOB = e.isOOB;
+ } else this.isLeaf = !1;
+ }
+ buildTree(e, t) {
+ const a = (e.prefixCode >> t) & 1;
+ if (t <= 0) this.children[a] = new HuffmanTreeNode(e);
+ else {
+ let r = this.children[a];
+ r || (this.children[a] = r = new HuffmanTreeNode(null));
+ r.buildTree(e, t - 1);
+ }
+ }
+ decodeNode(e) {
+ if (this.isLeaf) {
+ if (this.isOOB) return null;
+ const t = e.readBits(this.rangeLength);
+ return this.rangeLow + (this.isLowerRange ? -t : t);
+ }
+ const t = this.children[e.readBit()];
+ if (!t) throw new Jbig2Error("invalid Huffman data");
+ return t.decodeNode(e);
+ }
+ }
+ class HuffmanTable {
+ constructor(e, t) {
+ t || this.assignPrefixCodes(e);
+ this.rootNode = new HuffmanTreeNode(null);
+ for (let t = 0, a = e.length; t < a; t++) {
+ const a = e[t];
+ a.prefixLength > 0 &&
+ this.rootNode.buildTree(a, a.prefixLength - 1);
+ }
+ }
+ decode(e) {
+ return this.rootNode.decodeNode(e);
+ }
+ assignPrefixCodes(e) {
+ const t = e.length;
+ let a = 0;
+ for (let r = 0; r < t; r++) a = Math.max(a, e[r].prefixLength);
+ const r = new Uint32Array(a + 1);
+ for (let a = 0; a < t; a++) r[e[a].prefixLength]++;
+ let n,
+ i,
+ s,
+ o = 1,
+ c = 0;
+ r[0] = 0;
+ for (; o <= a; ) {
+ c = (c + r[o - 1]) << 1;
+ n = c;
+ i = 0;
+ for (; i < t; ) {
+ s = e[i];
+ if (s.prefixLength === o) {
+ s.prefixCode = n;
+ n++;
+ }
+ i++;
+ }
+ o++;
+ }
+ }
+ }
+ const p = {};
+ function getStandardTable(e) {
+ let t,
+ a = p[e];
+ if (a) return a;
+ switch (e) {
+ case 1:
+ t = [
+ [0, 1, 4, 0],
+ [16, 2, 8, 2],
+ [272, 3, 16, 6],
+ [65808, 3, 32, 7],
+ ];
+ break;
+ case 2:
+ t = [
+ [0, 1, 0, 0],
+ [1, 2, 0, 2],
+ [2, 3, 0, 6],
+ [3, 4, 3, 14],
+ [11, 5, 6, 30],
+ [75, 6, 32, 62],
+ [6, 63],
+ ];
+ break;
+ case 3:
+ t = [
+ [-256, 8, 8, 254],
+ [0, 1, 0, 0],
+ [1, 2, 0, 2],
+ [2, 3, 0, 6],
+ [3, 4, 3, 14],
+ [11, 5, 6, 30],
+ [-257, 8, 32, 255, "lower"],
+ [75, 7, 32, 126],
+ [6, 62],
+ ];
+ break;
+ case 4:
+ t = [
+ [1, 1, 0, 0],
+ [2, 2, 0, 2],
+ [3, 3, 0, 6],
+ [4, 4, 3, 14],
+ [12, 5, 6, 30],
+ [76, 5, 32, 31],
+ ];
+ break;
+ case 5:
+ t = [
+ [-255, 7, 8, 126],
+ [1, 1, 0, 0],
+ [2, 2, 0, 2],
+ [3, 3, 0, 6],
+ [4, 4, 3, 14],
+ [12, 5, 6, 30],
+ [-256, 7, 32, 127, "lower"],
+ [76, 6, 32, 62],
+ ];
+ break;
+ case 6:
+ t = [
+ [-2048, 5, 10, 28],
+ [-1024, 4, 9, 8],
+ [-512, 4, 8, 9],
+ [-256, 4, 7, 10],
+ [-128, 5, 6, 29],
+ [-64, 5, 5, 30],
+ [-32, 4, 5, 11],
+ [0, 2, 7, 0],
+ [128, 3, 7, 2],
+ [256, 3, 8, 3],
+ [512, 4, 9, 12],
+ [1024, 4, 10, 13],
+ [-2049, 6, 32, 62, "lower"],
+ [2048, 6, 32, 63],
+ ];
+ break;
+ case 7:
+ t = [
+ [-1024, 4, 9, 8],
+ [-512, 3, 8, 0],
+ [-256, 4, 7, 9],
+ [-128, 5, 6, 26],
+ [-64, 5, 5, 27],
+ [-32, 4, 5, 10],
+ [0, 4, 5, 11],
+ [32, 5, 5, 28],
+ [64, 5, 6, 29],
+ [128, 4, 7, 12],
+ [256, 3, 8, 1],
+ [512, 3, 9, 2],
+ [1024, 3, 10, 3],
+ [-1025, 5, 32, 30, "lower"],
+ [2048, 5, 32, 31],
+ ];
+ break;
+ case 8:
+ t = [
+ [-15, 8, 3, 252],
+ [-7, 9, 1, 508],
+ [-5, 8, 1, 253],
+ [-3, 9, 0, 509],
+ [-2, 7, 0, 124],
+ [-1, 4, 0, 10],
+ [0, 2, 1, 0],
+ [2, 5, 0, 26],
+ [3, 6, 0, 58],
+ [4, 3, 4, 4],
+ [20, 6, 1, 59],
+ [22, 4, 4, 11],
+ [38, 4, 5, 12],
+ [70, 5, 6, 27],
+ [134, 5, 7, 28],
+ [262, 6, 7, 60],
+ [390, 7, 8, 125],
+ [646, 6, 10, 61],
+ [-16, 9, 32, 510, "lower"],
+ [1670, 9, 32, 511],
+ [2, 1],
+ ];
+ break;
+ case 9:
+ t = [
+ [-31, 8, 4, 252],
+ [-15, 9, 2, 508],
+ [-11, 8, 2, 253],
+ [-7, 9, 1, 509],
+ [-5, 7, 1, 124],
+ [-3, 4, 1, 10],
+ [-1, 3, 1, 2],
+ [1, 3, 1, 3],
+ [3, 5, 1, 26],
+ [5, 6, 1, 58],
+ [7, 3, 5, 4],
+ [39, 6, 2, 59],
+ [43, 4, 5, 11],
+ [75, 4, 6, 12],
+ [139, 5, 7, 27],
+ [267, 5, 8, 28],
+ [523, 6, 8, 60],
+ [779, 7, 9, 125],
+ [1291, 6, 11, 61],
+ [-32, 9, 32, 510, "lower"],
+ [3339, 9, 32, 511],
+ [2, 0],
+ ];
+ break;
+ case 10:
+ t = [
+ [-21, 7, 4, 122],
+ [-5, 8, 0, 252],
+ [-4, 7, 0, 123],
+ [-3, 5, 0, 24],
+ [-2, 2, 2, 0],
+ [2, 5, 0, 25],
+ [3, 6, 0, 54],
+ [4, 7, 0, 124],
+ [5, 8, 0, 253],
+ [6, 2, 6, 1],
+ [70, 5, 5, 26],
+ [102, 6, 5, 55],
+ [134, 6, 6, 56],
+ [198, 6, 7, 57],
+ [326, 6, 8, 58],
+ [582, 6, 9, 59],
+ [1094, 6, 10, 60],
+ [2118, 7, 11, 125],
+ [-22, 8, 32, 254, "lower"],
+ [4166, 8, 32, 255],
+ [2, 2],
+ ];
+ break;
+ case 11:
+ t = [
+ [1, 1, 0, 0],
+ [2, 2, 1, 2],
+ [4, 4, 0, 12],
+ [5, 4, 1, 13],
+ [7, 5, 1, 28],
+ [9, 5, 2, 29],
+ [13, 6, 2, 60],
+ [17, 7, 2, 122],
+ [21, 7, 3, 123],
+ [29, 7, 4, 124],
+ [45, 7, 5, 125],
+ [77, 7, 6, 126],
+ [141, 7, 32, 127],
+ ];
+ break;
+ case 12:
+ t = [
+ [1, 1, 0, 0],
+ [2, 2, 0, 2],
+ [3, 3, 1, 6],
+ [5, 5, 0, 28],
+ [6, 5, 1, 29],
+ [8, 6, 1, 60],
+ [10, 7, 0, 122],
+ [11, 7, 1, 123],
+ [13, 7, 2, 124],
+ [17, 7, 3, 125],
+ [25, 7, 4, 126],
+ [41, 8, 5, 254],
+ [73, 8, 32, 255],
+ ];
+ break;
+ case 13:
+ t = [
+ [1, 1, 0, 0],
+ [2, 3, 0, 4],
+ [3, 4, 0, 12],
+ [4, 5, 0, 28],
+ [5, 4, 1, 13],
+ [7, 3, 3, 5],
+ [15, 6, 1, 58],
+ [17, 6, 2, 59],
+ [21, 6, 3, 60],
+ [29, 6, 4, 61],
+ [45, 6, 5, 62],
+ [77, 7, 6, 126],
+ [141, 7, 32, 127],
+ ];
+ break;
+ case 14:
+ t = [
+ [-2, 3, 0, 4],
+ [-1, 3, 0, 5],
+ [0, 1, 0, 0],
+ [1, 3, 0, 6],
+ [2, 3, 0, 7],
+ ];
+ break;
+ case 15:
+ t = [
+ [-24, 7, 4, 124],
+ [-8, 6, 2, 60],
+ [-4, 5, 1, 28],
+ [-2, 4, 0, 12],
+ [-1, 3, 0, 4],
+ [0, 1, 0, 0],
+ [1, 3, 0, 5],
+ [2, 4, 0, 13],
+ [3, 5, 1, 29],
+ [5, 6, 2, 61],
+ [9, 7, 4, 125],
+ [-25, 7, 32, 126, "lower"],
+ [25, 7, 32, 127],
+ ];
+ break;
+ default:
+ throw new Jbig2Error(`standard table B.${e} does not exist`);
+ }
+ for (let e = 0, a = t.length; e < a; e++)
+ t[e] = new HuffmanLine(t[e]);
+ a = new HuffmanTable(t, !0);
+ p[e] = a;
+ return a;
+ }
+ class Reader {
+ constructor(e, t, a) {
+ this.data = e;
+ this.start = t;
+ this.end = a;
+ this.position = t;
+ this.shift = -1;
+ this.currentByte = 0;
+ }
+ readBit() {
+ if (this.shift < 0) {
+ if (this.position >= this.end)
+ throw new Jbig2Error("end of data while reading bit");
+ this.currentByte = this.data[this.position++];
+ this.shift = 7;
+ }
+ const e = (this.currentByte >> this.shift) & 1;
+ this.shift--;
+ return e;
+ }
+ readBits(e) {
+ let t,
+ a = 0;
+ for (t = e - 1; t >= 0; t--) a |= this.readBit() << t;
+ return a;
+ }
+ byteAlign() {
+ this.shift = -1;
+ }
+ next() {
+ return this.position >= this.end
+ ? -1
+ : this.data[this.position++];
+ }
+ }
+ function getCustomHuffmanTable(e, t, a) {
+ let r = 0;
+ for (let n = 0, i = t.length; n < i; n++) {
+ const i = a[t[n]];
+ if (i) {
+ if (e === r) return i;
+ r++;
+ }
+ }
+ throw new Jbig2Error("can't find custom Huffman table");
+ }
+ function readUncompressedBitmap(e, t, a) {
+ const r = [];
+ for (let n = 0; n < a; n++) {
+ const a = new Uint8Array(t);
+ r.push(a);
+ for (let r = 0; r < t; r++) a[r] = e.readBit();
+ e.byteAlign();
+ }
+ return r;
+ }
+ function decodeMMRBitmap(e, t, a, r) {
+ const n = {
+ K: -1,
+ Columns: t,
+ Rows: a,
+ BlackIs1: !0,
+ EndOfBlock: r,
+ },
+ i = new s.CCITTFaxDecoder(e, n),
+ o = [];
+ let c,
+ l = !1;
+ for (let e = 0; e < a; e++) {
+ const e = new Uint8Array(t);
+ o.push(e);
+ let a = -1;
+ for (let r = 0; r < t; r++) {
+ if (a < 0) {
+ c = i.readNextChar();
+ if (-1 === c) {
+ c = 0;
+ l = !0;
+ }
+ a = 7;
+ }
+ e[r] = (c >> a) & 1;
+ a--;
+ }
+ }
+ if (r && !l) {
+ const e = 5;
+ for (let t = 0; t < e && -1 !== i.readNextChar(); t++);
+ }
+ return o;
+ }
+ t.Jbig2Image = class Jbig2Image {
+ parseChunks(e) {
+ return (function parseJbig2Chunks(e) {
+ const t = new SimpleSegmentVisitor();
+ for (let a = 0, r = e.length; a < r; a++) {
+ const r = e[a];
+ processSegments(readSegments({}, r.data, r.start, r.end), t);
+ }
+ return t.buffer;
+ })(e);
+ }
+ parse(e) {
+ throw new Error("Not implemented: Jbig2Image.parse");
+ }
+ };
+ },
+ (e, t) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.ArithmeticDecoder = void 0;
+ const a = [
+ { qe: 22017, nmps: 1, nlps: 1, switchFlag: 1 },
+ { qe: 13313, nmps: 2, nlps: 6, switchFlag: 0 },
+ { qe: 6145, nmps: 3, nlps: 9, switchFlag: 0 },
+ { qe: 2753, nmps: 4, nlps: 12, switchFlag: 0 },
+ { qe: 1313, nmps: 5, nlps: 29, switchFlag: 0 },
+ { qe: 545, nmps: 38, nlps: 33, switchFlag: 0 },
+ { qe: 22017, nmps: 7, nlps: 6, switchFlag: 1 },
+ { qe: 21505, nmps: 8, nlps: 14, switchFlag: 0 },
+ { qe: 18433, nmps: 9, nlps: 14, switchFlag: 0 },
+ { qe: 14337, nmps: 10, nlps: 14, switchFlag: 0 },
+ { qe: 12289, nmps: 11, nlps: 17, switchFlag: 0 },
+ { qe: 9217, nmps: 12, nlps: 18, switchFlag: 0 },
+ { qe: 7169, nmps: 13, nlps: 20, switchFlag: 0 },
+ { qe: 5633, nmps: 29, nlps: 21, switchFlag: 0 },
+ { qe: 22017, nmps: 15, nlps: 14, switchFlag: 1 },
+ { qe: 21505, nmps: 16, nlps: 14, switchFlag: 0 },
+ { qe: 20737, nmps: 17, nlps: 15, switchFlag: 0 },
+ { qe: 18433, nmps: 18, nlps: 16, switchFlag: 0 },
+ { qe: 14337, nmps: 19, nlps: 17, switchFlag: 0 },
+ { qe: 13313, nmps: 20, nlps: 18, switchFlag: 0 },
+ { qe: 12289, nmps: 21, nlps: 19, switchFlag: 0 },
+ { qe: 10241, nmps: 22, nlps: 19, switchFlag: 0 },
+ { qe: 9217, nmps: 23, nlps: 20, switchFlag: 0 },
+ { qe: 8705, nmps: 24, nlps: 21, switchFlag: 0 },
+ { qe: 7169, nmps: 25, nlps: 22, switchFlag: 0 },
+ { qe: 6145, nmps: 26, nlps: 23, switchFlag: 0 },
+ { qe: 5633, nmps: 27, nlps: 24, switchFlag: 0 },
+ { qe: 5121, nmps: 28, nlps: 25, switchFlag: 0 },
+ { qe: 4609, nmps: 29, nlps: 26, switchFlag: 0 },
+ { qe: 4353, nmps: 30, nlps: 27, switchFlag: 0 },
+ { qe: 2753, nmps: 31, nlps: 28, switchFlag: 0 },
+ { qe: 2497, nmps: 32, nlps: 29, switchFlag: 0 },
+ { qe: 2209, nmps: 33, nlps: 30, switchFlag: 0 },
+ { qe: 1313, nmps: 34, nlps: 31, switchFlag: 0 },
+ { qe: 1089, nmps: 35, nlps: 32, switchFlag: 0 },
+ { qe: 673, nmps: 36, nlps: 33, switchFlag: 0 },
+ { qe: 545, nmps: 37, nlps: 34, switchFlag: 0 },
+ { qe: 321, nmps: 38, nlps: 35, switchFlag: 0 },
+ { qe: 273, nmps: 39, nlps: 36, switchFlag: 0 },
+ { qe: 133, nmps: 40, nlps: 37, switchFlag: 0 },
+ { qe: 73, nmps: 41, nlps: 38, switchFlag: 0 },
+ { qe: 37, nmps: 42, nlps: 39, switchFlag: 0 },
+ { qe: 21, nmps: 43, nlps: 40, switchFlag: 0 },
+ { qe: 9, nmps: 44, nlps: 41, switchFlag: 0 },
+ { qe: 5, nmps: 45, nlps: 42, switchFlag: 0 },
+ { qe: 1, nmps: 45, nlps: 43, switchFlag: 0 },
+ { qe: 22017, nmps: 46, nlps: 46, switchFlag: 0 },
+ ];
+ t.ArithmeticDecoder = class ArithmeticDecoder {
+ constructor(e, t, a) {
+ this.data = e;
+ this.bp = t;
+ this.dataEnd = a;
+ this.chigh = e[t];
+ this.clow = 0;
+ this.byteIn();
+ this.chigh =
+ ((this.chigh << 7) & 65535) | ((this.clow >> 9) & 127);
+ this.clow = (this.clow << 7) & 65535;
+ this.ct -= 7;
+ this.a = 32768;
+ }
+ byteIn() {
+ const e = this.data;
+ let t = this.bp;
+ if (255 === e[t])
+ if (e[t + 1] > 143) {
+ this.clow += 65280;
+ this.ct = 8;
+ } else {
+ t++;
+ this.clow += e[t] << 9;
+ this.ct = 7;
+ this.bp = t;
+ }
+ else {
+ t++;
+ this.clow += t < this.dataEnd ? e[t] << 8 : 65280;
+ this.ct = 8;
+ this.bp = t;
+ }
+ if (this.clow > 65535) {
+ this.chigh += this.clow >> 16;
+ this.clow &= 65535;
+ }
+ }
+ readBit(e, t) {
+ let r = e[t] >> 1,
+ n = 1 & e[t];
+ const i = a[r],
+ s = i.qe;
+ let o,
+ c = this.a - s;
+ if (this.chigh < s)
+ if (c < s) {
+ c = s;
+ o = n;
+ r = i.nmps;
+ } else {
+ c = s;
+ o = 1 ^ n;
+ 1 === i.switchFlag && (n = o);
+ r = i.nlps;
+ }
+ else {
+ this.chigh -= s;
+ if (0 != (32768 & c)) {
+ this.a = c;
+ return n;
+ }
+ if (c < s) {
+ o = 1 ^ n;
+ 1 === i.switchFlag && (n = o);
+ r = i.nlps;
+ } else {
+ o = n;
+ r = i.nmps;
+ }
+ }
+ do {
+ 0 === this.ct && this.byteIn();
+ c <<= 1;
+ this.chigh =
+ ((this.chigh << 1) & 65535) | ((this.clow >> 15) & 1);
+ this.clow = (this.clow << 1) & 65535;
+ this.ct--;
+ } while (0 == (32768 & c));
+ this.a = c;
+ e[t] = (r << 1) | n;
+ return o;
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.JpegStream = void 0;
+ var r = a(18),
+ n = a(4),
+ i = a(27),
+ s = a(2);
+ class JpegStream extends r.DecodeStream {
+ constructor(e, t, a) {
+ let r;
+ for (; -1 !== (r = e.getByte()); )
+ if (255 === r) {
+ e.skip(-1);
+ break;
+ }
+ super(t);
+ this.stream = e;
+ this.dict = e.dict;
+ this.maybeLength = t;
+ this.params = a;
+ }
+ get bytes() {
+ return (0, s.shadow)(
+ this,
+ "bytes",
+ this.stream.getBytes(this.maybeLength),
+ );
+ }
+ ensureBuffer(e) {}
+ readBlock() {
+ if (this.eof) return;
+ const e = { decodeTransform: void 0, colorTransform: void 0 },
+ t = this.dict.getArray("D", "Decode");
+ if ((this.forceRGBA || this.forceRGB) && Array.isArray(t)) {
+ const a = this.dict.get("BPC", "BitsPerComponent") || 8,
+ r = t.length,
+ n = new Int32Array(r);
+ let i = !1;
+ const s = (1 << a) - 1;
+ for (let e = 0; e < r; e += 2) {
+ n[e] = (256 * (t[e + 1] - t[e])) | 0;
+ n[e + 1] = (t[e] * s) | 0;
+ (256 === n[e] && 0 === n[e + 1]) || (i = !0);
+ }
+ i && (e.decodeTransform = n);
+ }
+ if (this.params instanceof n.Dict) {
+ const t = this.params.get("ColorTransform");
+ Number.isInteger(t) && (e.colorTransform = t);
+ }
+ const a = new i.JpegImage(e);
+ a.parse(this.bytes);
+ const r = a.getData({
+ width: this.drawWidth,
+ height: this.drawHeight,
+ forceRGBA: this.forceRGBA,
+ forceRGB: this.forceRGB,
+ isSourcePDF: !0,
+ });
+ this.buffer = r;
+ this.bufferLength = r.length;
+ this.eof = !0;
+ }
+ }
+ t.JpegStream = JpegStream;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.JpegImage = void 0;
+ var r = a(2),
+ n = a(28),
+ i = a(3);
+ class JpegError extends r.BaseException {
+ constructor(e) {
+ super(`JPEG error: ${e}`, "JpegError");
+ }
+ }
+ class DNLMarkerError extends r.BaseException {
+ constructor(e, t) {
+ super(e, "DNLMarkerError");
+ this.scanLines = t;
+ }
+ }
+ class EOIMarkerError extends r.BaseException {
+ constructor(e) {
+ super(e, "EOIMarkerError");
+ }
+ }
+ const s = new Uint8Array([
+ 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19,
+ 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49,
+ 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52,
+ 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63,
+ ]),
+ o = 4017,
+ c = 799,
+ l = 3406,
+ h = 2276,
+ u = 1567,
+ d = 3784,
+ f = 5793,
+ g = 2896;
+ function buildHuffmanTable(e, t) {
+ let a,
+ r,
+ n = 0,
+ i = 16;
+ for (; i > 0 && !e[i - 1]; ) i--;
+ const s = [{ children: [], index: 0 }];
+ let o,
+ c = s[0];
+ for (a = 0; a < i; a++) {
+ for (r = 0; r < e[a]; r++) {
+ c = s.pop();
+ c.children[c.index] = t[n];
+ for (; c.index > 0; ) c = s.pop();
+ c.index++;
+ s.push(c);
+ for (; s.length <= a; ) {
+ s.push((o = { children: [], index: 0 }));
+ c.children[c.index] = o.children;
+ c = o;
+ }
+ n++;
+ }
+ if (a + 1 < i) {
+ s.push((o = { children: [], index: 0 }));
+ c.children[c.index] = o.children;
+ c = o;
+ }
+ }
+ return s[0].children;
+ }
+ function getBlockBufferOffset(e, t, a) {
+ return 64 * ((e.blocksPerLine + 1) * t + a);
+ }
+ function decodeScan(e, t, a, n, o, c, l, h, u, d = !1) {
+ const f = a.mcusPerLine,
+ g = a.progressive,
+ p = t;
+ let m = 0,
+ b = 0;
+ function readBit() {
+ if (b > 0) {
+ b--;
+ return (m >> b) & 1;
+ }
+ m = e[t++];
+ if (255 === m) {
+ const r = e[t++];
+ if (r) {
+ if (220 === r && d) {
+ t += 2;
+ const r = (0, i.readUint16)(e, t);
+ t += 2;
+ if (r > 0 && r !== a.scanLines)
+ throw new DNLMarkerError(
+ "Found DNL marker (0xFFDC) while parsing scan data",
+ r,
+ );
+ } else if (217 === r) {
+ if (d) {
+ const e = x * (8 === a.precision ? 8 : 0);
+ if (e > 0 && Math.round(a.scanLines / e) >= 5)
+ throw new DNLMarkerError(
+ "Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter",
+ e,
+ );
+ }
+ throw new EOIMarkerError(
+ "Found EOI marker (0xFFD9) while parsing scan data",
+ );
+ }
+ throw new JpegError(
+ `unexpected marker ${((m << 8) | r).toString(16)}`,
+ );
+ }
+ }
+ b = 7;
+ return m >>> 7;
+ }
+ function decodeHuffman(e) {
+ let t = e;
+ for (;;) {
+ t = t[readBit()];
+ switch (typeof t) {
+ case "number":
+ return t;
+ case "object":
+ continue;
+ }
+ throw new JpegError("invalid huffman sequence");
+ }
+ }
+ function receive(e) {
+ let t = 0;
+ for (; e > 0; ) {
+ t = (t << 1) | readBit();
+ e--;
+ }
+ return t;
+ }
+ function receiveAndExtend(e) {
+ if (1 === e) return 1 === readBit() ? 1 : -1;
+ const t = receive(e);
+ return t >= 1 << (e - 1) ? t : t + (-1 << e) + 1;
+ }
+ let y = 0;
+ let w,
+ S = 0;
+ let x = 0;
+ function decodeMcu(e, t, a, r, n) {
+ const i = a % f;
+ x = ((a / f) | 0) * e.v + r;
+ const s = i * e.h + n;
+ t(e, getBlockBufferOffset(e, x, s));
+ }
+ function decodeBlock(e, t, a) {
+ x = (a / e.blocksPerLine) | 0;
+ const r = a % e.blocksPerLine;
+ t(e, getBlockBufferOffset(e, x, r));
+ }
+ const C = n.length;
+ let k, v, F, O, T, M;
+ M = g
+ ? 0 === c
+ ? 0 === h
+ ? function decodeDCFirst(e, t) {
+ const a = decodeHuffman(e.huffmanTableDC),
+ r = 0 === a ? 0 : receiveAndExtend(a) << u;
+ e.blockData[t] = e.pred += r;
+ }
+ : function decodeDCSuccessive(e, t) {
+ e.blockData[t] |= readBit() << u;
+ }
+ : 0 === h
+ ? function decodeACFirst(e, t) {
+ if (y > 0) {
+ y--;
+ return;
+ }
+ let a = c;
+ const r = l;
+ for (; a <= r; ) {
+ const r = decodeHuffman(e.huffmanTableAC),
+ n = 15 & r,
+ i = r >> 4;
+ if (0 === n) {
+ if (i < 15) {
+ y = receive(i) + (1 << i) - 1;
+ break;
+ }
+ a += 16;
+ continue;
+ }
+ a += i;
+ const o = s[a];
+ e.blockData[t + o] = receiveAndExtend(n) * (1 << u);
+ a++;
+ }
+ }
+ : function decodeACSuccessive(e, t) {
+ let a = c;
+ const r = l;
+ let n,
+ i,
+ o = 0;
+ for (; a <= r; ) {
+ const r = t + s[a],
+ c = e.blockData[r] < 0 ? -1 : 1;
+ switch (S) {
+ case 0:
+ i = decodeHuffman(e.huffmanTableAC);
+ n = 15 & i;
+ o = i >> 4;
+ if (0 === n)
+ if (o < 15) {
+ y = receive(o) + (1 << o);
+ S = 4;
+ } else {
+ o = 16;
+ S = 1;
+ }
+ else {
+ if (1 !== n)
+ throw new JpegError("invalid ACn encoding");
+ w = receiveAndExtend(n);
+ S = o ? 2 : 3;
+ }
+ continue;
+ case 1:
+ case 2:
+ if (e.blockData[r])
+ e.blockData[r] += c * (readBit() << u);
+ else {
+ o--;
+ 0 === o && (S = 2 === S ? 3 : 0);
+ }
+ break;
+ case 3:
+ if (e.blockData[r])
+ e.blockData[r] += c * (readBit() << u);
+ else {
+ e.blockData[r] = w << u;
+ S = 0;
+ }
+ break;
+ case 4:
+ e.blockData[r] &&
+ (e.blockData[r] += c * (readBit() << u));
+ }
+ a++;
+ }
+ if (4 === S) {
+ y--;
+ 0 === y && (S = 0);
+ }
+ }
+ : function decodeBaseline(e, t) {
+ const a = decodeHuffman(e.huffmanTableDC),
+ r = 0 === a ? 0 : receiveAndExtend(a);
+ e.blockData[t] = e.pred += r;
+ let n = 1;
+ for (; n < 64; ) {
+ const a = decodeHuffman(e.huffmanTableAC),
+ r = 15 & a,
+ i = a >> 4;
+ if (0 === r) {
+ if (i < 15) break;
+ n += 16;
+ continue;
+ }
+ n += i;
+ const o = s[n];
+ e.blockData[t + o] = receiveAndExtend(r);
+ n++;
+ }
+ };
+ let D,
+ E = 0;
+ const N =
+ 1 === C
+ ? n[0].blocksPerLine * n[0].blocksPerColumn
+ : f * a.mcusPerColumn;
+ let R, L;
+ for (; E <= N; ) {
+ const a = o ? Math.min(N - E, o) : N;
+ if (a > 0) {
+ for (v = 0; v < C; v++) n[v].pred = 0;
+ y = 0;
+ if (1 === C) {
+ k = n[0];
+ for (T = 0; T < a; T++) {
+ decodeBlock(k, M, E);
+ E++;
+ }
+ } else
+ for (T = 0; T < a; T++) {
+ for (v = 0; v < C; v++) {
+ k = n[v];
+ R = k.h;
+ L = k.v;
+ for (F = 0; F < L; F++)
+ for (O = 0; O < R; O++) decodeMcu(k, M, E, F, O);
+ }
+ E++;
+ }
+ }
+ b = 0;
+ D = findNextFileMarker(e, t);
+ if (!D) break;
+ if (D.invalid) {
+ const e = a > 0 ? "unexpected" : "excessive";
+ (0, r.warn)(
+ `decodeScan - ${e} MCU data, current marker is: ${D.invalid}`,
+ );
+ t = D.offset;
+ }
+ if (!(D.marker >= 65488 && D.marker <= 65495)) break;
+ t += 2;
+ }
+ return t - p;
+ }
+ function quantizeAndInverse(e, t, a) {
+ const r = e.quantizationTable,
+ n = e.blockData;
+ let i, s, p, m, b, y, w, S, x, C, k, v, F, O, T, M, D;
+ if (!r) throw new JpegError("missing required Quantization Table.");
+ for (let e = 0; e < 64; e += 8) {
+ x = n[t + e];
+ C = n[t + e + 1];
+ k = n[t + e + 2];
+ v = n[t + e + 3];
+ F = n[t + e + 4];
+ O = n[t + e + 5];
+ T = n[t + e + 6];
+ M = n[t + e + 7];
+ x *= r[e];
+ if (0 != (C | k | v | F | O | T | M)) {
+ C *= r[e + 1];
+ k *= r[e + 2];
+ v *= r[e + 3];
+ F *= r[e + 4];
+ O *= r[e + 5];
+ T *= r[e + 6];
+ M *= r[e + 7];
+ i = (f * x + 128) >> 8;
+ s = (f * F + 128) >> 8;
+ p = k;
+ m = T;
+ b = (g * (C - M) + 128) >> 8;
+ S = (g * (C + M) + 128) >> 8;
+ y = v << 4;
+ w = O << 4;
+ i = (i + s + 1) >> 1;
+ s = i - s;
+ D = (p * d + m * u + 128) >> 8;
+ p = (p * u - m * d + 128) >> 8;
+ m = D;
+ b = (b + w + 1) >> 1;
+ w = b - w;
+ S = (S + y + 1) >> 1;
+ y = S - y;
+ i = (i + m + 1) >> 1;
+ m = i - m;
+ s = (s + p + 1) >> 1;
+ p = s - p;
+ D = (b * h + S * l + 2048) >> 12;
+ b = (b * l - S * h + 2048) >> 12;
+ S = D;
+ D = (y * c + w * o + 2048) >> 12;
+ y = (y * o - w * c + 2048) >> 12;
+ w = D;
+ a[e] = i + S;
+ a[e + 7] = i - S;
+ a[e + 1] = s + w;
+ a[e + 6] = s - w;
+ a[e + 2] = p + y;
+ a[e + 5] = p - y;
+ a[e + 3] = m + b;
+ a[e + 4] = m - b;
+ } else {
+ D = (f * x + 512) >> 10;
+ a[e] = D;
+ a[e + 1] = D;
+ a[e + 2] = D;
+ a[e + 3] = D;
+ a[e + 4] = D;
+ a[e + 5] = D;
+ a[e + 6] = D;
+ a[e + 7] = D;
+ }
+ }
+ for (let e = 0; e < 8; ++e) {
+ x = a[e];
+ C = a[e + 8];
+ k = a[e + 16];
+ v = a[e + 24];
+ F = a[e + 32];
+ O = a[e + 40];
+ T = a[e + 48];
+ M = a[e + 56];
+ if (0 != (C | k | v | F | O | T | M)) {
+ i = (f * x + 2048) >> 12;
+ s = (f * F + 2048) >> 12;
+ p = k;
+ m = T;
+ b = (g * (C - M) + 2048) >> 12;
+ S = (g * (C + M) + 2048) >> 12;
+ y = v;
+ w = O;
+ i = 4112 + ((i + s + 1) >> 1);
+ s = i - s;
+ D = (p * d + m * u + 2048) >> 12;
+ p = (p * u - m * d + 2048) >> 12;
+ m = D;
+ b = (b + w + 1) >> 1;
+ w = b - w;
+ S = (S + y + 1) >> 1;
+ y = S - y;
+ i = (i + m + 1) >> 1;
+ m = i - m;
+ s = (s + p + 1) >> 1;
+ p = s - p;
+ D = (b * h + S * l + 2048) >> 12;
+ b = (b * l - S * h + 2048) >> 12;
+ S = D;
+ D = (y * c + w * o + 2048) >> 12;
+ y = (y * o - w * c + 2048) >> 12;
+ w = D;
+ x = i + S;
+ M = i - S;
+ C = s + w;
+ T = s - w;
+ k = p + y;
+ O = p - y;
+ v = m + b;
+ F = m - b;
+ x < 16 ? (x = 0) : x >= 4080 ? (x = 255) : (x >>= 4);
+ C < 16 ? (C = 0) : C >= 4080 ? (C = 255) : (C >>= 4);
+ k < 16 ? (k = 0) : k >= 4080 ? (k = 255) : (k >>= 4);
+ v < 16 ? (v = 0) : v >= 4080 ? (v = 255) : (v >>= 4);
+ F < 16 ? (F = 0) : F >= 4080 ? (F = 255) : (F >>= 4);
+ O < 16 ? (O = 0) : O >= 4080 ? (O = 255) : (O >>= 4);
+ T < 16 ? (T = 0) : T >= 4080 ? (T = 255) : (T >>= 4);
+ M < 16 ? (M = 0) : M >= 4080 ? (M = 255) : (M >>= 4);
+ n[t + e] = x;
+ n[t + e + 8] = C;
+ n[t + e + 16] = k;
+ n[t + e + 24] = v;
+ n[t + e + 32] = F;
+ n[t + e + 40] = O;
+ n[t + e + 48] = T;
+ n[t + e + 56] = M;
+ } else {
+ D = (f * x + 8192) >> 14;
+ D = D < -2040 ? 0 : D >= 2024 ? 255 : (D + 2056) >> 4;
+ n[t + e] = D;
+ n[t + e + 8] = D;
+ n[t + e + 16] = D;
+ n[t + e + 24] = D;
+ n[t + e + 32] = D;
+ n[t + e + 40] = D;
+ n[t + e + 48] = D;
+ n[t + e + 56] = D;
+ }
+ }
+ }
+ function buildComponentData(e, t) {
+ const a = t.blocksPerLine,
+ r = t.blocksPerColumn,
+ n = new Int16Array(64);
+ for (let e = 0; e < r; e++)
+ for (let r = 0; r < a; r++) {
+ quantizeAndInverse(t, getBlockBufferOffset(t, e, r), n);
+ }
+ return t.blockData;
+ }
+ function findNextFileMarker(e, t, a = t) {
+ const r = e.length - 1;
+ let n = a < t ? a : t;
+ if (t >= r) return null;
+ const s = (0, i.readUint16)(e, t);
+ if (s >= 65472 && s <= 65534)
+ return { invalid: null, marker: s, offset: t };
+ let o = (0, i.readUint16)(e, n);
+ for (; !(o >= 65472 && o <= 65534); ) {
+ if (++n >= r) return null;
+ o = (0, i.readUint16)(e, n);
+ }
+ return { invalid: s.toString(16), marker: o, offset: n };
+ }
+ t.JpegImage = class JpegImage {
+ constructor({
+ decodeTransform: e = null,
+ colorTransform: t = -1,
+ } = {}) {
+ this._decodeTransform = e;
+ this._colorTransform = t;
+ }
+ parse(e, { dnlScanLines: t = null } = {}) {
+ function readDataBlock() {
+ const t = (0, i.readUint16)(e, o);
+ o += 2;
+ let a = o + t - 2;
+ const n = findNextFileMarker(e, a, o);
+ if (n?.invalid) {
+ (0, r.warn)(
+ "readDataBlock - incorrect length, current marker is: " +
+ n.invalid,
+ );
+ a = n.offset;
+ }
+ const s = e.subarray(o, a);
+ o += s.length;
+ return s;
+ }
+ function prepareComponents(e) {
+ const t = Math.ceil(e.samplesPerLine / 8 / e.maxH),
+ a = Math.ceil(e.scanLines / 8 / e.maxV);
+ for (const r of e.components) {
+ const n = Math.ceil(
+ (Math.ceil(e.samplesPerLine / 8) * r.h) / e.maxH,
+ ),
+ i = Math.ceil((Math.ceil(e.scanLines / 8) * r.v) / e.maxV),
+ s = t * r.h,
+ o = 64 * (a * r.v) * (s + 1);
+ r.blockData = new Int16Array(o);
+ r.blocksPerLine = n;
+ r.blocksPerColumn = i;
+ }
+ e.mcusPerLine = t;
+ e.mcusPerColumn = a;
+ }
+ let a,
+ n,
+ o = 0,
+ c = null,
+ l = null,
+ h = 0;
+ const u = [],
+ d = [],
+ f = [];
+ let g = (0, i.readUint16)(e, o);
+ o += 2;
+ if (65496 !== g) throw new JpegError("SOI not found");
+ g = (0, i.readUint16)(e, o);
+ o += 2;
+ e: for (; 65497 !== g; ) {
+ let p, m, b;
+ switch (g) {
+ case 65504:
+ case 65505:
+ case 65506:
+ case 65507:
+ case 65508:
+ case 65509:
+ case 65510:
+ case 65511:
+ case 65512:
+ case 65513:
+ case 65514:
+ case 65515:
+ case 65516:
+ case 65517:
+ case 65518:
+ case 65519:
+ case 65534:
+ const y = readDataBlock();
+ 65504 === g &&
+ 74 === y[0] &&
+ 70 === y[1] &&
+ 73 === y[2] &&
+ 70 === y[3] &&
+ 0 === y[4] &&
+ (c = {
+ version: { major: y[5], minor: y[6] },
+ densityUnits: y[7],
+ xDensity: (y[8] << 8) | y[9],
+ yDensity: (y[10] << 8) | y[11],
+ thumbWidth: y[12],
+ thumbHeight: y[13],
+ thumbData: y.subarray(14, 14 + 3 * y[12] * y[13]),
+ });
+ 65518 === g &&
+ 65 === y[0] &&
+ 100 === y[1] &&
+ 111 === y[2] &&
+ 98 === y[3] &&
+ 101 === y[4] &&
+ (l = {
+ version: (y[5] << 8) | y[6],
+ flags0: (y[7] << 8) | y[8],
+ flags1: (y[9] << 8) | y[10],
+ transformCode: y[11],
+ });
+ break;
+ case 65499:
+ const w = (0, i.readUint16)(e, o);
+ o += 2;
+ const S = w + o - 2;
+ let x;
+ for (; o < S; ) {
+ const t = e[o++],
+ a = new Uint16Array(64);
+ if (t >> 4 == 0)
+ for (m = 0; m < 64; m++) {
+ x = s[m];
+ a[x] = e[o++];
+ }
+ else {
+ if (t >> 4 != 1)
+ throw new JpegError("DQT - invalid table spec");
+ for (m = 0; m < 64; m++) {
+ x = s[m];
+ a[x] = (0, i.readUint16)(e, o);
+ o += 2;
+ }
+ }
+ u[15 & t] = a;
+ }
+ break;
+ case 65472:
+ case 65473:
+ case 65474:
+ if (a)
+ throw new JpegError("Only single frame JPEGs supported");
+ o += 2;
+ a = {};
+ a.extended = 65473 === g;
+ a.progressive = 65474 === g;
+ a.precision = e[o++];
+ const C = (0, i.readUint16)(e, o);
+ o += 2;
+ a.scanLines = t || C;
+ a.samplesPerLine = (0, i.readUint16)(e, o);
+ o += 2;
+ a.components = [];
+ a.componentIds = {};
+ const k = e[o++];
+ let v = 0,
+ F = 0;
+ for (p = 0; p < k; p++) {
+ const t = e[o],
+ r = e[o + 1] >> 4,
+ n = 15 & e[o + 1];
+ v < r && (v = r);
+ F < n && (F = n);
+ const i = e[o + 2];
+ b = a.components.push({
+ h: r,
+ v: n,
+ quantizationId: i,
+ quantizationTable: null,
+ });
+ a.componentIds[t] = b - 1;
+ o += 3;
+ }
+ a.maxH = v;
+ a.maxV = F;
+ prepareComponents(a);
+ break;
+ case 65476:
+ const O = (0, i.readUint16)(e, o);
+ o += 2;
+ for (p = 2; p < O; ) {
+ const t = e[o++],
+ a = new Uint8Array(16);
+ let r = 0;
+ for (m = 0; m < 16; m++, o++) r += a[m] = e[o];
+ const n = new Uint8Array(r);
+ for (m = 0; m < r; m++, o++) n[m] = e[o];
+ p += 17 + r;
+ (t >> 4 == 0 ? f : d)[15 & t] = buildHuffmanTable(a, n);
+ }
+ break;
+ case 65501:
+ o += 2;
+ n = (0, i.readUint16)(e, o);
+ o += 2;
+ break;
+ case 65498:
+ const T = 1 == ++h && !t;
+ o += 2;
+ const M = e[o++],
+ D = [];
+ for (p = 0; p < M; p++) {
+ const t = e[o++],
+ r = a.componentIds[t],
+ n = a.components[r];
+ n.index = t;
+ const i = e[o++];
+ n.huffmanTableDC = f[i >> 4];
+ n.huffmanTableAC = d[15 & i];
+ D.push(n);
+ }
+ const E = e[o++],
+ N = e[o++],
+ R = e[o++];
+ try {
+ const t = decodeScan(
+ e,
+ o,
+ a,
+ D,
+ n,
+ E,
+ N,
+ R >> 4,
+ 15 & R,
+ T,
+ );
+ o += t;
+ } catch (t) {
+ if (t instanceof DNLMarkerError) {
+ (0, r.warn)(
+ `${t.message} -- attempting to re-parse the JPEG image.`,
+ );
+ return this.parse(e, { dnlScanLines: t.scanLines });
+ }
+ if (t instanceof EOIMarkerError) {
+ (0, r.warn)(
+ `${t.message} -- ignoring the rest of the image data.`,
+ );
+ break e;
+ }
+ throw t;
+ }
+ break;
+ case 65500:
+ o += 4;
+ break;
+ case 65535:
+ 255 !== e[o] && o--;
+ break;
+ default:
+ const L = findNextFileMarker(e, o - 2, o - 3);
+ if (L?.invalid) {
+ (0, r.warn)(
+ "JpegImage.parse - unexpected data, current marker is: " +
+ L.invalid,
+ );
+ o = L.offset;
+ break;
+ }
+ if (!L || o >= e.length - 1) {
+ (0, r.warn)(
+ "JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).",
+ );
+ break e;
+ }
+ throw new JpegError(
+ "JpegImage.parse - unknown marker: " + g.toString(16),
+ );
+ }
+ g = (0, i.readUint16)(e, o);
+ o += 2;
+ }
+ this.width = a.samplesPerLine;
+ this.height = a.scanLines;
+ this.jfif = c;
+ this.adobe = l;
+ this.components = [];
+ for (const e of a.components) {
+ const t = u[e.quantizationId];
+ t && (e.quantizationTable = t);
+ this.components.push({
+ index: e.index,
+ output: buildComponentData(0, e),
+ scaleX: e.h / a.maxH,
+ scaleY: e.v / a.maxV,
+ blocksPerLine: e.blocksPerLine,
+ blocksPerColumn: e.blocksPerColumn,
+ });
+ }
+ this.numComponents = this.components.length;
+ }
+ _getLinearizedBlockData(e, t, a = !1) {
+ const r = this.width / e,
+ n = this.height / t;
+ let i,
+ s,
+ o,
+ c,
+ l,
+ h,
+ u,
+ d,
+ f,
+ g,
+ p,
+ m = 0;
+ const b = this.components.length,
+ y = e * t * b,
+ w = new Uint8ClampedArray(y),
+ S = new Uint32Array(e),
+ x = 4294967288;
+ let C;
+ for (u = 0; u < b; u++) {
+ i = this.components[u];
+ s = i.scaleX * r;
+ o = i.scaleY * n;
+ m = u;
+ p = i.output;
+ c = (i.blocksPerLine + 1) << 3;
+ if (s !== C) {
+ for (l = 0; l < e; l++) {
+ d = 0 | (l * s);
+ S[l] = ((d & x) << 3) | (7 & d);
+ }
+ C = s;
+ }
+ for (h = 0; h < t; h++) {
+ d = 0 | (h * o);
+ g = (c * (d & x)) | ((7 & d) << 3);
+ for (l = 0; l < e; l++) {
+ w[m] = p[g + S[l]];
+ m += b;
+ }
+ }
+ }
+ let k = this._decodeTransform;
+ a ||
+ 4 !== b ||
+ k ||
+ (k = new Int32Array([
+ -256, 255, -256, 255, -256, 255, -256, 255,
+ ]));
+ if (k)
+ for (u = 0; u < y; )
+ for (d = 0, f = 0; d < b; d++, u++, f += 2)
+ w[u] = ((w[u] * k[f]) >> 8) + k[f + 1];
+ return w;
+ }
+ get _isColorConversionNeeded() {
+ return this.adobe
+ ? !!this.adobe.transformCode
+ : 3 === this.numComponents
+ ? 0 !== this._colorTransform &&
+ (82 !== this.components[0].index ||
+ 71 !== this.components[1].index ||
+ 66 !== this.components[2].index)
+ : 1 === this._colorTransform;
+ }
+ _convertYccToRgb(e) {
+ let t, a, r;
+ for (let n = 0, i = e.length; n < i; n += 3) {
+ t = e[n];
+ a = e[n + 1];
+ r = e[n + 2];
+ e[n] = t - 179.456 + 1.402 * r;
+ e[n + 1] = t + 135.459 - 0.344 * a - 0.714 * r;
+ e[n + 2] = t - 226.816 + 1.772 * a;
+ }
+ return e;
+ }
+ _convertYccToRgba(e, t) {
+ for (let a = 0, r = 0, n = e.length; a < n; a += 3, r += 4) {
+ const n = e[a],
+ i = e[a + 1],
+ s = e[a + 2];
+ t[r] = n - 179.456 + 1.402 * s;
+ t[r + 1] = n + 135.459 - 0.344 * i - 0.714 * s;
+ t[r + 2] = n - 226.816 + 1.772 * i;
+ t[r + 3] = 255;
+ }
+ return t;
+ }
+ _convertYcckToRgb(e) {
+ let t,
+ a,
+ r,
+ n,
+ i = 0;
+ for (let s = 0, o = e.length; s < o; s += 4) {
+ t = e[s];
+ a = e[s + 1];
+ r = e[s + 2];
+ n = e[s + 3];
+ e[i++] =
+ a *
+ (-660635669420364e-19 * a +
+ 0.000437130475926232 * r -
+ 54080610064599e-18 * t +
+ 0.00048449797120281 * n -
+ 0.154362151871126) -
+ 122.67195406894 +
+ r *
+ (-0.000957964378445773 * r +
+ 0.000817076911346625 * t -
+ 0.00477271405408747 * n +
+ 1.53380253221734) +
+ t *
+ (0.000961250184130688 * t -
+ 0.00266257332283933 * n +
+ 0.48357088451265) +
+ n * (-0.000336197177618394 * n + 0.484791561490776);
+ e[i++] =
+ 107.268039397724 +
+ a *
+ (219927104525741e-19 * a -
+ 0.000640992018297945 * r +
+ 0.000659397001245577 * t +
+ 0.000426105652938837 * n -
+ 0.176491792462875) +
+ r *
+ (-0.000778269941513683 * r +
+ 0.00130872261408275 * t +
+ 0.000770482631801132 * n -
+ 0.151051492775562) +
+ t *
+ (0.00126935368114843 * t -
+ 0.00265090189010898 * n +
+ 0.25802910206845) +
+ n * (-0.000318913117588328 * n - 0.213742400323665);
+ e[i++] =
+ a *
+ (-0.000570115196973677 * a -
+ 263409051004589e-19 * r +
+ 0.0020741088115012 * t -
+ 0.00288260236853442 * n +
+ 0.814272968359295) -
+ 20.810012546947 +
+ r *
+ (-153496057440975e-19 * r -
+ 0.000132689043961446 * t +
+ 0.000560833691242812 * n -
+ 0.195152027534049) +
+ t *
+ (0.00174418132927582 * t -
+ 0.00255243321439347 * n +
+ 0.116935020465145) +
+ n * (-0.000343531996510555 * n + 0.24165260232407);
+ }
+ return e.subarray(0, i);
+ }
+ _convertYcckToRgba(e) {
+ for (let t = 0, a = e.length; t < a; t += 4) {
+ const a = e[t],
+ r = e[t + 1],
+ n = e[t + 2],
+ i = e[t + 3];
+ e[t] =
+ r *
+ (-660635669420364e-19 * r +
+ 0.000437130475926232 * n -
+ 54080610064599e-18 * a +
+ 0.00048449797120281 * i -
+ 0.154362151871126) -
+ 122.67195406894 +
+ n *
+ (-0.000957964378445773 * n +
+ 0.000817076911346625 * a -
+ 0.00477271405408747 * i +
+ 1.53380253221734) +
+ a *
+ (0.000961250184130688 * a -
+ 0.00266257332283933 * i +
+ 0.48357088451265) +
+ i * (-0.000336197177618394 * i + 0.484791561490776);
+ e[t + 1] =
+ 107.268039397724 +
+ r *
+ (219927104525741e-19 * r -
+ 0.000640992018297945 * n +
+ 0.000659397001245577 * a +
+ 0.000426105652938837 * i -
+ 0.176491792462875) +
+ n *
+ (-0.000778269941513683 * n +
+ 0.00130872261408275 * a +
+ 0.000770482631801132 * i -
+ 0.151051492775562) +
+ a *
+ (0.00126935368114843 * a -
+ 0.00265090189010898 * i +
+ 0.25802910206845) +
+ i * (-0.000318913117588328 * i - 0.213742400323665);
+ e[t + 2] =
+ r *
+ (-0.000570115196973677 * r -
+ 263409051004589e-19 * n +
+ 0.0020741088115012 * a -
+ 0.00288260236853442 * i +
+ 0.814272968359295) -
+ 20.810012546947 +
+ n *
+ (-153496057440975e-19 * n -
+ 0.000132689043961446 * a +
+ 0.000560833691242812 * i -
+ 0.195152027534049) +
+ a *
+ (0.00174418132927582 * a -
+ 0.00255243321439347 * i +
+ 0.116935020465145) +
+ i * (-0.000343531996510555 * i + 0.24165260232407);
+ e[t + 3] = 255;
+ }
+ return e;
+ }
+ _convertYcckToCmyk(e) {
+ let t, a, r;
+ for (let n = 0, i = e.length; n < i; n += 4) {
+ t = e[n];
+ a = e[n + 1];
+ r = e[n + 2];
+ e[n] = 434.456 - t - 1.402 * r;
+ e[n + 1] = 119.541 - t + 0.344 * a + 0.714 * r;
+ e[n + 2] = 481.816 - t - 1.772 * a;
+ }
+ return e;
+ }
+ _convertCmykToRgb(e) {
+ let t,
+ a,
+ r,
+ n,
+ i = 0;
+ for (let s = 0, o = e.length; s < o; s += 4) {
+ t = e[s];
+ a = e[s + 1];
+ r = e[s + 2];
+ n = e[s + 3];
+ e[i++] =
+ 255 +
+ t *
+ (-6747147073602441e-20 * t +
+ 0.0008379262121013727 * a +
+ 0.0002894718188643294 * r +
+ 0.003264231057537806 * n -
+ 1.1185611867203937) +
+ a *
+ (26374107616089405e-21 * a -
+ 8626949158638572e-20 * r -
+ 0.0002748769067499491 * n -
+ 0.02155688794978967) +
+ r *
+ (-3878099212869363e-20 * r -
+ 0.0003267808279485286 * n +
+ 0.0686742238595345) -
+ n * (0.0003361971776183937 * n + 0.7430659151342254);
+ e[i++] =
+ 255 +
+ t *
+ (0.00013596372813588848 * t +
+ 0.000924537132573585 * a +
+ 0.00010567359618683593 * r +
+ 0.0004791864687436512 * n -
+ 0.3109689587515875) +
+ a *
+ (-0.00023545346108370344 * a +
+ 0.0002702845253534714 * r +
+ 0.0020200308977307156 * n -
+ 0.7488052167015494) +
+ r *
+ (6834815998235662e-20 * r +
+ 0.00015168452363460973 * n -
+ 0.09751927774728933) -
+ n * (0.0003189131175883281 * n + 0.7364883807733168);
+ e[i++] =
+ 255 +
+ t *
+ (13598650411385307e-21 * t +
+ 0.00012423956175490851 * a +
+ 0.0004751985097583589 * r -
+ 36729317476630422e-22 * n -
+ 0.05562186980264034) +
+ a *
+ (0.00016141380598724676 * a +
+ 0.0009692239130725186 * r +
+ 0.0007782692450036253 * n -
+ 0.44015232367526463) +
+ r *
+ (5.068882914068769e-7 * r +
+ 0.0017778369011375071 * n -
+ 0.7591454649749609) -
+ n * (0.0003435319965105553 * n + 0.7063770186160144);
+ }
+ return e.subarray(0, i);
+ }
+ _convertCmykToRgba(e) {
+ for (let t = 0, a = e.length; t < a; t += 4) {
+ const a = e[t],
+ r = e[t + 1],
+ n = e[t + 2],
+ i = e[t + 3];
+ e[t] =
+ 255 +
+ a *
+ (-6747147073602441e-20 * a +
+ 0.0008379262121013727 * r +
+ 0.0002894718188643294 * n +
+ 0.003264231057537806 * i -
+ 1.1185611867203937) +
+ r *
+ (26374107616089405e-21 * r -
+ 8626949158638572e-20 * n -
+ 0.0002748769067499491 * i -
+ 0.02155688794978967) +
+ n *
+ (-3878099212869363e-20 * n -
+ 0.0003267808279485286 * i +
+ 0.0686742238595345) -
+ i * (0.0003361971776183937 * i + 0.7430659151342254);
+ e[t + 1] =
+ 255 +
+ a *
+ (0.00013596372813588848 * a +
+ 0.000924537132573585 * r +
+ 0.00010567359618683593 * n +
+ 0.0004791864687436512 * i -
+ 0.3109689587515875) +
+ r *
+ (-0.00023545346108370344 * r +
+ 0.0002702845253534714 * n +
+ 0.0020200308977307156 * i -
+ 0.7488052167015494) +
+ n *
+ (6834815998235662e-20 * n +
+ 0.00015168452363460973 * i -
+ 0.09751927774728933) -
+ i * (0.0003189131175883281 * i + 0.7364883807733168);
+ e[t + 2] =
+ 255 +
+ a *
+ (13598650411385307e-21 * a +
+ 0.00012423956175490851 * r +
+ 0.0004751985097583589 * n -
+ 36729317476630422e-22 * i -
+ 0.05562186980264034) +
+ r *
+ (0.00016141380598724676 * r +
+ 0.0009692239130725186 * n +
+ 0.0007782692450036253 * i -
+ 0.44015232367526463) +
+ n *
+ (5.068882914068769e-7 * n +
+ 0.0017778369011375071 * i -
+ 0.7591454649749609) -
+ i * (0.0003435319965105553 * i + 0.7063770186160144);
+ e[t + 3] = 255;
+ }
+ return e;
+ }
+ getData({
+ width: e,
+ height: t,
+ forceRGBA: a = !1,
+ forceRGB: r = !1,
+ isSourcePDF: i = !1,
+ }) {
+ if (this.numComponents > 4)
+ throw new JpegError("Unsupported color mode");
+ const s = this._getLinearizedBlockData(e, t, i);
+ if (1 === this.numComponents && (a || r)) {
+ const e = s.length * (a ? 4 : 3),
+ t = new Uint8ClampedArray(e);
+ let r = 0;
+ if (a) (0, n.grayToRGBA)(s, new Uint32Array(t.buffer));
+ else
+ for (const e of s) {
+ t[r++] = e;
+ t[r++] = e;
+ t[r++] = e;
+ }
+ return t;
+ }
+ if (3 === this.numComponents && this._isColorConversionNeeded) {
+ if (a) {
+ const e = new Uint8ClampedArray((s.length / 3) * 4);
+ return this._convertYccToRgba(s, e);
+ }
+ return this._convertYccToRgb(s);
+ }
+ if (4 === this.numComponents) {
+ if (this._isColorConversionNeeded)
+ return a
+ ? this._convertYcckToRgba(s)
+ : r
+ ? this._convertYcckToRgb(s)
+ : this._convertYcckToCmyk(s);
+ if (a) return this._convertCmykToRgba(s);
+ if (r) return this._convertCmykToRgb(s);
+ }
+ return s;
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.convertBlackAndWhiteToRGBA = convertBlackAndWhiteToRGBA;
+ t.convertToRGBA = function convertToRGBA(e) {
+ switch (e.kind) {
+ case r.ImageKind.GRAYSCALE_1BPP:
+ return convertBlackAndWhiteToRGBA(e);
+ case r.ImageKind.RGB_24BPP:
+ return (function convertRGBToRGBA({
+ src: e,
+ srcPos: t = 0,
+ dest: a,
+ destPos: n = 0,
+ width: i,
+ height: s,
+ }) {
+ let o = 0;
+ const c = e.length >> 2,
+ l = new Uint32Array(e.buffer, t, c);
+ if (r.FeatureTest.isLittleEndian) {
+ for (; o < c - 2; o += 3, n += 4) {
+ const e = l[o],
+ t = l[o + 1],
+ r = l[o + 2];
+ a[n] = 4278190080 | e;
+ a[n + 1] = (e >>> 24) | (t << 8) | 4278190080;
+ a[n + 2] = (t >>> 16) | (r << 16) | 4278190080;
+ a[n + 3] = (r >>> 8) | 4278190080;
+ }
+ for (let t = 4 * o, r = e.length; t < r; t += 3)
+ a[n++] =
+ e[t] | (e[t + 1] << 8) | (e[t + 2] << 16) | 4278190080;
+ } else {
+ for (; o < c - 2; o += 3, n += 4) {
+ const e = l[o],
+ t = l[o + 1],
+ r = l[o + 2];
+ a[n] = 255 | e;
+ a[n + 1] = (e << 24) | (t >>> 8) | 255;
+ a[n + 2] = (t << 16) | (r >>> 16) | 255;
+ a[n + 3] = (r << 8) | 255;
+ }
+ for (let t = 4 * o, r = e.length; t < r; t += 3)
+ a[n++] =
+ (e[t] << 24) | (e[t + 1] << 16) | (e[t + 2] << 8) | 255;
+ }
+ return { srcPos: t, destPos: n };
+ })(e);
+ }
+ return null;
+ };
+ t.grayToRGBA = function grayToRGBA(e, t) {
+ if (r.FeatureTest.isLittleEndian)
+ for (let a = 0, r = e.length; a < r; a++)
+ t[a] = (65793 * e[a]) | 4278190080;
+ else
+ for (let a = 0, r = e.length; a < r; a++)
+ t[a] = (16843008 * e[a]) | 255;
+ };
+ var r = a(2);
+ function convertBlackAndWhiteToRGBA({
+ src: e,
+ srcPos: t = 0,
+ dest: a,
+ width: n,
+ height: i,
+ nonBlackColor: s = 4294967295,
+ inverseDecode: o = !1,
+ }) {
+ const c = r.FeatureTest.isLittleEndian ? 4278190080 : 255,
+ [l, h] = o ? [s, c] : [c, s],
+ u = n >> 3,
+ d = 7 & n,
+ f = e.length;
+ a = new Uint32Array(a.buffer);
+ let g = 0;
+ for (let r = 0; r < i; r++) {
+ for (const r = t + u; t < r; t++) {
+ const r = t < f ? e[t] : 255;
+ a[g++] = 128 & r ? h : l;
+ a[g++] = 64 & r ? h : l;
+ a[g++] = 32 & r ? h : l;
+ a[g++] = 16 & r ? h : l;
+ a[g++] = 8 & r ? h : l;
+ a[g++] = 4 & r ? h : l;
+ a[g++] = 2 & r ? h : l;
+ a[g++] = 1 & r ? h : l;
+ }
+ if (0 === d) continue;
+ const r = t < f ? e[t++] : 255;
+ for (let e = 0; e < d; e++) a[g++] = r & (1 << (7 - e)) ? h : l;
+ }
+ return { srcPos: t, destPos: g };
+ }
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.JpxStream = void 0;
+ var r = a(18),
+ n = a(30),
+ i = a(2);
+ class JpxStream extends r.DecodeStream {
+ constructor(e, t, a) {
+ super(t);
+ this.stream = e;
+ this.dict = e.dict;
+ this.maybeLength = t;
+ this.params = a;
+ }
+ get bytes() {
+ return (0, i.shadow)(
+ this,
+ "bytes",
+ this.stream.getBytes(this.maybeLength),
+ );
+ }
+ ensureBuffer(e) {}
+ readBlock() {
+ if (this.eof) return;
+ const e = new n.JpxImage();
+ e.parse(this.bytes);
+ const t = e.width,
+ a = e.height,
+ r = e.componentsCount,
+ i = e.tiles.length;
+ if (1 === i) this.buffer = e.tiles[0].items;
+ else {
+ const n = new Uint8ClampedArray(t * a * r);
+ for (let a = 0; a < i; a++) {
+ const i = e.tiles[a],
+ s = i.width,
+ o = i.height,
+ c = i.left,
+ l = i.top,
+ h = i.items;
+ let u = 0,
+ d = (t * l + c) * r;
+ const f = t * r,
+ g = s * r;
+ for (let e = 0; e < o; e++) {
+ const e = h.subarray(u, u + g);
+ n.set(e, d);
+ u += g;
+ d += f;
+ }
+ }
+ this.buffer = n;
+ }
+ this.bufferLength = this.buffer.length;
+ this.eof = !0;
+ }
+ }
+ t.JpxStream = JpxStream;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.JpxImage = void 0;
+ var r = a(2),
+ n = a(3),
+ i = a(25);
+ class JpxError extends r.BaseException {
+ constructor(e) {
+ super(`JPX error: ${e}`, "JpxError");
+ }
+ }
+ const s = { LL: 0, LH: 1, HL: 1, HH: 2 };
+ t.JpxImage = class JpxImage {
+ constructor() {
+ this.failOnCorruptedImage = !1;
+ }
+ parse(e) {
+ if (65359 === (0, n.readUint16)(e, 0)) {
+ this.parseCodestream(e, 0, e.length);
+ return;
+ }
+ const t = e.length;
+ let a = 0;
+ for (; a < t; ) {
+ let i = 8,
+ s = (0, n.readUint32)(e, a);
+ const o = (0, n.readUint32)(e, a + 4);
+ a += i;
+ if (1 === s) {
+ s =
+ 4294967296 * (0, n.readUint32)(e, a) +
+ (0, n.readUint32)(e, a + 4);
+ a += 8;
+ i += 8;
+ }
+ 0 === s && (s = t - a + i);
+ if (s < i) throw new JpxError("Invalid box field size");
+ const c = s - i;
+ let l = !0;
+ switch (o) {
+ case 1785737832:
+ l = !1;
+ break;
+ case 1668246642:
+ const t = e[a];
+ if (1 === t) {
+ const t = (0, n.readUint32)(e, a + 3);
+ switch (t) {
+ case 16:
+ case 17:
+ case 18:
+ break;
+ default:
+ (0, r.warn)("Unknown colorspace " + t);
+ }
+ } else 2 === t && (0, r.info)("ICC profile not supported");
+ break;
+ case 1785737827:
+ this.parseCodestream(e, a, a + c);
+ break;
+ case 1783636e3:
+ 218793738 !== (0, n.readUint32)(e, a) &&
+ (0, r.warn)("Invalid JP2 signature");
+ break;
+ case 1783634458:
+ case 1718909296:
+ case 1920099697:
+ case 1919251232:
+ case 1768449138:
+ break;
+ default:
+ const i = String.fromCharCode(
+ (o >> 24) & 255,
+ (o >> 16) & 255,
+ (o >> 8) & 255,
+ 255 & o,
+ );
+ (0, r.warn)(`Unsupported header type ${o} (${i}).`);
+ }
+ l && (a += c);
+ }
+ }
+ parseImageProperties(e) {
+ let t = e.getByte();
+ for (; t >= 0; ) {
+ const a = t;
+ t = e.getByte();
+ if (65361 === ((a << 8) | t)) {
+ e.skip(4);
+ const t = e.getInt32() >>> 0,
+ a = e.getInt32() >>> 0,
+ r = e.getInt32() >>> 0,
+ n = e.getInt32() >>> 0;
+ e.skip(16);
+ const i = e.getUint16();
+ this.width = t - r;
+ this.height = a - n;
+ this.componentsCount = i;
+ this.bitsPerComponent = 8;
+ return;
+ }
+ }
+ throw new JpxError("No size marker found in JPX stream");
+ }
+ parseCodestream(e, t, a) {
+ const i = {};
+ let s = !1;
+ try {
+ let o = t;
+ for (; o + 1 < a; ) {
+ const t = (0, n.readUint16)(e, o);
+ o += 2;
+ let a,
+ c,
+ l,
+ h,
+ u,
+ d,
+ f = 0;
+ switch (t) {
+ case 65359:
+ i.mainHeader = !0;
+ break;
+ case 65497:
+ break;
+ case 65361:
+ f = (0, n.readUint16)(e, o);
+ const g = {};
+ g.Xsiz = (0, n.readUint32)(e, o + 4);
+ g.Ysiz = (0, n.readUint32)(e, o + 8);
+ g.XOsiz = (0, n.readUint32)(e, o + 12);
+ g.YOsiz = (0, n.readUint32)(e, o + 16);
+ g.XTsiz = (0, n.readUint32)(e, o + 20);
+ g.YTsiz = (0, n.readUint32)(e, o + 24);
+ g.XTOsiz = (0, n.readUint32)(e, o + 28);
+ g.YTOsiz = (0, n.readUint32)(e, o + 32);
+ const p = (0, n.readUint16)(e, o + 36);
+ g.Csiz = p;
+ const m = [];
+ a = o + 38;
+ for (let t = 0; t < p; t++) {
+ const t = {
+ precision: 1 + (127 & e[a]),
+ isSigned: !!(128 & e[a]),
+ XRsiz: e[a + 1],
+ YRsiz: e[a + 2],
+ };
+ a += 3;
+ calculateComponentDimensions(t, g);
+ m.push(t);
+ }
+ i.SIZ = g;
+ i.components = m;
+ calculateTileGrids(i, m);
+ i.QCC = [];
+ i.COC = [];
+ break;
+ case 65372:
+ f = (0, n.readUint16)(e, o);
+ const b = {};
+ a = o + 2;
+ c = e[a++];
+ switch (31 & c) {
+ case 0:
+ h = 8;
+ u = !0;
+ break;
+ case 1:
+ h = 16;
+ u = !1;
+ break;
+ case 2:
+ h = 16;
+ u = !0;
+ break;
+ default:
+ throw new Error("Invalid SQcd value " + c);
+ }
+ b.noQuantization = 8 === h;
+ b.scalarExpounded = u;
+ b.guardBits = c >> 5;
+ l = [];
+ for (; a < f + o; ) {
+ const t = {};
+ if (8 === h) {
+ t.epsilon = e[a++] >> 3;
+ t.mu = 0;
+ } else {
+ t.epsilon = e[a] >> 3;
+ t.mu = ((7 & e[a]) << 8) | e[a + 1];
+ a += 2;
+ }
+ l.push(t);
+ }
+ b.SPqcds = l;
+ if (i.mainHeader) i.QCD = b;
+ else {
+ i.currentTile.QCD = b;
+ i.currentTile.QCC = [];
+ }
+ break;
+ case 65373:
+ f = (0, n.readUint16)(e, o);
+ const y = {};
+ a = o + 2;
+ let w;
+ if (i.SIZ.Csiz < 257) w = e[a++];
+ else {
+ w = (0, n.readUint16)(e, a);
+ a += 2;
+ }
+ c = e[a++];
+ switch (31 & c) {
+ case 0:
+ h = 8;
+ u = !0;
+ break;
+ case 1:
+ h = 16;
+ u = !1;
+ break;
+ case 2:
+ h = 16;
+ u = !0;
+ break;
+ default:
+ throw new Error("Invalid SQcd value " + c);
+ }
+ y.noQuantization = 8 === h;
+ y.scalarExpounded = u;
+ y.guardBits = c >> 5;
+ l = [];
+ for (; a < f + o; ) {
+ const t = {};
+ if (8 === h) {
+ t.epsilon = e[a++] >> 3;
+ t.mu = 0;
+ } else {
+ t.epsilon = e[a] >> 3;
+ t.mu = ((7 & e[a]) << 8) | e[a + 1];
+ a += 2;
+ }
+ l.push(t);
+ }
+ y.SPqcds = l;
+ i.mainHeader
+ ? (i.QCC[w] = y)
+ : (i.currentTile.QCC[w] = y);
+ break;
+ case 65362:
+ f = (0, n.readUint16)(e, o);
+ const S = {};
+ a = o + 2;
+ const x = e[a++];
+ S.entropyCoderWithCustomPrecincts = !!(1 & x);
+ S.sopMarkerUsed = !!(2 & x);
+ S.ephMarkerUsed = !!(4 & x);
+ S.progressionOrder = e[a++];
+ S.layersCount = (0, n.readUint16)(e, a);
+ a += 2;
+ S.multipleComponentTransform = e[a++];
+ S.decompositionLevelsCount = e[a++];
+ S.xcb = 2 + (15 & e[a++]);
+ S.ycb = 2 + (15 & e[a++]);
+ const C = e[a++];
+ S.selectiveArithmeticCodingBypass = !!(1 & C);
+ S.resetContextProbabilities = !!(2 & C);
+ S.terminationOnEachCodingPass = !!(4 & C);
+ S.verticallyStripe = !!(8 & C);
+ S.predictableTermination = !!(16 & C);
+ S.segmentationSymbolUsed = !!(32 & C);
+ S.reversibleTransformation = e[a++];
+ if (S.entropyCoderWithCustomPrecincts) {
+ const t = [];
+ for (; a < f + o; ) {
+ const r = e[a++];
+ t.push({ PPx: 15 & r, PPy: r >> 4 });
+ }
+ S.precinctsSizes = t;
+ }
+ const k = [];
+ S.selectiveArithmeticCodingBypass &&
+ k.push("selectiveArithmeticCodingBypass");
+ S.terminationOnEachCodingPass &&
+ k.push("terminationOnEachCodingPass");
+ S.verticallyStripe && k.push("verticallyStripe");
+ S.predictableTermination &&
+ k.push("predictableTermination");
+ if (k.length > 0) {
+ s = !0;
+ (0, r.warn)(
+ `JPX: Unsupported COD options (${k.join(", ")}).`,
+ );
+ }
+ if (i.mainHeader) i.COD = S;
+ else {
+ i.currentTile.COD = S;
+ i.currentTile.COC = [];
+ }
+ break;
+ case 65424:
+ f = (0, n.readUint16)(e, o);
+ d = {};
+ d.index = (0, n.readUint16)(e, o + 2);
+ d.length = (0, n.readUint32)(e, o + 4);
+ d.dataEnd = d.length + o - 2;
+ d.partIndex = e[o + 8];
+ d.partsCount = e[o + 9];
+ i.mainHeader = !1;
+ if (0 === d.partIndex) {
+ d.COD = i.COD;
+ d.COC = i.COC.slice(0);
+ d.QCD = i.QCD;
+ d.QCC = i.QCC.slice(0);
+ }
+ i.currentTile = d;
+ break;
+ case 65427:
+ d = i.currentTile;
+ if (0 === d.partIndex) {
+ initializeTile(i, d.index);
+ buildPackets(i);
+ }
+ f = d.dataEnd - o;
+ parseTilePackets(i, e, o, f);
+ break;
+ case 65363:
+ (0, r.warn)(
+ "JPX: Codestream code 0xFF53 (COC) is not implemented.",
+ );
+ case 65365:
+ case 65367:
+ case 65368:
+ case 65380:
+ f = (0, n.readUint16)(e, o);
+ break;
+ default:
+ throw new Error(
+ "Unknown codestream code: " + t.toString(16),
+ );
+ }
+ o += f;
+ }
+ } catch (e) {
+ if (s || this.failOnCorruptedImage)
+ throw new JpxError(e.message);
+ (0, r.warn)(`JPX: Trying to recover from: "${e.message}".`);
+ }
+ this.tiles = (function transformComponents(e) {
+ const t = e.SIZ,
+ a = e.components,
+ r = t.Csiz,
+ n = [];
+ for (let t = 0, i = e.tiles.length; t < i; t++) {
+ const i = e.tiles[t],
+ s = [];
+ for (let t = 0; t < r; t++) s[t] = transformTile(e, i, t);
+ const o = s[0],
+ c = new Uint8ClampedArray(o.items.length * r),
+ l = {
+ left: o.left,
+ top: o.top,
+ width: o.width,
+ height: o.height,
+ items: c,
+ };
+ let h,
+ u,
+ d,
+ f,
+ g,
+ p,
+ m,
+ b = 0;
+ if (
+ i.codingStyleDefaultParameters.multipleComponentTransform
+ ) {
+ const e = 4 === r,
+ t = s[0].items,
+ n = s[1].items,
+ o = s[2].items,
+ l = e ? s[3].items : null;
+ h = a[0].precision - 8;
+ u = 0.5 + (128 << h);
+ const y = i.components[0],
+ w = r - 3;
+ f = t.length;
+ if (y.codingStyleParameters.reversibleTransformation)
+ for (d = 0; d < f; d++, b += w) {
+ g = t[d] + u;
+ p = n[d];
+ m = o[d];
+ const e = g - ((m + p) >> 2);
+ c[b++] = (e + m) >> h;
+ c[b++] = e >> h;
+ c[b++] = (e + p) >> h;
+ }
+ else
+ for (d = 0; d < f; d++, b += w) {
+ g = t[d] + u;
+ p = n[d];
+ m = o[d];
+ c[b++] = (g + 1.402 * m) >> h;
+ c[b++] = (g - 0.34413 * p - 0.71414 * m) >> h;
+ c[b++] = (g + 1.772 * p) >> h;
+ }
+ if (e)
+ for (d = 0, b = 3; d < f; d++, b += 4)
+ c[b] = (l[d] + u) >> h;
+ } else
+ for (let e = 0; e < r; e++) {
+ const t = s[e].items;
+ h = a[e].precision - 8;
+ u = 0.5 + (128 << h);
+ for (b = e, d = 0, f = t.length; d < f; d++) {
+ c[b] = (t[d] + u) >> h;
+ b += r;
+ }
+ }
+ n.push(l);
+ }
+ return n;
+ })(i);
+ this.width = i.SIZ.Xsiz - i.SIZ.XOsiz;
+ this.height = i.SIZ.Ysiz - i.SIZ.YOsiz;
+ this.componentsCount = i.SIZ.Csiz;
+ }
+ };
+ function calculateComponentDimensions(e, t) {
+ e.x0 = Math.ceil(t.XOsiz / e.XRsiz);
+ e.x1 = Math.ceil(t.Xsiz / e.XRsiz);
+ e.y0 = Math.ceil(t.YOsiz / e.YRsiz);
+ e.y1 = Math.ceil(t.Ysiz / e.YRsiz);
+ e.width = e.x1 - e.x0;
+ e.height = e.y1 - e.y0;
+ }
+ function calculateTileGrids(e, t) {
+ const a = e.SIZ,
+ r = [];
+ let n;
+ const i = Math.ceil((a.Xsiz - a.XTOsiz) / a.XTsiz),
+ s = Math.ceil((a.Ysiz - a.YTOsiz) / a.YTsiz);
+ for (let e = 0; e < s; e++)
+ for (let t = 0; t < i; t++) {
+ n = {};
+ n.tx0 = Math.max(a.XTOsiz + t * a.XTsiz, a.XOsiz);
+ n.ty0 = Math.max(a.YTOsiz + e * a.YTsiz, a.YOsiz);
+ n.tx1 = Math.min(a.XTOsiz + (t + 1) * a.XTsiz, a.Xsiz);
+ n.ty1 = Math.min(a.YTOsiz + (e + 1) * a.YTsiz, a.Ysiz);
+ n.width = n.tx1 - n.tx0;
+ n.height = n.ty1 - n.ty0;
+ n.components = [];
+ r.push(n);
+ }
+ e.tiles = r;
+ for (let e = 0, i = a.Csiz; e < i; e++) {
+ const a = t[e];
+ for (let t = 0, i = r.length; t < i; t++) {
+ const i = {};
+ n = r[t];
+ i.tcx0 = Math.ceil(n.tx0 / a.XRsiz);
+ i.tcy0 = Math.ceil(n.ty0 / a.YRsiz);
+ i.tcx1 = Math.ceil(n.tx1 / a.XRsiz);
+ i.tcy1 = Math.ceil(n.ty1 / a.YRsiz);
+ i.width = i.tcx1 - i.tcx0;
+ i.height = i.tcy1 - i.tcy0;
+ n.components[e] = i;
+ }
+ }
+ }
+ function getBlocksDimensions(e, t, a) {
+ const r = t.codingStyleParameters,
+ n = {};
+ if (r.entropyCoderWithCustomPrecincts) {
+ n.PPx = r.precinctsSizes[a].PPx;
+ n.PPy = r.precinctsSizes[a].PPy;
+ } else {
+ n.PPx = 15;
+ n.PPy = 15;
+ }
+ n.xcb_ =
+ a > 0 ? Math.min(r.xcb, n.PPx - 1) : Math.min(r.xcb, n.PPx);
+ n.ycb_ =
+ a > 0 ? Math.min(r.ycb, n.PPy - 1) : Math.min(r.ycb, n.PPy);
+ return n;
+ }
+ function buildPrecincts(e, t, a) {
+ const r = 1 << a.PPx,
+ n = 1 << a.PPy,
+ i = 0 === t.resLevel,
+ s = 1 << (a.PPx + (i ? 0 : -1)),
+ o = 1 << (a.PPy + (i ? 0 : -1)),
+ c =
+ t.trx1 > t.trx0
+ ? Math.ceil(t.trx1 / r) - Math.floor(t.trx0 / r)
+ : 0,
+ l =
+ t.try1 > t.try0
+ ? Math.ceil(t.try1 / n) - Math.floor(t.try0 / n)
+ : 0,
+ h = c * l;
+ t.precinctParameters = {
+ precinctWidth: r,
+ precinctHeight: n,
+ numprecinctswide: c,
+ numprecinctshigh: l,
+ numprecincts: h,
+ precinctWidthInSubband: s,
+ precinctHeightInSubband: o,
+ };
+ }
+ function buildCodeblocks(e, t, a) {
+ const r = a.xcb_,
+ n = a.ycb_,
+ i = 1 << r,
+ s = 1 << n,
+ o = t.tbx0 >> r,
+ c = t.tby0 >> n,
+ l = (t.tbx1 + i - 1) >> r,
+ h = (t.tby1 + s - 1) >> n,
+ u = t.resolution.precinctParameters,
+ d = [],
+ f = [];
+ let g, p, m, b;
+ for (p = c; p < h; p++)
+ for (g = o; g < l; g++) {
+ m = {
+ cbx: g,
+ cby: p,
+ tbx0: i * g,
+ tby0: s * p,
+ tbx1: i * (g + 1),
+ tby1: s * (p + 1),
+ };
+ m.tbx0_ = Math.max(t.tbx0, m.tbx0);
+ m.tby0_ = Math.max(t.tby0, m.tby0);
+ m.tbx1_ = Math.min(t.tbx1, m.tbx1);
+ m.tby1_ = Math.min(t.tby1, m.tby1);
+ b =
+ Math.floor((m.tbx0_ - t.tbx0) / u.precinctWidthInSubband) +
+ Math.floor((m.tby0_ - t.tby0) / u.precinctHeightInSubband) *
+ u.numprecinctswide;
+ m.precinctNumber = b;
+ m.subbandType = t.type;
+ m.Lblock = 3;
+ if (m.tbx1_ <= m.tbx0_ || m.tby1_ <= m.tby0_) continue;
+ d.push(m);
+ let e = f[b];
+ if (void 0 !== e) {
+ g < e.cbxMin
+ ? (e.cbxMin = g)
+ : g > e.cbxMax && (e.cbxMax = g);
+ p < e.cbyMin
+ ? (e.cbxMin = p)
+ : p > e.cbyMax && (e.cbyMax = p);
+ } else
+ f[b] = e = { cbxMin: g, cbyMin: p, cbxMax: g, cbyMax: p };
+ m.precinct = e;
+ }
+ t.codeblockParameters = {
+ codeblockWidth: r,
+ codeblockHeight: n,
+ numcodeblockwide: l - o + 1,
+ numcodeblockhigh: h - c + 1,
+ };
+ t.codeblocks = d;
+ t.precincts = f;
+ }
+ function createPacket(e, t, a) {
+ const r = [],
+ n = e.subbands;
+ for (let e = 0, a = n.length; e < a; e++) {
+ const a = n[e].codeblocks;
+ for (let e = 0, n = a.length; e < n; e++) {
+ const n = a[e];
+ n.precinctNumber === t && r.push(n);
+ }
+ }
+ return { layerNumber: a, codeblocks: r };
+ }
+ function LayerResolutionComponentPositionIterator(e) {
+ const t = e.SIZ,
+ a = e.currentTile.index,
+ r = e.tiles[a],
+ n = r.codingStyleDefaultParameters.layersCount,
+ i = t.Csiz;
+ let s = 0;
+ for (let e = 0; e < i; e++)
+ s = Math.max(
+ s,
+ r.components[e].codingStyleParameters.decompositionLevelsCount,
+ );
+ let o = 0,
+ c = 0,
+ l = 0,
+ h = 0;
+ this.nextPacket = function JpxImage_nextPacket() {
+ for (; o < n; o++) {
+ for (; c <= s; c++) {
+ for (; l < i; l++) {
+ const e = r.components[l];
+ if (c > e.codingStyleParameters.decompositionLevelsCount)
+ continue;
+ const t = e.resolutions[c],
+ a = t.precinctParameters.numprecincts;
+ for (; h < a; ) {
+ const e = createPacket(t, h, o);
+ h++;
+ return e;
+ }
+ h = 0;
+ }
+ l = 0;
+ }
+ c = 0;
+ }
+ throw new JpxError("Out of packets");
+ };
+ }
+ function ResolutionLayerComponentPositionIterator(e) {
+ const t = e.SIZ,
+ a = e.currentTile.index,
+ r = e.tiles[a],
+ n = r.codingStyleDefaultParameters.layersCount,
+ i = t.Csiz;
+ let s = 0;
+ for (let e = 0; e < i; e++)
+ s = Math.max(
+ s,
+ r.components[e].codingStyleParameters.decompositionLevelsCount,
+ );
+ let o = 0,
+ c = 0,
+ l = 0,
+ h = 0;
+ this.nextPacket = function JpxImage_nextPacket() {
+ for (; o <= s; o++) {
+ for (; c < n; c++) {
+ for (; l < i; l++) {
+ const e = r.components[l];
+ if (o > e.codingStyleParameters.decompositionLevelsCount)
+ continue;
+ const t = e.resolutions[o],
+ a = t.precinctParameters.numprecincts;
+ for (; h < a; ) {
+ const e = createPacket(t, h, c);
+ h++;
+ return e;
+ }
+ h = 0;
+ }
+ l = 0;
+ }
+ c = 0;
+ }
+ throw new JpxError("Out of packets");
+ };
+ }
+ function ResolutionPositionComponentLayerIterator(e) {
+ const t = e.SIZ,
+ a = e.currentTile.index,
+ r = e.tiles[a],
+ n = r.codingStyleDefaultParameters.layersCount,
+ i = t.Csiz;
+ let s,
+ o,
+ c,
+ l,
+ h = 0;
+ for (c = 0; c < i; c++) {
+ const e = r.components[c];
+ h = Math.max(h, e.codingStyleParameters.decompositionLevelsCount);
+ }
+ const u = new Int32Array(h + 1);
+ for (o = 0; o <= h; ++o) {
+ let e = 0;
+ for (c = 0; c < i; ++c) {
+ const t = r.components[c].resolutions;
+ o < t.length &&
+ (e = Math.max(e, t[o].precinctParameters.numprecincts));
+ }
+ u[o] = e;
+ }
+ s = 0;
+ o = 0;
+ c = 0;
+ l = 0;
+ this.nextPacket = function JpxImage_nextPacket() {
+ for (; o <= h; o++) {
+ for (; l < u[o]; l++) {
+ for (; c < i; c++) {
+ const e = r.components[c];
+ if (o > e.codingStyleParameters.decompositionLevelsCount)
+ continue;
+ const t = e.resolutions[o],
+ a = t.precinctParameters.numprecincts;
+ if (!(l >= a)) {
+ for (; s < n; ) {
+ const e = createPacket(t, l, s);
+ s++;
+ return e;
+ }
+ s = 0;
+ }
+ }
+ c = 0;
+ }
+ l = 0;
+ }
+ throw new JpxError("Out of packets");
+ };
+ }
+ function PositionComponentResolutionLayerIterator(e) {
+ const t = e.SIZ,
+ a = e.currentTile.index,
+ r = e.tiles[a],
+ n = r.codingStyleDefaultParameters.layersCount,
+ i = t.Csiz,
+ s = getPrecinctSizesInImageScale(r),
+ o = s;
+ let c = 0,
+ l = 0,
+ h = 0,
+ u = 0,
+ d = 0;
+ this.nextPacket = function JpxImage_nextPacket() {
+ for (; d < o.maxNumHigh; d++) {
+ for (; u < o.maxNumWide; u++) {
+ for (; h < i; h++) {
+ const e = r.components[h],
+ t = e.codingStyleParameters.decompositionLevelsCount;
+ for (; l <= t; l++) {
+ const t = e.resolutions[l],
+ a = s.components[h].resolutions[l],
+ r = getPrecinctIndexIfExist(u, d, a, o, t);
+ if (null !== r) {
+ for (; c < n; ) {
+ const e = createPacket(t, r, c);
+ c++;
+ return e;
+ }
+ c = 0;
+ }
+ }
+ l = 0;
+ }
+ h = 0;
+ }
+ u = 0;
+ }
+ throw new JpxError("Out of packets");
+ };
+ }
+ function ComponentPositionResolutionLayerIterator(e) {
+ const t = e.SIZ,
+ a = e.currentTile.index,
+ r = e.tiles[a],
+ n = r.codingStyleDefaultParameters.layersCount,
+ i = t.Csiz,
+ s = getPrecinctSizesInImageScale(r);
+ let o = 0,
+ c = 0,
+ l = 0,
+ h = 0,
+ u = 0;
+ this.nextPacket = function JpxImage_nextPacket() {
+ for (; l < i; ++l) {
+ const e = r.components[l],
+ t = s.components[l],
+ a = e.codingStyleParameters.decompositionLevelsCount;
+ for (; u < t.maxNumHigh; u++) {
+ for (; h < t.maxNumWide; h++) {
+ for (; c <= a; c++) {
+ const a = e.resolutions[c],
+ r = t.resolutions[c],
+ i = getPrecinctIndexIfExist(h, u, r, t, a);
+ if (null !== i) {
+ for (; o < n; ) {
+ const e = createPacket(a, i, o);
+ o++;
+ return e;
+ }
+ o = 0;
+ }
+ }
+ c = 0;
+ }
+ h = 0;
+ }
+ u = 0;
+ }
+ throw new JpxError("Out of packets");
+ };
+ }
+ function getPrecinctIndexIfExist(e, t, a, r, n) {
+ const i = e * r.minWidth,
+ s = t * r.minHeight;
+ if (i % a.width != 0 || s % a.height != 0) return null;
+ const o = (s / a.width) * n.precinctParameters.numprecinctswide;
+ return i / a.height + o;
+ }
+ function getPrecinctSizesInImageScale(e) {
+ const t = e.components.length;
+ let a = Number.MAX_VALUE,
+ r = Number.MAX_VALUE,
+ n = 0,
+ i = 0;
+ const s = new Array(t);
+ for (let o = 0; o < t; o++) {
+ const t = e.components[o],
+ c = t.codingStyleParameters.decompositionLevelsCount,
+ l = new Array(c + 1);
+ let h = Number.MAX_VALUE,
+ u = Number.MAX_VALUE,
+ d = 0,
+ f = 0,
+ g = 1;
+ for (let e = c; e >= 0; --e) {
+ const a = t.resolutions[e],
+ r = g * a.precinctParameters.precinctWidth,
+ n = g * a.precinctParameters.precinctHeight;
+ h = Math.min(h, r);
+ u = Math.min(u, n);
+ d = Math.max(d, a.precinctParameters.numprecinctswide);
+ f = Math.max(f, a.precinctParameters.numprecinctshigh);
+ l[e] = { width: r, height: n };
+ g <<= 1;
+ }
+ a = Math.min(a, h);
+ r = Math.min(r, u);
+ n = Math.max(n, d);
+ i = Math.max(i, f);
+ s[o] = {
+ resolutions: l,
+ minWidth: h,
+ minHeight: u,
+ maxNumWide: d,
+ maxNumHigh: f,
+ };
+ }
+ return {
+ components: s,
+ minWidth: a,
+ minHeight: r,
+ maxNumWide: n,
+ maxNumHigh: i,
+ };
+ }
+ function buildPackets(e) {
+ const t = e.SIZ,
+ a = e.currentTile.index,
+ r = e.tiles[a],
+ n = t.Csiz;
+ for (let e = 0; e < n; e++) {
+ const t = r.components[e],
+ a = t.codingStyleParameters.decompositionLevelsCount,
+ n = [],
+ i = [];
+ for (let e = 0; e <= a; e++) {
+ const r = getBlocksDimensions(0, t, e),
+ s = {},
+ o = 1 << (a - e);
+ s.trx0 = Math.ceil(t.tcx0 / o);
+ s.try0 = Math.ceil(t.tcy0 / o);
+ s.trx1 = Math.ceil(t.tcx1 / o);
+ s.try1 = Math.ceil(t.tcy1 / o);
+ s.resLevel = e;
+ buildPrecincts(0, s, r);
+ n.push(s);
+ let c;
+ if (0 === e) {
+ c = {};
+ c.type = "LL";
+ c.tbx0 = Math.ceil(t.tcx0 / o);
+ c.tby0 = Math.ceil(t.tcy0 / o);
+ c.tbx1 = Math.ceil(t.tcx1 / o);
+ c.tby1 = Math.ceil(t.tcy1 / o);
+ c.resolution = s;
+ buildCodeblocks(0, c, r);
+ i.push(c);
+ s.subbands = [c];
+ } else {
+ const n = 1 << (a - e + 1),
+ o = [];
+ c = {};
+ c.type = "HL";
+ c.tbx0 = Math.ceil(t.tcx0 / n - 0.5);
+ c.tby0 = Math.ceil(t.tcy0 / n);
+ c.tbx1 = Math.ceil(t.tcx1 / n - 0.5);
+ c.tby1 = Math.ceil(t.tcy1 / n);
+ c.resolution = s;
+ buildCodeblocks(0, c, r);
+ i.push(c);
+ o.push(c);
+ c = {};
+ c.type = "LH";
+ c.tbx0 = Math.ceil(t.tcx0 / n);
+ c.tby0 = Math.ceil(t.tcy0 / n - 0.5);
+ c.tbx1 = Math.ceil(t.tcx1 / n);
+ c.tby1 = Math.ceil(t.tcy1 / n - 0.5);
+ c.resolution = s;
+ buildCodeblocks(0, c, r);
+ i.push(c);
+ o.push(c);
+ c = {};
+ c.type = "HH";
+ c.tbx0 = Math.ceil(t.tcx0 / n - 0.5);
+ c.tby0 = Math.ceil(t.tcy0 / n - 0.5);
+ c.tbx1 = Math.ceil(t.tcx1 / n - 0.5);
+ c.tby1 = Math.ceil(t.tcy1 / n - 0.5);
+ c.resolution = s;
+ buildCodeblocks(0, c, r);
+ i.push(c);
+ o.push(c);
+ s.subbands = o;
+ }
+ }
+ t.resolutions = n;
+ t.subbands = i;
+ }
+ const i = r.codingStyleDefaultParameters.progressionOrder;
+ switch (i) {
+ case 0:
+ r.packetsIterator =
+ new LayerResolutionComponentPositionIterator(e);
+ break;
+ case 1:
+ r.packetsIterator =
+ new ResolutionLayerComponentPositionIterator(e);
+ break;
+ case 2:
+ r.packetsIterator =
+ new ResolutionPositionComponentLayerIterator(e);
+ break;
+ case 3:
+ r.packetsIterator =
+ new PositionComponentResolutionLayerIterator(e);
+ break;
+ case 4:
+ r.packetsIterator =
+ new ComponentPositionResolutionLayerIterator(e);
+ break;
+ default:
+ throw new JpxError(`Unsupported progression order ${i}`);
+ }
+ }
+ function parseTilePackets(e, t, a, r) {
+ let i,
+ s = 0,
+ o = 0,
+ c = !1;
+ function readBits(e) {
+ for (; o < e; ) {
+ const e = t[a + s];
+ s++;
+ if (c) {
+ i = (i << 7) | e;
+ o += 7;
+ c = !1;
+ } else {
+ i = (i << 8) | e;
+ o += 8;
+ }
+ 255 === e && (c = !0);
+ }
+ o -= e;
+ return (i >>> o) & ((1 << e) - 1);
+ }
+ function skipMarkerIfEqual(e) {
+ if (255 === t[a + s - 1] && t[a + s] === e) {
+ skipBytes(1);
+ return !0;
+ }
+ if (255 === t[a + s] && t[a + s + 1] === e) {
+ skipBytes(2);
+ return !0;
+ }
+ return !1;
+ }
+ function skipBytes(e) {
+ s += e;
+ }
+ function alignToByte() {
+ o = 0;
+ if (c) {
+ s++;
+ c = !1;
+ }
+ }
+ function readCodingpasses() {
+ if (0 === readBits(1)) return 1;
+ if (0 === readBits(1)) return 2;
+ let e = readBits(2);
+ if (e < 3) return e + 3;
+ e = readBits(5);
+ if (e < 31) return e + 6;
+ e = readBits(7);
+ return e + 37;
+ }
+ const l = e.currentTile.index,
+ h = e.tiles[l],
+ u = e.COD.sopMarkerUsed,
+ d = e.COD.ephMarkerUsed,
+ f = h.packetsIterator;
+ for (; s < r; ) {
+ alignToByte();
+ u && skipMarkerIfEqual(145) && skipBytes(4);
+ const e = f.nextPacket();
+ if (!readBits(1)) continue;
+ const r = e.layerNumber,
+ i = [];
+ let o;
+ for (let t = 0, a = e.codeblocks.length; t < a; t++) {
+ o = e.codeblocks[t];
+ let a = o.precinct;
+ const s = o.cbx - a.cbxMin,
+ c = o.cby - a.cbyMin;
+ let l,
+ h,
+ u = !1,
+ d = !1;
+ if (void 0 !== o.included) u = !!readBits(1);
+ else {
+ a = o.precinct;
+ let e;
+ if (void 0 !== a.inclusionTree) e = a.inclusionTree;
+ else {
+ const t = a.cbxMax - a.cbxMin + 1,
+ n = a.cbyMax - a.cbyMin + 1;
+ e = new InclusionTree(t, n, r);
+ h = new TagTree(t, n);
+ a.inclusionTree = e;
+ a.zeroBitPlanesTree = h;
+ for (let e = 0; e < r; e++)
+ if (0 !== readBits(1))
+ throw new JpxError("Invalid tag tree");
+ }
+ if (e.reset(s, c, r))
+ for (;;) {
+ if (!readBits(1)) {
+ e.incrementValue(r);
+ break;
+ }
+ l = !e.nextLevel();
+ if (l) {
+ o.included = !0;
+ u = d = !0;
+ break;
+ }
+ }
+ }
+ if (!u) continue;
+ if (d) {
+ h = a.zeroBitPlanesTree;
+ h.reset(s, c);
+ for (;;)
+ if (readBits(1)) {
+ l = !h.nextLevel();
+ if (l) break;
+ } else h.incrementValue();
+ o.zeroBitPlanes = h.value;
+ }
+ const f = readCodingpasses();
+ for (; readBits(1); ) o.Lblock++;
+ const g = (0, n.log2)(f),
+ p = readBits((f < 1 << g ? g - 1 : g) + o.Lblock);
+ i.push({ codeblock: o, codingpasses: f, dataLength: p });
+ }
+ alignToByte();
+ d && skipMarkerIfEqual(146);
+ for (; i.length > 0; ) {
+ const e = i.shift();
+ o = e.codeblock;
+ void 0 === o.data && (o.data = []);
+ o.data.push({
+ data: t,
+ start: a + s,
+ end: a + s + e.dataLength,
+ codingpasses: e.codingpasses,
+ });
+ s += e.dataLength;
+ }
+ }
+ return s;
+ }
+ function copyCoefficients(e, t, a, r, n, s, o, c, l) {
+ const h = r.tbx0,
+ u = r.tby0,
+ d = r.tbx1 - r.tbx0,
+ f = r.codeblocks,
+ g = "H" === r.type.charAt(0) ? 1 : 0,
+ p = "H" === r.type.charAt(1) ? t : 0;
+ for (let a = 0, m = f.length; a < m; ++a) {
+ const m = f[a],
+ b = m.tbx1_ - m.tbx0_,
+ y = m.tby1_ - m.tby0_;
+ if (0 === b || 0 === y) continue;
+ if (void 0 === m.data) continue;
+ const w = new BitModel(b, y, m.subbandType, m.zeroBitPlanes, s);
+ let S = 2;
+ const x = m.data;
+ let C,
+ k,
+ v,
+ F = 0,
+ O = 0;
+ for (C = 0, k = x.length; C < k; C++) {
+ v = x[C];
+ F += v.end - v.start;
+ O += v.codingpasses;
+ }
+ const T = new Uint8Array(F);
+ let M = 0;
+ for (C = 0, k = x.length; C < k; C++) {
+ v = x[C];
+ const e = v.data.subarray(v.start, v.end);
+ T.set(e, M);
+ M += e.length;
+ }
+ const D = new i.ArithmeticDecoder(T, 0, F);
+ w.setDecoder(D);
+ for (C = 0; C < O; C++) {
+ switch (S) {
+ case 0:
+ w.runSignificancePropagationPass();
+ break;
+ case 1:
+ w.runMagnitudeRefinementPass();
+ break;
+ case 2:
+ w.runCleanupPass();
+ c && w.checkSegmentationSymbol();
+ }
+ l && w.reset();
+ S = (S + 1) % 3;
+ }
+ let E = m.tbx0_ - h + (m.tby0_ - u) * d;
+ const N = w.coefficentsSign,
+ R = w.coefficentsMagnitude,
+ L = w.bitsDecoded,
+ $ = o ? 0 : 0.5;
+ let _, j, U;
+ M = 0;
+ const X = "LL" !== r.type;
+ for (C = 0; C < y; C++) {
+ const a = 2 * ((E / d) | 0) * (t - d) + g + p;
+ for (_ = 0; _ < b; _++) {
+ j = R[M];
+ if (0 !== j) {
+ j = (j + $) * n;
+ 0 !== N[M] && (j = -j);
+ U = L[M];
+ e[X ? a + (E << 1) : E] =
+ o && U >= s ? j : j * (1 << (s - U));
+ }
+ E++;
+ M++;
+ }
+ E += d - b;
+ }
+ }
+ }
+ function transformTile(e, t, a) {
+ const r = t.components[a],
+ n = r.codingStyleParameters,
+ i = r.quantizationParameters,
+ o = n.decompositionLevelsCount,
+ c = i.SPqcds,
+ l = i.scalarExpounded,
+ h = i.guardBits,
+ u = n.segmentationSymbolUsed,
+ d = n.resetContextProbabilities,
+ f = e.components[a].precision,
+ g = n.reversibleTransformation,
+ p = g ? new ReversibleTransform() : new IrreversibleTransform(),
+ m = [];
+ let b = 0;
+ for (let e = 0; e <= o; e++) {
+ const t = r.resolutions[e],
+ a = t.trx1 - t.trx0,
+ n = t.try1 - t.try0,
+ i = new Float32Array(a * n);
+ for (let r = 0, n = t.subbands.length; r < n; r++) {
+ let n, o;
+ if (l) {
+ n = c[b].mu;
+ o = c[b].epsilon;
+ b++;
+ } else {
+ n = c[0].mu;
+ o = c[0].epsilon + (e > 0 ? 1 - e : 0);
+ }
+ const p = t.subbands[r],
+ m = s[p.type];
+ copyCoefficients(
+ i,
+ a,
+ 0,
+ p,
+ g ? 1 : 2 ** (f + m - o) * (1 + n / 2048),
+ h + o - 1,
+ g,
+ u,
+ d,
+ );
+ }
+ m.push({ width: a, height: n, items: i });
+ }
+ const y = p.calculate(m, r.tcx0, r.tcy0);
+ return {
+ left: r.tcx0,
+ top: r.tcy0,
+ width: y.width,
+ height: y.height,
+ items: y.items,
+ };
+ }
+ function initializeTile(e, t) {
+ const a = e.SIZ.Csiz,
+ r = e.tiles[t];
+ for (let t = 0; t < a; t++) {
+ const a = r.components[t],
+ n =
+ void 0 !== e.currentTile.QCC[t]
+ ? e.currentTile.QCC[t]
+ : e.currentTile.QCD;
+ a.quantizationParameters = n;
+ const i =
+ void 0 !== e.currentTile.COC[t]
+ ? e.currentTile.COC[t]
+ : e.currentTile.COD;
+ a.codingStyleParameters = i;
+ }
+ r.codingStyleDefaultParameters = e.currentTile.COD;
+ }
+ class TagTree {
+ constructor(e, t) {
+ const a = (0, n.log2)(Math.max(e, t)) + 1;
+ this.levels = [];
+ for (let r = 0; r < a; r++) {
+ const a = { width: e, height: t, items: [] };
+ this.levels.push(a);
+ e = Math.ceil(e / 2);
+ t = Math.ceil(t / 2);
+ }
+ }
+ reset(e, t) {
+ let a,
+ r = 0,
+ n = 0;
+ for (; r < this.levels.length; ) {
+ a = this.levels[r];
+ const i = e + t * a.width;
+ if (void 0 !== a.items[i]) {
+ n = a.items[i];
+ break;
+ }
+ a.index = i;
+ e >>= 1;
+ t >>= 1;
+ r++;
+ }
+ r--;
+ a = this.levels[r];
+ a.items[a.index] = n;
+ this.currentLevel = r;
+ delete this.value;
+ }
+ incrementValue() {
+ const e = this.levels[this.currentLevel];
+ e.items[e.index]++;
+ }
+ nextLevel() {
+ let e = this.currentLevel,
+ t = this.levels[e];
+ const a = t.items[t.index];
+ e--;
+ if (e < 0) {
+ this.value = a;
+ return !1;
+ }
+ this.currentLevel = e;
+ t = this.levels[e];
+ t.items[t.index] = a;
+ return !0;
+ }
+ }
+ class InclusionTree {
+ constructor(e, t, a) {
+ const r = (0, n.log2)(Math.max(e, t)) + 1;
+ this.levels = [];
+ for (let n = 0; n < r; n++) {
+ const r = new Uint8Array(e * t);
+ for (let e = 0, t = r.length; e < t; e++) r[e] = a;
+ const n = { width: e, height: t, items: r };
+ this.levels.push(n);
+ e = Math.ceil(e / 2);
+ t = Math.ceil(t / 2);
+ }
+ }
+ reset(e, t, a) {
+ let r = 0;
+ for (; r < this.levels.length; ) {
+ const n = this.levels[r],
+ i = e + t * n.width;
+ n.index = i;
+ const s = n.items[i];
+ if (255 === s) break;
+ if (s > a) {
+ this.currentLevel = r;
+ this.propagateValues();
+ return !1;
+ }
+ e >>= 1;
+ t >>= 1;
+ r++;
+ }
+ this.currentLevel = r - 1;
+ return !0;
+ }
+ incrementValue(e) {
+ const t = this.levels[this.currentLevel];
+ t.items[t.index] = e + 1;
+ this.propagateValues();
+ }
+ propagateValues() {
+ let e = this.currentLevel,
+ t = this.levels[e];
+ const a = t.items[t.index];
+ for (; --e >= 0; ) {
+ t = this.levels[e];
+ t.items[t.index] = a;
+ }
+ }
+ nextLevel() {
+ let e = this.currentLevel,
+ t = this.levels[e];
+ const a = t.items[t.index];
+ t.items[t.index] = 255;
+ e--;
+ if (e < 0) return !1;
+ this.currentLevel = e;
+ t = this.levels[e];
+ t.items[t.index] = a;
+ return !0;
+ }
+ }
+ class BitModel {
+ static UNIFORM_CONTEXT = 17;
+ static RUNLENGTH_CONTEXT = 18;
+ static LLAndLHContextsLabel = new Uint8Array([
+ 0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7,
+ 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0,
+ 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6,
+ 8, 0, 3, 7, 8, 0, 4, 7, 8,
+ ]);
+ static HLContextLabel = new Uint8Array([
+ 0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7,
+ 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0,
+ 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3,
+ 4, 0, 6, 7, 7, 0, 8, 8, 8,
+ ]);
+ static HHContextLabel = new Uint8Array([
+ 0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5,
+ 5, 0, 5, 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0,
+ 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8,
+ 8, 0, 8, 8, 8, 0, 8, 8, 8,
+ ]);
+ constructor(e, t, a, r, n) {
+ this.width = e;
+ this.height = t;
+ let i;
+ i =
+ "HH" === a
+ ? BitModel.HHContextLabel
+ : "HL" === a
+ ? BitModel.HLContextLabel
+ : BitModel.LLAndLHContextsLabel;
+ this.contextLabelTable = i;
+ const s = e * t;
+ this.neighborsSignificance = new Uint8Array(s);
+ this.coefficentsSign = new Uint8Array(s);
+ let o;
+ o =
+ n > 14
+ ? new Uint32Array(s)
+ : n > 6
+ ? new Uint16Array(s)
+ : new Uint8Array(s);
+ this.coefficentsMagnitude = o;
+ this.processingFlags = new Uint8Array(s);
+ const c = new Uint8Array(s);
+ if (0 !== r) for (let e = 0; e < s; e++) c[e] = r;
+ this.bitsDecoded = c;
+ this.reset();
+ }
+ setDecoder(e) {
+ this.decoder = e;
+ }
+ reset() {
+ this.contexts = new Int8Array(19);
+ this.contexts[0] = 8;
+ this.contexts[BitModel.UNIFORM_CONTEXT] = 92;
+ this.contexts[BitModel.RUNLENGTH_CONTEXT] = 6;
+ }
+ setNeighborsSignificance(e, t, a) {
+ const r = this.neighborsSignificance,
+ n = this.width,
+ i = this.height,
+ s = t > 0,
+ o = t + 1 < n;
+ let c;
+ if (e > 0) {
+ c = a - n;
+ s && (r[c - 1] += 16);
+ o && (r[c + 1] += 16);
+ r[c] += 4;
+ }
+ if (e + 1 < i) {
+ c = a + n;
+ s && (r[c - 1] += 16);
+ o && (r[c + 1] += 16);
+ r[c] += 4;
+ }
+ s && (r[a - 1] += 1);
+ o && (r[a + 1] += 1);
+ r[a] |= 128;
+ }
+ runSignificancePropagationPass() {
+ const e = this.decoder,
+ t = this.width,
+ a = this.height,
+ r = this.coefficentsMagnitude,
+ n = this.coefficentsSign,
+ i = this.neighborsSignificance,
+ s = this.processingFlags,
+ o = this.contexts,
+ c = this.contextLabelTable,
+ l = this.bitsDecoded;
+ for (let h = 0; h < a; h += 4)
+ for (let u = 0; u < t; u++) {
+ let d = h * t + u;
+ for (let f = 0; f < 4; f++, d += t) {
+ const t = h + f;
+ if (t >= a) break;
+ s[d] &= -2;
+ if (r[d] || !i[d]) continue;
+ const g = c[i[d]];
+ if (e.readBit(o, g)) {
+ const e = this.decodeSignBit(t, u, d);
+ n[d] = e;
+ r[d] = 1;
+ this.setNeighborsSignificance(t, u, d);
+ s[d] |= 2;
+ }
+ l[d]++;
+ s[d] |= 1;
+ }
+ }
+ }
+ decodeSignBit(e, t, a) {
+ const r = this.width,
+ n = this.height,
+ i = this.coefficentsMagnitude,
+ s = this.coefficentsSign;
+ let o, c, l, h, u, d;
+ h = t > 0 && 0 !== i[a - 1];
+ if (t + 1 < r && 0 !== i[a + 1]) {
+ l = s[a + 1];
+ if (h) {
+ c = s[a - 1];
+ o = 1 - l - c;
+ } else o = 1 - l - l;
+ } else if (h) {
+ c = s[a - 1];
+ o = 1 - c - c;
+ } else o = 0;
+ const f = 3 * o;
+ h = e > 0 && 0 !== i[a - r];
+ if (e + 1 < n && 0 !== i[a + r]) {
+ l = s[a + r];
+ if (h) {
+ c = s[a - r];
+ o = 1 - l - c + f;
+ } else o = 1 - l - l + f;
+ } else if (h) {
+ c = s[a - r];
+ o = 1 - c - c + f;
+ } else o = f;
+ if (o >= 0) {
+ u = 9 + o;
+ d = this.decoder.readBit(this.contexts, u);
+ } else {
+ u = 9 - o;
+ d = 1 ^ this.decoder.readBit(this.contexts, u);
+ }
+ return d;
+ }
+ runMagnitudeRefinementPass() {
+ const e = this.decoder,
+ t = this.width,
+ a = this.height,
+ r = this.coefficentsMagnitude,
+ n = this.neighborsSignificance,
+ i = this.contexts,
+ s = this.bitsDecoded,
+ o = this.processingFlags,
+ c = t * a,
+ l = 4 * t;
+ for (let a, h = 0; h < c; h = a) {
+ a = Math.min(c, h + l);
+ for (let c = 0; c < t; c++)
+ for (let l = h + c; l < a; l += t) {
+ if (!r[l] || 0 != (1 & o[l])) continue;
+ let t = 16;
+ if (0 != (2 & o[l])) {
+ o[l] ^= 2;
+ t = 0 === (127 & n[l]) ? 15 : 14;
+ }
+ const a = e.readBit(i, t);
+ r[l] = (r[l] << 1) | a;
+ s[l]++;
+ o[l] |= 1;
+ }
+ }
+ }
+ runCleanupPass() {
+ const e = this.decoder,
+ t = this.width,
+ a = this.height,
+ r = this.neighborsSignificance,
+ n = this.coefficentsMagnitude,
+ i = this.coefficentsSign,
+ s = this.contexts,
+ o = this.contextLabelTable,
+ c = this.bitsDecoded,
+ l = this.processingFlags,
+ h = t,
+ u = 2 * t,
+ d = 3 * t;
+ let f;
+ for (let g = 0; g < a; g = f) {
+ f = Math.min(g + 4, a);
+ const p = g * t,
+ m = g + 3 < a;
+ for (let a = 0; a < t; a++) {
+ const b = p + a;
+ let y,
+ w = 0,
+ S = b,
+ x = g;
+ if (
+ m &&
+ 0 === l[b] &&
+ 0 === l[b + h] &&
+ 0 === l[b + u] &&
+ 0 === l[b + d] &&
+ 0 === r[b] &&
+ 0 === r[b + h] &&
+ 0 === r[b + u] &&
+ 0 === r[b + d]
+ ) {
+ if (!e.readBit(s, BitModel.RUNLENGTH_CONTEXT)) {
+ c[b]++;
+ c[b + h]++;
+ c[b + u]++;
+ c[b + d]++;
+ continue;
+ }
+ w =
+ (e.readBit(s, BitModel.UNIFORM_CONTEXT) << 1) |
+ e.readBit(s, BitModel.UNIFORM_CONTEXT);
+ if (0 !== w) {
+ x = g + w;
+ S += w * t;
+ }
+ y = this.decodeSignBit(x, a, S);
+ i[S] = y;
+ n[S] = 1;
+ this.setNeighborsSignificance(x, a, S);
+ l[S] |= 2;
+ S = b;
+ for (let e = g; e <= x; e++, S += t) c[S]++;
+ w++;
+ }
+ for (x = g + w; x < f; x++, S += t) {
+ if (n[S] || 0 != (1 & l[S])) continue;
+ const t = o[r[S]];
+ if (1 === e.readBit(s, t)) {
+ y = this.decodeSignBit(x, a, S);
+ i[S] = y;
+ n[S] = 1;
+ this.setNeighborsSignificance(x, a, S);
+ l[S] |= 2;
+ }
+ c[S]++;
+ }
+ }
+ }
+ }
+ checkSegmentationSymbol() {
+ const e = this.decoder,
+ t = this.contexts;
+ if (
+ 10 !==
+ ((e.readBit(t, BitModel.UNIFORM_CONTEXT) << 3) |
+ (e.readBit(t, BitModel.UNIFORM_CONTEXT) << 2) |
+ (e.readBit(t, BitModel.UNIFORM_CONTEXT) << 1) |
+ e.readBit(t, BitModel.UNIFORM_CONTEXT))
+ )
+ throw new JpxError("Invalid segmentation symbol");
+ }
+ }
+ class Transform {
+ constructor() {
+ this.constructor === Transform &&
+ (0, r.unreachable)("Cannot initialize Transform.");
+ }
+ calculate(e, t, a) {
+ let r = e[0];
+ for (let n = 1, i = e.length; n < i; n++)
+ r = this.iterate(r, e[n], t, a);
+ return r;
+ }
+ extend(e, t, a) {
+ let r = t - 1,
+ n = t + 1,
+ i = t + a - 2,
+ s = t + a;
+ e[r--] = e[n++];
+ e[s++] = e[i--];
+ e[r--] = e[n++];
+ e[s++] = e[i--];
+ e[r--] = e[n++];
+ e[s++] = e[i--];
+ e[r] = e[n];
+ e[s] = e[i];
+ }
+ filter(e, t, a) {
+ (0, r.unreachable)("Abstract method `filter` called");
+ }
+ iterate(e, t, a, r) {
+ const n = e.width,
+ i = e.height;
+ let s = e.items;
+ const o = t.width,
+ c = t.height,
+ l = t.items;
+ let h, u, d, f, g, p;
+ for (d = 0, h = 0; h < i; h++) {
+ f = 2 * h * o;
+ for (u = 0; u < n; u++, d++, f += 2) l[f] = s[d];
+ }
+ s = e.items = null;
+ const m = new Float32Array(o + 8);
+ if (1 === o) {
+ if (0 != (1 & a))
+ for (p = 0, d = 0; p < c; p++, d += o) l[d] *= 0.5;
+ } else
+ for (p = 0, d = 0; p < c; p++, d += o) {
+ m.set(l.subarray(d, d + o), 4);
+ this.extend(m, 4, o);
+ this.filter(m, 4, o);
+ l.set(m.subarray(4, 4 + o), d);
+ }
+ let b = 16;
+ const y = [];
+ for (h = 0; h < b; h++) y.push(new Float32Array(c + 8));
+ let w,
+ S = 0;
+ e = 4 + c;
+ if (1 === c) {
+ if (0 != (1 & r)) for (g = 0; g < o; g++) l[g] *= 0.5;
+ } else
+ for (g = 0; g < o; g++) {
+ if (0 === S) {
+ b = Math.min(o - g, b);
+ for (d = g, f = 4; f < e; d += o, f++)
+ for (w = 0; w < b; w++) y[w][f] = l[d + w];
+ S = b;
+ }
+ S--;
+ const t = y[S];
+ this.extend(t, 4, c);
+ this.filter(t, 4, c);
+ if (0 === S) {
+ d = g - b + 1;
+ for (f = 4; f < e; d += o, f++)
+ for (w = 0; w < b; w++) l[d + w] = y[w][f];
+ }
+ }
+ return { width: o, height: c, items: l };
+ }
+ }
+ class IrreversibleTransform extends Transform {
+ filter(e, t, a) {
+ const r = a >> 1;
+ let n, i, s, o;
+ const c = -1.586134342059924,
+ l = -0.052980118572961,
+ h = 0.882911075530934,
+ u = 0.443506852043971,
+ d = 1.230174104914001;
+ n = (t |= 0) - 3;
+ for (i = r + 4; i--; n += 2) e[n] *= 0.8128930661159609;
+ n = t - 2;
+ s = u * e[n - 1];
+ for (i = r + 3; i--; n += 2) {
+ o = u * e[n + 1];
+ e[n] = d * e[n] - s - o;
+ if (!i--) break;
+ n += 2;
+ s = u * e[n + 1];
+ e[n] = d * e[n] - s - o;
+ }
+ n = t - 1;
+ s = h * e[n - 1];
+ for (i = r + 2; i--; n += 2) {
+ o = h * e[n + 1];
+ e[n] -= s + o;
+ if (!i--) break;
+ n += 2;
+ s = h * e[n + 1];
+ e[n] -= s + o;
+ }
+ n = t;
+ s = l * e[n - 1];
+ for (i = r + 1; i--; n += 2) {
+ o = l * e[n + 1];
+ e[n] -= s + o;
+ if (!i--) break;
+ n += 2;
+ s = l * e[n + 1];
+ e[n] -= s + o;
+ }
+ if (0 !== r) {
+ n = t + 1;
+ s = c * e[n - 1];
+ for (i = r; i--; n += 2) {
+ o = c * e[n + 1];
+ e[n] -= s + o;
+ if (!i--) break;
+ n += 2;
+ s = c * e[n + 1];
+ e[n] -= s + o;
+ }
+ }
+ }
+ }
+ class ReversibleTransform extends Transform {
+ filter(e, t, a) {
+ const r = a >> 1;
+ let n, i;
+ for (n = t |= 0, i = r + 1; i--; n += 2)
+ e[n] -= (e[n - 1] + e[n + 1] + 2) >> 2;
+ for (n = t + 1, i = r; i--; n += 2)
+ e[n] += (e[n - 1] + e[n + 1]) >> 1;
+ }
+ }
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.LZWStream = void 0;
+ var r = a(18);
+ class LZWStream extends r.DecodeStream {
+ constructor(e, t, a) {
+ super(t);
+ this.str = e;
+ this.dict = e.dict;
+ this.cachedData = 0;
+ this.bitsCached = 0;
+ const r = 4096,
+ n = {
+ earlyChange: a,
+ codeLength: 9,
+ nextCode: 258,
+ dictionaryValues: new Uint8Array(r),
+ dictionaryLengths: new Uint16Array(r),
+ dictionaryPrevCodes: new Uint16Array(r),
+ currentSequence: new Uint8Array(r),
+ currentSequenceLength: 0,
+ };
+ for (let e = 0; e < 256; ++e) {
+ n.dictionaryValues[e] = e;
+ n.dictionaryLengths[e] = 1;
+ }
+ this.lzwState = n;
+ }
+ readBits(e) {
+ let t = this.bitsCached,
+ a = this.cachedData;
+ for (; t < e; ) {
+ const e = this.str.getByte();
+ if (-1 === e) {
+ this.eof = !0;
+ return null;
+ }
+ a = (a << 8) | e;
+ t += 8;
+ }
+ this.bitsCached = t -= e;
+ this.cachedData = a;
+ this.lastCode = null;
+ return (a >>> t) & ((1 << e) - 1);
+ }
+ readBlock() {
+ let e,
+ t,
+ a,
+ r = 1024;
+ const n = this.lzwState;
+ if (!n) return;
+ const i = n.earlyChange;
+ let s = n.nextCode;
+ const o = n.dictionaryValues,
+ c = n.dictionaryLengths,
+ l = n.dictionaryPrevCodes;
+ let h = n.codeLength,
+ u = n.prevCode;
+ const d = n.currentSequence;
+ let f = n.currentSequenceLength,
+ g = 0,
+ p = this.bufferLength,
+ m = this.ensureBuffer(this.bufferLength + r);
+ for (e = 0; e < 512; e++) {
+ const e = this.readBits(h),
+ n = f > 0;
+ if (e < 256) {
+ d[0] = e;
+ f = 1;
+ } else {
+ if (!(e >= 258)) {
+ if (256 === e) {
+ h = 9;
+ s = 258;
+ f = 0;
+ continue;
+ }
+ this.eof = !0;
+ delete this.lzwState;
+ break;
+ }
+ if (e < s) {
+ f = c[e];
+ for (t = f - 1, a = e; t >= 0; t--) {
+ d[t] = o[a];
+ a = l[a];
+ }
+ } else d[f++] = d[0];
+ }
+ if (n) {
+ l[s] = u;
+ c[s] = c[u] + 1;
+ o[s] = d[0];
+ s++;
+ h =
+ (s + i) & (s + i - 1)
+ ? h
+ : 0 |
+ Math.min(Math.log(s + i) / 0.6931471805599453 + 1, 12);
+ }
+ u = e;
+ g += f;
+ if (r < g) {
+ do {
+ r += 512;
+ } while (r < g);
+ m = this.ensureBuffer(this.bufferLength + r);
+ }
+ for (t = 0; t < f; t++) m[p++] = d[t];
+ }
+ n.nextCode = s;
+ n.codeLength = h;
+ n.prevCode = u;
+ n.currentSequenceLength = f;
+ this.bufferLength = p;
+ }
+ }
+ t.LZWStream = LZWStream;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.PredictorStream = void 0;
+ var r = a(18),
+ n = a(4),
+ i = a(2);
+ class PredictorStream extends r.DecodeStream {
+ constructor(e, t, a) {
+ super(t);
+ if (!(a instanceof n.Dict)) return e;
+ const r = (this.predictor = a.get("Predictor") || 1);
+ if (r <= 1) return e;
+ if (2 !== r && (r < 10 || r > 15))
+ throw new i.FormatError(`Unsupported predictor: ${r}`);
+ this.readBlock = 2 === r ? this.readBlockTiff : this.readBlockPng;
+ this.str = e;
+ this.dict = e.dict;
+ const s = (this.colors = a.get("Colors") || 1),
+ o = (this.bits = a.get("BPC", "BitsPerComponent") || 8),
+ c = (this.columns = a.get("Columns") || 1);
+ this.pixBytes = (s * o + 7) >> 3;
+ this.rowBytes = (c * s * o + 7) >> 3;
+ return this;
+ }
+ readBlockTiff() {
+ const e = this.rowBytes,
+ t = this.bufferLength,
+ a = this.ensureBuffer(t + e),
+ r = this.bits,
+ n = this.colors,
+ i = this.str.getBytes(e);
+ this.eof = !i.length;
+ if (this.eof) return;
+ let s,
+ o = 0,
+ c = 0,
+ l = 0,
+ h = 0,
+ u = t;
+ if (1 === r && 1 === n)
+ for (s = 0; s < e; ++s) {
+ let e = i[s] ^ o;
+ e ^= e >> 1;
+ e ^= e >> 2;
+ e ^= e >> 4;
+ o = (1 & e) << 7;
+ a[u++] = e;
+ }
+ else if (8 === r) {
+ for (s = 0; s < n; ++s) a[u++] = i[s];
+ for (; s < e; ++s) {
+ a[u] = a[u - n] + i[s];
+ u++;
+ }
+ } else if (16 === r) {
+ const t = 2 * n;
+ for (s = 0; s < t; ++s) a[u++] = i[s];
+ for (; s < e; s += 2) {
+ const e =
+ ((255 & i[s]) << 8) +
+ (255 & i[s + 1]) +
+ ((255 & a[u - t]) << 8) +
+ (255 & a[u - t + 1]);
+ a[u++] = (e >> 8) & 255;
+ a[u++] = 255 & e;
+ }
+ } else {
+ const e = new Uint8Array(n + 1),
+ u = (1 << r) - 1;
+ let d = 0,
+ f = t;
+ const g = this.columns;
+ for (s = 0; s < g; ++s)
+ for (let t = 0; t < n; ++t) {
+ if (l < r) {
+ o = (o << 8) | (255 & i[d++]);
+ l += 8;
+ }
+ e[t] = (e[t] + (o >> (l - r))) & u;
+ l -= r;
+ c = (c << r) | e[t];
+ h += r;
+ if (h >= 8) {
+ a[f++] = (c >> (h - 8)) & 255;
+ h -= 8;
+ }
+ }
+ h > 0 && (a[f++] = (c << (8 - h)) + (o & ((1 << (8 - h)) - 1)));
+ }
+ this.bufferLength += e;
+ }
+ readBlockPng() {
+ const e = this.rowBytes,
+ t = this.pixBytes,
+ a = this.str.getByte(),
+ r = this.str.getBytes(e);
+ this.eof = !r.length;
+ if (this.eof) return;
+ const n = this.bufferLength,
+ s = this.ensureBuffer(n + e);
+ let o = s.subarray(n - e, n);
+ 0 === o.length && (o = new Uint8Array(e));
+ let c,
+ l,
+ h,
+ u = n;
+ switch (a) {
+ case 0:
+ for (c = 0; c < e; ++c) s[u++] = r[c];
+ break;
+ case 1:
+ for (c = 0; c < t; ++c) s[u++] = r[c];
+ for (; c < e; ++c) {
+ s[u] = (s[u - t] + r[c]) & 255;
+ u++;
+ }
+ break;
+ case 2:
+ for (c = 0; c < e; ++c) s[u++] = (o[c] + r[c]) & 255;
+ break;
+ case 3:
+ for (c = 0; c < t; ++c) s[u++] = (o[c] >> 1) + r[c];
+ for (; c < e; ++c) {
+ s[u] = (((o[c] + s[u - t]) >> 1) + r[c]) & 255;
+ u++;
+ }
+ break;
+ case 4:
+ for (c = 0; c < t; ++c) {
+ l = o[c];
+ h = r[c];
+ s[u++] = l + h;
+ }
+ for (; c < e; ++c) {
+ l = o[c];
+ const e = o[c - t],
+ a = s[u - t],
+ n = a + l - e;
+ let i = n - a;
+ i < 0 && (i = -i);
+ let d = n - l;
+ d < 0 && (d = -d);
+ let f = n - e;
+ f < 0 && (f = -f);
+ h = r[c];
+ s[u++] = i <= d && i <= f ? a + h : d <= f ? l + h : e + h;
+ }
+ break;
+ default:
+ throw new i.FormatError(`Unsupported predictor: ${a}`);
+ }
+ this.bufferLength += e;
+ }
+ }
+ t.PredictorStream = PredictorStream;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.RunLengthStream = void 0;
+ var r = a(18);
+ class RunLengthStream extends r.DecodeStream {
+ constructor(e, t) {
+ super(t);
+ this.str = e;
+ this.dict = e.dict;
+ }
+ readBlock() {
+ const e = this.str.getBytes(2);
+ if (!e || e.length < 2 || 128 === e[0]) {
+ this.eof = !0;
+ return;
+ }
+ let t,
+ a = this.bufferLength,
+ r = e[0];
+ if (r < 128) {
+ t = this.ensureBuffer(a + r + 1);
+ t[a++] = e[1];
+ if (r > 0) {
+ const e = this.str.getBytes(r);
+ t.set(e, a);
+ a += r;
+ }
+ } else {
+ r = 257 - r;
+ const n = e[1];
+ t = this.ensureBuffer(a + r + 1);
+ for (let e = 0; e < r; e++) t[a++] = n;
+ }
+ this.bufferLength = a;
+ }
+ }
+ t.RunLengthStream = RunLengthStream;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.Font = t.ErrorFont = void 0;
+ var r = a(2),
+ n = a(35),
+ i = a(38),
+ s = a(40),
+ o = a(39),
+ c = a(37),
+ l = a(41),
+ h = a(42),
+ u = a(43),
+ d = a(44),
+ f = a(45),
+ g = a(46),
+ p = a(14),
+ m = a(47),
+ b = a(3),
+ y = a(8),
+ w = a(48);
+ const S = [
+ [57344, 63743],
+ [1048576, 1114109],
+ ],
+ x = 1e3,
+ C = [
+ "ascent",
+ "bbox",
+ "black",
+ "bold",
+ "charProcOperatorList",
+ "composite",
+ "cssFontInfo",
+ "data",
+ "defaultVMetrics",
+ "defaultWidth",
+ "descent",
+ "fallbackName",
+ "fontMatrix",
+ "isInvalidPDFjsFont",
+ "isType3Font",
+ "italic",
+ "loadedName",
+ "mimetype",
+ "missingFile",
+ "name",
+ "remeasure",
+ "subtype",
+ "systemFontInfo",
+ "type",
+ "vertical",
+ ],
+ k = [
+ "cMap",
+ "defaultEncoding",
+ "differences",
+ "isMonospace",
+ "isSerifFont",
+ "isSymbolicFont",
+ "seacMap",
+ "toFontChar",
+ "toUnicode",
+ "vmetrics",
+ "widths",
+ ];
+ function adjustWidths(e) {
+ if (!e.fontMatrix) return;
+ if (e.fontMatrix[0] === r.FONT_IDENTITY_MATRIX[0]) return;
+ const t = 0.001 / e.fontMatrix[0],
+ a = e.widths;
+ for (const e in a) a[e] *= t;
+ e.defaultWidth *= t;
+ }
+ function amendFallbackToUnicode(e) {
+ if (!e.fallbackToUnicode) return;
+ if (e.toUnicode instanceof h.IdentityToUnicodeMap) return;
+ const t = [];
+ for (const a in e.fallbackToUnicode)
+ e.toUnicode.has(a) || (t[a] = e.fallbackToUnicode[a]);
+ t.length > 0 && e.toUnicode.amend(t);
+ }
+ class Glyph {
+ constructor(e, t, a, r, n, i, s, o, c) {
+ this.originalCharCode = e;
+ this.fontChar = t;
+ this.unicode = a;
+ this.accent = r;
+ this.width = n;
+ this.vmetric = i;
+ this.operatorListId = s;
+ this.isSpace = o;
+ this.isInFont = c;
+ }
+ get category() {
+ return (0, r.shadow)(
+ this,
+ "category",
+ (0, s.getCharUnicodeCategory)(this.unicode),
+ !0,
+ );
+ }
+ }
+ function int16(e, t) {
+ return (e << 8) + t;
+ }
+ function writeSignedInt16(e, t, a) {
+ e[t + 1] = a;
+ e[t] = a >>> 8;
+ }
+ function signedInt16(e, t) {
+ const a = (e << 8) + t;
+ return 32768 & a ? a - 65536 : a;
+ }
+ function string16(e) {
+ return String.fromCharCode((e >> 8) & 255, 255 & e);
+ }
+ function safeString16(e) {
+ e > 32767 ? (e = 32767) : e < -32768 && (e = -32768);
+ return String.fromCharCode((e >> 8) & 255, 255 & e);
+ }
+ function isTrueTypeCollectionFile(e) {
+ const t = e.peekBytes(4);
+ return "ttcf" === (0, r.bytesToString)(t);
+ }
+ function getFontFileType(e, { type: t, subtype: a, composite: n }) {
+ let i, s;
+ if (
+ (function isTrueTypeFile(e) {
+ const t = e.peekBytes(4);
+ return (
+ 65536 === (0, b.readUint32)(t, 0) ||
+ "true" === (0, r.bytesToString)(t)
+ );
+ })(e) ||
+ isTrueTypeCollectionFile(e)
+ )
+ i = n ? "CIDFontType2" : "TrueType";
+ else if (
+ (function isOpenTypeFile(e) {
+ const t = e.peekBytes(4);
+ return "OTTO" === (0, r.bytesToString)(t);
+ })(e)
+ )
+ i = n ? "CIDFontType2" : "OpenType";
+ else if (
+ (function isType1File(e) {
+ const t = e.peekBytes(2);
+ return (
+ (37 === t[0] && 33 === t[1]) || (128 === t[0] && 1 === t[1])
+ );
+ })(e)
+ )
+ i = n ? "CIDFontType0" : "MMType1" === t ? "MMType1" : "Type1";
+ else if (
+ (function isCFFFile(e) {
+ const t = e.peekBytes(4);
+ return t[0] >= 1 && t[3] >= 1 && t[3] <= 4;
+ })(e)
+ )
+ if (n) {
+ i = "CIDFontType0";
+ s = "CIDFontType0C";
+ } else {
+ i = "MMType1" === t ? "MMType1" : "Type1";
+ s = "Type1C";
+ }
+ else {
+ (0, r.warn)(
+ "getFontFileType: Unable to detect correct font file Type/Subtype.",
+ );
+ i = t;
+ s = a;
+ }
+ return [i, s];
+ }
+ function applyStandardFontGlyphMap(e, t) {
+ for (const a in t) e[+a] = t[a];
+ }
+ function buildToFontChar(e, t, a) {
+ const r = [];
+ let n;
+ for (let a = 0, i = e.length; a < i; a++) {
+ n = (0, s.getUnicodeForGlyph)(e[a], t);
+ -1 !== n && (r[a] = n);
+ }
+ for (const e in a) {
+ n = (0, s.getUnicodeForGlyph)(a[e], t);
+ -1 !== n && (r[+e] = n);
+ }
+ return r;
+ }
+ function isMacNameRecord(e) {
+ return 1 === e.platform && 0 === e.encoding && 0 === e.language;
+ }
+ function isWinNameRecord(e) {
+ return 3 === e.platform && 1 === e.encoding && 1033 === e.language;
+ }
+ function convertCidString(e, t, a = !1) {
+ switch (t.length) {
+ case 1:
+ return t.charCodeAt(0);
+ case 2:
+ return (t.charCodeAt(0) << 8) | t.charCodeAt(1);
+ }
+ const n = `Unsupported CID string (charCode ${e}): "${t}".`;
+ if (a) throw new r.FormatError(n);
+ (0, r.warn)(n);
+ return t;
+ }
+ function adjustMapping(e, t, a, n) {
+ const i = Object.create(null),
+ s = new Map(),
+ o = [],
+ c = new Set();
+ let l = 0;
+ let h = S[l][0],
+ u = S[l][1];
+ for (let f in e) {
+ f |= 0;
+ let g = e[f];
+ if (!t(g)) continue;
+ if (h > u) {
+ l++;
+ if (l >= S.length) {
+ (0, r.warn)("Ran out of space in font private use area.");
+ break;
+ }
+ h = S[l][0];
+ u = S[l][1];
+ }
+ const p = h++;
+ 0 === g && (g = a);
+ let m = n.get(f);
+ "string" == typeof m && (m = m.codePointAt(0));
+ if (
+ m &&
+ !((d = m),
+ (S[0][0] <= d && d <= S[0][1]) ||
+ (S[1][0] <= d && d <= S[1][1])) &&
+ !c.has(g)
+ ) {
+ s.set(m, g);
+ c.add(g);
+ }
+ i[p] = g;
+ o[f] = p;
+ }
+ var d;
+ return {
+ toFontChar: o,
+ charCodeToGlyphId: i,
+ toUnicodeExtraMap: s,
+ nextAvailableFontCharCode: h,
+ };
+ }
+ function createCmapTable(e, t, a) {
+ const n = (function getRanges(e, t, a) {
+ const r = [];
+ for (const t in e)
+ e[t] >= a || r.push({ fontCharCode: 0 | t, glyphId: e[t] });
+ if (t)
+ for (const [e, n] of t)
+ n >= a || r.push({ fontCharCode: e, glyphId: n });
+ 0 === r.length && r.push({ fontCharCode: 0, glyphId: 0 });
+ r.sort(function fontGetRangesSort(e, t) {
+ return e.fontCharCode - t.fontCharCode;
+ });
+ const n = [],
+ i = r.length;
+ for (let e = 0; e < i; ) {
+ const t = r[e].fontCharCode,
+ a = [r[e].glyphId];
+ ++e;
+ let s = t;
+ for (; e < i && s + 1 === r[e].fontCharCode; ) {
+ a.push(r[e].glyphId);
+ ++s;
+ ++e;
+ if (65535 === s) break;
+ }
+ n.push([t, s, a]);
+ }
+ return n;
+ })(e, t, a),
+ i = n.at(-1)[1] > 65535 ? 2 : 1;
+ let s,
+ o,
+ c,
+ l,
+ h = "\0\0" + string16(i) + "\0\0" + (0, r.string32)(4 + 8 * i);
+ for (s = n.length - 1; s >= 0 && !(n[s][0] <= 65535); --s);
+ const u = s + 1;
+ n[s][0] < 65535 && 65535 === n[s][1] && (n[s][1] = 65534);
+ const d = n[s][1] < 65535 ? 1 : 0,
+ f = u + d,
+ g = m.OpenTypeFileBuilder.getSearchParams(f, 2);
+ let p,
+ b,
+ y,
+ w,
+ S = "",
+ x = "",
+ C = "",
+ k = "",
+ v = "",
+ F = 0;
+ for (s = 0, o = u; s < o; s++) {
+ p = n[s];
+ b = p[0];
+ y = p[1];
+ S += string16(b);
+ x += string16(y);
+ w = p[2];
+ let e = !0;
+ for (c = 1, l = w.length; c < l; ++c)
+ if (w[c] !== w[c - 1] + 1) {
+ e = !1;
+ break;
+ }
+ if (e) {
+ C += string16((w[0] - b) & 65535);
+ k += string16(0);
+ } else {
+ const e = 2 * (f - s) + 2 * F;
+ F += y - b + 1;
+ C += string16(0);
+ k += string16(e);
+ for (c = 0, l = w.length; c < l; ++c) v += string16(w[c]);
+ }
+ }
+ if (d > 0) {
+ x += "ÿÿ";
+ S += "ÿÿ";
+ C += "\0";
+ k += "\0\0";
+ }
+ const O =
+ "\0\0" +
+ string16(2 * f) +
+ string16(g.range) +
+ string16(g.entry) +
+ string16(g.rangeShift) +
+ x +
+ "\0\0" +
+ S +
+ C +
+ k +
+ v;
+ let T = "",
+ M = "";
+ if (i > 1) {
+ h += "\0\0\n" + (0, r.string32)(4 + 8 * i + 4 + O.length);
+ T = "";
+ for (s = 0, o = n.length; s < o; s++) {
+ p = n[s];
+ b = p[0];
+ w = p[2];
+ let e = w[0];
+ for (c = 1, l = w.length; c < l; ++c)
+ if (w[c] !== w[c - 1] + 1) {
+ y = p[0] + c - 1;
+ T +=
+ (0, r.string32)(b) +
+ (0, r.string32)(y) +
+ (0, r.string32)(e);
+ b = y + 1;
+ e = w[c];
+ }
+ T +=
+ (0, r.string32)(b) +
+ (0, r.string32)(p[1]) +
+ (0, r.string32)(e);
+ }
+ M =
+ "\0\f\0\0" +
+ (0, r.string32)(T.length + 16) +
+ "\0\0\0\0" +
+ (0, r.string32)(T.length / 12);
+ }
+ return h + "\0" + string16(O.length + 4) + O + M + T;
+ }
+ function createOS2Table(e, t, a) {
+ a ||= { unitsPerEm: 0, yMax: 0, yMin: 0, ascent: 0, descent: 0 };
+ let n = 0,
+ i = 0,
+ o = 0,
+ c = 0,
+ l = null,
+ h = 0,
+ u = -1;
+ if (t) {
+ for (let e in t) {
+ e |= 0;
+ (l > e || !l) && (l = e);
+ h < e && (h = e);
+ u = (0, s.getUnicodeRangeFor)(e, u);
+ if (u < 32) n |= 1 << u;
+ else if (u < 64) i |= 1 << (u - 32);
+ else if (u < 96) o |= 1 << (u - 64);
+ else {
+ if (!(u < 123))
+ throw new r.FormatError(
+ "Unicode ranges Bits > 123 are reserved for internal usage",
+ );
+ c |= 1 << (u - 96);
+ }
+ }
+ h > 65535 && (h = 65535);
+ } else {
+ l = 0;
+ h = 255;
+ }
+ const d = e.bbox || [0, 0, 0, 0],
+ f =
+ a.unitsPerEm || 1 / (e.fontMatrix || r.FONT_IDENTITY_MATRIX)[0],
+ g = e.ascentScaled ? 1 : f / x,
+ p = a.ascent || Math.round(g * (e.ascent || d[3]));
+ let m = a.descent || Math.round(g * (e.descent || d[1]));
+ m > 0 && e.descent > 0 && d[1] < 0 && (m = -m);
+ const b = a.yMax || p,
+ y = -a.yMin || -m;
+ return (
+ "\0$ô\0\0\0»\0\0\0»\0\0ß\x001\0\0\0\0" +
+ String.fromCharCode(e.fixedPitch ? 9 : 0) +
+ "\0\0\0\0\0\0" +
+ (0, r.string32)(n) +
+ (0, r.string32)(i) +
+ (0, r.string32)(o) +
+ (0, r.string32)(c) +
+ "*21*" +
+ string16(e.italicAngle ? 1 : 0) +
+ string16(l || e.firstChar) +
+ string16(h || e.lastChar) +
+ string16(p) +
+ string16(m) +
+ "\0d" +
+ string16(b) +
+ string16(y) +
+ "\0\0\0\0\0\0\0\0" +
+ string16(e.xHeight) +
+ string16(e.capHeight) +
+ string16(0) +
+ string16(l || e.firstChar) +
+ "\0"
+ );
+ }
+ function createPostTable(e) {
+ const t = Math.floor(65536 * e.italicAngle);
+ return (
+ "\0\0\0" +
+ (0, r.string32)(t) +
+ "\0\0\0\0" +
+ (0, r.string32)(e.fixedPitch ? 1 : 0) +
+ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+ );
+ }
+ function createPostscriptName(e) {
+ return e.replaceAll(/[^\x21-\x7E]|[[\](){}<>/%]/g, "").slice(0, 63);
+ }
+ function createNameTable(e, t) {
+ t || (t = [[], []]);
+ const a = [
+ t[0][0] || "Original licence",
+ t[0][1] || e,
+ t[0][2] || "Unknown",
+ t[0][3] || "uniqueID",
+ t[0][4] || e,
+ t[0][5] || "Version 0.11",
+ t[0][6] || createPostscriptName(e),
+ t[0][7] || "Unknown",
+ t[0][8] || "Unknown",
+ t[0][9] || "Unknown",
+ ],
+ r = [];
+ let n, i, s, o, c;
+ for (n = 0, i = a.length; n < i; n++) {
+ c = t[1][n] || a[n];
+ const e = [];
+ for (s = 0, o = c.length; s < o; s++)
+ e.push(string16(c.charCodeAt(s)));
+ r.push(e.join(""));
+ }
+ const l = [a, r],
+ h = ["\0", "\0"],
+ u = ["\0\0", "\0"],
+ d = ["\0\0", "\t"],
+ f = a.length * h.length;
+ let g = "\0\0" + string16(f) + string16(12 * f + 6),
+ p = 0;
+ for (n = 0, i = h.length; n < i; n++) {
+ const e = l[n];
+ for (s = 0, o = e.length; s < o; s++) {
+ c = e[s];
+ g +=
+ h[n] +
+ u[n] +
+ d[n] +
+ string16(s) +
+ string16(c.length) +
+ string16(p);
+ p += c.length;
+ }
+ }
+ g += a.join("") + r.join("");
+ return g;
+ }
+ t.Font = class Font {
+ constructor(e, t, a) {
+ this.name = e;
+ this.psName = null;
+ this.mimetype = null;
+ this.disableFontFace = !1;
+ this.loadedName = a.loadedName;
+ this.isType3Font = a.isType3Font;
+ this.missingFile = !1;
+ this.cssFontInfo = a.cssFontInfo;
+ this._charsCache = Object.create(null);
+ this._glyphCache = Object.create(null);
+ let n = !!(a.flags & i.FontFlags.Serif);
+ if (!n && !a.isSimulatedFlags) {
+ const t = e.replaceAll(/[,_]/g, "-").split("-")[0],
+ a = (0, l.getSerifFonts)();
+ for (const e of t.split("+"))
+ if (a[e]) {
+ n = !0;
+ break;
+ }
+ }
+ this.isSerifFont = n;
+ this.isSymbolicFont = !!(a.flags & i.FontFlags.Symbolic);
+ this.isMonospace = !!(a.flags & i.FontFlags.FixedPitch);
+ let { type: s, subtype: o } = a;
+ this.type = s;
+ this.subtype = o;
+ this.systemFontInfo = a.systemFontInfo;
+ const c = e.match(/^InvalidPDFjsFont_(.*)_\d+$/);
+ this.isInvalidPDFjsFont = !!c;
+ this.isInvalidPDFjsFont
+ ? (this.fallbackName = c[1])
+ : this.isMonospace
+ ? (this.fallbackName = "monospace")
+ : this.isSerifFont
+ ? (this.fallbackName = "serif")
+ : (this.fallbackName = "sans-serif");
+ if (this.systemFontInfo?.guessFallback) {
+ this.systemFontInfo.guessFallback = !1;
+ this.systemFontInfo.css += `,${this.fallbackName}`;
+ }
+ this.differences = a.differences;
+ this.widths = a.widths;
+ this.defaultWidth = a.defaultWidth;
+ this.composite = a.composite;
+ this.cMap = a.cMap;
+ this.capHeight = a.capHeight / x;
+ this.ascent = a.ascent / x;
+ this.descent = a.descent / x;
+ this.lineHeight = this.ascent - this.descent;
+ this.fontMatrix = a.fontMatrix;
+ this.bbox = a.bbox;
+ this.defaultEncoding = a.defaultEncoding;
+ this.toUnicode = a.toUnicode;
+ this.toFontChar = [];
+ if ("Type3" === a.type) {
+ for (let e = 0; e < 256; e++)
+ this.toFontChar[e] =
+ this.differences[e] || a.defaultEncoding[e];
+ return;
+ }
+ this.cidEncoding = a.cidEncoding || "";
+ this.vertical = !!a.vertical;
+ if (this.vertical) {
+ this.vmetrics = a.vmetrics;
+ this.defaultVMetrics = a.defaultVMetrics;
+ }
+ if (!t || t.isEmpty) {
+ t &&
+ (0, r.warn)(
+ 'Font file is empty in "' +
+ e +
+ '" (' +
+ this.loadedName +
+ ")",
+ );
+ this.fallbackToSystemFont(a);
+ return;
+ }
+ [s, o] = getFontFileType(t, a);
+ (s === this.type && o === this.subtype) ||
+ (0, r.info)(
+ `Inconsistent font file Type/SubType, expected: ${this.type}/${this.subtype} but found: ${s}/${o}.`,
+ );
+ let h;
+ try {
+ switch (s) {
+ case "MMType1":
+ (0, r.info)(
+ "MMType1 font (" + e + "), falling back to Type1.",
+ );
+ case "Type1":
+ case "CIDFontType0":
+ this.mimetype = "font/opentype";
+ const n =
+ "Type1C" === o || "CIDFontType0C" === o
+ ? new u.CFFFont(t, a)
+ : new w.Type1Font(e, t, a);
+ adjustWidths(a);
+ h = this.convert(e, n, a);
+ break;
+ case "OpenType":
+ case "TrueType":
+ case "CIDFontType2":
+ this.mimetype = "font/opentype";
+ h = this.checkAndRepair(e, t, a);
+ if (this.isOpenType) {
+ adjustWidths(a);
+ s = "OpenType";
+ }
+ break;
+ default:
+ throw new r.FormatError(`Font ${s} is not supported`);
+ }
+ } catch (e) {
+ (0, r.warn)(e);
+ this.fallbackToSystemFont(a);
+ return;
+ }
+ amendFallbackToUnicode(a);
+ this.data = h;
+ this.type = s;
+ this.subtype = o;
+ this.fontMatrix = a.fontMatrix;
+ this.widths = a.widths;
+ this.defaultWidth = a.defaultWidth;
+ this.toUnicode = a.toUnicode;
+ this.seacMap = a.seacMap;
+ }
+ get renderer() {
+ const e = d.FontRendererFactory.create(
+ this,
+ i.SEAC_ANALYSIS_ENABLED,
+ );
+ return (0, r.shadow)(this, "renderer", e);
+ }
+ exportData(e = !1) {
+ const t = e ? [...C, ...k] : C,
+ a = Object.create(null);
+ let r, n;
+ for (r of t) {
+ n = this[r];
+ void 0 !== n && (a[r] = n);
+ }
+ return a;
+ }
+ fallbackToSystemFont(e) {
+ this.missingFile = !0;
+ const { name: t, type: a } = this;
+ let r = (0, i.normalizeFontName)(t);
+ const n = (0, l.getStdFontMap)(),
+ u = (0, l.getNonStdFontMap)(),
+ d = !!n[r],
+ g = !(!u[r] || !n[u[r]]);
+ r = n[r] || u[r] || r;
+ const p = (0, f.getFontBasicMetrics)()[r];
+ if (p) {
+ isNaN(this.ascent) && (this.ascent = p.ascent / x);
+ isNaN(this.descent) && (this.descent = p.descent / x);
+ isNaN(this.capHeight) && (this.capHeight = p.capHeight / x);
+ }
+ this.bold = /bold/gi.test(r);
+ this.italic = /oblique|italic/gi.test(r);
+ this.black = /Black/g.test(t);
+ const m = /Narrow/g.test(t);
+ this.remeasure = (!d || m) && Object.keys(this.widths).length > 0;
+ if (
+ (d || g) &&
+ "CIDFontType2" === a &&
+ this.cidEncoding.startsWith("Identity-")
+ ) {
+ const a = e.cidToGidMap,
+ r = [];
+ applyStandardFontGlyphMap(
+ r,
+ (0, l.getGlyphMapForStandardFonts)(),
+ );
+ /Arial-?Black/i.test(t)
+ ? applyStandardFontGlyphMap(
+ r,
+ (0, l.getSupplementalGlyphMapForArialBlack)(),
+ )
+ : /Calibri/i.test(t) &&
+ applyStandardFontGlyphMap(
+ r,
+ (0, l.getSupplementalGlyphMapForCalibri)(),
+ );
+ if (a) {
+ for (const e in r) {
+ const t = r[e];
+ void 0 !== a[t] && (r[+e] = a[t]);
+ }
+ a.length !== this.toUnicode.length &&
+ e.hasIncludedToUnicodeMap &&
+ this.toUnicode instanceof h.IdentityToUnicodeMap &&
+ this.toUnicode.forEach(function (e, t) {
+ const n = r[e];
+ void 0 === a[n] && (r[+e] = t);
+ });
+ }
+ this.toUnicode instanceof h.IdentityToUnicodeMap ||
+ this.toUnicode.forEach(function (e, t) {
+ r[+e] = t;
+ });
+ this.toFontChar = r;
+ this.toUnicode = new h.ToUnicodeMap(r);
+ } else if (/Symbol/i.test(r))
+ this.toFontChar = buildToFontChar(
+ c.SymbolSetEncoding,
+ (0, o.getGlyphsUnicode)(),
+ this.differences,
+ );
+ else if (/Dingbats/i.test(r))
+ this.toFontChar = buildToFontChar(
+ c.ZapfDingbatsEncoding,
+ (0, o.getDingbatsGlyphsUnicode)(),
+ this.differences,
+ );
+ else if (d) {
+ const e = buildToFontChar(
+ this.defaultEncoding,
+ (0, o.getGlyphsUnicode)(),
+ this.differences,
+ );
+ "CIDFontType2" !== a ||
+ this.cidEncoding.startsWith("Identity-") ||
+ this.toUnicode instanceof h.IdentityToUnicodeMap ||
+ this.toUnicode.forEach(function (t, a) {
+ e[+t] = a;
+ });
+ this.toFontChar = e;
+ } else {
+ const e = (0, o.getGlyphsUnicode)(),
+ a = [];
+ this.toUnicode.forEach((t, r) => {
+ if (!this.composite) {
+ const a = this.differences[t] || this.defaultEncoding[t],
+ n = (0, s.getUnicodeForGlyph)(a, e);
+ -1 !== n && (r = n);
+ }
+ a[+t] = r;
+ });
+ this.composite &&
+ this.toUnicode instanceof h.IdentityToUnicodeMap &&
+ /Tahoma|Verdana/i.test(t) &&
+ applyStandardFontGlyphMap(
+ a,
+ (0, l.getGlyphMapForStandardFonts)(),
+ );
+ this.toFontChar = a;
+ }
+ amendFallbackToUnicode(e);
+ this.loadedName = r.split("-")[0];
+ }
+ checkAndRepair(e, t, a) {
+ const s = [
+ "OS/2",
+ "cmap",
+ "head",
+ "hhea",
+ "hmtx",
+ "maxp",
+ "name",
+ "post",
+ "loca",
+ "glyf",
+ "fpgm",
+ "prep",
+ "cvt ",
+ "CFF ",
+ ];
+ function readTables(e, t) {
+ const a = Object.create(null);
+ a["OS/2"] = null;
+ a.cmap = null;
+ a.head = null;
+ a.hhea = null;
+ a.hmtx = null;
+ a.maxp = null;
+ a.name = null;
+ a.post = null;
+ for (let r = 0; r < t; r++) {
+ const t = readTableEntry(e);
+ s.includes(t.tag) && 0 !== t.length && (a[t.tag] = t);
+ }
+ return a;
+ }
+ function readTableEntry(e) {
+ const t = e.getString(4),
+ a = e.getInt32() >>> 0,
+ r = e.getInt32() >>> 0,
+ n = e.getInt32() >>> 0,
+ i = e.pos;
+ e.pos = e.start || 0;
+ e.skip(r);
+ const s = e.getBytes(n);
+ e.pos = i;
+ if ("head" === t) {
+ s[8] = s[9] = s[10] = s[11] = 0;
+ s[17] |= 32;
+ }
+ return { tag: t, checksum: a, length: n, offset: r, data: s };
+ }
+ function readOpenTypeHeader(e) {
+ return {
+ version: e.getString(4),
+ numTables: e.getUint16(),
+ searchRange: e.getUint16(),
+ entrySelector: e.getUint16(),
+ rangeShift: e.getUint16(),
+ };
+ }
+ function sanitizeGlyph(e, t, a, r, n, i) {
+ const s = { length: 0, sizeOfInstructions: 0 };
+ if (t < 0 || t >= e.length || a > e.length || a - t <= 12)
+ return s;
+ const o = e.subarray(t, a),
+ c = signedInt16(o[2], o[3]),
+ l = signedInt16(o[4], o[5]),
+ h = signedInt16(o[6], o[7]),
+ u = signedInt16(o[8], o[9]);
+ if (c > h) {
+ writeSignedInt16(o, 2, h);
+ writeSignedInt16(o, 6, c);
+ }
+ if (l > u) {
+ writeSignedInt16(o, 4, u);
+ writeSignedInt16(o, 8, l);
+ }
+ const d = signedInt16(o[0], o[1]);
+ if (d < 0) {
+ if (d < -1) return s;
+ r.set(o, n);
+ s.length = o.length;
+ return s;
+ }
+ let f,
+ g = 10,
+ p = 0;
+ for (f = 0; f < d; f++) {
+ p = ((o[g] << 8) | o[g + 1]) + 1;
+ g += 2;
+ }
+ const m = g,
+ b = (o[g] << 8) | o[g + 1];
+ s.sizeOfInstructions = b;
+ g += 2 + b;
+ const y = g;
+ let w = 0;
+ for (f = 0; f < p; f++) {
+ const e = o[g++];
+ 192 & e && (o[g - 1] = 63 & e);
+ let t = 2;
+ 2 & e ? (t = 1) : 16 & e && (t = 0);
+ let a = 2;
+ 4 & e ? (a = 1) : 32 & e && (a = 0);
+ const r = t + a;
+ w += r;
+ if (8 & e) {
+ const e = o[g++];
+ 0 === e && (o[g - 1] ^= 8);
+ f += e;
+ w += e * r;
+ }
+ }
+ if (0 === w) return s;
+ let S = g + w;
+ if (S > o.length) return s;
+ if (!i && b > 0) {
+ r.set(o.subarray(0, m), n);
+ r.set([0, 0], n + m);
+ r.set(o.subarray(y, S), n + m + 2);
+ S -= b;
+ o.length - S > 3 && (S = (S + 3) & -4);
+ s.length = S;
+ return s;
+ }
+ if (o.length - S > 3) {
+ S = (S + 3) & -4;
+ r.set(o.subarray(0, S), n);
+ s.length = S;
+ return s;
+ }
+ r.set(o, n);
+ s.length = o.length;
+ return s;
+ }
+ function readNameTable(e) {
+ const a = (t.start || 0) + e.offset;
+ t.pos = a;
+ const r = [[], []],
+ n = [],
+ i = e.length,
+ s = a + i;
+ if (0 !== t.getUint16() || i < 6) return [r, n];
+ const o = t.getUint16(),
+ c = t.getUint16();
+ let l, h;
+ for (l = 0; l < o && t.pos + 12 <= s; l++) {
+ const e = {
+ platform: t.getUint16(),
+ encoding: t.getUint16(),
+ language: t.getUint16(),
+ name: t.getUint16(),
+ length: t.getUint16(),
+ offset: t.getUint16(),
+ };
+ (isMacNameRecord(e) || isWinNameRecord(e)) && n.push(e);
+ }
+ for (l = 0, h = n.length; l < h; l++) {
+ const e = n[l];
+ if (e.length <= 0) continue;
+ const i = a + c + e.offset;
+ if (i + e.length > s) continue;
+ t.pos = i;
+ const o = e.name;
+ if (e.encoding) {
+ let a = "";
+ for (let r = 0, n = e.length; r < n; r += 2)
+ a += String.fromCharCode(t.getUint16());
+ r[1][o] = a;
+ } else r[0][o] = t.getString(e.length);
+ }
+ return [r, n];
+ }
+ const l = [
+ 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5, -1, -1,
+ -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, 1, -1,
+ -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1, 0, 0, -999,
+ -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2, 0, 0,
+ -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1, -1, -1, -1, -1,
+ -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1, -1, -1, -1, -1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -999, -999, -999, -999,
+ -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1, -999, -2, -2, 0, 0,
+ -1, -2, -2, 0, 0, 0, -1, -1, -1, -2,
+ ];
+ function sanitizeTTProgram(e, t) {
+ let a,
+ n,
+ i,
+ s,
+ o,
+ c = e.data,
+ h = 0,
+ u = 0,
+ d = 0;
+ const f = [],
+ g = [],
+ p = [];
+ let m = t.tooComplexToFollowFunctions,
+ b = !1,
+ y = 0,
+ w = 0;
+ for (let e = c.length; h < e; ) {
+ const e = c[h++];
+ if (64 === e) {
+ n = c[h++];
+ if (b || w) h += n;
+ else for (a = 0; a < n; a++) f.push(c[h++]);
+ } else if (65 === e) {
+ n = c[h++];
+ if (b || w) h += 2 * n;
+ else
+ for (a = 0; a < n; a++) {
+ i = c[h++];
+ f.push((i << 8) | c[h++]);
+ }
+ } else if (176 == (248 & e)) {
+ n = e - 176 + 1;
+ if (b || w) h += n;
+ else for (a = 0; a < n; a++) f.push(c[h++]);
+ } else if (184 == (248 & e)) {
+ n = e - 184 + 1;
+ if (b || w) h += 2 * n;
+ else
+ for (a = 0; a < n; a++) {
+ i = c[h++];
+ f.push((i << 8) | c[h++]);
+ }
+ } else if (43 !== e || m)
+ if (44 !== e || m) {
+ if (45 === e)
+ if (b) {
+ b = !1;
+ u = h;
+ } else {
+ o = g.pop();
+ if (!o) {
+ (0, r.warn)("TT: ENDF bad stack");
+ t.hintsValid = !1;
+ return;
+ }
+ s = p.pop();
+ c = o.data;
+ h = o.i;
+ t.functionsStackDeltas[s] = f.length - o.stackTop;
+ }
+ else if (137 === e) {
+ if (b || w) {
+ (0, r.warn)("TT: nested IDEFs not allowed");
+ m = !0;
+ }
+ b = !0;
+ d = h;
+ } else if (88 === e) ++y;
+ else if (27 === e) w = y;
+ else if (89 === e) {
+ w === y && (w = 0);
+ --y;
+ } else if (28 === e && !b && !w) {
+ const e = f.at(-1);
+ e > 0 && (h += e - 1);
+ }
+ } else {
+ if (b || w) {
+ (0, r.warn)("TT: nested FDEFs not allowed");
+ m = !0;
+ }
+ b = !0;
+ d = h;
+ s = f.pop();
+ t.functionsDefined[s] = { data: c, i: h };
+ }
+ else if (!b && !w) {
+ s = f.at(-1);
+ if (isNaN(s))
+ (0, r.info)("TT: CALL empty stack (or invalid entry).");
+ else {
+ t.functionsUsed[s] = !0;
+ if (s in t.functionsStackDeltas) {
+ const e = f.length + t.functionsStackDeltas[s];
+ if (e < 0) {
+ (0, r.warn)(
+ "TT: CALL invalid functions stack delta.",
+ );
+ t.hintsValid = !1;
+ return;
+ }
+ f.length = e;
+ } else if (s in t.functionsDefined && !p.includes(s)) {
+ g.push({ data: c, i: h, stackTop: f.length - 1 });
+ p.push(s);
+ o = t.functionsDefined[s];
+ if (!o) {
+ (0, r.warn)("TT: CALL non-existent function");
+ t.hintsValid = !1;
+ return;
+ }
+ c = o.data;
+ h = o.i;
+ }
+ }
+ }
+ if (!b && !w) {
+ let t = 0;
+ e <= 142
+ ? (t = l[e])
+ : e >= 192 && e <= 223
+ ? (t = -1)
+ : e >= 224 && (t = -2);
+ if (e >= 113 && e <= 117) {
+ n = f.pop();
+ isNaN(n) || (t = 2 * -n);
+ }
+ for (; t < 0 && f.length > 0; ) {
+ f.pop();
+ t++;
+ }
+ for (; t > 0; ) {
+ f.push(NaN);
+ t--;
+ }
+ }
+ }
+ t.tooComplexToFollowFunctions = m;
+ const S = [c];
+ h > c.length && S.push(new Uint8Array(h - c.length));
+ if (d > u) {
+ (0, r.warn)("TT: complementing a missing function tail");
+ S.push(new Uint8Array([34, 45]));
+ }
+ !(function foldTTTable(e, t) {
+ if (t.length > 1) {
+ let a,
+ r,
+ n = 0;
+ for (a = 0, r = t.length; a < r; a++) n += t[a].length;
+ n = (n + 3) & -4;
+ const i = new Uint8Array(n);
+ let s = 0;
+ for (a = 0, r = t.length; a < r; a++) {
+ i.set(t[a], s);
+ s += t[a].length;
+ }
+ e.data = i;
+ e.length = n;
+ }
+ })(e, S);
+ }
+ let d, f, b, w;
+ if (
+ isTrueTypeCollectionFile(
+ (t = new y.Stream(new Uint8Array(t.getBytes()))),
+ )
+ ) {
+ const e = (function readTrueTypeCollectionData(e, t) {
+ const { numFonts: a, offsetTable: n } =
+ (function readTrueTypeCollectionHeader(e) {
+ const t = e.getString(4);
+ (0, r.assert)(
+ "ttcf" === t,
+ "Must be a TrueType Collection font.",
+ );
+ const a = e.getUint16(),
+ n = e.getUint16(),
+ i = e.getInt32() >>> 0,
+ s = [];
+ for (let t = 0; t < i; t++) s.push(e.getInt32() >>> 0);
+ const o = {
+ ttcTag: t,
+ majorVersion: a,
+ minorVersion: n,
+ numFonts: i,
+ offsetTable: s,
+ };
+ switch (a) {
+ case 1:
+ return o;
+ case 2:
+ o.dsigTag = e.getInt32() >>> 0;
+ o.dsigLength = e.getInt32() >>> 0;
+ o.dsigOffset = e.getInt32() >>> 0;
+ return o;
+ }
+ throw new r.FormatError(
+ `Invalid TrueType Collection majorVersion: ${a}.`,
+ );
+ })(e),
+ i = t.split("+");
+ let s;
+ for (let o = 0; o < a; o++) {
+ e.pos = (e.start || 0) + n[o];
+ const a = readOpenTypeHeader(e),
+ c = readTables(e, a.numTables);
+ if (!c.name)
+ throw new r.FormatError(
+ 'TrueType Collection font must contain a "name" table.',
+ );
+ const [l] = readNameTable(c.name);
+ for (let e = 0, r = l.length; e < r; e++)
+ for (let r = 0, n = l[e].length; r < n; r++) {
+ const n = l[e][r]?.replaceAll(/\s/g, "");
+ if (n) {
+ if (n === t) return { header: a, tables: c };
+ if (!(i.length < 2))
+ for (const e of i)
+ n === e &&
+ (s = { name: e, header: a, tables: c });
+ }
+ }
+ }
+ if (s) {
+ (0, r.warn)(
+ `TrueType Collection does not contain "${t}" font, falling back to "${s.name}" font instead.`,
+ );
+ return { header: s.header, tables: s.tables };
+ }
+ throw new r.FormatError(
+ `TrueType Collection does not contain "${t}" font.`,
+ );
+ })(t, this.name);
+ d = e.header;
+ f = e.tables;
+ } else {
+ d = readOpenTypeHeader(t);
+ f = readTables(t, d.numTables);
+ }
+ const S = !f["CFF "];
+ if (S) {
+ if (!f.loca)
+ throw new r.FormatError('Required "loca" table is not found');
+ if (!f.glyf) {
+ (0, r.warn)(
+ 'Required "glyf" table is not found -- trying to recover.',
+ );
+ f.glyf = { tag: "glyf", data: new Uint8Array(0) };
+ }
+ this.isOpenType = !1;
+ } else {
+ const t =
+ a.composite &&
+ (a.cidToGidMap?.length > 0 ||
+ !(a.cMap instanceof p.IdentityCMap));
+ if (
+ ("OTTO" === d.version && !t) ||
+ !f.head ||
+ !f.hhea ||
+ !f.maxp ||
+ !f.post
+ ) {
+ w = new y.Stream(f["CFF "].data);
+ b = new u.CFFFont(w, a);
+ adjustWidths(a);
+ return this.convert(e, b, a);
+ }
+ delete f.glyf;
+ delete f.loca;
+ delete f.fpgm;
+ delete f.prep;
+ delete f["cvt "];
+ this.isOpenType = !0;
+ }
+ if (!f.maxp)
+ throw new r.FormatError('Required "maxp" table is not found');
+ t.pos = (t.start || 0) + f.maxp.offset;
+ const x = t.getInt32(),
+ C = t.getUint16();
+ if (a.scaleFactors?.length === C && S) {
+ const { scaleFactors: e } = a,
+ t = int16(f.head.data[50], f.head.data[51]),
+ r = new g.GlyfTable({
+ glyfTable: f.glyf.data,
+ isGlyphLocationsLong: t,
+ locaTable: f.loca.data,
+ numGlyphs: C,
+ });
+ r.scale(e);
+ const { glyf: n, loca: i, isLocationLong: s } = r.write();
+ f.glyf.data = n;
+ f.loca.data = i;
+ if (s !== !!t) {
+ f.head.data[50] = 0;
+ f.head.data[51] = s ? 1 : 0;
+ }
+ const o = f.hmtx.data;
+ for (let t = 0; t < C; t++) {
+ const a = 4 * t,
+ r = Math.round(e[t] * int16(o[a], o[a + 1]));
+ o[a] = (r >> 8) & 255;
+ o[a + 1] = 255 & r;
+ writeSignedInt16(
+ o,
+ a + 2,
+ Math.round(e[t] * signedInt16(o[a + 2], o[a + 3])),
+ );
+ }
+ }
+ let k = C + 1,
+ v = !0;
+ if (k > 65535) {
+ v = !1;
+ k = C;
+ (0, r.warn)(
+ "Not enough space in glyfs to duplicate first glyph.",
+ );
+ }
+ let F = 0,
+ O = 0;
+ if (x >= 65536 && f.maxp.length >= 22) {
+ t.pos += 8;
+ if (t.getUint16() > 2) {
+ f.maxp.data[14] = 0;
+ f.maxp.data[15] = 2;
+ }
+ t.pos += 4;
+ F = t.getUint16();
+ t.pos += 4;
+ O = t.getUint16();
+ }
+ f.maxp.data[4] = k >> 8;
+ f.maxp.data[5] = 255 & k;
+ const T = (function sanitizeTTPrograms(e, t, a, n) {
+ const i = {
+ functionsDefined: [],
+ functionsUsed: [],
+ functionsStackDeltas: [],
+ tooComplexToFollowFunctions: !1,
+ hintsValid: !0,
+ };
+ e && sanitizeTTProgram(e, i);
+ t && sanitizeTTProgram(t, i);
+ e &&
+ (function checkInvalidFunctions(e, t) {
+ if (!e.tooComplexToFollowFunctions)
+ if (e.functionsDefined.length > t) {
+ (0, r.warn)("TT: more functions defined than expected");
+ e.hintsValid = !1;
+ } else
+ for (
+ let a = 0, n = e.functionsUsed.length;
+ a < n;
+ a++
+ ) {
+ if (a > t) {
+ (0, r.warn)("TT: invalid function id: " + a);
+ e.hintsValid = !1;
+ return;
+ }
+ if (e.functionsUsed[a] && !e.functionsDefined[a]) {
+ (0, r.warn)("TT: undefined function: " + a);
+ e.hintsValid = !1;
+ return;
+ }
+ }
+ })(i, n);
+ if (a && 1 & a.length) {
+ const e = new Uint8Array(a.length + 1);
+ e.set(a.data);
+ a.data = e;
+ }
+ return i.hintsValid;
+ })(f.fpgm, f.prep, f["cvt "], F);
+ if (!T) {
+ delete f.fpgm;
+ delete f.prep;
+ delete f["cvt "];
+ }
+ !(function sanitizeMetrics(e, t, a, n, i, s) {
+ if (!t) {
+ a && (a.data = null);
+ return;
+ }
+ e.pos = (e.start || 0) + t.offset;
+ e.pos += 4;
+ e.pos += 2;
+ e.pos += 2;
+ e.pos += 2;
+ e.pos += 2;
+ e.pos += 2;
+ e.pos += 2;
+ e.pos += 2;
+ e.pos += 2;
+ e.pos += 2;
+ const o = e.getUint16();
+ e.pos += 8;
+ e.pos += 2;
+ let c = e.getUint16();
+ if (0 !== o) {
+ if (!(2 & int16(n.data[44], n.data[45]))) {
+ t.data[22] = 0;
+ t.data[23] = 0;
+ }
+ }
+ if (c > i) {
+ (0, r.info)(
+ `The numOfMetrics (${c}) should not be greater than the numGlyphs (${i}).`,
+ );
+ c = i;
+ t.data[34] = (65280 & c) >> 8;
+ t.data[35] = 255 & c;
+ }
+ const l = i - c - ((a.length - 4 * c) >> 1);
+ if (l > 0) {
+ const e = new Uint8Array(a.length + 2 * l);
+ e.set(a.data);
+ if (s) {
+ e[a.length] = a.data[2];
+ e[a.length + 1] = a.data[3];
+ }
+ a.data = e;
+ }
+ })(t, f.hhea, f.hmtx, f.head, k, v);
+ if (!f.head)
+ throw new r.FormatError('Required "head" table is not found');
+ !(function sanitizeHead(e, t, a) {
+ const n = e.data,
+ i = (function int32(e, t, a, r) {
+ return (e << 24) + (t << 16) + (a << 8) + r;
+ })(n[0], n[1], n[2], n[3]);
+ if (i >> 16 != 1) {
+ (0, r.info)(
+ "Attempting to fix invalid version in head table: " + i,
+ );
+ n[0] = 0;
+ n[1] = 1;
+ n[2] = 0;
+ n[3] = 0;
+ }
+ const s = int16(n[50], n[51]);
+ if (s < 0 || s > 1) {
+ (0, r.info)(
+ "Attempting to fix invalid indexToLocFormat in head table: " +
+ s,
+ );
+ const e = t + 1;
+ if (a === e << 1) {
+ n[50] = 0;
+ n[51] = 0;
+ } else {
+ if (a !== e << 2)
+ throw new r.FormatError(
+ "Could not fix indexToLocFormat: " + s,
+ );
+ n[50] = 0;
+ n[51] = 1;
+ }
+ }
+ })(f.head, C, S ? f.loca.length : 0);
+ let M = Object.create(null);
+ if (S) {
+ const e = int16(f.head.data[50], f.head.data[51]),
+ t = (function sanitizeGlyphLocations(e, t, a, r, n, i, s) {
+ let o, c, l;
+ if (r) {
+ o = 4;
+ c = function fontItemDecodeLong(e, t) {
+ return (
+ (e[t] << 24) |
+ (e[t + 1] << 16) |
+ (e[t + 2] << 8) |
+ e[t + 3]
+ );
+ };
+ l = function fontItemEncodeLong(e, t, a) {
+ e[t] = (a >>> 24) & 255;
+ e[t + 1] = (a >> 16) & 255;
+ e[t + 2] = (a >> 8) & 255;
+ e[t + 3] = 255 & a;
+ };
+ } else {
+ o = 2;
+ c = function fontItemDecode(e, t) {
+ return (e[t] << 9) | (e[t + 1] << 1);
+ };
+ l = function fontItemEncode(e, t, a) {
+ e[t] = (a >> 9) & 255;
+ e[t + 1] = (a >> 1) & 255;
+ };
+ }
+ const h = i ? a + 1 : a,
+ u = o * (1 + h),
+ d = new Uint8Array(u);
+ d.set(e.data.subarray(0, u));
+ e.data = d;
+ const f = t.data,
+ g = f.length,
+ p = new Uint8Array(g);
+ let m, b;
+ const y = [];
+ for (m = 0, b = 0; m < a + 1; m++, b += o) {
+ let e = c(d, b);
+ e > g && (e = g);
+ y.push({ index: m, offset: e, endOffset: 0 });
+ }
+ y.sort((e, t) => e.offset - t.offset);
+ for (m = 0; m < a; m++) y[m].endOffset = y[m + 1].offset;
+ y.sort((e, t) => e.index - t.index);
+ for (m = 0; m < a; m++) {
+ const { offset: e, endOffset: t } = y[m];
+ if (0 !== e || 0 !== t) break;
+ const a = y[m + 1].offset;
+ if (0 !== a) {
+ y[m].endOffset = a;
+ break;
+ }
+ }
+ const w = Object.create(null);
+ let S = 0;
+ l(d, 0, S);
+ for (m = 0, b = o; m < a; m++, b += o) {
+ const e = sanitizeGlyph(
+ f,
+ y[m].offset,
+ y[m].endOffset,
+ p,
+ S,
+ n,
+ ),
+ t = e.length;
+ 0 === t && (w[m] = !0);
+ e.sizeOfInstructions > s && (s = e.sizeOfInstructions);
+ S += t;
+ l(d, b, S);
+ }
+ if (0 === S) {
+ const e = new Uint8Array([
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0,
+ ]);
+ for (m = 0, b = o; m < h; m++, b += o) l(d, b, e.length);
+ t.data = e;
+ } else if (i) {
+ const a = c(d, o);
+ if (p.length > a + S) t.data = p.subarray(0, a + S);
+ else {
+ t.data = new Uint8Array(a + S);
+ t.data.set(p.subarray(0, S));
+ }
+ t.data.set(p.subarray(0, a), S);
+ l(e.data, d.length - o, S + a);
+ } else t.data = p.subarray(0, S);
+ return { missingGlyphs: w, maxSizeOfInstructions: s };
+ })(f.loca, f.glyf, C, e, T, v, O);
+ M = t.missingGlyphs;
+ if (x >= 65536 && f.maxp.length >= 22) {
+ f.maxp.data[26] = t.maxSizeOfInstructions >> 8;
+ f.maxp.data[27] = 255 & t.maxSizeOfInstructions;
+ }
+ }
+ if (!f.hhea)
+ throw new r.FormatError('Required "hhea" table is not found');
+ if (0 === f.hhea.data[10] && 0 === f.hhea.data[11]) {
+ f.hhea.data[10] = 255;
+ f.hhea.data[11] = 255;
+ }
+ const D = {
+ unitsPerEm: int16(f.head.data[18], f.head.data[19]),
+ yMax: signedInt16(f.head.data[42], f.head.data[43]),
+ yMin: signedInt16(f.head.data[38], f.head.data[39]),
+ ascent: signedInt16(f.hhea.data[4], f.hhea.data[5]),
+ descent: signedInt16(f.hhea.data[6], f.hhea.data[7]),
+ lineGap: signedInt16(f.hhea.data[8], f.hhea.data[9]),
+ };
+ this.ascent = D.ascent / D.unitsPerEm;
+ this.descent = D.descent / D.unitsPerEm;
+ this.lineGap = D.lineGap / D.unitsPerEm;
+ if (this.cssFontInfo?.lineHeight) {
+ this.lineHeight = this.cssFontInfo.metrics.lineHeight;
+ this.lineGap = this.cssFontInfo.metrics.lineGap;
+ } else
+ this.lineHeight = this.ascent - this.descent + this.lineGap;
+ f.post &&
+ (function readPostScriptTable(e, a, n) {
+ const s = (t.start || 0) + e.offset;
+ t.pos = s;
+ const o = s + e.length,
+ c = t.getInt32();
+ t.skip(28);
+ let l,
+ h,
+ u = !0;
+ switch (c) {
+ case 65536:
+ l = i.MacStandardGlyphOrdering;
+ break;
+ case 131072:
+ const e = t.getUint16();
+ if (e !== n) {
+ u = !1;
+ break;
+ }
+ const s = [];
+ for (h = 0; h < e; ++h) {
+ const e = t.getUint16();
+ if (e >= 32768) {
+ u = !1;
+ break;
+ }
+ s.push(e);
+ }
+ if (!u) break;
+ const d = [],
+ f = [];
+ for (; t.pos < o; ) {
+ const e = t.getByte();
+ f.length = e;
+ for (h = 0; h < e; ++h)
+ f[h] = String.fromCharCode(t.getByte());
+ d.push(f.join(""));
+ }
+ l = [];
+ for (h = 0; h < e; ++h) {
+ const e = s[h];
+ e < 258
+ ? l.push(i.MacStandardGlyphOrdering[e])
+ : l.push(d[e - 258]);
+ }
+ break;
+ case 196608:
+ break;
+ default:
+ (0, r.warn)(
+ "Unknown/unsupported post table version " + c,
+ );
+ u = !1;
+ a.defaultEncoding && (l = a.defaultEncoding);
+ }
+ a.glyphNames = l;
+ return u;
+ })(f.post, a, C);
+ f.post = { tag: "post", data: createPostTable(a) };
+ const E = [];
+ function hasGlyph(e) {
+ return !M[e];
+ }
+ if (a.composite) {
+ const e = a.cidToGidMap || [],
+ t = 0 === e.length;
+ a.cMap.forEach(function (a, n) {
+ "string" == typeof n && (n = convertCidString(a, n, !0));
+ if (n > 65535)
+ throw new r.FormatError("Max size of CID is 65,535");
+ let i = -1;
+ t ? (i = n) : void 0 !== e[n] && (i = e[n]);
+ i >= 0 && i < C && hasGlyph(i) && (E[a] = i);
+ });
+ } else {
+ const e = (function readCmapTable(e, t, a, n) {
+ if (!e) {
+ (0, r.warn)("No cmap table available.");
+ return {
+ platformId: -1,
+ encodingId: -1,
+ mappings: [],
+ hasShortCmap: !1,
+ };
+ }
+ let i,
+ s = (t.start || 0) + e.offset;
+ t.pos = s;
+ t.skip(2);
+ const o = t.getUint16();
+ let c,
+ l = !1;
+ for (let e = 0; e < o; e++) {
+ const r = t.getUint16(),
+ i = t.getUint16(),
+ s = t.getInt32() >>> 0;
+ let h = !1;
+ if (c?.platformId !== r || c?.encodingId !== i) {
+ if (0 !== r || (0 !== i && 1 !== i && 3 !== i))
+ if (1 === r && 0 === i) h = !0;
+ else if (3 !== r || 1 !== i || (!n && c)) {
+ if (a && 3 === r && 0 === i) {
+ h = !0;
+ let a = !0;
+ if (e < o - 1) {
+ const e = t.peekBytes(2);
+ int16(e[0], e[1]) < r && (a = !1);
+ }
+ a && (l = !0);
+ }
+ } else {
+ h = !0;
+ a || (l = !0);
+ }
+ else h = !0;
+ h && (c = { platformId: r, encodingId: i, offset: s });
+ if (l) break;
+ }
+ }
+ c && (t.pos = s + c.offset);
+ if (!c || -1 === t.peekByte()) {
+ (0, r.warn)("Could not find a preferred cmap table.");
+ return {
+ platformId: -1,
+ encodingId: -1,
+ mappings: [],
+ hasShortCmap: !1,
+ };
+ }
+ const h = t.getUint16();
+ let u = !1;
+ const d = [];
+ let f, g;
+ if (0 === h) {
+ t.skip(4);
+ for (f = 0; f < 256; f++) {
+ const e = t.getByte();
+ e && d.push({ charCode: f, glyphId: e });
+ }
+ u = !0;
+ } else if (2 === h) {
+ t.skip(4);
+ const e = [];
+ let a = 0;
+ for (let r = 0; r < 256; r++) {
+ const r = t.getUint16() >> 3;
+ e.push(r);
+ a = Math.max(r, a);
+ }
+ const r = [];
+ for (let e = 0; e <= a; e++)
+ r.push({
+ firstCode: t.getUint16(),
+ entryCount: t.getUint16(),
+ idDelta: signedInt16(t.getByte(), t.getByte()),
+ idRangePos: t.pos + t.getUint16(),
+ });
+ for (let a = 0; a < 256; a++)
+ if (0 === e[a]) {
+ t.pos = r[0].idRangePos + 2 * a;
+ g = t.getUint16();
+ d.push({ charCode: a, glyphId: g });
+ } else {
+ const n = r[e[a]];
+ for (f = 0; f < n.entryCount; f++) {
+ const e = (a << 8) + f + n.firstCode;
+ t.pos = n.idRangePos + 2 * f;
+ g = t.getUint16();
+ 0 !== g && (g = (g + n.idDelta) % 65536);
+ d.push({ charCode: e, glyphId: g });
+ }
+ }
+ } else if (4 === h) {
+ t.skip(4);
+ const e = t.getUint16() >> 1;
+ t.skip(6);
+ const a = [];
+ let r;
+ for (r = 0; r < e; r++) a.push({ end: t.getUint16() });
+ t.skip(2);
+ for (r = 0; r < e; r++) a[r].start = t.getUint16();
+ for (r = 0; r < e; r++) a[r].delta = t.getUint16();
+ let n,
+ o = 0;
+ for (r = 0; r < e; r++) {
+ i = a[r];
+ const s = t.getUint16();
+ if (s) {
+ n = (s >> 1) - (e - r);
+ i.offsetIndex = n;
+ o = Math.max(o, n + i.end - i.start + 1);
+ } else i.offsetIndex = -1;
+ }
+ const c = [];
+ for (f = 0; f < o; f++) c.push(t.getUint16());
+ for (r = 0; r < e; r++) {
+ i = a[r];
+ s = i.start;
+ const e = i.end,
+ t = i.delta;
+ n = i.offsetIndex;
+ for (f = s; f <= e; f++)
+ if (65535 !== f) {
+ g = n < 0 ? f : c[n + f - s];
+ g = (g + t) & 65535;
+ d.push({ charCode: f, glyphId: g });
+ }
+ }
+ } else if (6 === h) {
+ t.skip(4);
+ const e = t.getUint16(),
+ a = t.getUint16();
+ for (f = 0; f < a; f++) {
+ g = t.getUint16();
+ const a = e + f;
+ d.push({ charCode: a, glyphId: g });
+ }
+ } else {
+ if (12 !== h) {
+ (0, r.warn)("cmap table has unsupported format: " + h);
+ return {
+ platformId: -1,
+ encodingId: -1,
+ mappings: [],
+ hasShortCmap: !1,
+ };
+ }
+ {
+ t.skip(10);
+ const e = t.getInt32() >>> 0;
+ for (f = 0; f < e; f++) {
+ const e = t.getInt32() >>> 0,
+ a = t.getInt32() >>> 0;
+ let r = t.getInt32() >>> 0;
+ for (let t = e; t <= a; t++)
+ d.push({ charCode: t, glyphId: r++ });
+ }
+ }
+ }
+ d.sort(function (e, t) {
+ return e.charCode - t.charCode;
+ });
+ for (let e = 1; e < d.length; e++)
+ if (d[e - 1].charCode === d[e].charCode) {
+ d.splice(e, 1);
+ e--;
+ }
+ return {
+ platformId: c.platformId,
+ encodingId: c.encodingId,
+ mappings: d,
+ hasShortCmap: u,
+ };
+ })(f.cmap, t, this.isSymbolicFont, a.hasEncoding),
+ n = e.platformId,
+ s = e.encodingId,
+ l = e.mappings;
+ let u = [],
+ d = !1;
+ !a.hasEncoding ||
+ ("MacRomanEncoding" !== a.baseEncodingName &&
+ "WinAnsiEncoding" !== a.baseEncodingName) ||
+ (u = (0, c.getEncoding)(a.baseEncodingName));
+ if (
+ a.hasEncoding &&
+ !this.isSymbolicFont &&
+ ((3 === n && 1 === s) || (1 === n && 0 === s))
+ ) {
+ const e = (0, o.getGlyphsUnicode)();
+ for (let t = 0; t < 256; t++) {
+ let r;
+ r =
+ void 0 !== this.differences[t]
+ ? this.differences[t]
+ : u.length && "" !== u[t]
+ ? u[t]
+ : c.StandardEncoding[t];
+ if (!r) continue;
+ const o = (0, i.recoverGlyphName)(r, e);
+ let d;
+ 3 === n && 1 === s
+ ? (d = e[o])
+ : 1 === n &&
+ 0 === s &&
+ (d = c.MacRomanEncoding.indexOf(o));
+ if (void 0 === d) {
+ if (
+ !a.glyphNames &&
+ a.hasIncludedToUnicodeMap &&
+ !(this.toUnicode instanceof h.IdentityToUnicodeMap)
+ ) {
+ const e = this.toUnicode.get(t);
+ e && (d = e.codePointAt(0));
+ }
+ if (void 0 === d) continue;
+ }
+ for (const e of l)
+ if (e.charCode === d) {
+ E[t] = e.glyphId;
+ break;
+ }
+ }
+ } else if (0 === n) {
+ for (const e of l) E[e.charCode] = e.glyphId;
+ d = !0;
+ } else
+ for (const e of l) {
+ let t = e.charCode;
+ 3 === n && t >= 61440 && t <= 61695 && (t &= 255);
+ E[t] = e.glyphId;
+ }
+ if (a.glyphNames && (u.length || this.differences.length))
+ for (let e = 0; e < 256; ++e) {
+ if (!d && void 0 !== E[e]) continue;
+ const t = this.differences[e] || u[e];
+ if (!t) continue;
+ const r = a.glyphNames.indexOf(t);
+ r > 0 && hasGlyph(r) && (E[e] = r);
+ }
+ }
+ 0 === E.length && (E[0] = 0);
+ let N = k - 1;
+ v || (N = 0);
+ if (!a.cssFontInfo) {
+ const e = adjustMapping(E, hasGlyph, N, this.toUnicode);
+ this.toFontChar = e.toFontChar;
+ f.cmap = {
+ tag: "cmap",
+ data: createCmapTable(
+ e.charCodeToGlyphId,
+ e.toUnicodeExtraMap,
+ k,
+ ),
+ };
+ (f["OS/2"] &&
+ (function validateOS2Table(e, t) {
+ t.pos = (t.start || 0) + e.offset;
+ const a = t.getUint16();
+ t.skip(60);
+ const r = t.getUint16();
+ if (a < 4 && 768 & r) return !1;
+ if (t.getUint16() > t.getUint16()) return !1;
+ t.skip(6);
+ if (0 === t.getUint16()) return !1;
+ e.data[8] = e.data[9] = 0;
+ return !0;
+ })(f["OS/2"], t)) ||
+ (f["OS/2"] = {
+ tag: "OS/2",
+ data: createOS2Table(a, e.charCodeToGlyphId, D),
+ });
+ }
+ if (!S)
+ try {
+ w = new y.Stream(f["CFF "].data);
+ b = new n.CFFParser(w, a, i.SEAC_ANALYSIS_ENABLED).parse();
+ b.duplicateFirstGlyph();
+ const e = new n.CFFCompiler(b);
+ f["CFF "].data = e.compile();
+ } catch {
+ (0, r.warn)("Failed to compile font " + a.loadedName);
+ }
+ if (f.name) {
+ const [t, r] = readNameTable(f.name);
+ f.name.data = createNameTable(e, t);
+ this.psName = t[0][6] || null;
+ a.composite ||
+ (function adjustTrueTypeToUnicode(e, t, a) {
+ if (e.isInternalFont) return;
+ if (e.hasIncludedToUnicodeMap) return;
+ if (e.hasEncoding) return;
+ if (e.toUnicode instanceof h.IdentityToUnicodeMap) return;
+ if (!t) return;
+ if (0 === a.length) return;
+ if (e.defaultEncoding === c.WinAnsiEncoding) return;
+ for (const e of a) if (!isWinNameRecord(e)) return;
+ const r = c.WinAnsiEncoding,
+ n = [],
+ i = (0, o.getGlyphsUnicode)();
+ for (const e in r) {
+ const t = r[e];
+ if ("" === t) continue;
+ const a = i[t];
+ void 0 !== a && (n[e] = String.fromCharCode(a));
+ }
+ n.length > 0 && e.toUnicode.amend(n);
+ })(a, this.isSymbolicFont, r);
+ } else f.name = { tag: "name", data: createNameTable(this.name) };
+ const R = new m.OpenTypeFileBuilder(d.version);
+ for (const e in f) R.addTable(e, f[e].data);
+ return R.toArray();
+ }
+ convert(e, t, a) {
+ a.fixedPitch = !1;
+ a.builtInEncoding &&
+ (function adjustType1ToUnicode(e, t) {
+ if (e.isInternalFont) return;
+ if (e.hasIncludedToUnicodeMap) return;
+ if (t === e.defaultEncoding) return;
+ if (e.toUnicode instanceof h.IdentityToUnicodeMap) return;
+ const a = [],
+ r = (0, o.getGlyphsUnicode)();
+ for (const n in t) {
+ if (
+ e.hasEncoding &&
+ (e.baseEncodingName || void 0 !== e.differences[n])
+ )
+ continue;
+ const i = t[n],
+ o = (0, s.getUnicodeForGlyph)(i, r);
+ -1 !== o && (a[n] = String.fromCharCode(o));
+ }
+ a.length > 0 && e.toUnicode.amend(a);
+ })(a, a.builtInEncoding);
+ let n = 1;
+ t instanceof u.CFFFont && (n = t.numGlyphs - 1);
+ const l = t.getGlyphMapping(a);
+ let d = null,
+ f = l,
+ g = null;
+ if (!a.cssFontInfo) {
+ d = adjustMapping(l, t.hasGlyphId.bind(t), n, this.toUnicode);
+ this.toFontChar = d.toFontChar;
+ f = d.charCodeToGlyphId;
+ g = d.toUnicodeExtraMap;
+ }
+ const p = t.numGlyphs;
+ function getCharCodes(e, t) {
+ let a = null;
+ for (const r in e) t === e[r] && (a ||= []).push(0 | r);
+ return a;
+ }
+ function createCharCode(e, t) {
+ for (const a in e) if (t === e[a]) return 0 | a;
+ d.charCodeToGlyphId[d.nextAvailableFontCharCode] = t;
+ return d.nextAvailableFontCharCode++;
+ }
+ const b = t.seacs;
+ if (d && i.SEAC_ANALYSIS_ENABLED && b?.length) {
+ const e = a.fontMatrix || r.FONT_IDENTITY_MATRIX,
+ n = t.getCharset(),
+ i = Object.create(null);
+ for (let t in b) {
+ t |= 0;
+ const a = b[t],
+ r = c.StandardEncoding[a[2]],
+ s = c.StandardEncoding[a[3]],
+ o = n.indexOf(r),
+ h = n.indexOf(s);
+ if (o < 0 || h < 0) continue;
+ const u = {
+ x: a[0] * e[0] + a[1] * e[2] + e[4],
+ y: a[0] * e[1] + a[1] * e[3] + e[5],
+ },
+ f = getCharCodes(l, t);
+ if (f)
+ for (const e of f) {
+ const t = d.charCodeToGlyphId,
+ a = createCharCode(t, o),
+ r = createCharCode(t, h);
+ i[e] = {
+ baseFontCharCode: a,
+ accentFontCharCode: r,
+ accentOffset: u,
+ };
+ }
+ }
+ a.seacMap = i;
+ }
+ const y = 1 / (a.fontMatrix || r.FONT_IDENTITY_MATRIX)[0],
+ w = new m.OpenTypeFileBuilder("OTTO");
+ w.addTable("CFF ", t.data);
+ w.addTable("OS/2", createOS2Table(a, f));
+ w.addTable("cmap", createCmapTable(f, g, p));
+ w.addTable(
+ "head",
+ "\0\0\0\0\0\0\0\0\0\0_<õ\0\0" +
+ safeString16(y) +
+ "\0\0\0\0\v~'\0\0\0\0\v~'\0\0" +
+ safeString16(a.descent) +
+ "ÿ" +
+ safeString16(a.ascent) +
+ string16(a.italicAngle ? 2 : 0) +
+ "\0\0\0\0\0\0\0",
+ );
+ w.addTable(
+ "hhea",
+ "\0\0\0" +
+ safeString16(a.ascent) +
+ safeString16(a.descent) +
+ "\0\0ÿÿ\0\0\0\0\0\0" +
+ safeString16(a.capHeight) +
+ safeString16(Math.tan(a.italicAngle) * a.xHeight) +
+ "\0\0\0\0\0\0\0\0\0\0\0\0" +
+ string16(p),
+ );
+ w.addTable(
+ "hmtx",
+ (function fontFieldsHmtx() {
+ const e = t.charstrings,
+ a = t.cff ? t.cff.widths : null;
+ let r = "\0\0\0\0";
+ for (let t = 1, n = p; t < n; t++) {
+ let n = 0;
+ if (e) {
+ const a = e[t - 1];
+ n = "width" in a ? a.width : 0;
+ } else a && (n = Math.ceil(a[t] || 0));
+ r += string16(n) + string16(0);
+ }
+ return r;
+ })(),
+ );
+ w.addTable("maxp", "\0\0P\0" + string16(p));
+ w.addTable("name", createNameTable(e));
+ w.addTable("post", createPostTable(a));
+ return w.toArray();
+ }
+ get spaceWidth() {
+ const e = ["space", "minus", "one", "i", "I"];
+ let t;
+ for (const a of e) {
+ if (a in this.widths) {
+ t = this.widths[a];
+ break;
+ }
+ const e = (0, o.getGlyphsUnicode)()[a];
+ let r = 0;
+ if (this.composite && this.cMap.contains(e)) {
+ r = this.cMap.lookup(e);
+ "string" == typeof r && (r = convertCidString(e, r));
+ }
+ !r && this.toUnicode && (r = this.toUnicode.charCodeOf(e));
+ r <= 0 && (r = e);
+ t = this.widths[r];
+ if (t) break;
+ }
+ return (0, r.shadow)(this, "spaceWidth", t || this.defaultWidth);
+ }
+ _charToGlyph(e, t = !1) {
+ let a,
+ n,
+ i,
+ o = this._glyphCache[e];
+ if (o?.isSpace === t) return o;
+ let c = e;
+ if (this.cMap?.contains(e)) {
+ c = this.cMap.lookup(e);
+ "string" == typeof c && (c = convertCidString(e, c));
+ }
+ n = this.widths[c];
+ "number" != typeof n && (n = this.defaultWidth);
+ const l = this.vmetrics?.[c];
+ let h = this.toUnicode.get(e) || e;
+ "number" == typeof h && (h = String.fromCharCode(h));
+ let u = void 0 !== this.toFontChar[e];
+ a = this.toFontChar[e] || e;
+ if (this.missingFile) {
+ const t = this.differences[e] || this.defaultEncoding[e];
+ (".notdef" !== t && "" !== t) ||
+ "Type1" !== this.type ||
+ (a = 32);
+ a = (0, s.mapSpecialUnicodeValues)(a);
+ }
+ this.isType3Font && (i = a);
+ let d = null;
+ if (this.seacMap?.[e]) {
+ u = !0;
+ const t = this.seacMap[e];
+ a = t.baseFontCharCode;
+ d = {
+ fontChar: String.fromCodePoint(t.accentFontCharCode),
+ offset: t.accentOffset,
+ };
+ }
+ let f = "";
+ "number" == typeof a &&
+ (a <= 1114111
+ ? (f = String.fromCodePoint(a))
+ : (0, r.warn)(`charToGlyph - invalid fontCharCode: ${a}`));
+ o = new Glyph(e, f, h, d, n, l, i, t, u);
+ return (this._glyphCache[e] = o);
+ }
+ charsToGlyphs(e) {
+ let t = this._charsCache[e];
+ if (t) return t;
+ t = [];
+ if (this.cMap) {
+ const a = Object.create(null),
+ r = e.length;
+ let n = 0;
+ for (; n < r; ) {
+ this.cMap.readCharCode(e, n, a);
+ const { charcode: r, length: i } = a;
+ n += i;
+ const s = this._charToGlyph(
+ r,
+ 1 === i && 32 === e.charCodeAt(n - 1),
+ );
+ t.push(s);
+ }
+ } else
+ for (let a = 0, r = e.length; a < r; ++a) {
+ const r = e.charCodeAt(a),
+ n = this._charToGlyph(r, 32 === r);
+ t.push(n);
+ }
+ return (this._charsCache[e] = t);
+ }
+ getCharPositions(e) {
+ const t = [];
+ if (this.cMap) {
+ const a = Object.create(null);
+ let r = 0;
+ for (; r < e.length; ) {
+ this.cMap.readCharCode(e, r, a);
+ const n = a.length;
+ t.push([r, r + n]);
+ r += n;
+ }
+ } else
+ for (let a = 0, r = e.length; a < r; ++a) t.push([a, a + 1]);
+ return t;
+ }
+ get glyphCacheValues() {
+ return Object.values(this._glyphCache);
+ }
+ encodeString(e) {
+ const t = [],
+ a = [],
+ hasCurrentBufErrors = () => t.length % 2 == 1,
+ r =
+ this.toUnicode instanceof h.IdentityToUnicodeMap
+ ? (e) => this.toUnicode.charCodeOf(e)
+ : (e) => this.toUnicode.charCodeOf(String.fromCodePoint(e));
+ for (let n = 0, i = e.length; n < i; n++) {
+ const i = e.codePointAt(n);
+ i > 55295 && (i < 57344 || i > 65533) && n++;
+ if (this.toUnicode) {
+ const e = r(i);
+ if (-1 !== e) {
+ if (hasCurrentBufErrors()) {
+ t.push(a.join(""));
+ a.length = 0;
+ }
+ for (
+ let t =
+ (this.cMap ? this.cMap.getCharCodeLength(e) : 1) - 1;
+ t >= 0;
+ t--
+ )
+ a.push(String.fromCharCode((e >> (8 * t)) & 255));
+ continue;
+ }
+ }
+ if (!hasCurrentBufErrors()) {
+ t.push(a.join(""));
+ a.length = 0;
+ }
+ a.push(String.fromCodePoint(i));
+ }
+ t.push(a.join(""));
+ return t;
+ }
+ };
+ t.ErrorFont = class ErrorFont {
+ constructor(e) {
+ this.error = e;
+ this.loadedName = "g_font_error";
+ this.missingFile = !0;
+ }
+ charsToGlyphs() {
+ return [];
+ }
+ encodeString(e) {
+ return [e];
+ }
+ exportData(e = !1) {
+ return { error: this.error };
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.CFFTopDict =
+ t.CFFStrings =
+ t.CFFStandardStrings =
+ t.CFFPrivateDict =
+ t.CFFParser =
+ t.CFFIndex =
+ t.CFFHeader =
+ t.CFFFDSelect =
+ t.CFFCompiler =
+ t.CFFCharset =
+ t.CFF =
+ void 0;
+ var r = a(2),
+ n = a(36),
+ i = a(37);
+ const s = [
+ ".notdef",
+ "space",
+ "exclam",
+ "quotedbl",
+ "numbersign",
+ "dollar",
+ "percent",
+ "ampersand",
+ "quoteright",
+ "parenleft",
+ "parenright",
+ "asterisk",
+ "plus",
+ "comma",
+ "hyphen",
+ "period",
+ "slash",
+ "zero",
+ "one",
+ "two",
+ "three",
+ "four",
+ "five",
+ "six",
+ "seven",
+ "eight",
+ "nine",
+ "colon",
+ "semicolon",
+ "less",
+ "equal",
+ "greater",
+ "question",
+ "at",
+ "A",
+ "B",
+ "C",
+ "D",
+ "E",
+ "F",
+ "G",
+ "H",
+ "I",
+ "J",
+ "K",
+ "L",
+ "M",
+ "N",
+ "O",
+ "P",
+ "Q",
+ "R",
+ "S",
+ "T",
+ "U",
+ "V",
+ "W",
+ "X",
+ "Y",
+ "Z",
+ "bracketleft",
+ "backslash",
+ "bracketright",
+ "asciicircum",
+ "underscore",
+ "quoteleft",
+ "a",
+ "b",
+ "c",
+ "d",
+ "e",
+ "f",
+ "g",
+ "h",
+ "i",
+ "j",
+ "k",
+ "l",
+ "m",
+ "n",
+ "o",
+ "p",
+ "q",
+ "r",
+ "s",
+ "t",
+ "u",
+ "v",
+ "w",
+ "x",
+ "y",
+ "z",
+ "braceleft",
+ "bar",
+ "braceright",
+ "asciitilde",
+ "exclamdown",
+ "cent",
+ "sterling",
+ "fraction",
+ "yen",
+ "florin",
+ "section",
+ "currency",
+ "quotesingle",
+ "quotedblleft",
+ "guillemotleft",
+ "guilsinglleft",
+ "guilsinglright",
+ "fi",
+ "fl",
+ "endash",
+ "dagger",
+ "daggerdbl",
+ "periodcentered",
+ "paragraph",
+ "bullet",
+ "quotesinglbase",
+ "quotedblbase",
+ "quotedblright",
+ "guillemotright",
+ "ellipsis",
+ "perthousand",
+ "questiondown",
+ "grave",
+ "acute",
+ "circumflex",
+ "tilde",
+ "macron",
+ "breve",
+ "dotaccent",
+ "dieresis",
+ "ring",
+ "cedilla",
+ "hungarumlaut",
+ "ogonek",
+ "caron",
+ "emdash",
+ "AE",
+ "ordfeminine",
+ "Lslash",
+ "Oslash",
+ "OE",
+ "ordmasculine",
+ "ae",
+ "dotlessi",
+ "lslash",
+ "oslash",
+ "oe",
+ "germandbls",
+ "onesuperior",
+ "logicalnot",
+ "mu",
+ "trademark",
+ "Eth",
+ "onehalf",
+ "plusminus",
+ "Thorn",
+ "onequarter",
+ "divide",
+ "brokenbar",
+ "degree",
+ "thorn",
+ "threequarters",
+ "twosuperior",
+ "registered",
+ "minus",
+ "eth",
+ "multiply",
+ "threesuperior",
+ "copyright",
+ "Aacute",
+ "Acircumflex",
+ "Adieresis",
+ "Agrave",
+ "Aring",
+ "Atilde",
+ "Ccedilla",
+ "Eacute",
+ "Ecircumflex",
+ "Edieresis",
+ "Egrave",
+ "Iacute",
+ "Icircumflex",
+ "Idieresis",
+ "Igrave",
+ "Ntilde",
+ "Oacute",
+ "Ocircumflex",
+ "Odieresis",
+ "Ograve",
+ "Otilde",
+ "Scaron",
+ "Uacute",
+ "Ucircumflex",
+ "Udieresis",
+ "Ugrave",
+ "Yacute",
+ "Ydieresis",
+ "Zcaron",
+ "aacute",
+ "acircumflex",
+ "adieresis",
+ "agrave",
+ "aring",
+ "atilde",
+ "ccedilla",
+ "eacute",
+ "ecircumflex",
+ "edieresis",
+ "egrave",
+ "iacute",
+ "icircumflex",
+ "idieresis",
+ "igrave",
+ "ntilde",
+ "oacute",
+ "ocircumflex",
+ "odieresis",
+ "ograve",
+ "otilde",
+ "scaron",
+ "uacute",
+ "ucircumflex",
+ "udieresis",
+ "ugrave",
+ "yacute",
+ "ydieresis",
+ "zcaron",
+ "exclamsmall",
+ "Hungarumlautsmall",
+ "dollaroldstyle",
+ "dollarsuperior",
+ "ampersandsmall",
+ "Acutesmall",
+ "parenleftsuperior",
+ "parenrightsuperior",
+ "twodotenleader",
+ "onedotenleader",
+ "zerooldstyle",
+ "oneoldstyle",
+ "twooldstyle",
+ "threeoldstyle",
+ "fouroldstyle",
+ "fiveoldstyle",
+ "sixoldstyle",
+ "sevenoldstyle",
+ "eightoldstyle",
+ "nineoldstyle",
+ "commasuperior",
+ "threequartersemdash",
+ "periodsuperior",
+ "questionsmall",
+ "asuperior",
+ "bsuperior",
+ "centsuperior",
+ "dsuperior",
+ "esuperior",
+ "isuperior",
+ "lsuperior",
+ "msuperior",
+ "nsuperior",
+ "osuperior",
+ "rsuperior",
+ "ssuperior",
+ "tsuperior",
+ "ff",
+ "ffi",
+ "ffl",
+ "parenleftinferior",
+ "parenrightinferior",
+ "Circumflexsmall",
+ "hyphensuperior",
+ "Gravesmall",
+ "Asmall",
+ "Bsmall",
+ "Csmall",
+ "Dsmall",
+ "Esmall",
+ "Fsmall",
+ "Gsmall",
+ "Hsmall",
+ "Ismall",
+ "Jsmall",
+ "Ksmall",
+ "Lsmall",
+ "Msmall",
+ "Nsmall",
+ "Osmall",
+ "Psmall",
+ "Qsmall",
+ "Rsmall",
+ "Ssmall",
+ "Tsmall",
+ "Usmall",
+ "Vsmall",
+ "Wsmall",
+ "Xsmall",
+ "Ysmall",
+ "Zsmall",
+ "colonmonetary",
+ "onefitted",
+ "rupiah",
+ "Tildesmall",
+ "exclamdownsmall",
+ "centoldstyle",
+ "Lslashsmall",
+ "Scaronsmall",
+ "Zcaronsmall",
+ "Dieresissmall",
+ "Brevesmall",
+ "Caronsmall",
+ "Dotaccentsmall",
+ "Macronsmall",
+ "figuredash",
+ "hypheninferior",
+ "Ogoneksmall",
+ "Ringsmall",
+ "Cedillasmall",
+ "questiondownsmall",
+ "oneeighth",
+ "threeeighths",
+ "fiveeighths",
+ "seveneighths",
+ "onethird",
+ "twothirds",
+ "zerosuperior",
+ "foursuperior",
+ "fivesuperior",
+ "sixsuperior",
+ "sevensuperior",
+ "eightsuperior",
+ "ninesuperior",
+ "zeroinferior",
+ "oneinferior",
+ "twoinferior",
+ "threeinferior",
+ "fourinferior",
+ "fiveinferior",
+ "sixinferior",
+ "seveninferior",
+ "eightinferior",
+ "nineinferior",
+ "centinferior",
+ "dollarinferior",
+ "periodinferior",
+ "commainferior",
+ "Agravesmall",
+ "Aacutesmall",
+ "Acircumflexsmall",
+ "Atildesmall",
+ "Adieresissmall",
+ "Aringsmall",
+ "AEsmall",
+ "Ccedillasmall",
+ "Egravesmall",
+ "Eacutesmall",
+ "Ecircumflexsmall",
+ "Edieresissmall",
+ "Igravesmall",
+ "Iacutesmall",
+ "Icircumflexsmall",
+ "Idieresissmall",
+ "Ethsmall",
+ "Ntildesmall",
+ "Ogravesmall",
+ "Oacutesmall",
+ "Ocircumflexsmall",
+ "Otildesmall",
+ "Odieresissmall",
+ "OEsmall",
+ "Oslashsmall",
+ "Ugravesmall",
+ "Uacutesmall",
+ "Ucircumflexsmall",
+ "Udieresissmall",
+ "Yacutesmall",
+ "Thornsmall",
+ "Ydieresissmall",
+ "001.000",
+ "001.001",
+ "001.002",
+ "001.003",
+ "Black",
+ "Bold",
+ "Book",
+ "Light",
+ "Medium",
+ "Regular",
+ "Roman",
+ "Semibold",
+ ];
+ t.CFFStandardStrings = s;
+ const o = 391,
+ c = [
+ null,
+ { id: "hstem", min: 2, stackClearing: !0, stem: !0 },
+ null,
+ { id: "vstem", min: 2, stackClearing: !0, stem: !0 },
+ { id: "vmoveto", min: 1, stackClearing: !0 },
+ { id: "rlineto", min: 2, resetStack: !0 },
+ { id: "hlineto", min: 1, resetStack: !0 },
+ { id: "vlineto", min: 1, resetStack: !0 },
+ { id: "rrcurveto", min: 6, resetStack: !0 },
+ null,
+ { id: "callsubr", min: 1, undefStack: !0 },
+ { id: "return", min: 0, undefStack: !0 },
+ null,
+ null,
+ { id: "endchar", min: 0, stackClearing: !0 },
+ null,
+ null,
+ null,
+ { id: "hstemhm", min: 2, stackClearing: !0, stem: !0 },
+ { id: "hintmask", min: 0, stackClearing: !0 },
+ { id: "cntrmask", min: 0, stackClearing: !0 },
+ { id: "rmoveto", min: 2, stackClearing: !0 },
+ { id: "hmoveto", min: 1, stackClearing: !0 },
+ { id: "vstemhm", min: 2, stackClearing: !0, stem: !0 },
+ { id: "rcurveline", min: 8, resetStack: !0 },
+ { id: "rlinecurve", min: 8, resetStack: !0 },
+ { id: "vvcurveto", min: 4, resetStack: !0 },
+ { id: "hhcurveto", min: 4, resetStack: !0 },
+ null,
+ { id: "callgsubr", min: 1, undefStack: !0 },
+ { id: "vhcurveto", min: 4, resetStack: !0 },
+ { id: "hvcurveto", min: 4, resetStack: !0 },
+ ],
+ l = [
+ null,
+ null,
+ null,
+ { id: "and", min: 2, stackDelta: -1 },
+ { id: "or", min: 2, stackDelta: -1 },
+ { id: "not", min: 1, stackDelta: 0 },
+ null,
+ null,
+ null,
+ { id: "abs", min: 1, stackDelta: 0 },
+ {
+ id: "add",
+ min: 2,
+ stackDelta: -1,
+ stackFn(e, t) {
+ e[t - 2] = e[t - 2] + e[t - 1];
+ },
+ },
+ {
+ id: "sub",
+ min: 2,
+ stackDelta: -1,
+ stackFn(e, t) {
+ e[t - 2] = e[t - 2] - e[t - 1];
+ },
+ },
+ {
+ id: "div",
+ min: 2,
+ stackDelta: -1,
+ stackFn(e, t) {
+ e[t - 2] = e[t - 2] / e[t - 1];
+ },
+ },
+ null,
+ {
+ id: "neg",
+ min: 1,
+ stackDelta: 0,
+ stackFn(e, t) {
+ e[t - 1] = -e[t - 1];
+ },
+ },
+ { id: "eq", min: 2, stackDelta: -1 },
+ null,
+ null,
+ { id: "drop", min: 1, stackDelta: -1 },
+ null,
+ { id: "put", min: 2, stackDelta: -2 },
+ { id: "get", min: 1, stackDelta: 0 },
+ { id: "ifelse", min: 4, stackDelta: -3 },
+ { id: "random", min: 0, stackDelta: 1 },
+ {
+ id: "mul",
+ min: 2,
+ stackDelta: -1,
+ stackFn(e, t) {
+ e[t - 2] = e[t - 2] * e[t - 1];
+ },
+ },
+ null,
+ { id: "sqrt", min: 1, stackDelta: 0 },
+ { id: "dup", min: 1, stackDelta: 1 },
+ { id: "exch", min: 2, stackDelta: 0 },
+ { id: "index", min: 2, stackDelta: 0 },
+ { id: "roll", min: 3, stackDelta: -2 },
+ null,
+ null,
+ null,
+ { id: "hflex", min: 7, resetStack: !0 },
+ { id: "flex", min: 13, resetStack: !0 },
+ { id: "hflex1", min: 9, resetStack: !0 },
+ { id: "flex1", min: 11, resetStack: !0 },
+ ];
+ t.CFFParser = class CFFParser {
+ constructor(e, t, a) {
+ this.bytes = e.getBytes();
+ this.properties = t;
+ this.seacAnalysisEnabled = !!a;
+ }
+ parse() {
+ const e = this.properties,
+ t = new CFF();
+ this.cff = t;
+ const a = this.parseHeader(),
+ r = this.parseIndex(a.endPos),
+ n = this.parseIndex(r.endPos),
+ i = this.parseIndex(n.endPos),
+ s = this.parseIndex(i.endPos),
+ o = this.parseDict(n.obj.get(0)),
+ c = this.createDict(CFFTopDict, o, t.strings);
+ t.header = a.obj;
+ t.names = this.parseNameIndex(r.obj);
+ t.strings = this.parseStringIndex(i.obj);
+ t.topDict = c;
+ t.globalSubrIndex = s.obj;
+ this.parsePrivateDict(t.topDict);
+ t.isCIDFont = c.hasName("ROS");
+ const l = c.getByName("CharStrings"),
+ h = this.parseIndex(l).obj,
+ u = c.getByName("FontMatrix");
+ u && (e.fontMatrix = u);
+ const d = c.getByName("FontBBox");
+ if (d) {
+ e.ascent = Math.max(d[3], d[1]);
+ e.descent = Math.min(d[1], d[3]);
+ e.ascentScaled = !0;
+ }
+ let f, g;
+ if (t.isCIDFont) {
+ const e = this.parseIndex(c.getByName("FDArray")).obj;
+ for (let a = 0, r = e.count; a < r; ++a) {
+ const r = e.get(a),
+ n = this.createDict(
+ CFFTopDict,
+ this.parseDict(r),
+ t.strings,
+ );
+ this.parsePrivateDict(n);
+ t.fdArray.push(n);
+ }
+ g = null;
+ f = this.parseCharsets(
+ c.getByName("charset"),
+ h.count,
+ t.strings,
+ !0,
+ );
+ t.fdSelect = this.parseFDSelect(
+ c.getByName("FDSelect"),
+ h.count,
+ );
+ } else {
+ f = this.parseCharsets(
+ c.getByName("charset"),
+ h.count,
+ t.strings,
+ !1,
+ );
+ g = this.parseEncoding(
+ c.getByName("Encoding"),
+ e,
+ t.strings,
+ f.charset,
+ );
+ }
+ t.charset = f;
+ t.encoding = g;
+ const p = this.parseCharStrings({
+ charStrings: h,
+ localSubrIndex: c.privateDict.subrsIndex,
+ globalSubrIndex: s.obj,
+ fdSelect: t.fdSelect,
+ fdArray: t.fdArray,
+ privateDict: c.privateDict,
+ });
+ t.charStrings = p.charStrings;
+ t.seacs = p.seacs;
+ t.widths = p.widths;
+ return t;
+ }
+ parseHeader() {
+ let e = this.bytes;
+ const t = e.length;
+ let a = 0;
+ for (; a < t && 1 !== e[a]; ) ++a;
+ if (a >= t) throw new r.FormatError("Invalid CFF header");
+ if (0 !== a) {
+ (0, r.info)("cff data is shifted");
+ e = e.subarray(a);
+ this.bytes = e;
+ }
+ const n = e[0],
+ i = e[1],
+ s = e[2],
+ o = e[3];
+ return { obj: new CFFHeader(n, i, s, o), endPos: s };
+ }
+ parseDict(e) {
+ let t = 0;
+ function parseOperand() {
+ let a = e[t++];
+ if (30 === a)
+ return (function parseFloatOperand() {
+ let a = "";
+ const r = 15,
+ n = [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ ".",
+ "E",
+ "E-",
+ null,
+ "-",
+ ],
+ i = e.length;
+ for (; t < i; ) {
+ const i = e[t++],
+ s = i >> 4,
+ o = 15 & i;
+ if (s === r) break;
+ a += n[s];
+ if (o === r) break;
+ a += n[o];
+ }
+ return parseFloat(a);
+ })();
+ if (28 === a) {
+ a = e[t++];
+ a = ((a << 24) | (e[t++] << 16)) >> 16;
+ return a;
+ }
+ if (29 === a) {
+ a = e[t++];
+ a = (a << 8) | e[t++];
+ a = (a << 8) | e[t++];
+ a = (a << 8) | e[t++];
+ return a;
+ }
+ if (a >= 32 && a <= 246) return a - 139;
+ if (a >= 247 && a <= 250) return 256 * (a - 247) + e[t++] + 108;
+ if (a >= 251 && a <= 254)
+ return -256 * (a - 251) - e[t++] - 108;
+ (0, r.warn)(
+ 'CFFParser_parseDict: "' + a + '" is a reserved command.',
+ );
+ return NaN;
+ }
+ let a = [];
+ const n = [];
+ t = 0;
+ const i = e.length;
+ for (; t < i; ) {
+ let r = e[t];
+ if (r <= 21) {
+ 12 === r && (r = (r << 8) | e[++t]);
+ n.push([r, a]);
+ a = [];
+ ++t;
+ } else a.push(parseOperand());
+ }
+ return n;
+ }
+ parseIndex(e) {
+ const t = new CFFIndex(),
+ a = this.bytes,
+ r = (a[e++] << 8) | a[e++],
+ n = [];
+ let i,
+ s,
+ o = e;
+ if (0 !== r) {
+ const t = a[e++],
+ c = e + (r + 1) * t - 1;
+ for (i = 0, s = r + 1; i < s; ++i) {
+ let r = 0;
+ for (let n = 0; n < t; ++n) {
+ r <<= 8;
+ r += a[e++];
+ }
+ n.push(c + r);
+ }
+ o = n[r];
+ }
+ for (i = 0, s = n.length - 1; i < s; ++i) {
+ const e = n[i],
+ r = n[i + 1];
+ t.add(a.subarray(e, r));
+ }
+ return { obj: t, endPos: o };
+ }
+ parseNameIndex(e) {
+ const t = [];
+ for (let a = 0, n = e.count; a < n; ++a) {
+ const n = e.get(a);
+ t.push((0, r.bytesToString)(n));
+ }
+ return t;
+ }
+ parseStringIndex(e) {
+ const t = new CFFStrings();
+ for (let a = 0, n = e.count; a < n; ++a) {
+ const n = e.get(a);
+ t.add((0, r.bytesToString)(n));
+ }
+ return t;
+ }
+ createDict(e, t, a) {
+ const r = new e(a);
+ for (const [e, a] of t) r.setByKey(e, a);
+ return r;
+ }
+ parseCharString(e, t, a, n) {
+ if (!t || e.callDepth > 10) return !1;
+ let i = e.stackSize;
+ const s = e.stack;
+ let o = t.length;
+ for (let h = 0; h < o; ) {
+ const u = t[h++];
+ let d = null;
+ if (12 === u) {
+ const e = t[h++];
+ if (0 === e) {
+ t[h - 2] = 139;
+ t[h - 1] = 22;
+ i = 0;
+ } else d = l[e];
+ } else if (28 === u) {
+ s[i] = ((t[h] << 24) | (t[h + 1] << 16)) >> 16;
+ h += 2;
+ i++;
+ } else if (14 === u) {
+ if (i >= 4) {
+ i -= 4;
+ if (this.seacAnalysisEnabled) {
+ e.seac = s.slice(i, i + 4);
+ return !1;
+ }
+ }
+ d = c[u];
+ } else if (u >= 32 && u <= 246) {
+ s[i] = u - 139;
+ i++;
+ } else if (u >= 247 && u <= 254) {
+ s[i] =
+ u < 251
+ ? ((u - 247) << 8) + t[h] + 108
+ : -((u - 251) << 8) - t[h] - 108;
+ h++;
+ i++;
+ } else if (255 === u) {
+ s[i] =
+ ((t[h] << 24) |
+ (t[h + 1] << 16) |
+ (t[h + 2] << 8) |
+ t[h + 3]) /
+ 65536;
+ h += 4;
+ i++;
+ } else if (19 === u || 20 === u) {
+ e.hints += i >> 1;
+ if (0 === e.hints) {
+ t.copyWithin(h - 1, h, -1);
+ h -= 1;
+ o -= 1;
+ continue;
+ }
+ h += (e.hints + 7) >> 3;
+ i %= 2;
+ d = c[u];
+ } else {
+ if (10 === u || 29 === u) {
+ const t = 10 === u ? a : n;
+ if (!t) {
+ d = c[u];
+ (0, r.warn)("Missing subrsIndex for " + d.id);
+ return !1;
+ }
+ let o = 32768;
+ t.count < 1240 ? (o = 107) : t.count < 33900 && (o = 1131);
+ const l = s[--i] + o;
+ if (l < 0 || l >= t.count || isNaN(l)) {
+ d = c[u];
+ (0, r.warn)("Out of bounds subrIndex for " + d.id);
+ return !1;
+ }
+ e.stackSize = i;
+ e.callDepth++;
+ if (!this.parseCharString(e, t.get(l), a, n)) return !1;
+ e.callDepth--;
+ i = e.stackSize;
+ continue;
+ }
+ if (11 === u) {
+ e.stackSize = i;
+ return !0;
+ }
+ if (0 === u && h === t.length) {
+ t[h - 1] = 14;
+ d = c[14];
+ } else {
+ if (9 === u) {
+ t.copyWithin(h - 1, h, -1);
+ h -= 1;
+ o -= 1;
+ continue;
+ }
+ d = c[u];
+ }
+ }
+ if (d) {
+ if (d.stem) {
+ e.hints += i >> 1;
+ if (3 === u || 23 === u) e.hasVStems = !0;
+ else if (e.hasVStems && (1 === u || 18 === u)) {
+ (0, r.warn)("CFF stem hints are in wrong order");
+ t[h - 1] = 1 === u ? 3 : 23;
+ }
+ }
+ if ("min" in d && !e.undefStack && i < d.min) {
+ (0, r.warn)(
+ "Not enough parameters for " +
+ d.id +
+ "; actual: " +
+ i +
+ ", expected: " +
+ d.min,
+ );
+ if (0 === i) {
+ t[h - 1] = 14;
+ return !0;
+ }
+ return !1;
+ }
+ if (e.firstStackClearing && d.stackClearing) {
+ e.firstStackClearing = !1;
+ i -= d.min;
+ i >= 2 && d.stem
+ ? (i %= 2)
+ : i > 1 &&
+ (0, r.warn)(
+ "Found too many parameters for stack-clearing command",
+ );
+ i > 0 && (e.width = s[i - 1]);
+ }
+ if ("stackDelta" in d) {
+ "stackFn" in d && d.stackFn(s, i);
+ i += d.stackDelta;
+ } else if (d.stackClearing) i = 0;
+ else if (d.resetStack) {
+ i = 0;
+ e.undefStack = !1;
+ } else if (d.undefStack) {
+ i = 0;
+ e.undefStack = !0;
+ e.firstStackClearing = !1;
+ }
+ }
+ }
+ o < t.length && t.fill(14, o);
+ e.stackSize = i;
+ return !0;
+ }
+ parseCharStrings({
+ charStrings: e,
+ localSubrIndex: t,
+ globalSubrIndex: a,
+ fdSelect: n,
+ fdArray: i,
+ privateDict: s,
+ }) {
+ const o = [],
+ c = [],
+ l = e.count;
+ for (let h = 0; h < l; h++) {
+ const l = e.get(h),
+ u = {
+ callDepth: 0,
+ stackSize: 0,
+ stack: [],
+ undefStack: !0,
+ hints: 0,
+ firstStackClearing: !0,
+ seac: null,
+ width: null,
+ hasVStems: !1,
+ };
+ let d = !0,
+ f = null,
+ g = s;
+ if (n && i.length) {
+ const e = n.getFDIndex(h);
+ if (-1 === e) {
+ (0, r.warn)("Glyph index is not in fd select.");
+ d = !1;
+ }
+ if (e >= i.length) {
+ (0, r.warn)("Invalid fd index for glyph index.");
+ d = !1;
+ }
+ if (d) {
+ g = i[e].privateDict;
+ f = g.subrsIndex;
+ }
+ } else t && (f = t);
+ d && (d = this.parseCharString(u, l, f, a));
+ if (null !== u.width) {
+ const e = g.getByName("nominalWidthX");
+ c[h] = e + u.width;
+ } else {
+ const e = g.getByName("defaultWidthX");
+ c[h] = e;
+ }
+ null !== u.seac && (o[h] = u.seac);
+ d || e.set(h, new Uint8Array([14]));
+ }
+ return { charStrings: e, seacs: o, widths: c };
+ }
+ emptyPrivateDictionary(e) {
+ const t = this.createDict(CFFPrivateDict, [], e.strings);
+ e.setByKey(18, [0, 0]);
+ e.privateDict = t;
+ }
+ parsePrivateDict(e) {
+ if (!e.hasName("Private")) {
+ this.emptyPrivateDictionary(e);
+ return;
+ }
+ const t = e.getByName("Private");
+ if (!Array.isArray(t) || 2 !== t.length) {
+ e.removeByName("Private");
+ return;
+ }
+ const a = t[0],
+ r = t[1];
+ if (0 === a || r >= this.bytes.length) {
+ this.emptyPrivateDictionary(e);
+ return;
+ }
+ const n = r + a,
+ i = this.bytes.subarray(r, n),
+ s = this.parseDict(i),
+ o = this.createDict(CFFPrivateDict, s, e.strings);
+ e.privateDict = o;
+ 0 === o.getByName("ExpansionFactor") &&
+ o.setByName("ExpansionFactor", 0.06);
+ if (!o.getByName("Subrs")) return;
+ const c = o.getByName("Subrs"),
+ l = r + c;
+ if (0 === c || l >= this.bytes.length) {
+ this.emptyPrivateDictionary(e);
+ return;
+ }
+ const h = this.parseIndex(l);
+ o.subrsIndex = h.obj;
+ }
+ parseCharsets(e, t, a, i) {
+ if (0 === e)
+ return new CFFCharset(!0, d.ISO_ADOBE, n.ISOAdobeCharset);
+ if (1 === e) return new CFFCharset(!0, d.EXPERT, n.ExpertCharset);
+ if (2 === e)
+ return new CFFCharset(
+ !0,
+ d.EXPERT_SUBSET,
+ n.ExpertSubsetCharset,
+ );
+ const s = this.bytes,
+ o = e,
+ c = s[e++],
+ l = [i ? 0 : ".notdef"];
+ let h, u, f;
+ t -= 1;
+ switch (c) {
+ case 0:
+ for (f = 0; f < t; f++) {
+ h = (s[e++] << 8) | s[e++];
+ l.push(i ? h : a.get(h));
+ }
+ break;
+ case 1:
+ for (; l.length <= t; ) {
+ h = (s[e++] << 8) | s[e++];
+ u = s[e++];
+ for (f = 0; f <= u; f++) l.push(i ? h++ : a.get(h++));
+ }
+ break;
+ case 2:
+ for (; l.length <= t; ) {
+ h = (s[e++] << 8) | s[e++];
+ u = (s[e++] << 8) | s[e++];
+ for (f = 0; f <= u; f++) l.push(i ? h++ : a.get(h++));
+ }
+ break;
+ default:
+ throw new r.FormatError("Unknown charset format");
+ }
+ const g = e,
+ p = s.subarray(o, g);
+ return new CFFCharset(!1, c, l, p);
+ }
+ parseEncoding(e, t, a, n) {
+ const s = Object.create(null),
+ o = this.bytes;
+ let c,
+ l,
+ h,
+ u = !1,
+ d = null;
+ if (0 === e || 1 === e) {
+ u = !0;
+ c = e;
+ const t = e ? i.ExpertEncoding : i.StandardEncoding;
+ for (l = 0, h = n.length; l < h; l++) {
+ const e = t.indexOf(n[l]);
+ -1 !== e && (s[e] = l);
+ }
+ } else {
+ const t = e;
+ c = o[e++];
+ switch (127 & c) {
+ case 0:
+ const t = o[e++];
+ for (l = 1; l <= t; l++) s[o[e++]] = l;
+ break;
+ case 1:
+ const a = o[e++];
+ let n = 1;
+ for (l = 0; l < a; l++) {
+ const t = o[e++],
+ a = o[e++];
+ for (let e = t; e <= t + a; e++) s[e] = n++;
+ }
+ break;
+ default:
+ throw new r.FormatError(
+ `Unknown encoding format: ${c} in CFF`,
+ );
+ }
+ const i = e;
+ if (128 & c) {
+ o[t] &= 127;
+ !(function readSupplement() {
+ const t = o[e++];
+ for (l = 0; l < t; l++) {
+ const t = o[e++],
+ r = (o[e++] << 8) + (255 & o[e++]);
+ s[t] = n.indexOf(a.get(r));
+ }
+ })();
+ }
+ d = o.subarray(t, i);
+ }
+ c &= 127;
+ return new CFFEncoding(u, c, s, d);
+ }
+ parseFDSelect(e, t) {
+ const a = this.bytes,
+ n = a[e++],
+ i = [];
+ let s;
+ switch (n) {
+ case 0:
+ for (s = 0; s < t; ++s) {
+ const t = a[e++];
+ i.push(t);
+ }
+ break;
+ case 3:
+ const o = (a[e++] << 8) | a[e++];
+ for (s = 0; s < o; ++s) {
+ let t = (a[e++] << 8) | a[e++];
+ if (0 === s && 0 !== t) {
+ (0, r.warn)(
+ "parseFDSelect: The first range must have a first GID of 0 -- trying to recover.",
+ );
+ t = 0;
+ }
+ const n = a[e++],
+ o = (a[e] << 8) | a[e + 1];
+ for (let e = t; e < o; ++e) i.push(n);
+ }
+ e += 2;
+ break;
+ default:
+ throw new r.FormatError(
+ `parseFDSelect: Unknown format "${n}".`,
+ );
+ }
+ if (i.length !== t)
+ throw new r.FormatError("parseFDSelect: Invalid font data.");
+ return new CFFFDSelect(n, i);
+ }
+ };
+ class CFF {
+ constructor() {
+ this.header = null;
+ this.names = [];
+ this.topDict = null;
+ this.strings = new CFFStrings();
+ this.globalSubrIndex = null;
+ this.encoding = null;
+ this.charset = null;
+ this.charStrings = null;
+ this.fdArray = [];
+ this.fdSelect = null;
+ this.isCIDFont = !1;
+ }
+ duplicateFirstGlyph() {
+ if (this.charStrings.count >= 65535) {
+ (0, r.warn)(
+ "Not enough space in charstrings to duplicate first glyph.",
+ );
+ return;
+ }
+ const e = this.charStrings.get(0);
+ this.charStrings.add(e);
+ this.isCIDFont &&
+ this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);
+ }
+ hasGlyphId(e) {
+ if (e < 0 || e >= this.charStrings.count) return !1;
+ return this.charStrings.get(e).length > 0;
+ }
+ }
+ t.CFF = CFF;
+ class CFFHeader {
+ constructor(e, t, a, r) {
+ this.major = e;
+ this.minor = t;
+ this.hdrSize = a;
+ this.offSize = r;
+ }
+ }
+ t.CFFHeader = CFFHeader;
+ class CFFStrings {
+ constructor() {
+ this.strings = [];
+ }
+ get(e) {
+ return e >= 0 && e <= 390
+ ? s[e]
+ : e - o <= this.strings.length
+ ? this.strings[e - o]
+ : s[0];
+ }
+ getSID(e) {
+ let t = s.indexOf(e);
+ if (-1 !== t) return t;
+ t = this.strings.indexOf(e);
+ return -1 !== t ? t + o : -1;
+ }
+ add(e) {
+ this.strings.push(e);
+ }
+ get count() {
+ return this.strings.length;
+ }
+ }
+ t.CFFStrings = CFFStrings;
+ class CFFIndex {
+ constructor() {
+ this.objects = [];
+ this.length = 0;
+ }
+ add(e) {
+ this.length += e.length;
+ this.objects.push(e);
+ }
+ set(e, t) {
+ this.length += t.length - this.objects[e].length;
+ this.objects[e] = t;
+ }
+ get(e) {
+ return this.objects[e];
+ }
+ get count() {
+ return this.objects.length;
+ }
+ }
+ t.CFFIndex = CFFIndex;
+ class CFFDict {
+ constructor(e, t) {
+ this.keyToNameMap = e.keyToNameMap;
+ this.nameToKeyMap = e.nameToKeyMap;
+ this.defaults = e.defaults;
+ this.types = e.types;
+ this.opcodes = e.opcodes;
+ this.order = e.order;
+ this.strings = t;
+ this.values = Object.create(null);
+ }
+ setByKey(e, t) {
+ if (!(e in this.keyToNameMap)) return !1;
+ if (0 === t.length) return !0;
+ for (const a of t)
+ if (isNaN(a)) {
+ (0, r.warn)(`Invalid CFFDict value: "${t}" for key "${e}".`);
+ return !0;
+ }
+ const a = this.types[e];
+ ("num" !== a && "sid" !== a && "offset" !== a) || (t = t[0]);
+ this.values[e] = t;
+ return !0;
+ }
+ setByName(e, t) {
+ if (!(e in this.nameToKeyMap))
+ throw new r.FormatError(`Invalid dictionary name "${e}"`);
+ this.values[this.nameToKeyMap[e]] = t;
+ }
+ hasName(e) {
+ return this.nameToKeyMap[e] in this.values;
+ }
+ getByName(e) {
+ if (!(e in this.nameToKeyMap))
+ throw new r.FormatError(`Invalid dictionary name ${e}"`);
+ const t = this.nameToKeyMap[e];
+ return t in this.values ? this.values[t] : this.defaults[t];
+ }
+ removeByName(e) {
+ delete this.values[this.nameToKeyMap[e]];
+ }
+ static createTables(e) {
+ const t = {
+ keyToNameMap: {},
+ nameToKeyMap: {},
+ defaults: {},
+ types: {},
+ opcodes: {},
+ order: [],
+ };
+ for (const a of e) {
+ const e = Array.isArray(a[0]) ? (a[0][0] << 8) + a[0][1] : a[0];
+ t.keyToNameMap[e] = a[1];
+ t.nameToKeyMap[a[1]] = e;
+ t.types[e] = a[2];
+ t.defaults[e] = a[3];
+ t.opcodes[e] = Array.isArray(a[0]) ? a[0] : [a[0]];
+ t.order.push(e);
+ }
+ return t;
+ }
+ }
+ const h = [
+ [[12, 30], "ROS", ["sid", "sid", "num"], null],
+ [[12, 20], "SyntheticBase", "num", null],
+ [0, "version", "sid", null],
+ [1, "Notice", "sid", null],
+ [[12, 0], "Copyright", "sid", null],
+ [2, "FullName", "sid", null],
+ [3, "FamilyName", "sid", null],
+ [4, "Weight", "sid", null],
+ [[12, 1], "isFixedPitch", "num", 0],
+ [[12, 2], "ItalicAngle", "num", 0],
+ [[12, 3], "UnderlinePosition", "num", -100],
+ [[12, 4], "UnderlineThickness", "num", 50],
+ [[12, 5], "PaintType", "num", 0],
+ [[12, 6], "CharstringType", "num", 2],
+ [
+ [12, 7],
+ "FontMatrix",
+ ["num", "num", "num", "num", "num", "num"],
+ [0.001, 0, 0, 0.001, 0, 0],
+ ],
+ [13, "UniqueID", "num", null],
+ [5, "FontBBox", ["num", "num", "num", "num"], [0, 0, 0, 0]],
+ [[12, 8], "StrokeWidth", "num", 0],
+ [14, "XUID", "array", null],
+ [15, "charset", "offset", 0],
+ [16, "Encoding", "offset", 0],
+ [17, "CharStrings", "offset", 0],
+ [18, "Private", ["offset", "offset"], null],
+ [[12, 21], "PostScript", "sid", null],
+ [[12, 22], "BaseFontName", "sid", null],
+ [[12, 23], "BaseFontBlend", "delta", null],
+ [[12, 31], "CIDFontVersion", "num", 0],
+ [[12, 32], "CIDFontRevision", "num", 0],
+ [[12, 33], "CIDFontType", "num", 0],
+ [[12, 34], "CIDCount", "num", 8720],
+ [[12, 35], "UIDBase", "num", null],
+ [[12, 37], "FDSelect", "offset", null],
+ [[12, 36], "FDArray", "offset", null],
+ [[12, 38], "FontName", "sid", null],
+ ];
+ class CFFTopDict extends CFFDict {
+ static get tables() {
+ return (0, r.shadow)(this, "tables", this.createTables(h));
+ }
+ constructor(e) {
+ super(CFFTopDict.tables, e);
+ this.privateDict = null;
+ }
+ }
+ t.CFFTopDict = CFFTopDict;
+ const u = [
+ [6, "BlueValues", "delta", null],
+ [7, "OtherBlues", "delta", null],
+ [8, "FamilyBlues", "delta", null],
+ [9, "FamilyOtherBlues", "delta", null],
+ [[12, 9], "BlueScale", "num", 0.039625],
+ [[12, 10], "BlueShift", "num", 7],
+ [[12, 11], "BlueFuzz", "num", 1],
+ [10, "StdHW", "num", null],
+ [11, "StdVW", "num", null],
+ [[12, 12], "StemSnapH", "delta", null],
+ [[12, 13], "StemSnapV", "delta", null],
+ [[12, 14], "ForceBold", "num", 0],
+ [[12, 17], "LanguageGroup", "num", 0],
+ [[12, 18], "ExpansionFactor", "num", 0.06],
+ [[12, 19], "initialRandomSeed", "num", 0],
+ [20, "defaultWidthX", "num", 0],
+ [21, "nominalWidthX", "num", 0],
+ [19, "Subrs", "offset", null],
+ ];
+ class CFFPrivateDict extends CFFDict {
+ static get tables() {
+ return (0, r.shadow)(this, "tables", this.createTables(u));
+ }
+ constructor(e) {
+ super(CFFPrivateDict.tables, e);
+ this.subrsIndex = null;
+ }
+ }
+ t.CFFPrivateDict = CFFPrivateDict;
+ const d = { ISO_ADOBE: 0, EXPERT: 1, EXPERT_SUBSET: 2 };
+ class CFFCharset {
+ constructor(e, t, a, r) {
+ this.predefined = e;
+ this.format = t;
+ this.charset = a;
+ this.raw = r;
+ }
+ }
+ t.CFFCharset = CFFCharset;
+ class CFFEncoding {
+ constructor(e, t, a, r) {
+ this.predefined = e;
+ this.format = t;
+ this.encoding = a;
+ this.raw = r;
+ }
+ }
+ class CFFFDSelect {
+ constructor(e, t) {
+ this.format = e;
+ this.fdSelect = t;
+ }
+ getFDIndex(e) {
+ return e < 0 || e >= this.fdSelect.length ? -1 : this.fdSelect[e];
+ }
+ }
+ t.CFFFDSelect = CFFFDSelect;
+ class CFFOffsetTracker {
+ constructor() {
+ this.offsets = Object.create(null);
+ }
+ isTracking(e) {
+ return e in this.offsets;
+ }
+ track(e, t) {
+ if (e in this.offsets)
+ throw new r.FormatError(`Already tracking location of ${e}`);
+ this.offsets[e] = t;
+ }
+ offset(e) {
+ for (const t in this.offsets) this.offsets[t] += e;
+ }
+ setEntryLocation(e, t, a) {
+ if (!(e in this.offsets))
+ throw new r.FormatError(`Not tracking location of ${e}`);
+ const n = a.data,
+ i = this.offsets[e];
+ for (let e = 0, a = t.length; e < a; ++e) {
+ const a = 5 * e + i,
+ s = a + 1,
+ o = a + 2,
+ c = a + 3,
+ l = a + 4;
+ if (
+ 29 !== n[a] ||
+ 0 !== n[s] ||
+ 0 !== n[o] ||
+ 0 !== n[c] ||
+ 0 !== n[l]
+ )
+ throw new r.FormatError(
+ "writing to an offset that is not empty",
+ );
+ const h = t[e];
+ n[a] = 29;
+ n[s] = (h >> 24) & 255;
+ n[o] = (h >> 16) & 255;
+ n[c] = (h >> 8) & 255;
+ n[l] = 255 & h;
+ }
+ }
+ }
+ class CFFCompiler {
+ constructor(e) {
+ this.cff = e;
+ }
+ compile() {
+ const e = this.cff,
+ t = {
+ data: [],
+ length: 0,
+ add(e) {
+ try {
+ this.data.push(...e);
+ } catch {
+ this.data = this.data.concat(e);
+ }
+ this.length = this.data.length;
+ },
+ },
+ a = this.compileHeader(e.header);
+ t.add(a);
+ const n = this.compileNameIndex(e.names);
+ t.add(n);
+ if (e.isCIDFont && e.topDict.hasName("FontMatrix")) {
+ const t = e.topDict.getByName("FontMatrix");
+ e.topDict.removeByName("FontMatrix");
+ for (const a of e.fdArray) {
+ let e = t.slice(0);
+ a.hasName("FontMatrix") &&
+ (e = r.Util.transform(e, a.getByName("FontMatrix")));
+ a.setByName("FontMatrix", e);
+ }
+ }
+ const i = e.topDict.getByName("XUID");
+ i?.length > 16 && e.topDict.removeByName("XUID");
+ e.topDict.setByName("charset", 0);
+ let s = this.compileTopDicts([e.topDict], t.length, e.isCIDFont);
+ t.add(s.output);
+ const o = s.trackers[0],
+ c = this.compileStringIndex(e.strings.strings);
+ t.add(c);
+ const l = this.compileIndex(e.globalSubrIndex);
+ t.add(l);
+ if (e.encoding && e.topDict.hasName("Encoding"))
+ if (e.encoding.predefined)
+ o.setEntryLocation("Encoding", [e.encoding.format], t);
+ else {
+ const a = this.compileEncoding(e.encoding);
+ o.setEntryLocation("Encoding", [t.length], t);
+ t.add(a);
+ }
+ const h = this.compileCharset(
+ e.charset,
+ e.charStrings.count,
+ e.strings,
+ e.isCIDFont,
+ );
+ o.setEntryLocation("charset", [t.length], t);
+ t.add(h);
+ const u = this.compileCharStrings(e.charStrings);
+ o.setEntryLocation("CharStrings", [t.length], t);
+ t.add(u);
+ if (e.isCIDFont) {
+ o.setEntryLocation("FDSelect", [t.length], t);
+ const a = this.compileFDSelect(e.fdSelect);
+ t.add(a);
+ s = this.compileTopDicts(e.fdArray, t.length, !0);
+ o.setEntryLocation("FDArray", [t.length], t);
+ t.add(s.output);
+ const r = s.trackers;
+ this.compilePrivateDicts(e.fdArray, r, t);
+ }
+ this.compilePrivateDicts([e.topDict], [o], t);
+ t.add([0]);
+ return t.data;
+ }
+ encodeNumber(e) {
+ return Number.isInteger(e)
+ ? this.encodeInteger(e)
+ : this.encodeFloat(e);
+ }
+ static get EncodeFloatRegExp() {
+ return (0, r.shadow)(
+ this,
+ "EncodeFloatRegExp",
+ /\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/,
+ );
+ }
+ encodeFloat(e) {
+ let t = e.toString();
+ const a = CFFCompiler.EncodeFloatRegExp.exec(t);
+ if (a) {
+ const r = parseFloat("1e" + ((a[2] ? +a[2] : 0) + a[1].length));
+ t = (Math.round(e * r) / r).toString();
+ }
+ let r,
+ n,
+ i = "";
+ for (r = 0, n = t.length; r < n; ++r) {
+ const e = t[r];
+ i +=
+ "e" === e
+ ? "-" === t[++r]
+ ? "c"
+ : "b"
+ : "." === e
+ ? "a"
+ : "-" === e
+ ? "e"
+ : e;
+ }
+ i += 1 & i.length ? "f" : "ff";
+ const s = [30];
+ for (r = 0, n = i.length; r < n; r += 2)
+ s.push(parseInt(i.substring(r, r + 2), 16));
+ return s;
+ }
+ encodeInteger(e) {
+ let t;
+ t =
+ e >= -107 && e <= 107
+ ? [e + 139]
+ : e >= 108 && e <= 1131
+ ? [247 + ((e -= 108) >> 8), 255 & e]
+ : e >= -1131 && e <= -108
+ ? [251 + ((e = -e - 108) >> 8), 255 & e]
+ : e >= -32768 && e <= 32767
+ ? [28, (e >> 8) & 255, 255 & e]
+ : [
+ 29,
+ (e >> 24) & 255,
+ (e >> 16) & 255,
+ (e >> 8) & 255,
+ 255 & e,
+ ];
+ return t;
+ }
+ compileHeader(e) {
+ return [e.major, e.minor, 4, e.offSize];
+ }
+ compileNameIndex(e) {
+ const t = new CFFIndex();
+ for (const a of e) {
+ const e = Math.min(a.length, 127);
+ let n = new Array(e);
+ for (let t = 0; t < e; t++) {
+ let e = a[t];
+ (e < "!" ||
+ e > "~" ||
+ "[" === e ||
+ "]" === e ||
+ "(" === e ||
+ ")" === e ||
+ "{" === e ||
+ "}" === e ||
+ "<" === e ||
+ ">" === e ||
+ "/" === e ||
+ "%" === e) &&
+ (e = "_");
+ n[t] = e;
+ }
+ n = n.join("");
+ "" === n && (n = "Bad_Font_Name");
+ t.add((0, r.stringToBytes)(n));
+ }
+ return this.compileIndex(t);
+ }
+ compileTopDicts(e, t, a) {
+ const r = [];
+ let n = new CFFIndex();
+ for (const i of e) {
+ if (a) {
+ i.removeByName("CIDFontVersion");
+ i.removeByName("CIDFontRevision");
+ i.removeByName("CIDFontType");
+ i.removeByName("CIDCount");
+ i.removeByName("UIDBase");
+ }
+ const e = new CFFOffsetTracker(),
+ s = this.compileDict(i, e);
+ r.push(e);
+ n.add(s);
+ e.offset(t);
+ }
+ n = this.compileIndex(n, r);
+ return { trackers: r, output: n };
+ }
+ compilePrivateDicts(e, t, a) {
+ for (let n = 0, i = e.length; n < i; ++n) {
+ const i = e[n],
+ s = i.privateDict;
+ if (!s || !i.hasName("Private"))
+ throw new r.FormatError(
+ "There must be a private dictionary.",
+ );
+ const o = new CFFOffsetTracker(),
+ c = this.compileDict(s, o);
+ let l = a.length;
+ o.offset(l);
+ c.length || (l = 0);
+ t[n].setEntryLocation("Private", [c.length, l], a);
+ a.add(c);
+ if (s.subrsIndex && s.hasName("Subrs")) {
+ const e = this.compileIndex(s.subrsIndex);
+ o.setEntryLocation("Subrs", [c.length], a);
+ a.add(e);
+ }
+ }
+ }
+ compileDict(e, t) {
+ const a = [];
+ for (const n of e.order) {
+ if (!(n in e.values)) continue;
+ let i = e.values[n],
+ s = e.types[n];
+ Array.isArray(s) || (s = [s]);
+ Array.isArray(i) || (i = [i]);
+ if (0 !== i.length) {
+ for (let o = 0, c = s.length; o < c; ++o) {
+ const c = s[o],
+ l = i[o];
+ switch (c) {
+ case "num":
+ case "sid":
+ a.push(...this.encodeNumber(l));
+ break;
+ case "offset":
+ const s = e.keyToNameMap[n];
+ t.isTracking(s) || t.track(s, a.length);
+ a.push(29, 0, 0, 0, 0);
+ break;
+ case "array":
+ case "delta":
+ a.push(...this.encodeNumber(l));
+ for (let e = 1, t = i.length; e < t; ++e)
+ a.push(...this.encodeNumber(i[e]));
+ break;
+ default:
+ throw new r.FormatError(`Unknown data type of ${c}`);
+ }
+ }
+ a.push(...e.opcodes[n]);
+ }
+ }
+ return a;
+ }
+ compileStringIndex(e) {
+ const t = new CFFIndex();
+ for (const a of e) t.add((0, r.stringToBytes)(a));
+ return this.compileIndex(t);
+ }
+ compileCharStrings(e) {
+ const t = new CFFIndex();
+ for (let a = 0; a < e.count; a++) {
+ const r = e.get(a);
+ 0 !== r.length ? t.add(r) : t.add(new Uint8Array([139, 14]));
+ }
+ return this.compileIndex(t);
+ }
+ compileCharset(e, t, a, n) {
+ let i;
+ const s = t - 1;
+ if (n) i = new Uint8Array([2, 0, 0, (s >> 8) & 255, 255 & s]);
+ else {
+ i = new Uint8Array(1 + 2 * s);
+ i[0] = 0;
+ let t = 0;
+ const n = e.charset.length;
+ let o = !1;
+ for (let s = 1; s < i.length; s += 2) {
+ let c = 0;
+ if (t < n) {
+ const n = e.charset[t++];
+ c = a.getSID(n);
+ if (-1 === c) {
+ c = 0;
+ if (!o) {
+ o = !0;
+ (0, r.warn)(`Couldn't find ${n} in CFF strings`);
+ }
+ }
+ }
+ i[s] = (c >> 8) & 255;
+ i[s + 1] = 255 & c;
+ }
+ }
+ return this.compileTypedArray(i);
+ }
+ compileEncoding(e) {
+ return this.compileTypedArray(e.raw);
+ }
+ compileFDSelect(e) {
+ const t = e.format;
+ let a, r;
+ switch (t) {
+ case 0:
+ a = new Uint8Array(1 + e.fdSelect.length);
+ a[0] = t;
+ for (r = 0; r < e.fdSelect.length; r++)
+ a[r + 1] = e.fdSelect[r];
+ break;
+ case 3:
+ const n = 0;
+ let i = e.fdSelect[0];
+ const s = [t, 0, 0, (n >> 8) & 255, 255 & n, i];
+ for (r = 1; r < e.fdSelect.length; r++) {
+ const t = e.fdSelect[r];
+ if (t !== i) {
+ s.push((r >> 8) & 255, 255 & r, t);
+ i = t;
+ }
+ }
+ const o = (s.length - 3) / 3;
+ s[1] = (o >> 8) & 255;
+ s[2] = 255 & o;
+ s.push((r >> 8) & 255, 255 & r);
+ a = new Uint8Array(s);
+ }
+ return this.compileTypedArray(a);
+ }
+ compileTypedArray(e) {
+ return Array.from(e);
+ }
+ compileIndex(e, t = []) {
+ const a = e.objects,
+ r = a.length;
+ if (0 === r) return [0, 0];
+ const n = [(r >> 8) & 255, 255 & r];
+ let i,
+ s,
+ o = 1;
+ for (i = 0; i < r; ++i) o += a[i].length;
+ s = o < 256 ? 1 : o < 65536 ? 2 : o < 16777216 ? 3 : 4;
+ n.push(s);
+ let c = 1;
+ for (i = 0; i < r + 1; i++) {
+ 1 === s
+ ? n.push(255 & c)
+ : 2 === s
+ ? n.push((c >> 8) & 255, 255 & c)
+ : 3 === s
+ ? n.push((c >> 16) & 255, (c >> 8) & 255, 255 & c)
+ : n.push(
+ (c >>> 24) & 255,
+ (c >> 16) & 255,
+ (c >> 8) & 255,
+ 255 & c,
+ );
+ a[i] && (c += a[i].length);
+ }
+ for (i = 0; i < r; i++) {
+ t[i] && t[i].offset(n.length);
+ n.push(...a[i]);
+ }
+ return n;
+ }
+ }
+ t.CFFCompiler = CFFCompiler;
+ },
+ (e, t) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.ISOAdobeCharset = t.ExpertSubsetCharset = t.ExpertCharset = void 0;
+ t.ISOAdobeCharset = [
+ ".notdef",
+ "space",
+ "exclam",
+ "quotedbl",
+ "numbersign",
+ "dollar",
+ "percent",
+ "ampersand",
+ "quoteright",
+ "parenleft",
+ "parenright",
+ "asterisk",
+ "plus",
+ "comma",
+ "hyphen",
+ "period",
+ "slash",
+ "zero",
+ "one",
+ "two",
+ "three",
+ "four",
+ "five",
+ "six",
+ "seven",
+ "eight",
+ "nine",
+ "colon",
+ "semicolon",
+ "less",
+ "equal",
+ "greater",
+ "question",
+ "at",
+ "A",
+ "B",
+ "C",
+ "D",
+ "E",
+ "F",
+ "G",
+ "H",
+ "I",
+ "J",
+ "K",
+ "L",
+ "M",
+ "N",
+ "O",
+ "P",
+ "Q",
+ "R",
+ "S",
+ "T",
+ "U",
+ "V",
+ "W",
+ "X",
+ "Y",
+ "Z",
+ "bracketleft",
+ "backslash",
+ "bracketright",
+ "asciicircum",
+ "underscore",
+ "quoteleft",
+ "a",
+ "b",
+ "c",
+ "d",
+ "e",
+ "f",
+ "g",
+ "h",
+ "i",
+ "j",
+ "k",
+ "l",
+ "m",
+ "n",
+ "o",
+ "p",
+ "q",
+ "r",
+ "s",
+ "t",
+ "u",
+ "v",
+ "w",
+ "x",
+ "y",
+ "z",
+ "braceleft",
+ "bar",
+ "braceright",
+ "asciitilde",
+ "exclamdown",
+ "cent",
+ "sterling",
+ "fraction",
+ "yen",
+ "florin",
+ "section",
+ "currency",
+ "quotesingle",
+ "quotedblleft",
+ "guillemotleft",
+ "guilsinglleft",
+ "guilsinglright",
+ "fi",
+ "fl",
+ "endash",
+ "dagger",
+ "daggerdbl",
+ "periodcentered",
+ "paragraph",
+ "bullet",
+ "quotesinglbase",
+ "quotedblbase",
+ "quotedblright",
+ "guillemotright",
+ "ellipsis",
+ "perthousand",
+ "questiondown",
+ "grave",
+ "acute",
+ "circumflex",
+ "tilde",
+ "macron",
+ "breve",
+ "dotaccent",
+ "dieresis",
+ "ring",
+ "cedilla",
+ "hungarumlaut",
+ "ogonek",
+ "caron",
+ "emdash",
+ "AE",
+ "ordfeminine",
+ "Lslash",
+ "Oslash",
+ "OE",
+ "ordmasculine",
+ "ae",
+ "dotlessi",
+ "lslash",
+ "oslash",
+ "oe",
+ "germandbls",
+ "onesuperior",
+ "logicalnot",
+ "mu",
+ "trademark",
+ "Eth",
+ "onehalf",
+ "plusminus",
+ "Thorn",
+ "onequarter",
+ "divide",
+ "brokenbar",
+ "degree",
+ "thorn",
+ "threequarters",
+ "twosuperior",
+ "registered",
+ "minus",
+ "eth",
+ "multiply",
+ "threesuperior",
+ "copyright",
+ "Aacute",
+ "Acircumflex",
+ "Adieresis",
+ "Agrave",
+ "Aring",
+ "Atilde",
+ "Ccedilla",
+ "Eacute",
+ "Ecircumflex",
+ "Edieresis",
+ "Egrave",
+ "Iacute",
+ "Icircumflex",
+ "Idieresis",
+ "Igrave",
+ "Ntilde",
+ "Oacute",
+ "Ocircumflex",
+ "Odieresis",
+ "Ograve",
+ "Otilde",
+ "Scaron",
+ "Uacute",
+ "Ucircumflex",
+ "Udieresis",
+ "Ugrave",
+ "Yacute",
+ "Ydieresis",
+ "Zcaron",
+ "aacute",
+ "acircumflex",
+ "adieresis",
+ "agrave",
+ "aring",
+ "atilde",
+ "ccedilla",
+ "eacute",
+ "ecircumflex",
+ "edieresis",
+ "egrave",
+ "iacute",
+ "icircumflex",
+ "idieresis",
+ "igrave",
+ "ntilde",
+ "oacute",
+ "ocircumflex",
+ "odieresis",
+ "ograve",
+ "otilde",
+ "scaron",
+ "uacute",
+ "ucircumflex",
+ "udieresis",
+ "ugrave",
+ "yacute",
+ "ydieresis",
+ "zcaron",
+ ];
+ t.ExpertCharset = [
+ ".notdef",
+ "space",
+ "exclamsmall",
+ "Hungarumlautsmall",
+ "dollaroldstyle",
+ "dollarsuperior",
+ "ampersandsmall",
+ "Acutesmall",
+ "parenleftsuperior",
+ "parenrightsuperior",
+ "twodotenleader",
+ "onedotenleader",
+ "comma",
+ "hyphen",
+ "period",
+ "fraction",
+ "zerooldstyle",
+ "oneoldstyle",
+ "twooldstyle",
+ "threeoldstyle",
+ "fouroldstyle",
+ "fiveoldstyle",
+ "sixoldstyle",
+ "sevenoldstyle",
+ "eightoldstyle",
+ "nineoldstyle",
+ "colon",
+ "semicolon",
+ "commasuperior",
+ "threequartersemdash",
+ "periodsuperior",
+ "questionsmall",
+ "asuperior",
+ "bsuperior",
+ "centsuperior",
+ "dsuperior",
+ "esuperior",
+ "isuperior",
+ "lsuperior",
+ "msuperior",
+ "nsuperior",
+ "osuperior",
+ "rsuperior",
+ "ssuperior",
+ "tsuperior",
+ "ff",
+ "fi",
+ "fl",
+ "ffi",
+ "ffl",
+ "parenleftinferior",
+ "parenrightinferior",
+ "Circumflexsmall",
+ "hyphensuperior",
+ "Gravesmall",
+ "Asmall",
+ "Bsmall",
+ "Csmall",
+ "Dsmall",
+ "Esmall",
+ "Fsmall",
+ "Gsmall",
+ "Hsmall",
+ "Ismall",
+ "Jsmall",
+ "Ksmall",
+ "Lsmall",
+ "Msmall",
+ "Nsmall",
+ "Osmall",
+ "Psmall",
+ "Qsmall",
+ "Rsmall",
+ "Ssmall",
+ "Tsmall",
+ "Usmall",
+ "Vsmall",
+ "Wsmall",
+ "Xsmall",
+ "Ysmall",
+ "Zsmall",
+ "colonmonetary",
+ "onefitted",
+ "rupiah",
+ "Tildesmall",
+ "exclamdownsmall",
+ "centoldstyle",
+ "Lslashsmall",
+ "Scaronsmall",
+ "Zcaronsmall",
+ "Dieresissmall",
+ "Brevesmall",
+ "Caronsmall",
+ "Dotaccentsmall",
+ "Macronsmall",
+ "figuredash",
+ "hypheninferior",
+ "Ogoneksmall",
+ "Ringsmall",
+ "Cedillasmall",
+ "onequarter",
+ "onehalf",
+ "threequarters",
+ "questiondownsmall",
+ "oneeighth",
+ "threeeighths",
+ "fiveeighths",
+ "seveneighths",
+ "onethird",
+ "twothirds",
+ "zerosuperior",
+ "onesuperior",
+ "twosuperior",
+ "threesuperior",
+ "foursuperior",
+ "fivesuperior",
+ "sixsuperior",
+ "sevensuperior",
+ "eightsuperior",
+ "ninesuperior",
+ "zeroinferior",
+ "oneinferior",
+ "twoinferior",
+ "threeinferior",
+ "fourinferior",
+ "fiveinferior",
+ "sixinferior",
+ "seveninferior",
+ "eightinferior",
+ "nineinferior",
+ "centinferior",
+ "dollarinferior",
+ "periodinferior",
+ "commainferior",
+ "Agravesmall",
+ "Aacutesmall",
+ "Acircumflexsmall",
+ "Atildesmall",
+ "Adieresissmall",
+ "Aringsmall",
+ "AEsmall",
+ "Ccedillasmall",
+ "Egravesmall",
+ "Eacutesmall",
+ "Ecircumflexsmall",
+ "Edieresissmall",
+ "Igravesmall",
+ "Iacutesmall",
+ "Icircumflexsmall",
+ "Idieresissmall",
+ "Ethsmall",
+ "Ntildesmall",
+ "Ogravesmall",
+ "Oacutesmall",
+ "Ocircumflexsmall",
+ "Otildesmall",
+ "Odieresissmall",
+ "OEsmall",
+ "Oslashsmall",
+ "Ugravesmall",
+ "Uacutesmall",
+ "Ucircumflexsmall",
+ "Udieresissmall",
+ "Yacutesmall",
+ "Thornsmall",
+ "Ydieresissmall",
+ ];
+ t.ExpertSubsetCharset = [
+ ".notdef",
+ "space",
+ "dollaroldstyle",
+ "dollarsuperior",
+ "parenleftsuperior",
+ "parenrightsuperior",
+ "twodotenleader",
+ "onedotenleader",
+ "comma",
+ "hyphen",
+ "period",
+ "fraction",
+ "zerooldstyle",
+ "oneoldstyle",
+ "twooldstyle",
+ "threeoldstyle",
+ "fouroldstyle",
+ "fiveoldstyle",
+ "sixoldstyle",
+ "sevenoldstyle",
+ "eightoldstyle",
+ "nineoldstyle",
+ "colon",
+ "semicolon",
+ "commasuperior",
+ "threequartersemdash",
+ "periodsuperior",
+ "asuperior",
+ "bsuperior",
+ "centsuperior",
+ "dsuperior",
+ "esuperior",
+ "isuperior",
+ "lsuperior",
+ "msuperior",
+ "nsuperior",
+ "osuperior",
+ "rsuperior",
+ "ssuperior",
+ "tsuperior",
+ "ff",
+ "fi",
+ "fl",
+ "ffi",
+ "ffl",
+ "parenleftinferior",
+ "parenrightinferior",
+ "hyphensuperior",
+ "colonmonetary",
+ "onefitted",
+ "rupiah",
+ "centoldstyle",
+ "figuredash",
+ "hypheninferior",
+ "onequarter",
+ "onehalf",
+ "threequarters",
+ "oneeighth",
+ "threeeighths",
+ "fiveeighths",
+ "seveneighths",
+ "onethird",
+ "twothirds",
+ "zerosuperior",
+ "onesuperior",
+ "twosuperior",
+ "threesuperior",
+ "foursuperior",
+ "fivesuperior",
+ "sixsuperior",
+ "sevensuperior",
+ "eightsuperior",
+ "ninesuperior",
+ "zeroinferior",
+ "oneinferior",
+ "twoinferior",
+ "threeinferior",
+ "fourinferior",
+ "fiveinferior",
+ "sixinferior",
+ "seveninferior",
+ "eightinferior",
+ "nineinferior",
+ "centinferior",
+ "dollarinferior",
+ "periodinferior",
+ "commainferior",
+ ];
+ },
+ (e, t) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.ZapfDingbatsEncoding =
+ t.WinAnsiEncoding =
+ t.SymbolSetEncoding =
+ t.StandardEncoding =
+ t.MacRomanEncoding =
+ t.ExpertEncoding =
+ void 0;
+ t.getEncoding = function getEncoding(e) {
+ switch (e) {
+ case "WinAnsiEncoding":
+ return s;
+ case "StandardEncoding":
+ return i;
+ case "MacRomanEncoding":
+ return n;
+ case "SymbolSetEncoding":
+ return o;
+ case "ZapfDingbatsEncoding":
+ return c;
+ case "ExpertEncoding":
+ return a;
+ case "MacExpertEncoding":
+ return r;
+ default:
+ return null;
+ }
+ };
+ const a = [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "space",
+ "exclamsmall",
+ "Hungarumlautsmall",
+ "",
+ "dollaroldstyle",
+ "dollarsuperior",
+ "ampersandsmall",
+ "Acutesmall",
+ "parenleftsuperior",
+ "parenrightsuperior",
+ "twodotenleader",
+ "onedotenleader",
+ "comma",
+ "hyphen",
+ "period",
+ "fraction",
+ "zerooldstyle",
+ "oneoldstyle",
+ "twooldstyle",
+ "threeoldstyle",
+ "fouroldstyle",
+ "fiveoldstyle",
+ "sixoldstyle",
+ "sevenoldstyle",
+ "eightoldstyle",
+ "nineoldstyle",
+ "colon",
+ "semicolon",
+ "commasuperior",
+ "threequartersemdash",
+ "periodsuperior",
+ "questionsmall",
+ "",
+ "asuperior",
+ "bsuperior",
+ "centsuperior",
+ "dsuperior",
+ "esuperior",
+ "",
+ "",
+ "",
+ "isuperior",
+ "",
+ "",
+ "lsuperior",
+ "msuperior",
+ "nsuperior",
+ "osuperior",
+ "",
+ "",
+ "rsuperior",
+ "ssuperior",
+ "tsuperior",
+ "",
+ "ff",
+ "fi",
+ "fl",
+ "ffi",
+ "ffl",
+ "parenleftinferior",
+ "",
+ "parenrightinferior",
+ "Circumflexsmall",
+ "hyphensuperior",
+ "Gravesmall",
+ "Asmall",
+ "Bsmall",
+ "Csmall",
+ "Dsmall",
+ "Esmall",
+ "Fsmall",
+ "Gsmall",
+ "Hsmall",
+ "Ismall",
+ "Jsmall",
+ "Ksmall",
+ "Lsmall",
+ "Msmall",
+ "Nsmall",
+ "Osmall",
+ "Psmall",
+ "Qsmall",
+ "Rsmall",
+ "Ssmall",
+ "Tsmall",
+ "Usmall",
+ "Vsmall",
+ "Wsmall",
+ "Xsmall",
+ "Ysmall",
+ "Zsmall",
+ "colonmonetary",
+ "onefitted",
+ "rupiah",
+ "Tildesmall",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "exclamdownsmall",
+ "centoldstyle",
+ "Lslashsmall",
+ "",
+ "",
+ "Scaronsmall",
+ "Zcaronsmall",
+ "Dieresissmall",
+ "Brevesmall",
+ "Caronsmall",
+ "",
+ "Dotaccentsmall",
+ "",
+ "",
+ "Macronsmall",
+ "",
+ "",
+ "figuredash",
+ "hypheninferior",
+ "",
+ "",
+ "Ogoneksmall",
+ "Ringsmall",
+ "Cedillasmall",
+ "",
+ "",
+ "",
+ "onequarter",
+ "onehalf",
+ "threequarters",
+ "questiondownsmall",
+ "oneeighth",
+ "threeeighths",
+ "fiveeighths",
+ "seveneighths",
+ "onethird",
+ "twothirds",
+ "",
+ "",
+ "zerosuperior",
+ "onesuperior",
+ "twosuperior",
+ "threesuperior",
+ "foursuperior",
+ "fivesuperior",
+ "sixsuperior",
+ "sevensuperior",
+ "eightsuperior",
+ "ninesuperior",
+ "zeroinferior",
+ "oneinferior",
+ "twoinferior",
+ "threeinferior",
+ "fourinferior",
+ "fiveinferior",
+ "sixinferior",
+ "seveninferior",
+ "eightinferior",
+ "nineinferior",
+ "centinferior",
+ "dollarinferior",
+ "periodinferior",
+ "commainferior",
+ "Agravesmall",
+ "Aacutesmall",
+ "Acircumflexsmall",
+ "Atildesmall",
+ "Adieresissmall",
+ "Aringsmall",
+ "AEsmall",
+ "Ccedillasmall",
+ "Egravesmall",
+ "Eacutesmall",
+ "Ecircumflexsmall",
+ "Edieresissmall",
+ "Igravesmall",
+ "Iacutesmall",
+ "Icircumflexsmall",
+ "Idieresissmall",
+ "Ethsmall",
+ "Ntildesmall",
+ "Ogravesmall",
+ "Oacutesmall",
+ "Ocircumflexsmall",
+ "Otildesmall",
+ "Odieresissmall",
+ "OEsmall",
+ "Oslashsmall",
+ "Ugravesmall",
+ "Uacutesmall",
+ "Ucircumflexsmall",
+ "Udieresissmall",
+ "Yacutesmall",
+ "Thornsmall",
+ "Ydieresissmall",
+ ];
+ t.ExpertEncoding = a;
+ const r = [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "space",
+ "exclamsmall",
+ "Hungarumlautsmall",
+ "centoldstyle",
+ "dollaroldstyle",
+ "dollarsuperior",
+ "ampersandsmall",
+ "Acutesmall",
+ "parenleftsuperior",
+ "parenrightsuperior",
+ "twodotenleader",
+ "onedotenleader",
+ "comma",
+ "hyphen",
+ "period",
+ "fraction",
+ "zerooldstyle",
+ "oneoldstyle",
+ "twooldstyle",
+ "threeoldstyle",
+ "fouroldstyle",
+ "fiveoldstyle",
+ "sixoldstyle",
+ "sevenoldstyle",
+ "eightoldstyle",
+ "nineoldstyle",
+ "colon",
+ "semicolon",
+ "",
+ "threequartersemdash",
+ "",
+ "questionsmall",
+ "",
+ "",
+ "",
+ "",
+ "Ethsmall",
+ "",
+ "",
+ "onequarter",
+ "onehalf",
+ "threequarters",
+ "oneeighth",
+ "threeeighths",
+ "fiveeighths",
+ "seveneighths",
+ "onethird",
+ "twothirds",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "ff",
+ "fi",
+ "fl",
+ "ffi",
+ "ffl",
+ "parenleftinferior",
+ "",
+ "parenrightinferior",
+ "Circumflexsmall",
+ "hypheninferior",
+ "Gravesmall",
+ "Asmall",
+ "Bsmall",
+ "Csmall",
+ "Dsmall",
+ "Esmall",
+ "Fsmall",
+ "Gsmall",
+ "Hsmall",
+ "Ismall",
+ "Jsmall",
+ "Ksmall",
+ "Lsmall",
+ "Msmall",
+ "Nsmall",
+ "Osmall",
+ "Psmall",
+ "Qsmall",
+ "Rsmall",
+ "Ssmall",
+ "Tsmall",
+ "Usmall",
+ "Vsmall",
+ "Wsmall",
+ "Xsmall",
+ "Ysmall",
+ "Zsmall",
+ "colonmonetary",
+ "onefitted",
+ "rupiah",
+ "Tildesmall",
+ "",
+ "",
+ "asuperior",
+ "centsuperior",
+ "",
+ "",
+ "",
+ "",
+ "Aacutesmall",
+ "Agravesmall",
+ "Acircumflexsmall",
+ "Adieresissmall",
+ "Atildesmall",
+ "Aringsmall",
+ "Ccedillasmall",
+ "Eacutesmall",
+ "Egravesmall",
+ "Ecircumflexsmall",
+ "Edieresissmall",
+ "Iacutesmall",
+ "Igravesmall",
+ "Icircumflexsmall",
+ "Idieresissmall",
+ "Ntildesmall",
+ "Oacutesmall",
+ "Ogravesmall",
+ "Ocircumflexsmall",
+ "Odieresissmall",
+ "Otildesmall",
+ "Uacutesmall",
+ "Ugravesmall",
+ "Ucircumflexsmall",
+ "Udieresissmall",
+ "",
+ "eightsuperior",
+ "fourinferior",
+ "threeinferior",
+ "sixinferior",
+ "eightinferior",
+ "seveninferior",
+ "Scaronsmall",
+ "",
+ "centinferior",
+ "twoinferior",
+ "",
+ "Dieresissmall",
+ "",
+ "Caronsmall",
+ "osuperior",
+ "fiveinferior",
+ "",
+ "commainferior",
+ "periodinferior",
+ "Yacutesmall",
+ "",
+ "dollarinferior",
+ "",
+ "",
+ "Thornsmall",
+ "",
+ "nineinferior",
+ "zeroinferior",
+ "Zcaronsmall",
+ "AEsmall",
+ "Oslashsmall",
+ "questiondownsmall",
+ "oneinferior",
+ "Lslashsmall",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "Cedillasmall",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "OEsmall",
+ "figuredash",
+ "hyphensuperior",
+ "",
+ "",
+ "",
+ "",
+ "exclamdownsmall",
+ "",
+ "Ydieresissmall",
+ "",
+ "onesuperior",
+ "twosuperior",
+ "threesuperior",
+ "foursuperior",
+ "fivesuperior",
+ "sixsuperior",
+ "sevensuperior",
+ "ninesuperior",
+ "zerosuperior",
+ "",
+ "esuperior",
+ "rsuperior",
+ "tsuperior",
+ "",
+ "",
+ "isuperior",
+ "ssuperior",
+ "dsuperior",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "lsuperior",
+ "Ogoneksmall",
+ "Brevesmall",
+ "Macronsmall",
+ "bsuperior",
+ "nsuperior",
+ "msuperior",
+ "commasuperior",
+ "periodsuperior",
+ "Dotaccentsmall",
+ "Ringsmall",
+ "",
+ "",
+ "",
+ "",
+ ],
+ n = [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "space",
+ "exclam",
+ "quotedbl",
+ "numbersign",
+ "dollar",
+ "percent",
+ "ampersand",
+ "quotesingle",
+ "parenleft",
+ "parenright",
+ "asterisk",
+ "plus",
+ "comma",
+ "hyphen",
+ "period",
+ "slash",
+ "zero",
+ "one",
+ "two",
+ "three",
+ "four",
+ "five",
+ "six",
+ "seven",
+ "eight",
+ "nine",
+ "colon",
+ "semicolon",
+ "less",
+ "equal",
+ "greater",
+ "question",
+ "at",
+ "A",
+ "B",
+ "C",
+ "D",
+ "E",
+ "F",
+ "G",
+ "H",
+ "I",
+ "J",
+ "K",
+ "L",
+ "M",
+ "N",
+ "O",
+ "P",
+ "Q",
+ "R",
+ "S",
+ "T",
+ "U",
+ "V",
+ "W",
+ "X",
+ "Y",
+ "Z",
+ "bracketleft",
+ "backslash",
+ "bracketright",
+ "asciicircum",
+ "underscore",
+ "grave",
+ "a",
+ "b",
+ "c",
+ "d",
+ "e",
+ "f",
+ "g",
+ "h",
+ "i",
+ "j",
+ "k",
+ "l",
+ "m",
+ "n",
+ "o",
+ "p",
+ "q",
+ "r",
+ "s",
+ "t",
+ "u",
+ "v",
+ "w",
+ "x",
+ "y",
+ "z",
+ "braceleft",
+ "bar",
+ "braceright",
+ "asciitilde",
+ "",
+ "Adieresis",
+ "Aring",
+ "Ccedilla",
+ "Eacute",
+ "Ntilde",
+ "Odieresis",
+ "Udieresis",
+ "aacute",
+ "agrave",
+ "acircumflex",
+ "adieresis",
+ "atilde",
+ "aring",
+ "ccedilla",
+ "eacute",
+ "egrave",
+ "ecircumflex",
+ "edieresis",
+ "iacute",
+ "igrave",
+ "icircumflex",
+ "idieresis",
+ "ntilde",
+ "oacute",
+ "ograve",
+ "ocircumflex",
+ "odieresis",
+ "otilde",
+ "uacute",
+ "ugrave",
+ "ucircumflex",
+ "udieresis",
+ "dagger",
+ "degree",
+ "cent",
+ "sterling",
+ "section",
+ "bullet",
+ "paragraph",
+ "germandbls",
+ "registered",
+ "copyright",
+ "trademark",
+ "acute",
+ "dieresis",
+ "notequal",
+ "AE",
+ "Oslash",
+ "infinity",
+ "plusminus",
+ "lessequal",
+ "greaterequal",
+ "yen",
+ "mu",
+ "partialdiff",
+ "summation",
+ "product",
+ "pi",
+ "integral",
+ "ordfeminine",
+ "ordmasculine",
+ "Omega",
+ "ae",
+ "oslash",
+ "questiondown",
+ "exclamdown",
+ "logicalnot",
+ "radical",
+ "florin",
+ "approxequal",
+ "Delta",
+ "guillemotleft",
+ "guillemotright",
+ "ellipsis",
+ "space",
+ "Agrave",
+ "Atilde",
+ "Otilde",
+ "OE",
+ "oe",
+ "endash",
+ "emdash",
+ "quotedblleft",
+ "quotedblright",
+ "quoteleft",
+ "quoteright",
+ "divide",
+ "lozenge",
+ "ydieresis",
+ "Ydieresis",
+ "fraction",
+ "currency",
+ "guilsinglleft",
+ "guilsinglright",
+ "fi",
+ "fl",
+ "daggerdbl",
+ "periodcentered",
+ "quotesinglbase",
+ "quotedblbase",
+ "perthousand",
+ "Acircumflex",
+ "Ecircumflex",
+ "Aacute",
+ "Edieresis",
+ "Egrave",
+ "Iacute",
+ "Icircumflex",
+ "Idieresis",
+ "Igrave",
+ "Oacute",
+ "Ocircumflex",
+ "apple",
+ "Ograve",
+ "Uacute",
+ "Ucircumflex",
+ "Ugrave",
+ "dotlessi",
+ "circumflex",
+ "tilde",
+ "macron",
+ "breve",
+ "dotaccent",
+ "ring",
+ "cedilla",
+ "hungarumlaut",
+ "ogonek",
+ "caron",
+ ];
+ t.MacRomanEncoding = n;
+ const i = [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "space",
+ "exclam",
+ "quotedbl",
+ "numbersign",
+ "dollar",
+ "percent",
+ "ampersand",
+ "quoteright",
+ "parenleft",
+ "parenright",
+ "asterisk",
+ "plus",
+ "comma",
+ "hyphen",
+ "period",
+ "slash",
+ "zero",
+ "one",
+ "two",
+ "three",
+ "four",
+ "five",
+ "six",
+ "seven",
+ "eight",
+ "nine",
+ "colon",
+ "semicolon",
+ "less",
+ "equal",
+ "greater",
+ "question",
+ "at",
+ "A",
+ "B",
+ "C",
+ "D",
+ "E",
+ "F",
+ "G",
+ "H",
+ "I",
+ "J",
+ "K",
+ "L",
+ "M",
+ "N",
+ "O",
+ "P",
+ "Q",
+ "R",
+ "S",
+ "T",
+ "U",
+ "V",
+ "W",
+ "X",
+ "Y",
+ "Z",
+ "bracketleft",
+ "backslash",
+ "bracketright",
+ "asciicircum",
+ "underscore",
+ "quoteleft",
+ "a",
+ "b",
+ "c",
+ "d",
+ "e",
+ "f",
+ "g",
+ "h",
+ "i",
+ "j",
+ "k",
+ "l",
+ "m",
+ "n",
+ "o",
+ "p",
+ "q",
+ "r",
+ "s",
+ "t",
+ "u",
+ "v",
+ "w",
+ "x",
+ "y",
+ "z",
+ "braceleft",
+ "bar",
+ "braceright",
+ "asciitilde",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "exclamdown",
+ "cent",
+ "sterling",
+ "fraction",
+ "yen",
+ "florin",
+ "section",
+ "currency",
+ "quotesingle",
+ "quotedblleft",
+ "guillemotleft",
+ "guilsinglleft",
+ "guilsinglright",
+ "fi",
+ "fl",
+ "",
+ "endash",
+ "dagger",
+ "daggerdbl",
+ "periodcentered",
+ "",
+ "paragraph",
+ "bullet",
+ "quotesinglbase",
+ "quotedblbase",
+ "quotedblright",
+ "guillemotright",
+ "ellipsis",
+ "perthousand",
+ "",
+ "questiondown",
+ "",
+ "grave",
+ "acute",
+ "circumflex",
+ "tilde",
+ "macron",
+ "breve",
+ "dotaccent",
+ "dieresis",
+ "",
+ "ring",
+ "cedilla",
+ "",
+ "hungarumlaut",
+ "ogonek",
+ "caron",
+ "emdash",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "AE",
+ "",
+ "ordfeminine",
+ "",
+ "",
+ "",
+ "",
+ "Lslash",
+ "Oslash",
+ "OE",
+ "ordmasculine",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "ae",
+ "",
+ "",
+ "",
+ "dotlessi",
+ "",
+ "",
+ "lslash",
+ "oslash",
+ "oe",
+ "germandbls",
+ "",
+ "",
+ "",
+ "",
+ ];
+ t.StandardEncoding = i;
+ const s = [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "space",
+ "exclam",
+ "quotedbl",
+ "numbersign",
+ "dollar",
+ "percent",
+ "ampersand",
+ "quotesingle",
+ "parenleft",
+ "parenright",
+ "asterisk",
+ "plus",
+ "comma",
+ "hyphen",
+ "period",
+ "slash",
+ "zero",
+ "one",
+ "two",
+ "three",
+ "four",
+ "five",
+ "six",
+ "seven",
+ "eight",
+ "nine",
+ "colon",
+ "semicolon",
+ "less",
+ "equal",
+ "greater",
+ "question",
+ "at",
+ "A",
+ "B",
+ "C",
+ "D",
+ "E",
+ "F",
+ "G",
+ "H",
+ "I",
+ "J",
+ "K",
+ "L",
+ "M",
+ "N",
+ "O",
+ "P",
+ "Q",
+ "R",
+ "S",
+ "T",
+ "U",
+ "V",
+ "W",
+ "X",
+ "Y",
+ "Z",
+ "bracketleft",
+ "backslash",
+ "bracketright",
+ "asciicircum",
+ "underscore",
+ "grave",
+ "a",
+ "b",
+ "c",
+ "d",
+ "e",
+ "f",
+ "g",
+ "h",
+ "i",
+ "j",
+ "k",
+ "l",
+ "m",
+ "n",
+ "o",
+ "p",
+ "q",
+ "r",
+ "s",
+ "t",
+ "u",
+ "v",
+ "w",
+ "x",
+ "y",
+ "z",
+ "braceleft",
+ "bar",
+ "braceright",
+ "asciitilde",
+ "bullet",
+ "Euro",
+ "bullet",
+ "quotesinglbase",
+ "florin",
+ "quotedblbase",
+ "ellipsis",
+ "dagger",
+ "daggerdbl",
+ "circumflex",
+ "perthousand",
+ "Scaron",
+ "guilsinglleft",
+ "OE",
+ "bullet",
+ "Zcaron",
+ "bullet",
+ "bullet",
+ "quoteleft",
+ "quoteright",
+ "quotedblleft",
+ "quotedblright",
+ "bullet",
+ "endash",
+ "emdash",
+ "tilde",
+ "trademark",
+ "scaron",
+ "guilsinglright",
+ "oe",
+ "bullet",
+ "zcaron",
+ "Ydieresis",
+ "space",
+ "exclamdown",
+ "cent",
+ "sterling",
+ "currency",
+ "yen",
+ "brokenbar",
+ "section",
+ "dieresis",
+ "copyright",
+ "ordfeminine",
+ "guillemotleft",
+ "logicalnot",
+ "hyphen",
+ "registered",
+ "macron",
+ "degree",
+ "plusminus",
+ "twosuperior",
+ "threesuperior",
+ "acute",
+ "mu",
+ "paragraph",
+ "periodcentered",
+ "cedilla",
+ "onesuperior",
+ "ordmasculine",
+ "guillemotright",
+ "onequarter",
+ "onehalf",
+ "threequarters",
+ "questiondown",
+ "Agrave",
+ "Aacute",
+ "Acircumflex",
+ "Atilde",
+ "Adieresis",
+ "Aring",
+ "AE",
+ "Ccedilla",
+ "Egrave",
+ "Eacute",
+ "Ecircumflex",
+ "Edieresis",
+ "Igrave",
+ "Iacute",
+ "Icircumflex",
+ "Idieresis",
+ "Eth",
+ "Ntilde",
+ "Ograve",
+ "Oacute",
+ "Ocircumflex",
+ "Otilde",
+ "Odieresis",
+ "multiply",
+ "Oslash",
+ "Ugrave",
+ "Uacute",
+ "Ucircumflex",
+ "Udieresis",
+ "Yacute",
+ "Thorn",
+ "germandbls",
+ "agrave",
+ "aacute",
+ "acircumflex",
+ "atilde",
+ "adieresis",
+ "aring",
+ "ae",
+ "ccedilla",
+ "egrave",
+ "eacute",
+ "ecircumflex",
+ "edieresis",
+ "igrave",
+ "iacute",
+ "icircumflex",
+ "idieresis",
+ "eth",
+ "ntilde",
+ "ograve",
+ "oacute",
+ "ocircumflex",
+ "otilde",
+ "odieresis",
+ "divide",
+ "oslash",
+ "ugrave",
+ "uacute",
+ "ucircumflex",
+ "udieresis",
+ "yacute",
+ "thorn",
+ "ydieresis",
+ ];
+ t.WinAnsiEncoding = s;
+ const o = [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "space",
+ "exclam",
+ "universal",
+ "numbersign",
+ "existential",
+ "percent",
+ "ampersand",
+ "suchthat",
+ "parenleft",
+ "parenright",
+ "asteriskmath",
+ "plus",
+ "comma",
+ "minus",
+ "period",
+ "slash",
+ "zero",
+ "one",
+ "two",
+ "three",
+ "four",
+ "five",
+ "six",
+ "seven",
+ "eight",
+ "nine",
+ "colon",
+ "semicolon",
+ "less",
+ "equal",
+ "greater",
+ "question",
+ "congruent",
+ "Alpha",
+ "Beta",
+ "Chi",
+ "Delta",
+ "Epsilon",
+ "Phi",
+ "Gamma",
+ "Eta",
+ "Iota",
+ "theta1",
+ "Kappa",
+ "Lambda",
+ "Mu",
+ "Nu",
+ "Omicron",
+ "Pi",
+ "Theta",
+ "Rho",
+ "Sigma",
+ "Tau",
+ "Upsilon",
+ "sigma1",
+ "Omega",
+ "Xi",
+ "Psi",
+ "Zeta",
+ "bracketleft",
+ "therefore",
+ "bracketright",
+ "perpendicular",
+ "underscore",
+ "radicalex",
+ "alpha",
+ "beta",
+ "chi",
+ "delta",
+ "epsilon",
+ "phi",
+ "gamma",
+ "eta",
+ "iota",
+ "phi1",
+ "kappa",
+ "lambda",
+ "mu",
+ "nu",
+ "omicron",
+ "pi",
+ "theta",
+ "rho",
+ "sigma",
+ "tau",
+ "upsilon",
+ "omega1",
+ "omega",
+ "xi",
+ "psi",
+ "zeta",
+ "braceleft",
+ "bar",
+ "braceright",
+ "similar",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "Euro",
+ "Upsilon1",
+ "minute",
+ "lessequal",
+ "fraction",
+ "infinity",
+ "florin",
+ "club",
+ "diamond",
+ "heart",
+ "spade",
+ "arrowboth",
+ "arrowleft",
+ "arrowup",
+ "arrowright",
+ "arrowdown",
+ "degree",
+ "plusminus",
+ "second",
+ "greaterequal",
+ "multiply",
+ "proportional",
+ "partialdiff",
+ "bullet",
+ "divide",
+ "notequal",
+ "equivalence",
+ "approxequal",
+ "ellipsis",
+ "arrowvertex",
+ "arrowhorizex",
+ "carriagereturn",
+ "aleph",
+ "Ifraktur",
+ "Rfraktur",
+ "weierstrass",
+ "circlemultiply",
+ "circleplus",
+ "emptyset",
+ "intersection",
+ "union",
+ "propersuperset",
+ "reflexsuperset",
+ "notsubset",
+ "propersubset",
+ "reflexsubset",
+ "element",
+ "notelement",
+ "angle",
+ "gradient",
+ "registerserif",
+ "copyrightserif",
+ "trademarkserif",
+ "product",
+ "radical",
+ "dotmath",
+ "logicalnot",
+ "logicaland",
+ "logicalor",
+ "arrowdblboth",
+ "arrowdblleft",
+ "arrowdblup",
+ "arrowdblright",
+ "arrowdbldown",
+ "lozenge",
+ "angleleft",
+ "registersans",
+ "copyrightsans",
+ "trademarksans",
+ "summation",
+ "parenlefttp",
+ "parenleftex",
+ "parenleftbt",
+ "bracketlefttp",
+ "bracketleftex",
+ "bracketleftbt",
+ "bracelefttp",
+ "braceleftmid",
+ "braceleftbt",
+ "braceex",
+ "",
+ "angleright",
+ "integral",
+ "integraltp",
+ "integralex",
+ "integralbt",
+ "parenrighttp",
+ "parenrightex",
+ "parenrightbt",
+ "bracketrighttp",
+ "bracketrightex",
+ "bracketrightbt",
+ "bracerighttp",
+ "bracerightmid",
+ "bracerightbt",
+ "",
+ ];
+ t.SymbolSetEncoding = o;
+ const c = [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "space",
+ "a1",
+ "a2",
+ "a202",
+ "a3",
+ "a4",
+ "a5",
+ "a119",
+ "a118",
+ "a117",
+ "a11",
+ "a12",
+ "a13",
+ "a14",
+ "a15",
+ "a16",
+ "a105",
+ "a17",
+ "a18",
+ "a19",
+ "a20",
+ "a21",
+ "a22",
+ "a23",
+ "a24",
+ "a25",
+ "a26",
+ "a27",
+ "a28",
+ "a6",
+ "a7",
+ "a8",
+ "a9",
+ "a10",
+ "a29",
+ "a30",
+ "a31",
+ "a32",
+ "a33",
+ "a34",
+ "a35",
+ "a36",
+ "a37",
+ "a38",
+ "a39",
+ "a40",
+ "a41",
+ "a42",
+ "a43",
+ "a44",
+ "a45",
+ "a46",
+ "a47",
+ "a48",
+ "a49",
+ "a50",
+ "a51",
+ "a52",
+ "a53",
+ "a54",
+ "a55",
+ "a56",
+ "a57",
+ "a58",
+ "a59",
+ "a60",
+ "a61",
+ "a62",
+ "a63",
+ "a64",
+ "a65",
+ "a66",
+ "a67",
+ "a68",
+ "a69",
+ "a70",
+ "a71",
+ "a72",
+ "a73",
+ "a74",
+ "a203",
+ "a75",
+ "a204",
+ "a76",
+ "a77",
+ "a78",
+ "a79",
+ "a81",
+ "a82",
+ "a83",
+ "a84",
+ "a97",
+ "a98",
+ "a99",
+ "a100",
+ "",
+ "a89",
+ "a90",
+ "a93",
+ "a94",
+ "a91",
+ "a92",
+ "a205",
+ "a85",
+ "a206",
+ "a86",
+ "a87",
+ "a88",
+ "a95",
+ "a96",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "a101",
+ "a102",
+ "a103",
+ "a104",
+ "a106",
+ "a107",
+ "a108",
+ "a112",
+ "a111",
+ "a110",
+ "a109",
+ "a120",
+ "a121",
+ "a122",
+ "a123",
+ "a124",
+ "a125",
+ "a126",
+ "a127",
+ "a128",
+ "a129",
+ "a130",
+ "a131",
+ "a132",
+ "a133",
+ "a134",
+ "a135",
+ "a136",
+ "a137",
+ "a138",
+ "a139",
+ "a140",
+ "a141",
+ "a142",
+ "a143",
+ "a144",
+ "a145",
+ "a146",
+ "a147",
+ "a148",
+ "a149",
+ "a150",
+ "a151",
+ "a152",
+ "a153",
+ "a154",
+ "a155",
+ "a156",
+ "a157",
+ "a158",
+ "a159",
+ "a160",
+ "a161",
+ "a163",
+ "a164",
+ "a196",
+ "a165",
+ "a192",
+ "a166",
+ "a167",
+ "a168",
+ "a169",
+ "a170",
+ "a171",
+ "a172",
+ "a173",
+ "a162",
+ "a174",
+ "a175",
+ "a176",
+ "a177",
+ "a178",
+ "a179",
+ "a193",
+ "a180",
+ "a199",
+ "a181",
+ "a200",
+ "a182",
+ "",
+ "a201",
+ "a183",
+ "a184",
+ "a197",
+ "a185",
+ "a194",
+ "a198",
+ "a186",
+ "a195",
+ "a187",
+ "a188",
+ "a189",
+ "a190",
+ "a191",
+ "",
+ ];
+ t.ZapfDingbatsEncoding = c;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.SEAC_ANALYSIS_ENABLED =
+ t.MacStandardGlyphOrdering =
+ t.FontFlags =
+ void 0;
+ t.normalizeFontName = function normalizeFontName(e) {
+ return e.replaceAll(/[,_]/g, "-").replaceAll(/\s/g, "");
+ };
+ t.recoverGlyphName = recoverGlyphName;
+ t.type1FontGlyphMapping = function type1FontGlyphMapping(e, t, a) {
+ const i = Object.create(null);
+ let s, c, l;
+ const h = !!(e.flags & o.Symbolic);
+ if (e.isInternalFont) {
+ l = t;
+ for (c = 0; c < l.length; c++) {
+ s = a.indexOf(l[c]);
+ i[c] = s >= 0 ? s : 0;
+ }
+ } else if (e.baseEncodingName) {
+ l = (0, r.getEncoding)(e.baseEncodingName);
+ for (c = 0; c < l.length; c++) {
+ s = a.indexOf(l[c]);
+ i[c] = s >= 0 ? s : 0;
+ }
+ } else if (h) for (c in t) i[c] = t[c];
+ else {
+ l = r.StandardEncoding;
+ for (c = 0; c < l.length; c++) {
+ s = a.indexOf(l[c]);
+ i[c] = s >= 0 ? s : 0;
+ }
+ }
+ const u = e.differences;
+ let d;
+ if (u)
+ for (c in u) {
+ const e = u[c];
+ s = a.indexOf(e);
+ if (-1 === s) {
+ d || (d = (0, n.getGlyphsUnicode)());
+ const t = recoverGlyphName(e, d);
+ t !== e && (s = a.indexOf(t));
+ }
+ i[c] = s >= 0 ? s : 0;
+ }
+ return i;
+ };
+ var r = a(37),
+ n = a(39),
+ i = a(40),
+ s = a(2);
+ t.SEAC_ANALYSIS_ENABLED = !0;
+ const o = {
+ FixedPitch: 1,
+ Serif: 2,
+ Symbolic: 4,
+ Script: 8,
+ Nonsymbolic: 32,
+ Italic: 64,
+ AllCap: 65536,
+ SmallCap: 131072,
+ ForceBold: 262144,
+ };
+ t.FontFlags = o;
+ t.MacStandardGlyphOrdering = [
+ ".notdef",
+ ".null",
+ "nonmarkingreturn",
+ "space",
+ "exclam",
+ "quotedbl",
+ "numbersign",
+ "dollar",
+ "percent",
+ "ampersand",
+ "quotesingle",
+ "parenleft",
+ "parenright",
+ "asterisk",
+ "plus",
+ "comma",
+ "hyphen",
+ "period",
+ "slash",
+ "zero",
+ "one",
+ "two",
+ "three",
+ "four",
+ "five",
+ "six",
+ "seven",
+ "eight",
+ "nine",
+ "colon",
+ "semicolon",
+ "less",
+ "equal",
+ "greater",
+ "question",
+ "at",
+ "A",
+ "B",
+ "C",
+ "D",
+ "E",
+ "F",
+ "G",
+ "H",
+ "I",
+ "J",
+ "K",
+ "L",
+ "M",
+ "N",
+ "O",
+ "P",
+ "Q",
+ "R",
+ "S",
+ "T",
+ "U",
+ "V",
+ "W",
+ "X",
+ "Y",
+ "Z",
+ "bracketleft",
+ "backslash",
+ "bracketright",
+ "asciicircum",
+ "underscore",
+ "grave",
+ "a",
+ "b",
+ "c",
+ "d",
+ "e",
+ "f",
+ "g",
+ "h",
+ "i",
+ "j",
+ "k",
+ "l",
+ "m",
+ "n",
+ "o",
+ "p",
+ "q",
+ "r",
+ "s",
+ "t",
+ "u",
+ "v",
+ "w",
+ "x",
+ "y",
+ "z",
+ "braceleft",
+ "bar",
+ "braceright",
+ "asciitilde",
+ "Adieresis",
+ "Aring",
+ "Ccedilla",
+ "Eacute",
+ "Ntilde",
+ "Odieresis",
+ "Udieresis",
+ "aacute",
+ "agrave",
+ "acircumflex",
+ "adieresis",
+ "atilde",
+ "aring",
+ "ccedilla",
+ "eacute",
+ "egrave",
+ "ecircumflex",
+ "edieresis",
+ "iacute",
+ "igrave",
+ "icircumflex",
+ "idieresis",
+ "ntilde",
+ "oacute",
+ "ograve",
+ "ocircumflex",
+ "odieresis",
+ "otilde",
+ "uacute",
+ "ugrave",
+ "ucircumflex",
+ "udieresis",
+ "dagger",
+ "degree",
+ "cent",
+ "sterling",
+ "section",
+ "bullet",
+ "paragraph",
+ "germandbls",
+ "registered",
+ "copyright",
+ "trademark",
+ "acute",
+ "dieresis",
+ "notequal",
+ "AE",
+ "Oslash",
+ "infinity",
+ "plusminus",
+ "lessequal",
+ "greaterequal",
+ "yen",
+ "mu",
+ "partialdiff",
+ "summation",
+ "product",
+ "pi",
+ "integral",
+ "ordfeminine",
+ "ordmasculine",
+ "Omega",
+ "ae",
+ "oslash",
+ "questiondown",
+ "exclamdown",
+ "logicalnot",
+ "radical",
+ "florin",
+ "approxequal",
+ "Delta",
+ "guillemotleft",
+ "guillemotright",
+ "ellipsis",
+ "nonbreakingspace",
+ "Agrave",
+ "Atilde",
+ "Otilde",
+ "OE",
+ "oe",
+ "endash",
+ "emdash",
+ "quotedblleft",
+ "quotedblright",
+ "quoteleft",
+ "quoteright",
+ "divide",
+ "lozenge",
+ "ydieresis",
+ "Ydieresis",
+ "fraction",
+ "currency",
+ "guilsinglleft",
+ "guilsinglright",
+ "fi",
+ "fl",
+ "daggerdbl",
+ "periodcentered",
+ "quotesinglbase",
+ "quotedblbase",
+ "perthousand",
+ "Acircumflex",
+ "Ecircumflex",
+ "Aacute",
+ "Edieresis",
+ "Egrave",
+ "Iacute",
+ "Icircumflex",
+ "Idieresis",
+ "Igrave",
+ "Oacute",
+ "Ocircumflex",
+ "apple",
+ "Ograve",
+ "Uacute",
+ "Ucircumflex",
+ "Ugrave",
+ "dotlessi",
+ "circumflex",
+ "tilde",
+ "macron",
+ "breve",
+ "dotaccent",
+ "ring",
+ "cedilla",
+ "hungarumlaut",
+ "ogonek",
+ "caron",
+ "Lslash",
+ "lslash",
+ "Scaron",
+ "scaron",
+ "Zcaron",
+ "zcaron",
+ "brokenbar",
+ "Eth",
+ "eth",
+ "Yacute",
+ "yacute",
+ "Thorn",
+ "thorn",
+ "minus",
+ "multiply",
+ "onesuperior",
+ "twosuperior",
+ "threesuperior",
+ "onehalf",
+ "onequarter",
+ "threequarters",
+ "franc",
+ "Gbreve",
+ "gbreve",
+ "Idotaccent",
+ "Scedilla",
+ "scedilla",
+ "Cacute",
+ "cacute",
+ "Ccaron",
+ "ccaron",
+ "dcroat",
+ ];
+ function recoverGlyphName(e, t) {
+ if (void 0 !== t[e]) return e;
+ const a = (0, i.getUnicodeForGlyph)(e, t);
+ if (-1 !== a) for (const e in t) if (t[e] === a) return e;
+ (0, s.info)("Unable to recover a standard glyph name for: " + e);
+ return e;
+ }
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.getGlyphsUnicode = t.getDingbatsGlyphsUnicode = void 0;
+ var r = a(3);
+ const n = (0, r.getLookupTableFactory)(function (e) {
+ e.A = 65;
+ e.AE = 198;
+ e.AEacute = 508;
+ e.AEmacron = 482;
+ e.AEsmall = 63462;
+ e.Aacute = 193;
+ e.Aacutesmall = 63457;
+ e.Abreve = 258;
+ e.Abreveacute = 7854;
+ e.Abrevecyrillic = 1232;
+ e.Abrevedotbelow = 7862;
+ e.Abrevegrave = 7856;
+ e.Abrevehookabove = 7858;
+ e.Abrevetilde = 7860;
+ e.Acaron = 461;
+ e.Acircle = 9398;
+ e.Acircumflex = 194;
+ e.Acircumflexacute = 7844;
+ e.Acircumflexdotbelow = 7852;
+ e.Acircumflexgrave = 7846;
+ e.Acircumflexhookabove = 7848;
+ e.Acircumflexsmall = 63458;
+ e.Acircumflextilde = 7850;
+ e.Acute = 63177;
+ e.Acutesmall = 63412;
+ e.Acyrillic = 1040;
+ e.Adblgrave = 512;
+ e.Adieresis = 196;
+ e.Adieresiscyrillic = 1234;
+ e.Adieresismacron = 478;
+ e.Adieresissmall = 63460;
+ e.Adotbelow = 7840;
+ e.Adotmacron = 480;
+ e.Agrave = 192;
+ e.Agravesmall = 63456;
+ e.Ahookabove = 7842;
+ e.Aiecyrillic = 1236;
+ e.Ainvertedbreve = 514;
+ e.Alpha = 913;
+ e.Alphatonos = 902;
+ e.Amacron = 256;
+ e.Amonospace = 65313;
+ e.Aogonek = 260;
+ e.Aring = 197;
+ e.Aringacute = 506;
+ e.Aringbelow = 7680;
+ e.Aringsmall = 63461;
+ e.Asmall = 63329;
+ e.Atilde = 195;
+ e.Atildesmall = 63459;
+ e.Aybarmenian = 1329;
+ e.B = 66;
+ e.Bcircle = 9399;
+ e.Bdotaccent = 7682;
+ e.Bdotbelow = 7684;
+ e.Becyrillic = 1041;
+ e.Benarmenian = 1330;
+ e.Beta = 914;
+ e.Bhook = 385;
+ e.Blinebelow = 7686;
+ e.Bmonospace = 65314;
+ e.Brevesmall = 63220;
+ e.Bsmall = 63330;
+ e.Btopbar = 386;
+ e.C = 67;
+ e.Caarmenian = 1342;
+ e.Cacute = 262;
+ e.Caron = 63178;
+ e.Caronsmall = 63221;
+ e.Ccaron = 268;
+ e.Ccedilla = 199;
+ e.Ccedillaacute = 7688;
+ e.Ccedillasmall = 63463;
+ e.Ccircle = 9400;
+ e.Ccircumflex = 264;
+ e.Cdot = 266;
+ e.Cdotaccent = 266;
+ e.Cedillasmall = 63416;
+ e.Chaarmenian = 1353;
+ e.Cheabkhasiancyrillic = 1212;
+ e.Checyrillic = 1063;
+ e.Chedescenderabkhasiancyrillic = 1214;
+ e.Chedescendercyrillic = 1206;
+ e.Chedieresiscyrillic = 1268;
+ e.Cheharmenian = 1347;
+ e.Chekhakassiancyrillic = 1227;
+ e.Cheverticalstrokecyrillic = 1208;
+ e.Chi = 935;
+ e.Chook = 391;
+ e.Circumflexsmall = 63222;
+ e.Cmonospace = 65315;
+ e.Coarmenian = 1361;
+ e.Csmall = 63331;
+ e.D = 68;
+ e.DZ = 497;
+ e.DZcaron = 452;
+ e.Daarmenian = 1332;
+ e.Dafrican = 393;
+ e.Dcaron = 270;
+ e.Dcedilla = 7696;
+ e.Dcircle = 9401;
+ e.Dcircumflexbelow = 7698;
+ e.Dcroat = 272;
+ e.Ddotaccent = 7690;
+ e.Ddotbelow = 7692;
+ e.Decyrillic = 1044;
+ e.Deicoptic = 1006;
+ e.Delta = 8710;
+ e.Deltagreek = 916;
+ e.Dhook = 394;
+ e.Dieresis = 63179;
+ e.DieresisAcute = 63180;
+ e.DieresisGrave = 63181;
+ e.Dieresissmall = 63400;
+ e.Digammagreek = 988;
+ e.Djecyrillic = 1026;
+ e.Dlinebelow = 7694;
+ e.Dmonospace = 65316;
+ e.Dotaccentsmall = 63223;
+ e.Dslash = 272;
+ e.Dsmall = 63332;
+ e.Dtopbar = 395;
+ e.Dz = 498;
+ e.Dzcaron = 453;
+ e.Dzeabkhasiancyrillic = 1248;
+ e.Dzecyrillic = 1029;
+ e.Dzhecyrillic = 1039;
+ e.E = 69;
+ e.Eacute = 201;
+ e.Eacutesmall = 63465;
+ e.Ebreve = 276;
+ e.Ecaron = 282;
+ e.Ecedillabreve = 7708;
+ e.Echarmenian = 1333;
+ e.Ecircle = 9402;
+ e.Ecircumflex = 202;
+ e.Ecircumflexacute = 7870;
+ e.Ecircumflexbelow = 7704;
+ e.Ecircumflexdotbelow = 7878;
+ e.Ecircumflexgrave = 7872;
+ e.Ecircumflexhookabove = 7874;
+ e.Ecircumflexsmall = 63466;
+ e.Ecircumflextilde = 7876;
+ e.Ecyrillic = 1028;
+ e.Edblgrave = 516;
+ e.Edieresis = 203;
+ e.Edieresissmall = 63467;
+ e.Edot = 278;
+ e.Edotaccent = 278;
+ e.Edotbelow = 7864;
+ e.Efcyrillic = 1060;
+ e.Egrave = 200;
+ e.Egravesmall = 63464;
+ e.Eharmenian = 1335;
+ e.Ehookabove = 7866;
+ e.Eightroman = 8551;
+ e.Einvertedbreve = 518;
+ e.Eiotifiedcyrillic = 1124;
+ e.Elcyrillic = 1051;
+ e.Elevenroman = 8554;
+ e.Emacron = 274;
+ e.Emacronacute = 7702;
+ e.Emacrongrave = 7700;
+ e.Emcyrillic = 1052;
+ e.Emonospace = 65317;
+ e.Encyrillic = 1053;
+ e.Endescendercyrillic = 1186;
+ e.Eng = 330;
+ e.Enghecyrillic = 1188;
+ e.Enhookcyrillic = 1223;
+ e.Eogonek = 280;
+ e.Eopen = 400;
+ e.Epsilon = 917;
+ e.Epsilontonos = 904;
+ e.Ercyrillic = 1056;
+ e.Ereversed = 398;
+ e.Ereversedcyrillic = 1069;
+ e.Escyrillic = 1057;
+ e.Esdescendercyrillic = 1194;
+ e.Esh = 425;
+ e.Esmall = 63333;
+ e.Eta = 919;
+ e.Etarmenian = 1336;
+ e.Etatonos = 905;
+ e.Eth = 208;
+ e.Ethsmall = 63472;
+ e.Etilde = 7868;
+ e.Etildebelow = 7706;
+ e.Euro = 8364;
+ e.Ezh = 439;
+ e.Ezhcaron = 494;
+ e.Ezhreversed = 440;
+ e.F = 70;
+ e.Fcircle = 9403;
+ e.Fdotaccent = 7710;
+ e.Feharmenian = 1366;
+ e.Feicoptic = 996;
+ e.Fhook = 401;
+ e.Fitacyrillic = 1138;
+ e.Fiveroman = 8548;
+ e.Fmonospace = 65318;
+ e.Fourroman = 8547;
+ e.Fsmall = 63334;
+ e.G = 71;
+ e.GBsquare = 13191;
+ e.Gacute = 500;
+ e.Gamma = 915;
+ e.Gammaafrican = 404;
+ e.Gangiacoptic = 1002;
+ e.Gbreve = 286;
+ e.Gcaron = 486;
+ e.Gcedilla = 290;
+ e.Gcircle = 9404;
+ e.Gcircumflex = 284;
+ e.Gcommaaccent = 290;
+ e.Gdot = 288;
+ e.Gdotaccent = 288;
+ e.Gecyrillic = 1043;
+ e.Ghadarmenian = 1346;
+ e.Ghemiddlehookcyrillic = 1172;
+ e.Ghestrokecyrillic = 1170;
+ e.Gheupturncyrillic = 1168;
+ e.Ghook = 403;
+ e.Gimarmenian = 1331;
+ e.Gjecyrillic = 1027;
+ e.Gmacron = 7712;
+ e.Gmonospace = 65319;
+ e.Grave = 63182;
+ e.Gravesmall = 63328;
+ e.Gsmall = 63335;
+ e.Gsmallhook = 667;
+ e.Gstroke = 484;
+ e.H = 72;
+ e.H18533 = 9679;
+ e.H18543 = 9642;
+ e.H18551 = 9643;
+ e.H22073 = 9633;
+ e.HPsquare = 13259;
+ e.Haabkhasiancyrillic = 1192;
+ e.Hadescendercyrillic = 1202;
+ e.Hardsigncyrillic = 1066;
+ e.Hbar = 294;
+ e.Hbrevebelow = 7722;
+ e.Hcedilla = 7720;
+ e.Hcircle = 9405;
+ e.Hcircumflex = 292;
+ e.Hdieresis = 7718;
+ e.Hdotaccent = 7714;
+ e.Hdotbelow = 7716;
+ e.Hmonospace = 65320;
+ e.Hoarmenian = 1344;
+ e.Horicoptic = 1e3;
+ e.Hsmall = 63336;
+ e.Hungarumlaut = 63183;
+ e.Hungarumlautsmall = 63224;
+ e.Hzsquare = 13200;
+ e.I = 73;
+ e.IAcyrillic = 1071;
+ e.IJ = 306;
+ e.IUcyrillic = 1070;
+ e.Iacute = 205;
+ e.Iacutesmall = 63469;
+ e.Ibreve = 300;
+ e.Icaron = 463;
+ e.Icircle = 9406;
+ e.Icircumflex = 206;
+ e.Icircumflexsmall = 63470;
+ e.Icyrillic = 1030;
+ e.Idblgrave = 520;
+ e.Idieresis = 207;
+ e.Idieresisacute = 7726;
+ e.Idieresiscyrillic = 1252;
+ e.Idieresissmall = 63471;
+ e.Idot = 304;
+ e.Idotaccent = 304;
+ e.Idotbelow = 7882;
+ e.Iebrevecyrillic = 1238;
+ e.Iecyrillic = 1045;
+ e.Ifraktur = 8465;
+ e.Igrave = 204;
+ e.Igravesmall = 63468;
+ e.Ihookabove = 7880;
+ e.Iicyrillic = 1048;
+ e.Iinvertedbreve = 522;
+ e.Iishortcyrillic = 1049;
+ e.Imacron = 298;
+ e.Imacroncyrillic = 1250;
+ e.Imonospace = 65321;
+ e.Iniarmenian = 1339;
+ e.Iocyrillic = 1025;
+ e.Iogonek = 302;
+ e.Iota = 921;
+ e.Iotaafrican = 406;
+ e.Iotadieresis = 938;
+ e.Iotatonos = 906;
+ e.Ismall = 63337;
+ e.Istroke = 407;
+ e.Itilde = 296;
+ e.Itildebelow = 7724;
+ e.Izhitsacyrillic = 1140;
+ e.Izhitsadblgravecyrillic = 1142;
+ e.J = 74;
+ e.Jaarmenian = 1345;
+ e.Jcircle = 9407;
+ e.Jcircumflex = 308;
+ e.Jecyrillic = 1032;
+ e.Jheharmenian = 1355;
+ e.Jmonospace = 65322;
+ e.Jsmall = 63338;
+ e.K = 75;
+ e.KBsquare = 13189;
+ e.KKsquare = 13261;
+ e.Kabashkircyrillic = 1184;
+ e.Kacute = 7728;
+ e.Kacyrillic = 1050;
+ e.Kadescendercyrillic = 1178;
+ e.Kahookcyrillic = 1219;
+ e.Kappa = 922;
+ e.Kastrokecyrillic = 1182;
+ e.Kaverticalstrokecyrillic = 1180;
+ e.Kcaron = 488;
+ e.Kcedilla = 310;
+ e.Kcircle = 9408;
+ e.Kcommaaccent = 310;
+ e.Kdotbelow = 7730;
+ e.Keharmenian = 1364;
+ e.Kenarmenian = 1343;
+ e.Khacyrillic = 1061;
+ e.Kheicoptic = 998;
+ e.Khook = 408;
+ e.Kjecyrillic = 1036;
+ e.Klinebelow = 7732;
+ e.Kmonospace = 65323;
+ e.Koppacyrillic = 1152;
+ e.Koppagreek = 990;
+ e.Ksicyrillic = 1134;
+ e.Ksmall = 63339;
+ e.L = 76;
+ e.LJ = 455;
+ e.LL = 63167;
+ e.Lacute = 313;
+ e.Lambda = 923;
+ e.Lcaron = 317;
+ e.Lcedilla = 315;
+ e.Lcircle = 9409;
+ e.Lcircumflexbelow = 7740;
+ e.Lcommaaccent = 315;
+ e.Ldot = 319;
+ e.Ldotaccent = 319;
+ e.Ldotbelow = 7734;
+ e.Ldotbelowmacron = 7736;
+ e.Liwnarmenian = 1340;
+ e.Lj = 456;
+ e.Ljecyrillic = 1033;
+ e.Llinebelow = 7738;
+ e.Lmonospace = 65324;
+ e.Lslash = 321;
+ e.Lslashsmall = 63225;
+ e.Lsmall = 63340;
+ e.M = 77;
+ e.MBsquare = 13190;
+ e.Macron = 63184;
+ e.Macronsmall = 63407;
+ e.Macute = 7742;
+ e.Mcircle = 9410;
+ e.Mdotaccent = 7744;
+ e.Mdotbelow = 7746;
+ e.Menarmenian = 1348;
+ e.Mmonospace = 65325;
+ e.Msmall = 63341;
+ e.Mturned = 412;
+ e.Mu = 924;
+ e.N = 78;
+ e.NJ = 458;
+ e.Nacute = 323;
+ e.Ncaron = 327;
+ e.Ncedilla = 325;
+ e.Ncircle = 9411;
+ e.Ncircumflexbelow = 7754;
+ e.Ncommaaccent = 325;
+ e.Ndotaccent = 7748;
+ e.Ndotbelow = 7750;
+ e.Nhookleft = 413;
+ e.Nineroman = 8552;
+ e.Nj = 459;
+ e.Njecyrillic = 1034;
+ e.Nlinebelow = 7752;
+ e.Nmonospace = 65326;
+ e.Nowarmenian = 1350;
+ e.Nsmall = 63342;
+ e.Ntilde = 209;
+ e.Ntildesmall = 63473;
+ e.Nu = 925;
+ e.O = 79;
+ e.OE = 338;
+ e.OEsmall = 63226;
+ e.Oacute = 211;
+ e.Oacutesmall = 63475;
+ e.Obarredcyrillic = 1256;
+ e.Obarreddieresiscyrillic = 1258;
+ e.Obreve = 334;
+ e.Ocaron = 465;
+ e.Ocenteredtilde = 415;
+ e.Ocircle = 9412;
+ e.Ocircumflex = 212;
+ e.Ocircumflexacute = 7888;
+ e.Ocircumflexdotbelow = 7896;
+ e.Ocircumflexgrave = 7890;
+ e.Ocircumflexhookabove = 7892;
+ e.Ocircumflexsmall = 63476;
+ e.Ocircumflextilde = 7894;
+ e.Ocyrillic = 1054;
+ e.Odblacute = 336;
+ e.Odblgrave = 524;
+ e.Odieresis = 214;
+ e.Odieresiscyrillic = 1254;
+ e.Odieresissmall = 63478;
+ e.Odotbelow = 7884;
+ e.Ogoneksmall = 63227;
+ e.Ograve = 210;
+ e.Ogravesmall = 63474;
+ e.Oharmenian = 1365;
+ e.Ohm = 8486;
+ e.Ohookabove = 7886;
+ e.Ohorn = 416;
+ e.Ohornacute = 7898;
+ e.Ohorndotbelow = 7906;
+ e.Ohorngrave = 7900;
+ e.Ohornhookabove = 7902;
+ e.Ohorntilde = 7904;
+ e.Ohungarumlaut = 336;
+ e.Oi = 418;
+ e.Oinvertedbreve = 526;
+ e.Omacron = 332;
+ e.Omacronacute = 7762;
+ e.Omacrongrave = 7760;
+ e.Omega = 8486;
+ e.Omegacyrillic = 1120;
+ e.Omegagreek = 937;
+ e.Omegaroundcyrillic = 1146;
+ e.Omegatitlocyrillic = 1148;
+ e.Omegatonos = 911;
+ e.Omicron = 927;
+ e.Omicrontonos = 908;
+ e.Omonospace = 65327;
+ e.Oneroman = 8544;
+ e.Oogonek = 490;
+ e.Oogonekmacron = 492;
+ e.Oopen = 390;
+ e.Oslash = 216;
+ e.Oslashacute = 510;
+ e.Oslashsmall = 63480;
+ e.Osmall = 63343;
+ e.Ostrokeacute = 510;
+ e.Otcyrillic = 1150;
+ e.Otilde = 213;
+ e.Otildeacute = 7756;
+ e.Otildedieresis = 7758;
+ e.Otildesmall = 63477;
+ e.P = 80;
+ e.Pacute = 7764;
+ e.Pcircle = 9413;
+ e.Pdotaccent = 7766;
+ e.Pecyrillic = 1055;
+ e.Peharmenian = 1354;
+ e.Pemiddlehookcyrillic = 1190;
+ e.Phi = 934;
+ e.Phook = 420;
+ e.Pi = 928;
+ e.Piwrarmenian = 1363;
+ e.Pmonospace = 65328;
+ e.Psi = 936;
+ e.Psicyrillic = 1136;
+ e.Psmall = 63344;
+ e.Q = 81;
+ e.Qcircle = 9414;
+ e.Qmonospace = 65329;
+ e.Qsmall = 63345;
+ e.R = 82;
+ e.Raarmenian = 1356;
+ e.Racute = 340;
+ e.Rcaron = 344;
+ e.Rcedilla = 342;
+ e.Rcircle = 9415;
+ e.Rcommaaccent = 342;
+ e.Rdblgrave = 528;
+ e.Rdotaccent = 7768;
+ e.Rdotbelow = 7770;
+ e.Rdotbelowmacron = 7772;
+ e.Reharmenian = 1360;
+ e.Rfraktur = 8476;
+ e.Rho = 929;
+ e.Ringsmall = 63228;
+ e.Rinvertedbreve = 530;
+ e.Rlinebelow = 7774;
+ e.Rmonospace = 65330;
+ e.Rsmall = 63346;
+ e.Rsmallinverted = 641;
+ e.Rsmallinvertedsuperior = 694;
+ e.S = 83;
+ e.SF010000 = 9484;
+ e.SF020000 = 9492;
+ e.SF030000 = 9488;
+ e.SF040000 = 9496;
+ e.SF050000 = 9532;
+ e.SF060000 = 9516;
+ e.SF070000 = 9524;
+ e.SF080000 = 9500;
+ e.SF090000 = 9508;
+ e.SF100000 = 9472;
+ e.SF110000 = 9474;
+ e.SF190000 = 9569;
+ e.SF200000 = 9570;
+ e.SF210000 = 9558;
+ e.SF220000 = 9557;
+ e.SF230000 = 9571;
+ e.SF240000 = 9553;
+ e.SF250000 = 9559;
+ e.SF260000 = 9565;
+ e.SF270000 = 9564;
+ e.SF280000 = 9563;
+ e.SF360000 = 9566;
+ e.SF370000 = 9567;
+ e.SF380000 = 9562;
+ e.SF390000 = 9556;
+ e.SF400000 = 9577;
+ e.SF410000 = 9574;
+ e.SF420000 = 9568;
+ e.SF430000 = 9552;
+ e.SF440000 = 9580;
+ e.SF450000 = 9575;
+ e.SF460000 = 9576;
+ e.SF470000 = 9572;
+ e.SF480000 = 9573;
+ e.SF490000 = 9561;
+ e.SF500000 = 9560;
+ e.SF510000 = 9554;
+ e.SF520000 = 9555;
+ e.SF530000 = 9579;
+ e.SF540000 = 9578;
+ e.Sacute = 346;
+ e.Sacutedotaccent = 7780;
+ e.Sampigreek = 992;
+ e.Scaron = 352;
+ e.Scarondotaccent = 7782;
+ e.Scaronsmall = 63229;
+ e.Scedilla = 350;
+ e.Schwa = 399;
+ e.Schwacyrillic = 1240;
+ e.Schwadieresiscyrillic = 1242;
+ e.Scircle = 9416;
+ e.Scircumflex = 348;
+ e.Scommaaccent = 536;
+ e.Sdotaccent = 7776;
+ e.Sdotbelow = 7778;
+ e.Sdotbelowdotaccent = 7784;
+ e.Seharmenian = 1357;
+ e.Sevenroman = 8550;
+ e.Shaarmenian = 1351;
+ e.Shacyrillic = 1064;
+ e.Shchacyrillic = 1065;
+ e.Sheicoptic = 994;
+ e.Shhacyrillic = 1210;
+ e.Shimacoptic = 1004;
+ e.Sigma = 931;
+ e.Sixroman = 8549;
+ e.Smonospace = 65331;
+ e.Softsigncyrillic = 1068;
+ e.Ssmall = 63347;
+ e.Stigmagreek = 986;
+ e.T = 84;
+ e.Tau = 932;
+ e.Tbar = 358;
+ e.Tcaron = 356;
+ e.Tcedilla = 354;
+ e.Tcircle = 9417;
+ e.Tcircumflexbelow = 7792;
+ e.Tcommaaccent = 354;
+ e.Tdotaccent = 7786;
+ e.Tdotbelow = 7788;
+ e.Tecyrillic = 1058;
+ e.Tedescendercyrillic = 1196;
+ e.Tenroman = 8553;
+ e.Tetsecyrillic = 1204;
+ e.Theta = 920;
+ e.Thook = 428;
+ e.Thorn = 222;
+ e.Thornsmall = 63486;
+ e.Threeroman = 8546;
+ e.Tildesmall = 63230;
+ e.Tiwnarmenian = 1359;
+ e.Tlinebelow = 7790;
+ e.Tmonospace = 65332;
+ e.Toarmenian = 1337;
+ e.Tonefive = 444;
+ e.Tonesix = 388;
+ e.Tonetwo = 423;
+ e.Tretroflexhook = 430;
+ e.Tsecyrillic = 1062;
+ e.Tshecyrillic = 1035;
+ e.Tsmall = 63348;
+ e.Twelveroman = 8555;
+ e.Tworoman = 8545;
+ e.U = 85;
+ e.Uacute = 218;
+ e.Uacutesmall = 63482;
+ e.Ubreve = 364;
+ e.Ucaron = 467;
+ e.Ucircle = 9418;
+ e.Ucircumflex = 219;
+ e.Ucircumflexbelow = 7798;
+ e.Ucircumflexsmall = 63483;
+ e.Ucyrillic = 1059;
+ e.Udblacute = 368;
+ e.Udblgrave = 532;
+ e.Udieresis = 220;
+ e.Udieresisacute = 471;
+ e.Udieresisbelow = 7794;
+ e.Udieresiscaron = 473;
+ e.Udieresiscyrillic = 1264;
+ e.Udieresisgrave = 475;
+ e.Udieresismacron = 469;
+ e.Udieresissmall = 63484;
+ e.Udotbelow = 7908;
+ e.Ugrave = 217;
+ e.Ugravesmall = 63481;
+ e.Uhookabove = 7910;
+ e.Uhorn = 431;
+ e.Uhornacute = 7912;
+ e.Uhorndotbelow = 7920;
+ e.Uhorngrave = 7914;
+ e.Uhornhookabove = 7916;
+ e.Uhorntilde = 7918;
+ e.Uhungarumlaut = 368;
+ e.Uhungarumlautcyrillic = 1266;
+ e.Uinvertedbreve = 534;
+ e.Ukcyrillic = 1144;
+ e.Umacron = 362;
+ e.Umacroncyrillic = 1262;
+ e.Umacrondieresis = 7802;
+ e.Umonospace = 65333;
+ e.Uogonek = 370;
+ e.Upsilon = 933;
+ e.Upsilon1 = 978;
+ e.Upsilonacutehooksymbolgreek = 979;
+ e.Upsilonafrican = 433;
+ e.Upsilondieresis = 939;
+ e.Upsilondieresishooksymbolgreek = 980;
+ e.Upsilonhooksymbol = 978;
+ e.Upsilontonos = 910;
+ e.Uring = 366;
+ e.Ushortcyrillic = 1038;
+ e.Usmall = 63349;
+ e.Ustraightcyrillic = 1198;
+ e.Ustraightstrokecyrillic = 1200;
+ e.Utilde = 360;
+ e.Utildeacute = 7800;
+ e.Utildebelow = 7796;
+ e.V = 86;
+ e.Vcircle = 9419;
+ e.Vdotbelow = 7806;
+ e.Vecyrillic = 1042;
+ e.Vewarmenian = 1358;
+ e.Vhook = 434;
+ e.Vmonospace = 65334;
+ e.Voarmenian = 1352;
+ e.Vsmall = 63350;
+ e.Vtilde = 7804;
+ e.W = 87;
+ e.Wacute = 7810;
+ e.Wcircle = 9420;
+ e.Wcircumflex = 372;
+ e.Wdieresis = 7812;
+ e.Wdotaccent = 7814;
+ e.Wdotbelow = 7816;
+ e.Wgrave = 7808;
+ e.Wmonospace = 65335;
+ e.Wsmall = 63351;
+ e.X = 88;
+ e.Xcircle = 9421;
+ e.Xdieresis = 7820;
+ e.Xdotaccent = 7818;
+ e.Xeharmenian = 1341;
+ e.Xi = 926;
+ e.Xmonospace = 65336;
+ e.Xsmall = 63352;
+ e.Y = 89;
+ e.Yacute = 221;
+ e.Yacutesmall = 63485;
+ e.Yatcyrillic = 1122;
+ e.Ycircle = 9422;
+ e.Ycircumflex = 374;
+ e.Ydieresis = 376;
+ e.Ydieresissmall = 63487;
+ e.Ydotaccent = 7822;
+ e.Ydotbelow = 7924;
+ e.Yericyrillic = 1067;
+ e.Yerudieresiscyrillic = 1272;
+ e.Ygrave = 7922;
+ e.Yhook = 435;
+ e.Yhookabove = 7926;
+ e.Yiarmenian = 1349;
+ e.Yicyrillic = 1031;
+ e.Yiwnarmenian = 1362;
+ e.Ymonospace = 65337;
+ e.Ysmall = 63353;
+ e.Ytilde = 7928;
+ e.Yusbigcyrillic = 1130;
+ e.Yusbigiotifiedcyrillic = 1132;
+ e.Yuslittlecyrillic = 1126;
+ e.Yuslittleiotifiedcyrillic = 1128;
+ e.Z = 90;
+ e.Zaarmenian = 1334;
+ e.Zacute = 377;
+ e.Zcaron = 381;
+ e.Zcaronsmall = 63231;
+ e.Zcircle = 9423;
+ e.Zcircumflex = 7824;
+ e.Zdot = 379;
+ e.Zdotaccent = 379;
+ e.Zdotbelow = 7826;
+ e.Zecyrillic = 1047;
+ e.Zedescendercyrillic = 1176;
+ e.Zedieresiscyrillic = 1246;
+ e.Zeta = 918;
+ e.Zhearmenian = 1338;
+ e.Zhebrevecyrillic = 1217;
+ e.Zhecyrillic = 1046;
+ e.Zhedescendercyrillic = 1174;
+ e.Zhedieresiscyrillic = 1244;
+ e.Zlinebelow = 7828;
+ e.Zmonospace = 65338;
+ e.Zsmall = 63354;
+ e.Zstroke = 437;
+ e.a = 97;
+ e.aabengali = 2438;
+ e.aacute = 225;
+ e.aadeva = 2310;
+ e.aagujarati = 2694;
+ e.aagurmukhi = 2566;
+ e.aamatragurmukhi = 2622;
+ e.aarusquare = 13059;
+ e.aavowelsignbengali = 2494;
+ e.aavowelsigndeva = 2366;
+ e.aavowelsigngujarati = 2750;
+ e.abbreviationmarkarmenian = 1375;
+ e.abbreviationsigndeva = 2416;
+ e.abengali = 2437;
+ e.abopomofo = 12570;
+ e.abreve = 259;
+ e.abreveacute = 7855;
+ e.abrevecyrillic = 1233;
+ e.abrevedotbelow = 7863;
+ e.abrevegrave = 7857;
+ e.abrevehookabove = 7859;
+ e.abrevetilde = 7861;
+ e.acaron = 462;
+ e.acircle = 9424;
+ e.acircumflex = 226;
+ e.acircumflexacute = 7845;
+ e.acircumflexdotbelow = 7853;
+ e.acircumflexgrave = 7847;
+ e.acircumflexhookabove = 7849;
+ e.acircumflextilde = 7851;
+ e.acute = 180;
+ e.acutebelowcmb = 791;
+ e.acutecmb = 769;
+ e.acutecomb = 769;
+ e.acutedeva = 2388;
+ e.acutelowmod = 719;
+ e.acutetonecmb = 833;
+ e.acyrillic = 1072;
+ e.adblgrave = 513;
+ e.addakgurmukhi = 2673;
+ e.adeva = 2309;
+ e.adieresis = 228;
+ e.adieresiscyrillic = 1235;
+ e.adieresismacron = 479;
+ e.adotbelow = 7841;
+ e.adotmacron = 481;
+ e.ae = 230;
+ e.aeacute = 509;
+ e.aekorean = 12624;
+ e.aemacron = 483;
+ e.afii00208 = 8213;
+ e.afii08941 = 8356;
+ e.afii10017 = 1040;
+ e.afii10018 = 1041;
+ e.afii10019 = 1042;
+ e.afii10020 = 1043;
+ e.afii10021 = 1044;
+ e.afii10022 = 1045;
+ e.afii10023 = 1025;
+ e.afii10024 = 1046;
+ e.afii10025 = 1047;
+ e.afii10026 = 1048;
+ e.afii10027 = 1049;
+ e.afii10028 = 1050;
+ e.afii10029 = 1051;
+ e.afii10030 = 1052;
+ e.afii10031 = 1053;
+ e.afii10032 = 1054;
+ e.afii10033 = 1055;
+ e.afii10034 = 1056;
+ e.afii10035 = 1057;
+ e.afii10036 = 1058;
+ e.afii10037 = 1059;
+ e.afii10038 = 1060;
+ e.afii10039 = 1061;
+ e.afii10040 = 1062;
+ e.afii10041 = 1063;
+ e.afii10042 = 1064;
+ e.afii10043 = 1065;
+ e.afii10044 = 1066;
+ e.afii10045 = 1067;
+ e.afii10046 = 1068;
+ e.afii10047 = 1069;
+ e.afii10048 = 1070;
+ e.afii10049 = 1071;
+ e.afii10050 = 1168;
+ e.afii10051 = 1026;
+ e.afii10052 = 1027;
+ e.afii10053 = 1028;
+ e.afii10054 = 1029;
+ e.afii10055 = 1030;
+ e.afii10056 = 1031;
+ e.afii10057 = 1032;
+ e.afii10058 = 1033;
+ e.afii10059 = 1034;
+ e.afii10060 = 1035;
+ e.afii10061 = 1036;
+ e.afii10062 = 1038;
+ e.afii10063 = 63172;
+ e.afii10064 = 63173;
+ e.afii10065 = 1072;
+ e.afii10066 = 1073;
+ e.afii10067 = 1074;
+ e.afii10068 = 1075;
+ e.afii10069 = 1076;
+ e.afii10070 = 1077;
+ e.afii10071 = 1105;
+ e.afii10072 = 1078;
+ e.afii10073 = 1079;
+ e.afii10074 = 1080;
+ e.afii10075 = 1081;
+ e.afii10076 = 1082;
+ e.afii10077 = 1083;
+ e.afii10078 = 1084;
+ e.afii10079 = 1085;
+ e.afii10080 = 1086;
+ e.afii10081 = 1087;
+ e.afii10082 = 1088;
+ e.afii10083 = 1089;
+ e.afii10084 = 1090;
+ e.afii10085 = 1091;
+ e.afii10086 = 1092;
+ e.afii10087 = 1093;
+ e.afii10088 = 1094;
+ e.afii10089 = 1095;
+ e.afii10090 = 1096;
+ e.afii10091 = 1097;
+ e.afii10092 = 1098;
+ e.afii10093 = 1099;
+ e.afii10094 = 1100;
+ e.afii10095 = 1101;
+ e.afii10096 = 1102;
+ e.afii10097 = 1103;
+ e.afii10098 = 1169;
+ e.afii10099 = 1106;
+ e.afii10100 = 1107;
+ e.afii10101 = 1108;
+ e.afii10102 = 1109;
+ e.afii10103 = 1110;
+ e.afii10104 = 1111;
+ e.afii10105 = 1112;
+ e.afii10106 = 1113;
+ e.afii10107 = 1114;
+ e.afii10108 = 1115;
+ e.afii10109 = 1116;
+ e.afii10110 = 1118;
+ e.afii10145 = 1039;
+ e.afii10146 = 1122;
+ e.afii10147 = 1138;
+ e.afii10148 = 1140;
+ e.afii10192 = 63174;
+ e.afii10193 = 1119;
+ e.afii10194 = 1123;
+ e.afii10195 = 1139;
+ e.afii10196 = 1141;
+ e.afii10831 = 63175;
+ e.afii10832 = 63176;
+ e.afii10846 = 1241;
+ e.afii299 = 8206;
+ e.afii300 = 8207;
+ e.afii301 = 8205;
+ e.afii57381 = 1642;
+ e.afii57388 = 1548;
+ e.afii57392 = 1632;
+ e.afii57393 = 1633;
+ e.afii57394 = 1634;
+ e.afii57395 = 1635;
+ e.afii57396 = 1636;
+ e.afii57397 = 1637;
+ e.afii57398 = 1638;
+ e.afii57399 = 1639;
+ e.afii57400 = 1640;
+ e.afii57401 = 1641;
+ e.afii57403 = 1563;
+ e.afii57407 = 1567;
+ e.afii57409 = 1569;
+ e.afii57410 = 1570;
+ e.afii57411 = 1571;
+ e.afii57412 = 1572;
+ e.afii57413 = 1573;
+ e.afii57414 = 1574;
+ e.afii57415 = 1575;
+ e.afii57416 = 1576;
+ e.afii57417 = 1577;
+ e.afii57418 = 1578;
+ e.afii57419 = 1579;
+ e.afii57420 = 1580;
+ e.afii57421 = 1581;
+ e.afii57422 = 1582;
+ e.afii57423 = 1583;
+ e.afii57424 = 1584;
+ e.afii57425 = 1585;
+ e.afii57426 = 1586;
+ e.afii57427 = 1587;
+ e.afii57428 = 1588;
+ e.afii57429 = 1589;
+ e.afii57430 = 1590;
+ e.afii57431 = 1591;
+ e.afii57432 = 1592;
+ e.afii57433 = 1593;
+ e.afii57434 = 1594;
+ e.afii57440 = 1600;
+ e.afii57441 = 1601;
+ e.afii57442 = 1602;
+ e.afii57443 = 1603;
+ e.afii57444 = 1604;
+ e.afii57445 = 1605;
+ e.afii57446 = 1606;
+ e.afii57448 = 1608;
+ e.afii57449 = 1609;
+ e.afii57450 = 1610;
+ e.afii57451 = 1611;
+ e.afii57452 = 1612;
+ e.afii57453 = 1613;
+ e.afii57454 = 1614;
+ e.afii57455 = 1615;
+ e.afii57456 = 1616;
+ e.afii57457 = 1617;
+ e.afii57458 = 1618;
+ e.afii57470 = 1607;
+ e.afii57505 = 1700;
+ e.afii57506 = 1662;
+ e.afii57507 = 1670;
+ e.afii57508 = 1688;
+ e.afii57509 = 1711;
+ e.afii57511 = 1657;
+ e.afii57512 = 1672;
+ e.afii57513 = 1681;
+ e.afii57514 = 1722;
+ e.afii57519 = 1746;
+ e.afii57534 = 1749;
+ e.afii57636 = 8362;
+ e.afii57645 = 1470;
+ e.afii57658 = 1475;
+ e.afii57664 = 1488;
+ e.afii57665 = 1489;
+ e.afii57666 = 1490;
+ e.afii57667 = 1491;
+ e.afii57668 = 1492;
+ e.afii57669 = 1493;
+ e.afii57670 = 1494;
+ e.afii57671 = 1495;
+ e.afii57672 = 1496;
+ e.afii57673 = 1497;
+ e.afii57674 = 1498;
+ e.afii57675 = 1499;
+ e.afii57676 = 1500;
+ e.afii57677 = 1501;
+ e.afii57678 = 1502;
+ e.afii57679 = 1503;
+ e.afii57680 = 1504;
+ e.afii57681 = 1505;
+ e.afii57682 = 1506;
+ e.afii57683 = 1507;
+ e.afii57684 = 1508;
+ e.afii57685 = 1509;
+ e.afii57686 = 1510;
+ e.afii57687 = 1511;
+ e.afii57688 = 1512;
+ e.afii57689 = 1513;
+ e.afii57690 = 1514;
+ e.afii57694 = 64298;
+ e.afii57695 = 64299;
+ e.afii57700 = 64331;
+ e.afii57705 = 64287;
+ e.afii57716 = 1520;
+ e.afii57717 = 1521;
+ e.afii57718 = 1522;
+ e.afii57723 = 64309;
+ e.afii57793 = 1460;
+ e.afii57794 = 1461;
+ e.afii57795 = 1462;
+ e.afii57796 = 1467;
+ e.afii57797 = 1464;
+ e.afii57798 = 1463;
+ e.afii57799 = 1456;
+ e.afii57800 = 1458;
+ e.afii57801 = 1457;
+ e.afii57802 = 1459;
+ e.afii57803 = 1474;
+ e.afii57804 = 1473;
+ e.afii57806 = 1465;
+ e.afii57807 = 1468;
+ e.afii57839 = 1469;
+ e.afii57841 = 1471;
+ e.afii57842 = 1472;
+ e.afii57929 = 700;
+ e.afii61248 = 8453;
+ e.afii61289 = 8467;
+ e.afii61352 = 8470;
+ e.afii61573 = 8236;
+ e.afii61574 = 8237;
+ e.afii61575 = 8238;
+ e.afii61664 = 8204;
+ e.afii63167 = 1645;
+ e.afii64937 = 701;
+ e.agrave = 224;
+ e.agujarati = 2693;
+ e.agurmukhi = 2565;
+ e.ahiragana = 12354;
+ e.ahookabove = 7843;
+ e.aibengali = 2448;
+ e.aibopomofo = 12574;
+ e.aideva = 2320;
+ e.aiecyrillic = 1237;
+ e.aigujarati = 2704;
+ e.aigurmukhi = 2576;
+ e.aimatragurmukhi = 2632;
+ e.ainarabic = 1593;
+ e.ainfinalarabic = 65226;
+ e.aininitialarabic = 65227;
+ e.ainmedialarabic = 65228;
+ e.ainvertedbreve = 515;
+ e.aivowelsignbengali = 2504;
+ e.aivowelsigndeva = 2376;
+ e.aivowelsigngujarati = 2760;
+ e.akatakana = 12450;
+ e.akatakanahalfwidth = 65393;
+ e.akorean = 12623;
+ e.alef = 1488;
+ e.alefarabic = 1575;
+ e.alefdageshhebrew = 64304;
+ e.aleffinalarabic = 65166;
+ e.alefhamzaabovearabic = 1571;
+ e.alefhamzaabovefinalarabic = 65156;
+ e.alefhamzabelowarabic = 1573;
+ e.alefhamzabelowfinalarabic = 65160;
+ e.alefhebrew = 1488;
+ e.aleflamedhebrew = 64335;
+ e.alefmaddaabovearabic = 1570;
+ e.alefmaddaabovefinalarabic = 65154;
+ e.alefmaksuraarabic = 1609;
+ e.alefmaksurafinalarabic = 65264;
+ e.alefmaksurainitialarabic = 65267;
+ e.alefmaksuramedialarabic = 65268;
+ e.alefpatahhebrew = 64302;
+ e.alefqamatshebrew = 64303;
+ e.aleph = 8501;
+ e.allequal = 8780;
+ e.alpha = 945;
+ e.alphatonos = 940;
+ e.amacron = 257;
+ e.amonospace = 65345;
+ e.ampersand = 38;
+ e.ampersandmonospace = 65286;
+ e.ampersandsmall = 63270;
+ e.amsquare = 13250;
+ e.anbopomofo = 12578;
+ e.angbopomofo = 12580;
+ e.angbracketleft = 12296;
+ e.angbracketright = 12297;
+ e.angkhankhuthai = 3674;
+ e.angle = 8736;
+ e.anglebracketleft = 12296;
+ e.anglebracketleftvertical = 65087;
+ e.anglebracketright = 12297;
+ e.anglebracketrightvertical = 65088;
+ e.angleleft = 9001;
+ e.angleright = 9002;
+ e.angstrom = 8491;
+ e.anoteleia = 903;
+ e.anudattadeva = 2386;
+ e.anusvarabengali = 2434;
+ e.anusvaradeva = 2306;
+ e.anusvaragujarati = 2690;
+ e.aogonek = 261;
+ e.apaatosquare = 13056;
+ e.aparen = 9372;
+ e.apostrophearmenian = 1370;
+ e.apostrophemod = 700;
+ e.apple = 63743;
+ e.approaches = 8784;
+ e.approxequal = 8776;
+ e.approxequalorimage = 8786;
+ e.approximatelyequal = 8773;
+ e.araeaekorean = 12686;
+ e.araeakorean = 12685;
+ e.arc = 8978;
+ e.arighthalfring = 7834;
+ e.aring = 229;
+ e.aringacute = 507;
+ e.aringbelow = 7681;
+ e.arrowboth = 8596;
+ e.arrowdashdown = 8675;
+ e.arrowdashleft = 8672;
+ e.arrowdashright = 8674;
+ e.arrowdashup = 8673;
+ e.arrowdblboth = 8660;
+ e.arrowdbldown = 8659;
+ e.arrowdblleft = 8656;
+ e.arrowdblright = 8658;
+ e.arrowdblup = 8657;
+ e.arrowdown = 8595;
+ e.arrowdownleft = 8601;
+ e.arrowdownright = 8600;
+ e.arrowdownwhite = 8681;
+ e.arrowheaddownmod = 709;
+ e.arrowheadleftmod = 706;
+ e.arrowheadrightmod = 707;
+ e.arrowheadupmod = 708;
+ e.arrowhorizex = 63719;
+ e.arrowleft = 8592;
+ e.arrowleftdbl = 8656;
+ e.arrowleftdblstroke = 8653;
+ e.arrowleftoverright = 8646;
+ e.arrowleftwhite = 8678;
+ e.arrowright = 8594;
+ e.arrowrightdblstroke = 8655;
+ e.arrowrightheavy = 10142;
+ e.arrowrightoverleft = 8644;
+ e.arrowrightwhite = 8680;
+ e.arrowtableft = 8676;
+ e.arrowtabright = 8677;
+ e.arrowup = 8593;
+ e.arrowupdn = 8597;
+ e.arrowupdnbse = 8616;
+ e.arrowupdownbase = 8616;
+ e.arrowupleft = 8598;
+ e.arrowupleftofdown = 8645;
+ e.arrowupright = 8599;
+ e.arrowupwhite = 8679;
+ e.arrowvertex = 63718;
+ e.asciicircum = 94;
+ e.asciicircummonospace = 65342;
+ e.asciitilde = 126;
+ e.asciitildemonospace = 65374;
+ e.ascript = 593;
+ e.ascriptturned = 594;
+ e.asmallhiragana = 12353;
+ e.asmallkatakana = 12449;
+ e.asmallkatakanahalfwidth = 65383;
+ e.asterisk = 42;
+ e.asteriskaltonearabic = 1645;
+ e.asteriskarabic = 1645;
+ e.asteriskmath = 8727;
+ e.asteriskmonospace = 65290;
+ e.asterisksmall = 65121;
+ e.asterism = 8258;
+ e.asuperior = 63209;
+ e.asymptoticallyequal = 8771;
+ e.at = 64;
+ e.atilde = 227;
+ e.atmonospace = 65312;
+ e.atsmall = 65131;
+ e.aturned = 592;
+ e.aubengali = 2452;
+ e.aubopomofo = 12576;
+ e.audeva = 2324;
+ e.augujarati = 2708;
+ e.augurmukhi = 2580;
+ e.aulengthmarkbengali = 2519;
+ e.aumatragurmukhi = 2636;
+ e.auvowelsignbengali = 2508;
+ e.auvowelsigndeva = 2380;
+ e.auvowelsigngujarati = 2764;
+ e.avagrahadeva = 2365;
+ e.aybarmenian = 1377;
+ e.ayin = 1506;
+ e.ayinaltonehebrew = 64288;
+ e.ayinhebrew = 1506;
+ e.b = 98;
+ e.babengali = 2476;
+ e.backslash = 92;
+ e.backslashmonospace = 65340;
+ e.badeva = 2348;
+ e.bagujarati = 2732;
+ e.bagurmukhi = 2604;
+ e.bahiragana = 12400;
+ e.bahtthai = 3647;
+ e.bakatakana = 12496;
+ e.bar = 124;
+ e.barmonospace = 65372;
+ e.bbopomofo = 12549;
+ e.bcircle = 9425;
+ e.bdotaccent = 7683;
+ e.bdotbelow = 7685;
+ e.beamedsixteenthnotes = 9836;
+ e.because = 8757;
+ e.becyrillic = 1073;
+ e.beharabic = 1576;
+ e.behfinalarabic = 65168;
+ e.behinitialarabic = 65169;
+ e.behiragana = 12409;
+ e.behmedialarabic = 65170;
+ e.behmeeminitialarabic = 64671;
+ e.behmeemisolatedarabic = 64520;
+ e.behnoonfinalarabic = 64621;
+ e.bekatakana = 12505;
+ e.benarmenian = 1378;
+ e.bet = 1489;
+ e.beta = 946;
+ e.betasymbolgreek = 976;
+ e.betdagesh = 64305;
+ e.betdageshhebrew = 64305;
+ e.bethebrew = 1489;
+ e.betrafehebrew = 64332;
+ e.bhabengali = 2477;
+ e.bhadeva = 2349;
+ e.bhagujarati = 2733;
+ e.bhagurmukhi = 2605;
+ e.bhook = 595;
+ e.bihiragana = 12403;
+ e.bikatakana = 12499;
+ e.bilabialclick = 664;
+ e.bindigurmukhi = 2562;
+ e.birusquare = 13105;
+ e.blackcircle = 9679;
+ e.blackdiamond = 9670;
+ e.blackdownpointingtriangle = 9660;
+ e.blackleftpointingpointer = 9668;
+ e.blackleftpointingtriangle = 9664;
+ e.blacklenticularbracketleft = 12304;
+ e.blacklenticularbracketleftvertical = 65083;
+ e.blacklenticularbracketright = 12305;
+ e.blacklenticularbracketrightvertical = 65084;
+ e.blacklowerlefttriangle = 9699;
+ e.blacklowerrighttriangle = 9698;
+ e.blackrectangle = 9644;
+ e.blackrightpointingpointer = 9658;
+ e.blackrightpointingtriangle = 9654;
+ e.blacksmallsquare = 9642;
+ e.blacksmilingface = 9787;
+ e.blacksquare = 9632;
+ e.blackstar = 9733;
+ e.blackupperlefttriangle = 9700;
+ e.blackupperrighttriangle = 9701;
+ e.blackuppointingsmalltriangle = 9652;
+ e.blackuppointingtriangle = 9650;
+ e.blank = 9251;
+ e.blinebelow = 7687;
+ e.block = 9608;
+ e.bmonospace = 65346;
+ e.bobaimaithai = 3610;
+ e.bohiragana = 12412;
+ e.bokatakana = 12508;
+ e.bparen = 9373;
+ e.bqsquare = 13251;
+ e.braceex = 63732;
+ e.braceleft = 123;
+ e.braceleftbt = 63731;
+ e.braceleftmid = 63730;
+ e.braceleftmonospace = 65371;
+ e.braceleftsmall = 65115;
+ e.bracelefttp = 63729;
+ e.braceleftvertical = 65079;
+ e.braceright = 125;
+ e.bracerightbt = 63742;
+ e.bracerightmid = 63741;
+ e.bracerightmonospace = 65373;
+ e.bracerightsmall = 65116;
+ e.bracerighttp = 63740;
+ e.bracerightvertical = 65080;
+ e.bracketleft = 91;
+ e.bracketleftbt = 63728;
+ e.bracketleftex = 63727;
+ e.bracketleftmonospace = 65339;
+ e.bracketlefttp = 63726;
+ e.bracketright = 93;
+ e.bracketrightbt = 63739;
+ e.bracketrightex = 63738;
+ e.bracketrightmonospace = 65341;
+ e.bracketrighttp = 63737;
+ e.breve = 728;
+ e.brevebelowcmb = 814;
+ e.brevecmb = 774;
+ e.breveinvertedbelowcmb = 815;
+ e.breveinvertedcmb = 785;
+ e.breveinverteddoublecmb = 865;
+ e.bridgebelowcmb = 810;
+ e.bridgeinvertedbelowcmb = 826;
+ e.brokenbar = 166;
+ e.bstroke = 384;
+ e.bsuperior = 63210;
+ e.btopbar = 387;
+ e.buhiragana = 12406;
+ e.bukatakana = 12502;
+ e.bullet = 8226;
+ e.bulletinverse = 9688;
+ e.bulletoperator = 8729;
+ e.bullseye = 9678;
+ e.c = 99;
+ e.caarmenian = 1390;
+ e.cabengali = 2458;
+ e.cacute = 263;
+ e.cadeva = 2330;
+ e.cagujarati = 2714;
+ e.cagurmukhi = 2586;
+ e.calsquare = 13192;
+ e.candrabindubengali = 2433;
+ e.candrabinducmb = 784;
+ e.candrabindudeva = 2305;
+ e.candrabindugujarati = 2689;
+ e.capslock = 8682;
+ e.careof = 8453;
+ e.caron = 711;
+ e.caronbelowcmb = 812;
+ e.caroncmb = 780;
+ e.carriagereturn = 8629;
+ e.cbopomofo = 12568;
+ e.ccaron = 269;
+ e.ccedilla = 231;
+ e.ccedillaacute = 7689;
+ e.ccircle = 9426;
+ e.ccircumflex = 265;
+ e.ccurl = 597;
+ e.cdot = 267;
+ e.cdotaccent = 267;
+ e.cdsquare = 13253;
+ e.cedilla = 184;
+ e.cedillacmb = 807;
+ e.cent = 162;
+ e.centigrade = 8451;
+ e.centinferior = 63199;
+ e.centmonospace = 65504;
+ e.centoldstyle = 63394;
+ e.centsuperior = 63200;
+ e.chaarmenian = 1401;
+ e.chabengali = 2459;
+ e.chadeva = 2331;
+ e.chagujarati = 2715;
+ e.chagurmukhi = 2587;
+ e.chbopomofo = 12564;
+ e.cheabkhasiancyrillic = 1213;
+ e.checkmark = 10003;
+ e.checyrillic = 1095;
+ e.chedescenderabkhasiancyrillic = 1215;
+ e.chedescendercyrillic = 1207;
+ e.chedieresiscyrillic = 1269;
+ e.cheharmenian = 1395;
+ e.chekhakassiancyrillic = 1228;
+ e.cheverticalstrokecyrillic = 1209;
+ e.chi = 967;
+ e.chieuchacirclekorean = 12919;
+ e.chieuchaparenkorean = 12823;
+ e.chieuchcirclekorean = 12905;
+ e.chieuchkorean = 12618;
+ e.chieuchparenkorean = 12809;
+ e.chochangthai = 3594;
+ e.chochanthai = 3592;
+ e.chochingthai = 3593;
+ e.chochoethai = 3596;
+ e.chook = 392;
+ e.cieucacirclekorean = 12918;
+ e.cieucaparenkorean = 12822;
+ e.cieuccirclekorean = 12904;
+ e.cieuckorean = 12616;
+ e.cieucparenkorean = 12808;
+ e.cieucuparenkorean = 12828;
+ e.circle = 9675;
+ e.circlecopyrt = 169;
+ e.circlemultiply = 8855;
+ e.circleot = 8857;
+ e.circleplus = 8853;
+ e.circlepostalmark = 12342;
+ e.circlewithlefthalfblack = 9680;
+ e.circlewithrighthalfblack = 9681;
+ e.circumflex = 710;
+ e.circumflexbelowcmb = 813;
+ e.circumflexcmb = 770;
+ e.clear = 8999;
+ e.clickalveolar = 450;
+ e.clickdental = 448;
+ e.clicklateral = 449;
+ e.clickretroflex = 451;
+ e.club = 9827;
+ e.clubsuitblack = 9827;
+ e.clubsuitwhite = 9831;
+ e.cmcubedsquare = 13220;
+ e.cmonospace = 65347;
+ e.cmsquaredsquare = 13216;
+ e.coarmenian = 1409;
+ e.colon = 58;
+ e.colonmonetary = 8353;
+ e.colonmonospace = 65306;
+ e.colonsign = 8353;
+ e.colonsmall = 65109;
+ e.colontriangularhalfmod = 721;
+ e.colontriangularmod = 720;
+ e.comma = 44;
+ e.commaabovecmb = 787;
+ e.commaaboverightcmb = 789;
+ e.commaaccent = 63171;
+ e.commaarabic = 1548;
+ e.commaarmenian = 1373;
+ e.commainferior = 63201;
+ e.commamonospace = 65292;
+ e.commareversedabovecmb = 788;
+ e.commareversedmod = 701;
+ e.commasmall = 65104;
+ e.commasuperior = 63202;
+ e.commaturnedabovecmb = 786;
+ e.commaturnedmod = 699;
+ e.compass = 9788;
+ e.congruent = 8773;
+ e.contourintegral = 8750;
+ e.control = 8963;
+ e.controlACK = 6;
+ e.controlBEL = 7;
+ e.controlBS = 8;
+ e.controlCAN = 24;
+ e.controlCR = 13;
+ e.controlDC1 = 17;
+ e.controlDC2 = 18;
+ e.controlDC3 = 19;
+ e.controlDC4 = 20;
+ e.controlDEL = 127;
+ e.controlDLE = 16;
+ e.controlEM = 25;
+ e.controlENQ = 5;
+ e.controlEOT = 4;
+ e.controlESC = 27;
+ e.controlETB = 23;
+ e.controlETX = 3;
+ e.controlFF = 12;
+ e.controlFS = 28;
+ e.controlGS = 29;
+ e.controlHT = 9;
+ e.controlLF = 10;
+ e.controlNAK = 21;
+ e.controlNULL = 0;
+ e.controlRS = 30;
+ e.controlSI = 15;
+ e.controlSO = 14;
+ e.controlSOT = 2;
+ e.controlSTX = 1;
+ e.controlSUB = 26;
+ e.controlSYN = 22;
+ e.controlUS = 31;
+ e.controlVT = 11;
+ e.copyright = 169;
+ e.copyrightsans = 63721;
+ e.copyrightserif = 63193;
+ e.cornerbracketleft = 12300;
+ e.cornerbracketlefthalfwidth = 65378;
+ e.cornerbracketleftvertical = 65089;
+ e.cornerbracketright = 12301;
+ e.cornerbracketrighthalfwidth = 65379;
+ e.cornerbracketrightvertical = 65090;
+ e.corporationsquare = 13183;
+ e.cosquare = 13255;
+ e.coverkgsquare = 13254;
+ e.cparen = 9374;
+ e.cruzeiro = 8354;
+ e.cstretched = 663;
+ e.curlyand = 8911;
+ e.curlyor = 8910;
+ e.currency = 164;
+ e.cyrBreve = 63185;
+ e.cyrFlex = 63186;
+ e.cyrbreve = 63188;
+ e.cyrflex = 63189;
+ e.d = 100;
+ e.daarmenian = 1380;
+ e.dabengali = 2470;
+ e.dadarabic = 1590;
+ e.dadeva = 2342;
+ e.dadfinalarabic = 65214;
+ e.dadinitialarabic = 65215;
+ e.dadmedialarabic = 65216;
+ e.dagesh = 1468;
+ e.dageshhebrew = 1468;
+ e.dagger = 8224;
+ e.daggerdbl = 8225;
+ e.dagujarati = 2726;
+ e.dagurmukhi = 2598;
+ e.dahiragana = 12384;
+ e.dakatakana = 12480;
+ e.dalarabic = 1583;
+ e.dalet = 1491;
+ e.daletdagesh = 64307;
+ e.daletdageshhebrew = 64307;
+ e.dalethebrew = 1491;
+ e.dalfinalarabic = 65194;
+ e.dammaarabic = 1615;
+ e.dammalowarabic = 1615;
+ e.dammatanaltonearabic = 1612;
+ e.dammatanarabic = 1612;
+ e.danda = 2404;
+ e.dargahebrew = 1447;
+ e.dargalefthebrew = 1447;
+ e.dasiapneumatacyrilliccmb = 1157;
+ e.dblGrave = 63187;
+ e.dblanglebracketleft = 12298;
+ e.dblanglebracketleftvertical = 65085;
+ e.dblanglebracketright = 12299;
+ e.dblanglebracketrightvertical = 65086;
+ e.dblarchinvertedbelowcmb = 811;
+ e.dblarrowleft = 8660;
+ e.dblarrowright = 8658;
+ e.dbldanda = 2405;
+ e.dblgrave = 63190;
+ e.dblgravecmb = 783;
+ e.dblintegral = 8748;
+ e.dbllowline = 8215;
+ e.dbllowlinecmb = 819;
+ e.dbloverlinecmb = 831;
+ e.dblprimemod = 698;
+ e.dblverticalbar = 8214;
+ e.dblverticallineabovecmb = 782;
+ e.dbopomofo = 12553;
+ e.dbsquare = 13256;
+ e.dcaron = 271;
+ e.dcedilla = 7697;
+ e.dcircle = 9427;
+ e.dcircumflexbelow = 7699;
+ e.dcroat = 273;
+ e.ddabengali = 2465;
+ e.ddadeva = 2337;
+ e.ddagujarati = 2721;
+ e.ddagurmukhi = 2593;
+ e.ddalarabic = 1672;
+ e.ddalfinalarabic = 64393;
+ e.dddhadeva = 2396;
+ e.ddhabengali = 2466;
+ e.ddhadeva = 2338;
+ e.ddhagujarati = 2722;
+ e.ddhagurmukhi = 2594;
+ e.ddotaccent = 7691;
+ e.ddotbelow = 7693;
+ e.decimalseparatorarabic = 1643;
+ e.decimalseparatorpersian = 1643;
+ e.decyrillic = 1076;
+ e.degree = 176;
+ e.dehihebrew = 1453;
+ e.dehiragana = 12391;
+ e.deicoptic = 1007;
+ e.dekatakana = 12487;
+ e.deleteleft = 9003;
+ e.deleteright = 8998;
+ e.delta = 948;
+ e.deltaturned = 397;
+ e.denominatorminusonenumeratorbengali = 2552;
+ e.dezh = 676;
+ e.dhabengali = 2471;
+ e.dhadeva = 2343;
+ e.dhagujarati = 2727;
+ e.dhagurmukhi = 2599;
+ e.dhook = 599;
+ e.dialytikatonos = 901;
+ e.dialytikatonoscmb = 836;
+ e.diamond = 9830;
+ e.diamondsuitwhite = 9826;
+ e.dieresis = 168;
+ e.dieresisacute = 63191;
+ e.dieresisbelowcmb = 804;
+ e.dieresiscmb = 776;
+ e.dieresisgrave = 63192;
+ e.dieresistonos = 901;
+ e.dihiragana = 12386;
+ e.dikatakana = 12482;
+ e.dittomark = 12291;
+ e.divide = 247;
+ e.divides = 8739;
+ e.divisionslash = 8725;
+ e.djecyrillic = 1106;
+ e.dkshade = 9619;
+ e.dlinebelow = 7695;
+ e.dlsquare = 13207;
+ e.dmacron = 273;
+ e.dmonospace = 65348;
+ e.dnblock = 9604;
+ e.dochadathai = 3598;
+ e.dodekthai = 3604;
+ e.dohiragana = 12393;
+ e.dokatakana = 12489;
+ e.dollar = 36;
+ e.dollarinferior = 63203;
+ e.dollarmonospace = 65284;
+ e.dollaroldstyle = 63268;
+ e.dollarsmall = 65129;
+ e.dollarsuperior = 63204;
+ e.dong = 8363;
+ e.dorusquare = 13094;
+ e.dotaccent = 729;
+ e.dotaccentcmb = 775;
+ e.dotbelowcmb = 803;
+ e.dotbelowcomb = 803;
+ e.dotkatakana = 12539;
+ e.dotlessi = 305;
+ e.dotlessj = 63166;
+ e.dotlessjstrokehook = 644;
+ e.dotmath = 8901;
+ e.dottedcircle = 9676;
+ e.doubleyodpatah = 64287;
+ e.doubleyodpatahhebrew = 64287;
+ e.downtackbelowcmb = 798;
+ e.downtackmod = 725;
+ e.dparen = 9375;
+ e.dsuperior = 63211;
+ e.dtail = 598;
+ e.dtopbar = 396;
+ e.duhiragana = 12389;
+ e.dukatakana = 12485;
+ e.dz = 499;
+ e.dzaltone = 675;
+ e.dzcaron = 454;
+ e.dzcurl = 677;
+ e.dzeabkhasiancyrillic = 1249;
+ e.dzecyrillic = 1109;
+ e.dzhecyrillic = 1119;
+ e.e = 101;
+ e.eacute = 233;
+ e.earth = 9793;
+ e.ebengali = 2447;
+ e.ebopomofo = 12572;
+ e.ebreve = 277;
+ e.ecandradeva = 2317;
+ e.ecandragujarati = 2701;
+ e.ecandravowelsigndeva = 2373;
+ e.ecandravowelsigngujarati = 2757;
+ e.ecaron = 283;
+ e.ecedillabreve = 7709;
+ e.echarmenian = 1381;
+ e.echyiwnarmenian = 1415;
+ e.ecircle = 9428;
+ e.ecircumflex = 234;
+ e.ecircumflexacute = 7871;
+ e.ecircumflexbelow = 7705;
+ e.ecircumflexdotbelow = 7879;
+ e.ecircumflexgrave = 7873;
+ e.ecircumflexhookabove = 7875;
+ e.ecircumflextilde = 7877;
+ e.ecyrillic = 1108;
+ e.edblgrave = 517;
+ e.edeva = 2319;
+ e.edieresis = 235;
+ e.edot = 279;
+ e.edotaccent = 279;
+ e.edotbelow = 7865;
+ e.eegurmukhi = 2575;
+ e.eematragurmukhi = 2631;
+ e.efcyrillic = 1092;
+ e.egrave = 232;
+ e.egujarati = 2703;
+ e.eharmenian = 1383;
+ e.ehbopomofo = 12573;
+ e.ehiragana = 12360;
+ e.ehookabove = 7867;
+ e.eibopomofo = 12575;
+ e.eight = 56;
+ e.eightarabic = 1640;
+ e.eightbengali = 2542;
+ e.eightcircle = 9319;
+ e.eightcircleinversesansserif = 10129;
+ e.eightdeva = 2414;
+ e.eighteencircle = 9329;
+ e.eighteenparen = 9349;
+ e.eighteenperiod = 9369;
+ e.eightgujarati = 2798;
+ e.eightgurmukhi = 2670;
+ e.eighthackarabic = 1640;
+ e.eighthangzhou = 12328;
+ e.eighthnotebeamed = 9835;
+ e.eightideographicparen = 12839;
+ e.eightinferior = 8328;
+ e.eightmonospace = 65304;
+ e.eightoldstyle = 63288;
+ e.eightparen = 9339;
+ e.eightperiod = 9359;
+ e.eightpersian = 1784;
+ e.eightroman = 8567;
+ e.eightsuperior = 8312;
+ e.eightthai = 3672;
+ e.einvertedbreve = 519;
+ e.eiotifiedcyrillic = 1125;
+ e.ekatakana = 12456;
+ e.ekatakanahalfwidth = 65396;
+ e.ekonkargurmukhi = 2676;
+ e.ekorean = 12628;
+ e.elcyrillic = 1083;
+ e.element = 8712;
+ e.elevencircle = 9322;
+ e.elevenparen = 9342;
+ e.elevenperiod = 9362;
+ e.elevenroman = 8570;
+ e.ellipsis = 8230;
+ e.ellipsisvertical = 8942;
+ e.emacron = 275;
+ e.emacronacute = 7703;
+ e.emacrongrave = 7701;
+ e.emcyrillic = 1084;
+ e.emdash = 8212;
+ e.emdashvertical = 65073;
+ e.emonospace = 65349;
+ e.emphasismarkarmenian = 1371;
+ e.emptyset = 8709;
+ e.enbopomofo = 12579;
+ e.encyrillic = 1085;
+ e.endash = 8211;
+ e.endashvertical = 65074;
+ e.endescendercyrillic = 1187;
+ e.eng = 331;
+ e.engbopomofo = 12581;
+ e.enghecyrillic = 1189;
+ e.enhookcyrillic = 1224;
+ e.enspace = 8194;
+ e.eogonek = 281;
+ e.eokorean = 12627;
+ e.eopen = 603;
+ e.eopenclosed = 666;
+ e.eopenreversed = 604;
+ e.eopenreversedclosed = 606;
+ e.eopenreversedhook = 605;
+ e.eparen = 9376;
+ e.epsilon = 949;
+ e.epsilontonos = 941;
+ e.equal = 61;
+ e.equalmonospace = 65309;
+ e.equalsmall = 65126;
+ e.equalsuperior = 8316;
+ e.equivalence = 8801;
+ e.erbopomofo = 12582;
+ e.ercyrillic = 1088;
+ e.ereversed = 600;
+ e.ereversedcyrillic = 1101;
+ e.escyrillic = 1089;
+ e.esdescendercyrillic = 1195;
+ e.esh = 643;
+ e.eshcurl = 646;
+ e.eshortdeva = 2318;
+ e.eshortvowelsigndeva = 2374;
+ e.eshreversedloop = 426;
+ e.eshsquatreversed = 645;
+ e.esmallhiragana = 12359;
+ e.esmallkatakana = 12455;
+ e.esmallkatakanahalfwidth = 65386;
+ e.estimated = 8494;
+ e.esuperior = 63212;
+ e.eta = 951;
+ e.etarmenian = 1384;
+ e.etatonos = 942;
+ e.eth = 240;
+ e.etilde = 7869;
+ e.etildebelow = 7707;
+ e.etnahtafoukhhebrew = 1425;
+ e.etnahtafoukhlefthebrew = 1425;
+ e.etnahtahebrew = 1425;
+ e.etnahtalefthebrew = 1425;
+ e.eturned = 477;
+ e.eukorean = 12641;
+ e.euro = 8364;
+ e.evowelsignbengali = 2503;
+ e.evowelsigndeva = 2375;
+ e.evowelsigngujarati = 2759;
+ e.exclam = 33;
+ e.exclamarmenian = 1372;
+ e.exclamdbl = 8252;
+ e.exclamdown = 161;
+ e.exclamdownsmall = 63393;
+ e.exclammonospace = 65281;
+ e.exclamsmall = 63265;
+ e.existential = 8707;
+ e.ezh = 658;
+ e.ezhcaron = 495;
+ e.ezhcurl = 659;
+ e.ezhreversed = 441;
+ e.ezhtail = 442;
+ e.f = 102;
+ e.fadeva = 2398;
+ e.fagurmukhi = 2654;
+ e.fahrenheit = 8457;
+ e.fathaarabic = 1614;
+ e.fathalowarabic = 1614;
+ e.fathatanarabic = 1611;
+ e.fbopomofo = 12552;
+ e.fcircle = 9429;
+ e.fdotaccent = 7711;
+ e.feharabic = 1601;
+ e.feharmenian = 1414;
+ e.fehfinalarabic = 65234;
+ e.fehinitialarabic = 65235;
+ e.fehmedialarabic = 65236;
+ e.feicoptic = 997;
+ e.female = 9792;
+ e.ff = 64256;
+ e.f_f = 64256;
+ e.ffi = 64259;
+ e.f_f_i = 64259;
+ e.ffl = 64260;
+ e.f_f_l = 64260;
+ e.fi = 64257;
+ e.f_i = 64257;
+ e.fifteencircle = 9326;
+ e.fifteenparen = 9346;
+ e.fifteenperiod = 9366;
+ e.figuredash = 8210;
+ e.filledbox = 9632;
+ e.filledrect = 9644;
+ e.finalkaf = 1498;
+ e.finalkafdagesh = 64314;
+ e.finalkafdageshhebrew = 64314;
+ e.finalkafhebrew = 1498;
+ e.finalmem = 1501;
+ e.finalmemhebrew = 1501;
+ e.finalnun = 1503;
+ e.finalnunhebrew = 1503;
+ e.finalpe = 1507;
+ e.finalpehebrew = 1507;
+ e.finaltsadi = 1509;
+ e.finaltsadihebrew = 1509;
+ e.firsttonechinese = 713;
+ e.fisheye = 9673;
+ e.fitacyrillic = 1139;
+ e.five = 53;
+ e.fivearabic = 1637;
+ e.fivebengali = 2539;
+ e.fivecircle = 9316;
+ e.fivecircleinversesansserif = 10126;
+ e.fivedeva = 2411;
+ e.fiveeighths = 8541;
+ e.fivegujarati = 2795;
+ e.fivegurmukhi = 2667;
+ e.fivehackarabic = 1637;
+ e.fivehangzhou = 12325;
+ e.fiveideographicparen = 12836;
+ e.fiveinferior = 8325;
+ e.fivemonospace = 65301;
+ e.fiveoldstyle = 63285;
+ e.fiveparen = 9336;
+ e.fiveperiod = 9356;
+ e.fivepersian = 1781;
+ e.fiveroman = 8564;
+ e.fivesuperior = 8309;
+ e.fivethai = 3669;
+ e.fl = 64258;
+ e.f_l = 64258;
+ e.florin = 402;
+ e.fmonospace = 65350;
+ e.fmsquare = 13209;
+ e.fofanthai = 3615;
+ e.fofathai = 3613;
+ e.fongmanthai = 3663;
+ e.forall = 8704;
+ e.four = 52;
+ e.fourarabic = 1636;
+ e.fourbengali = 2538;
+ e.fourcircle = 9315;
+ e.fourcircleinversesansserif = 10125;
+ e.fourdeva = 2410;
+ e.fourgujarati = 2794;
+ e.fourgurmukhi = 2666;
+ e.fourhackarabic = 1636;
+ e.fourhangzhou = 12324;
+ e.fourideographicparen = 12835;
+ e.fourinferior = 8324;
+ e.fourmonospace = 65300;
+ e.fournumeratorbengali = 2551;
+ e.fouroldstyle = 63284;
+ e.fourparen = 9335;
+ e.fourperiod = 9355;
+ e.fourpersian = 1780;
+ e.fourroman = 8563;
+ e.foursuperior = 8308;
+ e.fourteencircle = 9325;
+ e.fourteenparen = 9345;
+ e.fourteenperiod = 9365;
+ e.fourthai = 3668;
+ e.fourthtonechinese = 715;
+ e.fparen = 9377;
+ e.fraction = 8260;
+ e.franc = 8355;
+ e.g = 103;
+ e.gabengali = 2455;
+ e.gacute = 501;
+ e.gadeva = 2327;
+ e.gafarabic = 1711;
+ e.gaffinalarabic = 64403;
+ e.gafinitialarabic = 64404;
+ e.gafmedialarabic = 64405;
+ e.gagujarati = 2711;
+ e.gagurmukhi = 2583;
+ e.gahiragana = 12364;
+ e.gakatakana = 12460;
+ e.gamma = 947;
+ e.gammalatinsmall = 611;
+ e.gammasuperior = 736;
+ e.gangiacoptic = 1003;
+ e.gbopomofo = 12557;
+ e.gbreve = 287;
+ e.gcaron = 487;
+ e.gcedilla = 291;
+ e.gcircle = 9430;
+ e.gcircumflex = 285;
+ e.gcommaaccent = 291;
+ e.gdot = 289;
+ e.gdotaccent = 289;
+ e.gecyrillic = 1075;
+ e.gehiragana = 12370;
+ e.gekatakana = 12466;
+ e.geometricallyequal = 8785;
+ e.gereshaccenthebrew = 1436;
+ e.gereshhebrew = 1523;
+ e.gereshmuqdamhebrew = 1437;
+ e.germandbls = 223;
+ e.gershayimaccenthebrew = 1438;
+ e.gershayimhebrew = 1524;
+ e.getamark = 12307;
+ e.ghabengali = 2456;
+ e.ghadarmenian = 1394;
+ e.ghadeva = 2328;
+ e.ghagujarati = 2712;
+ e.ghagurmukhi = 2584;
+ e.ghainarabic = 1594;
+ e.ghainfinalarabic = 65230;
+ e.ghaininitialarabic = 65231;
+ e.ghainmedialarabic = 65232;
+ e.ghemiddlehookcyrillic = 1173;
+ e.ghestrokecyrillic = 1171;
+ e.gheupturncyrillic = 1169;
+ e.ghhadeva = 2394;
+ e.ghhagurmukhi = 2650;
+ e.ghook = 608;
+ e.ghzsquare = 13203;
+ e.gihiragana = 12366;
+ e.gikatakana = 12462;
+ e.gimarmenian = 1379;
+ e.gimel = 1490;
+ e.gimeldagesh = 64306;
+ e.gimeldageshhebrew = 64306;
+ e.gimelhebrew = 1490;
+ e.gjecyrillic = 1107;
+ e.glottalinvertedstroke = 446;
+ e.glottalstop = 660;
+ e.glottalstopinverted = 662;
+ e.glottalstopmod = 704;
+ e.glottalstopreversed = 661;
+ e.glottalstopreversedmod = 705;
+ e.glottalstopreversedsuperior = 740;
+ e.glottalstopstroke = 673;
+ e.glottalstopstrokereversed = 674;
+ e.gmacron = 7713;
+ e.gmonospace = 65351;
+ e.gohiragana = 12372;
+ e.gokatakana = 12468;
+ e.gparen = 9378;
+ e.gpasquare = 13228;
+ e.gradient = 8711;
+ e.grave = 96;
+ e.gravebelowcmb = 790;
+ e.gravecmb = 768;
+ e.gravecomb = 768;
+ e.gravedeva = 2387;
+ e.gravelowmod = 718;
+ e.gravemonospace = 65344;
+ e.gravetonecmb = 832;
+ e.greater = 62;
+ e.greaterequal = 8805;
+ e.greaterequalorless = 8923;
+ e.greatermonospace = 65310;
+ e.greaterorequivalent = 8819;
+ e.greaterorless = 8823;
+ e.greateroverequal = 8807;
+ e.greatersmall = 65125;
+ e.gscript = 609;
+ e.gstroke = 485;
+ e.guhiragana = 12368;
+ e.guillemotleft = 171;
+ e.guillemotright = 187;
+ e.guilsinglleft = 8249;
+ e.guilsinglright = 8250;
+ e.gukatakana = 12464;
+ e.guramusquare = 13080;
+ e.gysquare = 13257;
+ e.h = 104;
+ e.haabkhasiancyrillic = 1193;
+ e.haaltonearabic = 1729;
+ e.habengali = 2489;
+ e.hadescendercyrillic = 1203;
+ e.hadeva = 2361;
+ e.hagujarati = 2745;
+ e.hagurmukhi = 2617;
+ e.haharabic = 1581;
+ e.hahfinalarabic = 65186;
+ e.hahinitialarabic = 65187;
+ e.hahiragana = 12399;
+ e.hahmedialarabic = 65188;
+ e.haitusquare = 13098;
+ e.hakatakana = 12495;
+ e.hakatakanahalfwidth = 65418;
+ e.halantgurmukhi = 2637;
+ e.hamzaarabic = 1569;
+ e.hamzalowarabic = 1569;
+ e.hangulfiller = 12644;
+ e.hardsigncyrillic = 1098;
+ e.harpoonleftbarbup = 8636;
+ e.harpoonrightbarbup = 8640;
+ e.hasquare = 13258;
+ e.hatafpatah = 1458;
+ e.hatafpatah16 = 1458;
+ e.hatafpatah23 = 1458;
+ e.hatafpatah2f = 1458;
+ e.hatafpatahhebrew = 1458;
+ e.hatafpatahnarrowhebrew = 1458;
+ e.hatafpatahquarterhebrew = 1458;
+ e.hatafpatahwidehebrew = 1458;
+ e.hatafqamats = 1459;
+ e.hatafqamats1b = 1459;
+ e.hatafqamats28 = 1459;
+ e.hatafqamats34 = 1459;
+ e.hatafqamatshebrew = 1459;
+ e.hatafqamatsnarrowhebrew = 1459;
+ e.hatafqamatsquarterhebrew = 1459;
+ e.hatafqamatswidehebrew = 1459;
+ e.hatafsegol = 1457;
+ e.hatafsegol17 = 1457;
+ e.hatafsegol24 = 1457;
+ e.hatafsegol30 = 1457;
+ e.hatafsegolhebrew = 1457;
+ e.hatafsegolnarrowhebrew = 1457;
+ e.hatafsegolquarterhebrew = 1457;
+ e.hatafsegolwidehebrew = 1457;
+ e.hbar = 295;
+ e.hbopomofo = 12559;
+ e.hbrevebelow = 7723;
+ e.hcedilla = 7721;
+ e.hcircle = 9431;
+ e.hcircumflex = 293;
+ e.hdieresis = 7719;
+ e.hdotaccent = 7715;
+ e.hdotbelow = 7717;
+ e.he = 1492;
+ e.heart = 9829;
+ e.heartsuitblack = 9829;
+ e.heartsuitwhite = 9825;
+ e.hedagesh = 64308;
+ e.hedageshhebrew = 64308;
+ e.hehaltonearabic = 1729;
+ e.heharabic = 1607;
+ e.hehebrew = 1492;
+ e.hehfinalaltonearabic = 64423;
+ e.hehfinalalttwoarabic = 65258;
+ e.hehfinalarabic = 65258;
+ e.hehhamzaabovefinalarabic = 64421;
+ e.hehhamzaaboveisolatedarabic = 64420;
+ e.hehinitialaltonearabic = 64424;
+ e.hehinitialarabic = 65259;
+ e.hehiragana = 12408;
+ e.hehmedialaltonearabic = 64425;
+ e.hehmedialarabic = 65260;
+ e.heiseierasquare = 13179;
+ e.hekatakana = 12504;
+ e.hekatakanahalfwidth = 65421;
+ e.hekutaarusquare = 13110;
+ e.henghook = 615;
+ e.herutusquare = 13113;
+ e.het = 1495;
+ e.hethebrew = 1495;
+ e.hhook = 614;
+ e.hhooksuperior = 689;
+ e.hieuhacirclekorean = 12923;
+ e.hieuhaparenkorean = 12827;
+ e.hieuhcirclekorean = 12909;
+ e.hieuhkorean = 12622;
+ e.hieuhparenkorean = 12813;
+ e.hihiragana = 12402;
+ e.hikatakana = 12498;
+ e.hikatakanahalfwidth = 65419;
+ e.hiriq = 1460;
+ e.hiriq14 = 1460;
+ e.hiriq21 = 1460;
+ e.hiriq2d = 1460;
+ e.hiriqhebrew = 1460;
+ e.hiriqnarrowhebrew = 1460;
+ e.hiriqquarterhebrew = 1460;
+ e.hiriqwidehebrew = 1460;
+ e.hlinebelow = 7830;
+ e.hmonospace = 65352;
+ e.hoarmenian = 1392;
+ e.hohipthai = 3627;
+ e.hohiragana = 12411;
+ e.hokatakana = 12507;
+ e.hokatakanahalfwidth = 65422;
+ e.holam = 1465;
+ e.holam19 = 1465;
+ e.holam26 = 1465;
+ e.holam32 = 1465;
+ e.holamhebrew = 1465;
+ e.holamnarrowhebrew = 1465;
+ e.holamquarterhebrew = 1465;
+ e.holamwidehebrew = 1465;
+ e.honokhukthai = 3630;
+ e.hookabovecomb = 777;
+ e.hookcmb = 777;
+ e.hookpalatalizedbelowcmb = 801;
+ e.hookretroflexbelowcmb = 802;
+ e.hoonsquare = 13122;
+ e.horicoptic = 1001;
+ e.horizontalbar = 8213;
+ e.horncmb = 795;
+ e.hotsprings = 9832;
+ e.house = 8962;
+ e.hparen = 9379;
+ e.hsuperior = 688;
+ e.hturned = 613;
+ e.huhiragana = 12405;
+ e.huiitosquare = 13107;
+ e.hukatakana = 12501;
+ e.hukatakanahalfwidth = 65420;
+ e.hungarumlaut = 733;
+ e.hungarumlautcmb = 779;
+ e.hv = 405;
+ e.hyphen = 45;
+ e.hypheninferior = 63205;
+ e.hyphenmonospace = 65293;
+ e.hyphensmall = 65123;
+ e.hyphensuperior = 63206;
+ e.hyphentwo = 8208;
+ e.i = 105;
+ e.iacute = 237;
+ e.iacyrillic = 1103;
+ e.ibengali = 2439;
+ e.ibopomofo = 12583;
+ e.ibreve = 301;
+ e.icaron = 464;
+ e.icircle = 9432;
+ e.icircumflex = 238;
+ e.icyrillic = 1110;
+ e.idblgrave = 521;
+ e.ideographearthcircle = 12943;
+ e.ideographfirecircle = 12939;
+ e.ideographicallianceparen = 12863;
+ e.ideographiccallparen = 12858;
+ e.ideographiccentrecircle = 12965;
+ e.ideographicclose = 12294;
+ e.ideographiccomma = 12289;
+ e.ideographiccommaleft = 65380;
+ e.ideographiccongratulationparen = 12855;
+ e.ideographiccorrectcircle = 12963;
+ e.ideographicearthparen = 12847;
+ e.ideographicenterpriseparen = 12861;
+ e.ideographicexcellentcircle = 12957;
+ e.ideographicfestivalparen = 12864;
+ e.ideographicfinancialcircle = 12950;
+ e.ideographicfinancialparen = 12854;
+ e.ideographicfireparen = 12843;
+ e.ideographichaveparen = 12850;
+ e.ideographichighcircle = 12964;
+ e.ideographiciterationmark = 12293;
+ e.ideographiclaborcircle = 12952;
+ e.ideographiclaborparen = 12856;
+ e.ideographicleftcircle = 12967;
+ e.ideographiclowcircle = 12966;
+ e.ideographicmedicinecircle = 12969;
+ e.ideographicmetalparen = 12846;
+ e.ideographicmoonparen = 12842;
+ e.ideographicnameparen = 12852;
+ e.ideographicperiod = 12290;
+ e.ideographicprintcircle = 12958;
+ e.ideographicreachparen = 12867;
+ e.ideographicrepresentparen = 12857;
+ e.ideographicresourceparen = 12862;
+ e.ideographicrightcircle = 12968;
+ e.ideographicsecretcircle = 12953;
+ e.ideographicselfparen = 12866;
+ e.ideographicsocietyparen = 12851;
+ e.ideographicspace = 12288;
+ e.ideographicspecialparen = 12853;
+ e.ideographicstockparen = 12849;
+ e.ideographicstudyparen = 12859;
+ e.ideographicsunparen = 12848;
+ e.ideographicsuperviseparen = 12860;
+ e.ideographicwaterparen = 12844;
+ e.ideographicwoodparen = 12845;
+ e.ideographiczero = 12295;
+ e.ideographmetalcircle = 12942;
+ e.ideographmooncircle = 12938;
+ e.ideographnamecircle = 12948;
+ e.ideographsuncircle = 12944;
+ e.ideographwatercircle = 12940;
+ e.ideographwoodcircle = 12941;
+ e.ideva = 2311;
+ e.idieresis = 239;
+ e.idieresisacute = 7727;
+ e.idieresiscyrillic = 1253;
+ e.idotbelow = 7883;
+ e.iebrevecyrillic = 1239;
+ e.iecyrillic = 1077;
+ e.ieungacirclekorean = 12917;
+ e.ieungaparenkorean = 12821;
+ e.ieungcirclekorean = 12903;
+ e.ieungkorean = 12615;
+ e.ieungparenkorean = 12807;
+ e.igrave = 236;
+ e.igujarati = 2695;
+ e.igurmukhi = 2567;
+ e.ihiragana = 12356;
+ e.ihookabove = 7881;
+ e.iibengali = 2440;
+ e.iicyrillic = 1080;
+ e.iideva = 2312;
+ e.iigujarati = 2696;
+ e.iigurmukhi = 2568;
+ e.iimatragurmukhi = 2624;
+ e.iinvertedbreve = 523;
+ e.iishortcyrillic = 1081;
+ e.iivowelsignbengali = 2496;
+ e.iivowelsigndeva = 2368;
+ e.iivowelsigngujarati = 2752;
+ e.ij = 307;
+ e.ikatakana = 12452;
+ e.ikatakanahalfwidth = 65394;
+ e.ikorean = 12643;
+ e.ilde = 732;
+ e.iluyhebrew = 1452;
+ e.imacron = 299;
+ e.imacroncyrillic = 1251;
+ e.imageorapproximatelyequal = 8787;
+ e.imatragurmukhi = 2623;
+ e.imonospace = 65353;
+ e.increment = 8710;
+ e.infinity = 8734;
+ e.iniarmenian = 1387;
+ e.integral = 8747;
+ e.integralbottom = 8993;
+ e.integralbt = 8993;
+ e.integralex = 63733;
+ e.integraltop = 8992;
+ e.integraltp = 8992;
+ e.intersection = 8745;
+ e.intisquare = 13061;
+ e.invbullet = 9688;
+ e.invcircle = 9689;
+ e.invsmileface = 9787;
+ e.iocyrillic = 1105;
+ e.iogonek = 303;
+ e.iota = 953;
+ e.iotadieresis = 970;
+ e.iotadieresistonos = 912;
+ e.iotalatin = 617;
+ e.iotatonos = 943;
+ e.iparen = 9380;
+ e.irigurmukhi = 2674;
+ e.ismallhiragana = 12355;
+ e.ismallkatakana = 12451;
+ e.ismallkatakanahalfwidth = 65384;
+ e.issharbengali = 2554;
+ e.istroke = 616;
+ e.isuperior = 63213;
+ e.iterationhiragana = 12445;
+ e.iterationkatakana = 12541;
+ e.itilde = 297;
+ e.itildebelow = 7725;
+ e.iubopomofo = 12585;
+ e.iucyrillic = 1102;
+ e.ivowelsignbengali = 2495;
+ e.ivowelsigndeva = 2367;
+ e.ivowelsigngujarati = 2751;
+ e.izhitsacyrillic = 1141;
+ e.izhitsadblgravecyrillic = 1143;
+ e.j = 106;
+ e.jaarmenian = 1393;
+ e.jabengali = 2460;
+ e.jadeva = 2332;
+ e.jagujarati = 2716;
+ e.jagurmukhi = 2588;
+ e.jbopomofo = 12560;
+ e.jcaron = 496;
+ e.jcircle = 9433;
+ e.jcircumflex = 309;
+ e.jcrossedtail = 669;
+ e.jdotlessstroke = 607;
+ e.jecyrillic = 1112;
+ e.jeemarabic = 1580;
+ e.jeemfinalarabic = 65182;
+ e.jeeminitialarabic = 65183;
+ e.jeemmedialarabic = 65184;
+ e.jeharabic = 1688;
+ e.jehfinalarabic = 64395;
+ e.jhabengali = 2461;
+ e.jhadeva = 2333;
+ e.jhagujarati = 2717;
+ e.jhagurmukhi = 2589;
+ e.jheharmenian = 1403;
+ e.jis = 12292;
+ e.jmonospace = 65354;
+ e.jparen = 9381;
+ e.jsuperior = 690;
+ e.k = 107;
+ e.kabashkircyrillic = 1185;
+ e.kabengali = 2453;
+ e.kacute = 7729;
+ e.kacyrillic = 1082;
+ e.kadescendercyrillic = 1179;
+ e.kadeva = 2325;
+ e.kaf = 1499;
+ e.kafarabic = 1603;
+ e.kafdagesh = 64315;
+ e.kafdageshhebrew = 64315;
+ e.kaffinalarabic = 65242;
+ e.kafhebrew = 1499;
+ e.kafinitialarabic = 65243;
+ e.kafmedialarabic = 65244;
+ e.kafrafehebrew = 64333;
+ e.kagujarati = 2709;
+ e.kagurmukhi = 2581;
+ e.kahiragana = 12363;
+ e.kahookcyrillic = 1220;
+ e.kakatakana = 12459;
+ e.kakatakanahalfwidth = 65398;
+ e.kappa = 954;
+ e.kappasymbolgreek = 1008;
+ e.kapyeounmieumkorean = 12657;
+ e.kapyeounphieuphkorean = 12676;
+ e.kapyeounpieupkorean = 12664;
+ e.kapyeounssangpieupkorean = 12665;
+ e.karoriisquare = 13069;
+ e.kashidaautoarabic = 1600;
+ e.kashidaautonosidebearingarabic = 1600;
+ e.kasmallkatakana = 12533;
+ e.kasquare = 13188;
+ e.kasraarabic = 1616;
+ e.kasratanarabic = 1613;
+ e.kastrokecyrillic = 1183;
+ e.katahiraprolongmarkhalfwidth = 65392;
+ e.kaverticalstrokecyrillic = 1181;
+ e.kbopomofo = 12558;
+ e.kcalsquare = 13193;
+ e.kcaron = 489;
+ e.kcedilla = 311;
+ e.kcircle = 9434;
+ e.kcommaaccent = 311;
+ e.kdotbelow = 7731;
+ e.keharmenian = 1412;
+ e.kehiragana = 12369;
+ e.kekatakana = 12465;
+ e.kekatakanahalfwidth = 65401;
+ e.kenarmenian = 1391;
+ e.kesmallkatakana = 12534;
+ e.kgreenlandic = 312;
+ e.khabengali = 2454;
+ e.khacyrillic = 1093;
+ e.khadeva = 2326;
+ e.khagujarati = 2710;
+ e.khagurmukhi = 2582;
+ e.khaharabic = 1582;
+ e.khahfinalarabic = 65190;
+ e.khahinitialarabic = 65191;
+ e.khahmedialarabic = 65192;
+ e.kheicoptic = 999;
+ e.khhadeva = 2393;
+ e.khhagurmukhi = 2649;
+ e.khieukhacirclekorean = 12920;
+ e.khieukhaparenkorean = 12824;
+ e.khieukhcirclekorean = 12906;
+ e.khieukhkorean = 12619;
+ e.khieukhparenkorean = 12810;
+ e.khokhaithai = 3586;
+ e.khokhonthai = 3589;
+ e.khokhuatthai = 3587;
+ e.khokhwaithai = 3588;
+ e.khomutthai = 3675;
+ e.khook = 409;
+ e.khorakhangthai = 3590;
+ e.khzsquare = 13201;
+ e.kihiragana = 12365;
+ e.kikatakana = 12461;
+ e.kikatakanahalfwidth = 65399;
+ e.kiroguramusquare = 13077;
+ e.kiromeetorusquare = 13078;
+ e.kirosquare = 13076;
+ e.kiyeokacirclekorean = 12910;
+ e.kiyeokaparenkorean = 12814;
+ e.kiyeokcirclekorean = 12896;
+ e.kiyeokkorean = 12593;
+ e.kiyeokparenkorean = 12800;
+ e.kiyeoksioskorean = 12595;
+ e.kjecyrillic = 1116;
+ e.klinebelow = 7733;
+ e.klsquare = 13208;
+ e.kmcubedsquare = 13222;
+ e.kmonospace = 65355;
+ e.kmsquaredsquare = 13218;
+ e.kohiragana = 12371;
+ e.kohmsquare = 13248;
+ e.kokaithai = 3585;
+ e.kokatakana = 12467;
+ e.kokatakanahalfwidth = 65402;
+ e.kooposquare = 13086;
+ e.koppacyrillic = 1153;
+ e.koreanstandardsymbol = 12927;
+ e.koroniscmb = 835;
+ e.kparen = 9382;
+ e.kpasquare = 13226;
+ e.ksicyrillic = 1135;
+ e.ktsquare = 13263;
+ e.kturned = 670;
+ e.kuhiragana = 12367;
+ e.kukatakana = 12463;
+ e.kukatakanahalfwidth = 65400;
+ e.kvsquare = 13240;
+ e.kwsquare = 13246;
+ e.l = 108;
+ e.labengali = 2482;
+ e.lacute = 314;
+ e.ladeva = 2354;
+ e.lagujarati = 2738;
+ e.lagurmukhi = 2610;
+ e.lakkhangyaothai = 3653;
+ e.lamaleffinalarabic = 65276;
+ e.lamalefhamzaabovefinalarabic = 65272;
+ e.lamalefhamzaaboveisolatedarabic = 65271;
+ e.lamalefhamzabelowfinalarabic = 65274;
+ e.lamalefhamzabelowisolatedarabic = 65273;
+ e.lamalefisolatedarabic = 65275;
+ e.lamalefmaddaabovefinalarabic = 65270;
+ e.lamalefmaddaaboveisolatedarabic = 65269;
+ e.lamarabic = 1604;
+ e.lambda = 955;
+ e.lambdastroke = 411;
+ e.lamed = 1500;
+ e.lameddagesh = 64316;
+ e.lameddageshhebrew = 64316;
+ e.lamedhebrew = 1500;
+ e.lamfinalarabic = 65246;
+ e.lamhahinitialarabic = 64714;
+ e.laminitialarabic = 65247;
+ e.lamjeeminitialarabic = 64713;
+ e.lamkhahinitialarabic = 64715;
+ e.lamlamhehisolatedarabic = 65010;
+ e.lammedialarabic = 65248;
+ e.lammeemhahinitialarabic = 64904;
+ e.lammeeminitialarabic = 64716;
+ e.largecircle = 9711;
+ e.lbar = 410;
+ e.lbelt = 620;
+ e.lbopomofo = 12556;
+ e.lcaron = 318;
+ e.lcedilla = 316;
+ e.lcircle = 9435;
+ e.lcircumflexbelow = 7741;
+ e.lcommaaccent = 316;
+ e.ldot = 320;
+ e.ldotaccent = 320;
+ e.ldotbelow = 7735;
+ e.ldotbelowmacron = 7737;
+ e.leftangleabovecmb = 794;
+ e.lefttackbelowcmb = 792;
+ e.less = 60;
+ e.lessequal = 8804;
+ e.lessequalorgreater = 8922;
+ e.lessmonospace = 65308;
+ e.lessorequivalent = 8818;
+ e.lessorgreater = 8822;
+ e.lessoverequal = 8806;
+ e.lesssmall = 65124;
+ e.lezh = 622;
+ e.lfblock = 9612;
+ e.lhookretroflex = 621;
+ e.lira = 8356;
+ e.liwnarmenian = 1388;
+ e.lj = 457;
+ e.ljecyrillic = 1113;
+ e.ll = 63168;
+ e.lladeva = 2355;
+ e.llagujarati = 2739;
+ e.llinebelow = 7739;
+ e.llladeva = 2356;
+ e.llvocalicbengali = 2529;
+ e.llvocalicdeva = 2401;
+ e.llvocalicvowelsignbengali = 2531;
+ e.llvocalicvowelsigndeva = 2403;
+ e.lmiddletilde = 619;
+ e.lmonospace = 65356;
+ e.lmsquare = 13264;
+ e.lochulathai = 3628;
+ e.logicaland = 8743;
+ e.logicalnot = 172;
+ e.logicalnotreversed = 8976;
+ e.logicalor = 8744;
+ e.lolingthai = 3621;
+ e.longs = 383;
+ e.lowlinecenterline = 65102;
+ e.lowlinecmb = 818;
+ e.lowlinedashed = 65101;
+ e.lozenge = 9674;
+ e.lparen = 9383;
+ e.lslash = 322;
+ e.lsquare = 8467;
+ e.lsuperior = 63214;
+ e.ltshade = 9617;
+ e.luthai = 3622;
+ e.lvocalicbengali = 2444;
+ e.lvocalicdeva = 2316;
+ e.lvocalicvowelsignbengali = 2530;
+ e.lvocalicvowelsigndeva = 2402;
+ e.lxsquare = 13267;
+ e.m = 109;
+ e.mabengali = 2478;
+ e.macron = 175;
+ e.macronbelowcmb = 817;
+ e.macroncmb = 772;
+ e.macronlowmod = 717;
+ e.macronmonospace = 65507;
+ e.macute = 7743;
+ e.madeva = 2350;
+ e.magujarati = 2734;
+ e.magurmukhi = 2606;
+ e.mahapakhhebrew = 1444;
+ e.mahapakhlefthebrew = 1444;
+ e.mahiragana = 12414;
+ e.maichattawalowleftthai = 63637;
+ e.maichattawalowrightthai = 63636;
+ e.maichattawathai = 3659;
+ e.maichattawaupperleftthai = 63635;
+ e.maieklowleftthai = 63628;
+ e.maieklowrightthai = 63627;
+ e.maiekthai = 3656;
+ e.maiekupperleftthai = 63626;
+ e.maihanakatleftthai = 63620;
+ e.maihanakatthai = 3633;
+ e.maitaikhuleftthai = 63625;
+ e.maitaikhuthai = 3655;
+ e.maitholowleftthai = 63631;
+ e.maitholowrightthai = 63630;
+ e.maithothai = 3657;
+ e.maithoupperleftthai = 63629;
+ e.maitrilowleftthai = 63634;
+ e.maitrilowrightthai = 63633;
+ e.maitrithai = 3658;
+ e.maitriupperleftthai = 63632;
+ e.maiyamokthai = 3654;
+ e.makatakana = 12510;
+ e.makatakanahalfwidth = 65423;
+ e.male = 9794;
+ e.mansyonsquare = 13127;
+ e.maqafhebrew = 1470;
+ e.mars = 9794;
+ e.masoracirclehebrew = 1455;
+ e.masquare = 13187;
+ e.mbopomofo = 12551;
+ e.mbsquare = 13268;
+ e.mcircle = 9436;
+ e.mcubedsquare = 13221;
+ e.mdotaccent = 7745;
+ e.mdotbelow = 7747;
+ e.meemarabic = 1605;
+ e.meemfinalarabic = 65250;
+ e.meeminitialarabic = 65251;
+ e.meemmedialarabic = 65252;
+ e.meemmeeminitialarabic = 64721;
+ e.meemmeemisolatedarabic = 64584;
+ e.meetorusquare = 13133;
+ e.mehiragana = 12417;
+ e.meizierasquare = 13182;
+ e.mekatakana = 12513;
+ e.mekatakanahalfwidth = 65426;
+ e.mem = 1502;
+ e.memdagesh = 64318;
+ e.memdageshhebrew = 64318;
+ e.memhebrew = 1502;
+ e.menarmenian = 1396;
+ e.merkhahebrew = 1445;
+ e.merkhakefulahebrew = 1446;
+ e.merkhakefulalefthebrew = 1446;
+ e.merkhalefthebrew = 1445;
+ e.mhook = 625;
+ e.mhzsquare = 13202;
+ e.middledotkatakanahalfwidth = 65381;
+ e.middot = 183;
+ e.mieumacirclekorean = 12914;
+ e.mieumaparenkorean = 12818;
+ e.mieumcirclekorean = 12900;
+ e.mieumkorean = 12609;
+ e.mieumpansioskorean = 12656;
+ e.mieumparenkorean = 12804;
+ e.mieumpieupkorean = 12654;
+ e.mieumsioskorean = 12655;
+ e.mihiragana = 12415;
+ e.mikatakana = 12511;
+ e.mikatakanahalfwidth = 65424;
+ e.minus = 8722;
+ e.minusbelowcmb = 800;
+ e.minuscircle = 8854;
+ e.minusmod = 727;
+ e.minusplus = 8723;
+ e.minute = 8242;
+ e.miribaarusquare = 13130;
+ e.mirisquare = 13129;
+ e.mlonglegturned = 624;
+ e.mlsquare = 13206;
+ e.mmcubedsquare = 13219;
+ e.mmonospace = 65357;
+ e.mmsquaredsquare = 13215;
+ e.mohiragana = 12418;
+ e.mohmsquare = 13249;
+ e.mokatakana = 12514;
+ e.mokatakanahalfwidth = 65427;
+ e.molsquare = 13270;
+ e.momathai = 3617;
+ e.moverssquare = 13223;
+ e.moverssquaredsquare = 13224;
+ e.mparen = 9384;
+ e.mpasquare = 13227;
+ e.mssquare = 13235;
+ e.msuperior = 63215;
+ e.mturned = 623;
+ e.mu = 181;
+ e.mu1 = 181;
+ e.muasquare = 13186;
+ e.muchgreater = 8811;
+ e.muchless = 8810;
+ e.mufsquare = 13196;
+ e.mugreek = 956;
+ e.mugsquare = 13197;
+ e.muhiragana = 12416;
+ e.mukatakana = 12512;
+ e.mukatakanahalfwidth = 65425;
+ e.mulsquare = 13205;
+ e.multiply = 215;
+ e.mumsquare = 13211;
+ e.munahhebrew = 1443;
+ e.munahlefthebrew = 1443;
+ e.musicalnote = 9834;
+ e.musicalnotedbl = 9835;
+ e.musicflatsign = 9837;
+ e.musicsharpsign = 9839;
+ e.mussquare = 13234;
+ e.muvsquare = 13238;
+ e.muwsquare = 13244;
+ e.mvmegasquare = 13241;
+ e.mvsquare = 13239;
+ e.mwmegasquare = 13247;
+ e.mwsquare = 13245;
+ e.n = 110;
+ e.nabengali = 2472;
+ e.nabla = 8711;
+ e.nacute = 324;
+ e.nadeva = 2344;
+ e.nagujarati = 2728;
+ e.nagurmukhi = 2600;
+ e.nahiragana = 12394;
+ e.nakatakana = 12490;
+ e.nakatakanahalfwidth = 65413;
+ e.napostrophe = 329;
+ e.nasquare = 13185;
+ e.nbopomofo = 12555;
+ e.nbspace = 160;
+ e.ncaron = 328;
+ e.ncedilla = 326;
+ e.ncircle = 9437;
+ e.ncircumflexbelow = 7755;
+ e.ncommaaccent = 326;
+ e.ndotaccent = 7749;
+ e.ndotbelow = 7751;
+ e.nehiragana = 12397;
+ e.nekatakana = 12493;
+ e.nekatakanahalfwidth = 65416;
+ e.newsheqelsign = 8362;
+ e.nfsquare = 13195;
+ e.ngabengali = 2457;
+ e.ngadeva = 2329;
+ e.ngagujarati = 2713;
+ e.ngagurmukhi = 2585;
+ e.ngonguthai = 3591;
+ e.nhiragana = 12435;
+ e.nhookleft = 626;
+ e.nhookretroflex = 627;
+ e.nieunacirclekorean = 12911;
+ e.nieunaparenkorean = 12815;
+ e.nieuncieuckorean = 12597;
+ e.nieuncirclekorean = 12897;
+ e.nieunhieuhkorean = 12598;
+ e.nieunkorean = 12596;
+ e.nieunpansioskorean = 12648;
+ e.nieunparenkorean = 12801;
+ e.nieunsioskorean = 12647;
+ e.nieuntikeutkorean = 12646;
+ e.nihiragana = 12395;
+ e.nikatakana = 12491;
+ e.nikatakanahalfwidth = 65414;
+ e.nikhahitleftthai = 63641;
+ e.nikhahitthai = 3661;
+ e.nine = 57;
+ e.ninearabic = 1641;
+ e.ninebengali = 2543;
+ e.ninecircle = 9320;
+ e.ninecircleinversesansserif = 10130;
+ e.ninedeva = 2415;
+ e.ninegujarati = 2799;
+ e.ninegurmukhi = 2671;
+ e.ninehackarabic = 1641;
+ e.ninehangzhou = 12329;
+ e.nineideographicparen = 12840;
+ e.nineinferior = 8329;
+ e.ninemonospace = 65305;
+ e.nineoldstyle = 63289;
+ e.nineparen = 9340;
+ e.nineperiod = 9360;
+ e.ninepersian = 1785;
+ e.nineroman = 8568;
+ e.ninesuperior = 8313;
+ e.nineteencircle = 9330;
+ e.nineteenparen = 9350;
+ e.nineteenperiod = 9370;
+ e.ninethai = 3673;
+ e.nj = 460;
+ e.njecyrillic = 1114;
+ e.nkatakana = 12531;
+ e.nkatakanahalfwidth = 65437;
+ e.nlegrightlong = 414;
+ e.nlinebelow = 7753;
+ e.nmonospace = 65358;
+ e.nmsquare = 13210;
+ e.nnabengali = 2467;
+ e.nnadeva = 2339;
+ e.nnagujarati = 2723;
+ e.nnagurmukhi = 2595;
+ e.nnnadeva = 2345;
+ e.nohiragana = 12398;
+ e.nokatakana = 12494;
+ e.nokatakanahalfwidth = 65417;
+ e.nonbreakingspace = 160;
+ e.nonenthai = 3603;
+ e.nonuthai = 3609;
+ e.noonarabic = 1606;
+ e.noonfinalarabic = 65254;
+ e.noonghunnaarabic = 1722;
+ e.noonghunnafinalarabic = 64415;
+ e.nooninitialarabic = 65255;
+ e.noonjeeminitialarabic = 64722;
+ e.noonjeemisolatedarabic = 64587;
+ e.noonmedialarabic = 65256;
+ e.noonmeeminitialarabic = 64725;
+ e.noonmeemisolatedarabic = 64590;
+ e.noonnoonfinalarabic = 64653;
+ e.notcontains = 8716;
+ e.notelement = 8713;
+ e.notelementof = 8713;
+ e.notequal = 8800;
+ e.notgreater = 8815;
+ e.notgreaternorequal = 8817;
+ e.notgreaternorless = 8825;
+ e.notidentical = 8802;
+ e.notless = 8814;
+ e.notlessnorequal = 8816;
+ e.notparallel = 8742;
+ e.notprecedes = 8832;
+ e.notsubset = 8836;
+ e.notsucceeds = 8833;
+ e.notsuperset = 8837;
+ e.nowarmenian = 1398;
+ e.nparen = 9385;
+ e.nssquare = 13233;
+ e.nsuperior = 8319;
+ e.ntilde = 241;
+ e.nu = 957;
+ e.nuhiragana = 12396;
+ e.nukatakana = 12492;
+ e.nukatakanahalfwidth = 65415;
+ e.nuktabengali = 2492;
+ e.nuktadeva = 2364;
+ e.nuktagujarati = 2748;
+ e.nuktagurmukhi = 2620;
+ e.numbersign = 35;
+ e.numbersignmonospace = 65283;
+ e.numbersignsmall = 65119;
+ e.numeralsigngreek = 884;
+ e.numeralsignlowergreek = 885;
+ e.numero = 8470;
+ e.nun = 1504;
+ e.nundagesh = 64320;
+ e.nundageshhebrew = 64320;
+ e.nunhebrew = 1504;
+ e.nvsquare = 13237;
+ e.nwsquare = 13243;
+ e.nyabengali = 2462;
+ e.nyadeva = 2334;
+ e.nyagujarati = 2718;
+ e.nyagurmukhi = 2590;
+ e.o = 111;
+ e.oacute = 243;
+ e.oangthai = 3629;
+ e.obarred = 629;
+ e.obarredcyrillic = 1257;
+ e.obarreddieresiscyrillic = 1259;
+ e.obengali = 2451;
+ e.obopomofo = 12571;
+ e.obreve = 335;
+ e.ocandradeva = 2321;
+ e.ocandragujarati = 2705;
+ e.ocandravowelsigndeva = 2377;
+ e.ocandravowelsigngujarati = 2761;
+ e.ocaron = 466;
+ e.ocircle = 9438;
+ e.ocircumflex = 244;
+ e.ocircumflexacute = 7889;
+ e.ocircumflexdotbelow = 7897;
+ e.ocircumflexgrave = 7891;
+ e.ocircumflexhookabove = 7893;
+ e.ocircumflextilde = 7895;
+ e.ocyrillic = 1086;
+ e.odblacute = 337;
+ e.odblgrave = 525;
+ e.odeva = 2323;
+ e.odieresis = 246;
+ e.odieresiscyrillic = 1255;
+ e.odotbelow = 7885;
+ e.oe = 339;
+ e.oekorean = 12634;
+ e.ogonek = 731;
+ e.ogonekcmb = 808;
+ e.ograve = 242;
+ e.ogujarati = 2707;
+ e.oharmenian = 1413;
+ e.ohiragana = 12362;
+ e.ohookabove = 7887;
+ e.ohorn = 417;
+ e.ohornacute = 7899;
+ e.ohorndotbelow = 7907;
+ e.ohorngrave = 7901;
+ e.ohornhookabove = 7903;
+ e.ohorntilde = 7905;
+ e.ohungarumlaut = 337;
+ e.oi = 419;
+ e.oinvertedbreve = 527;
+ e.okatakana = 12458;
+ e.okatakanahalfwidth = 65397;
+ e.okorean = 12631;
+ e.olehebrew = 1451;
+ e.omacron = 333;
+ e.omacronacute = 7763;
+ e.omacrongrave = 7761;
+ e.omdeva = 2384;
+ e.omega = 969;
+ e.omega1 = 982;
+ e.omegacyrillic = 1121;
+ e.omegalatinclosed = 631;
+ e.omegaroundcyrillic = 1147;
+ e.omegatitlocyrillic = 1149;
+ e.omegatonos = 974;
+ e.omgujarati = 2768;
+ e.omicron = 959;
+ e.omicrontonos = 972;
+ e.omonospace = 65359;
+ e.one = 49;
+ e.onearabic = 1633;
+ e.onebengali = 2535;
+ e.onecircle = 9312;
+ e.onecircleinversesansserif = 10122;
+ e.onedeva = 2407;
+ e.onedotenleader = 8228;
+ e.oneeighth = 8539;
+ e.onefitted = 63196;
+ e.onegujarati = 2791;
+ e.onegurmukhi = 2663;
+ e.onehackarabic = 1633;
+ e.onehalf = 189;
+ e.onehangzhou = 12321;
+ e.oneideographicparen = 12832;
+ e.oneinferior = 8321;
+ e.onemonospace = 65297;
+ e.onenumeratorbengali = 2548;
+ e.oneoldstyle = 63281;
+ e.oneparen = 9332;
+ e.oneperiod = 9352;
+ e.onepersian = 1777;
+ e.onequarter = 188;
+ e.oneroman = 8560;
+ e.onesuperior = 185;
+ e.onethai = 3665;
+ e.onethird = 8531;
+ e.oogonek = 491;
+ e.oogonekmacron = 493;
+ e.oogurmukhi = 2579;
+ e.oomatragurmukhi = 2635;
+ e.oopen = 596;
+ e.oparen = 9386;
+ e.openbullet = 9702;
+ e.option = 8997;
+ e.ordfeminine = 170;
+ e.ordmasculine = 186;
+ e.orthogonal = 8735;
+ e.oshortdeva = 2322;
+ e.oshortvowelsigndeva = 2378;
+ e.oslash = 248;
+ e.oslashacute = 511;
+ e.osmallhiragana = 12361;
+ e.osmallkatakana = 12457;
+ e.osmallkatakanahalfwidth = 65387;
+ e.ostrokeacute = 511;
+ e.osuperior = 63216;
+ e.otcyrillic = 1151;
+ e.otilde = 245;
+ e.otildeacute = 7757;
+ e.otildedieresis = 7759;
+ e.oubopomofo = 12577;
+ e.overline = 8254;
+ e.overlinecenterline = 65098;
+ e.overlinecmb = 773;
+ e.overlinedashed = 65097;
+ e.overlinedblwavy = 65100;
+ e.overlinewavy = 65099;
+ e.overscore = 175;
+ e.ovowelsignbengali = 2507;
+ e.ovowelsigndeva = 2379;
+ e.ovowelsigngujarati = 2763;
+ e.p = 112;
+ e.paampssquare = 13184;
+ e.paasentosquare = 13099;
+ e.pabengali = 2474;
+ e.pacute = 7765;
+ e.padeva = 2346;
+ e.pagedown = 8671;
+ e.pageup = 8670;
+ e.pagujarati = 2730;
+ e.pagurmukhi = 2602;
+ e.pahiragana = 12401;
+ e.paiyannoithai = 3631;
+ e.pakatakana = 12497;
+ e.palatalizationcyrilliccmb = 1156;
+ e.palochkacyrillic = 1216;
+ e.pansioskorean = 12671;
+ e.paragraph = 182;
+ e.parallel = 8741;
+ e.parenleft = 40;
+ e.parenleftaltonearabic = 64830;
+ e.parenleftbt = 63725;
+ e.parenleftex = 63724;
+ e.parenleftinferior = 8333;
+ e.parenleftmonospace = 65288;
+ e.parenleftsmall = 65113;
+ e.parenleftsuperior = 8317;
+ e.parenlefttp = 63723;
+ e.parenleftvertical = 65077;
+ e.parenright = 41;
+ e.parenrightaltonearabic = 64831;
+ e.parenrightbt = 63736;
+ e.parenrightex = 63735;
+ e.parenrightinferior = 8334;
+ e.parenrightmonospace = 65289;
+ e.parenrightsmall = 65114;
+ e.parenrightsuperior = 8318;
+ e.parenrighttp = 63734;
+ e.parenrightvertical = 65078;
+ e.partialdiff = 8706;
+ e.paseqhebrew = 1472;
+ e.pashtahebrew = 1433;
+ e.pasquare = 13225;
+ e.patah = 1463;
+ e.patah11 = 1463;
+ e.patah1d = 1463;
+ e.patah2a = 1463;
+ e.patahhebrew = 1463;
+ e.patahnarrowhebrew = 1463;
+ e.patahquarterhebrew = 1463;
+ e.patahwidehebrew = 1463;
+ e.pazerhebrew = 1441;
+ e.pbopomofo = 12550;
+ e.pcircle = 9439;
+ e.pdotaccent = 7767;
+ e.pe = 1508;
+ e.pecyrillic = 1087;
+ e.pedagesh = 64324;
+ e.pedageshhebrew = 64324;
+ e.peezisquare = 13115;
+ e.pefinaldageshhebrew = 64323;
+ e.peharabic = 1662;
+ e.peharmenian = 1402;
+ e.pehebrew = 1508;
+ e.pehfinalarabic = 64343;
+ e.pehinitialarabic = 64344;
+ e.pehiragana = 12410;
+ e.pehmedialarabic = 64345;
+ e.pekatakana = 12506;
+ e.pemiddlehookcyrillic = 1191;
+ e.perafehebrew = 64334;
+ e.percent = 37;
+ e.percentarabic = 1642;
+ e.percentmonospace = 65285;
+ e.percentsmall = 65130;
+ e.period = 46;
+ e.periodarmenian = 1417;
+ e.periodcentered = 183;
+ e.periodhalfwidth = 65377;
+ e.periodinferior = 63207;
+ e.periodmonospace = 65294;
+ e.periodsmall = 65106;
+ e.periodsuperior = 63208;
+ e.perispomenigreekcmb = 834;
+ e.perpendicular = 8869;
+ e.perthousand = 8240;
+ e.peseta = 8359;
+ e.pfsquare = 13194;
+ e.phabengali = 2475;
+ e.phadeva = 2347;
+ e.phagujarati = 2731;
+ e.phagurmukhi = 2603;
+ e.phi = 966;
+ e.phi1 = 981;
+ e.phieuphacirclekorean = 12922;
+ e.phieuphaparenkorean = 12826;
+ e.phieuphcirclekorean = 12908;
+ e.phieuphkorean = 12621;
+ e.phieuphparenkorean = 12812;
+ e.philatin = 632;
+ e.phinthuthai = 3642;
+ e.phisymbolgreek = 981;
+ e.phook = 421;
+ e.phophanthai = 3614;
+ e.phophungthai = 3612;
+ e.phosamphaothai = 3616;
+ e.pi = 960;
+ e.pieupacirclekorean = 12915;
+ e.pieupaparenkorean = 12819;
+ e.pieupcieuckorean = 12662;
+ e.pieupcirclekorean = 12901;
+ e.pieupkiyeokkorean = 12658;
+ e.pieupkorean = 12610;
+ e.pieupparenkorean = 12805;
+ e.pieupsioskiyeokkorean = 12660;
+ e.pieupsioskorean = 12612;
+ e.pieupsiostikeutkorean = 12661;
+ e.pieupthieuthkorean = 12663;
+ e.pieuptikeutkorean = 12659;
+ e.pihiragana = 12404;
+ e.pikatakana = 12500;
+ e.pisymbolgreek = 982;
+ e.piwrarmenian = 1411;
+ e.planckover2pi = 8463;
+ e.planckover2pi1 = 8463;
+ e.plus = 43;
+ e.plusbelowcmb = 799;
+ e.pluscircle = 8853;
+ e.plusminus = 177;
+ e.plusmod = 726;
+ e.plusmonospace = 65291;
+ e.plussmall = 65122;
+ e.plussuperior = 8314;
+ e.pmonospace = 65360;
+ e.pmsquare = 13272;
+ e.pohiragana = 12413;
+ e.pointingindexdownwhite = 9759;
+ e.pointingindexleftwhite = 9756;
+ e.pointingindexrightwhite = 9758;
+ e.pointingindexupwhite = 9757;
+ e.pokatakana = 12509;
+ e.poplathai = 3611;
+ e.postalmark = 12306;
+ e.postalmarkface = 12320;
+ e.pparen = 9387;
+ e.precedes = 8826;
+ e.prescription = 8478;
+ e.primemod = 697;
+ e.primereversed = 8245;
+ e.product = 8719;
+ e.projective = 8965;
+ e.prolongedkana = 12540;
+ e.propellor = 8984;
+ e.propersubset = 8834;
+ e.propersuperset = 8835;
+ e.proportion = 8759;
+ e.proportional = 8733;
+ e.psi = 968;
+ e.psicyrillic = 1137;
+ e.psilipneumatacyrilliccmb = 1158;
+ e.pssquare = 13232;
+ e.puhiragana = 12407;
+ e.pukatakana = 12503;
+ e.pvsquare = 13236;
+ e.pwsquare = 13242;
+ e.q = 113;
+ e.qadeva = 2392;
+ e.qadmahebrew = 1448;
+ e.qafarabic = 1602;
+ e.qaffinalarabic = 65238;
+ e.qafinitialarabic = 65239;
+ e.qafmedialarabic = 65240;
+ e.qamats = 1464;
+ e.qamats10 = 1464;
+ e.qamats1a = 1464;
+ e.qamats1c = 1464;
+ e.qamats27 = 1464;
+ e.qamats29 = 1464;
+ e.qamats33 = 1464;
+ e.qamatsde = 1464;
+ e.qamatshebrew = 1464;
+ e.qamatsnarrowhebrew = 1464;
+ e.qamatsqatanhebrew = 1464;
+ e.qamatsqatannarrowhebrew = 1464;
+ e.qamatsqatanquarterhebrew = 1464;
+ e.qamatsqatanwidehebrew = 1464;
+ e.qamatsquarterhebrew = 1464;
+ e.qamatswidehebrew = 1464;
+ e.qarneyparahebrew = 1439;
+ e.qbopomofo = 12561;
+ e.qcircle = 9440;
+ e.qhook = 672;
+ e.qmonospace = 65361;
+ e.qof = 1511;
+ e.qofdagesh = 64327;
+ e.qofdageshhebrew = 64327;
+ e.qofhebrew = 1511;
+ e.qparen = 9388;
+ e.quarternote = 9833;
+ e.qubuts = 1467;
+ e.qubuts18 = 1467;
+ e.qubuts25 = 1467;
+ e.qubuts31 = 1467;
+ e.qubutshebrew = 1467;
+ e.qubutsnarrowhebrew = 1467;
+ e.qubutsquarterhebrew = 1467;
+ e.qubutswidehebrew = 1467;
+ e.question = 63;
+ e.questionarabic = 1567;
+ e.questionarmenian = 1374;
+ e.questiondown = 191;
+ e.questiondownsmall = 63423;
+ e.questiongreek = 894;
+ e.questionmonospace = 65311;
+ e.questionsmall = 63295;
+ e.quotedbl = 34;
+ e.quotedblbase = 8222;
+ e.quotedblleft = 8220;
+ e.quotedblmonospace = 65282;
+ e.quotedblprime = 12318;
+ e.quotedblprimereversed = 12317;
+ e.quotedblright = 8221;
+ e.quoteleft = 8216;
+ e.quoteleftreversed = 8219;
+ e.quotereversed = 8219;
+ e.quoteright = 8217;
+ e.quoterightn = 329;
+ e.quotesinglbase = 8218;
+ e.quotesingle = 39;
+ e.quotesinglemonospace = 65287;
+ e.r = 114;
+ e.raarmenian = 1404;
+ e.rabengali = 2480;
+ e.racute = 341;
+ e.radeva = 2352;
+ e.radical = 8730;
+ e.radicalex = 63717;
+ e.radoverssquare = 13230;
+ e.radoverssquaredsquare = 13231;
+ e.radsquare = 13229;
+ e.rafe = 1471;
+ e.rafehebrew = 1471;
+ e.ragujarati = 2736;
+ e.ragurmukhi = 2608;
+ e.rahiragana = 12425;
+ e.rakatakana = 12521;
+ e.rakatakanahalfwidth = 65431;
+ e.ralowerdiagonalbengali = 2545;
+ e.ramiddlediagonalbengali = 2544;
+ e.ramshorn = 612;
+ e.ratio = 8758;
+ e.rbopomofo = 12566;
+ e.rcaron = 345;
+ e.rcedilla = 343;
+ e.rcircle = 9441;
+ e.rcommaaccent = 343;
+ e.rdblgrave = 529;
+ e.rdotaccent = 7769;
+ e.rdotbelow = 7771;
+ e.rdotbelowmacron = 7773;
+ e.referencemark = 8251;
+ e.reflexsubset = 8838;
+ e.reflexsuperset = 8839;
+ e.registered = 174;
+ e.registersans = 63720;
+ e.registerserif = 63194;
+ e.reharabic = 1585;
+ e.reharmenian = 1408;
+ e.rehfinalarabic = 65198;
+ e.rehiragana = 12428;
+ e.rekatakana = 12524;
+ e.rekatakanahalfwidth = 65434;
+ e.resh = 1512;
+ e.reshdageshhebrew = 64328;
+ e.reshhebrew = 1512;
+ e.reversedtilde = 8765;
+ e.reviahebrew = 1431;
+ e.reviamugrashhebrew = 1431;
+ e.revlogicalnot = 8976;
+ e.rfishhook = 638;
+ e.rfishhookreversed = 639;
+ e.rhabengali = 2525;
+ e.rhadeva = 2397;
+ e.rho = 961;
+ e.rhook = 637;
+ e.rhookturned = 635;
+ e.rhookturnedsuperior = 693;
+ e.rhosymbolgreek = 1009;
+ e.rhotichookmod = 734;
+ e.rieulacirclekorean = 12913;
+ e.rieulaparenkorean = 12817;
+ e.rieulcirclekorean = 12899;
+ e.rieulhieuhkorean = 12608;
+ e.rieulkiyeokkorean = 12602;
+ e.rieulkiyeoksioskorean = 12649;
+ e.rieulkorean = 12601;
+ e.rieulmieumkorean = 12603;
+ e.rieulpansioskorean = 12652;
+ e.rieulparenkorean = 12803;
+ e.rieulphieuphkorean = 12607;
+ e.rieulpieupkorean = 12604;
+ e.rieulpieupsioskorean = 12651;
+ e.rieulsioskorean = 12605;
+ e.rieulthieuthkorean = 12606;
+ e.rieultikeutkorean = 12650;
+ e.rieulyeorinhieuhkorean = 12653;
+ e.rightangle = 8735;
+ e.righttackbelowcmb = 793;
+ e.righttriangle = 8895;
+ e.rihiragana = 12426;
+ e.rikatakana = 12522;
+ e.rikatakanahalfwidth = 65432;
+ e.ring = 730;
+ e.ringbelowcmb = 805;
+ e.ringcmb = 778;
+ e.ringhalfleft = 703;
+ e.ringhalfleftarmenian = 1369;
+ e.ringhalfleftbelowcmb = 796;
+ e.ringhalfleftcentered = 723;
+ e.ringhalfright = 702;
+ e.ringhalfrightbelowcmb = 825;
+ e.ringhalfrightcentered = 722;
+ e.rinvertedbreve = 531;
+ e.rittorusquare = 13137;
+ e.rlinebelow = 7775;
+ e.rlongleg = 636;
+ e.rlonglegturned = 634;
+ e.rmonospace = 65362;
+ e.rohiragana = 12429;
+ e.rokatakana = 12525;
+ e.rokatakanahalfwidth = 65435;
+ e.roruathai = 3619;
+ e.rparen = 9389;
+ e.rrabengali = 2524;
+ e.rradeva = 2353;
+ e.rragurmukhi = 2652;
+ e.rreharabic = 1681;
+ e.rrehfinalarabic = 64397;
+ e.rrvocalicbengali = 2528;
+ e.rrvocalicdeva = 2400;
+ e.rrvocalicgujarati = 2784;
+ e.rrvocalicvowelsignbengali = 2500;
+ e.rrvocalicvowelsigndeva = 2372;
+ e.rrvocalicvowelsigngujarati = 2756;
+ e.rsuperior = 63217;
+ e.rtblock = 9616;
+ e.rturned = 633;
+ e.rturnedsuperior = 692;
+ e.ruhiragana = 12427;
+ e.rukatakana = 12523;
+ e.rukatakanahalfwidth = 65433;
+ e.rupeemarkbengali = 2546;
+ e.rupeesignbengali = 2547;
+ e.rupiah = 63197;
+ e.ruthai = 3620;
+ e.rvocalicbengali = 2443;
+ e.rvocalicdeva = 2315;
+ e.rvocalicgujarati = 2699;
+ e.rvocalicvowelsignbengali = 2499;
+ e.rvocalicvowelsigndeva = 2371;
+ e.rvocalicvowelsigngujarati = 2755;
+ e.s = 115;
+ e.sabengali = 2488;
+ e.sacute = 347;
+ e.sacutedotaccent = 7781;
+ e.sadarabic = 1589;
+ e.sadeva = 2360;
+ e.sadfinalarabic = 65210;
+ e.sadinitialarabic = 65211;
+ e.sadmedialarabic = 65212;
+ e.sagujarati = 2744;
+ e.sagurmukhi = 2616;
+ e.sahiragana = 12373;
+ e.sakatakana = 12469;
+ e.sakatakanahalfwidth = 65403;
+ e.sallallahoualayhewasallamarabic = 65018;
+ e.samekh = 1505;
+ e.samekhdagesh = 64321;
+ e.samekhdageshhebrew = 64321;
+ e.samekhhebrew = 1505;
+ e.saraaathai = 3634;
+ e.saraaethai = 3649;
+ e.saraaimaimalaithai = 3652;
+ e.saraaimaimuanthai = 3651;
+ e.saraamthai = 3635;
+ e.saraathai = 3632;
+ e.saraethai = 3648;
+ e.saraiileftthai = 63622;
+ e.saraiithai = 3637;
+ e.saraileftthai = 63621;
+ e.saraithai = 3636;
+ e.saraothai = 3650;
+ e.saraueeleftthai = 63624;
+ e.saraueethai = 3639;
+ e.saraueleftthai = 63623;
+ e.sarauethai = 3638;
+ e.sarauthai = 3640;
+ e.sarauuthai = 3641;
+ e.sbopomofo = 12569;
+ e.scaron = 353;
+ e.scarondotaccent = 7783;
+ e.scedilla = 351;
+ e.schwa = 601;
+ e.schwacyrillic = 1241;
+ e.schwadieresiscyrillic = 1243;
+ e.schwahook = 602;
+ e.scircle = 9442;
+ e.scircumflex = 349;
+ e.scommaaccent = 537;
+ e.sdotaccent = 7777;
+ e.sdotbelow = 7779;
+ e.sdotbelowdotaccent = 7785;
+ e.seagullbelowcmb = 828;
+ e.second = 8243;
+ e.secondtonechinese = 714;
+ e.section = 167;
+ e.seenarabic = 1587;
+ e.seenfinalarabic = 65202;
+ e.seeninitialarabic = 65203;
+ e.seenmedialarabic = 65204;
+ e.segol = 1462;
+ e.segol13 = 1462;
+ e.segol1f = 1462;
+ e.segol2c = 1462;
+ e.segolhebrew = 1462;
+ e.segolnarrowhebrew = 1462;
+ e.segolquarterhebrew = 1462;
+ e.segoltahebrew = 1426;
+ e.segolwidehebrew = 1462;
+ e.seharmenian = 1405;
+ e.sehiragana = 12379;
+ e.sekatakana = 12475;
+ e.sekatakanahalfwidth = 65406;
+ e.semicolon = 59;
+ e.semicolonarabic = 1563;
+ e.semicolonmonospace = 65307;
+ e.semicolonsmall = 65108;
+ e.semivoicedmarkkana = 12444;
+ e.semivoicedmarkkanahalfwidth = 65439;
+ e.sentisquare = 13090;
+ e.sentosquare = 13091;
+ e.seven = 55;
+ e.sevenarabic = 1639;
+ e.sevenbengali = 2541;
+ e.sevencircle = 9318;
+ e.sevencircleinversesansserif = 10128;
+ e.sevendeva = 2413;
+ e.seveneighths = 8542;
+ e.sevengujarati = 2797;
+ e.sevengurmukhi = 2669;
+ e.sevenhackarabic = 1639;
+ e.sevenhangzhou = 12327;
+ e.sevenideographicparen = 12838;
+ e.seveninferior = 8327;
+ e.sevenmonospace = 65303;
+ e.sevenoldstyle = 63287;
+ e.sevenparen = 9338;
+ e.sevenperiod = 9358;
+ e.sevenpersian = 1783;
+ e.sevenroman = 8566;
+ e.sevensuperior = 8311;
+ e.seventeencircle = 9328;
+ e.seventeenparen = 9348;
+ e.seventeenperiod = 9368;
+ e.seventhai = 3671;
+ e.sfthyphen = 173;
+ e.shaarmenian = 1399;
+ e.shabengali = 2486;
+ e.shacyrillic = 1096;
+ e.shaddaarabic = 1617;
+ e.shaddadammaarabic = 64609;
+ e.shaddadammatanarabic = 64606;
+ e.shaddafathaarabic = 64608;
+ e.shaddakasraarabic = 64610;
+ e.shaddakasratanarabic = 64607;
+ e.shade = 9618;
+ e.shadedark = 9619;
+ e.shadelight = 9617;
+ e.shademedium = 9618;
+ e.shadeva = 2358;
+ e.shagujarati = 2742;
+ e.shagurmukhi = 2614;
+ e.shalshelethebrew = 1427;
+ e.shbopomofo = 12565;
+ e.shchacyrillic = 1097;
+ e.sheenarabic = 1588;
+ e.sheenfinalarabic = 65206;
+ e.sheeninitialarabic = 65207;
+ e.sheenmedialarabic = 65208;
+ e.sheicoptic = 995;
+ e.sheqel = 8362;
+ e.sheqelhebrew = 8362;
+ e.sheva = 1456;
+ e.sheva115 = 1456;
+ e.sheva15 = 1456;
+ e.sheva22 = 1456;
+ e.sheva2e = 1456;
+ e.shevahebrew = 1456;
+ e.shevanarrowhebrew = 1456;
+ e.shevaquarterhebrew = 1456;
+ e.shevawidehebrew = 1456;
+ e.shhacyrillic = 1211;
+ e.shimacoptic = 1005;
+ e.shin = 1513;
+ e.shindagesh = 64329;
+ e.shindageshhebrew = 64329;
+ e.shindageshshindot = 64300;
+ e.shindageshshindothebrew = 64300;
+ e.shindageshsindot = 64301;
+ e.shindageshsindothebrew = 64301;
+ e.shindothebrew = 1473;
+ e.shinhebrew = 1513;
+ e.shinshindot = 64298;
+ e.shinshindothebrew = 64298;
+ e.shinsindot = 64299;
+ e.shinsindothebrew = 64299;
+ e.shook = 642;
+ e.sigma = 963;
+ e.sigma1 = 962;
+ e.sigmafinal = 962;
+ e.sigmalunatesymbolgreek = 1010;
+ e.sihiragana = 12375;
+ e.sikatakana = 12471;
+ e.sikatakanahalfwidth = 65404;
+ e.siluqhebrew = 1469;
+ e.siluqlefthebrew = 1469;
+ e.similar = 8764;
+ e.sindothebrew = 1474;
+ e.siosacirclekorean = 12916;
+ e.siosaparenkorean = 12820;
+ e.sioscieuckorean = 12670;
+ e.sioscirclekorean = 12902;
+ e.sioskiyeokkorean = 12666;
+ e.sioskorean = 12613;
+ e.siosnieunkorean = 12667;
+ e.siosparenkorean = 12806;
+ e.siospieupkorean = 12669;
+ e.siostikeutkorean = 12668;
+ e.six = 54;
+ e.sixarabic = 1638;
+ e.sixbengali = 2540;
+ e.sixcircle = 9317;
+ e.sixcircleinversesansserif = 10127;
+ e.sixdeva = 2412;
+ e.sixgujarati = 2796;
+ e.sixgurmukhi = 2668;
+ e.sixhackarabic = 1638;
+ e.sixhangzhou = 12326;
+ e.sixideographicparen = 12837;
+ e.sixinferior = 8326;
+ e.sixmonospace = 65302;
+ e.sixoldstyle = 63286;
+ e.sixparen = 9337;
+ e.sixperiod = 9357;
+ e.sixpersian = 1782;
+ e.sixroman = 8565;
+ e.sixsuperior = 8310;
+ e.sixteencircle = 9327;
+ e.sixteencurrencydenominatorbengali = 2553;
+ e.sixteenparen = 9347;
+ e.sixteenperiod = 9367;
+ e.sixthai = 3670;
+ e.slash = 47;
+ e.slashmonospace = 65295;
+ e.slong = 383;
+ e.slongdotaccent = 7835;
+ e.smileface = 9786;
+ e.smonospace = 65363;
+ e.sofpasuqhebrew = 1475;
+ e.softhyphen = 173;
+ e.softsigncyrillic = 1100;
+ e.sohiragana = 12381;
+ e.sokatakana = 12477;
+ e.sokatakanahalfwidth = 65407;
+ e.soliduslongoverlaycmb = 824;
+ e.solidusshortoverlaycmb = 823;
+ e.sorusithai = 3625;
+ e.sosalathai = 3624;
+ e.sosothai = 3595;
+ e.sosuathai = 3626;
+ e.space = 32;
+ e.spacehackarabic = 32;
+ e.spade = 9824;
+ e.spadesuitblack = 9824;
+ e.spadesuitwhite = 9828;
+ e.sparen = 9390;
+ e.squarebelowcmb = 827;
+ e.squarecc = 13252;
+ e.squarecm = 13213;
+ e.squarediagonalcrosshatchfill = 9641;
+ e.squarehorizontalfill = 9636;
+ e.squarekg = 13199;
+ e.squarekm = 13214;
+ e.squarekmcapital = 13262;
+ e.squareln = 13265;
+ e.squarelog = 13266;
+ e.squaremg = 13198;
+ e.squaremil = 13269;
+ e.squaremm = 13212;
+ e.squaremsquared = 13217;
+ e.squareorthogonalcrosshatchfill = 9638;
+ e.squareupperlefttolowerrightfill = 9639;
+ e.squareupperrighttolowerleftfill = 9640;
+ e.squareverticalfill = 9637;
+ e.squarewhitewithsmallblack = 9635;
+ e.srsquare = 13275;
+ e.ssabengali = 2487;
+ e.ssadeva = 2359;
+ e.ssagujarati = 2743;
+ e.ssangcieuckorean = 12617;
+ e.ssanghieuhkorean = 12677;
+ e.ssangieungkorean = 12672;
+ e.ssangkiyeokkorean = 12594;
+ e.ssangnieunkorean = 12645;
+ e.ssangpieupkorean = 12611;
+ e.ssangsioskorean = 12614;
+ e.ssangtikeutkorean = 12600;
+ e.ssuperior = 63218;
+ e.sterling = 163;
+ e.sterlingmonospace = 65505;
+ e.strokelongoverlaycmb = 822;
+ e.strokeshortoverlaycmb = 821;
+ e.subset = 8834;
+ e.subsetnotequal = 8842;
+ e.subsetorequal = 8838;
+ e.succeeds = 8827;
+ e.suchthat = 8715;
+ e.suhiragana = 12377;
+ e.sukatakana = 12473;
+ e.sukatakanahalfwidth = 65405;
+ e.sukunarabic = 1618;
+ e.summation = 8721;
+ e.sun = 9788;
+ e.superset = 8835;
+ e.supersetnotequal = 8843;
+ e.supersetorequal = 8839;
+ e.svsquare = 13276;
+ e.syouwaerasquare = 13180;
+ e.t = 116;
+ e.tabengali = 2468;
+ e.tackdown = 8868;
+ e.tackleft = 8867;
+ e.tadeva = 2340;
+ e.tagujarati = 2724;
+ e.tagurmukhi = 2596;
+ e.taharabic = 1591;
+ e.tahfinalarabic = 65218;
+ e.tahinitialarabic = 65219;
+ e.tahiragana = 12383;
+ e.tahmedialarabic = 65220;
+ e.taisyouerasquare = 13181;
+ e.takatakana = 12479;
+ e.takatakanahalfwidth = 65408;
+ e.tatweelarabic = 1600;
+ e.tau = 964;
+ e.tav = 1514;
+ e.tavdages = 64330;
+ e.tavdagesh = 64330;
+ e.tavdageshhebrew = 64330;
+ e.tavhebrew = 1514;
+ e.tbar = 359;
+ e.tbopomofo = 12554;
+ e.tcaron = 357;
+ e.tccurl = 680;
+ e.tcedilla = 355;
+ e.tcheharabic = 1670;
+ e.tchehfinalarabic = 64379;
+ e.tchehinitialarabic = 64380;
+ e.tchehmedialarabic = 64381;
+ e.tcircle = 9443;
+ e.tcircumflexbelow = 7793;
+ e.tcommaaccent = 355;
+ e.tdieresis = 7831;
+ e.tdotaccent = 7787;
+ e.tdotbelow = 7789;
+ e.tecyrillic = 1090;
+ e.tedescendercyrillic = 1197;
+ e.teharabic = 1578;
+ e.tehfinalarabic = 65174;
+ e.tehhahinitialarabic = 64674;
+ e.tehhahisolatedarabic = 64524;
+ e.tehinitialarabic = 65175;
+ e.tehiragana = 12390;
+ e.tehjeeminitialarabic = 64673;
+ e.tehjeemisolatedarabic = 64523;
+ e.tehmarbutaarabic = 1577;
+ e.tehmarbutafinalarabic = 65172;
+ e.tehmedialarabic = 65176;
+ e.tehmeeminitialarabic = 64676;
+ e.tehmeemisolatedarabic = 64526;
+ e.tehnoonfinalarabic = 64627;
+ e.tekatakana = 12486;
+ e.tekatakanahalfwidth = 65411;
+ e.telephone = 8481;
+ e.telephoneblack = 9742;
+ e.telishagedolahebrew = 1440;
+ e.telishaqetanahebrew = 1449;
+ e.tencircle = 9321;
+ e.tenideographicparen = 12841;
+ e.tenparen = 9341;
+ e.tenperiod = 9361;
+ e.tenroman = 8569;
+ e.tesh = 679;
+ e.tet = 1496;
+ e.tetdagesh = 64312;
+ e.tetdageshhebrew = 64312;
+ e.tethebrew = 1496;
+ e.tetsecyrillic = 1205;
+ e.tevirhebrew = 1435;
+ e.tevirlefthebrew = 1435;
+ e.thabengali = 2469;
+ e.thadeva = 2341;
+ e.thagujarati = 2725;
+ e.thagurmukhi = 2597;
+ e.thalarabic = 1584;
+ e.thalfinalarabic = 65196;
+ e.thanthakhatlowleftthai = 63640;
+ e.thanthakhatlowrightthai = 63639;
+ e.thanthakhatthai = 3660;
+ e.thanthakhatupperleftthai = 63638;
+ e.theharabic = 1579;
+ e.thehfinalarabic = 65178;
+ e.thehinitialarabic = 65179;
+ e.thehmedialarabic = 65180;
+ e.thereexists = 8707;
+ e.therefore = 8756;
+ e.theta = 952;
+ e.theta1 = 977;
+ e.thetasymbolgreek = 977;
+ e.thieuthacirclekorean = 12921;
+ e.thieuthaparenkorean = 12825;
+ e.thieuthcirclekorean = 12907;
+ e.thieuthkorean = 12620;
+ e.thieuthparenkorean = 12811;
+ e.thirteencircle = 9324;
+ e.thirteenparen = 9344;
+ e.thirteenperiod = 9364;
+ e.thonangmonthothai = 3601;
+ e.thook = 429;
+ e.thophuthaothai = 3602;
+ e.thorn = 254;
+ e.thothahanthai = 3607;
+ e.thothanthai = 3600;
+ e.thothongthai = 3608;
+ e.thothungthai = 3606;
+ e.thousandcyrillic = 1154;
+ e.thousandsseparatorarabic = 1644;
+ e.thousandsseparatorpersian = 1644;
+ e.three = 51;
+ e.threearabic = 1635;
+ e.threebengali = 2537;
+ e.threecircle = 9314;
+ e.threecircleinversesansserif = 10124;
+ e.threedeva = 2409;
+ e.threeeighths = 8540;
+ e.threegujarati = 2793;
+ e.threegurmukhi = 2665;
+ e.threehackarabic = 1635;
+ e.threehangzhou = 12323;
+ e.threeideographicparen = 12834;
+ e.threeinferior = 8323;
+ e.threemonospace = 65299;
+ e.threenumeratorbengali = 2550;
+ e.threeoldstyle = 63283;
+ e.threeparen = 9334;
+ e.threeperiod = 9354;
+ e.threepersian = 1779;
+ e.threequarters = 190;
+ e.threequartersemdash = 63198;
+ e.threeroman = 8562;
+ e.threesuperior = 179;
+ e.threethai = 3667;
+ e.thzsquare = 13204;
+ e.tihiragana = 12385;
+ e.tikatakana = 12481;
+ e.tikatakanahalfwidth = 65409;
+ e.tikeutacirclekorean = 12912;
+ e.tikeutaparenkorean = 12816;
+ e.tikeutcirclekorean = 12898;
+ e.tikeutkorean = 12599;
+ e.tikeutparenkorean = 12802;
+ e.tilde = 732;
+ e.tildebelowcmb = 816;
+ e.tildecmb = 771;
+ e.tildecomb = 771;
+ e.tildedoublecmb = 864;
+ e.tildeoperator = 8764;
+ e.tildeoverlaycmb = 820;
+ e.tildeverticalcmb = 830;
+ e.timescircle = 8855;
+ e.tipehahebrew = 1430;
+ e.tipehalefthebrew = 1430;
+ e.tippigurmukhi = 2672;
+ e.titlocyrilliccmb = 1155;
+ e.tiwnarmenian = 1407;
+ e.tlinebelow = 7791;
+ e.tmonospace = 65364;
+ e.toarmenian = 1385;
+ e.tohiragana = 12392;
+ e.tokatakana = 12488;
+ e.tokatakanahalfwidth = 65412;
+ e.tonebarextrahighmod = 741;
+ e.tonebarextralowmod = 745;
+ e.tonebarhighmod = 742;
+ e.tonebarlowmod = 744;
+ e.tonebarmidmod = 743;
+ e.tonefive = 445;
+ e.tonesix = 389;
+ e.tonetwo = 424;
+ e.tonos = 900;
+ e.tonsquare = 13095;
+ e.topatakthai = 3599;
+ e.tortoiseshellbracketleft = 12308;
+ e.tortoiseshellbracketleftsmall = 65117;
+ e.tortoiseshellbracketleftvertical = 65081;
+ e.tortoiseshellbracketright = 12309;
+ e.tortoiseshellbracketrightsmall = 65118;
+ e.tortoiseshellbracketrightvertical = 65082;
+ e.totaothai = 3605;
+ e.tpalatalhook = 427;
+ e.tparen = 9391;
+ e.trademark = 8482;
+ e.trademarksans = 63722;
+ e.trademarkserif = 63195;
+ e.tretroflexhook = 648;
+ e.triagdn = 9660;
+ e.triaglf = 9668;
+ e.triagrt = 9658;
+ e.triagup = 9650;
+ e.ts = 678;
+ e.tsadi = 1510;
+ e.tsadidagesh = 64326;
+ e.tsadidageshhebrew = 64326;
+ e.tsadihebrew = 1510;
+ e.tsecyrillic = 1094;
+ e.tsere = 1461;
+ e.tsere12 = 1461;
+ e.tsere1e = 1461;
+ e.tsere2b = 1461;
+ e.tserehebrew = 1461;
+ e.tserenarrowhebrew = 1461;
+ e.tserequarterhebrew = 1461;
+ e.tserewidehebrew = 1461;
+ e.tshecyrillic = 1115;
+ e.tsuperior = 63219;
+ e.ttabengali = 2463;
+ e.ttadeva = 2335;
+ e.ttagujarati = 2719;
+ e.ttagurmukhi = 2591;
+ e.tteharabic = 1657;
+ e.ttehfinalarabic = 64359;
+ e.ttehinitialarabic = 64360;
+ e.ttehmedialarabic = 64361;
+ e.tthabengali = 2464;
+ e.tthadeva = 2336;
+ e.tthagujarati = 2720;
+ e.tthagurmukhi = 2592;
+ e.tturned = 647;
+ e.tuhiragana = 12388;
+ e.tukatakana = 12484;
+ e.tukatakanahalfwidth = 65410;
+ e.tusmallhiragana = 12387;
+ e.tusmallkatakana = 12483;
+ e.tusmallkatakanahalfwidth = 65391;
+ e.twelvecircle = 9323;
+ e.twelveparen = 9343;
+ e.twelveperiod = 9363;
+ e.twelveroman = 8571;
+ e.twentycircle = 9331;
+ e.twentyhangzhou = 21316;
+ e.twentyparen = 9351;
+ e.twentyperiod = 9371;
+ e.two = 50;
+ e.twoarabic = 1634;
+ e.twobengali = 2536;
+ e.twocircle = 9313;
+ e.twocircleinversesansserif = 10123;
+ e.twodeva = 2408;
+ e.twodotenleader = 8229;
+ e.twodotleader = 8229;
+ e.twodotleadervertical = 65072;
+ e.twogujarati = 2792;
+ e.twogurmukhi = 2664;
+ e.twohackarabic = 1634;
+ e.twohangzhou = 12322;
+ e.twoideographicparen = 12833;
+ e.twoinferior = 8322;
+ e.twomonospace = 65298;
+ e.twonumeratorbengali = 2549;
+ e.twooldstyle = 63282;
+ e.twoparen = 9333;
+ e.twoperiod = 9353;
+ e.twopersian = 1778;
+ e.tworoman = 8561;
+ e.twostroke = 443;
+ e.twosuperior = 178;
+ e.twothai = 3666;
+ e.twothirds = 8532;
+ e.u = 117;
+ e.uacute = 250;
+ e.ubar = 649;
+ e.ubengali = 2441;
+ e.ubopomofo = 12584;
+ e.ubreve = 365;
+ e.ucaron = 468;
+ e.ucircle = 9444;
+ e.ucircumflex = 251;
+ e.ucircumflexbelow = 7799;
+ e.ucyrillic = 1091;
+ e.udattadeva = 2385;
+ e.udblacute = 369;
+ e.udblgrave = 533;
+ e.udeva = 2313;
+ e.udieresis = 252;
+ e.udieresisacute = 472;
+ e.udieresisbelow = 7795;
+ e.udieresiscaron = 474;
+ e.udieresiscyrillic = 1265;
+ e.udieresisgrave = 476;
+ e.udieresismacron = 470;
+ e.udotbelow = 7909;
+ e.ugrave = 249;
+ e.ugujarati = 2697;
+ e.ugurmukhi = 2569;
+ e.uhiragana = 12358;
+ e.uhookabove = 7911;
+ e.uhorn = 432;
+ e.uhornacute = 7913;
+ e.uhorndotbelow = 7921;
+ e.uhorngrave = 7915;
+ e.uhornhookabove = 7917;
+ e.uhorntilde = 7919;
+ e.uhungarumlaut = 369;
+ e.uhungarumlautcyrillic = 1267;
+ e.uinvertedbreve = 535;
+ e.ukatakana = 12454;
+ e.ukatakanahalfwidth = 65395;
+ e.ukcyrillic = 1145;
+ e.ukorean = 12636;
+ e.umacron = 363;
+ e.umacroncyrillic = 1263;
+ e.umacrondieresis = 7803;
+ e.umatragurmukhi = 2625;
+ e.umonospace = 65365;
+ e.underscore = 95;
+ e.underscoredbl = 8215;
+ e.underscoremonospace = 65343;
+ e.underscorevertical = 65075;
+ e.underscorewavy = 65103;
+ e.union = 8746;
+ e.universal = 8704;
+ e.uogonek = 371;
+ e.uparen = 9392;
+ e.upblock = 9600;
+ e.upperdothebrew = 1476;
+ e.upsilon = 965;
+ e.upsilondieresis = 971;
+ e.upsilondieresistonos = 944;
+ e.upsilonlatin = 650;
+ e.upsilontonos = 973;
+ e.uptackbelowcmb = 797;
+ e.uptackmod = 724;
+ e.uragurmukhi = 2675;
+ e.uring = 367;
+ e.ushortcyrillic = 1118;
+ e.usmallhiragana = 12357;
+ e.usmallkatakana = 12453;
+ e.usmallkatakanahalfwidth = 65385;
+ e.ustraightcyrillic = 1199;
+ e.ustraightstrokecyrillic = 1201;
+ e.utilde = 361;
+ e.utildeacute = 7801;
+ e.utildebelow = 7797;
+ e.uubengali = 2442;
+ e.uudeva = 2314;
+ e.uugujarati = 2698;
+ e.uugurmukhi = 2570;
+ e.uumatragurmukhi = 2626;
+ e.uuvowelsignbengali = 2498;
+ e.uuvowelsigndeva = 2370;
+ e.uuvowelsigngujarati = 2754;
+ e.uvowelsignbengali = 2497;
+ e.uvowelsigndeva = 2369;
+ e.uvowelsigngujarati = 2753;
+ e.v = 118;
+ e.vadeva = 2357;
+ e.vagujarati = 2741;
+ e.vagurmukhi = 2613;
+ e.vakatakana = 12535;
+ e.vav = 1493;
+ e.vavdagesh = 64309;
+ e.vavdagesh65 = 64309;
+ e.vavdageshhebrew = 64309;
+ e.vavhebrew = 1493;
+ e.vavholam = 64331;
+ e.vavholamhebrew = 64331;
+ e.vavvavhebrew = 1520;
+ e.vavyodhebrew = 1521;
+ e.vcircle = 9445;
+ e.vdotbelow = 7807;
+ e.vecyrillic = 1074;
+ e.veharabic = 1700;
+ e.vehfinalarabic = 64363;
+ e.vehinitialarabic = 64364;
+ e.vehmedialarabic = 64365;
+ e.vekatakana = 12537;
+ e.venus = 9792;
+ e.verticalbar = 124;
+ e.verticallineabovecmb = 781;
+ e.verticallinebelowcmb = 809;
+ e.verticallinelowmod = 716;
+ e.verticallinemod = 712;
+ e.vewarmenian = 1406;
+ e.vhook = 651;
+ e.vikatakana = 12536;
+ e.viramabengali = 2509;
+ e.viramadeva = 2381;
+ e.viramagujarati = 2765;
+ e.visargabengali = 2435;
+ e.visargadeva = 2307;
+ e.visargagujarati = 2691;
+ e.vmonospace = 65366;
+ e.voarmenian = 1400;
+ e.voicediterationhiragana = 12446;
+ e.voicediterationkatakana = 12542;
+ e.voicedmarkkana = 12443;
+ e.voicedmarkkanahalfwidth = 65438;
+ e.vokatakana = 12538;
+ e.vparen = 9393;
+ e.vtilde = 7805;
+ e.vturned = 652;
+ e.vuhiragana = 12436;
+ e.vukatakana = 12532;
+ e.w = 119;
+ e.wacute = 7811;
+ e.waekorean = 12633;
+ e.wahiragana = 12431;
+ e.wakatakana = 12527;
+ e.wakatakanahalfwidth = 65436;
+ e.wakorean = 12632;
+ e.wasmallhiragana = 12430;
+ e.wasmallkatakana = 12526;
+ e.wattosquare = 13143;
+ e.wavedash = 12316;
+ e.wavyunderscorevertical = 65076;
+ e.wawarabic = 1608;
+ e.wawfinalarabic = 65262;
+ e.wawhamzaabovearabic = 1572;
+ e.wawhamzaabovefinalarabic = 65158;
+ e.wbsquare = 13277;
+ e.wcircle = 9446;
+ e.wcircumflex = 373;
+ e.wdieresis = 7813;
+ e.wdotaccent = 7815;
+ e.wdotbelow = 7817;
+ e.wehiragana = 12433;
+ e.weierstrass = 8472;
+ e.wekatakana = 12529;
+ e.wekorean = 12638;
+ e.weokorean = 12637;
+ e.wgrave = 7809;
+ e.whitebullet = 9702;
+ e.whitecircle = 9675;
+ e.whitecircleinverse = 9689;
+ e.whitecornerbracketleft = 12302;
+ e.whitecornerbracketleftvertical = 65091;
+ e.whitecornerbracketright = 12303;
+ e.whitecornerbracketrightvertical = 65092;
+ e.whitediamond = 9671;
+ e.whitediamondcontainingblacksmalldiamond = 9672;
+ e.whitedownpointingsmalltriangle = 9663;
+ e.whitedownpointingtriangle = 9661;
+ e.whiteleftpointingsmalltriangle = 9667;
+ e.whiteleftpointingtriangle = 9665;
+ e.whitelenticularbracketleft = 12310;
+ e.whitelenticularbracketright = 12311;
+ e.whiterightpointingsmalltriangle = 9657;
+ e.whiterightpointingtriangle = 9655;
+ e.whitesmallsquare = 9643;
+ e.whitesmilingface = 9786;
+ e.whitesquare = 9633;
+ e.whitestar = 9734;
+ e.whitetelephone = 9743;
+ e.whitetortoiseshellbracketleft = 12312;
+ e.whitetortoiseshellbracketright = 12313;
+ e.whiteuppointingsmalltriangle = 9653;
+ e.whiteuppointingtriangle = 9651;
+ e.wihiragana = 12432;
+ e.wikatakana = 12528;
+ e.wikorean = 12639;
+ e.wmonospace = 65367;
+ e.wohiragana = 12434;
+ e.wokatakana = 12530;
+ e.wokatakanahalfwidth = 65382;
+ e.won = 8361;
+ e.wonmonospace = 65510;
+ e.wowaenthai = 3623;
+ e.wparen = 9394;
+ e.wring = 7832;
+ e.wsuperior = 695;
+ e.wturned = 653;
+ e.wynn = 447;
+ e.x = 120;
+ e.xabovecmb = 829;
+ e.xbopomofo = 12562;
+ e.xcircle = 9447;
+ e.xdieresis = 7821;
+ e.xdotaccent = 7819;
+ e.xeharmenian = 1389;
+ e.xi = 958;
+ e.xmonospace = 65368;
+ e.xparen = 9395;
+ e.xsuperior = 739;
+ e.y = 121;
+ e.yaadosquare = 13134;
+ e.yabengali = 2479;
+ e.yacute = 253;
+ e.yadeva = 2351;
+ e.yaekorean = 12626;
+ e.yagujarati = 2735;
+ e.yagurmukhi = 2607;
+ e.yahiragana = 12420;
+ e.yakatakana = 12516;
+ e.yakatakanahalfwidth = 65428;
+ e.yakorean = 12625;
+ e.yamakkanthai = 3662;
+ e.yasmallhiragana = 12419;
+ e.yasmallkatakana = 12515;
+ e.yasmallkatakanahalfwidth = 65388;
+ e.yatcyrillic = 1123;
+ e.ycircle = 9448;
+ e.ycircumflex = 375;
+ e.ydieresis = 255;
+ e.ydotaccent = 7823;
+ e.ydotbelow = 7925;
+ e.yeharabic = 1610;
+ e.yehbarreearabic = 1746;
+ e.yehbarreefinalarabic = 64431;
+ e.yehfinalarabic = 65266;
+ e.yehhamzaabovearabic = 1574;
+ e.yehhamzaabovefinalarabic = 65162;
+ e.yehhamzaaboveinitialarabic = 65163;
+ e.yehhamzaabovemedialarabic = 65164;
+ e.yehinitialarabic = 65267;
+ e.yehmedialarabic = 65268;
+ e.yehmeeminitialarabic = 64733;
+ e.yehmeemisolatedarabic = 64600;
+ e.yehnoonfinalarabic = 64660;
+ e.yehthreedotsbelowarabic = 1745;
+ e.yekorean = 12630;
+ e.yen = 165;
+ e.yenmonospace = 65509;
+ e.yeokorean = 12629;
+ e.yeorinhieuhkorean = 12678;
+ e.yerahbenyomohebrew = 1450;
+ e.yerahbenyomolefthebrew = 1450;
+ e.yericyrillic = 1099;
+ e.yerudieresiscyrillic = 1273;
+ e.yesieungkorean = 12673;
+ e.yesieungpansioskorean = 12675;
+ e.yesieungsioskorean = 12674;
+ e.yetivhebrew = 1434;
+ e.ygrave = 7923;
+ e.yhook = 436;
+ e.yhookabove = 7927;
+ e.yiarmenian = 1397;
+ e.yicyrillic = 1111;
+ e.yikorean = 12642;
+ e.yinyang = 9775;
+ e.yiwnarmenian = 1410;
+ e.ymonospace = 65369;
+ e.yod = 1497;
+ e.yoddagesh = 64313;
+ e.yoddageshhebrew = 64313;
+ e.yodhebrew = 1497;
+ e.yodyodhebrew = 1522;
+ e.yodyodpatahhebrew = 64287;
+ e.yohiragana = 12424;
+ e.yoikorean = 12681;
+ e.yokatakana = 12520;
+ e.yokatakanahalfwidth = 65430;
+ e.yokorean = 12635;
+ e.yosmallhiragana = 12423;
+ e.yosmallkatakana = 12519;
+ e.yosmallkatakanahalfwidth = 65390;
+ e.yotgreek = 1011;
+ e.yoyaekorean = 12680;
+ e.yoyakorean = 12679;
+ e.yoyakthai = 3618;
+ e.yoyingthai = 3597;
+ e.yparen = 9396;
+ e.ypogegrammeni = 890;
+ e.ypogegrammenigreekcmb = 837;
+ e.yr = 422;
+ e.yring = 7833;
+ e.ysuperior = 696;
+ e.ytilde = 7929;
+ e.yturned = 654;
+ e.yuhiragana = 12422;
+ e.yuikorean = 12684;
+ e.yukatakana = 12518;
+ e.yukatakanahalfwidth = 65429;
+ e.yukorean = 12640;
+ e.yusbigcyrillic = 1131;
+ e.yusbigiotifiedcyrillic = 1133;
+ e.yuslittlecyrillic = 1127;
+ e.yuslittleiotifiedcyrillic = 1129;
+ e.yusmallhiragana = 12421;
+ e.yusmallkatakana = 12517;
+ e.yusmallkatakanahalfwidth = 65389;
+ e.yuyekorean = 12683;
+ e.yuyeokorean = 12682;
+ e.yyabengali = 2527;
+ e.yyadeva = 2399;
+ e.z = 122;
+ e.zaarmenian = 1382;
+ e.zacute = 378;
+ e.zadeva = 2395;
+ e.zagurmukhi = 2651;
+ e.zaharabic = 1592;
+ e.zahfinalarabic = 65222;
+ e.zahinitialarabic = 65223;
+ e.zahiragana = 12374;
+ e.zahmedialarabic = 65224;
+ e.zainarabic = 1586;
+ e.zainfinalarabic = 65200;
+ e.zakatakana = 12470;
+ e.zaqefgadolhebrew = 1429;
+ e.zaqefqatanhebrew = 1428;
+ e.zarqahebrew = 1432;
+ e.zayin = 1494;
+ e.zayindagesh = 64310;
+ e.zayindageshhebrew = 64310;
+ e.zayinhebrew = 1494;
+ e.zbopomofo = 12567;
+ e.zcaron = 382;
+ e.zcircle = 9449;
+ e.zcircumflex = 7825;
+ e.zcurl = 657;
+ e.zdot = 380;
+ e.zdotaccent = 380;
+ e.zdotbelow = 7827;
+ e.zecyrillic = 1079;
+ e.zedescendercyrillic = 1177;
+ e.zedieresiscyrillic = 1247;
+ e.zehiragana = 12380;
+ e.zekatakana = 12476;
+ e.zero = 48;
+ e.zeroarabic = 1632;
+ e.zerobengali = 2534;
+ e.zerodeva = 2406;
+ e.zerogujarati = 2790;
+ e.zerogurmukhi = 2662;
+ e.zerohackarabic = 1632;
+ e.zeroinferior = 8320;
+ e.zeromonospace = 65296;
+ e.zerooldstyle = 63280;
+ e.zeropersian = 1776;
+ e.zerosuperior = 8304;
+ e.zerothai = 3664;
+ e.zerowidthjoiner = 65279;
+ e.zerowidthnonjoiner = 8204;
+ e.zerowidthspace = 8203;
+ e.zeta = 950;
+ e.zhbopomofo = 12563;
+ e.zhearmenian = 1386;
+ e.zhebrevecyrillic = 1218;
+ e.zhecyrillic = 1078;
+ e.zhedescendercyrillic = 1175;
+ e.zhedieresiscyrillic = 1245;
+ e.zihiragana = 12376;
+ e.zikatakana = 12472;
+ e.zinorhebrew = 1454;
+ e.zlinebelow = 7829;
+ e.zmonospace = 65370;
+ e.zohiragana = 12382;
+ e.zokatakana = 12478;
+ e.zparen = 9397;
+ e.zretroflexhook = 656;
+ e.zstroke = 438;
+ e.zuhiragana = 12378;
+ e.zukatakana = 12474;
+ e[".notdef"] = 0;
+ e.angbracketleftbig = 9001;
+ e.angbracketleftBig = 9001;
+ e.angbracketleftbigg = 9001;
+ e.angbracketleftBigg = 9001;
+ e.angbracketrightBig = 9002;
+ e.angbracketrightbig = 9002;
+ e.angbracketrightBigg = 9002;
+ e.angbracketrightbigg = 9002;
+ e.arrowhookleft = 8618;
+ e.arrowhookright = 8617;
+ e.arrowlefttophalf = 8636;
+ e.arrowleftbothalf = 8637;
+ e.arrownortheast = 8599;
+ e.arrownorthwest = 8598;
+ e.arrowrighttophalf = 8640;
+ e.arrowrightbothalf = 8641;
+ e.arrowsoutheast = 8600;
+ e.arrowsouthwest = 8601;
+ e.backslashbig = 8726;
+ e.backslashBig = 8726;
+ e.backslashBigg = 8726;
+ e.backslashbigg = 8726;
+ e.bardbl = 8214;
+ e.bracehtipdownleft = 65079;
+ e.bracehtipdownright = 65079;
+ e.bracehtipupleft = 65080;
+ e.bracehtipupright = 65080;
+ e.braceleftBig = 123;
+ e.braceleftbig = 123;
+ e.braceleftbigg = 123;
+ e.braceleftBigg = 123;
+ e.bracerightBig = 125;
+ e.bracerightbig = 125;
+ e.bracerightbigg = 125;
+ e.bracerightBigg = 125;
+ e.bracketleftbig = 91;
+ e.bracketleftBig = 91;
+ e.bracketleftbigg = 91;
+ e.bracketleftBigg = 91;
+ e.bracketrightBig = 93;
+ e.bracketrightbig = 93;
+ e.bracketrightbigg = 93;
+ e.bracketrightBigg = 93;
+ e.ceilingleftbig = 8968;
+ e.ceilingleftBig = 8968;
+ e.ceilingleftBigg = 8968;
+ e.ceilingleftbigg = 8968;
+ e.ceilingrightbig = 8969;
+ e.ceilingrightBig = 8969;
+ e.ceilingrightbigg = 8969;
+ e.ceilingrightBigg = 8969;
+ e.circledotdisplay = 8857;
+ e.circledottext = 8857;
+ e.circlemultiplydisplay = 8855;
+ e.circlemultiplytext = 8855;
+ e.circleplusdisplay = 8853;
+ e.circleplustext = 8853;
+ e.contintegraldisplay = 8750;
+ e.contintegraltext = 8750;
+ e.coproductdisplay = 8720;
+ e.coproducttext = 8720;
+ e.floorleftBig = 8970;
+ e.floorleftbig = 8970;
+ e.floorleftbigg = 8970;
+ e.floorleftBigg = 8970;
+ e.floorrightbig = 8971;
+ e.floorrightBig = 8971;
+ e.floorrightBigg = 8971;
+ e.floorrightbigg = 8971;
+ e.hatwide = 770;
+ e.hatwider = 770;
+ e.hatwidest = 770;
+ e.intercal = 7488;
+ e.integraldisplay = 8747;
+ e.integraltext = 8747;
+ e.intersectiondisplay = 8898;
+ e.intersectiontext = 8898;
+ e.logicalanddisplay = 8743;
+ e.logicalandtext = 8743;
+ e.logicalordisplay = 8744;
+ e.logicalortext = 8744;
+ e.parenleftBig = 40;
+ e.parenleftbig = 40;
+ e.parenleftBigg = 40;
+ e.parenleftbigg = 40;
+ e.parenrightBig = 41;
+ e.parenrightbig = 41;
+ e.parenrightBigg = 41;
+ e.parenrightbigg = 41;
+ e.prime = 8242;
+ e.productdisplay = 8719;
+ e.producttext = 8719;
+ e.radicalbig = 8730;
+ e.radicalBig = 8730;
+ e.radicalBigg = 8730;
+ e.radicalbigg = 8730;
+ e.radicalbt = 8730;
+ e.radicaltp = 8730;
+ e.radicalvertex = 8730;
+ e.slashbig = 47;
+ e.slashBig = 47;
+ e.slashBigg = 47;
+ e.slashbigg = 47;
+ e.summationdisplay = 8721;
+ e.summationtext = 8721;
+ e.tildewide = 732;
+ e.tildewider = 732;
+ e.tildewidest = 732;
+ e.uniondisplay = 8899;
+ e.unionmultidisplay = 8846;
+ e.unionmultitext = 8846;
+ e.unionsqdisplay = 8852;
+ e.unionsqtext = 8852;
+ e.uniontext = 8899;
+ e.vextenddouble = 8741;
+ e.vextendsingle = 8739;
+ });
+ t.getGlyphsUnicode = n;
+ const i = (0, r.getLookupTableFactory)(function (e) {
+ e.space = 32;
+ e.a1 = 9985;
+ e.a2 = 9986;
+ e.a202 = 9987;
+ e.a3 = 9988;
+ e.a4 = 9742;
+ e.a5 = 9990;
+ e.a119 = 9991;
+ e.a118 = 9992;
+ e.a117 = 9993;
+ e.a11 = 9755;
+ e.a12 = 9758;
+ e.a13 = 9996;
+ e.a14 = 9997;
+ e.a15 = 9998;
+ e.a16 = 9999;
+ e.a105 = 1e4;
+ e.a17 = 10001;
+ e.a18 = 10002;
+ e.a19 = 10003;
+ e.a20 = 10004;
+ e.a21 = 10005;
+ e.a22 = 10006;
+ e.a23 = 10007;
+ e.a24 = 10008;
+ e.a25 = 10009;
+ e.a26 = 10010;
+ e.a27 = 10011;
+ e.a28 = 10012;
+ e.a6 = 10013;
+ e.a7 = 10014;
+ e.a8 = 10015;
+ e.a9 = 10016;
+ e.a10 = 10017;
+ e.a29 = 10018;
+ e.a30 = 10019;
+ e.a31 = 10020;
+ e.a32 = 10021;
+ e.a33 = 10022;
+ e.a34 = 10023;
+ e.a35 = 9733;
+ e.a36 = 10025;
+ e.a37 = 10026;
+ e.a38 = 10027;
+ e.a39 = 10028;
+ e.a40 = 10029;
+ e.a41 = 10030;
+ e.a42 = 10031;
+ e.a43 = 10032;
+ e.a44 = 10033;
+ e.a45 = 10034;
+ e.a46 = 10035;
+ e.a47 = 10036;
+ e.a48 = 10037;
+ e.a49 = 10038;
+ e.a50 = 10039;
+ e.a51 = 10040;
+ e.a52 = 10041;
+ e.a53 = 10042;
+ e.a54 = 10043;
+ e.a55 = 10044;
+ e.a56 = 10045;
+ e.a57 = 10046;
+ e.a58 = 10047;
+ e.a59 = 10048;
+ e.a60 = 10049;
+ e.a61 = 10050;
+ e.a62 = 10051;
+ e.a63 = 10052;
+ e.a64 = 10053;
+ e.a65 = 10054;
+ e.a66 = 10055;
+ e.a67 = 10056;
+ e.a68 = 10057;
+ e.a69 = 10058;
+ e.a70 = 10059;
+ e.a71 = 9679;
+ e.a72 = 10061;
+ e.a73 = 9632;
+ e.a74 = 10063;
+ e.a203 = 10064;
+ e.a75 = 10065;
+ e.a204 = 10066;
+ e.a76 = 9650;
+ e.a77 = 9660;
+ e.a78 = 9670;
+ e.a79 = 10070;
+ e.a81 = 9687;
+ e.a82 = 10072;
+ e.a83 = 10073;
+ e.a84 = 10074;
+ e.a97 = 10075;
+ e.a98 = 10076;
+ e.a99 = 10077;
+ e.a100 = 10078;
+ e.a101 = 10081;
+ e.a102 = 10082;
+ e.a103 = 10083;
+ e.a104 = 10084;
+ e.a106 = 10085;
+ e.a107 = 10086;
+ e.a108 = 10087;
+ e.a112 = 9827;
+ e.a111 = 9830;
+ e.a110 = 9829;
+ e.a109 = 9824;
+ e.a120 = 9312;
+ e.a121 = 9313;
+ e.a122 = 9314;
+ e.a123 = 9315;
+ e.a124 = 9316;
+ e.a125 = 9317;
+ e.a126 = 9318;
+ e.a127 = 9319;
+ e.a128 = 9320;
+ e.a129 = 9321;
+ e.a130 = 10102;
+ e.a131 = 10103;
+ e.a132 = 10104;
+ e.a133 = 10105;
+ e.a134 = 10106;
+ e.a135 = 10107;
+ e.a136 = 10108;
+ e.a137 = 10109;
+ e.a138 = 10110;
+ e.a139 = 10111;
+ e.a140 = 10112;
+ e.a141 = 10113;
+ e.a142 = 10114;
+ e.a143 = 10115;
+ e.a144 = 10116;
+ e.a145 = 10117;
+ e.a146 = 10118;
+ e.a147 = 10119;
+ e.a148 = 10120;
+ e.a149 = 10121;
+ e.a150 = 10122;
+ e.a151 = 10123;
+ e.a152 = 10124;
+ e.a153 = 10125;
+ e.a154 = 10126;
+ e.a155 = 10127;
+ e.a156 = 10128;
+ e.a157 = 10129;
+ e.a158 = 10130;
+ e.a159 = 10131;
+ e.a160 = 10132;
+ e.a161 = 8594;
+ e.a163 = 8596;
+ e.a164 = 8597;
+ e.a196 = 10136;
+ e.a165 = 10137;
+ e.a192 = 10138;
+ e.a166 = 10139;
+ e.a167 = 10140;
+ e.a168 = 10141;
+ e.a169 = 10142;
+ e.a170 = 10143;
+ e.a171 = 10144;
+ e.a172 = 10145;
+ e.a173 = 10146;
+ e.a162 = 10147;
+ e.a174 = 10148;
+ e.a175 = 10149;
+ e.a176 = 10150;
+ e.a177 = 10151;
+ e.a178 = 10152;
+ e.a179 = 10153;
+ e.a193 = 10154;
+ e.a180 = 10155;
+ e.a199 = 10156;
+ e.a181 = 10157;
+ e.a200 = 10158;
+ e.a182 = 10159;
+ e.a201 = 10161;
+ e.a183 = 10162;
+ e.a184 = 10163;
+ e.a197 = 10164;
+ e.a185 = 10165;
+ e.a194 = 10166;
+ e.a198 = 10167;
+ e.a186 = 10168;
+ e.a195 = 10169;
+ e.a187 = 10170;
+ e.a188 = 10171;
+ e.a189 = 10172;
+ e.a190 = 10173;
+ e.a191 = 10174;
+ e.a89 = 10088;
+ e.a90 = 10089;
+ e.a93 = 10090;
+ e.a94 = 10091;
+ e.a91 = 10092;
+ e.a92 = 10093;
+ e.a205 = 10094;
+ e.a85 = 10095;
+ e.a206 = 10096;
+ e.a86 = 10097;
+ e.a87 = 10098;
+ e.a88 = 10099;
+ e.a95 = 10100;
+ e.a96 = 10101;
+ e[".notdef"] = 0;
+ });
+ t.getDingbatsGlyphsUnicode = i;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.clearUnicodeCaches = function clearUnicodeCaches() {
+ s.clear();
+ };
+ t.getCharUnicodeCategory = function getCharUnicodeCategory(e) {
+ const t = s.get(e);
+ if (t) return t;
+ const a = e.match(i),
+ r = {
+ isWhitespace: !!a?.[1],
+ isZeroWidthDiacritic: !!a?.[2],
+ isInvisibleFormatMark: !!a?.[3],
+ };
+ s.set(e, r);
+ return r;
+ };
+ t.getUnicodeForGlyph = function getUnicodeForGlyph(e, t) {
+ let a = t[e];
+ if (void 0 !== a) return a;
+ if (!e) return -1;
+ if ("u" === e[0]) {
+ const t = e.length;
+ let r;
+ if (7 === t && "n" === e[1] && "i" === e[2]) r = e.substring(3);
+ else {
+ if (!(t >= 5 && t <= 7)) return -1;
+ r = e.substring(1);
+ }
+ if (r === r.toUpperCase()) {
+ a = parseInt(r, 16);
+ if (a >= 0) return a;
+ }
+ }
+ return -1;
+ };
+ t.getUnicodeRangeFor = function getUnicodeRangeFor(e, t = -1) {
+ if (-1 !== t) {
+ const a = n[t];
+ for (let r = 0, n = a.length; r < n; r += 2)
+ if (e >= a[r] && e <= a[r + 1]) return t;
+ }
+ for (let t = 0, a = n.length; t < a; t++) {
+ const a = n[t];
+ for (let r = 0, n = a.length; r < n; r += 2)
+ if (e >= a[r] && e <= a[r + 1]) return t;
+ }
+ return -1;
+ };
+ t.mapSpecialUnicodeValues = function mapSpecialUnicodeValues(e) {
+ if (e >= 65520 && e <= 65535) return 0;
+ if (e >= 62976 && e <= 63743) return r()[e] || e;
+ if (173 === e) return 45;
+ return e;
+ };
+ const r = (0, a(3).getLookupTableFactory)(function (e) {
+ e[63721] = 169;
+ e[63193] = 169;
+ e[63720] = 174;
+ e[63194] = 174;
+ e[63722] = 8482;
+ e[63195] = 8482;
+ e[63729] = 9127;
+ e[63730] = 9128;
+ e[63731] = 9129;
+ e[63740] = 9131;
+ e[63741] = 9132;
+ e[63742] = 9133;
+ e[63726] = 9121;
+ e[63727] = 9122;
+ e[63728] = 9123;
+ e[63737] = 9124;
+ e[63738] = 9125;
+ e[63739] = 9126;
+ e[63723] = 9115;
+ e[63724] = 9116;
+ e[63725] = 9117;
+ e[63734] = 9118;
+ e[63735] = 9119;
+ e[63736] = 9120;
+ });
+ const n = [
+ [0, 127],
+ [128, 255],
+ [256, 383],
+ [384, 591],
+ [592, 687, 7424, 7551, 7552, 7615],
+ [688, 767, 42752, 42783],
+ [768, 879, 7616, 7679],
+ [880, 1023],
+ [11392, 11519],
+ [1024, 1279, 1280, 1327, 11744, 11775, 42560, 42655],
+ [1328, 1423],
+ [1424, 1535],
+ [42240, 42559],
+ [1536, 1791, 1872, 1919],
+ [1984, 2047],
+ [2304, 2431],
+ [2432, 2559],
+ [2560, 2687],
+ [2688, 2815],
+ [2816, 2943],
+ [2944, 3071],
+ [3072, 3199],
+ [3200, 3327],
+ [3328, 3455],
+ [3584, 3711],
+ [3712, 3839],
+ [4256, 4351, 11520, 11567],
+ [6912, 7039],
+ [4352, 4607],
+ [7680, 7935, 11360, 11391, 42784, 43007],
+ [7936, 8191],
+ [8192, 8303, 11776, 11903],
+ [8304, 8351],
+ [8352, 8399],
+ [8400, 8447],
+ [8448, 8527],
+ [8528, 8591],
+ [8592, 8703, 10224, 10239, 10496, 10623, 11008, 11263],
+ [8704, 8959, 10752, 11007, 10176, 10223, 10624, 10751],
+ [8960, 9215],
+ [9216, 9279],
+ [9280, 9311],
+ [9312, 9471],
+ [9472, 9599],
+ [9600, 9631],
+ [9632, 9727],
+ [9728, 9983],
+ [9984, 10175],
+ [12288, 12351],
+ [12352, 12447],
+ [12448, 12543, 12784, 12799],
+ [12544, 12591, 12704, 12735],
+ [12592, 12687],
+ [43072, 43135],
+ [12800, 13055],
+ [13056, 13311],
+ [44032, 55215],
+ [55296, 57343],
+ [67840, 67871],
+ [
+ 19968, 40959, 11904, 12031, 12032, 12255, 12272, 12287, 13312,
+ 19903, 131072, 173791, 12688, 12703,
+ ],
+ [57344, 63743],
+ [12736, 12783, 63744, 64255, 194560, 195103],
+ [64256, 64335],
+ [64336, 65023],
+ [65056, 65071],
+ [65040, 65055],
+ [65104, 65135],
+ [65136, 65279],
+ [65280, 65519],
+ [65520, 65535],
+ [3840, 4095],
+ [1792, 1871],
+ [1920, 1983],
+ [3456, 3583],
+ [4096, 4255],
+ [4608, 4991, 4992, 5023, 11648, 11743],
+ [5024, 5119],
+ [5120, 5759],
+ [5760, 5791],
+ [5792, 5887],
+ [6016, 6143],
+ [6144, 6319],
+ [10240, 10495],
+ [40960, 42127],
+ [5888, 5919, 5920, 5951, 5952, 5983, 5984, 6015],
+ [66304, 66351],
+ [66352, 66383],
+ [66560, 66639],
+ [118784, 119039, 119040, 119295, 119296, 119375],
+ [119808, 120831],
+ [1044480, 1048573],
+ [65024, 65039, 917760, 917999],
+ [917504, 917631],
+ [6400, 6479],
+ [6480, 6527],
+ [6528, 6623],
+ [6656, 6687],
+ [11264, 11359],
+ [11568, 11647],
+ [19904, 19967],
+ [43008, 43055],
+ [65536, 65663, 65664, 65791, 65792, 65855],
+ [65856, 65935],
+ [66432, 66463],
+ [66464, 66527],
+ [66640, 66687],
+ [66688, 66735],
+ [67584, 67647],
+ [68096, 68191],
+ [119552, 119647],
+ [73728, 74751, 74752, 74879],
+ [119648, 119679],
+ [7040, 7103],
+ [7168, 7247],
+ [7248, 7295],
+ [43136, 43231],
+ [43264, 43311],
+ [43312, 43359],
+ [43520, 43615],
+ [65936, 65999],
+ [66e3, 66047],
+ [66208, 66271, 66176, 66207, 67872, 67903],
+ [127024, 127135, 126976, 127023],
+ ];
+ const i = new RegExp("^(\\s)|(\\p{Mn})|(\\p{Cf})$", "u"),
+ s = new Map();
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.getSerifFonts =
+ t.getNonStdFontMap =
+ t.getGlyphMapForStandardFonts =
+ t.getFontNameToFileMap =
+ void 0;
+ t.getStandardFontName = function getStandardFontName(e) {
+ const t = (0, n.normalizeFontName)(e);
+ return i()[t];
+ };
+ t.getSymbolsFonts =
+ t.getSupplementalGlyphMapForCalibri =
+ t.getSupplementalGlyphMapForArialBlack =
+ t.getStdFontMap =
+ void 0;
+ t.isKnownFontName = function isKnownFontName(e) {
+ const t = (0, n.normalizeFontName)(e);
+ return !!(i()[t] || o()[t] || c()[t] || l()[t]);
+ };
+ var r = a(3),
+ n = a(38);
+ const i = (0, r.getLookupTableFactory)(function (e) {
+ e["Times-Roman"] = "Times-Roman";
+ e.Helvetica = "Helvetica";
+ e.Courier = "Courier";
+ e.Symbol = "Symbol";
+ e["Times-Bold"] = "Times-Bold";
+ e["Helvetica-Bold"] = "Helvetica-Bold";
+ e["Courier-Bold"] = "Courier-Bold";
+ e.ZapfDingbats = "ZapfDingbats";
+ e["Times-Italic"] = "Times-Italic";
+ e["Helvetica-Oblique"] = "Helvetica-Oblique";
+ e["Courier-Oblique"] = "Courier-Oblique";
+ e["Times-BoldItalic"] = "Times-BoldItalic";
+ e["Helvetica-BoldOblique"] = "Helvetica-BoldOblique";
+ e["Courier-BoldOblique"] = "Courier-BoldOblique";
+ e.ArialNarrow = "Helvetica";
+ e["ArialNarrow-Bold"] = "Helvetica-Bold";
+ e["ArialNarrow-BoldItalic"] = "Helvetica-BoldOblique";
+ e["ArialNarrow-Italic"] = "Helvetica-Oblique";
+ e.ArialBlack = "Helvetica";
+ e["ArialBlack-Bold"] = "Helvetica-Bold";
+ e["ArialBlack-BoldItalic"] = "Helvetica-BoldOblique";
+ e["ArialBlack-Italic"] = "Helvetica-Oblique";
+ e["Arial-Black"] = "Helvetica";
+ e["Arial-Black-Bold"] = "Helvetica-Bold";
+ e["Arial-Black-BoldItalic"] = "Helvetica-BoldOblique";
+ e["Arial-Black-Italic"] = "Helvetica-Oblique";
+ e.Arial = "Helvetica";
+ e["Arial-Bold"] = "Helvetica-Bold";
+ e["Arial-BoldItalic"] = "Helvetica-BoldOblique";
+ e["Arial-Italic"] = "Helvetica-Oblique";
+ e.ArialMT = "Helvetica";
+ e["Arial-BoldItalicMT"] = "Helvetica-BoldOblique";
+ e["Arial-BoldMT"] = "Helvetica-Bold";
+ e["Arial-ItalicMT"] = "Helvetica-Oblique";
+ e["Arial-BoldItalicMT-BoldItalic"] = "Helvetica-BoldOblique";
+ e["Arial-BoldMT-Bold"] = "Helvetica-Bold";
+ e["Arial-ItalicMT-Italic"] = "Helvetica-Oblique";
+ e.ArialUnicodeMS = "Helvetica";
+ e["ArialUnicodeMS-Bold"] = "Helvetica-Bold";
+ e["ArialUnicodeMS-BoldItalic"] = "Helvetica-BoldOblique";
+ e["ArialUnicodeMS-Italic"] = "Helvetica-Oblique";
+ e["Courier-BoldItalic"] = "Courier-BoldOblique";
+ e["Courier-Italic"] = "Courier-Oblique";
+ e.CourierNew = "Courier";
+ e["CourierNew-Bold"] = "Courier-Bold";
+ e["CourierNew-BoldItalic"] = "Courier-BoldOblique";
+ e["CourierNew-Italic"] = "Courier-Oblique";
+ e["CourierNewPS-BoldItalicMT"] = "Courier-BoldOblique";
+ e["CourierNewPS-BoldMT"] = "Courier-Bold";
+ e["CourierNewPS-ItalicMT"] = "Courier-Oblique";
+ e.CourierNewPSMT = "Courier";
+ e["Helvetica-BoldItalic"] = "Helvetica-BoldOblique";
+ e["Helvetica-Italic"] = "Helvetica-Oblique";
+ e["Symbol-Bold"] = "Symbol";
+ e["Symbol-BoldItalic"] = "Symbol";
+ e["Symbol-Italic"] = "Symbol";
+ e.TimesNewRoman = "Times-Roman";
+ e["TimesNewRoman-Bold"] = "Times-Bold";
+ e["TimesNewRoman-BoldItalic"] = "Times-BoldItalic";
+ e["TimesNewRoman-Italic"] = "Times-Italic";
+ e.TimesNewRomanPS = "Times-Roman";
+ e["TimesNewRomanPS-Bold"] = "Times-Bold";
+ e["TimesNewRomanPS-BoldItalic"] = "Times-BoldItalic";
+ e["TimesNewRomanPS-BoldItalicMT"] = "Times-BoldItalic";
+ e["TimesNewRomanPS-BoldMT"] = "Times-Bold";
+ e["TimesNewRomanPS-Italic"] = "Times-Italic";
+ e["TimesNewRomanPS-ItalicMT"] = "Times-Italic";
+ e.TimesNewRomanPSMT = "Times-Roman";
+ e["TimesNewRomanPSMT-Bold"] = "Times-Bold";
+ e["TimesNewRomanPSMT-BoldItalic"] = "Times-BoldItalic";
+ e["TimesNewRomanPSMT-Italic"] = "Times-Italic";
+ });
+ t.getStdFontMap = i;
+ const s = (0, r.getLookupTableFactory)(function (e) {
+ e.Courier = "FoxitFixed.pfb";
+ e["Courier-Bold"] = "FoxitFixedBold.pfb";
+ e["Courier-BoldOblique"] = "FoxitFixedBoldItalic.pfb";
+ e["Courier-Oblique"] = "FoxitFixedItalic.pfb";
+ e.Helvetica = "LiberationSans-Regular.ttf";
+ e["Helvetica-Bold"] = "LiberationSans-Bold.ttf";
+ e["Helvetica-BoldOblique"] = "LiberationSans-BoldItalic.ttf";
+ e["Helvetica-Oblique"] = "LiberationSans-Italic.ttf";
+ e["Times-Roman"] = "FoxitSerif.pfb";
+ e["Times-Bold"] = "FoxitSerifBold.pfb";
+ e["Times-BoldItalic"] = "FoxitSerifBoldItalic.pfb";
+ e["Times-Italic"] = "FoxitSerifItalic.pfb";
+ e.Symbol = "FoxitSymbol.pfb";
+ e.ZapfDingbats = "FoxitDingbats.pfb";
+ e["LiberationSans-Regular"] = "LiberationSans-Regular.ttf";
+ e["LiberationSans-Bold"] = "LiberationSans-Bold.ttf";
+ e["LiberationSans-Italic"] = "LiberationSans-Italic.ttf";
+ e["LiberationSans-BoldItalic"] = "LiberationSans-BoldItalic.ttf";
+ });
+ t.getFontNameToFileMap = s;
+ const o = (0, r.getLookupTableFactory)(function (e) {
+ e.Calibri = "Helvetica";
+ e["Calibri-Bold"] = "Helvetica-Bold";
+ e["Calibri-BoldItalic"] = "Helvetica-BoldOblique";
+ e["Calibri-Italic"] = "Helvetica-Oblique";
+ e.CenturyGothic = "Helvetica";
+ e["CenturyGothic-Bold"] = "Helvetica-Bold";
+ e["CenturyGothic-BoldItalic"] = "Helvetica-BoldOblique";
+ e["CenturyGothic-Italic"] = "Helvetica-Oblique";
+ e.ComicSansMS = "Comic Sans MS";
+ e["ComicSansMS-Bold"] = "Comic Sans MS-Bold";
+ e["ComicSansMS-BoldItalic"] = "Comic Sans MS-BoldItalic";
+ e["ComicSansMS-Italic"] = "Comic Sans MS-Italic";
+ e.Impact = "Helvetica";
+ e["ItcSymbol-Bold"] = "Helvetica-Bold";
+ e["ItcSymbol-BoldItalic"] = "Helvetica-BoldOblique";
+ e["ItcSymbol-Book"] = "Helvetica";
+ e["ItcSymbol-BookItalic"] = "Helvetica-Oblique";
+ e["ItcSymbol-Medium"] = "Helvetica";
+ e["ItcSymbol-MediumItalic"] = "Helvetica-Oblique";
+ e.LucidaConsole = "Courier";
+ e["LucidaConsole-Bold"] = "Courier-Bold";
+ e["LucidaConsole-BoldItalic"] = "Courier-BoldOblique";
+ e["LucidaConsole-Italic"] = "Courier-Oblique";
+ e["LucidaSans-Demi"] = "Helvetica-Bold";
+ e["MS-Gothic"] = "MS Gothic";
+ e["MS-Gothic-Bold"] = "MS Gothic-Bold";
+ e["MS-Gothic-BoldItalic"] = "MS Gothic-BoldItalic";
+ e["MS-Gothic-Italic"] = "MS Gothic-Italic";
+ e["MS-Mincho"] = "MS Mincho";
+ e["MS-Mincho-Bold"] = "MS Mincho-Bold";
+ e["MS-Mincho-BoldItalic"] = "MS Mincho-BoldItalic";
+ e["MS-Mincho-Italic"] = "MS Mincho-Italic";
+ e["MS-PGothic"] = "MS PGothic";
+ e["MS-PGothic-Bold"] = "MS PGothic-Bold";
+ e["MS-PGothic-BoldItalic"] = "MS PGothic-BoldItalic";
+ e["MS-PGothic-Italic"] = "MS PGothic-Italic";
+ e["MS-PMincho"] = "MS PMincho";
+ e["MS-PMincho-Bold"] = "MS PMincho-Bold";
+ e["MS-PMincho-BoldItalic"] = "MS PMincho-BoldItalic";
+ e["MS-PMincho-Italic"] = "MS PMincho-Italic";
+ e.NuptialScript = "Times-Italic";
+ e.SegoeUISymbol = "Helvetica";
+ });
+ t.getNonStdFontMap = o;
+ const c = (0, r.getLookupTableFactory)(function (e) {
+ e["Adobe Jenson"] = !0;
+ e["Adobe Text"] = !0;
+ e.Albertus = !0;
+ e.Aldus = !0;
+ e.Alexandria = !0;
+ e.Algerian = !0;
+ e["American Typewriter"] = !0;
+ e.Antiqua = !0;
+ e.Apex = !0;
+ e.Arno = !0;
+ e.Aster = !0;
+ e.Aurora = !0;
+ e.Baskerville = !0;
+ e.Bell = !0;
+ e.Bembo = !0;
+ e["Bembo Schoolbook"] = !0;
+ e.Benguiat = !0;
+ e["Berkeley Old Style"] = !0;
+ e["Bernhard Modern"] = !0;
+ e["Berthold City"] = !0;
+ e.Bodoni = !0;
+ e["Bauer Bodoni"] = !0;
+ e["Book Antiqua"] = !0;
+ e.Bookman = !0;
+ e["Bordeaux Roman"] = !0;
+ e["Californian FB"] = !0;
+ e.Calisto = !0;
+ e.Calvert = !0;
+ e.Capitals = !0;
+ e.Cambria = !0;
+ e.Cartier = !0;
+ e.Caslon = !0;
+ e.Catull = !0;
+ e.Centaur = !0;
+ e["Century Old Style"] = !0;
+ e["Century Schoolbook"] = !0;
+ e.Chaparral = !0;
+ e["Charis SIL"] = !0;
+ e.Cheltenham = !0;
+ e["Cholla Slab"] = !0;
+ e.Clarendon = !0;
+ e.Clearface = !0;
+ e.Cochin = !0;
+ e.Colonna = !0;
+ e["Computer Modern"] = !0;
+ e["Concrete Roman"] = !0;
+ e.Constantia = !0;
+ e["Cooper Black"] = !0;
+ e.Corona = !0;
+ e.Ecotype = !0;
+ e.Egyptienne = !0;
+ e.Elephant = !0;
+ e.Excelsior = !0;
+ e.Fairfield = !0;
+ e["FF Scala"] = !0;
+ e.Folkard = !0;
+ e.Footlight = !0;
+ e.FreeSerif = !0;
+ e["Friz Quadrata"] = !0;
+ e.Garamond = !0;
+ e.Gentium = !0;
+ e.Georgia = !0;
+ e.Gloucester = !0;
+ e["Goudy Old Style"] = !0;
+ e["Goudy Schoolbook"] = !0;
+ e["Goudy Pro Font"] = !0;
+ e.Granjon = !0;
+ e["Guardian Egyptian"] = !0;
+ e.Heather = !0;
+ e.Hercules = !0;
+ e["High Tower Text"] = !0;
+ e.Hiroshige = !0;
+ e["Hoefler Text"] = !0;
+ e["Humana Serif"] = !0;
+ e.Imprint = !0;
+ e["Ionic No. 5"] = !0;
+ e.Janson = !0;
+ e.Joanna = !0;
+ e.Korinna = !0;
+ e.Lexicon = !0;
+ e.LiberationSerif = !0;
+ e["Liberation Serif"] = !0;
+ e["Linux Libertine"] = !0;
+ e.Literaturnaya = !0;
+ e.Lucida = !0;
+ e["Lucida Bright"] = !0;
+ e.Melior = !0;
+ e.Memphis = !0;
+ e.Miller = !0;
+ e.Minion = !0;
+ e.Modern = !0;
+ e["Mona Lisa"] = !0;
+ e["Mrs Eaves"] = !0;
+ e["MS Serif"] = !0;
+ e["Museo Slab"] = !0;
+ e["New York"] = !0;
+ e["Nimbus Roman"] = !0;
+ e["NPS Rawlinson Roadway"] = !0;
+ e.NuptialScript = !0;
+ e.Palatino = !0;
+ e.Perpetua = !0;
+ e.Plantin = !0;
+ e["Plantin Schoolbook"] = !0;
+ e.Playbill = !0;
+ e["Poor Richard"] = !0;
+ e["Rawlinson Roadway"] = !0;
+ e.Renault = !0;
+ e.Requiem = !0;
+ e.Rockwell = !0;
+ e.Roman = !0;
+ e["Rotis Serif"] = !0;
+ e.Sabon = !0;
+ e.Scala = !0;
+ e.Seagull = !0;
+ e.Sistina = !0;
+ e.Souvenir = !0;
+ e.STIX = !0;
+ e["Stone Informal"] = !0;
+ e["Stone Serif"] = !0;
+ e.Sylfaen = !0;
+ e.Times = !0;
+ e.Trajan = !0;
+ e["Trinité"] = !0;
+ e["Trump Mediaeval"] = !0;
+ e.Utopia = !0;
+ e["Vale Type"] = !0;
+ e["Bitstream Vera"] = !0;
+ e["Vera Serif"] = !0;
+ e.Versailles = !0;
+ e.Wanted = !0;
+ e.Weiss = !0;
+ e["Wide Latin"] = !0;
+ e.Windsor = !0;
+ e.XITS = !0;
+ });
+ t.getSerifFonts = c;
+ const l = (0, r.getLookupTableFactory)(function (e) {
+ e.Dingbats = !0;
+ e.Symbol = !0;
+ e.ZapfDingbats = !0;
+ e.Wingdings = !0;
+ e["Wingdings-Bold"] = !0;
+ e["Wingdings-Regular"] = !0;
+ });
+ t.getSymbolsFonts = l;
+ const h = (0, r.getLookupTableFactory)(function (e) {
+ e[2] = 10;
+ e[3] = 32;
+ e[4] = 33;
+ e[5] = 34;
+ e[6] = 35;
+ e[7] = 36;
+ e[8] = 37;
+ e[9] = 38;
+ e[10] = 39;
+ e[11] = 40;
+ e[12] = 41;
+ e[13] = 42;
+ e[14] = 43;
+ e[15] = 44;
+ e[16] = 45;
+ e[17] = 46;
+ e[18] = 47;
+ e[19] = 48;
+ e[20] = 49;
+ e[21] = 50;
+ e[22] = 51;
+ e[23] = 52;
+ e[24] = 53;
+ e[25] = 54;
+ e[26] = 55;
+ e[27] = 56;
+ e[28] = 57;
+ e[29] = 58;
+ e[30] = 894;
+ e[31] = 60;
+ e[32] = 61;
+ e[33] = 62;
+ e[34] = 63;
+ e[35] = 64;
+ e[36] = 65;
+ e[37] = 66;
+ e[38] = 67;
+ e[39] = 68;
+ e[40] = 69;
+ e[41] = 70;
+ e[42] = 71;
+ e[43] = 72;
+ e[44] = 73;
+ e[45] = 74;
+ e[46] = 75;
+ e[47] = 76;
+ e[48] = 77;
+ e[49] = 78;
+ e[50] = 79;
+ e[51] = 80;
+ e[52] = 81;
+ e[53] = 82;
+ e[54] = 83;
+ e[55] = 84;
+ e[56] = 85;
+ e[57] = 86;
+ e[58] = 87;
+ e[59] = 88;
+ e[60] = 89;
+ e[61] = 90;
+ e[62] = 91;
+ e[63] = 92;
+ e[64] = 93;
+ e[65] = 94;
+ e[66] = 95;
+ e[67] = 96;
+ e[68] = 97;
+ e[69] = 98;
+ e[70] = 99;
+ e[71] = 100;
+ e[72] = 101;
+ e[73] = 102;
+ e[74] = 103;
+ e[75] = 104;
+ e[76] = 105;
+ e[77] = 106;
+ e[78] = 107;
+ e[79] = 108;
+ e[80] = 109;
+ e[81] = 110;
+ e[82] = 111;
+ e[83] = 112;
+ e[84] = 113;
+ e[85] = 114;
+ e[86] = 115;
+ e[87] = 116;
+ e[88] = 117;
+ e[89] = 118;
+ e[90] = 119;
+ e[91] = 120;
+ e[92] = 121;
+ e[93] = 122;
+ e[94] = 123;
+ e[95] = 124;
+ e[96] = 125;
+ e[97] = 126;
+ e[98] = 196;
+ e[99] = 197;
+ e[100] = 199;
+ e[101] = 201;
+ e[102] = 209;
+ e[103] = 214;
+ e[104] = 220;
+ e[105] = 225;
+ e[106] = 224;
+ e[107] = 226;
+ e[108] = 228;
+ e[109] = 227;
+ e[110] = 229;
+ e[111] = 231;
+ e[112] = 233;
+ e[113] = 232;
+ e[114] = 234;
+ e[115] = 235;
+ e[116] = 237;
+ e[117] = 236;
+ e[118] = 238;
+ e[119] = 239;
+ e[120] = 241;
+ e[121] = 243;
+ e[122] = 242;
+ e[123] = 244;
+ e[124] = 246;
+ e[125] = 245;
+ e[126] = 250;
+ e[127] = 249;
+ e[128] = 251;
+ e[129] = 252;
+ e[130] = 8224;
+ e[131] = 176;
+ e[132] = 162;
+ e[133] = 163;
+ e[134] = 167;
+ e[135] = 8226;
+ e[136] = 182;
+ e[137] = 223;
+ e[138] = 174;
+ e[139] = 169;
+ e[140] = 8482;
+ e[141] = 180;
+ e[142] = 168;
+ e[143] = 8800;
+ e[144] = 198;
+ e[145] = 216;
+ e[146] = 8734;
+ e[147] = 177;
+ e[148] = 8804;
+ e[149] = 8805;
+ e[150] = 165;
+ e[151] = 181;
+ e[152] = 8706;
+ e[153] = 8721;
+ e[154] = 8719;
+ e[156] = 8747;
+ e[157] = 170;
+ e[158] = 186;
+ e[159] = 8486;
+ e[160] = 230;
+ e[161] = 248;
+ e[162] = 191;
+ e[163] = 161;
+ e[164] = 172;
+ e[165] = 8730;
+ e[166] = 402;
+ e[167] = 8776;
+ e[168] = 8710;
+ e[169] = 171;
+ e[170] = 187;
+ e[171] = 8230;
+ e[179] = 8220;
+ e[180] = 8221;
+ e[181] = 8216;
+ e[182] = 8217;
+ e[200] = 193;
+ e[203] = 205;
+ e[207] = 211;
+ e[210] = 218;
+ e[223] = 711;
+ e[224] = 321;
+ e[225] = 322;
+ e[226] = 352;
+ e[227] = 353;
+ e[228] = 381;
+ e[229] = 382;
+ e[233] = 221;
+ e[234] = 253;
+ e[252] = 263;
+ e[253] = 268;
+ e[254] = 269;
+ e[258] = 258;
+ e[260] = 260;
+ e[261] = 261;
+ e[265] = 280;
+ e[266] = 281;
+ e[267] = 282;
+ e[268] = 283;
+ e[269] = 313;
+ e[275] = 323;
+ e[276] = 324;
+ e[278] = 328;
+ e[283] = 344;
+ e[284] = 345;
+ e[285] = 346;
+ e[286] = 347;
+ e[292] = 367;
+ e[295] = 377;
+ e[296] = 378;
+ e[298] = 380;
+ e[305] = 963;
+ e[306] = 964;
+ e[307] = 966;
+ e[308] = 8215;
+ e[309] = 8252;
+ e[310] = 8319;
+ e[311] = 8359;
+ e[312] = 8592;
+ e[313] = 8593;
+ e[337] = 9552;
+ e[493] = 1039;
+ e[494] = 1040;
+ e[672] = 1488;
+ e[673] = 1489;
+ e[674] = 1490;
+ e[675] = 1491;
+ e[676] = 1492;
+ e[677] = 1493;
+ e[678] = 1494;
+ e[679] = 1495;
+ e[680] = 1496;
+ e[681] = 1497;
+ e[682] = 1498;
+ e[683] = 1499;
+ e[684] = 1500;
+ e[685] = 1501;
+ e[686] = 1502;
+ e[687] = 1503;
+ e[688] = 1504;
+ e[689] = 1505;
+ e[690] = 1506;
+ e[691] = 1507;
+ e[692] = 1508;
+ e[693] = 1509;
+ e[694] = 1510;
+ e[695] = 1511;
+ e[696] = 1512;
+ e[697] = 1513;
+ e[698] = 1514;
+ e[705] = 1524;
+ e[706] = 8362;
+ e[710] = 64288;
+ e[711] = 64298;
+ e[759] = 1617;
+ e[761] = 1776;
+ e[763] = 1778;
+ e[775] = 1652;
+ e[777] = 1764;
+ e[778] = 1780;
+ e[779] = 1781;
+ e[780] = 1782;
+ e[782] = 771;
+ e[783] = 64726;
+ e[786] = 8363;
+ e[788] = 8532;
+ e[790] = 768;
+ e[791] = 769;
+ e[792] = 768;
+ e[795] = 803;
+ e[797] = 64336;
+ e[798] = 64337;
+ e[799] = 64342;
+ e[800] = 64343;
+ e[801] = 64344;
+ e[802] = 64345;
+ e[803] = 64362;
+ e[804] = 64363;
+ e[805] = 64364;
+ e[2424] = 7821;
+ e[2425] = 7822;
+ e[2426] = 7823;
+ e[2427] = 7824;
+ e[2428] = 7825;
+ e[2429] = 7826;
+ e[2430] = 7827;
+ e[2433] = 7682;
+ e[2678] = 8045;
+ e[2679] = 8046;
+ e[2830] = 1552;
+ e[2838] = 686;
+ e[2840] = 751;
+ e[2842] = 753;
+ e[2843] = 754;
+ e[2844] = 755;
+ e[2846] = 757;
+ e[2856] = 767;
+ e[2857] = 848;
+ e[2858] = 849;
+ e[2862] = 853;
+ e[2863] = 854;
+ e[2864] = 855;
+ e[2865] = 861;
+ e[2866] = 862;
+ e[2906] = 7460;
+ e[2908] = 7462;
+ e[2909] = 7463;
+ e[2910] = 7464;
+ e[2912] = 7466;
+ e[2913] = 7467;
+ e[2914] = 7468;
+ e[2916] = 7470;
+ e[2917] = 7471;
+ e[2918] = 7472;
+ e[2920] = 7474;
+ e[2921] = 7475;
+ e[2922] = 7476;
+ e[2924] = 7478;
+ e[2925] = 7479;
+ e[2926] = 7480;
+ e[2928] = 7482;
+ e[2929] = 7483;
+ e[2930] = 7484;
+ e[2932] = 7486;
+ e[2933] = 7487;
+ e[2934] = 7488;
+ e[2936] = 7490;
+ e[2937] = 7491;
+ e[2938] = 7492;
+ e[2940] = 7494;
+ e[2941] = 7495;
+ e[2942] = 7496;
+ e[2944] = 7498;
+ e[2946] = 7500;
+ e[2948] = 7502;
+ e[2950] = 7504;
+ e[2951] = 7505;
+ e[2952] = 7506;
+ e[2954] = 7508;
+ e[2955] = 7509;
+ e[2956] = 7510;
+ e[2958] = 7512;
+ e[2959] = 7513;
+ e[2960] = 7514;
+ e[2962] = 7516;
+ e[2963] = 7517;
+ e[2964] = 7518;
+ e[2966] = 7520;
+ e[2967] = 7521;
+ e[2968] = 7522;
+ e[2970] = 7524;
+ e[2971] = 7525;
+ e[2972] = 7526;
+ e[2974] = 7528;
+ e[2975] = 7529;
+ e[2976] = 7530;
+ e[2978] = 1537;
+ e[2979] = 1538;
+ e[2980] = 1539;
+ e[2982] = 1549;
+ e[2983] = 1551;
+ e[2984] = 1552;
+ e[2986] = 1554;
+ e[2987] = 1555;
+ e[2988] = 1556;
+ e[2990] = 1623;
+ e[2991] = 1624;
+ e[2995] = 1775;
+ e[2999] = 1791;
+ e[3002] = 64290;
+ e[3003] = 64291;
+ e[3004] = 64292;
+ e[3006] = 64294;
+ e[3007] = 64295;
+ e[3008] = 64296;
+ e[3011] = 1900;
+ e[3014] = 8223;
+ e[3015] = 8244;
+ e[3017] = 7532;
+ e[3018] = 7533;
+ e[3019] = 7534;
+ e[3075] = 7590;
+ e[3076] = 7591;
+ e[3079] = 7594;
+ e[3080] = 7595;
+ e[3083] = 7598;
+ e[3084] = 7599;
+ e[3087] = 7602;
+ e[3088] = 7603;
+ e[3091] = 7606;
+ e[3092] = 7607;
+ e[3095] = 7610;
+ e[3096] = 7611;
+ e[3099] = 7614;
+ e[3100] = 7615;
+ e[3103] = 7618;
+ e[3104] = 7619;
+ e[3107] = 8337;
+ e[3108] = 8338;
+ e[3116] = 1884;
+ e[3119] = 1885;
+ e[3120] = 1885;
+ e[3123] = 1886;
+ e[3124] = 1886;
+ e[3127] = 1887;
+ e[3128] = 1887;
+ e[3131] = 1888;
+ e[3132] = 1888;
+ e[3135] = 1889;
+ e[3136] = 1889;
+ e[3139] = 1890;
+ e[3140] = 1890;
+ e[3143] = 1891;
+ e[3144] = 1891;
+ e[3147] = 1892;
+ e[3148] = 1892;
+ e[3153] = 580;
+ e[3154] = 581;
+ e[3157] = 584;
+ e[3158] = 585;
+ e[3161] = 588;
+ e[3162] = 589;
+ e[3165] = 891;
+ e[3166] = 892;
+ e[3169] = 1274;
+ e[3170] = 1275;
+ e[3173] = 1278;
+ e[3174] = 1279;
+ e[3181] = 7622;
+ e[3182] = 7623;
+ e[3282] = 11799;
+ e[3316] = 578;
+ e[3379] = 42785;
+ e[3393] = 1159;
+ e[3416] = 8377;
+ });
+ t.getGlyphMapForStandardFonts = h;
+ const u = (0, r.getLookupTableFactory)(function (e) {
+ e[227] = 322;
+ e[264] = 261;
+ e[291] = 346;
+ });
+ t.getSupplementalGlyphMapForArialBlack = u;
+ const d = (0, r.getLookupTableFactory)(function (e) {
+ e[1] = 32;
+ e[4] = 65;
+ e[5] = 192;
+ e[6] = 193;
+ e[9] = 196;
+ e[17] = 66;
+ e[18] = 67;
+ e[21] = 268;
+ e[24] = 68;
+ e[28] = 69;
+ e[29] = 200;
+ e[30] = 201;
+ e[32] = 282;
+ e[38] = 70;
+ e[39] = 71;
+ e[44] = 72;
+ e[47] = 73;
+ e[48] = 204;
+ e[49] = 205;
+ e[58] = 74;
+ e[60] = 75;
+ e[62] = 76;
+ e[68] = 77;
+ e[69] = 78;
+ e[75] = 79;
+ e[76] = 210;
+ e[80] = 214;
+ e[87] = 80;
+ e[89] = 81;
+ e[90] = 82;
+ e[92] = 344;
+ e[94] = 83;
+ e[97] = 352;
+ e[100] = 84;
+ e[104] = 85;
+ e[109] = 220;
+ e[115] = 86;
+ e[116] = 87;
+ e[121] = 88;
+ e[122] = 89;
+ e[124] = 221;
+ e[127] = 90;
+ e[129] = 381;
+ e[258] = 97;
+ e[259] = 224;
+ e[260] = 225;
+ e[263] = 228;
+ e[268] = 261;
+ e[271] = 98;
+ e[272] = 99;
+ e[273] = 263;
+ e[275] = 269;
+ e[282] = 100;
+ e[286] = 101;
+ e[287] = 232;
+ e[288] = 233;
+ e[290] = 283;
+ e[295] = 281;
+ e[296] = 102;
+ e[336] = 103;
+ e[346] = 104;
+ e[349] = 105;
+ e[350] = 236;
+ e[351] = 237;
+ e[361] = 106;
+ e[364] = 107;
+ e[367] = 108;
+ e[371] = 322;
+ e[373] = 109;
+ e[374] = 110;
+ e[381] = 111;
+ e[382] = 242;
+ e[383] = 243;
+ e[386] = 246;
+ e[393] = 112;
+ e[395] = 113;
+ e[396] = 114;
+ e[398] = 345;
+ e[400] = 115;
+ e[401] = 347;
+ e[403] = 353;
+ e[410] = 116;
+ e[437] = 117;
+ e[442] = 252;
+ e[448] = 118;
+ e[449] = 119;
+ e[454] = 120;
+ e[455] = 121;
+ e[457] = 253;
+ e[460] = 122;
+ e[462] = 382;
+ e[463] = 380;
+ e[853] = 44;
+ e[855] = 58;
+ e[856] = 46;
+ e[876] = 47;
+ e[878] = 45;
+ e[882] = 45;
+ e[894] = 40;
+ e[895] = 41;
+ e[896] = 91;
+ e[897] = 93;
+ e[923] = 64;
+ e[1004] = 48;
+ e[1005] = 49;
+ e[1006] = 50;
+ e[1007] = 51;
+ e[1008] = 52;
+ e[1009] = 53;
+ e[1010] = 54;
+ e[1011] = 55;
+ e[1012] = 56;
+ e[1013] = 57;
+ e[1081] = 37;
+ e[1085] = 43;
+ e[1086] = 45;
+ });
+ t.getSupplementalGlyphMapForCalibri = d;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.ToUnicodeMap = t.IdentityToUnicodeMap = void 0;
+ var r = a(2);
+ t.ToUnicodeMap = class ToUnicodeMap {
+ constructor(e = []) {
+ this._map = e;
+ }
+ get length() {
+ return this._map.length;
+ }
+ forEach(e) {
+ for (const t in this._map) e(t, this._map[t].charCodeAt(0));
+ }
+ has(e) {
+ return void 0 !== this._map[e];
+ }
+ get(e) {
+ return this._map[e];
+ }
+ charCodeOf(e) {
+ const t = this._map;
+ if (t.length <= 65536) return t.indexOf(e);
+ for (const a in t) if (t[a] === e) return 0 | a;
+ return -1;
+ }
+ amend(e) {
+ for (const t in e) this._map[t] = e[t];
+ }
+ };
+ t.IdentityToUnicodeMap = class IdentityToUnicodeMap {
+ constructor(e, t) {
+ this.firstChar = e;
+ this.lastChar = t;
+ }
+ get length() {
+ return this.lastChar + 1 - this.firstChar;
+ }
+ forEach(e) {
+ for (let t = this.firstChar, a = this.lastChar; t <= a; t++)
+ e(t, t);
+ }
+ has(e) {
+ return this.firstChar <= e && e <= this.lastChar;
+ }
+ get(e) {
+ if (this.firstChar <= e && e <= this.lastChar)
+ return String.fromCharCode(e);
+ }
+ charCodeOf(e) {
+ return Number.isInteger(e) &&
+ e >= this.firstChar &&
+ e <= this.lastChar
+ ? e
+ : -1;
+ }
+ amend(e) {
+ (0, r.unreachable)("Should not call amend()");
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.CFFFont = void 0;
+ var r = a(35),
+ n = a(38),
+ i = a(2);
+ t.CFFFont = class CFFFont {
+ constructor(e, t) {
+ this.properties = t;
+ const a = new r.CFFParser(e, t, n.SEAC_ANALYSIS_ENABLED);
+ this.cff = a.parse();
+ this.cff.duplicateFirstGlyph();
+ const s = new r.CFFCompiler(this.cff);
+ this.seacs = this.cff.seacs;
+ try {
+ this.data = s.compile();
+ } catch {
+ (0, i.warn)("Failed to compile font " + t.loadedName);
+ this.data = e;
+ }
+ this._createBuiltInEncoding();
+ }
+ get numGlyphs() {
+ return this.cff.charStrings.count;
+ }
+ getCharset() {
+ return this.cff.charset.charset;
+ }
+ getGlyphMapping() {
+ const e = this.cff,
+ t = this.properties,
+ { cidToGidMap: a, cMap: r } = t,
+ i = e.charset.charset;
+ let s, o;
+ if (t.composite) {
+ let t, n;
+ if (a?.length > 0) {
+ t = Object.create(null);
+ for (let e = 0, r = a.length; e < r; e++) {
+ const r = a[e];
+ void 0 !== r && (t[r] = e);
+ }
+ }
+ s = Object.create(null);
+ if (e.isCIDFont)
+ for (o = 0; o < i.length; o++) {
+ const e = i[o];
+ n = r.charCodeOf(e);
+ void 0 !== t?.[n] && (n = t[n]);
+ s[n] = o;
+ }
+ else
+ for (o = 0; o < e.charStrings.count; o++) {
+ n = r.charCodeOf(o);
+ s[n] = o;
+ }
+ return s;
+ }
+ let c = e.encoding ? e.encoding.encoding : null;
+ t.isInternalFont && (c = t.defaultEncoding);
+ s = (0, n.type1FontGlyphMapping)(t, c, i);
+ return s;
+ }
+ hasGlyphId(e) {
+ return this.cff.hasGlyphId(e);
+ }
+ _createBuiltInEncoding() {
+ const { charset: e, encoding: t } = this.cff;
+ if (!e || !t) return;
+ const a = e.charset,
+ r = t.encoding,
+ n = [];
+ for (const e in r) {
+ const t = r[e];
+ if (t >= 0) {
+ const r = a[t];
+ r && (n[e] = r);
+ }
+ }
+ n.length > 0 && (this.properties.builtInEncoding = n);
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.FontRendererFactory = void 0;
+ var r = a(2),
+ n = a(35),
+ i = a(39),
+ s = a(37),
+ o = a(8);
+ function getUint32(e, t) {
+ return (
+ ((e[t] << 24) | (e[t + 1] << 16) | (e[t + 2] << 8) | e[t + 3]) >>>
+ 0
+ );
+ }
+ function getUint16(e, t) {
+ return (e[t] << 8) | e[t + 1];
+ }
+ function getInt16(e, t) {
+ return ((e[t] << 24) | (e[t + 1] << 16)) >> 16;
+ }
+ function getInt8(e, t) {
+ return (e[t] << 24) >> 24;
+ }
+ function getFloat214(e, t) {
+ return getInt16(e, t) / 16384;
+ }
+ function getSubroutineBias(e) {
+ const t = e.length;
+ let a = 32768;
+ t < 1240 ? (a = 107) : t < 33900 && (a = 1131);
+ return a;
+ }
+ function parseCmap(e, t, a) {
+ const n =
+ 1 === getUint16(e, t + 2)
+ ? getUint32(e, t + 8)
+ : getUint32(e, t + 16),
+ i = getUint16(e, t + n);
+ let s, o, c;
+ if (4 === i) {
+ getUint16(e, t + n + 2);
+ const a = getUint16(e, t + n + 6) >> 1;
+ o = t + n + 14;
+ s = [];
+ for (c = 0; c < a; c++, o += 2) s[c] = { end: getUint16(e, o) };
+ o += 2;
+ for (c = 0; c < a; c++, o += 2) s[c].start = getUint16(e, o);
+ for (c = 0; c < a; c++, o += 2) s[c].idDelta = getUint16(e, o);
+ for (c = 0; c < a; c++, o += 2) {
+ let t = getUint16(e, o);
+ if (0 !== t) {
+ s[c].ids = [];
+ for (let a = 0, r = s[c].end - s[c].start + 1; a < r; a++) {
+ s[c].ids[a] = getUint16(e, o + t);
+ t += 2;
+ }
+ }
+ }
+ return s;
+ }
+ if (12 === i) {
+ const a = getUint32(e, t + n + 12);
+ o = t + n + 16;
+ s = [];
+ for (c = 0; c < a; c++) {
+ t = getUint32(e, o);
+ s.push({
+ start: t,
+ end: getUint32(e, o + 4),
+ idDelta: getUint32(e, o + 8) - t,
+ });
+ o += 12;
+ }
+ return s;
+ }
+ throw new r.FormatError(`unsupported cmap: ${i}`);
+ }
+ function parseCff(e, t, a, r) {
+ const i = new n.CFFParser(new o.Stream(e, t, a - t), {}, r).parse();
+ return {
+ glyphs: i.charStrings.objects,
+ subrs: i.topDict.privateDict?.subrsIndex?.objects,
+ gsubrs: i.globalSubrIndex?.objects,
+ isCFFCIDFont: i.isCIDFont,
+ fdSelect: i.fdSelect,
+ fdArray: i.fdArray,
+ };
+ }
+ function lookupCmap(e, t) {
+ const a = t.codePointAt(0);
+ let r = 0,
+ n = 0,
+ i = e.length - 1;
+ for (; n < i; ) {
+ const t = (n + i + 1) >> 1;
+ a < e[t].start ? (i = t - 1) : (n = t);
+ }
+ e[n].start <= a &&
+ a <= e[n].end &&
+ (r =
+ (e[n].idDelta + (e[n].ids ? e[n].ids[a - e[n].start] : a)) &
+ 65535);
+ return { charCode: a, glyphId: r };
+ }
+ function compileGlyf(e, t, a) {
+ function moveTo(e, a) {
+ t.push({ cmd: "moveTo", args: [e, a] });
+ }
+ function lineTo(e, a) {
+ t.push({ cmd: "lineTo", args: [e, a] });
+ }
+ function quadraticCurveTo(e, a, r, n) {
+ t.push({ cmd: "quadraticCurveTo", args: [e, a, r, n] });
+ }
+ let r = 0;
+ const n = getInt16(e, r);
+ let i,
+ s = 0,
+ o = 0;
+ r += 10;
+ if (n < 0)
+ do {
+ i = getUint16(e, r);
+ const n = getUint16(e, r + 2);
+ r += 4;
+ let c, l;
+ if (1 & i) {
+ if (2 & i) {
+ c = getInt16(e, r);
+ l = getInt16(e, r + 2);
+ } else {
+ c = getUint16(e, r);
+ l = getUint16(e, r + 2);
+ }
+ r += 4;
+ } else if (2 & i) {
+ c = getInt8(e, r++);
+ l = getInt8(e, r++);
+ } else {
+ c = e[r++];
+ l = e[r++];
+ }
+ if (2 & i) {
+ s = c;
+ o = l;
+ } else {
+ s = 0;
+ o = 0;
+ }
+ let h = 1,
+ u = 1,
+ d = 0,
+ f = 0;
+ if (8 & i) {
+ h = u = getFloat214(e, r);
+ r += 2;
+ } else if (64 & i) {
+ h = getFloat214(e, r);
+ u = getFloat214(e, r + 2);
+ r += 4;
+ } else if (128 & i) {
+ h = getFloat214(e, r);
+ d = getFloat214(e, r + 2);
+ f = getFloat214(e, r + 4);
+ u = getFloat214(e, r + 6);
+ r += 8;
+ }
+ const g = a.glyphs[n];
+ if (g) {
+ t.push(
+ { cmd: "save" },
+ { cmd: "transform", args: [h, d, f, u, s, o] },
+ );
+ compileGlyf(g, t, a);
+ t.push({ cmd: "restore" });
+ }
+ } while (32 & i);
+ else {
+ const t = [];
+ let a, c;
+ for (a = 0; a < n; a++) {
+ t.push(getUint16(e, r));
+ r += 2;
+ }
+ r += 2 + getUint16(e, r);
+ const l = t.at(-1) + 1,
+ h = [];
+ for (; h.length < l; ) {
+ i = e[r++];
+ let t = 1;
+ 8 & i && (t += e[r++]);
+ for (; t-- > 0; ) h.push({ flags: i });
+ }
+ for (a = 0; a < l; a++) {
+ switch (18 & h[a].flags) {
+ case 0:
+ s += getInt16(e, r);
+ r += 2;
+ break;
+ case 2:
+ s -= e[r++];
+ break;
+ case 18:
+ s += e[r++];
+ }
+ h[a].x = s;
+ }
+ for (a = 0; a < l; a++) {
+ switch (36 & h[a].flags) {
+ case 0:
+ o += getInt16(e, r);
+ r += 2;
+ break;
+ case 4:
+ o -= e[r++];
+ break;
+ case 36:
+ o += e[r++];
+ }
+ h[a].y = o;
+ }
+ let u = 0;
+ for (r = 0; r < n; r++) {
+ const e = t[r],
+ n = h.slice(u, e + 1);
+ if (1 & n[0].flags) n.push(n[0]);
+ else if (1 & n.at(-1).flags) n.unshift(n.at(-1));
+ else {
+ const e = {
+ flags: 1,
+ x: (n[0].x + n.at(-1).x) / 2,
+ y: (n[0].y + n.at(-1).y) / 2,
+ };
+ n.unshift(e);
+ n.push(e);
+ }
+ moveTo(n[0].x, n[0].y);
+ for (a = 1, c = n.length; a < c; a++)
+ if (1 & n[a].flags) lineTo(n[a].x, n[a].y);
+ else if (1 & n[a + 1].flags) {
+ quadraticCurveTo(n[a].x, n[a].y, n[a + 1].x, n[a + 1].y);
+ a++;
+ } else
+ quadraticCurveTo(
+ n[a].x,
+ n[a].y,
+ (n[a].x + n[a + 1].x) / 2,
+ (n[a].y + n[a + 1].y) / 2,
+ );
+ u = e + 1;
+ }
+ }
+ }
+ function compileCharString(e, t, a, n) {
+ function moveTo(e, a) {
+ t.push({ cmd: "moveTo", args: [e, a] });
+ }
+ function lineTo(e, a) {
+ t.push({ cmd: "lineTo", args: [e, a] });
+ }
+ function bezierCurveTo(e, a, r, n, i, s) {
+ t.push({ cmd: "bezierCurveTo", args: [e, a, r, n, i, s] });
+ }
+ const i = [];
+ let o = 0,
+ c = 0,
+ l = 0;
+ !(function parse(e) {
+ let h = 0;
+ for (; h < e.length; ) {
+ let u,
+ d,
+ f,
+ g,
+ p,
+ m,
+ b,
+ y,
+ w,
+ S = !1,
+ x = e[h++];
+ switch (x) {
+ case 1:
+ case 3:
+ case 18:
+ case 23:
+ l += i.length >> 1;
+ S = !0;
+ break;
+ case 4:
+ c += i.pop();
+ moveTo(o, c);
+ S = !0;
+ break;
+ case 5:
+ for (; i.length > 0; ) {
+ o += i.shift();
+ c += i.shift();
+ lineTo(o, c);
+ }
+ break;
+ case 6:
+ for (; i.length > 0; ) {
+ o += i.shift();
+ lineTo(o, c);
+ if (0 === i.length) break;
+ c += i.shift();
+ lineTo(o, c);
+ }
+ break;
+ case 7:
+ for (; i.length > 0; ) {
+ c += i.shift();
+ lineTo(o, c);
+ if (0 === i.length) break;
+ o += i.shift();
+ lineTo(o, c);
+ }
+ break;
+ case 8:
+ for (; i.length > 0; ) {
+ u = o + i.shift();
+ f = c + i.shift();
+ d = u + i.shift();
+ g = f + i.shift();
+ o = d + i.shift();
+ c = g + i.shift();
+ bezierCurveTo(u, f, d, g, o, c);
+ }
+ break;
+ case 10:
+ y = i.pop();
+ w = null;
+ if (a.isCFFCIDFont) {
+ const e = a.fdSelect.getFDIndex(n);
+ if (e >= 0 && e < a.fdArray.length) {
+ const t = a.fdArray[e];
+ let r;
+ t.privateDict?.subrsIndex &&
+ (r = t.privateDict.subrsIndex.objects);
+ if (r) {
+ y += getSubroutineBias(r);
+ w = r[y];
+ }
+ } else (0, r.warn)("Invalid fd index for glyph index.");
+ } else w = a.subrs[y + a.subrsBias];
+ w && parse(w);
+ break;
+ case 11:
+ return;
+ case 12:
+ x = e[h++];
+ switch (x) {
+ case 34:
+ u = o + i.shift();
+ d = u + i.shift();
+ p = c + i.shift();
+ o = d + i.shift();
+ bezierCurveTo(u, c, d, p, o, p);
+ u = o + i.shift();
+ d = u + i.shift();
+ o = d + i.shift();
+ bezierCurveTo(u, p, d, c, o, c);
+ break;
+ case 35:
+ u = o + i.shift();
+ f = c + i.shift();
+ d = u + i.shift();
+ g = f + i.shift();
+ o = d + i.shift();
+ c = g + i.shift();
+ bezierCurveTo(u, f, d, g, o, c);
+ u = o + i.shift();
+ f = c + i.shift();
+ d = u + i.shift();
+ g = f + i.shift();
+ o = d + i.shift();
+ c = g + i.shift();
+ bezierCurveTo(u, f, d, g, o, c);
+ i.pop();
+ break;
+ case 36:
+ u = o + i.shift();
+ p = c + i.shift();
+ d = u + i.shift();
+ m = p + i.shift();
+ o = d + i.shift();
+ bezierCurveTo(u, p, d, m, o, m);
+ u = o + i.shift();
+ d = u + i.shift();
+ b = m + i.shift();
+ o = d + i.shift();
+ bezierCurveTo(u, m, d, b, o, c);
+ break;
+ case 37:
+ const e = o,
+ t = c;
+ u = o + i.shift();
+ f = c + i.shift();
+ d = u + i.shift();
+ g = f + i.shift();
+ o = d + i.shift();
+ c = g + i.shift();
+ bezierCurveTo(u, f, d, g, o, c);
+ u = o + i.shift();
+ f = c + i.shift();
+ d = u + i.shift();
+ g = f + i.shift();
+ o = d;
+ c = g;
+ Math.abs(o - e) > Math.abs(c - t)
+ ? (o += i.shift())
+ : (c += i.shift());
+ bezierCurveTo(u, f, d, g, o, c);
+ break;
+ default:
+ throw new r.FormatError(`unknown operator: 12 ${x}`);
+ }
+ break;
+ case 14:
+ if (i.length >= 4) {
+ const e = i.pop(),
+ r = i.pop();
+ c = i.pop();
+ o = i.pop();
+ t.push(
+ { cmd: "save" },
+ { cmd: "translate", args: [o, c] },
+ );
+ let n = lookupCmap(
+ a.cmap,
+ String.fromCharCode(
+ a.glyphNameMap[s.StandardEncoding[e]],
+ ),
+ );
+ compileCharString(a.glyphs[n.glyphId], t, a, n.glyphId);
+ t.push({ cmd: "restore" });
+ n = lookupCmap(
+ a.cmap,
+ String.fromCharCode(
+ a.glyphNameMap[s.StandardEncoding[r]],
+ ),
+ );
+ compileCharString(a.glyphs[n.glyphId], t, a, n.glyphId);
+ }
+ return;
+ case 19:
+ case 20:
+ l += i.length >> 1;
+ h += (l + 7) >> 3;
+ S = !0;
+ break;
+ case 21:
+ c += i.pop();
+ o += i.pop();
+ moveTo(o, c);
+ S = !0;
+ break;
+ case 22:
+ o += i.pop();
+ moveTo(o, c);
+ S = !0;
+ break;
+ case 24:
+ for (; i.length > 2; ) {
+ u = o + i.shift();
+ f = c + i.shift();
+ d = u + i.shift();
+ g = f + i.shift();
+ o = d + i.shift();
+ c = g + i.shift();
+ bezierCurveTo(u, f, d, g, o, c);
+ }
+ o += i.shift();
+ c += i.shift();
+ lineTo(o, c);
+ break;
+ case 25:
+ for (; i.length > 6; ) {
+ o += i.shift();
+ c += i.shift();
+ lineTo(o, c);
+ }
+ u = o + i.shift();
+ f = c + i.shift();
+ d = u + i.shift();
+ g = f + i.shift();
+ o = d + i.shift();
+ c = g + i.shift();
+ bezierCurveTo(u, f, d, g, o, c);
+ break;
+ case 26:
+ i.length % 2 && (o += i.shift());
+ for (; i.length > 0; ) {
+ u = o;
+ f = c + i.shift();
+ d = u + i.shift();
+ g = f + i.shift();
+ o = d;
+ c = g + i.shift();
+ bezierCurveTo(u, f, d, g, o, c);
+ }
+ break;
+ case 27:
+ i.length % 2 && (c += i.shift());
+ for (; i.length > 0; ) {
+ u = o + i.shift();
+ f = c;
+ d = u + i.shift();
+ g = f + i.shift();
+ o = d + i.shift();
+ c = g;
+ bezierCurveTo(u, f, d, g, o, c);
+ }
+ break;
+ case 28:
+ i.push(((e[h] << 24) | (e[h + 1] << 16)) >> 16);
+ h += 2;
+ break;
+ case 29:
+ y = i.pop() + a.gsubrsBias;
+ w = a.gsubrs[y];
+ w && parse(w);
+ break;
+ case 30:
+ for (; i.length > 0; ) {
+ u = o;
+ f = c + i.shift();
+ d = u + i.shift();
+ g = f + i.shift();
+ o = d + i.shift();
+ c = g + (1 === i.length ? i.shift() : 0);
+ bezierCurveTo(u, f, d, g, o, c);
+ if (0 === i.length) break;
+ u = o + i.shift();
+ f = c;
+ d = u + i.shift();
+ g = f + i.shift();
+ c = g + i.shift();
+ o = d + (1 === i.length ? i.shift() : 0);
+ bezierCurveTo(u, f, d, g, o, c);
+ }
+ break;
+ case 31:
+ for (; i.length > 0; ) {
+ u = o + i.shift();
+ f = c;
+ d = u + i.shift();
+ g = f + i.shift();
+ c = g + i.shift();
+ o = d + (1 === i.length ? i.shift() : 0);
+ bezierCurveTo(u, f, d, g, o, c);
+ if (0 === i.length) break;
+ u = o;
+ f = c + i.shift();
+ d = u + i.shift();
+ g = f + i.shift();
+ o = d + i.shift();
+ c = g + (1 === i.length ? i.shift() : 0);
+ bezierCurveTo(u, f, d, g, o, c);
+ }
+ break;
+ default:
+ if (x < 32)
+ throw new r.FormatError(`unknown operator: ${x}`);
+ if (x < 247) i.push(x - 139);
+ else if (x < 251) i.push(256 * (x - 247) + e[h++] + 108);
+ else if (x < 255) i.push(256 * -(x - 251) - e[h++] - 108);
+ else {
+ i.push(
+ ((e[h] << 24) |
+ (e[h + 1] << 16) |
+ (e[h + 2] << 8) |
+ e[h + 3]) /
+ 65536,
+ );
+ h += 4;
+ }
+ }
+ S && (i.length = 0);
+ }
+ })(e);
+ }
+ const c = [];
+ class CompiledFont {
+ constructor(e) {
+ this.constructor === CompiledFont &&
+ (0, r.unreachable)("Cannot initialize CompiledFont.");
+ this.fontMatrix = e;
+ this.compiledGlyphs = Object.create(null);
+ this.compiledCharCodeToGlyphId = Object.create(null);
+ }
+ getPathJs(e) {
+ const { charCode: t, glyphId: a } = lookupCmap(this.cmap, e);
+ let r = this.compiledGlyphs[a];
+ if (!r)
+ try {
+ r = this.compileGlyph(this.glyphs[a], a);
+ this.compiledGlyphs[a] = r;
+ } catch (e) {
+ this.compiledGlyphs[a] = c;
+ void 0 === this.compiledCharCodeToGlyphId[t] &&
+ (this.compiledCharCodeToGlyphId[t] = a);
+ throw e;
+ }
+ void 0 === this.compiledCharCodeToGlyphId[t] &&
+ (this.compiledCharCodeToGlyphId[t] = a);
+ return r;
+ }
+ compileGlyph(e, t) {
+ if (!e || 0 === e.length || 14 === e[0]) return c;
+ let a = this.fontMatrix;
+ if (this.isCFFCIDFont) {
+ const e = this.fdSelect.getFDIndex(t);
+ if (e >= 0 && e < this.fdArray.length) {
+ a =
+ this.fdArray[e].getByName("FontMatrix") ||
+ r.FONT_IDENTITY_MATRIX;
+ } else (0, r.warn)("Invalid fd index for glyph index.");
+ }
+ const n = [
+ { cmd: "save" },
+ { cmd: "transform", args: a.slice() },
+ { cmd: "scale", args: ["size", "-size"] },
+ ];
+ this.compileGlyphImpl(e, n, t);
+ n.push({ cmd: "restore" });
+ return n;
+ }
+ compileGlyphImpl() {
+ (0, r.unreachable)("Children classes should implement this.");
+ }
+ hasBuiltPath(e) {
+ const { charCode: t, glyphId: a } = lookupCmap(this.cmap, e);
+ return (
+ void 0 !== this.compiledGlyphs[a] &&
+ void 0 !== this.compiledCharCodeToGlyphId[t]
+ );
+ }
+ }
+ class TrueTypeCompiled extends CompiledFont {
+ constructor(e, t, a) {
+ super(a || [488e-6, 0, 0, 488e-6, 0, 0]);
+ this.glyphs = e;
+ this.cmap = t;
+ }
+ compileGlyphImpl(e, t) {
+ compileGlyf(e, t, this);
+ }
+ }
+ class Type2Compiled extends CompiledFont {
+ constructor(e, t, a, r) {
+ super(a || [0.001, 0, 0, 0.001, 0, 0]);
+ this.glyphs = e.glyphs;
+ this.gsubrs = e.gsubrs || [];
+ this.subrs = e.subrs || [];
+ this.cmap = t;
+ this.glyphNameMap = r || (0, i.getGlyphsUnicode)();
+ this.gsubrsBias = getSubroutineBias(this.gsubrs);
+ this.subrsBias = getSubroutineBias(this.subrs);
+ this.isCFFCIDFont = e.isCFFCIDFont;
+ this.fdSelect = e.fdSelect;
+ this.fdArray = e.fdArray;
+ }
+ compileGlyphImpl(e, t, a) {
+ compileCharString(e, t, this, a);
+ }
+ }
+ t.FontRendererFactory = class FontRendererFactory {
+ static create(e, t) {
+ const a = new Uint8Array(e.data);
+ let n, i, s, o, c, l;
+ const h = getUint16(a, 4);
+ for (let e = 0, u = 12; e < h; e++, u += 16) {
+ const e = (0, r.bytesToString)(a.subarray(u, u + 4)),
+ h = getUint32(a, u + 8),
+ d = getUint32(a, u + 12);
+ switch (e) {
+ case "cmap":
+ n = parseCmap(a, h);
+ break;
+ case "glyf":
+ i = a.subarray(h, h + d);
+ break;
+ case "loca":
+ s = a.subarray(h, h + d);
+ break;
+ case "head":
+ l = getUint16(a, h + 18);
+ c = getUint16(a, h + 50);
+ break;
+ case "CFF ":
+ o = parseCff(a, h, h + d, t);
+ }
+ }
+ if (i) {
+ const t = l ? [1 / l, 0, 0, 1 / l, 0, 0] : e.fontMatrix;
+ return new TrueTypeCompiled(
+ (function parseGlyfTable(e, t, a) {
+ let r, n;
+ if (a) {
+ r = 4;
+ n = getUint32;
+ } else {
+ r = 2;
+ n = (e, t) => 2 * getUint16(e, t);
+ }
+ const i = [];
+ let s = n(t, 0);
+ for (let a = r; a < t.length; a += r) {
+ const r = n(t, a);
+ i.push(e.subarray(s, r));
+ s = r;
+ }
+ return i;
+ })(i, s, c),
+ n,
+ t,
+ );
+ }
+ return new Type2Compiled(o, n, e.fontMatrix, e.glyphNameMap);
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.getMetrics = t.getFontBasicMetrics = void 0;
+ var r = a(3);
+ const n = (0, r.getLookupTableFactory)(function (e) {
+ e.Courier = 600;
+ e["Courier-Bold"] = 600;
+ e["Courier-BoldOblique"] = 600;
+ e["Courier-Oblique"] = 600;
+ e.Helvetica = (0, r.getLookupTableFactory)(function (e) {
+ e.space = 278;
+ e.exclam = 278;
+ e.quotedbl = 355;
+ e.numbersign = 556;
+ e.dollar = 556;
+ e.percent = 889;
+ e.ampersand = 667;
+ e.quoteright = 222;
+ e.parenleft = 333;
+ e.parenright = 333;
+ e.asterisk = 389;
+ e.plus = 584;
+ e.comma = 278;
+ e.hyphen = 333;
+ e.period = 278;
+ e.slash = 278;
+ e.zero = 556;
+ e.one = 556;
+ e.two = 556;
+ e.three = 556;
+ e.four = 556;
+ e.five = 556;
+ e.six = 556;
+ e.seven = 556;
+ e.eight = 556;
+ e.nine = 556;
+ e.colon = 278;
+ e.semicolon = 278;
+ e.less = 584;
+ e.equal = 584;
+ e.greater = 584;
+ e.question = 556;
+ e.at = 1015;
+ e.A = 667;
+ e.B = 667;
+ e.C = 722;
+ e.D = 722;
+ e.E = 667;
+ e.F = 611;
+ e.G = 778;
+ e.H = 722;
+ e.I = 278;
+ e.J = 500;
+ e.K = 667;
+ e.L = 556;
+ e.M = 833;
+ e.N = 722;
+ e.O = 778;
+ e.P = 667;
+ e.Q = 778;
+ e.R = 722;
+ e.S = 667;
+ e.T = 611;
+ e.U = 722;
+ e.V = 667;
+ e.W = 944;
+ e.X = 667;
+ e.Y = 667;
+ e.Z = 611;
+ e.bracketleft = 278;
+ e.backslash = 278;
+ e.bracketright = 278;
+ e.asciicircum = 469;
+ e.underscore = 556;
+ e.quoteleft = 222;
+ e.a = 556;
+ e.b = 556;
+ e.c = 500;
+ e.d = 556;
+ e.e = 556;
+ e.f = 278;
+ e.g = 556;
+ e.h = 556;
+ e.i = 222;
+ e.j = 222;
+ e.k = 500;
+ e.l = 222;
+ e.m = 833;
+ e.n = 556;
+ e.o = 556;
+ e.p = 556;
+ e.q = 556;
+ e.r = 333;
+ e.s = 500;
+ e.t = 278;
+ e.u = 556;
+ e.v = 500;
+ e.w = 722;
+ e.x = 500;
+ e.y = 500;
+ e.z = 500;
+ e.braceleft = 334;
+ e.bar = 260;
+ e.braceright = 334;
+ e.asciitilde = 584;
+ e.exclamdown = 333;
+ e.cent = 556;
+ e.sterling = 556;
+ e.fraction = 167;
+ e.yen = 556;
+ e.florin = 556;
+ e.section = 556;
+ e.currency = 556;
+ e.quotesingle = 191;
+ e.quotedblleft = 333;
+ e.guillemotleft = 556;
+ e.guilsinglleft = 333;
+ e.guilsinglright = 333;
+ e.fi = 500;
+ e.fl = 500;
+ e.endash = 556;
+ e.dagger = 556;
+ e.daggerdbl = 556;
+ e.periodcentered = 278;
+ e.paragraph = 537;
+ e.bullet = 350;
+ e.quotesinglbase = 222;
+ e.quotedblbase = 333;
+ e.quotedblright = 333;
+ e.guillemotright = 556;
+ e.ellipsis = 1e3;
+ e.perthousand = 1e3;
+ e.questiondown = 611;
+ e.grave = 333;
+ e.acute = 333;
+ e.circumflex = 333;
+ e.tilde = 333;
+ e.macron = 333;
+ e.breve = 333;
+ e.dotaccent = 333;
+ e.dieresis = 333;
+ e.ring = 333;
+ e.cedilla = 333;
+ e.hungarumlaut = 333;
+ e.ogonek = 333;
+ e.caron = 333;
+ e.emdash = 1e3;
+ e.AE = 1e3;
+ e.ordfeminine = 370;
+ e.Lslash = 556;
+ e.Oslash = 778;
+ e.OE = 1e3;
+ e.ordmasculine = 365;
+ e.ae = 889;
+ e.dotlessi = 278;
+ e.lslash = 222;
+ e.oslash = 611;
+ e.oe = 944;
+ e.germandbls = 611;
+ e.Idieresis = 278;
+ e.eacute = 556;
+ e.abreve = 556;
+ e.uhungarumlaut = 556;
+ e.ecaron = 556;
+ e.Ydieresis = 667;
+ e.divide = 584;
+ e.Yacute = 667;
+ e.Acircumflex = 667;
+ e.aacute = 556;
+ e.Ucircumflex = 722;
+ e.yacute = 500;
+ e.scommaaccent = 500;
+ e.ecircumflex = 556;
+ e.Uring = 722;
+ e.Udieresis = 722;
+ e.aogonek = 556;
+ e.Uacute = 722;
+ e.uogonek = 556;
+ e.Edieresis = 667;
+ e.Dcroat = 722;
+ e.commaaccent = 250;
+ e.copyright = 737;
+ e.Emacron = 667;
+ e.ccaron = 500;
+ e.aring = 556;
+ e.Ncommaaccent = 722;
+ e.lacute = 222;
+ e.agrave = 556;
+ e.Tcommaaccent = 611;
+ e.Cacute = 722;
+ e.atilde = 556;
+ e.Edotaccent = 667;
+ e.scaron = 500;
+ e.scedilla = 500;
+ e.iacute = 278;
+ e.lozenge = 471;
+ e.Rcaron = 722;
+ e.Gcommaaccent = 778;
+ e.ucircumflex = 556;
+ e.acircumflex = 556;
+ e.Amacron = 667;
+ e.rcaron = 333;
+ e.ccedilla = 500;
+ e.Zdotaccent = 611;
+ e.Thorn = 667;
+ e.Omacron = 778;
+ e.Racute = 722;
+ e.Sacute = 667;
+ e.dcaron = 643;
+ e.Umacron = 722;
+ e.uring = 556;
+ e.threesuperior = 333;
+ e.Ograve = 778;
+ e.Agrave = 667;
+ e.Abreve = 667;
+ e.multiply = 584;
+ e.uacute = 556;
+ e.Tcaron = 611;
+ e.partialdiff = 476;
+ e.ydieresis = 500;
+ e.Nacute = 722;
+ e.icircumflex = 278;
+ e.Ecircumflex = 667;
+ e.adieresis = 556;
+ e.edieresis = 556;
+ e.cacute = 500;
+ e.nacute = 556;
+ e.umacron = 556;
+ e.Ncaron = 722;
+ e.Iacute = 278;
+ e.plusminus = 584;
+ e.brokenbar = 260;
+ e.registered = 737;
+ e.Gbreve = 778;
+ e.Idotaccent = 278;
+ e.summation = 600;
+ e.Egrave = 667;
+ e.racute = 333;
+ e.omacron = 556;
+ e.Zacute = 611;
+ e.Zcaron = 611;
+ e.greaterequal = 549;
+ e.Eth = 722;
+ e.Ccedilla = 722;
+ e.lcommaaccent = 222;
+ e.tcaron = 317;
+ e.eogonek = 556;
+ e.Uogonek = 722;
+ e.Aacute = 667;
+ e.Adieresis = 667;
+ e.egrave = 556;
+ e.zacute = 500;
+ e.iogonek = 222;
+ e.Oacute = 778;
+ e.oacute = 556;
+ e.amacron = 556;
+ e.sacute = 500;
+ e.idieresis = 278;
+ e.Ocircumflex = 778;
+ e.Ugrave = 722;
+ e.Delta = 612;
+ e.thorn = 556;
+ e.twosuperior = 333;
+ e.Odieresis = 778;
+ e.mu = 556;
+ e.igrave = 278;
+ e.ohungarumlaut = 556;
+ e.Eogonek = 667;
+ e.dcroat = 556;
+ e.threequarters = 834;
+ e.Scedilla = 667;
+ e.lcaron = 299;
+ e.Kcommaaccent = 667;
+ e.Lacute = 556;
+ e.trademark = 1e3;
+ e.edotaccent = 556;
+ e.Igrave = 278;
+ e.Imacron = 278;
+ e.Lcaron = 556;
+ e.onehalf = 834;
+ e.lessequal = 549;
+ e.ocircumflex = 556;
+ e.ntilde = 556;
+ e.Uhungarumlaut = 722;
+ e.Eacute = 667;
+ e.emacron = 556;
+ e.gbreve = 556;
+ e.onequarter = 834;
+ e.Scaron = 667;
+ e.Scommaaccent = 667;
+ e.Ohungarumlaut = 778;
+ e.degree = 400;
+ e.ograve = 556;
+ e.Ccaron = 722;
+ e.ugrave = 556;
+ e.radical = 453;
+ e.Dcaron = 722;
+ e.rcommaaccent = 333;
+ e.Ntilde = 722;
+ e.otilde = 556;
+ e.Rcommaaccent = 722;
+ e.Lcommaaccent = 556;
+ e.Atilde = 667;
+ e.Aogonek = 667;
+ e.Aring = 667;
+ e.Otilde = 778;
+ e.zdotaccent = 500;
+ e.Ecaron = 667;
+ e.Iogonek = 278;
+ e.kcommaaccent = 500;
+ e.minus = 584;
+ e.Icircumflex = 278;
+ e.ncaron = 556;
+ e.tcommaaccent = 278;
+ e.logicalnot = 584;
+ e.odieresis = 556;
+ e.udieresis = 556;
+ e.notequal = 549;
+ e.gcommaaccent = 556;
+ e.eth = 556;
+ e.zcaron = 500;
+ e.ncommaaccent = 556;
+ e.onesuperior = 333;
+ e.imacron = 278;
+ e.Euro = 556;
+ });
+ e["Helvetica-Bold"] = (0, r.getLookupTableFactory)(function (e) {
+ e.space = 278;
+ e.exclam = 333;
+ e.quotedbl = 474;
+ e.numbersign = 556;
+ e.dollar = 556;
+ e.percent = 889;
+ e.ampersand = 722;
+ e.quoteright = 278;
+ e.parenleft = 333;
+ e.parenright = 333;
+ e.asterisk = 389;
+ e.plus = 584;
+ e.comma = 278;
+ e.hyphen = 333;
+ e.period = 278;
+ e.slash = 278;
+ e.zero = 556;
+ e.one = 556;
+ e.two = 556;
+ e.three = 556;
+ e.four = 556;
+ e.five = 556;
+ e.six = 556;
+ e.seven = 556;
+ e.eight = 556;
+ e.nine = 556;
+ e.colon = 333;
+ e.semicolon = 333;
+ e.less = 584;
+ e.equal = 584;
+ e.greater = 584;
+ e.question = 611;
+ e.at = 975;
+ e.A = 722;
+ e.B = 722;
+ e.C = 722;
+ e.D = 722;
+ e.E = 667;
+ e.F = 611;
+ e.G = 778;
+ e.H = 722;
+ e.I = 278;
+ e.J = 556;
+ e.K = 722;
+ e.L = 611;
+ e.M = 833;
+ e.N = 722;
+ e.O = 778;
+ e.P = 667;
+ e.Q = 778;
+ e.R = 722;
+ e.S = 667;
+ e.T = 611;
+ e.U = 722;
+ e.V = 667;
+ e.W = 944;
+ e.X = 667;
+ e.Y = 667;
+ e.Z = 611;
+ e.bracketleft = 333;
+ e.backslash = 278;
+ e.bracketright = 333;
+ e.asciicircum = 584;
+ e.underscore = 556;
+ e.quoteleft = 278;
+ e.a = 556;
+ e.b = 611;
+ e.c = 556;
+ e.d = 611;
+ e.e = 556;
+ e.f = 333;
+ e.g = 611;
+ e.h = 611;
+ e.i = 278;
+ e.j = 278;
+ e.k = 556;
+ e.l = 278;
+ e.m = 889;
+ e.n = 611;
+ e.o = 611;
+ e.p = 611;
+ e.q = 611;
+ e.r = 389;
+ e.s = 556;
+ e.t = 333;
+ e.u = 611;
+ e.v = 556;
+ e.w = 778;
+ e.x = 556;
+ e.y = 556;
+ e.z = 500;
+ e.braceleft = 389;
+ e.bar = 280;
+ e.braceright = 389;
+ e.asciitilde = 584;
+ e.exclamdown = 333;
+ e.cent = 556;
+ e.sterling = 556;
+ e.fraction = 167;
+ e.yen = 556;
+ e.florin = 556;
+ e.section = 556;
+ e.currency = 556;
+ e.quotesingle = 238;
+ e.quotedblleft = 500;
+ e.guillemotleft = 556;
+ e.guilsinglleft = 333;
+ e.guilsinglright = 333;
+ e.fi = 611;
+ e.fl = 611;
+ e.endash = 556;
+ e.dagger = 556;
+ e.daggerdbl = 556;
+ e.periodcentered = 278;
+ e.paragraph = 556;
+ e.bullet = 350;
+ e.quotesinglbase = 278;
+ e.quotedblbase = 500;
+ e.quotedblright = 500;
+ e.guillemotright = 556;
+ e.ellipsis = 1e3;
+ e.perthousand = 1e3;
+ e.questiondown = 611;
+ e.grave = 333;
+ e.acute = 333;
+ e.circumflex = 333;
+ e.tilde = 333;
+ e.macron = 333;
+ e.breve = 333;
+ e.dotaccent = 333;
+ e.dieresis = 333;
+ e.ring = 333;
+ e.cedilla = 333;
+ e.hungarumlaut = 333;
+ e.ogonek = 333;
+ e.caron = 333;
+ e.emdash = 1e3;
+ e.AE = 1e3;
+ e.ordfeminine = 370;
+ e.Lslash = 611;
+ e.Oslash = 778;
+ e.OE = 1e3;
+ e.ordmasculine = 365;
+ e.ae = 889;
+ e.dotlessi = 278;
+ e.lslash = 278;
+ e.oslash = 611;
+ e.oe = 944;
+ e.germandbls = 611;
+ e.Idieresis = 278;
+ e.eacute = 556;
+ e.abreve = 556;
+ e.uhungarumlaut = 611;
+ e.ecaron = 556;
+ e.Ydieresis = 667;
+ e.divide = 584;
+ e.Yacute = 667;
+ e.Acircumflex = 722;
+ e.aacute = 556;
+ e.Ucircumflex = 722;
+ e.yacute = 556;
+ e.scommaaccent = 556;
+ e.ecircumflex = 556;
+ e.Uring = 722;
+ e.Udieresis = 722;
+ e.aogonek = 556;
+ e.Uacute = 722;
+ e.uogonek = 611;
+ e.Edieresis = 667;
+ e.Dcroat = 722;
+ e.commaaccent = 250;
+ e.copyright = 737;
+ e.Emacron = 667;
+ e.ccaron = 556;
+ e.aring = 556;
+ e.Ncommaaccent = 722;
+ e.lacute = 278;
+ e.agrave = 556;
+ e.Tcommaaccent = 611;
+ e.Cacute = 722;
+ e.atilde = 556;
+ e.Edotaccent = 667;
+ e.scaron = 556;
+ e.scedilla = 556;
+ e.iacute = 278;
+ e.lozenge = 494;
+ e.Rcaron = 722;
+ e.Gcommaaccent = 778;
+ e.ucircumflex = 611;
+ e.acircumflex = 556;
+ e.Amacron = 722;
+ e.rcaron = 389;
+ e.ccedilla = 556;
+ e.Zdotaccent = 611;
+ e.Thorn = 667;
+ e.Omacron = 778;
+ e.Racute = 722;
+ e.Sacute = 667;
+ e.dcaron = 743;
+ e.Umacron = 722;
+ e.uring = 611;
+ e.threesuperior = 333;
+ e.Ograve = 778;
+ e.Agrave = 722;
+ e.Abreve = 722;
+ e.multiply = 584;
+ e.uacute = 611;
+ e.Tcaron = 611;
+ e.partialdiff = 494;
+ e.ydieresis = 556;
+ e.Nacute = 722;
+ e.icircumflex = 278;
+ e.Ecircumflex = 667;
+ e.adieresis = 556;
+ e.edieresis = 556;
+ e.cacute = 556;
+ e.nacute = 611;
+ e.umacron = 611;
+ e.Ncaron = 722;
+ e.Iacute = 278;
+ e.plusminus = 584;
+ e.brokenbar = 280;
+ e.registered = 737;
+ e.Gbreve = 778;
+ e.Idotaccent = 278;
+ e.summation = 600;
+ e.Egrave = 667;
+ e.racute = 389;
+ e.omacron = 611;
+ e.Zacute = 611;
+ e.Zcaron = 611;
+ e.greaterequal = 549;
+ e.Eth = 722;
+ e.Ccedilla = 722;
+ e.lcommaaccent = 278;
+ e.tcaron = 389;
+ e.eogonek = 556;
+ e.Uogonek = 722;
+ e.Aacute = 722;
+ e.Adieresis = 722;
+ e.egrave = 556;
+ e.zacute = 500;
+ e.iogonek = 278;
+ e.Oacute = 778;
+ e.oacute = 611;
+ e.amacron = 556;
+ e.sacute = 556;
+ e.idieresis = 278;
+ e.Ocircumflex = 778;
+ e.Ugrave = 722;
+ e.Delta = 612;
+ e.thorn = 611;
+ e.twosuperior = 333;
+ e.Odieresis = 778;
+ e.mu = 611;
+ e.igrave = 278;
+ e.ohungarumlaut = 611;
+ e.Eogonek = 667;
+ e.dcroat = 611;
+ e.threequarters = 834;
+ e.Scedilla = 667;
+ e.lcaron = 400;
+ e.Kcommaaccent = 722;
+ e.Lacute = 611;
+ e.trademark = 1e3;
+ e.edotaccent = 556;
+ e.Igrave = 278;
+ e.Imacron = 278;
+ e.Lcaron = 611;
+ e.onehalf = 834;
+ e.lessequal = 549;
+ e.ocircumflex = 611;
+ e.ntilde = 611;
+ e.Uhungarumlaut = 722;
+ e.Eacute = 667;
+ e.emacron = 556;
+ e.gbreve = 611;
+ e.onequarter = 834;
+ e.Scaron = 667;
+ e.Scommaaccent = 667;
+ e.Ohungarumlaut = 778;
+ e.degree = 400;
+ e.ograve = 611;
+ e.Ccaron = 722;
+ e.ugrave = 611;
+ e.radical = 549;
+ e.Dcaron = 722;
+ e.rcommaaccent = 389;
+ e.Ntilde = 722;
+ e.otilde = 611;
+ e.Rcommaaccent = 722;
+ e.Lcommaaccent = 611;
+ e.Atilde = 722;
+ e.Aogonek = 722;
+ e.Aring = 722;
+ e.Otilde = 778;
+ e.zdotaccent = 500;
+ e.Ecaron = 667;
+ e.Iogonek = 278;
+ e.kcommaaccent = 556;
+ e.minus = 584;
+ e.Icircumflex = 278;
+ e.ncaron = 611;
+ e.tcommaaccent = 333;
+ e.logicalnot = 584;
+ e.odieresis = 611;
+ e.udieresis = 611;
+ e.notequal = 549;
+ e.gcommaaccent = 611;
+ e.eth = 611;
+ e.zcaron = 500;
+ e.ncommaaccent = 611;
+ e.onesuperior = 333;
+ e.imacron = 278;
+ e.Euro = 556;
+ });
+ e["Helvetica-BoldOblique"] = (0, r.getLookupTableFactory)(
+ function (e) {
+ e.space = 278;
+ e.exclam = 333;
+ e.quotedbl = 474;
+ e.numbersign = 556;
+ e.dollar = 556;
+ e.percent = 889;
+ e.ampersand = 722;
+ e.quoteright = 278;
+ e.parenleft = 333;
+ e.parenright = 333;
+ e.asterisk = 389;
+ e.plus = 584;
+ e.comma = 278;
+ e.hyphen = 333;
+ e.period = 278;
+ e.slash = 278;
+ e.zero = 556;
+ e.one = 556;
+ e.two = 556;
+ e.three = 556;
+ e.four = 556;
+ e.five = 556;
+ e.six = 556;
+ e.seven = 556;
+ e.eight = 556;
+ e.nine = 556;
+ e.colon = 333;
+ e.semicolon = 333;
+ e.less = 584;
+ e.equal = 584;
+ e.greater = 584;
+ e.question = 611;
+ e.at = 975;
+ e.A = 722;
+ e.B = 722;
+ e.C = 722;
+ e.D = 722;
+ e.E = 667;
+ e.F = 611;
+ e.G = 778;
+ e.H = 722;
+ e.I = 278;
+ e.J = 556;
+ e.K = 722;
+ e.L = 611;
+ e.M = 833;
+ e.N = 722;
+ e.O = 778;
+ e.P = 667;
+ e.Q = 778;
+ e.R = 722;
+ e.S = 667;
+ e.T = 611;
+ e.U = 722;
+ e.V = 667;
+ e.W = 944;
+ e.X = 667;
+ e.Y = 667;
+ e.Z = 611;
+ e.bracketleft = 333;
+ e.backslash = 278;
+ e.bracketright = 333;
+ e.asciicircum = 584;
+ e.underscore = 556;
+ e.quoteleft = 278;
+ e.a = 556;
+ e.b = 611;
+ e.c = 556;
+ e.d = 611;
+ e.e = 556;
+ e.f = 333;
+ e.g = 611;
+ e.h = 611;
+ e.i = 278;
+ e.j = 278;
+ e.k = 556;
+ e.l = 278;
+ e.m = 889;
+ e.n = 611;
+ e.o = 611;
+ e.p = 611;
+ e.q = 611;
+ e.r = 389;
+ e.s = 556;
+ e.t = 333;
+ e.u = 611;
+ e.v = 556;
+ e.w = 778;
+ e.x = 556;
+ e.y = 556;
+ e.z = 500;
+ e.braceleft = 389;
+ e.bar = 280;
+ e.braceright = 389;
+ e.asciitilde = 584;
+ e.exclamdown = 333;
+ e.cent = 556;
+ e.sterling = 556;
+ e.fraction = 167;
+ e.yen = 556;
+ e.florin = 556;
+ e.section = 556;
+ e.currency = 556;
+ e.quotesingle = 238;
+ e.quotedblleft = 500;
+ e.guillemotleft = 556;
+ e.guilsinglleft = 333;
+ e.guilsinglright = 333;
+ e.fi = 611;
+ e.fl = 611;
+ e.endash = 556;
+ e.dagger = 556;
+ e.daggerdbl = 556;
+ e.periodcentered = 278;
+ e.paragraph = 556;
+ e.bullet = 350;
+ e.quotesinglbase = 278;
+ e.quotedblbase = 500;
+ e.quotedblright = 500;
+ e.guillemotright = 556;
+ e.ellipsis = 1e3;
+ e.perthousand = 1e3;
+ e.questiondown = 611;
+ e.grave = 333;
+ e.acute = 333;
+ e.circumflex = 333;
+ e.tilde = 333;
+ e.macron = 333;
+ e.breve = 333;
+ e.dotaccent = 333;
+ e.dieresis = 333;
+ e.ring = 333;
+ e.cedilla = 333;
+ e.hungarumlaut = 333;
+ e.ogonek = 333;
+ e.caron = 333;
+ e.emdash = 1e3;
+ e.AE = 1e3;
+ e.ordfeminine = 370;
+ e.Lslash = 611;
+ e.Oslash = 778;
+ e.OE = 1e3;
+ e.ordmasculine = 365;
+ e.ae = 889;
+ e.dotlessi = 278;
+ e.lslash = 278;
+ e.oslash = 611;
+ e.oe = 944;
+ e.germandbls = 611;
+ e.Idieresis = 278;
+ e.eacute = 556;
+ e.abreve = 556;
+ e.uhungarumlaut = 611;
+ e.ecaron = 556;
+ e.Ydieresis = 667;
+ e.divide = 584;
+ e.Yacute = 667;
+ e.Acircumflex = 722;
+ e.aacute = 556;
+ e.Ucircumflex = 722;
+ e.yacute = 556;
+ e.scommaaccent = 556;
+ e.ecircumflex = 556;
+ e.Uring = 722;
+ e.Udieresis = 722;
+ e.aogonek = 556;
+ e.Uacute = 722;
+ e.uogonek = 611;
+ e.Edieresis = 667;
+ e.Dcroat = 722;
+ e.commaaccent = 250;
+ e.copyright = 737;
+ e.Emacron = 667;
+ e.ccaron = 556;
+ e.aring = 556;
+ e.Ncommaaccent = 722;
+ e.lacute = 278;
+ e.agrave = 556;
+ e.Tcommaaccent = 611;
+ e.Cacute = 722;
+ e.atilde = 556;
+ e.Edotaccent = 667;
+ e.scaron = 556;
+ e.scedilla = 556;
+ e.iacute = 278;
+ e.lozenge = 494;
+ e.Rcaron = 722;
+ e.Gcommaaccent = 778;
+ e.ucircumflex = 611;
+ e.acircumflex = 556;
+ e.Amacron = 722;
+ e.rcaron = 389;
+ e.ccedilla = 556;
+ e.Zdotaccent = 611;
+ e.Thorn = 667;
+ e.Omacron = 778;
+ e.Racute = 722;
+ e.Sacute = 667;
+ e.dcaron = 743;
+ e.Umacron = 722;
+ e.uring = 611;
+ e.threesuperior = 333;
+ e.Ograve = 778;
+ e.Agrave = 722;
+ e.Abreve = 722;
+ e.multiply = 584;
+ e.uacute = 611;
+ e.Tcaron = 611;
+ e.partialdiff = 494;
+ e.ydieresis = 556;
+ e.Nacute = 722;
+ e.icircumflex = 278;
+ e.Ecircumflex = 667;
+ e.adieresis = 556;
+ e.edieresis = 556;
+ e.cacute = 556;
+ e.nacute = 611;
+ e.umacron = 611;
+ e.Ncaron = 722;
+ e.Iacute = 278;
+ e.plusminus = 584;
+ e.brokenbar = 280;
+ e.registered = 737;
+ e.Gbreve = 778;
+ e.Idotaccent = 278;
+ e.summation = 600;
+ e.Egrave = 667;
+ e.racute = 389;
+ e.omacron = 611;
+ e.Zacute = 611;
+ e.Zcaron = 611;
+ e.greaterequal = 549;
+ e.Eth = 722;
+ e.Ccedilla = 722;
+ e.lcommaaccent = 278;
+ e.tcaron = 389;
+ e.eogonek = 556;
+ e.Uogonek = 722;
+ e.Aacute = 722;
+ e.Adieresis = 722;
+ e.egrave = 556;
+ e.zacute = 500;
+ e.iogonek = 278;
+ e.Oacute = 778;
+ e.oacute = 611;
+ e.amacron = 556;
+ e.sacute = 556;
+ e.idieresis = 278;
+ e.Ocircumflex = 778;
+ e.Ugrave = 722;
+ e.Delta = 612;
+ e.thorn = 611;
+ e.twosuperior = 333;
+ e.Odieresis = 778;
+ e.mu = 611;
+ e.igrave = 278;
+ e.ohungarumlaut = 611;
+ e.Eogonek = 667;
+ e.dcroat = 611;
+ e.threequarters = 834;
+ e.Scedilla = 667;
+ e.lcaron = 400;
+ e.Kcommaaccent = 722;
+ e.Lacute = 611;
+ e.trademark = 1e3;
+ e.edotaccent = 556;
+ e.Igrave = 278;
+ e.Imacron = 278;
+ e.Lcaron = 611;
+ e.onehalf = 834;
+ e.lessequal = 549;
+ e.ocircumflex = 611;
+ e.ntilde = 611;
+ e.Uhungarumlaut = 722;
+ e.Eacute = 667;
+ e.emacron = 556;
+ e.gbreve = 611;
+ e.onequarter = 834;
+ e.Scaron = 667;
+ e.Scommaaccent = 667;
+ e.Ohungarumlaut = 778;
+ e.degree = 400;
+ e.ograve = 611;
+ e.Ccaron = 722;
+ e.ugrave = 611;
+ e.radical = 549;
+ e.Dcaron = 722;
+ e.rcommaaccent = 389;
+ e.Ntilde = 722;
+ e.otilde = 611;
+ e.Rcommaaccent = 722;
+ e.Lcommaaccent = 611;
+ e.Atilde = 722;
+ e.Aogonek = 722;
+ e.Aring = 722;
+ e.Otilde = 778;
+ e.zdotaccent = 500;
+ e.Ecaron = 667;
+ e.Iogonek = 278;
+ e.kcommaaccent = 556;
+ e.minus = 584;
+ e.Icircumflex = 278;
+ e.ncaron = 611;
+ e.tcommaaccent = 333;
+ e.logicalnot = 584;
+ e.odieresis = 611;
+ e.udieresis = 611;
+ e.notequal = 549;
+ e.gcommaaccent = 611;
+ e.eth = 611;
+ e.zcaron = 500;
+ e.ncommaaccent = 611;
+ e.onesuperior = 333;
+ e.imacron = 278;
+ e.Euro = 556;
+ },
+ );
+ e["Helvetica-Oblique"] = (0, r.getLookupTableFactory)(function (e) {
+ e.space = 278;
+ e.exclam = 278;
+ e.quotedbl = 355;
+ e.numbersign = 556;
+ e.dollar = 556;
+ e.percent = 889;
+ e.ampersand = 667;
+ e.quoteright = 222;
+ e.parenleft = 333;
+ e.parenright = 333;
+ e.asterisk = 389;
+ e.plus = 584;
+ e.comma = 278;
+ e.hyphen = 333;
+ e.period = 278;
+ e.slash = 278;
+ e.zero = 556;
+ e.one = 556;
+ e.two = 556;
+ e.three = 556;
+ e.four = 556;
+ e.five = 556;
+ e.six = 556;
+ e.seven = 556;
+ e.eight = 556;
+ e.nine = 556;
+ e.colon = 278;
+ e.semicolon = 278;
+ e.less = 584;
+ e.equal = 584;
+ e.greater = 584;
+ e.question = 556;
+ e.at = 1015;
+ e.A = 667;
+ e.B = 667;
+ e.C = 722;
+ e.D = 722;
+ e.E = 667;
+ e.F = 611;
+ e.G = 778;
+ e.H = 722;
+ e.I = 278;
+ e.J = 500;
+ e.K = 667;
+ e.L = 556;
+ e.M = 833;
+ e.N = 722;
+ e.O = 778;
+ e.P = 667;
+ e.Q = 778;
+ e.R = 722;
+ e.S = 667;
+ e.T = 611;
+ e.U = 722;
+ e.V = 667;
+ e.W = 944;
+ e.X = 667;
+ e.Y = 667;
+ e.Z = 611;
+ e.bracketleft = 278;
+ e.backslash = 278;
+ e.bracketright = 278;
+ e.asciicircum = 469;
+ e.underscore = 556;
+ e.quoteleft = 222;
+ e.a = 556;
+ e.b = 556;
+ e.c = 500;
+ e.d = 556;
+ e.e = 556;
+ e.f = 278;
+ e.g = 556;
+ e.h = 556;
+ e.i = 222;
+ e.j = 222;
+ e.k = 500;
+ e.l = 222;
+ e.m = 833;
+ e.n = 556;
+ e.o = 556;
+ e.p = 556;
+ e.q = 556;
+ e.r = 333;
+ e.s = 500;
+ e.t = 278;
+ e.u = 556;
+ e.v = 500;
+ e.w = 722;
+ e.x = 500;
+ e.y = 500;
+ e.z = 500;
+ e.braceleft = 334;
+ e.bar = 260;
+ e.braceright = 334;
+ e.asciitilde = 584;
+ e.exclamdown = 333;
+ e.cent = 556;
+ e.sterling = 556;
+ e.fraction = 167;
+ e.yen = 556;
+ e.florin = 556;
+ e.section = 556;
+ e.currency = 556;
+ e.quotesingle = 191;
+ e.quotedblleft = 333;
+ e.guillemotleft = 556;
+ e.guilsinglleft = 333;
+ e.guilsinglright = 333;
+ e.fi = 500;
+ e.fl = 500;
+ e.endash = 556;
+ e.dagger = 556;
+ e.daggerdbl = 556;
+ e.periodcentered = 278;
+ e.paragraph = 537;
+ e.bullet = 350;
+ e.quotesinglbase = 222;
+ e.quotedblbase = 333;
+ e.quotedblright = 333;
+ e.guillemotright = 556;
+ e.ellipsis = 1e3;
+ e.perthousand = 1e3;
+ e.questiondown = 611;
+ e.grave = 333;
+ e.acute = 333;
+ e.circumflex = 333;
+ e.tilde = 333;
+ e.macron = 333;
+ e.breve = 333;
+ e.dotaccent = 333;
+ e.dieresis = 333;
+ e.ring = 333;
+ e.cedilla = 333;
+ e.hungarumlaut = 333;
+ e.ogonek = 333;
+ e.caron = 333;
+ e.emdash = 1e3;
+ e.AE = 1e3;
+ e.ordfeminine = 370;
+ e.Lslash = 556;
+ e.Oslash = 778;
+ e.OE = 1e3;
+ e.ordmasculine = 365;
+ e.ae = 889;
+ e.dotlessi = 278;
+ e.lslash = 222;
+ e.oslash = 611;
+ e.oe = 944;
+ e.germandbls = 611;
+ e.Idieresis = 278;
+ e.eacute = 556;
+ e.abreve = 556;
+ e.uhungarumlaut = 556;
+ e.ecaron = 556;
+ e.Ydieresis = 667;
+ e.divide = 584;
+ e.Yacute = 667;
+ e.Acircumflex = 667;
+ e.aacute = 556;
+ e.Ucircumflex = 722;
+ e.yacute = 500;
+ e.scommaaccent = 500;
+ e.ecircumflex = 556;
+ e.Uring = 722;
+ e.Udieresis = 722;
+ e.aogonek = 556;
+ e.Uacute = 722;
+ e.uogonek = 556;
+ e.Edieresis = 667;
+ e.Dcroat = 722;
+ e.commaaccent = 250;
+ e.copyright = 737;
+ e.Emacron = 667;
+ e.ccaron = 500;
+ e.aring = 556;
+ e.Ncommaaccent = 722;
+ e.lacute = 222;
+ e.agrave = 556;
+ e.Tcommaaccent = 611;
+ e.Cacute = 722;
+ e.atilde = 556;
+ e.Edotaccent = 667;
+ e.scaron = 500;
+ e.scedilla = 500;
+ e.iacute = 278;
+ e.lozenge = 471;
+ e.Rcaron = 722;
+ e.Gcommaaccent = 778;
+ e.ucircumflex = 556;
+ e.acircumflex = 556;
+ e.Amacron = 667;
+ e.rcaron = 333;
+ e.ccedilla = 500;
+ e.Zdotaccent = 611;
+ e.Thorn = 667;
+ e.Omacron = 778;
+ e.Racute = 722;
+ e.Sacute = 667;
+ e.dcaron = 643;
+ e.Umacron = 722;
+ e.uring = 556;
+ e.threesuperior = 333;
+ e.Ograve = 778;
+ e.Agrave = 667;
+ e.Abreve = 667;
+ e.multiply = 584;
+ e.uacute = 556;
+ e.Tcaron = 611;
+ e.partialdiff = 476;
+ e.ydieresis = 500;
+ e.Nacute = 722;
+ e.icircumflex = 278;
+ e.Ecircumflex = 667;
+ e.adieresis = 556;
+ e.edieresis = 556;
+ e.cacute = 500;
+ e.nacute = 556;
+ e.umacron = 556;
+ e.Ncaron = 722;
+ e.Iacute = 278;
+ e.plusminus = 584;
+ e.brokenbar = 260;
+ e.registered = 737;
+ e.Gbreve = 778;
+ e.Idotaccent = 278;
+ e.summation = 600;
+ e.Egrave = 667;
+ e.racute = 333;
+ e.omacron = 556;
+ e.Zacute = 611;
+ e.Zcaron = 611;
+ e.greaterequal = 549;
+ e.Eth = 722;
+ e.Ccedilla = 722;
+ e.lcommaaccent = 222;
+ e.tcaron = 317;
+ e.eogonek = 556;
+ e.Uogonek = 722;
+ e.Aacute = 667;
+ e.Adieresis = 667;
+ e.egrave = 556;
+ e.zacute = 500;
+ e.iogonek = 222;
+ e.Oacute = 778;
+ e.oacute = 556;
+ e.amacron = 556;
+ e.sacute = 500;
+ e.idieresis = 278;
+ e.Ocircumflex = 778;
+ e.Ugrave = 722;
+ e.Delta = 612;
+ e.thorn = 556;
+ e.twosuperior = 333;
+ e.Odieresis = 778;
+ e.mu = 556;
+ e.igrave = 278;
+ e.ohungarumlaut = 556;
+ e.Eogonek = 667;
+ e.dcroat = 556;
+ e.threequarters = 834;
+ e.Scedilla = 667;
+ e.lcaron = 299;
+ e.Kcommaaccent = 667;
+ e.Lacute = 556;
+ e.trademark = 1e3;
+ e.edotaccent = 556;
+ e.Igrave = 278;
+ e.Imacron = 278;
+ e.Lcaron = 556;
+ e.onehalf = 834;
+ e.lessequal = 549;
+ e.ocircumflex = 556;
+ e.ntilde = 556;
+ e.Uhungarumlaut = 722;
+ e.Eacute = 667;
+ e.emacron = 556;
+ e.gbreve = 556;
+ e.onequarter = 834;
+ e.Scaron = 667;
+ e.Scommaaccent = 667;
+ e.Ohungarumlaut = 778;
+ e.degree = 400;
+ e.ograve = 556;
+ e.Ccaron = 722;
+ e.ugrave = 556;
+ e.radical = 453;
+ e.Dcaron = 722;
+ e.rcommaaccent = 333;
+ e.Ntilde = 722;
+ e.otilde = 556;
+ e.Rcommaaccent = 722;
+ e.Lcommaaccent = 556;
+ e.Atilde = 667;
+ e.Aogonek = 667;
+ e.Aring = 667;
+ e.Otilde = 778;
+ e.zdotaccent = 500;
+ e.Ecaron = 667;
+ e.Iogonek = 278;
+ e.kcommaaccent = 500;
+ e.minus = 584;
+ e.Icircumflex = 278;
+ e.ncaron = 556;
+ e.tcommaaccent = 278;
+ e.logicalnot = 584;
+ e.odieresis = 556;
+ e.udieresis = 556;
+ e.notequal = 549;
+ e.gcommaaccent = 556;
+ e.eth = 556;
+ e.zcaron = 500;
+ e.ncommaaccent = 556;
+ e.onesuperior = 333;
+ e.imacron = 278;
+ e.Euro = 556;
+ });
+ e.Symbol = (0, r.getLookupTableFactory)(function (e) {
+ e.space = 250;
+ e.exclam = 333;
+ e.universal = 713;
+ e.numbersign = 500;
+ e.existential = 549;
+ e.percent = 833;
+ e.ampersand = 778;
+ e.suchthat = 439;
+ e.parenleft = 333;
+ e.parenright = 333;
+ e.asteriskmath = 500;
+ e.plus = 549;
+ e.comma = 250;
+ e.minus = 549;
+ e.period = 250;
+ e.slash = 278;
+ e.zero = 500;
+ e.one = 500;
+ e.two = 500;
+ e.three = 500;
+ e.four = 500;
+ e.five = 500;
+ e.six = 500;
+ e.seven = 500;
+ e.eight = 500;
+ e.nine = 500;
+ e.colon = 278;
+ e.semicolon = 278;
+ e.less = 549;
+ e.equal = 549;
+ e.greater = 549;
+ e.question = 444;
+ e.congruent = 549;
+ e.Alpha = 722;
+ e.Beta = 667;
+ e.Chi = 722;
+ e.Delta = 612;
+ e.Epsilon = 611;
+ e.Phi = 763;
+ e.Gamma = 603;
+ e.Eta = 722;
+ e.Iota = 333;
+ e.theta1 = 631;
+ e.Kappa = 722;
+ e.Lambda = 686;
+ e.Mu = 889;
+ e.Nu = 722;
+ e.Omicron = 722;
+ e.Pi = 768;
+ e.Theta = 741;
+ e.Rho = 556;
+ e.Sigma = 592;
+ e.Tau = 611;
+ e.Upsilon = 690;
+ e.sigma1 = 439;
+ e.Omega = 768;
+ e.Xi = 645;
+ e.Psi = 795;
+ e.Zeta = 611;
+ e.bracketleft = 333;
+ e.therefore = 863;
+ e.bracketright = 333;
+ e.perpendicular = 658;
+ e.underscore = 500;
+ e.radicalex = 500;
+ e.alpha = 631;
+ e.beta = 549;
+ e.chi = 549;
+ e.delta = 494;
+ e.epsilon = 439;
+ e.phi = 521;
+ e.gamma = 411;
+ e.eta = 603;
+ e.iota = 329;
+ e.phi1 = 603;
+ e.kappa = 549;
+ e.lambda = 549;
+ e.mu = 576;
+ e.nu = 521;
+ e.omicron = 549;
+ e.pi = 549;
+ e.theta = 521;
+ e.rho = 549;
+ e.sigma = 603;
+ e.tau = 439;
+ e.upsilon = 576;
+ e.omega1 = 713;
+ e.omega = 686;
+ e.xi = 493;
+ e.psi = 686;
+ e.zeta = 494;
+ e.braceleft = 480;
+ e.bar = 200;
+ e.braceright = 480;
+ e.similar = 549;
+ e.Euro = 750;
+ e.Upsilon1 = 620;
+ e.minute = 247;
+ e.lessequal = 549;
+ e.fraction = 167;
+ e.infinity = 713;
+ e.florin = 500;
+ e.club = 753;
+ e.diamond = 753;
+ e.heart = 753;
+ e.spade = 753;
+ e.arrowboth = 1042;
+ e.arrowleft = 987;
+ e.arrowup = 603;
+ e.arrowright = 987;
+ e.arrowdown = 603;
+ e.degree = 400;
+ e.plusminus = 549;
+ e.second = 411;
+ e.greaterequal = 549;
+ e.multiply = 549;
+ e.proportional = 713;
+ e.partialdiff = 494;
+ e.bullet = 460;
+ e.divide = 549;
+ e.notequal = 549;
+ e.equivalence = 549;
+ e.approxequal = 549;
+ e.ellipsis = 1e3;
+ e.arrowvertex = 603;
+ e.arrowhorizex = 1e3;
+ e.carriagereturn = 658;
+ e.aleph = 823;
+ e.Ifraktur = 686;
+ e.Rfraktur = 795;
+ e.weierstrass = 987;
+ e.circlemultiply = 768;
+ e.circleplus = 768;
+ e.emptyset = 823;
+ e.intersection = 768;
+ e.union = 768;
+ e.propersuperset = 713;
+ e.reflexsuperset = 713;
+ e.notsubset = 713;
+ e.propersubset = 713;
+ e.reflexsubset = 713;
+ e.element = 713;
+ e.notelement = 713;
+ e.angle = 768;
+ e.gradient = 713;
+ e.registerserif = 790;
+ e.copyrightserif = 790;
+ e.trademarkserif = 890;
+ e.product = 823;
+ e.radical = 549;
+ e.dotmath = 250;
+ e.logicalnot = 713;
+ e.logicaland = 603;
+ e.logicalor = 603;
+ e.arrowdblboth = 1042;
+ e.arrowdblleft = 987;
+ e.arrowdblup = 603;
+ e.arrowdblright = 987;
+ e.arrowdbldown = 603;
+ e.lozenge = 494;
+ e.angleleft = 329;
+ e.registersans = 790;
+ e.copyrightsans = 790;
+ e.trademarksans = 786;
+ e.summation = 713;
+ e.parenlefttp = 384;
+ e.parenleftex = 384;
+ e.parenleftbt = 384;
+ e.bracketlefttp = 384;
+ e.bracketleftex = 384;
+ e.bracketleftbt = 384;
+ e.bracelefttp = 494;
+ e.braceleftmid = 494;
+ e.braceleftbt = 494;
+ e.braceex = 494;
+ e.angleright = 329;
+ e.integral = 274;
+ e.integraltp = 686;
+ e.integralex = 686;
+ e.integralbt = 686;
+ e.parenrighttp = 384;
+ e.parenrightex = 384;
+ e.parenrightbt = 384;
+ e.bracketrighttp = 384;
+ e.bracketrightex = 384;
+ e.bracketrightbt = 384;
+ e.bracerighttp = 494;
+ e.bracerightmid = 494;
+ e.bracerightbt = 494;
+ e.apple = 790;
+ });
+ e["Times-Roman"] = (0, r.getLookupTableFactory)(function (e) {
+ e.space = 250;
+ e.exclam = 333;
+ e.quotedbl = 408;
+ e.numbersign = 500;
+ e.dollar = 500;
+ e.percent = 833;
+ e.ampersand = 778;
+ e.quoteright = 333;
+ e.parenleft = 333;
+ e.parenright = 333;
+ e.asterisk = 500;
+ e.plus = 564;
+ e.comma = 250;
+ e.hyphen = 333;
+ e.period = 250;
+ e.slash = 278;
+ e.zero = 500;
+ e.one = 500;
+ e.two = 500;
+ e.three = 500;
+ e.four = 500;
+ e.five = 500;
+ e.six = 500;
+ e.seven = 500;
+ e.eight = 500;
+ e.nine = 500;
+ e.colon = 278;
+ e.semicolon = 278;
+ e.less = 564;
+ e.equal = 564;
+ e.greater = 564;
+ e.question = 444;
+ e.at = 921;
+ e.A = 722;
+ e.B = 667;
+ e.C = 667;
+ e.D = 722;
+ e.E = 611;
+ e.F = 556;
+ e.G = 722;
+ e.H = 722;
+ e.I = 333;
+ e.J = 389;
+ e.K = 722;
+ e.L = 611;
+ e.M = 889;
+ e.N = 722;
+ e.O = 722;
+ e.P = 556;
+ e.Q = 722;
+ e.R = 667;
+ e.S = 556;
+ e.T = 611;
+ e.U = 722;
+ e.V = 722;
+ e.W = 944;
+ e.X = 722;
+ e.Y = 722;
+ e.Z = 611;
+ e.bracketleft = 333;
+ e.backslash = 278;
+ e.bracketright = 333;
+ e.asciicircum = 469;
+ e.underscore = 500;
+ e.quoteleft = 333;
+ e.a = 444;
+ e.b = 500;
+ e.c = 444;
+ e.d = 500;
+ e.e = 444;
+ e.f = 333;
+ e.g = 500;
+ e.h = 500;
+ e.i = 278;
+ e.j = 278;
+ e.k = 500;
+ e.l = 278;
+ e.m = 778;
+ e.n = 500;
+ e.o = 500;
+ e.p = 500;
+ e.q = 500;
+ e.r = 333;
+ e.s = 389;
+ e.t = 278;
+ e.u = 500;
+ e.v = 500;
+ e.w = 722;
+ e.x = 500;
+ e.y = 500;
+ e.z = 444;
+ e.braceleft = 480;
+ e.bar = 200;
+ e.braceright = 480;
+ e.asciitilde = 541;
+ e.exclamdown = 333;
+ e.cent = 500;
+ e.sterling = 500;
+ e.fraction = 167;
+ e.yen = 500;
+ e.florin = 500;
+ e.section = 500;
+ e.currency = 500;
+ e.quotesingle = 180;
+ e.quotedblleft = 444;
+ e.guillemotleft = 500;
+ e.guilsinglleft = 333;
+ e.guilsinglright = 333;
+ e.fi = 556;
+ e.fl = 556;
+ e.endash = 500;
+ e.dagger = 500;
+ e.daggerdbl = 500;
+ e.periodcentered = 250;
+ e.paragraph = 453;
+ e.bullet = 350;
+ e.quotesinglbase = 333;
+ e.quotedblbase = 444;
+ e.quotedblright = 444;
+ e.guillemotright = 500;
+ e.ellipsis = 1e3;
+ e.perthousand = 1e3;
+ e.questiondown = 444;
+ e.grave = 333;
+ e.acute = 333;
+ e.circumflex = 333;
+ e.tilde = 333;
+ e.macron = 333;
+ e.breve = 333;
+ e.dotaccent = 333;
+ e.dieresis = 333;
+ e.ring = 333;
+ e.cedilla = 333;
+ e.hungarumlaut = 333;
+ e.ogonek = 333;
+ e.caron = 333;
+ e.emdash = 1e3;
+ e.AE = 889;
+ e.ordfeminine = 276;
+ e.Lslash = 611;
+ e.Oslash = 722;
+ e.OE = 889;
+ e.ordmasculine = 310;
+ e.ae = 667;
+ e.dotlessi = 278;
+ e.lslash = 278;
+ e.oslash = 500;
+ e.oe = 722;
+ e.germandbls = 500;
+ e.Idieresis = 333;
+ e.eacute = 444;
+ e.abreve = 444;
+ e.uhungarumlaut = 500;
+ e.ecaron = 444;
+ e.Ydieresis = 722;
+ e.divide = 564;
+ e.Yacute = 722;
+ e.Acircumflex = 722;
+ e.aacute = 444;
+ e.Ucircumflex = 722;
+ e.yacute = 500;
+ e.scommaaccent = 389;
+ e.ecircumflex = 444;
+ e.Uring = 722;
+ e.Udieresis = 722;
+ e.aogonek = 444;
+ e.Uacute = 722;
+ e.uogonek = 500;
+ e.Edieresis = 611;
+ e.Dcroat = 722;
+ e.commaaccent = 250;
+ e.copyright = 760;
+ e.Emacron = 611;
+ e.ccaron = 444;
+ e.aring = 444;
+ e.Ncommaaccent = 722;
+ e.lacute = 278;
+ e.agrave = 444;
+ e.Tcommaaccent = 611;
+ e.Cacute = 667;
+ e.atilde = 444;
+ e.Edotaccent = 611;
+ e.scaron = 389;
+ e.scedilla = 389;
+ e.iacute = 278;
+ e.lozenge = 471;
+ e.Rcaron = 667;
+ e.Gcommaaccent = 722;
+ e.ucircumflex = 500;
+ e.acircumflex = 444;
+ e.Amacron = 722;
+ e.rcaron = 333;
+ e.ccedilla = 444;
+ e.Zdotaccent = 611;
+ e.Thorn = 556;
+ e.Omacron = 722;
+ e.Racute = 667;
+ e.Sacute = 556;
+ e.dcaron = 588;
+ e.Umacron = 722;
+ e.uring = 500;
+ e.threesuperior = 300;
+ e.Ograve = 722;
+ e.Agrave = 722;
+ e.Abreve = 722;
+ e.multiply = 564;
+ e.uacute = 500;
+ e.Tcaron = 611;
+ e.partialdiff = 476;
+ e.ydieresis = 500;
+ e.Nacute = 722;
+ e.icircumflex = 278;
+ e.Ecircumflex = 611;
+ e.adieresis = 444;
+ e.edieresis = 444;
+ e.cacute = 444;
+ e.nacute = 500;
+ e.umacron = 500;
+ e.Ncaron = 722;
+ e.Iacute = 333;
+ e.plusminus = 564;
+ e.brokenbar = 200;
+ e.registered = 760;
+ e.Gbreve = 722;
+ e.Idotaccent = 333;
+ e.summation = 600;
+ e.Egrave = 611;
+ e.racute = 333;
+ e.omacron = 500;
+ e.Zacute = 611;
+ e.Zcaron = 611;
+ e.greaterequal = 549;
+ e.Eth = 722;
+ e.Ccedilla = 667;
+ e.lcommaaccent = 278;
+ e.tcaron = 326;
+ e.eogonek = 444;
+ e.Uogonek = 722;
+ e.Aacute = 722;
+ e.Adieresis = 722;
+ e.egrave = 444;
+ e.zacute = 444;
+ e.iogonek = 278;
+ e.Oacute = 722;
+ e.oacute = 500;
+ e.amacron = 444;
+ e.sacute = 389;
+ e.idieresis = 278;
+ e.Ocircumflex = 722;
+ e.Ugrave = 722;
+ e.Delta = 612;
+ e.thorn = 500;
+ e.twosuperior = 300;
+ e.Odieresis = 722;
+ e.mu = 500;
+ e.igrave = 278;
+ e.ohungarumlaut = 500;
+ e.Eogonek = 611;
+ e.dcroat = 500;
+ e.threequarters = 750;
+ e.Scedilla = 556;
+ e.lcaron = 344;
+ e.Kcommaaccent = 722;
+ e.Lacute = 611;
+ e.trademark = 980;
+ e.edotaccent = 444;
+ e.Igrave = 333;
+ e.Imacron = 333;
+ e.Lcaron = 611;
+ e.onehalf = 750;
+ e.lessequal = 549;
+ e.ocircumflex = 500;
+ e.ntilde = 500;
+ e.Uhungarumlaut = 722;
+ e.Eacute = 611;
+ e.emacron = 444;
+ e.gbreve = 500;
+ e.onequarter = 750;
+ e.Scaron = 556;
+ e.Scommaaccent = 556;
+ e.Ohungarumlaut = 722;
+ e.degree = 400;
+ e.ograve = 500;
+ e.Ccaron = 667;
+ e.ugrave = 500;
+ e.radical = 453;
+ e.Dcaron = 722;
+ e.rcommaaccent = 333;
+ e.Ntilde = 722;
+ e.otilde = 500;
+ e.Rcommaaccent = 667;
+ e.Lcommaaccent = 611;
+ e.Atilde = 722;
+ e.Aogonek = 722;
+ e.Aring = 722;
+ e.Otilde = 722;
+ e.zdotaccent = 444;
+ e.Ecaron = 611;
+ e.Iogonek = 333;
+ e.kcommaaccent = 500;
+ e.minus = 564;
+ e.Icircumflex = 333;
+ e.ncaron = 500;
+ e.tcommaaccent = 278;
+ e.logicalnot = 564;
+ e.odieresis = 500;
+ e.udieresis = 500;
+ e.notequal = 549;
+ e.gcommaaccent = 500;
+ e.eth = 500;
+ e.zcaron = 444;
+ e.ncommaaccent = 500;
+ e.onesuperior = 300;
+ e.imacron = 278;
+ e.Euro = 500;
+ });
+ e["Times-Bold"] = (0, r.getLookupTableFactory)(function (e) {
+ e.space = 250;
+ e.exclam = 333;
+ e.quotedbl = 555;
+ e.numbersign = 500;
+ e.dollar = 500;
+ e.percent = 1e3;
+ e.ampersand = 833;
+ e.quoteright = 333;
+ e.parenleft = 333;
+ e.parenright = 333;
+ e.asterisk = 500;
+ e.plus = 570;
+ e.comma = 250;
+ e.hyphen = 333;
+ e.period = 250;
+ e.slash = 278;
+ e.zero = 500;
+ e.one = 500;
+ e.two = 500;
+ e.three = 500;
+ e.four = 500;
+ e.five = 500;
+ e.six = 500;
+ e.seven = 500;
+ e.eight = 500;
+ e.nine = 500;
+ e.colon = 333;
+ e.semicolon = 333;
+ e.less = 570;
+ e.equal = 570;
+ e.greater = 570;
+ e.question = 500;
+ e.at = 930;
+ e.A = 722;
+ e.B = 667;
+ e.C = 722;
+ e.D = 722;
+ e.E = 667;
+ e.F = 611;
+ e.G = 778;
+ e.H = 778;
+ e.I = 389;
+ e.J = 500;
+ e.K = 778;
+ e.L = 667;
+ e.M = 944;
+ e.N = 722;
+ e.O = 778;
+ e.P = 611;
+ e.Q = 778;
+ e.R = 722;
+ e.S = 556;
+ e.T = 667;
+ e.U = 722;
+ e.V = 722;
+ e.W = 1e3;
+ e.X = 722;
+ e.Y = 722;
+ e.Z = 667;
+ e.bracketleft = 333;
+ e.backslash = 278;
+ e.bracketright = 333;
+ e.asciicircum = 581;
+ e.underscore = 500;
+ e.quoteleft = 333;
+ e.a = 500;
+ e.b = 556;
+ e.c = 444;
+ e.d = 556;
+ e.e = 444;
+ e.f = 333;
+ e.g = 500;
+ e.h = 556;
+ e.i = 278;
+ e.j = 333;
+ e.k = 556;
+ e.l = 278;
+ e.m = 833;
+ e.n = 556;
+ e.o = 500;
+ e.p = 556;
+ e.q = 556;
+ e.r = 444;
+ e.s = 389;
+ e.t = 333;
+ e.u = 556;
+ e.v = 500;
+ e.w = 722;
+ e.x = 500;
+ e.y = 500;
+ e.z = 444;
+ e.braceleft = 394;
+ e.bar = 220;
+ e.braceright = 394;
+ e.asciitilde = 520;
+ e.exclamdown = 333;
+ e.cent = 500;
+ e.sterling = 500;
+ e.fraction = 167;
+ e.yen = 500;
+ e.florin = 500;
+ e.section = 500;
+ e.currency = 500;
+ e.quotesingle = 278;
+ e.quotedblleft = 500;
+ e.guillemotleft = 500;
+ e.guilsinglleft = 333;
+ e.guilsinglright = 333;
+ e.fi = 556;
+ e.fl = 556;
+ e.endash = 500;
+ e.dagger = 500;
+ e.daggerdbl = 500;
+ e.periodcentered = 250;
+ e.paragraph = 540;
+ e.bullet = 350;
+ e.quotesinglbase = 333;
+ e.quotedblbase = 500;
+ e.quotedblright = 500;
+ e.guillemotright = 500;
+ e.ellipsis = 1e3;
+ e.perthousand = 1e3;
+ e.questiondown = 500;
+ e.grave = 333;
+ e.acute = 333;
+ e.circumflex = 333;
+ e.tilde = 333;
+ e.macron = 333;
+ e.breve = 333;
+ e.dotaccent = 333;
+ e.dieresis = 333;
+ e.ring = 333;
+ e.cedilla = 333;
+ e.hungarumlaut = 333;
+ e.ogonek = 333;
+ e.caron = 333;
+ e.emdash = 1e3;
+ e.AE = 1e3;
+ e.ordfeminine = 300;
+ e.Lslash = 667;
+ e.Oslash = 778;
+ e.OE = 1e3;
+ e.ordmasculine = 330;
+ e.ae = 722;
+ e.dotlessi = 278;
+ e.lslash = 278;
+ e.oslash = 500;
+ e.oe = 722;
+ e.germandbls = 556;
+ e.Idieresis = 389;
+ e.eacute = 444;
+ e.abreve = 500;
+ e.uhungarumlaut = 556;
+ e.ecaron = 444;
+ e.Ydieresis = 722;
+ e.divide = 570;
+ e.Yacute = 722;
+ e.Acircumflex = 722;
+ e.aacute = 500;
+ e.Ucircumflex = 722;
+ e.yacute = 500;
+ e.scommaaccent = 389;
+ e.ecircumflex = 444;
+ e.Uring = 722;
+ e.Udieresis = 722;
+ e.aogonek = 500;
+ e.Uacute = 722;
+ e.uogonek = 556;
+ e.Edieresis = 667;
+ e.Dcroat = 722;
+ e.commaaccent = 250;
+ e.copyright = 747;
+ e.Emacron = 667;
+ e.ccaron = 444;
+ e.aring = 500;
+ e.Ncommaaccent = 722;
+ e.lacute = 278;
+ e.agrave = 500;
+ e.Tcommaaccent = 667;
+ e.Cacute = 722;
+ e.atilde = 500;
+ e.Edotaccent = 667;
+ e.scaron = 389;
+ e.scedilla = 389;
+ e.iacute = 278;
+ e.lozenge = 494;
+ e.Rcaron = 722;
+ e.Gcommaaccent = 778;
+ e.ucircumflex = 556;
+ e.acircumflex = 500;
+ e.Amacron = 722;
+ e.rcaron = 444;
+ e.ccedilla = 444;
+ e.Zdotaccent = 667;
+ e.Thorn = 611;
+ e.Omacron = 778;
+ e.Racute = 722;
+ e.Sacute = 556;
+ e.dcaron = 672;
+ e.Umacron = 722;
+ e.uring = 556;
+ e.threesuperior = 300;
+ e.Ograve = 778;
+ e.Agrave = 722;
+ e.Abreve = 722;
+ e.multiply = 570;
+ e.uacute = 556;
+ e.Tcaron = 667;
+ e.partialdiff = 494;
+ e.ydieresis = 500;
+ e.Nacute = 722;
+ e.icircumflex = 278;
+ e.Ecircumflex = 667;
+ e.adieresis = 500;
+ e.edieresis = 444;
+ e.cacute = 444;
+ e.nacute = 556;
+ e.umacron = 556;
+ e.Ncaron = 722;
+ e.Iacute = 389;
+ e.plusminus = 570;
+ e.brokenbar = 220;
+ e.registered = 747;
+ e.Gbreve = 778;
+ e.Idotaccent = 389;
+ e.summation = 600;
+ e.Egrave = 667;
+ e.racute = 444;
+ e.omacron = 500;
+ e.Zacute = 667;
+ e.Zcaron = 667;
+ e.greaterequal = 549;
+ e.Eth = 722;
+ e.Ccedilla = 722;
+ e.lcommaaccent = 278;
+ e.tcaron = 416;
+ e.eogonek = 444;
+ e.Uogonek = 722;
+ e.Aacute = 722;
+ e.Adieresis = 722;
+ e.egrave = 444;
+ e.zacute = 444;
+ e.iogonek = 278;
+ e.Oacute = 778;
+ e.oacute = 500;
+ e.amacron = 500;
+ e.sacute = 389;
+ e.idieresis = 278;
+ e.Ocircumflex = 778;
+ e.Ugrave = 722;
+ e.Delta = 612;
+ e.thorn = 556;
+ e.twosuperior = 300;
+ e.Odieresis = 778;
+ e.mu = 556;
+ e.igrave = 278;
+ e.ohungarumlaut = 500;
+ e.Eogonek = 667;
+ e.dcroat = 556;
+ e.threequarters = 750;
+ e.Scedilla = 556;
+ e.lcaron = 394;
+ e.Kcommaaccent = 778;
+ e.Lacute = 667;
+ e.trademark = 1e3;
+ e.edotaccent = 444;
+ e.Igrave = 389;
+ e.Imacron = 389;
+ e.Lcaron = 667;
+ e.onehalf = 750;
+ e.lessequal = 549;
+ e.ocircumflex = 500;
+ e.ntilde = 556;
+ e.Uhungarumlaut = 722;
+ e.Eacute = 667;
+ e.emacron = 444;
+ e.gbreve = 500;
+ e.onequarter = 750;
+ e.Scaron = 556;
+ e.Scommaaccent = 556;
+ e.Ohungarumlaut = 778;
+ e.degree = 400;
+ e.ograve = 500;
+ e.Ccaron = 722;
+ e.ugrave = 556;
+ e.radical = 549;
+ e.Dcaron = 722;
+ e.rcommaaccent = 444;
+ e.Ntilde = 722;
+ e.otilde = 500;
+ e.Rcommaaccent = 722;
+ e.Lcommaaccent = 667;
+ e.Atilde = 722;
+ e.Aogonek = 722;
+ e.Aring = 722;
+ e.Otilde = 778;
+ e.zdotaccent = 444;
+ e.Ecaron = 667;
+ e.Iogonek = 389;
+ e.kcommaaccent = 556;
+ e.minus = 570;
+ e.Icircumflex = 389;
+ e.ncaron = 556;
+ e.tcommaaccent = 333;
+ e.logicalnot = 570;
+ e.odieresis = 500;
+ e.udieresis = 556;
+ e.notequal = 549;
+ e.gcommaaccent = 500;
+ e.eth = 500;
+ e.zcaron = 444;
+ e.ncommaaccent = 556;
+ e.onesuperior = 300;
+ e.imacron = 278;
+ e.Euro = 500;
+ });
+ e["Times-BoldItalic"] = (0, r.getLookupTableFactory)(function (e) {
+ e.space = 250;
+ e.exclam = 389;
+ e.quotedbl = 555;
+ e.numbersign = 500;
+ e.dollar = 500;
+ e.percent = 833;
+ e.ampersand = 778;
+ e.quoteright = 333;
+ e.parenleft = 333;
+ e.parenright = 333;
+ e.asterisk = 500;
+ e.plus = 570;
+ e.comma = 250;
+ e.hyphen = 333;
+ e.period = 250;
+ e.slash = 278;
+ e.zero = 500;
+ e.one = 500;
+ e.two = 500;
+ e.three = 500;
+ e.four = 500;
+ e.five = 500;
+ e.six = 500;
+ e.seven = 500;
+ e.eight = 500;
+ e.nine = 500;
+ e.colon = 333;
+ e.semicolon = 333;
+ e.less = 570;
+ e.equal = 570;
+ e.greater = 570;
+ e.question = 500;
+ e.at = 832;
+ e.A = 667;
+ e.B = 667;
+ e.C = 667;
+ e.D = 722;
+ e.E = 667;
+ e.F = 667;
+ e.G = 722;
+ e.H = 778;
+ e.I = 389;
+ e.J = 500;
+ e.K = 667;
+ e.L = 611;
+ e.M = 889;
+ e.N = 722;
+ e.O = 722;
+ e.P = 611;
+ e.Q = 722;
+ e.R = 667;
+ e.S = 556;
+ e.T = 611;
+ e.U = 722;
+ e.V = 667;
+ e.W = 889;
+ e.X = 667;
+ e.Y = 611;
+ e.Z = 611;
+ e.bracketleft = 333;
+ e.backslash = 278;
+ e.bracketright = 333;
+ e.asciicircum = 570;
+ e.underscore = 500;
+ e.quoteleft = 333;
+ e.a = 500;
+ e.b = 500;
+ e.c = 444;
+ e.d = 500;
+ e.e = 444;
+ e.f = 333;
+ e.g = 500;
+ e.h = 556;
+ e.i = 278;
+ e.j = 278;
+ e.k = 500;
+ e.l = 278;
+ e.m = 778;
+ e.n = 556;
+ e.o = 500;
+ e.p = 500;
+ e.q = 500;
+ e.r = 389;
+ e.s = 389;
+ e.t = 278;
+ e.u = 556;
+ e.v = 444;
+ e.w = 667;
+ e.x = 500;
+ e.y = 444;
+ e.z = 389;
+ e.braceleft = 348;
+ e.bar = 220;
+ e.braceright = 348;
+ e.asciitilde = 570;
+ e.exclamdown = 389;
+ e.cent = 500;
+ e.sterling = 500;
+ e.fraction = 167;
+ e.yen = 500;
+ e.florin = 500;
+ e.section = 500;
+ e.currency = 500;
+ e.quotesingle = 278;
+ e.quotedblleft = 500;
+ e.guillemotleft = 500;
+ e.guilsinglleft = 333;
+ e.guilsinglright = 333;
+ e.fi = 556;
+ e.fl = 556;
+ e.endash = 500;
+ e.dagger = 500;
+ e.daggerdbl = 500;
+ e.periodcentered = 250;
+ e.paragraph = 500;
+ e.bullet = 350;
+ e.quotesinglbase = 333;
+ e.quotedblbase = 500;
+ e.quotedblright = 500;
+ e.guillemotright = 500;
+ e.ellipsis = 1e3;
+ e.perthousand = 1e3;
+ e.questiondown = 500;
+ e.grave = 333;
+ e.acute = 333;
+ e.circumflex = 333;
+ e.tilde = 333;
+ e.macron = 333;
+ e.breve = 333;
+ e.dotaccent = 333;
+ e.dieresis = 333;
+ e.ring = 333;
+ e.cedilla = 333;
+ e.hungarumlaut = 333;
+ e.ogonek = 333;
+ e.caron = 333;
+ e.emdash = 1e3;
+ e.AE = 944;
+ e.ordfeminine = 266;
+ e.Lslash = 611;
+ e.Oslash = 722;
+ e.OE = 944;
+ e.ordmasculine = 300;
+ e.ae = 722;
+ e.dotlessi = 278;
+ e.lslash = 278;
+ e.oslash = 500;
+ e.oe = 722;
+ e.germandbls = 500;
+ e.Idieresis = 389;
+ e.eacute = 444;
+ e.abreve = 500;
+ e.uhungarumlaut = 556;
+ e.ecaron = 444;
+ e.Ydieresis = 611;
+ e.divide = 570;
+ e.Yacute = 611;
+ e.Acircumflex = 667;
+ e.aacute = 500;
+ e.Ucircumflex = 722;
+ e.yacute = 444;
+ e.scommaaccent = 389;
+ e.ecircumflex = 444;
+ e.Uring = 722;
+ e.Udieresis = 722;
+ e.aogonek = 500;
+ e.Uacute = 722;
+ e.uogonek = 556;
+ e.Edieresis = 667;
+ e.Dcroat = 722;
+ e.commaaccent = 250;
+ e.copyright = 747;
+ e.Emacron = 667;
+ e.ccaron = 444;
+ e.aring = 500;
+ e.Ncommaaccent = 722;
+ e.lacute = 278;
+ e.agrave = 500;
+ e.Tcommaaccent = 611;
+ e.Cacute = 667;
+ e.atilde = 500;
+ e.Edotaccent = 667;
+ e.scaron = 389;
+ e.scedilla = 389;
+ e.iacute = 278;
+ e.lozenge = 494;
+ e.Rcaron = 667;
+ e.Gcommaaccent = 722;
+ e.ucircumflex = 556;
+ e.acircumflex = 500;
+ e.Amacron = 667;
+ e.rcaron = 389;
+ e.ccedilla = 444;
+ e.Zdotaccent = 611;
+ e.Thorn = 611;
+ e.Omacron = 722;
+ e.Racute = 667;
+ e.Sacute = 556;
+ e.dcaron = 608;
+ e.Umacron = 722;
+ e.uring = 556;
+ e.threesuperior = 300;
+ e.Ograve = 722;
+ e.Agrave = 667;
+ e.Abreve = 667;
+ e.multiply = 570;
+ e.uacute = 556;
+ e.Tcaron = 611;
+ e.partialdiff = 494;
+ e.ydieresis = 444;
+ e.Nacute = 722;
+ e.icircumflex = 278;
+ e.Ecircumflex = 667;
+ e.adieresis = 500;
+ e.edieresis = 444;
+ e.cacute = 444;
+ e.nacute = 556;
+ e.umacron = 556;
+ e.Ncaron = 722;
+ e.Iacute = 389;
+ e.plusminus = 570;
+ e.brokenbar = 220;
+ e.registered = 747;
+ e.Gbreve = 722;
+ e.Idotaccent = 389;
+ e.summation = 600;
+ e.Egrave = 667;
+ e.racute = 389;
+ e.omacron = 500;
+ e.Zacute = 611;
+ e.Zcaron = 611;
+ e.greaterequal = 549;
+ e.Eth = 722;
+ e.Ccedilla = 667;
+ e.lcommaaccent = 278;
+ e.tcaron = 366;
+ e.eogonek = 444;
+ e.Uogonek = 722;
+ e.Aacute = 667;
+ e.Adieresis = 667;
+ e.egrave = 444;
+ e.zacute = 389;
+ e.iogonek = 278;
+ e.Oacute = 722;
+ e.oacute = 500;
+ e.amacron = 500;
+ e.sacute = 389;
+ e.idieresis = 278;
+ e.Ocircumflex = 722;
+ e.Ugrave = 722;
+ e.Delta = 612;
+ e.thorn = 500;
+ e.twosuperior = 300;
+ e.Odieresis = 722;
+ e.mu = 576;
+ e.igrave = 278;
+ e.ohungarumlaut = 500;
+ e.Eogonek = 667;
+ e.dcroat = 500;
+ e.threequarters = 750;
+ e.Scedilla = 556;
+ e.lcaron = 382;
+ e.Kcommaaccent = 667;
+ e.Lacute = 611;
+ e.trademark = 1e3;
+ e.edotaccent = 444;
+ e.Igrave = 389;
+ e.Imacron = 389;
+ e.Lcaron = 611;
+ e.onehalf = 750;
+ e.lessequal = 549;
+ e.ocircumflex = 500;
+ e.ntilde = 556;
+ e.Uhungarumlaut = 722;
+ e.Eacute = 667;
+ e.emacron = 444;
+ e.gbreve = 500;
+ e.onequarter = 750;
+ e.Scaron = 556;
+ e.Scommaaccent = 556;
+ e.Ohungarumlaut = 722;
+ e.degree = 400;
+ e.ograve = 500;
+ e.Ccaron = 667;
+ e.ugrave = 556;
+ e.radical = 549;
+ e.Dcaron = 722;
+ e.rcommaaccent = 389;
+ e.Ntilde = 722;
+ e.otilde = 500;
+ e.Rcommaaccent = 667;
+ e.Lcommaaccent = 611;
+ e.Atilde = 667;
+ e.Aogonek = 667;
+ e.Aring = 667;
+ e.Otilde = 722;
+ e.zdotaccent = 389;
+ e.Ecaron = 667;
+ e.Iogonek = 389;
+ e.kcommaaccent = 500;
+ e.minus = 606;
+ e.Icircumflex = 389;
+ e.ncaron = 556;
+ e.tcommaaccent = 278;
+ e.logicalnot = 606;
+ e.odieresis = 500;
+ e.udieresis = 556;
+ e.notequal = 549;
+ e.gcommaaccent = 500;
+ e.eth = 500;
+ e.zcaron = 389;
+ e.ncommaaccent = 556;
+ e.onesuperior = 300;
+ e.imacron = 278;
+ e.Euro = 500;
+ });
+ e["Times-Italic"] = (0, r.getLookupTableFactory)(function (e) {
+ e.space = 250;
+ e.exclam = 333;
+ e.quotedbl = 420;
+ e.numbersign = 500;
+ e.dollar = 500;
+ e.percent = 833;
+ e.ampersand = 778;
+ e.quoteright = 333;
+ e.parenleft = 333;
+ e.parenright = 333;
+ e.asterisk = 500;
+ e.plus = 675;
+ e.comma = 250;
+ e.hyphen = 333;
+ e.period = 250;
+ e.slash = 278;
+ e.zero = 500;
+ e.one = 500;
+ e.two = 500;
+ e.three = 500;
+ e.four = 500;
+ e.five = 500;
+ e.six = 500;
+ e.seven = 500;
+ e.eight = 500;
+ e.nine = 500;
+ e.colon = 333;
+ e.semicolon = 333;
+ e.less = 675;
+ e.equal = 675;
+ e.greater = 675;
+ e.question = 500;
+ e.at = 920;
+ e.A = 611;
+ e.B = 611;
+ e.C = 667;
+ e.D = 722;
+ e.E = 611;
+ e.F = 611;
+ e.G = 722;
+ e.H = 722;
+ e.I = 333;
+ e.J = 444;
+ e.K = 667;
+ e.L = 556;
+ e.M = 833;
+ e.N = 667;
+ e.O = 722;
+ e.P = 611;
+ e.Q = 722;
+ e.R = 611;
+ e.S = 500;
+ e.T = 556;
+ e.U = 722;
+ e.V = 611;
+ e.W = 833;
+ e.X = 611;
+ e.Y = 556;
+ e.Z = 556;
+ e.bracketleft = 389;
+ e.backslash = 278;
+ e.bracketright = 389;
+ e.asciicircum = 422;
+ e.underscore = 500;
+ e.quoteleft = 333;
+ e.a = 500;
+ e.b = 500;
+ e.c = 444;
+ e.d = 500;
+ e.e = 444;
+ e.f = 278;
+ e.g = 500;
+ e.h = 500;
+ e.i = 278;
+ e.j = 278;
+ e.k = 444;
+ e.l = 278;
+ e.m = 722;
+ e.n = 500;
+ e.o = 500;
+ e.p = 500;
+ e.q = 500;
+ e.r = 389;
+ e.s = 389;
+ e.t = 278;
+ e.u = 500;
+ e.v = 444;
+ e.w = 667;
+ e.x = 444;
+ e.y = 444;
+ e.z = 389;
+ e.braceleft = 400;
+ e.bar = 275;
+ e.braceright = 400;
+ e.asciitilde = 541;
+ e.exclamdown = 389;
+ e.cent = 500;
+ e.sterling = 500;
+ e.fraction = 167;
+ e.yen = 500;
+ e.florin = 500;
+ e.section = 500;
+ e.currency = 500;
+ e.quotesingle = 214;
+ e.quotedblleft = 556;
+ e.guillemotleft = 500;
+ e.guilsinglleft = 333;
+ e.guilsinglright = 333;
+ e.fi = 500;
+ e.fl = 500;
+ e.endash = 500;
+ e.dagger = 500;
+ e.daggerdbl = 500;
+ e.periodcentered = 250;
+ e.paragraph = 523;
+ e.bullet = 350;
+ e.quotesinglbase = 333;
+ e.quotedblbase = 556;
+ e.quotedblright = 556;
+ e.guillemotright = 500;
+ e.ellipsis = 889;
+ e.perthousand = 1e3;
+ e.questiondown = 500;
+ e.grave = 333;
+ e.acute = 333;
+ e.circumflex = 333;
+ e.tilde = 333;
+ e.macron = 333;
+ e.breve = 333;
+ e.dotaccent = 333;
+ e.dieresis = 333;
+ e.ring = 333;
+ e.cedilla = 333;
+ e.hungarumlaut = 333;
+ e.ogonek = 333;
+ e.caron = 333;
+ e.emdash = 889;
+ e.AE = 889;
+ e.ordfeminine = 276;
+ e.Lslash = 556;
+ e.Oslash = 722;
+ e.OE = 944;
+ e.ordmasculine = 310;
+ e.ae = 667;
+ e.dotlessi = 278;
+ e.lslash = 278;
+ e.oslash = 500;
+ e.oe = 667;
+ e.germandbls = 500;
+ e.Idieresis = 333;
+ e.eacute = 444;
+ e.abreve = 500;
+ e.uhungarumlaut = 500;
+ e.ecaron = 444;
+ e.Ydieresis = 556;
+ e.divide = 675;
+ e.Yacute = 556;
+ e.Acircumflex = 611;
+ e.aacute = 500;
+ e.Ucircumflex = 722;
+ e.yacute = 444;
+ e.scommaaccent = 389;
+ e.ecircumflex = 444;
+ e.Uring = 722;
+ e.Udieresis = 722;
+ e.aogonek = 500;
+ e.Uacute = 722;
+ e.uogonek = 500;
+ e.Edieresis = 611;
+ e.Dcroat = 722;
+ e.commaaccent = 250;
+ e.copyright = 760;
+ e.Emacron = 611;
+ e.ccaron = 444;
+ e.aring = 500;
+ e.Ncommaaccent = 667;
+ e.lacute = 278;
+ e.agrave = 500;
+ e.Tcommaaccent = 556;
+ e.Cacute = 667;
+ e.atilde = 500;
+ e.Edotaccent = 611;
+ e.scaron = 389;
+ e.scedilla = 389;
+ e.iacute = 278;
+ e.lozenge = 471;
+ e.Rcaron = 611;
+ e.Gcommaaccent = 722;
+ e.ucircumflex = 500;
+ e.acircumflex = 500;
+ e.Amacron = 611;
+ e.rcaron = 389;
+ e.ccedilla = 444;
+ e.Zdotaccent = 556;
+ e.Thorn = 611;
+ e.Omacron = 722;
+ e.Racute = 611;
+ e.Sacute = 500;
+ e.dcaron = 544;
+ e.Umacron = 722;
+ e.uring = 500;
+ e.threesuperior = 300;
+ e.Ograve = 722;
+ e.Agrave = 611;
+ e.Abreve = 611;
+ e.multiply = 675;
+ e.uacute = 500;
+ e.Tcaron = 556;
+ e.partialdiff = 476;
+ e.ydieresis = 444;
+ e.Nacute = 667;
+ e.icircumflex = 278;
+ e.Ecircumflex = 611;
+ e.adieresis = 500;
+ e.edieresis = 444;
+ e.cacute = 444;
+ e.nacute = 500;
+ e.umacron = 500;
+ e.Ncaron = 667;
+ e.Iacute = 333;
+ e.plusminus = 675;
+ e.brokenbar = 275;
+ e.registered = 760;
+ e.Gbreve = 722;
+ e.Idotaccent = 333;
+ e.summation = 600;
+ e.Egrave = 611;
+ e.racute = 389;
+ e.omacron = 500;
+ e.Zacute = 556;
+ e.Zcaron = 556;
+ e.greaterequal = 549;
+ e.Eth = 722;
+ e.Ccedilla = 667;
+ e.lcommaaccent = 278;
+ e.tcaron = 300;
+ e.eogonek = 444;
+ e.Uogonek = 722;
+ e.Aacute = 611;
+ e.Adieresis = 611;
+ e.egrave = 444;
+ e.zacute = 389;
+ e.iogonek = 278;
+ e.Oacute = 722;
+ e.oacute = 500;
+ e.amacron = 500;
+ e.sacute = 389;
+ e.idieresis = 278;
+ e.Ocircumflex = 722;
+ e.Ugrave = 722;
+ e.Delta = 612;
+ e.thorn = 500;
+ e.twosuperior = 300;
+ e.Odieresis = 722;
+ e.mu = 500;
+ e.igrave = 278;
+ e.ohungarumlaut = 500;
+ e.Eogonek = 611;
+ e.dcroat = 500;
+ e.threequarters = 750;
+ e.Scedilla = 500;
+ e.lcaron = 300;
+ e.Kcommaaccent = 667;
+ e.Lacute = 556;
+ e.trademark = 980;
+ e.edotaccent = 444;
+ e.Igrave = 333;
+ e.Imacron = 333;
+ e.Lcaron = 611;
+ e.onehalf = 750;
+ e.lessequal = 549;
+ e.ocircumflex = 500;
+ e.ntilde = 500;
+ e.Uhungarumlaut = 722;
+ e.Eacute = 611;
+ e.emacron = 444;
+ e.gbreve = 500;
+ e.onequarter = 750;
+ e.Scaron = 500;
+ e.Scommaaccent = 500;
+ e.Ohungarumlaut = 722;
+ e.degree = 400;
+ e.ograve = 500;
+ e.Ccaron = 667;
+ e.ugrave = 500;
+ e.radical = 453;
+ e.Dcaron = 722;
+ e.rcommaaccent = 389;
+ e.Ntilde = 667;
+ e.otilde = 500;
+ e.Rcommaaccent = 611;
+ e.Lcommaaccent = 556;
+ e.Atilde = 611;
+ e.Aogonek = 611;
+ e.Aring = 611;
+ e.Otilde = 722;
+ e.zdotaccent = 389;
+ e.Ecaron = 611;
+ e.Iogonek = 333;
+ e.kcommaaccent = 444;
+ e.minus = 675;
+ e.Icircumflex = 333;
+ e.ncaron = 500;
+ e.tcommaaccent = 278;
+ e.logicalnot = 675;
+ e.odieresis = 500;
+ e.udieresis = 500;
+ e.notequal = 549;
+ e.gcommaaccent = 500;
+ e.eth = 500;
+ e.zcaron = 389;
+ e.ncommaaccent = 500;
+ e.onesuperior = 300;
+ e.imacron = 278;
+ e.Euro = 500;
+ });
+ e.ZapfDingbats = (0, r.getLookupTableFactory)(function (e) {
+ e.space = 278;
+ e.a1 = 974;
+ e.a2 = 961;
+ e.a202 = 974;
+ e.a3 = 980;
+ e.a4 = 719;
+ e.a5 = 789;
+ e.a119 = 790;
+ e.a118 = 791;
+ e.a117 = 690;
+ e.a11 = 960;
+ e.a12 = 939;
+ e.a13 = 549;
+ e.a14 = 855;
+ e.a15 = 911;
+ e.a16 = 933;
+ e.a105 = 911;
+ e.a17 = 945;
+ e.a18 = 974;
+ e.a19 = 755;
+ e.a20 = 846;
+ e.a21 = 762;
+ e.a22 = 761;
+ e.a23 = 571;
+ e.a24 = 677;
+ e.a25 = 763;
+ e.a26 = 760;
+ e.a27 = 759;
+ e.a28 = 754;
+ e.a6 = 494;
+ e.a7 = 552;
+ e.a8 = 537;
+ e.a9 = 577;
+ e.a10 = 692;
+ e.a29 = 786;
+ e.a30 = 788;
+ e.a31 = 788;
+ e.a32 = 790;
+ e.a33 = 793;
+ e.a34 = 794;
+ e.a35 = 816;
+ e.a36 = 823;
+ e.a37 = 789;
+ e.a38 = 841;
+ e.a39 = 823;
+ e.a40 = 833;
+ e.a41 = 816;
+ e.a42 = 831;
+ e.a43 = 923;
+ e.a44 = 744;
+ e.a45 = 723;
+ e.a46 = 749;
+ e.a47 = 790;
+ e.a48 = 792;
+ e.a49 = 695;
+ e.a50 = 776;
+ e.a51 = 768;
+ e.a52 = 792;
+ e.a53 = 759;
+ e.a54 = 707;
+ e.a55 = 708;
+ e.a56 = 682;
+ e.a57 = 701;
+ e.a58 = 826;
+ e.a59 = 815;
+ e.a60 = 789;
+ e.a61 = 789;
+ e.a62 = 707;
+ e.a63 = 687;
+ e.a64 = 696;
+ e.a65 = 689;
+ e.a66 = 786;
+ e.a67 = 787;
+ e.a68 = 713;
+ e.a69 = 791;
+ e.a70 = 785;
+ e.a71 = 791;
+ e.a72 = 873;
+ e.a73 = 761;
+ e.a74 = 762;
+ e.a203 = 762;
+ e.a75 = 759;
+ e.a204 = 759;
+ e.a76 = 892;
+ e.a77 = 892;
+ e.a78 = 788;
+ e.a79 = 784;
+ e.a81 = 438;
+ e.a82 = 138;
+ e.a83 = 277;
+ e.a84 = 415;
+ e.a97 = 392;
+ e.a98 = 392;
+ e.a99 = 668;
+ e.a100 = 668;
+ e.a89 = 390;
+ e.a90 = 390;
+ e.a93 = 317;
+ e.a94 = 317;
+ e.a91 = 276;
+ e.a92 = 276;
+ e.a205 = 509;
+ e.a85 = 509;
+ e.a206 = 410;
+ e.a86 = 410;
+ e.a87 = 234;
+ e.a88 = 234;
+ e.a95 = 334;
+ e.a96 = 334;
+ e.a101 = 732;
+ e.a102 = 544;
+ e.a103 = 544;
+ e.a104 = 910;
+ e.a106 = 667;
+ e.a107 = 760;
+ e.a108 = 760;
+ e.a112 = 776;
+ e.a111 = 595;
+ e.a110 = 694;
+ e.a109 = 626;
+ e.a120 = 788;
+ e.a121 = 788;
+ e.a122 = 788;
+ e.a123 = 788;
+ e.a124 = 788;
+ e.a125 = 788;
+ e.a126 = 788;
+ e.a127 = 788;
+ e.a128 = 788;
+ e.a129 = 788;
+ e.a130 = 788;
+ e.a131 = 788;
+ e.a132 = 788;
+ e.a133 = 788;
+ e.a134 = 788;
+ e.a135 = 788;
+ e.a136 = 788;
+ e.a137 = 788;
+ e.a138 = 788;
+ e.a139 = 788;
+ e.a140 = 788;
+ e.a141 = 788;
+ e.a142 = 788;
+ e.a143 = 788;
+ e.a144 = 788;
+ e.a145 = 788;
+ e.a146 = 788;
+ e.a147 = 788;
+ e.a148 = 788;
+ e.a149 = 788;
+ e.a150 = 788;
+ e.a151 = 788;
+ e.a152 = 788;
+ e.a153 = 788;
+ e.a154 = 788;
+ e.a155 = 788;
+ e.a156 = 788;
+ e.a157 = 788;
+ e.a158 = 788;
+ e.a159 = 788;
+ e.a160 = 894;
+ e.a161 = 838;
+ e.a163 = 1016;
+ e.a164 = 458;
+ e.a196 = 748;
+ e.a165 = 924;
+ e.a192 = 748;
+ e.a166 = 918;
+ e.a167 = 927;
+ e.a168 = 928;
+ e.a169 = 928;
+ e.a170 = 834;
+ e.a171 = 873;
+ e.a172 = 828;
+ e.a173 = 924;
+ e.a162 = 924;
+ e.a174 = 917;
+ e.a175 = 930;
+ e.a176 = 931;
+ e.a177 = 463;
+ e.a178 = 883;
+ e.a179 = 836;
+ e.a193 = 836;
+ e.a180 = 867;
+ e.a199 = 867;
+ e.a181 = 696;
+ e.a200 = 696;
+ e.a182 = 874;
+ e.a201 = 874;
+ e.a183 = 760;
+ e.a184 = 946;
+ e.a197 = 771;
+ e.a185 = 865;
+ e.a194 = 771;
+ e.a198 = 888;
+ e.a186 = 967;
+ e.a195 = 888;
+ e.a187 = 831;
+ e.a188 = 873;
+ e.a189 = 927;
+ e.a190 = 970;
+ e.a191 = 918;
+ });
+ });
+ t.getMetrics = n;
+ const i = (0, r.getLookupTableFactory)(function (e) {
+ e.Courier = {
+ ascent: 629,
+ descent: -157,
+ capHeight: 562,
+ xHeight: -426,
+ };
+ e["Courier-Bold"] = {
+ ascent: 629,
+ descent: -157,
+ capHeight: 562,
+ xHeight: 439,
+ };
+ e["Courier-Oblique"] = {
+ ascent: 629,
+ descent: -157,
+ capHeight: 562,
+ xHeight: 426,
+ };
+ e["Courier-BoldOblique"] = {
+ ascent: 629,
+ descent: -157,
+ capHeight: 562,
+ xHeight: 426,
+ };
+ e.Helvetica = {
+ ascent: 718,
+ descent: -207,
+ capHeight: 718,
+ xHeight: 523,
+ };
+ e["Helvetica-Bold"] = {
+ ascent: 718,
+ descent: -207,
+ capHeight: 718,
+ xHeight: 532,
+ };
+ e["Helvetica-Oblique"] = {
+ ascent: 718,
+ descent: -207,
+ capHeight: 718,
+ xHeight: 523,
+ };
+ e["Helvetica-BoldOblique"] = {
+ ascent: 718,
+ descent: -207,
+ capHeight: 718,
+ xHeight: 532,
+ };
+ e["Times-Roman"] = {
+ ascent: 683,
+ descent: -217,
+ capHeight: 662,
+ xHeight: 450,
+ };
+ e["Times-Bold"] = {
+ ascent: 683,
+ descent: -217,
+ capHeight: 676,
+ xHeight: 461,
+ };
+ e["Times-Italic"] = {
+ ascent: 683,
+ descent: -217,
+ capHeight: 653,
+ xHeight: 441,
+ };
+ e["Times-BoldItalic"] = {
+ ascent: 683,
+ descent: -217,
+ capHeight: 669,
+ xHeight: 462,
+ };
+ e.Symbol = {
+ ascent: Math.NaN,
+ descent: Math.NaN,
+ capHeight: Math.NaN,
+ xHeight: Math.NaN,
+ };
+ e.ZapfDingbats = {
+ ascent: Math.NaN,
+ descent: Math.NaN,
+ capHeight: Math.NaN,
+ xHeight: Math.NaN,
+ };
+ });
+ t.getFontBasicMetrics = i;
+ },
+ (e, t) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.GlyfTable = void 0;
+ t.GlyfTable = class GlyfTable {
+ constructor({
+ glyfTable: e,
+ isGlyphLocationsLong: t,
+ locaTable: a,
+ numGlyphs: r,
+ }) {
+ this.glyphs = [];
+ const n = new DataView(a.buffer, a.byteOffset, a.byteLength),
+ i = new DataView(e.buffer, e.byteOffset, e.byteLength),
+ s = t ? 4 : 2;
+ let o = t ? n.getUint32(0) : 2 * n.getUint16(0),
+ c = 0;
+ for (let e = 0; e < r; e++) {
+ c += s;
+ const e = t ? n.getUint32(c) : 2 * n.getUint16(c);
+ if (e === o) {
+ this.glyphs.push(new Glyph({}));
+ continue;
+ }
+ const a = Glyph.parse(o, i);
+ this.glyphs.push(a);
+ o = e;
+ }
+ }
+ getSize() {
+ return this.glyphs.reduce(
+ (e, t) => e + ((t.getSize() + 3) & -4),
+ 0,
+ );
+ }
+ write() {
+ const e = this.getSize(),
+ t = new DataView(new ArrayBuffer(e)),
+ a = e > 131070,
+ r = a ? 4 : 2,
+ n = new DataView(new ArrayBuffer((this.glyphs.length + 1) * r));
+ a ? n.setUint32(0, 0) : n.setUint16(0, 0);
+ let i = 0,
+ s = 0;
+ for (const e of this.glyphs) {
+ i += e.write(i, t);
+ i = (i + 3) & -4;
+ s += r;
+ a ? n.setUint32(s, i) : n.setUint16(s, i >> 1);
+ }
+ return {
+ isLocationLong: a,
+ loca: new Uint8Array(n.buffer),
+ glyf: new Uint8Array(t.buffer),
+ };
+ }
+ scale(e) {
+ for (let t = 0, a = this.glyphs.length; t < a; t++)
+ this.glyphs[t].scale(e[t]);
+ }
+ };
+ class Glyph {
+ constructor({
+ header: e = null,
+ simple: t = null,
+ composites: a = null,
+ }) {
+ this.header = e;
+ this.simple = t;
+ this.composites = a;
+ }
+ static parse(e, t) {
+ const [a, r] = GlyphHeader.parse(e, t);
+ e += a;
+ if (r.numberOfContours < 0) {
+ const a = [];
+ for (;;) {
+ const [r, n] = CompositeGlyph.parse(e, t);
+ e += r;
+ a.push(n);
+ if (!(32 & n.flags)) break;
+ }
+ return new Glyph({ header: r, composites: a });
+ }
+ const n = SimpleGlyph.parse(e, t, r.numberOfContours);
+ return new Glyph({ header: r, simple: n });
+ }
+ getSize() {
+ if (!this.header) return 0;
+ const e = this.simple
+ ? this.simple.getSize()
+ : this.composites.reduce((e, t) => e + t.getSize(), 0);
+ return this.header.getSize() + e;
+ }
+ write(e, t) {
+ if (!this.header) return 0;
+ const a = e;
+ e += this.header.write(e, t);
+ if (this.simple) e += this.simple.write(e, t);
+ else for (const a of this.composites) e += a.write(e, t);
+ return e - a;
+ }
+ scale(e) {
+ if (!this.header) return;
+ const t = (this.header.xMin + this.header.xMax) / 2;
+ this.header.scale(t, e);
+ if (this.simple) this.simple.scale(t, e);
+ else for (const a of this.composites) a.scale(t, e);
+ }
+ }
+ class GlyphHeader {
+ constructor({
+ numberOfContours: e,
+ xMin: t,
+ yMin: a,
+ xMax: r,
+ yMax: n,
+ }) {
+ this.numberOfContours = e;
+ this.xMin = t;
+ this.yMin = a;
+ this.xMax = r;
+ this.yMax = n;
+ }
+ static parse(e, t) {
+ return [
+ 10,
+ new GlyphHeader({
+ numberOfContours: t.getInt16(e),
+ xMin: t.getInt16(e + 2),
+ yMin: t.getInt16(e + 4),
+ xMax: t.getInt16(e + 6),
+ yMax: t.getInt16(e + 8),
+ }),
+ ];
+ }
+ getSize() {
+ return 10;
+ }
+ write(e, t) {
+ t.setInt16(e, this.numberOfContours);
+ t.setInt16(e + 2, this.xMin);
+ t.setInt16(e + 4, this.yMin);
+ t.setInt16(e + 6, this.xMax);
+ t.setInt16(e + 8, this.yMax);
+ return 10;
+ }
+ scale(e, t) {
+ this.xMin = Math.round(e + (this.xMin - e) * t);
+ this.xMax = Math.round(e + (this.xMax - e) * t);
+ }
+ }
+ class Contour {
+ constructor({ flags: e, xCoordinates: t, yCoordinates: a }) {
+ this.xCoordinates = t;
+ this.yCoordinates = a;
+ this.flags = e;
+ }
+ }
+ class SimpleGlyph {
+ constructor({ contours: e, instructions: t }) {
+ this.contours = e;
+ this.instructions = t;
+ }
+ static parse(e, t, a) {
+ const r = [];
+ for (let n = 0; n < a; n++) {
+ const a = t.getUint16(e);
+ e += 2;
+ r.push(a);
+ }
+ const n = r[a - 1] + 1,
+ i = t.getUint16(e);
+ e += 2;
+ const s = new Uint8Array(t).slice(e, e + i);
+ e += i;
+ const o = [];
+ for (let a = 0; a < n; e++, a++) {
+ let r = t.getUint8(e);
+ o.push(r);
+ if (8 & r) {
+ const n = t.getUint8(++e);
+ r ^= 8;
+ for (let e = 0; e < n; e++) o.push(r);
+ a += n;
+ }
+ }
+ const c = [];
+ let l = [],
+ h = [],
+ u = [];
+ const d = [];
+ let f = 0,
+ g = 0;
+ for (let a = 0; a < n; a++) {
+ const n = o[a];
+ if (2 & n) {
+ const a = t.getUint8(e++);
+ g += 16 & n ? a : -a;
+ l.push(g);
+ } else if (16 & n) l.push(g);
+ else {
+ g += t.getInt16(e);
+ e += 2;
+ l.push(g);
+ }
+ if (r[f] === a) {
+ f++;
+ c.push(l);
+ l = [];
+ }
+ }
+ g = 0;
+ f = 0;
+ for (let a = 0; a < n; a++) {
+ const n = o[a];
+ if (4 & n) {
+ const a = t.getUint8(e++);
+ g += 32 & n ? a : -a;
+ h.push(g);
+ } else if (32 & n) h.push(g);
+ else {
+ g += t.getInt16(e);
+ e += 2;
+ h.push(g);
+ }
+ u.push((1 & n) | (64 & n));
+ if (r[f] === a) {
+ l = c[f];
+ f++;
+ d.push(
+ new Contour({ flags: u, xCoordinates: l, yCoordinates: h }),
+ );
+ h = [];
+ u = [];
+ }
+ }
+ return new SimpleGlyph({ contours: d, instructions: s });
+ }
+ getSize() {
+ let e = 2 * this.contours.length + 2 + this.instructions.length,
+ t = 0,
+ a = 0;
+ for (const r of this.contours) {
+ e += r.flags.length;
+ for (let n = 0, i = r.xCoordinates.length; n < i; n++) {
+ const i = r.xCoordinates[n],
+ s = r.yCoordinates[n];
+ let o = Math.abs(i - t);
+ o > 255 ? (e += 2) : o > 0 && (e += 1);
+ t = i;
+ o = Math.abs(s - a);
+ o > 255 ? (e += 2) : o > 0 && (e += 1);
+ a = s;
+ }
+ }
+ return e;
+ }
+ write(e, t) {
+ const a = e,
+ r = [],
+ n = [],
+ i = [];
+ let s = 0,
+ o = 0;
+ for (const a of this.contours) {
+ for (let e = 0, t = a.xCoordinates.length; e < t; e++) {
+ let t = a.flags[e];
+ const c = a.xCoordinates[e];
+ let l = c - s;
+ if (0 === l) {
+ t |= 16;
+ r.push(0);
+ } else {
+ const e = Math.abs(l);
+ if (e <= 255) {
+ t |= l >= 0 ? 18 : 2;
+ r.push(e);
+ } else r.push(l);
+ }
+ s = c;
+ const h = a.yCoordinates[e];
+ l = h - o;
+ if (0 === l) {
+ t |= 32;
+ n.push(0);
+ } else {
+ const e = Math.abs(l);
+ if (e <= 255) {
+ t |= l >= 0 ? 36 : 4;
+ n.push(e);
+ } else n.push(l);
+ }
+ o = h;
+ i.push(t);
+ }
+ t.setUint16(e, r.length - 1);
+ e += 2;
+ }
+ t.setUint16(e, this.instructions.length);
+ e += 2;
+ if (this.instructions.length) {
+ new Uint8Array(t.buffer, 0, t.buffer.byteLength).set(
+ this.instructions,
+ e,
+ );
+ e += this.instructions.length;
+ }
+ for (const a of i) t.setUint8(e++, a);
+ for (let a = 0, n = r.length; a < n; a++) {
+ const n = r[a],
+ s = i[a];
+ if (2 & s) t.setUint8(e++, n);
+ else if (!(16 & s)) {
+ t.setInt16(e, n);
+ e += 2;
+ }
+ }
+ for (let a = 0, r = n.length; a < r; a++) {
+ const r = n[a],
+ s = i[a];
+ if (4 & s) t.setUint8(e++, r);
+ else if (!(32 & s)) {
+ t.setInt16(e, r);
+ e += 2;
+ }
+ }
+ return e - a;
+ }
+ scale(e, t) {
+ for (const a of this.contours)
+ if (0 !== a.xCoordinates.length)
+ for (let r = 0, n = a.xCoordinates.length; r < n; r++)
+ a.xCoordinates[r] = Math.round(
+ e + (a.xCoordinates[r] - e) * t,
+ );
+ }
+ }
+ class CompositeGlyph {
+ constructor({
+ flags: e,
+ glyphIndex: t,
+ argument1: a,
+ argument2: r,
+ transf: n,
+ instructions: i,
+ }) {
+ this.flags = e;
+ this.glyphIndex = t;
+ this.argument1 = a;
+ this.argument2 = r;
+ this.transf = n;
+ this.instructions = i;
+ }
+ static parse(e, t) {
+ const a = e,
+ r = [];
+ let n = t.getUint16(e);
+ const i = t.getUint16(e + 2);
+ e += 4;
+ let s, o;
+ if (1 & n) {
+ if (2 & n) {
+ s = t.getInt16(e);
+ o = t.getInt16(e + 2);
+ } else {
+ s = t.getUint16(e);
+ o = t.getUint16(e + 2);
+ }
+ e += 4;
+ n ^= 1;
+ } else {
+ if (2 & n) {
+ s = t.getInt8(e);
+ o = t.getInt8(e + 1);
+ } else {
+ s = t.getUint8(e);
+ o = t.getUint8(e + 1);
+ }
+ e += 2;
+ }
+ if (8 & n) {
+ r.push(t.getUint16(e));
+ e += 2;
+ } else if (64 & n) {
+ r.push(t.getUint16(e), t.getUint16(e + 2));
+ e += 4;
+ } else if (128 & n) {
+ r.push(
+ t.getUint16(e),
+ t.getUint16(e + 2),
+ t.getUint16(e + 4),
+ t.getUint16(e + 6),
+ );
+ e += 8;
+ }
+ let c = null;
+ if (256 & n) {
+ const a = t.getUint16(e);
+ e += 2;
+ c = new Uint8Array(t).slice(e, e + a);
+ e += a;
+ }
+ return [
+ e - a,
+ new CompositeGlyph({
+ flags: n,
+ glyphIndex: i,
+ argument1: s,
+ argument2: o,
+ transf: r,
+ instructions: c,
+ }),
+ ];
+ }
+ getSize() {
+ let e = 4 + 2 * this.transf.length;
+ 256 & this.flags && (e += 2 + this.instructions.length);
+ e += 2;
+ 2 & this.flags
+ ? (this.argument1 >= -128 &&
+ this.argument1 <= 127 &&
+ this.argument2 >= -128 &&
+ this.argument2 <= 127) ||
+ (e += 2)
+ : (this.argument1 >= 0 &&
+ this.argument1 <= 255 &&
+ this.argument2 >= 0 &&
+ this.argument2 <= 255) ||
+ (e += 2);
+ return e;
+ }
+ write(e, t) {
+ const a = e;
+ 2 & this.flags
+ ? (this.argument1 >= -128 &&
+ this.argument1 <= 127 &&
+ this.argument2 >= -128 &&
+ this.argument2 <= 127) ||
+ (this.flags |= 1)
+ : (this.argument1 >= 0 &&
+ this.argument1 <= 255 &&
+ this.argument2 >= 0 &&
+ this.argument2 <= 255) ||
+ (this.flags |= 1);
+ t.setUint16(e, this.flags);
+ t.setUint16(e + 2, this.glyphIndex);
+ e += 4;
+ if (1 & this.flags) {
+ if (2 & this.flags) {
+ t.setInt16(e, this.argument1);
+ t.setInt16(e + 2, this.argument2);
+ } else {
+ t.setUint16(e, this.argument1);
+ t.setUint16(e + 2, this.argument2);
+ }
+ e += 4;
+ } else {
+ t.setUint8(e, this.argument1);
+ t.setUint8(e + 1, this.argument2);
+ e += 2;
+ }
+ if (256 & this.flags) {
+ t.setUint16(e, this.instructions.length);
+ e += 2;
+ if (this.instructions.length) {
+ new Uint8Array(t.buffer, 0, t.buffer.byteLength).set(
+ this.instructions,
+ e,
+ );
+ e += this.instructions.length;
+ }
+ }
+ return e - a;
+ }
+ scale(e, t) {}
+ }
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.OpenTypeFileBuilder = void 0;
+ var r = a(3),
+ n = a(2);
+ function writeInt16(e, t, a) {
+ e[t] = (a >> 8) & 255;
+ e[t + 1] = 255 & a;
+ }
+ function writeInt32(e, t, a) {
+ e[t] = (a >> 24) & 255;
+ e[t + 1] = (a >> 16) & 255;
+ e[t + 2] = (a >> 8) & 255;
+ e[t + 3] = 255 & a;
+ }
+ function writeData(e, t, a) {
+ if (a instanceof Uint8Array) e.set(a, t);
+ else if ("string" == typeof a)
+ for (let r = 0, n = a.length; r < n; r++)
+ e[t++] = 255 & a.charCodeAt(r);
+ else for (const r of a) e[t++] = 255 & r;
+ }
+ class OpenTypeFileBuilder {
+ constructor(e) {
+ this.sfnt = e;
+ this.tables = Object.create(null);
+ }
+ static getSearchParams(e, t) {
+ let a = 1,
+ r = 0;
+ for (; (a ^ e) > a; ) {
+ a <<= 1;
+ r++;
+ }
+ const n = a * t;
+ return { range: n, entry: r, rangeShift: t * e - n };
+ }
+ toArray() {
+ let e = this.sfnt;
+ const t = this.tables,
+ a = Object.keys(t);
+ a.sort();
+ const i = a.length;
+ let s,
+ o,
+ c,
+ l,
+ h,
+ u = 12 + 16 * i;
+ const d = [u];
+ for (s = 0; s < i; s++) {
+ l = t[a[s]];
+ u += ((l.length + 3) & -4) >>> 0;
+ d.push(u);
+ }
+ const f = new Uint8Array(u);
+ for (s = 0; s < i; s++) {
+ l = t[a[s]];
+ writeData(f, d[s], l);
+ }
+ "true" === e && (e = (0, n.string32)(65536));
+ f[0] = 255 & e.charCodeAt(0);
+ f[1] = 255 & e.charCodeAt(1);
+ f[2] = 255 & e.charCodeAt(2);
+ f[3] = 255 & e.charCodeAt(3);
+ writeInt16(f, 4, i);
+ const g = OpenTypeFileBuilder.getSearchParams(i, 16);
+ writeInt16(f, 6, g.range);
+ writeInt16(f, 8, g.entry);
+ writeInt16(f, 10, g.rangeShift);
+ u = 12;
+ for (s = 0; s < i; s++) {
+ h = a[s];
+ f[u] = 255 & h.charCodeAt(0);
+ f[u + 1] = 255 & h.charCodeAt(1);
+ f[u + 2] = 255 & h.charCodeAt(2);
+ f[u + 3] = 255 & h.charCodeAt(3);
+ let e = 0;
+ for (o = d[s], c = d[s + 1]; o < c; o += 4) {
+ e = (e + (0, r.readUint32)(f, o)) >>> 0;
+ }
+ writeInt32(f, u + 4, e);
+ writeInt32(f, u + 8, d[s]);
+ writeInt32(f, u + 12, t[h].length);
+ u += 16;
+ }
+ return f;
+ }
+ addTable(e, t) {
+ if (e in this.tables)
+ throw new Error("Table " + e + " already exists");
+ this.tables[e] = t;
+ }
+ }
+ t.OpenTypeFileBuilder = OpenTypeFileBuilder;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.Type1Font = void 0;
+ var r = a(35),
+ n = a(2),
+ i = a(38),
+ s = a(3),
+ o = a(8),
+ c = a(49);
+ function findBlock(e, t, a) {
+ const r = e.length,
+ n = t.length,
+ i = r - n;
+ let o = a,
+ c = !1;
+ for (; o < i; ) {
+ let a = 0;
+ for (; a < n && e[o + a] === t[a]; ) a++;
+ if (a >= n) {
+ o += a;
+ for (; o < r && (0, s.isWhiteSpace)(e[o]); ) o++;
+ c = !0;
+ break;
+ }
+ o++;
+ }
+ return { found: c, length: o };
+ }
+ t.Type1Font = class Type1Font {
+ constructor(e, t, a) {
+ let r = a.length1,
+ s = a.length2,
+ l = t.peekBytes(6);
+ const h = 128 === l[0] && 1 === l[1];
+ if (h) {
+ t.skip(6);
+ r = (l[5] << 24) | (l[4] << 16) | (l[3] << 8) | l[2];
+ }
+ const u = (function getHeaderBlock(e, t) {
+ const a = [101, 101, 120, 101, 99],
+ r = e.pos;
+ let i, s, c, l;
+ try {
+ i = e.getBytes(t);
+ s = i.length;
+ } catch {}
+ if (s === t) {
+ c = findBlock(i, a, t - 2 * a.length);
+ if (c.found && c.length === t)
+ return { stream: new o.Stream(i), length: t };
+ }
+ (0, n.warn)(
+ 'Invalid "Length1" property in Type1 font -- trying to recover.',
+ );
+ e.pos = r;
+ for (;;) {
+ c = findBlock(e.peekBytes(2048), a, 0);
+ if (0 === c.length) break;
+ e.pos += c.length;
+ if (c.found) {
+ l = e.pos - r;
+ break;
+ }
+ }
+ e.pos = r;
+ if (l)
+ return { stream: new o.Stream(e.getBytes(l)), length: l };
+ (0, n.warn)(
+ 'Unable to recover "Length1" property in Type1 font -- using as is.',
+ );
+ return { stream: new o.Stream(e.getBytes(t)), length: t };
+ })(t, r);
+ new c.Type1Parser(
+ u.stream,
+ !1,
+ i.SEAC_ANALYSIS_ENABLED,
+ ).extractFontHeader(a);
+ if (h) {
+ l = t.getBytes(6);
+ s = (l[5] << 24) | (l[4] << 16) | (l[3] << 8) | l[2];
+ }
+ const d = (function getEexecBlock(e, t) {
+ const a = e.getBytes();
+ if (0 === a.length)
+ throw new n.FormatError(
+ "getEexecBlock - no font program found.",
+ );
+ return { stream: new o.Stream(a), length: a.length };
+ })(t),
+ f = new c.Type1Parser(
+ d.stream,
+ !0,
+ i.SEAC_ANALYSIS_ENABLED,
+ ).extractFontProgram(a);
+ for (const e in f.properties) a[e] = f.properties[e];
+ const g = f.charstrings,
+ p = this.getType2Charstrings(g),
+ m = this.getType2Subrs(f.subrs);
+ this.charstrings = g;
+ this.data = this.wrap(e, p, this.charstrings, m, a);
+ this.seacs = this.getSeacs(f.charstrings);
+ }
+ get numGlyphs() {
+ return this.charstrings.length + 1;
+ }
+ getCharset() {
+ const e = [".notdef"];
+ for (const { glyphName: t } of this.charstrings) e.push(t);
+ return e;
+ }
+ getGlyphMapping(e) {
+ const t = this.charstrings;
+ if (e.composite) {
+ const a = Object.create(null);
+ for (let r = 0, n = t.length; r < n; r++) {
+ a[e.cMap.charCodeOf(r)] = r + 1;
+ }
+ return a;
+ }
+ const a = [".notdef"];
+ let r, n;
+ for (n = 0; n < t.length; n++) a.push(t[n].glyphName);
+ const s = e.builtInEncoding;
+ if (s) {
+ r = Object.create(null);
+ for (const e in s) {
+ n = a.indexOf(s[e]);
+ n >= 0 && (r[e] = n);
+ }
+ }
+ return (0, i.type1FontGlyphMapping)(e, r, a);
+ }
+ hasGlyphId(e) {
+ if (e < 0 || e >= this.numGlyphs) return !1;
+ if (0 === e) return !0;
+ return this.charstrings[e - 1].charstring.length > 0;
+ }
+ getSeacs(e) {
+ const t = [];
+ for (let a = 0, r = e.length; a < r; a++) {
+ const r = e[a];
+ r.seac && (t[a + 1] = r.seac);
+ }
+ return t;
+ }
+ getType2Charstrings(e) {
+ const t = [];
+ for (const a of e) t.push(a.charstring);
+ return t;
+ }
+ getType2Subrs(e) {
+ let t = 0;
+ const a = e.length;
+ t = a < 1133 ? 107 : a < 33769 ? 1131 : 32768;
+ const r = [];
+ let n;
+ for (n = 0; n < t; n++) r.push([11]);
+ for (n = 0; n < a; n++) r.push(e[n]);
+ return r;
+ }
+ wrap(e, t, a, n, i) {
+ const s = new r.CFF();
+ s.header = new r.CFFHeader(1, 0, 4, 4);
+ s.names = [e];
+ const o = new r.CFFTopDict();
+ o.setByName("version", 391);
+ o.setByName("Notice", 392);
+ o.setByName("FullName", 393);
+ o.setByName("FamilyName", 394);
+ o.setByName("Weight", 395);
+ o.setByName("Encoding", null);
+ o.setByName("FontMatrix", i.fontMatrix);
+ o.setByName("FontBBox", i.bbox);
+ o.setByName("charset", null);
+ o.setByName("CharStrings", null);
+ o.setByName("Private", null);
+ s.topDict = o;
+ const c = new r.CFFStrings();
+ c.add("Version 0.11");
+ c.add("See original notice");
+ c.add(e);
+ c.add(e);
+ c.add("Medium");
+ s.strings = c;
+ s.globalSubrIndex = new r.CFFIndex();
+ const l = t.length,
+ h = [".notdef"];
+ let u, d;
+ for (u = 0; u < l; u++) {
+ const e = a[u].glyphName;
+ -1 === r.CFFStandardStrings.indexOf(e) && c.add(e);
+ h.push(e);
+ }
+ s.charset = new r.CFFCharset(!1, 0, h);
+ const f = new r.CFFIndex();
+ f.add([139, 14]);
+ for (u = 0; u < l; u++) f.add(t[u]);
+ s.charStrings = f;
+ const g = new r.CFFPrivateDict();
+ g.setByName("Subrs", null);
+ const p = [
+ "BlueValues",
+ "OtherBlues",
+ "FamilyBlues",
+ "FamilyOtherBlues",
+ "StemSnapH",
+ "StemSnapV",
+ "BlueShift",
+ "BlueFuzz",
+ "BlueScale",
+ "LanguageGroup",
+ "ExpansionFactor",
+ "ForceBold",
+ "StdHW",
+ "StdVW",
+ ];
+ for (u = 0, d = p.length; u < d; u++) {
+ const e = p[u];
+ if (!(e in i.privateData)) continue;
+ const t = i.privateData[e];
+ if (Array.isArray(t))
+ for (let e = t.length - 1; e > 0; e--) t[e] -= t[e - 1];
+ g.setByName(e, t);
+ }
+ s.topDict.privateDict = g;
+ const m = new r.CFFIndex();
+ for (u = 0, d = n.length; u < d; u++) m.add(n[u]);
+ g.subrsIndex = m;
+ return new r.CFFCompiler(s).compile();
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.Type1Parser = void 0;
+ var r = a(37),
+ n = a(3),
+ i = a(8),
+ s = a(2);
+ const o = [4],
+ c = [5],
+ l = [6],
+ h = [7],
+ u = [8],
+ d = [12, 35],
+ f = [14],
+ g = [21],
+ p = [22],
+ m = [30],
+ b = [31];
+ class Type1CharString {
+ constructor() {
+ this.width = 0;
+ this.lsb = 0;
+ this.flexing = !1;
+ this.output = [];
+ this.stack = [];
+ }
+ convert(e, t, a) {
+ const r = e.length;
+ let n,
+ i,
+ y,
+ w = !1;
+ for (let S = 0; S < r; S++) {
+ let r = e[S];
+ if (r < 32) {
+ 12 === r && (r = (r << 8) + e[++S]);
+ switch (r) {
+ case 1:
+ case 3:
+ case 9:
+ case 3072:
+ case 3073:
+ case 3074:
+ case 3105:
+ this.stack = [];
+ break;
+ case 4:
+ if (this.flexing) {
+ if (this.stack.length < 1) {
+ w = !0;
+ break;
+ }
+ const e = this.stack.pop();
+ this.stack.push(0, e);
+ break;
+ }
+ w = this.executeCommand(1, o);
+ break;
+ case 5:
+ w = this.executeCommand(2, c);
+ break;
+ case 6:
+ w = this.executeCommand(1, l);
+ break;
+ case 7:
+ w = this.executeCommand(1, h);
+ break;
+ case 8:
+ w = this.executeCommand(6, u);
+ break;
+ case 10:
+ if (this.stack.length < 1) {
+ w = !0;
+ break;
+ }
+ y = this.stack.pop();
+ if (!t[y]) {
+ w = !0;
+ break;
+ }
+ w = this.convert(t[y], t, a);
+ break;
+ case 11:
+ return w;
+ case 13:
+ if (this.stack.length < 2) {
+ w = !0;
+ break;
+ }
+ n = this.stack.pop();
+ i = this.stack.pop();
+ this.lsb = i;
+ this.width = n;
+ this.stack.push(n, i);
+ w = this.executeCommand(2, p);
+ break;
+ case 14:
+ this.output.push(f[0]);
+ break;
+ case 21:
+ if (this.flexing) break;
+ w = this.executeCommand(2, g);
+ break;
+ case 22:
+ if (this.flexing) {
+ this.stack.push(0);
+ break;
+ }
+ w = this.executeCommand(1, p);
+ break;
+ case 30:
+ w = this.executeCommand(4, m);
+ break;
+ case 31:
+ w = this.executeCommand(4, b);
+ break;
+ case 3078:
+ if (a) {
+ const e = this.stack.at(-5);
+ this.seac = this.stack.splice(-4, 4);
+ this.seac[0] += this.lsb - e;
+ w = this.executeCommand(0, f);
+ } else w = this.executeCommand(4, f);
+ break;
+ case 3079:
+ if (this.stack.length < 4) {
+ w = !0;
+ break;
+ }
+ this.stack.pop();
+ n = this.stack.pop();
+ const e = this.stack.pop();
+ i = this.stack.pop();
+ this.lsb = i;
+ this.width = n;
+ this.stack.push(n, i, e);
+ w = this.executeCommand(3, g);
+ break;
+ case 3084:
+ if (this.stack.length < 2) {
+ w = !0;
+ break;
+ }
+ const S = this.stack.pop(),
+ x = this.stack.pop();
+ this.stack.push(x / S);
+ break;
+ case 3088:
+ if (this.stack.length < 2) {
+ w = !0;
+ break;
+ }
+ y = this.stack.pop();
+ const C = this.stack.pop();
+ if (0 === y && 3 === C) {
+ const e = this.stack.splice(-17, 17);
+ this.stack.push(
+ e[2] + e[0],
+ e[3] + e[1],
+ e[4],
+ e[5],
+ e[6],
+ e[7],
+ e[8],
+ e[9],
+ e[10],
+ e[11],
+ e[12],
+ e[13],
+ e[14],
+ );
+ w = this.executeCommand(13, d, !0);
+ this.flexing = !1;
+ this.stack.push(e[15], e[16]);
+ } else 1 === y && 0 === C && (this.flexing = !0);
+ break;
+ case 3089:
+ break;
+ default:
+ (0, s.warn)(
+ 'Unknown type 1 charstring command of "' + r + '"',
+ );
+ }
+ if (w) break;
+ } else {
+ r <= 246
+ ? (r -= 139)
+ : (r =
+ r <= 250
+ ? 256 * (r - 247) + e[++S] + 108
+ : r <= 254
+ ? -256 * (r - 251) - e[++S] - 108
+ : ((255 & e[++S]) << 24) |
+ ((255 & e[++S]) << 16) |
+ ((255 & e[++S]) << 8) |
+ ((255 & e[++S]) << 0));
+ this.stack.push(r);
+ }
+ }
+ return w;
+ }
+ executeCommand(e, t, a) {
+ const r = this.stack.length;
+ if (e > r) return !0;
+ const n = r - e;
+ for (let e = n; e < r; e++) {
+ let t = this.stack[e];
+ if (Number.isInteger(t))
+ this.output.push(28, (t >> 8) & 255, 255 & t);
+ else {
+ t = (65536 * t) | 0;
+ this.output.push(
+ 255,
+ (t >> 24) & 255,
+ (t >> 16) & 255,
+ (t >> 8) & 255,
+ 255 & t,
+ );
+ }
+ }
+ this.output.push(...t);
+ a ? this.stack.splice(n, e) : (this.stack.length = 0);
+ return !1;
+ }
+ }
+ function isHexDigit(e) {
+ return (
+ (e >= 48 && e <= 57) ||
+ (e >= 65 && e <= 70) ||
+ (e >= 97 && e <= 102)
+ );
+ }
+ function decrypt(e, t, a) {
+ if (a >= e.length) return new Uint8Array(0);
+ let r,
+ n,
+ i = 0 | t;
+ for (r = 0; r < a; r++) i = (52845 * (e[r] + i) + 22719) & 65535;
+ const s = e.length - a,
+ o = new Uint8Array(s);
+ for (r = a, n = 0; n < s; r++, n++) {
+ const t = e[r];
+ o[n] = t ^ (i >> 8);
+ i = (52845 * (t + i) + 22719) & 65535;
+ }
+ return o;
+ }
+ function isSpecial(e) {
+ return (
+ 47 === e ||
+ 91 === e ||
+ 93 === e ||
+ 123 === e ||
+ 125 === e ||
+ 40 === e ||
+ 41 === e
+ );
+ }
+ t.Type1Parser = class Type1Parser {
+ constructor(e, t, a) {
+ if (t) {
+ const t = e.getBytes(),
+ a = !(
+ (isHexDigit(t[0]) || (0, n.isWhiteSpace)(t[0])) &&
+ isHexDigit(t[1]) &&
+ isHexDigit(t[2]) &&
+ isHexDigit(t[3]) &&
+ isHexDigit(t[4]) &&
+ isHexDigit(t[5]) &&
+ isHexDigit(t[6]) &&
+ isHexDigit(t[7])
+ );
+ e = new i.Stream(
+ a
+ ? decrypt(t, 55665, 4)
+ : (function decryptAscii(e, t, a) {
+ let r = 0 | t;
+ const n = e.length,
+ i = new Uint8Array(n >>> 1);
+ let s, o;
+ for (s = 0, o = 0; s < n; s++) {
+ const t = e[s];
+ if (!isHexDigit(t)) continue;
+ s++;
+ let a;
+ for (; s < n && !isHexDigit((a = e[s])); ) s++;
+ if (s < n) {
+ const e = parseInt(String.fromCharCode(t, a), 16);
+ i[o++] = e ^ (r >> 8);
+ r = (52845 * (e + r) + 22719) & 65535;
+ }
+ }
+ return i.slice(a, o);
+ })(t, 55665, 4),
+ );
+ }
+ this.seacAnalysisEnabled = !!a;
+ this.stream = e;
+ this.nextChar();
+ }
+ readNumberArray() {
+ this.getToken();
+ const e = [];
+ for (;;) {
+ const t = this.getToken();
+ if (null === t || "]" === t || "}" === t) break;
+ e.push(parseFloat(t || 0));
+ }
+ return e;
+ }
+ readNumber() {
+ const e = this.getToken();
+ return parseFloat(e || 0);
+ }
+ readInt() {
+ const e = this.getToken();
+ return 0 | parseInt(e || 0, 10);
+ }
+ readBoolean() {
+ return "true" === this.getToken() ? 1 : 0;
+ }
+ nextChar() {
+ return (this.currentChar = this.stream.getByte());
+ }
+ prevChar() {
+ this.stream.skip(-2);
+ return (this.currentChar = this.stream.getByte());
+ }
+ getToken() {
+ let e = !1,
+ t = this.currentChar;
+ for (;;) {
+ if (-1 === t) return null;
+ if (e) (10 !== t && 13 !== t) || (e = !1);
+ else if (37 === t) e = !0;
+ else if (!(0, n.isWhiteSpace)(t)) break;
+ t = this.nextChar();
+ }
+ if (isSpecial(t)) {
+ this.nextChar();
+ return String.fromCharCode(t);
+ }
+ let a = "";
+ do {
+ a += String.fromCharCode(t);
+ t = this.nextChar();
+ } while (t >= 0 && !(0, n.isWhiteSpace)(t) && !isSpecial(t));
+ return a;
+ }
+ readCharStrings(e, t) {
+ return -1 === t ? e : decrypt(e, 4330, t);
+ }
+ extractFontProgram(e) {
+ const t = this.stream,
+ a = [],
+ r = [],
+ n = Object.create(null);
+ n.lenIV = 4;
+ const i = {
+ subrs: [],
+ charstrings: [],
+ properties: { privateData: n },
+ };
+ let s, o, c, l;
+ for (; null !== (s = this.getToken()); )
+ if ("/" === s) {
+ s = this.getToken();
+ switch (s) {
+ case "CharStrings":
+ this.getToken();
+ this.getToken();
+ this.getToken();
+ this.getToken();
+ for (;;) {
+ s = this.getToken();
+ if (null === s || "end" === s) break;
+ if ("/" !== s) continue;
+ const e = this.getToken();
+ o = this.readInt();
+ this.getToken();
+ c = o > 0 ? t.getBytes(o) : new Uint8Array(0);
+ l = i.properties.privateData.lenIV;
+ const a = this.readCharStrings(c, l);
+ this.nextChar();
+ s = this.getToken();
+ "noaccess" === s
+ ? this.getToken()
+ : "/" === s && this.prevChar();
+ r.push({ glyph: e, encoded: a });
+ }
+ break;
+ case "Subrs":
+ this.readInt();
+ this.getToken();
+ for (; "dup" === this.getToken(); ) {
+ const e = this.readInt();
+ o = this.readInt();
+ this.getToken();
+ c = o > 0 ? t.getBytes(o) : new Uint8Array(0);
+ l = i.properties.privateData.lenIV;
+ const r = this.readCharStrings(c, l);
+ this.nextChar();
+ s = this.getToken();
+ "noaccess" === s && this.getToken();
+ a[e] = r;
+ }
+ break;
+ case "BlueValues":
+ case "OtherBlues":
+ case "FamilyBlues":
+ case "FamilyOtherBlues":
+ const e = this.readNumberArray();
+ e.length > 0 && e.length, 0;
+ break;
+ case "StemSnapH":
+ case "StemSnapV":
+ i.properties.privateData[s] = this.readNumberArray();
+ break;
+ case "StdHW":
+ case "StdVW":
+ i.properties.privateData[s] = this.readNumberArray()[0];
+ break;
+ case "BlueShift":
+ case "lenIV":
+ case "BlueFuzz":
+ case "BlueScale":
+ case "LanguageGroup":
+ i.properties.privateData[s] = this.readNumber();
+ break;
+ case "ExpansionFactor":
+ i.properties.privateData[s] = this.readNumber() || 0.06;
+ break;
+ case "ForceBold":
+ i.properties.privateData[s] = this.readBoolean();
+ }
+ }
+ for (const { encoded: t, glyph: n } of r) {
+ const r = new Type1CharString(),
+ s = r.convert(t, a, this.seacAnalysisEnabled);
+ let o = r.output;
+ s && (o = [14]);
+ const c = {
+ glyphName: n,
+ charstring: o,
+ width: r.width,
+ lsb: r.lsb,
+ seac: r.seac,
+ };
+ ".notdef" === n
+ ? i.charstrings.unshift(c)
+ : i.charstrings.push(c);
+ if (e.builtInEncoding) {
+ const t = e.builtInEncoding.indexOf(n);
+ t > -1 &&
+ void 0 === e.widths[t] &&
+ t >= e.firstChar &&
+ t <= e.lastChar &&
+ (e.widths[t] = r.width);
+ }
+ }
+ return i;
+ }
+ extractFontHeader(e) {
+ let t;
+ for (; null !== (t = this.getToken()); )
+ if ("/" === t) {
+ t = this.getToken();
+ switch (t) {
+ case "FontMatrix":
+ const a = this.readNumberArray();
+ e.fontMatrix = a;
+ break;
+ case "Encoding":
+ const n = this.getToken();
+ let i;
+ if (/^\d+$/.test(n)) {
+ i = [];
+ const e = 0 | parseInt(n, 10);
+ this.getToken();
+ for (let a = 0; a < e; a++) {
+ t = this.getToken();
+ for (; "dup" !== t && "def" !== t; ) {
+ t = this.getToken();
+ if (null === t) return;
+ }
+ if ("def" === t) break;
+ const e = this.readInt();
+ this.getToken();
+ const a = this.getToken();
+ i[e] = a;
+ this.getToken();
+ }
+ } else i = (0, r.getEncoding)(n);
+ e.builtInEncoding = i;
+ break;
+ case "FontBBox":
+ const s = this.readNumberArray();
+ e.ascent = Math.max(s[3], s[1]);
+ e.descent = Math.min(s[1], s[3]);
+ e.ascentScaled = !0;
+ }
+ }
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.Pattern = void 0;
+ t.clearPatternCaches = function clearPatternCaches() {
+ f = Object.create(null);
+ };
+ t.getTilingPatternIR = function getTilingPatternIR(e, t, a) {
+ const n = t.getArray("Matrix"),
+ i = r.Util.normalizeRect(t.getArray("BBox")),
+ s = t.get("XStep"),
+ o = t.get("YStep"),
+ c = t.get("PaintType"),
+ l = t.get("TilingType");
+ if (i[2] - i[0] == 0 || i[3] - i[1] == 0)
+ throw new r.FormatError(
+ `Invalid getTilingPatternIR /BBox array: [${i}].`,
+ );
+ return ["TilingPattern", a, e, n, i, s, o, c, l];
+ };
+ var r = a(2),
+ n = a(5),
+ i = a(12),
+ s = a(3);
+ const o = 2,
+ c = 3,
+ l = 4,
+ h = 5,
+ u = 6,
+ d = 7;
+ t.Pattern = class Pattern {
+ constructor() {
+ (0, r.unreachable)("Cannot initialize Pattern.");
+ }
+ static parseShading(e, t, a, i, f) {
+ const g = e instanceof n.BaseStream ? e.dict : e,
+ p = g.get("ShadingType");
+ try {
+ switch (p) {
+ case o:
+ case c:
+ return new RadialAxialShading(g, t, a, i, f);
+ case l:
+ case h:
+ case u:
+ case d:
+ return new MeshShading(e, t, a, i, f);
+ default:
+ throw new r.FormatError("Unsupported ShadingType: " + p);
+ }
+ } catch (e) {
+ if (e instanceof s.MissingDataException) throw e;
+ (0, r.warn)(e);
+ return new DummyShading();
+ }
+ }
+ };
+ class BaseShading {
+ static SMALL_NUMBER = 1e-6;
+ constructor() {
+ this.constructor === BaseShading &&
+ (0, r.unreachable)("Cannot initialize BaseShading.");
+ }
+ getIR() {
+ (0, r.unreachable)("Abstract method `getIR` called.");
+ }
+ }
+ class RadialAxialShading extends BaseShading {
+ constructor(e, t, a, n, s) {
+ super();
+ this.coordsArr = e.getArray("Coords");
+ this.shadingType = e.get("ShadingType");
+ const o = i.ColorSpace.parse({
+ cs: e.getRaw("CS") || e.getRaw("ColorSpace"),
+ xref: t,
+ resources: a,
+ pdfFunctionFactory: n,
+ localColorSpaceCache: s,
+ }),
+ l = e.getArray("BBox");
+ this.bbox =
+ Array.isArray(l) && 4 === l.length
+ ? r.Util.normalizeRect(l)
+ : null;
+ let h = 0,
+ u = 1;
+ if (e.has("Domain")) {
+ const t = e.getArray("Domain");
+ h = t[0];
+ u = t[1];
+ }
+ let d = !1,
+ f = !1;
+ if (e.has("Extend")) {
+ const t = e.getArray("Extend");
+ d = t[0];
+ f = t[1];
+ }
+ if (!(this.shadingType !== c || (d && f))) {
+ const [e, t, a, n, i, s] = this.coordsArr,
+ o = Math.hypot(e - n, t - i);
+ a <= s + o &&
+ s <= a + o &&
+ (0, r.warn)("Unsupported radial gradient.");
+ }
+ this.extendStart = d;
+ this.extendEnd = f;
+ const g = e.getRaw("Function"),
+ p = n.createFromArray(g),
+ m = (u - h) / 840,
+ b = (this.colorStops = []);
+ if (h >= u || m <= 0) {
+ (0, r.info)("Bad shading domain.");
+ return;
+ }
+ const y = new Float32Array(o.numComps),
+ w = new Float32Array(1);
+ let S,
+ x = 0;
+ w[0] = h;
+ p(w, 0, y, 0);
+ let C = o.getRgb(y, 0);
+ const k = r.Util.makeHexColor(C[0], C[1], C[2]);
+ b.push([0, k]);
+ let v = 1;
+ w[0] = h + m;
+ p(w, 0, y, 0);
+ let F = o.getRgb(y, 0),
+ O = F[0] - C[0] + 1,
+ T = F[1] - C[1] + 1,
+ M = F[2] - C[2] + 1,
+ D = F[0] - C[0] - 1,
+ E = F[1] - C[1] - 1,
+ N = F[2] - C[2] - 1;
+ for (let e = 2; e < 840; e++) {
+ w[0] = h + e * m;
+ p(w, 0, y, 0);
+ S = o.getRgb(y, 0);
+ const t = e - x;
+ O = Math.min(O, (S[0] - C[0] + 1) / t);
+ T = Math.min(T, (S[1] - C[1] + 1) / t);
+ M = Math.min(M, (S[2] - C[2] + 1) / t);
+ D = Math.max(D, (S[0] - C[0] - 1) / t);
+ E = Math.max(E, (S[1] - C[1] - 1) / t);
+ N = Math.max(N, (S[2] - C[2] - 1) / t);
+ if (!(D <= O && E <= T && N <= M)) {
+ const e = r.Util.makeHexColor(F[0], F[1], F[2]);
+ b.push([v / 840, e]);
+ O = S[0] - F[0] + 1;
+ T = S[1] - F[1] + 1;
+ M = S[2] - F[2] + 1;
+ D = S[0] - F[0] - 1;
+ E = S[1] - F[1] - 1;
+ N = S[2] - F[2] - 1;
+ x = v;
+ C = F;
+ }
+ v = e;
+ F = S;
+ }
+ const R = r.Util.makeHexColor(F[0], F[1], F[2]);
+ b.push([1, R]);
+ let L = "transparent";
+ if (e.has("Background")) {
+ S = o.getRgb(e.get("Background"), 0);
+ L = r.Util.makeHexColor(S[0], S[1], S[2]);
+ }
+ if (!d) {
+ b.unshift([0, L]);
+ b[1][0] += BaseShading.SMALL_NUMBER;
+ }
+ if (!f) {
+ b.at(-1)[0] -= BaseShading.SMALL_NUMBER;
+ b.push([1, L]);
+ }
+ this.colorStops = b;
+ }
+ getIR() {
+ const e = this.coordsArr,
+ t = this.shadingType;
+ let a, n, i, s, l;
+ if (t === o) {
+ n = [e[0], e[1]];
+ i = [e[2], e[3]];
+ s = null;
+ l = null;
+ a = "axial";
+ } else if (t === c) {
+ n = [e[0], e[1]];
+ i = [e[3], e[4]];
+ s = e[2];
+ l = e[5];
+ a = "radial";
+ } else (0, r.unreachable)(`getPattern type unknown: ${t}`);
+ return ["RadialAxial", a, this.bbox, this.colorStops, n, i, s, l];
+ }
+ }
+ class MeshStreamReader {
+ constructor(e, t) {
+ this.stream = e;
+ this.context = t;
+ this.buffer = 0;
+ this.bufferLength = 0;
+ const a = t.numComps;
+ this.tmpCompsBuf = new Float32Array(a);
+ const r = t.colorSpace.numComps;
+ this.tmpCsCompsBuf = t.colorFn
+ ? new Float32Array(r)
+ : this.tmpCompsBuf;
+ }
+ get hasData() {
+ if (this.stream.end) return this.stream.pos < this.stream.end;
+ if (this.bufferLength > 0) return !0;
+ const e = this.stream.getByte();
+ if (e < 0) return !1;
+ this.buffer = e;
+ this.bufferLength = 8;
+ return !0;
+ }
+ readBits(e) {
+ let t = this.buffer,
+ a = this.bufferLength;
+ if (32 === e) {
+ if (0 === a)
+ return (
+ ((this.stream.getByte() << 24) |
+ (this.stream.getByte() << 16) |
+ (this.stream.getByte() << 8) |
+ this.stream.getByte()) >>>
+ 0
+ );
+ t =
+ (t << 24) |
+ (this.stream.getByte() << 16) |
+ (this.stream.getByte() << 8) |
+ this.stream.getByte();
+ const e = this.stream.getByte();
+ this.buffer = e & ((1 << a) - 1);
+ return ((t << (8 - a)) | ((255 & e) >> a)) >>> 0;
+ }
+ if (8 === e && 0 === a) return this.stream.getByte();
+ for (; a < e; ) {
+ t = (t << 8) | this.stream.getByte();
+ a += 8;
+ }
+ a -= e;
+ this.bufferLength = a;
+ this.buffer = t & ((1 << a) - 1);
+ return t >> a;
+ }
+ align() {
+ this.buffer = 0;
+ this.bufferLength = 0;
+ }
+ readFlag() {
+ return this.readBits(this.context.bitsPerFlag);
+ }
+ readCoordinate() {
+ const e = this.context.bitsPerCoordinate,
+ t = this.readBits(e),
+ a = this.readBits(e),
+ r = this.context.decode,
+ n = e < 32 ? 1 / ((1 << e) - 1) : 2.3283064365386963e-10;
+ return [
+ t * n * (r[1] - r[0]) + r[0],
+ a * n * (r[3] - r[2]) + r[2],
+ ];
+ }
+ readComponents() {
+ const e = this.context.numComps,
+ t = this.context.bitsPerComponent,
+ a = t < 32 ? 1 / ((1 << t) - 1) : 2.3283064365386963e-10,
+ r = this.context.decode,
+ n = this.tmpCompsBuf;
+ for (let i = 0, s = 4; i < e; i++, s += 2) {
+ const e = this.readBits(t);
+ n[i] = e * a * (r[s + 1] - r[s]) + r[s];
+ }
+ const i = this.tmpCsCompsBuf;
+ this.context.colorFn && this.context.colorFn(n, 0, i, 0);
+ return this.context.colorSpace.getRgb(i, 0);
+ }
+ }
+ let f = Object.create(null);
+ function getB(e) {
+ return (f[e] ||= (function buildB(e) {
+ const t = [];
+ for (let a = 0; a <= e; a++) {
+ const r = a / e,
+ n = 1 - r;
+ t.push(
+ new Float32Array([
+ n ** 3,
+ 3 * r * n ** 2,
+ 3 * r ** 2 * n,
+ r ** 3,
+ ]),
+ );
+ }
+ return t;
+ })(e));
+ }
+ class MeshShading extends BaseShading {
+ static MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3;
+ static MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20;
+ static TRIANGLE_DENSITY = 20;
+ constructor(e, t, a, s, o) {
+ super();
+ if (!(e instanceof n.BaseStream))
+ throw new r.FormatError("Mesh data is not a stream");
+ const c = e.dict;
+ this.shadingType = c.get("ShadingType");
+ const f = c.getArray("BBox");
+ this.bbox =
+ Array.isArray(f) && 4 === f.length
+ ? r.Util.normalizeRect(f)
+ : null;
+ const g = i.ColorSpace.parse({
+ cs: c.getRaw("CS") || c.getRaw("ColorSpace"),
+ xref: t,
+ resources: a,
+ pdfFunctionFactory: s,
+ localColorSpaceCache: o,
+ });
+ this.background = c.has("Background")
+ ? g.getRgb(c.get("Background"), 0)
+ : null;
+ const p = c.getRaw("Function"),
+ m = p ? s.createFromArray(p) : null;
+ this.coords = [];
+ this.colors = [];
+ this.figures = [];
+ const b = {
+ bitsPerCoordinate: c.get("BitsPerCoordinate"),
+ bitsPerComponent: c.get("BitsPerComponent"),
+ bitsPerFlag: c.get("BitsPerFlag"),
+ decode: c.getArray("Decode"),
+ colorFn: m,
+ colorSpace: g,
+ numComps: m ? 1 : g.numComps,
+ },
+ y = new MeshStreamReader(e, b);
+ let w = !1;
+ switch (this.shadingType) {
+ case l:
+ this._decodeType4Shading(y);
+ break;
+ case h:
+ const e = 0 | c.get("VerticesPerRow");
+ if (e < 2) throw new r.FormatError("Invalid VerticesPerRow");
+ this._decodeType5Shading(y, e);
+ break;
+ case u:
+ this._decodeType6Shading(y);
+ w = !0;
+ break;
+ case d:
+ this._decodeType7Shading(y);
+ w = !0;
+ break;
+ default:
+ (0, r.unreachable)("Unsupported mesh type.");
+ }
+ if (w) {
+ this._updateBounds();
+ for (let e = 0, t = this.figures.length; e < t; e++)
+ this._buildFigureFromPatch(e);
+ }
+ this._updateBounds();
+ this._packData();
+ }
+ _decodeType4Shading(e) {
+ const t = this.coords,
+ a = this.colors,
+ n = [],
+ i = [];
+ let s = 0;
+ for (; e.hasData; ) {
+ const o = e.readFlag(),
+ c = e.readCoordinate(),
+ l = e.readComponents();
+ if (0 === s) {
+ if (!(0 <= o && o <= 2))
+ throw new r.FormatError("Unknown type4 flag");
+ switch (o) {
+ case 0:
+ s = 3;
+ break;
+ case 1:
+ i.push(i.at(-2), i.at(-1));
+ s = 1;
+ break;
+ case 2:
+ i.push(i.at(-3), i.at(-1));
+ s = 1;
+ }
+ n.push(o);
+ }
+ i.push(t.length);
+ t.push(c);
+ a.push(l);
+ s--;
+ e.align();
+ }
+ this.figures.push({
+ type: "triangles",
+ coords: new Int32Array(i),
+ colors: new Int32Array(i),
+ });
+ }
+ _decodeType5Shading(e, t) {
+ const a = this.coords,
+ r = this.colors,
+ n = [];
+ for (; e.hasData; ) {
+ const t = e.readCoordinate(),
+ i = e.readComponents();
+ n.push(a.length);
+ a.push(t);
+ r.push(i);
+ }
+ this.figures.push({
+ type: "lattice",
+ coords: new Int32Array(n),
+ colors: new Int32Array(n),
+ verticesPerRow: t,
+ });
+ }
+ _decodeType6Shading(e) {
+ const t = this.coords,
+ a = this.colors,
+ n = new Int32Array(16),
+ i = new Int32Array(4);
+ for (; e.hasData; ) {
+ const s = e.readFlag();
+ if (!(0 <= s && s <= 3))
+ throw new r.FormatError("Unknown type6 flag");
+ const o = t.length;
+ for (let a = 0, r = 0 !== s ? 8 : 12; a < r; a++)
+ t.push(e.readCoordinate());
+ const c = a.length;
+ for (let t = 0, r = 0 !== s ? 2 : 4; t < r; t++)
+ a.push(e.readComponents());
+ let l, h, u, d;
+ switch (s) {
+ case 0:
+ n[12] = o + 3;
+ n[13] = o + 4;
+ n[14] = o + 5;
+ n[15] = o + 6;
+ n[8] = o + 2;
+ n[11] = o + 7;
+ n[4] = o + 1;
+ n[7] = o + 8;
+ n[0] = o;
+ n[1] = o + 11;
+ n[2] = o + 10;
+ n[3] = o + 9;
+ i[2] = c + 1;
+ i[3] = c + 2;
+ i[0] = c;
+ i[1] = c + 3;
+ break;
+ case 1:
+ l = n[12];
+ h = n[13];
+ u = n[14];
+ d = n[15];
+ n[12] = d;
+ n[13] = o + 0;
+ n[14] = o + 1;
+ n[15] = o + 2;
+ n[8] = u;
+ n[11] = o + 3;
+ n[4] = h;
+ n[7] = o + 4;
+ n[0] = l;
+ n[1] = o + 7;
+ n[2] = o + 6;
+ n[3] = o + 5;
+ l = i[2];
+ h = i[3];
+ i[2] = h;
+ i[3] = c;
+ i[0] = l;
+ i[1] = c + 1;
+ break;
+ case 2:
+ l = n[15];
+ h = n[11];
+ n[12] = n[3];
+ n[13] = o + 0;
+ n[14] = o + 1;
+ n[15] = o + 2;
+ n[8] = n[7];
+ n[11] = o + 3;
+ n[4] = h;
+ n[7] = o + 4;
+ n[0] = l;
+ n[1] = o + 7;
+ n[2] = o + 6;
+ n[3] = o + 5;
+ l = i[3];
+ i[2] = i[1];
+ i[3] = c;
+ i[0] = l;
+ i[1] = c + 1;
+ break;
+ case 3:
+ n[12] = n[0];
+ n[13] = o + 0;
+ n[14] = o + 1;
+ n[15] = o + 2;
+ n[8] = n[1];
+ n[11] = o + 3;
+ n[4] = n[2];
+ n[7] = o + 4;
+ n[0] = n[3];
+ n[1] = o + 7;
+ n[2] = o + 6;
+ n[3] = o + 5;
+ i[2] = i[0];
+ i[3] = c;
+ i[0] = i[1];
+ i[1] = c + 1;
+ }
+ n[5] = t.length;
+ t.push([
+ (-4 * t[n[0]][0] -
+ t[n[15]][0] +
+ 6 * (t[n[4]][0] + t[n[1]][0]) -
+ 2 * (t[n[12]][0] + t[n[3]][0]) +
+ 3 * (t[n[13]][0] + t[n[7]][0])) /
+ 9,
+ (-4 * t[n[0]][1] -
+ t[n[15]][1] +
+ 6 * (t[n[4]][1] + t[n[1]][1]) -
+ 2 * (t[n[12]][1] + t[n[3]][1]) +
+ 3 * (t[n[13]][1] + t[n[7]][1])) /
+ 9,
+ ]);
+ n[6] = t.length;
+ t.push([
+ (-4 * t[n[3]][0] -
+ t[n[12]][0] +
+ 6 * (t[n[2]][0] + t[n[7]][0]) -
+ 2 * (t[n[0]][0] + t[n[15]][0]) +
+ 3 * (t[n[4]][0] + t[n[14]][0])) /
+ 9,
+ (-4 * t[n[3]][1] -
+ t[n[12]][1] +
+ 6 * (t[n[2]][1] + t[n[7]][1]) -
+ 2 * (t[n[0]][1] + t[n[15]][1]) +
+ 3 * (t[n[4]][1] + t[n[14]][1])) /
+ 9,
+ ]);
+ n[9] = t.length;
+ t.push([
+ (-4 * t[n[12]][0] -
+ t[n[3]][0] +
+ 6 * (t[n[8]][0] + t[n[13]][0]) -
+ 2 * (t[n[0]][0] + t[n[15]][0]) +
+ 3 * (t[n[11]][0] + t[n[1]][0])) /
+ 9,
+ (-4 * t[n[12]][1] -
+ t[n[3]][1] +
+ 6 * (t[n[8]][1] + t[n[13]][1]) -
+ 2 * (t[n[0]][1] + t[n[15]][1]) +
+ 3 * (t[n[11]][1] + t[n[1]][1])) /
+ 9,
+ ]);
+ n[10] = t.length;
+ t.push([
+ (-4 * t[n[15]][0] -
+ t[n[0]][0] +
+ 6 * (t[n[11]][0] + t[n[14]][0]) -
+ 2 * (t[n[12]][0] + t[n[3]][0]) +
+ 3 * (t[n[2]][0] + t[n[8]][0])) /
+ 9,
+ (-4 * t[n[15]][1] -
+ t[n[0]][1] +
+ 6 * (t[n[11]][1] + t[n[14]][1]) -
+ 2 * (t[n[12]][1] + t[n[3]][1]) +
+ 3 * (t[n[2]][1] + t[n[8]][1])) /
+ 9,
+ ]);
+ this.figures.push({
+ type: "patch",
+ coords: new Int32Array(n),
+ colors: new Int32Array(i),
+ });
+ }
+ }
+ _decodeType7Shading(e) {
+ const t = this.coords,
+ a = this.colors,
+ n = new Int32Array(16),
+ i = new Int32Array(4);
+ for (; e.hasData; ) {
+ const s = e.readFlag();
+ if (!(0 <= s && s <= 3))
+ throw new r.FormatError("Unknown type7 flag");
+ const o = t.length;
+ for (let a = 0, r = 0 !== s ? 12 : 16; a < r; a++)
+ t.push(e.readCoordinate());
+ const c = a.length;
+ for (let t = 0, r = 0 !== s ? 2 : 4; t < r; t++)
+ a.push(e.readComponents());
+ let l, h, u, d;
+ switch (s) {
+ case 0:
+ n[12] = o + 3;
+ n[13] = o + 4;
+ n[14] = o + 5;
+ n[15] = o + 6;
+ n[8] = o + 2;
+ n[9] = o + 13;
+ n[10] = o + 14;
+ n[11] = o + 7;
+ n[4] = o + 1;
+ n[5] = o + 12;
+ n[6] = o + 15;
+ n[7] = o + 8;
+ n[0] = o;
+ n[1] = o + 11;
+ n[2] = o + 10;
+ n[3] = o + 9;
+ i[2] = c + 1;
+ i[3] = c + 2;
+ i[0] = c;
+ i[1] = c + 3;
+ break;
+ case 1:
+ l = n[12];
+ h = n[13];
+ u = n[14];
+ d = n[15];
+ n[12] = d;
+ n[13] = o + 0;
+ n[14] = o + 1;
+ n[15] = o + 2;
+ n[8] = u;
+ n[9] = o + 9;
+ n[10] = o + 10;
+ n[11] = o + 3;
+ n[4] = h;
+ n[5] = o + 8;
+ n[6] = o + 11;
+ n[7] = o + 4;
+ n[0] = l;
+ n[1] = o + 7;
+ n[2] = o + 6;
+ n[3] = o + 5;
+ l = i[2];
+ h = i[3];
+ i[2] = h;
+ i[3] = c;
+ i[0] = l;
+ i[1] = c + 1;
+ break;
+ case 2:
+ l = n[15];
+ h = n[11];
+ n[12] = n[3];
+ n[13] = o + 0;
+ n[14] = o + 1;
+ n[15] = o + 2;
+ n[8] = n[7];
+ n[9] = o + 9;
+ n[10] = o + 10;
+ n[11] = o + 3;
+ n[4] = h;
+ n[5] = o + 8;
+ n[6] = o + 11;
+ n[7] = o + 4;
+ n[0] = l;
+ n[1] = o + 7;
+ n[2] = o + 6;
+ n[3] = o + 5;
+ l = i[3];
+ i[2] = i[1];
+ i[3] = c;
+ i[0] = l;
+ i[1] = c + 1;
+ break;
+ case 3:
+ n[12] = n[0];
+ n[13] = o + 0;
+ n[14] = o + 1;
+ n[15] = o + 2;
+ n[8] = n[1];
+ n[9] = o + 9;
+ n[10] = o + 10;
+ n[11] = o + 3;
+ n[4] = n[2];
+ n[5] = o + 8;
+ n[6] = o + 11;
+ n[7] = o + 4;
+ n[0] = n[3];
+ n[1] = o + 7;
+ n[2] = o + 6;
+ n[3] = o + 5;
+ i[2] = i[0];
+ i[3] = c;
+ i[0] = i[1];
+ i[1] = c + 1;
+ }
+ this.figures.push({
+ type: "patch",
+ coords: new Int32Array(n),
+ colors: new Int32Array(i),
+ });
+ }
+ }
+ _buildFigureFromPatch(e) {
+ const t = this.figures[e];
+ (0, r.assert)("patch" === t.type, "Unexpected patch mesh figure");
+ const a = this.coords,
+ n = this.colors,
+ i = t.coords,
+ s = t.colors,
+ o = Math.min(a[i[0]][0], a[i[3]][0], a[i[12]][0], a[i[15]][0]),
+ c = Math.min(a[i[0]][1], a[i[3]][1], a[i[12]][1], a[i[15]][1]),
+ l = Math.max(a[i[0]][0], a[i[3]][0], a[i[12]][0], a[i[15]][0]),
+ h = Math.max(a[i[0]][1], a[i[3]][1], a[i[12]][1], a[i[15]][1]);
+ let u = Math.ceil(
+ ((l - o) * MeshShading.TRIANGLE_DENSITY) /
+ (this.bounds[2] - this.bounds[0]),
+ );
+ u = Math.max(
+ MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,
+ Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, u),
+ );
+ let d = Math.ceil(
+ ((h - c) * MeshShading.TRIANGLE_DENSITY) /
+ (this.bounds[3] - this.bounds[1]),
+ );
+ d = Math.max(
+ MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,
+ Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, d),
+ );
+ const f = u + 1,
+ g = new Int32Array((d + 1) * f),
+ p = new Int32Array((d + 1) * f);
+ let m = 0;
+ const b = new Uint8Array(3),
+ y = new Uint8Array(3),
+ w = n[s[0]],
+ S = n[s[1]],
+ x = n[s[2]],
+ C = n[s[3]],
+ k = getB(d),
+ v = getB(u);
+ for (let e = 0; e <= d; e++) {
+ b[0] = ((w[0] * (d - e) + x[0] * e) / d) | 0;
+ b[1] = ((w[1] * (d - e) + x[1] * e) / d) | 0;
+ b[2] = ((w[2] * (d - e) + x[2] * e) / d) | 0;
+ y[0] = ((S[0] * (d - e) + C[0] * e) / d) | 0;
+ y[1] = ((S[1] * (d - e) + C[1] * e) / d) | 0;
+ y[2] = ((S[2] * (d - e) + C[2] * e) / d) | 0;
+ for (let t = 0; t <= u; t++, m++) {
+ if (!((0 !== e && e !== d) || (0 !== t && t !== u))) continue;
+ let r = 0,
+ s = 0,
+ o = 0;
+ for (let n = 0; n <= 3; n++)
+ for (let c = 0; c <= 3; c++, o++) {
+ const l = k[e][n] * v[t][c];
+ r += a[i[o]][0] * l;
+ s += a[i[o]][1] * l;
+ }
+ g[m] = a.length;
+ a.push([r, s]);
+ p[m] = n.length;
+ const c = new Uint8Array(3);
+ c[0] = ((b[0] * (u - t) + y[0] * t) / u) | 0;
+ c[1] = ((b[1] * (u - t) + y[1] * t) / u) | 0;
+ c[2] = ((b[2] * (u - t) + y[2] * t) / u) | 0;
+ n.push(c);
+ }
+ }
+ g[0] = i[0];
+ p[0] = s[0];
+ g[u] = i[3];
+ p[u] = s[1];
+ g[f * d] = i[12];
+ p[f * d] = s[2];
+ g[f * d + u] = i[15];
+ p[f * d + u] = s[3];
+ this.figures[e] = {
+ type: "lattice",
+ coords: g,
+ colors: p,
+ verticesPerRow: f,
+ };
+ }
+ _updateBounds() {
+ let e = this.coords[0][0],
+ t = this.coords[0][1],
+ a = e,
+ r = t;
+ for (let n = 1, i = this.coords.length; n < i; n++) {
+ const i = this.coords[n][0],
+ s = this.coords[n][1];
+ e = e > i ? i : e;
+ t = t > s ? s : t;
+ a = a < i ? i : a;
+ r = r < s ? s : r;
+ }
+ this.bounds = [e, t, a, r];
+ }
+ _packData() {
+ let e, t, a, r;
+ const n = this.coords,
+ i = new Float32Array(2 * n.length);
+ for (e = 0, a = 0, t = n.length; e < t; e++) {
+ const t = n[e];
+ i[a++] = t[0];
+ i[a++] = t[1];
+ }
+ this.coords = i;
+ const s = this.colors,
+ o = new Uint8Array(3 * s.length);
+ for (e = 0, a = 0, t = s.length; e < t; e++) {
+ const t = s[e];
+ o[a++] = t[0];
+ o[a++] = t[1];
+ o[a++] = t[2];
+ }
+ this.colors = o;
+ const c = this.figures;
+ for (e = 0, t = c.length; e < t; e++) {
+ const t = c[e],
+ n = t.coords,
+ i = t.colors;
+ for (a = 0, r = n.length; a < r; a++) {
+ n[a] *= 2;
+ i[a] *= 3;
+ }
+ }
+ }
+ getIR() {
+ return [
+ "Mesh",
+ this.shadingType,
+ this.coords,
+ this.colors,
+ this.figures,
+ this.bounds,
+ this.bbox,
+ this.background,
+ ];
+ }
+ }
+ class DummyShading extends BaseShading {
+ getIR() {
+ return ["Dummy"];
+ }
+ }
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.getXfaFontDict = function getXfaFontDict(e) {
+ const t = (function getXfaFontWidths(e) {
+ const t = getXfaFontName(e);
+ if (!t) return null;
+ const { baseWidths: a, baseMapping: r, factors: n } = t,
+ i = n ? a.map((e, t) => e * n[t]) : a;
+ let s,
+ o = -2;
+ const c = [];
+ for (const [e, t] of r
+ .map((e, t) => [e, t])
+ .sort(([e], [t]) => e - t))
+ if (-1 !== e)
+ if (e === o + 1) {
+ s.push(i[t]);
+ o += 1;
+ } else {
+ o = e;
+ s = [i[t]];
+ c.push(e, s);
+ }
+ return c;
+ })(e),
+ a = new n.Dict(null);
+ a.set("BaseFont", n.Name.get(e));
+ a.set("Type", n.Name.get("Font"));
+ a.set("Subtype", n.Name.get("CIDFontType2"));
+ a.set("Encoding", n.Name.get("Identity-H"));
+ a.set("CIDToGIDMap", n.Name.get("Identity"));
+ a.set("W", t);
+ a.set("FirstChar", t[0]);
+ a.set("LastChar", t.at(-2) + t.at(-1).length - 1);
+ const r = new n.Dict(null);
+ a.set("FontDescriptor", r);
+ const i = new n.Dict(null);
+ i.set("Ordering", "Identity");
+ i.set("Registry", "Adobe");
+ i.set("Supplement", 0);
+ a.set("CIDSystemInfo", i);
+ return a;
+ };
+ t.getXfaFontName = getXfaFontName;
+ var r = a(52),
+ n = a(4),
+ i = a(53),
+ s = a(54),
+ o = a(55),
+ c = a(56),
+ l = a(3),
+ h = a(38);
+ const u = (0, l.getLookupTableFactory)(function (e) {
+ e["MyriadPro-Regular"] = e["PdfJS-Fallback-Regular"] = {
+ name: "LiberationSans-Regular",
+ factors: o.MyriadProRegularFactors,
+ baseWidths: s.LiberationSansRegularWidths,
+ baseMapping: s.LiberationSansRegularMapping,
+ metrics: o.MyriadProRegularMetrics,
+ };
+ e["MyriadPro-Bold"] = e["PdfJS-Fallback-Bold"] = {
+ name: "LiberationSans-Bold",
+ factors: o.MyriadProBoldFactors,
+ baseWidths: s.LiberationSansBoldWidths,
+ baseMapping: s.LiberationSansBoldMapping,
+ metrics: o.MyriadProBoldMetrics,
+ };
+ e["MyriadPro-It"] =
+ e["MyriadPro-Italic"] =
+ e["PdfJS-Fallback-Italic"] =
+ {
+ name: "LiberationSans-Italic",
+ factors: o.MyriadProItalicFactors,
+ baseWidths: s.LiberationSansItalicWidths,
+ baseMapping: s.LiberationSansItalicMapping,
+ metrics: o.MyriadProItalicMetrics,
+ };
+ e["MyriadPro-BoldIt"] =
+ e["MyriadPro-BoldItalic"] =
+ e["PdfJS-Fallback-BoldItalic"] =
+ {
+ name: "LiberationSans-BoldItalic",
+ factors: o.MyriadProBoldItalicFactors,
+ baseWidths: s.LiberationSansBoldItalicWidths,
+ baseMapping: s.LiberationSansBoldItalicMapping,
+ metrics: o.MyriadProBoldItalicMetrics,
+ };
+ e.ArialMT =
+ e.Arial =
+ e["Arial-Regular"] =
+ {
+ name: "LiberationSans-Regular",
+ baseWidths: s.LiberationSansRegularWidths,
+ baseMapping: s.LiberationSansRegularMapping,
+ };
+ e["Arial-BoldMT"] = e["Arial-Bold"] = {
+ name: "LiberationSans-Bold",
+ baseWidths: s.LiberationSansBoldWidths,
+ baseMapping: s.LiberationSansBoldMapping,
+ };
+ e["Arial-ItalicMT"] = e["Arial-Italic"] = {
+ name: "LiberationSans-Italic",
+ baseWidths: s.LiberationSansItalicWidths,
+ baseMapping: s.LiberationSansItalicMapping,
+ };
+ e["Arial-BoldItalicMT"] = e["Arial-BoldItalic"] = {
+ name: "LiberationSans-BoldItalic",
+ baseWidths: s.LiberationSansBoldItalicWidths,
+ baseMapping: s.LiberationSansBoldItalicMapping,
+ };
+ e["Calibri-Regular"] = {
+ name: "LiberationSans-Regular",
+ factors: r.CalibriRegularFactors,
+ baseWidths: s.LiberationSansRegularWidths,
+ baseMapping: s.LiberationSansRegularMapping,
+ metrics: r.CalibriRegularMetrics,
+ };
+ e["Calibri-Bold"] = {
+ name: "LiberationSans-Bold",
+ factors: r.CalibriBoldFactors,
+ baseWidths: s.LiberationSansBoldWidths,
+ baseMapping: s.LiberationSansBoldMapping,
+ metrics: r.CalibriBoldMetrics,
+ };
+ e["Calibri-Italic"] = {
+ name: "LiberationSans-Italic",
+ factors: r.CalibriItalicFactors,
+ baseWidths: s.LiberationSansItalicWidths,
+ baseMapping: s.LiberationSansItalicMapping,
+ metrics: r.CalibriItalicMetrics,
+ };
+ e["Calibri-BoldItalic"] = {
+ name: "LiberationSans-BoldItalic",
+ factors: r.CalibriBoldItalicFactors,
+ baseWidths: s.LiberationSansBoldItalicWidths,
+ baseMapping: s.LiberationSansBoldItalicMapping,
+ metrics: r.CalibriBoldItalicMetrics,
+ };
+ e["Segoeui-Regular"] = {
+ name: "LiberationSans-Regular",
+ factors: c.SegoeuiRegularFactors,
+ baseWidths: s.LiberationSansRegularWidths,
+ baseMapping: s.LiberationSansRegularMapping,
+ metrics: c.SegoeuiRegularMetrics,
+ };
+ e["Segoeui-Bold"] = {
+ name: "LiberationSans-Bold",
+ factors: c.SegoeuiBoldFactors,
+ baseWidths: s.LiberationSansBoldWidths,
+ baseMapping: s.LiberationSansBoldMapping,
+ metrics: c.SegoeuiBoldMetrics,
+ };
+ e["Segoeui-Italic"] = {
+ name: "LiberationSans-Italic",
+ factors: c.SegoeuiItalicFactors,
+ baseWidths: s.LiberationSansItalicWidths,
+ baseMapping: s.LiberationSansItalicMapping,
+ metrics: c.SegoeuiItalicMetrics,
+ };
+ e["Segoeui-BoldItalic"] = {
+ name: "LiberationSans-BoldItalic",
+ factors: c.SegoeuiBoldItalicFactors,
+ baseWidths: s.LiberationSansBoldItalicWidths,
+ baseMapping: s.LiberationSansBoldItalicMapping,
+ metrics: c.SegoeuiBoldItalicMetrics,
+ };
+ e["Helvetica-Regular"] = e.Helvetica = {
+ name: "LiberationSans-Regular",
+ factors: i.HelveticaRegularFactors,
+ baseWidths: s.LiberationSansRegularWidths,
+ baseMapping: s.LiberationSansRegularMapping,
+ metrics: i.HelveticaRegularMetrics,
+ };
+ e["Helvetica-Bold"] = {
+ name: "LiberationSans-Bold",
+ factors: i.HelveticaBoldFactors,
+ baseWidths: s.LiberationSansBoldWidths,
+ baseMapping: s.LiberationSansBoldMapping,
+ metrics: i.HelveticaBoldMetrics,
+ };
+ e["Helvetica-Italic"] = {
+ name: "LiberationSans-Italic",
+ factors: i.HelveticaItalicFactors,
+ baseWidths: s.LiberationSansItalicWidths,
+ baseMapping: s.LiberationSansItalicMapping,
+ metrics: i.HelveticaItalicMetrics,
+ };
+ e["Helvetica-BoldItalic"] = {
+ name: "LiberationSans-BoldItalic",
+ factors: i.HelveticaBoldItalicFactors,
+ baseWidths: s.LiberationSansBoldItalicWidths,
+ baseMapping: s.LiberationSansBoldItalicMapping,
+ metrics: i.HelveticaBoldItalicMetrics,
+ };
+ });
+ function getXfaFontName(e) {
+ const t = (0, h.normalizeFontName)(e);
+ return u()[t];
+ }
+ },
+ (e, t) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.CalibriRegularMetrics =
+ t.CalibriRegularFactors =
+ t.CalibriItalicMetrics =
+ t.CalibriItalicFactors =
+ t.CalibriBoldMetrics =
+ t.CalibriBoldItalicMetrics =
+ t.CalibriBoldItalicFactors =
+ t.CalibriBoldFactors =
+ void 0;
+ t.CalibriBoldFactors = [
+ 1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988,
+ 0.97566, 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1,
+ 0.96134, 1.54657, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,
+ 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.82845, 0.82845,
+ 0.85284, 0.85284, 0.85284, 0.75859, 0.92138, 0.83908, 0.7762,
+ 0.73293, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356, 0.95958,
+ 0.59526, 0.75727, 0.69225, 1.04924, 0.9121, 0.86943, 0.79795,
+ 0.88198, 0.77958, 0.70864, 0.81055, 0.90399, 0.88653, 0.96017,
+ 0.82577, 0.77892, 0.78257, 0.97507, 1.54657, 0.97507, 0.85284,
+ 0.89552, 0.90176, 0.88762, 0.8785, 0.75241, 0.8785, 0.90518,
+ 0.95015, 0.77618, 0.8785, 0.88401, 0.91916, 0.86304, 0.88401,
+ 0.91488, 0.8785, 0.8801, 0.8785, 0.8785, 0.91343, 0.7173, 1.04106,
+ 0.8785, 0.85075, 0.95794, 0.82616, 0.85162, 0.79492, 0.88331,
+ 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552,
+ 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.12401, 0.96839,
+ 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088,
+ 0.90323, 1, 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864,
+ 0.82845, 0.84133, 0.75859, 0.83908, 0.83908, 0.83908, 0.83908,
+ 0.83908, 0.83908, 0.77539, 0.73293, 0.73133, 0.73133, 0.73133,
+ 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506, 0.9121,
+ 0.86943, 0.86943, 0.86943, 0.86943, 0.86943, 0.85284, 0.87508,
+ 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807,
+ 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.8715,
+ 0.75241, 0.90518, 0.90518, 0.90518, 0.90518, 0.88401, 0.88401,
+ 0.88401, 0.88401, 0.8785, 0.8785, 0.8801, 0.8801, 0.8801, 0.8801,
+ 0.8801, 0.90747, 0.89049, 0.8785, 0.8785, 0.8785, 0.8785, 0.85162,
+ 0.8785, 0.85162, 0.83908, 0.88762, 0.83908, 0.88762, 0.83908,
+ 0.88762, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241,
+ 0.73293, 0.75241, 0.87289, 0.83016, 0.88506, 0.93125, 0.73133,
+ 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518,
+ 0.73133, 0.90518, 0.81921, 0.77618, 0.81921, 0.77618, 0.81921,
+ 0.77618, 1, 1, 0.87356, 0.8785, 0.91075, 0.89608, 0.95958, 0.88401,
+ 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958,
+ 0.88401, 0.76229, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225,
+ 0.88401, 1, 1, 0.70424, 0.79468, 0.91926, 0.88175, 0.70823, 0.94903,
+ 0.9121, 0.8785, 1, 1, 0.9121, 0.8785, 0.87802, 0.88656, 0.8785,
+ 0.86943, 0.8801, 0.86943, 0.8801, 0.86943, 0.8801, 0.87402, 0.89291,
+ 0.77958, 0.91343, 1, 1, 0.77958, 0.91343, 0.70864, 0.7173, 0.70864,
+ 0.7173, 0.70864, 0.7173, 0.70864, 0.7173, 1, 1, 0.81055, 0.75841,
+ 0.81055, 1.06452, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785,
+ 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.96017, 0.95794,
+ 0.77892, 0.85162, 0.77892, 0.78257, 0.79492, 0.78257, 0.79492,
+ 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.88762, 0.77539,
+ 0.8715, 0.87508, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528,
+ 1, 1.15543, 0.70674, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161,
+ 1.06303, 0.83908, 0.80352, 0.57184, 0.6965, 0.56289, 0.82001,
+ 0.56029, 0.81235, 1.02988, 0.83908, 0.7762, 0.68156, 0.80367,
+ 0.73133, 0.78257, 0.87356, 0.86943, 0.95958, 0.75727, 0.89019,
+ 1.04924, 0.9121, 0.7648, 0.86943, 0.87356, 0.79795, 0.78275,
+ 0.81055, 0.77892, 0.9762, 0.82577, 0.99819, 0.84896, 0.95958,
+ 0.77892, 0.96108, 1.01407, 0.89049, 1.02988, 0.94211, 0.96108,
+ 0.8936, 0.84021, 0.87842, 0.96399, 0.79109, 0.89049, 1.00813,
+ 1.02988, 0.86077, 0.87445, 0.92099, 0.84723, 0.86513, 0.8801,
+ 0.75638, 0.85714, 0.78216, 0.79586, 0.87965, 0.94211, 0.97747,
+ 0.78287, 0.97926, 0.84971, 1.02988, 0.94211, 0.8801, 0.94211,
+ 0.84971, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90264, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90518, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90548, 1, 1, 1, 1, 1, 1, 0.96017,
+ 0.95794, 0.96017, 0.95794, 0.96017, 0.95794, 0.77892, 0.85162, 1, 1,
+ 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.92794,
+ 0.87012, 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71143,
+ 1.06152, 1, 1, 1.03372, 1.03372, 0.97171, 1.4956, 2.2807, 0.93835,
+ 0.83406, 0.91133, 0.84107, 0.91133, 1, 1, 1, 0.72021, 1, 1.23108,
+ 0.83489, 0.88525, 0.88525, 0.81499, 0.90527, 1.81055, 0.90527,
+ 1.81055, 1.31006, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192,
+ 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747,
+ 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941,
+ 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862,
+ 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ ];
+ t.CalibriBoldMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };
+ t.CalibriBoldItalicFactors = [
+ 1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988,
+ 0.97566, 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1,
+ 0.96134, 1.56239, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,
+ 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.82845, 0.82845,
+ 0.85284, 0.85284, 0.85284, 0.75859, 0.92138, 0.83908, 0.7762,
+ 0.71805, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356, 0.95958,
+ 0.59526, 0.75727, 0.69225, 1.04924, 0.90872, 0.85938, 0.79795,
+ 0.87068, 0.77958, 0.69766, 0.81055, 0.90399, 0.88653, 0.96068,
+ 0.82577, 0.77892, 0.78257, 0.97507, 1.529, 0.97507, 0.85284,
+ 0.89552, 0.90176, 0.94908, 0.86411, 0.74012, 0.86411, 0.88323,
+ 0.95015, 0.86411, 0.86331, 0.88401, 0.91916, 0.86304, 0.88401,
+ 0.9039, 0.86331, 0.86331, 0.86411, 0.86411, 0.90464, 0.70852,
+ 1.04106, 0.86331, 0.84372, 0.95794, 0.82616, 0.84548, 0.79492,
+ 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133,
+ 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.19129,
+ 0.96839, 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466,
+ 1.0088, 0.90323, 1, 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839,
+ 0.78864, 0.82845, 0.84133, 0.75859, 0.83908, 0.83908, 0.83908,
+ 0.83908, 0.83908, 0.83908, 0.77539, 0.71805, 0.73133, 0.73133,
+ 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506,
+ 0.90872, 0.85938, 0.85938, 0.85938, 0.85938, 0.85938, 0.85284,
+ 0.87068, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795,
+ 0.90807, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908,
+ 0.85887, 0.74012, 0.88323, 0.88323, 0.88323, 0.88323, 0.88401,
+ 0.88401, 0.88401, 0.88401, 0.8785, 0.86331, 0.86331, 0.86331,
+ 0.86331, 0.86331, 0.86331, 0.90747, 0.89049, 0.86331, 0.86331,
+ 0.86331, 0.86331, 0.84548, 0.86411, 0.84548, 0.83908, 0.94908,
+ 0.83908, 0.94908, 0.83908, 0.94908, 0.71805, 0.74012, 0.71805,
+ 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.87289, 0.79538,
+ 0.88506, 0.92726, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133,
+ 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.81921, 0.86411,
+ 0.81921, 0.86411, 0.81921, 0.86411, 1, 1, 0.87356, 0.86331, 0.91075,
+ 0.8777, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401,
+ 0.95958, 0.88401, 0.95958, 0.88401, 0.76467, 0.90167, 0.59526,
+ 0.91916, 1, 1, 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.77312,
+ 0.91926, 0.88175, 0.70823, 0.94903, 0.90872, 0.86331, 1, 1, 0.90872,
+ 0.86331, 0.86906, 0.88116, 0.86331, 0.85938, 0.86331, 0.85938,
+ 0.86331, 0.85938, 0.86331, 0.87402, 0.86549, 0.77958, 0.90464, 1, 1,
+ 0.77958, 0.90464, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766,
+ 0.70852, 0.69766, 0.70852, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452,
+ 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399,
+ 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.96068, 0.95794,
+ 0.77892, 0.84548, 0.77892, 0.78257, 0.79492, 0.78257, 0.79492,
+ 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.94908, 0.77539,
+ 0.85887, 0.87068, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528,
+ 1, 1.15543, 0.70088, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161,
+ 1.48387, 0.83908, 0.80352, 0.57118, 0.6965, 0.56347, 0.79179,
+ 0.55853, 0.80346, 1.02988, 0.83908, 0.7762, 0.67174, 0.86036,
+ 0.73133, 0.78257, 0.87356, 0.86441, 0.95958, 0.75727, 0.89019,
+ 1.04924, 0.90872, 0.74889, 0.85938, 0.87891, 0.79795, 0.7957,
+ 0.81055, 0.77892, 0.97447, 0.82577, 0.97466, 0.87179, 0.95958,
+ 0.77892, 0.94252, 0.95612, 0.8753, 1.02988, 0.92733, 0.94252,
+ 0.87411, 0.84021, 0.8728, 0.95612, 0.74081, 0.8753, 1.02189,
+ 1.02988, 0.84814, 0.87445, 0.91822, 0.84723, 0.85668, 0.86331,
+ 0.81344, 0.87581, 0.76422, 0.82046, 0.96057, 0.92733, 0.99375,
+ 0.78022, 0.95452, 0.86015, 1.02988, 0.92733, 0.86331, 0.92733,
+ 0.86015, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90631, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88323, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85174, 1, 1, 1, 1, 1, 1, 0.96068,
+ 0.95794, 0.96068, 0.95794, 0.96068, 0.95794, 0.77892, 0.84548, 1, 1,
+ 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.89807,
+ 0.87012, 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71094,
+ 1.06152, 1, 1, 1.03372, 1.03372, 0.97171, 1.4956, 2.2807, 0.92972,
+ 0.83406, 0.91133, 0.83326, 0.91133, 1, 1, 1, 0.72021, 1, 1.23108,
+ 0.83489, 0.88525, 0.88525, 0.81499, 0.90616, 1.81055, 0.90527,
+ 1.81055, 1.3107, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192,
+ 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747,
+ 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941,
+ 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862,
+ 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ ];
+ t.CalibriBoldItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };
+ t.CalibriItalicFactors = [
+ 1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395,
+ 1.02269, 1.15601, 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1,
+ 0.90861, 1.39543, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,
+ 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.96309, 0.96309,
+ 0.85284, 0.85284, 0.85284, 0.83319, 0.88071, 0.8675, 0.81552,
+ 0.72346, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685,
+ 0.6377, 0.77892, 0.75593, 1.02638, 0.89249, 0.84118, 0.77452,
+ 0.85374, 0.75186, 0.67789, 0.79776, 0.88844, 0.85066, 0.94309,
+ 0.77818, 0.7306, 0.76659, 1.10369, 1.38313, 1.10369, 1.06139,
+ 0.89552, 0.8739, 0.9245, 0.9245, 0.83203, 0.9245, 0.85865, 1.09842,
+ 0.9245, 0.9245, 1.03297, 1.07692, 0.90918, 1.03297, 0.94959, 0.9245,
+ 0.92274, 0.9245, 0.9245, 1.02933, 0.77832, 1.20562, 0.9245, 0.8916,
+ 0.98986, 0.86621, 0.89453, 0.79004, 0.94152, 1.77256, 0.94152,
+ 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729,
+ 0.89552, 1.17889, 1.13254, 1.16359, 0.92098, 0.85284, 0.68787,
+ 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1,
+ 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972,
+ 0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318,
+ 0.72346, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685,
+ 0.90685, 0.90685, 0.86477, 0.89249, 0.84118, 0.84118, 0.84118,
+ 0.84118, 0.84118, 0.85284, 0.84557, 0.88844, 0.88844, 0.88844,
+ 0.88844, 0.7306, 0.77452, 0.86331, 0.9245, 0.9245, 0.9245, 0.9245,
+ 0.9245, 0.9245, 0.84843, 0.83203, 0.85865, 0.85865, 0.85865,
+ 0.85865, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469, 0.9245,
+ 0.92274, 0.92274, 0.92274, 0.92274, 0.92274, 0.90747, 0.86651,
+ 0.9245, 0.9245, 0.9245, 0.9245, 0.89453, 0.9245, 0.89453, 0.8675,
+ 0.9245, 0.8675, 0.9245, 0.8675, 0.9245, 0.72346, 0.83203, 0.72346,
+ 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.85193, 0.8875,
+ 0.86477, 0.99034, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206,
+ 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.81105, 0.9245,
+ 0.81105, 0.9245, 0.81105, 0.9245, 1, 1, 0.86275, 0.9245, 0.90872,
+ 0.93591, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601,
+ 0.90685, 1.03297, 0.90685, 0.82601, 0.77896, 1.05611, 0.6377,
+ 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032, 0.9375,
+ 0.98156, 0.93407, 0.77261, 1.11429, 0.89249, 0.9245, 1, 1, 0.89249,
+ 0.9245, 0.92534, 0.86698, 0.9245, 0.84118, 0.92274, 0.84118,
+ 0.92274, 0.84118, 0.92274, 0.8667, 0.86291, 0.75186, 1.02933, 1, 1,
+ 0.75186, 1.02933, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789,
+ 0.77832, 0.67789, 0.77832, 1, 1, 0.79776, 0.97655, 0.79776, 1.23023,
+ 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245,
+ 0.88844, 0.9245, 0.88844, 0.9245, 0.94309, 0.98986, 0.7306, 0.89453,
+ 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004,
+ 1.09231, 0.54873, 0.8675, 0.9245, 0.76318, 0.84843, 0.84557,
+ 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437,
+ 0.67009, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387,
+ 0.8675, 0.90861, 0.6192, 0.7363, 0.64824, 0.82411, 0.56321, 0.85696,
+ 1.23516, 0.8675, 0.81552, 0.7286, 0.84134, 0.73206, 0.76659,
+ 0.86275, 0.84369, 0.90685, 0.77892, 0.85871, 1.02638, 0.89249,
+ 0.75828, 0.84118, 0.85984, 0.77452, 0.76466, 0.79776, 0.7306,
+ 0.90782, 0.77818, 0.903, 0.87291, 0.90685, 0.7306, 0.99058, 1.03667,
+ 0.94635, 1.23516, 0.9849, 0.99058, 0.92393, 0.8916, 0.942, 1.03667,
+ 0.75026, 0.94635, 1.0297, 1.23516, 0.90918, 0.94048, 0.98217,
+ 0.89746, 0.84153, 0.92274, 0.82507, 0.88832, 0.84438, 0.88178,
+ 1.03525, 0.9849, 1.00225, 0.78086, 0.97248, 0.89404, 1.23516,
+ 0.9849, 0.92274, 0.9849, 0.89404, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 0.89693, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 0.85865, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90933, 1,
+ 1, 1, 1, 1, 1, 0.94309, 0.98986, 0.94309, 0.98986, 0.94309, 0.98986,
+ 0.7306, 0.89453, 1, 1, 0.89552, 0.90527, 1, 0.90186, 1.12308,
+ 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566, 0.89552, 0.89552,
+ 1.42259, 0.68994, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523, 1.4956,
+ 2.01462, 0.97858, 0.82616, 0.91133, 0.83437, 0.91133, 1, 1, 1,
+ 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90572,
+ 1.81055, 0.90749, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1,
+ 0.97094, 0.7589, 0.85284, 0.90747, 1.19658, 0.69825, 0.97622,
+ 1.33512, 0.90747, 0.90747, 0.85284, 0.90747, 0.90747, 1.44947,
+ 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572,
+ 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1,
+ 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ ];
+ t.CalibriItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };
+ t.CalibriRegularFactors = [
+ 1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395,
+ 1.02269, 1.15601, 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1,
+ 0.90861, 1.39016, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,
+ 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.96309, 0.96309,
+ 0.85284, 0.85284, 0.85284, 0.83319, 0.88071, 0.8675, 0.81552,
+ 0.73834, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685,
+ 0.6377, 0.77892, 0.75593, 1.02638, 0.89385, 0.85122, 0.77452,
+ 0.86503, 0.75186, 0.68887, 0.79776, 0.88844, 0.85066, 0.94258,
+ 0.77818, 0.7306, 0.76659, 1.10369, 1.39016, 1.10369, 1.06139,
+ 0.89552, 0.8739, 0.86128, 0.94469, 0.8457, 0.94469, 0.89464,
+ 1.09842, 0.84636, 0.94469, 1.03297, 1.07692, 0.90918, 1.03297,
+ 0.95897, 0.94469, 0.9482, 0.94469, 0.94469, 1.04692, 0.78223,
+ 1.20562, 0.94469, 0.90332, 0.98986, 0.86621, 0.90527, 0.79004,
+ 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133,
+ 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.08707,
+ 0.92098, 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088,
+ 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098,
+ 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675,
+ 0.8675, 0.8675, 0.76318, 0.73834, 0.73206, 0.73206, 0.73206,
+ 0.73206, 0.90685, 0.90685, 0.90685, 0.90685, 0.86477, 0.89385,
+ 0.85122, 0.85122, 0.85122, 0.85122, 0.85122, 0.85284, 0.85311,
+ 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331,
+ 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.8693,
+ 0.8457, 0.89464, 0.89464, 0.89464, 0.89464, 0.82601, 0.82601,
+ 0.82601, 0.82601, 0.94469, 0.94469, 0.9482, 0.9482, 0.9482, 0.9482,
+ 0.9482, 0.90747, 0.86651, 0.94469, 0.94469, 0.94469, 0.94469,
+ 0.90527, 0.94469, 0.90527, 0.8675, 0.86128, 0.8675, 0.86128, 0.8675,
+ 0.86128, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834,
+ 0.8457, 0.85193, 0.92454, 0.86477, 0.9921, 0.73206, 0.89464,
+ 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206,
+ 0.89464, 0.81105, 0.84636, 0.81105, 0.84636, 0.81105, 0.84636, 1, 1,
+ 0.86275, 0.94469, 0.90872, 0.95786, 0.90685, 0.82601, 0.90685,
+ 0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601,
+ 0.77741, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297,
+ 1, 1, 0.76032, 0.90452, 0.98156, 1.11842, 0.77261, 1.11429, 0.89385,
+ 0.94469, 1, 1, 0.89385, 0.94469, 0.95877, 0.86901, 0.94469, 0.85122,
+ 0.9482, 0.85122, 0.9482, 0.85122, 0.9482, 0.8667, 0.90016, 0.75186,
+ 1.04692, 1, 1, 0.75186, 1.04692, 0.68887, 0.78223, 0.68887, 0.78223,
+ 0.68887, 0.78223, 0.68887, 0.78223, 1, 1, 0.79776, 0.92188, 0.79776,
+ 1.23023, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469,
+ 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.94258,
+ 0.98986, 0.7306, 0.90527, 0.7306, 0.76659, 0.79004, 0.76659,
+ 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.86128,
+ 0.76318, 0.8693, 0.85311, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622,
+ 1.18622, 1, 1.1437, 0.67742, 0.96334, 0.93695, 1.35191, 1.40909,
+ 0.95161, 1.48387, 0.86686, 0.90861, 0.62267, 0.74359, 0.65649,
+ 0.85498, 0.56963, 0.88254, 1.23516, 0.8675, 0.81552, 0.75443,
+ 0.84503, 0.73206, 0.76659, 0.86275, 0.85122, 0.90685, 0.77892,
+ 0.85746, 1.02638, 0.89385, 0.75657, 0.85122, 0.86275, 0.77452,
+ 0.74171, 0.79776, 0.7306, 0.95165, 0.77818, 0.89772, 0.88831,
+ 0.90685, 0.7306, 0.98142, 1.02191, 0.96576, 1.23516, 0.99018,
+ 0.98142, 0.9236, 0.89258, 0.94035, 1.02191, 0.78848, 0.96576,
+ 0.9561, 1.23516, 0.90918, 0.92578, 0.95424, 0.89746, 0.83969,
+ 0.9482, 0.80113, 0.89442, 0.85208, 0.86155, 0.98022, 0.99018,
+ 1.00452, 0.81209, 0.99247, 0.89181, 1.23516, 0.99018, 0.9482,
+ 0.99018, 0.89181, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0.88844, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0.89464, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96766, 1, 1, 1, 1, 1,
+ 1, 0.94258, 0.98986, 0.94258, 0.98986, 0.94258, 0.98986, 0.7306,
+ 0.90527, 1, 1, 0.89552, 0.90527, 1, 0.90186, 1.12308, 1.12308,
+ 1.12308, 1.12308, 1.2566, 1.2566, 1.2566, 0.89552, 0.89552, 1.42259,
+ 0.69043, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523, 1.4956, 2.01462,
+ 0.99331, 0.82616, 0.91133, 0.84286, 0.91133, 1, 1, 1, 0.70508, 1,
+ 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90527, 1.81055,
+ 0.90527, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094,
+ 0.7589, 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512,
+ 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284,
+ 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862,
+ 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1.07185,
+ 0.99413, 0.96334, 1.08065, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ ];
+ t.CalibriRegularMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };
+ },
+ (e, t) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.HelveticaRegularMetrics =
+ t.HelveticaRegularFactors =
+ t.HelveticaItalicMetrics =
+ t.HelveticaItalicFactors =
+ t.HelveticaBoldMetrics =
+ t.HelveticaBoldItalicMetrics =
+ t.HelveticaBoldItalicFactors =
+ t.HelveticaBoldFactors =
+ void 0;
+ t.HelveticaBoldFactors = [
+ 0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982,
+ 0.99977, 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006,
+ 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973,
+ 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1,
+ 1.00003, 1.00003, 1.00003, 1.00026, 0.9999, 0.99977, 0.99977,
+ 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006,
+ 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001,
+ 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016,
+ 1.00001, 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003,
+ 0.99973, 0.99998, 0.99973, 1.00026, 0.99973, 1.00026, 0.99973,
+ 0.99998, 1.00026, 1.00026, 1.0006, 1.0006, 0.99973, 1.0006, 0.99982,
+ 1.00026, 1.00026, 1.00026, 1.00026, 0.99959, 0.99973, 0.99998,
+ 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1, 0.99959, 1.00077,
+ 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973,
+ 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003,
+ 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973,
+ 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002,
+ 1.00026, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1,
+ 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006,
+ 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022,
+ 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977,
+ 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973,
+ 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973,
+ 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026,
+ 1.00026, 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026,
+ 1.00026, 1.00026, 1.00026, 0.99973, 1.00026, 0.99973, 0.99977,
+ 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,
+ 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977,
+ 1.03374, 0.99977, 1.00026, 1.00001, 0.99973, 1.00001, 0.99973,
+ 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022,
+ 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,
+ 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006,
+ 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.00042, 0.99973,
+ 0.99973, 1.0006, 0.99977, 0.99973, 0.99973, 1.00026, 1.0006,
+ 1.00026, 1.0006, 1.00026, 1.03828, 1.00026, 0.99999, 1.00026,
+ 1.0006, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026,
+ 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,
+ 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959,
+ 0.99977, 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,
+ 0.99973, 1.00001, 0.99973, 1.00026, 0.99998, 1.00026, 0.8121,
+ 1.00026, 0.99998, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977,
+ 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026,
+ 1.00016, 1.00022, 1.00001, 0.99973, 1.00001, 1.00026, 1, 1.00026, 1,
+ 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1, 0.99982, 1.00022,
+ 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998, 0.99998,
+ 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,
+ 0.99998, 1.00034, 0.99977, 1, 0.99997, 1.00026, 1.00078, 1.00036,
+ 0.99973, 1.00013, 1.0006, 0.99977, 0.99977, 0.99988, 0.85148,
+ 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 0.99977, 1.00001,
+ 0.99999, 0.99977, 1.00069, 1.00022, 0.99977, 1.00001, 0.99984,
+ 1.00026, 1.00001, 1.00024, 1.00001, 0.9999, 1, 1.0006, 1.00001,
+ 1.00041, 0.99962, 1.00026, 1.0006, 0.99995, 1.00041, 0.99942,
+ 0.99973, 0.99927, 1.00082, 0.99902, 1.00026, 1.00087, 1.0006,
+ 1.00069, 0.99973, 0.99867, 0.99973, 0.9993, 1.00026, 1.00049,
+ 1.00056, 1, 0.99988, 0.99935, 0.99995, 0.99954, 1.00055, 0.99945,
+ 1.00032, 1.0006, 0.99995, 1.00026, 0.99995, 1.00032, 1.00001,
+ 1.00008, 0.99971, 1.00019, 0.9994, 1.00001, 1.0006, 1.00044,
+ 0.99973, 1.00023, 1.00047, 1, 0.99942, 0.99561, 0.99989, 1.00035,
+ 0.99977, 1.00035, 0.99977, 1.00019, 0.99944, 1.00001, 1.00021,
+ 0.99926, 1.00035, 1.00035, 0.99942, 1.00048, 0.99999, 0.99977,
+ 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.99989, 1.00057,
+ 1.00001, 0.99936, 1.00052, 1.00012, 0.99996, 1.00043, 1, 1.00035,
+ 0.9994, 0.99976, 1.00035, 0.99973, 1.00052, 1.00041, 1.00119,
+ 1.00037, 0.99973, 1.00002, 0.99986, 1.00041, 1.00041, 0.99902,
+ 0.9996, 1.00034, 0.99999, 1.00026, 0.99999, 1.00026, 0.99973,
+ 1.00052, 0.99973, 1, 0.99973, 1.00041, 1.00075, 0.9994, 1.0003,
+ 0.99999, 1, 1.00041, 0.99955, 1, 0.99915, 0.99973, 0.99973, 1.00026,
+ 1.00119, 0.99955, 0.99973, 1.0006, 0.99911, 1.0006, 1.00026,
+ 0.99972, 1.00026, 0.99902, 1.00041, 0.99973, 0.99999, 1, 1, 1.00038,
+ 1.0005, 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022,
+ 1.00001, 0.99973, 1, 1, 0.99973, 1, 1, 0.99955, 1.0006, 1.0006,
+ 1.0006, 1.0006, 1, 1, 1, 0.99973, 0.99973, 0.99972, 1, 1, 1.00106,
+ 0.99999, 0.99998, 0.99998, 0.99999, 0.99998, 1.66475, 1, 0.99973,
+ 0.99973, 1.00023, 0.99973, 0.99971, 1.00047, 1.00023, 1, 0.99991,
+ 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1,
+ 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561,
+ 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999,
+ 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579,
+ 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026,
+ 1.00026, 0.99972, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1,
+ 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1,
+ 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ ];
+ t.HelveticaBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 };
+ t.HelveticaBoldItalicFactors = [
+ 0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982,
+ 0.99977, 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006,
+ 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973,
+ 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1,
+ 1.00003, 1.00003, 1.00003, 1.00026, 0.9999, 0.99977, 0.99977,
+ 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006,
+ 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001,
+ 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016,
+ 1.00001, 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003,
+ 0.99973, 0.99998, 0.99973, 1.00026, 0.99973, 1.00026, 0.99973,
+ 0.99998, 1.00026, 1.00026, 1.0006, 1.0006, 0.99973, 1.0006, 0.99982,
+ 1.00026, 1.00026, 1.00026, 1.00026, 0.99959, 0.99973, 0.99998,
+ 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1, 0.99959, 1.00077,
+ 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973,
+ 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003,
+ 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973,
+ 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002,
+ 1.00026, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1,
+ 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006,
+ 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022,
+ 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977,
+ 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973,
+ 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973,
+ 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026,
+ 1.00026, 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026,
+ 1.00026, 1.00026, 1.00026, 0.99973, 1.00026, 0.99973, 0.99977,
+ 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,
+ 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977,
+ 1.0044, 0.99977, 1.00026, 1.00001, 0.99973, 1.00001, 0.99973,
+ 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022,
+ 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,
+ 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006,
+ 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99971, 0.99973,
+ 0.99973, 1.0006, 0.99977, 0.99973, 0.99973, 1.00026, 1.0006,
+ 1.00026, 1.0006, 1.00026, 1.01011, 1.00026, 0.99999, 1.00026,
+ 1.0006, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026,
+ 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,
+ 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959,
+ 0.99977, 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,
+ 0.99973, 1.00001, 0.99973, 1.00026, 0.99998, 1.00026, 0.8121,
+ 1.00026, 0.99998, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977,
+ 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026,
+ 1.00016, 1.00022, 1.00001, 0.99973, 1.00001, 1.00026, 1, 1.00026, 1,
+ 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1, 0.99982, 1.00022,
+ 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998, 0.99998,
+ 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,
+ 0.99998, 0.99998, 0.99977, 1, 1, 1.00026, 0.99969, 0.99972, 0.99981,
+ 0.9998, 1.0006, 0.99977, 0.99977, 1.00022, 0.91155, 1.00001,
+ 1.00026, 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999,
+ 0.99977, 0.99966, 1.00022, 1.00032, 1.00001, 0.99944, 1.00026,
+ 1.00001, 0.99968, 1.00001, 1.00047, 1, 1.0006, 1.00001, 0.99981,
+ 1.00101, 1.00026, 1.0006, 0.99948, 0.99981, 1.00064, 0.99973,
+ 0.99942, 1.00101, 1.00061, 1.00026, 1.00069, 1.0006, 1.00014,
+ 0.99973, 1.01322, 0.99973, 1.00065, 1.00026, 1.00012, 0.99923, 1,
+ 1.00064, 1.00076, 0.99948, 1.00055, 1.00063, 1.00007, 0.99943,
+ 1.0006, 0.99948, 1.00026, 0.99948, 0.99943, 1.00001, 1.00001,
+ 1.00029, 1.00038, 1.00035, 1.00001, 1.0006, 1.0006, 0.99973,
+ 0.99978, 1.00001, 1.00057, 0.99989, 0.99967, 0.99964, 0.99967,
+ 0.99977, 0.99999, 0.99977, 1.00038, 0.99977, 1.00001, 0.99973,
+ 1.00066, 0.99967, 0.99967, 1.00041, 0.99998, 0.99999, 0.99977,
+ 1.00022, 0.99967, 1.00001, 0.99977, 1.00026, 0.99964, 1.00031,
+ 1.00001, 0.99999, 0.99999, 1, 1.00023, 1, 1, 0.99999, 1.00035,
+ 1.00001, 0.99999, 0.99973, 0.99977, 0.99999, 1.00058, 0.99973,
+ 0.99973, 0.99955, 0.9995, 1.00026, 1.00026, 1.00032, 0.99989,
+ 1.00034, 0.99999, 1.00026, 1.00026, 1.00026, 0.99973, 0.45998,
+ 0.99973, 1.00026, 0.99973, 1.00001, 0.99999, 0.99982, 0.99994,
+ 0.99996, 1, 1.00042, 1.00044, 1.00029, 1.00023, 0.99973, 0.99973,
+ 1.00026, 0.99949, 1.00002, 0.99973, 1.0006, 1.0006, 1.0006, 0.99975,
+ 1.00026, 1.00026, 1.00032, 0.98685, 0.99973, 1.00026, 1, 1, 0.99966,
+ 1.00044, 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022,
+ 1.00001, 0.99973, 1, 1, 0.99973, 1, 1, 0.99955, 1.0006, 1.0006,
+ 1.0006, 1.0006, 1, 1, 1, 0.99973, 0.99973, 0.99972, 1, 1, 1.00106,
+ 0.99999, 0.99998, 0.99998, 0.99999, 0.99998, 1.66475, 1, 0.99973,
+ 0.99973, 1, 0.99973, 0.99971, 0.99978, 1, 1, 0.99991, 0.99984,
+ 1.00002, 1.00002, 1.00002, 1.00002, 1.00098, 1, 1, 1, 1.00049, 1, 1,
+ 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561,
+ 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999,
+ 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579,
+ 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026,
+ 1.00026, 0.99972, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1,
+ 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1,
+ 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ ];
+ t.HelveticaBoldItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 };
+ t.HelveticaItalicFactors = [
+ 0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982,
+ 1.00001, 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006,
+ 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973,
+ 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1,
+ 1.00003, 1.00003, 1.00003, 0.99973, 0.99987, 1.00001, 1.00001,
+ 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 1,
+ 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022,
+ 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001,
+ 1.00001, 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998,
+ 0.99973, 0.99973, 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973,
+ 0.99924, 0.99924, 1, 0.99924, 0.99999, 0.99973, 0.99973, 0.99973,
+ 0.99973, 0.99998, 1, 1.0006, 0.99973, 1, 0.99977, 1, 1, 1, 1.00005,
+ 1.0009, 1.00005, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973,
+ 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973,
+ 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1,
+ 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002,
+ 1.00002, 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001,
+ 1.00001, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006,
+ 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022,
+ 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977,
+ 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973,
+ 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973, 0.99973,
+ 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973,
+ 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973,
+ 0.99973, 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001,
+ 0.99973, 1.00001, 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1,
+ 0.99977, 1, 0.99977, 1.0288, 0.99977, 0.99973, 1.00001, 0.99973,
+ 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,
+ 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973,
+ 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.0006,
+ 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006,
+ 1.0006, 0.99946, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973,
+ 0.99924, 0.99973, 0.99924, 0.99973, 1.06311, 0.99973, 1.00024,
+ 0.99973, 0.99924, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977,
+ 0.99973, 1.00041, 0.9998, 0.99973, 1.00022, 0.99973, 1.00022,
+ 0.99973, 1.00022, 0.99973, 1, 1.00016, 0.99977, 0.99998, 0.99977,
+ 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1, 1.00001, 1,
+ 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.89547, 1.00026, 1.0006,
+ 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977,
+ 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977,
+ 1.00001, 1, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924,
+ 0.99973, 1.00001, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 1,
+ 1.00026, 1.0006, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,
+ 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 1.00001, 1,
+ 1.00054, 0.99977, 1.00084, 1.00007, 0.99973, 1.00013, 0.99924,
+ 1.00001, 1.00001, 0.99945, 0.91221, 1.00001, 1.00026, 0.99977,
+ 1.00022, 1.0006, 1.00001, 1.00001, 0.99999, 0.99977, 0.99933,
+ 1.00022, 1.00054, 1.00001, 1.00065, 1.00026, 1.00001, 1.0001,
+ 1.00001, 1.00052, 1, 1.0006, 1.00001, 0.99945, 0.99897, 0.99968,
+ 0.99924, 1.00036, 0.99945, 0.99949, 1, 1.0006, 0.99897, 0.99918,
+ 0.99968, 0.99911, 0.99924, 1, 0.99962, 1.01487, 1, 1.0005, 0.99973,
+ 1.00012, 1.00043, 1, 0.99995, 0.99994, 1.00036, 0.99947, 1.00019,
+ 1.00063, 1.00025, 0.99924, 1.00036, 0.99973, 1.00036, 1.00025,
+ 1.00001, 1.00001, 1.00027, 1.0001, 1.00068, 1.00001, 1.0006, 1.0006,
+ 1, 1.00008, 0.99957, 0.99972, 0.9994, 0.99954, 0.99975, 1.00051,
+ 1.00001, 1.00019, 1.00001, 1.0001, 0.99986, 1.00001, 1.00001,
+ 1.00038, 0.99954, 0.99954, 0.9994, 1.00066, 0.99999, 0.99977,
+ 1.00022, 1.00054, 1.00001, 0.99977, 1.00026, 0.99975, 1.0001,
+ 1.00001, 0.99993, 0.9995, 0.99955, 1.00016, 0.99978, 0.99974,
+ 1.00019, 1.00022, 0.99955, 1.00053, 0.99973, 1.00089, 1.00005,
+ 0.99967, 1.00048, 0.99973, 1.00002, 1.00034, 0.99973, 0.99973,
+ 0.99964, 1.00006, 1.00066, 0.99947, 0.99973, 0.98894, 0.99973, 1,
+ 0.44898, 1, 0.99946, 1, 1.00039, 1.00082, 0.99991, 0.99991, 0.99985,
+ 1.00022, 1.00023, 1.00061, 1.00006, 0.99966, 0.99973, 0.99973,
+ 0.99973, 1.00019, 1.0008, 1, 0.99924, 0.99924, 0.99924, 0.99983,
+ 1.00044, 0.99973, 0.99964, 0.98332, 1, 0.99973, 1, 1, 0.99962,
+ 0.99895, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977,
+ 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924,
+ 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1,
+ 1.00267, 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973,
+ 0.99973, 1.00023, 0.99973, 1.00423, 0.99925, 0.99999, 1, 0.99991,
+ 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00049, 1, 1.00245, 1,
+ 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254, 1.00015, 1,
+ 1.00035, 1.00027, 1.00031, 1.00031, 1.00003, 1.00031, 1.00031,
+ 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579,
+ 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026,
+ 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999,
+ 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042,
+ 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ ];
+ t.HelveticaItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 };
+ t.HelveticaRegularFactors = [
+ 0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982,
+ 1.00001, 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006,
+ 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973,
+ 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1,
+ 1.00003, 1.00003, 1.00003, 0.99973, 0.99987, 1.00001, 1.00001,
+ 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 1,
+ 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022,
+ 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001,
+ 1.00001, 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998,
+ 0.99973, 0.99973, 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973,
+ 0.99924, 0.99924, 1, 0.99924, 0.99999, 0.99973, 0.99973, 0.99973,
+ 0.99973, 0.99998, 1, 1.0006, 0.99973, 1, 0.99977, 1, 1, 1, 1.00005,
+ 1.0009, 1.00005, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973,
+ 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973,
+ 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1,
+ 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002,
+ 1.00002, 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001,
+ 1.00001, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006,
+ 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022,
+ 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977,
+ 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973,
+ 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973, 0.99973,
+ 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973,
+ 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973,
+ 0.99973, 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001,
+ 0.99973, 1.00001, 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1,
+ 0.99977, 1, 0.99977, 1.04596, 0.99977, 0.99973, 1.00001, 0.99973,
+ 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,
+ 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973,
+ 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.0006,
+ 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006,
+ 1.0006, 1.00019, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973,
+ 0.99924, 0.99973, 0.99924, 0.99973, 1.02572, 0.99973, 1.00005,
+ 0.99973, 0.99924, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977,
+ 0.99973, 0.99999, 0.9998, 0.99973, 1.00022, 0.99973, 1.00022,
+ 0.99973, 1.00022, 0.99973, 1, 1.00016, 0.99977, 0.99998, 0.99977,
+ 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1, 1.00001, 1,
+ 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.84533, 1.00026, 1.0006,
+ 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977,
+ 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977,
+ 1.00001, 1, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924,
+ 0.99973, 1.00001, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 1,
+ 1.00026, 1.0006, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,
+ 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99928, 1,
+ 0.99977, 1.00013, 1.00055, 0.99947, 0.99945, 0.99941, 0.99924,
+ 1.00001, 1.00001, 1.0004, 0.91621, 1.00001, 1.00026, 0.99977,
+ 1.00022, 1.0006, 1.00001, 1.00005, 0.99999, 0.99977, 1.00015,
+ 1.00022, 0.99977, 1.00001, 0.99973, 1.00026, 1.00001, 1.00019,
+ 1.00001, 0.99946, 1, 1.0006, 1.00001, 0.99978, 1.00045, 0.99973,
+ 0.99924, 1.00023, 0.99978, 0.99966, 1, 1.00065, 1.00045, 1.00019,
+ 0.99973, 0.99973, 0.99924, 1, 1, 0.96499, 1, 1.00055, 0.99973,
+ 1.00008, 1.00027, 1, 0.9997, 0.99995, 1.00023, 0.99933, 1.00019,
+ 1.00015, 1.00031, 0.99924, 1.00023, 0.99973, 1.00023, 1.00031,
+ 1.00001, 0.99928, 1.00029, 1.00092, 1.00035, 1.00001, 1.0006,
+ 1.0006, 1, 0.99988, 0.99975, 1, 1.00082, 0.99561, 0.9996, 1.00035,
+ 1.00001, 0.99962, 1.00001, 1.00092, 0.99964, 1.00001, 0.99963,
+ 0.99999, 1.00035, 1.00035, 1.00082, 0.99962, 0.99999, 0.99977,
+ 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.9996, 0.99967,
+ 1.00001, 1.00034, 1.00074, 1.00054, 1.00053, 1.00063, 0.99971,
+ 0.99962, 1.00035, 0.99975, 0.99977, 0.99973, 1.00043, 0.99953,
+ 1.0007, 0.99915, 0.99973, 1.00008, 0.99892, 1.00073, 1.00073,
+ 1.00114, 0.99915, 1.00073, 0.99955, 0.99973, 1.00092, 0.99973, 1,
+ 0.99998, 1, 1.0003, 1, 1.00043, 1.00001, 0.99969, 1.0003, 1,
+ 1.00035, 1.00001, 0.9995, 1, 1.00092, 0.99973, 0.99973, 0.99973,
+ 1.0007, 0.9995, 1, 0.99924, 1.0006, 0.99924, 0.99972, 1.00062,
+ 0.99973, 1.00114, 1.00073, 1, 0.99955, 1, 1, 1.00047, 0.99968,
+ 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977, 1.00001, 1, 1,
+ 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924,
+ 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267,
+ 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973,
+ 1.00023, 0.99973, 0.99971, 0.99925, 1.00023, 1, 0.99991, 0.99984,
+ 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.96329, 1,
+ 1.20985, 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027,
+ 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003,
+ 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
+ 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625,
+ 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026,
+ 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977,
+ 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ ];
+ t.HelveticaRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 };
+ },
+ (e, t) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.LiberationSansRegularWidths =
+ t.LiberationSansRegularMapping =
+ t.LiberationSansItalicWidths =
+ t.LiberationSansItalicMapping =
+ t.LiberationSansBoldWidths =
+ t.LiberationSansBoldMapping =
+ t.LiberationSansBoldItalicWidths =
+ t.LiberationSansBoldItalicMapping =
+ void 0;
+ t.LiberationSansBoldWidths = [
+ 365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389,
+ 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556,
+ 556, 556, 333, 333, 584, 584, 584, 611, 975, 722, 722, 722, 722,
+ 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, 667, 778,
+ 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584,
+ 556, 333, 556, 611, 556, 611, 556, 333, 611, 611, 278, 278, 556,
+ 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, 556,
+ 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556,
+ 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576,
+ 556, 278, 333, 333, 365, 556, 834, 834, 834, 611, 722, 722, 722,
+ 722, 722, 722, 1e3, 722, 667, 667, 667, 667, 278, 278, 278, 278,
+ 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722,
+ 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556,
+ 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611, 611, 611,
+ 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556,
+ 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 719, 722,
+ 611, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611,
+ 778, 611, 778, 611, 778, 611, 722, 611, 722, 611, 278, 278, 278,
+ 278, 278, 278, 278, 278, 278, 278, 785, 556, 556, 278, 722, 556,
+ 556, 611, 278, 611, 278, 611, 385, 611, 479, 611, 278, 722, 611,
+ 722, 611, 722, 611, 708, 723, 611, 778, 611, 778, 611, 778, 611,
+ 1e3, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556, 667,
+ 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611,
+ 722, 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667,
+ 611, 500, 611, 500, 611, 500, 278, 556, 722, 556, 1e3, 889, 778,
+ 611, 667, 556, 611, 333, 333, 333, 333, 333, 333, 333, 333, 333,
+ 333, 333, 465, 722, 333, 853, 906, 474, 825, 927, 838, 278, 722,
+ 722, 601, 719, 667, 611, 722, 778, 278, 722, 667, 833, 722, 644,
+ 778, 722, 667, 600, 611, 667, 821, 667, 809, 802, 278, 667, 615,
+ 451, 611, 278, 582, 615, 610, 556, 606, 475, 460, 611, 541, 278,
+ 558, 556, 612, 556, 445, 611, 766, 619, 520, 684, 446, 582, 715,
+ 576, 753, 845, 278, 582, 611, 582, 845, 667, 669, 885, 567, 711,
+ 667, 278, 276, 556, 1094, 1062, 875, 610, 722, 622, 719, 722, 719,
+ 722, 567, 712, 667, 904, 626, 719, 719, 610, 702, 833, 722, 778,
+ 719, 667, 722, 611, 622, 854, 667, 730, 703, 1005, 1019, 870, 979,
+ 719, 711, 1031, 719, 556, 618, 615, 417, 635, 556, 709, 497, 615,
+ 615, 500, 635, 740, 604, 611, 604, 611, 556, 490, 556, 875, 556,
+ 615, 581, 833, 844, 729, 854, 615, 552, 854, 583, 556, 556, 611,
+ 417, 552, 556, 278, 281, 278, 969, 906, 611, 500, 615, 556, 604,
+ 778, 611, 487, 447, 944, 778, 944, 778, 944, 778, 667, 556, 333,
+ 333, 556, 1e3, 1e3, 552, 278, 278, 278, 278, 500, 500, 500, 556,
+ 556, 350, 1e3, 1e3, 240, 479, 333, 333, 604, 333, 167, 396, 556,
+ 556, 1094, 556, 885, 489, 1115, 1e3, 768, 600, 834, 834, 834, 834,
+ 1e3, 500, 1e3, 500, 1e3, 500, 500, 494, 612, 823, 713, 584, 549,
+ 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,
+ 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+ 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+ 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+ 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354,
+ 1e3, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052,
+ 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 611, 611, 333,
+ 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333, 333,
+ 333, 333, 333, 333,
+ ];
+ t.LiberationSansBoldMapping = [
+ -1, -1, -1, 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, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
+ 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
+ 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
+ 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
+ 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
+ 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
+ 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
+ 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537,
+ 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901,
+ 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916,
+ 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929,
+ 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943,
+ 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956,
+ 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969,
+ 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,
+ 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
+ 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052,
+ 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
+ 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074,
+ 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085,
+ 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096,
+ 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107,
+ 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118,
+ 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813,
+ 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218,
+ 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243,
+ 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453,
+ 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,
+ 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730,
+ 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976,
+ 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516,
+ 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560,
+ 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571,
+ 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604,
+ 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644,
+ 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786,
+ 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836,
+ 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1,
+ ];
+ t.LiberationSansBoldItalicWidths = [
+ 365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389,
+ 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556,
+ 556, 556, 333, 333, 584, 584, 584, 611, 975, 722, 722, 722, 722,
+ 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, 667, 778,
+ 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584,
+ 556, 333, 556, 611, 556, 611, 556, 333, 611, 611, 278, 278, 556,
+ 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, 556,
+ 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556,
+ 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576,
+ 556, 278, 333, 333, 365, 556, 834, 834, 834, 611, 722, 722, 722,
+ 722, 722, 722, 1e3, 722, 667, 667, 667, 667, 278, 278, 278, 278,
+ 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722,
+ 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556,
+ 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611, 611, 611,
+ 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556,
+ 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 740, 722,
+ 611, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611,
+ 778, 611, 778, 611, 778, 611, 722, 611, 722, 611, 278, 278, 278,
+ 278, 278, 278, 278, 278, 278, 278, 782, 556, 556, 278, 722, 556,
+ 556, 611, 278, 611, 278, 611, 396, 611, 479, 611, 278, 722, 611,
+ 722, 611, 722, 611, 708, 723, 611, 778, 611, 778, 611, 778, 611,
+ 1e3, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556, 667,
+ 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611,
+ 722, 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667,
+ 611, 500, 611, 500, 611, 500, 278, 556, 722, 556, 1e3, 889, 778,
+ 611, 667, 556, 611, 333, 333, 333, 333, 333, 333, 333, 333, 333,
+ 333, 333, 333, 722, 333, 854, 906, 473, 844, 930, 847, 278, 722,
+ 722, 610, 671, 667, 611, 722, 778, 278, 722, 667, 833, 722, 657,
+ 778, 718, 667, 590, 611, 667, 822, 667, 829, 781, 278, 667, 620,
+ 479, 611, 278, 591, 620, 621, 556, 610, 479, 492, 611, 558, 278,
+ 566, 556, 603, 556, 450, 611, 712, 605, 532, 664, 409, 591, 704,
+ 578, 773, 834, 278, 591, 611, 591, 834, 667, 667, 886, 614, 719,
+ 667, 278, 278, 556, 1094, 1042, 854, 622, 719, 677, 719, 722, 708,
+ 722, 614, 722, 667, 927, 643, 719, 719, 615, 687, 833, 722, 778,
+ 719, 667, 722, 611, 677, 781, 667, 729, 708, 979, 989, 854, 1e3,
+ 708, 719, 1042, 729, 556, 619, 604, 534, 618, 556, 736, 510, 611,
+ 611, 507, 622, 740, 604, 611, 611, 611, 556, 889, 556, 885, 556,
+ 646, 583, 889, 935, 707, 854, 594, 552, 865, 589, 556, 556, 611,
+ 469, 563, 556, 278, 278, 278, 969, 906, 611, 507, 619, 556, 611,
+ 778, 611, 575, 467, 944, 778, 944, 778, 944, 778, 667, 556, 333,
+ 333, 556, 1e3, 1e3, 552, 278, 278, 278, 278, 500, 500, 500, 556,
+ 556, 350, 1e3, 1e3, 240, 479, 333, 333, 604, 333, 167, 396, 556,
+ 556, 1104, 556, 885, 516, 1146, 1e3, 768, 600, 834, 834, 834, 834,
+ 999, 500, 1e3, 500, 1e3, 500, 500, 494, 612, 823, 713, 584, 549,
+ 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,
+ 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+ 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+ 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+ 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354,
+ 1e3, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052,
+ 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 611, 611, 333,
+ 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333, 333,
+ 333, 333, 333, 333,
+ ];
+ t.LiberationSansBoldItalicMapping = [
+ -1, -1, -1, 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, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
+ 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
+ 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
+ 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
+ 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
+ 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
+ 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
+ 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537,
+ 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901,
+ 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916,
+ 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929,
+ 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943,
+ 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956,
+ 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969,
+ 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,
+ 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
+ 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052,
+ 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
+ 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074,
+ 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085,
+ 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096,
+ 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107,
+ 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118,
+ 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813,
+ 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218,
+ 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243,
+ 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453,
+ 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,
+ 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730,
+ 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976,
+ 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516,
+ 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560,
+ 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571,
+ 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604,
+ 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644,
+ 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786,
+ 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836,
+ 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1,
+ ];
+ t.LiberationSansItalicWidths = [
+ 365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389,
+ 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556,
+ 556, 556, 278, 278, 584, 584, 584, 556, 1015, 667, 667, 722, 722,
+ 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, 667, 778,
+ 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469,
+ 556, 333, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500,
+ 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, 500,
+ 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556,
+ 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576,
+ 537, 278, 333, 333, 365, 556, 834, 834, 834, 611, 667, 667, 667,
+ 667, 667, 667, 1e3, 722, 667, 667, 667, 667, 278, 278, 278, 278,
+ 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722,
+ 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556,
+ 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556, 556, 556,
+ 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556,
+ 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 625, 722,
+ 556, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556,
+ 778, 556, 778, 556, 778, 556, 722, 556, 722, 556, 278, 278, 278,
+ 278, 278, 278, 278, 222, 278, 278, 733, 444, 500, 222, 667, 500,
+ 500, 556, 222, 556, 222, 556, 281, 556, 400, 556, 222, 722, 556,
+ 722, 556, 722, 556, 615, 723, 556, 778, 556, 778, 556, 778, 556,
+ 1e3, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500, 667,
+ 500, 667, 500, 611, 278, 611, 354, 611, 278, 722, 556, 722, 556,
+ 722, 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667,
+ 611, 500, 611, 500, 611, 500, 222, 556, 667, 556, 1e3, 889, 778,
+ 611, 667, 500, 611, 278, 333, 333, 333, 333, 333, 333, 333, 333,
+ 333, 333, 333, 667, 278, 789, 846, 389, 794, 865, 775, 222, 667,
+ 667, 570, 671, 667, 611, 722, 778, 278, 667, 667, 833, 722, 648,
+ 778, 725, 667, 600, 611, 667, 837, 667, 831, 761, 278, 667, 570,
+ 439, 555, 222, 550, 570, 571, 500, 556, 439, 463, 555, 542, 222,
+ 500, 492, 548, 500, 447, 556, 670, 573, 486, 603, 374, 550, 652,
+ 546, 728, 779, 222, 550, 556, 550, 779, 667, 667, 843, 544, 708,
+ 667, 278, 278, 500, 1066, 982, 844, 589, 715, 639, 724, 667, 651,
+ 667, 544, 704, 667, 917, 614, 715, 715, 589, 686, 833, 722, 778,
+ 725, 667, 722, 611, 639, 795, 667, 727, 673, 920, 923, 805, 886,
+ 651, 694, 1022, 682, 556, 562, 522, 493, 553, 556, 688, 465, 556,
+ 556, 472, 564, 686, 550, 556, 556, 556, 500, 833, 500, 835, 500,
+ 572, 518, 830, 851, 621, 736, 526, 492, 752, 534, 556, 556, 556,
+ 378, 496, 500, 222, 222, 222, 910, 828, 556, 472, 565, 500, 556,
+ 778, 556, 492, 339, 944, 722, 944, 722, 944, 722, 667, 500, 333,
+ 333, 556, 1e3, 1e3, 552, 222, 222, 222, 222, 333, 333, 333, 556,
+ 556, 350, 1e3, 1e3, 188, 354, 333, 333, 500, 333, 167, 365, 556,
+ 556, 1094, 556, 885, 323, 1083, 1e3, 768, 600, 834, 834, 834, 834,
+ 1e3, 500, 998, 500, 1e3, 500, 500, 494, 612, 823, 713, 584, 549,
+ 713, 979, 719, 274, 549, 549, 584, 549, 549, 604, 584, 604, 604,
+ 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+ 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+ 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+ 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354,
+ 1e3, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052,
+ 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 500, 500, 333,
+ 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324, 324,
+ 316, 328, 398, 285,
+ ];
+ t.LiberationSansItalicMapping = [
+ -1, -1, -1, 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, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
+ 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
+ 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
+ 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
+ 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
+ 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
+ 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
+ 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537,
+ 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901,
+ 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916,
+ 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929,
+ 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943,
+ 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956,
+ 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969,
+ 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,
+ 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
+ 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052,
+ 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
+ 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074,
+ 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085,
+ 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096,
+ 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107,
+ 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118,
+ 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813,
+ 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218,
+ 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243,
+ 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453,
+ 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,
+ 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730,
+ 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976,
+ 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516,
+ 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560,
+ 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571,
+ 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604,
+ 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644,
+ 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786,
+ 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836,
+ 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1,
+ ];
+ t.LiberationSansRegularWidths = [
+ 365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389,
+ 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556,
+ 556, 556, 278, 278, 584, 584, 584, 556, 1015, 667, 667, 722, 722,
+ 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, 667, 778,
+ 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469,
+ 556, 333, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500,
+ 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, 500,
+ 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556,
+ 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576,
+ 537, 278, 333, 333, 365, 556, 834, 834, 834, 611, 667, 667, 667,
+ 667, 667, 667, 1e3, 722, 667, 667, 667, 667, 278, 278, 278, 278,
+ 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722,
+ 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556,
+ 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556, 556, 556,
+ 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556,
+ 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 615, 722,
+ 556, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556,
+ 778, 556, 778, 556, 778, 556, 722, 556, 722, 556, 278, 278, 278,
+ 278, 278, 278, 278, 222, 278, 278, 735, 444, 500, 222, 667, 500,
+ 500, 556, 222, 556, 222, 556, 292, 556, 334, 556, 222, 722, 556,
+ 722, 556, 722, 556, 604, 723, 556, 778, 556, 778, 556, 778, 556,
+ 1e3, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500, 667,
+ 500, 667, 500, 611, 278, 611, 375, 611, 278, 722, 556, 722, 556,
+ 722, 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667,
+ 611, 500, 611, 500, 611, 500, 222, 556, 667, 556, 1e3, 889, 778,
+ 611, 667, 500, 611, 278, 333, 333, 333, 333, 333, 333, 333, 333,
+ 333, 333, 333, 667, 278, 784, 838, 384, 774, 855, 752, 222, 667,
+ 667, 551, 668, 667, 611, 722, 778, 278, 667, 668, 833, 722, 650,
+ 778, 722, 667, 618, 611, 667, 798, 667, 835, 748, 278, 667, 578,
+ 446, 556, 222, 547, 578, 575, 500, 557, 446, 441, 556, 556, 222,
+ 500, 500, 576, 500, 448, 556, 690, 569, 482, 617, 395, 547, 648,
+ 525, 713, 781, 222, 547, 556, 547, 781, 667, 667, 865, 542, 719,
+ 667, 278, 278, 500, 1057, 1010, 854, 583, 722, 635, 719, 667, 656,
+ 667, 542, 677, 667, 923, 604, 719, 719, 583, 656, 833, 722, 778,
+ 719, 667, 722, 611, 635, 760, 667, 740, 667, 917, 938, 792, 885,
+ 656, 719, 1010, 722, 556, 573, 531, 365, 583, 556, 669, 458, 559,
+ 559, 438, 583, 688, 552, 556, 542, 556, 500, 458, 500, 823, 500,
+ 573, 521, 802, 823, 625, 719, 521, 510, 750, 542, 556, 556, 556,
+ 365, 510, 500, 222, 278, 222, 906, 812, 556, 438, 559, 500, 552,
+ 778, 556, 489, 411, 944, 722, 944, 722, 944, 722, 667, 500, 333,
+ 333, 556, 1e3, 1e3, 552, 222, 222, 222, 222, 333, 333, 333, 556,
+ 556, 350, 1e3, 1e3, 188, 354, 333, 333, 500, 333, 167, 365, 556,
+ 556, 1094, 556, 885, 323, 1073, 1e3, 768, 600, 834, 834, 834, 834,
+ 1e3, 500, 1e3, 500, 1e3, 500, 500, 494, 612, 823, 713, 584, 549,
+ 713, 979, 719, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,
+ 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+ 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+ 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+ 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354,
+ 1e3, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052,
+ 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 500, 500, 333,
+ 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324, 324,
+ 316, 328, 398, 285,
+ ];
+ t.LiberationSansRegularMapping = [
+ -1, -1, -1, 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, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
+ 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
+ 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
+ 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
+ 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
+ 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
+ 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
+ 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537,
+ 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901,
+ 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916,
+ 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929,
+ 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943,
+ 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956,
+ 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969,
+ 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,
+ 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
+ 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052,
+ 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
+ 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074,
+ 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085,
+ 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096,
+ 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107,
+ 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118,
+ 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813,
+ 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218,
+ 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243,
+ 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453,
+ 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,
+ 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730,
+ 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976,
+ 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516,
+ 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560,
+ 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571,
+ 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604,
+ 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644,
+ 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786,
+ 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836,
+ 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1,
+ ];
+ },
+ (e, t) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.MyriadProRegularMetrics =
+ t.MyriadProRegularFactors =
+ t.MyriadProItalicMetrics =
+ t.MyriadProItalicFactors =
+ t.MyriadProBoldMetrics =
+ t.MyriadProBoldItalicMetrics =
+ t.MyriadProBoldItalicFactors =
+ t.MyriadProBoldFactors =
+ void 0;
+ t.MyriadProBoldFactors = [
+ 1.36898, 1, 1, 0.72706, 0.80479, 0.83734, 0.98894, 0.99793, 0.9897,
+ 0.93884, 0.86209, 0.94292, 0.94292, 1.16661, 1.02058, 0.93582,
+ 0.96694, 0.93582, 1.19137, 0.99793, 0.99793, 0.99793, 0.99793,
+ 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.78076,
+ 0.78076, 1.02058, 1.02058, 1.02058, 0.72851, 0.78966, 0.90838,
+ 0.83637, 0.82391, 0.96376, 0.80061, 0.86275, 0.8768, 0.95407,
+ 1.0258, 0.73901, 0.85022, 0.83655, 1.0156, 0.95546, 0.92179,
+ 0.87107, 0.92179, 0.82114, 0.8096, 0.89713, 0.94438, 0.95353,
+ 0.94083, 0.91905, 0.90406, 0.9446, 0.94292, 1.18777, 0.94292,
+ 1.02058, 0.89903, 0.90088, 0.94938, 0.97898, 0.81093, 0.97571,
+ 0.94938, 1.024, 0.9577, 0.95933, 0.98621, 1.0474, 0.97455, 0.98981,
+ 0.9672, 0.95933, 0.9446, 0.97898, 0.97407, 0.97646, 0.78036,
+ 1.10208, 0.95442, 0.95298, 0.97579, 0.9332, 0.94039, 0.938, 0.80687,
+ 1.01149, 0.80687, 1.02058, 0.80479, 0.99793, 0.99793, 0.99793,
+ 0.99793, 1.01149, 1.00872, 0.90088, 0.91882, 1.0213, 0.8361,
+ 1.02058, 0.62295, 0.54324, 0.89022, 1.08595, 1, 1, 0.90088, 1,
+ 0.97455, 0.93582, 0.90088, 1, 1.05686, 0.8361, 0.99642, 0.99642,
+ 0.99642, 0.72851, 0.90838, 0.90838, 0.90838, 0.90838, 0.90838,
+ 0.90838, 0.868, 0.82391, 0.80061, 0.80061, 0.80061, 0.80061, 1.0258,
+ 1.0258, 1.0258, 1.0258, 0.97484, 0.95546, 0.92179, 0.92179, 0.92179,
+ 0.92179, 0.92179, 1.02058, 0.92179, 0.94438, 0.94438, 0.94438,
+ 0.94438, 0.90406, 0.86958, 0.98225, 0.94938, 0.94938, 0.94938,
+ 0.94938, 0.94938, 0.94938, 0.9031, 0.81093, 0.94938, 0.94938,
+ 0.94938, 0.94938, 0.98621, 0.98621, 0.98621, 0.98621, 0.93969,
+ 0.95933, 0.9446, 0.9446, 0.9446, 0.9446, 0.9446, 1.08595, 0.9446,
+ 0.95442, 0.95442, 0.95442, 0.95442, 0.94039, 0.97898, 0.94039,
+ 0.90838, 0.94938, 0.90838, 0.94938, 0.90838, 0.94938, 0.82391,
+ 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093,
+ 0.96376, 0.84313, 0.97484, 0.97571, 0.80061, 0.94938, 0.80061,
+ 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938,
+ 0.8768, 0.9577, 0.8768, 0.9577, 0.8768, 0.9577, 1, 1, 0.95407,
+ 0.95933, 0.97069, 0.95933, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258,
+ 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 0.887, 1.01591, 0.73901,
+ 1.0474, 1, 1, 0.97455, 0.83655, 0.98981, 1, 1, 0.83655, 0.73977,
+ 0.83655, 0.73903, 0.84638, 1.033, 0.95546, 0.95933, 1, 1, 0.95546,
+ 0.95933, 0.8271, 0.95417, 0.95933, 0.92179, 0.9446, 0.92179, 0.9446,
+ 0.92179, 0.9446, 0.936, 0.91964, 0.82114, 0.97646, 1, 1, 0.82114,
+ 0.97646, 0.8096, 0.78036, 0.8096, 0.78036, 1, 1, 0.8096, 0.78036, 1,
+ 1, 0.89713, 0.77452, 0.89713, 1.10208, 0.94438, 0.95442, 0.94438,
+ 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442,
+ 0.94438, 0.95442, 0.94083, 0.97579, 0.90406, 0.94039, 0.90406,
+ 0.9446, 0.938, 0.9446, 0.938, 0.9446, 0.938, 1, 0.99793, 0.90838,
+ 0.94938, 0.868, 0.9031, 0.92179, 0.9446, 1, 1, 0.89713, 1.10208,
+ 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088,
+ 0.90088, 0.90088, 0.90989, 0.9358, 0.91945, 0.83181, 0.75261,
+ 0.87992, 0.82976, 0.96034, 0.83689, 0.97268, 1.0078, 0.90838,
+ 0.83637, 0.8019, 0.90157, 0.80061, 0.9446, 0.95407, 0.92436, 1.0258,
+ 0.85022, 0.97153, 1.0156, 0.95546, 0.89192, 0.92179, 0.92361,
+ 0.87107, 0.96318, 0.89713, 0.93704, 0.95638, 0.91905, 0.91709,
+ 0.92796, 1.0258, 0.93704, 0.94836, 1.0373, 0.95933, 1.0078, 0.95871,
+ 0.94836, 0.96174, 0.92601, 0.9498, 0.98607, 0.95776, 0.95933,
+ 1.05453, 1.0078, 0.98275, 0.9314, 0.95617, 0.91701, 1.05993, 0.9446,
+ 0.78367, 0.9553, 1, 0.86832, 1.0128, 0.95871, 0.99394, 0.87548,
+ 0.96361, 0.86774, 1.0078, 0.95871, 0.9446, 0.95871, 0.86774, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 0.94083, 0.97579, 0.94083, 0.97579, 0.94083,
+ 0.97579, 0.90406, 0.94039, 0.96694, 1, 0.89903, 1, 1, 1, 0.93582,
+ 0.93582, 0.93582, 1, 0.908, 0.908, 0.918, 0.94219, 0.94219, 0.96544,
+ 1, 1.285, 1, 1, 0.81079, 0.81079, 1, 1, 0.74854, 1, 1, 1, 1,
+ 0.99793, 1, 1, 1, 0.65, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1.17173, 1, 0.80535, 0.76169, 1.02058, 1.0732, 1.05486, 1, 1,
+ 1.30692, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1.16161, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1,
+ ];
+ t.MyriadProBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 };
+ t.MyriadProBoldItalicFactors = [
+ 1.36898, 1, 1, 0.66227, 0.80779, 0.81625, 0.97276, 0.97276, 0.97733,
+ 0.92222, 0.83266, 0.94292, 0.94292, 1.16148, 1.02058, 0.93582,
+ 0.96694, 0.93582, 1.17337, 0.97276, 0.97276, 0.97276, 0.97276,
+ 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.78076,
+ 0.78076, 1.02058, 1.02058, 1.02058, 0.71541, 0.76813, 0.85576,
+ 0.80591, 0.80729, 0.94299, 0.77512, 0.83655, 0.86523, 0.92222,
+ 0.98621, 0.71743, 0.81698, 0.79726, 0.98558, 0.92222, 0.90637,
+ 0.83809, 0.90637, 0.80729, 0.76463, 0.86275, 0.90699, 0.91605,
+ 0.9154, 0.85308, 0.85458, 0.90531, 0.94292, 1.21296, 0.94292,
+ 1.02058, 0.89903, 1.18616, 0.99613, 0.91677, 0.78216, 0.91677,
+ 0.90083, 0.98796, 0.9135, 0.92168, 0.95381, 0.98981, 0.95298,
+ 0.95381, 0.93459, 0.92168, 0.91513, 0.92004, 0.91677, 0.95077,
+ 0.748, 1.04502, 0.91677, 0.92061, 0.94236, 0.89544, 0.89364, 0.9,
+ 0.80687, 0.8578, 0.80687, 1.02058, 0.80779, 0.97276, 0.97276,
+ 0.97276, 0.97276, 0.8578, 0.99973, 1.18616, 0.91339, 1.08074,
+ 0.82891, 1.02058, 0.55509, 0.71526, 0.89022, 1.08595, 1, 1, 1.18616,
+ 1, 0.96736, 0.93582, 1.18616, 1, 1.04864, 0.82711, 0.99043, 0.99043,
+ 0.99043, 0.71541, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576,
+ 0.85576, 0.845, 0.80729, 0.77512, 0.77512, 0.77512, 0.77512,
+ 0.98621, 0.98621, 0.98621, 0.98621, 0.95961, 0.92222, 0.90637,
+ 0.90637, 0.90637, 0.90637, 0.90637, 1.02058, 0.90251, 0.90699,
+ 0.90699, 0.90699, 0.90699, 0.85458, 0.83659, 0.94951, 0.99613,
+ 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.85811, 0.78216,
+ 0.90083, 0.90083, 0.90083, 0.90083, 0.95381, 0.95381, 0.95381,
+ 0.95381, 0.9135, 0.92168, 0.91513, 0.91513, 0.91513, 0.91513,
+ 0.91513, 1.08595, 0.91677, 0.91677, 0.91677, 0.91677, 0.91677,
+ 0.89364, 0.92332, 0.89364, 0.85576, 0.99613, 0.85576, 0.99613,
+ 0.85576, 0.99613, 0.80729, 0.78216, 0.80729, 0.78216, 0.80729,
+ 0.78216, 0.80729, 0.78216, 0.94299, 0.76783, 0.95961, 0.91677,
+ 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512,
+ 0.90083, 0.77512, 0.90083, 0.86523, 0.9135, 0.86523, 0.9135,
+ 0.86523, 0.9135, 1, 1, 0.92222, 0.92168, 0.92222, 0.92168, 0.98621,
+ 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381,
+ 0.98621, 0.95381, 0.86036, 0.97096, 0.71743, 0.98981, 1, 1, 0.95298,
+ 0.79726, 0.95381, 1, 1, 0.79726, 0.6894, 0.79726, 0.74321, 0.81691,
+ 1.0006, 0.92222, 0.92168, 1, 1, 0.92222, 0.92168, 0.79464, 0.92098,
+ 0.92168, 0.90637, 0.91513, 0.90637, 0.91513, 0.90637, 0.91513,
+ 0.909, 0.87514, 0.80729, 0.95077, 1, 1, 0.80729, 0.95077, 0.76463,
+ 0.748, 0.76463, 0.748, 1, 1, 0.76463, 0.748, 1, 1, 0.86275, 0.72651,
+ 0.86275, 1.04502, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699,
+ 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677,
+ 0.9154, 0.94236, 0.85458, 0.89364, 0.85458, 0.90531, 0.9, 0.90531,
+ 0.9, 0.90531, 0.9, 1, 0.97276, 0.85576, 0.99613, 0.845, 0.85811,
+ 0.90251, 0.91677, 1, 1, 0.86275, 1.04502, 1.18616, 1.18616, 1.18616,
+ 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.00899,
+ 1.30628, 0.85576, 0.80178, 0.66862, 0.7927, 0.69323, 0.88127,
+ 0.72459, 0.89711, 0.95381, 0.85576, 0.80591, 0.7805, 0.94729,
+ 0.77512, 0.90531, 0.92222, 0.90637, 0.98621, 0.81698, 0.92655,
+ 0.98558, 0.92222, 0.85359, 0.90637, 0.90976, 0.83809, 0.94523,
+ 0.86275, 0.83509, 0.93157, 0.85308, 0.83392, 0.92346, 0.98621,
+ 0.83509, 0.92886, 0.91324, 0.92168, 0.95381, 0.90646, 0.92886,
+ 0.90557, 0.86847, 0.90276, 0.91324, 0.86842, 0.92168, 0.99531,
+ 0.95381, 0.9224, 0.85408, 0.92699, 0.86847, 1.0051, 0.91513,
+ 0.80487, 0.93481, 1, 0.88159, 1.05214, 0.90646, 0.97355, 0.81539,
+ 0.89398, 0.85923, 0.95381, 0.90646, 0.91513, 0.90646, 0.85923, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 0.9154, 0.94236, 0.9154, 0.94236, 0.9154, 0.94236,
+ 0.85458, 0.89364, 0.96694, 1, 0.89903, 1, 1, 1, 0.91782, 0.91782,
+ 0.91782, 1, 0.896, 0.896, 0.896, 0.9332, 0.9332, 0.95973, 1, 1.26,
+ 1, 1, 0.80479, 0.80178, 1, 1, 0.85633, 1, 1, 1, 1, 0.97276, 1, 1, 1,
+ 0.698, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.14542, 1,
+ 0.79199, 0.78694, 1.02058, 1.03493, 1.05486, 1, 1, 1.23026, 1.08595,
+ 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1.20006, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ ];
+ t.MyriadProBoldItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 };
+ t.MyriadProItalicFactors = [
+ 1.36898, 1, 1, 0.65507, 0.84943, 0.85639, 0.88465, 0.88465, 0.86936,
+ 0.88307, 0.86948, 0.85283, 0.85283, 1.06383, 1.02058, 0.75945,
+ 0.9219, 0.75945, 1.17337, 0.88465, 0.88465, 0.88465, 0.88465,
+ 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.75945,
+ 0.75945, 1.02058, 1.02058, 1.02058, 0.69046, 0.70926, 0.85158,
+ 0.77812, 0.76852, 0.89591, 0.70466, 0.76125, 0.80094, 0.86822,
+ 0.83864, 0.728, 0.77212, 0.79475, 0.93637, 0.87514, 0.8588, 0.76013,
+ 0.8588, 0.72421, 0.69866, 0.77598, 0.85991, 0.80811, 0.87832,
+ 0.78112, 0.77512, 0.8562, 1.0222, 1.18417, 1.0222, 1.27014, 0.89903,
+ 1.15012, 0.93859, 0.94399, 0.846, 0.94399, 0.81453, 1.0186, 0.94219,
+ 0.96017, 1.03075, 1.02175, 0.912, 1.03075, 0.96998, 0.96017,
+ 0.93859, 0.94399, 0.94399, 0.95493, 0.746, 1.12658, 0.94578, 0.91,
+ 0.979, 0.882, 0.882, 0.83, 0.85034, 0.83537, 0.85034, 1.02058,
+ 0.70869, 0.88465, 0.88465, 0.88465, 0.88465, 0.83537, 0.90083,
+ 1.15012, 0.9161, 0.94565, 0.73541, 1.02058, 0.53609, 0.69353,
+ 0.79519, 1.08595, 1, 1, 1.15012, 1, 0.91974, 0.75945, 1.15012, 1,
+ 0.9446, 0.73361, 0.9005, 0.9005, 0.9005, 0.62864, 0.85158, 0.85158,
+ 0.85158, 0.85158, 0.85158, 0.85158, 0.773, 0.76852, 0.70466,
+ 0.70466, 0.70466, 0.70466, 0.83864, 0.83864, 0.83864, 0.83864,
+ 0.90561, 0.87514, 0.8588, 0.8588, 0.8588, 0.8588, 0.8588, 1.02058,
+ 0.85751, 0.85991, 0.85991, 0.85991, 0.85991, 0.77512, 0.76013,
+ 0.88075, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859,
+ 0.8075, 0.846, 0.81453, 0.81453, 0.81453, 0.81453, 0.82424, 0.82424,
+ 0.82424, 0.82424, 0.9278, 0.96017, 0.93859, 0.93859, 0.93859,
+ 0.93859, 0.93859, 1.08595, 0.8562, 0.94578, 0.94578, 0.94578,
+ 0.94578, 0.882, 0.94578, 0.882, 0.85158, 0.93859, 0.85158, 0.93859,
+ 0.85158, 0.93859, 0.76852, 0.846, 0.76852, 0.846, 0.76852, 0.846,
+ 0.76852, 0.846, 0.89591, 0.8544, 0.90561, 0.94399, 0.70466, 0.81453,
+ 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466,
+ 0.81453, 0.80094, 0.94219, 0.80094, 0.94219, 0.80094, 0.94219, 1, 1,
+ 0.86822, 0.96017, 0.86822, 0.96017, 0.83864, 0.82424, 0.83864,
+ 0.82424, 0.83864, 0.82424, 0.83864, 1.03075, 0.83864, 0.82424,
+ 0.81402, 1.02738, 0.728, 1.02175, 1, 1, 0.912, 0.79475, 1.03075, 1,
+ 1, 0.79475, 0.83911, 0.79475, 0.66266, 0.80553, 1.06676, 0.87514,
+ 0.96017, 1, 1, 0.87514, 0.96017, 0.86865, 0.87396, 0.96017, 0.8588,
+ 0.93859, 0.8588, 0.93859, 0.8588, 0.93859, 0.867, 0.84759, 0.72421,
+ 0.95493, 1, 1, 0.72421, 0.95493, 0.69866, 0.746, 0.69866, 0.746, 1,
+ 1, 0.69866, 0.746, 1, 1, 0.77598, 0.88417, 0.77598, 1.12658,
+ 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991,
+ 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.87832, 0.979,
+ 0.77512, 0.882, 0.77512, 0.8562, 0.83, 0.8562, 0.83, 0.8562, 0.83,
+ 1, 0.88465, 0.85158, 0.93859, 0.773, 0.8075, 0.85751, 0.8562, 1, 1,
+ 0.77598, 1.12658, 1.15012, 1.15012, 1.15012, 1.15012, 1.15012,
+ 1.15313, 1.15012, 1.15012, 1.15012, 1.08106, 1.03901, 0.85158,
+ 0.77025, 0.62264, 0.7646, 0.65351, 0.86026, 0.69461, 0.89947,
+ 1.03075, 0.85158, 0.77812, 0.76449, 0.88836, 0.70466, 0.8562,
+ 0.86822, 0.8588, 0.83864, 0.77212, 0.85308, 0.93637, 0.87514,
+ 0.82352, 0.8588, 0.85701, 0.76013, 0.89058, 0.77598, 0.8156,
+ 0.82565, 0.78112, 0.77899, 0.89386, 0.83864, 0.8156, 0.9486,
+ 0.92388, 0.96186, 1.03075, 0.91123, 0.9486, 0.93298, 0.878, 0.93942,
+ 0.92388, 0.84596, 0.96186, 0.95119, 1.03075, 0.922, 0.88787,
+ 0.95829, 0.88, 0.93559, 0.93859, 0.78815, 0.93758, 1, 0.89217,
+ 1.03737, 0.91123, 0.93969, 0.77487, 0.85769, 0.86799, 1.03075,
+ 0.91123, 0.93859, 0.91123, 0.86799, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87832,
+ 0.979, 0.87832, 0.979, 0.87832, 0.979, 0.77512, 0.882, 0.9219, 1,
+ 0.89903, 1, 1, 1, 0.87321, 0.87321, 0.87321, 1, 1.027, 1.027, 1.027,
+ 0.86847, 0.86847, 0.79121, 1, 1.124, 1, 1, 0.73572, 0.73572, 1, 1,
+ 0.85034, 1, 1, 1, 1, 0.88465, 1, 1, 1, 0.669, 1, 1.36145, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1.04828, 1, 0.74948, 0.75187, 1.02058,
+ 0.98391, 1.02119, 1, 1, 1.06233, 1.08595, 1.08595, 1, 1.08595,
+ 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05233, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ ];
+ t.MyriadProItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 };
+ t.MyriadProRegularFactors = [
+ 1.36898, 1, 1, 0.76305, 0.82784, 0.94935, 0.89364, 0.92241, 0.89073,
+ 0.90706, 0.98472, 0.85283, 0.85283, 1.0664, 1.02058, 0.74505,
+ 0.9219, 0.74505, 1.23456, 0.92241, 0.92241, 0.92241, 0.92241,
+ 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.74505,
+ 0.74505, 1.02058, 1.02058, 1.02058, 0.73002, 0.72601, 0.91755,
+ 0.8126, 0.80314, 0.92222, 0.73764, 0.79726, 0.83051, 0.90284,
+ 0.86023, 0.74, 0.8126, 0.84869, 0.96518, 0.91115, 0.8858, 0.79761,
+ 0.8858, 0.74498, 0.73914, 0.81363, 0.89591, 0.83659, 0.89633,
+ 0.85608, 0.8111, 0.90531, 1.0222, 1.22736, 1.0222, 1.27014, 0.89903,
+ 0.90088, 0.86667, 1.0231, 0.896, 1.01411, 0.90083, 1.05099, 1.00512,
+ 0.99793, 1.05326, 1.09377, 0.938, 1.06226, 1.00119, 0.99793,
+ 0.98714, 1.0231, 1.01231, 0.98196, 0.792, 1.19137, 0.99074, 0.962,
+ 1.01915, 0.926, 0.942, 0.856, 0.85034, 0.92006, 0.85034, 1.02058,
+ 0.69067, 0.92241, 0.92241, 0.92241, 0.92241, 0.92006, 0.9332,
+ 0.90088, 0.91882, 0.93484, 0.75339, 1.02058, 0.56866, 0.54324,
+ 0.79519, 1.08595, 1, 1, 0.90088, 1, 0.95325, 0.74505, 0.90088, 1,
+ 0.97198, 0.75339, 0.91009, 0.91009, 0.91009, 0.66466, 0.91755,
+ 0.91755, 0.91755, 0.91755, 0.91755, 0.91755, 0.788, 0.80314,
+ 0.73764, 0.73764, 0.73764, 0.73764, 0.86023, 0.86023, 0.86023,
+ 0.86023, 0.92915, 0.91115, 0.8858, 0.8858, 0.8858, 0.8858, 0.8858,
+ 1.02058, 0.8858, 0.89591, 0.89591, 0.89591, 0.89591, 0.8111,
+ 0.79611, 0.89713, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667,
+ 0.86667, 0.86936, 0.896, 0.90083, 0.90083, 0.90083, 0.90083,
+ 0.84224, 0.84224, 0.84224, 0.84224, 0.97276, 0.99793, 0.98714,
+ 0.98714, 0.98714, 0.98714, 0.98714, 1.08595, 0.89876, 0.99074,
+ 0.99074, 0.99074, 0.99074, 0.942, 1.0231, 0.942, 0.91755, 0.86667,
+ 0.91755, 0.86667, 0.91755, 0.86667, 0.80314, 0.896, 0.80314, 0.896,
+ 0.80314, 0.896, 0.80314, 0.896, 0.92222, 0.93372, 0.92915, 1.01411,
+ 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764,
+ 0.90083, 0.73764, 0.90083, 0.83051, 1.00512, 0.83051, 1.00512,
+ 0.83051, 1.00512, 1, 1, 0.90284, 0.99793, 0.90976, 0.99793, 0.86023,
+ 0.84224, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023, 1.05326,
+ 0.86023, 0.84224, 0.82873, 1.07469, 0.74, 1.09377, 1, 1, 0.938,
+ 0.84869, 1.06226, 1, 1, 0.84869, 0.83704, 0.84869, 0.81441, 0.85588,
+ 1.08927, 0.91115, 0.99793, 1, 1, 0.91115, 0.99793, 0.91887, 0.90991,
+ 0.99793, 0.8858, 0.98714, 0.8858, 0.98714, 0.8858, 0.98714, 0.894,
+ 0.91434, 0.74498, 0.98196, 1, 1, 0.74498, 0.98196, 0.73914, 0.792,
+ 0.73914, 0.792, 1, 1, 0.73914, 0.792, 1, 1, 0.81363, 0.904, 0.81363,
+ 1.19137, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074,
+ 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89633,
+ 1.01915, 0.8111, 0.942, 0.8111, 0.90531, 0.856, 0.90531, 0.856,
+ 0.90531, 0.856, 1, 0.92241, 0.91755, 0.86667, 0.788, 0.86936,
+ 0.8858, 0.89876, 1, 1, 0.81363, 1.19137, 0.90088, 0.90088, 0.90088,
+ 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90388,
+ 1.03901, 0.92138, 0.78105, 0.7154, 0.86169, 0.80513, 0.94007,
+ 0.82528, 0.98612, 1.06226, 0.91755, 0.8126, 0.81884, 0.92819,
+ 0.73764, 0.90531, 0.90284, 0.8858, 0.86023, 0.8126, 0.91172,
+ 0.96518, 0.91115, 0.83089, 0.8858, 0.87791, 0.79761, 0.89297,
+ 0.81363, 0.88157, 0.89992, 0.85608, 0.81992, 0.94307, 0.86023,
+ 0.88157, 0.95308, 0.98699, 0.99793, 1.06226, 0.95817, 0.95308,
+ 0.97358, 0.928, 0.98088, 0.98699, 0.92761, 0.99793, 0.96017,
+ 1.06226, 0.986, 0.944, 0.95978, 0.938, 0.96705, 0.98714, 0.80442,
+ 0.98972, 1, 0.89762, 1.04552, 0.95817, 0.99007, 0.87064, 0.91879,
+ 0.88888, 1.06226, 0.95817, 0.98714, 0.95817, 0.88888, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 0.89633, 1.01915, 0.89633, 1.01915, 0.89633, 1.01915,
+ 0.8111, 0.942, 0.9219, 1, 0.89903, 1, 1, 1, 0.93173, 0.93173,
+ 0.93173, 1, 1.06304, 1.06304, 1.06904, 0.89903, 0.89903, 0.80549, 1,
+ 1.156, 1, 1, 0.76575, 0.76575, 1, 1, 0.72458, 1, 1, 1, 1, 0.92241,
+ 1, 1, 1, 0.619, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1.07257, 1, 0.74705, 0.71119, 1.02058, 1.024, 1.02119, 1, 1, 1.1536,
+ 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1.05638, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ ];
+ t.MyriadProRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 };
+ },
+ (e, t) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.SegoeuiRegularMetrics =
+ t.SegoeuiRegularFactors =
+ t.SegoeuiItalicMetrics =
+ t.SegoeuiItalicFactors =
+ t.SegoeuiBoldMetrics =
+ t.SegoeuiBoldItalicMetrics =
+ t.SegoeuiBoldItalicFactors =
+ t.SegoeuiBoldFactors =
+ void 0;
+ t.SegoeuiBoldFactors = [
+ 1.76738, 1, 1, 0.99297, 0.9824, 1.04016, 1.06497, 1.03424, 0.97529,
+ 1.17647, 1.23203, 1.1085, 1.1085, 1.16939, 1.2107, 0.9754, 1.21408,
+ 0.9754, 1.59578, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424,
+ 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 0.81378, 0.81378,
+ 1.2107, 1.2107, 1.2107, 0.71703, 0.97847, 0.97363, 0.88776, 0.8641,
+ 1.02096, 0.79795, 0.85132, 0.914, 1.06085, 1.1406, 0.8007, 0.89858,
+ 0.83693, 1.14889, 1.09398, 0.97489, 0.92094, 0.97489, 0.90399,
+ 0.84041, 0.95923, 1.00135, 1, 1.06467, 0.98243, 0.90996, 0.99361,
+ 1.1085, 1.56942, 1.1085, 1.2107, 0.74627, 0.94282, 0.96752, 1.01519,
+ 0.86304, 1.01359, 0.97278, 1.15103, 1.01359, 0.98561, 1.02285,
+ 1.02285, 1.00527, 1.02285, 1.0302, 0.99041, 1.0008, 1.01519,
+ 1.01359, 1.02258, 0.79104, 1.16862, 0.99041, 0.97454, 1.02511,
+ 0.99298, 0.96752, 0.95801, 0.94856, 1.16579, 0.94856, 1.2107,
+ 0.9824, 1.03424, 1.03424, 1, 1.03424, 1.16579, 0.8727, 1.3871,
+ 1.18622, 1.10818, 1.04478, 1.2107, 1.18622, 0.75155, 0.94994,
+ 1.28826, 1.21408, 1.21408, 0.91056, 1, 0.91572, 0.9754, 0.64663,
+ 1.18328, 1.24866, 1.04478, 1.14169, 1.15749, 1.17389, 0.71703,
+ 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.93506,
+ 0.8641, 0.79795, 0.79795, 0.79795, 0.79795, 1.1406, 1.1406, 1.1406,
+ 1.1406, 1.02096, 1.09398, 0.97426, 0.97426, 0.97426, 0.97426,
+ 0.97426, 1.2107, 0.97489, 1.00135, 1.00135, 1.00135, 1.00135,
+ 0.90996, 0.92094, 1.02798, 0.96752, 0.96752, 0.96752, 0.96752,
+ 0.96752, 0.96752, 0.93136, 0.86304, 0.97278, 0.97278, 0.97278,
+ 0.97278, 1.02285, 1.02285, 1.02285, 1.02285, 0.97122, 0.99041, 1, 1,
+ 1, 1, 1, 1.28826, 1.0008, 0.99041, 0.99041, 0.99041, 0.99041,
+ 0.96752, 1.01519, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752,
+ 0.97363, 0.96752, 0.8641, 0.86304, 0.8641, 0.86304, 0.8641, 0.86304,
+ 0.8641, 0.86304, 1.02096, 1.03057, 1.02096, 1.03517, 0.79795,
+ 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278,
+ 0.79795, 0.97278, 0.914, 1.01359, 0.914, 1.01359, 0.914, 1.01359, 1,
+ 1, 1.06085, 0.98561, 1.06085, 1.00879, 1.1406, 1.02285, 1.1406,
+ 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 0.97138,
+ 1.08692, 0.8007, 1.02285, 1, 1, 1.00527, 0.83693, 1.02285, 1, 1,
+ 0.83693, 0.9455, 0.83693, 0.90418, 0.83693, 1.13005, 1.09398,
+ 0.99041, 1, 1, 1.09398, 0.99041, 0.96692, 1.09251, 0.99041, 0.97489,
+ 1.0008, 0.97489, 1.0008, 0.97489, 1.0008, 0.93994, 0.97931, 0.90399,
+ 1.02258, 1, 1, 0.90399, 1.02258, 0.84041, 0.79104, 0.84041, 0.79104,
+ 0.84041, 0.79104, 0.84041, 0.79104, 1, 1, 0.95923, 1.07034, 0.95923,
+ 1.16862, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041,
+ 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.06467,
+ 1.02511, 0.90996, 0.96752, 0.90996, 0.99361, 0.95801, 0.99361,
+ 0.95801, 0.99361, 0.95801, 1.07733, 1.03424, 0.97363, 0.96752,
+ 0.93506, 0.93136, 0.97489, 1.0008, 1, 1, 0.95923, 1.16862, 1.15103,
+ 1.15103, 1.01173, 1.03959, 0.75953, 0.81378, 0.79912, 1.15103,
+ 1.21994, 0.95161, 0.87815, 1.01149, 0.81525, 0.7676, 0.98167,
+ 1.01134, 1.02546, 0.84097, 1.03089, 1.18102, 0.97363, 0.88776,
+ 0.85134, 0.97826, 0.79795, 0.99361, 1.06085, 0.97489, 1.1406,
+ 0.89858, 1.0388, 1.14889, 1.09398, 0.86039, 0.97489, 1.0595,
+ 0.92094, 0.94793, 0.95923, 0.90996, 0.99346, 0.98243, 1.02112,
+ 0.95493, 1.1406, 0.90996, 1.03574, 1.02597, 1.0008, 1.18102,
+ 1.06628, 1.03574, 1.0192, 1.01932, 1.00886, 0.97531, 1.0106, 1.0008,
+ 1.13189, 1.18102, 1.02277, 0.98683, 1.0016, 0.99561, 1.07237,
+ 1.0008, 0.90434, 0.99921, 0.93803, 0.8965, 1.23085, 1.06628,
+ 1.04983, 0.96268, 1.0499, 0.98439, 1.18102, 1.06628, 1.0008,
+ 1.06628, 0.98439, 0.79795, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1.09466, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0.97278, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.02065, 1, 1, 1, 1, 1,
+ 1, 1.06467, 1.02511, 1.06467, 1.02511, 1.06467, 1.02511, 0.90996,
+ 0.96752, 1, 1.21408, 0.89903, 1, 1, 0.75155, 1.04394, 1.04394,
+ 1.04394, 1.04394, 0.98633, 0.98633, 0.98633, 0.73047, 0.73047,
+ 1.20642, 0.91211, 1.25635, 1.222, 1.02956, 1.03372, 1.03372,
+ 0.96039, 1.24633, 1, 1.12454, 0.93503, 1.03424, 1.19687, 1.03424, 1,
+ 1, 1, 0.771, 1, 1, 1.15749, 1.15749, 1.15749, 1.10948, 0.86279,
+ 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.16897, 1, 0.96085,
+ 0.90137, 1.2107, 1.18416, 1.13973, 0.69825, 0.9716, 2.10339,
+ 1.29004, 1.29004, 1.21172, 1.29004, 1.29004, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025,
+ 1.18874, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1,
+ 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.09193, 1.09193, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ ];
+ t.SegoeuiBoldMetrics = { lineHeight: 1.33008, lineGap: 0 };
+ t.SegoeuiBoldItalicFactors = [
+ 1.76738, 1, 1, 0.98946, 1.03959, 1.04016, 1.02809, 1.036, 0.97639,
+ 1.10953, 1.23203, 1.11144, 1.11144, 1.16939, 1.21237, 0.9754,
+ 1.21261, 0.9754, 1.59754, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036,
+ 1.036, 1.036, 1.036, 1.036, 0.81378, 0.81378, 1.21237, 1.21237,
+ 1.21237, 0.73541, 0.97847, 0.97363, 0.89723, 0.87897, 1.0426,
+ 0.79429, 0.85292, 0.91149, 1.05815, 1.1406, 0.79631, 0.90128,
+ 0.83853, 1.04396, 1.10615, 0.97552, 0.94436, 0.97552, 0.88641,
+ 0.80527, 0.96083, 1.00135, 1, 1.06777, 0.9817, 0.91142, 0.99361,
+ 1.11144, 1.57293, 1.11144, 1.21237, 0.74627, 1.31818, 1.06585,
+ 0.97042, 0.83055, 0.97042, 0.93503, 1.1261, 0.97042, 0.97922,
+ 1.14236, 0.94552, 1.01054, 1.14236, 1.02471, 0.97922, 0.94165,
+ 0.97042, 0.97042, 1.0276, 0.78929, 1.1261, 0.97922, 0.95874,
+ 1.02197, 0.98507, 0.96752, 0.97168, 0.95107, 1.16579, 0.95107,
+ 1.21237, 1.03959, 1.036, 1.036, 1, 1.036, 1.16579, 0.87357, 1.31818,
+ 1.18754, 1.26781, 1.05356, 1.21237, 1.18622, 0.79487, 0.94994,
+ 1.29004, 1.24047, 1.24047, 1.31818, 1, 0.91484, 0.9754, 1.31818,
+ 1.1349, 1.24866, 1.05356, 1.13934, 1.15574, 1.17389, 0.73541,
+ 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.94385,
+ 0.87897, 0.79429, 0.79429, 0.79429, 0.79429, 1.1406, 1.1406, 1.1406,
+ 1.1406, 1.0426, 1.10615, 0.97552, 0.97552, 0.97552, 0.97552,
+ 0.97552, 1.21237, 0.97552, 1.00135, 1.00135, 1.00135, 1.00135,
+ 0.91142, 0.94436, 0.98721, 1.06585, 1.06585, 1.06585, 1.06585,
+ 1.06585, 1.06585, 0.96705, 0.83055, 0.93503, 0.93503, 0.93503,
+ 0.93503, 1.14236, 1.14236, 1.14236, 1.14236, 0.93125, 0.97922,
+ 0.94165, 0.94165, 0.94165, 0.94165, 0.94165, 1.29004, 0.94165,
+ 0.97922, 0.97922, 0.97922, 0.97922, 0.96752, 0.97042, 0.96752,
+ 0.97363, 1.06585, 0.97363, 1.06585, 0.97363, 1.06585, 0.87897,
+ 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055,
+ 1.0426, 1.0033, 1.0426, 0.97042, 0.79429, 0.93503, 0.79429, 0.93503,
+ 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.91149,
+ 0.97042, 0.91149, 0.97042, 0.91149, 0.97042, 1, 1, 1.05815, 0.97922,
+ 1.05815, 0.97922, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236,
+ 1.1406, 1.14236, 1.1406, 1.14236, 0.97441, 1.04302, 0.79631,
+ 1.01582, 1, 1, 1.01054, 0.83853, 1.14236, 1, 1, 0.83853, 1.09125,
+ 0.83853, 0.90418, 0.83853, 1.19508, 1.10615, 0.97922, 1, 1, 1.10615,
+ 0.97922, 1.01034, 1.10466, 0.97922, 0.97552, 0.94165, 0.97552,
+ 0.94165, 0.97552, 0.94165, 0.91602, 0.91981, 0.88641, 1.0276, 1, 1,
+ 0.88641, 1.0276, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527,
+ 0.78929, 0.80527, 0.78929, 1, 1, 0.96083, 1.05403, 0.95923, 1.16862,
+ 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135,
+ 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.06777, 1.02197,
+ 0.91142, 0.96752, 0.91142, 0.99361, 0.97168, 0.99361, 0.97168,
+ 0.99361, 0.97168, 1.23199, 1.036, 0.97363, 1.06585, 0.94385,
+ 0.96705, 0.97552, 0.94165, 1, 1, 0.96083, 1.1261, 1.31818, 1.31818,
+ 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818,
+ 0.95161, 1.27126, 1.00811, 0.83284, 0.77702, 0.99137, 0.95253,
+ 1.0347, 0.86142, 1.07205, 1.14236, 0.97363, 0.89723, 0.86869,
+ 1.09818, 0.79429, 0.99361, 1.05815, 0.97552, 1.1406, 0.90128,
+ 1.06662, 1.04396, 1.10615, 0.84918, 0.97552, 1.04694, 0.94436,
+ 0.98015, 0.96083, 0.91142, 1.00356, 0.9817, 1.01945, 0.98999,
+ 1.1406, 0.91142, 1.04961, 0.9898, 1.00639, 1.14236, 1.07514,
+ 1.04961, 0.99607, 1.02897, 1.008, 0.9898, 0.95134, 1.00639, 1.11121,
+ 1.14236, 1.00518, 0.97981, 1.02186, 1, 1.08578, 0.94165, 0.99314,
+ 0.98387, 0.93028, 0.93377, 1.35125, 1.07514, 1.10687, 0.93491,
+ 1.04232, 1.00351, 1.14236, 1.07514, 0.94165, 1.07514, 1.00351,
+ 0.79429, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.09097, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.93503, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 0.96609, 1, 1, 1, 1, 1, 1, 1.06777, 1.02197,
+ 1.06777, 1.02197, 1.06777, 1.02197, 0.91142, 0.96752, 1, 1.21261,
+ 0.89903, 1, 1, 0.75155, 1.04745, 1.04745, 1.04745, 1.04394, 0.98633,
+ 0.98633, 0.98633, 0.72959, 0.72959, 1.20502, 0.91406, 1.26514,
+ 1.222, 1.02956, 1.03372, 1.03372, 0.96039, 1.24633, 1, 1.09125,
+ 0.93327, 1.03336, 1.16541, 1.036, 1, 1, 1, 0.771, 1, 1, 1.15574,
+ 1.15574, 1.15574, 1.15574, 0.86364, 0.94434, 0.86279, 0.94434,
+ 0.86224, 1, 1, 1.16798, 1, 0.96085, 0.90068, 1.21237, 1.18416,
+ 1.13904, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21339,
+ 1.29004, 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1,
+ 0.87025, 0.87025, 0.87025, 0.87025, 1.18775, 1.42603, 1, 1.42603,
+ 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163,
+ 1, 1, 1, 1.13269, 1.13269, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1,
+ ];
+ t.SegoeuiBoldItalicMetrics = { lineHeight: 1.33008, lineGap: 0 };
+ t.SegoeuiItalicFactors = [
+ 1.76738, 1, 1, 0.98946, 1.14763, 1.05365, 1.06234, 0.96927, 0.92586,
+ 1.15373, 1.18414, 0.91349, 0.91349, 1.07403, 1.17308, 0.78383,
+ 1.20088, 0.78383, 1.42531, 0.96927, 0.96927, 0.96927, 0.96927,
+ 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.78383,
+ 0.78383, 1.17308, 1.17308, 1.17308, 0.77349, 0.94565, 0.94729,
+ 0.85944, 0.88506, 0.9858, 0.74817, 0.80016, 0.88449, 0.98039,
+ 0.95782, 0.69238, 0.89898, 0.83231, 0.98183, 1.03989, 0.96924,
+ 0.86237, 0.96924, 0.80595, 0.74524, 0.86091, 0.95402, 0.94143,
+ 0.98448, 0.8858, 0.83089, 0.93285, 1.0949, 1.39016, 1.0949, 1.45994,
+ 0.74627, 1.04839, 0.97454, 0.97454, 0.87207, 0.97454, 0.87533,
+ 1.06151, 0.97454, 1.00176, 1.16484, 1.08132, 0.98047, 1.16484,
+ 1.02989, 1.01054, 0.96225, 0.97454, 0.97454, 1.06598, 0.79004,
+ 1.16344, 1.00351, 0.94629, 0.9973, 0.91016, 0.96777, 0.9043,
+ 0.91082, 0.92481, 0.91082, 1.17308, 0.95748, 0.96927, 0.96927, 1,
+ 0.96927, 0.92481, 0.80597, 1.04839, 1.23393, 1.1781, 0.9245,
+ 1.17308, 1.20808, 0.63218, 0.94261, 1.24822, 1.09971, 1.09971,
+ 1.04839, 1, 0.85273, 0.78032, 1.04839, 1.09971, 1.22326, 0.9245,
+ 1.09836, 1.13525, 1.15222, 0.70424, 0.94729, 0.94729, 0.94729,
+ 0.94729, 0.94729, 0.94729, 0.85498, 0.88506, 0.74817, 0.74817,
+ 0.74817, 0.74817, 0.95782, 0.95782, 0.95782, 0.95782, 0.9858,
+ 1.03989, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.17308,
+ 0.96924, 0.95402, 0.95402, 0.95402, 0.95402, 0.83089, 0.86237,
+ 0.88409, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454,
+ 0.92916, 0.87207, 0.87533, 0.87533, 0.87533, 0.87533, 0.93146,
+ 0.93146, 0.93146, 0.93146, 0.93854, 1.01054, 0.96225, 0.96225,
+ 0.96225, 0.96225, 0.96225, 1.24822, 0.8761, 1.00351, 1.00351,
+ 1.00351, 1.00351, 0.96777, 0.97454, 0.96777, 0.94729, 0.97454,
+ 0.94729, 0.97454, 0.94729, 0.97454, 0.88506, 0.87207, 0.88506,
+ 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.9858, 0.95391,
+ 0.9858, 0.97454, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817,
+ 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.88449, 0.97454,
+ 0.88449, 0.97454, 0.88449, 0.97454, 1, 1, 0.98039, 1.00176, 0.98039,
+ 1.00176, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 0.93146,
+ 0.95782, 1.16484, 0.95782, 0.93146, 0.84421, 1.12761, 0.69238,
+ 1.08132, 1, 1, 0.98047, 0.83231, 1.16484, 1, 1, 0.84723, 1.04861,
+ 0.84723, 0.78755, 0.83231, 1.23736, 1.03989, 1.01054, 1, 1, 1.03989,
+ 1.01054, 0.9857, 1.03849, 1.01054, 0.96924, 0.96225, 0.96924,
+ 0.96225, 0.96924, 0.96225, 0.92383, 0.90171, 0.80595, 1.06598, 1, 1,
+ 0.80595, 1.06598, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524,
+ 0.79004, 0.74524, 0.79004, 1, 1, 0.86091, 1.02759, 0.85771, 1.16344,
+ 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402,
+ 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.98448, 0.9973,
+ 0.83089, 0.96777, 0.83089, 0.93285, 0.9043, 0.93285, 0.9043,
+ 0.93285, 0.9043, 1.31868, 0.96927, 0.94729, 0.97454, 0.85498,
+ 0.92916, 0.96924, 0.8761, 1, 1, 0.86091, 1.16344, 1.04839, 1.04839,
+ 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839,
+ 0.81965, 0.81965, 0.94729, 0.78032, 0.71022, 0.90883, 0.84171,
+ 0.99877, 0.77596, 1.05734, 1.2, 0.94729, 0.85944, 0.82791, 0.9607,
+ 0.74817, 0.93285, 0.98039, 0.96924, 0.95782, 0.89898, 0.98316,
+ 0.98183, 1.03989, 0.78614, 0.96924, 0.97642, 0.86237, 0.86075,
+ 0.86091, 0.83089, 0.90082, 0.8858, 0.97296, 1.01284, 0.95782,
+ 0.83089, 1.0976, 1.04, 1.03342, 1.2, 1.0675, 1.0976, 0.98205,
+ 1.03809, 1.05097, 1.04, 0.95364, 1.03342, 1.05401, 1.2, 1.02148,
+ 1.0119, 1.04724, 1.0127, 1.02732, 0.96225, 0.8965, 0.97783, 0.93574,
+ 0.94818, 1.30679, 1.0675, 1.11826, 0.99821, 1.0557, 1.0326, 1.2,
+ 1.0675, 0.96225, 1.0675, 1.0326, 0.74817, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1.03754, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 0.87533, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.98705, 1, 1,
+ 1, 1, 1, 1, 0.98448, 0.9973, 0.98448, 0.9973, 0.98448, 0.9973,
+ 0.83089, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 0.94945,
+ 0.94945, 0.94945, 0.94945, 1.12317, 1.12317, 1.12317, 0.67603,
+ 0.67603, 1.15621, 0.73584, 1.21191, 1.22135, 1.06483, 0.94868,
+ 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87709, 0.96927, 1.01473,
+ 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.09836, 1.09836, 1.09836, 1.01522,
+ 0.86321, 0.94434, 0.8649, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578,
+ 0.86438, 1.17308, 1.18416, 1.14589, 0.69825, 0.97622, 1.96791,
+ 1.24822, 1.24822, 1.17308, 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025,
+ 1.17984, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1,
+ 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10742, 1.10742, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ ];
+ t.SegoeuiItalicMetrics = { lineHeight: 1.33008, lineGap: 0 };
+ t.SegoeuiRegularFactors = [
+ 1.76738, 1, 1, 0.98594, 1.02285, 1.10454, 1.06234, 0.96927, 0.92037,
+ 1.19985, 1.2046, 0.90616, 0.90616, 1.07152, 1.1714, 0.78032,
+ 1.20088, 0.78032, 1.40246, 0.96927, 0.96927, 0.96927, 0.96927,
+ 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.78032,
+ 0.78032, 1.1714, 1.1714, 1.1714, 0.80597, 0.94084, 0.96706, 0.85944,
+ 0.85734, 0.97093, 0.75842, 0.79936, 0.88198, 0.9831, 0.95782,
+ 0.71387, 0.86969, 0.84636, 1.07796, 1.03584, 0.96924, 0.83968,
+ 0.96924, 0.82826, 0.79649, 0.85771, 0.95132, 0.93119, 0.98965,
+ 0.88433, 0.8287, 0.93365, 1.08612, 1.3638, 1.08612, 1.45786,
+ 0.74627, 0.80499, 0.91484, 1.05707, 0.92383, 1.05882, 0.9403,
+ 1.12654, 1.05882, 1.01756, 1.09011, 1.09011, 0.99414, 1.09011,
+ 1.034, 1.01756, 1.05356, 1.05707, 1.05882, 1.04399, 0.84863,
+ 1.21968, 1.01756, 0.95801, 1.00068, 0.91797, 0.96777, 0.9043,
+ 0.90351, 0.92105, 0.90351, 1.1714, 0.85337, 0.96927, 0.96927,
+ 0.99912, 0.96927, 0.92105, 0.80597, 1.2434, 1.20808, 1.05937,
+ 0.90957, 1.1714, 1.20808, 0.75155, 0.94261, 1.24644, 1.09971,
+ 1.09971, 0.84751, 1, 0.85273, 0.78032, 0.61584, 1.05425, 1.17914,
+ 0.90957, 1.08665, 1.11593, 1.14169, 0.73381, 0.96706, 0.96706,
+ 0.96706, 0.96706, 0.96706, 0.96706, 0.86035, 0.85734, 0.75842,
+ 0.75842, 0.75842, 0.75842, 0.95782, 0.95782, 0.95782, 0.95782,
+ 0.97093, 1.03584, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924,
+ 1.1714, 0.96924, 0.95132, 0.95132, 0.95132, 0.95132, 0.8287,
+ 0.83968, 0.89049, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484,
+ 0.91484, 0.93575, 0.92383, 0.9403, 0.9403, 0.9403, 0.9403, 0.8717,
+ 0.8717, 0.8717, 0.8717, 1.00527, 1.01756, 1.05356, 1.05356, 1.05356,
+ 1.05356, 1.05356, 1.24644, 0.95923, 1.01756, 1.01756, 1.01756,
+ 1.01756, 0.96777, 1.05707, 0.96777, 0.96706, 0.91484, 0.96706,
+ 0.91484, 0.96706, 0.91484, 0.85734, 0.92383, 0.85734, 0.92383,
+ 0.85734, 0.92383, 0.85734, 0.92383, 0.97093, 1.0969, 0.97093,
+ 1.05882, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842,
+ 0.9403, 0.75842, 0.9403, 0.88198, 1.05882, 0.88198, 1.05882,
+ 0.88198, 1.05882, 1, 1, 0.9831, 1.01756, 0.9831, 1.01756, 0.95782,
+ 0.8717, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782, 1.09011, 0.95782,
+ 0.8717, 0.84784, 1.11551, 0.71387, 1.09011, 1, 1, 0.99414, 0.84636,
+ 1.09011, 1, 1, 0.84636, 1.0536, 0.84636, 0.94298, 0.84636, 1.23297,
+ 1.03584, 1.01756, 1, 1, 1.03584, 1.01756, 1.00323, 1.03444, 1.01756,
+ 0.96924, 1.05356, 0.96924, 1.05356, 0.96924, 1.05356, 0.93066,
+ 0.98293, 0.82826, 1.04399, 1, 1, 0.82826, 1.04399, 0.79649, 0.84863,
+ 0.79649, 0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 1, 1, 0.85771,
+ 1.17318, 0.85771, 1.21968, 0.95132, 1.01756, 0.95132, 1.01756,
+ 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132,
+ 1.01756, 0.98965, 1.00068, 0.8287, 0.96777, 0.8287, 0.93365, 0.9043,
+ 0.93365, 0.9043, 0.93365, 0.9043, 1.08571, 0.96927, 0.96706,
+ 0.91484, 0.86035, 0.93575, 0.96924, 0.95923, 1, 1, 0.85771, 1.21968,
+ 1.11437, 1.11437, 0.93109, 0.91202, 0.60411, 0.84164, 0.55572,
+ 1.01173, 0.97361, 0.81818, 0.81818, 0.96635, 0.78032, 0.72727,
+ 0.92366, 0.98601, 1.03405, 0.77968, 1.09799, 1.2, 0.96706, 0.85944,
+ 0.85638, 0.96491, 0.75842, 0.93365, 0.9831, 0.96924, 0.95782,
+ 0.86969, 0.94152, 1.07796, 1.03584, 0.78437, 0.96924, 0.98715,
+ 0.83968, 0.83491, 0.85771, 0.8287, 0.94492, 0.88433, 0.9287, 1.0098,
+ 0.95782, 0.8287, 1.0625, 0.98248, 1.03424, 1.2, 1.01071, 1.0625,
+ 0.95246, 1.03809, 1.04912, 0.98248, 1.00221, 1.03424, 1.05443, 1.2,
+ 1.04785, 0.99609, 1.00169, 1.05176, 0.99346, 1.05356, 0.9087,
+ 1.03004, 0.95542, 0.93117, 1.23362, 1.01071, 1.07831, 1.02512,
+ 1.05205, 1.03502, 1.2, 1.01071, 1.05356, 1.01071, 1.03502, 0.75842,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03719, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9403, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1.04021, 1, 1, 1, 1, 1, 1, 0.98965, 1.00068, 0.98965,
+ 1.00068, 0.98965, 1.00068, 0.8287, 0.96777, 1, 1.20088, 0.89903, 1,
+ 1, 0.75155, 1.03077, 1.03077, 1.03077, 1.03077, 1.13196, 1.13196,
+ 1.13196, 0.67428, 0.67428, 1.16039, 0.73291, 1.20996, 1.22135,
+ 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87796,
+ 0.96927, 1.01518, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.10539, 1.10539,
+ 1.11358, 1.06967, 0.86279, 0.94434, 0.86279, 0.94434, 0.86182, 1, 1,
+ 1.083, 1, 0.91578, 0.86507, 1.1714, 1.18416, 1.14589, 0.69825,
+ 0.97622, 1.9697, 1.24822, 1.24822, 1.17238, 1.24822, 1.24822, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025,
+ 0.87025, 0.87025, 1.18083, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1,
+ 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10938,
+ 1.10938, 1, 1, 1, 1.05425, 1.09971, 1.09971, 1.09971, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1,
+ ];
+ t.SegoeuiRegularMetrics = { lineHeight: 1.33008, lineGap: 0 };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.PostScriptEvaluator =
+ t.PostScriptCompiler =
+ t.PDFFunctionFactory =
+ void 0;
+ t.isPDFFunction = function isPDFFunction(e) {
+ let t;
+ if (e instanceof r.Dict) t = e;
+ else {
+ if (!(e instanceof s.BaseStream)) return !1;
+ t = e.dict;
+ }
+ return t.has("FunctionType");
+ };
+ var r = a(4),
+ n = a(2),
+ i = a(58),
+ s = a(5),
+ o = a(59);
+ t.PDFFunctionFactory = class PDFFunctionFactory {
+ constructor({ xref: e, isEvalSupported: t = !0 }) {
+ this.xref = e;
+ this.isEvalSupported = !1 !== t;
+ }
+ create(e) {
+ const t = this.getCached(e);
+ if (t) return t;
+ const a = PDFFunction.parse({
+ xref: this.xref,
+ isEvalSupported: this.isEvalSupported,
+ fn: e instanceof r.Ref ? this.xref.fetch(e) : e,
+ });
+ this._cache(e, a);
+ return a;
+ }
+ createFromArray(e) {
+ const t = this.getCached(e);
+ if (t) return t;
+ const a = PDFFunction.parseArray({
+ xref: this.xref,
+ isEvalSupported: this.isEvalSupported,
+ fnObj: e instanceof r.Ref ? this.xref.fetch(e) : e,
+ });
+ this._cache(e, a);
+ return a;
+ }
+ getCached(e) {
+ let t;
+ e instanceof r.Ref
+ ? (t = e)
+ : e instanceof r.Dict
+ ? (t = e.objId)
+ : e instanceof s.BaseStream && (t = e.dict?.objId);
+ if (t) {
+ const e = this._localFunctionCache.getByRef(t);
+ if (e) return e;
+ }
+ return null;
+ }
+ _cache(e, t) {
+ if (!t)
+ throw new Error(
+ 'PDFFunctionFactory._cache - expected "parsedFunction" argument.',
+ );
+ let a;
+ e instanceof r.Ref
+ ? (a = e)
+ : e instanceof r.Dict
+ ? (a = e.objId)
+ : e instanceof s.BaseStream && (a = e.dict?.objId);
+ a && this._localFunctionCache.set(null, a, t);
+ }
+ get _localFunctionCache() {
+ return (0, n.shadow)(
+ this,
+ "_localFunctionCache",
+ new o.LocalFunctionCache(),
+ );
+ }
+ };
+ function toNumberArray(e) {
+ if (!Array.isArray(e)) return null;
+ const t = e.length;
+ for (let a = 0; a < t; a++)
+ if ("number" != typeof e[a]) {
+ const a = new Array(t);
+ for (let r = 0; r < t; r++) a[r] = +e[r];
+ return a;
+ }
+ return e;
+ }
+ class PDFFunction {
+ static getSampleArray(e, t, a, r) {
+ let n,
+ i,
+ s = 1;
+ for (n = 0, i = e.length; n < i; n++) s *= e[n];
+ s *= t;
+ const o = new Array(s);
+ let c = 0,
+ l = 0;
+ const h = 1 / (2 ** a - 1),
+ u = r.getBytes((s * a + 7) / 8);
+ let d = 0;
+ for (n = 0; n < s; n++) {
+ for (; c < a; ) {
+ l <<= 8;
+ l |= u[d++];
+ c += 8;
+ }
+ c -= a;
+ o[n] = (l >> c) * h;
+ l &= (1 << c) - 1;
+ }
+ return o;
+ }
+ static parse({ xref: e, isEvalSupported: t, fn: a }) {
+ const r = a.dict || a;
+ switch (r.get("FunctionType")) {
+ case 0:
+ return this.constructSampled({
+ xref: e,
+ isEvalSupported: t,
+ fn: a,
+ dict: r,
+ });
+ case 1:
+ break;
+ case 2:
+ return this.constructInterpolated({
+ xref: e,
+ isEvalSupported: t,
+ dict: r,
+ });
+ case 3:
+ return this.constructStiched({
+ xref: e,
+ isEvalSupported: t,
+ dict: r,
+ });
+ case 4:
+ return this.constructPostScript({
+ xref: e,
+ isEvalSupported: t,
+ fn: a,
+ dict: r,
+ });
+ }
+ throw new n.FormatError("Unknown type of function");
+ }
+ static parseArray({ xref: e, isEvalSupported: t, fnObj: a }) {
+ if (!Array.isArray(a))
+ return this.parse({ xref: e, isEvalSupported: t, fn: a });
+ const r = [];
+ for (const n of a)
+ r.push(
+ this.parse({
+ xref: e,
+ isEvalSupported: t,
+ fn: e.fetchIfRef(n),
+ }),
+ );
+ return function (e, t, a, n) {
+ for (let i = 0, s = r.length; i < s; i++) r[i](e, t, a, n + i);
+ };
+ }
+ static constructSampled({
+ xref: e,
+ isEvalSupported: t,
+ fn: a,
+ dict: r,
+ }) {
+ function toMultiArray(e) {
+ const t = e.length,
+ a = [];
+ let r = 0;
+ for (let n = 0; n < t; n += 2) a[r++] = [e[n], e[n + 1]];
+ return a;
+ }
+ function interpolate(e, t, a, r, n) {
+ return r + ((n - r) / (a - t)) * (e - t);
+ }
+ let i = toNumberArray(r.getArray("Domain")),
+ s = toNumberArray(r.getArray("Range"));
+ if (!i || !s) throw new n.FormatError("No domain or range");
+ const o = i.length / 2,
+ c = s.length / 2;
+ i = toMultiArray(i);
+ s = toMultiArray(s);
+ const l = toNumberArray(r.getArray("Size")),
+ h = r.get("BitsPerSample"),
+ u = r.get("Order") || 1;
+ 1 !== u &&
+ (0, n.info)("No support for cubic spline interpolation: " + u);
+ let d = toNumberArray(r.getArray("Encode"));
+ if (d) d = toMultiArray(d);
+ else {
+ d = [];
+ for (let e = 0; e < o; ++e) d.push([0, l[e] - 1]);
+ }
+ let f = toNumberArray(r.getArray("Decode"));
+ f = f ? toMultiArray(f) : s;
+ const g = this.getSampleArray(l, c, h, a);
+ return function constructSampledFn(e, t, a, r) {
+ const n = 1 << o,
+ h = new Float64Array(n),
+ u = new Uint32Array(n);
+ let p, m;
+ for (m = 0; m < n; m++) h[m] = 1;
+ let b = c,
+ y = 1;
+ for (p = 0; p < o; ++p) {
+ const a = i[p][0],
+ r = i[p][1];
+ let s = interpolate(
+ Math.min(Math.max(e[t + p], a), r),
+ a,
+ r,
+ d[p][0],
+ d[p][1],
+ );
+ const o = l[p];
+ s = Math.min(Math.max(s, 0), o - 1);
+ const c = s < o - 1 ? Math.floor(s) : s - 1,
+ f = c + 1 - s,
+ g = s - c,
+ w = c * b,
+ S = w + b;
+ for (m = 0; m < n; m++)
+ if (m & y) {
+ h[m] *= g;
+ u[m] += S;
+ } else {
+ h[m] *= f;
+ u[m] += w;
+ }
+ b *= o;
+ y <<= 1;
+ }
+ for (m = 0; m < c; ++m) {
+ let e = 0;
+ for (p = 0; p < n; p++) e += g[u[p] + m] * h[p];
+ e = interpolate(e, 0, 1, f[m][0], f[m][1]);
+ a[r + m] = Math.min(Math.max(e, s[m][0]), s[m][1]);
+ }
+ };
+ }
+ static constructInterpolated({
+ xref: e,
+ isEvalSupported: t,
+ dict: a,
+ }) {
+ const r = toNumberArray(a.getArray("C0")) || [0],
+ n = toNumberArray(a.getArray("C1")) || [1],
+ i = a.get("N"),
+ s = [];
+ for (let e = 0, t = r.length; e < t; ++e) s.push(n[e] - r[e]);
+ const o = s.length;
+ return function constructInterpolatedFn(e, t, a, n) {
+ const c = 1 === i ? e[t] : e[t] ** i;
+ for (let e = 0; e < o; ++e) a[n + e] = r[e] + c * s[e];
+ };
+ }
+ static constructStiched({ xref: e, isEvalSupported: t, dict: a }) {
+ const r = toNumberArray(a.getArray("Domain"));
+ if (!r) throw new n.FormatError("No domain");
+ if (1 !== r.length / 2)
+ throw new n.FormatError("Bad domain for stiched function");
+ const i = [];
+ for (const r of a.get("Functions"))
+ i.push(
+ this.parse({
+ xref: e,
+ isEvalSupported: t,
+ fn: e.fetchIfRef(r),
+ }),
+ );
+ const s = toNumberArray(a.getArray("Bounds")),
+ o = toNumberArray(a.getArray("Encode")),
+ c = new Float32Array(1);
+ return function constructStichedFn(e, t, a, n) {
+ const l = (function constructStichedFromIRClip(e, t, a) {
+ e > a ? (e = a) : e < t && (e = t);
+ return e;
+ })(e[t], r[0], r[1]),
+ h = s.length;
+ let u;
+ for (u = 0; u < h && !(l < s[u]); ++u);
+ let d = r[0];
+ u > 0 && (d = s[u - 1]);
+ let f = r[1];
+ u < s.length && (f = s[u]);
+ const g = o[2 * u],
+ p = o[2 * u + 1];
+ c[0] = d === f ? g : g + ((l - d) * (p - g)) / (f - d);
+ i[u](c, 0, a, n);
+ };
+ }
+ static constructPostScript({
+ xref: e,
+ isEvalSupported: t,
+ fn: a,
+ dict: r,
+ }) {
+ const s = toNumberArray(r.getArray("Domain")),
+ o = toNumberArray(r.getArray("Range"));
+ if (!s) throw new n.FormatError("No domain.");
+ if (!o) throw new n.FormatError("No range.");
+ const c = new i.PostScriptLexer(a),
+ l = new i.PostScriptParser(c).parse();
+ if (t && n.FeatureTest.isEvalSupported) {
+ const e = new PostScriptCompiler().compile(l, s, o);
+ if (e)
+ return new Function(
+ "src",
+ "srcOffset",
+ "dest",
+ "destOffset",
+ e,
+ );
+ }
+ (0, n.info)("Unable to compile PS function");
+ const h = o.length >> 1,
+ u = s.length >> 1,
+ d = new PostScriptEvaluator(l),
+ f = Object.create(null);
+ let g = 8192;
+ const p = new Float32Array(u);
+ return function constructPostScriptFn(e, t, a, r) {
+ let n,
+ i,
+ s = "";
+ const c = p;
+ for (n = 0; n < u; n++) {
+ i = e[t + n];
+ c[n] = i;
+ s += i + "_";
+ }
+ const l = f[s];
+ if (void 0 !== l) {
+ a.set(l, r);
+ return;
+ }
+ const m = new Float32Array(h),
+ b = d.execute(c),
+ y = b.length - h;
+ for (n = 0; n < h; n++) {
+ i = b[y + n];
+ let e = o[2 * n];
+ if (i < e) i = e;
+ else {
+ e = o[2 * n + 1];
+ i > e && (i = e);
+ }
+ m[n] = i;
+ }
+ if (g > 0) {
+ g--;
+ f[s] = m;
+ }
+ a.set(m, r);
+ };
+ }
+ }
+ class PostScriptStack {
+ static MAX_STACK_SIZE = 100;
+ constructor(e) {
+ this.stack = e ? Array.from(e) : [];
+ }
+ push(e) {
+ if (this.stack.length >= PostScriptStack.MAX_STACK_SIZE)
+ throw new Error("PostScript function stack overflow.");
+ this.stack.push(e);
+ }
+ pop() {
+ if (this.stack.length <= 0)
+ throw new Error("PostScript function stack underflow.");
+ return this.stack.pop();
+ }
+ copy(e) {
+ if (this.stack.length + e >= PostScriptStack.MAX_STACK_SIZE)
+ throw new Error("PostScript function stack overflow.");
+ const t = this.stack;
+ for (let a = t.length - e, r = e - 1; r >= 0; r--, a++)
+ t.push(t[a]);
+ }
+ index(e) {
+ this.push(this.stack[this.stack.length - e - 1]);
+ }
+ roll(e, t) {
+ const a = this.stack,
+ r = a.length - e,
+ n = a.length - 1,
+ i = r + (t - Math.floor(t / e) * e);
+ for (let e = r, t = n; e < t; e++, t--) {
+ const r = a[e];
+ a[e] = a[t];
+ a[t] = r;
+ }
+ for (let e = r, t = i - 1; e < t; e++, t--) {
+ const r = a[e];
+ a[e] = a[t];
+ a[t] = r;
+ }
+ for (let e = i, t = n; e < t; e++, t--) {
+ const r = a[e];
+ a[e] = a[t];
+ a[t] = r;
+ }
+ }
+ }
+ class PostScriptEvaluator {
+ constructor(e) {
+ this.operators = e;
+ }
+ execute(e) {
+ const t = new PostScriptStack(e);
+ let a = 0;
+ const r = this.operators,
+ i = r.length;
+ let s, o, c;
+ for (; a < i; ) {
+ s = r[a++];
+ if ("number" != typeof s)
+ switch (s) {
+ case "jz":
+ c = t.pop();
+ o = t.pop();
+ o || (a = c);
+ break;
+ case "j":
+ o = t.pop();
+ a = o;
+ break;
+ case "abs":
+ o = t.pop();
+ t.push(Math.abs(o));
+ break;
+ case "add":
+ c = t.pop();
+ o = t.pop();
+ t.push(o + c);
+ break;
+ case "and":
+ c = t.pop();
+ o = t.pop();
+ "boolean" == typeof o && "boolean" == typeof c
+ ? t.push(o && c)
+ : t.push(o & c);
+ break;
+ case "atan":
+ c = t.pop();
+ o = t.pop();
+ o = (Math.atan2(o, c) / Math.PI) * 180;
+ o < 0 && (o += 360);
+ t.push(o);
+ break;
+ case "bitshift":
+ c = t.pop();
+ o = t.pop();
+ o > 0 ? t.push(o << c) : t.push(o >> c);
+ break;
+ case "ceiling":
+ o = t.pop();
+ t.push(Math.ceil(o));
+ break;
+ case "copy":
+ o = t.pop();
+ t.copy(o);
+ break;
+ case "cos":
+ o = t.pop();
+ t.push(Math.cos(((o % 360) / 180) * Math.PI));
+ break;
+ case "cvi":
+ o = 0 | t.pop();
+ t.push(o);
+ break;
+ case "cvr":
+ break;
+ case "div":
+ c = t.pop();
+ o = t.pop();
+ t.push(o / c);
+ break;
+ case "dup":
+ t.copy(1);
+ break;
+ case "eq":
+ c = t.pop();
+ o = t.pop();
+ t.push(o === c);
+ break;
+ case "exch":
+ t.roll(2, 1);
+ break;
+ case "exp":
+ c = t.pop();
+ o = t.pop();
+ t.push(o ** c);
+ break;
+ case "false":
+ t.push(!1);
+ break;
+ case "floor":
+ o = t.pop();
+ t.push(Math.floor(o));
+ break;
+ case "ge":
+ c = t.pop();
+ o = t.pop();
+ t.push(o >= c);
+ break;
+ case "gt":
+ c = t.pop();
+ o = t.pop();
+ t.push(o > c);
+ break;
+ case "idiv":
+ c = t.pop();
+ o = t.pop();
+ t.push((o / c) | 0);
+ break;
+ case "index":
+ o = t.pop();
+ t.index(o);
+ break;
+ case "le":
+ c = t.pop();
+ o = t.pop();
+ t.push(o <= c);
+ break;
+ case "ln":
+ o = t.pop();
+ t.push(Math.log(o));
+ break;
+ case "log":
+ o = t.pop();
+ t.push(Math.log10(o));
+ break;
+ case "lt":
+ c = t.pop();
+ o = t.pop();
+ t.push(o < c);
+ break;
+ case "mod":
+ c = t.pop();
+ o = t.pop();
+ t.push(o % c);
+ break;
+ case "mul":
+ c = t.pop();
+ o = t.pop();
+ t.push(o * c);
+ break;
+ case "ne":
+ c = t.pop();
+ o = t.pop();
+ t.push(o !== c);
+ break;
+ case "neg":
+ o = t.pop();
+ t.push(-o);
+ break;
+ case "not":
+ o = t.pop();
+ "boolean" == typeof o ? t.push(!o) : t.push(~o);
+ break;
+ case "or":
+ c = t.pop();
+ o = t.pop();
+ "boolean" == typeof o && "boolean" == typeof c
+ ? t.push(o || c)
+ : t.push(o | c);
+ break;
+ case "pop":
+ t.pop();
+ break;
+ case "roll":
+ c = t.pop();
+ o = t.pop();
+ t.roll(o, c);
+ break;
+ case "round":
+ o = t.pop();
+ t.push(Math.round(o));
+ break;
+ case "sin":
+ o = t.pop();
+ t.push(Math.sin(((o % 360) / 180) * Math.PI));
+ break;
+ case "sqrt":
+ o = t.pop();
+ t.push(Math.sqrt(o));
+ break;
+ case "sub":
+ c = t.pop();
+ o = t.pop();
+ t.push(o - c);
+ break;
+ case "true":
+ t.push(!0);
+ break;
+ case "truncate":
+ o = t.pop();
+ o = o < 0 ? Math.ceil(o) : Math.floor(o);
+ t.push(o);
+ break;
+ case "xor":
+ c = t.pop();
+ o = t.pop();
+ "boolean" == typeof o && "boolean" == typeof c
+ ? t.push(o !== c)
+ : t.push(o ^ c);
+ break;
+ default:
+ throw new n.FormatError(`Unknown operator ${s}`);
+ }
+ else t.push(s);
+ }
+ return t.stack;
+ }
+ }
+ t.PostScriptEvaluator = PostScriptEvaluator;
+ class AstNode {
+ constructor(e) {
+ this.type = e;
+ }
+ visit(e) {
+ (0, n.unreachable)("abstract method");
+ }
+ }
+ class AstArgument extends AstNode {
+ constructor(e, t, a) {
+ super("args");
+ this.index = e;
+ this.min = t;
+ this.max = a;
+ }
+ visit(e) {
+ e.visitArgument(this);
+ }
+ }
+ class AstLiteral extends AstNode {
+ constructor(e) {
+ super("literal");
+ this.number = e;
+ this.min = e;
+ this.max = e;
+ }
+ visit(e) {
+ e.visitLiteral(this);
+ }
+ }
+ class AstBinaryOperation extends AstNode {
+ constructor(e, t, a, r, n) {
+ super("binary");
+ this.op = e;
+ this.arg1 = t;
+ this.arg2 = a;
+ this.min = r;
+ this.max = n;
+ }
+ visit(e) {
+ e.visitBinaryOperation(this);
+ }
+ }
+ class AstMin extends AstNode {
+ constructor(e, t) {
+ super("max");
+ this.arg = e;
+ this.min = e.min;
+ this.max = t;
+ }
+ visit(e) {
+ e.visitMin(this);
+ }
+ }
+ class AstVariable extends AstNode {
+ constructor(e, t, a) {
+ super("var");
+ this.index = e;
+ this.min = t;
+ this.max = a;
+ }
+ visit(e) {
+ e.visitVariable(this);
+ }
+ }
+ class AstVariableDefinition extends AstNode {
+ constructor(e, t) {
+ super("definition");
+ this.variable = e;
+ this.arg = t;
+ }
+ visit(e) {
+ e.visitVariableDefinition(this);
+ }
+ }
+ class ExpressionBuilderVisitor {
+ constructor() {
+ this.parts = [];
+ }
+ visitArgument(e) {
+ this.parts.push(
+ "Math.max(",
+ e.min,
+ ", Math.min(",
+ e.max,
+ ", src[srcOffset + ",
+ e.index,
+ "]))",
+ );
+ }
+ visitVariable(e) {
+ this.parts.push("v", e.index);
+ }
+ visitLiteral(e) {
+ this.parts.push(e.number);
+ }
+ visitBinaryOperation(e) {
+ this.parts.push("(");
+ e.arg1.visit(this);
+ this.parts.push(" ", e.op, " ");
+ e.arg2.visit(this);
+ this.parts.push(")");
+ }
+ visitVariableDefinition(e) {
+ this.parts.push("var ");
+ e.variable.visit(this);
+ this.parts.push(" = ");
+ e.arg.visit(this);
+ this.parts.push(";");
+ }
+ visitMin(e) {
+ this.parts.push("Math.min(");
+ e.arg.visit(this);
+ this.parts.push(", ", e.max, ")");
+ }
+ toString() {
+ return this.parts.join("");
+ }
+ }
+ function buildAddOperation(e, t) {
+ return "literal" === t.type && 0 === t.number
+ ? e
+ : "literal" === e.type && 0 === e.number
+ ? t
+ : "literal" === t.type && "literal" === e.type
+ ? new AstLiteral(e.number + t.number)
+ : new AstBinaryOperation(
+ "+",
+ e,
+ t,
+ e.min + t.min,
+ e.max + t.max,
+ );
+ }
+ function buildMulOperation(e, t) {
+ if ("literal" === t.type) {
+ if (0 === t.number) return new AstLiteral(0);
+ if (1 === t.number) return e;
+ if ("literal" === e.type)
+ return new AstLiteral(e.number * t.number);
+ }
+ if ("literal" === e.type) {
+ if (0 === e.number) return new AstLiteral(0);
+ if (1 === e.number) return t;
+ }
+ const a = Math.min(
+ e.min * t.min,
+ e.min * t.max,
+ e.max * t.min,
+ e.max * t.max,
+ ),
+ r = Math.max(
+ e.min * t.min,
+ e.min * t.max,
+ e.max * t.min,
+ e.max * t.max,
+ );
+ return new AstBinaryOperation("*", e, t, a, r);
+ }
+ function buildSubOperation(e, t) {
+ if ("literal" === t.type) {
+ if (0 === t.number) return e;
+ if ("literal" === e.type)
+ return new AstLiteral(e.number - t.number);
+ }
+ return "binary" === t.type &&
+ "-" === t.op &&
+ "literal" === e.type &&
+ 1 === e.number &&
+ "literal" === t.arg1.type &&
+ 1 === t.arg1.number
+ ? t.arg2
+ : new AstBinaryOperation("-", e, t, e.min - t.max, e.max - t.min);
+ }
+ function buildMinOperation(e, t) {
+ return e.min >= t
+ ? new AstLiteral(t)
+ : e.max <= t
+ ? e
+ : new AstMin(e, t);
+ }
+ class PostScriptCompiler {
+ compile(e, t, a) {
+ const r = [],
+ n = [],
+ i = t.length >> 1,
+ s = a.length >> 1;
+ let o,
+ c,
+ l,
+ h,
+ u,
+ d,
+ f,
+ g,
+ p = 0;
+ for (let e = 0; e < i; e++)
+ r.push(new AstArgument(e, t[2 * e], t[2 * e + 1]));
+ for (let t = 0, a = e.length; t < a; t++) {
+ g = e[t];
+ if ("number" != typeof g)
+ switch (g) {
+ case "add":
+ if (r.length < 2) return null;
+ h = r.pop();
+ l = r.pop();
+ r.push(buildAddOperation(l, h));
+ break;
+ case "cvr":
+ if (r.length < 1) return null;
+ break;
+ case "mul":
+ if (r.length < 2) return null;
+ h = r.pop();
+ l = r.pop();
+ r.push(buildMulOperation(l, h));
+ break;
+ case "sub":
+ if (r.length < 2) return null;
+ h = r.pop();
+ l = r.pop();
+ r.push(buildSubOperation(l, h));
+ break;
+ case "exch":
+ if (r.length < 2) return null;
+ u = r.pop();
+ d = r.pop();
+ r.push(u, d);
+ break;
+ case "pop":
+ if (r.length < 1) return null;
+ r.pop();
+ break;
+ case "index":
+ if (r.length < 1) return null;
+ l = r.pop();
+ if ("literal" !== l.type) return null;
+ o = l.number;
+ if (o < 0 || !Number.isInteger(o) || r.length < o)
+ return null;
+ u = r[r.length - o - 1];
+ if ("literal" === u.type || "var" === u.type) {
+ r.push(u);
+ break;
+ }
+ f = new AstVariable(p++, u.min, u.max);
+ r[r.length - o - 1] = f;
+ r.push(f);
+ n.push(new AstVariableDefinition(f, u));
+ break;
+ case "dup":
+ if (r.length < 1) return null;
+ if (
+ "number" == typeof e[t + 1] &&
+ "gt" === e[t + 2] &&
+ e[t + 3] === t + 7 &&
+ "jz" === e[t + 4] &&
+ "pop" === e[t + 5] &&
+ e[t + 6] === e[t + 1]
+ ) {
+ l = r.pop();
+ r.push(buildMinOperation(l, e[t + 1]));
+ t += 6;
+ break;
+ }
+ u = r.at(-1);
+ if ("literal" === u.type || "var" === u.type) {
+ r.push(u);
+ break;
+ }
+ f = new AstVariable(p++, u.min, u.max);
+ r[r.length - 1] = f;
+ r.push(f);
+ n.push(new AstVariableDefinition(f, u));
+ break;
+ case "roll":
+ if (r.length < 2) return null;
+ h = r.pop();
+ l = r.pop();
+ if ("literal" !== h.type || "literal" !== l.type)
+ return null;
+ c = h.number;
+ o = l.number;
+ if (
+ o <= 0 ||
+ !Number.isInteger(o) ||
+ !Number.isInteger(c) ||
+ r.length < o
+ )
+ return null;
+ c = ((c % o) + o) % o;
+ if (0 === c) break;
+ r.push(...r.splice(r.length - o, o - c));
+ break;
+ default:
+ return null;
+ }
+ else r.push(new AstLiteral(g));
+ }
+ if (r.length !== s) return null;
+ const m = [];
+ for (const e of n) {
+ const t = new ExpressionBuilderVisitor();
+ e.visit(t);
+ m.push(t.toString());
+ }
+ for (let e = 0, t = r.length; e < t; e++) {
+ const t = r[e],
+ n = new ExpressionBuilderVisitor();
+ t.visit(n);
+ const i = a[2 * e],
+ s = a[2 * e + 1],
+ o = [n.toString()];
+ if (i > t.min) {
+ o.unshift("Math.max(", i, ", ");
+ o.push(")");
+ }
+ if (s < t.max) {
+ o.unshift("Math.min(", s, ", ");
+ o.push(")");
+ }
+ o.unshift("dest[destOffset + ", e, "] = ");
+ o.push(";");
+ m.push(o.join(""));
+ }
+ return m.join("\n");
+ }
+ }
+ t.PostScriptCompiler = PostScriptCompiler;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.PostScriptParser = t.PostScriptLexer = void 0;
+ var r = a(2),
+ n = a(4),
+ i = a(3);
+ t.PostScriptParser = class PostScriptParser {
+ constructor(e) {
+ this.lexer = e;
+ this.operators = [];
+ this.token = null;
+ this.prev = null;
+ }
+ nextToken() {
+ this.prev = this.token;
+ this.token = this.lexer.getToken();
+ }
+ accept(e) {
+ if (this.token.type === e) {
+ this.nextToken();
+ return !0;
+ }
+ return !1;
+ }
+ expect(e) {
+ if (this.accept(e)) return !0;
+ throw new r.FormatError(
+ `Unexpected symbol: found ${this.token.type} expected ${e}.`,
+ );
+ }
+ parse() {
+ this.nextToken();
+ this.expect(s.LBRACE);
+ this.parseBlock();
+ this.expect(s.RBRACE);
+ return this.operators;
+ }
+ parseBlock() {
+ for (;;)
+ if (this.accept(s.NUMBER)) this.operators.push(this.prev.value);
+ else if (this.accept(s.OPERATOR))
+ this.operators.push(this.prev.value);
+ else {
+ if (!this.accept(s.LBRACE)) return;
+ this.parseCondition();
+ }
+ }
+ parseCondition() {
+ const e = this.operators.length;
+ this.operators.push(null, null);
+ this.parseBlock();
+ this.expect(s.RBRACE);
+ if (this.accept(s.IF)) {
+ this.operators[e] = this.operators.length;
+ this.operators[e + 1] = "jz";
+ } else {
+ if (!this.accept(s.LBRACE))
+ throw new r.FormatError(
+ "PS Function: error parsing conditional.",
+ );
+ {
+ const t = this.operators.length;
+ this.operators.push(null, null);
+ const a = this.operators.length;
+ this.parseBlock();
+ this.expect(s.RBRACE);
+ this.expect(s.IFELSE);
+ this.operators[t] = this.operators.length;
+ this.operators[t + 1] = "j";
+ this.operators[e] = a;
+ this.operators[e + 1] = "jz";
+ }
+ }
+ }
+ };
+ const s = {
+ LBRACE: 0,
+ RBRACE: 1,
+ NUMBER: 2,
+ OPERATOR: 3,
+ IF: 4,
+ IFELSE: 5,
+ };
+ class PostScriptToken {
+ static get opCache() {
+ return (0, r.shadow)(this, "opCache", Object.create(null));
+ }
+ constructor(e, t) {
+ this.type = e;
+ this.value = t;
+ }
+ static getOperator(e) {
+ return (PostScriptToken.opCache[e] ||= new PostScriptToken(
+ s.OPERATOR,
+ e,
+ ));
+ }
+ static get LBRACE() {
+ return (0, r.shadow)(
+ this,
+ "LBRACE",
+ new PostScriptToken(s.LBRACE, "{"),
+ );
+ }
+ static get RBRACE() {
+ return (0, r.shadow)(
+ this,
+ "RBRACE",
+ new PostScriptToken(s.RBRACE, "}"),
+ );
+ }
+ static get IF() {
+ return (0, r.shadow)(this, "IF", new PostScriptToken(s.IF, "IF"));
+ }
+ static get IFELSE() {
+ return (0, r.shadow)(
+ this,
+ "IFELSE",
+ new PostScriptToken(s.IFELSE, "IFELSE"),
+ );
+ }
+ }
+ t.PostScriptLexer = class PostScriptLexer {
+ constructor(e) {
+ this.stream = e;
+ this.nextChar();
+ this.strBuf = [];
+ }
+ nextChar() {
+ return (this.currentChar = this.stream.getByte());
+ }
+ getToken() {
+ let e = !1,
+ t = this.currentChar;
+ for (;;) {
+ if (t < 0) return n.EOF;
+ if (e) (10 !== t && 13 !== t) || (e = !1);
+ else if (37 === t) e = !0;
+ else if (!(0, i.isWhiteSpace)(t)) break;
+ t = this.nextChar();
+ }
+ switch (0 | t) {
+ case 48:
+ case 49:
+ case 50:
+ case 51:
+ case 52:
+ case 53:
+ case 54:
+ case 55:
+ case 56:
+ case 57:
+ case 43:
+ case 45:
+ case 46:
+ return new PostScriptToken(s.NUMBER, this.getNumber());
+ case 123:
+ this.nextChar();
+ return PostScriptToken.LBRACE;
+ case 125:
+ this.nextChar();
+ return PostScriptToken.RBRACE;
+ }
+ const a = this.strBuf;
+ a.length = 0;
+ a[0] = String.fromCharCode(t);
+ for (
+ ;
+ (t = this.nextChar()) >= 0 &&
+ ((t >= 65 && t <= 90) || (t >= 97 && t <= 122));
+
+ )
+ a.push(String.fromCharCode(t));
+ const r = a.join("");
+ switch (r.toLowerCase()) {
+ case "if":
+ return PostScriptToken.IF;
+ case "ifelse":
+ return PostScriptToken.IFELSE;
+ default:
+ return PostScriptToken.getOperator(r);
+ }
+ }
+ getNumber() {
+ let e = this.currentChar;
+ const t = this.strBuf;
+ t.length = 0;
+ t[0] = String.fromCharCode(e);
+ for (
+ ;
+ (e = this.nextChar()) >= 0 &&
+ ((e >= 48 && e <= 57) || 45 === e || 46 === e);
+
+ )
+ t.push(String.fromCharCode(e));
+ const a = parseFloat(t.join(""));
+ if (isNaN(a))
+ throw new r.FormatError(`Invalid floating point number: ${a}`);
+ return a;
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.RegionalImageCache =
+ t.LocalTilingPatternCache =
+ t.LocalImageCache =
+ t.LocalGStateCache =
+ t.LocalFunctionCache =
+ t.LocalColorSpaceCache =
+ t.GlobalImageCache =
+ void 0;
+ var r = a(2),
+ n = a(4);
+ class BaseLocalCache {
+ constructor(e) {
+ this.constructor === BaseLocalCache &&
+ (0, r.unreachable)("Cannot initialize BaseLocalCache.");
+ this._onlyRefs = !0 === e?.onlyRefs;
+ if (!this._onlyRefs) {
+ this._nameRefMap = new Map();
+ this._imageMap = new Map();
+ }
+ this._imageCache = new n.RefSetCache();
+ }
+ getByName(e) {
+ this._onlyRefs &&
+ (0, r.unreachable)("Should not call `getByName` method.");
+ const t = this._nameRefMap.get(e);
+ return t ? this.getByRef(t) : this._imageMap.get(e) || null;
+ }
+ getByRef(e) {
+ return this._imageCache.get(e) || null;
+ }
+ set(e, t, a) {
+ (0, r.unreachable)("Abstract method `set` called.");
+ }
+ }
+ t.LocalImageCache = class LocalImageCache extends BaseLocalCache {
+ set(e, t = null, a) {
+ if ("string" != typeof e)
+ throw new Error(
+ 'LocalImageCache.set - expected "name" argument.',
+ );
+ if (t) {
+ if (this._imageCache.has(t)) return;
+ this._nameRefMap.set(e, t);
+ this._imageCache.put(t, a);
+ } else this._imageMap.has(e) || this._imageMap.set(e, a);
+ }
+ };
+ t.LocalColorSpaceCache = class LocalColorSpaceCache extends (
+ BaseLocalCache
+ ) {
+ set(e = null, t = null, a) {
+ if ("string" != typeof e && !t)
+ throw new Error(
+ 'LocalColorSpaceCache.set - expected "name" and/or "ref" argument.',
+ );
+ if (t) {
+ if (this._imageCache.has(t)) return;
+ null !== e && this._nameRefMap.set(e, t);
+ this._imageCache.put(t, a);
+ } else this._imageMap.has(e) || this._imageMap.set(e, a);
+ }
+ };
+ t.LocalFunctionCache = class LocalFunctionCache extends (
+ BaseLocalCache
+ ) {
+ constructor(e) {
+ super({ onlyRefs: !0 });
+ }
+ set(e = null, t, a) {
+ if (!t)
+ throw new Error(
+ 'LocalFunctionCache.set - expected "ref" argument.',
+ );
+ this._imageCache.has(t) || this._imageCache.put(t, a);
+ }
+ };
+ t.LocalGStateCache = class LocalGStateCache extends BaseLocalCache {
+ set(e, t = null, a) {
+ if ("string" != typeof e)
+ throw new Error(
+ 'LocalGStateCache.set - expected "name" argument.',
+ );
+ if (t) {
+ if (this._imageCache.has(t)) return;
+ this._nameRefMap.set(e, t);
+ this._imageCache.put(t, a);
+ } else this._imageMap.has(e) || this._imageMap.set(e, a);
+ }
+ };
+ t.LocalTilingPatternCache = class LocalTilingPatternCache extends (
+ BaseLocalCache
+ ) {
+ constructor(e) {
+ super({ onlyRefs: !0 });
+ }
+ set(e = null, t, a) {
+ if (!t)
+ throw new Error(
+ 'LocalTilingPatternCache.set - expected "ref" argument.',
+ );
+ this._imageCache.has(t) || this._imageCache.put(t, a);
+ }
+ };
+ t.RegionalImageCache = class RegionalImageCache extends (
+ BaseLocalCache
+ ) {
+ constructor(e) {
+ super({ onlyRefs: !0 });
+ }
+ set(e = null, t, a) {
+ if (!t)
+ throw new Error(
+ 'RegionalImageCache.set - expected "ref" argument.',
+ );
+ this._imageCache.has(t) || this._imageCache.put(t, a);
+ }
+ };
+ class GlobalImageCache {
+ static NUM_PAGES_THRESHOLD = 2;
+ static MIN_IMAGES_TO_CACHE = 10;
+ static MAX_BYTE_SIZE = 5 * r.MAX_IMAGE_SIZE_TO_CACHE;
+ constructor() {
+ this._refCache = new n.RefSetCache();
+ this._imageCache = new n.RefSetCache();
+ }
+ get _byteSize() {
+ let e = 0;
+ for (const t of this._imageCache) e += t.byteSize;
+ return e;
+ }
+ get _cacheLimitReached() {
+ return (
+ !(
+ this._imageCache.size < GlobalImageCache.MIN_IMAGES_TO_CACHE
+ ) && !(this._byteSize < GlobalImageCache.MAX_BYTE_SIZE)
+ );
+ }
+ shouldCache(e, t) {
+ let a = this._refCache.get(e);
+ if (!a) {
+ a = new Set();
+ this._refCache.put(e, a);
+ }
+ a.add(t);
+ return (
+ !(a.size < GlobalImageCache.NUM_PAGES_THRESHOLD) &&
+ !(!this._imageCache.has(e) && this._cacheLimitReached)
+ );
+ }
+ addByteSize(e, t) {
+ const a = this._imageCache.get(e);
+ a && (a.byteSize || (a.byteSize = t));
+ }
+ getData(e, t) {
+ const a = this._refCache.get(e);
+ if (!a) return null;
+ if (a.size < GlobalImageCache.NUM_PAGES_THRESHOLD) return null;
+ const r = this._imageCache.get(e);
+ if (!r) return null;
+ a.add(t);
+ return r;
+ }
+ setData(e, t) {
+ if (!this._refCache.has(e))
+ throw new Error(
+ 'GlobalImageCache.setData - expected "shouldCache" to have been called.',
+ );
+ this._imageCache.has(e) ||
+ (this._cacheLimitReached
+ ? (0, r.warn)(
+ "GlobalImageCache.setData - cache limit reached.",
+ )
+ : this._imageCache.put(e, t));
+ }
+ clear(e = !1) {
+ e || this._refCache.clear();
+ this._imageCache.clear();
+ }
+ }
+ t.GlobalImageCache = GlobalImageCache;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.bidi = function bidi(e, t = -1, a = !1) {
+ let c = !0;
+ const l = e.length;
+ if (0 === l || a) return createBidiText(e, c, a);
+ s.length = l;
+ o.length = l;
+ let h,
+ u,
+ d = 0;
+ for (h = 0; h < l; ++h) {
+ s[h] = e.charAt(h);
+ const t = e.charCodeAt(h);
+ let a = "L";
+ if (t <= 255) a = n[t];
+ else if (1424 <= t && t <= 1524) a = "R";
+ else if (1536 <= t && t <= 1791) {
+ a = i[255 & t];
+ a ||
+ (0, r.warn)(
+ "Bidi: invalid Unicode character " + t.toString(16),
+ );
+ } else
+ ((1792 <= t && t <= 2220) ||
+ (64336 <= t && t <= 65023) ||
+ (65136 <= t && t <= 65279)) &&
+ (a = "AL");
+ ("R" !== a && "AL" !== a && "AN" !== a) || d++;
+ o[h] = a;
+ }
+ if (0 === d) {
+ c = !0;
+ return createBidiText(e, c);
+ }
+ if (-1 === t)
+ if (d / l < 0.3 && l > 4) {
+ c = !0;
+ t = 0;
+ } else {
+ c = !1;
+ t = 1;
+ }
+ const f = [];
+ for (h = 0; h < l; ++h) f[h] = t;
+ const g = isOdd(t) ? "R" : "L",
+ p = g,
+ m = p;
+ let b,
+ y = p;
+ for (h = 0; h < l; ++h) "NSM" === o[h] ? (o[h] = y) : (y = o[h]);
+ y = p;
+ for (h = 0; h < l; ++h) {
+ b = o[h];
+ "EN" === b
+ ? (o[h] = "AL" === y ? "AN" : "EN")
+ : ("R" !== b && "L" !== b && "AL" !== b) || (y = b);
+ }
+ for (h = 0; h < l; ++h) {
+ b = o[h];
+ "AL" === b && (o[h] = "R");
+ }
+ for (h = 1; h < l - 1; ++h) {
+ "ES" === o[h] &&
+ "EN" === o[h - 1] &&
+ "EN" === o[h + 1] &&
+ (o[h] = "EN");
+ "CS" !== o[h] ||
+ ("EN" !== o[h - 1] && "AN" !== o[h - 1]) ||
+ o[h + 1] !== o[h - 1] ||
+ (o[h] = o[h - 1]);
+ }
+ for (h = 0; h < l; ++h)
+ if ("EN" === o[h]) {
+ for (let e = h - 1; e >= 0 && "ET" === o[e]; --e) o[e] = "EN";
+ for (let e = h + 1; e < l && "ET" === o[e]; ++e) o[e] = "EN";
+ }
+ for (h = 0; h < l; ++h) {
+ b = o[h];
+ ("WS" !== b && "ES" !== b && "ET" !== b && "CS" !== b) ||
+ (o[h] = "ON");
+ }
+ y = p;
+ for (h = 0; h < l; ++h) {
+ b = o[h];
+ "EN" === b
+ ? (o[h] = "L" === y ? "L" : "EN")
+ : ("R" !== b && "L" !== b) || (y = b);
+ }
+ for (h = 0; h < l; ++h)
+ if ("ON" === o[h]) {
+ const e = findUnequal(o, h + 1, "ON");
+ let t = p;
+ h > 0 && (t = o[h - 1]);
+ let a = m;
+ e + 1 < l && (a = o[e + 1]);
+ "L" !== t && (t = "R");
+ "L" !== a && (a = "R");
+ t === a && setValues(o, h, e, t);
+ h = e - 1;
+ }
+ for (h = 0; h < l; ++h) "ON" === o[h] && (o[h] = g);
+ for (h = 0; h < l; ++h) {
+ b = o[h];
+ isEven(f[h])
+ ? "R" === b
+ ? (f[h] += 1)
+ : ("AN" !== b && "EN" !== b) || (f[h] += 2)
+ : ("L" !== b && "AN" !== b && "EN" !== b) || (f[h] += 1);
+ }
+ let w,
+ S = -1,
+ x = 99;
+ for (h = 0, u = f.length; h < u; ++h) {
+ w = f[h];
+ S < w && (S = w);
+ x > w && isOdd(w) && (x = w);
+ }
+ for (w = S; w >= x; --w) {
+ let e = -1;
+ for (h = 0, u = f.length; h < u; ++h)
+ if (f[h] < w) {
+ if (e >= 0) {
+ reverseValues(s, e, h);
+ e = -1;
+ }
+ } else e < 0 && (e = h);
+ e >= 0 && reverseValues(s, e, f.length);
+ }
+ for (h = 0, u = s.length; h < u; ++h) {
+ const e = s[h];
+ ("<" !== e && ">" !== e) || (s[h] = "");
+ }
+ return createBidiText(s.join(""), c);
+ };
+ var r = a(2);
+ const n = [
+ "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",
+ "ON",
+ "ON",
+ "ET",
+ "ET",
+ "ET",
+ "ON",
+ "ON",
+ "ON",
+ "ON",
+ "ON",
+ "ES",
+ "CS",
+ "ES",
+ "CS",
+ "CS",
+ "EN",
+ "EN",
+ "EN",
+ "EN",
+ "EN",
+ "EN",
+ "EN",
+ "EN",
+ "EN",
+ "EN",
+ "CS",
+ "ON",
+ "ON",
+ "ON",
+ "ON",
+ "ON",
+ "ON",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "ON",
+ "ON",
+ "ON",
+ "ON",
+ "ON",
+ "ON",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "ON",
+ "ON",
+ "ON",
+ "ON",
+ "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",
+ "ON",
+ "ET",
+ "ET",
+ "ET",
+ "ET",
+ "ON",
+ "ON",
+ "ON",
+ "ON",
+ "L",
+ "ON",
+ "ON",
+ "BN",
+ "ON",
+ "ON",
+ "ET",
+ "ET",
+ "EN",
+ "EN",
+ "ON",
+ "L",
+ "ON",
+ "ON",
+ "ON",
+ "EN",
+ "L",
+ "ON",
+ "ON",
+ "ON",
+ "ON",
+ "ON",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "ON",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "ON",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ "L",
+ ],
+ i = [
+ "AN",
+ "AN",
+ "AN",
+ "AN",
+ "AN",
+ "AN",
+ "ON",
+ "ON",
+ "AL",
+ "ET",
+ "ET",
+ "AL",
+ "CS",
+ "AL",
+ "ON",
+ "ON",
+ "NSM",
+ "NSM",
+ "NSM",
+ "NSM",
+ "NSM",
+ "NSM",
+ "NSM",
+ "NSM",
+ "NSM",
+ "NSM",
+ "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",
+ "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",
+ "ON",
+ "NSM",
+ "NSM",
+ "NSM",
+ "NSM",
+ "NSM",
+ "NSM",
+ "AL",
+ "AL",
+ "NSM",
+ "NSM",
+ "ON",
+ "NSM",
+ "NSM",
+ "NSM",
+ "NSM",
+ "AL",
+ "AL",
+ "EN",
+ "EN",
+ "EN",
+ "EN",
+ "EN",
+ "EN",
+ "EN",
+ "EN",
+ "EN",
+ "EN",
+ "AL",
+ "AL",
+ "AL",
+ "AL",
+ "AL",
+ "AL",
+ ];
+ function isOdd(e) {
+ return 0 != (1 & e);
+ }
+ function isEven(e) {
+ return 0 == (1 & e);
+ }
+ function findUnequal(e, t, a) {
+ let r, n;
+ for (r = t, n = e.length; r < n; ++r) if (e[r] !== a) return r;
+ return r;
+ }
+ function setValues(e, t, a, r) {
+ for (let n = t; n < a; ++n) e[n] = r;
+ }
+ function reverseValues(e, t, a) {
+ for (let r = t, n = a - 1; r < n; ++r, --n) {
+ const t = e[r];
+ e[r] = e[n];
+ e[n] = t;
+ }
+ }
+ function createBidiText(e, t, a = !1) {
+ let r = "ltr";
+ a ? (r = "ttb") : t || (r = "rtl");
+ return { str: e, dir: r };
+ }
+ const s = [],
+ o = [];
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.getFontSubstitution = function getFontSubstitution(e, t, a, u, d) {
+ const f = (u = (0, r.normalizeFontName)(u));
+ let g = e.get(f);
+ if (g) return g;
+ let p = l.get(u);
+ if (!p)
+ for (const [e, t] of h)
+ if (u.startsWith(e)) {
+ u = `${t}${u.substring(e.length)}`;
+ p = l.get(u);
+ break;
+ }
+ let m = !1;
+ if (!p) {
+ p = l.get(d);
+ m = !0;
+ }
+ const b = `${t.getDocId()}_s${t.createFontId()}`;
+ if (!p) {
+ if (!(0, n.validateFontName)(u)) {
+ e.set(f, null);
+ return null;
+ }
+ const t = /bold/gi.test(u),
+ a = /oblique|italic/gi.test(u);
+ g = {
+ css: b,
+ guessFallback: !0,
+ loadedName: b,
+ baseFontName: u,
+ src: `local(${u})`,
+ style: (t && a && c) || (t && s) || (a && o) || i,
+ };
+ e.set(f, g);
+ return g;
+ }
+ const y = [];
+ m && (0, n.validateFontName)(u) && y.push(`local(${u})`);
+ const { style: w, ultimate: S } = generateFont(p, y, a),
+ x = null === S;
+ g = {
+ css: `${b}${x ? "" : `,${S}`}`,
+ guessFallback: x,
+ loadedName: b,
+ baseFontName: u,
+ src: y.join(","),
+ style: w,
+ };
+ e.set(f, g);
+ return g;
+ };
+ var r = a(38),
+ n = a(3);
+ const i = { style: "normal", weight: "normal" },
+ s = { style: "normal", weight: "bold" },
+ o = { style: "italic", weight: "normal" },
+ c = { style: "italic", weight: "bold" },
+ l = new Map([
+ [
+ "Times-Roman",
+ {
+ local: [
+ "Times New Roman",
+ "Times-Roman",
+ "Times",
+ "Liberation Serif",
+ "Nimbus Roman",
+ "Nimbus Roman L",
+ "Tinos",
+ "Thorndale",
+ "TeX Gyre Termes",
+ "FreeSerif",
+ "DejaVu Serif",
+ "Bitstream Vera Serif",
+ "Ubuntu",
+ ],
+ style: i,
+ ultimate: "serif",
+ },
+ ],
+ [
+ "Times-Bold",
+ { alias: "Times-Roman", style: s, ultimate: "serif" },
+ ],
+ [
+ "Times-Italic",
+ { alias: "Times-Roman", style: o, ultimate: "serif" },
+ ],
+ [
+ "Times-BoldItalic",
+ { alias: "Times-Roman", style: c, ultimate: "serif" },
+ ],
+ [
+ "Helvetica",
+ {
+ local: [
+ "Helvetica",
+ "Helvetica Neue",
+ "Arial",
+ "Arial Nova",
+ "Liberation Sans",
+ "Arimo",
+ "Nimbus Sans",
+ "Nimbus Sans L",
+ "A030",
+ "TeX Gyre Heros",
+ "FreeSans",
+ "DejaVu Sans",
+ "Albany",
+ "Bitstream Vera Sans",
+ "Arial Unicode MS",
+ "Microsoft Sans Serif",
+ "Apple Symbols",
+ "Cantarell",
+ ],
+ path: "LiberationSans-Regular.ttf",
+ style: i,
+ ultimate: "sans-serif",
+ },
+ ],
+ [
+ "Helvetica-Bold",
+ {
+ alias: "Helvetica",
+ path: "LiberationSans-Bold.ttf",
+ style: s,
+ ultimate: "sans-serif",
+ },
+ ],
+ [
+ "Helvetica-Oblique",
+ {
+ alias: "Helvetica",
+ path: "LiberationSans-Italic.ttf",
+ style: o,
+ ultimate: "sans-serif",
+ },
+ ],
+ [
+ "Helvetica-BoldOblique",
+ {
+ alias: "Helvetica",
+ path: "LiberationSans-BoldItalic.ttf",
+ style: c,
+ ultimate: "sans-serif",
+ },
+ ],
+ [
+ "Courier",
+ {
+ local: [
+ "Courier",
+ "Courier New",
+ "Liberation Mono",
+ "Nimbus Mono",
+ "Nimbus Mono L",
+ "Cousine",
+ "Cumberland",
+ "TeX Gyre Cursor",
+ "FreeMono",
+ ],
+ style: i,
+ ultimate: "monospace",
+ },
+ ],
+ [
+ "Courier-Bold",
+ { alias: "Courier", style: s, ultimate: "monospace" },
+ ],
+ [
+ "Courier-Oblique",
+ { alias: "Courier", style: o, ultimate: "monospace" },
+ ],
+ [
+ "Courier-BoldOblique",
+ { alias: "Courier", style: c, ultimate: "monospace" },
+ ],
+ [
+ "ArialBlack",
+ {
+ local: ["Arial Black"],
+ style: { style: "normal", weight: "900" },
+ fallback: "Helvetica-Bold",
+ },
+ ],
+ ["ArialBlack-Bold", { alias: "ArialBlack" }],
+ [
+ "ArialBlack-Italic",
+ {
+ alias: "ArialBlack",
+ style: { style: "italic", weight: "900" },
+ fallback: "Helvetica-BoldOblique",
+ },
+ ],
+ ["ArialBlack-BoldItalic", { alias: "ArialBlack-Italic" }],
+ [
+ "ArialNarrow",
+ {
+ local: [
+ "Arial Narrow",
+ "Liberation Sans Narrow",
+ "Helvetica Condensed",
+ "Nimbus Sans Narrow",
+ "TeX Gyre Heros Cn",
+ ],
+ style: i,
+ fallback: "Helvetica",
+ },
+ ],
+ [
+ "ArialNarrow-Bold",
+ { alias: "ArialNarrow", style: s, fallback: "Helvetica-Bold" },
+ ],
+ [
+ "ArialNarrow-Italic",
+ {
+ alias: "ArialNarrow",
+ style: o,
+ fallback: "Helvetica-Oblique",
+ },
+ ],
+ [
+ "ArialNarrow-BoldItalic",
+ {
+ alias: "ArialNarrow",
+ style: c,
+ fallback: "Helvetica-BoldOblique",
+ },
+ ],
+ [
+ "Calibri",
+ {
+ local: ["Calibri", "Carlito"],
+ style: i,
+ fallback: "Helvetica",
+ },
+ ],
+ [
+ "Calibri-Bold",
+ { alias: "Calibri", style: s, fallback: "Helvetica-Bold" },
+ ],
+ [
+ "Calibri-Italic",
+ { alias: "Calibri", style: o, fallback: "Helvetica-Oblique" },
+ ],
+ [
+ "Calibri-BoldItalic",
+ {
+ alias: "Calibri",
+ style: c,
+ fallback: "Helvetica-BoldOblique",
+ },
+ ],
+ ["Wingdings", { local: ["Wingdings", "URW Dingbats"], style: i }],
+ ["Wingdings-Regular", { alias: "Wingdings" }],
+ ["Wingdings-Bold", { alias: "Wingdings" }],
+ ]),
+ h = new Map([["Arial-Black", "ArialBlack"]]);
+ function generateFont(
+ { alias: e, local: t, path: a, fallback: r, style: n, ultimate: i },
+ h,
+ u,
+ d = !0,
+ f = !0,
+ g = "",
+ ) {
+ const p = { style: null, ultimate: null };
+ if (t) {
+ const e = g ? ` ${g}` : "";
+ for (const a of t) h.push(`local(${a}${e})`);
+ }
+ if (e) {
+ const t = l.get(e),
+ i =
+ g ||
+ (function getStyleToAppend(e) {
+ switch (e) {
+ case s:
+ return "Bold";
+ case o:
+ return "Italic";
+ case c:
+ return "Bold Italic";
+ default:
+ if ("bold" === e?.weight) return "Bold";
+ if ("italic" === e?.style) return "Italic";
+ }
+ return "";
+ })(n);
+ Object.assign(p, generateFont(t, h, u, d && !r, f && !a, i));
+ }
+ n && (p.style = n);
+ i && (p.ultimate = i);
+ if (d && r) {
+ const e = l.get(r),
+ { ultimate: t } = generateFont(e, h, u, d, f && !a, g);
+ p.ultimate ||= t;
+ }
+ f && a && u && h.push(`url(${u}${a})`);
+ return p;
+ }
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.ImageResizer = void 0;
+ var r = a(2);
+ class ImageResizer {
+ constructor(e, t) {
+ this._imgData = e;
+ this._isMask = t;
+ }
+ static needsToBeResized(e, t) {
+ if (e <= this._goodSquareLength && t <= this._goodSquareLength)
+ return !1;
+ const { MAX_DIM: a } = this;
+ if (e > a || t > a) return !0;
+ const r = e * t;
+ if (this._hasMaxArea) return r > this.MAX_AREA;
+ if (r < this._goodSquareLength ** 2) return !1;
+ if (this._areGoodDims(e, t)) {
+ this._goodSquareLength = Math.max(
+ this._goodSquareLength,
+ Math.floor(Math.sqrt(e * t)),
+ );
+ return !1;
+ }
+ this._goodSquareLength = this._guessMax(
+ this._goodSquareLength,
+ a,
+ 128,
+ 0,
+ );
+ return r > (this.MAX_AREA = this._goodSquareLength ** 2);
+ }
+ static get MAX_DIM() {
+ return (0, r.shadow)(
+ this,
+ "MAX_DIM",
+ this._guessMax(2048, 65537, 0, 1),
+ );
+ }
+ static get MAX_AREA() {
+ this._hasMaxArea = !0;
+ return (0, r.shadow)(
+ this,
+ "MAX_AREA",
+ this._guessMax(
+ ImageResizer._goodSquareLength,
+ this.MAX_DIM,
+ 128,
+ 0,
+ ) ** 2,
+ );
+ }
+ static set MAX_AREA(e) {
+ if (e >= 0) {
+ this._hasMaxArea = !0;
+ (0, r.shadow)(this, "MAX_AREA", e);
+ }
+ }
+ static setMaxArea(e) {
+ this._hasMaxArea || (this.MAX_AREA = e >> 2);
+ }
+ static _areGoodDims(e, t) {
+ try {
+ const a = new OffscreenCanvas(e, t),
+ r = a.getContext("2d");
+ r.fillRect(0, 0, 1, 1);
+ const n = r.getImageData(0, 0, 1, 1).data[3];
+ a.width = a.height = 1;
+ return 0 !== n;
+ } catch {
+ return !1;
+ }
+ }
+ static _guessMax(e, t, a, r) {
+ for (; e + a + 1 < t; ) {
+ const a = Math.floor((e + t) / 2),
+ n = r || a;
+ this._areGoodDims(a, n) ? (e = a) : (t = a);
+ }
+ return e;
+ }
+ static async createImage(e, t = !1) {
+ return new ImageResizer(e, t)._createImage();
+ }
+ async _createImage() {
+ const e = this._encodeBMP(),
+ t = new Blob([e.buffer], { type: "image/bmp" }),
+ a = createImageBitmap(t),
+ { MAX_AREA: r, MAX_DIM: n } = ImageResizer,
+ { _imgData: i } = this,
+ { width: s, height: o } = i,
+ c = Math.max(s / n, o / n, Math.sqrt((s * o) / r)),
+ l = Math.max(c, 2),
+ h = Math.round(10 * (c + 1.25)) / 10 / l,
+ u = Math.floor(Math.log2(h)),
+ d = new Array(u + 2).fill(2);
+ d[0] = l;
+ d.splice(-1, 1, h / (1 << u));
+ let f = s,
+ g = o,
+ p = await a;
+ for (const e of d) {
+ const t = f,
+ a = g;
+ f = Math.floor(f / e) - 1;
+ g = Math.floor(g / e) - 1;
+ const r = new OffscreenCanvas(f, g);
+ r.getContext("2d").drawImage(p, 0, 0, t, a, 0, 0, f, g);
+ p = r.transferToImageBitmap();
+ }
+ i.data = null;
+ i.bitmap = p;
+ i.width = f;
+ i.height = g;
+ return i;
+ }
+ _encodeBMP() {
+ const { width: e, height: t, kind: a } = this._imgData;
+ let n,
+ i = this._imgData.data,
+ s = new Uint8Array(0),
+ o = s,
+ c = 0;
+ switch (a) {
+ case r.ImageKind.GRAYSCALE_1BPP: {
+ n = 1;
+ s = new Uint8Array(
+ this._isMask
+ ? [255, 255, 255, 255, 0, 0, 0, 0]
+ : [0, 0, 0, 0, 255, 255, 255, 255],
+ );
+ const a = (e + 7) >> 3,
+ r = (a + 3) & -4;
+ if (a !== r) {
+ const e = new Uint8Array(r * t);
+ let n = 0;
+ for (let s = 0, o = t * a; s < o; s += a, n += r)
+ e.set(i.subarray(s, s + a), n);
+ i = e;
+ }
+ break;
+ }
+ case r.ImageKind.RGB_24BPP:
+ n = 24;
+ if (3 & e) {
+ const a = 3 * e,
+ r = (a + 3) & -4,
+ n = r - a,
+ s = new Uint8Array(r * t);
+ let o = 0;
+ for (let e = 0, r = t * a; e < r; e += a) {
+ const t = i.subarray(e, e + a);
+ for (let e = 0; e < a; e += 3) {
+ s[o++] = t[e + 2];
+ s[o++] = t[e + 1];
+ s[o++] = t[e];
+ }
+ o += n;
+ }
+ i = s;
+ } else
+ for (let e = 0, t = i.length; e < t; e += 3) {
+ const t = i[e];
+ i[e] = i[e + 2];
+ i[e + 2] = t;
+ }
+ break;
+ case r.ImageKind.RGBA_32BPP:
+ n = 32;
+ c = 3;
+ o = new Uint8Array(68);
+ const a = new DataView(o.buffer);
+ if (r.FeatureTest.isLittleEndian) {
+ a.setUint32(0, 255, !0);
+ a.setUint32(4, 65280, !0);
+ a.setUint32(8, 16711680, !0);
+ a.setUint32(12, 4278190080, !0);
+ } else {
+ a.setUint32(0, 4278190080, !0);
+ a.setUint32(4, 16711680, !0);
+ a.setUint32(8, 65280, !0);
+ a.setUint32(12, 255, !0);
+ }
+ break;
+ default:
+ throw new Error("invalid format");
+ }
+ let l = 0;
+ const h = 40 + o.length,
+ u = 14 + h + s.length + i.length,
+ d = new Uint8Array(u),
+ f = new DataView(d.buffer);
+ f.setUint16(l, 19778, !0);
+ l += 2;
+ f.setUint32(l, u, !0);
+ l += 4;
+ f.setUint32(l, 0, !0);
+ l += 4;
+ f.setUint32(l, 14 + h + s.length, !0);
+ l += 4;
+ f.setUint32(l, h, !0);
+ l += 4;
+ f.setInt32(l, e, !0);
+ l += 4;
+ f.setInt32(l, -t, !0);
+ l += 4;
+ f.setUint16(l, 1, !0);
+ l += 2;
+ f.setUint16(l, n, !0);
+ l += 2;
+ f.setUint32(l, c, !0);
+ l += 4;
+ f.setUint32(l, 0, !0);
+ l += 4;
+ f.setInt32(l, 0, !0);
+ l += 4;
+ f.setInt32(l, 0, !0);
+ l += 4;
+ f.setUint32(l, s.length / 4, !0);
+ l += 4;
+ f.setUint32(l, 0, !0);
+ l += 4;
+ d.set(o, l);
+ l += o.length;
+ d.set(s, l);
+ l += s.length;
+ d.set(i, l);
+ return d;
+ }
+ }
+ t.ImageResizer = ImageResizer;
+ ImageResizer._goodSquareLength = 2048;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.MurmurHash3_64 = void 0;
+ var r = a(2);
+ const n = 3285377520,
+ i = 4294901760,
+ s = 65535;
+ t.MurmurHash3_64 = class MurmurHash3_64 {
+ constructor(e) {
+ this.h1 = e ? 4294967295 & e : n;
+ this.h2 = e ? 4294967295 & e : n;
+ }
+ update(e) {
+ let t, a;
+ if ("string" == typeof e) {
+ t = new Uint8Array(2 * e.length);
+ a = 0;
+ for (let r = 0, n = e.length; r < n; r++) {
+ const n = e.charCodeAt(r);
+ if (n <= 255) t[a++] = n;
+ else {
+ t[a++] = n >>> 8;
+ t[a++] = 255 & n;
+ }
+ }
+ } else {
+ if (!(0, r.isArrayBuffer)(e))
+ throw new Error(
+ "Wrong data format in MurmurHash3_64_update. Input must be a string or array.",
+ );
+ t = e.slice();
+ a = t.byteLength;
+ }
+ const n = a >> 2,
+ o = a - 4 * n,
+ c = new Uint32Array(t.buffer, 0, n);
+ let l = 0,
+ h = 0,
+ u = this.h1,
+ d = this.h2;
+ const f = 3432918353,
+ g = 461845907,
+ p = 11601,
+ m = 13715;
+ for (let e = 0; e < n; e++)
+ if (1 & e) {
+ l = c[e];
+ l = ((l * f) & i) | ((l * p) & s);
+ l = (l << 15) | (l >>> 17);
+ l = ((l * g) & i) | ((l * m) & s);
+ u ^= l;
+ u = (u << 13) | (u >>> 19);
+ u = 5 * u + 3864292196;
+ } else {
+ h = c[e];
+ h = ((h * f) & i) | ((h * p) & s);
+ h = (h << 15) | (h >>> 17);
+ h = ((h * g) & i) | ((h * m) & s);
+ d ^= h;
+ d = (d << 13) | (d >>> 19);
+ d = 5 * d + 3864292196;
+ }
+ l = 0;
+ switch (o) {
+ case 3:
+ l ^= t[4 * n + 2] << 16;
+ case 2:
+ l ^= t[4 * n + 1] << 8;
+ case 1:
+ l ^= t[4 * n];
+ l = ((l * f) & i) | ((l * p) & s);
+ l = (l << 15) | (l >>> 17);
+ l = ((l * g) & i) | ((l * m) & s);
+ 1 & n ? (u ^= l) : (d ^= l);
+ }
+ this.h1 = u;
+ this.h2 = d;
+ }
+ hexdigest() {
+ let e = this.h1,
+ t = this.h2;
+ e ^= t >>> 1;
+ e = ((3981806797 * e) & i) | ((36045 * e) & s);
+ t =
+ ((4283543511 * t) & i) |
+ (((2950163797 * ((t << 16) | (e >>> 16))) & i) >>> 16);
+ e ^= t >>> 1;
+ e = ((444984403 * e) & i) | ((60499 * e) & s);
+ t =
+ ((3301882366 * t) & i) |
+ (((3120437893 * ((t << 16) | (e >>> 16))) & i) >>> 16);
+ e ^= t >>> 1;
+ return (
+ (e >>> 0).toString(16).padStart(8, "0") +
+ (t >>> 0).toString(16).padStart(8, "0")
+ );
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.OperatorList = void 0;
+ var r = a(2);
+ function addState(e, t, a, r, n) {
+ let i = e;
+ for (let e = 0, a = t.length - 1; e < a; e++) {
+ const a = t[e];
+ i = i[a] ||= [];
+ }
+ i[t.at(-1)] = { checkFn: a, iterateFn: r, processFn: n };
+ }
+ const n = [];
+ addState(
+ n,
+ [
+ r.OPS.save,
+ r.OPS.transform,
+ r.OPS.paintInlineImageXObject,
+ r.OPS.restore,
+ ],
+ null,
+ function iterateInlineImageGroup(e, t) {
+ const a = e.fnArray,
+ n = (t - (e.iCurr - 3)) % 4;
+ switch (n) {
+ case 0:
+ return a[t] === r.OPS.save;
+ case 1:
+ return a[t] === r.OPS.transform;
+ case 2:
+ return a[t] === r.OPS.paintInlineImageXObject;
+ case 3:
+ return a[t] === r.OPS.restore;
+ }
+ throw new Error(`iterateInlineImageGroup - invalid pos: ${n}`);
+ },
+ function foundInlineImageGroup(e, t) {
+ const a = e.fnArray,
+ n = e.argsArray,
+ i = e.iCurr,
+ s = i - 3,
+ o = i - 2,
+ c = i - 1,
+ l = Math.min(Math.floor((t - s) / 4), 200);
+ if (l < 10) return t - ((t - s) % 4);
+ let h = 0;
+ const u = [];
+ let d = 0,
+ f = 1,
+ g = 1;
+ for (let e = 0; e < l; e++) {
+ const t = n[o + (e << 2)],
+ a = n[c + (e << 2)][0];
+ if (f + a.width > 1e3) {
+ h = Math.max(h, f);
+ g += d + 2;
+ f = 0;
+ d = 0;
+ }
+ u.push({ transform: t, x: f, y: g, w: a.width, h: a.height });
+ f += a.width + 2;
+ d = Math.max(d, a.height);
+ }
+ const p = Math.max(h, f) + 1,
+ m = g + d + 1,
+ b = new Uint8Array(p * m * 4),
+ y = p << 2;
+ for (let e = 0; e < l; e++) {
+ const t = n[c + (e << 2)][0].data,
+ a = u[e].w << 2;
+ let r = 0,
+ i = (u[e].x + u[e].y * p) << 2;
+ b.set(t.subarray(0, a), i - y);
+ for (let n = 0, s = u[e].h; n < s; n++) {
+ b.set(t.subarray(r, r + a), i);
+ r += a;
+ i += y;
+ }
+ b.set(t.subarray(r - a, r), i);
+ for (; i >= 0; ) {
+ t[i - 4] = t[i];
+ t[i - 3] = t[i + 1];
+ t[i - 2] = t[i + 2];
+ t[i - 1] = t[i + 3];
+ t[i + a] = t[i + a - 4];
+ t[i + a + 1] = t[i + a - 3];
+ t[i + a + 2] = t[i + a - 2];
+ t[i + a + 3] = t[i + a - 1];
+ i -= y;
+ }
+ }
+ const w = { width: p, height: m };
+ if (e.isOffscreenCanvasSupported) {
+ const e = new OffscreenCanvas(p, m);
+ e.getContext("2d").putImageData(
+ new ImageData(new Uint8ClampedArray(b.buffer), p, m),
+ 0,
+ 0,
+ );
+ w.bitmap = e.transferToImageBitmap();
+ w.data = null;
+ } else {
+ w.kind = r.ImageKind.RGBA_32BPP;
+ w.data = b;
+ }
+ a.splice(s, 4 * l, r.OPS.paintInlineImageXObjectGroup);
+ n.splice(s, 4 * l, [w, u]);
+ return s + 1;
+ },
+ );
+ addState(
+ n,
+ [
+ r.OPS.save,
+ r.OPS.transform,
+ r.OPS.paintImageMaskXObject,
+ r.OPS.restore,
+ ],
+ null,
+ function iterateImageMaskGroup(e, t) {
+ const a = e.fnArray,
+ n = (t - (e.iCurr - 3)) % 4;
+ switch (n) {
+ case 0:
+ return a[t] === r.OPS.save;
+ case 1:
+ return a[t] === r.OPS.transform;
+ case 2:
+ return a[t] === r.OPS.paintImageMaskXObject;
+ case 3:
+ return a[t] === r.OPS.restore;
+ }
+ throw new Error(`iterateImageMaskGroup - invalid pos: ${n}`);
+ },
+ function foundImageMaskGroup(e, t) {
+ const a = e.fnArray,
+ n = e.argsArray,
+ i = e.iCurr,
+ s = i - 3,
+ o = i - 2,
+ c = i - 1;
+ let l = Math.floor((t - s) / 4);
+ if (l < 10) return t - ((t - s) % 4);
+ let h,
+ u,
+ d = !1;
+ const f = n[c][0],
+ g = n[o][0],
+ p = n[o][1],
+ m = n[o][2],
+ b = n[o][3];
+ if (p === m) {
+ d = !0;
+ h = o + 4;
+ let e = c + 4;
+ for (let t = 1; t < l; t++, h += 4, e += 4) {
+ u = n[h];
+ if (
+ n[e][0] !== f ||
+ u[0] !== g ||
+ u[1] !== p ||
+ u[2] !== m ||
+ u[3] !== b
+ ) {
+ t < 10 ? (d = !1) : (l = t);
+ break;
+ }
+ }
+ }
+ if (d) {
+ l = Math.min(l, 1e3);
+ const e = new Float32Array(2 * l);
+ h = o;
+ for (let t = 0; t < l; t++, h += 4) {
+ u = n[h];
+ e[t << 1] = u[4];
+ e[1 + (t << 1)] = u[5];
+ }
+ a.splice(s, 4 * l, r.OPS.paintImageMaskXObjectRepeat);
+ n.splice(s, 4 * l, [f, g, p, m, b, e]);
+ } else {
+ l = Math.min(l, 100);
+ const e = [];
+ for (let t = 0; t < l; t++) {
+ u = n[o + (t << 2)];
+ const a = n[c + (t << 2)][0];
+ e.push({
+ data: a.data,
+ width: a.width,
+ height: a.height,
+ interpolate: a.interpolate,
+ count: a.count,
+ transform: u,
+ });
+ }
+ a.splice(s, 4 * l, r.OPS.paintImageMaskXObjectGroup);
+ n.splice(s, 4 * l, [e]);
+ }
+ return s + 1;
+ },
+ );
+ addState(
+ n,
+ [
+ r.OPS.save,
+ r.OPS.transform,
+ r.OPS.paintImageXObject,
+ r.OPS.restore,
+ ],
+ function (e) {
+ const t = e.argsArray,
+ a = e.iCurr - 2;
+ return 0 === t[a][1] && 0 === t[a][2];
+ },
+ function iterateImageGroup(e, t) {
+ const a = e.fnArray,
+ n = e.argsArray,
+ i = (t - (e.iCurr - 3)) % 4;
+ switch (i) {
+ case 0:
+ return a[t] === r.OPS.save;
+ case 1:
+ if (a[t] !== r.OPS.transform) return !1;
+ const i = e.iCurr - 2,
+ s = n[i][0],
+ o = n[i][3];
+ return (
+ n[t][0] === s &&
+ 0 === n[t][1] &&
+ 0 === n[t][2] &&
+ n[t][3] === o
+ );
+ case 2:
+ if (a[t] !== r.OPS.paintImageXObject) return !1;
+ const c = n[e.iCurr - 1][0];
+ return n[t][0] === c;
+ case 3:
+ return a[t] === r.OPS.restore;
+ }
+ throw new Error(`iterateImageGroup - invalid pos: ${i}`);
+ },
+ function (e, t) {
+ const a = e.fnArray,
+ n = e.argsArray,
+ i = e.iCurr,
+ s = i - 3,
+ o = i - 2,
+ c = n[i - 1][0],
+ l = n[o][0],
+ h = n[o][3],
+ u = Math.min(Math.floor((t - s) / 4), 1e3);
+ if (u < 3) return t - ((t - s) % 4);
+ const d = new Float32Array(2 * u);
+ let f = o;
+ for (let e = 0; e < u; e++, f += 4) {
+ const t = n[f];
+ d[e << 1] = t[4];
+ d[1 + (e << 1)] = t[5];
+ }
+ const g = [c, l, h, d];
+ a.splice(s, 4 * u, r.OPS.paintImageXObjectRepeat);
+ n.splice(s, 4 * u, g);
+ return s + 1;
+ },
+ );
+ addState(
+ n,
+ [
+ r.OPS.beginText,
+ r.OPS.setFont,
+ r.OPS.setTextMatrix,
+ r.OPS.showText,
+ r.OPS.endText,
+ ],
+ null,
+ function iterateShowTextGroup(e, t) {
+ const a = e.fnArray,
+ n = e.argsArray,
+ i = (t - (e.iCurr - 4)) % 5;
+ switch (i) {
+ case 0:
+ return a[t] === r.OPS.beginText;
+ case 1:
+ return a[t] === r.OPS.setFont;
+ case 2:
+ return a[t] === r.OPS.setTextMatrix;
+ case 3:
+ if (a[t] !== r.OPS.showText) return !1;
+ const i = e.iCurr - 3,
+ s = n[i][0],
+ o = n[i][1];
+ return n[t][0] === s && n[t][1] === o;
+ case 4:
+ return a[t] === r.OPS.endText;
+ }
+ throw new Error(`iterateShowTextGroup - invalid pos: ${i}`);
+ },
+ function (e, t) {
+ const a = e.fnArray,
+ r = e.argsArray,
+ n = e.iCurr,
+ i = n - 4,
+ s = n - 3,
+ o = n - 2,
+ c = n - 1,
+ l = n,
+ h = r[s][0],
+ u = r[s][1];
+ let d = Math.min(Math.floor((t - i) / 5), 1e3);
+ if (d < 3) return t - ((t - i) % 5);
+ let f = i;
+ if (
+ i >= 4 &&
+ a[i - 4] === a[s] &&
+ a[i - 3] === a[o] &&
+ a[i - 2] === a[c] &&
+ a[i - 1] === a[l] &&
+ r[i - 4][0] === h &&
+ r[i - 4][1] === u
+ ) {
+ d++;
+ f -= 5;
+ }
+ let g = f + 4;
+ for (let e = 1; e < d; e++) {
+ a.splice(g, 3);
+ r.splice(g, 3);
+ g += 2;
+ }
+ return g + 1;
+ },
+ );
+ class NullOptimizer {
+ constructor(e) {
+ this.queue = e;
+ }
+ _optimize() {}
+ push(e, t) {
+ this.queue.fnArray.push(e);
+ this.queue.argsArray.push(t);
+ this._optimize();
+ }
+ flush() {}
+ reset() {}
+ }
+ class QueueOptimizer extends NullOptimizer {
+ constructor(e) {
+ super(e);
+ this.state = null;
+ this.context = {
+ iCurr: 0,
+ fnArray: e.fnArray,
+ argsArray: e.argsArray,
+ isOffscreenCanvasSupported: !1,
+ };
+ this.match = null;
+ this.lastProcessed = 0;
+ }
+ set isOffscreenCanvasSupported(e) {
+ this.context.isOffscreenCanvasSupported = e;
+ }
+ _optimize() {
+ const e = this.queue.fnArray;
+ let t = this.lastProcessed,
+ a = e.length,
+ r = this.state,
+ i = this.match;
+ if (!r && !i && t + 1 === a && !n[e[t]]) {
+ this.lastProcessed = a;
+ return;
+ }
+ const s = this.context;
+ for (; t < a; ) {
+ if (i) {
+ if ((0, i.iterateFn)(s, t)) {
+ t++;
+ continue;
+ }
+ t = (0, i.processFn)(s, t + 1);
+ a = e.length;
+ i = null;
+ r = null;
+ if (t >= a) break;
+ }
+ r = (r || n)[e[t]];
+ if (r && !Array.isArray(r)) {
+ s.iCurr = t;
+ t++;
+ if (!r.checkFn || (0, r.checkFn)(s)) {
+ i = r;
+ r = null;
+ } else r = null;
+ } else t++;
+ }
+ this.state = r;
+ this.match = i;
+ this.lastProcessed = t;
+ }
+ flush() {
+ for (; this.match; ) {
+ const e = this.queue.fnArray.length;
+ this.lastProcessed = (0, this.match.processFn)(this.context, e);
+ this.match = null;
+ this.state = null;
+ this._optimize();
+ }
+ }
+ reset() {
+ this.state = null;
+ this.match = null;
+ this.lastProcessed = 0;
+ }
+ }
+ class OperatorList {
+ static CHUNK_SIZE = 1e3;
+ static CHUNK_SIZE_ABOUT = this.CHUNK_SIZE - 5;
+ constructor(e = 0, t) {
+ this._streamSink = t;
+ this.fnArray = [];
+ this.argsArray = [];
+ this.optimizer =
+ !t || e & r.RenderingIntentFlag.OPLIST
+ ? new NullOptimizer(this)
+ : new QueueOptimizer(this);
+ this.dependencies = new Set();
+ this._totalLength = 0;
+ this.weight = 0;
+ this._resolved = t ? null : Promise.resolve();
+ }
+ set isOffscreenCanvasSupported(e) {
+ this.optimizer.isOffscreenCanvasSupported = e;
+ }
+ get length() {
+ return this.argsArray.length;
+ }
+ get ready() {
+ return this._resolved || this._streamSink.ready;
+ }
+ get totalLength() {
+ return this._totalLength + this.length;
+ }
+ addOp(e, t) {
+ this.optimizer.push(e, t);
+ this.weight++;
+ this._streamSink &&
+ (this.weight >= OperatorList.CHUNK_SIZE ||
+ (this.weight >= OperatorList.CHUNK_SIZE_ABOUT &&
+ (e === r.OPS.restore || e === r.OPS.endText))) &&
+ this.flush();
+ }
+ addImageOps(e, t, a) {
+ void 0 !== a &&
+ this.addOp(r.OPS.beginMarkedContentProps, ["OC", a]);
+ this.addOp(e, t);
+ void 0 !== a && this.addOp(r.OPS.endMarkedContent, []);
+ }
+ addDependency(e) {
+ if (!this.dependencies.has(e)) {
+ this.dependencies.add(e);
+ this.addOp(r.OPS.dependency, [e]);
+ }
+ }
+ addDependencies(e) {
+ for (const t of e) this.addDependency(t);
+ }
+ addOpList(e) {
+ if (e instanceof OperatorList) {
+ for (const t of e.dependencies) this.dependencies.add(t);
+ for (let t = 0, a = e.length; t < a; t++)
+ this.addOp(e.fnArray[t], e.argsArray[t]);
+ } else
+ (0, r.warn)('addOpList - ignoring invalid "opList" parameter.');
+ }
+ getIR() {
+ return {
+ fnArray: this.fnArray,
+ argsArray: this.argsArray,
+ length: this.length,
+ };
+ }
+ get _transfers() {
+ const e = [],
+ { fnArray: t, argsArray: a, length: n } = this;
+ for (let i = 0; i < n; i++)
+ switch (t[i]) {
+ case r.OPS.paintInlineImageXObject:
+ case r.OPS.paintInlineImageXObjectGroup:
+ case r.OPS.paintImageMaskXObject:
+ const t = a[i][0];
+ !t.cached &&
+ t.data?.buffer instanceof ArrayBuffer &&
+ e.push(t.data.buffer);
+ }
+ return e;
+ }
+ flush(e = !1, t = null) {
+ this.optimizer.flush();
+ const a = this.length;
+ this._totalLength += a;
+ this._streamSink.enqueue(
+ {
+ fnArray: this.fnArray,
+ argsArray: this.argsArray,
+ lastChunk: e,
+ separateAnnots: t,
+ length: a,
+ },
+ 1,
+ this._transfers,
+ );
+ this.dependencies.clear();
+ this.fnArray.length = 0;
+ this.argsArray.length = 0;
+ this.weight = 0;
+ this.optimizer.reset();
+ }
+ }
+ t.OperatorList = OperatorList;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.PDFImage = void 0;
+ var r = a(2),
+ n = a(28),
+ i = a(5),
+ s = a(12),
+ o = a(18),
+ c = a(62),
+ l = a(26),
+ h = a(30),
+ u = a(4);
+ function decodeAndClamp(e, t, a, r) {
+ (e = t + e * a) < 0 ? (e = 0) : e > r && (e = r);
+ return e;
+ }
+ function resizeImageMask(e, t, a, r, n, i) {
+ const s = n * i;
+ let o;
+ o =
+ t <= 8
+ ? new Uint8Array(s)
+ : t <= 16
+ ? new Uint16Array(s)
+ : new Uint32Array(s);
+ const c = a / n,
+ l = r / i;
+ let h,
+ u,
+ d,
+ f,
+ g = 0;
+ const p = new Uint16Array(n),
+ m = a;
+ for (h = 0; h < n; h++) p[h] = Math.floor(h * c);
+ for (h = 0; h < i; h++) {
+ d = Math.floor(h * l) * m;
+ for (u = 0; u < n; u++) {
+ f = d + p[u];
+ o[g++] = e[f];
+ }
+ }
+ return o;
+ }
+ class PDFImage {
+ constructor({
+ xref: e,
+ res: t,
+ image: a,
+ isInline: n = !1,
+ smask: o = null,
+ mask: c = null,
+ isMask: l = !1,
+ pdfFunctionFactory: d,
+ localColorSpaceCache: f,
+ }) {
+ this.image = a;
+ const g = a.dict,
+ p = g.get("F", "Filter");
+ let m;
+ if (p instanceof u.Name) m = p.name;
+ else if (Array.isArray(p)) {
+ const t = e.fetchIfRef(p[0]);
+ t instanceof u.Name && (m = t.name);
+ }
+ switch (m) {
+ case "JPXDecode":
+ const e = new h.JpxImage();
+ e.parseImageProperties(a.stream);
+ a.stream.reset();
+ a.width = e.width;
+ a.height = e.height;
+ a.bitsPerComponent = e.bitsPerComponent;
+ a.numComps = e.componentsCount;
+ break;
+ case "JBIG2Decode":
+ a.bitsPerComponent = 1;
+ a.numComps = 1;
+ }
+ let b = g.get("W", "Width"),
+ y = g.get("H", "Height");
+ if (
+ Number.isInteger(a.width) &&
+ a.width > 0 &&
+ Number.isInteger(a.height) &&
+ a.height > 0 &&
+ (a.width !== b || a.height !== y)
+ ) {
+ (0, r.warn)(
+ "PDFImage - using the Width/Height of the image data, rather than the image dictionary.",
+ );
+ b = a.width;
+ y = a.height;
+ }
+ if (b < 1 || y < 1)
+ throw new r.FormatError(
+ `Invalid image width: ${b} or height: ${y}`,
+ );
+ this.width = b;
+ this.height = y;
+ this.interpolate = g.get("I", "Interpolate");
+ this.imageMask = g.get("IM", "ImageMask") || !1;
+ this.matte = g.get("Matte") || !1;
+ let w = a.bitsPerComponent;
+ if (!w) {
+ w = g.get("BPC", "BitsPerComponent");
+ if (!w) {
+ if (!this.imageMask)
+ throw new r.FormatError(
+ `Bits per component missing in image: ${this.imageMask}`,
+ );
+ w = 1;
+ }
+ }
+ this.bpc = w;
+ if (!this.imageMask) {
+ let i = g.getRaw("CS") || g.getRaw("ColorSpace");
+ if (!i) {
+ (0, r.info)("JPX images (which do not require color spaces)");
+ switch (a.numComps) {
+ case 1:
+ i = u.Name.get("DeviceGray");
+ break;
+ case 3:
+ i = u.Name.get("DeviceRGB");
+ break;
+ case 4:
+ i = u.Name.get("DeviceCMYK");
+ break;
+ default:
+ throw new Error(
+ `JPX images with ${a.numComps} color components not supported.`,
+ );
+ }
+ }
+ this.colorSpace = s.ColorSpace.parse({
+ cs: i,
+ xref: e,
+ resources: n ? t : null,
+ pdfFunctionFactory: d,
+ localColorSpaceCache: f,
+ });
+ this.numComps = this.colorSpace.numComps;
+ }
+ this.decode = g.getArray("D", "Decode");
+ this.needsDecode = !1;
+ if (
+ this.decode &&
+ ((this.colorSpace &&
+ !this.colorSpace.isDefaultDecode(this.decode, w)) ||
+ (l && !s.ColorSpace.isDefaultDecode(this.decode, 1)))
+ ) {
+ this.needsDecode = !0;
+ const e = (1 << w) - 1;
+ this.decodeCoefficients = [];
+ this.decodeAddends = [];
+ const t = "Indexed" === this.colorSpace?.name;
+ for (let a = 0, r = 0; a < this.decode.length; a += 2, ++r) {
+ const n = this.decode[a],
+ i = this.decode[a + 1];
+ this.decodeCoefficients[r] = t ? (i - n) / e : i - n;
+ this.decodeAddends[r] = t ? n : e * n;
+ }
+ }
+ if (o)
+ this.smask = new PDFImage({
+ xref: e,
+ res: t,
+ image: o,
+ isInline: n,
+ pdfFunctionFactory: d,
+ localColorSpaceCache: f,
+ });
+ else if (c)
+ if (c instanceof i.BaseStream) {
+ c.dict.get("IM", "ImageMask")
+ ? (this.mask = new PDFImage({
+ xref: e,
+ res: t,
+ image: c,
+ isInline: n,
+ isMask: !0,
+ pdfFunctionFactory: d,
+ localColorSpaceCache: f,
+ }))
+ : (0, r.warn)(
+ "Ignoring /Mask in image without /ImageMask.",
+ );
+ } else this.mask = c;
+ }
+ static async buildImage({
+ xref: e,
+ res: t,
+ image: a,
+ isInline: n = !1,
+ pdfFunctionFactory: s,
+ localColorSpaceCache: o,
+ }) {
+ const c = a;
+ let l = null,
+ h = null;
+ const u = a.dict.get("SMask"),
+ d = a.dict.get("Mask");
+ u
+ ? u instanceof i.BaseStream
+ ? (l = u)
+ : (0, r.warn)("Unsupported /SMask format.")
+ : d &&
+ (d instanceof i.BaseStream || Array.isArray(d)
+ ? (h = d)
+ : (0, r.warn)("Unsupported /Mask format."));
+ return new PDFImage({
+ xref: e,
+ res: t,
+ image: c,
+ isInline: n,
+ smask: l,
+ mask: h,
+ pdfFunctionFactory: s,
+ localColorSpaceCache: o,
+ });
+ }
+ static createRawMask({
+ imgArray: e,
+ width: t,
+ height: a,
+ imageIsFromDecodeStream: r,
+ inverseDecode: n,
+ interpolate: i,
+ }) {
+ const s = ((t + 7) >> 3) * a,
+ o = e.byteLength;
+ let c, l;
+ if (!r || (n && !(s === o)))
+ if (n) {
+ c = new Uint8Array(s);
+ c.set(e);
+ c.fill(255, o);
+ } else c = new Uint8Array(e);
+ else c = e;
+ if (n) for (l = 0; l < o; l++) c[l] ^= 255;
+ return { data: c, width: t, height: a, interpolate: i };
+ }
+ static async createMask({
+ imgArray: e,
+ width: t,
+ height: a,
+ imageIsFromDecodeStream: i,
+ inverseDecode: s,
+ interpolate: o,
+ isOffscreenCanvasSupported: l = !1,
+ }) {
+ const h =
+ 1 === t && 1 === a && s === (0 === e.length || !!(128 & e[0]));
+ if (h) return { isSingleOpaquePixel: h };
+ if (l) {
+ if (c.ImageResizer.needsToBeResized(t, a)) {
+ const i = new Uint8ClampedArray(t * a * 4);
+ (0, n.convertBlackAndWhiteToRGBA)({
+ src: e,
+ dest: i,
+ width: t,
+ height: a,
+ nonBlackColor: 0,
+ inverseDecode: s,
+ });
+ return c.ImageResizer.createImage({
+ kind: r.ImageKind.RGBA_32BPP,
+ data: i,
+ width: t,
+ height: a,
+ interpolate: o,
+ });
+ }
+ const i = new OffscreenCanvas(t, a),
+ l = i.getContext("2d"),
+ h = l.createImageData(t, a);
+ (0, n.convertBlackAndWhiteToRGBA)({
+ src: e,
+ dest: h.data,
+ width: t,
+ height: a,
+ nonBlackColor: 0,
+ inverseDecode: s,
+ });
+ l.putImageData(h, 0, 0);
+ return {
+ data: null,
+ width: t,
+ height: a,
+ interpolate: o,
+ bitmap: i.transferToImageBitmap(),
+ };
+ }
+ return this.createRawMask({
+ imgArray: e,
+ width: t,
+ height: a,
+ inverseDecode: s,
+ imageIsFromDecodeStream: i,
+ interpolate: o,
+ });
+ }
+ get drawWidth() {
+ return Math.max(
+ this.width,
+ this.smask?.width || 0,
+ this.mask?.width || 0,
+ );
+ }
+ get drawHeight() {
+ return Math.max(
+ this.height,
+ this.smask?.height || 0,
+ this.mask?.height || 0,
+ );
+ }
+ decodeBuffer(e) {
+ const t = this.bpc,
+ a = this.numComps,
+ r = this.decodeAddends,
+ n = this.decodeCoefficients,
+ i = (1 << t) - 1;
+ let s, o;
+ if (1 === t) {
+ for (s = 0, o = e.length; s < o; s++) e[s] = +!e[s];
+ return;
+ }
+ let c = 0;
+ for (s = 0, o = this.width * this.height; s < o; s++)
+ for (let t = 0; t < a; t++) {
+ e[c] = decodeAndClamp(e[c], r[t], n[t], i);
+ c++;
+ }
+ }
+ getComponents(e) {
+ const t = this.bpc;
+ if (8 === t) return e;
+ const a = this.width,
+ r = this.height,
+ n = this.numComps,
+ i = a * r * n;
+ let s,
+ o = 0;
+ s =
+ t <= 8
+ ? new Uint8Array(i)
+ : t <= 16
+ ? new Uint16Array(i)
+ : new Uint32Array(i);
+ const c = a * n,
+ l = (1 << t) - 1;
+ let h,
+ u,
+ d = 0;
+ if (1 === t) {
+ let t, a, n;
+ for (let i = 0; i < r; i++) {
+ a = d + (-8 & c);
+ n = d + c;
+ for (; d < a; ) {
+ u = e[o++];
+ s[d] = (u >> 7) & 1;
+ s[d + 1] = (u >> 6) & 1;
+ s[d + 2] = (u >> 5) & 1;
+ s[d + 3] = (u >> 4) & 1;
+ s[d + 4] = (u >> 3) & 1;
+ s[d + 5] = (u >> 2) & 1;
+ s[d + 6] = (u >> 1) & 1;
+ s[d + 7] = 1 & u;
+ d += 8;
+ }
+ if (d < n) {
+ u = e[o++];
+ t = 128;
+ for (; d < n; ) {
+ s[d++] = +!!(u & t);
+ t >>= 1;
+ }
+ }
+ }
+ } else {
+ let a = 0;
+ u = 0;
+ for (d = 0, h = i; d < h; ++d) {
+ if (d % c == 0) {
+ u = 0;
+ a = 0;
+ }
+ for (; a < t; ) {
+ u = (u << 8) | e[o++];
+ a += 8;
+ }
+ const r = a - t;
+ let n = u >> r;
+ n < 0 ? (n = 0) : n > l && (n = l);
+ s[d] = n;
+ u &= (1 << r) - 1;
+ a = r;
+ }
+ }
+ return s;
+ }
+ fillOpacity(e, t, a, n, i) {
+ const s = this.smask,
+ o = this.mask;
+ let c, l, h, u, d, f;
+ if (s) {
+ l = s.width;
+ h = s.height;
+ c = new Uint8ClampedArray(l * h);
+ s.fillGrayBuffer(c);
+ (l === t && h === a) ||
+ (c = resizeImageMask(c, s.bpc, l, h, t, a));
+ } else if (o)
+ if (o instanceof PDFImage) {
+ l = o.width;
+ h = o.height;
+ c = new Uint8ClampedArray(l * h);
+ o.numComps = 1;
+ o.fillGrayBuffer(c);
+ for (u = 0, d = l * h; u < d; ++u) c[u] = 255 - c[u];
+ (l === t && h === a) ||
+ (c = resizeImageMask(c, o.bpc, l, h, t, a));
+ } else {
+ if (!Array.isArray(o))
+ throw new r.FormatError("Unknown mask format.");
+ {
+ c = new Uint8ClampedArray(t * a);
+ const e = this.numComps;
+ for (u = 0, d = t * a; u < d; ++u) {
+ let t = 0;
+ const a = u * e;
+ for (f = 0; f < e; ++f) {
+ const e = i[a + f],
+ r = 2 * f;
+ if (e < o[r] || e > o[r + 1]) {
+ t = 255;
+ break;
+ }
+ }
+ c[u] = t;
+ }
+ }
+ }
+ if (c)
+ for (u = 0, f = 3, d = t * n; u < d; ++u, f += 4) e[f] = c[u];
+ else for (u = 0, f = 3, d = t * n; u < d; ++u, f += 4) e[f] = 255;
+ }
+ undoPreblend(e, t, a) {
+ const r = this.smask?.matte;
+ if (!r) return;
+ const n = this.colorSpace.getRgb(r, 0),
+ i = n[0],
+ s = n[1],
+ o = n[2],
+ c = t * a * 4;
+ for (let t = 0; t < c; t += 4) {
+ const a = e[t + 3];
+ if (0 === a) {
+ e[t] = 255;
+ e[t + 1] = 255;
+ e[t + 2] = 255;
+ continue;
+ }
+ const r = 255 / a;
+ e[t] = (e[t] - i) * r + i;
+ e[t + 1] = (e[t + 1] - s) * r + s;
+ e[t + 2] = (e[t + 2] - o) * r + o;
+ }
+ }
+ async createImageData(e = !1, t = !1) {
+ const a = this.drawWidth,
+ n = this.drawHeight,
+ i = {
+ width: a,
+ height: n,
+ interpolate: this.interpolate,
+ kind: 0,
+ data: null,
+ },
+ s = this.numComps,
+ o = this.width,
+ h = this.height,
+ u = this.bpc,
+ d = (o * s * u + 7) >> 3,
+ f = t && c.ImageResizer.needsToBeResized(a, n);
+ if (!e) {
+ let e;
+ "DeviceGray" === this.colorSpace.name && 1 === u
+ ? (e = r.ImageKind.GRAYSCALE_1BPP)
+ : "DeviceRGB" !== this.colorSpace.name ||
+ 8 !== u ||
+ this.needsDecode ||
+ (e = r.ImageKind.RGB_24BPP);
+ if (e && !this.smask && !this.mask && a === o && n === h) {
+ const s = this.getImageBytes(h * d, {});
+ if (t)
+ return f
+ ? c.ImageResizer.createImage(
+ {
+ data: s,
+ kind: e,
+ width: a,
+ height: n,
+ interpolate: this.interpolate,
+ },
+ this.needsDecode,
+ )
+ : this.createBitmap(e, o, h, s);
+ i.kind = e;
+ i.data = s;
+ if (this.needsDecode) {
+ (0, r.assert)(
+ e === r.ImageKind.GRAYSCALE_1BPP,
+ "PDFImage.createImageData: The image must be grayscale.",
+ );
+ const t = i.data;
+ for (let e = 0, a = t.length; e < a; e++) t[e] ^= 255;
+ }
+ return i;
+ }
+ if (
+ this.image instanceof l.JpegStream &&
+ !this.smask &&
+ !this.mask &&
+ !this.needsDecode
+ ) {
+ let e = h * d;
+ if (t && !f) {
+ let t = !1;
+ switch (this.colorSpace.name) {
+ case "DeviceGray":
+ e *= 4;
+ t = !0;
+ break;
+ case "DeviceRGB":
+ e = (e / 3) * 4;
+ t = !0;
+ break;
+ case "DeviceCMYK":
+ t = !0;
+ }
+ if (t) {
+ const t = this.getImageBytes(e, {
+ drawWidth: a,
+ drawHeight: n,
+ forceRGBA: !0,
+ });
+ return this.createBitmap(r.ImageKind.RGBA_32BPP, a, n, t);
+ }
+ } else
+ switch (this.colorSpace.name) {
+ case "DeviceGray":
+ e *= 3;
+ case "DeviceRGB":
+ case "DeviceCMYK":
+ i.kind = r.ImageKind.RGB_24BPP;
+ i.data = this.getImageBytes(e, {
+ drawWidth: a,
+ drawHeight: n,
+ forceRGB: !0,
+ });
+ return f ? c.ImageResizer.createImage(i) : i;
+ }
+ }
+ }
+ const g = this.getImageBytes(h * d, { internal: !0 }),
+ p = 0 | (((g.length / d) * n) / h),
+ m = this.getComponents(g);
+ let b, y, w, S, x, C;
+ if (t && !f) {
+ w = new OffscreenCanvas(a, n);
+ S = w.getContext("2d");
+ x = S.createImageData(a, n);
+ C = x.data;
+ }
+ i.kind = r.ImageKind.RGBA_32BPP;
+ if (e || this.smask || this.mask) {
+ (t && !f) || (C = new Uint8ClampedArray(a * n * 4));
+ b = 1;
+ y = !0;
+ this.fillOpacity(C, a, n, p, m);
+ } else {
+ if (!t || f) {
+ i.kind = r.ImageKind.RGB_24BPP;
+ C = new Uint8ClampedArray(a * n * 3);
+ b = 0;
+ } else {
+ new Uint32Array(C.buffer).fill(
+ r.FeatureTest.isLittleEndian ? 4278190080 : 255,
+ );
+ b = 1;
+ }
+ y = !1;
+ }
+ this.needsDecode && this.decodeBuffer(m);
+ this.colorSpace.fillRgb(C, o, h, a, n, p, u, m, b);
+ y && this.undoPreblend(C, a, p);
+ if (t && !f) {
+ S.putImageData(x, 0, 0);
+ return {
+ data: null,
+ width: a,
+ height: n,
+ bitmap: w.transferToImageBitmap(),
+ interpolate: this.interpolate,
+ };
+ }
+ i.data = C;
+ return f ? c.ImageResizer.createImage(i) : i;
+ }
+ fillGrayBuffer(e) {
+ const t = this.numComps;
+ if (1 !== t)
+ throw new r.FormatError(
+ `Reading gray scale from a color image: ${t}`,
+ );
+ const a = this.width,
+ n = this.height,
+ i = this.bpc,
+ s = (a * t * i + 7) >> 3,
+ o = this.getImageBytes(n * s, { internal: !0 }),
+ c = this.getComponents(o);
+ let l, h;
+ if (1 === i) {
+ h = a * n;
+ if (this.needsDecode)
+ for (l = 0; l < h; ++l) e[l] = (c[l] - 1) & 255;
+ else for (l = 0; l < h; ++l) e[l] = 255 & -c[l];
+ return;
+ }
+ this.needsDecode && this.decodeBuffer(c);
+ h = a * n;
+ const u = 255 / ((1 << i) - 1);
+ for (l = 0; l < h; ++l) e[l] = u * c[l];
+ }
+ createBitmap(e, t, a, i) {
+ const s = new OffscreenCanvas(t, a),
+ o = s.getContext("2d");
+ let c;
+ if (e === r.ImageKind.RGBA_32BPP) c = new ImageData(i, t, a);
+ else {
+ c = o.createImageData(t, a);
+ (0, n.convertToRGBA)({
+ kind: e,
+ src: i,
+ dest: new Uint32Array(c.data.buffer),
+ width: t,
+ height: a,
+ inverseDecode: this.needsDecode,
+ });
+ }
+ o.putImageData(c, 0, 0);
+ return {
+ data: null,
+ width: t,
+ height: a,
+ bitmap: s.transferToImageBitmap(),
+ interpolate: this.interpolate,
+ };
+ }
+ getImageBytes(
+ e,
+ {
+ drawWidth: t,
+ drawHeight: a,
+ forceRGBA: n = !1,
+ forceRGB: i = !1,
+ internal: s = !1,
+ },
+ ) {
+ this.image.reset();
+ this.image.drawWidth = t || this.width;
+ this.image.drawHeight = a || this.height;
+ this.image.forceRGBA = !!n;
+ this.image.forceRGB = !!i;
+ const c = this.image.getBytes(e);
+ if (s || this.image instanceof o.DecodeStream) return c;
+ (0, r.assert)(
+ c instanceof Uint8Array,
+ 'PDFImage.getImageBytes: Unsupported "imageBytes" type.',
+ );
+ return new Uint8Array(c);
+ }
+ }
+ t.PDFImage = PDFImage;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.Catalog = void 0;
+ var r = a(3),
+ n = a(2),
+ i = a(4),
+ s = a(67),
+ o = a(5),
+ c = a(68),
+ l = a(12),
+ h = a(69),
+ u = a(59),
+ d = a(70),
+ f = a(72);
+ function fetchDestination(e) {
+ e instanceof i.Dict && (e = e.get("D"));
+ return Array.isArray(e) ? e : null;
+ }
+ class Catalog {
+ constructor(e, t) {
+ this.pdfManager = e;
+ this.xref = t;
+ this._catDict = t.getCatalogObj();
+ if (!(this._catDict instanceof i.Dict))
+ throw new n.FormatError("Catalog object is not a dictionary.");
+ this.toplevelPagesDict;
+ this._actualNumPages = null;
+ this.fontCache = new i.RefSetCache();
+ this.builtInCMapCache = new Map();
+ this.standardFontDataCache = new Map();
+ this.globalImageCache = new u.GlobalImageCache();
+ this.pageKidsCountCache = new i.RefSetCache();
+ this.pageIndexCache = new i.RefSetCache();
+ this.nonBlendModesSet = new i.RefSet();
+ this.systemFontCache = new Map();
+ }
+ cloneDict() {
+ return this._catDict.clone();
+ }
+ get version() {
+ const e = this._catDict.get("Version");
+ if (e instanceof i.Name) {
+ if (r.PDF_VERSION_REGEXP.test(e.name))
+ return (0, n.shadow)(this, "version", e.name);
+ (0, n.warn)(`Invalid PDF catalog version: ${e.name}`);
+ }
+ return (0, n.shadow)(this, "version", null);
+ }
+ get lang() {
+ const e = this._catDict.get("Lang");
+ return (0, n.shadow)(
+ this,
+ "lang",
+ "string" == typeof e ? (0, n.stringToPDFString)(e) : null,
+ );
+ }
+ get needsRendering() {
+ const e = this._catDict.get("NeedsRendering");
+ return (0, n.shadow)(
+ this,
+ "needsRendering",
+ "boolean" == typeof e && e,
+ );
+ }
+ get collection() {
+ let e = null;
+ try {
+ const t = this._catDict.get("Collection");
+ t instanceof i.Dict && t.size > 0 && (e = t);
+ } catch (e) {
+ if (e instanceof r.MissingDataException) throw e;
+ (0, n.info)(
+ "Cannot fetch Collection entry; assuming no collection is present.",
+ );
+ }
+ return (0, n.shadow)(this, "collection", e);
+ }
+ get acroForm() {
+ let e = null;
+ try {
+ const t = this._catDict.get("AcroForm");
+ t instanceof i.Dict && t.size > 0 && (e = t);
+ } catch (e) {
+ if (e instanceof r.MissingDataException) throw e;
+ (0, n.info)(
+ "Cannot fetch AcroForm entry; assuming no forms are present.",
+ );
+ }
+ return (0, n.shadow)(this, "acroForm", e);
+ }
+ get acroFormRef() {
+ const e = this._catDict.getRaw("AcroForm");
+ return (0, n.shadow)(
+ this,
+ "acroFormRef",
+ e instanceof i.Ref ? e : null,
+ );
+ }
+ get metadata() {
+ const e = this._catDict.getRaw("Metadata");
+ if (!(e instanceof i.Ref))
+ return (0, n.shadow)(this, "metadata", null);
+ let t = null;
+ try {
+ const a = this.xref.fetch(
+ e,
+ !this.xref.encrypt?.encryptMetadata,
+ );
+ if (a instanceof o.BaseStream && a.dict instanceof i.Dict) {
+ const e = a.dict.get("Type"),
+ r = a.dict.get("Subtype");
+ if ((0, i.isName)(e, "Metadata") && (0, i.isName)(r, "XML")) {
+ const e = (0, n.stringToUTF8String)(a.getString());
+ e && (t = new d.MetadataParser(e).serializable);
+ }
+ }
+ } catch (e) {
+ if (e instanceof r.MissingDataException) throw e;
+ (0, n.info)(`Skipping invalid Metadata: "${e}".`);
+ }
+ return (0, n.shadow)(this, "metadata", t);
+ }
+ get markInfo() {
+ let e = null;
+ try {
+ e = this._readMarkInfo();
+ } catch (e) {
+ if (e instanceof r.MissingDataException) throw e;
+ (0, n.warn)("Unable to read mark info.");
+ }
+ return (0, n.shadow)(this, "markInfo", e);
+ }
+ _readMarkInfo() {
+ const e = this._catDict.get("MarkInfo");
+ if (!(e instanceof i.Dict)) return null;
+ const t = { Marked: !1, UserProperties: !1, Suspects: !1 };
+ for (const a in t) {
+ const r = e.get(a);
+ "boolean" == typeof r && (t[a] = r);
+ }
+ return t;
+ }
+ get structTreeRoot() {
+ let e = null;
+ try {
+ e = this._readStructTreeRoot();
+ } catch (e) {
+ if (e instanceof r.MissingDataException) throw e;
+ (0, n.warn)("Unable read to structTreeRoot info.");
+ }
+ return (0, n.shadow)(this, "structTreeRoot", e);
+ }
+ _readStructTreeRoot() {
+ const e = this._catDict.getRaw("StructTreeRoot"),
+ t = this.xref.fetchIfRef(e);
+ if (!(t instanceof i.Dict)) return null;
+ const a = new f.StructTreeRoot(t, e);
+ a.init();
+ return a;
+ }
+ get toplevelPagesDict() {
+ const e = this._catDict.get("Pages");
+ if (!(e instanceof i.Dict))
+ throw new n.FormatError("Invalid top-level pages dictionary.");
+ return (0, n.shadow)(this, "toplevelPagesDict", e);
+ }
+ get documentOutline() {
+ let e = null;
+ try {
+ e = this._readDocumentOutline();
+ } catch (e) {
+ if (e instanceof r.MissingDataException) throw e;
+ (0, n.warn)("Unable to read document outline.");
+ }
+ return (0, n.shadow)(this, "documentOutline", e);
+ }
+ _readDocumentOutline() {
+ let e = this._catDict.get("Outlines");
+ if (!(e instanceof i.Dict)) return null;
+ e = e.getRaw("First");
+ if (!(e instanceof i.Ref)) return null;
+ const t = { items: [] },
+ a = [{ obj: e, parent: t }],
+ r = new i.RefSet();
+ r.put(e);
+ const s = this.xref,
+ o = new Uint8ClampedArray(3);
+ for (; a.length > 0; ) {
+ const t = a.shift(),
+ c = s.fetchIfRef(t.obj);
+ if (null === c) continue;
+ if (!c.has("Title"))
+ throw new n.FormatError("Invalid outline item encountered.");
+ const h = { url: null, dest: null, action: null };
+ Catalog.parseDestDictionary({
+ destDict: c,
+ resultObj: h,
+ docBaseUrl: this.baseUrl,
+ docAttachments: this.attachments,
+ });
+ const u = c.get("Title"),
+ d = c.get("F") || 0,
+ f = c.getArray("C"),
+ g = c.get("Count");
+ let p = o;
+ !Array.isArray(f) ||
+ 3 !== f.length ||
+ (0 === f[0] && 0 === f[1] && 0 === f[2]) ||
+ (p = l.ColorSpace.singletons.rgb.getRgb(f, 0));
+ const m = {
+ action: h.action,
+ attachment: h.attachment,
+ dest: h.dest,
+ url: h.url,
+ unsafeUrl: h.unsafeUrl,
+ newWindow: h.newWindow,
+ setOCGState: h.setOCGState,
+ title: (0, n.stringToPDFString)(u),
+ color: p,
+ count: Number.isInteger(g) ? g : void 0,
+ bold: !!(2 & d),
+ italic: !!(1 & d),
+ items: [],
+ };
+ t.parent.items.push(m);
+ e = c.getRaw("First");
+ if (e instanceof i.Ref && !r.has(e)) {
+ a.push({ obj: e, parent: m });
+ r.put(e);
+ }
+ e = c.getRaw("Next");
+ if (e instanceof i.Ref && !r.has(e)) {
+ a.push({ obj: e, parent: t.parent });
+ r.put(e);
+ }
+ }
+ return t.items.length > 0 ? t.items : null;
+ }
+ get permissions() {
+ let e = null;
+ try {
+ e = this._readPermissions();
+ } catch (e) {
+ if (e instanceof r.MissingDataException) throw e;
+ (0, n.warn)("Unable to read permissions.");
+ }
+ return (0, n.shadow)(this, "permissions", e);
+ }
+ _readPermissions() {
+ const e = this.xref.trailer.get("Encrypt");
+ if (!(e instanceof i.Dict)) return null;
+ let t = e.get("P");
+ if ("number" != typeof t) return null;
+ t += 2 ** 32;
+ const a = [];
+ for (const e in n.PermissionFlag) {
+ const r = n.PermissionFlag[e];
+ t & r && a.push(r);
+ }
+ return a;
+ }
+ get optionalContentConfig() {
+ let e = null;
+ try {
+ const t = this._catDict.get("OCProperties");
+ if (!t)
+ return (0, n.shadow)(this, "optionalContentConfig", null);
+ const a = t.get("D");
+ if (!a)
+ return (0, n.shadow)(this, "optionalContentConfig", null);
+ const r = t.get("OCGs");
+ if (!Array.isArray(r))
+ return (0, n.shadow)(this, "optionalContentConfig", null);
+ const s = [],
+ o = [];
+ for (const e of r) {
+ if (!(e instanceof i.Ref)) continue;
+ o.push(e);
+ const t = this.xref.fetchIfRef(e);
+ s.push({
+ id: e.toString(),
+ name:
+ "string" == typeof t.get("Name")
+ ? (0, n.stringToPDFString)(t.get("Name"))
+ : null,
+ intent:
+ "string" == typeof t.get("Intent")
+ ? (0, n.stringToPDFString)(t.get("Intent"))
+ : null,
+ });
+ }
+ e = this._readOptionalContentConfig(a, o);
+ e.groups = s;
+ } catch (e) {
+ if (e instanceof r.MissingDataException) throw e;
+ (0, n.warn)(`Unable to read optional content config: ${e}`);
+ }
+ return (0, n.shadow)(this, "optionalContentConfig", e);
+ }
+ _readOptionalContentConfig(e, t) {
+ function parseOnOff(e) {
+ const a = [];
+ if (Array.isArray(e))
+ for (const r of e)
+ r instanceof i.Ref && t.includes(r) && a.push(r.toString());
+ return a;
+ }
+ function parseOrder(e, a = 0) {
+ if (!Array.isArray(e)) return null;
+ const n = [];
+ for (const s of e) {
+ if (s instanceof i.Ref && t.includes(s)) {
+ r.put(s);
+ n.push(s.toString());
+ continue;
+ }
+ const e = parseNestedOrder(s, a);
+ e && n.push(e);
+ }
+ if (a > 0) return n;
+ const s = [];
+ for (const e of t) r.has(e) || s.push(e.toString());
+ s.length && n.push({ name: null, order: s });
+ return n;
+ }
+ function parseNestedOrder(e, t) {
+ if (++t > s) {
+ (0, n.warn)("parseNestedOrder - reached MAX_NESTED_LEVELS.");
+ return null;
+ }
+ const r = a.fetchIfRef(e);
+ if (!Array.isArray(r)) return null;
+ const i = a.fetchIfRef(r[0]);
+ if ("string" != typeof i) return null;
+ const o = parseOrder(r.slice(1), t);
+ return o && o.length
+ ? { name: (0, n.stringToPDFString)(i), order: o }
+ : null;
+ }
+ const a = this.xref,
+ r = new i.RefSet(),
+ s = 10;
+ return {
+ name:
+ "string" == typeof e.get("Name")
+ ? (0, n.stringToPDFString)(e.get("Name"))
+ : null,
+ creator:
+ "string" == typeof e.get("Creator")
+ ? (0, n.stringToPDFString)(e.get("Creator"))
+ : null,
+ baseState:
+ e.get("BaseState") instanceof i.Name
+ ? e.get("BaseState").name
+ : null,
+ on: parseOnOff(e.get("ON")),
+ off: parseOnOff(e.get("OFF")),
+ order: parseOrder(e.get("Order")),
+ groups: null,
+ };
+ }
+ setActualNumPages(e = null) {
+ this._actualNumPages = e;
+ }
+ get hasActualNumPages() {
+ return null !== this._actualNumPages;
+ }
+ get _pagesCount() {
+ const e = this.toplevelPagesDict.get("Count");
+ if (!Number.isInteger(e))
+ throw new n.FormatError(
+ "Page count in top-level pages dictionary is not an integer.",
+ );
+ return (0, n.shadow)(this, "_pagesCount", e);
+ }
+ get numPages() {
+ return this.hasActualNumPages
+ ? this._actualNumPages
+ : this._pagesCount;
+ }
+ get destinations() {
+ const e = this._readDests(),
+ t = Object.create(null);
+ if (e instanceof s.NameTree)
+ for (const [a, r] of e.getAll()) {
+ const e = fetchDestination(r);
+ e && (t[(0, n.stringToPDFString)(a)] = e);
+ }
+ else
+ e instanceof i.Dict &&
+ e.forEach(function (e, a) {
+ const r = fetchDestination(a);
+ r && (t[e] = r);
+ });
+ return (0, n.shadow)(this, "destinations", t);
+ }
+ getDestination(e) {
+ const t = this._readDests();
+ if (t instanceof s.NameTree) {
+ const a = fetchDestination(t.get(e));
+ if (a) return a;
+ const r = this.destinations[e];
+ if (r) {
+ (0, n.warn)(
+ `Found "${e}" at an incorrect position in the NameTree.`,
+ );
+ return r;
+ }
+ } else if (t instanceof i.Dict) {
+ const a = fetchDestination(t.get(e));
+ if (a) return a;
+ }
+ return null;
+ }
+ _readDests() {
+ const e = this._catDict.get("Names");
+ return e?.has("Dests")
+ ? new s.NameTree(e.getRaw("Dests"), this.xref)
+ : this._catDict.has("Dests")
+ ? this._catDict.get("Dests")
+ : void 0;
+ }
+ get pageLabels() {
+ let e = null;
+ try {
+ e = this._readPageLabels();
+ } catch (e) {
+ if (e instanceof r.MissingDataException) throw e;
+ (0, n.warn)("Unable to read page labels.");
+ }
+ return (0, n.shadow)(this, "pageLabels", e);
+ }
+ _readPageLabels() {
+ const e = this._catDict.getRaw("PageLabels");
+ if (!e) return null;
+ const t = new Array(this.numPages);
+ let a = null,
+ o = "";
+ const c = new s.NumberTree(e, this.xref).getAll();
+ let l = "",
+ h = 1;
+ for (let e = 0, s = this.numPages; e < s; e++) {
+ const s = c.get(e);
+ if (void 0 !== s) {
+ if (!(s instanceof i.Dict))
+ throw new n.FormatError("PageLabel is not a dictionary.");
+ if (
+ s.has("Type") &&
+ !(0, i.isName)(s.get("Type"), "PageLabel")
+ )
+ throw new n.FormatError(
+ "Invalid type in PageLabel dictionary.",
+ );
+ if (s.has("S")) {
+ const e = s.get("S");
+ if (!(e instanceof i.Name))
+ throw new n.FormatError(
+ "Invalid style in PageLabel dictionary.",
+ );
+ a = e.name;
+ } else a = null;
+ if (s.has("P")) {
+ const e = s.get("P");
+ if ("string" != typeof e)
+ throw new n.FormatError(
+ "Invalid prefix in PageLabel dictionary.",
+ );
+ o = (0, n.stringToPDFString)(e);
+ } else o = "";
+ if (s.has("St")) {
+ const e = s.get("St");
+ if (!(Number.isInteger(e) && e >= 1))
+ throw new n.FormatError(
+ "Invalid start in PageLabel dictionary.",
+ );
+ h = e;
+ } else h = 1;
+ }
+ switch (a) {
+ case "D":
+ l = h;
+ break;
+ case "R":
+ case "r":
+ l = (0, r.toRomanNumerals)(h, "r" === a);
+ break;
+ case "A":
+ case "a":
+ const e = 26,
+ t = "a" === a ? 97 : 65,
+ i = h - 1;
+ l = String.fromCharCode(t + (i % e)).repeat(
+ Math.floor(i / e) + 1,
+ );
+ break;
+ default:
+ if (a)
+ throw new n.FormatError(
+ `Invalid style "${a}" in PageLabel dictionary.`,
+ );
+ l = "";
+ }
+ t[e] = o + l;
+ h++;
+ }
+ return t;
+ }
+ get pageLayout() {
+ const e = this._catDict.get("PageLayout");
+ let t = "";
+ if (e instanceof i.Name)
+ switch (e.name) {
+ case "SinglePage":
+ case "OneColumn":
+ case "TwoColumnLeft":
+ case "TwoColumnRight":
+ case "TwoPageLeft":
+ case "TwoPageRight":
+ t = e.name;
+ }
+ return (0, n.shadow)(this, "pageLayout", t);
+ }
+ get pageMode() {
+ const e = this._catDict.get("PageMode");
+ let t = "UseNone";
+ if (e instanceof i.Name)
+ switch (e.name) {
+ case "UseNone":
+ case "UseOutlines":
+ case "UseThumbs":
+ case "FullScreen":
+ case "UseOC":
+ case "UseAttachments":
+ t = e.name;
+ }
+ return (0, n.shadow)(this, "pageMode", t);
+ }
+ get viewerPreferences() {
+ const e = this._catDict.get("ViewerPreferences");
+ if (!(e instanceof i.Dict))
+ return (0, n.shadow)(this, "viewerPreferences", null);
+ let t = null;
+ for (const a of e.getKeys()) {
+ const r = e.get(a);
+ let s;
+ switch (a) {
+ case "HideToolbar":
+ case "HideMenubar":
+ case "HideWindowUI":
+ case "FitWindow":
+ case "CenterWindow":
+ case "DisplayDocTitle":
+ case "PickTrayByPDFSize":
+ "boolean" == typeof r && (s = r);
+ break;
+ case "NonFullScreenPageMode":
+ if (r instanceof i.Name)
+ switch (r.name) {
+ case "UseNone":
+ case "UseOutlines":
+ case "UseThumbs":
+ case "UseOC":
+ s = r.name;
+ break;
+ default:
+ s = "UseNone";
+ }
+ break;
+ case "Direction":
+ if (r instanceof i.Name)
+ switch (r.name) {
+ case "L2R":
+ case "R2L":
+ s = r.name;
+ break;
+ default:
+ s = "L2R";
+ }
+ break;
+ case "ViewArea":
+ case "ViewClip":
+ case "PrintArea":
+ case "PrintClip":
+ if (r instanceof i.Name)
+ switch (r.name) {
+ case "MediaBox":
+ case "CropBox":
+ case "BleedBox":
+ case "TrimBox":
+ case "ArtBox":
+ s = r.name;
+ break;
+ default:
+ s = "CropBox";
+ }
+ break;
+ case "PrintScaling":
+ if (r instanceof i.Name)
+ switch (r.name) {
+ case "None":
+ case "AppDefault":
+ s = r.name;
+ break;
+ default:
+ s = "AppDefault";
+ }
+ break;
+ case "Duplex":
+ if (r instanceof i.Name)
+ switch (r.name) {
+ case "Simplex":
+ case "DuplexFlipShortEdge":
+ case "DuplexFlipLongEdge":
+ s = r.name;
+ break;
+ default:
+ s = "None";
+ }
+ break;
+ case "PrintPageRange":
+ if (Array.isArray(r) && r.length % 2 == 0) {
+ r.every(
+ (e, t, a) =>
+ Number.isInteger(e) &&
+ e > 0 &&
+ (0 === t || e >= a[t - 1]) &&
+ e <= this.numPages,
+ ) && (s = r);
+ }
+ break;
+ case "NumCopies":
+ Number.isInteger(r) && r > 0 && (s = r);
+ break;
+ default:
+ (0, n.warn)(
+ `Ignoring non-standard key in ViewerPreferences: ${a}.`,
+ );
+ continue;
+ }
+ if (void 0 !== s) {
+ t || (t = Object.create(null));
+ t[a] = s;
+ } else
+ (0, n.warn)(
+ `Bad value, for key "${a}", in ViewerPreferences: ${r}.`,
+ );
+ }
+ return (0, n.shadow)(this, "viewerPreferences", t);
+ }
+ get openAction() {
+ const e = this._catDict.get("OpenAction"),
+ t = Object.create(null);
+ if (e instanceof i.Dict) {
+ const a = new i.Dict(this.xref);
+ a.set("A", e);
+ const r = { url: null, dest: null, action: null };
+ Catalog.parseDestDictionary({ destDict: a, resultObj: r });
+ Array.isArray(r.dest)
+ ? (t.dest = r.dest)
+ : r.action && (t.action = r.action);
+ } else Array.isArray(e) && (t.dest = e);
+ return (0, n.shadow)(
+ this,
+ "openAction",
+ (0, n.objectSize)(t) > 0 ? t : null,
+ );
+ }
+ get attachments() {
+ const e = this._catDict.get("Names");
+ let t = null;
+ if (e instanceof i.Dict && e.has("EmbeddedFiles")) {
+ const a = new s.NameTree(e.getRaw("EmbeddedFiles"), this.xref);
+ for (const [e, r] of a.getAll()) {
+ const a = new h.FileSpec(r, this.xref);
+ t || (t = Object.create(null));
+ t[(0, n.stringToPDFString)(e)] = a.serializable;
+ }
+ }
+ return (0, n.shadow)(this, "attachments", t);
+ }
+ get xfaImages() {
+ const e = this._catDict.get("Names");
+ let t = null;
+ if (e instanceof i.Dict && e.has("XFAImages")) {
+ const a = new s.NameTree(e.getRaw("XFAImages"), this.xref);
+ for (const [e, r] of a.getAll()) {
+ t || (t = new i.Dict(this.xref));
+ t.set((0, n.stringToPDFString)(e), r);
+ }
+ }
+ return (0, n.shadow)(this, "xfaImages", t);
+ }
+ _collectJavaScript() {
+ const e = this._catDict.get("Names");
+ let t = null;
+ function appendIfJavaScriptDict(e, a) {
+ if (!(a instanceof i.Dict)) return;
+ if (!(0, i.isName)(a.get("S"), "JavaScript")) return;
+ let r = a.get("JS");
+ if (r instanceof o.BaseStream) r = r.getString();
+ else if ("string" != typeof r) return;
+ r = (0, n.stringToPDFString)(r).replaceAll("\0", "");
+ r && (t ||= new Map()).set(e, r);
+ }
+ if (e instanceof i.Dict && e.has("JavaScript")) {
+ const t = new s.NameTree(e.getRaw("JavaScript"), this.xref);
+ for (const [e, a] of t.getAll())
+ appendIfJavaScriptDict((0, n.stringToPDFString)(e), a);
+ }
+ const a = this._catDict.get("OpenAction");
+ a && appendIfJavaScriptDict("OpenAction", a);
+ return t;
+ }
+ get jsActions() {
+ const e = this._collectJavaScript();
+ let t = (0, r.collectActions)(
+ this.xref,
+ this._catDict,
+ n.DocumentActionEventType,
+ );
+ if (e) {
+ t ||= Object.create(null);
+ for (const [a, r] of e) a in t ? t[a].push(r) : (t[a] = [r]);
+ }
+ return (0, n.shadow)(this, "jsActions", t);
+ }
+ async fontFallback(e, t) {
+ const a = await Promise.all(this.fontCache);
+ for (const r of a)
+ if (r.loadedName === e) {
+ r.fallback(t);
+ return;
+ }
+ }
+ async cleanup(e = !1) {
+ (0, c.clearGlobalCaches)();
+ this.globalImageCache.clear(e);
+ this.pageKidsCountCache.clear();
+ this.pageIndexCache.clear();
+ this.nonBlendModesSet.clear();
+ const t = await Promise.all(this.fontCache);
+ for (const { dict: e } of t) delete e.cacheKey;
+ this.fontCache.clear();
+ this.builtInCMapCache.clear();
+ this.standardFontDataCache.clear();
+ this.systemFontCache.clear();
+ }
+ async getPageDict(e) {
+ const t = [this.toplevelPagesDict],
+ a = new i.RefSet(),
+ r = this._catDict.getRaw("Pages");
+ r instanceof i.Ref && a.put(r);
+ const s = this.xref,
+ o = this.pageKidsCountCache,
+ c = this.pageIndexCache;
+ let l = 0;
+ for (; t.length; ) {
+ const r = t.pop();
+ if (r instanceof i.Ref) {
+ const h = o.get(r);
+ if (h >= 0 && l + h <= e) {
+ l += h;
+ continue;
+ }
+ if (a.has(r))
+ throw new n.FormatError(
+ "Pages tree contains circular reference.",
+ );
+ a.put(r);
+ const u = await s.fetchAsync(r);
+ if (u instanceof i.Dict) {
+ let t = u.getRaw("Type");
+ t instanceof i.Ref && (t = await s.fetchAsync(t));
+ if ((0, i.isName)(t, "Page") || !u.has("Kids")) {
+ o.has(r) || o.put(r, 1);
+ c.has(r) || c.put(r, l);
+ if (l === e) return [u, r];
+ l++;
+ continue;
+ }
+ }
+ t.push(u);
+ continue;
+ }
+ if (!(r instanceof i.Dict))
+ throw new n.FormatError(
+ "Page dictionary kid reference points to wrong type of object.",
+ );
+ const { objId: h } = r;
+ let u = r.getRaw("Count");
+ u instanceof i.Ref && (u = await s.fetchAsync(u));
+ if (Number.isInteger(u) && u >= 0) {
+ h && !o.has(h) && o.put(h, u);
+ if (l + u <= e) {
+ l += u;
+ continue;
+ }
+ }
+ let d = r.getRaw("Kids");
+ d instanceof i.Ref && (d = await s.fetchAsync(d));
+ if (!Array.isArray(d)) {
+ let t = r.getRaw("Type");
+ t instanceof i.Ref && (t = await s.fetchAsync(t));
+ if ((0, i.isName)(t, "Page") || !r.has("Kids")) {
+ if (l === e) return [r, null];
+ l++;
+ continue;
+ }
+ throw new n.FormatError(
+ "Page dictionary kids object is not an array.",
+ );
+ }
+ for (let e = d.length - 1; e >= 0; e--) t.push(d[e]);
+ }
+ throw new Error(`Page index ${e} not found.`);
+ }
+ async getAllPageDicts(e = !1) {
+ const { ignoreErrors: t } = this.pdfManager.evaluatorOptions,
+ a = [{ currentNode: this.toplevelPagesDict, posInKids: 0 }],
+ s = new i.RefSet(),
+ o = this._catDict.getRaw("Pages");
+ o instanceof i.Ref && s.put(o);
+ const c = new Map(),
+ l = this.xref,
+ h = this.pageIndexCache;
+ let u = 0;
+ function addPageDict(e, t) {
+ t && !h.has(t) && h.put(t, u);
+ c.set(u++, [e, t]);
+ }
+ function addPageError(a) {
+ if (a instanceof r.XRefEntryException && !e) throw a;
+ if (e && t && 0 === u) {
+ (0, n.warn)(
+ `getAllPageDicts - Skipping invalid first page: "${a}".`,
+ );
+ a = i.Dict.empty;
+ }
+ c.set(u++, [a, null]);
+ }
+ for (; a.length > 0; ) {
+ const e = a.at(-1),
+ { currentNode: t, posInKids: r } = e;
+ let o = t.getRaw("Kids");
+ if (o instanceof i.Ref)
+ try {
+ o = await l.fetchAsync(o);
+ } catch (e) {
+ addPageError(e);
+ break;
+ }
+ if (!Array.isArray(o)) {
+ addPageError(
+ new n.FormatError(
+ "Page dictionary kids object is not an array.",
+ ),
+ );
+ break;
+ }
+ if (r >= o.length) {
+ a.pop();
+ continue;
+ }
+ const c = o[r];
+ let h;
+ if (c instanceof i.Ref) {
+ if (s.has(c)) {
+ addPageError(
+ new n.FormatError(
+ "Pages tree contains circular reference.",
+ ),
+ );
+ break;
+ }
+ s.put(c);
+ try {
+ h = await l.fetchAsync(c);
+ } catch (e) {
+ addPageError(e);
+ break;
+ }
+ } else h = c;
+ if (!(h instanceof i.Dict)) {
+ addPageError(
+ new n.FormatError(
+ "Page dictionary kid reference points to wrong type of object.",
+ ),
+ );
+ break;
+ }
+ let u = h.getRaw("Type");
+ if (u instanceof i.Ref)
+ try {
+ u = await l.fetchAsync(u);
+ } catch (e) {
+ addPageError(e);
+ break;
+ }
+ (0, i.isName)(u, "Page") || !h.has("Kids")
+ ? addPageDict(h, c instanceof i.Ref ? c : null)
+ : a.push({ currentNode: h, posInKids: 0 });
+ e.posInKids++;
+ }
+ return c;
+ }
+ getPageIndex(e) {
+ const t = this.pageIndexCache.get(e);
+ if (void 0 !== t) return Promise.resolve(t);
+ const a = this.xref;
+ let r = 0;
+ const next = (t) =>
+ (function pagesBeforeRef(t) {
+ let r,
+ s = 0;
+ return a
+ .fetchAsync(t)
+ .then(function (a) {
+ if (
+ (0, i.isRefsEqual)(t, e) &&
+ !(0, i.isDict)(a, "Page") &&
+ !(
+ a instanceof i.Dict &&
+ !a.has("Type") &&
+ a.has("Contents")
+ )
+ )
+ throw new n.FormatError(
+ "The reference does not point to a /Page dictionary.",
+ );
+ if (!a) return null;
+ if (!(a instanceof i.Dict))
+ throw new n.FormatError("Node must be a dictionary.");
+ r = a.getRaw("Parent");
+ return a.getAsync("Parent");
+ })
+ .then(function (e) {
+ if (!e) return null;
+ if (!(e instanceof i.Dict))
+ throw new n.FormatError("Parent must be a dictionary.");
+ return e.getAsync("Kids");
+ })
+ .then(function (e) {
+ if (!e) return null;
+ const o = [];
+ let c = !1;
+ for (const r of e) {
+ if (!(r instanceof i.Ref))
+ throw new n.FormatError("Kid must be a reference.");
+ if ((0, i.isRefsEqual)(r, t)) {
+ c = !0;
+ break;
+ }
+ o.push(
+ a.fetchAsync(r).then(function (e) {
+ if (!(e instanceof i.Dict))
+ throw new n.FormatError(
+ "Kid node must be a dictionary.",
+ );
+ e.has("Count") ? (s += e.get("Count")) : s++;
+ }),
+ );
+ }
+ if (!c)
+ throw new n.FormatError(
+ "Kid reference not found in parent's kids.",
+ );
+ return Promise.all(o).then(function () {
+ return [s, r];
+ });
+ });
+ })(t).then((t) => {
+ if (!t) {
+ this.pageIndexCache.put(e, r);
+ return r;
+ }
+ const [a, n] = t;
+ r += a;
+ return next(n);
+ });
+ return next(e);
+ }
+ get baseUrl() {
+ const e = this._catDict.get("URI");
+ if (e instanceof i.Dict) {
+ const t = e.get("Base");
+ if ("string" == typeof t) {
+ const e = (0, n.createValidAbsoluteUrl)(t, null, {
+ tryConvertEncoding: !0,
+ });
+ if (e) return (0, n.shadow)(this, "baseUrl", e.href);
+ }
+ }
+ return (0, n.shadow)(this, "baseUrl", this.pdfManager.docBaseUrl);
+ }
+ static parseDestDictionary({
+ destDict: e,
+ resultObj: t,
+ docBaseUrl: a = null,
+ docAttachments: s = null,
+ }) {
+ if (!(e instanceof i.Dict)) {
+ (0, n.warn)(
+ "parseDestDictionary: `destDict` must be a dictionary.",
+ );
+ return;
+ }
+ let c,
+ l,
+ h = e.get("A");
+ if (!(h instanceof i.Dict))
+ if (e.has("Dest")) h = e.get("Dest");
+ else {
+ h = e.get("AA");
+ h instanceof i.Dict &&
+ (h.has("D")
+ ? (h = h.get("D"))
+ : h.has("U") && (h = h.get("U")));
+ }
+ if (h instanceof i.Dict) {
+ const e = h.get("S");
+ if (!(e instanceof i.Name)) {
+ (0, n.warn)(
+ "parseDestDictionary: Invalid type in Action dictionary.",
+ );
+ return;
+ }
+ const a = e.name;
+ switch (a) {
+ case "ResetForm":
+ const e = h.get("Flags"),
+ u = 0 == (1 & ("number" == typeof e ? e : 0)),
+ d = [],
+ f = [];
+ for (const e of h.get("Fields") || [])
+ e instanceof i.Ref
+ ? f.push(e.toString())
+ : "string" == typeof e &&
+ d.push((0, n.stringToPDFString)(e));
+ t.resetForm = { fields: d, refs: f, include: u };
+ break;
+ case "URI":
+ c = h.get("URI");
+ c instanceof i.Name && (c = "/" + c.name);
+ break;
+ case "GoTo":
+ l = h.get("D");
+ break;
+ case "Launch":
+ case "GoToR":
+ const g = h.get("F");
+ g instanceof i.Dict
+ ? (c = g.get("F") || null)
+ : "string" == typeof g && (c = g);
+ let p = h.get("D");
+ if (p) {
+ p instanceof i.Name && (p = p.name);
+ if ("string" == typeof c) {
+ const e = c.split("#")[0];
+ "string" == typeof p
+ ? (c = e + "#" + p)
+ : Array.isArray(p) &&
+ (c = e + "#" + JSON.stringify(p));
+ }
+ }
+ const m = h.get("NewWindow");
+ "boolean" == typeof m && (t.newWindow = m);
+ break;
+ case "GoToE":
+ const b = h.get("T");
+ let y;
+ if (s && b instanceof i.Dict) {
+ const e = b.get("R"),
+ t = b.get("N");
+ (0, i.isName)(e, "C") &&
+ "string" == typeof t &&
+ (y = s[(0, n.stringToPDFString)(t)]);
+ }
+ y
+ ? (t.attachment = y)
+ : (0, n.warn)(
+ 'parseDestDictionary - unimplemented "GoToE" action.',
+ );
+ break;
+ case "Named":
+ const w = h.get("N");
+ w instanceof i.Name && (t.action = w.name);
+ break;
+ case "SetOCGState":
+ const S = h.get("State"),
+ x = h.get("PreserveRB");
+ if (!Array.isArray(S) || 0 === S.length) break;
+ const C = [];
+ for (const e of S)
+ if (e instanceof i.Name)
+ switch (e.name) {
+ case "ON":
+ case "OFF":
+ case "Toggle":
+ C.push(e.name);
+ }
+ else e instanceof i.Ref && C.push(e.toString());
+ if (C.length !== S.length) break;
+ t.setOCGState = {
+ state: C,
+ preserveRB: "boolean" != typeof x || x,
+ };
+ break;
+ case "JavaScript":
+ const k = h.get("JS");
+ let v;
+ k instanceof o.BaseStream
+ ? (v = k.getString())
+ : "string" == typeof k && (v = k);
+ const F =
+ v && (0, r.recoverJsURL)((0, n.stringToPDFString)(v));
+ if (F) {
+ c = F.url;
+ t.newWindow = F.newWindow;
+ break;
+ }
+ default:
+ if ("JavaScript" === a || "SubmitForm" === a) break;
+ (0, n.warn)(
+ `parseDestDictionary - unsupported action: "${a}".`,
+ );
+ }
+ } else e.has("Dest") && (l = e.get("Dest"));
+ if ("string" == typeof c) {
+ const e = (0, n.createValidAbsoluteUrl)(c, a, {
+ addDefaultProtocol: !0,
+ tryConvertEncoding: !0,
+ });
+ e && (t.url = e.href);
+ t.unsafeUrl = c;
+ }
+ if (l) {
+ l instanceof i.Name && (l = l.name);
+ "string" == typeof l
+ ? (t.dest = (0, n.stringToPDFString)(l))
+ : Array.isArray(l) && (t.dest = l);
+ }
+ }
+ }
+ t.Catalog = Catalog;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.NumberTree = t.NameTree = void 0;
+ var r = a(4),
+ n = a(2);
+ class NameOrNumberTree {
+ constructor(e, t, a) {
+ this.constructor === NameOrNumberTree &&
+ (0, n.unreachable)("Cannot initialize NameOrNumberTree.");
+ this.root = e;
+ this.xref = t;
+ this._type = a;
+ }
+ getAll() {
+ const e = new Map();
+ if (!this.root) return e;
+ const t = this.xref,
+ a = new r.RefSet();
+ a.put(this.root);
+ const i = [this.root];
+ for (; i.length > 0; ) {
+ const s = t.fetchIfRef(i.shift());
+ if (!(s instanceof r.Dict)) continue;
+ if (s.has("Kids")) {
+ const e = s.get("Kids");
+ if (!Array.isArray(e)) continue;
+ for (const t of e) {
+ if (a.has(t))
+ throw new n.FormatError(
+ `Duplicate entry in "${this._type}" tree.`,
+ );
+ i.push(t);
+ a.put(t);
+ }
+ continue;
+ }
+ const o = s.get(this._type);
+ if (Array.isArray(o))
+ for (let a = 0, r = o.length; a < r; a += 2)
+ e.set(t.fetchIfRef(o[a]), t.fetchIfRef(o[a + 1]));
+ }
+ return e;
+ }
+ get(e) {
+ if (!this.root) return null;
+ const t = this.xref;
+ let a = t.fetchIfRef(this.root),
+ r = 0;
+ for (; a.has("Kids"); ) {
+ if (++r > 10) {
+ (0, n.warn)(
+ `Search depth limit reached for "${this._type}" tree.`,
+ );
+ return null;
+ }
+ const i = a.get("Kids");
+ if (!Array.isArray(i)) return null;
+ let s = 0,
+ o = i.length - 1;
+ for (; s <= o; ) {
+ const r = (s + o) >> 1,
+ n = t.fetchIfRef(i[r]),
+ c = n.get("Limits");
+ if (e < t.fetchIfRef(c[0])) o = r - 1;
+ else {
+ if (!(e > t.fetchIfRef(c[1]))) {
+ a = n;
+ break;
+ }
+ s = r + 1;
+ }
+ }
+ if (s > o) return null;
+ }
+ const i = a.get(this._type);
+ if (Array.isArray(i)) {
+ let a = 0,
+ r = i.length - 2;
+ for (; a <= r; ) {
+ const n = (a + r) >> 1,
+ s = n + (1 & n),
+ o = t.fetchIfRef(i[s]);
+ if (e < o) r = s - 2;
+ else {
+ if (!(e > o)) return t.fetchIfRef(i[s + 1]);
+ a = s + 2;
+ }
+ }
+ }
+ return null;
+ }
+ }
+ t.NameTree = class NameTree extends NameOrNumberTree {
+ constructor(e, t) {
+ super(e, t, "Names");
+ }
+ };
+ t.NumberTree = class NumberTree extends NameOrNumberTree {
+ constructor(e, t) {
+ super(e, t, "Nums");
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.clearGlobalCaches = function clearGlobalCaches() {
+ (0, r.clearPatternCaches)();
+ (0, n.clearPrimitiveCaches)();
+ (0, i.clearUnicodeCaches)();
+ };
+ var r = a(50),
+ n = a(4),
+ i = a(40);
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.FileSpec = void 0;
+ var r = a(2),
+ n = a(5),
+ i = a(4);
+ function pickPlatformItem(e) {
+ return e.has("UF")
+ ? e.get("UF")
+ : e.has("F")
+ ? e.get("F")
+ : e.has("Unix")
+ ? e.get("Unix")
+ : e.has("Mac")
+ ? e.get("Mac")
+ : e.has("DOS")
+ ? e.get("DOS")
+ : null;
+ }
+ t.FileSpec = class FileSpec {
+ constructor(e, t) {
+ if (e instanceof i.Dict) {
+ this.xref = t;
+ this.root = e;
+ e.has("FS") && (this.fs = e.get("FS"));
+ this.description = e.has("Desc")
+ ? (0, r.stringToPDFString)(e.get("Desc"))
+ : "";
+ e.has("RF") &&
+ (0, r.warn)("Related file specifications are not supported");
+ this.contentAvailable = !0;
+ if (!e.has("EF")) {
+ this.contentAvailable = !1;
+ (0, r.warn)(
+ "Non-embedded file specifications are not supported",
+ );
+ }
+ }
+ }
+ get filename() {
+ if (!this._filename && this.root) {
+ const e = pickPlatformItem(this.root) || "unnamed";
+ this._filename = (0, r.stringToPDFString)(e)
+ .replaceAll("\\\\", "\\")
+ .replaceAll("\\/", "/")
+ .replaceAll("\\", "/");
+ }
+ return this._filename;
+ }
+ get content() {
+ if (!this.contentAvailable) return null;
+ !this.contentRef &&
+ this.root &&
+ (this.contentRef = pickPlatformItem(this.root.get("EF")));
+ let e = null;
+ if (this.contentRef) {
+ const t = this.xref.fetchIfRef(this.contentRef);
+ t instanceof n.BaseStream
+ ? (e = t.getBytes())
+ : (0, r.warn)(
+ "Embedded file specification points to non-existing/invalid content",
+ );
+ } else
+ (0, r.warn)(
+ "Embedded file specification does not have a content",
+ );
+ return e;
+ }
+ get serializable() {
+ return { filename: this.filename, content: this.content };
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.MetadataParser = void 0;
+ var r = a(71);
+ t.MetadataParser = class MetadataParser {
+ constructor(e) {
+ e = this._repair(e);
+ const t = new r.SimpleXMLParser({
+ lowerCaseName: !0,
+ }).parseFromString(e);
+ this._metadataMap = new Map();
+ this._data = e;
+ t && this._parse(t);
+ }
+ _repair(e) {
+ return e
+ .replace(/^[^<]+/, "")
+ .replaceAll(/>\\376\\377([^<]+)/g, function (e, t) {
+ const a = t
+ .replaceAll(
+ /\\([0-3])([0-7])([0-7])/g,
+ function (e, t, a, r) {
+ return String.fromCharCode(64 * t + 8 * a + 1 * r);
+ },
+ )
+ .replaceAll(/&(amp|apos|gt|lt|quot);/g, function (e, t) {
+ switch (t) {
+ case "amp":
+ return "&";
+ case "apos":
+ return "'";
+ case "gt":
+ return ">";
+ case "lt":
+ return "<";
+ case "quot":
+ return '"';
+ }
+ throw new Error(`_repair: ${t} isn't defined.`);
+ }),
+ r = [">"];
+ for (let e = 0, t = a.length; e < t; e += 2) {
+ const t = 256 * a.charCodeAt(e) + a.charCodeAt(e + 1);
+ t >= 32 && t < 127 && 60 !== t && 62 !== t && 38 !== t
+ ? r.push(String.fromCharCode(t))
+ : r.push(
+ "" + (65536 + t).toString(16).substring(1) + ";",
+ );
+ }
+ return r.join("");
+ });
+ }
+ _getSequence(e) {
+ const t = e.nodeName;
+ return "rdf:bag" !== t && "rdf:seq" !== t && "rdf:alt" !== t
+ ? null
+ : e.childNodes.filter((e) => "rdf:li" === e.nodeName);
+ }
+ _parseArray(e) {
+ if (!e.hasChildNodes()) return;
+ const [t] = e.childNodes,
+ a = this._getSequence(t) || [];
+ this._metadataMap.set(
+ e.nodeName,
+ a.map((e) => e.textContent.trim()),
+ );
+ }
+ _parse(e) {
+ let t = e.documentElement;
+ if ("rdf:rdf" !== t.nodeName) {
+ t = t.firstChild;
+ for (; t && "rdf:rdf" !== t.nodeName; ) t = t.nextSibling;
+ }
+ if (t && "rdf:rdf" === t.nodeName && t.hasChildNodes())
+ for (const e of t.childNodes)
+ if ("rdf:description" === e.nodeName)
+ for (const t of e.childNodes) {
+ const e = t.nodeName;
+ switch (e) {
+ case "#text":
+ continue;
+ case "dc:creator":
+ case "dc:subject":
+ this._parseArray(t);
+ continue;
+ }
+ this._metadataMap.set(e, t.textContent.trim());
+ }
+ }
+ get serializable() {
+ return { parsedData: this._metadataMap, rawData: this._data };
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.XMLParserErrorCode =
+ t.XMLParserBase =
+ t.SimpleXMLParser =
+ t.SimpleDOMNode =
+ void 0;
+ var r = a(3);
+ const n = {
+ NoError: 0,
+ EndOfDocument: -1,
+ UnterminatedCdat: -2,
+ UnterminatedXmlDeclaration: -3,
+ UnterminatedDoctypeDeclaration: -4,
+ UnterminatedComment: -5,
+ MalformedElement: -6,
+ OutOfMemory: -7,
+ UnterminatedAttributeValue: -8,
+ UnterminatedElement: -9,
+ ElementNeverBegun: -10,
+ };
+ t.XMLParserErrorCode = n;
+ function isWhitespace(e, t) {
+ const a = e[t];
+ return " " === a || "\n" === a || "\r" === a || "\t" === a;
+ }
+ class XMLParserBase {
+ _resolveEntities(e) {
+ return e.replaceAll(/&([^;]+);/g, (e, t) => {
+ if ("#x" === t.substring(0, 2))
+ return String.fromCodePoint(parseInt(t.substring(2), 16));
+ if ("#" === t.substring(0, 1))
+ return String.fromCodePoint(parseInt(t.substring(1), 10));
+ switch (t) {
+ case "lt":
+ return "<";
+ case "gt":
+ return ">";
+ case "amp":
+ return "&";
+ case "quot":
+ return '"';
+ case "apos":
+ return "'";
+ }
+ return this.onResolveEntity(t);
+ });
+ }
+ _parseContent(e, t) {
+ const a = [];
+ let r = t;
+ function skipWs() {
+ for (; r < e.length && isWhitespace(e, r); ) ++r;
+ }
+ for (
+ ;
+ r < e.length &&
+ !isWhitespace(e, r) &&
+ ">" !== e[r] &&
+ "/" !== e[r];
+
+ )
+ ++r;
+ const n = e.substring(t, r);
+ skipWs();
+ for (
+ ;
+ r < e.length && ">" !== e[r] && "/" !== e[r] && "?" !== e[r];
+
+ ) {
+ skipWs();
+ let t = "",
+ n = "";
+ for (; r < e.length && !isWhitespace(e, r) && "=" !== e[r]; ) {
+ t += e[r];
+ ++r;
+ }
+ skipWs();
+ if ("=" !== e[r]) return null;
+ ++r;
+ skipWs();
+ const i = e[r];
+ if ('"' !== i && "'" !== i) return null;
+ const s = e.indexOf(i, ++r);
+ if (s < 0) return null;
+ n = e.substring(r, s);
+ a.push({ name: t, value: this._resolveEntities(n) });
+ r = s + 1;
+ skipWs();
+ }
+ return { name: n, attributes: a, parsed: r - t };
+ }
+ _parseProcessingInstruction(e, t) {
+ let a = t;
+ for (
+ ;
+ a < e.length &&
+ !isWhitespace(e, a) &&
+ ">" !== e[a] &&
+ "?" !== e[a] &&
+ "/" !== e[a];
+
+ )
+ ++a;
+ const r = e.substring(t, a);
+ !(function skipWs() {
+ for (; a < e.length && isWhitespace(e, a); ) ++a;
+ })();
+ const n = a;
+ for (; a < e.length && ("?" !== e[a] || ">" !== e[a + 1]); ) ++a;
+ return { name: r, value: e.substring(n, a), parsed: a - t };
+ }
+ parseXml(e) {
+ let t = 0;
+ for (; t < e.length; ) {
+ let a = t;
+ if ("<" === e[t]) {
+ ++a;
+ let t;
+ switch (e[a]) {
+ case "/":
+ ++a;
+ t = e.indexOf(">", a);
+ if (t < 0) {
+ this.onError(n.UnterminatedElement);
+ return;
+ }
+ this.onEndElement(e.substring(a, t));
+ a = t + 1;
+ break;
+ case "?":
+ ++a;
+ const r = this._parseProcessingInstruction(e, a);
+ if (
+ "?>" !== e.substring(a + r.parsed, a + r.parsed + 2)
+ ) {
+ this.onError(n.UnterminatedXmlDeclaration);
+ return;
+ }
+ this.onPi(r.name, r.value);
+ a += r.parsed + 2;
+ break;
+ case "!":
+ if ("--" === e.substring(a + 1, a + 3)) {
+ t = e.indexOf("--\x3e", a + 3);
+ if (t < 0) {
+ this.onError(n.UnterminatedComment);
+ return;
+ }
+ this.onComment(e.substring(a + 3, t));
+ a = t + 3;
+ } else if ("[CDATA[" === e.substring(a + 1, a + 8)) {
+ t = e.indexOf("]]>", a + 8);
+ if (t < 0) {
+ this.onError(n.UnterminatedCdat);
+ return;
+ }
+ this.onCdata(e.substring(a + 8, t));
+ a = t + 3;
+ } else {
+ if ("DOCTYPE" !== e.substring(a + 1, a + 8)) {
+ this.onError(n.MalformedElement);
+ return;
+ }
+ {
+ const r = e.indexOf("[", a + 8);
+ let i = !1;
+ t = e.indexOf(">", a + 8);
+ if (t < 0) {
+ this.onError(n.UnterminatedDoctypeDeclaration);
+ return;
+ }
+ if (r > 0 && t > r) {
+ t = e.indexOf("]>", a + 8);
+ if (t < 0) {
+ this.onError(n.UnterminatedDoctypeDeclaration);
+ return;
+ }
+ i = !0;
+ }
+ const s = e.substring(a + 8, t + (i ? 1 : 0));
+ this.onDoctype(s);
+ a = t + (i ? 2 : 1);
+ }
+ }
+ break;
+ default:
+ const i = this._parseContent(e, a);
+ if (null === i) {
+ this.onError(n.MalformedElement);
+ return;
+ }
+ let s = !1;
+ if ("/>" === e.substring(a + i.parsed, a + i.parsed + 2))
+ s = !0;
+ else if (
+ ">" !== e.substring(a + i.parsed, a + i.parsed + 1)
+ ) {
+ this.onError(n.UnterminatedElement);
+ return;
+ }
+ this.onBeginElement(i.name, i.attributes, s);
+ a += i.parsed + (s ? 2 : 1);
+ }
+ } else {
+ for (; a < e.length && "<" !== e[a]; ) a++;
+ const r = e.substring(t, a);
+ this.onText(this._resolveEntities(r));
+ }
+ t = a;
+ }
+ }
+ onResolveEntity(e) {
+ return `&${e};`;
+ }
+ onPi(e, t) {}
+ onComment(e) {}
+ onCdata(e) {}
+ onDoctype(e) {}
+ onText(e) {}
+ onBeginElement(e, t, a) {}
+ onEndElement(e) {}
+ onError(e) {}
+ }
+ t.XMLParserBase = XMLParserBase;
+ class SimpleDOMNode {
+ constructor(e, t) {
+ this.nodeName = e;
+ this.nodeValue = t;
+ Object.defineProperty(this, "parentNode", {
+ value: null,
+ writable: !0,
+ });
+ }
+ get firstChild() {
+ return this.childNodes?.[0];
+ }
+ get nextSibling() {
+ const e = this.parentNode.childNodes;
+ if (!e) return;
+ const t = e.indexOf(this);
+ return -1 !== t ? e[t + 1] : void 0;
+ }
+ get textContent() {
+ return this.childNodes
+ ? this.childNodes
+ .map(function (e) {
+ return e.textContent;
+ })
+ .join("")
+ : this.nodeValue || "";
+ }
+ get children() {
+ return this.childNodes || [];
+ }
+ hasChildNodes() {
+ return this.childNodes?.length > 0;
+ }
+ searchNode(e, t) {
+ if (t >= e.length) return this;
+ const a = e[t];
+ if (a.name.startsWith("#") && t < e.length - 1)
+ return this.searchNode(e, t + 1);
+ const r = [];
+ let n = this;
+ for (;;) {
+ if (a.name === n.nodeName) {
+ if (0 !== a.pos) {
+ if (0 === r.length) return null;
+ {
+ const [i] = r.pop();
+ let s = 0;
+ for (const r of i.childNodes)
+ if (a.name === r.nodeName) {
+ if (s === a.pos) return r.searchNode(e, t + 1);
+ s++;
+ }
+ return n.searchNode(e, t + 1);
+ }
+ }
+ {
+ const a = n.searchNode(e, t + 1);
+ if (null !== a) return a;
+ }
+ }
+ if (n.childNodes?.length > 0) {
+ r.push([n, 0]);
+ n = n.childNodes[0];
+ } else {
+ if (0 === r.length) return null;
+ for (; 0 !== r.length; ) {
+ const [e, t] = r.pop(),
+ a = t + 1;
+ if (a < e.childNodes.length) {
+ r.push([e, a]);
+ n = e.childNodes[a];
+ break;
+ }
+ }
+ if (0 === r.length) return null;
+ }
+ }
+ }
+ dump(e) {
+ if ("#text" !== this.nodeName) {
+ e.push(`<${this.nodeName}`);
+ if (this.attributes)
+ for (const t of this.attributes)
+ e.push(` ${t.name}="${(0, r.encodeToXmlString)(t.value)}"`);
+ if (this.hasChildNodes()) {
+ e.push(">");
+ for (const t of this.childNodes) t.dump(e);
+ e.push(`${this.nodeName}>`);
+ } else
+ this.nodeValue
+ ? e.push(
+ `>${(0, r.encodeToXmlString)(this.nodeValue)}${
+ this.nodeName
+ }>`,
+ )
+ : e.push("/>");
+ } else e.push((0, r.encodeToXmlString)(this.nodeValue));
+ }
+ }
+ t.SimpleDOMNode = SimpleDOMNode;
+ t.SimpleXMLParser = class SimpleXMLParser extends XMLParserBase {
+ constructor({ hasAttributes: e = !1, lowerCaseName: t = !1 }) {
+ super();
+ this._currentFragment = null;
+ this._stack = null;
+ this._errorCode = n.NoError;
+ this._hasAttributes = e;
+ this._lowerCaseName = t;
+ }
+ parseFromString(e) {
+ this._currentFragment = [];
+ this._stack = [];
+ this._errorCode = n.NoError;
+ this.parseXml(e);
+ if (this._errorCode !== n.NoError) return;
+ const [t] = this._currentFragment;
+ return t ? { documentElement: t } : void 0;
+ }
+ onText(e) {
+ if (
+ (function isWhitespaceString(e) {
+ for (let t = 0, a = e.length; t < a; t++)
+ if (!isWhitespace(e, t)) return !1;
+ return !0;
+ })(e)
+ )
+ return;
+ const t = new SimpleDOMNode("#text", e);
+ this._currentFragment.push(t);
+ }
+ onCdata(e) {
+ const t = new SimpleDOMNode("#text", e);
+ this._currentFragment.push(t);
+ }
+ onBeginElement(e, t, a) {
+ this._lowerCaseName && (e = e.toLowerCase());
+ const r = new SimpleDOMNode(e);
+ r.childNodes = [];
+ this._hasAttributes && (r.attributes = t);
+ this._currentFragment.push(r);
+ if (!a) {
+ this._stack.push(this._currentFragment);
+ this._currentFragment = r.childNodes;
+ }
+ }
+ onEndElement(e) {
+ this._currentFragment = this._stack.pop() || [];
+ const t = this._currentFragment.at(-1);
+ if (!t) return null;
+ for (const e of t.childNodes) e.parentNode = t;
+ return t;
+ }
+ onError(e) {
+ this._errorCode = e;
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.StructTreeRoot = t.StructTreePage = void 0;
+ var r = a(2),
+ n = a(4),
+ i = a(67),
+ s = a(73);
+ const o = 1,
+ c = 2,
+ l = 3,
+ h = 4,
+ u = 5;
+ class StructTreeRoot {
+ constructor(e, t) {
+ this.dict = e;
+ this.ref = t instanceof n.Ref ? t : null;
+ this.roleMap = new Map();
+ this.structParentIds = null;
+ }
+ init() {
+ this.readRoleMap();
+ }
+ #C(e, t, a) {
+ if (!(e instanceof n.Ref) || t < 0) return;
+ this.structParentIds ||= new n.RefSetCache();
+ let r = this.structParentIds.get(e);
+ if (!r) {
+ r = [];
+ this.structParentIds.put(e, r);
+ }
+ r.push([t, a]);
+ }
+ addAnnotationIdToPage(e, t) {
+ this.#C(e, t, h);
+ }
+ readRoleMap() {
+ const e = this.dict.get("RoleMap");
+ e instanceof n.Dict &&
+ e.forEach((e, t) => {
+ t instanceof n.Name && this.roleMap.set(e, t.name);
+ });
+ }
+ static async canCreateStructureTree({
+ catalogRef: e,
+ pdfManager: t,
+ newAnnotationsByPage: a,
+ }) {
+ if (!(e instanceof n.Ref)) {
+ (0, r.warn)(
+ "Cannot save the struct tree: no catalog reference.",
+ );
+ return !1;
+ }
+ let i = 0,
+ s = !0;
+ for (const [e, o] of a) {
+ const { ref: a } = await t.getPage(e);
+ if (!(a instanceof n.Ref)) {
+ (0, r.warn)(
+ `Cannot save the struct tree: page ${e} has no ref.`,
+ );
+ s = !0;
+ break;
+ }
+ for (const e of o)
+ if (e.accessibilityData?.type) {
+ e.parentTreeId = i++;
+ s = !1;
+ }
+ }
+ if (s) {
+ for (const e of a.values())
+ for (const t of e) delete t.parentTreeId;
+ return !1;
+ }
+ return !0;
+ }
+ static async createStructureTree({
+ newAnnotationsByPage: e,
+ xref: t,
+ catalogRef: a,
+ pdfManager: r,
+ newRefs: i,
+ }) {
+ const o = r.catalog.cloneDict(),
+ c = t.getNewTemporaryRef();
+ o.set("StructTreeRoot", c);
+ const l = [];
+ await (0, s.writeObject)(a, o, l, t);
+ i.push({ ref: a, data: l.join("") });
+ const h = new n.Dict(t);
+ h.set("Type", n.Name.get("StructTreeRoot"));
+ const u = t.getNewTemporaryRef();
+ h.set("ParentTree", u);
+ const d = [];
+ h.set("K", d);
+ const f = new n.Dict(t),
+ g = [];
+ f.set("Nums", g);
+ const p = await this.#k({
+ newAnnotationsByPage: e,
+ structTreeRootRef: c,
+ kids: d,
+ nums: g,
+ xref: t,
+ pdfManager: r,
+ newRefs: i,
+ buffer: l,
+ });
+ h.set("ParentTreeNextKey", p);
+ l.length = 0;
+ await (0, s.writeObject)(u, f, l, t);
+ i.push({ ref: u, data: l.join("") });
+ l.length = 0;
+ await (0, s.writeObject)(c, h, l, t);
+ i.push({ ref: c, data: l.join("") });
+ }
+ async canUpdateStructTree({
+ pdfManager: e,
+ newAnnotationsByPage: t,
+ }) {
+ if (!this.ref) {
+ (0, r.warn)(
+ "Cannot update the struct tree: no root reference.",
+ );
+ return !1;
+ }
+ let a = this.dict.get("ParentTreeNextKey");
+ if (!Number.isInteger(a) || a < 0) {
+ (0, r.warn)("Cannot update the struct tree: invalid next key.");
+ return !1;
+ }
+ const i = this.dict.get("ParentTree");
+ if (!(i instanceof n.Dict)) {
+ (0, r.warn)(
+ "Cannot update the struct tree: ParentTree isn't a dict.",
+ );
+ return !1;
+ }
+ const s = i.get("Nums");
+ if (!Array.isArray(s)) {
+ (0, r.warn)(
+ "Cannot update the struct tree: nums isn't an array.",
+ );
+ return !1;
+ }
+ const { numPages: o } = e.catalog;
+ for (const a of t.keys()) {
+ const { pageDict: t, ref: i } = await e.getPage(a);
+ if (!(i instanceof n.Ref)) {
+ (0, r.warn)(
+ `Cannot save the struct tree: page ${a} has no ref.`,
+ );
+ return !1;
+ }
+ const s = t.get("StructParents");
+ if (!Number.isInteger(s) || s < 0 || s >= o) {
+ (0, r.warn)(
+ `Cannot save the struct tree: page ${a} has no id.`,
+ );
+ return !1;
+ }
+ }
+ let c = !0;
+ for (const [r, n] of t) {
+ const { pageDict: t } = await e.getPage(r);
+ StructTreeRoot.#v({
+ elements: n,
+ xref: this.dict.xref,
+ pageDict: t,
+ parentTree: i,
+ });
+ for (const e of n)
+ if (e.accessibilityData?.type) {
+ e.parentTreeId = a++;
+ c = !1;
+ }
+ }
+ if (c) {
+ for (const e of t.values())
+ for (const t of e) {
+ delete t.parentTreeId;
+ delete t.structTreeParent;
+ }
+ return !1;
+ }
+ return !0;
+ }
+ async updateStructureTree({
+ newAnnotationsByPage: e,
+ pdfManager: t,
+ newRefs: a,
+ }) {
+ const r = this.dict.xref,
+ i = this.dict.clone(),
+ o = this.ref;
+ let c,
+ l = i.getRaw("ParentTree");
+ if (l instanceof n.Ref) c = r.fetch(l);
+ else {
+ c = l;
+ l = r.getNewTemporaryRef();
+ i.set("ParentTree", l);
+ }
+ c = c.clone();
+ let h = c.getRaw("Nums"),
+ u = null;
+ if (h instanceof n.Ref) {
+ u = h;
+ h = r.fetch(u);
+ }
+ h = h.slice();
+ u || c.set("Nums", h);
+ let d = i.getRaw("K"),
+ f = null;
+ if (d instanceof n.Ref) {
+ f = d;
+ d = r.fetch(f);
+ } else {
+ f = r.getNewTemporaryRef();
+ i.set("K", f);
+ }
+ d = Array.isArray(d) ? d.slice() : [d];
+ const g = [],
+ p = await StructTreeRoot.#k({
+ newAnnotationsByPage: e,
+ structTreeRootRef: o,
+ kids: d,
+ nums: h,
+ xref: r,
+ pdfManager: t,
+ newRefs: a,
+ buffer: g,
+ });
+ i.set("ParentTreeNextKey", p);
+ g.length = 0;
+ await (0, s.writeObject)(f, d, g, r);
+ a.push({ ref: f, data: g.join("") });
+ if (u) {
+ g.length = 0;
+ await (0, s.writeObject)(u, h, g, r);
+ a.push({ ref: u, data: g.join("") });
+ }
+ g.length = 0;
+ await (0, s.writeObject)(l, c, g, r);
+ a.push({ ref: l, data: g.join("") });
+ g.length = 0;
+ await (0, s.writeObject)(o, i, g, r);
+ a.push({ ref: o, data: g.join("") });
+ }
+ static async #k({
+ newAnnotationsByPage: e,
+ structTreeRootRef: t,
+ kids: a,
+ nums: r,
+ xref: i,
+ pdfManager: o,
+ newRefs: c,
+ buffer: l,
+ }) {
+ const h = n.Name.get("OBJR");
+ let u = -1 / 0;
+ for (const [d, f] of e) {
+ const { ref: e } = await o.getPage(d);
+ for (const {
+ accessibilityData: {
+ type: o,
+ title: d,
+ lang: g,
+ alt: p,
+ expanded: m,
+ actualText: b,
+ },
+ ref: y,
+ parentTreeId: w,
+ structTreeParent: S,
+ } of f) {
+ u = Math.max(u, w);
+ const f = i.getNewTemporaryRef(),
+ x = new n.Dict(i);
+ x.set("S", n.Name.get(o));
+ d && x.set("T", d);
+ g && x.set("Lang", g);
+ p && x.set("Alt", p);
+ m && x.set("E", m);
+ b && x.set("ActualText", b);
+ S
+ ? await this.#F({
+ structTreeParent: S,
+ tagDict: x,
+ newTagRef: f,
+ fallbackRef: t,
+ xref: i,
+ newRefs: c,
+ buffer: l,
+ })
+ : x.set("P", t);
+ const C = new n.Dict(i);
+ x.set("K", C);
+ C.set("Type", h);
+ C.set("Pg", e);
+ C.set("Obj", y);
+ l.length = 0;
+ await (0, s.writeObject)(f, x, l, i);
+ c.push({ ref: f, data: l.join("") });
+ r.push(w, f);
+ a.push(f);
+ }
+ }
+ return u + 1;
+ }
+ static #v({ elements: e, xref: t, pageDict: a, parentTree: r }) {
+ const s = new Map();
+ for (const t of e)
+ if (t.structTreeParentId) {
+ const e = parseInt(t.structTreeParentId.split("_mc")[1], 10);
+ s.set(e, t);
+ }
+ const o = a.get("StructParents"),
+ c = new i.NumberTree(r, t).get(o);
+ if (!Array.isArray(c)) return;
+ const updateElement = (e, a, r) => {
+ const i = s.get(e);
+ if (i) {
+ const e = a.getRaw("P"),
+ s = t.fetchIfRef(e);
+ e instanceof n.Ref &&
+ s instanceof n.Dict &&
+ (i.structTreeParent = { ref: r, dict: a });
+ return !0;
+ }
+ return !1;
+ };
+ for (const e of c) {
+ if (!(e instanceof n.Ref)) continue;
+ const a = t.fetch(e),
+ r = a.get("K");
+ if (Number.isInteger(r)) updateElement(r, a, e);
+ else if (Array.isArray(r))
+ for (let n of r) {
+ n = t.fetchIfRef(n);
+ if (Number.isInteger(n) && updateElement(n, a, e)) break;
+ }
+ }
+ }
+ static async #F({
+ structTreeParent: { ref: e, dict: t },
+ tagDict: a,
+ newTagRef: i,
+ fallbackRef: o,
+ xref: c,
+ newRefs: l,
+ buffer: h,
+ }) {
+ const u = t.getRaw("P");
+ let d = c.fetchIfRef(u);
+ a.set("P", u);
+ let f,
+ g = !1,
+ p = d.getRaw("K");
+ if (p instanceof n.Ref) f = c.fetch(p);
+ else {
+ f = p;
+ p = c.getNewTemporaryRef();
+ d = d.clone();
+ d.set("K", p);
+ g = !0;
+ }
+ if (Array.isArray(f)) {
+ const t = f.indexOf(e);
+ if (!(t >= 0)) {
+ (0, r.warn)(
+ "Cannot update the struct tree: parent kid not found.",
+ );
+ a.set("P", o);
+ return;
+ }
+ f = f.slice();
+ f.splice(t + 1, 0, i);
+ } else if (f instanceof n.Dict) {
+ f = [p, i];
+ p = c.getNewTemporaryRef();
+ d.set("K", p);
+ g = !0;
+ }
+ h.length = 0;
+ await (0, s.writeObject)(p, f, h, c);
+ l.push({ ref: p, data: h.join("") });
+ if (g) {
+ h.length = 0;
+ await (0, s.writeObject)(u, d, h, c);
+ l.push({ ref: u, data: h.join("") });
+ }
+ }
+ }
+ t.StructTreeRoot = StructTreeRoot;
+ class StructElementNode {
+ constructor(e, t) {
+ this.tree = e;
+ this.dict = t;
+ this.kids = [];
+ this.parseKids();
+ }
+ get role() {
+ const e = this.dict.get("S"),
+ t = e instanceof n.Name ? e.name : "",
+ { root: a } = this.tree;
+ return a.roleMap.has(t) ? a.roleMap.get(t) : t;
+ }
+ parseKids() {
+ let e = null;
+ const t = this.dict.getRaw("Pg");
+ t instanceof n.Ref && (e = t.toString());
+ const a = this.dict.get("K");
+ if (Array.isArray(a))
+ for (const t of a) {
+ const a = this.parseKid(e, t);
+ a && this.kids.push(a);
+ }
+ else {
+ const t = this.parseKid(e, a);
+ t && this.kids.push(t);
+ }
+ }
+ parseKid(e, t) {
+ if (Number.isInteger(t))
+ return this.tree.pageDict.objId !== e
+ ? null
+ : new StructElement({ type: o, mcid: t, pageObjId: e });
+ let a = null;
+ t instanceof n.Ref
+ ? (a = this.dict.xref.fetch(t))
+ : t instanceof n.Dict && (a = t);
+ if (!a) return null;
+ const r = a.getRaw("Pg");
+ r instanceof n.Ref && (e = r.toString());
+ const i =
+ a.get("Type") instanceof n.Name ? a.get("Type").name : null;
+ if ("MCR" === i) {
+ if (this.tree.pageDict.objId !== e) return null;
+ const t = a.getRaw("Stm");
+ return new StructElement({
+ type: c,
+ refObjId: t instanceof n.Ref ? t.toString() : null,
+ pageObjId: e,
+ mcid: a.get("MCID"),
+ });
+ }
+ if ("OBJR" === i) {
+ if (this.tree.pageDict.objId !== e) return null;
+ const t = a.getRaw("Obj");
+ return new StructElement({
+ type: l,
+ refObjId: t instanceof n.Ref ? t.toString() : null,
+ pageObjId: e,
+ });
+ }
+ return new StructElement({ type: u, dict: a });
+ }
+ }
+ class StructElement {
+ constructor({
+ type: e,
+ dict: t = null,
+ mcid: a = null,
+ pageObjId: r = null,
+ refObjId: n = null,
+ }) {
+ this.type = e;
+ this.dict = t;
+ this.mcid = a;
+ this.pageObjId = r;
+ this.refObjId = n;
+ this.parentNode = null;
+ }
+ }
+ t.StructTreePage = class StructTreePage {
+ constructor(e, t) {
+ this.root = e;
+ this.rootDict = e ? e.dict : null;
+ this.pageDict = t;
+ this.nodes = [];
+ }
+ parse(e) {
+ if (!this.root || !this.rootDict) return;
+ const t = this.rootDict.get("ParentTree");
+ if (!t) return;
+ const a = this.pageDict.get("StructParents"),
+ r = e instanceof n.Ref && this.root.structParentIds?.get(e);
+ if (!Number.isInteger(a) && !r) return;
+ const s = new Map(),
+ o = new i.NumberTree(t, this.rootDict.xref);
+ if (Number.isInteger(a)) {
+ const e = o.get(a);
+ if (Array.isArray(e))
+ for (const t of e)
+ t instanceof n.Ref &&
+ this.addNode(this.rootDict.xref.fetch(t), s);
+ }
+ if (r)
+ for (const [e, t] of r) {
+ const a = o.get(e);
+ if (a) {
+ const e = this.addNode(this.rootDict.xref.fetchIfRef(a), s);
+ 1 === e?.kids?.length &&
+ e.kids[0].type === l &&
+ (e.kids[0].type = t);
+ }
+ }
+ }
+ addNode(e, t, a = 0) {
+ if (a > 40) {
+ (0, r.warn)("StructTree MAX_DEPTH reached.");
+ return null;
+ }
+ if (t.has(e)) return t.get(e);
+ const i = new StructElementNode(this, e);
+ t.set(e, i);
+ const s = e.get("P");
+ if (!s || (0, n.isName)(s.get("Type"), "StructTreeRoot")) {
+ this.addTopLevelNode(e, i) || t.delete(e);
+ return i;
+ }
+ const o = this.addNode(s, t, a + 1);
+ if (!o) return i;
+ let c = !1;
+ for (const t of o.kids)
+ if (t.type === u && t.dict === e) {
+ t.parentNode = i;
+ c = !0;
+ }
+ c || t.delete(e);
+ return i;
+ }
+ addTopLevelNode(e, t) {
+ const a = this.rootDict.get("K");
+ if (!a) return !1;
+ if (a instanceof n.Dict) {
+ if (a.objId !== e.objId) return !1;
+ this.nodes[0] = t;
+ return !0;
+ }
+ if (!Array.isArray(a)) return !0;
+ let r = !1;
+ for (let n = 0; n < a.length; n++) {
+ const i = a[n];
+ if (i?.toString() === e.objId) {
+ this.nodes[n] = t;
+ r = !0;
+ }
+ }
+ return r;
+ }
+ get serializable() {
+ function nodeToSerializable(e, t, a = 0) {
+ if (a > 40) {
+ (0, r.warn)("StructTree too deep to be fully serialized.");
+ return;
+ }
+ const n = Object.create(null);
+ n.role = e.role;
+ n.children = [];
+ t.children.push(n);
+ const i = e.dict.get("Alt");
+ "string" == typeof i && (n.alt = (0, r.stringToPDFString)(i));
+ const s = e.dict.get("Lang");
+ "string" == typeof s && (n.lang = (0, r.stringToPDFString)(s));
+ for (const t of e.kids) {
+ const e = t.type === u ? t.parentNode : null;
+ e
+ ? nodeToSerializable(e, n, a + 1)
+ : t.type === o || t.type === c
+ ? n.children.push({
+ type: "content",
+ id: `p${t.pageObjId}_mc${t.mcid}`,
+ })
+ : t.type === l
+ ? n.children.push({ type: "object", id: t.refObjId })
+ : t.type === h &&
+ n.children.push({
+ type: "annotation",
+ id: `${r.AnnotationPrefix}${t.refObjId}`,
+ });
+ }
+ }
+ const e = Object.create(null);
+ e.children = [];
+ e.role = "Root";
+ for (const t of this.nodes) t && nodeToSerializable(t, e);
+ return e;
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.incrementalUpdate = async function incrementalUpdate({
+ originalData: e,
+ xrefInfo: t,
+ newRefs: a,
+ xref: o = null,
+ hasXfa: l = !1,
+ xfaDatasetsRef: h = null,
+ hasXfaDatasetsEntry: u = !1,
+ needAppearances: d,
+ acroFormRef: f = null,
+ acroForm: g = null,
+ xfaData: p = null,
+ }) {
+ await (async function updateAcroform({
+ xref: e,
+ acroForm: t,
+ acroFormRef: a,
+ hasXfa: n,
+ hasXfaDatasetsEntry: i,
+ xfaDatasetsRef: s,
+ needAppearances: o,
+ newRefs: c,
+ }) {
+ !n || i || s || (0, r.warn)("XFA - Cannot save it");
+ if (!o && (!n || !s || i)) return;
+ const l = t.clone();
+ if (n && !i) {
+ const e = t.get("XFA").slice();
+ e.splice(2, 0, "datasets");
+ e.splice(3, 0, s);
+ l.set("XFA", e);
+ }
+ o && l.set("NeedAppearances", !0);
+ const h = [];
+ await writeObject(a, l, h, e);
+ c.push({ ref: a, data: h.join("") });
+ })({
+ xref: o,
+ acroForm: g,
+ acroFormRef: f,
+ hasXfa: l,
+ hasXfaDatasetsEntry: u,
+ xfaDatasetsRef: h,
+ needAppearances: d,
+ newRefs: a,
+ });
+ l &&
+ (function updateXFA({
+ xfaData: e,
+ xfaDatasetsRef: t,
+ newRefs: a,
+ xref: n,
+ }) {
+ if (null === e) {
+ e = (function writeXFADataForAcroform(e, t) {
+ const a = new s.SimpleXMLParser({
+ hasAttributes: !0,
+ }).parseFromString(e);
+ for (const { xfa: e } of t) {
+ if (!e) continue;
+ const { path: t, value: n } = e;
+ if (!t) continue;
+ const o = (0, i.parseXFAPath)(t);
+ let c = a.documentElement.searchNode(o, 0);
+ !c &&
+ o.length > 1 &&
+ (c = a.documentElement.searchNode([o.at(-1)], 0));
+ c
+ ? (c.childNodes = Array.isArray(n)
+ ? n.map((e) => new s.SimpleDOMNode("value", e))
+ : [new s.SimpleDOMNode("#text", n)])
+ : (0, r.warn)(`Node not found for path: ${t}`);
+ }
+ const n = [];
+ a.documentElement.dump(n);
+ return n.join("");
+ })(n.fetchIfRef(t).getString(), a);
+ }
+ const o = n.encrypt;
+ if (o) {
+ e = o.createCipherTransform(t.num, t.gen).encryptString(e);
+ }
+ const c =
+ `${t.num} ${t.gen} obj\n<< /Type /EmbeddedFile /Length ${e.length}>>\nstream\n` +
+ e +
+ "\nendstream\nendobj\n";
+ a.push({ ref: t, data: c });
+ })({ xfaData: p, xfaDatasetsRef: h, newRefs: a, xref: o });
+ const m = new n.Dict(null),
+ b = t.newRef;
+ let y, w;
+ const S = e.at(-1);
+ if (10 === S || 13 === S) {
+ y = [];
+ w = e.length;
+ } else {
+ y = ["\n"];
+ w = e.length + 1;
+ }
+ m.set("Size", b.num + 1);
+ m.set("Prev", t.startXRef);
+ m.set("Type", n.Name.get("XRef"));
+ null !== t.rootRef && m.set("Root", t.rootRef);
+ null !== t.infoRef && m.set("Info", t.infoRef);
+ null !== t.encryptRef && m.set("Encrypt", t.encryptRef);
+ a.push({ ref: b, data: "" });
+ a = a.sort((e, t) => e.ref.num - t.ref.num);
+ const x = [[0, 1, 65535]],
+ C = [0, 1];
+ let k = 0;
+ for (const { ref: e, data: t } of a) {
+ k = Math.max(k, w);
+ x.push([1, w, Math.min(e.gen, 65535)]);
+ w += t.length;
+ C.push(e.num, 1);
+ y.push(t);
+ }
+ m.set("Index", C);
+ if (Array.isArray(t.fileIds) && t.fileIds.length > 0) {
+ const e = (function computeMD5(e, t) {
+ const a = Math.floor(Date.now() / 1e3),
+ n = t.filename || "",
+ i = [a.toString(), n, e.toString()];
+ let s = i.reduce((e, t) => e + t.length, 0);
+ for (const e of Object.values(t.info)) {
+ i.push(e);
+ s += e.length;
+ }
+ const o = new Uint8Array(s);
+ let l = 0;
+ for (const e of i) {
+ writeString(e, l, o);
+ l += e.length;
+ }
+ return (0, r.bytesToString)((0, c.calculateMD5)(o));
+ })(w, t);
+ m.set("ID", [t.fileIds[0], e]);
+ }
+ const v = [1, Math.ceil(Math.log2(k) / 8), 2],
+ F = (v[0] + v[1] + v[2]) * x.length;
+ m.set("W", v);
+ m.set("Length", F);
+ y.push(`${b.num} ${b.gen} obj\n`);
+ await writeDict(m, y, null);
+ y.push(" stream\n");
+ const O = y.reduce((e, t) => e + t.length, 0),
+ T = `\nendstream\nendobj\nstartxref\n${w}\n%%EOF\n`,
+ M = new Uint8Array(e.length + O + F + T.length);
+ M.set(e);
+ let D = e.length;
+ for (const e of y) {
+ writeString(e, D, M);
+ D += e.length;
+ }
+ for (const [e, t, a] of x) {
+ D = writeInt(e, v[0], D, M);
+ D = writeInt(t, v[1], D, M);
+ D = writeInt(a, v[2], D, M);
+ }
+ writeString(T, D, M);
+ return M;
+ };
+ t.writeDict = writeDict;
+ t.writeObject = writeObject;
+ var r = a(2),
+ n = a(4),
+ i = a(3),
+ s = a(71),
+ o = a(5),
+ c = a(74);
+ async function writeObject(e, t, a, { encrypt: r = null }) {
+ const i = r?.createCipherTransform(e.num, e.gen);
+ a.push(`${e.num} ${e.gen} obj\n`);
+ t instanceof n.Dict
+ ? await writeDict(t, a, i)
+ : t instanceof o.BaseStream
+ ? await writeStream(t, a, i)
+ : Array.isArray(t) && (await writeArray(t, a, i));
+ a.push("\nendobj\n");
+ }
+ async function writeDict(e, t, a) {
+ t.push("<<");
+ for (const r of e.getKeys()) {
+ t.push(` /${(0, i.escapePDFName)(r)} `);
+ await writeValue(e.getRaw(r), t, a);
+ }
+ t.push(">>");
+ }
+ async function writeStream(e, t, a) {
+ let i = e.getString();
+ const { dict: s } = e,
+ [o, c] = await Promise.all([
+ s.getAsync("Filter"),
+ s.getAsync("DecodeParms"),
+ ]),
+ l = Array.isArray(o) ? await s.xref.fetchIfRefAsync(o[0]) : o,
+ h = (0, n.isName)(l, "FlateDecode");
+ if (
+ "undefined" != typeof CompressionStream &&
+ (i.length >= 256 || h)
+ )
+ try {
+ const e = (0, r.stringToBytes)(i),
+ t = new CompressionStream("deflate"),
+ a = t.writable.getWriter();
+ a.write(e);
+ a.close();
+ const l = await new Response(t.readable).arrayBuffer();
+ i = (0, r.bytesToString)(new Uint8Array(l));
+ let u, d;
+ if (o) {
+ if (!h) {
+ u = Array.isArray(o)
+ ? [n.Name.get("FlateDecode"), ...o]
+ : [n.Name.get("FlateDecode"), o];
+ c && (d = Array.isArray(c) ? [null, ...c] : [null, c]);
+ }
+ } else u = n.Name.get("FlateDecode");
+ u && s.set("Filter", u);
+ d && s.set("DecodeParms", d);
+ } catch (e) {
+ (0, r.info)(`writeStream - cannot compress data: "${e}".`);
+ }
+ a && (i = a.encryptString(i));
+ s.set("Length", i.length);
+ await writeDict(s, t, a);
+ t.push(" stream\n", i, "\nendstream");
+ }
+ async function writeArray(e, t, a) {
+ t.push("[");
+ let r = !0;
+ for (const n of e) {
+ r ? (r = !1) : t.push(" ");
+ await writeValue(n, t, a);
+ }
+ t.push("]");
+ }
+ async function writeValue(e, t, a) {
+ if (e instanceof n.Name) t.push(`/${(0, i.escapePDFName)(e.name)}`);
+ else if (e instanceof n.Ref) t.push(`${e.num} ${e.gen} R`);
+ else if (Array.isArray(e)) await writeArray(e, t, a);
+ else if ("string" == typeof e) {
+ a && (e = a.encryptString(e));
+ t.push(`(${(0, i.escapeString)(e)})`);
+ } else
+ "number" == typeof e
+ ? t.push((0, i.numberToString)(e))
+ : "boolean" == typeof e
+ ? t.push(e.toString())
+ : e instanceof n.Dict
+ ? await writeDict(e, t, a)
+ : e instanceof o.BaseStream
+ ? await writeStream(e, t, a)
+ : null === e
+ ? t.push("null")
+ : (0, r.warn)(
+ `Unhandled value in writer: ${typeof e}, please file a bug.`,
+ );
+ }
+ function writeInt(e, t, a, r) {
+ for (let n = t + a - 1; n > a - 1; n--) {
+ r[n] = 255 & e;
+ e >>= 8;
+ }
+ return a + t;
+ }
+ function writeString(e, t, a) {
+ for (let r = 0, n = e.length; r < n; r++)
+ a[t + r] = 255 & e.charCodeAt(r);
+ }
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.calculateSHA256 =
+ t.calculateMD5 =
+ t.PDF20 =
+ t.PDF17 =
+ t.CipherTransformFactory =
+ t.ARCFourCipher =
+ t.AES256Cipher =
+ t.AES128Cipher =
+ void 0;
+ t.calculateSHA384 = calculateSHA384;
+ t.calculateSHA512 = void 0;
+ var r = a(2),
+ n = a(4),
+ i = a(75);
+ class ARCFourCipher {
+ constructor(e) {
+ this.a = 0;
+ this.b = 0;
+ const t = new Uint8Array(256),
+ a = e.length;
+ for (let e = 0; e < 256; ++e) t[e] = e;
+ for (let r = 0, n = 0; r < 256; ++r) {
+ const i = t[r];
+ n = (n + i + e[r % a]) & 255;
+ t[r] = t[n];
+ t[n] = i;
+ }
+ this.s = t;
+ }
+ encryptBlock(e) {
+ let t = this.a,
+ a = this.b;
+ const r = this.s,
+ n = e.length,
+ i = new Uint8Array(n);
+ for (let s = 0; s < n; ++s) {
+ t = (t + 1) & 255;
+ const n = r[t];
+ a = (a + n) & 255;
+ const o = r[a];
+ r[t] = o;
+ r[a] = n;
+ i[s] = e[s] ^ r[(n + o) & 255];
+ }
+ this.a = t;
+ this.b = a;
+ return i;
+ }
+ decryptBlock(e) {
+ return this.encryptBlock(e);
+ }
+ encrypt(e) {
+ return this.encryptBlock(e);
+ }
+ }
+ t.ARCFourCipher = ARCFourCipher;
+ const s = (function calculateMD5Closure() {
+ const e = new Uint8Array([
+ 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5,
+ 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16,
+ 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21,
+ 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21,
+ ]),
+ t = new Int32Array([
+ -680876936, -389564586, 606105819, -1044525330, -176418897,
+ 1200080426, -1473231341, -45705983, 1770035416, -1958414417,
+ -42063, -1990404162, 1804603682, -40341101, -1502002290,
+ 1236535329, -165796510, -1069501632, 643717713, -373897302,
+ -701558691, 38016083, -660478335, -405537848, 568446438,
+ -1019803690, -187363961, 1163531501, -1444681467, -51403784,
+ 1735328473, -1926607734, -378558, -2022574463, 1839030562,
+ -35309556, -1530992060, 1272893353, -155497632, -1094730640,
+ 681279174, -358537222, -722521979, 76029189, -640364487,
+ -421815835, 530742520, -995338651, -198630844, 1126891415,
+ -1416354905, -57434055, 1700485571, -1894986606, -1051523,
+ -2054922799, 1873313359, -30611744, -1560198380, 1309151649,
+ -145523070, -1120210379, 718787259, -343485551,
+ ]);
+ return function hash(a, r, n) {
+ let i = 1732584193,
+ s = -271733879,
+ o = -1732584194,
+ c = 271733878;
+ const l = (n + 72) & -64,
+ h = new Uint8Array(l);
+ let u, d;
+ for (u = 0; u < n; ++u) h[u] = a[r++];
+ h[u++] = 128;
+ const f = l - 8;
+ for (; u < f; ) h[u++] = 0;
+ h[u++] = (n << 3) & 255;
+ h[u++] = (n >> 5) & 255;
+ h[u++] = (n >> 13) & 255;
+ h[u++] = (n >> 21) & 255;
+ h[u++] = (n >>> 29) & 255;
+ h[u++] = 0;
+ h[u++] = 0;
+ h[u++] = 0;
+ const g = new Int32Array(16);
+ for (u = 0; u < l; ) {
+ for (d = 0; d < 16; ++d, u += 4)
+ g[d] =
+ h[u] |
+ (h[u + 1] << 8) |
+ (h[u + 2] << 16) |
+ (h[u + 3] << 24);
+ let a,
+ r,
+ n = i,
+ l = s,
+ f = o,
+ p = c;
+ for (d = 0; d < 64; ++d) {
+ if (d < 16) {
+ a = (l & f) | (~l & p);
+ r = d;
+ } else if (d < 32) {
+ a = (p & l) | (~p & f);
+ r = (5 * d + 1) & 15;
+ } else if (d < 48) {
+ a = l ^ f ^ p;
+ r = (3 * d + 5) & 15;
+ } else {
+ a = f ^ (l | ~p);
+ r = (7 * d) & 15;
+ }
+ const i = p,
+ s = (n + a + t[d] + g[r]) | 0,
+ o = e[d];
+ p = f;
+ f = l;
+ l = (l + ((s << o) | (s >>> (32 - o)))) | 0;
+ n = i;
+ }
+ i = (i + n) | 0;
+ s = (s + l) | 0;
+ o = (o + f) | 0;
+ c = (c + p) | 0;
+ }
+ return new Uint8Array([
+ 255 & i,
+ (i >> 8) & 255,
+ (i >> 16) & 255,
+ (i >>> 24) & 255,
+ 255 & s,
+ (s >> 8) & 255,
+ (s >> 16) & 255,
+ (s >>> 24) & 255,
+ 255 & o,
+ (o >> 8) & 255,
+ (o >> 16) & 255,
+ (o >>> 24) & 255,
+ 255 & c,
+ (c >> 8) & 255,
+ (c >> 16) & 255,
+ (c >>> 24) & 255,
+ ]);
+ };
+ })();
+ t.calculateMD5 = s;
+ class Word64 {
+ constructor(e, t) {
+ this.high = 0 | e;
+ this.low = 0 | t;
+ }
+ and(e) {
+ this.high &= e.high;
+ this.low &= e.low;
+ }
+ xor(e) {
+ this.high ^= e.high;
+ this.low ^= e.low;
+ }
+ or(e) {
+ this.high |= e.high;
+ this.low |= e.low;
+ }
+ shiftRight(e) {
+ if (e >= 32) {
+ this.low = (this.high >>> (e - 32)) | 0;
+ this.high = 0;
+ } else {
+ this.low = (this.low >>> e) | (this.high << (32 - e));
+ this.high = (this.high >>> e) | 0;
+ }
+ }
+ shiftLeft(e) {
+ if (e >= 32) {
+ this.high = this.low << (e - 32);
+ this.low = 0;
+ } else {
+ this.high = (this.high << e) | (this.low >>> (32 - e));
+ this.low <<= e;
+ }
+ }
+ rotateRight(e) {
+ let t, a;
+ if (32 & e) {
+ a = this.low;
+ t = this.high;
+ } else {
+ t = this.low;
+ a = this.high;
+ }
+ e &= 31;
+ this.low = (t >>> e) | (a << (32 - e));
+ this.high = (a >>> e) | (t << (32 - e));
+ }
+ not() {
+ this.high = ~this.high;
+ this.low = ~this.low;
+ }
+ add(e) {
+ const t = (this.low >>> 0) + (e.low >>> 0);
+ let a = (this.high >>> 0) + (e.high >>> 0);
+ t > 4294967295 && (a += 1);
+ this.low = 0 | t;
+ this.high = 0 | a;
+ }
+ copyTo(e, t) {
+ e[t] = (this.high >>> 24) & 255;
+ e[t + 1] = (this.high >> 16) & 255;
+ e[t + 2] = (this.high >> 8) & 255;
+ e[t + 3] = 255 & this.high;
+ e[t + 4] = (this.low >>> 24) & 255;
+ e[t + 5] = (this.low >> 16) & 255;
+ e[t + 6] = (this.low >> 8) & 255;
+ e[t + 7] = 255 & this.low;
+ }
+ assign(e) {
+ this.high = e.high;
+ this.low = e.low;
+ }
+ }
+ const o = (function calculateSHA256Closure() {
+ function rotr(e, t) {
+ return (e >>> t) | (e << (32 - t));
+ }
+ function ch(e, t, a) {
+ return (e & t) ^ (~e & a);
+ }
+ function maj(e, t, a) {
+ return (e & t) ^ (e & a) ^ (t & a);
+ }
+ function sigma(e) {
+ return rotr(e, 2) ^ rotr(e, 13) ^ rotr(e, 22);
+ }
+ function sigmaPrime(e) {
+ return rotr(e, 6) ^ rotr(e, 11) ^ rotr(e, 25);
+ }
+ function littleSigma(e) {
+ return rotr(e, 7) ^ rotr(e, 18) ^ (e >>> 3);
+ }
+ const e = [
+ 1116352408, 1899447441, 3049323471, 3921009573, 961987163,
+ 1508970993, 2453635748, 2870763221, 3624381080, 310598401,
+ 607225278, 1426881987, 1925078388, 2162078206, 2614888103,
+ 3248222580, 3835390401, 4022224774, 264347078, 604807628,
+ 770255983, 1249150122, 1555081692, 1996064986, 2554220882,
+ 2821834349, 2952996808, 3210313671, 3336571891, 3584528711,
+ 113926993, 338241895, 666307205, 773529912, 1294757372,
+ 1396182291, 1695183700, 1986661051, 2177026350, 2456956037,
+ 2730485921, 2820302411, 3259730800, 3345764771, 3516065817,
+ 3600352804, 4094571909, 275423344, 430227734, 506948616,
+ 659060556, 883997877, 958139571, 1322822218, 1537002063,
+ 1747873779, 1955562222, 2024104815, 2227730452, 2361852424,
+ 2428436474, 2756734187, 3204031479, 3329325298,
+ ];
+ return function hash(t, a, r) {
+ let n = 1779033703,
+ i = 3144134277,
+ s = 1013904242,
+ o = 2773480762,
+ c = 1359893119,
+ l = 2600822924,
+ h = 528734635,
+ u = 1541459225;
+ const d = 64 * Math.ceil((r + 9) / 64),
+ f = new Uint8Array(d);
+ let g, p;
+ for (g = 0; g < r; ++g) f[g] = t[a++];
+ f[g++] = 128;
+ const m = d - 8;
+ for (; g < m; ) f[g++] = 0;
+ f[g++] = 0;
+ f[g++] = 0;
+ f[g++] = 0;
+ f[g++] = (r >>> 29) & 255;
+ f[g++] = (r >> 21) & 255;
+ f[g++] = (r >> 13) & 255;
+ f[g++] = (r >> 5) & 255;
+ f[g++] = (r << 3) & 255;
+ const b = new Uint32Array(64);
+ for (g = 0; g < d; ) {
+ for (p = 0; p < 16; ++p) {
+ b[p] =
+ (f[g] << 24) |
+ (f[g + 1] << 16) |
+ (f[g + 2] << 8) |
+ f[g + 3];
+ g += 4;
+ }
+ for (p = 16; p < 64; ++p)
+ b[p] =
+ ((rotr((y = b[p - 2]), 17) ^ rotr(y, 19) ^ (y >>> 10)) +
+ b[p - 7] +
+ littleSigma(b[p - 15]) +
+ b[p - 16]) |
+ 0;
+ let t,
+ a,
+ r = n,
+ d = i,
+ m = s,
+ w = o,
+ S = c,
+ x = l,
+ C = h,
+ k = u;
+ for (p = 0; p < 64; ++p) {
+ t = k + sigmaPrime(S) + ch(S, x, C) + e[p] + b[p];
+ a = sigma(r) + maj(r, d, m);
+ k = C;
+ C = x;
+ x = S;
+ S = (w + t) | 0;
+ w = m;
+ m = d;
+ d = r;
+ r = (t + a) | 0;
+ }
+ n = (n + r) | 0;
+ i = (i + d) | 0;
+ s = (s + m) | 0;
+ o = (o + w) | 0;
+ c = (c + S) | 0;
+ l = (l + x) | 0;
+ h = (h + C) | 0;
+ u = (u + k) | 0;
+ }
+ var y;
+ return new Uint8Array([
+ (n >> 24) & 255,
+ (n >> 16) & 255,
+ (n >> 8) & 255,
+ 255 & n,
+ (i >> 24) & 255,
+ (i >> 16) & 255,
+ (i >> 8) & 255,
+ 255 & i,
+ (s >> 24) & 255,
+ (s >> 16) & 255,
+ (s >> 8) & 255,
+ 255 & s,
+ (o >> 24) & 255,
+ (o >> 16) & 255,
+ (o >> 8) & 255,
+ 255 & o,
+ (c >> 24) & 255,
+ (c >> 16) & 255,
+ (c >> 8) & 255,
+ 255 & c,
+ (l >> 24) & 255,
+ (l >> 16) & 255,
+ (l >> 8) & 255,
+ 255 & l,
+ (h >> 24) & 255,
+ (h >> 16) & 255,
+ (h >> 8) & 255,
+ 255 & h,
+ (u >> 24) & 255,
+ (u >> 16) & 255,
+ (u >> 8) & 255,
+ 255 & u,
+ ]);
+ };
+ })();
+ t.calculateSHA256 = o;
+ const c = (function calculateSHA512Closure() {
+ function ch(e, t, a, r, n) {
+ e.assign(t);
+ e.and(a);
+ n.assign(t);
+ n.not();
+ n.and(r);
+ e.xor(n);
+ }
+ function maj(e, t, a, r, n) {
+ e.assign(t);
+ e.and(a);
+ n.assign(t);
+ n.and(r);
+ e.xor(n);
+ n.assign(a);
+ n.and(r);
+ e.xor(n);
+ }
+ function sigma(e, t, a) {
+ e.assign(t);
+ e.rotateRight(28);
+ a.assign(t);
+ a.rotateRight(34);
+ e.xor(a);
+ a.assign(t);
+ a.rotateRight(39);
+ e.xor(a);
+ }
+ function sigmaPrime(e, t, a) {
+ e.assign(t);
+ e.rotateRight(14);
+ a.assign(t);
+ a.rotateRight(18);
+ e.xor(a);
+ a.assign(t);
+ a.rotateRight(41);
+ e.xor(a);
+ }
+ function littleSigma(e, t, a) {
+ e.assign(t);
+ e.rotateRight(1);
+ a.assign(t);
+ a.rotateRight(8);
+ e.xor(a);
+ a.assign(t);
+ a.shiftRight(7);
+ e.xor(a);
+ }
+ function littleSigmaPrime(e, t, a) {
+ e.assign(t);
+ e.rotateRight(19);
+ a.assign(t);
+ a.rotateRight(61);
+ e.xor(a);
+ a.assign(t);
+ a.shiftRight(6);
+ e.xor(a);
+ }
+ const e = [
+ new Word64(1116352408, 3609767458),
+ new Word64(1899447441, 602891725),
+ new Word64(3049323471, 3964484399),
+ new Word64(3921009573, 2173295548),
+ new Word64(961987163, 4081628472),
+ new Word64(1508970993, 3053834265),
+ new Word64(2453635748, 2937671579),
+ new Word64(2870763221, 3664609560),
+ new Word64(3624381080, 2734883394),
+ new Word64(310598401, 1164996542),
+ new Word64(607225278, 1323610764),
+ new Word64(1426881987, 3590304994),
+ new Word64(1925078388, 4068182383),
+ new Word64(2162078206, 991336113),
+ new Word64(2614888103, 633803317),
+ new Word64(3248222580, 3479774868),
+ new Word64(3835390401, 2666613458),
+ new Word64(4022224774, 944711139),
+ new Word64(264347078, 2341262773),
+ new Word64(604807628, 2007800933),
+ new Word64(770255983, 1495990901),
+ new Word64(1249150122, 1856431235),
+ new Word64(1555081692, 3175218132),
+ new Word64(1996064986, 2198950837),
+ new Word64(2554220882, 3999719339),
+ new Word64(2821834349, 766784016),
+ new Word64(2952996808, 2566594879),
+ new Word64(3210313671, 3203337956),
+ new Word64(3336571891, 1034457026),
+ new Word64(3584528711, 2466948901),
+ new Word64(113926993, 3758326383),
+ new Word64(338241895, 168717936),
+ new Word64(666307205, 1188179964),
+ new Word64(773529912, 1546045734),
+ new Word64(1294757372, 1522805485),
+ new Word64(1396182291, 2643833823),
+ new Word64(1695183700, 2343527390),
+ new Word64(1986661051, 1014477480),
+ new Word64(2177026350, 1206759142),
+ new Word64(2456956037, 344077627),
+ new Word64(2730485921, 1290863460),
+ new Word64(2820302411, 3158454273),
+ new Word64(3259730800, 3505952657),
+ new Word64(3345764771, 106217008),
+ new Word64(3516065817, 3606008344),
+ new Word64(3600352804, 1432725776),
+ new Word64(4094571909, 1467031594),
+ new Word64(275423344, 851169720),
+ new Word64(430227734, 3100823752),
+ new Word64(506948616, 1363258195),
+ new Word64(659060556, 3750685593),
+ new Word64(883997877, 3785050280),
+ new Word64(958139571, 3318307427),
+ new Word64(1322822218, 3812723403),
+ new Word64(1537002063, 2003034995),
+ new Word64(1747873779, 3602036899),
+ new Word64(1955562222, 1575990012),
+ new Word64(2024104815, 1125592928),
+ new Word64(2227730452, 2716904306),
+ new Word64(2361852424, 442776044),
+ new Word64(2428436474, 593698344),
+ new Word64(2756734187, 3733110249),
+ new Word64(3204031479, 2999351573),
+ new Word64(3329325298, 3815920427),
+ new Word64(3391569614, 3928383900),
+ new Word64(3515267271, 566280711),
+ new Word64(3940187606, 3454069534),
+ new Word64(4118630271, 4000239992),
+ new Word64(116418474, 1914138554),
+ new Word64(174292421, 2731055270),
+ new Word64(289380356, 3203993006),
+ new Word64(460393269, 320620315),
+ new Word64(685471733, 587496836),
+ new Word64(852142971, 1086792851),
+ new Word64(1017036298, 365543100),
+ new Word64(1126000580, 2618297676),
+ new Word64(1288033470, 3409855158),
+ new Word64(1501505948, 4234509866),
+ new Word64(1607167915, 987167468),
+ new Word64(1816402316, 1246189591),
+ ];
+ return function hash(t, a, r, n = !1) {
+ let i, s, o, c, l, h, u, d;
+ if (n) {
+ i = new Word64(3418070365, 3238371032);
+ s = new Word64(1654270250, 914150663);
+ o = new Word64(2438529370, 812702999);
+ c = new Word64(355462360, 4144912697);
+ l = new Word64(1731405415, 4290775857);
+ h = new Word64(2394180231, 1750603025);
+ u = new Word64(3675008525, 1694076839);
+ d = new Word64(1203062813, 3204075428);
+ } else {
+ i = new Word64(1779033703, 4089235720);
+ s = new Word64(3144134277, 2227873595);
+ o = new Word64(1013904242, 4271175723);
+ c = new Word64(2773480762, 1595750129);
+ l = new Word64(1359893119, 2917565137);
+ h = new Word64(2600822924, 725511199);
+ u = new Word64(528734635, 4215389547);
+ d = new Word64(1541459225, 327033209);
+ }
+ const f = 128 * Math.ceil((r + 17) / 128),
+ g = new Uint8Array(f);
+ let p, m;
+ for (p = 0; p < r; ++p) g[p] = t[a++];
+ g[p++] = 128;
+ const b = f - 16;
+ for (; p < b; ) g[p++] = 0;
+ g[p++] = 0;
+ g[p++] = 0;
+ g[p++] = 0;
+ g[p++] = 0;
+ g[p++] = 0;
+ g[p++] = 0;
+ g[p++] = 0;
+ g[p++] = 0;
+ g[p++] = 0;
+ g[p++] = 0;
+ g[p++] = 0;
+ g[p++] = (r >>> 29) & 255;
+ g[p++] = (r >> 21) & 255;
+ g[p++] = (r >> 13) & 255;
+ g[p++] = (r >> 5) & 255;
+ g[p++] = (r << 3) & 255;
+ const y = new Array(80);
+ for (p = 0; p < 80; p++) y[p] = new Word64(0, 0);
+ let w = new Word64(0, 0),
+ S = new Word64(0, 0),
+ x = new Word64(0, 0),
+ C = new Word64(0, 0),
+ k = new Word64(0, 0),
+ v = new Word64(0, 0),
+ F = new Word64(0, 0),
+ O = new Word64(0, 0);
+ const T = new Word64(0, 0),
+ M = new Word64(0, 0),
+ D = new Word64(0, 0),
+ E = new Word64(0, 0);
+ let N, R;
+ for (p = 0; p < f; ) {
+ for (m = 0; m < 16; ++m) {
+ y[m].high =
+ (g[p] << 24) |
+ (g[p + 1] << 16) |
+ (g[p + 2] << 8) |
+ g[p + 3];
+ y[m].low =
+ (g[p + 4] << 24) |
+ (g[p + 5] << 16) |
+ (g[p + 6] << 8) |
+ g[p + 7];
+ p += 8;
+ }
+ for (m = 16; m < 80; ++m) {
+ N = y[m];
+ littleSigmaPrime(N, y[m - 2], E);
+ N.add(y[m - 7]);
+ littleSigma(D, y[m - 15], E);
+ N.add(D);
+ N.add(y[m - 16]);
+ }
+ w.assign(i);
+ S.assign(s);
+ x.assign(o);
+ C.assign(c);
+ k.assign(l);
+ v.assign(h);
+ F.assign(u);
+ O.assign(d);
+ for (m = 0; m < 80; ++m) {
+ T.assign(O);
+ sigmaPrime(D, k, E);
+ T.add(D);
+ ch(D, k, v, F, E);
+ T.add(D);
+ T.add(e[m]);
+ T.add(y[m]);
+ sigma(M, w, E);
+ maj(D, w, S, x, E);
+ M.add(D);
+ N = O;
+ O = F;
+ F = v;
+ v = k;
+ C.add(T);
+ k = C;
+ C = x;
+ x = S;
+ S = w;
+ N.assign(T);
+ N.add(M);
+ w = N;
+ }
+ i.add(w);
+ s.add(S);
+ o.add(x);
+ c.add(C);
+ l.add(k);
+ h.add(v);
+ u.add(F);
+ d.add(O);
+ }
+ if (n) {
+ R = new Uint8Array(48);
+ i.copyTo(R, 0);
+ s.copyTo(R, 8);
+ o.copyTo(R, 16);
+ c.copyTo(R, 24);
+ l.copyTo(R, 32);
+ h.copyTo(R, 40);
+ } else {
+ R = new Uint8Array(64);
+ i.copyTo(R, 0);
+ s.copyTo(R, 8);
+ o.copyTo(R, 16);
+ c.copyTo(R, 24);
+ l.copyTo(R, 32);
+ h.copyTo(R, 40);
+ u.copyTo(R, 48);
+ d.copyTo(R, 56);
+ }
+ return R;
+ };
+ })();
+ t.calculateSHA512 = c;
+ function calculateSHA384(e, t, a) {
+ return c(e, t, a, !0);
+ }
+ class NullCipher {
+ decryptBlock(e) {
+ return e;
+ }
+ encrypt(e) {
+ return e;
+ }
+ }
+ class AESBaseCipher {
+ constructor() {
+ this.constructor === AESBaseCipher &&
+ (0, r.unreachable)("Cannot initialize AESBaseCipher.");
+ this._s = new Uint8Array([
+ 99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215,
+ 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162,
+ 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204,
+ 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150,
+ 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27,
+ 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0,
+ 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208,
+ 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159,
+ 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16,
+ 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126,
+ 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70,
+ 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92,
+ 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141,
+ 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37,
+ 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138,
+ 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193,
+ 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135,
+ 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65,
+ 153, 45, 15, 176, 84, 187, 22,
+ ]);
+ this._inv_s = new Uint8Array([
+ 82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243,
+ 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68,
+ 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76,
+ 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178,
+ 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134,
+ 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112,
+ 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132,
+ 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179,
+ 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1,
+ 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207,
+ 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133,
+ 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41,
+ 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75,
+ 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31,
+ 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236,
+ 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147,
+ 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235,
+ 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38,
+ 225, 105, 20, 99, 85, 33, 12, 125,
+ ]);
+ this._mix = new Uint32Array([
+ 0, 235474187, 470948374, 303765277, 941896748, 908933415,
+ 607530554, 708780849, 1883793496, 2118214995, 1817866830,
+ 1649639237, 1215061108, 1181045119, 1417561698, 1517767529,
+ 3767586992, 4003061179, 4236429990, 4069246893, 3635733660,
+ 3602770327, 3299278474, 3400528769, 2430122216, 2664543715,
+ 2362090238, 2193862645, 2835123396, 2801107407, 3035535058,
+ 3135740889, 3678124923, 3576870512, 3341394285, 3374361702,
+ 3810496343, 3977675356, 4279080257, 4043610186, 2876494627,
+ 2776292904, 3076639029, 3110650942, 2472011535, 2640243204,
+ 2403728665, 2169303058, 1001089995, 899835584, 666464733,
+ 699432150, 59727847, 226906860, 530400753, 294930682,
+ 1273168787, 1172967064, 1475418501, 1509430414, 1942435775,
+ 2110667444, 1876241833, 1641816226, 2910219766, 2743034109,
+ 2976151520, 3211623147, 2505202138, 2606453969, 2302690252,
+ 2269728455, 3711829422, 3543599269, 3240894392, 3475313331,
+ 3843699074, 3943906441, 4178062228, 4144047775, 1306967366,
+ 1139781709, 1374988112, 1610459739, 1975683434, 2076935265,
+ 1775276924, 1742315127, 1034867998, 866637845, 566021896,
+ 800440835, 92987698, 193195065, 429456164, 395441711,
+ 1984812685, 2017778566, 1784663195, 1683407248, 1315562145,
+ 1080094634, 1383856311, 1551037884, 101039829, 135050206,
+ 437757123, 337553864, 1042385657, 807962610, 573804783,
+ 742039012, 2531067453, 2564033334, 2328828971, 2227573024,
+ 2935566865, 2700099354, 3001755655, 3168937228, 3868552805,
+ 3902563182, 4203181171, 4102977912, 3736164937, 3501741890,
+ 3265478751, 3433712980, 1106041591, 1340463100, 1576976609,
+ 1408749034, 2043211483, 2009195472, 1708848333, 1809054150,
+ 832877231, 1068351396, 766945465, 599762354, 159417987,
+ 126454664, 361929877, 463180190, 2709260871, 2943682380,
+ 3178106961, 3009879386, 2572697195, 2538681184, 2236228733,
+ 2336434550, 3509871135, 3745345300, 3441850377, 3274667266,
+ 3910161971, 3877198648, 4110568485, 4211818798, 2597806476,
+ 2497604743, 2261089178, 2295101073, 2733856160, 2902087851,
+ 3202437046, 2968011453, 3936291284, 3835036895, 4136440770,
+ 4169408201, 3535486456, 3702665459, 3467192302, 3231722213,
+ 2051518780, 1951317047, 1716890410, 1750902305, 1113818384,
+ 1282050075, 1584504582, 1350078989, 168810852, 67556463,
+ 371049330, 404016761, 841739592, 1008918595, 775550814,
+ 540080725, 3969562369, 3801332234, 4035489047, 4269907996,
+ 3569255213, 3669462566, 3366754619, 3332740144, 2631065433,
+ 2463879762, 2160117071, 2395588676, 2767645557, 2868897406,
+ 3102011747, 3069049960, 202008497, 33778362, 270040487,
+ 504459436, 875451293, 975658646, 675039627, 641025152,
+ 2084704233, 1917518562, 1615861247, 1851332852, 1147550661,
+ 1248802510, 1484005843, 1451044056, 933301370, 967311729,
+ 733156972, 632953703, 260388950, 25965917, 328671808, 496906059,
+ 1206477858, 1239443753, 1543208500, 1441952575, 2144161806,
+ 1908694277, 1675577880, 1842759443, 3610369226, 3644379585,
+ 3408119516, 3307916247, 4011190502, 3776767469, 4077384432,
+ 4245618683, 2809771154, 2842737049, 3144396420, 3043140495,
+ 2673705150, 2438237621, 2203032232, 2370213795,
+ ]);
+ this._mixCol = new Uint8Array(256);
+ for (let e = 0; e < 256; e++)
+ this._mixCol[e] = e < 128 ? e << 1 : (e << 1) ^ 27;
+ this.buffer = new Uint8Array(16);
+ this.bufferPosition = 0;
+ }
+ _expandKey(e) {
+ (0, r.unreachable)("Cannot call `_expandKey` on the base class");
+ }
+ _decrypt(e, t) {
+ let a, r, n;
+ const i = new Uint8Array(16);
+ i.set(e);
+ for (let e = 0, a = this._keySize; e < 16; ++e, ++a) i[e] ^= t[a];
+ for (let e = this._cyclesOfRepetition - 1; e >= 1; --e) {
+ a = i[13];
+ i[13] = i[9];
+ i[9] = i[5];
+ i[5] = i[1];
+ i[1] = a;
+ a = i[14];
+ r = i[10];
+ i[14] = i[6];
+ i[10] = i[2];
+ i[6] = a;
+ i[2] = r;
+ a = i[15];
+ r = i[11];
+ n = i[7];
+ i[15] = i[3];
+ i[11] = a;
+ i[7] = r;
+ i[3] = n;
+ for (let e = 0; e < 16; ++e) i[e] = this._inv_s[i[e]];
+ for (let a = 0, r = 16 * e; a < 16; ++a, ++r) i[a] ^= t[r];
+ for (let e = 0; e < 16; e += 4) {
+ const t = this._mix[i[e]],
+ r = this._mix[i[e + 1]],
+ n = this._mix[i[e + 2]],
+ s = this._mix[i[e + 3]];
+ a =
+ t ^
+ (r >>> 8) ^
+ (r << 24) ^
+ (n >>> 16) ^
+ (n << 16) ^
+ (s >>> 24) ^
+ (s << 8);
+ i[e] = (a >>> 24) & 255;
+ i[e + 1] = (a >> 16) & 255;
+ i[e + 2] = (a >> 8) & 255;
+ i[e + 3] = 255 & a;
+ }
+ }
+ a = i[13];
+ i[13] = i[9];
+ i[9] = i[5];
+ i[5] = i[1];
+ i[1] = a;
+ a = i[14];
+ r = i[10];
+ i[14] = i[6];
+ i[10] = i[2];
+ i[6] = a;
+ i[2] = r;
+ a = i[15];
+ r = i[11];
+ n = i[7];
+ i[15] = i[3];
+ i[11] = a;
+ i[7] = r;
+ i[3] = n;
+ for (let e = 0; e < 16; ++e) {
+ i[e] = this._inv_s[i[e]];
+ i[e] ^= t[e];
+ }
+ return i;
+ }
+ _encrypt(e, t) {
+ const a = this._s;
+ let r, n, i;
+ const s = new Uint8Array(16);
+ s.set(e);
+ for (let e = 0; e < 16; ++e) s[e] ^= t[e];
+ for (let e = 1; e < this._cyclesOfRepetition; e++) {
+ for (let e = 0; e < 16; ++e) s[e] = a[s[e]];
+ i = s[1];
+ s[1] = s[5];
+ s[5] = s[9];
+ s[9] = s[13];
+ s[13] = i;
+ i = s[2];
+ n = s[6];
+ s[2] = s[10];
+ s[6] = s[14];
+ s[10] = i;
+ s[14] = n;
+ i = s[3];
+ n = s[7];
+ r = s[11];
+ s[3] = s[15];
+ s[7] = i;
+ s[11] = n;
+ s[15] = r;
+ for (let e = 0; e < 16; e += 4) {
+ const t = s[e + 0],
+ a = s[e + 1],
+ n = s[e + 2],
+ i = s[e + 3];
+ r = t ^ a ^ n ^ i;
+ s[e + 0] ^= r ^ this._mixCol[t ^ a];
+ s[e + 1] ^= r ^ this._mixCol[a ^ n];
+ s[e + 2] ^= r ^ this._mixCol[n ^ i];
+ s[e + 3] ^= r ^ this._mixCol[i ^ t];
+ }
+ for (let a = 0, r = 16 * e; a < 16; ++a, ++r) s[a] ^= t[r];
+ }
+ for (let e = 0; e < 16; ++e) s[e] = a[s[e]];
+ i = s[1];
+ s[1] = s[5];
+ s[5] = s[9];
+ s[9] = s[13];
+ s[13] = i;
+ i = s[2];
+ n = s[6];
+ s[2] = s[10];
+ s[6] = s[14];
+ s[10] = i;
+ s[14] = n;
+ i = s[3];
+ n = s[7];
+ r = s[11];
+ s[3] = s[15];
+ s[7] = i;
+ s[11] = n;
+ s[15] = r;
+ for (let e = 0, a = this._keySize; e < 16; ++e, ++a) s[e] ^= t[a];
+ return s;
+ }
+ _decryptBlock2(e, t) {
+ const a = e.length;
+ let r = this.buffer,
+ n = this.bufferPosition;
+ const i = [];
+ let s = this.iv;
+ for (let t = 0; t < a; ++t) {
+ r[n] = e[t];
+ ++n;
+ if (n < 16) continue;
+ const a = this._decrypt(r, this._key);
+ for (let e = 0; e < 16; ++e) a[e] ^= s[e];
+ s = r;
+ i.push(a);
+ r = new Uint8Array(16);
+ n = 0;
+ }
+ this.buffer = r;
+ this.bufferLength = n;
+ this.iv = s;
+ if (0 === i.length) return new Uint8Array(0);
+ let o = 16 * i.length;
+ if (t) {
+ const e = i.at(-1);
+ let t = e[15];
+ if (t <= 16) {
+ for (let a = 15, r = 16 - t; a >= r; --a)
+ if (e[a] !== t) {
+ t = 0;
+ break;
+ }
+ o -= t;
+ i[i.length - 1] = e.subarray(0, 16 - t);
+ }
+ }
+ const c = new Uint8Array(o);
+ for (let e = 0, t = 0, a = i.length; e < a; ++e, t += 16)
+ c.set(i[e], t);
+ return c;
+ }
+ decryptBlock(e, t, a = null) {
+ const r = e.length,
+ n = this.buffer;
+ let i = this.bufferPosition;
+ if (a) this.iv = a;
+ else {
+ for (let t = 0; i < 16 && t < r; ++t, ++i) n[i] = e[t];
+ if (i < 16) {
+ this.bufferLength = i;
+ return new Uint8Array(0);
+ }
+ this.iv = n;
+ e = e.subarray(16);
+ }
+ this.buffer = new Uint8Array(16);
+ this.bufferLength = 0;
+ this.decryptBlock = this._decryptBlock2;
+ return this.decryptBlock(e, t);
+ }
+ encrypt(e, t) {
+ const a = e.length;
+ let r = this.buffer,
+ n = this.bufferPosition;
+ const i = [];
+ t || (t = new Uint8Array(16));
+ for (let s = 0; s < a; ++s) {
+ r[n] = e[s];
+ ++n;
+ if (n < 16) continue;
+ for (let e = 0; e < 16; ++e) r[e] ^= t[e];
+ const a = this._encrypt(r, this._key);
+ t = a;
+ i.push(a);
+ r = new Uint8Array(16);
+ n = 0;
+ }
+ this.buffer = r;
+ this.bufferLength = n;
+ this.iv = t;
+ if (0 === i.length) return new Uint8Array(0);
+ const s = 16 * i.length,
+ o = new Uint8Array(s);
+ for (let e = 0, t = 0, a = i.length; e < a; ++e, t += 16)
+ o.set(i[e], t);
+ return o;
+ }
+ }
+ class AES128Cipher extends AESBaseCipher {
+ constructor(e) {
+ super();
+ this._cyclesOfRepetition = 10;
+ this._keySize = 160;
+ this._rcon = new Uint8Array([
+ 141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77,
+ 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250,
+ 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74,
+ 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141, 1, 2, 4, 8,
+ 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188,
+ 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57,
+ 114, 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204,
+ 131, 29, 58, 116, 232, 203, 141, 1, 2, 4, 8, 16, 32, 64, 128,
+ 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53,
+ 106, 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189,
+ 97, 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232,
+ 203, 141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171,
+ 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250,
+ 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74,
+ 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141, 1, 2, 4, 8,
+ 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188,
+ 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57,
+ 114, 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204,
+ 131, 29, 58, 116, 232, 203, 141,
+ ]);
+ this._key = this._expandKey(e);
+ }
+ _expandKey(e) {
+ const t = this._s,
+ a = this._rcon,
+ r = new Uint8Array(176);
+ r.set(e);
+ for (let e = 16, n = 1; e < 176; ++n) {
+ let i = r[e - 3],
+ s = r[e - 2],
+ o = r[e - 1],
+ c = r[e - 4];
+ i = t[i];
+ s = t[s];
+ o = t[o];
+ c = t[c];
+ i ^= a[n];
+ for (let t = 0; t < 4; ++t) {
+ r[e] = i ^= r[e - 16];
+ e++;
+ r[e] = s ^= r[e - 16];
+ e++;
+ r[e] = o ^= r[e - 16];
+ e++;
+ r[e] = c ^= r[e - 16];
+ e++;
+ }
+ }
+ return r;
+ }
+ }
+ t.AES128Cipher = AES128Cipher;
+ class AES256Cipher extends AESBaseCipher {
+ constructor(e) {
+ super();
+ this._cyclesOfRepetition = 14;
+ this._keySize = 224;
+ this._key = this._expandKey(e);
+ }
+ _expandKey(e) {
+ const t = this._s,
+ a = new Uint8Array(240);
+ a.set(e);
+ let r,
+ n,
+ i,
+ s,
+ o = 1;
+ for (let e = 32, c = 1; e < 240; ++c) {
+ if (e % 32 == 16) {
+ r = t[r];
+ n = t[n];
+ i = t[i];
+ s = t[s];
+ } else if (e % 32 == 0) {
+ r = a[e - 3];
+ n = a[e - 2];
+ i = a[e - 1];
+ s = a[e - 4];
+ r = t[r];
+ n = t[n];
+ i = t[i];
+ s = t[s];
+ r ^= o;
+ (o <<= 1) >= 256 && (o = 255 & (27 ^ o));
+ }
+ for (let t = 0; t < 4; ++t) {
+ a[e] = r ^= a[e - 32];
+ e++;
+ a[e] = n ^= a[e - 32];
+ e++;
+ a[e] = i ^= a[e - 32];
+ e++;
+ a[e] = s ^= a[e - 32];
+ e++;
+ }
+ }
+ return a;
+ }
+ }
+ t.AES256Cipher = AES256Cipher;
+ class PDF17 {
+ checkOwnerPassword(e, t, a, n) {
+ const i = new Uint8Array(e.length + 56);
+ i.set(e, 0);
+ i.set(t, e.length);
+ i.set(a, e.length + t.length);
+ const s = o(i, 0, i.length);
+ return (0, r.isArrayEqual)(s, n);
+ }
+ checkUserPassword(e, t, a) {
+ const n = new Uint8Array(e.length + 8);
+ n.set(e, 0);
+ n.set(t, e.length);
+ const i = o(n, 0, n.length);
+ return (0, r.isArrayEqual)(i, a);
+ }
+ getOwnerKey(e, t, a, r) {
+ const n = new Uint8Array(e.length + 56);
+ n.set(e, 0);
+ n.set(t, e.length);
+ n.set(a, e.length + t.length);
+ const i = o(n, 0, n.length);
+ return new AES256Cipher(i).decryptBlock(
+ r,
+ !1,
+ new Uint8Array(16),
+ );
+ }
+ getUserKey(e, t, a) {
+ const r = new Uint8Array(e.length + 8);
+ r.set(e, 0);
+ r.set(t, e.length);
+ const n = o(r, 0, r.length);
+ return new AES256Cipher(n).decryptBlock(
+ a,
+ !1,
+ new Uint8Array(16),
+ );
+ }
+ }
+ t.PDF17 = PDF17;
+ class PDF20 {
+ _hash(e, t, a) {
+ let r = o(t, 0, t.length).subarray(0, 32),
+ n = [0],
+ i = 0;
+ for (; i < 64 || n.at(-1) > i - 32; ) {
+ const t = e.length + r.length + a.length,
+ s = new Uint8Array(t);
+ let l = 0;
+ s.set(e, l);
+ l += e.length;
+ s.set(r, l);
+ l += r.length;
+ s.set(a, l);
+ const h = new Uint8Array(64 * t);
+ for (let e = 0, a = 0; e < 64; e++, a += t) h.set(s, a);
+ n = new AES128Cipher(r.subarray(0, 16)).encrypt(
+ h,
+ r.subarray(16, 32),
+ );
+ const u = n.slice(0, 16).reduce((e, t) => e + t, 0) % 3;
+ 0 === u
+ ? (r = o(n, 0, n.length))
+ : 1 === u
+ ? (r = calculateSHA384(n, 0, n.length))
+ : 2 === u && (r = c(n, 0, n.length));
+ i++;
+ }
+ return r.subarray(0, 32);
+ }
+ checkOwnerPassword(e, t, a, n) {
+ const i = new Uint8Array(e.length + 56);
+ i.set(e, 0);
+ i.set(t, e.length);
+ i.set(a, e.length + t.length);
+ const s = this._hash(e, i, a);
+ return (0, r.isArrayEqual)(s, n);
+ }
+ checkUserPassword(e, t, a) {
+ const n = new Uint8Array(e.length + 8);
+ n.set(e, 0);
+ n.set(t, e.length);
+ const i = this._hash(e, n, []);
+ return (0, r.isArrayEqual)(i, a);
+ }
+ getOwnerKey(e, t, a, r) {
+ const n = new Uint8Array(e.length + 56);
+ n.set(e, 0);
+ n.set(t, e.length);
+ n.set(a, e.length + t.length);
+ const i = this._hash(e, n, a);
+ return new AES256Cipher(i).decryptBlock(
+ r,
+ !1,
+ new Uint8Array(16),
+ );
+ }
+ getUserKey(e, t, a) {
+ const r = new Uint8Array(e.length + 8);
+ r.set(e, 0);
+ r.set(t, e.length);
+ const n = this._hash(e, r, []);
+ return new AES256Cipher(n).decryptBlock(
+ a,
+ !1,
+ new Uint8Array(16),
+ );
+ }
+ }
+ t.PDF20 = PDF20;
+ class CipherTransform {
+ constructor(e, t) {
+ this.StringCipherConstructor = e;
+ this.StreamCipherConstructor = t;
+ }
+ createStream(e, t) {
+ const a = new this.StreamCipherConstructor();
+ return new i.DecryptStream(
+ e,
+ t,
+ function cipherTransformDecryptStream(e, t) {
+ return a.decryptBlock(e, t);
+ },
+ );
+ }
+ decryptString(e) {
+ const t = new this.StringCipherConstructor();
+ let a = (0, r.stringToBytes)(e);
+ a = t.decryptBlock(a, !0);
+ return (0, r.bytesToString)(a);
+ }
+ encryptString(e) {
+ const t = new this.StringCipherConstructor();
+ if (t instanceof AESBaseCipher) {
+ const a = 16 - (e.length % 16);
+ e += String.fromCharCode(a).repeat(a);
+ const n = new Uint8Array(16);
+ if ("undefined" != typeof crypto) crypto.getRandomValues(n);
+ else
+ for (let e = 0; e < 16; e++)
+ n[e] = Math.floor(256 * Math.random());
+ let i = (0, r.stringToBytes)(e);
+ i = t.encrypt(i, n);
+ const s = new Uint8Array(16 + i.length);
+ s.set(n);
+ s.set(i, 16);
+ return (0, r.bytesToString)(s);
+ }
+ let a = (0, r.stringToBytes)(e);
+ a = t.encrypt(a);
+ return (0, r.bytesToString)(a);
+ }
+ }
+ class CipherTransformFactory {
+ static #O = new Uint8Array([
+ 40, 191, 78, 94, 78, 117, 138, 65, 100, 0, 78, 86, 255, 250, 1, 8,
+ 46, 46, 0, 182, 208, 104, 62, 128, 47, 12, 169, 254, 100, 83, 105,
+ 122,
+ ]);
+ #I(e, t, a, r, n, i, s, o, c, l, h, u) {
+ if (t) {
+ const e = Math.min(127, t.length);
+ t = t.subarray(0, e);
+ } else t = [];
+ const d = 6 === e ? new PDF20() : new PDF17();
+ return d.checkUserPassword(t, o, s)
+ ? d.getUserKey(t, c, h)
+ : t.length && d.checkOwnerPassword(t, r, i, a)
+ ? d.getOwnerKey(t, n, i, l)
+ : null;
+ }
+ #T(e, t, a, r, n, i, o, c) {
+ const l = 40 + a.length + e.length,
+ h = new Uint8Array(l);
+ let u,
+ d,
+ f = 0;
+ if (t) {
+ d = Math.min(32, t.length);
+ for (; f < d; ++f) h[f] = t[f];
+ }
+ u = 0;
+ for (; f < 32; ) h[f++] = CipherTransformFactory.#O[u++];
+ for (u = 0, d = a.length; u < d; ++u) h[f++] = a[u];
+ h[f++] = 255 & n;
+ h[f++] = (n >> 8) & 255;
+ h[f++] = (n >> 16) & 255;
+ h[f++] = (n >>> 24) & 255;
+ for (u = 0, d = e.length; u < d; ++u) h[f++] = e[u];
+ if (i >= 4 && !c) {
+ h[f++] = 255;
+ h[f++] = 255;
+ h[f++] = 255;
+ h[f++] = 255;
+ }
+ let g = s(h, 0, f);
+ const p = o >> 3;
+ if (i >= 3) for (u = 0; u < 50; ++u) g = s(g, 0, p);
+ const m = g.subarray(0, p);
+ let b, y;
+ if (i >= 3) {
+ for (f = 0; f < 32; ++f) h[f] = CipherTransformFactory.#O[f];
+ for (u = 0, d = e.length; u < d; ++u) h[f++] = e[u];
+ b = new ARCFourCipher(m);
+ y = b.encryptBlock(s(h, 0, f));
+ d = m.length;
+ const t = new Uint8Array(d);
+ for (u = 1; u <= 19; ++u) {
+ for (let e = 0; e < d; ++e) t[e] = m[e] ^ u;
+ b = new ARCFourCipher(t);
+ y = b.encryptBlock(y);
+ }
+ for (u = 0, d = y.length; u < d; ++u)
+ if (r[u] !== y[u]) return null;
+ } else {
+ b = new ARCFourCipher(m);
+ y = b.encryptBlock(CipherTransformFactory.#O);
+ for (u = 0, d = y.length; u < d; ++u)
+ if (r[u] !== y[u]) return null;
+ }
+ return m;
+ }
+ #M(e, t, a, r) {
+ const n = new Uint8Array(32);
+ let i = 0;
+ const o = Math.min(32, e.length);
+ for (; i < o; ++i) n[i] = e[i];
+ let c = 0;
+ for (; i < 32; ) n[i++] = CipherTransformFactory.#O[c++];
+ let l = s(n, 0, i);
+ const h = r >> 3;
+ if (a >= 3) for (c = 0; c < 50; ++c) l = s(l, 0, l.length);
+ let u, d;
+ if (a >= 3) {
+ d = t;
+ const e = new Uint8Array(h);
+ for (c = 19; c >= 0; c--) {
+ for (let t = 0; t < h; ++t) e[t] = l[t] ^ c;
+ u = new ARCFourCipher(e);
+ d = u.encryptBlock(d);
+ }
+ } else {
+ u = new ARCFourCipher(l.subarray(0, h));
+ d = u.encryptBlock(t);
+ }
+ return d;
+ }
+ #P(e, t, a, r = !1) {
+ const n = new Uint8Array(a.length + 9),
+ i = a.length;
+ let o;
+ for (o = 0; o < i; ++o) n[o] = a[o];
+ n[o++] = 255 & e;
+ n[o++] = (e >> 8) & 255;
+ n[o++] = (e >> 16) & 255;
+ n[o++] = 255 & t;
+ n[o++] = (t >> 8) & 255;
+ if (r) {
+ n[o++] = 115;
+ n[o++] = 65;
+ n[o++] = 108;
+ n[o++] = 84;
+ }
+ return s(n, 0, o).subarray(0, Math.min(a.length + 5, 16));
+ }
+ #D(e, t, a, i, s) {
+ if (!(t instanceof n.Name))
+ throw new r.FormatError("Invalid crypt filter name.");
+ const o = this,
+ c = e.get(t.name),
+ l = c?.get("CFM");
+ if (!l || "None" === l.name)
+ return function () {
+ return new NullCipher();
+ };
+ if ("V2" === l.name)
+ return function () {
+ return new ARCFourCipher(o.#P(a, i, s, !1));
+ };
+ if ("AESV2" === l.name)
+ return function () {
+ return new AES128Cipher(o.#P(a, i, s, !0));
+ };
+ if ("AESV3" === l.name)
+ return function () {
+ return new AES256Cipher(s);
+ };
+ throw new r.FormatError("Unknown crypto method");
+ }
+ constructor(e, t, a) {
+ const i = e.get("Filter");
+ if (!(0, n.isName)(i, "Standard"))
+ throw new r.FormatError("unknown encryption method");
+ this.filterName = i.name;
+ this.dict = e;
+ const s = e.get("V");
+ if (
+ !Number.isInteger(s) ||
+ (1 !== s && 2 !== s && 4 !== s && 5 !== s)
+ )
+ throw new r.FormatError("unsupported encryption algorithm");
+ this.algorithm = s;
+ let o = e.get("Length");
+ if (!o)
+ if (s <= 3) o = 40;
+ else {
+ const t = e.get("CF"),
+ a = e.get("StmF");
+ if (t instanceof n.Dict && a instanceof n.Name) {
+ t.suppressEncryption = !0;
+ const e = t.get(a.name);
+ o = e?.get("Length") || 128;
+ o < 40 && (o <<= 3);
+ }
+ }
+ if (!Number.isInteger(o) || o < 40 || o % 8 != 0)
+ throw new r.FormatError("invalid key length");
+ const c = (0, r.stringToBytes)(e.get("O")),
+ l = (0, r.stringToBytes)(e.get("U")),
+ h = c.subarray(0, 32),
+ u = l.subarray(0, 32),
+ d = e.get("P"),
+ f = e.get("R"),
+ g = (4 === s || 5 === s) && !1 !== e.get("EncryptMetadata");
+ this.encryptMetadata = g;
+ const p = (0, r.stringToBytes)(t);
+ let m, b;
+ if (a) {
+ if (6 === f)
+ try {
+ a = (0, r.utf8StringToString)(a);
+ } catch {
+ (0, r.warn)(
+ "CipherTransformFactory: Unable to convert UTF8 encoded password.",
+ );
+ }
+ m = (0, r.stringToBytes)(a);
+ }
+ if (5 !== s) b = this.#T(p, m, h, u, d, f, o, g);
+ else {
+ const t = c.subarray(32, 40),
+ a = c.subarray(40, 48),
+ n = l.subarray(0, 48),
+ i = l.subarray(32, 40),
+ s = l.subarray(40, 48),
+ o = (0, r.stringToBytes)(e.get("OE")),
+ d = (0, r.stringToBytes)(e.get("UE")),
+ g = (0, r.stringToBytes)(e.get("Perms"));
+ b = this.#I(f, m, h, t, a, n, u, i, s, o, d, g);
+ }
+ if (!b && !a)
+ throw new r.PasswordException(
+ "No password given",
+ r.PasswordResponses.NEED_PASSWORD,
+ );
+ if (!b && a) {
+ const e = this.#M(m, h, f, o);
+ b = this.#T(p, e, h, u, d, f, o, g);
+ }
+ if (!b)
+ throw new r.PasswordException(
+ "Incorrect Password",
+ r.PasswordResponses.INCORRECT_PASSWORD,
+ );
+ this.encryptionKey = b;
+ if (s >= 4) {
+ const t = e.get("CF");
+ t instanceof n.Dict && (t.suppressEncryption = !0);
+ this.cf = t;
+ this.stmf = e.get("StmF") || n.Name.get("Identity");
+ this.strf = e.get("StrF") || n.Name.get("Identity");
+ this.eff = e.get("EFF") || this.stmf;
+ }
+ }
+ createCipherTransform(e, t) {
+ if (4 === this.algorithm || 5 === this.algorithm)
+ return new CipherTransform(
+ this.#D(this.cf, this.strf, e, t, this.encryptionKey),
+ this.#D(this.cf, this.stmf, e, t, this.encryptionKey),
+ );
+ const a = this.#P(e, t, this.encryptionKey, !1),
+ cipherConstructor = function () {
+ return new ARCFourCipher(a);
+ };
+ return new CipherTransform(cipherConstructor, cipherConstructor);
+ }
+ }
+ t.CipherTransformFactory = CipherTransformFactory;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.DecryptStream = void 0;
+ var r = a(18);
+ class DecryptStream extends r.DecodeStream {
+ constructor(e, t, a) {
+ super(t);
+ this.str = e;
+ this.dict = e.dict;
+ this.decrypt = a;
+ this.nextChunk = null;
+ this.initialized = !1;
+ }
+ readBlock() {
+ let e;
+ if (this.initialized) e = this.nextChunk;
+ else {
+ e = this.str.getBytes(512);
+ this.initialized = !0;
+ }
+ if (!e || 0 === e.length) {
+ this.eof = !0;
+ return;
+ }
+ this.nextChunk = this.str.getBytes(512);
+ const t = this.nextChunk?.length > 0;
+ e = (0, this.decrypt)(e, !t);
+ const a = this.bufferLength,
+ r = a + e.length;
+ this.ensureBuffer(r).set(e, a);
+ this.bufferLength = r;
+ }
+ }
+ t.DecryptStream = DecryptStream;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.ObjectLoader = void 0;
+ var r = a(4),
+ n = a(5),
+ i = a(3),
+ s = a(2);
+ function addChildren(e, t) {
+ if (e instanceof r.Dict) e = e.getRawValues();
+ else if (e instanceof n.BaseStream) e = e.dict.getRawValues();
+ else if (!Array.isArray(e)) return;
+ for (const i of e)
+ ((a = i) instanceof r.Ref ||
+ a instanceof r.Dict ||
+ a instanceof n.BaseStream ||
+ Array.isArray(a)) &&
+ t.push(i);
+ var a;
+ }
+ t.ObjectLoader = class ObjectLoader {
+ constructor(e, t, a) {
+ this.dict = e;
+ this.keys = t;
+ this.xref = a;
+ this.refSet = null;
+ }
+ async load() {
+ if (this.xref.stream.isDataLoaded) return;
+ const { keys: e, dict: t } = this;
+ this.refSet = new r.RefSet();
+ const a = [];
+ for (const r of e) {
+ const e = t.getRaw(r);
+ void 0 !== e && a.push(e);
+ }
+ return this._walk(a);
+ }
+ async _walk(e) {
+ const t = [],
+ a = [];
+ for (; e.length; ) {
+ let o = e.pop();
+ if (o instanceof r.Ref) {
+ if (this.refSet.has(o)) continue;
+ try {
+ this.refSet.put(o);
+ o = this.xref.fetch(o);
+ } catch (e) {
+ if (!(e instanceof i.MissingDataException)) {
+ (0, s.warn)(
+ `ObjectLoader._walk - requesting all data: "${e}".`,
+ );
+ this.refSet = null;
+ const { manager: t } = this.xref.stream;
+ return t.requestAllChunks();
+ }
+ t.push(o);
+ a.push({ begin: e.begin, end: e.end });
+ }
+ }
+ if (o instanceof n.BaseStream) {
+ const e = o.getBaseStreams();
+ if (e) {
+ let r = !1;
+ for (const t of e)
+ if (!t.isDataLoaded) {
+ r = !0;
+ a.push({ begin: t.start, end: t.end });
+ }
+ r && t.push(o);
+ }
+ }
+ addChildren(o, e);
+ }
+ if (a.length) {
+ await this.xref.stream.manager.requestRanges(a);
+ for (const e of t) e instanceof r.Ref && this.refSet.remove(e);
+ return this._walk(t);
+ }
+ this.refSet = null;
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.XFAFactory = void 0;
+ var r = a(78),
+ n = a(79),
+ i = a(89),
+ s = a(85),
+ o = a(84),
+ c = a(2),
+ l = a(90),
+ h = a(100);
+ class XFAFactory {
+ constructor(e) {
+ try {
+ this.root = new l.XFAParser().parse(
+ XFAFactory._createDocument(e),
+ );
+ const t = new n.Binder(this.root);
+ this.form = t.bind();
+ this.dataHandler = new i.DataHandler(this.root, t.getData());
+ this.form[r.$globalData].template = this.form;
+ } catch (e) {
+ (0, c.warn)(
+ `XFA - an error occurred during parsing and binding: ${e}`,
+ );
+ }
+ }
+ isValid() {
+ return this.root && this.form;
+ }
+ _createPagesHelper() {
+ const e = this.form[r.$toPages]();
+ return new Promise((t, a) => {
+ const nextIteration = () => {
+ try {
+ const a = e.next();
+ a.done ? t(a.value) : setTimeout(nextIteration, 0);
+ } catch (e) {
+ a(e);
+ }
+ };
+ setTimeout(nextIteration, 0);
+ });
+ }
+ async _createPages() {
+ try {
+ this.pages = await this._createPagesHelper();
+ this.dims = this.pages.children.map((e) => {
+ const { width: t, height: a } = e.attributes.style;
+ return [0, 0, parseInt(t), parseInt(a)];
+ });
+ } catch (e) {
+ (0, c.warn)(`XFA - an error occurred during layout: ${e}`);
+ }
+ }
+ getBoundingBox(e) {
+ return this.dims[e];
+ }
+ async getNumPages() {
+ this.pages || (await this._createPages());
+ return this.dims.length;
+ }
+ setImages(e) {
+ this.form[r.$globalData].images = e;
+ }
+ setFonts(e) {
+ this.form[r.$globalData].fontFinder = new s.FontFinder(e);
+ const t = [];
+ for (let e of this.form[r.$globalData].usedTypefaces) {
+ e = (0, o.stripQuotes)(e);
+ this.form[r.$globalData].fontFinder.find(e) || t.push(e);
+ }
+ return t.length > 0 ? t : null;
+ }
+ appendFonts(e, t) {
+ this.form[r.$globalData].fontFinder.add(e, t);
+ }
+ async getPages() {
+ this.pages || (await this._createPages());
+ const e = this.pages;
+ this.pages = null;
+ return e;
+ }
+ serializeData(e) {
+ return this.dataHandler.serialize(e);
+ }
+ static _createDocument(e) {
+ return e["/xdp:xdp"] ? Object.values(e).join("") : e["xdp:xdp"];
+ }
+ static getRichTextAsHtml(e) {
+ if (!e || "string" != typeof e) return null;
+ try {
+ let t = new l.XFAParser(h.XhtmlNamespace, !0).parse(e);
+ if (!["body", "xhtml"].includes(t[r.$nodeName])) {
+ const e = h.XhtmlNamespace.body({});
+ e[r.$appendChild](t);
+ t = e;
+ }
+ const a = t[r.$toHTML]();
+ if (!a.success) return null;
+ const { html: n } = a,
+ { attributes: i } = n;
+ if (i) {
+ i.class &&
+ (i.class = i.class.filter((e) => !e.startsWith("xfa")));
+ i.dir = "auto";
+ }
+ return { html: n, str: t[r.$text]() };
+ } catch (e) {
+ (0, c.warn)(
+ `XFA - an error occurred during parsing of rich text: ${e}`,
+ );
+ }
+ return null;
+ }
+ }
+ t.XFAFactory = XFAFactory;
+ },
+ (e, t) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.$uid =
+ t.$toStyle =
+ t.$toString =
+ t.$toPages =
+ t.$toHTML =
+ t.$text =
+ t.$tabIndex =
+ t.$setValue =
+ t.$setSetAttributes =
+ t.$setId =
+ t.$searchNode =
+ t.$root =
+ t.$resolvePrototypes =
+ t.$removeChild =
+ t.$pushPara =
+ t.$pushGlyphs =
+ t.$popPara =
+ t.$onText =
+ t.$onChildCheck =
+ t.$onChild =
+ t.$nsAttributes =
+ t.$nodeName =
+ t.$namespaceId =
+ t.$lastAttribute =
+ t.$isUsable =
+ t.$isTransparent =
+ t.$isThereMoreWidth =
+ t.$isSplittable =
+ t.$isNsAgnostic =
+ t.$isDescendent =
+ t.$isDataValue =
+ t.$isCDATAXml =
+ t.$isBindable =
+ t.$insertAt =
+ t.$indexOf =
+ t.$ids =
+ t.$hasSettableValue =
+ t.$globalData =
+ t.$getTemplateRoot =
+ t.$getSubformParent =
+ t.$getRealChildrenByNameIt =
+ t.$getParent =
+ t.$getNextPage =
+ t.$getExtra =
+ t.$getDataValue =
+ t.$getContainedChildren =
+ t.$getChildrenByNameIt =
+ t.$getChildrenByName =
+ t.$getChildrenByClass =
+ t.$getChildren =
+ t.$getAvailableSpace =
+ t.$getAttributes =
+ t.$getAttributeIt =
+ t.$flushHTML =
+ t.$finalize =
+ t.$extra =
+ t.$dump =
+ t.$data =
+ t.$content =
+ t.$consumed =
+ t.$clone =
+ t.$cleanup =
+ t.$cleanPage =
+ t.$clean =
+ t.$childrenToHTML =
+ t.$appendChild =
+ t.$addHTML =
+ t.$acceptWhitespace =
+ void 0;
+ const a = Symbol();
+ t.$acceptWhitespace = a;
+ const r = Symbol();
+ t.$addHTML = r;
+ const n = Symbol();
+ t.$appendChild = n;
+ const i = Symbol();
+ t.$childrenToHTML = i;
+ const s = Symbol();
+ t.$clean = s;
+ const o = Symbol();
+ t.$cleanPage = o;
+ const c = Symbol();
+ t.$cleanup = c;
+ const l = Symbol();
+ t.$clone = l;
+ const h = Symbol();
+ t.$consumed = h;
+ const u = Symbol("content");
+ t.$content = u;
+ const d = Symbol("data");
+ t.$data = d;
+ const f = Symbol();
+ t.$dump = f;
+ const g = Symbol("extra");
+ t.$extra = g;
+ const p = Symbol();
+ t.$finalize = p;
+ const m = Symbol();
+ t.$flushHTML = m;
+ const b = Symbol();
+ t.$getAttributeIt = b;
+ const y = Symbol();
+ t.$getAttributes = y;
+ const w = Symbol();
+ t.$getAvailableSpace = w;
+ const S = Symbol();
+ t.$getChildrenByClass = S;
+ const x = Symbol();
+ t.$getChildrenByName = x;
+ const C = Symbol();
+ t.$getChildrenByNameIt = C;
+ const k = Symbol();
+ t.$getDataValue = k;
+ const v = Symbol();
+ t.$getExtra = v;
+ const F = Symbol();
+ t.$getRealChildrenByNameIt = F;
+ const O = Symbol();
+ t.$getChildren = O;
+ const T = Symbol();
+ t.$getContainedChildren = T;
+ const M = Symbol();
+ t.$getNextPage = M;
+ const D = Symbol();
+ t.$getSubformParent = D;
+ const E = Symbol();
+ t.$getParent = E;
+ const N = Symbol();
+ t.$getTemplateRoot = N;
+ const R = Symbol();
+ t.$globalData = R;
+ const L = Symbol();
+ t.$hasSettableValue = L;
+ const $ = Symbol();
+ t.$ids = $;
+ const _ = Symbol();
+ t.$indexOf = _;
+ const j = Symbol();
+ t.$insertAt = j;
+ const U = Symbol();
+ t.$isCDATAXml = U;
+ const X = Symbol();
+ t.$isBindable = X;
+ const H = Symbol();
+ t.$isDataValue = H;
+ const q = Symbol();
+ t.$isDescendent = q;
+ const z = Symbol();
+ t.$isNsAgnostic = z;
+ const W = Symbol();
+ t.$isSplittable = W;
+ const G = Symbol();
+ t.$isThereMoreWidth = G;
+ const V = Symbol();
+ t.$isTransparent = V;
+ const K = Symbol();
+ t.$isUsable = K;
+ const J = Symbol();
+ t.$lastAttribute = J;
+ const Y = Symbol("namespaceId");
+ t.$namespaceId = Y;
+ const Z = Symbol("nodeName");
+ t.$nodeName = Z;
+ const Q = Symbol();
+ t.$nsAttributes = Q;
+ const ee = Symbol();
+ t.$onChild = ee;
+ const te = Symbol();
+ t.$onChildCheck = te;
+ const ae = Symbol();
+ t.$onText = ae;
+ const re = Symbol();
+ t.$pushGlyphs = re;
+ const ne = Symbol();
+ t.$popPara = ne;
+ const ie = Symbol();
+ t.$pushPara = ie;
+ const se = Symbol();
+ t.$removeChild = se;
+ const oe = Symbol("root");
+ t.$root = oe;
+ const ce = Symbol();
+ t.$resolvePrototypes = ce;
+ const le = Symbol();
+ t.$searchNode = le;
+ const he = Symbol();
+ t.$setId = he;
+ const ue = Symbol();
+ t.$setSetAttributes = ue;
+ const de = Symbol();
+ t.$setValue = de;
+ const fe = Symbol();
+ t.$tabIndex = fe;
+ const ge = Symbol();
+ t.$text = ge;
+ const pe = Symbol();
+ t.$toPages = pe;
+ const me = Symbol();
+ t.$toHTML = me;
+ const be = Symbol();
+ t.$toString = be;
+ const ye = Symbol();
+ t.$toStyle = ye;
+ const we = Symbol("uid");
+ t.$uid = we;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.Binder = void 0;
+ var r = a(78),
+ n = a(80),
+ i = a(88),
+ s = a(87),
+ o = a(81),
+ c = a(2);
+ const l = o.NamespaceIds.datasets.id;
+ function createText(e) {
+ const t = new n.Text({});
+ t[r.$content] = e;
+ return t;
+ }
+ t.Binder = class Binder {
+ constructor(e) {
+ this.root = e;
+ this.datasets = e.datasets;
+ this.data =
+ e.datasets?.data ||
+ new s.XmlObject(o.NamespaceIds.datasets.id, "data");
+ this.emptyMerge = 0 === this.data[r.$getChildren]().length;
+ this.root.form = this.form = e.template[r.$clone]();
+ }
+ _isConsumeData() {
+ return !this.emptyMerge && this._mergeMode;
+ }
+ _isMatchTemplate() {
+ return !this._isConsumeData();
+ }
+ bind() {
+ this._bindElement(this.form, this.data);
+ return this.form;
+ }
+ getData() {
+ return this.data;
+ }
+ _bindValue(e, t, a) {
+ e[r.$data] = t;
+ if (e[r.$hasSettableValue]())
+ if (t[r.$isDataValue]()) {
+ const a = t[r.$getDataValue]();
+ e[r.$setValue](createText(a));
+ } else if (
+ e instanceof n.Field &&
+ "multiSelect" === e.ui?.choiceList?.open
+ ) {
+ const a = t[r.$getChildren]()
+ .map((e) => e[r.$content].trim())
+ .join("\n");
+ e[r.$setValue](createText(a));
+ } else
+ this._isConsumeData() &&
+ (0, c.warn)("XFA - Nodes haven't the same type.");
+ else
+ !t[r.$isDataValue]() || this._isMatchTemplate()
+ ? this._bindElement(e, t)
+ : (0, c.warn)("XFA - Nodes haven't the same type.");
+ }
+ _findDataByNameToConsume(e, t, a, n) {
+ if (!e) return null;
+ let i, s;
+ for (let n = 0; n < 3; n++) {
+ i = a[r.$getRealChildrenByNameIt](e, !1, !0);
+ for (;;) {
+ s = i.next().value;
+ if (!s) break;
+ if (t === s[r.$isDataValue]()) return s;
+ }
+ if (
+ a[r.$namespaceId] === o.NamespaceIds.datasets.id &&
+ "data" === a[r.$nodeName]
+ )
+ break;
+ a = a[r.$getParent]();
+ }
+ if (!n) return null;
+ i = this.data[r.$getRealChildrenByNameIt](e, !0, !1);
+ s = i.next().value;
+ if (s) return s;
+ i = this.data[r.$getAttributeIt](e, !0);
+ s = i.next().value;
+ return s?.[r.$isDataValue]() ? s : null;
+ }
+ _setProperties(e, t) {
+ if (e.hasOwnProperty("setProperty"))
+ for (const { ref: a, target: o, connection: l } of e.setProperty
+ .children) {
+ if (l) continue;
+ if (!a) continue;
+ const h = (0, i.searchNode)(this.root, t, a, !1, !1);
+ if (!h) {
+ (0, c.warn)(`XFA - Invalid reference: ${a}.`);
+ continue;
+ }
+ const [u] = h;
+ if (!u[r.$isDescendent](this.data)) {
+ (0, c.warn)("XFA - Invalid node: must be a data node.");
+ continue;
+ }
+ const d = (0, i.searchNode)(this.root, e, o, !1, !1);
+ if (!d) {
+ (0, c.warn)(`XFA - Invalid target: ${o}.`);
+ continue;
+ }
+ const [f] = d;
+ if (!f[r.$isDescendent](e)) {
+ (0, c.warn)(
+ "XFA - Invalid target: must be a property or subproperty.",
+ );
+ continue;
+ }
+ const g = f[r.$getParent]();
+ if (
+ f instanceof n.SetProperty ||
+ g instanceof n.SetProperty
+ ) {
+ (0, c.warn)(
+ "XFA - Invalid target: cannot be a setProperty or one of its properties.",
+ );
+ continue;
+ }
+ if (f instanceof n.BindItems || g instanceof n.BindItems) {
+ (0, c.warn)(
+ "XFA - Invalid target: cannot be a bindItems or one of its properties.",
+ );
+ continue;
+ }
+ const p = u[r.$text](),
+ m = f[r.$nodeName];
+ if (f instanceof s.XFAAttribute) {
+ const e = Object.create(null);
+ e[m] = p;
+ const t = Reflect.construct(
+ Object.getPrototypeOf(g).constructor,
+ [e],
+ );
+ g[m] = t[m];
+ } else if (f.hasOwnProperty(r.$content)) {
+ f[r.$data] = u;
+ f[r.$content] = p;
+ f[r.$finalize]();
+ } else
+ (0, c.warn)("XFA - Invalid node to use in setProperty");
+ }
+ }
+ _bindItems(e, t) {
+ if (
+ !e.hasOwnProperty("items") ||
+ !e.hasOwnProperty("bindItems") ||
+ e.bindItems.isEmpty()
+ )
+ return;
+ for (const t of e.items.children) e[r.$removeChild](t);
+ e.items.clear();
+ const a = new n.Items({}),
+ s = new n.Items({});
+ e[r.$appendChild](a);
+ e.items.push(a);
+ e[r.$appendChild](s);
+ e.items.push(s);
+ for (const {
+ ref: n,
+ labelRef: o,
+ valueRef: l,
+ connection: h,
+ } of e.bindItems.children) {
+ if (h) continue;
+ if (!n) continue;
+ const e = (0, i.searchNode)(this.root, t, n, !1, !1);
+ if (e)
+ for (const t of e) {
+ if (!t[r.$isDescendent](this.datasets)) {
+ (0, c.warn)(
+ `XFA - Invalid ref (${n}): must be a datasets child.`,
+ );
+ continue;
+ }
+ const e = (0, i.searchNode)(this.root, t, o, !0, !1);
+ if (!e) {
+ (0, c.warn)(`XFA - Invalid label: ${o}.`);
+ continue;
+ }
+ const [h] = e;
+ if (!h[r.$isDescendent](this.datasets)) {
+ (0, c.warn)(
+ "XFA - Invalid label: must be a datasets child.",
+ );
+ continue;
+ }
+ const u = (0, i.searchNode)(this.root, t, l, !0, !1);
+ if (!u) {
+ (0, c.warn)(`XFA - Invalid value: ${l}.`);
+ continue;
+ }
+ const [d] = u;
+ if (!d[r.$isDescendent](this.datasets)) {
+ (0, c.warn)(
+ "XFA - Invalid value: must be a datasets child.",
+ );
+ continue;
+ }
+ const f = createText(h[r.$text]()),
+ g = createText(d[r.$text]());
+ a[r.$appendChild](f);
+ a.text.push(f);
+ s[r.$appendChild](g);
+ s.text.push(g);
+ }
+ else (0, c.warn)(`XFA - Invalid reference: ${n}.`);
+ }
+ }
+ _bindOccurrences(e, t, a) {
+ let n;
+ if (t.length > 1) {
+ n = e[r.$clone]();
+ n[r.$removeChild](n.occur);
+ n.occur = null;
+ }
+ this._bindValue(e, t[0], a);
+ this._setProperties(e, t[0]);
+ this._bindItems(e, t[0]);
+ if (1 === t.length) return;
+ const i = e[r.$getParent](),
+ s = e[r.$nodeName],
+ o = i[r.$indexOf](e);
+ for (let e = 1, c = t.length; e < c; e++) {
+ const c = t[e],
+ l = n[r.$clone]();
+ i[s].push(l);
+ i[r.$insertAt](o + e, l);
+ this._bindValue(l, c, a);
+ this._setProperties(l, c);
+ this._bindItems(l, c);
+ }
+ }
+ _createOccurrences(e) {
+ if (!this.emptyMerge) return;
+ const { occur: t } = e;
+ if (!t || t.initial <= 1) return;
+ const a = e[r.$getParent](),
+ n = e[r.$nodeName];
+ if (!(a[n] instanceof s.XFAObjectArray)) return;
+ let i;
+ i = e.name
+ ? a[n].children.filter((t) => t.name === e.name).length
+ : a[n].children.length;
+ const o = a[r.$indexOf](e) + 1,
+ c = t.initial - i;
+ if (c) {
+ const t = e[r.$clone]();
+ t[r.$removeChild](t.occur);
+ t.occur = null;
+ a[n].push(t);
+ a[r.$insertAt](o, t);
+ for (let e = 1; e < c; e++) {
+ const i = t[r.$clone]();
+ a[n].push(i);
+ a[r.$insertAt](o + e, i);
+ }
+ }
+ }
+ _getOccurInfo(e) {
+ const { name: t, occur: a } = e;
+ if (!a || !t) return [1, 1];
+ const r = -1 === a.max ? 1 / 0 : a.max;
+ return [a.min, r];
+ }
+ _setAndBind(e, t) {
+ this._setProperties(e, t);
+ this._bindItems(e, t);
+ this._bindElement(e, t);
+ }
+ _bindElement(e, t) {
+ const a = [];
+ this._createOccurrences(e);
+ for (const n of e[r.$getChildren]()) {
+ if (n[r.$data]) continue;
+ if (
+ void 0 === this._mergeMode &&
+ "subform" === n[r.$nodeName]
+ ) {
+ this._mergeMode = "consumeData" === n.mergeMode;
+ const e = t[r.$getChildren]();
+ if (e.length > 0) this._bindOccurrences(n, [e[0]], null);
+ else if (this.emptyMerge) {
+ const e = t[r.$namespaceId] === l ? -1 : t[r.$namespaceId],
+ a = (n[r.$data] = new s.XmlObject(e, n.name || "root"));
+ t[r.$appendChild](a);
+ this._bindElement(n, a);
+ }
+ continue;
+ }
+ if (!n[r.$isBindable]()) continue;
+ let e = !1,
+ o = null,
+ h = null,
+ u = null;
+ if (n.bind) {
+ switch (n.bind.match) {
+ case "none":
+ this._setAndBind(n, t);
+ continue;
+ case "global":
+ e = !0;
+ break;
+ case "dataRef":
+ if (!n.bind.ref) {
+ (0, c.warn)(
+ `XFA - ref is empty in node ${n[r.$nodeName]}.`,
+ );
+ this._setAndBind(n, t);
+ continue;
+ }
+ h = n.bind.ref;
+ }
+ n.bind.picture && (o = n.bind.picture[r.$content]);
+ }
+ const [d, f] = this._getOccurInfo(n);
+ if (h) {
+ u = (0, i.searchNode)(this.root, t, h, !0, !1);
+ if (null === u) {
+ u = (0, i.createDataNode)(this.data, t, h);
+ if (!u) continue;
+ this._isConsumeData() && (u[r.$consumed] = !0);
+ this._setAndBind(n, u);
+ continue;
+ }
+ this._isConsumeData() &&
+ (u = u.filter((e) => !e[r.$consumed]));
+ u.length > f
+ ? (u = u.slice(0, f))
+ : 0 === u.length && (u = null);
+ u &&
+ this._isConsumeData() &&
+ u.forEach((e) => {
+ e[r.$consumed] = !0;
+ });
+ } else {
+ if (!n.name) {
+ this._setAndBind(n, t);
+ continue;
+ }
+ if (this._isConsumeData()) {
+ const a = [];
+ for (; a.length < f; ) {
+ const i = this._findDataByNameToConsume(
+ n.name,
+ n[r.$hasSettableValue](),
+ t,
+ e,
+ );
+ if (!i) break;
+ i[r.$consumed] = !0;
+ a.push(i);
+ }
+ u = a.length > 0 ? a : null;
+ } else {
+ u = t[r.$getRealChildrenByNameIt](
+ n.name,
+ !1,
+ this.emptyMerge,
+ ).next().value;
+ if (!u) {
+ if (0 === d) {
+ a.push(n);
+ continue;
+ }
+ const e =
+ t[r.$namespaceId] === l ? -1 : t[r.$namespaceId];
+ u = n[r.$data] = new s.XmlObject(e, n.name);
+ this.emptyMerge && (u[r.$consumed] = !0);
+ t[r.$appendChild](u);
+ this._setAndBind(n, u);
+ continue;
+ }
+ this.emptyMerge && (u[r.$consumed] = !0);
+ u = [u];
+ }
+ }
+ u
+ ? this._bindOccurrences(n, u, o)
+ : d > 0
+ ? this._setAndBind(n, t)
+ : a.push(n);
+ }
+ a.forEach((e) => e[r.$getParent]()[r.$removeChild](e));
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.Value =
+ t.Text =
+ t.TemplateNamespace =
+ t.Template =
+ t.SetProperty =
+ t.Items =
+ t.Field =
+ t.BindItems =
+ void 0;
+ var r = a(78),
+ n = a(81),
+ i = a(82),
+ s = a(83),
+ o = a(87),
+ c = a(84),
+ l = a(2),
+ h = a(85),
+ u = a(3),
+ d = a(88);
+ const f = n.NamespaceIds.template.id,
+ g = "http://www.w3.org/2000/svg",
+ p = /^H(\d+)$/,
+ m = new Set([
+ "image/gif",
+ "image/jpeg",
+ "image/jpg",
+ "image/pjpeg",
+ "image/png",
+ "image/apng",
+ "image/x-png",
+ "image/bmp",
+ "image/x-ms-bmp",
+ "image/tiff",
+ "image/tif",
+ "application/octet-stream",
+ ]),
+ b = [
+ [[66, 77], "image/bmp"],
+ [[255, 216, 255], "image/jpeg"],
+ [[73, 73, 42, 0], "image/tiff"],
+ [[77, 77, 0, 42], "image/tiff"],
+ [[71, 73, 70, 56, 57, 97], "image/gif"],
+ [[137, 80, 78, 71, 13, 10, 26, 10], "image/png"],
+ ];
+ function getBorderDims(e) {
+ if (!e || !e.border) return { w: 0, h: 0 };
+ const t = e.border[r.$getExtra]();
+ return t
+ ? {
+ w: t.widths[0] + t.widths[2] + t.insets[0] + t.insets[2],
+ h: t.widths[1] + t.widths[3] + t.insets[1] + t.insets[3],
+ }
+ : { w: 0, h: 0 };
+ }
+ function hasMargin(e) {
+ return (
+ e.margin &&
+ (e.margin.topInset ||
+ e.margin.rightInset ||
+ e.margin.bottomInset ||
+ e.margin.leftInset)
+ );
+ }
+ function _setValue(e, t) {
+ if (!e.value) {
+ const t = new Value({});
+ e[r.$appendChild](t);
+ e.value = t;
+ }
+ e.value[r.$setValue](t);
+ }
+ function* getContainedChildren(e) {
+ for (const t of e[r.$getChildren]())
+ t instanceof SubformSet
+ ? yield* t[r.$getContainedChildren]()
+ : yield t;
+ }
+ function isRequired(e) {
+ return "error" === e.validate?.nullTest;
+ }
+ function setTabIndex(e) {
+ for (; e; ) {
+ if (!e.traversal) {
+ e[r.$tabIndex] = e[r.$getParent]()[r.$tabIndex];
+ return;
+ }
+ if (e[r.$tabIndex]) return;
+ let t = null;
+ for (const a of e.traversal[r.$getChildren]())
+ if ("next" === a.operation) {
+ t = a;
+ break;
+ }
+ if (!t || !t.ref) {
+ e[r.$tabIndex] = e[r.$getParent]()[r.$tabIndex];
+ return;
+ }
+ const a = e[r.$getTemplateRoot]();
+ e[r.$tabIndex] = ++a[r.$tabIndex];
+ const n = a[r.$searchNode](t.ref, e);
+ if (!n) return;
+ e = n[0];
+ }
+ }
+ function applyAssist(e, t) {
+ const a = e.assist;
+ if (a) {
+ const e = a[r.$toHTML]();
+ e && (t.title = e);
+ const n = a.role.match(p);
+ if (n) {
+ const e = "heading",
+ a = n[1];
+ t.role = e;
+ t["aria-level"] = a;
+ }
+ }
+ if ("table" === e.layout) t.role = "table";
+ else if ("row" === e.layout) t.role = "row";
+ else {
+ const a = e[r.$getParent]();
+ "row" === a.layout &&
+ (t.role = "TH" === a.assist?.role ? "columnheader" : "cell");
+ }
+ }
+ function ariaLabel(e) {
+ if (!e.assist) return null;
+ const t = e.assist;
+ return t.speak && "" !== t.speak[r.$content]
+ ? t.speak[r.$content]
+ : t.toolTip
+ ? t.toolTip[r.$content]
+ : null;
+ }
+ function valueToHtml(e) {
+ return c.HTMLResult.success({
+ name: "div",
+ attributes: { class: ["xfaRich"], style: Object.create(null) },
+ children: [
+ {
+ name: "span",
+ attributes: { style: Object.create(null) },
+ value: e,
+ },
+ ],
+ });
+ }
+ function setFirstUnsplittable(e) {
+ const t = e[r.$getTemplateRoot]();
+ if (null === t[r.$extra].firstUnsplittable) {
+ t[r.$extra].firstUnsplittable = e;
+ t[r.$extra].noLayoutFailure = !0;
+ }
+ }
+ function unsetFirstUnsplittable(e) {
+ const t = e[r.$getTemplateRoot]();
+ t[r.$extra].firstUnsplittable === e &&
+ (t[r.$extra].noLayoutFailure = !1);
+ }
+ function handleBreak(e) {
+ if (e[r.$extra]) return !1;
+ e[r.$extra] = Object.create(null);
+ if ("auto" === e.targetType) return !1;
+ const t = e[r.$getTemplateRoot]();
+ let a = null;
+ if (e.target) {
+ a = t[r.$searchNode](e.target, e[r.$getParent]());
+ if (!a) return !1;
+ a = a[0];
+ }
+ const { currentPageArea: n, currentContentArea: i } = t[r.$extra];
+ if ("pageArea" === e.targetType) {
+ a instanceof PageArea || (a = null);
+ if (e.startNew) {
+ e[r.$extra].target = a || n;
+ return !0;
+ }
+ if (a && a !== n) {
+ e[r.$extra].target = a;
+ return !0;
+ }
+ return !1;
+ }
+ a instanceof ContentArea || (a = null);
+ const s = a && a[r.$getParent]();
+ let o,
+ c = s;
+ if (e.startNew)
+ if (a) {
+ const e = s.contentArea.children,
+ t = e.indexOf(i),
+ r = e.indexOf(a);
+ -1 !== t && t < r && (c = null);
+ o = r - 1;
+ } else o = n.contentArea.children.indexOf(i);
+ else {
+ if (!a || a === i) return !1;
+ o = s.contentArea.children.indexOf(a) - 1;
+ c = s === n ? null : s;
+ }
+ e[r.$extra].target = c;
+ e[r.$extra].index = o;
+ return !0;
+ }
+ function handleOverflow(e, t, a) {
+ const n = e[r.$getTemplateRoot](),
+ i = n[r.$extra].noLayoutFailure,
+ s = t[r.$getSubformParent];
+ t[r.$getSubformParent] = () => e;
+ n[r.$extra].noLayoutFailure = !0;
+ const o = t[r.$toHTML](a);
+ e[r.$addHTML](o.html, o.bbox);
+ n[r.$extra].noLayoutFailure = i;
+ t[r.$getSubformParent] = s;
+ }
+ class AppearanceFilter extends o.StringObject {
+ constructor(e) {
+ super(f, "appearanceFilter");
+ this.id = e.id || "";
+ this.type = (0, c.getStringOption)(e.type, [
+ "optional",
+ "required",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class Arc extends o.XFAObject {
+ constructor(e) {
+ super(f, "arc", !0);
+ this.circular = (0, c.getInteger)({
+ data: e.circular,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.hand = (0, c.getStringOption)(e.hand, [
+ "even",
+ "left",
+ "right",
+ ]);
+ this.id = e.id || "";
+ this.startAngle = (0, c.getFloat)({
+ data: e.startAngle,
+ defaultValue: 0,
+ validate: (e) => !0,
+ });
+ this.sweepAngle = (0, c.getFloat)({
+ data: e.sweepAngle,
+ defaultValue: 360,
+ validate: (e) => !0,
+ });
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.edge = null;
+ this.fill = null;
+ }
+ [r.$toHTML]() {
+ const e = this.edge || new Edge({}),
+ t = e[r.$toStyle](),
+ a = Object.create(null);
+ "visible" === this.fill?.presence
+ ? Object.assign(a, this.fill[r.$toStyle]())
+ : (a.fill = "transparent");
+ a.strokeWidth = (0, s.measureToString)(
+ "visible" === e.presence ? e.thickness : 0,
+ );
+ a.stroke = t.color;
+ let n;
+ const i = {
+ xmlns: g,
+ style: { width: "100%", height: "100%", overflow: "visible" },
+ };
+ if (360 === this.sweepAngle)
+ n = {
+ name: "ellipse",
+ attributes: {
+ xmlns: g,
+ cx: "50%",
+ cy: "50%",
+ rx: "50%",
+ ry: "50%",
+ style: a,
+ },
+ };
+ else {
+ const e = (this.startAngle * Math.PI) / 180,
+ t = (this.sweepAngle * Math.PI) / 180,
+ r = this.sweepAngle > 180 ? 1 : 0,
+ [s, o, c, l] = [
+ 50 * (1 + Math.cos(e)),
+ 50 * (1 - Math.sin(e)),
+ 50 * (1 + Math.cos(e + t)),
+ 50 * (1 - Math.sin(e + t)),
+ ];
+ n = {
+ name: "path",
+ attributes: {
+ xmlns: g,
+ d: `M ${s} ${o} A 50 50 0 ${r} 0 ${c} ${l}`,
+ vectorEffect: "non-scaling-stroke",
+ style: a,
+ },
+ };
+ Object.assign(i, {
+ viewBox: "0 0 100 100",
+ preserveAspectRatio: "none",
+ });
+ }
+ const o = { name: "svg", children: [n], attributes: i };
+ if (hasMargin(this[r.$getParent]()[r.$getParent]()))
+ return c.HTMLResult.success({
+ name: "div",
+ attributes: {
+ style: { display: "inline", width: "100%", height: "100%" },
+ },
+ children: [o],
+ });
+ o.attributes.style.position = "absolute";
+ return c.HTMLResult.success(o);
+ }
+ }
+ class Area extends o.XFAObject {
+ constructor(e) {
+ super(f, "area", !0);
+ this.colSpan = (0, c.getInteger)({
+ data: e.colSpan,
+ defaultValue: 1,
+ validate: (e) => e >= 1 || -1 === e,
+ });
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.relevant = (0, c.getRelevant)(e.relevant);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.x = (0, c.getMeasurement)(e.x, "0pt");
+ this.y = (0, c.getMeasurement)(e.y, "0pt");
+ this.desc = null;
+ this.extras = null;
+ this.area = new o.XFAObjectArray();
+ this.draw = new o.XFAObjectArray();
+ this.exObject = new o.XFAObjectArray();
+ this.exclGroup = new o.XFAObjectArray();
+ this.field = new o.XFAObjectArray();
+ this.subform = new o.XFAObjectArray();
+ this.subformSet = new o.XFAObjectArray();
+ }
+ *[r.$getContainedChildren]() {
+ yield* getContainedChildren(this);
+ }
+ [r.$isTransparent]() {
+ return !0;
+ }
+ [r.$isBindable]() {
+ return !0;
+ }
+ [r.$addHTML](e, t) {
+ const [a, n, i, s] = t;
+ this[r.$extra].width = Math.max(this[r.$extra].width, a + i);
+ this[r.$extra].height = Math.max(this[r.$extra].height, n + s);
+ this[r.$extra].children.push(e);
+ }
+ [r.$getAvailableSpace]() {
+ return this[r.$extra].availableSpace;
+ }
+ [r.$toHTML](e) {
+ const t = (0, s.toStyle)(this, "position"),
+ a = { style: t, id: this[r.$uid], class: ["xfaArea"] };
+ (0, s.isPrintOnly)(this) && a.class.push("xfaPrintOnly");
+ this.name && (a.xfaName = this.name);
+ const n = [];
+ this[r.$extra] = {
+ children: n,
+ width: 0,
+ height: 0,
+ availableSpace: e,
+ };
+ const i = this[r.$childrenToHTML]({
+ filter: new Set([
+ "area",
+ "draw",
+ "field",
+ "exclGroup",
+ "subform",
+ "subformSet",
+ ]),
+ include: !0,
+ });
+ if (!i.success) {
+ if (i.isBreak()) return i;
+ delete this[r.$extra];
+ return c.HTMLResult.FAILURE;
+ }
+ t.width = (0, s.measureToString)(this[r.$extra].width);
+ t.height = (0, s.measureToString)(this[r.$extra].height);
+ const o = { name: "div", attributes: a, children: n },
+ l = [
+ this.x,
+ this.y,
+ this[r.$extra].width,
+ this[r.$extra].height,
+ ];
+ delete this[r.$extra];
+ return c.HTMLResult.success(o, l);
+ }
+ }
+ class Assist extends o.XFAObject {
+ constructor(e) {
+ super(f, "assist", !0);
+ this.id = e.id || "";
+ this.role = e.role || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.speak = null;
+ this.toolTip = null;
+ }
+ [r.$toHTML]() {
+ return this.toolTip?.[r.$content] || null;
+ }
+ }
+ class Barcode extends o.XFAObject {
+ constructor(e) {
+ super(f, "barcode", !0);
+ this.charEncoding = (0, c.getKeyword)({
+ data: e.charEncoding ? e.charEncoding.toLowerCase() : "",
+ defaultValue: "",
+ validate: (e) =>
+ [
+ "utf-8",
+ "big-five",
+ "fontspecific",
+ "gbk",
+ "gb-18030",
+ "gb-2312",
+ "ksc-5601",
+ "none",
+ "shift-jis",
+ "ucs-2",
+ "utf-16",
+ ].includes(e) || e.match(/iso-8859-\d{2}/),
+ });
+ this.checksum = (0, c.getStringOption)(e.checksum, [
+ "none",
+ "1mod10",
+ "1mod10_1mod11",
+ "2mod10",
+ "auto",
+ ]);
+ this.dataColumnCount = (0, c.getInteger)({
+ data: e.dataColumnCount,
+ defaultValue: -1,
+ validate: (e) => e >= 0,
+ });
+ this.dataLength = (0, c.getInteger)({
+ data: e.dataLength,
+ defaultValue: -1,
+ validate: (e) => e >= 0,
+ });
+ this.dataPrep = (0, c.getStringOption)(e.dataPrep, [
+ "none",
+ "flateCompress",
+ ]);
+ this.dataRowCount = (0, c.getInteger)({
+ data: e.dataRowCount,
+ defaultValue: -1,
+ validate: (e) => e >= 0,
+ });
+ this.endChar = e.endChar || "";
+ this.errorCorrectionLevel = (0, c.getInteger)({
+ data: e.errorCorrectionLevel,
+ defaultValue: -1,
+ validate: (e) => e >= 0 && e <= 8,
+ });
+ this.id = e.id || "";
+ this.moduleHeight = (0, c.getMeasurement)(e.moduleHeight, "5mm");
+ this.moduleWidth = (0, c.getMeasurement)(e.moduleWidth, "0.25mm");
+ this.printCheckDigit = (0, c.getInteger)({
+ data: e.printCheckDigit,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.rowColumnRatio = (0, c.getRatio)(e.rowColumnRatio);
+ this.startChar = e.startChar || "";
+ this.textLocation = (0, c.getStringOption)(e.textLocation, [
+ "below",
+ "above",
+ "aboveEmbedded",
+ "belowEmbedded",
+ "none",
+ ]);
+ this.truncate = (0, c.getInteger)({
+ data: e.truncate,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.type = (0, c.getStringOption)(
+ e.type ? e.type.toLowerCase() : "",
+ [
+ "aztec",
+ "codabar",
+ "code2of5industrial",
+ "code2of5interleaved",
+ "code2of5matrix",
+ "code2of5standard",
+ "code3of9",
+ "code3of9extended",
+ "code11",
+ "code49",
+ "code93",
+ "code128",
+ "code128a",
+ "code128b",
+ "code128c",
+ "code128sscc",
+ "datamatrix",
+ "ean8",
+ "ean8add2",
+ "ean8add5",
+ "ean13",
+ "ean13add2",
+ "ean13add5",
+ "ean13pwcd",
+ "fim",
+ "logmars",
+ "maxicode",
+ "msi",
+ "pdf417",
+ "pdf417macro",
+ "plessey",
+ "postauscust2",
+ "postauscust3",
+ "postausreplypaid",
+ "postausstandard",
+ "postukrm4scc",
+ "postusdpbc",
+ "postusimb",
+ "postusstandard",
+ "postus5zip",
+ "qrcode",
+ "rfid",
+ "rss14",
+ "rss14expanded",
+ "rss14limited",
+ "rss14stacked",
+ "rss14stackedomni",
+ "rss14truncated",
+ "telepen",
+ "ucc128",
+ "ucc128random",
+ "ucc128sscc",
+ "upca",
+ "upcaadd2",
+ "upcaadd5",
+ "upcapwcd",
+ "upce",
+ "upceadd2",
+ "upceadd5",
+ "upcean2",
+ "upcean5",
+ "upsmaxicode",
+ ],
+ );
+ this.upsMode = (0, c.getStringOption)(e.upsMode, [
+ "usCarrier",
+ "internationalCarrier",
+ "secureSymbol",
+ "standardSymbol",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.wideNarrowRatio = (0, c.getRatio)(e.wideNarrowRatio);
+ this.encrypt = null;
+ this.extras = null;
+ }
+ }
+ class Bind extends o.XFAObject {
+ constructor(e) {
+ super(f, "bind", !0);
+ this.match = (0, c.getStringOption)(e.match, [
+ "once",
+ "dataRef",
+ "global",
+ "none",
+ ]);
+ this.ref = e.ref || "";
+ this.picture = null;
+ }
+ }
+ class BindItems extends o.XFAObject {
+ constructor(e) {
+ super(f, "bindItems");
+ this.connection = e.connection || "";
+ this.labelRef = e.labelRef || "";
+ this.ref = e.ref || "";
+ this.valueRef = e.valueRef || "";
+ }
+ }
+ t.BindItems = BindItems;
+ class Bookend extends o.XFAObject {
+ constructor(e) {
+ super(f, "bookend");
+ this.id = e.id || "";
+ this.leader = e.leader || "";
+ this.trailer = e.trailer || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class BooleanElement extends o.Option01 {
+ constructor(e) {
+ super(f, "boolean");
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ [r.$toHTML](e) {
+ return valueToHtml(1 === this[r.$content] ? "1" : "0");
+ }
+ }
+ class Border extends o.XFAObject {
+ constructor(e) {
+ super(f, "border", !0);
+ this.break = (0, c.getStringOption)(e.break, ["close", "open"]);
+ this.hand = (0, c.getStringOption)(e.hand, [
+ "even",
+ "left",
+ "right",
+ ]);
+ this.id = e.id || "";
+ this.presence = (0, c.getStringOption)(e.presence, [
+ "visible",
+ "hidden",
+ "inactive",
+ "invisible",
+ ]);
+ this.relevant = (0, c.getRelevant)(e.relevant);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.corner = new o.XFAObjectArray(4);
+ this.edge = new o.XFAObjectArray(4);
+ this.extras = null;
+ this.fill = null;
+ this.margin = null;
+ }
+ [r.$getExtra]() {
+ if (!this[r.$extra]) {
+ const e = this.edge.children.slice();
+ if (e.length < 4) {
+ const t = e.at(-1) || new Edge({});
+ for (let a = e.length; a < 4; a++) e.push(t);
+ }
+ const t = e.map((e) => e.thickness),
+ a = [0, 0, 0, 0];
+ if (this.margin) {
+ a[0] = this.margin.topInset;
+ a[1] = this.margin.rightInset;
+ a[2] = this.margin.bottomInset;
+ a[3] = this.margin.leftInset;
+ }
+ this[r.$extra] = { widths: t, insets: a, edges: e };
+ }
+ return this[r.$extra];
+ }
+ [r.$toStyle]() {
+ const { edges: e } = this[r.$getExtra](),
+ t = e.map((e) => {
+ const t = e[r.$toStyle]();
+ t.color ||= "#000000";
+ return t;
+ }),
+ a = Object.create(null);
+ this.margin && Object.assign(a, this.margin[r.$toStyle]());
+ "visible" === this.fill?.presence &&
+ Object.assign(a, this.fill[r.$toStyle]());
+ if (this.corner.children.some((e) => 0 !== e.radius)) {
+ const e = this.corner.children.map((e) => e[r.$toStyle]());
+ if (2 === e.length || 3 === e.length) {
+ const t = e.at(-1);
+ for (let a = e.length; a < 4; a++) e.push(t);
+ }
+ a.borderRadius = e.map((e) => e.radius).join(" ");
+ }
+ switch (this.presence) {
+ case "invisible":
+ case "hidden":
+ a.borderStyle = "";
+ break;
+ case "inactive":
+ a.borderStyle = "none";
+ break;
+ default:
+ a.borderStyle = t.map((e) => e.style).join(" ");
+ }
+ a.borderWidth = t.map((e) => e.width).join(" ");
+ a.borderColor = t.map((e) => e.color).join(" ");
+ return a;
+ }
+ }
+ class Break extends o.XFAObject {
+ constructor(e) {
+ super(f, "break", !0);
+ this.after = (0, c.getStringOption)(e.after, [
+ "auto",
+ "contentArea",
+ "pageArea",
+ "pageEven",
+ "pageOdd",
+ ]);
+ this.afterTarget = e.afterTarget || "";
+ this.before = (0, c.getStringOption)(e.before, [
+ "auto",
+ "contentArea",
+ "pageArea",
+ "pageEven",
+ "pageOdd",
+ ]);
+ this.beforeTarget = e.beforeTarget || "";
+ this.bookendLeader = e.bookendLeader || "";
+ this.bookendTrailer = e.bookendTrailer || "";
+ this.id = e.id || "";
+ this.overflowLeader = e.overflowLeader || "";
+ this.overflowTarget = e.overflowTarget || "";
+ this.overflowTrailer = e.overflowTrailer || "";
+ this.startNew = (0, c.getInteger)({
+ data: e.startNew,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.extras = null;
+ }
+ }
+ class BreakAfter extends o.XFAObject {
+ constructor(e) {
+ super(f, "breakAfter", !0);
+ this.id = e.id || "";
+ this.leader = e.leader || "";
+ this.startNew = (0, c.getInteger)({
+ data: e.startNew,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.target = e.target || "";
+ this.targetType = (0, c.getStringOption)(e.targetType, [
+ "auto",
+ "contentArea",
+ "pageArea",
+ ]);
+ this.trailer = e.trailer || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.script = null;
+ }
+ }
+ class BreakBefore extends o.XFAObject {
+ constructor(e) {
+ super(f, "breakBefore", !0);
+ this.id = e.id || "";
+ this.leader = e.leader || "";
+ this.startNew = (0, c.getInteger)({
+ data: e.startNew,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.target = e.target || "";
+ this.targetType = (0, c.getStringOption)(e.targetType, [
+ "auto",
+ "contentArea",
+ "pageArea",
+ ]);
+ this.trailer = e.trailer || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.script = null;
+ }
+ [r.$toHTML](e) {
+ this[r.$extra] = {};
+ return c.HTMLResult.FAILURE;
+ }
+ }
+ class Button extends o.XFAObject {
+ constructor(e) {
+ super(f, "button", !0);
+ this.highlight = (0, c.getStringOption)(e.highlight, [
+ "inverted",
+ "none",
+ "outline",
+ "push",
+ ]);
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.extras = null;
+ }
+ [r.$toHTML](e) {
+ const t = this[r.$getParent]()[r.$getParent](),
+ a = {
+ name: "button",
+ attributes: {
+ id: this[r.$uid],
+ class: ["xfaButton"],
+ style: {},
+ },
+ children: [],
+ };
+ for (const e of t.event.children) {
+ if ("click" !== e.activity || !e.script) continue;
+ const t = (0, u.recoverJsURL)(e.script[r.$content]);
+ if (!t) continue;
+ const n = (0, s.fixURL)(t.url);
+ n &&
+ a.children.push({
+ name: "a",
+ attributes: {
+ id: "link" + this[r.$uid],
+ href: n,
+ newWindow: t.newWindow,
+ class: ["xfaLink"],
+ style: {},
+ },
+ children: [],
+ });
+ }
+ return c.HTMLResult.success(a);
+ }
+ }
+ class Calculate extends o.XFAObject {
+ constructor(e) {
+ super(f, "calculate", !0);
+ this.id = e.id || "";
+ this.override = (0, c.getStringOption)(e.override, [
+ "disabled",
+ "error",
+ "ignore",
+ "warning",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.extras = null;
+ this.message = null;
+ this.script = null;
+ }
+ }
+ class Caption extends o.XFAObject {
+ constructor(e) {
+ super(f, "caption", !0);
+ this.id = e.id || "";
+ this.placement = (0, c.getStringOption)(e.placement, [
+ "left",
+ "bottom",
+ "inline",
+ "right",
+ "top",
+ ]);
+ this.presence = (0, c.getStringOption)(e.presence, [
+ "visible",
+ "hidden",
+ "inactive",
+ "invisible",
+ ]);
+ this.reserve = Math.ceil((0, c.getMeasurement)(e.reserve));
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.extras = null;
+ this.font = null;
+ this.margin = null;
+ this.para = null;
+ this.value = null;
+ }
+ [r.$setValue](e) {
+ _setValue(this, e);
+ }
+ [r.$getExtra](e) {
+ if (!this[r.$extra]) {
+ let { width: t, height: a } = e;
+ switch (this.placement) {
+ case "left":
+ case "right":
+ case "inline":
+ t = this.reserve <= 0 ? t : this.reserve;
+ break;
+ case "top":
+ case "bottom":
+ a = this.reserve <= 0 ? a : this.reserve;
+ }
+ this[r.$extra] = (0, s.layoutNode)(this, {
+ width: t,
+ height: a,
+ });
+ }
+ return this[r.$extra];
+ }
+ [r.$toHTML](e) {
+ if (!this.value) return c.HTMLResult.EMPTY;
+ this[r.$pushPara]();
+ const t = this.value[r.$toHTML](e).html;
+ if (!t) {
+ this[r.$popPara]();
+ return c.HTMLResult.EMPTY;
+ }
+ const a = this.reserve;
+ if (this.reserve <= 0) {
+ const { w: t, h: a } = this[r.$getExtra](e);
+ switch (this.placement) {
+ case "left":
+ case "right":
+ case "inline":
+ this.reserve = t;
+ break;
+ case "top":
+ case "bottom":
+ this.reserve = a;
+ }
+ }
+ const n = [];
+ "string" == typeof t
+ ? n.push({ name: "#text", value: t })
+ : n.push(t);
+ const i = (0, s.toStyle)(this, "font", "margin", "visibility");
+ switch (this.placement) {
+ case "left":
+ case "right":
+ this.reserve > 0 &&
+ (i.width = (0, s.measureToString)(this.reserve));
+ break;
+ case "top":
+ case "bottom":
+ this.reserve > 0 &&
+ (i.height = (0, s.measureToString)(this.reserve));
+ }
+ (0, s.setPara)(this, null, t);
+ this[r.$popPara]();
+ this.reserve = a;
+ return c.HTMLResult.success({
+ name: "div",
+ attributes: { style: i, class: ["xfaCaption"] },
+ children: n,
+ });
+ }
+ }
+ class Certificate extends o.StringObject {
+ constructor(e) {
+ super(f, "certificate");
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class Certificates extends o.XFAObject {
+ constructor(e) {
+ super(f, "certificates", !0);
+ this.credentialServerPolicy = (0, c.getStringOption)(
+ e.credentialServerPolicy,
+ ["optional", "required"],
+ );
+ this.id = e.id || "";
+ this.url = e.url || "";
+ this.urlPolicy = e.urlPolicy || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.encryption = null;
+ this.issuers = null;
+ this.keyUsage = null;
+ this.oids = null;
+ this.signing = null;
+ this.subjectDNs = null;
+ }
+ }
+ class CheckButton extends o.XFAObject {
+ constructor(e) {
+ super(f, "checkButton", !0);
+ this.id = e.id || "";
+ this.mark = (0, c.getStringOption)(e.mark, [
+ "default",
+ "check",
+ "circle",
+ "cross",
+ "diamond",
+ "square",
+ "star",
+ ]);
+ this.shape = (0, c.getStringOption)(e.shape, ["square", "round"]);
+ this.size = (0, c.getMeasurement)(e.size, "10pt");
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.border = null;
+ this.extras = null;
+ this.margin = null;
+ }
+ [r.$toHTML](e) {
+ const t = (0, s.toStyle)("margin"),
+ a = (0, s.measureToString)(this.size);
+ t.width = t.height = a;
+ let n, i, o;
+ const l = this[r.$getParent]()[r.$getParent](),
+ h =
+ (l.items.children.length &&
+ l.items.children[0][r.$toHTML]().html) ||
+ [],
+ u = {
+ on: (void 0 !== h[0] ? h[0] : "on").toString(),
+ off: (void 0 !== h[1] ? h[1] : "off").toString(),
+ },
+ d = (l.value?.[r.$text]() || "off") === u.on || void 0,
+ f = l[r.$getSubformParent](),
+ g = l[r.$uid];
+ let p;
+ if (f instanceof ExclGroup) {
+ o = f[r.$uid];
+ n = "radio";
+ i = "xfaRadio";
+ p = f[r.$data]?.[r.$uid] || f[r.$uid];
+ } else {
+ n = "checkbox";
+ i = "xfaCheckbox";
+ p = l[r.$data]?.[r.$uid] || l[r.$uid];
+ }
+ const m = {
+ name: "input",
+ attributes: {
+ class: [i],
+ style: t,
+ fieldId: g,
+ dataId: p,
+ type: n,
+ checked: d,
+ xfaOn: u.on,
+ xfaOff: u.off,
+ "aria-label": ariaLabel(l),
+ "aria-required": !1,
+ },
+ };
+ o && (m.attributes.name = o);
+ if (isRequired(l)) {
+ m.attributes["aria-required"] = !0;
+ m.attributes.required = !0;
+ }
+ return c.HTMLResult.success({
+ name: "label",
+ attributes: { class: ["xfaLabel"] },
+ children: [m],
+ });
+ }
+ }
+ class ChoiceList extends o.XFAObject {
+ constructor(e) {
+ super(f, "choiceList", !0);
+ this.commitOn = (0, c.getStringOption)(e.commitOn, [
+ "select",
+ "exit",
+ ]);
+ this.id = e.id || "";
+ this.open = (0, c.getStringOption)(e.open, [
+ "userControl",
+ "always",
+ "multiSelect",
+ "onEntry",
+ ]);
+ this.textEntry = (0, c.getInteger)({
+ data: e.textEntry,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.border = null;
+ this.extras = null;
+ this.margin = null;
+ }
+ [r.$toHTML](e) {
+ const t = (0, s.toStyle)(this, "border", "margin"),
+ a = this[r.$getParent]()[r.$getParent](),
+ n = {
+ fontSize: `calc(${
+ a.font?.size || 10
+ }px * var(--scale-factor))`,
+ },
+ i = [];
+ if (a.items.children.length > 0) {
+ const e = a.items;
+ let t = 0,
+ s = 0;
+ if (2 === e.children.length) {
+ t = e.children[0].save;
+ s = 1 - t;
+ }
+ const o = e.children[t][r.$toHTML]().html,
+ c = e.children[s][r.$toHTML]().html;
+ let l = !1;
+ const h = a.value?.[r.$text]() || "";
+ for (let e = 0, t = o.length; e < t; e++) {
+ const t = {
+ name: "option",
+ attributes: { value: c[e] || o[e], style: n },
+ value: o[e],
+ };
+ c[e] === h && (t.attributes.selected = l = !0);
+ i.push(t);
+ }
+ l ||
+ i.splice(0, 0, {
+ name: "option",
+ attributes: { hidden: !0, selected: !0 },
+ value: " ",
+ });
+ }
+ const o = {
+ class: ["xfaSelect"],
+ fieldId: a[r.$uid],
+ dataId: a[r.$data]?.[r.$uid] || a[r.$uid],
+ style: t,
+ "aria-label": ariaLabel(a),
+ "aria-required": !1,
+ };
+ if (isRequired(a)) {
+ o["aria-required"] = !0;
+ o.required = !0;
+ }
+ "multiSelect" === this.open && (o.multiple = !0);
+ return c.HTMLResult.success({
+ name: "label",
+ attributes: { class: ["xfaLabel"] },
+ children: [{ name: "select", children: i, attributes: o }],
+ });
+ }
+ }
+ class Color extends o.XFAObject {
+ constructor(e) {
+ super(f, "color", !0);
+ this.cSpace = (0, c.getStringOption)(e.cSpace, ["SRGB"]);
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.value = e.value ? (0, c.getColor)(e.value) : "";
+ this.extras = null;
+ }
+ [r.$hasSettableValue]() {
+ return !1;
+ }
+ [r.$toStyle]() {
+ return this.value
+ ? l.Util.makeHexColor(this.value.r, this.value.g, this.value.b)
+ : null;
+ }
+ }
+ class Comb extends o.XFAObject {
+ constructor(e) {
+ super(f, "comb");
+ this.id = e.id || "";
+ this.numberOfCells = (0, c.getInteger)({
+ data: e.numberOfCells,
+ defaultValue: 0,
+ validate: (e) => e >= 0,
+ });
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class Connect extends o.XFAObject {
+ constructor(e) {
+ super(f, "connect", !0);
+ this.connection = e.connection || "";
+ this.id = e.id || "";
+ this.ref = e.ref || "";
+ this.usage = (0, c.getStringOption)(e.usage, [
+ "exportAndImport",
+ "exportOnly",
+ "importOnly",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.picture = null;
+ }
+ }
+ class ContentArea extends o.XFAObject {
+ constructor(e) {
+ super(f, "contentArea", !0);
+ this.h = (0, c.getMeasurement)(e.h);
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.relevant = (0, c.getRelevant)(e.relevant);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.w = (0, c.getMeasurement)(e.w);
+ this.x = (0, c.getMeasurement)(e.x, "0pt");
+ this.y = (0, c.getMeasurement)(e.y, "0pt");
+ this.desc = null;
+ this.extras = null;
+ }
+ [r.$toHTML](e) {
+ const t = {
+ left: (0, s.measureToString)(this.x),
+ top: (0, s.measureToString)(this.y),
+ width: (0, s.measureToString)(this.w),
+ height: (0, s.measureToString)(this.h),
+ },
+ a = ["xfaContentarea"];
+ (0, s.isPrintOnly)(this) && a.push("xfaPrintOnly");
+ return c.HTMLResult.success({
+ name: "div",
+ children: [],
+ attributes: { style: t, class: a, id: this[r.$uid] },
+ });
+ }
+ }
+ class Corner extends o.XFAObject {
+ constructor(e) {
+ super(f, "corner", !0);
+ this.id = e.id || "";
+ this.inverted = (0, c.getInteger)({
+ data: e.inverted,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.join = (0, c.getStringOption)(e.join, ["square", "round"]);
+ this.presence = (0, c.getStringOption)(e.presence, [
+ "visible",
+ "hidden",
+ "inactive",
+ "invisible",
+ ]);
+ this.radius = (0, c.getMeasurement)(e.radius);
+ this.stroke = (0, c.getStringOption)(e.stroke, [
+ "solid",
+ "dashDot",
+ "dashDotDot",
+ "dashed",
+ "dotted",
+ "embossed",
+ "etched",
+ "lowered",
+ "raised",
+ ]);
+ this.thickness = (0, c.getMeasurement)(e.thickness, "0.5pt");
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.color = null;
+ this.extras = null;
+ }
+ [r.$toStyle]() {
+ const e = (0, s.toStyle)(this, "visibility");
+ e.radius = (0, s.measureToString)(
+ "square" === this.join ? 0 : this.radius,
+ );
+ return e;
+ }
+ }
+ class DateElement extends o.ContentObject {
+ constructor(e) {
+ super(f, "date");
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ [r.$finalize]() {
+ const e = this[r.$content].trim();
+ this[r.$content] = e ? new Date(e) : null;
+ }
+ [r.$toHTML](e) {
+ return valueToHtml(
+ this[r.$content] ? this[r.$content].toString() : "",
+ );
+ }
+ }
+ class DateTime extends o.ContentObject {
+ constructor(e) {
+ super(f, "dateTime");
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ [r.$finalize]() {
+ const e = this[r.$content].trim();
+ this[r.$content] = e ? new Date(e) : null;
+ }
+ [r.$toHTML](e) {
+ return valueToHtml(
+ this[r.$content] ? this[r.$content].toString() : "",
+ );
+ }
+ }
+ class DateTimeEdit extends o.XFAObject {
+ constructor(e) {
+ super(f, "dateTimeEdit", !0);
+ this.hScrollPolicy = (0, c.getStringOption)(e.hScrollPolicy, [
+ "auto",
+ "off",
+ "on",
+ ]);
+ this.id = e.id || "";
+ this.picker = (0, c.getStringOption)(e.picker, ["host", "none"]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.border = null;
+ this.comb = null;
+ this.extras = null;
+ this.margin = null;
+ }
+ [r.$toHTML](e) {
+ const t = (0, s.toStyle)(this, "border", "font", "margin"),
+ a = this[r.$getParent]()[r.$getParent](),
+ n = {
+ name: "input",
+ attributes: {
+ type: "text",
+ fieldId: a[r.$uid],
+ dataId: a[r.$data]?.[r.$uid] || a[r.$uid],
+ class: ["xfaTextfield"],
+ style: t,
+ "aria-label": ariaLabel(a),
+ "aria-required": !1,
+ },
+ };
+ if (isRequired(a)) {
+ n.attributes["aria-required"] = !0;
+ n.attributes.required = !0;
+ }
+ return c.HTMLResult.success({
+ name: "label",
+ attributes: { class: ["xfaLabel"] },
+ children: [n],
+ });
+ }
+ }
+ class Decimal extends o.ContentObject {
+ constructor(e) {
+ super(f, "decimal");
+ this.fracDigits = (0, c.getInteger)({
+ data: e.fracDigits,
+ defaultValue: 2,
+ validate: (e) => !0,
+ });
+ this.id = e.id || "";
+ this.leadDigits = (0, c.getInteger)({
+ data: e.leadDigits,
+ defaultValue: -1,
+ validate: (e) => !0,
+ });
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ [r.$finalize]() {
+ const e = parseFloat(this[r.$content].trim());
+ this[r.$content] = isNaN(e) ? null : e;
+ }
+ [r.$toHTML](e) {
+ return valueToHtml(
+ null !== this[r.$content] ? this[r.$content].toString() : "",
+ );
+ }
+ }
+ class DefaultUi extends o.XFAObject {
+ constructor(e) {
+ super(f, "defaultUi", !0);
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.extras = null;
+ }
+ }
+ class Desc extends o.XFAObject {
+ constructor(e) {
+ super(f, "desc", !0);
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.boolean = new o.XFAObjectArray();
+ this.date = new o.XFAObjectArray();
+ this.dateTime = new o.XFAObjectArray();
+ this.decimal = new o.XFAObjectArray();
+ this.exData = new o.XFAObjectArray();
+ this.float = new o.XFAObjectArray();
+ this.image = new o.XFAObjectArray();
+ this.integer = new o.XFAObjectArray();
+ this.text = new o.XFAObjectArray();
+ this.time = new o.XFAObjectArray();
+ }
+ }
+ class DigestMethod extends o.OptionObject {
+ constructor(e) {
+ super(f, "digestMethod", [
+ "",
+ "SHA1",
+ "SHA256",
+ "SHA512",
+ "RIPEMD160",
+ ]);
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class DigestMethods extends o.XFAObject {
+ constructor(e) {
+ super(f, "digestMethods", !0);
+ this.id = e.id || "";
+ this.type = (0, c.getStringOption)(e.type, [
+ "optional",
+ "required",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.digestMethod = new o.XFAObjectArray();
+ }
+ }
+ class Draw extends o.XFAObject {
+ constructor(e) {
+ super(f, "draw", !0);
+ this.anchorType = (0, c.getStringOption)(e.anchorType, [
+ "topLeft",
+ "bottomCenter",
+ "bottomLeft",
+ "bottomRight",
+ "middleCenter",
+ "middleLeft",
+ "middleRight",
+ "topCenter",
+ "topRight",
+ ]);
+ this.colSpan = (0, c.getInteger)({
+ data: e.colSpan,
+ defaultValue: 1,
+ validate: (e) => e >= 1 || -1 === e,
+ });
+ this.h = e.h ? (0, c.getMeasurement)(e.h) : "";
+ this.hAlign = (0, c.getStringOption)(e.hAlign, [
+ "left",
+ "center",
+ "justify",
+ "justifyAll",
+ "radix",
+ "right",
+ ]);
+ this.id = e.id || "";
+ this.locale = e.locale || "";
+ this.maxH = (0, c.getMeasurement)(e.maxH, "0pt");
+ this.maxW = (0, c.getMeasurement)(e.maxW, "0pt");
+ this.minH = (0, c.getMeasurement)(e.minH, "0pt");
+ this.minW = (0, c.getMeasurement)(e.minW, "0pt");
+ this.name = e.name || "";
+ this.presence = (0, c.getStringOption)(e.presence, [
+ "visible",
+ "hidden",
+ "inactive",
+ "invisible",
+ ]);
+ this.relevant = (0, c.getRelevant)(e.relevant);
+ this.rotate = (0, c.getInteger)({
+ data: e.rotate,
+ defaultValue: 0,
+ validate: (e) => e % 90 == 0,
+ });
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.w = e.w ? (0, c.getMeasurement)(e.w) : "";
+ this.x = (0, c.getMeasurement)(e.x, "0pt");
+ this.y = (0, c.getMeasurement)(e.y, "0pt");
+ this.assist = null;
+ this.border = null;
+ this.caption = null;
+ this.desc = null;
+ this.extras = null;
+ this.font = null;
+ this.keep = null;
+ this.margin = null;
+ this.para = null;
+ this.traversal = null;
+ this.ui = null;
+ this.value = null;
+ this.setProperty = new o.XFAObjectArray();
+ }
+ [r.$setValue](e) {
+ _setValue(this, e);
+ }
+ [r.$toHTML](e) {
+ setTabIndex(this);
+ if ("hidden" === this.presence || "inactive" === this.presence)
+ return c.HTMLResult.EMPTY;
+ (0, s.fixDimensions)(this);
+ this[r.$pushPara]();
+ const t = this.w,
+ a = this.h,
+ { w: n, h: o, isBroken: l } = (0, s.layoutNode)(this, e);
+ if (n && "" === this.w) {
+ if (l && this[r.$getSubformParent]()[r.$isThereMoreWidth]()) {
+ this[r.$popPara]();
+ return c.HTMLResult.FAILURE;
+ }
+ this.w = n;
+ }
+ o && "" === this.h && (this.h = o);
+ setFirstUnsplittable(this);
+ if (!(0, i.checkDimensions)(this, e)) {
+ this.w = t;
+ this.h = a;
+ this[r.$popPara]();
+ return c.HTMLResult.FAILURE;
+ }
+ unsetFirstUnsplittable(this);
+ const h = (0, s.toStyle)(
+ this,
+ "font",
+ "hAlign",
+ "dimensions",
+ "position",
+ "presence",
+ "rotate",
+ "anchorType",
+ "border",
+ "margin",
+ );
+ (0, s.setMinMaxDimensions)(this, h);
+ if (h.margin) {
+ h.padding = h.margin;
+ delete h.margin;
+ }
+ const u = ["xfaDraw"];
+ this.font && u.push("xfaFont");
+ (0, s.isPrintOnly)(this) && u.push("xfaPrintOnly");
+ const d = { style: h, id: this[r.$uid], class: u };
+ this.name && (d.xfaName = this.name);
+ const f = { name: "div", attributes: d, children: [] };
+ applyAssist(this, d);
+ const g = (0, s.computeBbox)(this, f, e),
+ p = this.value ? this.value[r.$toHTML](e).html : null;
+ if (null === p) {
+ this.w = t;
+ this.h = a;
+ this[r.$popPara]();
+ return c.HTMLResult.success((0, s.createWrapper)(this, f), g);
+ }
+ f.children.push(p);
+ (0, s.setPara)(this, h, p);
+ this.w = t;
+ this.h = a;
+ this[r.$popPara]();
+ return c.HTMLResult.success((0, s.createWrapper)(this, f), g);
+ }
+ }
+ class Edge extends o.XFAObject {
+ constructor(e) {
+ super(f, "edge", !0);
+ this.cap = (0, c.getStringOption)(e.cap, [
+ "square",
+ "butt",
+ "round",
+ ]);
+ this.id = e.id || "";
+ this.presence = (0, c.getStringOption)(e.presence, [
+ "visible",
+ "hidden",
+ "inactive",
+ "invisible",
+ ]);
+ this.stroke = (0, c.getStringOption)(e.stroke, [
+ "solid",
+ "dashDot",
+ "dashDotDot",
+ "dashed",
+ "dotted",
+ "embossed",
+ "etched",
+ "lowered",
+ "raised",
+ ]);
+ this.thickness = (0, c.getMeasurement)(e.thickness, "0.5pt");
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.color = null;
+ this.extras = null;
+ }
+ [r.$toStyle]() {
+ const e = (0, s.toStyle)(this, "visibility");
+ Object.assign(e, {
+ linecap: this.cap,
+ width: (0, s.measureToString)(this.thickness),
+ color: this.color ? this.color[r.$toStyle]() : "#000000",
+ style: "",
+ });
+ if ("visible" !== this.presence) e.style = "none";
+ else
+ switch (this.stroke) {
+ case "solid":
+ e.style = "solid";
+ break;
+ case "dashDot":
+ case "dashDotDot":
+ case "dashed":
+ e.style = "dashed";
+ break;
+ case "dotted":
+ e.style = "dotted";
+ break;
+ case "embossed":
+ e.style = "ridge";
+ break;
+ case "etched":
+ e.style = "groove";
+ break;
+ case "lowered":
+ e.style = "inset";
+ break;
+ case "raised":
+ e.style = "outset";
+ }
+ return e;
+ }
+ }
+ class Encoding extends o.OptionObject {
+ constructor(e) {
+ super(f, "encoding", [
+ "adbe.x509.rsa_sha1",
+ "adbe.pkcs7.detached",
+ "adbe.pkcs7.sha1",
+ ]);
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class Encodings extends o.XFAObject {
+ constructor(e) {
+ super(f, "encodings", !0);
+ this.id = e.id || "";
+ this.type = (0, c.getStringOption)(e.type, [
+ "optional",
+ "required",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.encoding = new o.XFAObjectArray();
+ }
+ }
+ class Encrypt extends o.XFAObject {
+ constructor(e) {
+ super(f, "encrypt", !0);
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.certificate = null;
+ }
+ }
+ class EncryptData extends o.XFAObject {
+ constructor(e) {
+ super(f, "encryptData", !0);
+ this.id = e.id || "";
+ this.operation = (0, c.getStringOption)(e.operation, [
+ "encrypt",
+ "decrypt",
+ ]);
+ this.target = e.target || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.filter = null;
+ this.manifest = null;
+ }
+ }
+ class Encryption extends o.XFAObject {
+ constructor(e) {
+ super(f, "encryption", !0);
+ this.id = e.id || "";
+ this.type = (0, c.getStringOption)(e.type, [
+ "optional",
+ "required",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.certificate = new o.XFAObjectArray();
+ }
+ }
+ class EncryptionMethod extends o.OptionObject {
+ constructor(e) {
+ super(f, "encryptionMethod", [
+ "",
+ "AES256-CBC",
+ "TRIPLEDES-CBC",
+ "AES128-CBC",
+ "AES192-CBC",
+ ]);
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class EncryptionMethods extends o.XFAObject {
+ constructor(e) {
+ super(f, "encryptionMethods", !0);
+ this.id = e.id || "";
+ this.type = (0, c.getStringOption)(e.type, [
+ "optional",
+ "required",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.encryptionMethod = new o.XFAObjectArray();
+ }
+ }
+ class Event extends o.XFAObject {
+ constructor(e) {
+ super(f, "event", !0);
+ this.activity = (0, c.getStringOption)(e.activity, [
+ "click",
+ "change",
+ "docClose",
+ "docReady",
+ "enter",
+ "exit",
+ "full",
+ "indexChange",
+ "initialize",
+ "mouseDown",
+ "mouseEnter",
+ "mouseExit",
+ "mouseUp",
+ "postExecute",
+ "postOpen",
+ "postPrint",
+ "postSave",
+ "postSign",
+ "postSubmit",
+ "preExecute",
+ "preOpen",
+ "prePrint",
+ "preSave",
+ "preSign",
+ "preSubmit",
+ "ready",
+ "validationState",
+ ]);
+ this.id = e.id || "";
+ this.listen = (0, c.getStringOption)(e.listen, [
+ "refOnly",
+ "refAndDescendents",
+ ]);
+ this.name = e.name || "";
+ this.ref = e.ref || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.extras = null;
+ this.encryptData = null;
+ this.execute = null;
+ this.script = null;
+ this.signData = null;
+ this.submit = null;
+ }
+ }
+ class ExData extends o.ContentObject {
+ constructor(e) {
+ super(f, "exData");
+ this.contentType = e.contentType || "";
+ this.href = e.href || "";
+ this.id = e.id || "";
+ this.maxLength = (0, c.getInteger)({
+ data: e.maxLength,
+ defaultValue: -1,
+ validate: (e) => e >= -1,
+ });
+ this.name = e.name || "";
+ this.rid = e.rid || "";
+ this.transferEncoding = (0, c.getStringOption)(
+ e.transferEncoding,
+ ["none", "base64", "package"],
+ );
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ [r.$isCDATAXml]() {
+ return "text/html" === this.contentType;
+ }
+ [r.$onChild](e) {
+ if (
+ "text/html" === this.contentType &&
+ e[r.$namespaceId] === n.NamespaceIds.xhtml.id
+ ) {
+ this[r.$content] = e;
+ return !0;
+ }
+ if ("text/xml" === this.contentType) {
+ this[r.$content] = e;
+ return !0;
+ }
+ return !1;
+ }
+ [r.$toHTML](e) {
+ return "text/html" === this.contentType && this[r.$content]
+ ? this[r.$content][r.$toHTML](e)
+ : c.HTMLResult.EMPTY;
+ }
+ }
+ class ExObject extends o.XFAObject {
+ constructor(e) {
+ super(f, "exObject", !0);
+ this.archive = e.archive || "";
+ this.classId = e.classId || "";
+ this.codeBase = e.codeBase || "";
+ this.codeType = e.codeType || "";
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.extras = null;
+ this.boolean = new o.XFAObjectArray();
+ this.date = new o.XFAObjectArray();
+ this.dateTime = new o.XFAObjectArray();
+ this.decimal = new o.XFAObjectArray();
+ this.exData = new o.XFAObjectArray();
+ this.exObject = new o.XFAObjectArray();
+ this.float = new o.XFAObjectArray();
+ this.image = new o.XFAObjectArray();
+ this.integer = new o.XFAObjectArray();
+ this.text = new o.XFAObjectArray();
+ this.time = new o.XFAObjectArray();
+ }
+ }
+ class ExclGroup extends o.XFAObject {
+ constructor(e) {
+ super(f, "exclGroup", !0);
+ this.access = (0, c.getStringOption)(e.access, [
+ "open",
+ "nonInteractive",
+ "protected",
+ "readOnly",
+ ]);
+ this.accessKey = e.accessKey || "";
+ this.anchorType = (0, c.getStringOption)(e.anchorType, [
+ "topLeft",
+ "bottomCenter",
+ "bottomLeft",
+ "bottomRight",
+ "middleCenter",
+ "middleLeft",
+ "middleRight",
+ "topCenter",
+ "topRight",
+ ]);
+ this.colSpan = (0, c.getInteger)({
+ data: e.colSpan,
+ defaultValue: 1,
+ validate: (e) => e >= 1 || -1 === e,
+ });
+ this.h = e.h ? (0, c.getMeasurement)(e.h) : "";
+ this.hAlign = (0, c.getStringOption)(e.hAlign, [
+ "left",
+ "center",
+ "justify",
+ "justifyAll",
+ "radix",
+ "right",
+ ]);
+ this.id = e.id || "";
+ this.layout = (0, c.getStringOption)(e.layout, [
+ "position",
+ "lr-tb",
+ "rl-row",
+ "rl-tb",
+ "row",
+ "table",
+ "tb",
+ ]);
+ this.maxH = (0, c.getMeasurement)(e.maxH, "0pt");
+ this.maxW = (0, c.getMeasurement)(e.maxW, "0pt");
+ this.minH = (0, c.getMeasurement)(e.minH, "0pt");
+ this.minW = (0, c.getMeasurement)(e.minW, "0pt");
+ this.name = e.name || "";
+ this.presence = (0, c.getStringOption)(e.presence, [
+ "visible",
+ "hidden",
+ "inactive",
+ "invisible",
+ ]);
+ this.relevant = (0, c.getRelevant)(e.relevant);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.w = e.w ? (0, c.getMeasurement)(e.w) : "";
+ this.x = (0, c.getMeasurement)(e.x, "0pt");
+ this.y = (0, c.getMeasurement)(e.y, "0pt");
+ this.assist = null;
+ this.bind = null;
+ this.border = null;
+ this.calculate = null;
+ this.caption = null;
+ this.desc = null;
+ this.extras = null;
+ this.margin = null;
+ this.para = null;
+ this.traversal = null;
+ this.validate = null;
+ this.connect = new o.XFAObjectArray();
+ this.event = new o.XFAObjectArray();
+ this.field = new o.XFAObjectArray();
+ this.setProperty = new o.XFAObjectArray();
+ }
+ [r.$isBindable]() {
+ return !0;
+ }
+ [r.$hasSettableValue]() {
+ return !0;
+ }
+ [r.$setValue](e) {
+ for (const t of this.field.children) {
+ if (!t.value) {
+ const e = new Value({});
+ t[r.$appendChild](e);
+ t.value = e;
+ }
+ t.value[r.$setValue](e);
+ }
+ }
+ [r.$isThereMoreWidth]() {
+ return (
+ (this.layout.endsWith("-tb") &&
+ 0 === this[r.$extra].attempt &&
+ this[r.$extra].numberInLine > 0) ||
+ this[r.$getParent]()[r.$isThereMoreWidth]()
+ );
+ }
+ [r.$isSplittable]() {
+ const e = this[r.$getSubformParent]();
+ if (!e[r.$isSplittable]()) return !1;
+ if (void 0 !== this[r.$extra]._isSplittable)
+ return this[r.$extra]._isSplittable;
+ if ("position" === this.layout || this.layout.includes("row")) {
+ this[r.$extra]._isSplittable = !1;
+ return !1;
+ }
+ if (e.layout?.endsWith("-tb") && 0 !== e[r.$extra].numberInLine)
+ return !1;
+ this[r.$extra]._isSplittable = !0;
+ return !0;
+ }
+ [r.$flushHTML]() {
+ return (0, i.flushHTML)(this);
+ }
+ [r.$addHTML](e, t) {
+ (0, i.addHTML)(this, e, t);
+ }
+ [r.$getAvailableSpace]() {
+ return (0, i.getAvailableSpace)(this);
+ }
+ [r.$toHTML](e) {
+ setTabIndex(this);
+ if (
+ "hidden" === this.presence ||
+ "inactive" === this.presence ||
+ 0 === this.h ||
+ 0 === this.w
+ )
+ return c.HTMLResult.EMPTY;
+ (0, s.fixDimensions)(this);
+ const t = [],
+ a = { id: this[r.$uid], class: [] };
+ (0, s.setAccess)(this, a.class);
+ this[r.$extra] || (this[r.$extra] = Object.create(null));
+ Object.assign(this[r.$extra], {
+ children: t,
+ attributes: a,
+ attempt: 0,
+ line: null,
+ numberInLine: 0,
+ availableSpace: {
+ width: Math.min(this.w || 1 / 0, e.width),
+ height: Math.min(this.h || 1 / 0, e.height),
+ },
+ width: 0,
+ height: 0,
+ prevHeight: 0,
+ currentWidth: 0,
+ });
+ const n = this[r.$isSplittable]();
+ n || setFirstUnsplittable(this);
+ if (!(0, i.checkDimensions)(this, e)) return c.HTMLResult.FAILURE;
+ const o = new Set(["field"]);
+ if (this.layout.includes("row")) {
+ const e = this[r.$getSubformParent]().columnWidths;
+ if (Array.isArray(e) && e.length > 0) {
+ this[r.$extra].columnWidths = e;
+ this[r.$extra].currentColumn = 0;
+ }
+ }
+ const l = (0, s.toStyle)(
+ this,
+ "anchorType",
+ "dimensions",
+ "position",
+ "presence",
+ "border",
+ "margin",
+ "hAlign",
+ ),
+ h = ["xfaExclgroup"],
+ u = (0, s.layoutClass)(this);
+ u && h.push(u);
+ (0, s.isPrintOnly)(this) && h.push("xfaPrintOnly");
+ a.style = l;
+ a.class = h;
+ this.name && (a.xfaName = this.name);
+ this[r.$pushPara]();
+ const d = "lr-tb" === this.layout || "rl-tb" === this.layout,
+ f = d ? 2 : 1;
+ for (; this[r.$extra].attempt < f; this[r.$extra].attempt++) {
+ d &&
+ 1 === this[r.$extra].attempt &&
+ (this[r.$extra].numberInLine = 0);
+ const e = this[r.$childrenToHTML]({ filter: o, include: !0 });
+ if (e.success) break;
+ if (e.isBreak()) {
+ this[r.$popPara]();
+ return e;
+ }
+ if (
+ d &&
+ 0 === this[r.$extra].attempt &&
+ 0 === this[r.$extra].numberInLine &&
+ !this[r.$getTemplateRoot]()[r.$extra].noLayoutFailure
+ ) {
+ this[r.$extra].attempt = f;
+ break;
+ }
+ }
+ this[r.$popPara]();
+ n || unsetFirstUnsplittable(this);
+ if (this[r.$extra].attempt === f) {
+ n || delete this[r.$extra];
+ return c.HTMLResult.FAILURE;
+ }
+ let g = 0,
+ p = 0;
+ if (this.margin) {
+ g = this.margin.leftInset + this.margin.rightInset;
+ p = this.margin.topInset + this.margin.bottomInset;
+ }
+ const m = Math.max(this[r.$extra].width + g, this.w || 0),
+ b = Math.max(this[r.$extra].height + p, this.h || 0),
+ y = [this.x, this.y, m, b];
+ "" === this.w && (l.width = (0, s.measureToString)(m));
+ "" === this.h && (l.height = (0, s.measureToString)(b));
+ const w = { name: "div", attributes: a, children: t };
+ applyAssist(this, a);
+ delete this[r.$extra];
+ return c.HTMLResult.success((0, s.createWrapper)(this, w), y);
+ }
+ }
+ class Execute extends o.XFAObject {
+ constructor(e) {
+ super(f, "execute");
+ this.connection = e.connection || "";
+ this.executeType = (0, c.getStringOption)(e.executeType, [
+ "import",
+ "remerge",
+ ]);
+ this.id = e.id || "";
+ this.runAt = (0, c.getStringOption)(e.runAt, [
+ "client",
+ "both",
+ "server",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class Extras extends o.XFAObject {
+ constructor(e) {
+ super(f, "extras", !0);
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.boolean = new o.XFAObjectArray();
+ this.date = new o.XFAObjectArray();
+ this.dateTime = new o.XFAObjectArray();
+ this.decimal = new o.XFAObjectArray();
+ this.exData = new o.XFAObjectArray();
+ this.extras = new o.XFAObjectArray();
+ this.float = new o.XFAObjectArray();
+ this.image = new o.XFAObjectArray();
+ this.integer = new o.XFAObjectArray();
+ this.text = new o.XFAObjectArray();
+ this.time = new o.XFAObjectArray();
+ }
+ }
+ class Field extends o.XFAObject {
+ constructor(e) {
+ super(f, "field", !0);
+ this.access = (0, c.getStringOption)(e.access, [
+ "open",
+ "nonInteractive",
+ "protected",
+ "readOnly",
+ ]);
+ this.accessKey = e.accessKey || "";
+ this.anchorType = (0, c.getStringOption)(e.anchorType, [
+ "topLeft",
+ "bottomCenter",
+ "bottomLeft",
+ "bottomRight",
+ "middleCenter",
+ "middleLeft",
+ "middleRight",
+ "topCenter",
+ "topRight",
+ ]);
+ this.colSpan = (0, c.getInteger)({
+ data: e.colSpan,
+ defaultValue: 1,
+ validate: (e) => e >= 1 || -1 === e,
+ });
+ this.h = e.h ? (0, c.getMeasurement)(e.h) : "";
+ this.hAlign = (0, c.getStringOption)(e.hAlign, [
+ "left",
+ "center",
+ "justify",
+ "justifyAll",
+ "radix",
+ "right",
+ ]);
+ this.id = e.id || "";
+ this.locale = e.locale || "";
+ this.maxH = (0, c.getMeasurement)(e.maxH, "0pt");
+ this.maxW = (0, c.getMeasurement)(e.maxW, "0pt");
+ this.minH = (0, c.getMeasurement)(e.minH, "0pt");
+ this.minW = (0, c.getMeasurement)(e.minW, "0pt");
+ this.name = e.name || "";
+ this.presence = (0, c.getStringOption)(e.presence, [
+ "visible",
+ "hidden",
+ "inactive",
+ "invisible",
+ ]);
+ this.relevant = (0, c.getRelevant)(e.relevant);
+ this.rotate = (0, c.getInteger)({
+ data: e.rotate,
+ defaultValue: 0,
+ validate: (e) => e % 90 == 0,
+ });
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.w = e.w ? (0, c.getMeasurement)(e.w) : "";
+ this.x = (0, c.getMeasurement)(e.x, "0pt");
+ this.y = (0, c.getMeasurement)(e.y, "0pt");
+ this.assist = null;
+ this.bind = null;
+ this.border = null;
+ this.calculate = null;
+ this.caption = null;
+ this.desc = null;
+ this.extras = null;
+ this.font = null;
+ this.format = null;
+ this.items = new o.XFAObjectArray(2);
+ this.keep = null;
+ this.margin = null;
+ this.para = null;
+ this.traversal = null;
+ this.ui = null;
+ this.validate = null;
+ this.value = null;
+ this.bindItems = new o.XFAObjectArray();
+ this.connect = new o.XFAObjectArray();
+ this.event = new o.XFAObjectArray();
+ this.setProperty = new o.XFAObjectArray();
+ }
+ [r.$isBindable]() {
+ return !0;
+ }
+ [r.$setValue](e) {
+ _setValue(this, e);
+ }
+ [r.$toHTML](e) {
+ setTabIndex(this);
+ if (!this.ui) {
+ this.ui = new Ui({});
+ this.ui[r.$globalData] = this[r.$globalData];
+ this[r.$appendChild](this.ui);
+ let e;
+ switch (this.items.children.length) {
+ case 0:
+ e = new TextEdit({});
+ this.ui.textEdit = e;
+ break;
+ case 1:
+ e = new CheckButton({});
+ this.ui.checkButton = e;
+ break;
+ case 2:
+ e = new ChoiceList({});
+ this.ui.choiceList = e;
+ }
+ this.ui[r.$appendChild](e);
+ }
+ if (
+ !this.ui ||
+ "hidden" === this.presence ||
+ "inactive" === this.presence ||
+ 0 === this.h ||
+ 0 === this.w
+ )
+ return c.HTMLResult.EMPTY;
+ this.caption && delete this.caption[r.$extra];
+ this[r.$pushPara]();
+ const t = this.caption ? this.caption[r.$toHTML](e).html : null,
+ a = this.w,
+ n = this.h;
+ let o = 0,
+ l = 0;
+ if (this.margin) {
+ o = this.margin.leftInset + this.margin.rightInset;
+ l = this.margin.topInset + this.margin.bottomInset;
+ }
+ let u = null;
+ if ("" === this.w || "" === this.h) {
+ let t = null,
+ a = null,
+ n = 0,
+ i = 0;
+ if (this.ui.checkButton) n = i = this.ui.checkButton.size;
+ else {
+ const { w: t, h: a } = (0, s.layoutNode)(this, e);
+ if (null !== t) {
+ n = t;
+ i = a;
+ } else i = (0, h.getMetrics)(this.font, !0).lineNoGap;
+ }
+ u = getBorderDims(this.ui[r.$getExtra]());
+ n += u.w;
+ i += u.h;
+ if (this.caption) {
+ const {
+ w: s,
+ h: o,
+ isBroken: l,
+ } = this.caption[r.$getExtra](e);
+ if (l && this[r.$getSubformParent]()[r.$isThereMoreWidth]()) {
+ this[r.$popPara]();
+ return c.HTMLResult.FAILURE;
+ }
+ t = s;
+ a = o;
+ switch (this.caption.placement) {
+ case "left":
+ case "right":
+ case "inline":
+ t += n;
+ break;
+ case "top":
+ case "bottom":
+ a += i;
+ }
+ } else {
+ t = n;
+ a = i;
+ }
+ if (t && "" === this.w) {
+ t += o;
+ this.w = Math.min(
+ this.maxW <= 0 ? 1 / 0 : this.maxW,
+ this.minW + 1 < t ? t : this.minW,
+ );
+ }
+ if (a && "" === this.h) {
+ a += l;
+ this.h = Math.min(
+ this.maxH <= 0 ? 1 / 0 : this.maxH,
+ this.minH + 1 < a ? a : this.minH,
+ );
+ }
+ }
+ this[r.$popPara]();
+ (0, s.fixDimensions)(this);
+ setFirstUnsplittable(this);
+ if (!(0, i.checkDimensions)(this, e)) {
+ this.w = a;
+ this.h = n;
+ this[r.$popPara]();
+ return c.HTMLResult.FAILURE;
+ }
+ unsetFirstUnsplittable(this);
+ const d = (0, s.toStyle)(
+ this,
+ "font",
+ "dimensions",
+ "position",
+ "rotate",
+ "anchorType",
+ "presence",
+ "margin",
+ "hAlign",
+ );
+ (0, s.setMinMaxDimensions)(this, d);
+ const f = ["xfaField"];
+ this.font && f.push("xfaFont");
+ (0, s.isPrintOnly)(this) && f.push("xfaPrintOnly");
+ const g = { style: d, id: this[r.$uid], class: f };
+ if (d.margin) {
+ d.padding = d.margin;
+ delete d.margin;
+ }
+ (0, s.setAccess)(this, f);
+ this.name && (g.xfaName = this.name);
+ const p = [],
+ m = { name: "div", attributes: g, children: p };
+ applyAssist(this, g);
+ const b = this.border ? this.border[r.$toStyle]() : null,
+ y = (0, s.computeBbox)(this, m, e),
+ w = this.ui[r.$toHTML]().html;
+ if (!w) {
+ Object.assign(d, b);
+ return c.HTMLResult.success((0, s.createWrapper)(this, m), y);
+ }
+ this[r.$tabIndex] &&
+ (w.children?.[0]
+ ? (w.children[0].attributes.tabindex = this[r.$tabIndex])
+ : (w.attributes.tabindex = this[r.$tabIndex]));
+ w.attributes.style || (w.attributes.style = Object.create(null));
+ let S = null;
+ if (this.ui.button) {
+ 1 === w.children.length && ([S] = w.children.splice(0, 1));
+ Object.assign(w.attributes.style, b);
+ } else Object.assign(d, b);
+ p.push(w);
+ if (this.value)
+ if (this.ui.imageEdit)
+ w.children.push(this.value[r.$toHTML]().html);
+ else if (!this.ui.button) {
+ let e = "";
+ if (this.value.exData) e = this.value.exData[r.$text]();
+ else if (this.value.text) e = this.value.text[r.$getExtra]();
+ else {
+ const t = this.value[r.$toHTML]().html;
+ null !== t && (e = t.children[0].value);
+ }
+ this.ui.textEdit &&
+ this.value.text?.maxChars &&
+ (w.children[0].attributes.maxLength =
+ this.value.text.maxChars);
+ if (e) {
+ if (this.ui.numericEdit) {
+ e = parseFloat(e);
+ e = isNaN(e) ? "" : e.toString();
+ }
+ "textarea" === w.children[0].name
+ ? (w.children[0].attributes.textContent = e)
+ : (w.children[0].attributes.value = e);
+ }
+ }
+ if (!this.ui.imageEdit && w.children?.[0] && this.h) {
+ u = u || getBorderDims(this.ui[r.$getExtra]());
+ let t = 0;
+ if (
+ this.caption &&
+ ["top", "bottom"].includes(this.caption.placement)
+ ) {
+ t = this.caption.reserve;
+ t <= 0 && (t = this.caption[r.$getExtra](e).h);
+ const a = this.h - t - l - u.h;
+ w.children[0].attributes.style.height = (0,
+ s.measureToString)(a);
+ } else w.children[0].attributes.style.height = "100%";
+ }
+ S && w.children.push(S);
+ if (!t) {
+ w.attributes.class && w.attributes.class.push("xfaLeft");
+ this.w = a;
+ this.h = n;
+ return c.HTMLResult.success((0, s.createWrapper)(this, m), y);
+ }
+ if (this.ui.button) {
+ d.padding && delete d.padding;
+ "div" === t.name && (t.name = "span");
+ w.children.push(t);
+ return c.HTMLResult.success(m, y);
+ }
+ this.ui.checkButton &&
+ (t.attributes.class[0] = "xfaCaptionForCheckButton");
+ w.attributes.class || (w.attributes.class = []);
+ w.children.splice(0, 0, t);
+ switch (this.caption.placement) {
+ case "left":
+ case "inline":
+ w.attributes.class.push("xfaLeft");
+ break;
+ case "right":
+ w.attributes.class.push("xfaRight");
+ break;
+ case "top":
+ w.attributes.class.push("xfaTop");
+ break;
+ case "bottom":
+ w.attributes.class.push("xfaBottom");
+ }
+ this.w = a;
+ this.h = n;
+ return c.HTMLResult.success((0, s.createWrapper)(this, m), y);
+ }
+ }
+ t.Field = Field;
+ class Fill extends o.XFAObject {
+ constructor(e) {
+ super(f, "fill", !0);
+ this.id = e.id || "";
+ this.presence = (0, c.getStringOption)(e.presence, [
+ "visible",
+ "hidden",
+ "inactive",
+ "invisible",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.color = null;
+ this.extras = null;
+ this.linear = null;
+ this.pattern = null;
+ this.radial = null;
+ this.solid = null;
+ this.stipple = null;
+ }
+ [r.$toStyle]() {
+ const e = this[r.$getParent](),
+ t = e[r.$getParent]()[r.$getParent](),
+ a = Object.create(null);
+ let n = "color",
+ i = n;
+ if (e instanceof Border) {
+ n = "background-color";
+ i = "background";
+ t instanceof Ui && (a.backgroundColor = "white");
+ }
+ if (e instanceof Rectangle || e instanceof Arc) {
+ n = i = "fill";
+ a.fill = "white";
+ }
+ for (const e of Object.getOwnPropertyNames(this)) {
+ if ("extras" === e || "color" === e) continue;
+ const t = this[e];
+ if (!(t instanceof o.XFAObject)) continue;
+ const s = t[r.$toStyle](this.color);
+ s && (a[s.startsWith("#") ? n : i] = s);
+ return a;
+ }
+ if (this.color?.value) {
+ const e = this.color[r.$toStyle]();
+ a[e.startsWith("#") ? n : i] = e;
+ }
+ return a;
+ }
+ }
+ class Filter extends o.XFAObject {
+ constructor(e) {
+ super(f, "filter", !0);
+ this.addRevocationInfo = (0, c.getStringOption)(
+ e.addRevocationInfo,
+ ["", "required", "optional", "none"],
+ );
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.version = (0, c.getInteger)({
+ data: this.version,
+ defaultValue: 5,
+ validate: (e) => e >= 1 && e <= 5,
+ });
+ this.appearanceFilter = null;
+ this.certificates = null;
+ this.digestMethods = null;
+ this.encodings = null;
+ this.encryptionMethods = null;
+ this.handler = null;
+ this.lockDocument = null;
+ this.mdp = null;
+ this.reasons = null;
+ this.timeStamp = null;
+ }
+ }
+ class Float extends o.ContentObject {
+ constructor(e) {
+ super(f, "float");
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ [r.$finalize]() {
+ const e = parseFloat(this[r.$content].trim());
+ this[r.$content] = isNaN(e) ? null : e;
+ }
+ [r.$toHTML](e) {
+ return valueToHtml(
+ null !== this[r.$content] ? this[r.$content].toString() : "",
+ );
+ }
+ }
+ class Font extends o.XFAObject {
+ constructor(e) {
+ super(f, "font", !0);
+ this.baselineShift = (0, c.getMeasurement)(e.baselineShift);
+ this.fontHorizontalScale = (0, c.getFloat)({
+ data: e.fontHorizontalScale,
+ defaultValue: 100,
+ validate: (e) => e >= 0,
+ });
+ this.fontVerticalScale = (0, c.getFloat)({
+ data: e.fontVerticalScale,
+ defaultValue: 100,
+ validate: (e) => e >= 0,
+ });
+ this.id = e.id || "";
+ this.kerningMode = (0, c.getStringOption)(e.kerningMode, [
+ "none",
+ "pair",
+ ]);
+ this.letterSpacing = (0, c.getMeasurement)(e.letterSpacing, "0");
+ this.lineThrough = (0, c.getInteger)({
+ data: e.lineThrough,
+ defaultValue: 0,
+ validate: (e) => 1 === e || 2 === e,
+ });
+ this.lineThroughPeriod = (0, c.getStringOption)(
+ e.lineThroughPeriod,
+ ["all", "word"],
+ );
+ this.overline = (0, c.getInteger)({
+ data: e.overline,
+ defaultValue: 0,
+ validate: (e) => 1 === e || 2 === e,
+ });
+ this.overlinePeriod = (0, c.getStringOption)(e.overlinePeriod, [
+ "all",
+ "word",
+ ]);
+ this.posture = (0, c.getStringOption)(e.posture, [
+ "normal",
+ "italic",
+ ]);
+ this.size = (0, c.getMeasurement)(e.size, "10pt");
+ this.typeface = e.typeface || "Courier";
+ this.underline = (0, c.getInteger)({
+ data: e.underline,
+ defaultValue: 0,
+ validate: (e) => 1 === e || 2 === e,
+ });
+ this.underlinePeriod = (0, c.getStringOption)(e.underlinePeriod, [
+ "all",
+ "word",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.weight = (0, c.getStringOption)(e.weight, [
+ "normal",
+ "bold",
+ ]);
+ this.extras = null;
+ this.fill = null;
+ }
+ [r.$clean](e) {
+ super[r.$clean](e);
+ this[r.$globalData].usedTypefaces.add(this.typeface);
+ }
+ [r.$toStyle]() {
+ const e = (0, s.toStyle)(this, "fill"),
+ t = e.color;
+ if (t)
+ if ("#000000" === t) delete e.color;
+ else if (!t.startsWith("#")) {
+ e.background = t;
+ e.backgroundClip = "text";
+ e.color = "transparent";
+ }
+ this.baselineShift &&
+ (e.verticalAlign = (0, s.measureToString)(this.baselineShift));
+ e.fontKerning = "none" === this.kerningMode ? "none" : "normal";
+ e.letterSpacing = (0, s.measureToString)(this.letterSpacing);
+ if (0 !== this.lineThrough) {
+ e.textDecoration = "line-through";
+ 2 === this.lineThrough && (e.textDecorationStyle = "double");
+ }
+ if (0 !== this.overline) {
+ e.textDecoration = "overline";
+ 2 === this.overline && (e.textDecorationStyle = "double");
+ }
+ e.fontStyle = this.posture;
+ e.fontSize = (0, s.measureToString)(0.99 * this.size);
+ (0, s.setFontFamily)(
+ this,
+ this,
+ this[r.$globalData].fontFinder,
+ e,
+ );
+ if (0 !== this.underline) {
+ e.textDecoration = "underline";
+ 2 === this.underline && (e.textDecorationStyle = "double");
+ }
+ e.fontWeight = this.weight;
+ return e;
+ }
+ }
+ class Format extends o.XFAObject {
+ constructor(e) {
+ super(f, "format", !0);
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.extras = null;
+ this.picture = null;
+ }
+ }
+ class Handler extends o.StringObject {
+ constructor(e) {
+ super(f, "handler");
+ this.id = e.id || "";
+ this.type = (0, c.getStringOption)(e.type, [
+ "optional",
+ "required",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class Hyphenation extends o.XFAObject {
+ constructor(e) {
+ super(f, "hyphenation");
+ this.excludeAllCaps = (0, c.getInteger)({
+ data: e.excludeAllCaps,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.excludeInitialCap = (0, c.getInteger)({
+ data: e.excludeInitialCap,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.hyphenate = (0, c.getInteger)({
+ data: e.hyphenate,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.id = e.id || "";
+ this.pushCharacterCount = (0, c.getInteger)({
+ data: e.pushCharacterCount,
+ defaultValue: 3,
+ validate: (e) => e >= 0,
+ });
+ this.remainCharacterCount = (0, c.getInteger)({
+ data: e.remainCharacterCount,
+ defaultValue: 3,
+ validate: (e) => e >= 0,
+ });
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.wordCharacterCount = (0, c.getInteger)({
+ data: e.wordCharacterCount,
+ defaultValue: 7,
+ validate: (e) => e >= 0,
+ });
+ }
+ }
+ class Image extends o.StringObject {
+ constructor(e) {
+ super(f, "image");
+ this.aspect = (0, c.getStringOption)(e.aspect, [
+ "fit",
+ "actual",
+ "height",
+ "none",
+ "width",
+ ]);
+ this.contentType = e.contentType || "";
+ this.href = e.href || "";
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.transferEncoding = (0, c.getStringOption)(
+ e.transferEncoding,
+ ["base64", "none", "package"],
+ );
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ [r.$toHTML]() {
+ if (this.contentType && !m.has(this.contentType.toLowerCase()))
+ return c.HTMLResult.EMPTY;
+ let e =
+ this[r.$globalData].images &&
+ this[r.$globalData].images.get(this.href);
+ if (!e && (this.href || !this[r.$content]))
+ return c.HTMLResult.EMPTY;
+ e ||
+ "base64" !== this.transferEncoding ||
+ (e = (0, l.stringToBytes)(atob(this[r.$content])));
+ if (!e) return c.HTMLResult.EMPTY;
+ if (!this.contentType) {
+ for (const [t, a] of b)
+ if (e.length > t.length && t.every((t, a) => t === e[a])) {
+ this.contentType = a;
+ break;
+ }
+ if (!this.contentType) return c.HTMLResult.EMPTY;
+ }
+ const t = new Blob([e], { type: this.contentType });
+ let a;
+ switch (this.aspect) {
+ case "fit":
+ case "actual":
+ break;
+ case "height":
+ a = { height: "100%", objectFit: "fill" };
+ break;
+ case "none":
+ a = { width: "100%", height: "100%", objectFit: "fill" };
+ break;
+ case "width":
+ a = { width: "100%", objectFit: "fill" };
+ }
+ const n = this[r.$getParent]();
+ return c.HTMLResult.success({
+ name: "img",
+ attributes: {
+ class: ["xfaImage"],
+ style: a,
+ src: URL.createObjectURL(t),
+ alt: n ? ariaLabel(n[r.$getParent]()) : null,
+ },
+ });
+ }
+ }
+ class ImageEdit extends o.XFAObject {
+ constructor(e) {
+ super(f, "imageEdit", !0);
+ this.data = (0, c.getStringOption)(e.data, ["link", "embed"]);
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.border = null;
+ this.extras = null;
+ this.margin = null;
+ }
+ [r.$toHTML](e) {
+ return "embed" === this.data
+ ? c.HTMLResult.success({
+ name: "div",
+ children: [],
+ attributes: {},
+ })
+ : c.HTMLResult.EMPTY;
+ }
+ }
+ class Integer extends o.ContentObject {
+ constructor(e) {
+ super(f, "integer");
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ [r.$finalize]() {
+ const e = parseInt(this[r.$content].trim(), 10);
+ this[r.$content] = isNaN(e) ? null : e;
+ }
+ [r.$toHTML](e) {
+ return valueToHtml(
+ null !== this[r.$content] ? this[r.$content].toString() : "",
+ );
+ }
+ }
+ class Issuers extends o.XFAObject {
+ constructor(e) {
+ super(f, "issuers", !0);
+ this.id = e.id || "";
+ this.type = (0, c.getStringOption)(e.type, [
+ "optional",
+ "required",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.certificate = new o.XFAObjectArray();
+ }
+ }
+ class Items extends o.XFAObject {
+ constructor(e) {
+ super(f, "items", !0);
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.presence = (0, c.getStringOption)(e.presence, [
+ "visible",
+ "hidden",
+ "inactive",
+ "invisible",
+ ]);
+ this.ref = e.ref || "";
+ this.save = (0, c.getInteger)({
+ data: e.save,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.boolean = new o.XFAObjectArray();
+ this.date = new o.XFAObjectArray();
+ this.dateTime = new o.XFAObjectArray();
+ this.decimal = new o.XFAObjectArray();
+ this.exData = new o.XFAObjectArray();
+ this.float = new o.XFAObjectArray();
+ this.image = new o.XFAObjectArray();
+ this.integer = new o.XFAObjectArray();
+ this.text = new o.XFAObjectArray();
+ this.time = new o.XFAObjectArray();
+ }
+ [r.$toHTML]() {
+ const e = [];
+ for (const t of this[r.$getChildren]()) e.push(t[r.$text]());
+ return c.HTMLResult.success(e);
+ }
+ }
+ t.Items = Items;
+ class Keep extends o.XFAObject {
+ constructor(e) {
+ super(f, "keep", !0);
+ this.id = e.id || "";
+ const t = ["none", "contentArea", "pageArea"];
+ this.intact = (0, c.getStringOption)(e.intact, t);
+ this.next = (0, c.getStringOption)(e.next, t);
+ this.previous = (0, c.getStringOption)(e.previous, t);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.extras = null;
+ }
+ }
+ class KeyUsage extends o.XFAObject {
+ constructor(e) {
+ super(f, "keyUsage");
+ const t = ["", "yes", "no"];
+ this.crlSign = (0, c.getStringOption)(e.crlSign, t);
+ this.dataEncipherment = (0, c.getStringOption)(
+ e.dataEncipherment,
+ t,
+ );
+ this.decipherOnly = (0, c.getStringOption)(e.decipherOnly, t);
+ this.digitalSignature = (0, c.getStringOption)(
+ e.digitalSignature,
+ t,
+ );
+ this.encipherOnly = (0, c.getStringOption)(e.encipherOnly, t);
+ this.id = e.id || "";
+ this.keyAgreement = (0, c.getStringOption)(e.keyAgreement, t);
+ this.keyCertSign = (0, c.getStringOption)(e.keyCertSign, t);
+ this.keyEncipherment = (0, c.getStringOption)(
+ e.keyEncipherment,
+ t,
+ );
+ this.nonRepudiation = (0, c.getStringOption)(e.nonRepudiation, t);
+ this.type = (0, c.getStringOption)(e.type, [
+ "optional",
+ "required",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class Line extends o.XFAObject {
+ constructor(e) {
+ super(f, "line", !0);
+ this.hand = (0, c.getStringOption)(e.hand, [
+ "even",
+ "left",
+ "right",
+ ]);
+ this.id = e.id || "";
+ this.slope = (0, c.getStringOption)(e.slope, ["\\", "/"]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.edge = null;
+ }
+ [r.$toHTML]() {
+ const e = this[r.$getParent]()[r.$getParent](),
+ t = this.edge || new Edge({}),
+ a = t[r.$toStyle](),
+ n = Object.create(null),
+ i = "visible" === t.presence ? t.thickness : 0;
+ n.strokeWidth = (0, s.measureToString)(i);
+ n.stroke = a.color;
+ let o,
+ l,
+ h,
+ u,
+ d = "100%",
+ f = "100%";
+ if (e.w <= i) {
+ [o, l, h, u] = ["50%", 0, "50%", "100%"];
+ d = n.strokeWidth;
+ } else if (e.h <= i) {
+ [o, l, h, u] = [0, "50%", "100%", "50%"];
+ f = n.strokeWidth;
+ } else
+ "\\" === this.slope
+ ? ([o, l, h, u] = [0, 0, "100%", "100%"])
+ : ([o, l, h, u] = [0, "100%", "100%", 0]);
+ const p = {
+ name: "svg",
+ children: [
+ {
+ name: "line",
+ attributes: {
+ xmlns: g,
+ x1: o,
+ y1: l,
+ x2: h,
+ y2: u,
+ style: n,
+ },
+ },
+ ],
+ attributes: {
+ xmlns: g,
+ width: d,
+ height: f,
+ style: { overflow: "visible" },
+ },
+ };
+ if (hasMargin(e))
+ return c.HTMLResult.success({
+ name: "div",
+ attributes: {
+ style: { display: "inline", width: "100%", height: "100%" },
+ },
+ children: [p],
+ });
+ p.attributes.style.position = "absolute";
+ return c.HTMLResult.success(p);
+ }
+ }
+ class Linear extends o.XFAObject {
+ constructor(e) {
+ super(f, "linear", !0);
+ this.id = e.id || "";
+ this.type = (0, c.getStringOption)(e.type, [
+ "toRight",
+ "toBottom",
+ "toLeft",
+ "toTop",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.color = null;
+ this.extras = null;
+ }
+ [r.$toStyle](e) {
+ e = e ? e[r.$toStyle]() : "#FFFFFF";
+ return `linear-gradient(${this.type
+ .replace(/([RBLT])/, " $1")
+ .toLowerCase()}, ${e}, ${
+ this.color ? this.color[r.$toStyle]() : "#000000"
+ })`;
+ }
+ }
+ class LockDocument extends o.ContentObject {
+ constructor(e) {
+ super(f, "lockDocument");
+ this.id = e.id || "";
+ this.type = (0, c.getStringOption)(e.type, [
+ "optional",
+ "required",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ [r.$finalize]() {
+ this[r.$content] = (0, c.getStringOption)(this[r.$content], [
+ "auto",
+ "0",
+ "1",
+ ]);
+ }
+ }
+ class Manifest extends o.XFAObject {
+ constructor(e) {
+ super(f, "manifest", !0);
+ this.action = (0, c.getStringOption)(e.action, [
+ "include",
+ "all",
+ "exclude",
+ ]);
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.extras = null;
+ this.ref = new o.XFAObjectArray();
+ }
+ }
+ class Margin extends o.XFAObject {
+ constructor(e) {
+ super(f, "margin", !0);
+ this.bottomInset = (0, c.getMeasurement)(e.bottomInset, "0");
+ this.id = e.id || "";
+ this.leftInset = (0, c.getMeasurement)(e.leftInset, "0");
+ this.rightInset = (0, c.getMeasurement)(e.rightInset, "0");
+ this.topInset = (0, c.getMeasurement)(e.topInset, "0");
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.extras = null;
+ }
+ [r.$toStyle]() {
+ return {
+ margin:
+ (0, s.measureToString)(this.topInset) +
+ " " +
+ (0, s.measureToString)(this.rightInset) +
+ " " +
+ (0, s.measureToString)(this.bottomInset) +
+ " " +
+ (0, s.measureToString)(this.leftInset),
+ };
+ }
+ }
+ class Mdp extends o.XFAObject {
+ constructor(e) {
+ super(f, "mdp");
+ this.id = e.id || "";
+ this.permissions = (0, c.getInteger)({
+ data: e.permissions,
+ defaultValue: 2,
+ validate: (e) => 1 === e || 3 === e,
+ });
+ this.signatureType = (0, c.getStringOption)(e.signatureType, [
+ "filler",
+ "author",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class Medium extends o.XFAObject {
+ constructor(e) {
+ super(f, "medium");
+ this.id = e.id || "";
+ this.imagingBBox = (0, c.getBBox)(e.imagingBBox);
+ this.long = (0, c.getMeasurement)(e.long);
+ this.orientation = (0, c.getStringOption)(e.orientation, [
+ "portrait",
+ "landscape",
+ ]);
+ this.short = (0, c.getMeasurement)(e.short);
+ this.stock = e.stock || "";
+ this.trayIn = (0, c.getStringOption)(e.trayIn, [
+ "auto",
+ "delegate",
+ "pageFront",
+ ]);
+ this.trayOut = (0, c.getStringOption)(e.trayOut, [
+ "auto",
+ "delegate",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class Message extends o.XFAObject {
+ constructor(e) {
+ super(f, "message", !0);
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.text = new o.XFAObjectArray();
+ }
+ }
+ class NumericEdit extends o.XFAObject {
+ constructor(e) {
+ super(f, "numericEdit", !0);
+ this.hScrollPolicy = (0, c.getStringOption)(e.hScrollPolicy, [
+ "auto",
+ "off",
+ "on",
+ ]);
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.border = null;
+ this.comb = null;
+ this.extras = null;
+ this.margin = null;
+ }
+ [r.$toHTML](e) {
+ const t = (0, s.toStyle)(this, "border", "font", "margin"),
+ a = this[r.$getParent]()[r.$getParent](),
+ n = {
+ name: "input",
+ attributes: {
+ type: "text",
+ fieldId: a[r.$uid],
+ dataId: a[r.$data]?.[r.$uid] || a[r.$uid],
+ class: ["xfaTextfield"],
+ style: t,
+ "aria-label": ariaLabel(a),
+ "aria-required": !1,
+ },
+ };
+ if (isRequired(a)) {
+ n.attributes["aria-required"] = !0;
+ n.attributes.required = !0;
+ }
+ return c.HTMLResult.success({
+ name: "label",
+ attributes: { class: ["xfaLabel"] },
+ children: [n],
+ });
+ }
+ }
+ class Occur extends o.XFAObject {
+ constructor(e) {
+ super(f, "occur", !0);
+ this.id = e.id || "";
+ this.initial =
+ "" !== e.initial
+ ? (0, c.getInteger)({
+ data: e.initial,
+ defaultValue: "",
+ validate: (e) => !0,
+ })
+ : "";
+ this.max =
+ "" !== e.max
+ ? (0, c.getInteger)({
+ data: e.max,
+ defaultValue: 1,
+ validate: (e) => !0,
+ })
+ : "";
+ this.min =
+ "" !== e.min
+ ? (0, c.getInteger)({
+ data: e.min,
+ defaultValue: 1,
+ validate: (e) => !0,
+ })
+ : "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.extras = null;
+ }
+ [r.$clean]() {
+ const e = this[r.$getParent](),
+ t = this.min;
+ "" === this.min &&
+ (this.min =
+ e instanceof PageArea || e instanceof PageSet ? 0 : 1);
+ "" === this.max &&
+ (this.max =
+ "" === t
+ ? e instanceof PageArea || e instanceof PageSet
+ ? -1
+ : 1
+ : this.min);
+ -1 !== this.max && this.max < this.min && (this.max = this.min);
+ "" === this.initial &&
+ (this.initial = e instanceof Template ? 1 : this.min);
+ }
+ }
+ class Oid extends o.StringObject {
+ constructor(e) {
+ super(f, "oid");
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class Oids extends o.XFAObject {
+ constructor(e) {
+ super(f, "oids", !0);
+ this.id = e.id || "";
+ this.type = (0, c.getStringOption)(e.type, [
+ "optional",
+ "required",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.oid = new o.XFAObjectArray();
+ }
+ }
+ class Overflow extends o.XFAObject {
+ constructor(e) {
+ super(f, "overflow");
+ this.id = e.id || "";
+ this.leader = e.leader || "";
+ this.target = e.target || "";
+ this.trailer = e.trailer || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ [r.$getExtra]() {
+ if (!this[r.$extra]) {
+ const e = this[r.$getParent](),
+ t = this[r.$getTemplateRoot](),
+ a = t[r.$searchNode](this.target, e),
+ n = t[r.$searchNode](this.leader, e),
+ i = t[r.$searchNode](this.trailer, e);
+ this[r.$extra] = {
+ target: a?.[0] || null,
+ leader: n?.[0] || null,
+ trailer: i?.[0] || null,
+ addLeader: !1,
+ addTrailer: !1,
+ };
+ }
+ return this[r.$extra];
+ }
+ }
+ class PageArea extends o.XFAObject {
+ constructor(e) {
+ super(f, "pageArea", !0);
+ this.blankOrNotBlank = (0, c.getStringOption)(e.blankOrNotBlank, [
+ "any",
+ "blank",
+ "notBlank",
+ ]);
+ this.id = e.id || "";
+ this.initialNumber = (0, c.getInteger)({
+ data: e.initialNumber,
+ defaultValue: 1,
+ validate: (e) => !0,
+ });
+ this.name = e.name || "";
+ this.numbered = (0, c.getInteger)({
+ data: e.numbered,
+ defaultValue: 1,
+ validate: (e) => !0,
+ });
+ this.oddOrEven = (0, c.getStringOption)(e.oddOrEven, [
+ "any",
+ "even",
+ "odd",
+ ]);
+ this.pagePosition = (0, c.getStringOption)(e.pagePosition, [
+ "any",
+ "first",
+ "last",
+ "only",
+ "rest",
+ ]);
+ this.relevant = (0, c.getRelevant)(e.relevant);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.desc = null;
+ this.extras = null;
+ this.medium = null;
+ this.occur = null;
+ this.area = new o.XFAObjectArray();
+ this.contentArea = new o.XFAObjectArray();
+ this.draw = new o.XFAObjectArray();
+ this.exclGroup = new o.XFAObjectArray();
+ this.field = new o.XFAObjectArray();
+ this.subform = new o.XFAObjectArray();
+ }
+ [r.$isUsable]() {
+ if (!this[r.$extra]) {
+ this[r.$extra] = { numberOfUse: 0 };
+ return !0;
+ }
+ return (
+ !this.occur ||
+ -1 === this.occur.max ||
+ this[r.$extra].numberOfUse < this.occur.max
+ );
+ }
+ [r.$cleanPage]() {
+ delete this[r.$extra];
+ }
+ [r.$getNextPage]() {
+ this[r.$extra] || (this[r.$extra] = { numberOfUse: 0 });
+ const e = this[r.$getParent]();
+ if ("orderedOccurrence" === e.relation && this[r.$isUsable]()) {
+ this[r.$extra].numberOfUse += 1;
+ return this;
+ }
+ return e[r.$getNextPage]();
+ }
+ [r.$getAvailableSpace]() {
+ return this[r.$extra].space || { width: 0, height: 0 };
+ }
+ [r.$toHTML]() {
+ this[r.$extra] || (this[r.$extra] = { numberOfUse: 1 });
+ const e = [];
+ this[r.$extra].children = e;
+ const t = Object.create(null);
+ if (this.medium && this.medium.short && this.medium.long) {
+ t.width = (0, s.measureToString)(this.medium.short);
+ t.height = (0, s.measureToString)(this.medium.long);
+ this[r.$extra].space = {
+ width: this.medium.short,
+ height: this.medium.long,
+ };
+ if ("landscape" === this.medium.orientation) {
+ const e = t.width;
+ t.width = t.height;
+ t.height = e;
+ this[r.$extra].space = {
+ width: this.medium.long,
+ height: this.medium.short,
+ };
+ }
+ } else
+ (0, l.warn)(
+ "XFA - No medium specified in pageArea: please file a bug.",
+ );
+ this[r.$childrenToHTML]({
+ filter: new Set(["area", "draw", "field", "subform"]),
+ include: !0,
+ });
+ this[r.$childrenToHTML]({
+ filter: new Set(["contentArea"]),
+ include: !0,
+ });
+ return c.HTMLResult.success({
+ name: "div",
+ children: e,
+ attributes: {
+ class: ["xfaPage"],
+ id: this[r.$uid],
+ style: t,
+ xfaName: this.name,
+ },
+ });
+ }
+ }
+ class PageSet extends o.XFAObject {
+ constructor(e) {
+ super(f, "pageSet", !0);
+ this.duplexImposition = (0, c.getStringOption)(
+ e.duplexImposition,
+ ["longEdge", "shortEdge"],
+ );
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.relation = (0, c.getStringOption)(e.relation, [
+ "orderedOccurrence",
+ "duplexPaginated",
+ "simplexPaginated",
+ ]);
+ this.relevant = (0, c.getRelevant)(e.relevant);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.extras = null;
+ this.occur = null;
+ this.pageArea = new o.XFAObjectArray();
+ this.pageSet = new o.XFAObjectArray();
+ }
+ [r.$cleanPage]() {
+ for (const e of this.pageArea.children) e[r.$cleanPage]();
+ for (const e of this.pageSet.children) e[r.$cleanPage]();
+ }
+ [r.$isUsable]() {
+ return (
+ !this.occur ||
+ -1 === this.occur.max ||
+ this[r.$extra].numberOfUse < this.occur.max
+ );
+ }
+ [r.$getNextPage]() {
+ this[r.$extra] ||
+ (this[r.$extra] = {
+ numberOfUse: 1,
+ pageIndex: -1,
+ pageSetIndex: -1,
+ });
+ if ("orderedOccurrence" === this.relation) {
+ if (
+ this[r.$extra].pageIndex + 1 <
+ this.pageArea.children.length
+ ) {
+ this[r.$extra].pageIndex += 1;
+ return this.pageArea.children[this[r.$extra].pageIndex][
+ r.$getNextPage
+ ]();
+ }
+ if (
+ this[r.$extra].pageSetIndex + 1 <
+ this.pageSet.children.length
+ ) {
+ this[r.$extra].pageSetIndex += 1;
+ return this.pageSet.children[this[r.$extra].pageSetIndex][
+ r.$getNextPage
+ ]();
+ }
+ if (this[r.$isUsable]()) {
+ this[r.$extra].numberOfUse += 1;
+ this[r.$extra].pageIndex = -1;
+ this[r.$extra].pageSetIndex = -1;
+ return this[r.$getNextPage]();
+ }
+ const e = this[r.$getParent]();
+ if (e instanceof PageSet) return e[r.$getNextPage]();
+ this[r.$cleanPage]();
+ return this[r.$getNextPage]();
+ }
+ const e = this[r.$getTemplateRoot]()[r.$extra].pageNumber,
+ t = e % 2 == 0 ? "even" : "odd",
+ a = 0 === e ? "first" : "rest";
+ let n = this.pageArea.children.find(
+ (e) => e.oddOrEven === t && e.pagePosition === a,
+ );
+ if (n) return n;
+ n = this.pageArea.children.find(
+ (e) => "any" === e.oddOrEven && e.pagePosition === a,
+ );
+ if (n) return n;
+ n = this.pageArea.children.find(
+ (e) => "any" === e.oddOrEven && "any" === e.pagePosition,
+ );
+ return n || this.pageArea.children[0];
+ }
+ }
+ class Para extends o.XFAObject {
+ constructor(e) {
+ super(f, "para", !0);
+ this.hAlign = (0, c.getStringOption)(e.hAlign, [
+ "left",
+ "center",
+ "justify",
+ "justifyAll",
+ "radix",
+ "right",
+ ]);
+ this.id = e.id || "";
+ this.lineHeight = e.lineHeight
+ ? (0, c.getMeasurement)(e.lineHeight, "0pt")
+ : "";
+ this.marginLeft = e.marginLeft
+ ? (0, c.getMeasurement)(e.marginLeft, "0pt")
+ : "";
+ this.marginRight = e.marginRight
+ ? (0, c.getMeasurement)(e.marginRight, "0pt")
+ : "";
+ this.orphans = (0, c.getInteger)({
+ data: e.orphans,
+ defaultValue: 0,
+ validate: (e) => e >= 0,
+ });
+ this.preserve = e.preserve || "";
+ this.radixOffset = e.radixOffset
+ ? (0, c.getMeasurement)(e.radixOffset, "0pt")
+ : "";
+ this.spaceAbove = e.spaceAbove
+ ? (0, c.getMeasurement)(e.spaceAbove, "0pt")
+ : "";
+ this.spaceBelow = e.spaceBelow
+ ? (0, c.getMeasurement)(e.spaceBelow, "0pt")
+ : "";
+ this.tabDefault = e.tabDefault
+ ? (0, c.getMeasurement)(this.tabDefault)
+ : "";
+ this.tabStops = (e.tabStops || "")
+ .trim()
+ .split(/\s+/)
+ .map((e, t) => (t % 2 == 1 ? (0, c.getMeasurement)(e) : e));
+ this.textIndent = e.textIndent
+ ? (0, c.getMeasurement)(e.textIndent, "0pt")
+ : "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.vAlign = (0, c.getStringOption)(e.vAlign, [
+ "top",
+ "bottom",
+ "middle",
+ ]);
+ this.widows = (0, c.getInteger)({
+ data: e.widows,
+ defaultValue: 0,
+ validate: (e) => e >= 0,
+ });
+ this.hyphenation = null;
+ }
+ [r.$toStyle]() {
+ const e = (0, s.toStyle)(this, "hAlign");
+ "" !== this.marginLeft &&
+ (e.paddingLeft = (0, s.measureToString)(this.marginLeft));
+ "" !== this.marginRight &&
+ (e.paddingight = (0, s.measureToString)(this.marginRight));
+ "" !== this.spaceAbove &&
+ (e.paddingTop = (0, s.measureToString)(this.spaceAbove));
+ "" !== this.spaceBelow &&
+ (e.paddingBottom = (0, s.measureToString)(this.spaceBelow));
+ if ("" !== this.textIndent) {
+ e.textIndent = (0, s.measureToString)(this.textIndent);
+ (0, s.fixTextIndent)(e);
+ }
+ this.lineHeight > 0 &&
+ (e.lineHeight = (0, s.measureToString)(this.lineHeight));
+ "" !== this.tabDefault &&
+ (e.tabSize = (0, s.measureToString)(this.tabDefault));
+ this.tabStops.length;
+ this.hyphenatation &&
+ Object.assign(e, this.hyphenatation[r.$toStyle]());
+ return e;
+ }
+ }
+ class PasswordEdit extends o.XFAObject {
+ constructor(e) {
+ super(f, "passwordEdit", !0);
+ this.hScrollPolicy = (0, c.getStringOption)(e.hScrollPolicy, [
+ "auto",
+ "off",
+ "on",
+ ]);
+ this.id = e.id || "";
+ this.passwordChar = e.passwordChar || "*";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.border = null;
+ this.extras = null;
+ this.margin = null;
+ }
+ }
+ class Pattern extends o.XFAObject {
+ constructor(e) {
+ super(f, "pattern", !0);
+ this.id = e.id || "";
+ this.type = (0, c.getStringOption)(e.type, [
+ "crossHatch",
+ "crossDiagonal",
+ "diagonalLeft",
+ "diagonalRight",
+ "horizontal",
+ "vertical",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.color = null;
+ this.extras = null;
+ }
+ [r.$toStyle](e) {
+ e = e ? e[r.$toStyle]() : "#FFFFFF";
+ const t = this.color ? this.color[r.$toStyle]() : "#000000",
+ a = "repeating-linear-gradient",
+ n = `${e},${e} 5px,${t} 5px,${t} 10px`;
+ switch (this.type) {
+ case "crossHatch":
+ return `${a}(to top,${n}) ${a}(to right,${n})`;
+ case "crossDiagonal":
+ return `${a}(45deg,${n}) ${a}(-45deg,${n})`;
+ case "diagonalLeft":
+ return `${a}(45deg,${n})`;
+ case "diagonalRight":
+ return `${a}(-45deg,${n})`;
+ case "horizontal":
+ return `${a}(to top,${n})`;
+ case "vertical":
+ return `${a}(to right,${n})`;
+ }
+ return "";
+ }
+ }
+ class Picture extends o.StringObject {
+ constructor(e) {
+ super(f, "picture");
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class Proto extends o.XFAObject {
+ constructor(e) {
+ super(f, "proto", !0);
+ this.appearanceFilter = new o.XFAObjectArray();
+ this.arc = new o.XFAObjectArray();
+ this.area = new o.XFAObjectArray();
+ this.assist = new o.XFAObjectArray();
+ this.barcode = new o.XFAObjectArray();
+ this.bindItems = new o.XFAObjectArray();
+ this.bookend = new o.XFAObjectArray();
+ this.boolean = new o.XFAObjectArray();
+ this.border = new o.XFAObjectArray();
+ this.break = new o.XFAObjectArray();
+ this.breakAfter = new o.XFAObjectArray();
+ this.breakBefore = new o.XFAObjectArray();
+ this.button = new o.XFAObjectArray();
+ this.calculate = new o.XFAObjectArray();
+ this.caption = new o.XFAObjectArray();
+ this.certificate = new o.XFAObjectArray();
+ this.certificates = new o.XFAObjectArray();
+ this.checkButton = new o.XFAObjectArray();
+ this.choiceList = new o.XFAObjectArray();
+ this.color = new o.XFAObjectArray();
+ this.comb = new o.XFAObjectArray();
+ this.connect = new o.XFAObjectArray();
+ this.contentArea = new o.XFAObjectArray();
+ this.corner = new o.XFAObjectArray();
+ this.date = new o.XFAObjectArray();
+ this.dateTime = new o.XFAObjectArray();
+ this.dateTimeEdit = new o.XFAObjectArray();
+ this.decimal = new o.XFAObjectArray();
+ this.defaultUi = new o.XFAObjectArray();
+ this.desc = new o.XFAObjectArray();
+ this.digestMethod = new o.XFAObjectArray();
+ this.digestMethods = new o.XFAObjectArray();
+ this.draw = new o.XFAObjectArray();
+ this.edge = new o.XFAObjectArray();
+ this.encoding = new o.XFAObjectArray();
+ this.encodings = new o.XFAObjectArray();
+ this.encrypt = new o.XFAObjectArray();
+ this.encryptData = new o.XFAObjectArray();
+ this.encryption = new o.XFAObjectArray();
+ this.encryptionMethod = new o.XFAObjectArray();
+ this.encryptionMethods = new o.XFAObjectArray();
+ this.event = new o.XFAObjectArray();
+ this.exData = new o.XFAObjectArray();
+ this.exObject = new o.XFAObjectArray();
+ this.exclGroup = new o.XFAObjectArray();
+ this.execute = new o.XFAObjectArray();
+ this.extras = new o.XFAObjectArray();
+ this.field = new o.XFAObjectArray();
+ this.fill = new o.XFAObjectArray();
+ this.filter = new o.XFAObjectArray();
+ this.float = new o.XFAObjectArray();
+ this.font = new o.XFAObjectArray();
+ this.format = new o.XFAObjectArray();
+ this.handler = new o.XFAObjectArray();
+ this.hyphenation = new o.XFAObjectArray();
+ this.image = new o.XFAObjectArray();
+ this.imageEdit = new o.XFAObjectArray();
+ this.integer = new o.XFAObjectArray();
+ this.issuers = new o.XFAObjectArray();
+ this.items = new o.XFAObjectArray();
+ this.keep = new o.XFAObjectArray();
+ this.keyUsage = new o.XFAObjectArray();
+ this.line = new o.XFAObjectArray();
+ this.linear = new o.XFAObjectArray();
+ this.lockDocument = new o.XFAObjectArray();
+ this.manifest = new o.XFAObjectArray();
+ this.margin = new o.XFAObjectArray();
+ this.mdp = new o.XFAObjectArray();
+ this.medium = new o.XFAObjectArray();
+ this.message = new o.XFAObjectArray();
+ this.numericEdit = new o.XFAObjectArray();
+ this.occur = new o.XFAObjectArray();
+ this.oid = new o.XFAObjectArray();
+ this.oids = new o.XFAObjectArray();
+ this.overflow = new o.XFAObjectArray();
+ this.pageArea = new o.XFAObjectArray();
+ this.pageSet = new o.XFAObjectArray();
+ this.para = new o.XFAObjectArray();
+ this.passwordEdit = new o.XFAObjectArray();
+ this.pattern = new o.XFAObjectArray();
+ this.picture = new o.XFAObjectArray();
+ this.radial = new o.XFAObjectArray();
+ this.reason = new o.XFAObjectArray();
+ this.reasons = new o.XFAObjectArray();
+ this.rectangle = new o.XFAObjectArray();
+ this.ref = new o.XFAObjectArray();
+ this.script = new o.XFAObjectArray();
+ this.setProperty = new o.XFAObjectArray();
+ this.signData = new o.XFAObjectArray();
+ this.signature = new o.XFAObjectArray();
+ this.signing = new o.XFAObjectArray();
+ this.solid = new o.XFAObjectArray();
+ this.speak = new o.XFAObjectArray();
+ this.stipple = new o.XFAObjectArray();
+ this.subform = new o.XFAObjectArray();
+ this.subformSet = new o.XFAObjectArray();
+ this.subjectDN = new o.XFAObjectArray();
+ this.subjectDNs = new o.XFAObjectArray();
+ this.submit = new o.XFAObjectArray();
+ this.text = new o.XFAObjectArray();
+ this.textEdit = new o.XFAObjectArray();
+ this.time = new o.XFAObjectArray();
+ this.timeStamp = new o.XFAObjectArray();
+ this.toolTip = new o.XFAObjectArray();
+ this.traversal = new o.XFAObjectArray();
+ this.traverse = new o.XFAObjectArray();
+ this.ui = new o.XFAObjectArray();
+ this.validate = new o.XFAObjectArray();
+ this.value = new o.XFAObjectArray();
+ this.variables = new o.XFAObjectArray();
+ }
+ }
+ class Radial extends o.XFAObject {
+ constructor(e) {
+ super(f, "radial", !0);
+ this.id = e.id || "";
+ this.type = (0, c.getStringOption)(e.type, [
+ "toEdge",
+ "toCenter",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.color = null;
+ this.extras = null;
+ }
+ [r.$toStyle](e) {
+ e = e ? e[r.$toStyle]() : "#FFFFFF";
+ const t = this.color ? this.color[r.$toStyle]() : "#000000";
+ return `radial-gradient(circle at center, ${
+ "toEdge" === this.type ? `${e},${t}` : `${t},${e}`
+ })`;
+ }
+ }
+ class Reason extends o.StringObject {
+ constructor(e) {
+ super(f, "reason");
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class Reasons extends o.XFAObject {
+ constructor(e) {
+ super(f, "reasons", !0);
+ this.id = e.id || "";
+ this.type = (0, c.getStringOption)(e.type, [
+ "optional",
+ "required",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.reason = new o.XFAObjectArray();
+ }
+ }
+ class Rectangle extends o.XFAObject {
+ constructor(e) {
+ super(f, "rectangle", !0);
+ this.hand = (0, c.getStringOption)(e.hand, [
+ "even",
+ "left",
+ "right",
+ ]);
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.corner = new o.XFAObjectArray(4);
+ this.edge = new o.XFAObjectArray(4);
+ this.fill = null;
+ }
+ [r.$toHTML]() {
+ const e = this.edge.children.length
+ ? this.edge.children[0]
+ : new Edge({}),
+ t = e[r.$toStyle](),
+ a = Object.create(null);
+ "visible" === this.fill?.presence
+ ? Object.assign(a, this.fill[r.$toStyle]())
+ : (a.fill = "transparent");
+ a.strokeWidth = (0, s.measureToString)(
+ "visible" === e.presence ? e.thickness : 0,
+ );
+ a.stroke = t.color;
+ const n = (
+ this.corner.children.length
+ ? this.corner.children[0]
+ : new Corner({})
+ )[r.$toStyle](),
+ i = {
+ name: "svg",
+ children: [
+ {
+ name: "rect",
+ attributes: {
+ xmlns: g,
+ width: "100%",
+ height: "100%",
+ x: 0,
+ y: 0,
+ rx: n.radius,
+ ry: n.radius,
+ style: a,
+ },
+ },
+ ],
+ attributes: {
+ xmlns: g,
+ style: { overflow: "visible" },
+ width: "100%",
+ height: "100%",
+ },
+ };
+ if (hasMargin(this[r.$getParent]()[r.$getParent]()))
+ return c.HTMLResult.success({
+ name: "div",
+ attributes: {
+ style: { display: "inline", width: "100%", height: "100%" },
+ },
+ children: [i],
+ });
+ i.attributes.style.position = "absolute";
+ return c.HTMLResult.success(i);
+ }
+ }
+ class RefElement extends o.StringObject {
+ constructor(e) {
+ super(f, "ref");
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class Script extends o.StringObject {
+ constructor(e) {
+ super(f, "script");
+ this.binding = e.binding || "";
+ this.contentType = e.contentType || "";
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.runAt = (0, c.getStringOption)(e.runAt, [
+ "client",
+ "both",
+ "server",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class SetProperty extends o.XFAObject {
+ constructor(e) {
+ super(f, "setProperty");
+ this.connection = e.connection || "";
+ this.ref = e.ref || "";
+ this.target = e.target || "";
+ }
+ }
+ t.SetProperty = SetProperty;
+ class SignData extends o.XFAObject {
+ constructor(e) {
+ super(f, "signData", !0);
+ this.id = e.id || "";
+ this.operation = (0, c.getStringOption)(e.operation, [
+ "sign",
+ "clear",
+ "verify",
+ ]);
+ this.ref = e.ref || "";
+ this.target = e.target || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.filter = null;
+ this.manifest = null;
+ }
+ }
+ class Signature extends o.XFAObject {
+ constructor(e) {
+ super(f, "signature", !0);
+ this.id = e.id || "";
+ this.type = (0, c.getStringOption)(e.type, ["PDF1.3", "PDF1.6"]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.border = null;
+ this.extras = null;
+ this.filter = null;
+ this.manifest = null;
+ this.margin = null;
+ }
+ }
+ class Signing extends o.XFAObject {
+ constructor(e) {
+ super(f, "signing", !0);
+ this.id = e.id || "";
+ this.type = (0, c.getStringOption)(e.type, [
+ "optional",
+ "required",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.certificate = new o.XFAObjectArray();
+ }
+ }
+ class Solid extends o.XFAObject {
+ constructor(e) {
+ super(f, "solid", !0);
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.extras = null;
+ }
+ [r.$toStyle](e) {
+ return e ? e[r.$toStyle]() : "#FFFFFF";
+ }
+ }
+ class Speak extends o.StringObject {
+ constructor(e) {
+ super(f, "speak");
+ this.disable = (0, c.getInteger)({
+ data: e.disable,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.id = e.id || "";
+ this.priority = (0, c.getStringOption)(e.priority, [
+ "custom",
+ "caption",
+ "name",
+ "toolTip",
+ ]);
+ this.rid = e.rid || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class Stipple extends o.XFAObject {
+ constructor(e) {
+ super(f, "stipple", !0);
+ this.id = e.id || "";
+ this.rate = (0, c.getInteger)({
+ data: e.rate,
+ defaultValue: 50,
+ validate: (e) => e >= 0 && e <= 100,
+ });
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.color = null;
+ this.extras = null;
+ }
+ [r.$toStyle](e) {
+ const t = this.rate / 100;
+ return l.Util.makeHexColor(
+ Math.round(e.value.r * (1 - t) + this.value.r * t),
+ Math.round(e.value.g * (1 - t) + this.value.g * t),
+ Math.round(e.value.b * (1 - t) + this.value.b * t),
+ );
+ }
+ }
+ class Subform extends o.XFAObject {
+ constructor(e) {
+ super(f, "subform", !0);
+ this.access = (0, c.getStringOption)(e.access, [
+ "open",
+ "nonInteractive",
+ "protected",
+ "readOnly",
+ ]);
+ this.allowMacro = (0, c.getInteger)({
+ data: e.allowMacro,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.anchorType = (0, c.getStringOption)(e.anchorType, [
+ "topLeft",
+ "bottomCenter",
+ "bottomLeft",
+ "bottomRight",
+ "middleCenter",
+ "middleLeft",
+ "middleRight",
+ "topCenter",
+ "topRight",
+ ]);
+ this.colSpan = (0, c.getInteger)({
+ data: e.colSpan,
+ defaultValue: 1,
+ validate: (e) => e >= 1 || -1 === e,
+ });
+ this.columnWidths = (e.columnWidths || "")
+ .trim()
+ .split(/\s+/)
+ .map((e) => ("-1" === e ? -1 : (0, c.getMeasurement)(e)));
+ this.h = e.h ? (0, c.getMeasurement)(e.h) : "";
+ this.hAlign = (0, c.getStringOption)(e.hAlign, [
+ "left",
+ "center",
+ "justify",
+ "justifyAll",
+ "radix",
+ "right",
+ ]);
+ this.id = e.id || "";
+ this.layout = (0, c.getStringOption)(e.layout, [
+ "position",
+ "lr-tb",
+ "rl-row",
+ "rl-tb",
+ "row",
+ "table",
+ "tb",
+ ]);
+ this.locale = e.locale || "";
+ this.maxH = (0, c.getMeasurement)(e.maxH, "0pt");
+ this.maxW = (0, c.getMeasurement)(e.maxW, "0pt");
+ this.mergeMode = (0, c.getStringOption)(e.mergeMode, [
+ "consumeData",
+ "matchTemplate",
+ ]);
+ this.minH = (0, c.getMeasurement)(e.minH, "0pt");
+ this.minW = (0, c.getMeasurement)(e.minW, "0pt");
+ this.name = e.name || "";
+ this.presence = (0, c.getStringOption)(e.presence, [
+ "visible",
+ "hidden",
+ "inactive",
+ "invisible",
+ ]);
+ this.relevant = (0, c.getRelevant)(e.relevant);
+ this.restoreState = (0, c.getStringOption)(e.restoreState, [
+ "manual",
+ "auto",
+ ]);
+ this.scope = (0, c.getStringOption)(e.scope, ["name", "none"]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.w = e.w ? (0, c.getMeasurement)(e.w) : "";
+ this.x = (0, c.getMeasurement)(e.x, "0pt");
+ this.y = (0, c.getMeasurement)(e.y, "0pt");
+ this.assist = null;
+ this.bind = null;
+ this.bookend = null;
+ this.border = null;
+ this.break = null;
+ this.calculate = null;
+ this.desc = null;
+ this.extras = null;
+ this.keep = null;
+ this.margin = null;
+ this.occur = null;
+ this.overflow = null;
+ this.pageSet = null;
+ this.para = null;
+ this.traversal = null;
+ this.validate = null;
+ this.variables = null;
+ this.area = new o.XFAObjectArray();
+ this.breakAfter = new o.XFAObjectArray();
+ this.breakBefore = new o.XFAObjectArray();
+ this.connect = new o.XFAObjectArray();
+ this.draw = new o.XFAObjectArray();
+ this.event = new o.XFAObjectArray();
+ this.exObject = new o.XFAObjectArray();
+ this.exclGroup = new o.XFAObjectArray();
+ this.field = new o.XFAObjectArray();
+ this.proto = new o.XFAObjectArray();
+ this.setProperty = new o.XFAObjectArray();
+ this.subform = new o.XFAObjectArray();
+ this.subformSet = new o.XFAObjectArray();
+ }
+ [r.$getSubformParent]() {
+ const e = this[r.$getParent]();
+ return e instanceof SubformSet ? e[r.$getSubformParent]() : e;
+ }
+ [r.$isBindable]() {
+ return !0;
+ }
+ [r.$isThereMoreWidth]() {
+ return (
+ (this.layout.endsWith("-tb") &&
+ 0 === this[r.$extra].attempt &&
+ this[r.$extra].numberInLine > 0) ||
+ this[r.$getParent]()[r.$isThereMoreWidth]()
+ );
+ }
+ *[r.$getContainedChildren]() {
+ yield* getContainedChildren(this);
+ }
+ [r.$flushHTML]() {
+ return (0, i.flushHTML)(this);
+ }
+ [r.$addHTML](e, t) {
+ (0, i.addHTML)(this, e, t);
+ }
+ [r.$getAvailableSpace]() {
+ return (0, i.getAvailableSpace)(this);
+ }
+ [r.$isSplittable]() {
+ const e = this[r.$getSubformParent]();
+ if (!e[r.$isSplittable]()) return !1;
+ if (void 0 !== this[r.$extra]._isSplittable)
+ return this[r.$extra]._isSplittable;
+ if ("position" === this.layout || this.layout.includes("row")) {
+ this[r.$extra]._isSplittable = !1;
+ return !1;
+ }
+ if (this.keep && "none" !== this.keep.intact) {
+ this[r.$extra]._isSplittable = !1;
+ return !1;
+ }
+ if (e.layout?.endsWith("-tb") && 0 !== e[r.$extra].numberInLine)
+ return !1;
+ this[r.$extra]._isSplittable = !0;
+ return !0;
+ }
+ [r.$toHTML](e) {
+ setTabIndex(this);
+ if (this.break) {
+ if (
+ "auto" !== this.break.after ||
+ "" !== this.break.afterTarget
+ ) {
+ const e = new BreakAfter({
+ targetType: this.break.after,
+ target: this.break.afterTarget,
+ startNew: this.break.startNew.toString(),
+ });
+ e[r.$globalData] = this[r.$globalData];
+ this[r.$appendChild](e);
+ this.breakAfter.push(e);
+ }
+ if (
+ "auto" !== this.break.before ||
+ "" !== this.break.beforeTarget
+ ) {
+ const e = new BreakBefore({
+ targetType: this.break.before,
+ target: this.break.beforeTarget,
+ startNew: this.break.startNew.toString(),
+ });
+ e[r.$globalData] = this[r.$globalData];
+ this[r.$appendChild](e);
+ this.breakBefore.push(e);
+ }
+ if ("" !== this.break.overflowTarget) {
+ const e = new Overflow({
+ target: this.break.overflowTarget,
+ leader: this.break.overflowLeader,
+ trailer: this.break.overflowTrailer,
+ });
+ e[r.$globalData] = this[r.$globalData];
+ this[r.$appendChild](e);
+ this.overflow.push(e);
+ }
+ this[r.$removeChild](this.break);
+ this.break = null;
+ }
+ if ("hidden" === this.presence || "inactive" === this.presence)
+ return c.HTMLResult.EMPTY;
+ (this.breakBefore.children.length > 1 ||
+ this.breakAfter.children.length > 1) &&
+ (0, l.warn)(
+ "XFA - Several breakBefore or breakAfter in subforms: please file a bug.",
+ );
+ if (this.breakBefore.children.length >= 1) {
+ const e = this.breakBefore.children[0];
+ if (handleBreak(e)) return c.HTMLResult.breakNode(e);
+ }
+ if (this[r.$extra]?.afterBreakAfter) return c.HTMLResult.EMPTY;
+ (0, s.fixDimensions)(this);
+ const t = [],
+ a = { id: this[r.$uid], class: [] };
+ (0, s.setAccess)(this, a.class);
+ this[r.$extra] || (this[r.$extra] = Object.create(null));
+ Object.assign(this[r.$extra], {
+ children: t,
+ line: null,
+ attributes: a,
+ attempt: 0,
+ numberInLine: 0,
+ availableSpace: {
+ width: Math.min(this.w || 1 / 0, e.width),
+ height: Math.min(this.h || 1 / 0, e.height),
+ },
+ width: 0,
+ height: 0,
+ prevHeight: 0,
+ currentWidth: 0,
+ });
+ const n = this[r.$getTemplateRoot](),
+ o = n[r.$extra].noLayoutFailure,
+ h = this[r.$isSplittable]();
+ h || setFirstUnsplittable(this);
+ if (!(0, i.checkDimensions)(this, e)) return c.HTMLResult.FAILURE;
+ const u = new Set([
+ "area",
+ "draw",
+ "exclGroup",
+ "field",
+ "subform",
+ "subformSet",
+ ]);
+ if (this.layout.includes("row")) {
+ const e = this[r.$getSubformParent]().columnWidths;
+ if (Array.isArray(e) && e.length > 0) {
+ this[r.$extra].columnWidths = e;
+ this[r.$extra].currentColumn = 0;
+ }
+ }
+ const d = (0, s.toStyle)(
+ this,
+ "anchorType",
+ "dimensions",
+ "position",
+ "presence",
+ "border",
+ "margin",
+ "hAlign",
+ ),
+ f = ["xfaSubform"],
+ g = (0, s.layoutClass)(this);
+ g && f.push(g);
+ a.style = d;
+ a.class = f;
+ this.name && (a.xfaName = this.name);
+ if (this.overflow) {
+ const t = this.overflow[r.$getExtra]();
+ if (t.addLeader) {
+ t.addLeader = !1;
+ handleOverflow(this, t.leader, e);
+ }
+ }
+ this[r.$pushPara]();
+ const p = "lr-tb" === this.layout || "rl-tb" === this.layout,
+ m = p ? 2 : 1;
+ for (; this[r.$extra].attempt < m; this[r.$extra].attempt++) {
+ p &&
+ 1 === this[r.$extra].attempt &&
+ (this[r.$extra].numberInLine = 0);
+ const e = this[r.$childrenToHTML]({ filter: u, include: !0 });
+ if (e.success) break;
+ if (e.isBreak()) {
+ this[r.$popPara]();
+ return e;
+ }
+ if (
+ p &&
+ 0 === this[r.$extra].attempt &&
+ 0 === this[r.$extra].numberInLine &&
+ !n[r.$extra].noLayoutFailure
+ ) {
+ this[r.$extra].attempt = m;
+ break;
+ }
+ }
+ this[r.$popPara]();
+ h || unsetFirstUnsplittable(this);
+ n[r.$extra].noLayoutFailure = o;
+ if (this[r.$extra].attempt === m) {
+ this.overflow &&
+ (this[r.$getTemplateRoot]()[r.$extra].overflowNode =
+ this.overflow);
+ h || delete this[r.$extra];
+ return c.HTMLResult.FAILURE;
+ }
+ if (this.overflow) {
+ const t = this.overflow[r.$getExtra]();
+ if (t.addTrailer) {
+ t.addTrailer = !1;
+ handleOverflow(this, t.trailer, e);
+ }
+ }
+ let b = 0,
+ y = 0;
+ if (this.margin) {
+ b = this.margin.leftInset + this.margin.rightInset;
+ y = this.margin.topInset + this.margin.bottomInset;
+ }
+ const w = Math.max(this[r.$extra].width + b, this.w || 0),
+ S = Math.max(this[r.$extra].height + y, this.h || 0),
+ x = [this.x, this.y, w, S];
+ "" === this.w && (d.width = (0, s.measureToString)(w));
+ "" === this.h && (d.height = (0, s.measureToString)(S));
+ if (("0px" === d.width || "0px" === d.height) && 0 === t.length)
+ return c.HTMLResult.EMPTY;
+ const C = { name: "div", attributes: a, children: t };
+ applyAssist(this, a);
+ const k = c.HTMLResult.success((0, s.createWrapper)(this, C), x);
+ if (this.breakAfter.children.length >= 1) {
+ const e = this.breakAfter.children[0];
+ if (handleBreak(e)) {
+ this[r.$extra].afterBreakAfter = k;
+ return c.HTMLResult.breakNode(e);
+ }
+ }
+ delete this[r.$extra];
+ return k;
+ }
+ }
+ class SubformSet extends o.XFAObject {
+ constructor(e) {
+ super(f, "subformSet", !0);
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.relation = (0, c.getStringOption)(e.relation, [
+ "ordered",
+ "choice",
+ "unordered",
+ ]);
+ this.relevant = (0, c.getRelevant)(e.relevant);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.bookend = null;
+ this.break = null;
+ this.desc = null;
+ this.extras = null;
+ this.occur = null;
+ this.overflow = null;
+ this.breakAfter = new o.XFAObjectArray();
+ this.breakBefore = new o.XFAObjectArray();
+ this.subform = new o.XFAObjectArray();
+ this.subformSet = new o.XFAObjectArray();
+ }
+ *[r.$getContainedChildren]() {
+ yield* getContainedChildren(this);
+ }
+ [r.$getSubformParent]() {
+ let e = this[r.$getParent]();
+ for (; !(e instanceof Subform); ) e = e[r.$getParent]();
+ return e;
+ }
+ [r.$isBindable]() {
+ return !0;
+ }
+ }
+ class SubjectDN extends o.ContentObject {
+ constructor(e) {
+ super(f, "subjectDN");
+ this.delimiter = e.delimiter || ",";
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ [r.$finalize]() {
+ this[r.$content] = new Map(
+ this[r.$content].split(this.delimiter).map((e) => {
+ (e = e.split("=", 2))[0] = e[0].trim();
+ return e;
+ }),
+ );
+ }
+ }
+ class SubjectDNs extends o.XFAObject {
+ constructor(e) {
+ super(f, "subjectDNs", !0);
+ this.id = e.id || "";
+ this.type = (0, c.getStringOption)(e.type, [
+ "optional",
+ "required",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.subjectDN = new o.XFAObjectArray();
+ }
+ }
+ class Submit extends o.XFAObject {
+ constructor(e) {
+ super(f, "submit", !0);
+ this.embedPDF = (0, c.getInteger)({
+ data: e.embedPDF,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.format = (0, c.getStringOption)(e.format, [
+ "xdp",
+ "formdata",
+ "pdf",
+ "urlencoded",
+ "xfd",
+ "xml",
+ ]);
+ this.id = e.id || "";
+ this.target = e.target || "";
+ this.textEncoding = (0, c.getKeyword)({
+ data: e.textEncoding ? e.textEncoding.toLowerCase() : "",
+ defaultValue: "",
+ validate: (e) =>
+ [
+ "utf-8",
+ "big-five",
+ "fontspecific",
+ "gbk",
+ "gb-18030",
+ "gb-2312",
+ "ksc-5601",
+ "none",
+ "shift-jis",
+ "ucs-2",
+ "utf-16",
+ ].includes(e) || e.match(/iso-8859-\d{2}/),
+ });
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.xdpContent = e.xdpContent || "";
+ this.encrypt = null;
+ this.encryptData = new o.XFAObjectArray();
+ this.signData = new o.XFAObjectArray();
+ }
+ }
+ class Template extends o.XFAObject {
+ constructor(e) {
+ super(f, "template", !0);
+ this.baseProfile = (0, c.getStringOption)(e.baseProfile, [
+ "full",
+ "interactiveForms",
+ ]);
+ this.extras = null;
+ this.subform = new o.XFAObjectArray();
+ }
+ [r.$finalize]() {
+ 0 === this.subform.children.length &&
+ (0, l.warn)("XFA - No subforms in template node.");
+ this.subform.children.length >= 2 &&
+ (0, l.warn)(
+ "XFA - Several subforms in template node: please file a bug.",
+ );
+ this[r.$tabIndex] = 5e3;
+ }
+ [r.$isSplittable]() {
+ return !0;
+ }
+ [r.$searchNode](e, t) {
+ return e.startsWith("#")
+ ? [this[r.$ids].get(e.slice(1))]
+ : (0, d.searchNode)(this, t, e, !0, !0);
+ }
+ *[r.$toPages]() {
+ if (!this.subform.children.length)
+ return c.HTMLResult.success({ name: "div", children: [] });
+ this[r.$extra] = {
+ overflowNode: null,
+ firstUnsplittable: null,
+ currentContentArea: null,
+ currentPageArea: null,
+ noLayoutFailure: !1,
+ pageNumber: 1,
+ pagePosition: "first",
+ oddOrEven: "odd",
+ blankOrNotBlank: "nonBlank",
+ paraStack: [],
+ };
+ const e = this.subform.children[0];
+ e.pageSet[r.$cleanPage]();
+ const t = e.pageSet.pageArea.children,
+ a = { name: "div", children: [] };
+ let n = null,
+ i = null,
+ s = null;
+ if (e.breakBefore.children.length >= 1) {
+ i = e.breakBefore.children[0];
+ s = i.target;
+ } else if (
+ e.subform.children.length >= 1 &&
+ e.subform.children[0].breakBefore.children.length >= 1
+ ) {
+ i = e.subform.children[0].breakBefore.children[0];
+ s = i.target;
+ } else if (e.break?.beforeTarget) {
+ i = e.break;
+ s = i.beforeTarget;
+ } else if (
+ e.subform.children.length >= 1 &&
+ e.subform.children[0].break?.beforeTarget
+ ) {
+ i = e.subform.children[0].break;
+ s = i.beforeTarget;
+ }
+ if (i) {
+ const e = this[r.$searchNode](s, i[r.$getParent]());
+ if (e instanceof PageArea) {
+ n = e;
+ i[r.$extra] = {};
+ }
+ }
+ n || (n = t[0]);
+ n[r.$extra] = { numberOfUse: 1 };
+ const o = n[r.$getParent]();
+ o[r.$extra] = {
+ numberOfUse: 1,
+ pageIndex: o.pageArea.children.indexOf(n),
+ pageSetIndex: 0,
+ };
+ let h,
+ u = null,
+ d = null,
+ f = !0,
+ g = 0,
+ p = 0;
+ for (;;) {
+ if (f) g = 0;
+ else {
+ a.children.pop();
+ if (3 == ++g) {
+ (0, l.warn)(
+ "XFA - Something goes wrong: please file a bug.",
+ );
+ return a;
+ }
+ }
+ h = null;
+ this[r.$extra].currentPageArea = n;
+ const t = n[r.$toHTML]().html;
+ a.children.push(t);
+ if (u) {
+ this[r.$extra].noLayoutFailure = !0;
+ t.children.push(u[r.$toHTML](n[r.$extra].space).html);
+ u = null;
+ }
+ if (d) {
+ this[r.$extra].noLayoutFailure = !0;
+ t.children.push(d[r.$toHTML](n[r.$extra].space).html);
+ d = null;
+ }
+ const i = n.contentArea.children,
+ s = t.children.filter((e) =>
+ e.attributes.class.includes("xfaContentarea"),
+ );
+ f = !1;
+ this[r.$extra].firstUnsplittable = null;
+ this[r.$extra].noLayoutFailure = !1;
+ const flush = (t) => {
+ const a = e[r.$flushHTML]();
+ if (a) {
+ f ||= a.children?.length > 0;
+ s[t].children.push(a);
+ }
+ };
+ for (let t = p, n = i.length; t < n; t++) {
+ const n = (this[r.$extra].currentContentArea = i[t]),
+ o = { width: n.w, height: n.h };
+ p = 0;
+ if (u) {
+ s[t].children.push(u[r.$toHTML](o).html);
+ u = null;
+ }
+ if (d) {
+ s[t].children.push(d[r.$toHTML](o).html);
+ d = null;
+ }
+ const c = e[r.$toHTML](o);
+ if (c.success) {
+ if (c.html) {
+ f ||= c.html.children?.length > 0;
+ s[t].children.push(c.html);
+ } else !f && a.children.length > 1 && a.children.pop();
+ return a;
+ }
+ if (c.isBreak()) {
+ const e = c.breakNode;
+ flush(t);
+ if ("auto" === e.targetType) continue;
+ if (e.leader) {
+ u = this[r.$searchNode](e.leader, e[r.$getParent]());
+ u = u ? u[0] : null;
+ }
+ if (e.trailer) {
+ d = this[r.$searchNode](e.trailer, e[r.$getParent]());
+ d = d ? d[0] : null;
+ }
+ if ("pageArea" === e.targetType) {
+ h = e[r.$extra].target;
+ t = 1 / 0;
+ } else if (e[r.$extra].target) {
+ h = e[r.$extra].target;
+ p = e[r.$extra].index + 1;
+ t = 1 / 0;
+ } else t = e[r.$extra].index;
+ } else if (this[r.$extra].overflowNode) {
+ const e = this[r.$extra].overflowNode;
+ this[r.$extra].overflowNode = null;
+ const a = e[r.$getExtra](),
+ n = a.target;
+ a.addLeader = null !== a.leader;
+ a.addTrailer = null !== a.trailer;
+ flush(t);
+ const s = t;
+ t = 1 / 0;
+ if (n instanceof PageArea) h = n;
+ else if (n instanceof ContentArea) {
+ const e = i.indexOf(n);
+ if (-1 !== e) e > s ? (t = e - 1) : (p = e);
+ else {
+ h = n[r.$getParent]();
+ p = h.contentArea.children.indexOf(n);
+ }
+ }
+ } else flush(t);
+ }
+ this[r.$extra].pageNumber += 1;
+ h &&
+ (h[r.$isUsable]()
+ ? (h[r.$extra].numberOfUse += 1)
+ : (h = null));
+ n = h || n[r.$getNextPage]();
+ yield null;
+ }
+ }
+ }
+ t.Template = Template;
+ class Text extends o.ContentObject {
+ constructor(e) {
+ super(f, "text");
+ this.id = e.id || "";
+ this.maxChars = (0, c.getInteger)({
+ data: e.maxChars,
+ defaultValue: 0,
+ validate: (e) => e >= 0,
+ });
+ this.name = e.name || "";
+ this.rid = e.rid || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ [r.$acceptWhitespace]() {
+ return !0;
+ }
+ [r.$onChild](e) {
+ if (e[r.$namespaceId] === n.NamespaceIds.xhtml.id) {
+ this[r.$content] = e;
+ return !0;
+ }
+ (0, l.warn)(`XFA - Invalid content in Text: ${e[r.$nodeName]}.`);
+ return !1;
+ }
+ [r.$onText](e) {
+ this[r.$content] instanceof o.XFAObject || super[r.$onText](e);
+ }
+ [r.$finalize]() {
+ "string" == typeof this[r.$content] &&
+ (this[r.$content] = this[r.$content].replaceAll("\r\n", "\n"));
+ }
+ [r.$getExtra]() {
+ return "string" == typeof this[r.$content]
+ ? this[r.$content]
+ .split(/[\u2029\u2028\n]/)
+ .reduce((e, t) => {
+ t && e.push(t);
+ return e;
+ }, [])
+ .join("\n")
+ : this[r.$content][r.$text]();
+ }
+ [r.$toHTML](e) {
+ if ("string" == typeof this[r.$content]) {
+ const e = valueToHtml(this[r.$content]).html;
+ if (this[r.$content].includes("\u2029")) {
+ e.name = "div";
+ e.children = [];
+ this[r.$content]
+ .split("\u2029")
+ .map((e) =>
+ e.split(/[\u2028\n]/).reduce((e, t) => {
+ e.push({ name: "span", value: t }, { name: "br" });
+ return e;
+ }, []),
+ )
+ .forEach((t) => {
+ e.children.push({ name: "p", children: t });
+ });
+ } else if (/[\u2028\n]/.test(this[r.$content])) {
+ e.name = "div";
+ e.children = [];
+ this[r.$content].split(/[\u2028\n]/).forEach((t) => {
+ e.children.push({ name: "span", value: t }, { name: "br" });
+ });
+ }
+ return c.HTMLResult.success(e);
+ }
+ return this[r.$content][r.$toHTML](e);
+ }
+ }
+ t.Text = Text;
+ class TextEdit extends o.XFAObject {
+ constructor(e) {
+ super(f, "textEdit", !0);
+ this.allowRichText = (0, c.getInteger)({
+ data: e.allowRichText,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.hScrollPolicy = (0, c.getStringOption)(e.hScrollPolicy, [
+ "auto",
+ "off",
+ "on",
+ ]);
+ this.id = e.id || "";
+ this.multiLine = (0, c.getInteger)({
+ data: e.multiLine,
+ defaultValue: "",
+ validate: (e) => 0 === e || 1 === e,
+ });
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.vScrollPolicy = (0, c.getStringOption)(e.vScrollPolicy, [
+ "auto",
+ "off",
+ "on",
+ ]);
+ this.border = null;
+ this.comb = null;
+ this.extras = null;
+ this.margin = null;
+ }
+ [r.$toHTML](e) {
+ const t = (0, s.toStyle)(this, "border", "font", "margin");
+ let a;
+ const n = this[r.$getParent]()[r.$getParent]();
+ "" === this.multiLine &&
+ (this.multiLine = n instanceof Draw ? 1 : 0);
+ a =
+ 1 === this.multiLine
+ ? {
+ name: "textarea",
+ attributes: {
+ dataId: n[r.$data]?.[r.$uid] || n[r.$uid],
+ fieldId: n[r.$uid],
+ class: ["xfaTextfield"],
+ style: t,
+ "aria-label": ariaLabel(n),
+ "aria-required": !1,
+ },
+ }
+ : {
+ name: "input",
+ attributes: {
+ type: "text",
+ dataId: n[r.$data]?.[r.$uid] || n[r.$uid],
+ fieldId: n[r.$uid],
+ class: ["xfaTextfield"],
+ style: t,
+ "aria-label": ariaLabel(n),
+ "aria-required": !1,
+ },
+ };
+ if (isRequired(n)) {
+ a.attributes["aria-required"] = !0;
+ a.attributes.required = !0;
+ }
+ return c.HTMLResult.success({
+ name: "label",
+ attributes: { class: ["xfaLabel"] },
+ children: [a],
+ });
+ }
+ }
+ class Time extends o.StringObject {
+ constructor(e) {
+ super(f, "time");
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ [r.$finalize]() {
+ const e = this[r.$content].trim();
+ this[r.$content] = e ? new Date(e) : null;
+ }
+ [r.$toHTML](e) {
+ return valueToHtml(
+ this[r.$content] ? this[r.$content].toString() : "",
+ );
+ }
+ }
+ class TimeStamp extends o.XFAObject {
+ constructor(e) {
+ super(f, "timeStamp");
+ this.id = e.id || "";
+ this.server = e.server || "";
+ this.type = (0, c.getStringOption)(e.type, [
+ "optional",
+ "required",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class ToolTip extends o.StringObject {
+ constructor(e) {
+ super(f, "toolTip");
+ this.id = e.id || "";
+ this.rid = e.rid || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class Traversal extends o.XFAObject {
+ constructor(e) {
+ super(f, "traversal", !0);
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.extras = null;
+ this.traverse = new o.XFAObjectArray();
+ }
+ }
+ class Traverse extends o.XFAObject {
+ constructor(e) {
+ super(f, "traverse", !0);
+ this.id = e.id || "";
+ this.operation = (0, c.getStringOption)(e.operation, [
+ "next",
+ "back",
+ "down",
+ "first",
+ "left",
+ "right",
+ "up",
+ ]);
+ this.ref = e.ref || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.extras = null;
+ this.script = null;
+ }
+ get name() {
+ return this.operation;
+ }
+ [r.$isTransparent]() {
+ return !1;
+ }
+ }
+ class Ui extends o.XFAObject {
+ constructor(e) {
+ super(f, "ui", !0);
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.extras = null;
+ this.picture = null;
+ this.barcode = null;
+ this.button = null;
+ this.checkButton = null;
+ this.choiceList = null;
+ this.dateTimeEdit = null;
+ this.defaultUi = null;
+ this.imageEdit = null;
+ this.numericEdit = null;
+ this.passwordEdit = null;
+ this.signature = null;
+ this.textEdit = null;
+ }
+ [r.$getExtra]() {
+ if (void 0 === this[r.$extra]) {
+ for (const e of Object.getOwnPropertyNames(this)) {
+ if ("extras" === e || "picture" === e) continue;
+ const t = this[e];
+ if (t instanceof o.XFAObject) {
+ this[r.$extra] = t;
+ return t;
+ }
+ }
+ this[r.$extra] = null;
+ }
+ return this[r.$extra];
+ }
+ [r.$toHTML](e) {
+ const t = this[r.$getExtra]();
+ return t ? t[r.$toHTML](e) : c.HTMLResult.EMPTY;
+ }
+ }
+ class Validate extends o.XFAObject {
+ constructor(e) {
+ super(f, "validate", !0);
+ this.formatTest = (0, c.getStringOption)(e.formatTest, [
+ "warning",
+ "disabled",
+ "error",
+ ]);
+ this.id = e.id || "";
+ this.nullTest = (0, c.getStringOption)(e.nullTest, [
+ "disabled",
+ "error",
+ "warning",
+ ]);
+ this.scriptTest = (0, c.getStringOption)(e.scriptTest, [
+ "error",
+ "disabled",
+ "warning",
+ ]);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.extras = null;
+ this.message = null;
+ this.picture = null;
+ this.script = null;
+ }
+ }
+ class Value extends o.XFAObject {
+ constructor(e) {
+ super(f, "value", !0);
+ this.id = e.id || "";
+ this.override = (0, c.getInteger)({
+ data: e.override,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.relevant = (0, c.getRelevant)(e.relevant);
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.arc = null;
+ this.boolean = null;
+ this.date = null;
+ this.dateTime = null;
+ this.decimal = null;
+ this.exData = null;
+ this.float = null;
+ this.image = null;
+ this.integer = null;
+ this.line = null;
+ this.rectangle = null;
+ this.text = null;
+ this.time = null;
+ }
+ [r.$setValue](e) {
+ const t = this[r.$getParent]();
+ if (t instanceof Field && t.ui?.imageEdit) {
+ if (!this.image) {
+ this.image = new Image({});
+ this[r.$appendChild](this.image);
+ }
+ this.image[r.$content] = e[r.$content];
+ return;
+ }
+ const a = e[r.$nodeName];
+ if (null === this[a]) {
+ for (const e of Object.getOwnPropertyNames(this)) {
+ const t = this[e];
+ if (t instanceof o.XFAObject) {
+ this[e] = null;
+ this[r.$removeChild](t);
+ }
+ }
+ this[e[r.$nodeName]] = e;
+ this[r.$appendChild](e);
+ } else this[a][r.$content] = e[r.$content];
+ }
+ [r.$text]() {
+ if (this.exData)
+ return "string" == typeof this.exData[r.$content]
+ ? this.exData[r.$content].trim()
+ : this.exData[r.$content][r.$text]().trim();
+ for (const e of Object.getOwnPropertyNames(this)) {
+ if ("image" === e) continue;
+ const t = this[e];
+ if (t instanceof o.XFAObject)
+ return (t[r.$content] || "").toString().trim();
+ }
+ return null;
+ }
+ [r.$toHTML](e) {
+ for (const t of Object.getOwnPropertyNames(this)) {
+ const a = this[t];
+ if (a instanceof o.XFAObject) return a[r.$toHTML](e);
+ }
+ return c.HTMLResult.EMPTY;
+ }
+ }
+ t.Value = Value;
+ class Variables extends o.XFAObject {
+ constructor(e) {
+ super(f, "variables", !0);
+ this.id = e.id || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ this.boolean = new o.XFAObjectArray();
+ this.date = new o.XFAObjectArray();
+ this.dateTime = new o.XFAObjectArray();
+ this.decimal = new o.XFAObjectArray();
+ this.exData = new o.XFAObjectArray();
+ this.float = new o.XFAObjectArray();
+ this.image = new o.XFAObjectArray();
+ this.integer = new o.XFAObjectArray();
+ this.manifest = new o.XFAObjectArray();
+ this.script = new o.XFAObjectArray();
+ this.text = new o.XFAObjectArray();
+ this.time = new o.XFAObjectArray();
+ }
+ [r.$isTransparent]() {
+ return !0;
+ }
+ }
+ class TemplateNamespace {
+ static [n.$buildXFAObject](e, t) {
+ if (TemplateNamespace.hasOwnProperty(e)) {
+ const a = TemplateNamespace[e](t);
+ a[r.$setSetAttributes](t);
+ return a;
+ }
+ }
+ static appearanceFilter(e) {
+ return new AppearanceFilter(e);
+ }
+ static arc(e) {
+ return new Arc(e);
+ }
+ static area(e) {
+ return new Area(e);
+ }
+ static assist(e) {
+ return new Assist(e);
+ }
+ static barcode(e) {
+ return new Barcode(e);
+ }
+ static bind(e) {
+ return new Bind(e);
+ }
+ static bindItems(e) {
+ return new BindItems(e);
+ }
+ static bookend(e) {
+ return new Bookend(e);
+ }
+ static boolean(e) {
+ return new BooleanElement(e);
+ }
+ static border(e) {
+ return new Border(e);
+ }
+ static break(e) {
+ return new Break(e);
+ }
+ static breakAfter(e) {
+ return new BreakAfter(e);
+ }
+ static breakBefore(e) {
+ return new BreakBefore(e);
+ }
+ static button(e) {
+ return new Button(e);
+ }
+ static calculate(e) {
+ return new Calculate(e);
+ }
+ static caption(e) {
+ return new Caption(e);
+ }
+ static certificate(e) {
+ return new Certificate(e);
+ }
+ static certificates(e) {
+ return new Certificates(e);
+ }
+ static checkButton(e) {
+ return new CheckButton(e);
+ }
+ static choiceList(e) {
+ return new ChoiceList(e);
+ }
+ static color(e) {
+ return new Color(e);
+ }
+ static comb(e) {
+ return new Comb(e);
+ }
+ static connect(e) {
+ return new Connect(e);
+ }
+ static contentArea(e) {
+ return new ContentArea(e);
+ }
+ static corner(e) {
+ return new Corner(e);
+ }
+ static date(e) {
+ return new DateElement(e);
+ }
+ static dateTime(e) {
+ return new DateTime(e);
+ }
+ static dateTimeEdit(e) {
+ return new DateTimeEdit(e);
+ }
+ static decimal(e) {
+ return new Decimal(e);
+ }
+ static defaultUi(e) {
+ return new DefaultUi(e);
+ }
+ static desc(e) {
+ return new Desc(e);
+ }
+ static digestMethod(e) {
+ return new DigestMethod(e);
+ }
+ static digestMethods(e) {
+ return new DigestMethods(e);
+ }
+ static draw(e) {
+ return new Draw(e);
+ }
+ static edge(e) {
+ return new Edge(e);
+ }
+ static encoding(e) {
+ return new Encoding(e);
+ }
+ static encodings(e) {
+ return new Encodings(e);
+ }
+ static encrypt(e) {
+ return new Encrypt(e);
+ }
+ static encryptData(e) {
+ return new EncryptData(e);
+ }
+ static encryption(e) {
+ return new Encryption(e);
+ }
+ static encryptionMethod(e) {
+ return new EncryptionMethod(e);
+ }
+ static encryptionMethods(e) {
+ return new EncryptionMethods(e);
+ }
+ static event(e) {
+ return new Event(e);
+ }
+ static exData(e) {
+ return new ExData(e);
+ }
+ static exObject(e) {
+ return new ExObject(e);
+ }
+ static exclGroup(e) {
+ return new ExclGroup(e);
+ }
+ static execute(e) {
+ return new Execute(e);
+ }
+ static extras(e) {
+ return new Extras(e);
+ }
+ static field(e) {
+ return new Field(e);
+ }
+ static fill(e) {
+ return new Fill(e);
+ }
+ static filter(e) {
+ return new Filter(e);
+ }
+ static float(e) {
+ return new Float(e);
+ }
+ static font(e) {
+ return new Font(e);
+ }
+ static format(e) {
+ return new Format(e);
+ }
+ static handler(e) {
+ return new Handler(e);
+ }
+ static hyphenation(e) {
+ return new Hyphenation(e);
+ }
+ static image(e) {
+ return new Image(e);
+ }
+ static imageEdit(e) {
+ return new ImageEdit(e);
+ }
+ static integer(e) {
+ return new Integer(e);
+ }
+ static issuers(e) {
+ return new Issuers(e);
+ }
+ static items(e) {
+ return new Items(e);
+ }
+ static keep(e) {
+ return new Keep(e);
+ }
+ static keyUsage(e) {
+ return new KeyUsage(e);
+ }
+ static line(e) {
+ return new Line(e);
+ }
+ static linear(e) {
+ return new Linear(e);
+ }
+ static lockDocument(e) {
+ return new LockDocument(e);
+ }
+ static manifest(e) {
+ return new Manifest(e);
+ }
+ static margin(e) {
+ return new Margin(e);
+ }
+ static mdp(e) {
+ return new Mdp(e);
+ }
+ static medium(e) {
+ return new Medium(e);
+ }
+ static message(e) {
+ return new Message(e);
+ }
+ static numericEdit(e) {
+ return new NumericEdit(e);
+ }
+ static occur(e) {
+ return new Occur(e);
+ }
+ static oid(e) {
+ return new Oid(e);
+ }
+ static oids(e) {
+ return new Oids(e);
+ }
+ static overflow(e) {
+ return new Overflow(e);
+ }
+ static pageArea(e) {
+ return new PageArea(e);
+ }
+ static pageSet(e) {
+ return new PageSet(e);
+ }
+ static para(e) {
+ return new Para(e);
+ }
+ static passwordEdit(e) {
+ return new PasswordEdit(e);
+ }
+ static pattern(e) {
+ return new Pattern(e);
+ }
+ static picture(e) {
+ return new Picture(e);
+ }
+ static proto(e) {
+ return new Proto(e);
+ }
+ static radial(e) {
+ return new Radial(e);
+ }
+ static reason(e) {
+ return new Reason(e);
+ }
+ static reasons(e) {
+ return new Reasons(e);
+ }
+ static rectangle(e) {
+ return new Rectangle(e);
+ }
+ static ref(e) {
+ return new RefElement(e);
+ }
+ static script(e) {
+ return new Script(e);
+ }
+ static setProperty(e) {
+ return new SetProperty(e);
+ }
+ static signData(e) {
+ return new SignData(e);
+ }
+ static signature(e) {
+ return new Signature(e);
+ }
+ static signing(e) {
+ return new Signing(e);
+ }
+ static solid(e) {
+ return new Solid(e);
+ }
+ static speak(e) {
+ return new Speak(e);
+ }
+ static stipple(e) {
+ return new Stipple(e);
+ }
+ static subform(e) {
+ return new Subform(e);
+ }
+ static subformSet(e) {
+ return new SubformSet(e);
+ }
+ static subjectDN(e) {
+ return new SubjectDN(e);
+ }
+ static subjectDNs(e) {
+ return new SubjectDNs(e);
+ }
+ static submit(e) {
+ return new Submit(e);
+ }
+ static template(e) {
+ return new Template(e);
+ }
+ static text(e) {
+ return new Text(e);
+ }
+ static textEdit(e) {
+ return new TextEdit(e);
+ }
+ static time(e) {
+ return new Time(e);
+ }
+ static timeStamp(e) {
+ return new TimeStamp(e);
+ }
+ static toolTip(e) {
+ return new ToolTip(e);
+ }
+ static traversal(e) {
+ return new Traversal(e);
+ }
+ static traverse(e) {
+ return new Traverse(e);
+ }
+ static ui(e) {
+ return new Ui(e);
+ }
+ static validate(e) {
+ return new Validate(e);
+ }
+ static value(e) {
+ return new Value(e);
+ }
+ static variables(e) {
+ return new Variables(e);
+ }
+ }
+ t.TemplateNamespace = TemplateNamespace;
+ },
+ (e, t) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.NamespaceIds = t.$buildXFAObject = void 0;
+ const a = Symbol();
+ t.$buildXFAObject = a;
+ t.NamespaceIds = {
+ config: {
+ id: 0,
+ check: (e) => e.startsWith("http://www.xfa.org/schema/xci/"),
+ },
+ connectionSet: {
+ id: 1,
+ check: (e) =>
+ e.startsWith("http://www.xfa.org/schema/xfa-connection-set/"),
+ },
+ datasets: {
+ id: 2,
+ check: (e) => e.startsWith("http://www.xfa.org/schema/xfa-data/"),
+ },
+ form: {
+ id: 3,
+ check: (e) => e.startsWith("http://www.xfa.org/schema/xfa-form/"),
+ },
+ localeSet: {
+ id: 4,
+ check: (e) =>
+ e.startsWith("http://www.xfa.org/schema/xfa-locale-set/"),
+ },
+ pdf: { id: 5, check: (e) => "http://ns.adobe.com/xdp/pdf/" === e },
+ signature: {
+ id: 6,
+ check: (e) => "http://www.w3.org/2000/09/xmldsig#" === e,
+ },
+ sourceSet: {
+ id: 7,
+ check: (e) =>
+ e.startsWith("http://www.xfa.org/schema/xfa-source-set/"),
+ },
+ stylesheet: {
+ id: 8,
+ check: (e) => "http://www.w3.org/1999/XSL/Transform" === e,
+ },
+ template: {
+ id: 9,
+ check: (e) =>
+ e.startsWith("http://www.xfa.org/schema/xfa-template/"),
+ },
+ xdc: {
+ id: 10,
+ check: (e) => e.startsWith("http://www.xfa.org/schema/xdc/"),
+ },
+ xdp: { id: 11, check: (e) => "http://ns.adobe.com/xdp/" === e },
+ xfdf: { id: 12, check: (e) => "http://ns.adobe.com/xfdf/" === e },
+ xhtml: {
+ id: 13,
+ check: (e) => "http://www.w3.org/1999/xhtml" === e,
+ },
+ xmpmeta: {
+ id: 14,
+ check: (e) => "http://ns.adobe.com/xmpmeta/" === e,
+ },
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.addHTML = function addHTML(e, t, a) {
+ const i = e[r.$extra],
+ s = i.availableSpace,
+ [o, c, l, h] = a;
+ switch (e.layout) {
+ case "position":
+ i.width = Math.max(i.width, o + l);
+ i.height = Math.max(i.height, c + h);
+ i.children.push(t);
+ break;
+ case "lr-tb":
+ case "rl-tb":
+ if (!i.line || 1 === i.attempt) {
+ i.line = createLine(e, []);
+ i.children.push(i.line);
+ i.numberInLine = 0;
+ }
+ i.numberInLine += 1;
+ i.line.children.push(t);
+ if (0 === i.attempt) {
+ i.currentWidth += l;
+ i.height = Math.max(i.height, i.prevHeight + h);
+ } else {
+ i.currentWidth = l;
+ i.prevHeight = i.height;
+ i.height += h;
+ i.attempt = 0;
+ }
+ i.width = Math.max(i.width, i.currentWidth);
+ break;
+ case "rl-row":
+ case "row": {
+ i.children.push(t);
+ i.width += l;
+ i.height = Math.max(i.height, h);
+ const e = (0, n.measureToString)(i.height);
+ for (const t of i.children) t.attributes.style.height = e;
+ break;
+ }
+ case "table":
+ case "tb":
+ i.width = Math.min(s.width, Math.max(i.width, l));
+ i.height += h;
+ i.children.push(t);
+ }
+ };
+ t.checkDimensions = function checkDimensions(e, t) {
+ if (null === e[r.$getTemplateRoot]()[r.$extra].firstUnsplittable)
+ return !0;
+ if (0 === e.w || 0 === e.h) return !0;
+ const a = e[r.$getSubformParent](),
+ n = a[r.$extra]?.attempt || 0,
+ [, i, s, o] = (function getTransformedBBox(e) {
+ let t,
+ a,
+ r = "" === e.w ? NaN : e.w,
+ n = "" === e.h ? NaN : e.h,
+ [i, s] = [0, 0];
+ switch (e.anchorType || "") {
+ case "bottomCenter":
+ [i, s] = [r / 2, n];
+ break;
+ case "bottomLeft":
+ [i, s] = [0, n];
+ break;
+ case "bottomRight":
+ [i, s] = [r, n];
+ break;
+ case "middleCenter":
+ [i, s] = [r / 2, n / 2];
+ break;
+ case "middleLeft":
+ [i, s] = [0, n / 2];
+ break;
+ case "middleRight":
+ [i, s] = [r, n / 2];
+ break;
+ case "topCenter":
+ [i, s] = [r / 2, 0];
+ break;
+ case "topRight":
+ [i, s] = [r, 0];
+ }
+ switch (e.rotate || 0) {
+ case 0:
+ [t, a] = [-i, -s];
+ break;
+ case 90:
+ [t, a] = [-s, i];
+ [r, n] = [n, -r];
+ break;
+ case 180:
+ [t, a] = [i, s];
+ [r, n] = [-r, -n];
+ break;
+ case 270:
+ [t, a] = [s, -i];
+ [r, n] = [-n, r];
+ }
+ return [
+ e.x + t + Math.min(0, r),
+ e.y + a + Math.min(0, n),
+ Math.abs(r),
+ Math.abs(n),
+ ];
+ })(e);
+ switch (a.layout) {
+ case "lr-tb":
+ case "rl-tb":
+ return 0 === n
+ ? e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure
+ ? "" !== e.w
+ ? Math.round(s - t.width) <= 2
+ : t.width > 2
+ : !("" !== e.h && Math.round(o - t.height) > 2) &&
+ ("" !== e.w
+ ? Math.round(s - t.width) <= 2 ||
+ (0 === a[r.$extra].numberInLine && t.height > 2)
+ : t.width > 2)
+ : !!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure ||
+ (!("" !== e.h && Math.round(o - t.height) > 2) &&
+ ("" === e.w ||
+ Math.round(s - t.width) <= 2 ||
+ !a[r.$isThereMoreWidth]()) &&
+ t.height > 2);
+ case "table":
+ case "tb":
+ return (
+ !!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure ||
+ ("" === e.h || e[r.$isSplittable]()
+ ? ("" === e.w ||
+ Math.round(s - t.width) <= 2 ||
+ !a[r.$isThereMoreWidth]()) &&
+ t.height > 2
+ : Math.round(o - t.height) <= 2)
+ );
+ case "position":
+ if (e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure)
+ return !0;
+ if ("" === e.h || Math.round(o + i - t.height) <= 2) return !0;
+ return (
+ o + i > e[r.$getTemplateRoot]()[r.$extra].currentContentArea.h
+ );
+ case "rl-row":
+ case "row":
+ return (
+ !!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure ||
+ "" === e.h ||
+ Math.round(o - t.height) <= 2
+ );
+ default:
+ return !0;
+ }
+ };
+ t.flushHTML = function flushHTML(e) {
+ if (!e[r.$extra]) return null;
+ const t = {
+ name: "div",
+ attributes: e[r.$extra].attributes,
+ children: e[r.$extra].children,
+ };
+ if (e[r.$extra].failingNode) {
+ const a = e[r.$extra].failingNode[r.$flushHTML]();
+ a &&
+ (e.layout.endsWith("-tb")
+ ? t.children.push(createLine(e, [a]))
+ : t.children.push(a));
+ }
+ if (0 === t.children.length) return null;
+ return t;
+ };
+ t.getAvailableSpace = function getAvailableSpace(e) {
+ const t = e[r.$extra].availableSpace,
+ a = e.margin ? e.margin.topInset + e.margin.bottomInset : 0,
+ n = e.margin ? e.margin.leftInset + e.margin.rightInset : 0;
+ switch (e.layout) {
+ case "lr-tb":
+ case "rl-tb":
+ return 0 === e[r.$extra].attempt
+ ? {
+ width: t.width - n - e[r.$extra].currentWidth,
+ height: t.height - a - e[r.$extra].prevHeight,
+ }
+ : {
+ width: t.width - n,
+ height: t.height - a - e[r.$extra].height,
+ };
+ case "rl-row":
+ case "row":
+ return {
+ width: e[r.$extra].columnWidths
+ .slice(e[r.$extra].currentColumn)
+ .reduce((e, t) => e + t),
+ height: t.height - n,
+ };
+ case "table":
+ case "tb":
+ return {
+ width: t.width - n,
+ height: t.height - a - e[r.$extra].height,
+ };
+ default:
+ return t;
+ }
+ };
+ var r = a(78),
+ n = a(83);
+ function createLine(e, t) {
+ return {
+ name: "div",
+ attributes: { class: ["lr-tb" === e.layout ? "xfaLr" : "xfaRl"] },
+ children: t,
+ };
+ }
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.computeBbox = function computeBbox(e, t, a) {
+ let n;
+ if ("" !== e.w && "" !== e.h) n = [e.x, e.y, e.w, e.h];
+ else {
+ if (!a) return null;
+ let i = e.w;
+ if ("" === i) {
+ if (0 === e.maxW) {
+ const t = e[r.$getSubformParent]();
+ i = "position" === t.layout && "" !== t.w ? 0 : e.minW;
+ } else i = Math.min(e.maxW, a.width);
+ t.attributes.style.width = measureToString(i);
+ }
+ let s = e.h;
+ if ("" === s) {
+ if (0 === e.maxH) {
+ const t = e[r.$getSubformParent]();
+ s = "position" === t.layout && "" !== t.h ? 0 : e.minH;
+ } else s = Math.min(e.maxH, a.height);
+ t.attributes.style.height = measureToString(s);
+ }
+ n = [e.x, e.y, i, s];
+ }
+ return n;
+ };
+ t.createWrapper = function createWrapper(e, t) {
+ const { attributes: a } = t,
+ { style: n } = a,
+ i = {
+ name: "div",
+ attributes: {
+ class: ["xfaWrapper"],
+ style: Object.create(null),
+ },
+ children: [],
+ };
+ a.class.push("xfaWrapped");
+ if (e.border) {
+ const { widths: a, insets: s } = e.border[r.$extra];
+ let o,
+ c,
+ l = s[0],
+ h = s[3];
+ const u = s[0] + s[2],
+ d = s[1] + s[3];
+ switch (e.border.hand) {
+ case "even":
+ l -= a[0] / 2;
+ h -= a[3] / 2;
+ o = `calc(100% + ${(a[1] + a[3]) / 2 - d}px)`;
+ c = `calc(100% + ${(a[0] + a[2]) / 2 - u}px)`;
+ break;
+ case "left":
+ l -= a[0];
+ h -= a[3];
+ o = `calc(100% + ${a[1] + a[3] - d}px)`;
+ c = `calc(100% + ${a[0] + a[2] - u}px)`;
+ break;
+ case "right":
+ o = d ? `calc(100% - ${d}px)` : "100%";
+ c = u ? `calc(100% - ${u}px)` : "100%";
+ }
+ const f = ["xfaBorder"];
+ isPrintOnly(e.border) && f.push("xfaPrintOnly");
+ const g = {
+ name: "div",
+ attributes: {
+ class: f,
+ style: { top: `${l}px`, left: `${h}px`, width: o, height: c },
+ },
+ children: [],
+ };
+ for (const e of [
+ "border",
+ "borderWidth",
+ "borderColor",
+ "borderRadius",
+ "borderStyle",
+ ])
+ if (void 0 !== n[e]) {
+ g.attributes.style[e] = n[e];
+ delete n[e];
+ }
+ i.children.push(g, t);
+ } else i.children.push(t);
+ for (const e of [
+ "background",
+ "backgroundClip",
+ "top",
+ "left",
+ "width",
+ "height",
+ "minWidth",
+ "minHeight",
+ "maxWidth",
+ "maxHeight",
+ "transform",
+ "transformOrigin",
+ "visibility",
+ ])
+ if (void 0 !== n[e]) {
+ i.attributes.style[e] = n[e];
+ delete n[e];
+ }
+ i.attributes.style.position =
+ "absolute" === n.position ? "absolute" : "relative";
+ delete n.position;
+ if (n.alignSelf) {
+ i.attributes.style.alignSelf = n.alignSelf;
+ delete n.alignSelf;
+ }
+ return i;
+ };
+ t.fixDimensions = function fixDimensions(e) {
+ const t = e[r.$getSubformParent]();
+ if (t.layout?.includes("row")) {
+ const a = t[r.$extra],
+ n = e.colSpan;
+ let i;
+ i =
+ -1 === n
+ ? a.columnWidths
+ .slice(a.currentColumn)
+ .reduce((e, t) => e + t, 0)
+ : a.columnWidths
+ .slice(a.currentColumn, a.currentColumn + n)
+ .reduce((e, t) => e + t, 0);
+ isNaN(i) || (e.w = i);
+ }
+ t.layout && "position" !== t.layout && (e.x = e.y = 0);
+ "table" === e.layout &&
+ "" === e.w &&
+ Array.isArray(e.columnWidths) &&
+ (e.w = e.columnWidths.reduce((e, t) => e + t, 0));
+ };
+ t.fixTextIndent = function fixTextIndent(e) {
+ const t = (0, i.getMeasurement)(e.textIndent, "0px");
+ if (t >= 0) return;
+ const a =
+ "padding" +
+ ("left" == ("right" === e.textAlign ? "right" : "left")
+ ? "Left"
+ : "Right"),
+ r = (0, i.getMeasurement)(e[a], "0px");
+ e[a] = r - t + "px";
+ };
+ t.fixURL = function fixURL(e) {
+ const t = (0, n.createValidAbsoluteUrl)(e, null, {
+ addDefaultProtocol: !0,
+ tryConvertEncoding: !0,
+ });
+ return t ? t.href : null;
+ };
+ t.isPrintOnly = isPrintOnly;
+ t.layoutClass = function layoutClass(e) {
+ switch (e.layout) {
+ case "position":
+ default:
+ return "xfaPosition";
+ case "lr-tb":
+ return "xfaLrTb";
+ case "rl-row":
+ return "xfaRlRow";
+ case "rl-tb":
+ return "xfaRlTb";
+ case "row":
+ return "xfaRow";
+ case "table":
+ return "xfaTable";
+ case "tb":
+ return "xfaTb";
+ }
+ };
+ t.layoutNode = function layoutNode(e, t) {
+ let a = null,
+ n = null,
+ i = !1;
+ if ((!e.w || !e.h) && e.value) {
+ let s = 0,
+ o = 0;
+ if (e.margin) {
+ s = e.margin.leftInset + e.margin.rightInset;
+ o = e.margin.topInset + e.margin.bottomInset;
+ }
+ let c = null,
+ l = null;
+ if (e.para) {
+ l = Object.create(null);
+ c = "" === e.para.lineHeight ? null : e.para.lineHeight;
+ l.top = "" === e.para.spaceAbove ? 0 : e.para.spaceAbove;
+ l.bottom = "" === e.para.spaceBelow ? 0 : e.para.spaceBelow;
+ l.left = "" === e.para.marginLeft ? 0 : e.para.marginLeft;
+ l.right = "" === e.para.marginRight ? 0 : e.para.marginRight;
+ }
+ let h = e.font;
+ if (!h) {
+ const t = e[r.$getTemplateRoot]();
+ let a = e[r.$getParent]();
+ for (; a && a !== t; ) {
+ if (a.font) {
+ h = a.font;
+ break;
+ }
+ a = a[r.$getParent]();
+ }
+ }
+ const u = (e.w || t.width) - s,
+ d = e[r.$globalData].fontFinder;
+ if (
+ e.value.exData &&
+ e.value.exData[r.$content] &&
+ "text/html" === e.value.exData.contentType
+ ) {
+ const t = layoutText(e.value.exData[r.$content], h, l, c, d, u);
+ n = t.width;
+ a = t.height;
+ i = t.isBroken;
+ } else {
+ const t = e.value[r.$text]();
+ if (t) {
+ const e = layoutText(t, h, l, c, d, u);
+ n = e.width;
+ a = e.height;
+ i = e.isBroken;
+ }
+ }
+ null === n || e.w || (n += s);
+ null === a || e.h || (a += o);
+ }
+ return { w: n, h: a, isBroken: i };
+ };
+ t.measureToString = measureToString;
+ t.setAccess = function setAccess(e, t) {
+ switch (e.access) {
+ case "nonInteractive":
+ t.push("xfaNonInteractive");
+ break;
+ case "readOnly":
+ t.push("xfaReadOnly");
+ break;
+ case "protected":
+ t.push("xfaDisabled");
+ }
+ };
+ t.setFontFamily = function setFontFamily(e, t, a, r) {
+ if (!a) {
+ delete r.fontFamily;
+ return;
+ }
+ const n = (0, i.stripQuotes)(e.typeface);
+ r.fontFamily = `"${n}"`;
+ const o = a.find(n);
+ if (o) {
+ const { fontFamily: a } = o.regular.cssFontInfo;
+ a !== n && (r.fontFamily = `"${a}"`);
+ const i = getCurrentPara(t);
+ if (i && "" !== i.lineHeight) return;
+ if (r.lineHeight) return;
+ const c = (0, s.selectFont)(e, o);
+ c && (r.lineHeight = Math.max(1.2, c.lineHeight));
+ }
+ };
+ t.setMinMaxDimensions = function setMinMaxDimensions(e, t) {
+ if ("position" === e[r.$getSubformParent]().layout) {
+ e.minW > 0 && (t.minWidth = measureToString(e.minW));
+ e.maxW > 0 && (t.maxWidth = measureToString(e.maxW));
+ e.minH > 0 && (t.minHeight = measureToString(e.minH));
+ e.maxH > 0 && (t.maxHeight = measureToString(e.maxH));
+ }
+ };
+ t.setPara = function setPara(e, t, a) {
+ if (a.attributes.class?.includes("xfaRich")) {
+ if (t) {
+ "" === e.h && (t.height = "auto");
+ "" === e.w && (t.width = "auto");
+ }
+ const n = getCurrentPara(e);
+ if (n) {
+ const e = a.attributes.style;
+ e.display = "flex";
+ e.flexDirection = "column";
+ switch (n.vAlign) {
+ case "top":
+ e.justifyContent = "start";
+ break;
+ case "bottom":
+ e.justifyContent = "end";
+ break;
+ case "middle":
+ e.justifyContent = "center";
+ }
+ const t = n[r.$toStyle]();
+ for (const [a, r] of Object.entries(t)) a in e || (e[a] = r);
+ }
+ }
+ };
+ t.toStyle = function toStyle(e, ...t) {
+ const a = Object.create(null);
+ for (const i of t) {
+ const t = e[i];
+ if (null !== t)
+ if (l.hasOwnProperty(i)) l[i](e, a);
+ else if (t instanceof c.XFAObject) {
+ const e = t[r.$toStyle]();
+ e
+ ? Object.assign(a, e)
+ : (0, n.warn)(
+ `(DEBUG) - XFA - style for ${i} not implemented yet`,
+ );
+ }
+ }
+ return a;
+ };
+ var r = a(78),
+ n = a(2),
+ i = a(84),
+ s = a(85),
+ o = a(86),
+ c = a(87);
+ function measureToString(e) {
+ return "string" == typeof e
+ ? "0px"
+ : Number.isInteger(e)
+ ? `${e}px`
+ : `${e.toFixed(2)}px`;
+ }
+ const l = {
+ anchorType(e, t) {
+ const a = e[r.$getSubformParent]();
+ if (a && (!a.layout || "position" === a.layout)) {
+ "transform" in t || (t.transform = "");
+ switch (e.anchorType) {
+ case "bottomCenter":
+ t.transform += "translate(-50%, -100%)";
+ break;
+ case "bottomLeft":
+ t.transform += "translate(0,-100%)";
+ break;
+ case "bottomRight":
+ t.transform += "translate(-100%,-100%)";
+ break;
+ case "middleCenter":
+ t.transform += "translate(-50%,-50%)";
+ break;
+ case "middleLeft":
+ t.transform += "translate(0,-50%)";
+ break;
+ case "middleRight":
+ t.transform += "translate(-100%,-50%)";
+ break;
+ case "topCenter":
+ t.transform += "translate(-50%,0)";
+ break;
+ case "topRight":
+ t.transform += "translate(-100%,0)";
+ }
+ }
+ },
+ dimensions(e, t) {
+ const a = e[r.$getSubformParent]();
+ let n = e.w;
+ const i = e.h;
+ if (a.layout?.includes("row")) {
+ const t = a[r.$extra],
+ i = e.colSpan;
+ let s;
+ if (-1 === i) {
+ s = t.columnWidths
+ .slice(t.currentColumn)
+ .reduce((e, t) => e + t, 0);
+ t.currentColumn = 0;
+ } else {
+ s = t.columnWidths
+ .slice(t.currentColumn, t.currentColumn + i)
+ .reduce((e, t) => e + t, 0);
+ t.currentColumn =
+ (t.currentColumn + e.colSpan) % t.columnWidths.length;
+ }
+ isNaN(s) || (n = e.w = s);
+ }
+ t.width = "" !== n ? measureToString(n) : "auto";
+ t.height = "" !== i ? measureToString(i) : "auto";
+ },
+ position(e, t) {
+ const a = e[r.$getSubformParent]();
+ if (!a?.layout || "position" === a.layout) {
+ t.position = "absolute";
+ t.left = measureToString(e.x);
+ t.top = measureToString(e.y);
+ }
+ },
+ rotate(e, t) {
+ if (e.rotate) {
+ "transform" in t || (t.transform = "");
+ t.transform += `rotate(-${e.rotate}deg)`;
+ t.transformOrigin = "top left";
+ }
+ },
+ presence(e, t) {
+ switch (e.presence) {
+ case "invisible":
+ t.visibility = "hidden";
+ break;
+ case "hidden":
+ case "inactive":
+ t.display = "none";
+ }
+ },
+ hAlign(e, t) {
+ if ("para" === e[r.$nodeName])
+ switch (e.hAlign) {
+ case "justifyAll":
+ t.textAlign = "justify-all";
+ break;
+ case "radix":
+ t.textAlign = "left";
+ break;
+ default:
+ t.textAlign = e.hAlign;
+ }
+ else
+ switch (e.hAlign) {
+ case "left":
+ t.alignSelf = "start";
+ break;
+ case "center":
+ t.alignSelf = "center";
+ break;
+ case "right":
+ t.alignSelf = "end";
+ }
+ },
+ margin(e, t) {
+ e.margin && (t.margin = e.margin[r.$toStyle]().margin);
+ },
+ };
+ function layoutText(e, t, a, n, i, s) {
+ const c = new o.TextMeasure(t, a, n, i);
+ "string" == typeof e ? c.addString(e) : e[r.$pushGlyphs](c);
+ return c.compute(s);
+ }
+ function isPrintOnly(e) {
+ return (
+ e.relevant.length > 0 &&
+ !e.relevant[0].excluded &&
+ "print" === e.relevant[0].viewname
+ );
+ }
+ function getCurrentPara(e) {
+ const t = e[r.$getTemplateRoot]()[r.$extra].paraStack;
+ return t.length ? t.at(-1) : null;
+ }
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.HTMLResult = void 0;
+ t.getBBox = function getBBox(e) {
+ const t = -1;
+ if (!e) return { x: t, y: t, width: t, height: t };
+ const a = e
+ .trim()
+ .split(/\s*,\s*/)
+ .map((e) => getMeasurement(e, "-1"));
+ if (a.length < 4 || a[2] < 0 || a[3] < 0)
+ return { x: t, y: t, width: t, height: t };
+ const [r, n, i, s] = a;
+ return { x: r, y: n, width: i, height: s };
+ };
+ t.getColor = function getColor(e, t = [0, 0, 0]) {
+ let [a, r, n] = t;
+ if (!e) return { r: a, g: r, b: n };
+ const i = e
+ .trim()
+ .split(/\s*,\s*/)
+ .map((e) => Math.min(Math.max(0, parseInt(e.trim(), 10)), 255))
+ .map((e) => (isNaN(e) ? 0 : e));
+ if (i.length < 3) return { r: a, g: r, b: n };
+ [a, r, n] = i;
+ return { r: a, g: r, b: n };
+ };
+ t.getFloat = function getFloat({
+ data: e,
+ defaultValue: t,
+ validate: a,
+ }) {
+ if (!e) return t;
+ e = e.trim();
+ const r = parseFloat(e);
+ if (!isNaN(r) && a(r)) return r;
+ return t;
+ };
+ t.getInteger = function getInteger({
+ data: e,
+ defaultValue: t,
+ validate: a,
+ }) {
+ if (!e) return t;
+ e = e.trim();
+ const r = parseInt(e, 10);
+ if (!isNaN(r) && a(r)) return r;
+ return t;
+ };
+ t.getKeyword = getKeyword;
+ t.getMeasurement = getMeasurement;
+ t.getRatio = function getRatio(e) {
+ if (!e) return { num: 1, den: 1 };
+ const t = e
+ .trim()
+ .split(/\s*:\s*/)
+ .map((e) => parseFloat(e))
+ .filter((e) => !isNaN(e));
+ 1 === t.length && t.push(1);
+ if (0 === t.length) return { num: 1, den: 1 };
+ const [a, r] = t;
+ return { num: a, den: r };
+ };
+ t.getRelevant = function getRelevant(e) {
+ if (!e) return [];
+ return e
+ .trim()
+ .split(/\s+/)
+ .map((e) => ({
+ excluded: "-" === e[0],
+ viewname: e.substring(1),
+ }));
+ };
+ t.getStringOption = function getStringOption(e, t) {
+ return getKeyword({
+ data: e,
+ defaultValue: t[0],
+ validate: (e) => t.includes(e),
+ });
+ };
+ t.stripQuotes = function stripQuotes(e) {
+ if (e.startsWith("'") || e.startsWith('"')) return e.slice(1, -1);
+ return e;
+ };
+ var r = a(2);
+ const n = {
+ pt: (e) => e,
+ cm: (e) => (e / 2.54) * 72,
+ mm: (e) => (e / 25.4) * 72,
+ in: (e) => 72 * e,
+ px: (e) => e,
+ },
+ i = /([+-]?\d+\.?\d*)(.*)/;
+ function getKeyword({ data: e, defaultValue: t, validate: a }) {
+ return e && a((e = e.trim())) ? e : t;
+ }
+ function getMeasurement(e, t = "0") {
+ t ||= "0";
+ if (!e) return getMeasurement(t);
+ const a = e.trim().match(i);
+ if (!a) return getMeasurement(t);
+ const [, r, s] = a,
+ o = parseFloat(r);
+ if (isNaN(o)) return getMeasurement(t);
+ if (0 === o) return 0;
+ const c = n[s];
+ return c ? c(o) : o;
+ }
+ class HTMLResult {
+ static get FAILURE() {
+ return (0, r.shadow)(
+ this,
+ "FAILURE",
+ new HTMLResult(!1, null, null, null),
+ );
+ }
+ static get EMPTY() {
+ return (0, r.shadow)(
+ this,
+ "EMPTY",
+ new HTMLResult(!0, null, null, null),
+ );
+ }
+ constructor(e, t, a, r) {
+ this.success = e;
+ this.html = t;
+ this.bbox = a;
+ this.breakNode = r;
+ }
+ isBreak() {
+ return !!this.breakNode;
+ }
+ static breakNode(e) {
+ return new HTMLResult(!1, null, null, e);
+ }
+ static success(e, t = null) {
+ return new HTMLResult(!0, e, t, null);
+ }
+ }
+ t.HTMLResult = HTMLResult;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.FontFinder = void 0;
+ t.getMetrics = function getMetrics(e, t = !1) {
+ let a = null;
+ if (e) {
+ const t = (0, n.stripQuotes)(e.typeface),
+ i = e[r.$globalData].fontFinder.find(t);
+ a = selectFont(e, i);
+ }
+ if (!a) return { lineHeight: 12, lineGap: 2, lineNoGap: 10 };
+ const i = e.size || 10,
+ s = a.lineHeight ? Math.max(t ? 0 : 1.2, a.lineHeight) : 1.2,
+ o = void 0 === a.lineGap ? 0.2 : a.lineGap;
+ return {
+ lineHeight: s * i,
+ lineGap: o * i,
+ lineNoGap: Math.max(1, s - o) * i,
+ };
+ };
+ t.selectFont = selectFont;
+ var r = a(78),
+ n = a(84),
+ i = a(2);
+ t.FontFinder = class FontFinder {
+ constructor(e) {
+ this.fonts = new Map();
+ this.cache = new Map();
+ this.warned = new Set();
+ this.defaultFont = null;
+ this.add(e);
+ }
+ add(e, t = null) {
+ for (const t of e) this.addPdfFont(t);
+ for (const e of this.fonts.values())
+ e.regular || (e.regular = e.italic || e.bold || e.bolditalic);
+ if (!t || 0 === t.size) return;
+ const a = this.fonts.get("PdfJS-Fallback-PdfJS-XFA");
+ for (const e of t) this.fonts.set(e, a);
+ }
+ addPdfFont(e) {
+ const t = e.cssFontInfo,
+ a = t.fontFamily;
+ let r = this.fonts.get(a);
+ if (!r) {
+ r = Object.create(null);
+ this.fonts.set(a, r);
+ this.defaultFont || (this.defaultFont = r);
+ }
+ let n = "";
+ const i = parseFloat(t.fontWeight);
+ 0 !== parseFloat(t.italicAngle)
+ ? (n = i >= 700 ? "bolditalic" : "italic")
+ : i >= 700 && (n = "bold");
+ if (!n) {
+ (e.name.includes("Bold") || e.psName?.includes("Bold")) &&
+ (n = "bold");
+ (e.name.includes("Italic") ||
+ e.name.endsWith("It") ||
+ e.psName?.includes("Italic") ||
+ e.psName?.endsWith("It")) &&
+ (n += "italic");
+ }
+ n || (n = "regular");
+ r[n] = e;
+ }
+ getDefault() {
+ return this.defaultFont;
+ }
+ find(e, t = !0) {
+ let a = this.fonts.get(e) || this.cache.get(e);
+ if (a) return a;
+ const r = /,|-|_| |bolditalic|bold|italic|regular|it/gi;
+ let n = e.replaceAll(r, "");
+ a = this.fonts.get(n);
+ if (a) {
+ this.cache.set(e, a);
+ return a;
+ }
+ n = n.toLowerCase();
+ const s = [];
+ for (const [e, t] of this.fonts.entries())
+ e.replaceAll(r, "").toLowerCase().startsWith(n) && s.push(t);
+ if (0 === s.length)
+ for (const [, e] of this.fonts.entries())
+ e.regular.name
+ ?.replaceAll(r, "")
+ .toLowerCase()
+ .startsWith(n) && s.push(e);
+ if (0 === s.length) {
+ n = n.replaceAll(/psmt|mt/gi, "");
+ for (const [e, t] of this.fonts.entries())
+ e.replaceAll(r, "").toLowerCase().startsWith(n) && s.push(t);
+ }
+ if (0 === s.length)
+ for (const e of this.fonts.values())
+ e.regular.name
+ ?.replaceAll(r, "")
+ .toLowerCase()
+ .startsWith(n) && s.push(e);
+ if (s.length >= 1) {
+ 1 !== s.length &&
+ t &&
+ (0, i.warn)(
+ `XFA - Too many choices to guess the correct font: ${e}`,
+ );
+ this.cache.set(e, s[0]);
+ return s[0];
+ }
+ if (t && !this.warned.has(e)) {
+ this.warned.add(e);
+ (0, i.warn)(`XFA - Cannot find the font: ${e}`);
+ }
+ return null;
+ }
+ };
+ function selectFont(e, t) {
+ return "italic" === e.posture
+ ? "bold" === e.weight
+ ? t.bolditalic
+ : t.italic
+ : "bold" === e.weight
+ ? t.bold
+ : t.regular;
+ }
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.TextMeasure = void 0;
+ var r = a(85);
+ class FontInfo {
+ constructor(e, t, a, n) {
+ this.lineHeight = a;
+ this.paraMargin = t || { top: 0, bottom: 0, left: 0, right: 0 };
+ if (!e) {
+ [this.pdfFont, this.xfaFont] = this.defaultFont(n);
+ return;
+ }
+ this.xfaFont = {
+ typeface: e.typeface,
+ posture: e.posture,
+ weight: e.weight,
+ size: e.size,
+ letterSpacing: e.letterSpacing,
+ };
+ const i = n.find(e.typeface);
+ if (i) {
+ this.pdfFont = (0, r.selectFont)(e, i);
+ this.pdfFont ||
+ ([this.pdfFont, this.xfaFont] = this.defaultFont(n));
+ } else [this.pdfFont, this.xfaFont] = this.defaultFont(n);
+ }
+ defaultFont(e) {
+ const t =
+ e.find("Helvetica", !1) ||
+ e.find("Myriad Pro", !1) ||
+ e.find("Arial", !1) ||
+ e.getDefault();
+ if (t?.regular) {
+ const e = t.regular;
+ return [
+ e,
+ {
+ typeface: e.cssFontInfo.fontFamily,
+ posture: "normal",
+ weight: "normal",
+ size: 10,
+ letterSpacing: 0,
+ },
+ ];
+ }
+ return [
+ null,
+ {
+ typeface: "Courier",
+ posture: "normal",
+ weight: "normal",
+ size: 10,
+ letterSpacing: 0,
+ },
+ ];
+ }
+ }
+ class FontSelector {
+ constructor(e, t, a, r) {
+ this.fontFinder = r;
+ this.stack = [new FontInfo(e, t, a, r)];
+ }
+ pushData(e, t, a) {
+ const r = this.stack.at(-1);
+ for (const t of [
+ "typeface",
+ "posture",
+ "weight",
+ "size",
+ "letterSpacing",
+ ])
+ e[t] || (e[t] = r.xfaFont[t]);
+ for (const e of ["top", "bottom", "left", "right"])
+ isNaN(t[e]) && (t[e] = r.paraMargin[e]);
+ const n = new FontInfo(e, t, a || r.lineHeight, this.fontFinder);
+ n.pdfFont || (n.pdfFont = r.pdfFont);
+ this.stack.push(n);
+ }
+ popFont() {
+ this.stack.pop();
+ }
+ topFont() {
+ return this.stack.at(-1);
+ }
+ }
+ t.TextMeasure = class TextMeasure {
+ constructor(e, t, a, r) {
+ this.glyphs = [];
+ this.fontSelector = new FontSelector(e, t, a, r);
+ this.extraHeight = 0;
+ }
+ pushData(e, t, a) {
+ this.fontSelector.pushData(e, t, a);
+ }
+ popFont(e) {
+ return this.fontSelector.popFont();
+ }
+ addPara() {
+ const e = this.fontSelector.topFont();
+ this.extraHeight += e.paraMargin.top + e.paraMargin.bottom;
+ }
+ addString(e) {
+ if (!e) return;
+ const t = this.fontSelector.topFont(),
+ a = t.xfaFont.size;
+ if (t.pdfFont) {
+ const r = t.xfaFont.letterSpacing,
+ n = t.pdfFont,
+ i = n.lineHeight || 1.2,
+ s = t.lineHeight || Math.max(1.2, i) * a,
+ o = i - (void 0 === n.lineGap ? 0.2 : n.lineGap),
+ c = Math.max(1, o) * a,
+ l = a / 1e3,
+ h = n.defaultWidth || n.charsToGlyphs(" ")[0].width;
+ for (const t of e.split(/[\u2029\n]/)) {
+ const e = n.encodeString(t).join(""),
+ a = n.charsToGlyphs(e);
+ for (const e of a) {
+ const t = e.width || h;
+ this.glyphs.push([t * l + r, s, c, e.unicode, !1]);
+ }
+ this.glyphs.push([0, 0, 0, "\n", !0]);
+ }
+ this.glyphs.pop();
+ } else {
+ for (const t of e.split(/[\u2029\n]/)) {
+ for (const e of t.split(""))
+ this.glyphs.push([a, 1.2 * a, a, e, !1]);
+ this.glyphs.push([0, 0, 0, "\n", !0]);
+ }
+ this.glyphs.pop();
+ }
+ }
+ compute(e) {
+ let t = -1,
+ a = 0,
+ r = 0,
+ n = 0,
+ i = 0,
+ s = 0,
+ o = !1,
+ c = !0;
+ for (let l = 0, h = this.glyphs.length; l < h; l++) {
+ const [h, u, d, f, g] = this.glyphs[l],
+ p = " " === f,
+ m = c ? d : u;
+ if (g) {
+ r = Math.max(r, i);
+ i = 0;
+ n += s;
+ s = m;
+ t = -1;
+ a = 0;
+ c = !1;
+ } else if (p)
+ if (i + h > e) {
+ r = Math.max(r, i);
+ i = 0;
+ n += s;
+ s = m;
+ t = -1;
+ a = 0;
+ o = !0;
+ c = !1;
+ } else {
+ s = Math.max(m, s);
+ a = i;
+ i += h;
+ t = l;
+ }
+ else if (i + h > e) {
+ n += s;
+ s = m;
+ if (-1 !== t) {
+ l = t;
+ r = Math.max(r, a);
+ i = 0;
+ t = -1;
+ a = 0;
+ } else {
+ r = Math.max(r, i);
+ i = h;
+ }
+ o = !0;
+ c = !1;
+ } else {
+ i += h;
+ s = Math.max(m, s);
+ }
+ }
+ r = Math.max(r, i);
+ n += s + this.extraHeight;
+ return { width: 1.02 * r, height: n, isBroken: o };
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.XmlObject =
+ t.XFAObjectArray =
+ t.XFAObject =
+ t.XFAAttribute =
+ t.StringObject =
+ t.OptionObject =
+ t.Option10 =
+ t.Option01 =
+ t.IntegerObject =
+ t.ContentObject =
+ void 0;
+ var r = a(78),
+ n = a(84),
+ i = a(2),
+ s = a(3),
+ o = a(81),
+ c = a(88);
+ const l = Symbol(),
+ h = Symbol(),
+ u = Symbol(),
+ d = Symbol("_children"),
+ f = Symbol(),
+ g = Symbol(),
+ p = Symbol(),
+ m = Symbol(),
+ b = Symbol(),
+ y = Symbol(),
+ w = Symbol(),
+ S = Symbol(),
+ x = Symbol(),
+ C = Symbol("parent"),
+ k = Symbol(),
+ v = Symbol(),
+ F = Symbol();
+ let O = 0;
+ const T = o.NamespaceIds.datasets.id;
+ class XFAObject {
+ constructor(e, t, a = !1) {
+ this[r.$namespaceId] = e;
+ this[r.$nodeName] = t;
+ this[w] = a;
+ this[C] = null;
+ this[d] = [];
+ this[r.$uid] = `${t}${O++}`;
+ this[r.$globalData] = null;
+ }
+ get isXFAObject() {
+ return !0;
+ }
+ get isXFAObjectArray() {
+ return !1;
+ }
+ createNodes(e) {
+ let t = this,
+ a = null;
+ for (const { name: n, index: i } of e) {
+ for (let e = 0, s = isFinite(i) ? i : 0; e <= s; e++) {
+ const e = t[r.$namespaceId] === T ? -1 : t[r.$namespaceId];
+ a = new XmlObject(e, n);
+ t[r.$appendChild](a);
+ }
+ t = a;
+ }
+ return a;
+ }
+ [r.$onChild](e) {
+ if (!this[w] || !this[r.$onChildCheck](e)) return !1;
+ const t = e[r.$nodeName],
+ a = this[t];
+ if (!(a instanceof XFAObjectArray)) {
+ null !== a && this[r.$removeChild](a);
+ this[t] = e;
+ this[r.$appendChild](e);
+ return !0;
+ }
+ if (a.push(e)) {
+ this[r.$appendChild](e);
+ return !0;
+ }
+ let n = "";
+ this.id
+ ? (n = ` (id: ${this.id})`)
+ : this.name && (n = ` (name: ${this.name} ${this.h.value})`);
+ (0, i.warn)(
+ `XFA - node "${
+ this[r.$nodeName]
+ }"${n} has already enough "${t}"!`,
+ );
+ return !1;
+ }
+ [r.$onChildCheck](e) {
+ return (
+ this.hasOwnProperty(e[r.$nodeName]) &&
+ e[r.$namespaceId] === this[r.$namespaceId]
+ );
+ }
+ [r.$isNsAgnostic]() {
+ return !1;
+ }
+ [r.$acceptWhitespace]() {
+ return !1;
+ }
+ [r.$isCDATAXml]() {
+ return !1;
+ }
+ [r.$isBindable]() {
+ return !1;
+ }
+ [r.$popPara]() {
+ this.para && this[r.$getTemplateRoot]()[r.$extra].paraStack.pop();
+ }
+ [r.$pushPara]() {
+ this[r.$getTemplateRoot]()[r.$extra].paraStack.push(this.para);
+ }
+ [r.$setId](e) {
+ this.id &&
+ this[r.$namespaceId] === o.NamespaceIds.template.id &&
+ e.set(this.id, this);
+ }
+ [r.$getTemplateRoot]() {
+ return this[r.$globalData].template;
+ }
+ [r.$isSplittable]() {
+ return !1;
+ }
+ [r.$isThereMoreWidth]() {
+ return !1;
+ }
+ [r.$appendChild](e) {
+ e[C] = this;
+ this[d].push(e);
+ !e[r.$globalData] &&
+ this[r.$globalData] &&
+ (e[r.$globalData] = this[r.$globalData]);
+ }
+ [r.$removeChild](e) {
+ const t = this[d].indexOf(e);
+ this[d].splice(t, 1);
+ }
+ [r.$hasSettableValue]() {
+ return this.hasOwnProperty("value");
+ }
+ [r.$setValue](e) {}
+ [r.$onText](e) {}
+ [r.$finalize]() {}
+ [r.$clean](e) {
+ delete this[w];
+ if (this[r.$cleanup]) {
+ e.clean(this[r.$cleanup]);
+ delete this[r.$cleanup];
+ }
+ }
+ [r.$indexOf](e) {
+ return this[d].indexOf(e);
+ }
+ [r.$insertAt](e, t) {
+ t[C] = this;
+ this[d].splice(e, 0, t);
+ !t[r.$globalData] &&
+ this[r.$globalData] &&
+ (t[r.$globalData] = this[r.$globalData]);
+ }
+ [r.$isTransparent]() {
+ return !this.name;
+ }
+ [r.$lastAttribute]() {
+ return "";
+ }
+ [r.$text]() {
+ return 0 === this[d].length
+ ? this[r.$content]
+ : this[d].map((e) => e[r.$text]()).join("");
+ }
+ get [u]() {
+ const e = Object.getPrototypeOf(this);
+ if (!e._attributes) {
+ const t = (e._attributes = new Set());
+ for (const e of Object.getOwnPropertyNames(this)) {
+ if (
+ null === this[e] ||
+ this[e] instanceof XFAObject ||
+ this[e] instanceof XFAObjectArray
+ )
+ break;
+ t.add(e);
+ }
+ }
+ return (0, i.shadow)(this, u, e._attributes);
+ }
+ [r.$isDescendent](e) {
+ let t = this;
+ for (; t; ) {
+ if (t === e) return !0;
+ t = t[r.$getParent]();
+ }
+ return !1;
+ }
+ [r.$getParent]() {
+ return this[C];
+ }
+ [r.$getSubformParent]() {
+ return this[r.$getParent]();
+ }
+ [r.$getChildren](e = null) {
+ return e ? this[e] : this[d];
+ }
+ [r.$dump]() {
+ const e = Object.create(null);
+ this[r.$content] && (e.$content = this[r.$content]);
+ for (const t of Object.getOwnPropertyNames(this)) {
+ const a = this[t];
+ null !== a &&
+ (a instanceof XFAObject
+ ? (e[t] = a[r.$dump]())
+ : a instanceof XFAObjectArray
+ ? a.isEmpty() || (e[t] = a.dump())
+ : (e[t] = a));
+ }
+ return e;
+ }
+ [r.$toStyle]() {
+ return null;
+ }
+ [r.$toHTML]() {
+ return n.HTMLResult.EMPTY;
+ }
+ *[r.$getContainedChildren]() {
+ for (const e of this[r.$getChildren]()) yield e;
+ }
+ *[m](e, t) {
+ for (const a of this[r.$getContainedChildren]())
+ if (!e || t === e.has(a[r.$nodeName])) {
+ const e = this[r.$getAvailableSpace](),
+ t = a[r.$toHTML](e);
+ t.success || (this[r.$extra].failingNode = a);
+ yield t;
+ }
+ }
+ [r.$flushHTML]() {
+ return null;
+ }
+ [r.$addHTML](e, t) {
+ this[r.$extra].children.push(e);
+ }
+ [r.$getAvailableSpace]() {}
+ [r.$childrenToHTML]({ filter: e = null, include: t = !0 }) {
+ if (this[r.$extra].generator) {
+ const e = this[r.$getAvailableSpace](),
+ t = this[r.$extra].failingNode[r.$toHTML](e);
+ if (!t.success) return t;
+ t.html && this[r.$addHTML](t.html, t.bbox);
+ delete this[r.$extra].failingNode;
+ } else this[r.$extra].generator = this[m](e, t);
+ for (;;) {
+ const e = this[r.$extra].generator.next();
+ if (e.done) break;
+ const t = e.value;
+ if (!t.success) return t;
+ t.html && this[r.$addHTML](t.html, t.bbox);
+ }
+ this[r.$extra].generator = null;
+ return n.HTMLResult.EMPTY;
+ }
+ [r.$setSetAttributes](e) {
+ this[v] = new Set(Object.keys(e));
+ }
+ [y](e) {
+ const t = this[u],
+ a = this[v];
+ return [...e].filter((e) => t.has(e) && !a.has(e));
+ }
+ [r.$resolvePrototypes](e, t = new Set()) {
+ for (const a of this[d]) a[k](e, t);
+ }
+ [k](e, t) {
+ const a = this[b](e, t);
+ a ? this[l](a, e, t) : this[r.$resolvePrototypes](e, t);
+ }
+ [b](e, t) {
+ const { use: a, usehref: n } = this;
+ if (!a && !n) return null;
+ let s = null,
+ o = null,
+ h = null,
+ u = a;
+ if (n) {
+ u = n;
+ n.startsWith("#som(") && n.endsWith(")")
+ ? (o = n.slice(5, -1))
+ : n.startsWith(".#som(") && n.endsWith(")")
+ ? (o = n.slice(6, -1))
+ : n.startsWith("#")
+ ? (h = n.slice(1))
+ : n.startsWith(".#") && (h = n.slice(2));
+ } else a.startsWith("#") ? (h = a.slice(1)) : (o = a);
+ this.use = this.usehref = "";
+ if (h) s = e.get(h);
+ else {
+ s = (0, c.searchNode)(e.get(r.$root), this, o, !0, !1);
+ s && (s = s[0]);
+ }
+ if (!s) {
+ (0, i.warn)(`XFA - Invalid prototype reference: ${u}.`);
+ return null;
+ }
+ if (s[r.$nodeName] !== this[r.$nodeName]) {
+ (0, i.warn)(
+ `XFA - Incompatible prototype: ${s[r.$nodeName]} !== ${
+ this[r.$nodeName]
+ }.`,
+ );
+ return null;
+ }
+ if (t.has(s)) {
+ (0, i.warn)("XFA - Cycle detected in prototypes use.");
+ return null;
+ }
+ t.add(s);
+ const d = s[b](e, t);
+ d && s[l](d, e, t);
+ s[r.$resolvePrototypes](e, t);
+ t.delete(s);
+ return s;
+ }
+ [l](e, t, a) {
+ if (a.has(e)) {
+ (0, i.warn)("XFA - Cycle detected in prototypes use.");
+ return;
+ }
+ !this[r.$content] &&
+ e[r.$content] &&
+ (this[r.$content] = e[r.$content]);
+ new Set(a).add(e);
+ for (const t of this[y](e[v])) {
+ this[t] = e[t];
+ this[v] && this[v].add(t);
+ }
+ for (const n of Object.getOwnPropertyNames(this)) {
+ if (this[u].has(n)) continue;
+ const i = this[n],
+ s = e[n];
+ if (i instanceof XFAObjectArray) {
+ for (const e of i[d]) e[k](t, a);
+ for (let n = i[d].length, o = s[d].length; n < o; n++) {
+ const s = e[d][n][r.$clone]();
+ if (!i.push(s)) break;
+ s[C] = this;
+ this[d].push(s);
+ s[k](t, a);
+ }
+ } else if (null === i) {
+ if (null !== s) {
+ const e = s[r.$clone]();
+ e[C] = this;
+ this[n] = e;
+ this[d].push(e);
+ e[k](t, a);
+ }
+ } else {
+ i[r.$resolvePrototypes](t, a);
+ s && i[l](s, t, a);
+ }
+ }
+ }
+ static [f](e) {
+ return Array.isArray(e)
+ ? e.map((e) => XFAObject[f](e))
+ : "object" == typeof e && null !== e
+ ? Object.assign({}, e)
+ : e;
+ }
+ [r.$clone]() {
+ const e = Object.create(Object.getPrototypeOf(this));
+ for (const t of Object.getOwnPropertySymbols(this))
+ try {
+ e[t] = this[t];
+ } catch {
+ (0, i.shadow)(e, t, this[t]);
+ }
+ e[r.$uid] = `${e[r.$nodeName]}${O++}`;
+ e[d] = [];
+ for (const t of Object.getOwnPropertyNames(this)) {
+ if (this[u].has(t)) {
+ e[t] = XFAObject[f](this[t]);
+ continue;
+ }
+ const a = this[t];
+ e[t] =
+ a instanceof XFAObjectArray ? new XFAObjectArray(a[S]) : null;
+ }
+ for (const t of this[d]) {
+ const a = t[r.$nodeName],
+ n = t[r.$clone]();
+ e[d].push(n);
+ n[C] = e;
+ null === e[a] ? (e[a] = n) : e[a][d].push(n);
+ }
+ return e;
+ }
+ [r.$getChildren](e = null) {
+ return e ? this[d].filter((t) => t[r.$nodeName] === e) : this[d];
+ }
+ [r.$getChildrenByClass](e) {
+ return this[e];
+ }
+ [r.$getChildrenByName](e, t, a = !0) {
+ return Array.from(this[r.$getChildrenByNameIt](e, t, a));
+ }
+ *[r.$getChildrenByNameIt](e, t, a = !0) {
+ if ("parent" !== e) {
+ for (const a of this[d]) {
+ a[r.$nodeName] === e && (yield a);
+ a.name === e && (yield a);
+ (t || a[r.$isTransparent]()) &&
+ (yield* a[r.$getChildrenByNameIt](e, t, !1));
+ }
+ a &&
+ this[u].has(e) &&
+ (yield new XFAAttribute(this, e, this[e]));
+ } else yield this[C];
+ }
+ }
+ t.XFAObject = XFAObject;
+ class XFAObjectArray {
+ constructor(e = 1 / 0) {
+ this[S] = e;
+ this[d] = [];
+ }
+ get isXFAObject() {
+ return !1;
+ }
+ get isXFAObjectArray() {
+ return !0;
+ }
+ push(e) {
+ if (this[d].length <= this[S]) {
+ this[d].push(e);
+ return !0;
+ }
+ (0, i.warn)(
+ `XFA - node "${e[r.$nodeName]}" accepts no more than ${
+ this[S]
+ } children`,
+ );
+ return !1;
+ }
+ isEmpty() {
+ return 0 === this[d].length;
+ }
+ dump() {
+ return 1 === this[d].length
+ ? this[d][0][r.$dump]()
+ : this[d].map((e) => e[r.$dump]());
+ }
+ [r.$clone]() {
+ const e = new XFAObjectArray(this[S]);
+ e[d] = this[d].map((e) => e[r.$clone]());
+ return e;
+ }
+ get children() {
+ return this[d];
+ }
+ clear() {
+ this[d].length = 0;
+ }
+ }
+ t.XFAObjectArray = XFAObjectArray;
+ class XFAAttribute {
+ constructor(e, t, a) {
+ this[C] = e;
+ this[r.$nodeName] = t;
+ this[r.$content] = a;
+ this[r.$consumed] = !1;
+ this[r.$uid] = "attribute" + O++;
+ }
+ [r.$getParent]() {
+ return this[C];
+ }
+ [r.$isDataValue]() {
+ return !0;
+ }
+ [r.$getDataValue]() {
+ return this[r.$content].trim();
+ }
+ [r.$setValue](e) {
+ e = e.value || "";
+ this[r.$content] = e.toString();
+ }
+ [r.$text]() {
+ return this[r.$content];
+ }
+ [r.$isDescendent](e) {
+ return this[C] === e || this[C][r.$isDescendent](e);
+ }
+ }
+ t.XFAAttribute = XFAAttribute;
+ class XmlObject extends XFAObject {
+ constructor(e, t, a = {}) {
+ super(e, t);
+ this[r.$content] = "";
+ this[g] = null;
+ if ("#text" !== t) {
+ const e = new Map();
+ this[h] = e;
+ for (const [t, r] of Object.entries(a))
+ e.set(t, new XFAAttribute(this, t, r));
+ if (a.hasOwnProperty(r.$nsAttributes)) {
+ const e = a[r.$nsAttributes].xfa.dataNode;
+ void 0 !== e &&
+ ("dataGroup" === e
+ ? (this[g] = !1)
+ : "dataValue" === e && (this[g] = !0));
+ }
+ }
+ this[r.$consumed] = !1;
+ }
+ [r.$toString](e) {
+ const t = this[r.$nodeName];
+ if ("#text" === t) {
+ e.push((0, s.encodeToXmlString)(this[r.$content]));
+ return;
+ }
+ const a = (0, i.utf8StringToString)(t),
+ n = this[r.$namespaceId] === T ? "xfa:" : "";
+ e.push(`<${n}${a}`);
+ for (const [t, a] of this[h].entries()) {
+ const n = (0, i.utf8StringToString)(t);
+ e.push(` ${n}="${(0, s.encodeToXmlString)(a[r.$content])}"`);
+ }
+ null !== this[g] &&
+ (this[g]
+ ? e.push(' xfa:dataNode="dataValue"')
+ : e.push(' xfa:dataNode="dataGroup"'));
+ if (this[r.$content] || 0 !== this[d].length) {
+ e.push(">");
+ if (this[r.$content])
+ "string" == typeof this[r.$content]
+ ? e.push((0, s.encodeToXmlString)(this[r.$content]))
+ : this[r.$content][r.$toString](e);
+ else for (const t of this[d]) t[r.$toString](e);
+ e.push(`${n}${a}>`);
+ } else e.push("/>");
+ }
+ [r.$onChild](e) {
+ if (this[r.$content]) {
+ const e = new XmlObject(this[r.$namespaceId], "#text");
+ this[r.$appendChild](e);
+ e[r.$content] = this[r.$content];
+ this[r.$content] = "";
+ }
+ this[r.$appendChild](e);
+ return !0;
+ }
+ [r.$onText](e) {
+ this[r.$content] += e;
+ }
+ [r.$finalize]() {
+ if (this[r.$content] && this[d].length > 0) {
+ const e = new XmlObject(this[r.$namespaceId], "#text");
+ this[r.$appendChild](e);
+ e[r.$content] = this[r.$content];
+ delete this[r.$content];
+ }
+ }
+ [r.$toHTML]() {
+ return "#text" === this[r.$nodeName]
+ ? n.HTMLResult.success({
+ name: "#text",
+ value: this[r.$content],
+ })
+ : n.HTMLResult.EMPTY;
+ }
+ [r.$getChildren](e = null) {
+ return e ? this[d].filter((t) => t[r.$nodeName] === e) : this[d];
+ }
+ [r.$getAttributes]() {
+ return this[h];
+ }
+ [r.$getChildrenByClass](e) {
+ const t = this[h].get(e);
+ return void 0 !== t ? t : this[r.$getChildren](e);
+ }
+ *[r.$getChildrenByNameIt](e, t) {
+ const a = this[h].get(e);
+ a && (yield a);
+ for (const a of this[d]) {
+ a[r.$nodeName] === e && (yield a);
+ t && (yield* a[r.$getChildrenByNameIt](e, t));
+ }
+ }
+ *[r.$getAttributeIt](e, t) {
+ const a = this[h].get(e);
+ !a || (t && a[r.$consumed]) || (yield a);
+ for (const a of this[d]) yield* a[r.$getAttributeIt](e, t);
+ }
+ *[r.$getRealChildrenByNameIt](e, t, a) {
+ for (const n of this[d]) {
+ n[r.$nodeName] !== e || (a && n[r.$consumed]) || (yield n);
+ t && (yield* n[r.$getRealChildrenByNameIt](e, t, a));
+ }
+ }
+ [r.$isDataValue]() {
+ return null === this[g]
+ ? 0 === this[d].length ||
+ this[d][0][r.$namespaceId] === o.NamespaceIds.xhtml.id
+ : this[g];
+ }
+ [r.$getDataValue]() {
+ return null === this[g]
+ ? 0 === this[d].length
+ ? this[r.$content].trim()
+ : this[d][0][r.$namespaceId] === o.NamespaceIds.xhtml.id
+ ? this[d][0][r.$text]().trim()
+ : null
+ : this[r.$content].trim();
+ }
+ [r.$setValue](e) {
+ e = e.value || "";
+ this[r.$content] = e.toString();
+ }
+ [r.$dump](e = !1) {
+ const t = Object.create(null);
+ e && (t.$ns = this[r.$namespaceId]);
+ this[r.$content] && (t.$content = this[r.$content]);
+ t.$name = this[r.$nodeName];
+ t.children = [];
+ for (const a of this[d]) t.children.push(a[r.$dump](e));
+ t.attributes = Object.create(null);
+ for (const [e, a] of this[h]) t.attributes[e] = a[r.$content];
+ return t;
+ }
+ }
+ t.XmlObject = XmlObject;
+ class ContentObject extends XFAObject {
+ constructor(e, t) {
+ super(e, t);
+ this[r.$content] = "";
+ }
+ [r.$onText](e) {
+ this[r.$content] += e;
+ }
+ [r.$finalize]() {}
+ }
+ t.ContentObject = ContentObject;
+ class OptionObject extends ContentObject {
+ constructor(e, t, a) {
+ super(e, t);
+ this[x] = a;
+ }
+ [r.$finalize]() {
+ this[r.$content] = (0, n.getKeyword)({
+ data: this[r.$content],
+ defaultValue: this[x][0],
+ validate: (e) => this[x].includes(e),
+ });
+ }
+ [r.$clean](e) {
+ super[r.$clean](e);
+ delete this[x];
+ }
+ }
+ t.OptionObject = OptionObject;
+ class StringObject extends ContentObject {
+ [r.$finalize]() {
+ this[r.$content] = this[r.$content].trim();
+ }
+ }
+ t.StringObject = StringObject;
+ class IntegerObject extends ContentObject {
+ constructor(e, t, a, r) {
+ super(e, t);
+ this[p] = a;
+ this[F] = r;
+ }
+ [r.$finalize]() {
+ this[r.$content] = (0, n.getInteger)({
+ data: this[r.$content],
+ defaultValue: this[p],
+ validate: this[F],
+ });
+ }
+ [r.$clean](e) {
+ super[r.$clean](e);
+ delete this[p];
+ delete this[F];
+ }
+ }
+ t.IntegerObject = IntegerObject;
+ t.Option01 = class Option01 extends IntegerObject {
+ constructor(e, t) {
+ super(e, t, 0, (e) => 1 === e);
+ }
+ };
+ t.Option10 = class Option10 extends IntegerObject {
+ constructor(e, t) {
+ super(e, t, 1, (e) => 0 === e);
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.createDataNode = function createDataNode(e, t, a) {
+ const i = parseExpression(a);
+ if (!i) return null;
+ if (i.some((e) => e.operator === o.dotDot)) return null;
+ const s = c.get(i[0].name);
+ let l = 0;
+ if (s) {
+ e = s(e, t);
+ l = 1;
+ } else e = t || e;
+ for (let t = i.length; l < t; l++) {
+ const { name: t, operator: a, index: s } = i[l];
+ if (!isFinite(s)) {
+ i[l].index = 0;
+ return e.createNodes(i.slice(l));
+ }
+ let c;
+ switch (a) {
+ case o.dot:
+ c = e[r.$getChildrenByName](t, !1);
+ break;
+ case o.dotDot:
+ c = e[r.$getChildrenByName](t, !0);
+ break;
+ case o.dotHash:
+ c = e[r.$getChildrenByClass](t);
+ c = c.isXFAObjectArray ? c.children : [c];
+ }
+ if (0 === c.length) return e.createNodes(i.slice(l));
+ if (!(s < c.length)) {
+ i[l].index = s - c.length;
+ return e.createNodes(i.slice(l));
+ }
+ {
+ const t = c[s];
+ if (!t.isXFAObject) {
+ (0, n.warn)("XFA - Cannot create a node.");
+ return null;
+ }
+ e = t;
+ }
+ }
+ return null;
+ };
+ t.searchNode = function searchNode(e, t, a, n = !0, i = !0) {
+ const s = parseExpression(a, n);
+ if (!s) return null;
+ const h = c.get(s[0].name);
+ let u,
+ d = 0;
+ if (h) {
+ u = !0;
+ e = [h(e, t)];
+ d = 1;
+ } else {
+ u = null === t;
+ e = [t || e];
+ }
+ for (let a = s.length; d < a; d++) {
+ const { name: a, cacheName: n, operator: c, index: h } = s[d],
+ f = [];
+ for (const t of e) {
+ if (!t.isXFAObject) continue;
+ let e, s;
+ if (i) {
+ s = l.get(t);
+ if (!s) {
+ s = new Map();
+ l.set(t, s);
+ }
+ e = s.get(n);
+ }
+ if (!e) {
+ switch (c) {
+ case o.dot:
+ e = t[r.$getChildrenByName](a, !1);
+ break;
+ case o.dotDot:
+ e = t[r.$getChildrenByName](a, !0);
+ break;
+ case o.dotHash:
+ e = t[r.$getChildrenByClass](a);
+ e = e.isXFAObjectArray ? e.children : [e];
+ }
+ i && s.set(n, e);
+ }
+ e.length > 0 && f.push(e);
+ }
+ if (0 !== f.length || u || 0 !== d)
+ e = isFinite(h)
+ ? f.filter((e) => h < e.length).map((e) => e[h])
+ : f.flat();
+ else {
+ const a = t[r.$getParent]();
+ if (!(t = a)) return null;
+ d = -1;
+ e = [t];
+ }
+ }
+ if (0 === e.length) return null;
+ return e;
+ };
+ var r = a(78),
+ n = a(2);
+ const i = /^[^.[]+/,
+ s = /^[^\]]+/,
+ o = { dot: 0, dotDot: 1, dotHash: 2, dotBracket: 3, dotParen: 4 },
+ c = new Map([
+ ["$data", (e, t) => (e.datasets ? e.datasets.data : e)],
+ [
+ "$record",
+ (e, t) =>
+ (e.datasets ? e.datasets.data : e)[r.$getChildren]()[0],
+ ],
+ ["$template", (e, t) => e.template],
+ ["$connectionSet", (e, t) => e.connectionSet],
+ ["$form", (e, t) => e.form],
+ ["$layout", (e, t) => e.layout],
+ ["$host", (e, t) => e.host],
+ ["$dataWindow", (e, t) => e.dataWindow],
+ ["$event", (e, t) => e.event],
+ ["!", (e, t) => e.datasets],
+ ["$xfa", (e, t) => e],
+ ["xfa", (e, t) => e],
+ ["$", (e, t) => t],
+ ]),
+ l = new WeakMap();
+ function parseExpression(e, t, a = !0) {
+ let r = e.match(i);
+ if (!r) return null;
+ let [c] = r;
+ const l = [
+ {
+ name: c,
+ cacheName: "." + c,
+ index: 0,
+ js: null,
+ formCalc: null,
+ operator: o.dot,
+ },
+ ];
+ let h = c.length;
+ for (; h < e.length; ) {
+ const d = h;
+ if ("[" === e.charAt(h++)) {
+ r = e.slice(h).match(s);
+ if (!r) {
+ (0, n.warn)("XFA - Invalid index in SOM expression");
+ return null;
+ }
+ l.at(-1).index =
+ "*" === (u = (u = r[0]).trim())
+ ? 1 / 0
+ : parseInt(u, 10) || 0;
+ h += r[0].length + 1;
+ continue;
+ }
+ let f;
+ switch (e.charAt(h)) {
+ case ".":
+ if (!t) return null;
+ h++;
+ f = o.dotDot;
+ break;
+ case "#":
+ h++;
+ f = o.dotHash;
+ break;
+ case "[":
+ if (a) {
+ (0, n.warn)(
+ "XFA - SOM expression contains a FormCalc subexpression which is not supported for now.",
+ );
+ return null;
+ }
+ f = o.dotBracket;
+ break;
+ case "(":
+ if (a) {
+ (0, n.warn)(
+ "XFA - SOM expression contains a JavaScript subexpression which is not supported for now.",
+ );
+ return null;
+ }
+ f = o.dotParen;
+ break;
+ default:
+ f = o.dot;
+ }
+ r = e.slice(h).match(i);
+ if (!r) break;
+ [c] = r;
+ h += c.length;
+ l.push({
+ name: c,
+ cacheName: e.slice(d, h),
+ operator: f,
+ index: 0,
+ js: null,
+ formCalc: null,
+ });
+ }
+ var u;
+ return l;
+ }
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.DataHandler = void 0;
+ var r = a(78);
+ t.DataHandler = class DataHandler {
+ constructor(e, t) {
+ this.data = t;
+ this.dataset = e.datasets || null;
+ }
+ serialize(e) {
+ const t = [[-1, this.data[r.$getChildren]()]];
+ for (; t.length > 0; ) {
+ const a = t.at(-1),
+ [n, i] = a;
+ if (n + 1 === i.length) {
+ t.pop();
+ continue;
+ }
+ const s = i[++a[0]],
+ o = e.get(s[r.$uid]);
+ if (o) s[r.$setValue](o);
+ else {
+ const t = s[r.$getAttributes]();
+ for (const a of t.values()) {
+ const t = e.get(a[r.$uid]);
+ if (t) {
+ a[r.$setValue](t);
+ break;
+ }
+ }
+ }
+ const c = s[r.$getChildren]();
+ c.length > 0 && t.push([-1, c]);
+ }
+ const a = [
+ '',
+ ];
+ if (this.dataset)
+ for (const e of this.dataset[r.$getChildren]())
+ "data" !== e[r.$nodeName] && e[r.$toString](a);
+ this.data[r.$toString](a);
+ a.push("");
+ return a.join("");
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.XFAParser = void 0;
+ var r = a(78),
+ n = a(71),
+ i = a(91),
+ s = a(2);
+ class XFAParser extends n.XMLParserBase {
+ constructor(e = null, t = !1) {
+ super();
+ this._builder = new i.Builder(e);
+ this._stack = [];
+ this._globalData = { usedTypefaces: new Set() };
+ this._ids = new Map();
+ this._current = this._builder.buildRoot(this._ids);
+ this._errorCode = n.XMLParserErrorCode.NoError;
+ this._whiteRegex = /^\s+$/;
+ this._nbsps = /\xa0+/g;
+ this._richText = t;
+ }
+ parse(e) {
+ this.parseXml(e);
+ if (this._errorCode === n.XMLParserErrorCode.NoError) {
+ this._current[r.$finalize]();
+ return this._current.element;
+ }
+ }
+ onText(e) {
+ e = e.replace(this._nbsps, (e) => e.slice(1) + " ");
+ this._richText || this._current[r.$acceptWhitespace]()
+ ? this._current[r.$onText](e, this._richText)
+ : this._whiteRegex.test(e) ||
+ this._current[r.$onText](e.trim());
+ }
+ onCdata(e) {
+ this._current[r.$onText](e);
+ }
+ _mkAttributes(e, t) {
+ let a = null,
+ n = null;
+ const i = Object.create({});
+ for (const { name: o, value: c } of e)
+ if ("xmlns" === o)
+ a
+ ? (0, s.warn)(
+ `XFA - multiple namespace definition in <${t}>`,
+ )
+ : (a = c);
+ else if (o.startsWith("xmlns:")) {
+ const e = o.substring(6);
+ n || (n = []);
+ n.push({ prefix: e, value: c });
+ } else {
+ const e = o.indexOf(":");
+ if (-1 === e) i[o] = c;
+ else {
+ let t = i[r.$nsAttributes];
+ t || (t = i[r.$nsAttributes] = Object.create(null));
+ const [a, n] = [o.slice(0, e), o.slice(e + 1)];
+ (t[a] ||= Object.create(null))[n] = c;
+ }
+ }
+ return [a, n, i];
+ }
+ _getNameAndPrefix(e, t) {
+ const a = e.indexOf(":");
+ return -1 === a
+ ? [e, null]
+ : [e.substring(a + 1), t ? "" : e.substring(0, a)];
+ }
+ onBeginElement(e, t, a) {
+ const [n, i, s] = this._mkAttributes(t, e),
+ [o, c] = this._getNameAndPrefix(
+ e,
+ this._builder.isNsAgnostic(),
+ ),
+ l = this._builder.build({
+ nsPrefix: c,
+ name: o,
+ attributes: s,
+ namespace: n,
+ prefixes: i,
+ });
+ l[r.$globalData] = this._globalData;
+ if (a) {
+ l[r.$finalize]();
+ this._current[r.$onChild](l) && l[r.$setId](this._ids);
+ l[r.$clean](this._builder);
+ } else {
+ this._stack.push(this._current);
+ this._current = l;
+ }
+ }
+ onEndElement(e) {
+ const t = this._current;
+ if (t[r.$isCDATAXml]() && "string" == typeof t[r.$content]) {
+ const e = new XFAParser();
+ e._globalData = this._globalData;
+ const a = e.parse(t[r.$content]);
+ t[r.$content] = null;
+ t[r.$onChild](a);
+ }
+ t[r.$finalize]();
+ this._current = this._stack.pop();
+ this._current[r.$onChild](t) && t[r.$setId](this._ids);
+ t[r.$clean](this._builder);
+ }
+ onError(e) {
+ this._errorCode = e;
+ }
+ }
+ t.XFAParser = XFAParser;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.Builder = void 0;
+ var r = a(81),
+ n = a(78),
+ i = a(92),
+ s = a(80),
+ o = a(101),
+ c = a(2),
+ l = a(87);
+ class Root extends l.XFAObject {
+ constructor(e) {
+ super(-1, "root", Object.create(null));
+ this.element = null;
+ this[n.$ids] = e;
+ }
+ [n.$onChild](e) {
+ this.element = e;
+ return !0;
+ }
+ [n.$finalize]() {
+ super[n.$finalize]();
+ if (this.element.template instanceof s.Template) {
+ this[n.$ids].set(n.$root, this.element);
+ this.element.template[n.$resolvePrototypes](this[n.$ids]);
+ this.element.template[n.$ids] = this[n.$ids];
+ }
+ }
+ }
+ class Empty extends l.XFAObject {
+ constructor() {
+ super(-1, "", Object.create(null));
+ }
+ [n.$onChild](e) {
+ return !1;
+ }
+ }
+ t.Builder = class Builder {
+ constructor(e = null) {
+ this._namespaceStack = [];
+ this._nsAgnosticLevel = 0;
+ this._namespacePrefixes = new Map();
+ this._namespaces = new Map();
+ this._nextNsId = Math.max(
+ ...Object.values(r.NamespaceIds).map(({ id: e }) => e),
+ );
+ this._currentNamespace =
+ e || new o.UnknownNamespace(++this._nextNsId);
+ }
+ buildRoot(e) {
+ return new Root(e);
+ }
+ build({
+ nsPrefix: e,
+ name: t,
+ attributes: a,
+ namespace: s,
+ prefixes: o,
+ }) {
+ const c = null !== s;
+ if (c) {
+ this._namespaceStack.push(this._currentNamespace);
+ this._currentNamespace = this._searchNamespace(s);
+ }
+ o && this._addNamespacePrefix(o);
+ if (a.hasOwnProperty(n.$nsAttributes)) {
+ const e = i.NamespaceSetUp.datasets,
+ t = a[n.$nsAttributes];
+ let r = null;
+ for (const [a, n] of Object.entries(t)) {
+ if (this._getNamespaceToUse(a) === e) {
+ r = { xfa: n };
+ break;
+ }
+ }
+ r ? (a[n.$nsAttributes] = r) : delete a[n.$nsAttributes];
+ }
+ const l = this._getNamespaceToUse(e),
+ h = l?.[r.$buildXFAObject](t, a) || new Empty();
+ h[n.$isNsAgnostic]() && this._nsAgnosticLevel++;
+ (c || o || h[n.$isNsAgnostic]()) &&
+ (h[n.$cleanup] = {
+ hasNamespace: c,
+ prefixes: o,
+ nsAgnostic: h[n.$isNsAgnostic](),
+ });
+ return h;
+ }
+ isNsAgnostic() {
+ return this._nsAgnosticLevel > 0;
+ }
+ _searchNamespace(e) {
+ let t = this._namespaces.get(e);
+ if (t) return t;
+ for (const [a, { check: n }] of Object.entries(r.NamespaceIds))
+ if (n(e)) {
+ t = i.NamespaceSetUp[a];
+ if (t) {
+ this._namespaces.set(e, t);
+ return t;
+ }
+ break;
+ }
+ t = new o.UnknownNamespace(++this._nextNsId);
+ this._namespaces.set(e, t);
+ return t;
+ }
+ _addNamespacePrefix(e) {
+ for (const { prefix: t, value: a } of e) {
+ const e = this._searchNamespace(a);
+ let r = this._namespacePrefixes.get(t);
+ if (!r) {
+ r = [];
+ this._namespacePrefixes.set(t, r);
+ }
+ r.push(e);
+ }
+ }
+ _getNamespaceToUse(e) {
+ if (!e) return this._currentNamespace;
+ const t = this._namespacePrefixes.get(e);
+ if (t?.length > 0) return t.at(-1);
+ (0, c.warn)(`Unknown namespace prefix: ${e}.`);
+ return null;
+ }
+ clean(e) {
+ const { hasNamespace: t, prefixes: a, nsAgnostic: r } = e;
+ t && (this._currentNamespace = this._namespaceStack.pop());
+ a &&
+ a.forEach(({ prefix: e }) => {
+ this._namespacePrefixes.get(e).pop();
+ });
+ r && this._nsAgnosticLevel--;
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.NamespaceSetUp = void 0;
+ var r = a(93),
+ n = a(94),
+ i = a(95),
+ s = a(96),
+ o = a(97),
+ c = a(98),
+ l = a(80),
+ h = a(99),
+ u = a(100);
+ const d = {
+ config: r.ConfigNamespace,
+ connection: n.ConnectionSetNamespace,
+ datasets: i.DatasetsNamespace,
+ localeSet: s.LocaleSetNamespace,
+ signature: o.SignatureNamespace,
+ stylesheet: c.StylesheetNamespace,
+ template: l.TemplateNamespace,
+ xdp: h.XdpNamespace,
+ xhtml: u.XhtmlNamespace,
+ };
+ t.NamespaceSetUp = d;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.ConfigNamespace = void 0;
+ var r = a(81),
+ n = a(78),
+ i = a(87),
+ s = a(84),
+ o = a(2);
+ const c = r.NamespaceIds.config.id;
+ class Acrobat extends i.XFAObject {
+ constructor(e) {
+ super(c, "acrobat", !0);
+ this.acrobat7 = null;
+ this.autoSave = null;
+ this.common = null;
+ this.validate = null;
+ this.validateApprovalSignatures = null;
+ this.submitUrl = new i.XFAObjectArray();
+ }
+ }
+ class Acrobat7 extends i.XFAObject {
+ constructor(e) {
+ super(c, "acrobat7", !0);
+ this.dynamicRender = null;
+ }
+ }
+ class ADBE_JSConsole extends i.OptionObject {
+ constructor(e) {
+ super(c, "ADBE_JSConsole", ["delegate", "Enable", "Disable"]);
+ }
+ }
+ class ADBE_JSDebugger extends i.OptionObject {
+ constructor(e) {
+ super(c, "ADBE_JSDebugger", ["delegate", "Enable", "Disable"]);
+ }
+ }
+ class AddSilentPrint extends i.Option01 {
+ constructor(e) {
+ super(c, "addSilentPrint");
+ }
+ }
+ class AddViewerPreferences extends i.Option01 {
+ constructor(e) {
+ super(c, "addViewerPreferences");
+ }
+ }
+ class AdjustData extends i.Option10 {
+ constructor(e) {
+ super(c, "adjustData");
+ }
+ }
+ class AdobeExtensionLevel extends i.IntegerObject {
+ constructor(e) {
+ super(c, "adobeExtensionLevel", 0, (e) => e >= 1 && e <= 8);
+ }
+ }
+ class Agent extends i.XFAObject {
+ constructor(e) {
+ super(c, "agent", !0);
+ this.name = e.name ? e.name.trim() : "";
+ this.common = new i.XFAObjectArray();
+ }
+ }
+ class AlwaysEmbed extends i.ContentObject {
+ constructor(e) {
+ super(c, "alwaysEmbed");
+ }
+ }
+ class Amd extends i.StringObject {
+ constructor(e) {
+ super(c, "amd");
+ }
+ }
+ class Area extends i.XFAObject {
+ constructor(e) {
+ super(c, "area");
+ this.level = (0, s.getInteger)({
+ data: e.level,
+ defaultValue: 0,
+ validate: (e) => e >= 1 && e <= 3,
+ });
+ this.name = (0, s.getStringOption)(e.name, [
+ "",
+ "barcode",
+ "coreinit",
+ "deviceDriver",
+ "font",
+ "general",
+ "layout",
+ "merge",
+ "script",
+ "signature",
+ "sourceSet",
+ "templateCache",
+ ]);
+ }
+ }
+ class Attributes extends i.OptionObject {
+ constructor(e) {
+ super(c, "attributes", ["preserve", "delegate", "ignore"]);
+ }
+ }
+ class AutoSave extends i.OptionObject {
+ constructor(e) {
+ super(c, "autoSave", ["disabled", "enabled"]);
+ }
+ }
+ class Base extends i.StringObject {
+ constructor(e) {
+ super(c, "base");
+ }
+ }
+ class BatchOutput extends i.XFAObject {
+ constructor(e) {
+ super(c, "batchOutput");
+ this.format = (0, s.getStringOption)(e.format, [
+ "none",
+ "concat",
+ "zip",
+ "zipCompress",
+ ]);
+ }
+ }
+ class BehaviorOverride extends i.ContentObject {
+ constructor(e) {
+ super(c, "behaviorOverride");
+ }
+ [n.$finalize]() {
+ this[n.$content] = new Map(
+ this[n.$content]
+ .trim()
+ .split(/\s+/)
+ .filter((e) => e.includes(":"))
+ .map((e) => e.split(":", 2)),
+ );
+ }
+ }
+ class Cache extends i.XFAObject {
+ constructor(e) {
+ super(c, "cache", !0);
+ this.templateCache = null;
+ }
+ }
+ class Change extends i.Option01 {
+ constructor(e) {
+ super(c, "change");
+ }
+ }
+ class Common extends i.XFAObject {
+ constructor(e) {
+ super(c, "common", !0);
+ this.data = null;
+ this.locale = null;
+ this.localeSet = null;
+ this.messaging = null;
+ this.suppressBanner = null;
+ this.template = null;
+ this.validationMessaging = null;
+ this.versionControl = null;
+ this.log = new i.XFAObjectArray();
+ }
+ }
+ class Compress extends i.XFAObject {
+ constructor(e) {
+ super(c, "compress");
+ this.scope = (0, s.getStringOption)(e.scope, [
+ "imageOnly",
+ "document",
+ ]);
+ }
+ }
+ class CompressLogicalStructure extends i.Option01 {
+ constructor(e) {
+ super(c, "compressLogicalStructure");
+ }
+ }
+ class CompressObjectStream extends i.Option10 {
+ constructor(e) {
+ super(c, "compressObjectStream");
+ }
+ }
+ class Compression extends i.XFAObject {
+ constructor(e) {
+ super(c, "compression", !0);
+ this.compressLogicalStructure = null;
+ this.compressObjectStream = null;
+ this.level = null;
+ this.type = null;
+ }
+ }
+ class Config extends i.XFAObject {
+ constructor(e) {
+ super(c, "config", !0);
+ this.acrobat = null;
+ this.present = null;
+ this.trace = null;
+ this.agent = new i.XFAObjectArray();
+ }
+ }
+ class Conformance extends i.OptionObject {
+ constructor(e) {
+ super(c, "conformance", ["A", "B"]);
+ }
+ }
+ class ContentCopy extends i.Option01 {
+ constructor(e) {
+ super(c, "contentCopy");
+ }
+ }
+ class Copies extends i.IntegerObject {
+ constructor(e) {
+ super(c, "copies", 1, (e) => e >= 1);
+ }
+ }
+ class Creator extends i.StringObject {
+ constructor(e) {
+ super(c, "creator");
+ }
+ }
+ class CurrentPage extends i.IntegerObject {
+ constructor(e) {
+ super(c, "currentPage", 0, (e) => e >= 0);
+ }
+ }
+ class Data extends i.XFAObject {
+ constructor(e) {
+ super(c, "data", !0);
+ this.adjustData = null;
+ this.attributes = null;
+ this.incrementalLoad = null;
+ this.outputXSL = null;
+ this.range = null;
+ this.record = null;
+ this.startNode = null;
+ this.uri = null;
+ this.window = null;
+ this.xsl = null;
+ this.excludeNS = new i.XFAObjectArray();
+ this.transform = new i.XFAObjectArray();
+ }
+ }
+ class Debug extends i.XFAObject {
+ constructor(e) {
+ super(c, "debug", !0);
+ this.uri = null;
+ }
+ }
+ class DefaultTypeface extends i.ContentObject {
+ constructor(e) {
+ super(c, "defaultTypeface");
+ this.writingScript = (0, s.getStringOption)(e.writingScript, [
+ "*",
+ "Arabic",
+ "Cyrillic",
+ "EastEuropeanRoman",
+ "Greek",
+ "Hebrew",
+ "Japanese",
+ "Korean",
+ "Roman",
+ "SimplifiedChinese",
+ "Thai",
+ "TraditionalChinese",
+ "Vietnamese",
+ ]);
+ }
+ }
+ class Destination extends i.OptionObject {
+ constructor(e) {
+ super(c, "destination", ["pdf", "pcl", "ps", "webClient", "zpl"]);
+ }
+ }
+ class DocumentAssembly extends i.Option01 {
+ constructor(e) {
+ super(c, "documentAssembly");
+ }
+ }
+ class Driver extends i.XFAObject {
+ constructor(e) {
+ super(c, "driver", !0);
+ this.name = e.name ? e.name.trim() : "";
+ this.fontInfo = null;
+ this.xdc = null;
+ }
+ }
+ class DuplexOption extends i.OptionObject {
+ constructor(e) {
+ super(c, "duplexOption", [
+ "simplex",
+ "duplexFlipLongEdge",
+ "duplexFlipShortEdge",
+ ]);
+ }
+ }
+ class DynamicRender extends i.OptionObject {
+ constructor(e) {
+ super(c, "dynamicRender", ["forbidden", "required"]);
+ }
+ }
+ class Embed extends i.Option01 {
+ constructor(e) {
+ super(c, "embed");
+ }
+ }
+ class Encrypt extends i.Option01 {
+ constructor(e) {
+ super(c, "encrypt");
+ }
+ }
+ class Encryption extends i.XFAObject {
+ constructor(e) {
+ super(c, "encryption", !0);
+ this.encrypt = null;
+ this.encryptionLevel = null;
+ this.permissions = null;
+ }
+ }
+ class EncryptionLevel extends i.OptionObject {
+ constructor(e) {
+ super(c, "encryptionLevel", ["40bit", "128bit"]);
+ }
+ }
+ class Enforce extends i.StringObject {
+ constructor(e) {
+ super(c, "enforce");
+ }
+ }
+ class Equate extends i.XFAObject {
+ constructor(e) {
+ super(c, "equate");
+ this.force = (0, s.getInteger)({
+ data: e.force,
+ defaultValue: 1,
+ validate: (e) => 0 === e,
+ });
+ this.from = e.from || "";
+ this.to = e.to || "";
+ }
+ }
+ class EquateRange extends i.XFAObject {
+ constructor(e) {
+ super(c, "equateRange");
+ this.from = e.from || "";
+ this.to = e.to || "";
+ this._unicodeRange = e.unicodeRange || "";
+ }
+ get unicodeRange() {
+ const e = [],
+ t = /U\+([0-9a-fA-F]+)/,
+ a = this._unicodeRange;
+ for (let r of a
+ .split(",")
+ .map((e) => e.trim())
+ .filter((e) => !!e)) {
+ r = r.split("-", 2).map((e) => {
+ const a = e.match(t);
+ return a ? parseInt(a[1], 16) : 0;
+ });
+ 1 === r.length && r.push(r[0]);
+ e.push(r);
+ }
+ return (0, o.shadow)(this, "unicodeRange", e);
+ }
+ }
+ class Exclude extends i.ContentObject {
+ constructor(e) {
+ super(c, "exclude");
+ }
+ [n.$finalize]() {
+ this[n.$content] = this[n.$content]
+ .trim()
+ .split(/\s+/)
+ .filter(
+ (e) =>
+ e &&
+ [
+ "calculate",
+ "close",
+ "enter",
+ "exit",
+ "initialize",
+ "ready",
+ "validate",
+ ].includes(e),
+ );
+ }
+ }
+ class ExcludeNS extends i.StringObject {
+ constructor(e) {
+ super(c, "excludeNS");
+ }
+ }
+ class FlipLabel extends i.OptionObject {
+ constructor(e) {
+ super(c, "flipLabel", ["usePrinterSetting", "on", "off"]);
+ }
+ }
+ class FontInfo extends i.XFAObject {
+ constructor(e) {
+ super(c, "fontInfo", !0);
+ this.embed = null;
+ this.map = null;
+ this.subsetBelow = null;
+ this.alwaysEmbed = new i.XFAObjectArray();
+ this.defaultTypeface = new i.XFAObjectArray();
+ this.neverEmbed = new i.XFAObjectArray();
+ }
+ }
+ class FormFieldFilling extends i.Option01 {
+ constructor(e) {
+ super(c, "formFieldFilling");
+ }
+ }
+ class GroupParent extends i.StringObject {
+ constructor(e) {
+ super(c, "groupParent");
+ }
+ }
+ class IfEmpty extends i.OptionObject {
+ constructor(e) {
+ super(c, "ifEmpty", [
+ "dataValue",
+ "dataGroup",
+ "ignore",
+ "remove",
+ ]);
+ }
+ }
+ class IncludeXDPContent extends i.StringObject {
+ constructor(e) {
+ super(c, "includeXDPContent");
+ }
+ }
+ class IncrementalLoad extends i.OptionObject {
+ constructor(e) {
+ super(c, "incrementalLoad", ["none", "forwardOnly"]);
+ }
+ }
+ class IncrementalMerge extends i.Option01 {
+ constructor(e) {
+ super(c, "incrementalMerge");
+ }
+ }
+ class Interactive extends i.Option01 {
+ constructor(e) {
+ super(c, "interactive");
+ }
+ }
+ class Jog extends i.OptionObject {
+ constructor(e) {
+ super(c, "jog", ["usePrinterSetting", "none", "pageSet"]);
+ }
+ }
+ class LabelPrinter extends i.XFAObject {
+ constructor(e) {
+ super(c, "labelPrinter", !0);
+ this.name = (0, s.getStringOption)(e.name, [
+ "zpl",
+ "dpl",
+ "ipl",
+ "tcpl",
+ ]);
+ this.batchOutput = null;
+ this.flipLabel = null;
+ this.fontInfo = null;
+ this.xdc = null;
+ }
+ }
+ class Layout extends i.OptionObject {
+ constructor(e) {
+ super(c, "layout", ["paginate", "panel"]);
+ }
+ }
+ class Level extends i.IntegerObject {
+ constructor(e) {
+ super(c, "level", 0, (e) => e > 0);
+ }
+ }
+ class Linearized extends i.Option01 {
+ constructor(e) {
+ super(c, "linearized");
+ }
+ }
+ class Locale extends i.StringObject {
+ constructor(e) {
+ super(c, "locale");
+ }
+ }
+ class LocaleSet extends i.StringObject {
+ constructor(e) {
+ super(c, "localeSet");
+ }
+ }
+ class Log extends i.XFAObject {
+ constructor(e) {
+ super(c, "log", !0);
+ this.mode = null;
+ this.threshold = null;
+ this.to = null;
+ this.uri = null;
+ }
+ }
+ class MapElement extends i.XFAObject {
+ constructor(e) {
+ super(c, "map", !0);
+ this.equate = new i.XFAObjectArray();
+ this.equateRange = new i.XFAObjectArray();
+ }
+ }
+ class MediumInfo extends i.XFAObject {
+ constructor(e) {
+ super(c, "mediumInfo", !0);
+ this.map = null;
+ }
+ }
+ class Message extends i.XFAObject {
+ constructor(e) {
+ super(c, "message", !0);
+ this.msgId = null;
+ this.severity = null;
+ }
+ }
+ class Messaging extends i.XFAObject {
+ constructor(e) {
+ super(c, "messaging", !0);
+ this.message = new i.XFAObjectArray();
+ }
+ }
+ class Mode extends i.OptionObject {
+ constructor(e) {
+ super(c, "mode", ["append", "overwrite"]);
+ }
+ }
+ class ModifyAnnots extends i.Option01 {
+ constructor(e) {
+ super(c, "modifyAnnots");
+ }
+ }
+ class MsgId extends i.IntegerObject {
+ constructor(e) {
+ super(c, "msgId", 1, (e) => e >= 1);
+ }
+ }
+ class NameAttr extends i.StringObject {
+ constructor(e) {
+ super(c, "nameAttr");
+ }
+ }
+ class NeverEmbed extends i.ContentObject {
+ constructor(e) {
+ super(c, "neverEmbed");
+ }
+ }
+ class NumberOfCopies extends i.IntegerObject {
+ constructor(e) {
+ super(c, "numberOfCopies", null, (e) => e >= 2 && e <= 5);
+ }
+ }
+ class OpenAction extends i.XFAObject {
+ constructor(e) {
+ super(c, "openAction", !0);
+ this.destination = null;
+ }
+ }
+ class Output extends i.XFAObject {
+ constructor(e) {
+ super(c, "output", !0);
+ this.to = null;
+ this.type = null;
+ this.uri = null;
+ }
+ }
+ class OutputBin extends i.StringObject {
+ constructor(e) {
+ super(c, "outputBin");
+ }
+ }
+ class OutputXSL extends i.XFAObject {
+ constructor(e) {
+ super(c, "outputXSL", !0);
+ this.uri = null;
+ }
+ }
+ class Overprint extends i.OptionObject {
+ constructor(e) {
+ super(c, "overprint", ["none", "both", "draw", "field"]);
+ }
+ }
+ class Packets extends i.StringObject {
+ constructor(e) {
+ super(c, "packets");
+ }
+ [n.$finalize]() {
+ "*" !== this[n.$content] &&
+ (this[n.$content] = this[n.$content]
+ .trim()
+ .split(/\s+/)
+ .filter((e) =>
+ ["config", "datasets", "template", "xfdf", "xslt"].includes(
+ e,
+ ),
+ ));
+ }
+ }
+ class PageOffset extends i.XFAObject {
+ constructor(e) {
+ super(c, "pageOffset");
+ this.x = (0, s.getInteger)({
+ data: e.x,
+ defaultValue: "useXDCSetting",
+ validate: (e) => !0,
+ });
+ this.y = (0, s.getInteger)({
+ data: e.y,
+ defaultValue: "useXDCSetting",
+ validate: (e) => !0,
+ });
+ }
+ }
+ class PageRange extends i.StringObject {
+ constructor(e) {
+ super(c, "pageRange");
+ }
+ [n.$finalize]() {
+ const e = this[n.$content]
+ .trim()
+ .split(/\s+/)
+ .map((e) => parseInt(e, 10)),
+ t = [];
+ for (let a = 0, r = e.length; a < r; a += 2)
+ t.push(e.slice(a, a + 2));
+ this[n.$content] = t;
+ }
+ }
+ class Pagination extends i.OptionObject {
+ constructor(e) {
+ super(c, "pagination", [
+ "simplex",
+ "duplexShortEdge",
+ "duplexLongEdge",
+ ]);
+ }
+ }
+ class PaginationOverride extends i.OptionObject {
+ constructor(e) {
+ super(c, "paginationOverride", [
+ "none",
+ "forceDuplex",
+ "forceDuplexLongEdge",
+ "forceDuplexShortEdge",
+ "forceSimplex",
+ ]);
+ }
+ }
+ class Part extends i.IntegerObject {
+ constructor(e) {
+ super(c, "part", 1, (e) => !1);
+ }
+ }
+ class Pcl extends i.XFAObject {
+ constructor(e) {
+ super(c, "pcl", !0);
+ this.name = e.name || "";
+ this.batchOutput = null;
+ this.fontInfo = null;
+ this.jog = null;
+ this.mediumInfo = null;
+ this.outputBin = null;
+ this.pageOffset = null;
+ this.staple = null;
+ this.xdc = null;
+ }
+ }
+ class Pdf extends i.XFAObject {
+ constructor(e) {
+ super(c, "pdf", !0);
+ this.name = e.name || "";
+ this.adobeExtensionLevel = null;
+ this.batchOutput = null;
+ this.compression = null;
+ this.creator = null;
+ this.encryption = null;
+ this.fontInfo = null;
+ this.interactive = null;
+ this.linearized = null;
+ this.openAction = null;
+ this.pdfa = null;
+ this.producer = null;
+ this.renderPolicy = null;
+ this.scriptModel = null;
+ this.silentPrint = null;
+ this.submitFormat = null;
+ this.tagged = null;
+ this.version = null;
+ this.viewerPreferences = null;
+ this.xdc = null;
+ }
+ }
+ class Pdfa extends i.XFAObject {
+ constructor(e) {
+ super(c, "pdfa", !0);
+ this.amd = null;
+ this.conformance = null;
+ this.includeXDPContent = null;
+ this.part = null;
+ }
+ }
+ class Permissions extends i.XFAObject {
+ constructor(e) {
+ super(c, "permissions", !0);
+ this.accessibleContent = null;
+ this.change = null;
+ this.contentCopy = null;
+ this.documentAssembly = null;
+ this.formFieldFilling = null;
+ this.modifyAnnots = null;
+ this.plaintextMetadata = null;
+ this.print = null;
+ this.printHighQuality = null;
+ }
+ }
+ class PickTrayByPDFSize extends i.Option01 {
+ constructor(e) {
+ super(c, "pickTrayByPDFSize");
+ }
+ }
+ class Picture extends i.StringObject {
+ constructor(e) {
+ super(c, "picture");
+ }
+ }
+ class PlaintextMetadata extends i.Option01 {
+ constructor(e) {
+ super(c, "plaintextMetadata");
+ }
+ }
+ class Presence extends i.OptionObject {
+ constructor(e) {
+ super(c, "presence", [
+ "preserve",
+ "dissolve",
+ "dissolveStructure",
+ "ignore",
+ "remove",
+ ]);
+ }
+ }
+ class Present extends i.XFAObject {
+ constructor(e) {
+ super(c, "present", !0);
+ this.behaviorOverride = null;
+ this.cache = null;
+ this.common = null;
+ this.copies = null;
+ this.destination = null;
+ this.incrementalMerge = null;
+ this.layout = null;
+ this.output = null;
+ this.overprint = null;
+ this.pagination = null;
+ this.paginationOverride = null;
+ this.script = null;
+ this.validate = null;
+ this.xdp = null;
+ this.driver = new i.XFAObjectArray();
+ this.labelPrinter = new i.XFAObjectArray();
+ this.pcl = new i.XFAObjectArray();
+ this.pdf = new i.XFAObjectArray();
+ this.ps = new i.XFAObjectArray();
+ this.submitUrl = new i.XFAObjectArray();
+ this.webClient = new i.XFAObjectArray();
+ this.zpl = new i.XFAObjectArray();
+ }
+ }
+ class Print extends i.Option01 {
+ constructor(e) {
+ super(c, "print");
+ }
+ }
+ class PrintHighQuality extends i.Option01 {
+ constructor(e) {
+ super(c, "printHighQuality");
+ }
+ }
+ class PrintScaling extends i.OptionObject {
+ constructor(e) {
+ super(c, "printScaling", ["appdefault", "noScaling"]);
+ }
+ }
+ class PrinterName extends i.StringObject {
+ constructor(e) {
+ super(c, "printerName");
+ }
+ }
+ class Producer extends i.StringObject {
+ constructor(e) {
+ super(c, "producer");
+ }
+ }
+ class Ps extends i.XFAObject {
+ constructor(e) {
+ super(c, "ps", !0);
+ this.name = e.name || "";
+ this.batchOutput = null;
+ this.fontInfo = null;
+ this.jog = null;
+ this.mediumInfo = null;
+ this.outputBin = null;
+ this.staple = null;
+ this.xdc = null;
+ }
+ }
+ class Range extends i.ContentObject {
+ constructor(e) {
+ super(c, "range");
+ }
+ [n.$finalize]() {
+ this[n.$content] = this[n.$content]
+ .trim()
+ .split(/\s*,\s*/, 2)
+ .map((e) => e.split("-").map((e) => parseInt(e.trim(), 10)))
+ .filter((e) => e.every((e) => !isNaN(e)))
+ .map((e) => {
+ 1 === e.length && e.push(e[0]);
+ return e;
+ });
+ }
+ }
+ class Record extends i.ContentObject {
+ constructor(e) {
+ super(c, "record");
+ }
+ [n.$finalize]() {
+ this[n.$content] = this[n.$content].trim();
+ const e = parseInt(this[n.$content], 10);
+ !isNaN(e) && e >= 0 && (this[n.$content] = e);
+ }
+ }
+ class Relevant extends i.ContentObject {
+ constructor(e) {
+ super(c, "relevant");
+ }
+ [n.$finalize]() {
+ this[n.$content] = this[n.$content].trim().split(/\s+/);
+ }
+ }
+ class Rename extends i.ContentObject {
+ constructor(e) {
+ super(c, "rename");
+ }
+ [n.$finalize]() {
+ this[n.$content] = this[n.$content].trim();
+ (this[n.$content].toLowerCase().startsWith("xml") ||
+ new RegExp("[\\p{L}_][\\p{L}\\d._\\p{M}-]*", "u").test(
+ this[n.$content],
+ )) &&
+ (0, o.warn)("XFA - Rename: invalid XFA name");
+ }
+ }
+ class RenderPolicy extends i.OptionObject {
+ constructor(e) {
+ super(c, "renderPolicy", ["server", "client"]);
+ }
+ }
+ class RunScripts extends i.OptionObject {
+ constructor(e) {
+ super(c, "runScripts", ["both", "client", "none", "server"]);
+ }
+ }
+ class Script extends i.XFAObject {
+ constructor(e) {
+ super(c, "script", !0);
+ this.currentPage = null;
+ this.exclude = null;
+ this.runScripts = null;
+ }
+ }
+ class ScriptModel extends i.OptionObject {
+ constructor(e) {
+ super(c, "scriptModel", ["XFA", "none"]);
+ }
+ }
+ class Severity extends i.OptionObject {
+ constructor(e) {
+ super(c, "severity", [
+ "ignore",
+ "error",
+ "information",
+ "trace",
+ "warning",
+ ]);
+ }
+ }
+ class SilentPrint extends i.XFAObject {
+ constructor(e) {
+ super(c, "silentPrint", !0);
+ this.addSilentPrint = null;
+ this.printerName = null;
+ }
+ }
+ class Staple extends i.XFAObject {
+ constructor(e) {
+ super(c, "staple");
+ this.mode = (0, s.getStringOption)(e.mode, [
+ "usePrinterSetting",
+ "on",
+ "off",
+ ]);
+ }
+ }
+ class StartNode extends i.StringObject {
+ constructor(e) {
+ super(c, "startNode");
+ }
+ }
+ class StartPage extends i.IntegerObject {
+ constructor(e) {
+ super(c, "startPage", 0, (e) => !0);
+ }
+ }
+ class SubmitFormat extends i.OptionObject {
+ constructor(e) {
+ super(c, "submitFormat", [
+ "html",
+ "delegate",
+ "fdf",
+ "xml",
+ "pdf",
+ ]);
+ }
+ }
+ class SubmitUrl extends i.StringObject {
+ constructor(e) {
+ super(c, "submitUrl");
+ }
+ }
+ class SubsetBelow extends i.IntegerObject {
+ constructor(e) {
+ super(c, "subsetBelow", 100, (e) => e >= 0 && e <= 100);
+ }
+ }
+ class SuppressBanner extends i.Option01 {
+ constructor(e) {
+ super(c, "suppressBanner");
+ }
+ }
+ class Tagged extends i.Option01 {
+ constructor(e) {
+ super(c, "tagged");
+ }
+ }
+ class Template extends i.XFAObject {
+ constructor(e) {
+ super(c, "template", !0);
+ this.base = null;
+ this.relevant = null;
+ this.startPage = null;
+ this.uri = null;
+ this.xsl = null;
+ }
+ }
+ class Threshold extends i.OptionObject {
+ constructor(e) {
+ super(c, "threshold", [
+ "trace",
+ "error",
+ "information",
+ "warning",
+ ]);
+ }
+ }
+ class To extends i.OptionObject {
+ constructor(e) {
+ super(c, "to", [
+ "null",
+ "memory",
+ "stderr",
+ "stdout",
+ "system",
+ "uri",
+ ]);
+ }
+ }
+ class TemplateCache extends i.XFAObject {
+ constructor(e) {
+ super(c, "templateCache");
+ this.maxEntries = (0, s.getInteger)({
+ data: e.maxEntries,
+ defaultValue: 5,
+ validate: (e) => e >= 0,
+ });
+ }
+ }
+ class Trace extends i.XFAObject {
+ constructor(e) {
+ super(c, "trace", !0);
+ this.area = new i.XFAObjectArray();
+ }
+ }
+ class Transform extends i.XFAObject {
+ constructor(e) {
+ super(c, "transform", !0);
+ this.groupParent = null;
+ this.ifEmpty = null;
+ this.nameAttr = null;
+ this.picture = null;
+ this.presence = null;
+ this.rename = null;
+ this.whitespace = null;
+ }
+ }
+ class Type extends i.OptionObject {
+ constructor(e) {
+ super(c, "type", [
+ "none",
+ "ascii85",
+ "asciiHex",
+ "ccittfax",
+ "flate",
+ "lzw",
+ "runLength",
+ "native",
+ "xdp",
+ "mergedXDP",
+ ]);
+ }
+ }
+ class Uri extends i.StringObject {
+ constructor(e) {
+ super(c, "uri");
+ }
+ }
+ class Validate extends i.OptionObject {
+ constructor(e) {
+ super(c, "validate", [
+ "preSubmit",
+ "prePrint",
+ "preExecute",
+ "preSave",
+ ]);
+ }
+ }
+ class ValidateApprovalSignatures extends i.ContentObject {
+ constructor(e) {
+ super(c, "validateApprovalSignatures");
+ }
+ [n.$finalize]() {
+ this[n.$content] = this[n.$content]
+ .trim()
+ .split(/\s+/)
+ .filter((e) => ["docReady", "postSign"].includes(e));
+ }
+ }
+ class ValidationMessaging extends i.OptionObject {
+ constructor(e) {
+ super(c, "validationMessaging", [
+ "allMessagesIndividually",
+ "allMessagesTogether",
+ "firstMessageOnly",
+ "noMessages",
+ ]);
+ }
+ }
+ class Version extends i.OptionObject {
+ constructor(e) {
+ super(c, "version", ["1.7", "1.6", "1.5", "1.4", "1.3", "1.2"]);
+ }
+ }
+ class VersionControl extends i.XFAObject {
+ constructor(e) {
+ super(c, "VersionControl");
+ this.outputBelow = (0, s.getStringOption)(e.outputBelow, [
+ "warn",
+ "error",
+ "update",
+ ]);
+ this.sourceAbove = (0, s.getStringOption)(e.sourceAbove, [
+ "warn",
+ "error",
+ ]);
+ this.sourceBelow = (0, s.getStringOption)(e.sourceBelow, [
+ "update",
+ "maintain",
+ ]);
+ }
+ }
+ class ViewerPreferences extends i.XFAObject {
+ constructor(e) {
+ super(c, "viewerPreferences", !0);
+ this.ADBE_JSConsole = null;
+ this.ADBE_JSDebugger = null;
+ this.addViewerPreferences = null;
+ this.duplexOption = null;
+ this.enforce = null;
+ this.numberOfCopies = null;
+ this.pageRange = null;
+ this.pickTrayByPDFSize = null;
+ this.printScaling = null;
+ }
+ }
+ class WebClient extends i.XFAObject {
+ constructor(e) {
+ super(c, "webClient", !0);
+ this.name = e.name ? e.name.trim() : "";
+ this.fontInfo = null;
+ this.xdc = null;
+ }
+ }
+ class Whitespace extends i.OptionObject {
+ constructor(e) {
+ super(c, "whitespace", [
+ "preserve",
+ "ltrim",
+ "normalize",
+ "rtrim",
+ "trim",
+ ]);
+ }
+ }
+ class Window extends i.ContentObject {
+ constructor(e) {
+ super(c, "window");
+ }
+ [n.$finalize]() {
+ const e = this[n.$content]
+ .trim()
+ .split(/\s*,\s*/, 2)
+ .map((e) => parseInt(e, 10));
+ if (e.some((e) => isNaN(e))) this[n.$content] = [0, 0];
+ else {
+ 1 === e.length && e.push(e[0]);
+ this[n.$content] = e;
+ }
+ }
+ }
+ class Xdc extends i.XFAObject {
+ constructor(e) {
+ super(c, "xdc", !0);
+ this.uri = new i.XFAObjectArray();
+ this.xsl = new i.XFAObjectArray();
+ }
+ }
+ class Xdp extends i.XFAObject {
+ constructor(e) {
+ super(c, "xdp", !0);
+ this.packets = null;
+ }
+ }
+ class Xsl extends i.XFAObject {
+ constructor(e) {
+ super(c, "xsl", !0);
+ this.debug = null;
+ this.uri = null;
+ }
+ }
+ class Zpl extends i.XFAObject {
+ constructor(e) {
+ super(c, "zpl", !0);
+ this.name = e.name ? e.name.trim() : "";
+ this.batchOutput = null;
+ this.flipLabel = null;
+ this.fontInfo = null;
+ this.xdc = null;
+ }
+ }
+ class ConfigNamespace {
+ static [r.$buildXFAObject](e, t) {
+ if (ConfigNamespace.hasOwnProperty(e))
+ return ConfigNamespace[e](t);
+ }
+ static acrobat(e) {
+ return new Acrobat(e);
+ }
+ static acrobat7(e) {
+ return new Acrobat7(e);
+ }
+ static ADBE_JSConsole(e) {
+ return new ADBE_JSConsole(e);
+ }
+ static ADBE_JSDebugger(e) {
+ return new ADBE_JSDebugger(e);
+ }
+ static addSilentPrint(e) {
+ return new AddSilentPrint(e);
+ }
+ static addViewerPreferences(e) {
+ return new AddViewerPreferences(e);
+ }
+ static adjustData(e) {
+ return new AdjustData(e);
+ }
+ static adobeExtensionLevel(e) {
+ return new AdobeExtensionLevel(e);
+ }
+ static agent(e) {
+ return new Agent(e);
+ }
+ static alwaysEmbed(e) {
+ return new AlwaysEmbed(e);
+ }
+ static amd(e) {
+ return new Amd(e);
+ }
+ static area(e) {
+ return new Area(e);
+ }
+ static attributes(e) {
+ return new Attributes(e);
+ }
+ static autoSave(e) {
+ return new AutoSave(e);
+ }
+ static base(e) {
+ return new Base(e);
+ }
+ static batchOutput(e) {
+ return new BatchOutput(e);
+ }
+ static behaviorOverride(e) {
+ return new BehaviorOverride(e);
+ }
+ static cache(e) {
+ return new Cache(e);
+ }
+ static change(e) {
+ return new Change(e);
+ }
+ static common(e) {
+ return new Common(e);
+ }
+ static compress(e) {
+ return new Compress(e);
+ }
+ static compressLogicalStructure(e) {
+ return new CompressLogicalStructure(e);
+ }
+ static compressObjectStream(e) {
+ return new CompressObjectStream(e);
+ }
+ static compression(e) {
+ return new Compression(e);
+ }
+ static config(e) {
+ return new Config(e);
+ }
+ static conformance(e) {
+ return new Conformance(e);
+ }
+ static contentCopy(e) {
+ return new ContentCopy(e);
+ }
+ static copies(e) {
+ return new Copies(e);
+ }
+ static creator(e) {
+ return new Creator(e);
+ }
+ static currentPage(e) {
+ return new CurrentPage(e);
+ }
+ static data(e) {
+ return new Data(e);
+ }
+ static debug(e) {
+ return new Debug(e);
+ }
+ static defaultTypeface(e) {
+ return new DefaultTypeface(e);
+ }
+ static destination(e) {
+ return new Destination(e);
+ }
+ static documentAssembly(e) {
+ return new DocumentAssembly(e);
+ }
+ static driver(e) {
+ return new Driver(e);
+ }
+ static duplexOption(e) {
+ return new DuplexOption(e);
+ }
+ static dynamicRender(e) {
+ return new DynamicRender(e);
+ }
+ static embed(e) {
+ return new Embed(e);
+ }
+ static encrypt(e) {
+ return new Encrypt(e);
+ }
+ static encryption(e) {
+ return new Encryption(e);
+ }
+ static encryptionLevel(e) {
+ return new EncryptionLevel(e);
+ }
+ static enforce(e) {
+ return new Enforce(e);
+ }
+ static equate(e) {
+ return new Equate(e);
+ }
+ static equateRange(e) {
+ return new EquateRange(e);
+ }
+ static exclude(e) {
+ return new Exclude(e);
+ }
+ static excludeNS(e) {
+ return new ExcludeNS(e);
+ }
+ static flipLabel(e) {
+ return new FlipLabel(e);
+ }
+ static fontInfo(e) {
+ return new FontInfo(e);
+ }
+ static formFieldFilling(e) {
+ return new FormFieldFilling(e);
+ }
+ static groupParent(e) {
+ return new GroupParent(e);
+ }
+ static ifEmpty(e) {
+ return new IfEmpty(e);
+ }
+ static includeXDPContent(e) {
+ return new IncludeXDPContent(e);
+ }
+ static incrementalLoad(e) {
+ return new IncrementalLoad(e);
+ }
+ static incrementalMerge(e) {
+ return new IncrementalMerge(e);
+ }
+ static interactive(e) {
+ return new Interactive(e);
+ }
+ static jog(e) {
+ return new Jog(e);
+ }
+ static labelPrinter(e) {
+ return new LabelPrinter(e);
+ }
+ static layout(e) {
+ return new Layout(e);
+ }
+ static level(e) {
+ return new Level(e);
+ }
+ static linearized(e) {
+ return new Linearized(e);
+ }
+ static locale(e) {
+ return new Locale(e);
+ }
+ static localeSet(e) {
+ return new LocaleSet(e);
+ }
+ static log(e) {
+ return new Log(e);
+ }
+ static map(e) {
+ return new MapElement(e);
+ }
+ static mediumInfo(e) {
+ return new MediumInfo(e);
+ }
+ static message(e) {
+ return new Message(e);
+ }
+ static messaging(e) {
+ return new Messaging(e);
+ }
+ static mode(e) {
+ return new Mode(e);
+ }
+ static modifyAnnots(e) {
+ return new ModifyAnnots(e);
+ }
+ static msgId(e) {
+ return new MsgId(e);
+ }
+ static nameAttr(e) {
+ return new NameAttr(e);
+ }
+ static neverEmbed(e) {
+ return new NeverEmbed(e);
+ }
+ static numberOfCopies(e) {
+ return new NumberOfCopies(e);
+ }
+ static openAction(e) {
+ return new OpenAction(e);
+ }
+ static output(e) {
+ return new Output(e);
+ }
+ static outputBin(e) {
+ return new OutputBin(e);
+ }
+ static outputXSL(e) {
+ return new OutputXSL(e);
+ }
+ static overprint(e) {
+ return new Overprint(e);
+ }
+ static packets(e) {
+ return new Packets(e);
+ }
+ static pageOffset(e) {
+ return new PageOffset(e);
+ }
+ static pageRange(e) {
+ return new PageRange(e);
+ }
+ static pagination(e) {
+ return new Pagination(e);
+ }
+ static paginationOverride(e) {
+ return new PaginationOverride(e);
+ }
+ static part(e) {
+ return new Part(e);
+ }
+ static pcl(e) {
+ return new Pcl(e);
+ }
+ static pdf(e) {
+ return new Pdf(e);
+ }
+ static pdfa(e) {
+ return new Pdfa(e);
+ }
+ static permissions(e) {
+ return new Permissions(e);
+ }
+ static pickTrayByPDFSize(e) {
+ return new PickTrayByPDFSize(e);
+ }
+ static picture(e) {
+ return new Picture(e);
+ }
+ static plaintextMetadata(e) {
+ return new PlaintextMetadata(e);
+ }
+ static presence(e) {
+ return new Presence(e);
+ }
+ static present(e) {
+ return new Present(e);
+ }
+ static print(e) {
+ return new Print(e);
+ }
+ static printHighQuality(e) {
+ return new PrintHighQuality(e);
+ }
+ static printScaling(e) {
+ return new PrintScaling(e);
+ }
+ static printerName(e) {
+ return new PrinterName(e);
+ }
+ static producer(e) {
+ return new Producer(e);
+ }
+ static ps(e) {
+ return new Ps(e);
+ }
+ static range(e) {
+ return new Range(e);
+ }
+ static record(e) {
+ return new Record(e);
+ }
+ static relevant(e) {
+ return new Relevant(e);
+ }
+ static rename(e) {
+ return new Rename(e);
+ }
+ static renderPolicy(e) {
+ return new RenderPolicy(e);
+ }
+ static runScripts(e) {
+ return new RunScripts(e);
+ }
+ static script(e) {
+ return new Script(e);
+ }
+ static scriptModel(e) {
+ return new ScriptModel(e);
+ }
+ static severity(e) {
+ return new Severity(e);
+ }
+ static silentPrint(e) {
+ return new SilentPrint(e);
+ }
+ static staple(e) {
+ return new Staple(e);
+ }
+ static startNode(e) {
+ return new StartNode(e);
+ }
+ static startPage(e) {
+ return new StartPage(e);
+ }
+ static submitFormat(e) {
+ return new SubmitFormat(e);
+ }
+ static submitUrl(e) {
+ return new SubmitUrl(e);
+ }
+ static subsetBelow(e) {
+ return new SubsetBelow(e);
+ }
+ static suppressBanner(e) {
+ return new SuppressBanner(e);
+ }
+ static tagged(e) {
+ return new Tagged(e);
+ }
+ static template(e) {
+ return new Template(e);
+ }
+ static templateCache(e) {
+ return new TemplateCache(e);
+ }
+ static threshold(e) {
+ return new Threshold(e);
+ }
+ static to(e) {
+ return new To(e);
+ }
+ static trace(e) {
+ return new Trace(e);
+ }
+ static transform(e) {
+ return new Transform(e);
+ }
+ static type(e) {
+ return new Type(e);
+ }
+ static uri(e) {
+ return new Uri(e);
+ }
+ static validate(e) {
+ return new Validate(e);
+ }
+ static validateApprovalSignatures(e) {
+ return new ValidateApprovalSignatures(e);
+ }
+ static validationMessaging(e) {
+ return new ValidationMessaging(e);
+ }
+ static version(e) {
+ return new Version(e);
+ }
+ static versionControl(e) {
+ return new VersionControl(e);
+ }
+ static viewerPreferences(e) {
+ return new ViewerPreferences(e);
+ }
+ static webClient(e) {
+ return new WebClient(e);
+ }
+ static whitespace(e) {
+ return new Whitespace(e);
+ }
+ static window(e) {
+ return new Window(e);
+ }
+ static xdc(e) {
+ return new Xdc(e);
+ }
+ static xdp(e) {
+ return new Xdp(e);
+ }
+ static xsl(e) {
+ return new Xsl(e);
+ }
+ static zpl(e) {
+ return new Zpl(e);
+ }
+ }
+ t.ConfigNamespace = ConfigNamespace;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.ConnectionSetNamespace = void 0;
+ var r = a(81),
+ n = a(87);
+ const i = r.NamespaceIds.connectionSet.id;
+ class ConnectionSet extends n.XFAObject {
+ constructor(e) {
+ super(i, "connectionSet", !0);
+ this.wsdlConnection = new n.XFAObjectArray();
+ this.xmlConnection = new n.XFAObjectArray();
+ this.xsdConnection = new n.XFAObjectArray();
+ }
+ }
+ class EffectiveInputPolicy extends n.XFAObject {
+ constructor(e) {
+ super(i, "effectiveInputPolicy");
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class EffectiveOutputPolicy extends n.XFAObject {
+ constructor(e) {
+ super(i, "effectiveOutputPolicy");
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class Operation extends n.StringObject {
+ constructor(e) {
+ super(i, "operation");
+ this.id = e.id || "";
+ this.input = e.input || "";
+ this.name = e.name || "";
+ this.output = e.output || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class RootElement extends n.StringObject {
+ constructor(e) {
+ super(i, "rootElement");
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class SoapAction extends n.StringObject {
+ constructor(e) {
+ super(i, "soapAction");
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class SoapAddress extends n.StringObject {
+ constructor(e) {
+ super(i, "soapAddress");
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class Uri extends n.StringObject {
+ constructor(e) {
+ super(i, "uri");
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class WsdlAddress extends n.StringObject {
+ constructor(e) {
+ super(i, "wsdlAddress");
+ this.id = e.id || "";
+ this.name = e.name || "";
+ this.use = e.use || "";
+ this.usehref = e.usehref || "";
+ }
+ }
+ class WsdlConnection extends n.XFAObject {
+ constructor(e) {
+ super(i, "wsdlConnection", !0);
+ this.dataDescription = e.dataDescription || "";
+ this.name = e.name || "";
+ this.effectiveInputPolicy = null;
+ this.effectiveOutputPolicy = null;
+ this.operation = null;
+ this.soapAction = null;
+ this.soapAddress = null;
+ this.wsdlAddress = null;
+ }
+ }
+ class XmlConnection extends n.XFAObject {
+ constructor(e) {
+ super(i, "xmlConnection", !0);
+ this.dataDescription = e.dataDescription || "";
+ this.name = e.name || "";
+ this.uri = null;
+ }
+ }
+ class XsdConnection extends n.XFAObject {
+ constructor(e) {
+ super(i, "xsdConnection", !0);
+ this.dataDescription = e.dataDescription || "";
+ this.name = e.name || "";
+ this.rootElement = null;
+ this.uri = null;
+ }
+ }
+ class ConnectionSetNamespace {
+ static [r.$buildXFAObject](e, t) {
+ if (ConnectionSetNamespace.hasOwnProperty(e))
+ return ConnectionSetNamespace[e](t);
+ }
+ static connectionSet(e) {
+ return new ConnectionSet(e);
+ }
+ static effectiveInputPolicy(e) {
+ return new EffectiveInputPolicy(e);
+ }
+ static effectiveOutputPolicy(e) {
+ return new EffectiveOutputPolicy(e);
+ }
+ static operation(e) {
+ return new Operation(e);
+ }
+ static rootElement(e) {
+ return new RootElement(e);
+ }
+ static soapAction(e) {
+ return new SoapAction(e);
+ }
+ static soapAddress(e) {
+ return new SoapAddress(e);
+ }
+ static uri(e) {
+ return new Uri(e);
+ }
+ static wsdlAddress(e) {
+ return new WsdlAddress(e);
+ }
+ static wsdlConnection(e) {
+ return new WsdlConnection(e);
+ }
+ static xmlConnection(e) {
+ return new XmlConnection(e);
+ }
+ static xsdConnection(e) {
+ return new XsdConnection(e);
+ }
+ }
+ t.ConnectionSetNamespace = ConnectionSetNamespace;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.DatasetsNamespace = void 0;
+ var r = a(78),
+ n = a(81),
+ i = a(87);
+ const s = n.NamespaceIds.datasets.id;
+ class Data extends i.XmlObject {
+ constructor(e) {
+ super(s, "data", e);
+ }
+ [r.$isNsAgnostic]() {
+ return !0;
+ }
+ }
+ class Datasets extends i.XFAObject {
+ constructor(e) {
+ super(s, "datasets", !0);
+ this.data = null;
+ this.Signature = null;
+ }
+ [r.$onChild](e) {
+ const t = e[r.$nodeName];
+ (("data" === t && e[r.$namespaceId] === s) ||
+ ("Signature" === t &&
+ e[r.$namespaceId] === n.NamespaceIds.signature.id)) &&
+ (this[t] = e);
+ this[r.$appendChild](e);
+ }
+ }
+ class DatasetsNamespace {
+ static [n.$buildXFAObject](e, t) {
+ if (DatasetsNamespace.hasOwnProperty(e))
+ return DatasetsNamespace[e](t);
+ }
+ static datasets(e) {
+ return new Datasets(e);
+ }
+ static data(e) {
+ return new Data(e);
+ }
+ }
+ t.DatasetsNamespace = DatasetsNamespace;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.LocaleSetNamespace = void 0;
+ var r = a(81),
+ n = a(87),
+ i = a(84);
+ const s = r.NamespaceIds.localeSet.id;
+ class CalendarSymbols extends n.XFAObject {
+ constructor(e) {
+ super(s, "calendarSymbols", !0);
+ this.name = "gregorian";
+ this.dayNames = new n.XFAObjectArray(2);
+ this.eraNames = null;
+ this.meridiemNames = null;
+ this.monthNames = new n.XFAObjectArray(2);
+ }
+ }
+ class CurrencySymbol extends n.StringObject {
+ constructor(e) {
+ super(s, "currencySymbol");
+ this.name = (0, i.getStringOption)(e.name, [
+ "symbol",
+ "isoname",
+ "decimal",
+ ]);
+ }
+ }
+ class CurrencySymbols extends n.XFAObject {
+ constructor(e) {
+ super(s, "currencySymbols", !0);
+ this.currencySymbol = new n.XFAObjectArray(3);
+ }
+ }
+ class DatePattern extends n.StringObject {
+ constructor(e) {
+ super(s, "datePattern");
+ this.name = (0, i.getStringOption)(e.name, [
+ "full",
+ "long",
+ "med",
+ "short",
+ ]);
+ }
+ }
+ class DatePatterns extends n.XFAObject {
+ constructor(e) {
+ super(s, "datePatterns", !0);
+ this.datePattern = new n.XFAObjectArray(4);
+ }
+ }
+ class DateTimeSymbols extends n.ContentObject {
+ constructor(e) {
+ super(s, "dateTimeSymbols");
+ }
+ }
+ class Day extends n.StringObject {
+ constructor(e) {
+ super(s, "day");
+ }
+ }
+ class DayNames extends n.XFAObject {
+ constructor(e) {
+ super(s, "dayNames", !0);
+ this.abbr = (0, i.getInteger)({
+ data: e.abbr,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.day = new n.XFAObjectArray(7);
+ }
+ }
+ class Era extends n.StringObject {
+ constructor(e) {
+ super(s, "era");
+ }
+ }
+ class EraNames extends n.XFAObject {
+ constructor(e) {
+ super(s, "eraNames", !0);
+ this.era = new n.XFAObjectArray(2);
+ }
+ }
+ class Locale extends n.XFAObject {
+ constructor(e) {
+ super(s, "locale", !0);
+ this.desc = e.desc || "";
+ this.name = "isoname";
+ this.calendarSymbols = null;
+ this.currencySymbols = null;
+ this.datePatterns = null;
+ this.dateTimeSymbols = null;
+ this.numberPatterns = null;
+ this.numberSymbols = null;
+ this.timePatterns = null;
+ this.typeFaces = null;
+ }
+ }
+ class LocaleSet extends n.XFAObject {
+ constructor(e) {
+ super(s, "localeSet", !0);
+ this.locale = new n.XFAObjectArray();
+ }
+ }
+ class Meridiem extends n.StringObject {
+ constructor(e) {
+ super(s, "meridiem");
+ }
+ }
+ class MeridiemNames extends n.XFAObject {
+ constructor(e) {
+ super(s, "meridiemNames", !0);
+ this.meridiem = new n.XFAObjectArray(2);
+ }
+ }
+ class Month extends n.StringObject {
+ constructor(e) {
+ super(s, "month");
+ }
+ }
+ class MonthNames extends n.XFAObject {
+ constructor(e) {
+ super(s, "monthNames", !0);
+ this.abbr = (0, i.getInteger)({
+ data: e.abbr,
+ defaultValue: 0,
+ validate: (e) => 1 === e,
+ });
+ this.month = new n.XFAObjectArray(12);
+ }
+ }
+ class NumberPattern extends n.StringObject {
+ constructor(e) {
+ super(s, "numberPattern");
+ this.name = (0, i.getStringOption)(e.name, [
+ "full",
+ "long",
+ "med",
+ "short",
+ ]);
+ }
+ }
+ class NumberPatterns extends n.XFAObject {
+ constructor(e) {
+ super(s, "numberPatterns", !0);
+ this.numberPattern = new n.XFAObjectArray(4);
+ }
+ }
+ class NumberSymbol extends n.StringObject {
+ constructor(e) {
+ super(s, "numberSymbol");
+ this.name = (0, i.getStringOption)(e.name, [
+ "decimal",
+ "grouping",
+ "percent",
+ "minus",
+ "zero",
+ ]);
+ }
+ }
+ class NumberSymbols extends n.XFAObject {
+ constructor(e) {
+ super(s, "numberSymbols", !0);
+ this.numberSymbol = new n.XFAObjectArray(5);
+ }
+ }
+ class TimePattern extends n.StringObject {
+ constructor(e) {
+ super(s, "timePattern");
+ this.name = (0, i.getStringOption)(e.name, [
+ "full",
+ "long",
+ "med",
+ "short",
+ ]);
+ }
+ }
+ class TimePatterns extends n.XFAObject {
+ constructor(e) {
+ super(s, "timePatterns", !0);
+ this.timePattern = new n.XFAObjectArray(4);
+ }
+ }
+ class TypeFace extends n.XFAObject {
+ constructor(e) {
+ super(s, "typeFace", !0);
+ this.name = "" | e.name;
+ }
+ }
+ class TypeFaces extends n.XFAObject {
+ constructor(e) {
+ super(s, "typeFaces", !0);
+ this.typeFace = new n.XFAObjectArray();
+ }
+ }
+ class LocaleSetNamespace {
+ static [r.$buildXFAObject](e, t) {
+ if (LocaleSetNamespace.hasOwnProperty(e))
+ return LocaleSetNamespace[e](t);
+ }
+ static calendarSymbols(e) {
+ return new CalendarSymbols(e);
+ }
+ static currencySymbol(e) {
+ return new CurrencySymbol(e);
+ }
+ static currencySymbols(e) {
+ return new CurrencySymbols(e);
+ }
+ static datePattern(e) {
+ return new DatePattern(e);
+ }
+ static datePatterns(e) {
+ return new DatePatterns(e);
+ }
+ static dateTimeSymbols(e) {
+ return new DateTimeSymbols(e);
+ }
+ static day(e) {
+ return new Day(e);
+ }
+ static dayNames(e) {
+ return new DayNames(e);
+ }
+ static era(e) {
+ return new Era(e);
+ }
+ static eraNames(e) {
+ return new EraNames(e);
+ }
+ static locale(e) {
+ return new Locale(e);
+ }
+ static localeSet(e) {
+ return new LocaleSet(e);
+ }
+ static meridiem(e) {
+ return new Meridiem(e);
+ }
+ static meridiemNames(e) {
+ return new MeridiemNames(e);
+ }
+ static month(e) {
+ return new Month(e);
+ }
+ static monthNames(e) {
+ return new MonthNames(e);
+ }
+ static numberPattern(e) {
+ return new NumberPattern(e);
+ }
+ static numberPatterns(e) {
+ return new NumberPatterns(e);
+ }
+ static numberSymbol(e) {
+ return new NumberSymbol(e);
+ }
+ static numberSymbols(e) {
+ return new NumberSymbols(e);
+ }
+ static timePattern(e) {
+ return new TimePattern(e);
+ }
+ static timePatterns(e) {
+ return new TimePatterns(e);
+ }
+ static typeFace(e) {
+ return new TypeFace(e);
+ }
+ static typeFaces(e) {
+ return new TypeFaces(e);
+ }
+ }
+ t.LocaleSetNamespace = LocaleSetNamespace;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.SignatureNamespace = void 0;
+ var r = a(81),
+ n = a(87);
+ const i = r.NamespaceIds.signature.id;
+ class Signature extends n.XFAObject {
+ constructor(e) {
+ super(i, "signature", !0);
+ }
+ }
+ class SignatureNamespace {
+ static [r.$buildXFAObject](e, t) {
+ if (SignatureNamespace.hasOwnProperty(e))
+ return SignatureNamespace[e](t);
+ }
+ static signature(e) {
+ return new Signature(e);
+ }
+ }
+ t.SignatureNamespace = SignatureNamespace;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.StylesheetNamespace = void 0;
+ var r = a(81),
+ n = a(87);
+ const i = r.NamespaceIds.stylesheet.id;
+ class Stylesheet extends n.XFAObject {
+ constructor(e) {
+ super(i, "stylesheet", !0);
+ }
+ }
+ class StylesheetNamespace {
+ static [r.$buildXFAObject](e, t) {
+ if (StylesheetNamespace.hasOwnProperty(e))
+ return StylesheetNamespace[e](t);
+ }
+ static stylesheet(e) {
+ return new Stylesheet(e);
+ }
+ }
+ t.StylesheetNamespace = StylesheetNamespace;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.XdpNamespace = void 0;
+ var r = a(81),
+ n = a(78),
+ i = a(87);
+ const s = r.NamespaceIds.xdp.id;
+ class Xdp extends i.XFAObject {
+ constructor(e) {
+ super(s, "xdp", !0);
+ this.uuid = e.uuid || "";
+ this.timeStamp = e.timeStamp || "";
+ this.config = null;
+ this.connectionSet = null;
+ this.datasets = null;
+ this.localeSet = null;
+ this.stylesheet = new i.XFAObjectArray();
+ this.template = null;
+ }
+ [n.$onChildCheck](e) {
+ const t = r.NamespaceIds[e[n.$nodeName]];
+ return t && e[n.$namespaceId] === t.id;
+ }
+ }
+ class XdpNamespace {
+ static [r.$buildXFAObject](e, t) {
+ if (XdpNamespace.hasOwnProperty(e)) return XdpNamespace[e](t);
+ }
+ static xdp(e) {
+ return new Xdp(e);
+ }
+ }
+ t.XdpNamespace = XdpNamespace;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.XhtmlNamespace = void 0;
+ var r = a(78),
+ n = a(81),
+ i = a(83),
+ s = a(84),
+ o = a(87);
+ const c = n.NamespaceIds.xhtml.id,
+ l = Symbol(),
+ h = new Set([
+ "color",
+ "font",
+ "font-family",
+ "font-size",
+ "font-stretch",
+ "font-style",
+ "font-weight",
+ "margin",
+ "margin-bottom",
+ "margin-left",
+ "margin-right",
+ "margin-top",
+ "letter-spacing",
+ "line-height",
+ "orphans",
+ "page-break-after",
+ "page-break-before",
+ "page-break-inside",
+ "tab-interval",
+ "tab-stop",
+ "text-align",
+ "text-decoration",
+ "text-indent",
+ "vertical-align",
+ "widows",
+ "kerning-mode",
+ "xfa-font-horizontal-scale",
+ "xfa-font-vertical-scale",
+ "xfa-spacerun",
+ "xfa-tab-stops",
+ ]),
+ u = new Map([
+ ["page-break-after", "breakAfter"],
+ ["page-break-before", "breakBefore"],
+ ["page-break-inside", "breakInside"],
+ ["kerning-mode", (e) => ("none" === e ? "none" : "normal")],
+ [
+ "xfa-font-horizontal-scale",
+ (e) =>
+ `scaleX(${Math.max(0, Math.min(parseInt(e) / 100)).toFixed(
+ 2,
+ )})`,
+ ],
+ [
+ "xfa-font-vertical-scale",
+ (e) =>
+ `scaleY(${Math.max(0, Math.min(parseInt(e) / 100)).toFixed(
+ 2,
+ )})`,
+ ],
+ ["xfa-spacerun", ""],
+ ["xfa-tab-stops", ""],
+ [
+ "font-size",
+ (e, t) => {
+ e = t.fontSize = (0, s.getMeasurement)(e);
+ return (0, i.measureToString)(0.99 * e);
+ },
+ ],
+ [
+ "letter-spacing",
+ (e) => (0, i.measureToString)((0, s.getMeasurement)(e)),
+ ],
+ [
+ "line-height",
+ (e) => (0, i.measureToString)((0, s.getMeasurement)(e)),
+ ],
+ [
+ "margin",
+ (e) => (0, i.measureToString)((0, s.getMeasurement)(e)),
+ ],
+ [
+ "margin-bottom",
+ (e) => (0, i.measureToString)((0, s.getMeasurement)(e)),
+ ],
+ [
+ "margin-left",
+ (e) => (0, i.measureToString)((0, s.getMeasurement)(e)),
+ ],
+ [
+ "margin-right",
+ (e) => (0, i.measureToString)((0, s.getMeasurement)(e)),
+ ],
+ [
+ "margin-top",
+ (e) => (0, i.measureToString)((0, s.getMeasurement)(e)),
+ ],
+ [
+ "text-indent",
+ (e) => (0, i.measureToString)((0, s.getMeasurement)(e)),
+ ],
+ ["font-family", (e) => e],
+ [
+ "vertical-align",
+ (e) => (0, i.measureToString)((0, s.getMeasurement)(e)),
+ ],
+ ]),
+ d = /\s+/g,
+ f = /[\r\n]+/g,
+ g = /\r\n?/g;
+ function mapStyle(e, t, a) {
+ const n = Object.create(null);
+ if (!e) return n;
+ const o = Object.create(null);
+ for (const [t, a] of e.split(";").map((e) => e.split(":", 2))) {
+ const e = u.get(t);
+ if ("" === e) continue;
+ let r = a;
+ e && (r = "string" == typeof e ? e : e(a, o));
+ t.endsWith("scale")
+ ? (n.transform = n.transform ? `${n[t]} ${r}` : r)
+ : (n[t.replaceAll(/-([a-zA-Z])/g, (e, t) => t.toUpperCase())] =
+ r);
+ }
+ n.fontFamily &&
+ (0, i.setFontFamily)(
+ {
+ typeface: n.fontFamily,
+ weight: n.fontWeight || "normal",
+ posture: n.fontStyle || "normal",
+ size: o.fontSize || 0,
+ },
+ t,
+ t[r.$globalData].fontFinder,
+ n,
+ );
+ if (
+ a &&
+ n.verticalAlign &&
+ "0px" !== n.verticalAlign &&
+ n.fontSize
+ ) {
+ const e = 0.583,
+ t = 0.333,
+ a = (0, s.getMeasurement)(n.fontSize);
+ n.fontSize = (0, i.measureToString)(a * e);
+ n.verticalAlign = (0, i.measureToString)(
+ Math.sign((0, s.getMeasurement)(n.verticalAlign)) * a * t,
+ );
+ }
+ a &&
+ n.fontSize &&
+ (n.fontSize = `calc(${n.fontSize} * var(--scale-factor))`);
+ (0, i.fixTextIndent)(n);
+ return n;
+ }
+ const p = new Set(["body", "html"]);
+ class XhtmlObject extends o.XmlObject {
+ constructor(e, t) {
+ super(c, t);
+ this[l] = !1;
+ this.style = e.style || "";
+ }
+ [r.$clean](e) {
+ super[r.$clean](e);
+ this.style = (function checkStyle(e) {
+ return e.style
+ ? e.style
+ .trim()
+ .split(/\s*;\s*/)
+ .filter((e) => !!e)
+ .map((e) => e.split(/\s*:\s*/, 2))
+ .filter(([t, a]) => {
+ "font-family" === t &&
+ e[r.$globalData].usedTypefaces.add(a);
+ return h.has(t);
+ })
+ .map((e) => e.join(":"))
+ .join(";")
+ : "";
+ })(this);
+ }
+ [r.$acceptWhitespace]() {
+ return !p.has(this[r.$nodeName]);
+ }
+ [r.$onText](e, t = !1) {
+ if (t) this[l] = !0;
+ else {
+ e = e.replaceAll(f, "");
+ this.style.includes("xfa-spacerun:yes") ||
+ (e = e.replaceAll(d, " "));
+ }
+ e && (this[r.$content] += e);
+ }
+ [r.$pushGlyphs](e, t = !0) {
+ const a = Object.create(null),
+ n = { top: NaN, bottom: NaN, left: NaN, right: NaN };
+ let i = null;
+ for (const [e, t] of this.style
+ .split(";")
+ .map((e) => e.split(":", 2)))
+ switch (e) {
+ case "font-family":
+ a.typeface = (0, s.stripQuotes)(t);
+ break;
+ case "font-size":
+ a.size = (0, s.getMeasurement)(t);
+ break;
+ case "font-weight":
+ a.weight = t;
+ break;
+ case "font-style":
+ a.posture = t;
+ break;
+ case "letter-spacing":
+ a.letterSpacing = (0, s.getMeasurement)(t);
+ break;
+ case "margin":
+ const e = t
+ .split(/ \t/)
+ .map((e) => (0, s.getMeasurement)(e));
+ switch (e.length) {
+ case 1:
+ n.top = n.bottom = n.left = n.right = e[0];
+ break;
+ case 2:
+ n.top = n.bottom = e[0];
+ n.left = n.right = e[1];
+ break;
+ case 3:
+ n.top = e[0];
+ n.bottom = e[2];
+ n.left = n.right = e[1];
+ break;
+ case 4:
+ n.top = e[0];
+ n.left = e[1];
+ n.bottom = e[2];
+ n.right = e[3];
+ }
+ break;
+ case "margin-top":
+ n.top = (0, s.getMeasurement)(t);
+ break;
+ case "margin-bottom":
+ n.bottom = (0, s.getMeasurement)(t);
+ break;
+ case "margin-left":
+ n.left = (0, s.getMeasurement)(t);
+ break;
+ case "margin-right":
+ n.right = (0, s.getMeasurement)(t);
+ break;
+ case "line-height":
+ i = (0, s.getMeasurement)(t);
+ }
+ e.pushData(a, n, i);
+ if (this[r.$content]) e.addString(this[r.$content]);
+ else
+ for (const t of this[r.$getChildren]())
+ "#text" !== t[r.$nodeName]
+ ? t[r.$pushGlyphs](e)
+ : e.addString(t[r.$content]);
+ t && e.popFont();
+ }
+ [r.$toHTML](e) {
+ const t = [];
+ this[r.$extra] = { children: t };
+ this[r.$childrenToHTML]({});
+ if (0 === t.length && !this[r.$content])
+ return s.HTMLResult.EMPTY;
+ let a;
+ a = this[l]
+ ? this[r.$content]
+ ? this[r.$content].replaceAll(g, "\n")
+ : void 0
+ : this[r.$content] || void 0;
+ return s.HTMLResult.success({
+ name: this[r.$nodeName],
+ attributes: {
+ href: this.href,
+ style: mapStyle(this.style, this, this[l]),
+ },
+ children: t,
+ value: a,
+ });
+ }
+ }
+ class A extends XhtmlObject {
+ constructor(e) {
+ super(e, "a");
+ this.href = (0, i.fixURL)(e.href) || "";
+ }
+ }
+ class B extends XhtmlObject {
+ constructor(e) {
+ super(e, "b");
+ }
+ [r.$pushGlyphs](e) {
+ e.pushFont({ weight: "bold" });
+ super[r.$pushGlyphs](e);
+ e.popFont();
+ }
+ }
+ class Body extends XhtmlObject {
+ constructor(e) {
+ super(e, "body");
+ }
+ [r.$toHTML](e) {
+ const t = super[r.$toHTML](e),
+ { html: a } = t;
+ if (!a) return s.HTMLResult.EMPTY;
+ a.name = "div";
+ a.attributes.class = ["xfaRich"];
+ return t;
+ }
+ }
+ class Br extends XhtmlObject {
+ constructor(e) {
+ super(e, "br");
+ }
+ [r.$text]() {
+ return "\n";
+ }
+ [r.$pushGlyphs](e) {
+ e.addString("\n");
+ }
+ [r.$toHTML](e) {
+ return s.HTMLResult.success({ name: "br" });
+ }
+ }
+ class Html extends XhtmlObject {
+ constructor(e) {
+ super(e, "html");
+ }
+ [r.$toHTML](e) {
+ const t = [];
+ this[r.$extra] = { children: t };
+ this[r.$childrenToHTML]({});
+ if (0 === t.length)
+ return s.HTMLResult.success({
+ name: "div",
+ attributes: { class: ["xfaRich"], style: {} },
+ value: this[r.$content] || "",
+ });
+ if (1 === t.length) {
+ const e = t[0];
+ if (e.attributes?.class.includes("xfaRich"))
+ return s.HTMLResult.success(e);
+ }
+ return s.HTMLResult.success({
+ name: "div",
+ attributes: { class: ["xfaRich"], style: {} },
+ children: t,
+ });
+ }
+ }
+ class I extends XhtmlObject {
+ constructor(e) {
+ super(e, "i");
+ }
+ [r.$pushGlyphs](e) {
+ e.pushFont({ posture: "italic" });
+ super[r.$pushGlyphs](e);
+ e.popFont();
+ }
+ }
+ class Li extends XhtmlObject {
+ constructor(e) {
+ super(e, "li");
+ }
+ }
+ class Ol extends XhtmlObject {
+ constructor(e) {
+ super(e, "ol");
+ }
+ }
+ class P extends XhtmlObject {
+ constructor(e) {
+ super(e, "p");
+ }
+ [r.$pushGlyphs](e) {
+ super[r.$pushGlyphs](e, !1);
+ e.addString("\n");
+ e.addPara();
+ e.popFont();
+ }
+ [r.$text]() {
+ return this[r.$getParent]()[r.$getChildren]().at(-1) === this
+ ? super[r.$text]()
+ : super[r.$text]() + "\n";
+ }
+ }
+ class Span extends XhtmlObject {
+ constructor(e) {
+ super(e, "span");
+ }
+ }
+ class Sub extends XhtmlObject {
+ constructor(e) {
+ super(e, "sub");
+ }
+ }
+ class Sup extends XhtmlObject {
+ constructor(e) {
+ super(e, "sup");
+ }
+ }
+ class Ul extends XhtmlObject {
+ constructor(e) {
+ super(e, "ul");
+ }
+ }
+ class XhtmlNamespace {
+ static [n.$buildXFAObject](e, t) {
+ if (XhtmlNamespace.hasOwnProperty(e)) return XhtmlNamespace[e](t);
+ }
+ static a(e) {
+ return new A(e);
+ }
+ static b(e) {
+ return new B(e);
+ }
+ static body(e) {
+ return new Body(e);
+ }
+ static br(e) {
+ return new Br(e);
+ }
+ static html(e) {
+ return new Html(e);
+ }
+ static i(e) {
+ return new I(e);
+ }
+ static li(e) {
+ return new Li(e);
+ }
+ static ol(e) {
+ return new Ol(e);
+ }
+ static p(e) {
+ return new P(e);
+ }
+ static span(e) {
+ return new Span(e);
+ }
+ static sub(e) {
+ return new Sub(e);
+ }
+ static sup(e) {
+ return new Sup(e);
+ }
+ static ul(e) {
+ return new Ul(e);
+ }
+ }
+ t.XhtmlNamespace = XhtmlNamespace;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.UnknownNamespace = void 0;
+ var r = a(81),
+ n = a(87);
+ class UnknownNamespace {
+ constructor(e) {
+ this.namespaceId = e;
+ }
+ [r.$buildXFAObject](e, t) {
+ return new n.XmlObject(this.namespaceId, e, t);
+ }
+ }
+ t.UnknownNamespace = UnknownNamespace;
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.DatasetReader = void 0;
+ var r = a(2),
+ n = a(3),
+ i = a(71);
+ function decodeString(e) {
+ try {
+ return (0, r.stringToUTF8String)(e);
+ } catch (t) {
+ (0, r.warn)(`UTF-8 decoding failed: "${t}".`);
+ return e;
+ }
+ }
+ class DatasetXMLParser extends i.SimpleXMLParser {
+ constructor(e) {
+ super(e);
+ this.node = null;
+ }
+ onEndElement(e) {
+ const t = super.onEndElement(e);
+ if (t && "xfa:datasets" === e) {
+ this.node = t;
+ throw new Error("Aborting DatasetXMLParser.");
+ }
+ }
+ }
+ t.DatasetReader = class DatasetReader {
+ constructor(e) {
+ if (e.datasets)
+ this.node = new i.SimpleXMLParser({
+ hasAttributes: !0,
+ }).parseFromString(e.datasets).documentElement;
+ else {
+ const t = new DatasetXMLParser({ hasAttributes: !0 });
+ try {
+ t.parseFromString(e["xdp:xdp"]);
+ } catch {}
+ this.node = t.node;
+ }
+ }
+ getValue(e) {
+ if (!this.node || !e) return "";
+ const t = this.node.searchNode((0, n.parseXFAPath)(e), 0);
+ if (!t) return "";
+ const a = t.firstChild;
+ return "value" === a?.nodeName
+ ? t.children.map((e) => decodeString(e.textContent))
+ : decodeString(t.textContent);
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.XRef = void 0;
+ var r = a(2),
+ n = a(4),
+ i = a(16),
+ s = a(3),
+ o = a(5),
+ c = a(74);
+ t.XRef = class XRef {
+ #B = null;
+ constructor(e, t) {
+ this.stream = e;
+ this.pdfManager = t;
+ this.entries = [];
+ this._xrefStms = new Set();
+ this._cacheMap = new Map();
+ this._pendingRefs = new n.RefSet();
+ this._newPersistentRefNum = null;
+ this._newTemporaryRefNum = null;
+ }
+ getNewPersistentRef(e) {
+ null === this._newPersistentRefNum &&
+ (this._newPersistentRefNum = this.entries.length || 1);
+ const t = this._newPersistentRefNum++;
+ this._cacheMap.set(t, e);
+ return n.Ref.get(t, 0);
+ }
+ getNewTemporaryRef() {
+ null === this._newTemporaryRefNum &&
+ (this._newTemporaryRefNum = this.entries.length || 1);
+ return n.Ref.get(this._newTemporaryRefNum++, 0);
+ }
+ resetNewTemporaryRef() {
+ this._newTemporaryRefNum = null;
+ }
+ setStartXRef(e) {
+ this.startXRefQueue = [e];
+ }
+ parse(e = !1) {
+ let t, a, i;
+ if (e) {
+ (0, r.warn)("Indexing all PDF objects");
+ t = this.indexObjects();
+ } else t = this.readXRef();
+ t.assignXref(this);
+ this.trailer = t;
+ try {
+ a = t.get("Encrypt");
+ } catch (e) {
+ if (e instanceof s.MissingDataException) throw e;
+ (0, r.warn)(
+ `XRef.parse - Invalid "Encrypt" reference: "${e}".`,
+ );
+ }
+ if (a instanceof n.Dict) {
+ const e = t.get("ID"),
+ r = e?.length ? e[0] : "";
+ a.suppressEncryption = !0;
+ this.encrypt = new c.CipherTransformFactory(
+ a,
+ r,
+ this.pdfManager.password,
+ );
+ }
+ try {
+ i = t.get("Root");
+ } catch (e) {
+ if (e instanceof s.MissingDataException) throw e;
+ (0, r.warn)(`XRef.parse - Invalid "Root" reference: "${e}".`);
+ }
+ if (i instanceof n.Dict)
+ try {
+ if (i.get("Pages") instanceof n.Dict) {
+ this.root = i;
+ return;
+ }
+ } catch (e) {
+ if (e instanceof s.MissingDataException) throw e;
+ (0, r.warn)(
+ `XRef.parse - Invalid "Pages" reference: "${e}".`,
+ );
+ }
+ if (!e) throw new s.XRefParseException();
+ throw new r.InvalidPDFException("Invalid Root reference.");
+ }
+ processXRefTable(e) {
+ "tableState" in this ||
+ (this.tableState = {
+ entryNum: 0,
+ streamPos: e.lexer.stream.pos,
+ parserBuf1: e.buf1,
+ parserBuf2: e.buf2,
+ });
+ const t = this.readXRefTable(e);
+ if (!(0, n.isCmd)(t, "trailer"))
+ throw new r.FormatError(
+ "Invalid XRef table: could not find trailer dictionary",
+ );
+ let a = e.getObj();
+ a instanceof n.Dict || !a.dict || (a = a.dict);
+ if (!(a instanceof n.Dict))
+ throw new r.FormatError(
+ "Invalid XRef table: could not parse trailer dictionary",
+ );
+ delete this.tableState;
+ return a;
+ }
+ readXRefTable(e) {
+ const t = e.lexer.stream,
+ a = this.tableState;
+ t.pos = a.streamPos;
+ e.buf1 = a.parserBuf1;
+ e.buf2 = a.parserBuf2;
+ let i;
+ for (;;) {
+ if (!("firstEntryNum" in a) || !("entryCount" in a)) {
+ if ((0, n.isCmd)((i = e.getObj()), "trailer")) break;
+ a.firstEntryNum = i;
+ a.entryCount = e.getObj();
+ }
+ let s = a.firstEntryNum;
+ const o = a.entryCount;
+ if (!Number.isInteger(s) || !Number.isInteger(o))
+ throw new r.FormatError(
+ "Invalid XRef table: wrong types in subsection header",
+ );
+ for (let i = a.entryNum; i < o; i++) {
+ a.streamPos = t.pos;
+ a.entryNum = i;
+ a.parserBuf1 = e.buf1;
+ a.parserBuf2 = e.buf2;
+ const c = {};
+ c.offset = e.getObj();
+ c.gen = e.getObj();
+ const l = e.getObj();
+ if (l instanceof n.Cmd)
+ switch (l.cmd) {
+ case "f":
+ c.free = !0;
+ break;
+ case "n":
+ c.uncompressed = !0;
+ }
+ if (
+ !Number.isInteger(c.offset) ||
+ !Number.isInteger(c.gen) ||
+ (!c.free && !c.uncompressed)
+ )
+ throw new r.FormatError(
+ `Invalid entry in XRef subsection: ${s}, ${o}`,
+ );
+ 0 === i && c.free && 1 === s && (s = 0);
+ this.entries[i + s] || (this.entries[i + s] = c);
+ }
+ a.entryNum = 0;
+ a.streamPos = t.pos;
+ a.parserBuf1 = e.buf1;
+ a.parserBuf2 = e.buf2;
+ delete a.firstEntryNum;
+ delete a.entryCount;
+ }
+ if (this.entries[0] && !this.entries[0].free)
+ throw new r.FormatError(
+ "Invalid XRef table: unexpected first object",
+ );
+ return i;
+ }
+ processXRefStream(e) {
+ if (!("streamState" in this)) {
+ const t = e.dict,
+ a = t.get("W");
+ let r = t.get("Index");
+ r || (r = [0, t.get("Size")]);
+ this.streamState = {
+ entryRanges: r,
+ byteWidths: a,
+ entryNum: 0,
+ streamPos: e.pos,
+ };
+ }
+ this.readXRefStream(e);
+ delete this.streamState;
+ return e.dict;
+ }
+ readXRefStream(e) {
+ const t = this.streamState;
+ e.pos = t.streamPos;
+ const [a, n, i] = t.byteWidths,
+ s = t.entryRanges;
+ for (; s.length > 0; ) {
+ const [o, c] = s;
+ if (!Number.isInteger(o) || !Number.isInteger(c))
+ throw new r.FormatError(
+ `Invalid XRef range fields: ${o}, ${c}`,
+ );
+ if (
+ !Number.isInteger(a) ||
+ !Number.isInteger(n) ||
+ !Number.isInteger(i)
+ )
+ throw new r.FormatError(
+ `Invalid XRef entry fields length: ${o}, ${c}`,
+ );
+ for (let s = t.entryNum; s < c; ++s) {
+ t.entryNum = s;
+ t.streamPos = e.pos;
+ let c = 0,
+ l = 0,
+ h = 0;
+ for (let t = 0; t < a; ++t) {
+ const t = e.getByte();
+ if (-1 === t)
+ throw new r.FormatError(
+ "Invalid XRef byteWidths 'type'.",
+ );
+ c = (c << 8) | t;
+ }
+ 0 === a && (c = 1);
+ for (let t = 0; t < n; ++t) {
+ const t = e.getByte();
+ if (-1 === t)
+ throw new r.FormatError(
+ "Invalid XRef byteWidths 'offset'.",
+ );
+ l = (l << 8) | t;
+ }
+ for (let t = 0; t < i; ++t) {
+ const t = e.getByte();
+ if (-1 === t)
+ throw new r.FormatError(
+ "Invalid XRef byteWidths 'generation'.",
+ );
+ h = (h << 8) | t;
+ }
+ const u = {};
+ u.offset = l;
+ u.gen = h;
+ switch (c) {
+ case 0:
+ u.free = !0;
+ break;
+ case 1:
+ u.uncompressed = !0;
+ break;
+ case 2:
+ break;
+ default:
+ throw new r.FormatError(`Invalid XRef entry type: ${c}`);
+ }
+ this.entries[o + s] || (this.entries[o + s] = u);
+ }
+ t.entryNum = 0;
+ t.streamPos = e.pos;
+ s.splice(0, 2);
+ }
+ }
+ indexObjects() {
+ function readToken(e, t) {
+ let a = "",
+ r = e[t];
+ for (
+ ;
+ 10 !== r && 13 !== r && 60 !== r && !(++t >= e.length);
+
+ ) {
+ a += String.fromCharCode(r);
+ r = e[t];
+ }
+ return a;
+ }
+ function skipUntil(e, t, a) {
+ const r = a.length,
+ n = e.length;
+ let i = 0;
+ for (; t < n; ) {
+ let n = 0;
+ for (; n < r && e[t + n] === a[n]; ) ++n;
+ if (n >= r) break;
+ t++;
+ i++;
+ }
+ return i;
+ }
+ const e = /\b(endobj|\d+\s+\d+\s+obj|xref|trailer\s*<<)\b/g,
+ t = /\b(startxref|\d+\s+\d+\s+obj)\b/g,
+ a = /^(\d+)\s+(\d+)\s+obj\b/,
+ o = new Uint8Array([116, 114, 97, 105, 108, 101, 114]),
+ c = new Uint8Array([
+ 115, 116, 97, 114, 116, 120, 114, 101, 102,
+ ]),
+ l = new Uint8Array([47, 88, 82, 101, 102]);
+ this.entries.length = 0;
+ this._cacheMap.clear();
+ const h = this.stream;
+ h.pos = 0;
+ const u = h.getBytes(),
+ d = (0, r.bytesToString)(u),
+ f = u.length;
+ let g = h.start;
+ const p = [],
+ m = [];
+ for (; g < f; ) {
+ let n = u[g];
+ if (9 === n || 10 === n || 13 === n || 32 === n) {
+ ++g;
+ continue;
+ }
+ if (37 === n) {
+ do {
+ ++g;
+ if (g >= f) break;
+ n = u[g];
+ } while (10 !== n && 13 !== n);
+ continue;
+ }
+ const b = readToken(u, g);
+ let y;
+ if (
+ b.startsWith("xref") &&
+ (4 === b.length || /\s/.test(b[4]))
+ ) {
+ g += skipUntil(u, g, o);
+ p.push(g);
+ g += skipUntil(u, g, c);
+ } else if ((y = a.exec(b))) {
+ const t = 0 | y[1],
+ a = 0 | y[2],
+ n = g + b.length;
+ let o,
+ c = !1;
+ if (this.entries[t]) {
+ if (this.entries[t].gen === a)
+ try {
+ new i.Parser({
+ lexer: new i.Lexer(h.makeSubStream(n)),
+ }).getObj();
+ c = !0;
+ } catch (e) {
+ e instanceof s.ParserEOFException
+ ? (0, r.warn)(
+ `indexObjects -- checking object (${b}): "${e}".`,
+ )
+ : (c = !0);
+ }
+ } else c = !0;
+ c &&
+ (this.entries[t] = {
+ offset: g - h.start,
+ gen: a,
+ uncompressed: !0,
+ });
+ e.lastIndex = n;
+ const p = e.exec(d);
+ if (p) {
+ o = e.lastIndex + 1 - g;
+ if ("endobj" !== p[1]) {
+ (0, r.warn)(
+ `indexObjects: Found "${p[1]}" inside of another "obj", caused by missing "endobj" -- trying to recover.`,
+ );
+ o -= p[1].length + 1;
+ }
+ } else o = f - g;
+ const w = u.subarray(g, g + o),
+ S = skipUntil(w, 0, l);
+ if (S < o && w[S + 5] < 64) {
+ m.push(g - h.start);
+ this._xrefStms.add(g - h.start);
+ }
+ g += o;
+ } else if (
+ b.startsWith("trailer") &&
+ (7 === b.length || /\s/.test(b[7]))
+ ) {
+ p.push(g);
+ const e = g + b.length;
+ let a;
+ t.lastIndex = e;
+ const n = t.exec(d);
+ if (n) {
+ a = t.lastIndex + 1 - g;
+ if ("startxref" !== n[1]) {
+ (0, r.warn)(
+ `indexObjects: Found "${n[1]}" after "trailer", caused by missing "startxref" -- trying to recover.`,
+ );
+ a -= n[1].length + 1;
+ }
+ } else a = f - g;
+ g += a;
+ } else g += b.length + 1;
+ }
+ for (const e of m) {
+ this.startXRefQueue.push(e);
+ this.readXRef(!0);
+ }
+ const b = [];
+ let y,
+ w,
+ S = !1;
+ for (const e of p) {
+ h.pos = e;
+ const t = new i.Parser({
+ lexer: new i.Lexer(h),
+ xref: this,
+ allowStreams: !0,
+ recoveryMode: !0,
+ }),
+ a = t.getObj();
+ if (!(0, n.isCmd)(a, "trailer")) continue;
+ const r = t.getObj();
+ if (r instanceof n.Dict) {
+ b.push(r);
+ r.has("Encrypt") && (S = !0);
+ }
+ }
+ for (const e of [...b, "genFallback", ...b]) {
+ if ("genFallback" === e) {
+ if (!w) break;
+ this._generationFallback = !0;
+ continue;
+ }
+ let t = !1;
+ try {
+ const a = e.get("Root");
+ if (!(a instanceof n.Dict)) continue;
+ const r = a.get("Pages");
+ if (!(r instanceof n.Dict)) continue;
+ const i = r.get("Count");
+ Number.isInteger(i) && (t = !0);
+ } catch (e) {
+ w = e;
+ continue;
+ }
+ if (t && (!S || e.has("Encrypt")) && e.has("ID")) return e;
+ y = e;
+ }
+ if (y) return y;
+ if (this.topDict) return this.topDict;
+ throw new r.InvalidPDFException("Invalid PDF structure.");
+ }
+ readXRef(e = !1) {
+ const t = this.stream,
+ a = new Set();
+ for (; this.startXRefQueue.length; ) {
+ try {
+ const e = this.startXRefQueue[0];
+ if (a.has(e)) {
+ (0, r.warn)(
+ "readXRef - skipping XRef table since it was already parsed.",
+ );
+ this.startXRefQueue.shift();
+ continue;
+ }
+ a.add(e);
+ t.pos = e + t.start;
+ const s = new i.Parser({
+ lexer: new i.Lexer(t),
+ xref: this,
+ allowStreams: !0,
+ });
+ let c,
+ l = s.getObj();
+ if ((0, n.isCmd)(l, "xref")) {
+ c = this.processXRefTable(s);
+ this.topDict || (this.topDict = c);
+ l = c.get("XRefStm");
+ if (Number.isInteger(l) && !this._xrefStms.has(l)) {
+ this._xrefStms.add(l);
+ this.startXRefQueue.push(l);
+ this.#B ??= l;
+ }
+ } else {
+ if (!Number.isInteger(l))
+ throw new r.FormatError("Invalid XRef stream header");
+ if (
+ !(
+ Number.isInteger(s.getObj()) &&
+ (0, n.isCmd)(s.getObj(), "obj") &&
+ (l = s.getObj()) instanceof o.BaseStream
+ )
+ )
+ throw new r.FormatError("Invalid XRef stream");
+ c = this.processXRefStream(l);
+ this.topDict || (this.topDict = c);
+ if (!c)
+ throw new r.FormatError("Failed to read XRef stream");
+ }
+ l = c.get("Prev");
+ Number.isInteger(l)
+ ? this.startXRefQueue.push(l)
+ : l instanceof n.Ref && this.startXRefQueue.push(l.num);
+ } catch (e) {
+ if (e instanceof s.MissingDataException) throw e;
+ (0, r.info)("(while reading XRef): " + e);
+ }
+ this.startXRefQueue.shift();
+ }
+ if (this.topDict) return this.topDict;
+ if (!e) throw new s.XRefParseException();
+ }
+ get lastXRefStreamPos() {
+ return (
+ this.#B ??
+ (this._xrefStms.size > 0 ? Math.max(...this._xrefStms) : null)
+ );
+ }
+ getEntry(e) {
+ const t = this.entries[e];
+ return t && !t.free && t.offset ? t : null;
+ }
+ fetchIfRef(e, t = !1) {
+ return e instanceof n.Ref ? this.fetch(e, t) : e;
+ }
+ fetch(e, t = !1) {
+ if (!(e instanceof n.Ref))
+ throw new Error("ref object is not a reference");
+ const a = e.num,
+ i = this._cacheMap.get(a);
+ if (void 0 !== i) {
+ i instanceof n.Dict && !i.objId && (i.objId = e.toString());
+ return i;
+ }
+ let s = this.getEntry(a);
+ if (null === s) {
+ this._cacheMap.set(a, s);
+ return s;
+ }
+ if (this._pendingRefs.has(e)) {
+ this._pendingRefs.remove(e);
+ (0, r.warn)(`Ignoring circular reference: ${e}.`);
+ return n.CIRCULAR_REF;
+ }
+ this._pendingRefs.put(e);
+ try {
+ s = s.uncompressed
+ ? this.fetchUncompressed(e, s, t)
+ : this.fetchCompressed(e, s, t);
+ this._pendingRefs.remove(e);
+ } catch (t) {
+ this._pendingRefs.remove(e);
+ throw t;
+ }
+ s instanceof n.Dict
+ ? (s.objId = e.toString())
+ : s instanceof o.BaseStream && (s.dict.objId = e.toString());
+ return s;
+ }
+ fetchUncompressed(e, t, a = !1) {
+ const c = e.gen;
+ let l = e.num;
+ if (t.gen !== c) {
+ const i = `Inconsistent generation in XRef: ${e}`;
+ if (this._generationFallback && t.gen < c) {
+ (0, r.warn)(i);
+ return this.fetchUncompressed(n.Ref.get(l, t.gen), t, a);
+ }
+ throw new s.XRefEntryException(i);
+ }
+ const h = this.stream.makeSubStream(t.offset + this.stream.start),
+ u = new i.Parser({
+ lexer: new i.Lexer(h),
+ xref: this,
+ allowStreams: !0,
+ }),
+ d = u.getObj(),
+ f = u.getObj(),
+ g = u.getObj();
+ if (d !== l || f !== c || !(g instanceof n.Cmd))
+ throw new s.XRefEntryException(
+ `Bad (uncompressed) XRef entry: ${e}`,
+ );
+ if ("obj" !== g.cmd) {
+ if (g.cmd.startsWith("obj")) {
+ l = parseInt(g.cmd.substring(3), 10);
+ if (!Number.isNaN(l)) return l;
+ }
+ throw new s.XRefEntryException(
+ `Bad (uncompressed) XRef entry: ${e}`,
+ );
+ }
+ (t =
+ this.encrypt && !a
+ ? u.getObj(this.encrypt.createCipherTransform(l, c))
+ : u.getObj()) instanceof o.BaseStream ||
+ this._cacheMap.set(l, t);
+ return t;
+ }
+ fetchCompressed(e, t, a = !1) {
+ const c = t.offset,
+ l = this.fetch(n.Ref.get(c, 0));
+ if (!(l instanceof o.BaseStream))
+ throw new r.FormatError("bad ObjStm stream");
+ const h = l.dict.get("First"),
+ u = l.dict.get("N");
+ if (!Number.isInteger(h) || !Number.isInteger(u))
+ throw new r.FormatError(
+ "invalid first and n parameters for ObjStm stream",
+ );
+ let d = new i.Parser({
+ lexer: new i.Lexer(l),
+ xref: this,
+ allowStreams: !0,
+ });
+ const f = new Array(u),
+ g = new Array(u);
+ for (let e = 0; e < u; ++e) {
+ const t = d.getObj();
+ if (!Number.isInteger(t))
+ throw new r.FormatError(
+ `invalid object number in the ObjStm stream: ${t}`,
+ );
+ const a = d.getObj();
+ if (!Number.isInteger(a))
+ throw new r.FormatError(
+ `invalid object offset in the ObjStm stream: ${a}`,
+ );
+ f[e] = t;
+ g[e] = a;
+ }
+ const p = (l.start || 0) + h,
+ m = new Array(u);
+ for (let e = 0; e < u; ++e) {
+ const t = e < u - 1 ? g[e + 1] - g[e] : void 0;
+ if (t < 0)
+ throw new r.FormatError(
+ "Invalid offset in the ObjStm stream.",
+ );
+ d = new i.Parser({
+ lexer: new i.Lexer(l.makeSubStream(p + g[e], t, l.dict)),
+ xref: this,
+ allowStreams: !0,
+ });
+ const a = d.getObj();
+ m[e] = a;
+ if (a instanceof o.BaseStream) continue;
+ const n = f[e],
+ s = this.entries[n];
+ s && s.offset === c && s.gen === e && this._cacheMap.set(n, a);
+ }
+ if (void 0 === (t = m[t.gen]))
+ throw new s.XRefEntryException(
+ `Bad (compressed) XRef entry: ${e}`,
+ );
+ return t;
+ }
+ async fetchIfRefAsync(e, t) {
+ return e instanceof n.Ref ? this.fetchAsync(e, t) : e;
+ }
+ async fetchAsync(e, t) {
+ try {
+ return this.fetch(e, t);
+ } catch (a) {
+ if (!(a instanceof s.MissingDataException)) throw a;
+ await this.pdfManager.requestRange(a.begin, a.end);
+ return this.fetchAsync(e, t);
+ }
+ }
+ getCatalogObj() {
+ return this.root;
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.MessageHandler = void 0;
+ var r = a(2);
+ const n = 1,
+ i = 2,
+ s = 1,
+ o = 2,
+ c = 3,
+ l = 4,
+ h = 5,
+ u = 6,
+ d = 7,
+ f = 8;
+ function wrapReason(e) {
+ e instanceof Error ||
+ ("object" == typeof e && null !== e) ||
+ (0, r.unreachable)(
+ 'wrapReason: Expected "reason" to be a (possibly cloned) Error.',
+ );
+ switch (e.name) {
+ case "AbortException":
+ return new r.AbortException(e.message);
+ case "MissingPDFException":
+ return new r.MissingPDFException(e.message);
+ case "PasswordException":
+ return new r.PasswordException(e.message, e.code);
+ case "UnexpectedResponseException":
+ return new r.UnexpectedResponseException(e.message, e.status);
+ case "UnknownErrorException":
+ return new r.UnknownErrorException(e.message, e.details);
+ default:
+ return new r.UnknownErrorException(e.message, e.toString());
+ }
+ }
+ t.MessageHandler = class MessageHandler {
+ constructor(e, t, a) {
+ this.sourceName = e;
+ this.targetName = t;
+ this.comObj = a;
+ this.callbackId = 1;
+ this.streamId = 1;
+ this.streamSinks = Object.create(null);
+ this.streamControllers = Object.create(null);
+ this.callbackCapabilities = Object.create(null);
+ this.actionHandler = Object.create(null);
+ this._onComObjOnMessage = (e) => {
+ const t = e.data;
+ if (t.targetName !== this.sourceName) return;
+ if (t.stream) {
+ this.#E(t);
+ return;
+ }
+ if (t.callback) {
+ const e = t.callbackId,
+ a = this.callbackCapabilities[e];
+ if (!a) throw new Error(`Cannot resolve callback ${e}`);
+ delete this.callbackCapabilities[e];
+ if (t.callback === n) a.resolve(t.data);
+ else {
+ if (t.callback !== i)
+ throw new Error("Unexpected callback case");
+ a.reject(wrapReason(t.reason));
+ }
+ return;
+ }
+ const r = this.actionHandler[t.action];
+ if (!r)
+ throw new Error(`Unknown action from worker: ${t.action}`);
+ if (t.callbackId) {
+ const e = this.sourceName,
+ s = t.sourceName;
+ new Promise(function (e) {
+ e(r(t.data));
+ }).then(
+ function (r) {
+ a.postMessage({
+ sourceName: e,
+ targetName: s,
+ callback: n,
+ callbackId: t.callbackId,
+ data: r,
+ });
+ },
+ function (r) {
+ a.postMessage({
+ sourceName: e,
+ targetName: s,
+ callback: i,
+ callbackId: t.callbackId,
+ reason: wrapReason(r),
+ });
+ },
+ );
+ } else t.streamId ? this.#N(t) : r(t.data);
+ };
+ a.addEventListener("message", this._onComObjOnMessage);
+ }
+ on(e, t) {
+ const a = this.actionHandler;
+ if (a[e])
+ throw new Error(`There is already an actionName called "${e}"`);
+ a[e] = t;
+ }
+ send(e, t, a) {
+ this.comObj.postMessage(
+ {
+ sourceName: this.sourceName,
+ targetName: this.targetName,
+ action: e,
+ data: t,
+ },
+ a,
+ );
+ }
+ sendWithPromise(e, t, a) {
+ const n = this.callbackId++,
+ i = new r.PromiseCapability();
+ this.callbackCapabilities[n] = i;
+ try {
+ this.comObj.postMessage(
+ {
+ sourceName: this.sourceName,
+ targetName: this.targetName,
+ action: e,
+ callbackId: n,
+ data: t,
+ },
+ a,
+ );
+ } catch (e) {
+ i.reject(e);
+ }
+ return i.promise;
+ }
+ sendWithStream(e, t, a, n) {
+ const i = this.streamId++,
+ o = this.sourceName,
+ c = this.targetName,
+ l = this.comObj;
+ return new ReadableStream(
+ {
+ start: (a) => {
+ const s = new r.PromiseCapability();
+ this.streamControllers[i] = {
+ controller: a,
+ startCall: s,
+ pullCall: null,
+ cancelCall: null,
+ isClosed: !1,
+ };
+ l.postMessage(
+ {
+ sourceName: o,
+ targetName: c,
+ action: e,
+ streamId: i,
+ data: t,
+ desiredSize: a.desiredSize,
+ },
+ n,
+ );
+ return s.promise;
+ },
+ pull: (e) => {
+ const t = new r.PromiseCapability();
+ this.streamControllers[i].pullCall = t;
+ l.postMessage({
+ sourceName: o,
+ targetName: c,
+ stream: u,
+ streamId: i,
+ desiredSize: e.desiredSize,
+ });
+ return t.promise;
+ },
+ cancel: (e) => {
+ (0, r.assert)(
+ e instanceof Error,
+ "cancel must have a valid reason",
+ );
+ const t = new r.PromiseCapability();
+ this.streamControllers[i].cancelCall = t;
+ this.streamControllers[i].isClosed = !0;
+ l.postMessage({
+ sourceName: o,
+ targetName: c,
+ stream: s,
+ streamId: i,
+ reason: wrapReason(e),
+ });
+ return t.promise;
+ },
+ },
+ a,
+ );
+ }
+ #N(e) {
+ const t = e.streamId,
+ a = this.sourceName,
+ n = e.sourceName,
+ i = this.comObj,
+ s = this,
+ o = this.actionHandler[e.action],
+ u = {
+ enqueue(e, s = 1, o) {
+ if (this.isCancelled) return;
+ const c = this.desiredSize;
+ this.desiredSize -= s;
+ if (c > 0 && this.desiredSize <= 0) {
+ this.sinkCapability = new r.PromiseCapability();
+ this.ready = this.sinkCapability.promise;
+ }
+ i.postMessage(
+ {
+ sourceName: a,
+ targetName: n,
+ stream: l,
+ streamId: t,
+ chunk: e,
+ },
+ o,
+ );
+ },
+ close() {
+ if (!this.isCancelled) {
+ this.isCancelled = !0;
+ i.postMessage({
+ sourceName: a,
+ targetName: n,
+ stream: c,
+ streamId: t,
+ });
+ delete s.streamSinks[t];
+ }
+ },
+ error(e) {
+ (0, r.assert)(
+ e instanceof Error,
+ "error must have a valid reason",
+ );
+ if (!this.isCancelled) {
+ this.isCancelled = !0;
+ i.postMessage({
+ sourceName: a,
+ targetName: n,
+ stream: h,
+ streamId: t,
+ reason: wrapReason(e),
+ });
+ }
+ },
+ sinkCapability: new r.PromiseCapability(),
+ onPull: null,
+ onCancel: null,
+ isCancelled: !1,
+ desiredSize: e.desiredSize,
+ ready: null,
+ };
+ u.sinkCapability.resolve();
+ u.ready = u.sinkCapability.promise;
+ this.streamSinks[t] = u;
+ new Promise(function (t) {
+ t(o(e.data, u));
+ }).then(
+ function () {
+ i.postMessage({
+ sourceName: a,
+ targetName: n,
+ stream: f,
+ streamId: t,
+ success: !0,
+ });
+ },
+ function (e) {
+ i.postMessage({
+ sourceName: a,
+ targetName: n,
+ stream: f,
+ streamId: t,
+ reason: wrapReason(e),
+ });
+ },
+ );
+ }
+ #E(e) {
+ const t = e.streamId,
+ a = this.sourceName,
+ n = e.sourceName,
+ i = this.comObj,
+ g = this.streamControllers[t],
+ p = this.streamSinks[t];
+ switch (e.stream) {
+ case f:
+ e.success
+ ? g.startCall.resolve()
+ : g.startCall.reject(wrapReason(e.reason));
+ break;
+ case d:
+ e.success
+ ? g.pullCall.resolve()
+ : g.pullCall.reject(wrapReason(e.reason));
+ break;
+ case u:
+ if (!p) {
+ i.postMessage({
+ sourceName: a,
+ targetName: n,
+ stream: d,
+ streamId: t,
+ success: !0,
+ });
+ break;
+ }
+ p.desiredSize <= 0 &&
+ e.desiredSize > 0 &&
+ p.sinkCapability.resolve();
+ p.desiredSize = e.desiredSize;
+ new Promise(function (e) {
+ e(p.onPull?.());
+ }).then(
+ function () {
+ i.postMessage({
+ sourceName: a,
+ targetName: n,
+ stream: d,
+ streamId: t,
+ success: !0,
+ });
+ },
+ function (e) {
+ i.postMessage({
+ sourceName: a,
+ targetName: n,
+ stream: d,
+ streamId: t,
+ reason: wrapReason(e),
+ });
+ },
+ );
+ break;
+ case l:
+ (0, r.assert)(g, "enqueue should have stream controller");
+ if (g.isClosed) break;
+ g.controller.enqueue(e.chunk);
+ break;
+ case c:
+ (0, r.assert)(g, "close should have stream controller");
+ if (g.isClosed) break;
+ g.isClosed = !0;
+ g.controller.close();
+ this.#R(g, t);
+ break;
+ case h:
+ (0, r.assert)(g, "error should have stream controller");
+ g.controller.error(wrapReason(e.reason));
+ this.#R(g, t);
+ break;
+ case o:
+ e.success
+ ? g.cancelCall.resolve()
+ : g.cancelCall.reject(wrapReason(e.reason));
+ this.#R(g, t);
+ break;
+ case s:
+ if (!p) break;
+ new Promise(function (t) {
+ t(p.onCancel?.(wrapReason(e.reason)));
+ }).then(
+ function () {
+ i.postMessage({
+ sourceName: a,
+ targetName: n,
+ stream: o,
+ streamId: t,
+ success: !0,
+ });
+ },
+ function (e) {
+ i.postMessage({
+ sourceName: a,
+ targetName: n,
+ stream: o,
+ streamId: t,
+ reason: wrapReason(e),
+ });
+ },
+ );
+ p.sinkCapability.reject(wrapReason(e.reason));
+ p.isCancelled = !0;
+ delete this.streamSinks[t];
+ break;
+ default:
+ throw new Error("Unexpected stream case");
+ }
+ }
+ async #R(e, t) {
+ await Promise.allSettled([
+ e.startCall?.promise,
+ e.pullCall?.promise,
+ e.cancelCall?.promise,
+ ]);
+ delete this.streamControllers[t];
+ }
+ destroy() {
+ this.comObj.removeEventListener(
+ "message",
+ this._onComObjOnMessage,
+ );
+ }
+ };
+ },
+ (e, t, a) => {
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ t.PDFWorkerStream = void 0;
+ var r = a(2);
+ t.PDFWorkerStream = class PDFWorkerStream {
+ constructor(e) {
+ this._msgHandler = e;
+ this._contentLength = null;
+ this._fullRequestReader = null;
+ this._rangeRequestReaders = [];
+ }
+ getFullReader() {
+ (0, r.assert)(
+ !this._fullRequestReader,
+ "PDFWorkerStream.getFullReader can only be called once.",
+ );
+ this._fullRequestReader = new PDFWorkerStreamReader(
+ this._msgHandler,
+ );
+ return this._fullRequestReader;
+ }
+ getRangeReader(e, t) {
+ const a = new PDFWorkerStreamRangeReader(e, t, this._msgHandler);
+ this._rangeRequestReaders.push(a);
+ return a;
+ }
+ cancelAllRequests(e) {
+ this._fullRequestReader?.cancel(e);
+ for (const t of this._rangeRequestReaders.slice(0)) t.cancel(e);
+ }
+ };
+ class PDFWorkerStreamReader {
+ constructor(e) {
+ this._msgHandler = e;
+ this.onProgress = null;
+ this._contentLength = null;
+ this._isRangeSupported = !1;
+ this._isStreamingSupported = !1;
+ const t = this._msgHandler.sendWithStream("GetReader");
+ this._reader = t.getReader();
+ this._headersReady = this._msgHandler
+ .sendWithPromise("ReaderHeadersReady")
+ .then((e) => {
+ this._isStreamingSupported = e.isStreamingSupported;
+ this._isRangeSupported = e.isRangeSupported;
+ this._contentLength = e.contentLength;
+ });
+ }
+ get headersReady() {
+ return this._headersReady;
+ }
+ get contentLength() {
+ return this._contentLength;
+ }
+ get isStreamingSupported() {
+ return this._isStreamingSupported;
+ }
+ get isRangeSupported() {
+ return this._isRangeSupported;
+ }
+ async read() {
+ const { value: e, done: t } = await this._reader.read();
+ return t
+ ? { value: void 0, done: !0 }
+ : { value: e.buffer, done: !1 };
+ }
+ cancel(e) {
+ this._reader.cancel(e);
+ }
+ }
+ class PDFWorkerStreamRangeReader {
+ constructor(e, t, a) {
+ this._msgHandler = a;
+ this.onProgress = null;
+ const r = this._msgHandler.sendWithStream("GetRangeReader", {
+ begin: e,
+ end: t,
+ });
+ this._reader = r.getReader();
+ }
+ get isStreamingSupported() {
+ return !1;
+ }
+ async read() {
+ const { value: e, done: t } = await this._reader.read();
+ return t
+ ? { value: void 0, done: !0 }
+ : { value: e.buffer, done: !1 };
+ }
+ cancel(e) {
+ this._reader.cancel(e);
+ }
+ }
+ },
+ ],
+ t = {};
+ function __w_pdfjs_require__(a) {
+ var r = t[a];
+ if (void 0 !== r) return r.exports;
+ var n = (t[a] = { exports: {} });
+ e[a](n, n.exports, __w_pdfjs_require__);
+ return n.exports;
+ }
+ var a = {};
+ (() => {
+ var e = a;
+ Object.defineProperty(e, "__esModule", { value: !0 });
+ Object.defineProperty(e, "WorkerMessageHandler", {
+ enumerable: !0,
+ get: function () {
+ return t.WorkerMessageHandler;
+ },
+ });
+ var t = __w_pdfjs_require__(1);
+ })();
+ return a;
+ })(),
+);
diff --git a/portal-ui/build/static/js/1829.2aaefda6.chunk.js b/portal-ui/build/static/js/1829.2aaefda6.chunk.js
deleted file mode 100644
index 4760cb6592..0000000000
--- a/portal-ui/build/static/js/1829.2aaefda6.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1829],{47986:(e,t,a)=>{"use strict";a.d(t,{Z:()=>o});a(72791);var n=a(29945),s=a(80184);const o=e=>{let{iconComponent:t,entity:a}=e;return(0,s.jsx)(n.rjZ,{container:!0,children:(0,s.jsx)(n.rjZ,{item:!0,xs:12,children:(0,s.jsx)(n.KfX,{title:"".concat(a," not available"),iconComponent:t,help:(0,s.jsxs)(n.xuv,{sx:{fontSize:"14px",["@media (max-width: ".concat(n.Egj.sm,"px)")]:{display:"flex",flexFlow:"column"}},children:[(0,s.jsx)("span",{children:"This feature is not available for a single-disk setup.\xa0"}),(0,s.jsxs)("span",{children:["Please deploy a server in"," ",(0,s.jsx)("a",{href:"https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-multi-node-multi-drive.html?ref=con",target:"_blank",rel:"noopener",children:"Distributed Mode"})," ","to use this feature."]})]})})})})}},61829:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>D});var n=a(72791),s=a(78687),o=a(95087),r=a(29945),l=a(20601),i=a(38725),c=a(82839),d=a(90466),h=a(12891),x=a(35667),u=a(27281),f=a(23782),b=a(31776),p=a(82342),j=a(26824),m=a(45248),g=a(23814),v=a(56087),w=a(87995),y=a(38442),S=a(44690),k=a(47986),C=a(79844),H=a(99670),B=a(80184);const D=()=>{const e=(0,s.v9)(w.N5),[t,a]=(0,n.useState)(!1),[D,T]=(0,n.useState)(""),[_,E]=(0,n.useState)([]),[A,G]=(0,n.useState)(""),[N,O]=(0,n.useState)(!1),[Z,z]=(0,n.useState)(!1),[R,I]=(0,n.useState)(!1),[L,F]=(0,n.useState)({beforeHeal:[0,0,0,0],afterHeal:[0,0,0,0],objectsHealed:0,objectsScanned:0,healDuration:0,sizeScanned:""});(0,n.useEffect)((()=>{b.h.buckets.listBuckets().then((e=>{let t=[];e.data.buckets&&(t=e.data.buckets),E(t)})).catch((e=>{console.error((0,p.g)(e.error))}))}),[]),(0,n.useEffect)((()=>{Z&&I(!1)}),[Z]),(0,n.useEffect)((()=>{R&&z(!1)}),[R]);const K=e=>[e.Green,e.Yellow,e.Red,e.Grey];(0,n.useEffect)((()=>{if(t){const e={Green:0,Yellow:0,Red:0,Grey:0},t={Green:0,Yellow:0,Red:0,Grey:0},n=new URL(window.location.toString()),s=!1?"9090":n.port,r=new URL(document.baseURI).pathname,l=(0,j.x2)(n.protocol),i=new o.w3cwebsocket("".concat(l,"://").concat(n.hostname,":").concat(s).concat(r,"ws/heal/").concat(D,"?prefix=").concat(A,"&recursive=").concat(N,"&force-start=").concat(Z,"&force-stop=").concat(R));if(null!==i)return i.onopen=()=>{console.log("WebSocket Client Connected"),i.send("ok")},i.onmessage=a=>{let n=JSON.parse(a.data.toString());for(const[e,s]of Object.entries(n.healthAfterCols))t[e]=100*s/n.itemsScanned;for(const[t,s]of Object.entries(n.healthBeforeCols))e[t]=100*s/n.itemsScanned;F({beforeHeal:K(e),afterHeal:K(t),objectsHealed:n.objectsHealed,objectsScanned:n.objectsScanned,healDuration:n.healDuration,sizeScanned:(0,m.ae)(n.bytesScanned.toString())})},i.onclose=()=>{a(!1),console.log("connection closed by server")},()=>{i.close(1e3),console.log("closing websockets")}}}),[t,D,Z,R,A,N]);let P=[{name:"Green",ah:L.afterHeal[0],bh:L.beforeHeal[0],amt:100},{name:"Yellow",ah:L.afterHeal[1],bh:L.beforeHeal[1],amt:100},{name:"Red",ah:L.afterHeal[2],bh:L.beforeHeal[2],amt:100},{name:"Grey",ah:L.afterHeal[3],bh:L.beforeHeal[3],amt:100}];const M=_.map((e=>({label:e.name,value:e.name}))),X=(0,S.TL)();return(0,n.useEffect)((()=>{X((0,w.Sc)("heal"))}),[]),(0,B.jsxs)(n.Fragment,{children:[(0,B.jsx)(C.Z,{label:"Drives",actions:(0,B.jsx)(H.Z,{})}),(0,B.jsx)(r.Xgh,{children:e?(0,B.jsxs)(y.s,{scopes:[v.Ft.ADMIN_HEAL],resource:v.C3,children:[(0,B.jsxs)(r.xuv,{withBorders:!0,children:[(0,B.jsxs)(r.xuv,{sx:{display:"flex",alignItems:"center",marginBottom:15,gap:15},children:[(0,B.jsxs)(r.xuv,{sx:{flexGrow:1,width:"100%"},children:[(0,B.jsx)(r.AZs,{children:"Bucket"}),(0,B.jsx)(r.PhF,{id:"bucket-name",name:"bucket-name",value:D,onChange:e=>{T(e)},options:M,placeholder:"Select Bucket"})]}),(0,B.jsxs)(r.xuv,{sx:{flexGrow:1,width:"100%"},children:[(0,B.jsx)(r.AZs,{children:"Prefix"}),(0,B.jsx)(r.Wzg,{id:"prefix-resource",disabled:!1,onChange:e=>{G(e.target.value)}})]})]}),(0,B.jsxs)(r.xuv,{sx:{display:"flex",gap:20},children:[(0,B.jsx)(r.xuv,{children:(0,B.jsx)(r.XZJ,{name:"recursive",id:"recursive",value:"recursive",checked:N,onChange:()=>{O(!N)},disabled:!1,label:"Recursive"})}),(0,B.jsx)(r.xuv,{children:(0,B.jsx)(r.XZJ,{name:"forceStart",id:"forceStart",value:"forceStart",checked:Z,onChange:()=>{z(!Z)},disabled:!1,label:"Force Start"})}),(0,B.jsx)(r.xuv,{children:(0,B.jsx)(r.XZJ,{name:"forceStop",id:"forceStop",value:"forceStop",checked:R,onChange:()=>{I(!R)},disabled:!1,label:"Force Stop"})})]}),(0,B.jsx)(r.xuv,{sx:g.ID.modalButtonBar,children:(0,B.jsx)(r.zxk,{id:"start-heal",type:"submit",variant:"callAction",color:"primary",disabled:t,onClick:()=>a(!0),label:"Start"})})]}),(0,B.jsxs)(r.xuv,{withBorders:!0,sx:{marginTop:15,'& ul li:not([class*="Mui"])::before':{listStyle:"none",content:"' '"}},children:[(0,B.jsx)(l.h,{width:"90%",height:400,children:(0,B.jsxs)(i.v,{width:600,height:400,data:P,margin:{top:5,right:30,left:20,bottom:5},children:[(0,B.jsx)(c.q,{strokeDasharray:"3 3"}),(0,B.jsx)(d.K,{dataKey:"name"}),(0,B.jsx)(h.B,{}),(0,B.jsx)(x.u,{}),(0,B.jsx)(u.D,{verticalAlign:"top",layout:"horizontal",className:"noLi"}),(0,B.jsx)(f.$,{dataKey:"ah",name:"After Healing",fill:"#2781B060",stroke:"#2781B0"}),(0,B.jsx)(f.$,{dataKey:"bh",name:"Before Healing",fill:"#C83B5160",stroke:"#C83B51"})]})}),(0,B.jsxs)(r.rjZ,{item:!0,xs:12,sx:{marginTop:20,display:"flex",flexDirection:"row",justifyContent:"space-between","& .scanData":{}},children:[(0,B.jsxs)(r.xuv,{className:"scanData",children:[(0,B.jsx)("strong",{children:"Size scanned:"})," ",L.sizeScanned]}),(0,B.jsxs)(r.xuv,{className:"scanData",children:[(0,B.jsx)("strong",{children:"Objects healed:"})," ",L.objectsHealed," /"," ",L.objectsScanned]}),(0,B.jsxs)(r.xuv,{className:"scanData",children:[(0,B.jsx)("strong",{children:"Healing time:"})," ",L.healDuration,"s"]})]})]})]}):(0,B.jsx)(k.Z,{entity:"Heal",iconComponent:(0,B.jsx)(r.lnI,{})})})]})}},94210:e=>{var t=function(){if("object"===typeof self&&self)return self;if("object"===typeof window&&window)return window;throw new Error("Unable to resolve global `this`")};e.exports=function(){if(this)return this;if("object"===typeof globalThis&&globalThis)return globalThis;try{Object.defineProperty(Object.prototype,"__global__",{get:function(){return this},configurable:!0})}catch(e){return t()}try{return __global__||t()}finally{delete Object.prototype.__global__}}()},38725:(e,t,a)=>{"use strict";a.d(t,{v:()=>i});var n=a(23612),s=a(23782),o=a(90466),r=a(12891),l=a(93137),i=(0,n.z)({chartName:"BarChart",GraphicalChild:s.$,defaultTooltipEventType:"axis",validateTooltipEventTypes:["axis","item"],axisComponents:[{axisType:"xAxis",AxisComp:o.K},{axisType:"yAxis",AxisComp:r.B}],formatAxisMap:l.t9})},95087:(e,t,a)=>{var n;if("object"===typeof globalThis)n=globalThis;else try{n=a(94210)}catch(l){}finally{if(n||"undefined"===typeof window||(n=window),!n)throw new Error("Could not determine global this")}var s=n.WebSocket||n.MozWebSocket,o=a(51496);function r(e,t){return t?new s(e,t):new s(e)}s&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(e){Object.defineProperty(r,e,{get:function(){return s[e]}})})),e.exports={w3cwebsocket:s?r:null,version:o}},51496:(e,t,a)=>{e.exports=a(19794).version},19794:e=>{"use strict";e.exports={version:"1.0.34"}}}]);
-//# sourceMappingURL=1829.2aaefda6.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1829.2aaefda6.chunk.js.map b/portal-ui/build/static/js/1829.2aaefda6.chunk.js.map
deleted file mode 100644
index 62df3f1fb4..0000000000
--- a/portal-ui/build/static/js/1829.2aaefda6.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/1829.2aaefda6.chunk.js","mappings":"2JAwBA,MAuCA,EAvCwBA,IAAkD,IAAjD,cAAEC,EAAa,OAAEC,GAA0BF,EAClE,OACEG,EAAAA,EAAAA,KAACC,EAAAA,IAAI,CAACC,WAAS,EAAAC,UACbH,EAAAA,EAAAA,KAACC,EAAAA,IAAI,CAACG,MAAI,EAACC,GAAI,GAAGF,UAChBH,EAAAA,EAAAA,KAACM,EAAAA,IAAO,CACNC,MAAK,GAAAC,OAAKT,EAAM,kBAChBD,cAAeA,EACfW,MACEC,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CACFC,GAAI,CACFC,SAAU,OACV,CAAC,sBAADL,OAAuBM,EAAAA,IAAYC,GAAE,QAAQ,CAC3CC,QAAS,OACTC,SAAU,WAEZd,SAAA,EAEFH,EAAAA,EAAAA,KAAA,QAAAG,SAAM,gEAGNO,EAAAA,EAAAA,MAAA,QAAAP,SAAA,CAAM,4BACsB,KAC1BH,EAAAA,EAAAA,KAAA,KACEkB,KAAK,oHACLC,OAAO,SACPC,IAAI,WAAUjB,SACf,qBAEI,IAAI,kCAOd,C,oVCAX,MAiUA,EAjUakB,KACX,MAAMC,GAAmBC,EAAAA,EAAAA,IAAYC,EAAAA,KAE9BC,EAAOC,IAAYC,EAAAA,EAAAA,WAAS,IAC5BC,EAAYC,IAAiBF,EAAAA,EAAAA,UAAS,KACtCG,EAAYC,IAAiBJ,EAAAA,EAAAA,UAAmB,KAChDK,EAAQC,IAAaN,EAAAA,EAAAA,UAAS,KAC9BO,EAAWC,IAAgBR,EAAAA,EAAAA,WAAS,IACpCS,EAAYC,IAAiBV,EAAAA,EAAAA,WAAS,IACtCW,EAAWC,IAAgBZ,EAAAA,EAAAA,WAAS,IAEpCa,EAASC,IAAcd,EAAAA,EAAAA,UAAS,CACrCe,WAAY,CAAC,EAAG,EAAG,EAAG,GACtBC,UAAW,CAAC,EAAG,EAAG,EAAG,GACrBC,cAAe,EACfC,eAAgB,EAChBC,aAAc,EACdC,YAAa,MAkBfC,EAAAA,EAAAA,YAAU,KAdRC,EAAAA,EAAIC,QACDC,cACAC,MAAMC,IACL,IAAIH,EAAoB,GACpBG,EAAIC,KAAKJ,UACXA,EAAUG,EAAIC,KAAKJ,SAErBnB,EAAcmB,EAAQ,IAEvBK,OAAOC,IACNC,QAAQC,OAAMC,EAAAA,EAAAA,GAAeH,EAAIE,OAAO,GAK3B,GAChB,KAGHV,EAAAA,EAAAA,YAAU,KACJZ,GACFG,GAAa,EACf,GACC,CAACH,KAEJY,EAAAA,EAAAA,YAAU,KACJV,GACFD,GAAc,EAChB,GACC,CAACC,IAEJ,MAAMsB,EAAkBC,GACf,CAACA,EAAMC,MAAOD,EAAME,OAAQF,EAAMG,IAAKH,EAAMI,OAGtDjB,EAAAA,EAAAA,YAAU,KAER,GAAIvB,EAAO,CAET,MAAMyC,EAAa,CAAEJ,MAAO,EAAGC,OAAQ,EAAGC,IAAK,EAAGC,KAAM,GAClDE,EAAa,CAAEL,MAAO,EAAGC,OAAQ,EAAGC,IAAK,EAAGC,KAAM,GAElDG,EAAM,IAAIC,IAAIC,OAAOC,SAASC,YAE9BC,GADQC,EACO,OAASN,EAAIK,KAI5BE,EADe,IAAIN,IAAIO,SAASC,SACTC,SAEvBC,GAASC,EAAAA,EAAAA,IAAWZ,EAAIa,UACxBC,EAAI,IAAIC,EAAAA,aAAa,GAAD3E,OACrBuE,EAAM,OAAAvE,OAAM4D,EAAIgB,SAAQ,KAAA5E,OAAIiE,GAAIjE,OAAGmE,EAAO,YAAAnE,OAAWoB,EAAU,YAAApB,OAAWwB,EAAM,eAAAxB,OAAc0B,EAAS,iBAAA1B,OAAgB4B,EAAU,gBAAA5B,OAAe8B,IAGrJ,GAAU,OAAN4C,EA2BF,OA1BAA,EAAEG,OAAS,KACT5B,QAAQ6B,IAAI,8BACZJ,EAAEK,KAAK,KAAK,EAEdL,EAAEM,UAAaC,IACb,IAAIC,EAAgBC,KAAKC,MAAMH,EAAQnC,KAAKkB,YAE5C,IAAK,MAAOqB,EAAKC,KAAUC,OAAOC,QAAQN,EAAEO,iBAC1C9B,EAAG0B,GAAgB,IAARC,EAAeJ,EAAEQ,aAE9B,IAAK,MAAOL,EAAKC,KAAUC,OAAOC,QAAQN,EAAES,kBAC1CjC,EAAG2B,GAAgB,IAARC,EAAeJ,EAAEQ,aAE9BzD,EAAW,CACTC,WAAYkB,EAAeM,GAC3BvB,UAAWiB,EAAeO,GAC1BvB,cAAe8C,EAAE9C,cACjBC,eAAgB6C,EAAE7C,eAClBC,aAAc4C,EAAE5C,aAChBC,aAAaqD,EAAAA,EAAAA,IAAUV,EAAEW,aAAa7B,aACtC,EAEJU,EAAEoB,QAAU,KACV5E,GAAS,GACT+B,QAAQ6B,IAAI,8BAA8B,EAErC,KAELJ,EAAEqB,MAAM,KACR9C,QAAQ6B,IAAI,qBAAqB,CAGvC,IACC,CAAC7D,EAAOG,EAAYQ,EAAYE,EAAWN,EAAQE,IAEtD,IAAIoB,EAAO,CACT,CACEkD,KAAM,QACNC,GAAIjE,EAAQG,UAAU,GACtB+D,GAAIlE,EAAQE,WAAW,GACvBiE,IAAK,KAEP,CACEH,KAAM,SACNC,GAAIjE,EAAQG,UAAU,GACtB+D,GAAIlE,EAAQE,WAAW,GACvBiE,IAAK,KAEP,CACEH,KAAM,MACNC,GAAIjE,EAAQG,UAAU,GACtB+D,GAAIlE,EAAQE,WAAW,GACvBiE,IAAK,KAEP,CACEH,KAAM,OACNC,GAAIjE,EAAQG,UAAU,GACtB+D,GAAIlE,EAAQE,WAAW,GACvBiE,IAAK,MAGT,MAAMC,EAAc9E,EAAW+E,KAAKjF,IAAU,CAC5CkF,MAAOlF,EAAW4E,KAClBV,MAAOlE,EAAW4E,SAEdO,GAAWC,EAAAA,EAAAA,MAMjB,OALAhE,EAAAA,EAAAA,YAAU,KACR+D,GAASE,EAAAA,EAAAA,IAAY,QAAQ,GAE5B,KAGDvG,EAAAA,EAAAA,MAACwG,EAAAA,SAAQ,CAAA/G,SAAA,EACPH,EAAAA,EAAAA,KAACmH,EAAAA,EAAiB,CAACL,MAAM,SAASM,SAASpH,EAAAA,EAAAA,KAACqH,EAAAA,EAAQ,OAEpDrH,EAAAA,EAAAA,KAACsH,EAAAA,IAAU,CAAAnH,SACPmB,GAGAZ,EAAAA,EAAAA,MAAC6G,EAAAA,EAAe,CACdC,OAAQ,CAACC,EAAAA,GAAWC,YACpBC,SAAUC,EAAAA,GAAoBzH,SAAA,EAE9BO,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CAACkH,aAAW,EAAA1H,SAAA,EACdO,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CACFC,GAAI,CACFI,QAAS,OACT8G,WAAY,SACZC,aAAc,GACdC,IAAK,IACL7H,SAAA,EAEFO,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CAACC,GAAI,CAAEqH,SAAU,EAAGC,MAAO,QAAS/H,SAAA,EACtCH,EAAAA,EAAAA,KAACmI,EAAAA,IAAU,CAAAhI,SAAC,YACZH,EAAAA,EAAAA,KAACoI,EAAAA,IAAM,CACLC,GAAG,cACH7B,KAAK,cACLV,MAAOlE,EACP0G,SAAWxC,IACTjE,EAAciE,EAAgB,EAEhCyC,QAAS3B,EACT4B,YAAa,sBAGjB9H,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CAACC,GAAI,CAAEqH,SAAU,EAAGC,MAAO,QAAS/H,SAAA,EACtCH,EAAAA,EAAAA,KAACmI,EAAAA,IAAU,CAAAhI,SAAC,YACZH,EAAAA,EAAAA,KAACyI,EAAAA,IAAQ,CACPJ,GAAG,kBACHK,UAAU,EACVJ,SAAWK,IACT1G,EAAU0G,EAAExH,OAAO2E,MAAM,WAKjCpF,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CAACC,GAAI,CAAEI,QAAS,OAAQgH,IAAK,IAAK7H,SAAA,EACpCH,EAAAA,EAAAA,KAACW,EAAAA,IAAG,CAAAR,UACFH,EAAAA,EAAAA,KAAC4I,EAAAA,IAAQ,CACPpC,KAAK,YACL6B,GAAG,YACHvC,MAAM,YACN+C,QAAS3G,EACToG,SAAUA,KACRnG,GAAcD,EAAU,EAE1BwG,UAAU,EACV5B,MAAM,iBAGV9G,EAAAA,EAAAA,KAACW,EAAAA,IAAG,CAAAR,UACFH,EAAAA,EAAAA,KAAC4I,EAAAA,IAAQ,CACPpC,KAAK,aACL6B,GAAG,aACHvC,MAAM,aACN+C,QAASzG,EACTkG,SAAUA,KACRjG,GAAeD,EAAW,EAE5BsG,UAAU,EACV5B,MAAM,mBAGV9G,EAAAA,EAAAA,KAACW,EAAAA,IAAG,CAAAR,UACFH,EAAAA,EAAAA,KAAC4I,EAAAA,IAAQ,CACPpC,KAAK,YACL6B,GAAG,YACHvC,MAAM,YACN+C,QAASvG,EACTgG,SAAUA,KACR/F,GAAcD,EAAU,EAE1BoG,UAAU,EACV5B,MAAM,qBAIZ9G,EAAAA,EAAAA,KAACW,EAAAA,IAAG,CAACC,GAAIkI,EAAAA,GAAgBC,eAAe5I,UACtCH,EAAAA,EAAAA,KAACgJ,EAAAA,IAAM,CACLX,GAAI,aACJY,KAAK,SACLC,QAAQ,aACRrF,MAAM,UACN6E,SAAUjH,EACV0H,QAASA,IAAMzH,GAAS,GACxBoF,MAAO,gBAIbpG,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CACFkH,aAAW,EACXjH,GAAI,CACFwI,UAAW,GACX,sCAAuC,CACrCC,UAAW,OACXC,QAAS,QAEXnJ,SAAA,EAEFH,EAAAA,EAAAA,KAACuJ,EAAAA,EAAmB,CAACrB,MAAO,MAAOsB,OAAQ,IAAIrJ,UAC7CO,EAAAA,EAAAA,MAAC+I,EAAAA,EAAQ,CACPvB,MAAO,IACPsB,OAAQ,IACRlG,KAAMA,EACNoG,OAAQ,CACNC,IAAK,EACLC,MAAO,GACPC,KAAM,GACNC,OAAQ,GACR3J,SAAA,EAEFH,EAAAA,EAAAA,KAAC+J,EAAAA,EAAa,CAACC,gBAAgB,SAC/BhK,EAAAA,EAAAA,KAACiK,EAAAA,EAAK,CAACC,QAAQ,UACflK,EAAAA,EAAAA,KAACmK,EAAAA,EAAK,KACNnK,EAAAA,EAAAA,KAACoK,EAAAA,EAAO,KACRpK,EAAAA,EAAAA,KAACqK,EAAAA,EAAM,CACLC,cAAe,MACfC,OAAQ,aACRC,UAAW,UAEbxK,EAAAA,EAAAA,KAACyK,EAAAA,EAAG,CACFP,QAAQ,KACR1D,KAAM,gBACNkE,KAAK,YACLC,OAAO,aAET3K,EAAAA,EAAAA,KAACyK,EAAAA,EAAG,CACFP,QAAQ,KACR1D,KAAM,iBACNkE,KAAK,YACLC,OAAO,kBAIbjK,EAAAA,EAAAA,MAACT,EAAAA,IAAI,CACHG,MAAI,EACJC,GAAI,GACJO,GAAI,CACFwI,UAAW,GACXpI,QAAS,OACT4J,cAAe,MACfC,eAAgB,gBAChB,cAAe,CAAC,GAChB1K,SAAA,EAEFO,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CAAC6J,UAAW,WAAWrK,SAAA,EACzBH,EAAAA,EAAAA,KAAA,UAAAG,SAAQ,kBAAsB,IAAEqC,EAAQO,gBAE1CrC,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CAAC6J,UAAW,WAAWrK,SAAA,EACzBH,EAAAA,EAAAA,KAAA,UAAAG,SAAQ,oBAAwB,IAAEqC,EAAQI,cAAc,KAAG,IAC1DJ,EAAQK,mBAEXnC,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CAAC6J,UAAW,WAAWrK,SAAA,EACzBH,EAAAA,EAAAA,KAAA,UAAAG,SAAQ,kBAAsB,IAAEqC,EAAQM,aAAa,iBA5J7D9C,EAAAA,EAAAA,KAAC8K,EAAAA,EAAe,CAAC/K,OAAQ,OAAQD,eAAeE,EAAAA,EAAAA,KAAC+K,EAAAA,IAAQ,UAmKpD,C,YCxXf,IAAIC,EAAgB,WACnB,GAAoB,kBAATC,MAAqBA,KAAM,OAAOA,KAC7C,GAAsB,kBAAX3G,QAAuBA,OAAQ,OAAOA,OACjD,MAAM,IAAI4G,MAAM,kCACjB,EAEAC,EAAOC,QAAW,WACjB,GAAIC,KAAM,OAAOA,KAKjB,GAA0B,kBAAfC,YAA2BA,WAAY,OAAOA,WAKzD,IACCvF,OAAOwF,eAAexF,OAAOyF,UAAW,aAAc,CACrDC,IAAK,WAAc,OAAOJ,IAAM,EAChCK,cAAc,GAEhB,CAAE,MAAOhI,GAGR,OAAOsH,GACR,CACA,IAEC,OAAKW,YAAmBX,GAEzB,CAAE,eACMjF,OAAOyF,UAAUG,UACzB,CACD,CA5BkB,E,2GCEPlC,GAAWmC,EAAAA,EAAAA,GAAyB,CAC7CC,UAAW,WACXC,eAAgBrB,EAAAA,EAChBsB,wBAAyB,OACzBC,0BAA2B,CAAC,OAAQ,QACpCC,eAAgB,CAAC,CACfC,SAAU,QACVC,SAAUlC,EAAAA,GACT,CACDiC,SAAU,QACVC,SAAUhC,EAAAA,IAEZiC,cAAeA,EAAAA,I,kBCpBjB,IAAIC,EACJ,GAA0B,kBAAff,WACVe,EAAcf,gBAEd,IACCe,EAAcC,EAAQ,MACvB,CAAE,MAAO5I,GACT,CAAE,QAED,GADK2I,GAAiC,qBAAX/H,SAA0B+H,EAAc/H,SAC9D+H,EAAe,MAAM,IAAInB,MAAM,kCACrC,CAGD,IAAIqB,EAAkBF,EAAYG,WAAaH,EAAYI,aACvDC,EAAoBJ,EAAQ,OAMhC,SAASnH,EAAawH,EAAKC,GAiB1B,OAdIA,EACe,IAAIL,EAAgBI,EAAKC,GAGzB,IAAIL,EAAgBI,EAWxC,CACIJ,GACH,CAAC,aAAc,OAAQ,UAAW,UAAUM,SAAQ,SAASC,GAC5D/G,OAAOwF,eAAepG,EAAc2H,EAAM,CACzCrB,IAAK,WAAa,OAAOc,EAAgBO,EAAO,GAElD,IAMD3B,EAAOC,QAAU,CACb,aAAiBmB,EAAkBpH,EAAe,KAClD,QAAiBuH,E,kBCpDrBvB,EAAOC,QAAU,EAAjBD,OAAAA,O","sources":["screens/Console/Common/DistributedOnly/DistributedOnly.tsx","screens/Console/Heal/Heal.tsx","../node_modules/es5-ext/global.js","../node_modules/recharts/es6/chart/BarChart.js","../node_modules/websocket/lib/browser.js","../node_modules/websocket/lib/version.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { HelpBox, Box, Grid, breakPoints } from \"mds\";\n\ninterface IDistributedOnly {\n iconComponent: any;\n entity: string;\n}\n\nconst DistributedOnly = ({ iconComponent, entity }: IDistributedOnly) => {\n return (\n \n \n \n \n This feature is not available for a single-disk setup. \n \n \n Please deploy a server in{\" \"}\n \n Distributed Mode\n {\" \"}\n to use this feature.\n \n \n }\n />\n \n \n );\n};\n\nexport default DistributedOnly;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { IMessageEvent, w3cwebsocket as W3CWebSocket } from \"websocket\";\nimport {\n Box,\n Button,\n Checkbox,\n Grid,\n HealIcon,\n InputBox,\n InputLabel,\n PageLayout,\n Select,\n} from \"mds\";\nimport {\n Bar,\n BarChart,\n CartesianGrid,\n Legend,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\n\nimport { api } from \"api\";\nimport { Bucket } from \"api/consoleApi\";\nimport { errorToHandler } from \"api/errors\";\nimport { wsProtocol } from \"../../../utils/wsUtils\";\nimport { colorH, HealStatus } from \"./types\";\nimport { niceBytes } from \"../../../common/utils\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport { selDistSet, setHelpName } from \"../../../systemSlice\";\nimport { SecureComponent } from \"../../../common/SecureComponent\";\nimport { useAppDispatch } from \"../../../store\";\nimport DistributedOnly from \"../Common/DistributedOnly/DistributedOnly\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport HelpMenu from \"../HelpMenu\";\n\nconst Heal = () => {\n const distributedSetup = useSelector(selDistSet);\n\n const [start, setStart] = useState(false);\n const [bucketName, setBucketName] = useState(\"\");\n const [bucketList, setBucketList] = useState([]);\n const [prefix, setPrefix] = useState(\"\");\n const [recursive, setRecursive] = useState(false);\n const [forceStart, setForceStart] = useState(false);\n const [forceStop, setForceStop] = useState(false);\n // healStatus states\n const [hStatus, setHStatus] = useState({\n beforeHeal: [0, 0, 0, 0],\n afterHeal: [0, 0, 0, 0],\n objectsHealed: 0,\n objectsScanned: 0,\n healDuration: 0,\n sizeScanned: \"\",\n });\n\n const fetchBucketList = () => {\n api.buckets\n .listBuckets()\n .then((res) => {\n let buckets: Bucket[] = [];\n if (res.data.buckets) {\n buckets = res.data.buckets;\n }\n setBucketList(buckets);\n })\n .catch((err) => {\n console.error(errorToHandler(err.error));\n });\n };\n\n useEffect(() => {\n fetchBucketList();\n }, []);\n\n // forceStart and forceStop need to be mutually exclusive\n useEffect(() => {\n if (forceStart) {\n setForceStop(false);\n }\n }, [forceStart]);\n\n useEffect(() => {\n if (forceStop) {\n setForceStart(false);\n }\n }, [forceStop]);\n\n const colorHealthArr = (color: colorH) => {\n return [color.Green, color.Yellow, color.Red, color.Grey];\n };\n\n useEffect(() => {\n // begin watch if bucketName in bucketList and start pressed\n if (start) {\n // values stored here to update chart\n const cB: colorH = { Green: 0, Yellow: 0, Red: 0, Grey: 0 };\n const cA: colorH = { Green: 0, Yellow: 0, Red: 0, Grey: 0 };\n\n const url = new URL(window.location.toString());\n const isDev = process.env.NODE_ENV === \"development\";\n const port = isDev ? \"9090\" : url.port;\n\n // check if we are using base path, if not this always is `/`\n const baseLocation = new URL(document.baseURI);\n const baseUrl = baseLocation.pathname;\n\n const wsProt = wsProtocol(url.protocol);\n const c = new W3CWebSocket(\n `${wsProt}://${url.hostname}:${port}${baseUrl}ws/heal/${bucketName}?prefix=${prefix}&recursive=${recursive}&force-start=${forceStart}&force-stop=${forceStop}`,\n );\n\n if (c !== null) {\n c.onopen = () => {\n console.log(\"WebSocket Client Connected\");\n c.send(\"ok\");\n };\n c.onmessage = (message: IMessageEvent) => {\n let m: HealStatus = JSON.parse(message.data.toString());\n // Store percentage per health color\n for (const [key, value] of Object.entries(m.healthAfterCols)) {\n cA[key] = (value * 100) / m.itemsScanned;\n }\n for (const [key, value] of Object.entries(m.healthBeforeCols)) {\n cB[key] = (value * 100) / m.itemsScanned;\n }\n setHStatus({\n beforeHeal: colorHealthArr(cB),\n afterHeal: colorHealthArr(cA),\n objectsHealed: m.objectsHealed,\n objectsScanned: m.objectsScanned,\n healDuration: m.healDuration,\n sizeScanned: niceBytes(m.bytesScanned.toString()),\n });\n };\n c.onclose = () => {\n setStart(false);\n console.log(\"connection closed by server\");\n };\n return () => {\n // close websocket on useEffect cleanup\n c.close(1000);\n console.log(\"closing websockets\");\n };\n }\n }\n }, [start, bucketName, forceStart, forceStop, prefix, recursive]);\n\n let data = [\n {\n name: \"Green\",\n ah: hStatus.afterHeal[0],\n bh: hStatus.beforeHeal[0],\n amt: 100,\n },\n {\n name: \"Yellow\",\n ah: hStatus.afterHeal[1],\n bh: hStatus.beforeHeal[1],\n amt: 100,\n },\n {\n name: \"Red\",\n ah: hStatus.afterHeal[2],\n bh: hStatus.beforeHeal[2],\n amt: 100,\n },\n {\n name: \"Grey\",\n ah: hStatus.afterHeal[3],\n bh: hStatus.beforeHeal[3],\n amt: 100,\n },\n ];\n const bucketNames = bucketList.map((bucketName) => ({\n label: bucketName.name,\n value: bucketName.name,\n }));\n const dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(setHelpName(\"heal\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n } />\n\n \n {!distributedSetup ? (\n } />\n ) : (\n \n \n \n \n Bucket\n \n \n Prefix\n {\n setPrefix(e.target.value);\n }}\n />\n \n \n \n \n {\n setRecursive(!recursive);\n }}\n disabled={false}\n label=\"Recursive\"\n />\n \n \n {\n setForceStart(!forceStart);\n }}\n disabled={false}\n label=\"Force Start\"\n />\n \n \n {\n setForceStop(!forceStop);\n }}\n disabled={false}\n label=\"Force Stop\"\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Size scanned: {hStatus.sizeScanned}\n \n \n Objects healed: {hStatus.objectsHealed} /{\" \"}\n {hStatus.objectsScanned}\n \n \n Healing time: {hStatus.healDuration}s\n \n \n \n \n )}\n \n \n );\n};\n\nexport default Heal;\n","var naiveFallback = function () {\n\tif (typeof self === \"object\" && self) return self;\n\tif (typeof window === \"object\" && window) return window;\n\tthrow new Error(\"Unable to resolve global `this`\");\n};\n\nmodule.exports = (function () {\n\tif (this) return this;\n\n\t// Unexpected strict mode (may happen if e.g. bundled into ESM module)\n\n\t// Fallback to standard globalThis if available\n\tif (typeof globalThis === \"object\" && globalThis) return globalThis;\n\n\t// Thanks @mathiasbynens -> https://mathiasbynens.be/notes/globalthis\n\t// In all ES5+ engines global object inherits from Object.prototype\n\t// (if you approached one that doesn't please report)\n\ttry {\n\t\tObject.defineProperty(Object.prototype, \"__global__\", {\n\t\t\tget: function () { return this; },\n\t\t\tconfigurable: true\n\t\t});\n\t} catch (error) {\n\t\t// Unfortunate case of updates to Object.prototype being restricted\n\t\t// via preventExtensions, seal or freeze\n\t\treturn naiveFallback();\n\t}\n\ttry {\n\t\t// Safari case (window.__global__ works, but __global__ does not)\n\t\tif (!__global__) return naiveFallback();\n\t\treturn __global__;\n\t} finally {\n\t\tdelete Object.prototype.__global__;\n\t}\n})();\n","/**\n * @fileOverview Bar Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Bar } from '../cartesian/Bar';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var BarChart = generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n defaultTooltipEventType: 'axis',\n validateTooltipEventTypes: ['axis', 'item'],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","var _globalThis;\nif (typeof globalThis === 'object') {\n\t_globalThis = globalThis;\n} else {\n\ttry {\n\t\t_globalThis = require('es5-ext/global');\n\t} catch (error) {\n\t} finally {\n\t\tif (!_globalThis && typeof window !== 'undefined') { _globalThis = window; }\n\t\tif (!_globalThis) { throw new Error('Could not determine global this'); }\n\t}\n}\n\nvar NativeWebSocket = _globalThis.WebSocket || _globalThis.MozWebSocket;\nvar websocket_version = require('./version');\n\n\n/**\n * Expose a W3C WebSocket class with just one or two arguments.\n */\nfunction W3CWebSocket(uri, protocols) {\n\tvar native_instance;\n\n\tif (protocols) {\n\t\tnative_instance = new NativeWebSocket(uri, protocols);\n\t}\n\telse {\n\t\tnative_instance = new NativeWebSocket(uri);\n\t}\n\n\t/**\n\t * 'native_instance' is an instance of nativeWebSocket (the browser's WebSocket\n\t * class). Since it is an Object it will be returned as it is when creating an\n\t * instance of W3CWebSocket via 'new W3CWebSocket()'.\n\t *\n\t * ECMAScript 5: http://bclary.com/2004/11/07/#a-13.2.2\n\t */\n\treturn native_instance;\n}\nif (NativeWebSocket) {\n\t['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'].forEach(function(prop) {\n\t\tObject.defineProperty(W3CWebSocket, prop, {\n\t\t\tget: function() { return NativeWebSocket[prop]; }\n\t\t});\n\t});\n}\n\n/**\n * Module exports.\n */\nmodule.exports = {\n 'w3cwebsocket' : NativeWebSocket ? W3CWebSocket : null,\n 'version' : websocket_version\n};\n","module.exports = require('../package.json').version;\n"],"names":["_ref","iconComponent","entity","_jsx","Grid","container","children","item","xs","HelpBox","title","concat","help","_jsxs","Box","sx","fontSize","breakPoints","sm","display","flexFlow","href","target","rel","Heal","distributedSetup","useSelector","selDistSet","start","setStart","useState","bucketName","setBucketName","bucketList","setBucketList","prefix","setPrefix","recursive","setRecursive","forceStart","setForceStart","forceStop","setForceStop","hStatus","setHStatus","beforeHeal","afterHeal","objectsHealed","objectsScanned","healDuration","sizeScanned","useEffect","api","buckets","listBuckets","then","res","data","catch","err","console","error","errorToHandler","colorHealthArr","color","Green","Yellow","Red","Grey","cB","cA","url","URL","window","location","toString","port","process","baseUrl","document","baseURI","pathname","wsProt","wsProtocol","protocol","c","W3CWebSocket","hostname","onopen","log","send","onmessage","message","m","JSON","parse","key","value","Object","entries","healthAfterCols","itemsScanned","healthBeforeCols","niceBytes","bytesScanned","onclose","close","name","ah","bh","amt","bucketNames","map","label","dispatch","useAppDispatch","setHelpName","Fragment","PageHeaderWrapper","actions","HelpMenu","PageLayout","SecureComponent","scopes","IAM_SCOPES","ADMIN_HEAL","resource","CONSOLE_UI_RESOURCE","withBorders","alignItems","marginBottom","gap","flexGrow","width","InputLabel","Select","id","onChange","options","placeholder","InputBox","disabled","e","Checkbox","checked","modalStyleUtils","modalButtonBar","Button","type","variant","onClick","marginTop","listStyle","content","ResponsiveContainer","height","BarChart","margin","top","right","left","bottom","CartesianGrid","strokeDasharray","XAxis","dataKey","YAxis","Tooltip","Legend","verticalAlign","layout","className","Bar","fill","stroke","flexDirection","justifyContent","DistributedOnly","HealIcon","naiveFallback","self","Error","module","exports","this","globalThis","defineProperty","prototype","get","configurable","__global__","generateCategoricalChart","chartName","GraphicalChild","defaultTooltipEventType","validateTooltipEventTypes","axisComponents","axisType","AxisComp","formatAxisMap","_globalThis","require","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","uri","protocols","forEach","prop"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1829.4d4a6cb6.chunk.js b/portal-ui/build/static/js/1829.4d4a6cb6.chunk.js
new file mode 100644
index 0000000000..c454b8dbcb
--- /dev/null
+++ b/portal-ui/build/static/js/1829.4d4a6cb6.chunk.js
@@ -0,0 +1,2 @@
+(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1829],{47986:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});n(72791);var r=n(29945),o=n(80184);const i=e=>{let{iconComponent:t,entity:n}=e;return(0,o.jsx)(r.rjZ,{container:!0,children:(0,o.jsx)(r.rjZ,{item:!0,xs:12,children:(0,o.jsx)(r.KfX,{title:"".concat(n," not available"),iconComponent:t,help:(0,o.jsxs)(r.xuv,{sx:{fontSize:"14px",["@media (max-width: ".concat(r.Egj.sm,"px)")]:{display:"flex",flexFlow:"column"}},children:[(0,o.jsx)("span",{children:"This feature is not available for a single-disk setup.\xa0"}),(0,o.jsxs)("span",{children:["Please deploy a server in"," ",(0,o.jsx)("a",{href:"https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-multi-node-multi-drive.html?ref=con",target:"_blank",rel:"noopener",children:"Distributed Mode"})," ","to use this feature."]})]})})})})}},61829:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>E});var r=n(72791),o=n(78687),i=n(95087),a=n(29945),s=n(19913),l=n(38725),c=n(82839),u=n(90466),h=n(12891),d=n(71827),f=n(27281),b=n(23782),p=n(31776),m=n(82342),x=n(26824),g=n(45248),y=n(23814),v=n(56087),j=n(87995),w=n(38442),S=n(44690),C=n(47986),O=n(79844),k=n(99670),H=n(80184);const E=()=>{const e=(0,o.v9)(j.N5),[t,n]=(0,r.useState)(!1),[E,A]=(0,r.useState)(""),[D,T]=(0,r.useState)([]),[B,P]=(0,r.useState)(""),[N,R]=(0,r.useState)(!1),[Z,_]=(0,r.useState)(!1),[G,z]=(0,r.useState)(!1),[W,I]=(0,r.useState)({beforeHeal:[0,0,0,0],afterHeal:[0,0,0,0],objectsHealed:0,objectsScanned:0,healDuration:0,sizeScanned:""});(0,r.useEffect)((()=>{p.h.buckets.listBuckets().then((e=>{let t=[];e.data.buckets&&(t=e.data.buckets),T(t)})).catch((e=>{console.error((0,m.g)(e.error))}))}),[]),(0,r.useEffect)((()=>{Z&&z(!1)}),[Z]),(0,r.useEffect)((()=>{G&&_(!1)}),[G]);const M=e=>[e.Green,e.Yellow,e.Red,e.Grey];(0,r.useEffect)((()=>{if(t){const e={Green:0,Yellow:0,Red:0,Grey:0},t={Green:0,Yellow:0,Red:0,Grey:0},r=new URL(window.location.toString()),o=!1?"9090":r.port,a=new URL(document.baseURI).pathname,s=(0,x.x2)(r.protocol),l=new i.w3cwebsocket("".concat(s,"://").concat(r.hostname,":").concat(o).concat(a,"ws/heal/").concat(E,"?prefix=").concat(B,"&recursive=").concat(N,"&force-start=").concat(Z,"&force-stop=").concat(G));if(null!==l)return l.onopen=()=>{console.log("WebSocket Client Connected"),l.send("ok")},l.onmessage=n=>{let r=JSON.parse(n.data.toString());for(const[e,o]of Object.entries(r.healthAfterCols))t[e]=100*o/r.itemsScanned;for(const[t,o]of Object.entries(r.healthBeforeCols))e[t]=100*o/r.itemsScanned;I({beforeHeal:M(e),afterHeal:M(t),objectsHealed:r.objectsHealed,objectsScanned:r.objectsScanned,healDuration:r.healDuration,sizeScanned:(0,g.ae)(r.bytesScanned.toString())})},l.onclose=()=>{n(!1),console.log("connection closed by server")},()=>{l.close(1e3),console.log("closing websockets")}}}),[t,E,Z,G,B,N]);let U=[{name:"Green",ah:W.afterHeal[0],bh:W.beforeHeal[0],amt:100},{name:"Yellow",ah:W.afterHeal[1],bh:W.beforeHeal[1],amt:100},{name:"Red",ah:W.afterHeal[2],bh:W.beforeHeal[2],amt:100},{name:"Grey",ah:W.afterHeal[3],bh:W.beforeHeal[3],amt:100}];const L=D.map((e=>({label:e.name,value:e.name}))),F=(0,S.TL)();return(0,r.useEffect)((()=>{F((0,j.Sc)("heal"))}),[]),(0,H.jsxs)(r.Fragment,{children:[(0,H.jsx)(O.Z,{label:"Drives",actions:(0,H.jsx)(k.Z,{})}),(0,H.jsx)(a.Xgh,{children:e?(0,H.jsxs)(w.s,{scopes:[v.Ft.ADMIN_HEAL],resource:v.C3,children:[(0,H.jsxs)(a.xuv,{withBorders:!0,children:[(0,H.jsxs)(a.xuv,{sx:{display:"flex",alignItems:"center",marginBottom:15,gap:15},children:[(0,H.jsxs)(a.xuv,{sx:{flexGrow:1,width:"100%"},children:[(0,H.jsx)(a.AZs,{children:"Bucket"}),(0,H.jsx)(a.PhF,{id:"bucket-name",name:"bucket-name",value:E,onChange:e=>{A(e)},options:L,placeholder:"Select Bucket"})]}),(0,H.jsxs)(a.xuv,{sx:{flexGrow:1,width:"100%"},children:[(0,H.jsx)(a.AZs,{children:"Prefix"}),(0,H.jsx)(a.Wzg,{id:"prefix-resource",disabled:!1,onChange:e=>{P(e.target.value)}})]})]}),(0,H.jsxs)(a.xuv,{sx:{display:"flex",gap:20},children:[(0,H.jsx)(a.xuv,{children:(0,H.jsx)(a.XZJ,{name:"recursive",id:"recursive",value:"recursive",checked:N,onChange:()=>{R(!N)},disabled:!1,label:"Recursive"})}),(0,H.jsx)(a.xuv,{children:(0,H.jsx)(a.XZJ,{name:"forceStart",id:"forceStart",value:"forceStart",checked:Z,onChange:()=>{_(!Z)},disabled:!1,label:"Force Start"})}),(0,H.jsx)(a.xuv,{children:(0,H.jsx)(a.XZJ,{name:"forceStop",id:"forceStop",value:"forceStop",checked:G,onChange:()=>{z(!G)},disabled:!1,label:"Force Stop"})})]}),(0,H.jsx)(a.xuv,{sx:y.ID.modalButtonBar,children:(0,H.jsx)(a.zxk,{id:"start-heal",type:"submit",variant:"callAction",color:"primary",disabled:t,onClick:()=>n(!0),label:"Start"})})]}),(0,H.jsxs)(a.xuv,{withBorders:!0,sx:{marginTop:15,'& ul li:not([class*="Mui"])::before':{listStyle:"none",content:"' '"}},children:[(0,H.jsx)(s.h,{width:"90%",height:400,children:(0,H.jsxs)(l.v,{width:600,height:400,data:U,margin:{top:5,right:30,left:20,bottom:5},children:[(0,H.jsx)(c.q,{strokeDasharray:"3 3"}),(0,H.jsx)(u.K,{dataKey:"name"}),(0,H.jsx)(h.B,{}),(0,H.jsx)(d.u,{}),(0,H.jsx)(f.D,{verticalAlign:"top",layout:"horizontal",className:"noLi"}),(0,H.jsx)(b.$,{dataKey:"ah",name:"After Healing",fill:"#2781B060",stroke:"#2781B0"}),(0,H.jsx)(b.$,{dataKey:"bh",name:"Before Healing",fill:"#C83B5160",stroke:"#C83B51"})]})}),(0,H.jsxs)(a.rjZ,{item:!0,xs:12,sx:{marginTop:20,display:"flex",flexDirection:"row",justifyContent:"space-between","& .scanData":{}},children:[(0,H.jsxs)(a.xuv,{className:"scanData",children:[(0,H.jsx)("strong",{children:"Size scanned:"})," ",W.sizeScanned]}),(0,H.jsxs)(a.xuv,{className:"scanData",children:[(0,H.jsx)("strong",{children:"Objects healed:"})," ",W.objectsHealed," /"," ",W.objectsScanned]}),(0,H.jsxs)(a.xuv,{className:"scanData",children:[(0,H.jsx)("strong",{children:"Healing time:"})," ",W.healDuration,"s"]})]})]})]}):(0,H.jsx)(C.Z,{entity:"Heal",iconComponent:(0,H.jsx)(a.lnI,{})})})]})}},94210:e=>{var t=function(){if("object"===typeof self&&self)return self;if("object"===typeof window&&window)return window;throw new Error("Unable to resolve global `this`")};e.exports=function(){if(this)return this;if("object"===typeof globalThis&&globalThis)return globalThis;try{Object.defineProperty(Object.prototype,"__global__",{get:function(){return this},configurable:!0})}catch(e){return t()}try{return __global__||t()}finally{delete Object.prototype.__global__}}()},38725:(e,t,n)=>{"use strict";n.d(t,{v:()=>l});var r=n(83667),o=n(23782),i=n(90466),a=n(12891),s=n(93137),l=(0,r.z)({chartName:"BarChart",GraphicalChild:o.$,defaultTooltipEventType:"axis",validateTooltipEventTypes:["axis","item"],axisComponents:[{axisType:"xAxis",AxisComp:i.K},{axisType:"yAxis",AxisComp:a.B}],formatAxisMap:s.t9})},19913:(e,t,n)=>{"use strict";n.d(t,{h:()=>x});var r=n(63733),o=n(72791),i=n(33038),a=n.n(i),s=n(57441),l=n(70587),c=n(15303),u=n(23031);function h(e){return h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h(e)}function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&(e=a()(e,C,{trailing:!0,leading:!1}));var t=new ResizeObserver(e),n=D.current.getBoundingClientRect(),r=n.width,o=n.height;return R(r,o),t.observe(D.current),function(){t.disconnect()}}),[R,C]);var Z=(0,o.useMemo)((function(){var e=P.containerWidth,t=P.containerHeight;if(e<0||t<0)return null;(0,c.Z)((0,l.hU)(b)||(0,l.hU)(x),"The width(%s) and height(%s) are both fixed numbers,\n maybe you don't need to use a ResponsiveContainer.",b,x),(0,c.Z)(!n||n>0,"The aspect(%s) must be greater than zero.",n);var r=(0,l.hU)(b)?e:b,i=(0,l.hU)(x)?t:x;n&&n>0&&(r?i=r/n:i&&(r=i*n),j&&i>j&&(i=j)),(0,c.Z)(r>0||i>0,"The width(%s) and height(%s) of chart should be greater than 0,\n please check the style of container, or the props width(%s) and height(%s),\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\n height and width.",r,i,b,x,y,v,n);var a=!Array.isArray(w)&&(0,s.isElement)(w)&&(0,u.Gf)(w.type).endsWith("Chart");return o.Children.map(w,(function(e){return(0,s.isElement)(e)?(0,o.cloneElement)(e,f({width:r,height:i},a?{style:f({height:"100%",width:"100%",maxHeight:i,maxWidth:r},e.props.style)}:{})):e}))}),[n,w,x,j,v,y,P,b]);return o.createElement("div",{id:O?"".concat(O):void 0,className:(0,r.Z)("recharts-responsive-container",k),style:f(f({},A),{},{width:b,height:x,minWidth:y,minHeight:v,maxHeight:j}),ref:D},Z)}))},95087:(e,t,n)=>{var r;if("object"===typeof globalThis)r=globalThis;else try{r=n(94210)}catch(s){}finally{if(r||"undefined"===typeof window||(r=window),!r)throw new Error("Could not determine global this")}var o=r.WebSocket||r.MozWebSocket,i=n(51496);function a(e,t){return t?new o(e,t):new o(e)}o&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(e){Object.defineProperty(a,e,{get:function(){return o[e]}})})),e.exports={w3cwebsocket:o?a:null,version:i}},51496:(e,t,n)=>{e.exports=n(19794).version},19794:e=>{"use strict";e.exports={version:"1.0.34"}}}]);
+//# sourceMappingURL=1829.4d4a6cb6.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1829.4d4a6cb6.chunk.js.map b/portal-ui/build/static/js/1829.4d4a6cb6.chunk.js.map
new file mode 100644
index 0000000000..afd828819a
--- /dev/null
+++ b/portal-ui/build/static/js/1829.4d4a6cb6.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/1829.4d4a6cb6.chunk.js","mappings":"2JAwBA,MAuCA,EAvCwBA,IAAkD,IAAjD,cAAEC,EAAa,OAAEC,GAA0BF,EAClE,OACEG,EAAAA,EAAAA,KAACC,EAAAA,IAAI,CAACC,WAAS,EAAAC,UACbH,EAAAA,EAAAA,KAACC,EAAAA,IAAI,CAACG,MAAI,EAACC,GAAI,GAAGF,UAChBH,EAAAA,EAAAA,KAACM,EAAAA,IAAO,CACNC,MAAK,GAAAC,OAAKT,EAAM,kBAChBD,cAAeA,EACfW,MACEC,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CACFC,GAAI,CACFC,SAAU,OACV,CAAC,sBAADL,OAAuBM,EAAAA,IAAYC,GAAE,QAAQ,CAC3CC,QAAS,OACTC,SAAU,WAEZd,SAAA,EAEFH,EAAAA,EAAAA,KAAA,QAAAG,SAAM,gEAGNO,EAAAA,EAAAA,MAAA,QAAAP,SAAA,CAAM,4BACsB,KAC1BH,EAAAA,EAAAA,KAAA,KACEkB,KAAK,oHACLC,OAAO,SACPC,IAAI,WAAUjB,SACf,qBAEI,IAAI,kCAOd,C,oVCAX,MAiUA,EAjUakB,KACX,MAAMC,GAAmBC,EAAAA,EAAAA,IAAYC,EAAAA,KAE9BC,EAAOC,IAAYC,EAAAA,EAAAA,WAAS,IAC5BC,EAAYC,IAAiBF,EAAAA,EAAAA,UAAS,KACtCG,EAAYC,IAAiBJ,EAAAA,EAAAA,UAAmB,KAChDK,EAAQC,IAAaN,EAAAA,EAAAA,UAAS,KAC9BO,EAAWC,IAAgBR,EAAAA,EAAAA,WAAS,IACpCS,EAAYC,IAAiBV,EAAAA,EAAAA,WAAS,IACtCW,EAAWC,IAAgBZ,EAAAA,EAAAA,WAAS,IAEpCa,EAASC,IAAcd,EAAAA,EAAAA,UAAS,CACrCe,WAAY,CAAC,EAAG,EAAG,EAAG,GACtBC,UAAW,CAAC,EAAG,EAAG,EAAG,GACrBC,cAAe,EACfC,eAAgB,EAChBC,aAAc,EACdC,YAAa,MAkBfC,EAAAA,EAAAA,YAAU,KAdRC,EAAAA,EAAIC,QACDC,cACAC,MAAMC,IACL,IAAIH,EAAoB,GACpBG,EAAIC,KAAKJ,UACXA,EAAUG,EAAIC,KAAKJ,SAErBnB,EAAcmB,EAAQ,IAEvBK,OAAOC,IACNC,QAAQC,OAAMC,EAAAA,EAAAA,GAAeH,EAAIE,OAAO,GAK3B,GAChB,KAGHV,EAAAA,EAAAA,YAAU,KACJZ,GACFG,GAAa,EACf,GACC,CAACH,KAEJY,EAAAA,EAAAA,YAAU,KACJV,GACFD,GAAc,EAChB,GACC,CAACC,IAEJ,MAAMsB,EAAkBC,GACf,CAACA,EAAMC,MAAOD,EAAME,OAAQF,EAAMG,IAAKH,EAAMI,OAGtDjB,EAAAA,EAAAA,YAAU,KAER,GAAIvB,EAAO,CAET,MAAMyC,EAAa,CAAEJ,MAAO,EAAGC,OAAQ,EAAGC,IAAK,EAAGC,KAAM,GAClDE,EAAa,CAAEL,MAAO,EAAGC,OAAQ,EAAGC,IAAK,EAAGC,KAAM,GAElDG,EAAM,IAAIC,IAAIC,OAAOC,SAASC,YAE9BC,GADQC,EACO,OAASN,EAAIK,KAI5BE,EADe,IAAIN,IAAIO,SAASC,SACTC,SAEvBC,GAASC,EAAAA,EAAAA,IAAWZ,EAAIa,UACxBC,EAAI,IAAIC,EAAAA,aAAa,GAAD3E,OACrBuE,EAAM,OAAAvE,OAAM4D,EAAIgB,SAAQ,KAAA5E,OAAIiE,GAAIjE,OAAGmE,EAAO,YAAAnE,OAAWoB,EAAU,YAAApB,OAAWwB,EAAM,eAAAxB,OAAc0B,EAAS,iBAAA1B,OAAgB4B,EAAU,gBAAA5B,OAAe8B,IAGrJ,GAAU,OAAN4C,EA2BF,OA1BAA,EAAEG,OAAS,KACT5B,QAAQ6B,IAAI,8BACZJ,EAAEK,KAAK,KAAK,EAEdL,EAAEM,UAAaC,IACb,IAAIC,EAAgBC,KAAKC,MAAMH,EAAQnC,KAAKkB,YAE5C,IAAK,MAAOqB,EAAKC,KAAUC,OAAOC,QAAQN,EAAEO,iBAC1C9B,EAAG0B,GAAgB,IAARC,EAAeJ,EAAEQ,aAE9B,IAAK,MAAOL,EAAKC,KAAUC,OAAOC,QAAQN,EAAES,kBAC1CjC,EAAG2B,GAAgB,IAARC,EAAeJ,EAAEQ,aAE9BzD,EAAW,CACTC,WAAYkB,EAAeM,GAC3BvB,UAAWiB,EAAeO,GAC1BvB,cAAe8C,EAAE9C,cACjBC,eAAgB6C,EAAE7C,eAClBC,aAAc4C,EAAE5C,aAChBC,aAAaqD,EAAAA,EAAAA,IAAUV,EAAEW,aAAa7B,aACtC,EAEJU,EAAEoB,QAAU,KACV5E,GAAS,GACT+B,QAAQ6B,IAAI,8BAA8B,EAErC,KAELJ,EAAEqB,MAAM,KACR9C,QAAQ6B,IAAI,qBAAqB,CAGvC,IACC,CAAC7D,EAAOG,EAAYQ,EAAYE,EAAWN,EAAQE,IAEtD,IAAIoB,EAAO,CACT,CACEkD,KAAM,QACNC,GAAIjE,EAAQG,UAAU,GACtB+D,GAAIlE,EAAQE,WAAW,GACvBiE,IAAK,KAEP,CACEH,KAAM,SACNC,GAAIjE,EAAQG,UAAU,GACtB+D,GAAIlE,EAAQE,WAAW,GACvBiE,IAAK,KAEP,CACEH,KAAM,MACNC,GAAIjE,EAAQG,UAAU,GACtB+D,GAAIlE,EAAQE,WAAW,GACvBiE,IAAK,KAEP,CACEH,KAAM,OACNC,GAAIjE,EAAQG,UAAU,GACtB+D,GAAIlE,EAAQE,WAAW,GACvBiE,IAAK,MAGT,MAAMC,EAAc9E,EAAW+E,KAAKjF,IAAU,CAC5CkF,MAAOlF,EAAW4E,KAClBV,MAAOlE,EAAW4E,SAEdO,GAAWC,EAAAA,EAAAA,MAMjB,OALAhE,EAAAA,EAAAA,YAAU,KACR+D,GAASE,EAAAA,EAAAA,IAAY,QAAQ,GAE5B,KAGDvG,EAAAA,EAAAA,MAACwG,EAAAA,SAAQ,CAAA/G,SAAA,EACPH,EAAAA,EAAAA,KAACmH,EAAAA,EAAiB,CAACL,MAAM,SAASM,SAASpH,EAAAA,EAAAA,KAACqH,EAAAA,EAAQ,OAEpDrH,EAAAA,EAAAA,KAACsH,EAAAA,IAAU,CAAAnH,SACPmB,GAGAZ,EAAAA,EAAAA,MAAC6G,EAAAA,EAAe,CACdC,OAAQ,CAACC,EAAAA,GAAWC,YACpBC,SAAUC,EAAAA,GAAoBzH,SAAA,EAE9BO,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CAACkH,aAAW,EAAA1H,SAAA,EACdO,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CACFC,GAAI,CACFI,QAAS,OACT8G,WAAY,SACZC,aAAc,GACdC,IAAK,IACL7H,SAAA,EAEFO,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CAACC,GAAI,CAAEqH,SAAU,EAAGC,MAAO,QAAS/H,SAAA,EACtCH,EAAAA,EAAAA,KAACmI,EAAAA,IAAU,CAAAhI,SAAC,YACZH,EAAAA,EAAAA,KAACoI,EAAAA,IAAM,CACLC,GAAG,cACH7B,KAAK,cACLV,MAAOlE,EACP0G,SAAWxC,IACTjE,EAAciE,EAAgB,EAEhCyC,QAAS3B,EACT4B,YAAa,sBAGjB9H,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CAACC,GAAI,CAAEqH,SAAU,EAAGC,MAAO,QAAS/H,SAAA,EACtCH,EAAAA,EAAAA,KAACmI,EAAAA,IAAU,CAAAhI,SAAC,YACZH,EAAAA,EAAAA,KAACyI,EAAAA,IAAQ,CACPJ,GAAG,kBACHK,UAAU,EACVJ,SAAWK,IACT1G,EAAU0G,EAAExH,OAAO2E,MAAM,WAKjCpF,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CAACC,GAAI,CAAEI,QAAS,OAAQgH,IAAK,IAAK7H,SAAA,EACpCH,EAAAA,EAAAA,KAACW,EAAAA,IAAG,CAAAR,UACFH,EAAAA,EAAAA,KAAC4I,EAAAA,IAAQ,CACPpC,KAAK,YACL6B,GAAG,YACHvC,MAAM,YACN+C,QAAS3G,EACToG,SAAUA,KACRnG,GAAcD,EAAU,EAE1BwG,UAAU,EACV5B,MAAM,iBAGV9G,EAAAA,EAAAA,KAACW,EAAAA,IAAG,CAAAR,UACFH,EAAAA,EAAAA,KAAC4I,EAAAA,IAAQ,CACPpC,KAAK,aACL6B,GAAG,aACHvC,MAAM,aACN+C,QAASzG,EACTkG,SAAUA,KACRjG,GAAeD,EAAW,EAE5BsG,UAAU,EACV5B,MAAM,mBAGV9G,EAAAA,EAAAA,KAACW,EAAAA,IAAG,CAAAR,UACFH,EAAAA,EAAAA,KAAC4I,EAAAA,IAAQ,CACPpC,KAAK,YACL6B,GAAG,YACHvC,MAAM,YACN+C,QAASvG,EACTgG,SAAUA,KACR/F,GAAcD,EAAU,EAE1BoG,UAAU,EACV5B,MAAM,qBAIZ9G,EAAAA,EAAAA,KAACW,EAAAA,IAAG,CAACC,GAAIkI,EAAAA,GAAgBC,eAAe5I,UACtCH,EAAAA,EAAAA,KAACgJ,EAAAA,IAAM,CACLX,GAAI,aACJY,KAAK,SACLC,QAAQ,aACRrF,MAAM,UACN6E,SAAUjH,EACV0H,QAASA,IAAMzH,GAAS,GACxBoF,MAAO,gBAIbpG,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CACFkH,aAAW,EACXjH,GAAI,CACFwI,UAAW,GACX,sCAAuC,CACrCC,UAAW,OACXC,QAAS,QAEXnJ,SAAA,EAEFH,EAAAA,EAAAA,KAACuJ,EAAAA,EAAmB,CAACrB,MAAO,MAAOsB,OAAQ,IAAIrJ,UAC7CO,EAAAA,EAAAA,MAAC+I,EAAAA,EAAQ,CACPvB,MAAO,IACPsB,OAAQ,IACRlG,KAAMA,EACNoG,OAAQ,CACNC,IAAK,EACLC,MAAO,GACPC,KAAM,GACNC,OAAQ,GACR3J,SAAA,EAEFH,EAAAA,EAAAA,KAAC+J,EAAAA,EAAa,CAACC,gBAAgB,SAC/BhK,EAAAA,EAAAA,KAACiK,EAAAA,EAAK,CAACC,QAAQ,UACflK,EAAAA,EAAAA,KAACmK,EAAAA,EAAK,KACNnK,EAAAA,EAAAA,KAACoK,EAAAA,EAAO,KACRpK,EAAAA,EAAAA,KAACqK,EAAAA,EAAM,CACLC,cAAe,MACfC,OAAQ,aACRC,UAAW,UAEbxK,EAAAA,EAAAA,KAACyK,EAAAA,EAAG,CACFP,QAAQ,KACR1D,KAAM,gBACNkE,KAAK,YACLC,OAAO,aAET3K,EAAAA,EAAAA,KAACyK,EAAAA,EAAG,CACFP,QAAQ,KACR1D,KAAM,iBACNkE,KAAK,YACLC,OAAO,kBAIbjK,EAAAA,EAAAA,MAACT,EAAAA,IAAI,CACHG,MAAI,EACJC,GAAI,GACJO,GAAI,CACFwI,UAAW,GACXpI,QAAS,OACT4J,cAAe,MACfC,eAAgB,gBAChB,cAAe,CAAC,GAChB1K,SAAA,EAEFO,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CAAC6J,UAAW,WAAWrK,SAAA,EACzBH,EAAAA,EAAAA,KAAA,UAAAG,SAAQ,kBAAsB,IAAEqC,EAAQO,gBAE1CrC,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CAAC6J,UAAW,WAAWrK,SAAA,EACzBH,EAAAA,EAAAA,KAAA,UAAAG,SAAQ,oBAAwB,IAAEqC,EAAQI,cAAc,KAAG,IAC1DJ,EAAQK,mBAEXnC,EAAAA,EAAAA,MAACC,EAAAA,IAAG,CAAC6J,UAAW,WAAWrK,SAAA,EACzBH,EAAAA,EAAAA,KAAA,UAAAG,SAAQ,kBAAsB,IAAEqC,EAAQM,aAAa,iBA5J7D9C,EAAAA,EAAAA,KAAC8K,EAAAA,EAAe,CAAC/K,OAAQ,OAAQD,eAAeE,EAAAA,EAAAA,KAAC+K,EAAAA,IAAQ,UAmKpD,C,YCxXf,IAAIC,EAAgB,WACnB,GAAoB,kBAATC,MAAqBA,KAAM,OAAOA,KAC7C,GAAsB,kBAAX3G,QAAuBA,OAAQ,OAAOA,OACjD,MAAM,IAAI4G,MAAM,kCACjB,EAEAC,EAAOC,QAAW,WACjB,GAAIC,KAAM,OAAOA,KAKjB,GAA0B,kBAAfC,YAA2BA,WAAY,OAAOA,WAKzD,IACCvF,OAAOwF,eAAexF,OAAOyF,UAAW,aAAc,CACrDC,IAAK,WAAc,OAAOJ,IAAM,EAChCK,cAAc,GAEhB,CAAE,MAAOhI,GAGR,OAAOsH,GACR,CACA,IAEC,OAAKW,YAAmBX,GAEzB,CAAE,eACMjF,OAAOyF,UAAUG,UACzB,CACD,CA5BkB,E,2GCEPlC,GAAWmC,EAAAA,EAAAA,GAAyB,CAC7CC,UAAW,WACXC,eAAgBrB,EAAAA,EAChBsB,wBAAyB,OACzBC,0BAA2B,CAAC,OAAQ,QACpCC,eAAgB,CAAC,CACfC,SAAU,QACVC,SAAUlC,EAAAA,GACT,CACDiC,SAAU,QACVC,SAAUhC,EAAAA,IAEZiC,cAAeA,EAAAA,I,0ICpBjB,SAASC,EAAQC,GAAgC,OAAOD,EAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBC,QAAUD,EAAEG,cAAgBF,QAAUD,IAAMC,OAAOf,UAAY,gBAAkBc,CAAG,EAAGD,EAAQC,EAAI,CAC7T,SAASI,EAAQ/D,EAAGgE,GAAK,IAAIC,EAAI7G,OAAO8G,KAAKlE,GAAI,GAAI5C,OAAO+G,sBAAuB,CAAE,IAAIR,EAAIvG,OAAO+G,sBAAsBnE,GAAIgE,IAAML,EAAIA,EAAES,QAAO,SAAUJ,GAAK,OAAO5G,OAAOiH,yBAAyBrE,EAAGgE,GAAGM,UAAY,KAAKL,EAAEM,KAAKC,MAAMP,EAAGN,EAAI,CAAE,OAAOM,CAAG,CAC9P,SAASQ,EAAczE,GAAK,IAAK,IAAIgE,EAAI,EAAGA,EAAIU,UAAUC,OAAQX,IAAK,CAAE,IAAIC,EAAI,MAAQS,UAAUV,GAAKU,UAAUV,GAAK,CAAC,EAAGA,EAAI,EAAID,EAAQ3G,OAAO6G,IAAI,GAAIW,SAAQ,SAAUZ,GAAKa,EAAgB7E,EAAGgE,EAAGC,EAAED,GAAK,IAAK5G,OAAO0H,0BAA4B1H,OAAO2H,iBAAiB/E,EAAG5C,OAAO0H,0BAA0Bb,IAAMF,EAAQ3G,OAAO6G,IAAIW,SAAQ,SAAUZ,GAAK5G,OAAOwF,eAAe5C,EAAGgE,EAAG5G,OAAOiH,yBAAyBJ,EAAGD,GAAK,GAAI,CAAE,OAAOhE,CAAG,CACtb,SAAS6E,EAAgBG,EAAK9H,EAAKC,GAA4L,OAAnLD,EAC5C,SAAwB+H,GAAO,IAAI/H,EACnC,SAAsBgI,EAAOC,GAAQ,GAAuB,WAAnBzB,EAAQwB,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMtB,OAAOyB,aAAc,QAAaC,IAATF,EAAoB,CAAE,IAAI1K,EAAM0K,EAAKG,KAAKL,EAAOC,GAAQ,WAAY,GAAqB,WAAjBzB,EAAQhJ,GAAmB,OAAOA,EAAK,MAAM,IAAI8K,UAAU,+CAAiD,CAAE,OAAiB,WAATL,EAAoBM,OAASC,QAAQR,EAAQ,CADnVS,CAAaV,EAAK,UAAW,MAAwB,WAAjBvB,EAAQxG,GAAoBA,EAAMuI,OAAOvI,EAAM,CAD1E0I,CAAe1I,MAAiB8H,EAAO5H,OAAOwF,eAAeoC,EAAK9H,EAAK,CAAEC,MAAOA,EAAOmH,YAAY,EAAMvB,cAAc,EAAM8C,UAAU,IAAkBb,EAAI9H,GAAOC,EAAgB6H,CAAK,CAG3O,SAASc,EAAeC,EAAKC,GAAK,OAKlC,SAAyBD,GAAO,GAAIE,MAAMC,QAAQH,GAAM,OAAOA,CAAK,CAL3BI,CAAgBJ,IAIzD,SAA+B/B,EAAGoC,GAAK,IAAInC,EAAI,MAAQD,EAAI,KAAO,oBAAsBJ,QAAUI,EAAEJ,OAAOC,WAAaG,EAAE,cAAe,GAAI,MAAQC,EAAG,CAAE,IAAIjE,EAAGqG,EAAGL,EAAGM,EAAGC,EAAI,GAAIC,GAAI,EAAI7C,GAAI,EAAI,IAAM,GAAIqC,GAAK/B,EAAIA,EAAEsB,KAAKvB,IAAIyC,KAAM,IAAML,EAAG,CAAE,GAAIhJ,OAAO6G,KAAOA,EAAG,OAAQuC,GAAI,CAAI,MAAO,OAASA,GAAKxG,EAAIgG,EAAET,KAAKtB,IAAIyC,QAAUH,EAAEhC,KAAKvE,EAAE7C,OAAQoJ,EAAE5B,SAAWyB,GAAII,GAAI,GAAK,CAAE,MAAOxC,GAAKL,GAAI,EAAI0C,EAAIrC,CAAG,CAAE,QAAU,IAAM,IAAKwC,GAAK,MAAQvC,EAAU,SAAMqC,EAAIrC,EAAU,SAAK7G,OAAOkJ,KAAOA,GAAI,MAAQ,CAAE,QAAU,GAAI3C,EAAG,MAAM0C,CAAG,CAAE,CAAE,OAAOE,CAAG,CAAE,CAJxdI,CAAsBZ,EAAKC,IAE5F,SAAqCrC,EAAGiD,GAAU,IAAKjD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOkD,EAAkBlD,EAAGiD,GAAS,IAAIP,EAAIjJ,OAAOyF,UAAUhH,SAAS0J,KAAK5B,GAAGmD,MAAM,GAAI,GAAc,WAANT,GAAkB1C,EAAEG,cAAauC,EAAI1C,EAAEG,YAAYjG,MAAM,GAAU,QAANwI,GAAqB,QAANA,EAAa,OAAOJ,MAAMc,KAAKpD,GAAI,GAAU,cAAN0C,GAAqB,2CAA2CW,KAAKX,GAAI,OAAOQ,EAAkBlD,EAAGiD,EAAS,CAF7TK,CAA4BlB,EAAKC,IACnI,WAA8B,MAAM,IAAIR,UAAU,4IAA8I,CADvD0B,EAAoB,CAG7J,SAASL,EAAkBd,EAAKoB,IAAkB,MAAPA,GAAeA,EAAMpB,EAAIpB,UAAQwC,EAAMpB,EAAIpB,QAAQ,IAAK,IAAIqB,EAAI,EAAGoB,EAAO,IAAInB,MAAMkB,GAAMnB,EAAImB,EAAKnB,IAAKoB,EAAKpB,GAAKD,EAAIC,GAAI,OAAOoB,CAAM,CAa3K,IAAIxG,GAAmCyG,EAAAA,EAAAA,aAAW,SAAUnQ,EAAMoQ,GACvE,IAAIC,EAASrQ,EAAKqQ,OAChBC,EAAwBtQ,EAAKuQ,iBAC7BA,OAA6C,IAA1BD,EAAmC,CACpDjI,OAAQ,EACRsB,QAAS,GACP2G,EACJE,EAAaxQ,EAAKqI,MAClBA,OAAuB,IAAfmI,EAAwB,OAASA,EACzCC,EAAczQ,EAAK2J,OACnBA,OAAyB,IAAhB8G,EAAyB,OAASA,EAC3CC,EAAgB1Q,EAAK2Q,SACrBA,OAA6B,IAAlBD,EAA2B,EAAIA,EAC1CE,EAAY5Q,EAAK4Q,UACjBC,EAAY7Q,EAAK6Q,UACjBvQ,EAAWN,EAAKM,SAChBwQ,EAAgB9Q,EAAK+Q,SACrBA,OAA6B,IAAlBD,EAA2B,EAAIA,EAC1CtI,EAAKxI,EAAKwI,GACVmC,EAAY3K,EAAK2K,UACjBqG,EAAWhR,EAAKgR,SAChBC,EAAajR,EAAKkR,MAClBA,OAAuB,IAAfD,EAAwB,CAAC,EAAIA,EACnCE,GAAeC,EAAAA,EAAAA,QAAO,MACtBC,GAAcD,EAAAA,EAAAA,UAClBC,EAAYC,QAAUN,GAGtBO,EAAAA,EAAAA,qBAAoBnB,GAAK,WACvB,OAAOe,CACT,IACA,IAIEK,EAAa5C,GAJC9M,EAAAA,EAAAA,UAAS,CACrB2P,eAAgBlB,EAAiBlI,MACjCqJ,gBAAiBnB,EAAiB5G,SAEG,GACvCgI,EAAQH,EAAW,GACnBI,EAAWJ,EAAW,GACpBK,GAAmBC,EAAAA,EAAAA,cAAY,SAAUC,EAAUC,GACrDJ,GAAS,SAAUK,GACjB,IAAIC,EAAeC,KAAKC,MAAML,GAC1BM,EAAgBF,KAAKC,MAAMJ,GAC/B,OAAIC,EAAUR,iBAAmBS,GAAgBD,EAAUP,kBAAoBW,EACtEJ,EAEF,CACLR,eAAgBS,EAChBR,gBAAiBW,EAErB,GACF,GAAG,KACHlP,EAAAA,EAAAA,YAAU,WACR,IAAImP,EAAW,SAAkBnM,GAC/B,IAAIoM,EACAC,EAAwBrM,EAAQ,GAAGsM,YACrChB,EAAiBe,EAAsBnK,MACvCqJ,EAAkBc,EAAsB7I,OAC1CkI,EAAiBJ,EAAgBC,GACgB,QAAhDa,EAAuBlB,EAAYC,eAA8C,IAAzBiB,GAAmCA,EAAqBlE,KAAKgD,EAAaI,EAAgBC,EACrJ,EACIX,EAAW,IACbuB,EAAWI,IAASJ,EAAUvB,EAAU,CACtC4B,UAAU,EACVC,SAAS,KAGb,IAAIC,EAAW,IAAIC,eAAeR,GAC9BS,EAAwB5B,EAAaG,QAAQ0B,wBAC/CvB,EAAiBsB,EAAsB1K,MACvCqJ,EAAkBqB,EAAsBpJ,OAG1C,OAFAkI,EAAiBJ,EAAgBC,GACjCmB,EAASI,QAAQ9B,EAAaG,SACvB,WACLuB,EAASK,YACX,CACF,GAAG,CAACrB,EAAkBd,IACtB,IAAIoC,GAAeC,EAAAA,EAAAA,UAAQ,WACzB,IAAI3B,EAAiBE,EAAMF,eACzBC,EAAkBC,EAAMD,gBAC1B,GAAID,EAAiB,GAAKC,EAAkB,EAC1C,OAAO,MAET2B,EAAAA,EAAAA,IAAKC,EAAAA,EAAAA,IAAUjL,KAAUiL,EAAAA,EAAAA,IAAU3J,GAAS,kHAAmHtB,EAAOsB,IACtK0J,EAAAA,EAAAA,IAAMhD,GAAUA,EAAS,EAAG,4CAA6CA,GACzE,IAAIkD,GAAkBD,EAAAA,EAAAA,IAAUjL,GAASoJ,EAAiBpJ,EACtDmL,GAAmBF,EAAAA,EAAAA,IAAU3J,GAAU+H,EAAkB/H,EACzD0G,GAAUA,EAAS,IAEjBkD,EAEFC,EAAmBD,EAAkBlD,EAC5BmD,IAETD,EAAkBC,EAAmBnD,GAInCQ,GAAa2C,EAAmB3C,IAClC2C,EAAmB3C,KAGvBwC,EAAAA,EAAAA,GAAKE,EAAkB,GAAKC,EAAmB,EAAG,gQAAiQD,EAAiBC,EAAkBnL,EAAOsB,EAAQgH,EAAUC,EAAWP,GAC1X,IAAIoD,GAAY1E,MAAMC,QAAQ1O,KAAaoT,EAAAA,EAAAA,WAAUpT,KAAaqT,EAAAA,EAAAA,IAAerT,EAAS8I,MAAMwK,SAAS,SACzG,OAAOC,EAAAA,SAAe7M,IAAI1G,GAAU,SAAUwT,GAC5C,OAAIJ,EAAAA,EAAAA,WAAUI,IACQC,EAAAA,EAAAA,cAAaD,EAAOvG,EAAc,CACpDlF,MAAOkL,EACP5J,OAAQ6J,GACPC,EAAW,CACZvC,MAAO3D,EAAc,CACnB5D,OAAQ,OACRtB,MAAO,OACPwI,UAAW2C,EACXQ,SAAUT,GACTO,EAAMG,MAAM/C,QACb,CAAC,IAEA4C,CACT,GACF,GAAG,CAACzD,EAAQ/P,EAAUqJ,EAAQkH,EAAWD,EAAWD,EAAUgB,EAAOtJ,IACrE,OAAoBwL,EAAAA,cAAoB,MAAO,CAC7CrL,GAAIA,EAAK,GAAG7H,OAAO6H,QAAM4F,EACzBzD,WAAWuJ,EAAAA,EAAAA,GAAK,gCAAiCvJ,GACjDuG,MAAO3D,EAAcA,EAAc,CAAC,EAAG2D,GAAQ,CAAC,EAAG,CACjD7I,MAAOA,EACPsB,OAAQA,EACRgH,SAAUA,EACVC,UAAWA,EACXC,UAAWA,IAEbT,IAAKe,GACJgC,EACL,G,kBC1JA,IAAIgB,EACJ,GAA0B,kBAAf1I,WACV0I,EAAc1I,gBAEd,IACC0I,EAAcC,EAAQ,MACvB,CAAE,MAAOvQ,GACT,CAAE,QAED,GADKsQ,GAAiC,qBAAX1P,SAA0B0P,EAAc1P,SAC9D0P,EAAe,MAAM,IAAI9I,MAAM,kCACrC,CAGD,IAAIgJ,EAAkBF,EAAYG,WAAaH,EAAYI,aACvDC,EAAoBJ,EAAQ,OAMhC,SAAS9O,EAAamP,EAAKC,GAiB1B,OAdIA,EACe,IAAIL,EAAgBI,EAAKC,GAGzB,IAAIL,EAAgBI,EAWxC,CACIJ,GACH,CAAC,aAAc,OAAQ,UAAW,UAAU3G,SAAQ,SAASiH,GAC5DzO,OAAOwF,eAAepG,EAAcqP,EAAM,CACzC/I,IAAK,WAAa,OAAOyI,EAAgBM,EAAO,GAElD,IAMDrJ,EAAOC,QAAU,CACb,aAAiB8I,EAAkB/O,EAAe,KAClD,QAAiBkP,E,kBCpDrBlJ,EAAOC,QAAU,EAAjBD,OAAAA,O","sources":["screens/Console/Common/DistributedOnly/DistributedOnly.tsx","screens/Console/Heal/Heal.tsx","../node_modules/es5-ext/global.js","../node_modules/recharts/es6/chart/BarChart.js","../node_modules/recharts/es6/component/ResponsiveContainer.js","../node_modules/websocket/lib/browser.js","../node_modules/websocket/lib/version.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { HelpBox, Box, Grid, breakPoints } from \"mds\";\n\ninterface IDistributedOnly {\n iconComponent: any;\n entity: string;\n}\n\nconst DistributedOnly = ({ iconComponent, entity }: IDistributedOnly) => {\n return (\n \n \n \n \n This feature is not available for a single-disk setup. \n \n \n Please deploy a server in{\" \"}\n \n Distributed Mode\n {\" \"}\n to use this feature.\n \n \n }\n />\n \n \n );\n};\n\nexport default DistributedOnly;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { IMessageEvent, w3cwebsocket as W3CWebSocket } from \"websocket\";\nimport {\n Box,\n Button,\n Checkbox,\n Grid,\n HealIcon,\n InputBox,\n InputLabel,\n PageLayout,\n Select,\n} from \"mds\";\nimport {\n Bar,\n BarChart,\n CartesianGrid,\n Legend,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\n\nimport { api } from \"api\";\nimport { Bucket } from \"api/consoleApi\";\nimport { errorToHandler } from \"api/errors\";\nimport { wsProtocol } from \"../../../utils/wsUtils\";\nimport { colorH, HealStatus } from \"./types\";\nimport { niceBytes } from \"../../../common/utils\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport { selDistSet, setHelpName } from \"../../../systemSlice\";\nimport { SecureComponent } from \"../../../common/SecureComponent\";\nimport { useAppDispatch } from \"../../../store\";\nimport DistributedOnly from \"../Common/DistributedOnly/DistributedOnly\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport HelpMenu from \"../HelpMenu\";\n\nconst Heal = () => {\n const distributedSetup = useSelector(selDistSet);\n\n const [start, setStart] = useState(false);\n const [bucketName, setBucketName] = useState(\"\");\n const [bucketList, setBucketList] = useState([]);\n const [prefix, setPrefix] = useState(\"\");\n const [recursive, setRecursive] = useState(false);\n const [forceStart, setForceStart] = useState(false);\n const [forceStop, setForceStop] = useState(false);\n // healStatus states\n const [hStatus, setHStatus] = useState({\n beforeHeal: [0, 0, 0, 0],\n afterHeal: [0, 0, 0, 0],\n objectsHealed: 0,\n objectsScanned: 0,\n healDuration: 0,\n sizeScanned: \"\",\n });\n\n const fetchBucketList = () => {\n api.buckets\n .listBuckets()\n .then((res) => {\n let buckets: Bucket[] = [];\n if (res.data.buckets) {\n buckets = res.data.buckets;\n }\n setBucketList(buckets);\n })\n .catch((err) => {\n console.error(errorToHandler(err.error));\n });\n };\n\n useEffect(() => {\n fetchBucketList();\n }, []);\n\n // forceStart and forceStop need to be mutually exclusive\n useEffect(() => {\n if (forceStart) {\n setForceStop(false);\n }\n }, [forceStart]);\n\n useEffect(() => {\n if (forceStop) {\n setForceStart(false);\n }\n }, [forceStop]);\n\n const colorHealthArr = (color: colorH) => {\n return [color.Green, color.Yellow, color.Red, color.Grey];\n };\n\n useEffect(() => {\n // begin watch if bucketName in bucketList and start pressed\n if (start) {\n // values stored here to update chart\n const cB: colorH = { Green: 0, Yellow: 0, Red: 0, Grey: 0 };\n const cA: colorH = { Green: 0, Yellow: 0, Red: 0, Grey: 0 };\n\n const url = new URL(window.location.toString());\n const isDev = process.env.NODE_ENV === \"development\";\n const port = isDev ? \"9090\" : url.port;\n\n // check if we are using base path, if not this always is `/`\n const baseLocation = new URL(document.baseURI);\n const baseUrl = baseLocation.pathname;\n\n const wsProt = wsProtocol(url.protocol);\n const c = new W3CWebSocket(\n `${wsProt}://${url.hostname}:${port}${baseUrl}ws/heal/${bucketName}?prefix=${prefix}&recursive=${recursive}&force-start=${forceStart}&force-stop=${forceStop}`,\n );\n\n if (c !== null) {\n c.onopen = () => {\n console.log(\"WebSocket Client Connected\");\n c.send(\"ok\");\n };\n c.onmessage = (message: IMessageEvent) => {\n let m: HealStatus = JSON.parse(message.data.toString());\n // Store percentage per health color\n for (const [key, value] of Object.entries(m.healthAfterCols)) {\n cA[key] = (value * 100) / m.itemsScanned;\n }\n for (const [key, value] of Object.entries(m.healthBeforeCols)) {\n cB[key] = (value * 100) / m.itemsScanned;\n }\n setHStatus({\n beforeHeal: colorHealthArr(cB),\n afterHeal: colorHealthArr(cA),\n objectsHealed: m.objectsHealed,\n objectsScanned: m.objectsScanned,\n healDuration: m.healDuration,\n sizeScanned: niceBytes(m.bytesScanned.toString()),\n });\n };\n c.onclose = () => {\n setStart(false);\n console.log(\"connection closed by server\");\n };\n return () => {\n // close websocket on useEffect cleanup\n c.close(1000);\n console.log(\"closing websockets\");\n };\n }\n }\n }, [start, bucketName, forceStart, forceStop, prefix, recursive]);\n\n let data = [\n {\n name: \"Green\",\n ah: hStatus.afterHeal[0],\n bh: hStatus.beforeHeal[0],\n amt: 100,\n },\n {\n name: \"Yellow\",\n ah: hStatus.afterHeal[1],\n bh: hStatus.beforeHeal[1],\n amt: 100,\n },\n {\n name: \"Red\",\n ah: hStatus.afterHeal[2],\n bh: hStatus.beforeHeal[2],\n amt: 100,\n },\n {\n name: \"Grey\",\n ah: hStatus.afterHeal[3],\n bh: hStatus.beforeHeal[3],\n amt: 100,\n },\n ];\n const bucketNames = bucketList.map((bucketName) => ({\n label: bucketName.name,\n value: bucketName.name,\n }));\n const dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(setHelpName(\"heal\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n } />\n\n \n {!distributedSetup ? (\n } />\n ) : (\n \n \n \n \n Bucket\n \n \n Prefix\n {\n setPrefix(e.target.value);\n }}\n />\n \n \n \n \n {\n setRecursive(!recursive);\n }}\n disabled={false}\n label=\"Recursive\"\n />\n \n \n {\n setForceStart(!forceStart);\n }}\n disabled={false}\n label=\"Force Start\"\n />\n \n \n {\n setForceStop(!forceStop);\n }}\n disabled={false}\n label=\"Force Stop\"\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Size scanned: {hStatus.sizeScanned}\n \n \n Objects healed: {hStatus.objectsHealed} /{\" \"}\n {hStatus.objectsScanned}\n \n \n Healing time: {hStatus.healDuration}s\n \n \n \n \n )}\n \n \n );\n};\n\nexport default Heal;\n","var naiveFallback = function () {\n\tif (typeof self === \"object\" && self) return self;\n\tif (typeof window === \"object\" && window) return window;\n\tthrow new Error(\"Unable to resolve global `this`\");\n};\n\nmodule.exports = (function () {\n\tif (this) return this;\n\n\t// Unexpected strict mode (may happen if e.g. bundled into ESM module)\n\n\t// Fallback to standard globalThis if available\n\tif (typeof globalThis === \"object\" && globalThis) return globalThis;\n\n\t// Thanks @mathiasbynens -> https://mathiasbynens.be/notes/globalthis\n\t// In all ES5+ engines global object inherits from Object.prototype\n\t// (if you approached one that doesn't please report)\n\ttry {\n\t\tObject.defineProperty(Object.prototype, \"__global__\", {\n\t\t\tget: function () { return this; },\n\t\t\tconfigurable: true\n\t\t});\n\t} catch (error) {\n\t\t// Unfortunate case of updates to Object.prototype being restricted\n\t\t// via preventExtensions, seal or freeze\n\t\treturn naiveFallback();\n\t}\n\ttry {\n\t\t// Safari case (window.__global__ works, but __global__ does not)\n\t\tif (!__global__) return naiveFallback();\n\t\treturn __global__;\n\t} finally {\n\t\tdelete Object.prototype.__global__;\n\t}\n})();\n","/**\n * @fileOverview Bar Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Bar } from '../cartesian/Bar';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var BarChart = generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n defaultTooltipEventType: 'axis',\n validateTooltipEventTypes: ['axis', 'item'],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * @fileOverview Wrapper component to make charts adapt to the size of parent * DOM\n */\nimport clsx from 'clsx';\nimport React, { forwardRef, cloneElement, useState, useImperativeHandle, useRef, useEffect, useMemo, useCallback } from 'react';\nimport throttle from 'lodash/throttle';\nimport { isElement } from 'react-is';\nimport { isPercent } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { getDisplayName } from '../util/ReactUtils';\nexport var ResponsiveContainer = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var aspect = _ref.aspect,\n _ref$initialDimension = _ref.initialDimension,\n initialDimension = _ref$initialDimension === void 0 ? {\n width: -1,\n height: -1\n } : _ref$initialDimension,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? '100%' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? '100%' : _ref$height,\n _ref$minWidth = _ref.minWidth,\n minWidth = _ref$minWidth === void 0 ? 0 : _ref$minWidth,\n minHeight = _ref.minHeight,\n maxHeight = _ref.maxHeight,\n children = _ref.children,\n _ref$debounce = _ref.debounce,\n debounce = _ref$debounce === void 0 ? 0 : _ref$debounce,\n id = _ref.id,\n className = _ref.className,\n onResize = _ref.onResize,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style;\n var containerRef = useRef(null);\n var onResizeRef = useRef();\n onResizeRef.current = onResize;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n useImperativeHandle(ref, function () {\n return containerRef;\n });\n var _useState = useState({\n containerWidth: initialDimension.width,\n containerHeight: initialDimension.height\n }),\n _useState2 = _slicedToArray(_useState, 2),\n sizes = _useState2[0],\n setSizes = _useState2[1];\n var setContainerSize = useCallback(function (newWidth, newHeight) {\n setSizes(function (prevState) {\n var roundedWidth = Math.round(newWidth);\n var roundedHeight = Math.round(newHeight);\n if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {\n return prevState;\n }\n return {\n containerWidth: roundedWidth,\n containerHeight: roundedHeight\n };\n });\n }, []);\n useEffect(function () {\n var callback = function callback(entries) {\n var _onResizeRef$current;\n var _entries$0$contentRec = entries[0].contentRect,\n containerWidth = _entries$0$contentRec.width,\n containerHeight = _entries$0$contentRec.height;\n setContainerSize(containerWidth, containerHeight);\n (_onResizeRef$current = onResizeRef.current) === null || _onResizeRef$current === void 0 || _onResizeRef$current.call(onResizeRef, containerWidth, containerHeight);\n };\n if (debounce > 0) {\n callback = throttle(callback, debounce, {\n trailing: true,\n leading: false\n });\n }\n var observer = new ResizeObserver(callback);\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n containerWidth = _containerRef$current.width,\n containerHeight = _containerRef$current.height;\n setContainerSize(containerWidth, containerHeight);\n observer.observe(containerRef.current);\n return function () {\n observer.disconnect();\n };\n }, [setContainerSize, debounce]);\n var chartContent = useMemo(function () {\n var containerWidth = sizes.containerWidth,\n containerHeight = sizes.containerHeight;\n if (containerWidth < 0 || containerHeight < 0) {\n return null;\n }\n warn(isPercent(width) || isPercent(height), \"The width(%s) and height(%s) are both fixed numbers,\\n maybe you don't need to use a ResponsiveContainer.\", width, height);\n warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var calculatedWidth = isPercent(width) ? containerWidth : width;\n var calculatedHeight = isPercent(height) ? containerHeight : height;\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n }\n\n // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n if (maxHeight && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n warn(calculatedWidth > 0 || calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n var isCharts = !Array.isArray(children) && isElement(children) && getDisplayName(children.type).endsWith('Chart');\n return React.Children.map(children, function (child) {\n if (isElement(child)) {\n return /*#__PURE__*/cloneElement(child, _objectSpread({\n width: calculatedWidth,\n height: calculatedHeight\n }, isCharts ? {\n style: _objectSpread({\n height: '100%',\n width: '100%',\n maxHeight: calculatedHeight,\n maxWidth: calculatedWidth\n }, child.props.style)\n } : {}));\n }\n return child;\n });\n }, [aspect, children, height, maxHeight, minHeight, minWidth, sizes, width]);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id ? \"\".concat(id) : undefined,\n className: clsx('recharts-responsive-container', className),\n style: _objectSpread(_objectSpread({}, style), {}, {\n width: width,\n height: height,\n minWidth: minWidth,\n minHeight: minHeight,\n maxHeight: maxHeight\n }),\n ref: containerRef\n }, chartContent);\n});","var _globalThis;\nif (typeof globalThis === 'object') {\n\t_globalThis = globalThis;\n} else {\n\ttry {\n\t\t_globalThis = require('es5-ext/global');\n\t} catch (error) {\n\t} finally {\n\t\tif (!_globalThis && typeof window !== 'undefined') { _globalThis = window; }\n\t\tif (!_globalThis) { throw new Error('Could not determine global this'); }\n\t}\n}\n\nvar NativeWebSocket = _globalThis.WebSocket || _globalThis.MozWebSocket;\nvar websocket_version = require('./version');\n\n\n/**\n * Expose a W3C WebSocket class with just one or two arguments.\n */\nfunction W3CWebSocket(uri, protocols) {\n\tvar native_instance;\n\n\tif (protocols) {\n\t\tnative_instance = new NativeWebSocket(uri, protocols);\n\t}\n\telse {\n\t\tnative_instance = new NativeWebSocket(uri);\n\t}\n\n\t/**\n\t * 'native_instance' is an instance of nativeWebSocket (the browser's WebSocket\n\t * class). Since it is an Object it will be returned as it is when creating an\n\t * instance of W3CWebSocket via 'new W3CWebSocket()'.\n\t *\n\t * ECMAScript 5: http://bclary.com/2004/11/07/#a-13.2.2\n\t */\n\treturn native_instance;\n}\nif (NativeWebSocket) {\n\t['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'].forEach(function(prop) {\n\t\tObject.defineProperty(W3CWebSocket, prop, {\n\t\t\tget: function() { return NativeWebSocket[prop]; }\n\t\t});\n\t});\n}\n\n/**\n * Module exports.\n */\nmodule.exports = {\n 'w3cwebsocket' : NativeWebSocket ? W3CWebSocket : null,\n 'version' : websocket_version\n};\n","module.exports = require('../package.json').version;\n"],"names":["_ref","iconComponent","entity","_jsx","Grid","container","children","item","xs","HelpBox","title","concat","help","_jsxs","Box","sx","fontSize","breakPoints","sm","display","flexFlow","href","target","rel","Heal","distributedSetup","useSelector","selDistSet","start","setStart","useState","bucketName","setBucketName","bucketList","setBucketList","prefix","setPrefix","recursive","setRecursive","forceStart","setForceStart","forceStop","setForceStop","hStatus","setHStatus","beforeHeal","afterHeal","objectsHealed","objectsScanned","healDuration","sizeScanned","useEffect","api","buckets","listBuckets","then","res","data","catch","err","console","error","errorToHandler","colorHealthArr","color","Green","Yellow","Red","Grey","cB","cA","url","URL","window","location","toString","port","process","baseUrl","document","baseURI","pathname","wsProt","wsProtocol","protocol","c","W3CWebSocket","hostname","onopen","log","send","onmessage","message","m","JSON","parse","key","value","Object","entries","healthAfterCols","itemsScanned","healthBeforeCols","niceBytes","bytesScanned","onclose","close","name","ah","bh","amt","bucketNames","map","label","dispatch","useAppDispatch","setHelpName","Fragment","PageHeaderWrapper","actions","HelpMenu","PageLayout","SecureComponent","scopes","IAM_SCOPES","ADMIN_HEAL","resource","CONSOLE_UI_RESOURCE","withBorders","alignItems","marginBottom","gap","flexGrow","width","InputLabel","Select","id","onChange","options","placeholder","InputBox","disabled","e","Checkbox","checked","modalStyleUtils","modalButtonBar","Button","type","variant","onClick","marginTop","listStyle","content","ResponsiveContainer","height","BarChart","margin","top","right","left","bottom","CartesianGrid","strokeDasharray","XAxis","dataKey","YAxis","Tooltip","Legend","verticalAlign","layout","className","Bar","fill","stroke","flexDirection","justifyContent","DistributedOnly","HealIcon","naiveFallback","self","Error","module","exports","this","globalThis","defineProperty","prototype","get","configurable","__global__","generateCategoricalChart","chartName","GraphicalChild","defaultTooltipEventType","validateTooltipEventTypes","axisComponents","axisType","AxisComp","formatAxisMap","_typeof","o","Symbol","iterator","constructor","ownKeys","r","t","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","arg","input","hint","prim","toPrimitive","undefined","call","TypeError","String","Number","_toPrimitive","_toPropertyKey","writable","_slicedToArray","arr","i","Array","isArray","_arrayWithHoles","l","n","u","a","f","next","done","_iterableToArrayLimit","minLen","_arrayLikeToArray","slice","from","test","_unsupportedIterableToArray","_nonIterableRest","len","arr2","forwardRef","ref","aspect","_ref$initialDimension","initialDimension","_ref$width","_ref$height","_ref$minWidth","minWidth","minHeight","maxHeight","_ref$debounce","debounce","onResize","_ref$style","style","containerRef","useRef","onResizeRef","current","useImperativeHandle","_useState2","containerWidth","containerHeight","sizes","setSizes","setContainerSize","useCallback","newWidth","newHeight","prevState","roundedWidth","Math","round","roundedHeight","callback","_onResizeRef$current","_entries$0$contentRec","contentRect","throttle","trailing","leading","observer","ResizeObserver","_containerRef$current","getBoundingClientRect","observe","disconnect","chartContent","useMemo","warn","isPercent","calculatedWidth","calculatedHeight","isCharts","isElement","getDisplayName","endsWith","React","child","cloneElement","maxWidth","props","clsx","_globalThis","require","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","uri","protocols","prop"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/191.1da33595.chunk.js.map b/portal-ui/build/static/js/191.1da33595.chunk.js.map
index 8454e2ec83..951bb21ee6 100644
--- a/portal-ui/build/static/js/191.1da33595.chunk.js.map
+++ b/portal-ui/build/static/js/191.1da33595.chunk.js.map
@@ -1 +1 @@
-{"version":3,"file":"static/js/191.1da33595.chunk.js","mappings":"iJAiCA,QAfA,SACEA,GAEC,IADDC,EAAmCC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAUtC,OARA,SAA+BG,GAC7B,OACEC,EAAAA,EAAAA,KAACC,EAAAA,SAAQ,CAACN,SAAUA,EAASO,UAC3BF,EAAAA,EAAAA,KAACN,EAAgB,IAAMK,KAG7B,CAGF,C,0PC8BA,MAAMI,GAAcC,EAAAA,EAAAA,GAAaC,EAAAA,MAAW,IAAM,mCAC5CC,GAAYF,EAAAA,EAAAA,GAChBC,EAAAA,MAAW,IAAM,mCA8UnB,EA3UeE,KACb,MAAMC,GAAWC,EAAAA,EAAAA,MACXC,GAAWC,EAAAA,EAAAA,OAEVC,EAAYC,IAAiBC,EAAAA,EAAAA,WAAkB,IAC/CC,EAASC,IAAaF,EAAAA,EAAAA,WAAkB,IACxCG,EAASC,IAAcJ,EAAAA,EAAAA,UAAgB,KACvCK,EAAQC,IAAaN,EAAAA,EAAAA,UAAiB,KACtCO,EAAYC,IAAiBR,EAAAA,EAAAA,WAAkB,IAC/CS,EAAeC,IAAoBV,EAAAA,EAAAA,UAAmB,KAE7DW,EAAAA,EAAAA,YAAU,KACRT,GAAU,EAAK,GACd,KAEHS,EAAAA,EAAAA,YAAU,KACRT,GAAU,EAAK,GACd,KAEHS,EAAAA,EAAAA,YAAU,KACRjB,GAASkB,EAAAA,EAAAA,IAAY,UAAU,GAE9B,IAEH,MAAMC,GAAgBC,EAAAA,EAAAA,GACpBC,EAAAA,GACAC,EAAAA,IAGIC,GAAcH,EAAAA,EAAAA,GAClBC,EAAAA,GACAG,EAAAA,IAGIC,GAAWL,EAAAA,EAAAA,GAAcC,EAAAA,GAAqBK,EAAAA,IAE9CC,GAAcP,EAAAA,EAAAA,GAClBC,EAAAA,GACAO,EAAAA,IACA,IAqBFX,EAAAA,EAAAA,YAAU,KACR,GAAIV,EACF,GAAIY,EAAe,CACIU,MACnBC,EAAAA,EAAIC,OACDC,aACAC,MAAMC,IACL,IAAIC,EAAsB,GACtBD,EAAIE,KAAKL,SACXI,EAAYD,EAAIE,KAAKL,OAAOM,KAAKC,EAAAA,KAEnC5B,EAAWyB,GACX3B,GAAU,EAAM,IAEjB+B,OAAOC,IACNxC,GAASyC,EAAAA,EAAAA,KAAqBC,EAAAA,EAAAA,GAAeF,EAAIG,SACjDnC,GAAU,EAAM,GAChB,EAENqB,EACF,MACErB,GAAU,EAEd,GACC,CAACD,EAASP,EAAUmB,IAEvB,MAQMyB,EAAkBnC,EAAQE,QAAQkC,GACtCA,EAAYC,SAASnC,KAGjBoC,EAAcC,IAClB9C,EAAS,GAAD+C,OAAIC,EAAAA,GAAUC,OAAM,KAAAF,QAAIG,EAAAA,EAAAA,IAAgBJ,IAAS,EAGrDK,EAAe,CACnB,CACEC,KAAM,OACNC,QAASR,EACTS,sBAAuBA,KAAO/B,GAEhC,CACE6B,KAAM,OACNC,QAASR,EACTS,sBAAuBA,KAAO/B,IAIlC,OACEgC,EAAAA,EAAAA,MAACC,EAAAA,SAAQ,CAAAhE,SAAA,CACNU,IACCZ,EAAAA,EAAAA,KAACG,EAAW,CACVS,WAAYA,EACZuD,eAAgB5C,EAChB6C,2BAnC4BC,IAClCxD,GAAc,GACdW,EAAiB,IACb6C,GACFrD,GAAU,EACZ,IAiCGK,IACCrB,EAAAA,EAAAA,KAACM,EAAS,CACRgE,KAAMjD,EACN8C,eAAgB5C,EAChBgD,aAAc,KACdC,qBAAsBA,KACpBlD,GAAc,EAAM,KAI1BtB,EAAAA,EAAAA,KAACyE,EAAAA,EAAiB,CAACC,MAAO,SAAUC,SAAS3E,EAAAA,EAAAA,KAAC4E,EAAAA,EAAQ,OAEtD5E,EAAAA,EAAAA,KAAC6E,EAAAA,IAAU,CAAA3E,UACT+D,EAAAA,EAAAA,MAACa,EAAAA,IAAI,CAACC,WAAS,EAAA7E,SAAA,EACb+D,EAAAA,EAAAA,MAACa,EAAAA,IAAI,CAACE,MAAI,EAACC,GAAI,GAAIC,GAAIC,EAAAA,GAAYA,YAAYjF,SAAA,EAC7CF,EAAAA,EAAAA,KAACoF,EAAAA,EAAe,CACdC,SAAUxD,EAAAA,GACVyD,OAAQxD,EAAAA,GACRyD,WAAY,CAAEC,UAAU,GAAOtF,UAE/BF,EAAAA,EAAAA,KAACyF,EAAAA,EAAS,CACRC,YAAa,gBACbC,SAAUvE,EACVwE,MAAOzE,EACP+D,GAAI,CAAEW,SAAU,UAGpB5B,EAAAA,EAAAA,MAAC6B,EAAAA,IAAG,CACFZ,GAAI,CACFa,QAAS,QACT7F,SAAA,EAEFF,EAAAA,EAAAA,KAACoF,EAAAA,EAAe,CACdC,SAAUxD,EAAAA,GACVyD,OAAQlD,EAAAA,GACR4D,UAAQ,EACRT,WAAY,CAAEC,UAAU,GAAOtF,UAE/BF,EAAAA,EAAAA,KAACiG,EAAAA,EAAc,CACbC,QACE3E,EAAc1B,OAAS,EACnB,2DACAsC,EACA,iBACAgE,EAAAA,EAAAA,IACE/D,EAAAA,GACA,4BAEPlC,UAEDF,EAAAA,EAAAA,KAACoG,EAAAA,IAAM,CACLC,GAAI,gBACJtC,QAASA,KACPzC,GAAc,EAAK,EAErBoD,MAAO,gBACP4B,MAAMtG,EAAAA,EAAAA,KAACuG,EAAAA,IAAe,IACtBf,SAAUjE,EAAc1B,OAAS,IAAMsC,EACvCqE,QAAS,iBAIfxG,EAAAA,EAAAA,KAACoF,EAAAA,EAAe,CACdC,SAAUxD,EAAAA,GACVyD,OAAQtD,EAAAA,GACRgE,UAAQ,EACRT,WAAY,CAAEC,UAAU,GAAOtF,UAE/BF,EAAAA,EAAAA,KAACiG,EAAAA,EAAc,CACbC,QAC2B,IAAzB3E,EAAc1B,OACV,0BACAoC,EACA,mBACAkE,EAAAA,EAAAA,IACEjE,EAAAA,GACA,iBAEPhC,UAEDF,EAAAA,EAAAA,KAACoG,EAAAA,IAAM,CACLC,GAAG,yBACHtC,QAASA,KACPlD,GAAc,EAAK,EAErB6D,MAAO,kBACP4B,MAAMtG,EAAAA,EAAAA,KAACyG,EAAAA,IAAU,IACjBD,QAAQ,YACRhB,SAAmC,IAAzBjE,EAAc1B,SAAiBoC,SAI/CjC,EAAAA,EAAAA,KAACoF,EAAAA,EAAe,CACdC,SAAUxD,EAAAA,GACVyD,OAAQoB,EAAAA,GACRV,UAAQ,EACRT,WAAY,CAAEC,UAAU,GAAOtF,UAE/BF,EAAAA,EAAAA,KAACiG,EAAAA,EAAc,CAACC,QAAS,eAAehG,UACtCF,EAAAA,EAAAA,KAACoG,EAAAA,IAAM,CACLC,GAAI,eACJ3B,MAAO,eACP8B,QAAQ,aACRF,MAAMtG,EAAAA,EAAAA,KAAC2G,EAAAA,IAAO,IACd5C,QAASA,KACPrD,EAAS,GAAD+C,OAAIC,EAAAA,GAAUkD,YAAa,cAO9C7F,IAAWf,EAAAA,EAAAA,KAAC6G,EAAAA,IAAW,KACtB9F,IACAkD,EAAAA,EAAAA,MAACC,EAAAA,SAAQ,CAAAhE,SAAA,CACNe,EAAQpB,OAAS,IAChBoE,EAAAA,EAAAA,MAACC,EAAAA,SAAQ,CAAAhE,SAAA,EACPF,EAAAA,EAAAA,KAAC8E,EAAAA,IAAI,CAACE,MAAI,EAACC,GAAI,GAAIC,GAAI,CAAE4B,aAAc,IAAK5G,UAC1CF,EAAAA,EAAAA,KAACoF,EAAAA,EAAe,CACdC,SAAUxD,EAAAA,GACVyD,OAAQxD,EAAAA,GACRyD,WAAY,CAAEC,UAAU,GAAOtF,UAE/BF,EAAAA,EAAAA,KAAC+G,EAAAA,IAAS,CACRC,YAAanD,EACboD,QAAS,CAAC,CAAEvC,MAAO,SACnB1D,UAAWD,EACXmG,cAAe3F,EACf4F,SACEpF,GAAeE,EAnNbmF,IACxB,MAAQC,QAAQ,MAAEzB,EAAQ,GAAE,QAAE0B,GAAU,GAAU,CAAC,GAAMF,EAEzD,IAAIG,EAAqB,IAAIhG,GAY7B,OAVI+F,EAEFC,EAASC,KAAK5B,GAGd2B,EAAWA,EAASpG,QAAQsG,GAAYA,IAAY7B,IAGtDpE,EAAiB+F,GAEVA,CAAQ,OAoMoDzH,EAE/CmB,QAASmC,EACTsE,WAAW,SACXC,QAAQ,UAId3H,EAAAA,EAAAA,KAAC8E,EAAAA,IAAI,CAACE,MAAI,EAACC,GAAI,GAAG/E,UAChBF,EAAAA,EAAAA,KAAC4H,EAAAA,IAAO,CACNC,MAAO,SACPC,eAAe9H,EAAAA,EAAAA,KAAC+H,EAAAA,IAAU,IAC1BC,MACE/D,EAAAA,EAAAA,MAACC,EAAAA,SAAQ,CAAAhE,SAAA,CAAC,mMAKRF,EAAAA,EAAAA,KAAA,UACAA,EAAAA,EAAAA,KAAA,SAAM,4BACoB,KAC1BA,EAAAA,EAAAA,KAAA,KACEiI,KAAK,gHACLZ,OAAO,SACPa,IAAI,WAAUhI,SACf,kBAEG,cAQI,IAAnBe,EAAQpB,SACPG,EAAAA,EAAAA,KAAC8E,EAAAA,IAAI,CAACC,WAAS,EAAA7E,UACbF,EAAAA,EAAAA,KAAC8E,EAAAA,IAAI,CAACE,MAAI,EAACC,GAAI,EAAE/E,UACfF,EAAAA,EAAAA,KAAC4H,EAAAA,IAAO,CACNC,MAAO,SACPC,eAAe9H,EAAAA,EAAAA,KAACmI,EAAAA,IAAS,IACzBH,MACE/D,EAAAA,EAAAA,MAACC,EAAAA,SAAQ,CAAAhE,SAAA,CAAC,mMAKR+D,EAAAA,EAAAA,MAACmB,EAAAA,EAAe,CACdC,SAAUxD,EAAAA,GACVyD,OAAQoB,EAAAA,GACRV,UAAQ,EAAA9F,SAAA,EAERF,EAAAA,EAAAA,KAAA,UACAA,EAAAA,EAAAA,KAAA,SAAM,kBACU,KAChBA,EAAAA,EAAAA,KAACoI,EAAAA,IAAU,CACTrE,QAASA,KACPrD,EAAS,GAAD+C,OAAIC,EAAAA,GAAUkD,YAAa,EACnC1G,SACH,mBAEY,0BAa1B,C,+DCnXR,MAAMmI,EAAYA,CAACC,EAASC,KACjC,GAAID,EAAEE,WAAaD,EAAEC,UAAW,CAC9B,GAAIF,EAAEE,UAAYD,EAAEC,UAClB,OAAO,EAET,GAAIF,EAAEE,UAAYD,EAAEC,UAClB,OAAQ,CAEZ,CAEA,OAAO,CAAC,EAGGC,EAAaA,CAACH,EAAWC,IAChCD,EAAEI,KAAQH,EAAEG,KACP,EAELJ,EAAEI,KAAQH,EAAEG,MACN,EAGH,EAGI5F,EAAaA,CAACwF,EAAWC,IAChCD,EAAIC,EACC,EAELD,EAAIC,GACE,EAGH,EAGII,EAAoBA,CAC/BL,EACAC,IAEID,EAAEM,OAASL,EAAEK,OACR,EAELN,EAAEM,OAASL,EAAEK,QACP,EAGH,C","sources":["screens/Console/Common/Components/withSuspense.tsx","screens/Console/Groups/Groups.tsx","utils/sortFunctions.ts"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { ComponentType, Suspense, SuspenseProps } from \"react\";\n\nfunction withSuspense
(\n WrappedComponent: ComponentType
,\n fallback: SuspenseProps[\"fallback\"] = null,\n) {\n function ComponentWithSuspense(props: P) {\n return (\n \n \n \n );\n }\n\n return ComponentWithSuspense;\n}\n\nexport default withSuspense;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport {\n AddIcon,\n Button,\n DeleteIcon,\n GroupsIcon,\n HelpBox,\n IAMPoliciesIcon,\n PageLayout,\n UsersIcon,\n DataTable,\n Grid,\n Box,\n ProgressBar,\n ActionLink,\n} from \"mds\";\n\nimport { api } from \"api\";\nimport { stringSort } from \"../../../utils/sortFunctions\";\nimport { actionsTray } from \"../Common/FormComponents/common/styleLibrary\";\nimport {\n applyPolicyPermissions,\n CONSOLE_UI_RESOURCE,\n createGroupPermissions,\n deleteGroupPermissions,\n displayGroupsPermissions,\n getGroupPermissions,\n IAM_PAGES,\n permissionTooltipHelper,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../common/SecureComponent\";\nimport { errorToHandler } from \"../../../api/errors\";\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport { encodeURLString } from \"../../../common/utils\";\nimport { setErrorSnackMessage, setHelpName } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport TooltipWrapper from \"../Common/TooltipWrapper/TooltipWrapper\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport HelpMenu from \"../HelpMenu\";\nimport SearchBox from \"../Common/SearchBox\";\n\nconst DeleteGroup = withSuspense(React.lazy(() => import(\"./DeleteGroup\")));\nconst SetPolicy = withSuspense(\n React.lazy(() => import(\"../Policies/SetPolicy\")),\n);\n\nconst Groups = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [loading, isLoading] = useState(false);\n const [records, setRecords] = useState([]);\n const [filter, setFilter] = useState(\"\");\n const [policyOpen, setPolicyOpen] = useState(false);\n const [checkedGroups, setCheckedGroups] = useState([]);\n\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n dispatch(setHelpName(\"groups\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const displayGroups = hasPermission(\n CONSOLE_UI_RESOURCE,\n displayGroupsPermissions,\n );\n\n const deleteGroup = hasPermission(\n CONSOLE_UI_RESOURCE,\n deleteGroupPermissions,\n );\n\n const getGroup = hasPermission(CONSOLE_UI_RESOURCE, getGroupPermissions);\n\n const applyPolicy = hasPermission(\n CONSOLE_UI_RESOURCE,\n applyPolicyPermissions,\n true,\n );\n\n const selectionChanged = (e: React.ChangeEvent) => {\n const { target: { value = \"\", checked = false } = {} } = e;\n\n let elements: string[] = [...checkedGroups]; // We clone the checkedUsers array\n\n if (checked) {\n // If the user has checked this field we need to push this to checkedUsersList\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n\n setCheckedGroups(elements);\n\n return elements;\n };\n\n useEffect(() => {\n if (loading) {\n if (displayGroups) {\n const fetchRecords = () => {\n api.groups\n .listGroups()\n .then((res) => {\n let resGroups: string[] = [];\n if (res.data.groups) {\n resGroups = res.data.groups.sort(stringSort);\n }\n setRecords(resGroups);\n isLoading(false);\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n isLoading(false);\n });\n };\n fetchRecords();\n } else {\n isLoading(false);\n }\n }\n }, [loading, dispatch, displayGroups]);\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n setCheckedGroups([]);\n if (refresh) {\n isLoading(true);\n }\n };\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.includes(filter),\n );\n\n const viewAction = (group: any) => {\n navigate(`${IAM_PAGES.GROUPS}/${encodeURLString(group)}`);\n };\n\n const tableActions = [\n {\n type: \"view\",\n onClick: viewAction,\n disableButtonFunction: () => !getGroup,\n },\n {\n type: \"edit\",\n onClick: viewAction,\n disableButtonFunction: () => !getGroup,\n },\n ];\n\n return (\n \n {deleteOpen && (\n \n )}\n {policyOpen && (\n {\n setPolicyOpen(false);\n }}\n />\n )}\n } />\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n onClick={() => {\n navigate(`${IAM_PAGES.GROUPS_ADD}`);\n }}\n />\n \n \n \n \n {loading && }\n {!loading && (\n \n {records.length > 0 && (\n \n \n \n \n \n \n \n }\n help={\n \n A group can have one attached IAM policy, where all\n users with membership in that group inherit that\n policy. Groups support more simplified management of\n user permissions on the MinIO Tenant.\n \n \n You can learn more at our{\" \"}\n \n documentation\n \n .\n \n }\n />\n \n \n )}\n {records.length === 0 && (\n \n \n }\n help={\n \n A group can have one attached IAM policy, where all\n users with membership in that group inherit that\n policy. Groups support more simplified management of\n user permissions on the MinIO Tenant.\n \n \n \n To get started,{\" \"}\n {\n navigate(`${IAM_PAGES.GROUPS_ADD}`);\n }}\n >\n Create a Group\n \n .\n \n \n }\n />\n \n \n )}\n \n )}\n \n \n \n );\n};\n\nexport default Groups;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Policy, User } from \"api/consoleApi\";\n\ninterface policyDetailsInterface {\n policy: string;\n}\n\nexport const usersSort = (a: User, b: User) => {\n if (a.accessKey && b.accessKey) {\n if (a.accessKey > b.accessKey) {\n return 1;\n }\n if (a.accessKey < b.accessKey) {\n return -1;\n }\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policySort = (a: Policy, b: Policy) => {\n if (a.name! > b.name!) {\n return 1;\n }\n if (a.name! < b.name!) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const stringSort = (a: string, b: string) => {\n if (a > b) {\n return 1;\n }\n if (a < b) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policyDetailsSort = (\n a: policyDetailsInterface,\n b: policyDetailsInterface,\n) => {\n if (a.policy > b.policy) {\n return 1;\n }\n if (a.policy < b.policy) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n"],"names":["WrappedComponent","fallback","arguments","length","undefined","props","_jsx","Suspense","children","DeleteGroup","withSuspense","React","SetPolicy","Groups","dispatch","useAppDispatch","navigate","useNavigate","deleteOpen","setDeleteOpen","useState","loading","isLoading","records","setRecords","filter","setFilter","policyOpen","setPolicyOpen","checkedGroups","setCheckedGroups","useEffect","setHelpName","displayGroups","hasPermission","CONSOLE_UI_RESOURCE","displayGroupsPermissions","deleteGroup","deleteGroupPermissions","getGroup","getGroupPermissions","applyPolicy","applyPolicyPermissions","fetchRecords","api","groups","listGroups","then","res","resGroups","data","sort","stringSort","catch","err","setErrorSnackMessage","errorToHandler","error","filteredRecords","elementItem","includes","viewAction","group","concat","IAM_PAGES","GROUPS","encodeURLString","tableActions","type","onClick","disableButtonFunction","_jsxs","Fragment","selectedGroups","closeDeleteModalAndRefresh","refresh","open","selectedUser","closeModalAndRefresh","PageHeaderWrapper","label","actions","HelpMenu","PageLayout","Grid","container","item","xs","sx","actionsTray","SecureComponent","resource","scopes","errorProps","disabled","SearchBox","placeholder","onChange","value","maxWidth","Box","display","matchAll","TooltipWrapper","tooltip","permissionTooltipHelper","Button","id","icon","IAMPoliciesIcon","variant","DeleteIcon","createGroupPermissions","AddIcon","GROUPS_ADD","ProgressBar","marginBottom","DataTable","itemActions","columns","selectedItems","onSelect","e","target","checked","elements","push","element","entityName","idField","HelpBox","title","iconComponent","GroupsIcon","help","href","rel","UsersIcon","ActionLink","usersSort","a","b","accessKey","policySort","name","policyDetailsSort","policy"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"static/js/191.1da33595.chunk.js","mappings":"iJAiCA,QAfA,SACEA,GAEC,IADDC,EAAmCC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAUtC,OARA,SAA+BG,GAC7B,OACEC,EAAAA,EAAAA,KAACC,EAAAA,SAAQ,CAACN,SAAUA,EAASO,UAC3BF,EAAAA,EAAAA,KAACN,EAAgB,IAAMK,KAG7B,CAGF,C,0PC8BA,MAAMI,GAAcC,EAAAA,EAAAA,GAAaC,EAAAA,MAAW,IAAM,mCAC5CC,GAAYF,EAAAA,EAAAA,GAChBC,EAAAA,MAAW,IAAM,mCA8UnB,EA3UeE,KACb,MAAMC,GAAWC,EAAAA,EAAAA,MACXC,GAAWC,EAAAA,EAAAA,OAEVC,EAAYC,IAAiBC,EAAAA,EAAAA,WAAkB,IAC/CC,EAASC,IAAaF,EAAAA,EAAAA,WAAkB,IACxCG,EAASC,IAAcJ,EAAAA,EAAAA,UAAgB,KACvCK,EAAQC,IAAaN,EAAAA,EAAAA,UAAiB,KACtCO,EAAYC,IAAiBR,EAAAA,EAAAA,WAAkB,IAC/CS,EAAeC,IAAoBV,EAAAA,EAAAA,UAAmB,KAE7DW,EAAAA,EAAAA,YAAU,KACRT,GAAU,EAAK,GACd,KAEHS,EAAAA,EAAAA,YAAU,KACRT,GAAU,EAAK,GACd,KAEHS,EAAAA,EAAAA,YAAU,KACRjB,GAASkB,EAAAA,EAAAA,IAAY,UAAU,GAE9B,IAEH,MAAMC,GAAgBC,EAAAA,EAAAA,GACpBC,EAAAA,GACAC,EAAAA,IAGIC,GAAcH,EAAAA,EAAAA,GAClBC,EAAAA,GACAG,EAAAA,IAGIC,GAAWL,EAAAA,EAAAA,GAAcC,EAAAA,GAAqBK,EAAAA,IAE9CC,GAAcP,EAAAA,EAAAA,GAClBC,EAAAA,GACAO,EAAAA,IACA,IAqBFX,EAAAA,EAAAA,YAAU,KACR,GAAIV,EACF,GAAIY,EAAe,CACIU,MACnBC,EAAAA,EAAIC,OACDC,aACAC,MAAMC,IACL,IAAIC,EAAsB,GACtBD,EAAIE,KAAKL,SACXI,EAAYD,EAAIE,KAAKL,OAAOM,KAAKC,EAAAA,KAEnC5B,EAAWyB,GACX3B,GAAU,EAAM,IAEjB+B,OAAOC,IACNxC,GAASyC,EAAAA,EAAAA,KAAqBC,EAAAA,EAAAA,GAAeF,EAAIG,SACjDnC,GAAU,EAAM,GAChB,EAENqB,EACF,MACErB,GAAU,EAEd,GACC,CAACD,EAASP,EAAUmB,IAEvB,MAQMyB,EAAkBnC,EAAQE,QAAQkC,GACtCA,EAAYC,SAASnC,KAGjBoC,EAAcC,IAClB9C,EAAS,GAAD+C,OAAIC,EAAAA,GAAUC,OAAM,KAAAF,QAAIG,EAAAA,EAAAA,IAAgBJ,IAAS,EAGrDK,EAAe,CACnB,CACEC,KAAM,OACNC,QAASR,EACTS,sBAAuBA,KAAO/B,GAEhC,CACE6B,KAAM,OACNC,QAASR,EACTS,sBAAuBA,KAAO/B,IAIlC,OACEgC,EAAAA,EAAAA,MAACC,EAAAA,SAAQ,CAAAhE,SAAA,CACNU,IACCZ,EAAAA,EAAAA,KAACG,EAAW,CACVS,WAAYA,EACZuD,eAAgB5C,EAChB6C,2BAnC4BC,IAClCxD,GAAc,GACdW,EAAiB,IACb6C,GACFrD,GAAU,EACZ,IAiCGK,IACCrB,EAAAA,EAAAA,KAACM,EAAS,CACRgE,KAAMjD,EACN8C,eAAgB5C,EAChBgD,aAAc,KACdC,qBAAsBA,KACpBlD,GAAc,EAAM,KAI1BtB,EAAAA,EAAAA,KAACyE,EAAAA,EAAiB,CAACC,MAAO,SAAUC,SAAS3E,EAAAA,EAAAA,KAAC4E,EAAAA,EAAQ,OAEtD5E,EAAAA,EAAAA,KAAC6E,EAAAA,IAAU,CAAA3E,UACT+D,EAAAA,EAAAA,MAACa,EAAAA,IAAI,CAACC,WAAS,EAAA7E,SAAA,EACb+D,EAAAA,EAAAA,MAACa,EAAAA,IAAI,CAACE,MAAI,EAACC,GAAI,GAAIC,GAAIC,EAAAA,GAAYA,YAAYjF,SAAA,EAC7CF,EAAAA,EAAAA,KAACoF,EAAAA,EAAe,CACdC,SAAUxD,EAAAA,GACVyD,OAAQxD,EAAAA,GACRyD,WAAY,CAAEC,UAAU,GAAOtF,UAE/BF,EAAAA,EAAAA,KAACyF,EAAAA,EAAS,CACRC,YAAa,gBACbC,SAAUvE,EACVwE,MAAOzE,EACP+D,GAAI,CAAEW,SAAU,UAGpB5B,EAAAA,EAAAA,MAAC6B,EAAAA,IAAG,CACFZ,GAAI,CACFa,QAAS,QACT7F,SAAA,EAEFF,EAAAA,EAAAA,KAACoF,EAAAA,EAAe,CACdC,SAAUxD,EAAAA,GACVyD,OAAQlD,EAAAA,GACR4D,UAAQ,EACRT,WAAY,CAAEC,UAAU,GAAOtF,UAE/BF,EAAAA,EAAAA,KAACiG,EAAAA,EAAc,CACbC,QACE3E,EAAc1B,OAAS,EACnB,2DACAsC,EACE,iBACAgE,EAAAA,EAAAA,IACE/D,EAAAA,GACA,4BAETlC,UAEDF,EAAAA,EAAAA,KAACoG,EAAAA,IAAM,CACLC,GAAI,gBACJtC,QAASA,KACPzC,GAAc,EAAK,EAErBoD,MAAO,gBACP4B,MAAMtG,EAAAA,EAAAA,KAACuG,EAAAA,IAAe,IACtBf,SAAUjE,EAAc1B,OAAS,IAAMsC,EACvCqE,QAAS,iBAIfxG,EAAAA,EAAAA,KAACoF,EAAAA,EAAe,CACdC,SAAUxD,EAAAA,GACVyD,OAAQtD,EAAAA,GACRgE,UAAQ,EACRT,WAAY,CAAEC,UAAU,GAAOtF,UAE/BF,EAAAA,EAAAA,KAACiG,EAAAA,EAAc,CACbC,QAC2B,IAAzB3E,EAAc1B,OACV,0BACAoC,EACE,mBACAkE,EAAAA,EAAAA,IACEjE,EAAAA,GACA,iBAEThC,UAEDF,EAAAA,EAAAA,KAACoG,EAAAA,IAAM,CACLC,GAAG,yBACHtC,QAASA,KACPlD,GAAc,EAAK,EAErB6D,MAAO,kBACP4B,MAAMtG,EAAAA,EAAAA,KAACyG,EAAAA,IAAU,IACjBD,QAAQ,YACRhB,SAAmC,IAAzBjE,EAAc1B,SAAiBoC,SAI/CjC,EAAAA,EAAAA,KAACoF,EAAAA,EAAe,CACdC,SAAUxD,EAAAA,GACVyD,OAAQoB,EAAAA,GACRV,UAAQ,EACRT,WAAY,CAAEC,UAAU,GAAOtF,UAE/BF,EAAAA,EAAAA,KAACiG,EAAAA,EAAc,CAACC,QAAS,eAAehG,UACtCF,EAAAA,EAAAA,KAACoG,EAAAA,IAAM,CACLC,GAAI,eACJ3B,MAAO,eACP8B,QAAQ,aACRF,MAAMtG,EAAAA,EAAAA,KAAC2G,EAAAA,IAAO,IACd5C,QAASA,KACPrD,EAAS,GAAD+C,OAAIC,EAAAA,GAAUkD,YAAa,cAO9C7F,IAAWf,EAAAA,EAAAA,KAAC6G,EAAAA,IAAW,KACtB9F,IACAkD,EAAAA,EAAAA,MAACC,EAAAA,SAAQ,CAAAhE,SAAA,CACNe,EAAQpB,OAAS,IAChBoE,EAAAA,EAAAA,MAACC,EAAAA,SAAQ,CAAAhE,SAAA,EACPF,EAAAA,EAAAA,KAAC8E,EAAAA,IAAI,CAACE,MAAI,EAACC,GAAI,GAAIC,GAAI,CAAE4B,aAAc,IAAK5G,UAC1CF,EAAAA,EAAAA,KAACoF,EAAAA,EAAe,CACdC,SAAUxD,EAAAA,GACVyD,OAAQxD,EAAAA,GACRyD,WAAY,CAAEC,UAAU,GAAOtF,UAE/BF,EAAAA,EAAAA,KAAC+G,EAAAA,IAAS,CACRC,YAAanD,EACboD,QAAS,CAAC,CAAEvC,MAAO,SACnB1D,UAAWD,EACXmG,cAAe3F,EACf4F,SACEpF,GAAeE,EAnNbmF,IACxB,MAAQC,QAAQ,MAAEzB,EAAQ,GAAE,QAAE0B,GAAU,GAAU,CAAC,GAAMF,EAEzD,IAAIG,EAAqB,IAAIhG,GAY7B,OAVI+F,EAEFC,EAASC,KAAK5B,GAGd2B,EAAWA,EAASpG,QAAQsG,GAAYA,IAAY7B,IAGtDpE,EAAiB+F,GAEVA,CAAQ,OAoMoDzH,EAE/CmB,QAASmC,EACTsE,WAAW,SACXC,QAAQ,UAId3H,EAAAA,EAAAA,KAAC8E,EAAAA,IAAI,CAACE,MAAI,EAACC,GAAI,GAAG/E,UAChBF,EAAAA,EAAAA,KAAC4H,EAAAA,IAAO,CACNC,MAAO,SACPC,eAAe9H,EAAAA,EAAAA,KAAC+H,EAAAA,IAAU,IAC1BC,MACE/D,EAAAA,EAAAA,MAACC,EAAAA,SAAQ,CAAAhE,SAAA,CAAC,mMAKRF,EAAAA,EAAAA,KAAA,UACAA,EAAAA,EAAAA,KAAA,SAAM,4BACoB,KAC1BA,EAAAA,EAAAA,KAAA,KACEiI,KAAK,gHACLZ,OAAO,SACPa,IAAI,WAAUhI,SACf,kBAEG,cAQI,IAAnBe,EAAQpB,SACPG,EAAAA,EAAAA,KAAC8E,EAAAA,IAAI,CAACC,WAAS,EAAA7E,UACbF,EAAAA,EAAAA,KAAC8E,EAAAA,IAAI,CAACE,MAAI,EAACC,GAAI,EAAE/E,UACfF,EAAAA,EAAAA,KAAC4H,EAAAA,IAAO,CACNC,MAAO,SACPC,eAAe9H,EAAAA,EAAAA,KAACmI,EAAAA,IAAS,IACzBH,MACE/D,EAAAA,EAAAA,MAACC,EAAAA,SAAQ,CAAAhE,SAAA,CAAC,mMAKR+D,EAAAA,EAAAA,MAACmB,EAAAA,EAAe,CACdC,SAAUxD,EAAAA,GACVyD,OAAQoB,EAAAA,GACRV,UAAQ,EAAA9F,SAAA,EAERF,EAAAA,EAAAA,KAAA,UACAA,EAAAA,EAAAA,KAAA,SAAM,kBACU,KAChBA,EAAAA,EAAAA,KAACoI,EAAAA,IAAU,CACTrE,QAASA,KACPrD,EAAS,GAAD+C,OAAIC,EAAAA,GAAUkD,YAAa,EACnC1G,SACH,mBAEY,0BAa1B,C,+DCnXR,MAAMmI,EAAYA,CAACC,EAASC,KACjC,GAAID,EAAEE,WAAaD,EAAEC,UAAW,CAC9B,GAAIF,EAAEE,UAAYD,EAAEC,UAClB,OAAO,EAET,GAAIF,EAAEE,UAAYD,EAAEC,UAClB,OAAQ,CAEZ,CAEA,OAAO,CAAC,EAGGC,EAAaA,CAACH,EAAWC,IAChCD,EAAEI,KAAQH,EAAEG,KACP,EAELJ,EAAEI,KAAQH,EAAEG,MACN,EAGH,EAGI5F,EAAaA,CAACwF,EAAWC,IAChCD,EAAIC,EACC,EAELD,EAAIC,GACE,EAGH,EAGII,EAAoBA,CAC/BL,EACAC,IAEID,EAAEM,OAASL,EAAEK,OACR,EAELN,EAAEM,OAASL,EAAEK,QACP,EAGH,C","sources":["screens/Console/Common/Components/withSuspense.tsx","screens/Console/Groups/Groups.tsx","utils/sortFunctions.ts"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { ComponentType, Suspense, SuspenseProps } from \"react\";\n\nfunction withSuspense
(\n WrappedComponent: ComponentType
,\n fallback: SuspenseProps[\"fallback\"] = null,\n) {\n function ComponentWithSuspense(props: P) {\n return (\n \n \n \n );\n }\n\n return ComponentWithSuspense;\n}\n\nexport default withSuspense;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport {\n AddIcon,\n Button,\n DeleteIcon,\n GroupsIcon,\n HelpBox,\n IAMPoliciesIcon,\n PageLayout,\n UsersIcon,\n DataTable,\n Grid,\n Box,\n ProgressBar,\n ActionLink,\n} from \"mds\";\n\nimport { api } from \"api\";\nimport { stringSort } from \"../../../utils/sortFunctions\";\nimport { actionsTray } from \"../Common/FormComponents/common/styleLibrary\";\nimport {\n applyPolicyPermissions,\n CONSOLE_UI_RESOURCE,\n createGroupPermissions,\n deleteGroupPermissions,\n displayGroupsPermissions,\n getGroupPermissions,\n IAM_PAGES,\n permissionTooltipHelper,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../common/SecureComponent\";\nimport { errorToHandler } from \"../../../api/errors\";\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport { encodeURLString } from \"../../../common/utils\";\nimport { setErrorSnackMessage, setHelpName } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport TooltipWrapper from \"../Common/TooltipWrapper/TooltipWrapper\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport HelpMenu from \"../HelpMenu\";\nimport SearchBox from \"../Common/SearchBox\";\n\nconst DeleteGroup = withSuspense(React.lazy(() => import(\"./DeleteGroup\")));\nconst SetPolicy = withSuspense(\n React.lazy(() => import(\"../Policies/SetPolicy\")),\n);\n\nconst Groups = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [loading, isLoading] = useState(false);\n const [records, setRecords] = useState([]);\n const [filter, setFilter] = useState(\"\");\n const [policyOpen, setPolicyOpen] = useState(false);\n const [checkedGroups, setCheckedGroups] = useState([]);\n\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n dispatch(setHelpName(\"groups\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const displayGroups = hasPermission(\n CONSOLE_UI_RESOURCE,\n displayGroupsPermissions,\n );\n\n const deleteGroup = hasPermission(\n CONSOLE_UI_RESOURCE,\n deleteGroupPermissions,\n );\n\n const getGroup = hasPermission(CONSOLE_UI_RESOURCE, getGroupPermissions);\n\n const applyPolicy = hasPermission(\n CONSOLE_UI_RESOURCE,\n applyPolicyPermissions,\n true,\n );\n\n const selectionChanged = (e: React.ChangeEvent) => {\n const { target: { value = \"\", checked = false } = {} } = e;\n\n let elements: string[] = [...checkedGroups]; // We clone the checkedUsers array\n\n if (checked) {\n // If the user has checked this field we need to push this to checkedUsersList\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n\n setCheckedGroups(elements);\n\n return elements;\n };\n\n useEffect(() => {\n if (loading) {\n if (displayGroups) {\n const fetchRecords = () => {\n api.groups\n .listGroups()\n .then((res) => {\n let resGroups: string[] = [];\n if (res.data.groups) {\n resGroups = res.data.groups.sort(stringSort);\n }\n setRecords(resGroups);\n isLoading(false);\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n isLoading(false);\n });\n };\n fetchRecords();\n } else {\n isLoading(false);\n }\n }\n }, [loading, dispatch, displayGroups]);\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n setCheckedGroups([]);\n if (refresh) {\n isLoading(true);\n }\n };\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.includes(filter),\n );\n\n const viewAction = (group: any) => {\n navigate(`${IAM_PAGES.GROUPS}/${encodeURLString(group)}`);\n };\n\n const tableActions = [\n {\n type: \"view\",\n onClick: viewAction,\n disableButtonFunction: () => !getGroup,\n },\n {\n type: \"edit\",\n onClick: viewAction,\n disableButtonFunction: () => !getGroup,\n },\n ];\n\n return (\n \n {deleteOpen && (\n \n )}\n {policyOpen && (\n {\n setPolicyOpen(false);\n }}\n />\n )}\n } />\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n onClick={() => {\n navigate(`${IAM_PAGES.GROUPS_ADD}`);\n }}\n />\n \n \n \n \n {loading && }\n {!loading && (\n \n {records.length > 0 && (\n \n \n \n \n \n \n \n }\n help={\n \n A group can have one attached IAM policy, where all\n users with membership in that group inherit that\n policy. Groups support more simplified management of\n user permissions on the MinIO Tenant.\n \n \n You can learn more at our{\" \"}\n \n documentation\n \n .\n \n }\n />\n \n \n )}\n {records.length === 0 && (\n \n \n }\n help={\n \n A group can have one attached IAM policy, where all\n users with membership in that group inherit that\n policy. Groups support more simplified management of\n user permissions on the MinIO Tenant.\n \n \n \n To get started,{\" \"}\n {\n navigate(`${IAM_PAGES.GROUPS_ADD}`);\n }}\n >\n Create a Group\n \n .\n \n \n }\n />\n \n \n )}\n \n )}\n \n \n \n );\n};\n\nexport default Groups;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Policy, User } from \"api/consoleApi\";\n\ninterface policyDetailsInterface {\n policy: string;\n}\n\nexport const usersSort = (a: User, b: User) => {\n if (a.accessKey && b.accessKey) {\n if (a.accessKey > b.accessKey) {\n return 1;\n }\n if (a.accessKey < b.accessKey) {\n return -1;\n }\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policySort = (a: Policy, b: Policy) => {\n if (a.name! > b.name!) {\n return 1;\n }\n if (a.name! < b.name!) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const stringSort = (a: string, b: string) => {\n if (a > b) {\n return 1;\n }\n if (a < b) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policyDetailsSort = (\n a: policyDetailsInterface,\n b: policyDetailsInterface,\n) => {\n if (a.policy > b.policy) {\n return 1;\n }\n if (a.policy < b.policy) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n"],"names":["WrappedComponent","fallback","arguments","length","undefined","props","_jsx","Suspense","children","DeleteGroup","withSuspense","React","SetPolicy","Groups","dispatch","useAppDispatch","navigate","useNavigate","deleteOpen","setDeleteOpen","useState","loading","isLoading","records","setRecords","filter","setFilter","policyOpen","setPolicyOpen","checkedGroups","setCheckedGroups","useEffect","setHelpName","displayGroups","hasPermission","CONSOLE_UI_RESOURCE","displayGroupsPermissions","deleteGroup","deleteGroupPermissions","getGroup","getGroupPermissions","applyPolicy","applyPolicyPermissions","fetchRecords","api","groups","listGroups","then","res","resGroups","data","sort","stringSort","catch","err","setErrorSnackMessage","errorToHandler","error","filteredRecords","elementItem","includes","viewAction","group","concat","IAM_PAGES","GROUPS","encodeURLString","tableActions","type","onClick","disableButtonFunction","_jsxs","Fragment","selectedGroups","closeDeleteModalAndRefresh","refresh","open","selectedUser","closeModalAndRefresh","PageHeaderWrapper","label","actions","HelpMenu","PageLayout","Grid","container","item","xs","sx","actionsTray","SecureComponent","resource","scopes","errorProps","disabled","SearchBox","placeholder","onChange","value","maxWidth","Box","display","matchAll","TooltipWrapper","tooltip","permissionTooltipHelper","Button","id","icon","IAMPoliciesIcon","variant","DeleteIcon","createGroupPermissions","AddIcon","GROUPS_ADD","ProgressBar","marginBottom","DataTable","itemActions","columns","selectedItems","onSelect","e","target","checked","elements","push","element","entityName","idField","HelpBox","title","iconComponent","GroupsIcon","help","href","rel","UsersIcon","ActionLink","usersSort","a","b","accessKey","policySort","name","policyDetailsSort","policy"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/2414.0a58c333.chunk.js b/portal-ui/build/static/js/2414.0a58c333.chunk.js
new file mode 100644
index 0000000000..657fb7ac6c
--- /dev/null
+++ b/portal-ui/build/static/js/2414.0a58c333.chunk.js
@@ -0,0 +1,3 @@
+/*! For license information please see 2414.0a58c333.chunk.js.LICENSE.txt */
+(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2414],{4234:function(t,e,n){var r;!function(o){"use strict";var i,a=1e9,u={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},c=!0,l="[DecimalError] ",s=l+"Invalid argument: ",f=l+"Exponent out of range: ",p=Math.floor,h=Math.pow,d=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,y=1e7,v=7,m=9007199254740991,g=p(m/v),b={};function x(t,e){var n,r,o,i,a,u,l,s,f=t.constructor,p=f.precision;if(!t.s||!e.s)return e.s||(e=new f(t)),c?T(e,p):e;if(l=t.d,s=e.d,a=t.e,o=e.e,l=l.slice(),i=a-o){for(i<0?(r=l,i=-i,u=s.length):(r=s,o=a,u=l.length),i>(u=(a=Math.ceil(p/v))>u?a+1:u+1)&&(i=u,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for((u=l.length)-(i=s.length)<0&&(i=u,r=s,s=l,l=r),n=0;i;)n=(l[--i]=l[i]+s[i]+n)/y|0,l[i]%=y;for(n&&(l.unshift(n),++o),u=l.length;0==l[--u];)l.pop();return e.d=l,e.e=o,c?T(e,p):e}function w(t,e,n){if(t!==~~t||tn)throw Error(s+t)}function O(t){var e,n,r,o=t.length-1,i="",a=t[0];if(o>0){for(i+=a,e=1;et.e^i.s<0?1:-1;for(e=0,n=(r=i.d.length)<(o=t.d.length)?r:o;et.d[e]^i.s<0?1:-1;return r===o?0:r>o^i.s<0?1:-1},b.decimalPlaces=b.dp=function(){var t=this,e=t.d.length-1,n=(e-t.e)*v;if(e=t.d[e])for(;e%10==0;e/=10)n--;return n<0?0:n},b.dividedBy=b.div=function(t){return j(this,new this.constructor(t))},b.dividedToIntegerBy=b.idiv=function(t){var e=this.constructor;return T(j(this,new e(t),0,1),e.precision)},b.equals=b.eq=function(t){return!this.cmp(t)},b.exponent=function(){return E(this)},b.greaterThan=b.gt=function(t){return this.cmp(t)>0},b.greaterThanOrEqualTo=b.gte=function(t){return this.cmp(t)>=0},b.isInteger=b.isint=function(){return this.e>this.d.length-2},b.isNegative=b.isneg=function(){return this.s<0},b.isPositive=b.ispos=function(){return this.s>0},b.isZero=function(){return 0===this.s},b.lessThan=b.lt=function(t){return this.cmp(t)<0},b.lessThanOrEqualTo=b.lte=function(t){return this.cmp(t)<1},b.logarithm=b.log=function(t){var e,n=this,r=n.constructor,o=r.precision,a=o+5;if(void 0===t)t=new r(10);else if((t=new r(t)).s<1||t.eq(i))throw Error(l+"NaN");if(n.s<1)throw Error(l+(n.s?"NaN":"-Infinity"));return n.eq(i)?new r(0):(c=!1,e=j(k(n,a),k(t,a),a),c=!0,T(e,o))},b.minus=b.sub=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?_(e,t):x(e,(t.s=-t.s,t))},b.modulo=b.mod=function(t){var e,n=this,r=n.constructor,o=r.precision;if(!(t=new r(t)).s)throw Error(l+"NaN");return n.s?(c=!1,e=j(n,t,0,1).times(t),c=!0,n.minus(e)):T(new r(n),o)},b.naturalExponential=b.exp=function(){return S(this)},b.naturalLogarithm=b.ln=function(){return k(this)},b.negated=b.neg=function(){var t=new this.constructor(this);return t.s=-t.s||0,t},b.plus=b.add=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?x(e,t):_(e,(t.s=-t.s,t))},b.precision=b.sd=function(t){var e,n,r,o=this;if(void 0!==t&&t!==!!t&&1!==t&&0!==t)throw Error(s+t);if(e=E(o)+1,n=(r=o.d.length-1)*v+1,r=o.d[r]){for(;r%10==0;r/=10)n--;for(r=o.d[0];r>=10;r/=10)n++}return t&&e>n?e:n},b.squareRoot=b.sqrt=function(){var t,e,n,r,o,i,a,u=this,s=u.constructor;if(u.s<1){if(!u.s)return new s(0);throw Error(l+"NaN")}for(t=E(u),c=!1,0==(o=Math.sqrt(+u))||o==1/0?(((e=O(u.d)).length+t)%2==0&&(e+="0"),o=Math.sqrt(e),t=p((t+1)/2)-(t<0||t%2),r=new s(e=o==1/0?"5e"+t:(e=o.toExponential()).slice(0,e.indexOf("e")+1)+t)):r=new s(o.toString()),o=a=(n=s.precision)+3;;)if(r=(i=r).plus(j(u,i,a+2)).times(.5),O(i.d).slice(0,a)===(e=O(r.d)).slice(0,a)){if(e=e.slice(a-3,a+1),o==a&&"4999"==e){if(T(i,n+1,0),i.times(i).eq(u)){r=i;break}}else if("9999"!=e)break;a+=4}return c=!0,T(r,n)},b.times=b.mul=function(t){var e,n,r,o,i,a,u,l,s,f=this,p=f.constructor,h=f.d,d=(t=new p(t)).d;if(!f.s||!t.s)return new p(0);for(t.s*=f.s,n=f.e+t.e,(l=h.length)<(s=d.length)&&(i=h,h=d,d=i,a=l,l=s,s=a),i=[],r=a=l+s;r--;)i.push(0);for(r=s;--r>=0;){for(e=0,o=l+r;o>r;)u=i[o]+d[r]*h[o-r-1]+e,i[o--]=u%y|0,e=u/y|0;i[o]=(i[o]+e)%y|0}for(;!i[--a];)i.pop();return e?++n:i.shift(),t.d=i,t.e=n,c?T(t,p.precision):t},b.toDecimalPlaces=b.todp=function(t,e){var n=this,r=n.constructor;return n=new r(n),void 0===t?n:(w(t,0,a),void 0===e?e=r.rounding:w(e,0,8),T(n,t+E(n)+1,e))},b.toExponential=function(t,e){var n,r=this,o=r.constructor;return void 0===t?n=C(r,!0):(w(t,0,a),void 0===e?e=o.rounding:w(e,0,8),n=C(r=T(new o(r),t+1,e),!0,t+1)),n},b.toFixed=function(t,e){var n,r,o=this,i=o.constructor;return void 0===t?C(o):(w(t,0,a),void 0===e?e=i.rounding:w(e,0,8),n=C((r=T(new i(o),t+E(o)+1,e)).abs(),!1,t+E(r)+1),o.isneg()&&!o.isZero()?"-"+n:n)},b.toInteger=b.toint=function(){var t=this,e=t.constructor;return T(new e(t),E(t)+1,e.rounding)},b.toNumber=function(){return+this},b.toPower=b.pow=function(t){var e,n,r,o,a,u,s=this,f=s.constructor,h=+(t=new f(t));if(!t.s)return new f(i);if(!(s=new f(s)).s){if(t.s<1)throw Error(l+"Infinity");return s}if(s.eq(i))return s;if(r=f.precision,t.eq(i))return T(s,r);if(u=(e=t.e)>=(n=t.d.length-1),a=s.s,u){if((n=h<0?-h:h)<=m){for(o=new f(i),e=Math.ceil(r/v+4),c=!1;n%2&&N((o=o.times(s)).d,e),0!==(n=p(n/2));)N((s=s.times(s)).d,e);return c=!0,t.s<0?new f(i).div(o):T(o,r)}}else if(a<0)throw Error(l+"NaN");return a=a<0&&1&t.d[Math.max(e,n)]?-1:1,s.s=1,c=!1,o=t.times(k(s,r+12)),c=!0,(o=S(o)).s=a,o},b.toPrecision=function(t,e){var n,r,o=this,i=o.constructor;return void 0===t?r=C(o,(n=E(o))<=i.toExpNeg||n>=i.toExpPos):(w(t,1,a),void 0===e?e=i.rounding:w(e,0,8),r=C(o=T(new i(o),t,e),t<=(n=E(o))||n<=i.toExpNeg,t)),r},b.toSignificantDigits=b.tosd=function(t,e){var n=this.constructor;return void 0===t?(t=n.precision,e=n.rounding):(w(t,1,a),void 0===e?e=n.rounding:w(e,0,8)),T(new n(this),t,e)},b.toString=b.valueOf=b.val=b.toJSON=function(){var t=this,e=E(t),n=t.constructor;return C(t,e<=n.toExpNeg||e>=n.toExpPos)};var j=function(){function t(t,e){var n,r=0,o=t.length;for(t=t.slice();o--;)n=t[o]*e+r,t[o]=n%y|0,r=n/y|0;return r&&t.unshift(r),t}function e(t,e,n,r){var o,i;if(n!=r)i=n>r?1:-1;else for(o=i=0;oe[o]?1:-1;break}return i}function n(t,e,n){for(var r=0;n--;)t[n]-=r,r=t[n]1;)t.shift()}return function(r,o,i,a){var u,c,s,f,p,h,d,m,g,b,x,w,O,j,S,A,P,k,M=r.constructor,_=r.s==o.s?1:-1,C=r.d,N=o.d;if(!r.s)return new M(r);if(!o.s)throw Error(l+"Division by zero");for(c=r.e-o.e,P=N.length,S=C.length,m=(d=new M(_)).d=[],s=0;N[s]==(C[s]||0);)++s;if(N[s]>(C[s]||0)&&--c,(w=null==i?i=M.precision:a?i+(E(r)-E(o))+1:i)<0)return new M(0);if(w=w/v+2|0,s=0,1==P)for(f=0,N=N[0],w++;(s1&&(N=t(N,f),C=t(C,f),P=N.length,S=C.length),j=P,b=(g=C.slice(0,P)).length;b