[epiphany/mcatanzaro/pdfjs-2.5.207: 2/3] Update to upstream PDF.js 2.5.207 (without Epiphany changes)




commit a6cb8428cbf68a3577157438563cf0dd3863c45e
Author: Michael Catanzaro <mcatanzaro gnome org>
Date:   Mon Sep 14 10:29:48 2020 -0500

    Update to upstream PDF.js 2.5.207 (without Epiphany changes)

 third-party/pdfjs/build/pdf.js                     |  8826 +++++-----
 third-party/pdfjs/build/pdf.worker.js              | 17056 ++++++++++---------
 third-party/pdfjs/pdfjs.gresource.xml              |   678 +-
 .../pdfjs/web/compressed.tracemonkey-pldi-09.pdf   |   Bin 0 -> 1016315 bytes
 third-party/pdfjs/web/debugger.js                  |   624 +
 .../pdfjs/web/images/findbarButton-next-rtl.png    |   Bin 199 -> 0 bytes
 .../pdfjs/web/images/findbarButton-next-rtl 2x png |   Bin 304 -> 0 bytes
 .../web/images/findbarButton-previous-rtl.png      |   Bin 193 -> 0 bytes
 .../web/images/findbarButton-previous-rtl 2x png   |   Bin 296 -> 0 bytes
 .../web/images/toolbarButton-pageDown-rtl.png      |   Bin 242 -> 0 bytes
 .../web/images/toolbarButton-pageDown-rtl 2x png   |   Bin 398 -> 0 bytes
 .../pdfjs/web/images/toolbarButton-pageUp-rtl.png  |   Bin 245 -> 0 bytes
 .../web/images/toolbarButton-pageUp-rtl 2x png     |   Bin 405 -> 0 bytes
 .../toolbarButton-secondaryToolbarToggle-rtl.png   |   Bin 246 -> 0 bytes
 ...toolbarButton-secondaryToolbarToggle-rtl 2x png |   Bin 456 -> 0 bytes
 .../web/images/toolbarButton-sidebarToggle-rtl.png |   Bin 225 -> 0 bytes
 .../images/toolbarButton-sidebarToggle-rtl 2x png  |   Bin 344 -> 0 bytes
 .../web/images/toolbarButton-viewOutline-rtl.png   |   Bin 177 -> 0 bytes
 .../images/toolbarButton-viewOutline-rtl 2x png    |   Bin 394 -> 0 bytes
 .../pdfjs/web/images/treeitem-collapsed-rtl.png    |   Bin 143 -> 0 bytes
 .../pdfjs/web/images/treeitem-collapsed-rtl 2x png |   Bin 167 -> 0 bytes
 third-party/pdfjs/web/locale/ak/viewer.properties  |   130 -
 third-party/pdfjs/web/locale/az/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/be/viewer.properties  |     2 +
 .../pdfjs/web/locale/bn-BD/viewer.properties       |   232 -
 .../pdfjs/web/locale/bn-IN/viewer.properties       |   242 -
 third-party/pdfjs/web/locale/bn/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/br/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/ca/viewer.properties  |    10 +-
 third-party/pdfjs/web/locale/cak/viewer.properties |     4 +-
 third-party/pdfjs/web/locale/cs/viewer.properties  |     4 +-
 third-party/pdfjs/web/locale/csb/viewer.properties |   134 -
 third-party/pdfjs/web/locale/cy/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/da/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/de/viewer.properties  |     6 +-
 third-party/pdfjs/web/locale/dsb/viewer.properties |     2 +
 .../pdfjs/web/locale/en-CA/viewer.properties       |     2 +
 .../pdfjs/web/locale/en-GB/viewer.properties       |     2 +
 .../pdfjs/web/locale/en-US/viewer.properties       |     3 +-
 third-party/pdfjs/web/locale/eo/viewer.properties  |     2 +
 .../pdfjs/web/locale/es-AR/viewer.properties       |     2 +
 .../pdfjs/web/locale/es-CL/viewer.properties       |     2 +
 .../pdfjs/web/locale/es-ES/viewer.properties       |     2 +
 .../pdfjs/web/locale/es-MX/viewer.properties       |     2 +
 third-party/pdfjs/web/locale/eu/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/fi/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/fr/viewer.properties  |     8 +-
 .../pdfjs/web/locale/fy-NL/viewer.properties       |     2 +
 third-party/pdfjs/web/locale/gn/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/he/viewer.properties  |     2 +
 .../pdfjs/web/locale/hi-IN/viewer.properties       |     3 +
 third-party/pdfjs/web/locale/hr/viewer.properties  |    84 +-
 third-party/pdfjs/web/locale/hsb/viewer.properties |     2 +
 third-party/pdfjs/web/locale/hto/viewer.properties |   127 -
 third-party/pdfjs/web/locale/hu/viewer.properties  |     2 +
 .../pdfjs/web/locale/hy-AM/viewer.properties       |    67 +-
 third-party/pdfjs/web/locale/hye/viewer.properties |   247 +
 third-party/pdfjs/web/locale/ia/viewer.properties  |    14 +-
 third-party/pdfjs/web/locale/id/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/it/viewer.properties  |     1 +
 third-party/pdfjs/web/locale/ja/viewer.properties  |     4 +-
 third-party/pdfjs/web/locale/ka/viewer.properties  |     4 +-
 third-party/pdfjs/web/locale/kab/viewer.properties |     2 +
 third-party/pdfjs/web/locale/kk/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/ko/viewer.properties  |    32 +-
 third-party/pdfjs/web/locale/kok/viewer.properties |   167 -
 third-party/pdfjs/web/locale/ks/viewer.properties  |   168 -
 third-party/pdfjs/web/locale/ku/viewer.properties  |   146 -
 third-party/pdfjs/web/locale/locale.properties     |    70 +-
 third-party/pdfjs/web/locale/lt/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/meh/viewer.properties |     3 +
 third-party/pdfjs/web/locale/mn/viewer.properties  |    82 -
 third-party/pdfjs/web/locale/mr/viewer.properties  |    11 +
 .../pdfjs/web/locale/nb-NO/viewer.properties       |     2 +
 third-party/pdfjs/web/locale/nl/viewer.properties  |     2 +
 .../pdfjs/web/locale/nn-NO/viewer.properties       |     2 +
 third-party/pdfjs/web/locale/nso/viewer.properties |   130 -
 third-party/pdfjs/web/locale/oc/viewer.properties  |    44 +-
 .../pdfjs/web/locale/pa-IN/viewer.properties       |     4 +
 third-party/pdfjs/web/locale/pl/viewer.properties  |    54 +-
 .../pdfjs/web/locale/pt-BR/viewer.properties       |     8 +-
 .../pdfjs/web/locale/pt-PT/viewer.properties       |     8 +-
 third-party/pdfjs/web/locale/rm/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/ro/viewer.properties  |    20 +-
 third-party/pdfjs/web/locale/ru/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/rw/viewer.properties  |    81 -
 third-party/pdfjs/web/locale/sah/viewer.properties |   166 -
 third-party/pdfjs/web/locale/sat/viewer.properties |   134 -
 .../pdfjs/web/locale/{lg => scn}/viewer.properties |    71 +-
 third-party/pdfjs/web/locale/sk/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/sl/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/sq/viewer.properties  |    12 +-
 third-party/pdfjs/web/locale/sr/viewer.properties  |    28 +
 .../pdfjs/web/locale/sv-SE/viewer.properties       |     2 +
 third-party/pdfjs/web/locale/sw/viewer.properties  |   128 -
 .../pdfjs/web/locale/ta-LK/viewer.properties       |    77 -
 third-party/pdfjs/web/locale/th/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/tl/viewer.properties  |    14 +-
 third-party/pdfjs/web/locale/tn/viewer.properties  |    83 -
 third-party/pdfjs/web/locale/tr/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/tsz/viewer.properties |    75 -
 third-party/pdfjs/web/locale/uk/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/ur/viewer.properties  |    33 +-
 third-party/pdfjs/web/locale/vi/viewer.properties  |     2 +
 third-party/pdfjs/web/locale/zam/viewer.properties |    90 -
 .../pdfjs/web/locale/zh-CN/viewer.properties       |     2 +
 .../pdfjs/web/locale/zh-TW/viewer.properties       |     4 +-
 third-party/pdfjs/web/locale/zu/viewer.properties  |   131 -
 third-party/pdfjs/web/viewer.css                   |   158 +-
 third-party/pdfjs/web/viewer.html                  |     8 +-
 third-party/pdfjs/web/viewer.js                    |   772 +-
 111 files changed, 15137 insertions(+), 16459 deletions(-)
---
diff --git a/third-party/pdfjs/build/pdf.js b/third-party/pdfjs/build/pdf.js
index 617ad0a24..a2ee957dd 100644
--- a/third-party/pdfjs/build/pdf.js
+++ b/third-party/pdfjs/build/pdf.js
@@ -123,34 +123,229 @@ return /******/ (function(modules) { // webpackBootstrap
 "use strict";
 
 
-var pdfjsVersion = '2.4.456';
-var pdfjsBuild = '228a591c';
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+Object.defineProperty(exports, "addLinkAttributes", {
+  enumerable: true,
+  get: function () {
+    return _display_utils.addLinkAttributes;
+  }
+});
+Object.defineProperty(exports, "getFilenameFromUrl", {
+  enumerable: true,
+  get: function () {
+    return _display_utils.getFilenameFromUrl;
+  }
+});
+Object.defineProperty(exports, "LinkTarget", {
+  enumerable: true,
+  get: function () {
+    return _display_utils.LinkTarget;
+  }
+});
+Object.defineProperty(exports, "loadScript", {
+  enumerable: true,
+  get: function () {
+    return _display_utils.loadScript;
+  }
+});
+Object.defineProperty(exports, "PDFDateString", {
+  enumerable: true,
+  get: function () {
+    return _display_utils.PDFDateString;
+  }
+});
+Object.defineProperty(exports, "RenderingCancelledException", {
+  enumerable: true,
+  get: function () {
+    return _display_utils.RenderingCancelledException;
+  }
+});
+Object.defineProperty(exports, "build", {
+  enumerable: true,
+  get: function () {
+    return _api.build;
+  }
+});
+Object.defineProperty(exports, "getDocument", {
+  enumerable: true,
+  get: function () {
+    return _api.getDocument;
+  }
+});
+Object.defineProperty(exports, "LoopbackPort", {
+  enumerable: true,
+  get: function () {
+    return _api.LoopbackPort;
+  }
+});
+Object.defineProperty(exports, "PDFDataRangeTransport", {
+  enumerable: true,
+  get: function () {
+    return _api.PDFDataRangeTransport;
+  }
+});
+Object.defineProperty(exports, "PDFWorker", {
+  enumerable: true,
+  get: function () {
+    return _api.PDFWorker;
+  }
+});
+Object.defineProperty(exports, "version", {
+  enumerable: true,
+  get: function () {
+    return _api.version;
+  }
+});
+Object.defineProperty(exports, "CMapCompressionType", {
+  enumerable: true,
+  get: function () {
+    return _util.CMapCompressionType;
+  }
+});
+Object.defineProperty(exports, "createObjectURL", {
+  enumerable: true,
+  get: function () {
+    return _util.createObjectURL;
+  }
+});
+Object.defineProperty(exports, "createPromiseCapability", {
+  enumerable: true,
+  get: function () {
+    return _util.createPromiseCapability;
+  }
+});
+Object.defineProperty(exports, "createValidAbsoluteUrl", {
+  enumerable: true,
+  get: function () {
+    return _util.createValidAbsoluteUrl;
+  }
+});
+Object.defineProperty(exports, "InvalidPDFException", {
+  enumerable: true,
+  get: function () {
+    return _util.InvalidPDFException;
+  }
+});
+Object.defineProperty(exports, "MissingPDFException", {
+  enumerable: true,
+  get: function () {
+    return _util.MissingPDFException;
+  }
+});
+Object.defineProperty(exports, "OPS", {
+  enumerable: true,
+  get: function () {
+    return _util.OPS;
+  }
+});
+Object.defineProperty(exports, "PasswordResponses", {
+  enumerable: true,
+  get: function () {
+    return _util.PasswordResponses;
+  }
+});
+Object.defineProperty(exports, "PermissionFlag", {
+  enumerable: true,
+  get: function () {
+    return _util.PermissionFlag;
+  }
+});
+Object.defineProperty(exports, "removeNullCharacters", {
+  enumerable: true,
+  get: function () {
+    return _util.removeNullCharacters;
+  }
+});
+Object.defineProperty(exports, "shadow", {
+  enumerable: true,
+  get: function () {
+    return _util.shadow;
+  }
+});
+Object.defineProperty(exports, "UnexpectedResponseException", {
+  enumerable: true,
+  get: function () {
+    return _util.UnexpectedResponseException;
+  }
+});
+Object.defineProperty(exports, "UNSUPPORTED_FEATURES", {
+  enumerable: true,
+  get: function () {
+    return _util.UNSUPPORTED_FEATURES;
+  }
+});
+Object.defineProperty(exports, "Util", {
+  enumerable: true,
+  get: function () {
+    return _util.Util;
+  }
+});
+Object.defineProperty(exports, "VerbosityLevel", {
+  enumerable: true,
+  get: function () {
+    return _util.VerbosityLevel;
+  }
+});
+Object.defineProperty(exports, "AnnotationLayer", {
+  enumerable: true,
+  get: function () {
+    return _annotation_layer.AnnotationLayer;
+  }
+});
+Object.defineProperty(exports, "apiCompatibilityParams", {
+  enumerable: true,
+  get: function () {
+    return _api_compatibility.apiCompatibilityParams;
+  }
+});
+Object.defineProperty(exports, "GlobalWorkerOptions", {
+  enumerable: true,
+  get: function () {
+    return _worker_options.GlobalWorkerOptions;
+  }
+});
+Object.defineProperty(exports, "renderTextLayer", {
+  enumerable: true,
+  get: function () {
+    return _text_layer.renderTextLayer;
+  }
+});
+Object.defineProperty(exports, "SVGGraphics", {
+  enumerable: true,
+  get: function () {
+    return _svg.SVGGraphics;
+  }
+});
 
-var pdfjsSharedUtil = __w_pdfjs_require__(1);
+var _display_utils = __w_pdfjs_require__(1);
 
-var pdfjsDisplayAPI = __w_pdfjs_require__(3);
+var _api = __w_pdfjs_require__(5);
 
-var pdfjsDisplayTextLayer = __w_pdfjs_require__(16);
+var _util = __w_pdfjs_require__(2);
 
-var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(17);
+var _annotation_layer = __w_pdfjs_require__(16);
 
-var pdfjsDisplayDisplayUtils = __w_pdfjs_require__(4);
+var _api_compatibility = __w_pdfjs_require__(7);
 
-var pdfjsDisplaySVG = __w_pdfjs_require__(18);
+var _worker_options = __w_pdfjs_require__(10);
 
-const pdfjsDisplayWorkerOptions = __w_pdfjs_require__(10);
+var _text_layer = __w_pdfjs_require__(17);
 
-const pdfjsDisplayAPICompatibility = __w_pdfjs_require__(6);
+var _svg = __w_pdfjs_require__(18);
 
+const pdfjsVersion = '2.5.207';
+const pdfjsBuild = '0974d6052';
 {
   const {
     isNodeJS
-  } = __w_pdfjs_require__(7);
+  } = __w_pdfjs_require__(4);
 
   if (isNodeJS) {
     const PDFNodeStream = __w_pdfjs_require__(19).PDFNodeStream;
 
-    pdfjsDisplayAPI.setPDFNetworkStreamFactory(params => {
+    (0, _api.setPDFNetworkStreamFactory)(params => {
       return new PDFNodeStream(params);
     });
   } else {
@@ -158,12 +353,12 @@ const pdfjsDisplayAPICompatibility = __w_pdfjs_require__(6);
 
     let PDFFetchStream;
 
-    if (pdfjsDisplayDisplayUtils.isFetchSupported()) {
+    if ((0, _display_utils.isFetchSupported)()) {
       PDFFetchStream = __w_pdfjs_require__(23).PDFFetchStream;
     }
 
-    pdfjsDisplayAPI.setPDFNetworkStreamFactory(params => {
-      if (PDFFetchStream && pdfjsDisplayDisplayUtils.isValidFetchUrl(params.url)) {
+    (0, _api.setPDFNetworkStreamFactory)(params => {
+      if (PDFFetchStream && (0, _display_utils.isValidFetchUrl)(params.url)) {
         return new PDFFetchStream(params);
       }
 
@@ -171,39 +366,6 @@ const pdfjsDisplayAPICompatibility = __w_pdfjs_require__(6);
     });
   }
 }
-exports.build = pdfjsDisplayAPI.build;
-exports.version = pdfjsDisplayAPI.version;
-exports.getDocument = pdfjsDisplayAPI.getDocument;
-exports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort;
-exports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport;
-exports.PDFWorker = pdfjsDisplayAPI.PDFWorker;
-exports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer;
-exports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer;
-exports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability;
-exports.PasswordResponses = pdfjsSharedUtil.PasswordResponses;
-exports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException;
-exports.MissingPDFException = pdfjsSharedUtil.MissingPDFException;
-exports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics;
-exports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding;
-exports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType;
-exports.PermissionFlag = pdfjsSharedUtil.PermissionFlag;
-exports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException;
-exports.OPS = pdfjsSharedUtil.OPS;
-exports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel;
-exports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES;
-exports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl;
-exports.createObjectURL = pdfjsSharedUtil.createObjectURL;
-exports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters;
-exports.shadow = pdfjsSharedUtil.shadow;
-exports.Util = pdfjsSharedUtil.Util;
-exports.RenderingCancelledException = pdfjsDisplayDisplayUtils.RenderingCancelledException;
-exports.getFilenameFromUrl = pdfjsDisplayDisplayUtils.getFilenameFromUrl;
-exports.LinkTarget = pdfjsDisplayDisplayUtils.LinkTarget;
-exports.addLinkAttributes = pdfjsDisplayDisplayUtils.addLinkAttributes;
-exports.loadScript = pdfjsDisplayDisplayUtils.loadScript;
-exports.PDFDateString = pdfjsDisplayDisplayUtils.PDFDateString;
-exports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions;
-exports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityParams;
 
 /***/ }),
 /* 1 */
@@ -215,830 +377,499 @@ exports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityPa
 Object.defineProperty(exports, "__esModule", {
   value: true
 });
-exports.arrayByteLength = arrayByteLength;
-exports.arraysToBytes = arraysToBytes;
-exports.assert = assert;
-exports.bytesToString = bytesToString;
-exports.createPromiseCapability = createPromiseCapability;
-exports.getVerbosityLevel = getVerbosityLevel;
-exports.info = info;
-exports.isArrayBuffer = isArrayBuffer;
-exports.isArrayEqual = isArrayEqual;
-exports.isBool = isBool;
-exports.isEmptyObj = isEmptyObj;
-exports.isNum = isNum;
-exports.isString = isString;
-exports.isSameOrigin = isSameOrigin;
-exports.createValidAbsoluteUrl = createValidAbsoluteUrl;
-exports.removeNullCharacters = removeNullCharacters;
-exports.setVerbosityLevel = setVerbosityLevel;
-exports.shadow = shadow;
-exports.string32 = string32;
-exports.stringToBytes = stringToBytes;
-exports.stringToPDFString = stringToPDFString;
-exports.stringToUTF8String = stringToUTF8String;
-exports.utf8StringToString = utf8StringToString;
-exports.warn = warn;
-exports.unreachable = unreachable;
-exports.IsEvalSupportedCached = exports.IsLittleEndianCached = exports.createObjectURL = exports.FormatError 
= exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = 
exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = 
exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = 
exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = 
exports.FontType = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState 
= exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = 
exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = 
exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = 
exports.BaseException = void 0;
+exports.addLinkAttributes = addLinkAttributes;
+exports.getFilenameFromUrl = getFilenameFromUrl;
+exports.isFetchSupported = isFetchSupported;
+exports.isValidFetchUrl = isValidFetchUrl;
+exports.loadScript = loadScript;
+exports.deprecated = deprecated;
+exports.PDFDateString = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = 
exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = 
exports.RenderingCancelledException = exports.PageViewport = void 0;
 
-__w_pdfjs_require__(2);
+var _util = __w_pdfjs_require__(2);
 
-const IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];
-exports.IDENTITY_MATRIX = IDENTITY_MATRIX;
-const FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];
-exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;
-const NativeImageDecoding = {
-  NONE: "none",
-  DECODE: "decode",
-  DISPLAY: "display"
-};
-exports.NativeImageDecoding = NativeImageDecoding;
-const PermissionFlag = {
-  PRINT: 0x04,
-  MODIFY_CONTENTS: 0x08,
-  COPY: 0x10,
-  MODIFY_ANNOTATIONS: 0x20,
-  FILL_INTERACTIVE_FORMS: 0x100,
-  COPY_FOR_ACCESSIBILITY: 0x200,
-  ASSEMBLE: 0x400,
-  PRINT_HIGH_QUALITY: 0x800
-};
-exports.PermissionFlag = PermissionFlag;
-const 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
-};
-exports.TextRenderingMode = TextRenderingMode;
-const ImageKind = {
-  GRAYSCALE_1BPP: 1,
-  RGB_24BPP: 2,
-  RGBA_32BPP: 3
-};
-exports.ImageKind = ImageKind;
-const 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
-};
-exports.AnnotationType = AnnotationType;
-const AnnotationStateModelType = {
-  MARKED: "Marked",
-  REVIEW: "Review"
-};
-exports.AnnotationStateModelType = AnnotationStateModelType;
-const AnnotationMarkedState = {
-  MARKED: "Marked",
-  UNMARKED: "Unmarked"
-};
-exports.AnnotationMarkedState = AnnotationMarkedState;
-const AnnotationReviewState = {
-  ACCEPTED: "Accepted",
-  REJECTED: "Rejected",
-  CANCELLED: "Cancelled",
-  COMPLETED: "Completed",
-  NONE: "None"
-};
-exports.AnnotationReviewState = AnnotationReviewState;
-const AnnotationReplyType = {
-  GROUP: "Group",
-  REPLY: "R"
-};
-exports.AnnotationReplyType = AnnotationReplyType;
-const AnnotationFlag = {
-  INVISIBLE: 0x01,
-  HIDDEN: 0x02,
-  PRINT: 0x04,
-  NOZOOM: 0x08,
-  NOROTATE: 0x10,
-  NOVIEW: 0x20,
-  READONLY: 0x40,
-  LOCKED: 0x80,
-  TOGGLENOVIEW: 0x100,
-  LOCKEDCONTENTS: 0x200
-};
-exports.AnnotationFlag = AnnotationFlag;
-const AnnotationFieldFlag = {
-  READONLY: 0x0000001,
-  REQUIRED: 0x0000002,
-  NOEXPORT: 0x0000004,
-  MULTILINE: 0x0001000,
-  PASSWORD: 0x0002000,
-  NOTOGGLETOOFF: 0x0004000,
-  RADIO: 0x0008000,
-  PUSHBUTTON: 0x0010000,
-  COMBO: 0x0020000,
-  EDIT: 0x0040000,
-  SORT: 0x0080000,
-  FILESELECT: 0x0100000,
-  MULTISELECT: 0x0200000,
-  DONOTSPELLCHECK: 0x0400000,
-  DONOTSCROLL: 0x0800000,
-  COMB: 0x1000000,
-  RICHTEXT: 0x2000000,
-  RADIOSINUNISON: 0x2000000,
-  COMMITONSELCHANGE: 0x4000000
-};
-exports.AnnotationFieldFlag = AnnotationFieldFlag;
-const AnnotationBorderStyleType = {
-  SOLID: 1,
-  DASHED: 2,
-  BEVELED: 3,
-  INSET: 4,
-  UNDERLINE: 5
-};
-exports.AnnotationBorderStyleType = AnnotationBorderStyleType;
-const StreamType = {
-  UNKNOWN: "UNKNOWN",
-  FLATE: "FLATE",
-  LZW: "LZW",
-  DCT: "DCT",
-  JPX: "JPX",
-  JBIG: "JBIG",
-  A85: "A85",
-  AHX: "AHX",
-  CCF: "CCF",
-  RLX: "RLX"
-};
-exports.StreamType = StreamType;
-const FontType = {
-  UNKNOWN: "UNKNOWN",
-  TYPE1: "TYPE1",
-  TYPE1C: "TYPE1C",
-  CIDFONTTYPE0: "CIDFONTTYPE0",
-  CIDFONTTYPE0C: "CIDFONTTYPE0C",
-  TRUETYPE: "TRUETYPE",
-  CIDFONTTYPE2: "CIDFONTTYPE2",
-  TYPE3: "TYPE3",
-  OPENTYPE: "OPENTYPE",
-  TYPE0: "TYPE0",
-  MMTYPE1: "MMTYPE1"
-};
-exports.FontType = FontType;
-const VerbosityLevel = {
-  ERRORS: 0,
-  WARNINGS: 1,
-  INFOS: 5
-};
-exports.VerbosityLevel = VerbosityLevel;
-const CMapCompressionType = {
-  NONE: 0,
-  BINARY: 1,
-  STREAM: 2
-};
-exports.CMapCompressionType = CMapCompressionType;
-const 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,
-  beginAnnotations: 78,
-  endAnnotations: 79,
-  beginAnnotation: 80,
-  endAnnotation: 81,
-  paintJpegXObject: 82,
-  paintImageMaskXObject: 83,
-  paintImageMaskXObjectGroup: 84,
-  paintImageXObject: 85,
-  paintInlineImageXObject: 86,
-  paintInlineImageXObjectGroup: 87,
-  paintImageXObjectRepeat: 88,
-  paintImageMaskXObjectRepeat: 89,
-  paintSolidColorImageMask: 90,
-  constructPath: 91
-};
-exports.OPS = OPS;
-const UNSUPPORTED_FEATURES = {
-  unknown: "unknown",
-  forms: "forms",
-  javaScript: "javaScript",
-  smask: "smask",
-  shadingPattern: "shadingPattern",
-  font: "font"
-};
-exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;
-const PasswordResponses = {
-  NEED_PASSWORD: 1,
-  INCORRECT_PASSWORD: 2
-};
-exports.PasswordResponses = PasswordResponses;
-let verbosity = VerbosityLevel.WARNINGS;
+const DEFAULT_LINK_REL = "noopener noreferrer nofollow";
+exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;
+const SVG_NS = "http://www.w3.org/2000/svg";;
 
-function setVerbosityLevel(level) {
-  if (Number.isInteger(level)) {
-    verbosity = level;
+class DOMCanvasFactory {
+  create(width, height) {
+    if (width <= 0 || height <= 0) {
+      throw new Error("Invalid canvas size");
+    }
+
+    const canvas = document.createElement("canvas");
+    const context = canvas.getContext("2d");
+    canvas.width = width;
+    canvas.height = height;
+    return {
+      canvas,
+      context
+    };
   }
-}
 
-function getVerbosityLevel() {
-  return verbosity;
-}
+  reset(canvasAndContext, width, height) {
+    if (!canvasAndContext.canvas) {
+      throw new Error("Canvas is not specified");
+    }
 
-function info(msg) {
-  if (verbosity >= VerbosityLevel.INFOS) {
-    console.log(`Info: ${msg}`);
-  }
-}
+    if (width <= 0 || height <= 0) {
+      throw new Error("Invalid canvas size");
+    }
 
-function warn(msg) {
-  if (verbosity >= VerbosityLevel.WARNINGS) {
-    console.log(`Warning: ${msg}`);
+    canvasAndContext.canvas.width = width;
+    canvasAndContext.canvas.height = height;
   }
-}
 
-function unreachable(msg) {
-  throw new Error(msg);
-}
+  destroy(canvasAndContext) {
+    if (!canvasAndContext.canvas) {
+      throw new Error("Canvas is not specified");
+    }
 
-function assert(cond, msg) {
-  if (!cond) {
-    unreachable(msg);
+    canvasAndContext.canvas.width = 0;
+    canvasAndContext.canvas.height = 0;
+    canvasAndContext.canvas = null;
+    canvasAndContext.context = null;
   }
-}
 
-function isSameOrigin(baseUrl, otherUrl) {
-  let base;
+}
 
-  try {
-    base = new URL(baseUrl);
+exports.DOMCanvasFactory = DOMCanvasFactory;
 
-    if (!base.origin || base.origin === "null") {
-      return false;
-    }
-  } catch (e) {
-    return false;
+class DOMCMapReaderFactory {
+  constructor({
+    baseUrl = null,
+    isCompressed = false
+  }) {
+    this.baseUrl = baseUrl;
+    this.isCompressed = isCompressed;
   }
 
-  const other = new URL(otherUrl, base);
-  return base.origin === other.origin;
-}
+  async fetch({
+    name
+  }) {
+    if (!this.baseUrl) {
+      throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and 
"cMapPacked" API parameters are provided.');
+    }
 
-function _isValidProtocol(url) {
-  if (!url) {
-    return false;
-  }
+    if (!name) {
+      throw new Error("CMap name must be specified.");
+    }
 
-  switch (url.protocol) {
-    case "http:":
-    case "https:":
-    case "ftp:":
-    case "mailto:":
-    case "tel:":
-      return true;
+    const url = this.baseUrl + name + (this.isCompressed ? ".bcmap" : "");
+    const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : 
_util.CMapCompressionType.NONE;
 
-    default:
-      return false;
-  }
-}
+    if (isFetchSupported() && isValidFetchUrl(url, document.baseURI)) {
+      return fetch(url).then(async response => {
+        if (!response.ok) {
+          throw new Error(response.statusText);
+        }
 
-function createValidAbsoluteUrl(url, baseUrl) {
-  if (!url) {
-    return null;
-  }
+        let cMapData;
 
-  try {
-    const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);
+        if (this.isCompressed) {
+          cMapData = new Uint8Array(await response.arrayBuffer());
+        } else {
+          cMapData = (0, _util.stringToBytes)(await response.text());
+        }
 
-    if (_isValidProtocol(absoluteUrl)) {
-      return absoluteUrl;
+        return {
+          cMapData,
+          compressionType
+        };
+      }).catch(reason => {
+        throw new Error(`Unable to load ${this.isCompressed ? "binary " : ""}` + `CMap at: ${url}`);
+      });
     }
-  } catch (ex) {}
 
-  return null;
-}
+    return new Promise((resolve, reject) => {
+      const request = new XMLHttpRequest();
+      request.open("GET", url, true);
 
-function shadow(obj, prop, value) {
-  Object.defineProperty(obj, prop, {
-    value,
-    enumerable: true,
-    configurable: true,
-    writable: false
-  });
-  return value;
-}
+      if (this.isCompressed) {
+        request.responseType = "arraybuffer";
+      }
 
-const BaseException = function BaseExceptionClosure() {
-  function BaseException(message) {
-    if (this.constructor === BaseException) {
-      unreachable("Cannot initialize BaseException.");
-    }
+      request.onreadystatechange = () => {
+        if (request.readyState !== XMLHttpRequest.DONE) {
+          return;
+        }
 
-    this.message = message;
-    this.name = this.constructor.name;
-  }
+        if (request.status === 200 || request.status === 0) {
+          let cMapData;
 
-  BaseException.prototype = new Error();
-  BaseException.constructor = BaseException;
-  return BaseException;
-}();
+          if (this.isCompressed && request.response) {
+            cMapData = new Uint8Array(request.response);
+          } else if (!this.isCompressed && request.responseText) {
+            cMapData = (0, _util.stringToBytes)(request.responseText);
+          }
 
-exports.BaseException = BaseException;
+          if (cMapData) {
+            resolve({
+              cMapData,
+              compressionType
+            });
+            return;
+          }
+        }
 
-class PasswordException extends BaseException {
-  constructor(msg, code) {
-    super(msg);
-    this.code = code;
+        reject(new Error(request.statusText));
+      };
+
+      request.send(null);
+    }).catch(reason => {
+      throw new Error(`Unable to load ${this.isCompressed ? "binary " : ""}` + `CMap at: ${url}`);
+    });
   }
 
 }
 
-exports.PasswordException = PasswordException;
+exports.DOMCMapReaderFactory = DOMCMapReaderFactory;
 
-class UnknownErrorException extends BaseException {
-  constructor(msg, details) {
-    super(msg);
-    this.details = details;
+class DOMSVGFactory {
+  create(width, height) {
+    (0, _util.assert)(width > 0 && height > 0, "Invalid SVG dimensions");
+    const svg = document.createElementNS(SVG_NS, "svg:svg");
+    svg.setAttribute("version", "1.1");
+    svg.setAttribute("width", width + "px");
+    svg.setAttribute("height", height + "px");
+    svg.setAttribute("preserveAspectRatio", "none");
+    svg.setAttribute("viewBox", "0 0 " + width + " " + height);
+    return svg;
+  }
+
+  createElement(type) {
+    (0, _util.assert)(typeof type === "string", "Invalid SVG element type");
+    return document.createElementNS(SVG_NS, type);
   }
 
 }
 
-exports.UnknownErrorException = UnknownErrorException;
+exports.DOMSVGFactory = DOMSVGFactory;
 
-class InvalidPDFException extends BaseException {}
+class PageViewport {
+  constructor({
+    viewBox,
+    scale,
+    rotation,
+    offsetX = 0,
+    offsetY = 0,
+    dontFlip = false
+  }) {
+    this.viewBox = viewBox;
+    this.scale = scale;
+    this.rotation = rotation;
+    this.offsetX = offsetX;
+    this.offsetY = offsetY;
+    const centerX = (viewBox[2] + viewBox[0]) / 2;
+    const centerY = (viewBox[3] + viewBox[1]) / 2;
+    let rotateA, rotateB, rotateC, rotateD;
+    rotation = rotation % 360;
+    rotation = rotation < 0 ? rotation + 360 : rotation;
 
-exports.InvalidPDFException = InvalidPDFException;
+    switch (rotation) {
+      case 180:
+        rotateA = -1;
+        rotateB = 0;
+        rotateC = 0;
+        rotateD = 1;
+        break;
 
-class MissingPDFException extends BaseException {}
+      case 90:
+        rotateA = 0;
+        rotateB = 1;
+        rotateC = 1;
+        rotateD = 0;
+        break;
 
-exports.MissingPDFException = MissingPDFException;
+      case 270:
+        rotateA = 0;
+        rotateB = -1;
+        rotateC = -1;
+        rotateD = 0;
+        break;
 
-class UnexpectedResponseException extends BaseException {
-  constructor(msg, status) {
-    super(msg);
-    this.status = status;
-  }
+      case 0:
+        rotateA = 1;
+        rotateB = 0;
+        rotateC = 0;
+        rotateD = -1;
+        break;
 
-}
+      default:
+        throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.");
+    }
 
-exports.UnexpectedResponseException = UnexpectedResponseException;
+    if (dontFlip) {
+      rotateC = -rotateC;
+      rotateD = -rotateD;
+    }
 
-class FormatError extends BaseException {}
+    let offsetCanvasX, offsetCanvasY;
+    let width, height;
 
-exports.FormatError = FormatError;
+    if (rotateA === 0) {
+      offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;
+      offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;
+      width = Math.abs(viewBox[3] - viewBox[1]) * scale;
+      height = Math.abs(viewBox[2] - viewBox[0]) * scale;
+    } else {
+      offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;
+      offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;
+      width = Math.abs(viewBox[2] - viewBox[0]) * scale;
+      height = Math.abs(viewBox[3] - viewBox[1]) * scale;
+    }
 
-class AbortException extends BaseException {}
+    this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - 
rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * 
scale * centerY];
+    this.width = width;
+    this.height = height;
+  }
 
-exports.AbortException = AbortException;
-const NullCharactersRegExp = /\x00/g;
+  clone({
+    scale = this.scale,
+    rotation = this.rotation,
+    offsetX = this.offsetX,
+    offsetY = this.offsetY,
+    dontFlip = false
+  } = {}) {
+    return new PageViewport({
+      viewBox: this.viewBox.slice(),
+      scale,
+      rotation,
+      offsetX,
+      offsetY,
+      dontFlip
+    });
+  }
 
-function removeNullCharacters(str) {
-  if (typeof str !== "string") {
-    warn("The argument for removeNullCharacters must be a string.");
-    return str;
+  convertToViewportPoint(x, y) {
+    return _util.Util.applyTransform([x, y], this.transform);
   }
 
-  return str.replace(NullCharactersRegExp, "");
-}
+  convertToViewportRectangle(rect) {
+    const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);
 
-function bytesToString(bytes) {
-  assert(bytes !== null && typeof bytes === "object" && bytes.length !== undefined, "Invalid argument for 
bytesToString");
-  const length = bytes.length;
-  const MAX_ARGUMENT_COUNT = 8192;
+    const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);
 
-  if (length < MAX_ARGUMENT_COUNT) {
-    return String.fromCharCode.apply(null, bytes);
+    return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];
   }
 
-  const strBuf = [];
-
-  for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {
-    const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);
-    const chunk = bytes.subarray(i, chunkEnd);
-    strBuf.push(String.fromCharCode.apply(null, chunk));
+  convertToPdfPoint(x, y) {
+    return _util.Util.applyInverseTransform([x, y], this.transform);
   }
 
-  return strBuf.join("");
 }
 
-function stringToBytes(str) {
-  assert(typeof str === "string", "Invalid argument for stringToBytes");
-  const length = str.length;
-  const bytes = new Uint8Array(length);
+exports.PageViewport = PageViewport;
 
-  for (let i = 0; i < length; ++i) {
-    bytes[i] = str.charCodeAt(i) & 0xff;
+class RenderingCancelledException extends _util.BaseException {
+  constructor(msg, type) {
+    super(msg);
+    this.type = type;
   }
 
-  return bytes;
 }
 
-function arrayByteLength(arr) {
-  if (arr.length !== undefined) {
-    return arr.length;
-  }
+exports.RenderingCancelledException = RenderingCancelledException;
+const LinkTarget = {
+  NONE: 0,
+  SELF: 1,
+  BLANK: 2,
+  PARENT: 3,
+  TOP: 4
+};
+exports.LinkTarget = LinkTarget;
 
-  assert(arr.byteLength !== undefined);
-  return arr.byteLength;
-}
+function addLinkAttributes(link, {
+  url,
+  target,
+  rel,
+  enabled = true
+} = {}) {
+  (0, _util.assert)(url && typeof url === "string", 'addLinkAttributes: A valid "url" parameter must 
provided.');
+  const urlNullRemoved = (0, _util.removeNullCharacters)(url);
 
-function arraysToBytes(arr) {
-  const length = arr.length;
+  if (enabled) {
+    link.href = link.title = urlNullRemoved;
+  } else {
+    link.href = "";
+    link.title = `Disabled: ${urlNullRemoved}`;
 
-  if (length === 1 && arr[0] instanceof Uint8Array) {
-    return arr[0];
+    link.onclick = () => {
+      return false;
+    };
   }
 
-  let resultLength = 0;
-
-  for (let i = 0; i < length; i++) {
-    resultLength += arrayByteLength(arr[i]);
-  }
+  let targetStr = "";
 
-  let pos = 0;
-  const data = new Uint8Array(resultLength);
+  switch (target) {
+    case LinkTarget.NONE:
+      break;
 
-  for (let i = 0; i < length; i++) {
-    let item = arr[i];
+    case LinkTarget.SELF:
+      targetStr = "_self";
+      break;
 
-    if (!(item instanceof Uint8Array)) {
-      if (typeof item === "string") {
-        item = stringToBytes(item);
-      } else {
-        item = new Uint8Array(item);
-      }
-    }
+    case LinkTarget.BLANK:
+      targetStr = "_blank";
+      break;
 
-    const itemLength = item.byteLength;
-    data.set(item, pos);
-    pos += itemLength;
-  }
+    case LinkTarget.PARENT:
+      targetStr = "_parent";
+      break;
 
-  return data;
-}
+    case LinkTarget.TOP:
+      targetStr = "_top";
+      break;
+  }
 
-function string32(value) {
-  return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);
+  link.target = targetStr;
+  link.rel = typeof rel === "string" ? rel : DEFAULT_LINK_REL;
 }
 
-function isLittleEndian() {
-  const buffer8 = new Uint8Array(4);
-  buffer8[0] = 1;
-  const view32 = new Uint32Array(buffer8.buffer, 0, 1);
-  return view32[0] === 1;
+function getFilenameFromUrl(url) {
+  const anchor = url.indexOf("#");
+  const query = url.indexOf("?");
+  const end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);
+  return url.substring(url.lastIndexOf("/", end) + 1, end);
 }
 
-const IsLittleEndianCached = {
-  get value() {
-    return shadow(this, "value", isLittleEndian());
+class StatTimer {
+  constructor() {
+    this.started = Object.create(null);
+    this.times = [];
   }
 
-};
-exports.IsLittleEndianCached = IsLittleEndianCached;
+  time(name) {
+    if (name in this.started) {
+      (0, _util.warn)(`Timer is already running for ${name}`);
+    }
 
-function isEvalSupported() {
-  try {
-    new Function("");
-    return true;
-  } catch (e) {
-    return false;
+    this.started[name] = Date.now();
   }
-}
 
-const IsEvalSupportedCached = {
-  get value() {
-    return shadow(this, "value", isEvalSupported());
+  timeEnd(name) {
+    if (!(name in this.started)) {
+      (0, _util.warn)(`Timer has not been started for ${name}`);
+    }
+
+    this.times.push({
+      name,
+      start: this.started[name],
+      end: Date.now()
+    });
+    delete this.started[name];
   }
 
-};
-exports.IsEvalSupportedCached = IsEvalSupportedCached;
-const rgbBuf = ["rgb(", 0, ",", 0, ",", 0, ")"];
+  toString() {
+    const outBuf = [];
+    let longest = 0;
 
-class Util {
-  static makeCssRgb(r, g, b) {
-    rgbBuf[1] = r;
-    rgbBuf[3] = g;
-    rgbBuf[5] = b;
-    return rgbBuf.join("");
-  }
+    for (const time of this.times) {
+      const name = time.name;
 
-  static transform(m1, m2) {
-    return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], 
m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];
-  }
+      if (name.length > longest) {
+        longest = name.length;
+      }
+    }
 
-  static applyTransform(p, m) {
-    const xt = p[0] * m[0] + p[1] * m[2] + m[4];
-    const yt = p[0] * m[1] + p[1] * m[3] + m[5];
-    return [xt, yt];
-  }
+    for (const time of this.times) {
+      const duration = time.end - time.start;
+      outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\n`);
+    }
 
-  static applyInverseTransform(p, m) {
-    const d = m[0] * m[3] - m[1] * m[2];
-    const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;
-    const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;
-    return [xt, yt];
+    return outBuf.join("");
   }
 
-  static getAxialAlignedBoundingBox(r, m) {
-    const p1 = Util.applyTransform(r, m);
-    const p2 = Util.applyTransform(r.slice(2, 4), m);
-    const p3 = Util.applyTransform([r[0], r[3]], m);
-    const p4 = Util.applyTransform([r[2], r[1]], m);
-    return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], 
p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];
-  }
+}
 
-  static inverseTransform(m) {
-    const d = m[0] * m[3] - m[1] * m[2];
-    return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * 
m[0]) / d];
-  }
+exports.StatTimer = StatTimer;
 
-  static apply3dTransform(m, v) {
-    return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + 
m[7] * v[1] + m[8] * v[2]];
-  }
+function isFetchSupported() {
+  return typeof fetch !== "undefined" && typeof Response !== "undefined" && "body" in Response.prototype && 
typeof ReadableStream !== "undefined";
+}
 
-  static singularValueDecompose2dScale(m) {
-    const transpose = [m[0], m[2], m[1], m[3]];
-    const a = m[0] * transpose[0] + m[1] * transpose[2];
-    const b = m[0] * transpose[1] + m[1] * transpose[3];
-    const c = m[2] * transpose[0] + m[3] * transpose[2];
-    const d = m[2] * transpose[1] + m[3] * transpose[3];
-    const first = (a + d) / 2;
-    const second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;
-    const sx = first + second || 1;
-    const sy = first - second || 1;
-    return [Math.sqrt(sx), Math.sqrt(sy)];
+function isValidFetchUrl(url, baseUrl) {
+  try {
+    const {
+      protocol
+    } = baseUrl ? new URL(url, baseUrl) : new URL(url);
+    return protocol === "http:" || protocol === "https:";
+  } catch (ex) {
+    return false;
   }
+}
 
-  static normalizeRect(rect) {
-    const r = rect.slice(0);
+function loadScript(src) {
+  return new Promise((resolve, reject) => {
+    const script = document.createElement("script");
+    script.src = src;
+    script.onload = resolve;
 
-    if (rect[0] > rect[2]) {
-      r[0] = rect[2];
-      r[2] = rect[0];
-    }
+    script.onerror = function () {
+      reject(new Error(`Cannot load script at: ${script.src}`));
+    };
 
-    if (rect[1] > rect[3]) {
-      r[1] = rect[3];
-      r[3] = rect[1];
-    }
+    (document.head || document.documentElement).appendChild(script);
+  });
+}
 
-    return r;
-  }
+function deprecated(details) {
+  console.log("Deprecated API usage: " + details);
+}
 
-  static intersect(rect1, rect2) {
-    function compare(a, b) {
-      return a - b;
+let pdfDateStringRegex;
+
+class PDFDateString {
+  static toDateObject(input) {
+    if (!input || !(0, _util.isString)(input)) {
+      return null;
     }
 
-    const orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare);
-    const orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare);
-    const result = [];
-    rect1 = Util.normalizeRect(rect1);
-    rect2 = Util.normalizeRect(rect2);
+    if (!pdfDateStringRegex) {
+      pdfDateStringRegex = new RegExp("^D:" + "(\\d{4})" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + 
"(\\d{2})?" + "(\\d{2})?" + "([Z|+|-])?" + "(\\d{2})?" + "'?" + "(\\d{2})?" + "'?");
+    }
 
-    if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === 
rect1[0]) {
-      result[0] = orderedX[1];
-      result[2] = orderedX[2];
-    } else {
+    const matches = pdfDateStringRegex.exec(input);
+
+    if (!matches) {
       return null;
     }
 
-    if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === 
rect1[1]) {
-      result[1] = orderedY[1];
-      result[3] = orderedY[2];
-    } else {
-      return null;
+    const year = parseInt(matches[1], 10);
+    let month = parseInt(matches[2], 10);
+    month = month >= 1 && month <= 12 ? month - 1 : 0;
+    let day = parseInt(matches[3], 10);
+    day = day >= 1 && day <= 31 ? day : 1;
+    let hour = parseInt(matches[4], 10);
+    hour = hour >= 0 && hour <= 23 ? hour : 0;
+    let minute = parseInt(matches[5], 10);
+    minute = minute >= 0 && minute <= 59 ? minute : 0;
+    let second = parseInt(matches[6], 10);
+    second = second >= 0 && second <= 59 ? second : 0;
+    const universalTimeRelation = matches[7] || "Z";
+    let offsetHour = parseInt(matches[8], 10);
+    offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;
+    let offsetMinute = parseInt(matches[9], 10) || 0;
+    offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;
+
+    if (universalTimeRelation === "-") {
+      hour += offsetHour;
+      minute += offsetMinute;
+    } else if (universalTimeRelation === "+") {
+      hour -= offsetHour;
+      minute -= offsetMinute;
     }
 
-    return result;
+    return new Date(Date.UTC(year, month, day, hour, minute, second));
   }
 
 }
 
-exports.Util = Util;
-const PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 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, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 
0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 
0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC];
+exports.PDFDateString = PDFDateString;
 
-function stringToPDFString(str) {
-  const length = str.length,
-        strBuf = [];
-
-  if (str[0] === "\xFE" && str[1] === "\xFF") {
-    for (let i = 2; i < length; i += 2) {
-      strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));
-    }
-  } else if (str[0] === "\xFF" && str[1] === "\xFE") {
-    for (let i = 2; i < length; i += 2) {
-      strBuf.push(String.fromCharCode(str.charCodeAt(i + 1) << 8 | str.charCodeAt(i)));
-    }
-  } else {
-    for (let i = 0; i < length; ++i) {
-      const code = PDFStringTranslateTable[str.charCodeAt(i)];
-      strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));
-    }
-  }
-
-  return strBuf.join("");
-}
-
-function stringToUTF8String(str) {
-  return decodeURIComponent(escape(str));
-}
-
-function utf8StringToString(str) {
-  return unescape(encodeURIComponent(str));
-}
-
-function isEmptyObj(obj) {
-  for (const key in obj) {
-    return false;
-  }
-
-  return true;
-}
-
-function isBool(v) {
-  return typeof v === "boolean";
-}
-
-function isNum(v) {
-  return typeof v === "number";
-}
-
-function isString(v) {
-  return typeof v === "string";
-}
-
-function isArrayBuffer(v) {
-  return typeof v === "object" && v !== null && v.byteLength !== undefined;
-}
-
-function isArrayEqual(arr1, arr2) {
-  if (arr1.length !== arr2.length) {
-    return false;
-  }
-
-  return arr1.every(function (element, index) {
-    return element === arr2[index];
-  });
-}
-
-function createPromiseCapability() {
-  const capability = Object.create(null);
-  let isSettled = false;
-  Object.defineProperty(capability, "settled", {
-    get() {
-      return isSettled;
-    }
-
-  });
-  capability.promise = new Promise(function (resolve, reject) {
-    capability.resolve = function (data) {
-      isSettled = true;
-      resolve(data);
-    };
-
-    capability.reject = function (reason) {
-      isSettled = true;
-      reject(reason);
-    };
-  });
-  return capability;
-}
-
-const createObjectURL = function createObjectURLClosure() {
-  const digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
-  return function createObjectURL(data, contentType, forceDataSchema = false) {
-    if (!forceDataSchema && URL.createObjectURL) {
-      const blob = new Blob([data], {
-        type: contentType
-      });
-      return URL.createObjectURL(blob);
-    }
-
-    let buffer = `data:${contentType};base64,`;
-
-    for (let i = 0, ii = data.length; i < ii; i += 3) {
-      const b1 = data[i] & 0xff;
-      const b2 = data[i + 1] & 0xff;
-      const b3 = data[i + 2] & 0xff;
-      const d1 = b1 >> 2,
-            d2 = (b1 & 3) << 4 | b2 >> 4;
-      const d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64;
-      const d4 = i + 2 < ii ? b3 & 0x3f : 64;
-      buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];
-    }
-
-    return buffer;
-  };
-}();
-
-exports.createObjectURL = createObjectURL;
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
-
-;
-
-/***/ }),
-/* 3 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
+/***/ }),
+/* 2 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
 
@@ -1046,2698 +877,2934 @@ exports.createObjectURL = createObjectURL;
 Object.defineProperty(exports, "__esModule", {
   value: true
 });
-exports.getDocument = getDocument;
-exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;
-exports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = 
exports.PDFDataRangeTransport = exports.LoopbackPort = void 0;
-
-var _util = __w_pdfjs_require__(1);
-
-var _display_utils = __w_pdfjs_require__(4);
-
-var _font_loader = __w_pdfjs_require__(5);
-
-var _api_compatibility = __w_pdfjs_require__(6);
-
-var _canvas = __w_pdfjs_require__(8);
-
-var _worker_options = __w_pdfjs_require__(10);
-
-var _is_node = __w_pdfjs_require__(7);
-
-var _message_handler = __w_pdfjs_require__(11);
-
-var _metadata = __w_pdfjs_require__(12);
-
-var _transport_stream = __w_pdfjs_require__(14);
-
-var _webgl = __w_pdfjs_require__(15);
-
-const DEFAULT_RANGE_CHUNK_SIZE = 65536;
-const RENDERING_CANCELLED_TIMEOUT = 100;
-let createPDFNetworkStream;
-
-function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {
-  createPDFNetworkStream = pdfNetworkStreamFactory;
-}
-
-function getDocument(src) {
-  const task = new PDFDocumentLoadingTask();
-  let source;
-
-  if (typeof src === "string") {
-    source = {
-      url: src
-    };
-  } else if ((0, _util.isArrayBuffer)(src)) {
-    source = {
-      data: src
-    };
-  } else if (src instanceof PDFDataRangeTransport) {
-    source = {
-      range: src
-    };
-  } else {
-    if (typeof src !== "object") {
-      throw new Error("Invalid parameter in getDocument, " + "need either Uint8Array, string or a parameter 
object");
-    }
-
-    if (!src.url && !src.data && !src.range) {
-      throw new Error("Invalid parameter object: need either .data, .range or .url");
-    }
-
-    source = src;
-  }
-
-  const params = Object.create(null);
-  let rangeTransport = null,
-      worker = null;
-
-  for (const key in source) {
-    if (key === "url" && typeof window !== "undefined") {
-      params[key] = new URL(source[key], window.location).href;
-      continue;
-    } else if (key === "range") {
-      rangeTransport = source[key];
-      continue;
-    } else if (key === "worker") {
-      worker = source[key];
-      continue;
-    } else if (key === "data" && !(source[key] instanceof Uint8Array)) {
-      const pdfBytes = source[key];
-
-      if (typeof pdfBytes === "string") {
-        params[key] = (0, _util.stringToBytes)(pdfBytes);
-      } else if (typeof pdfBytes === "object" && pdfBytes !== null && !isNaN(pdfBytes.length)) {
-        params[key] = new Uint8Array(pdfBytes);
-      } else if ((0, _util.isArrayBuffer)(pdfBytes)) {
-        params[key] = new Uint8Array(pdfBytes);
-      } else {
-        throw new Error("Invalid PDF binary data: either typed array, " + "string or array-like object is 
expected in the " + "data property.");
-      }
-
-      continue;
-    }
-
-    params[key] = source[key];
-  }
-
-  params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;
-  params.CMapReaderFactory = params.CMapReaderFactory || _display_utils.DOMCMapReaderFactory;
-  params.ignoreErrors = params.stopAtErrors !== true;
-  params.pdfBug = params.pdfBug === true;
-  const NativeImageDecoderValues = Object.values(_util.NativeImageDecoding);
-
-  if (params.nativeImageDecoderSupport === undefined || 
!NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) {
-    params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport 
|| _util.NativeImageDecoding.DECODE;
-  }
-
-  if (!Number.isInteger(params.maxImageSize)) {
-    params.maxImageSize = -1;
-  }
-
-  if (typeof params.isEvalSupported !== "boolean") {
-    params.isEvalSupported = true;
-  }
-
-  if (typeof params.disableFontFace !== "boolean") {
-    params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;
-  }
-
-  if (typeof params.disableRange !== "boolean") {
-    params.disableRange = false;
-  }
+exports.arrayByteLength = arrayByteLength;
+exports.arraysToBytes = arraysToBytes;
+exports.assert = assert;
+exports.bytesToString = bytesToString;
+exports.createPromiseCapability = createPromiseCapability;
+exports.getVerbosityLevel = getVerbosityLevel;
+exports.info = info;
+exports.isArrayBuffer = isArrayBuffer;
+exports.isArrayEqual = isArrayEqual;
+exports.isBool = isBool;
+exports.isEmptyObj = isEmptyObj;
+exports.isNum = isNum;
+exports.isString = isString;
+exports.isSameOrigin = isSameOrigin;
+exports.createValidAbsoluteUrl = createValidAbsoluteUrl;
+exports.removeNullCharacters = removeNullCharacters;
+exports.setVerbosityLevel = setVerbosityLevel;
+exports.shadow = shadow;
+exports.string32 = string32;
+exports.stringToBytes = stringToBytes;
+exports.stringToPDFString = stringToPDFString;
+exports.stringToUTF8String = stringToUTF8String;
+exports.utf8StringToString = utf8StringToString;
+exports.warn = warn;
+exports.unreachable = unreachable;
+exports.IsEvalSupportedCached = exports.IsLittleEndianCached = exports.createObjectURL = exports.FormatError 
= exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = 
exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = 
exports.PasswordException = exports.MissingPDFException = exports.InvalidPDFException = 
exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = 
exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = 
exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = 
exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = 
exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = 
exports.BaseException = void 0;
 
-  if (typeof params.disableStream !== "boolean") {
-    params.disableStream = false;
-  }
+__w_pdfjs_require__(3);
 
-  if (typeof params.disableAutoFetch !== "boolean") {
-    params.disableAutoFetch = false;
-  }
-
-  if (typeof params.disableCreateObjectURL !== "boolean") {
-    params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || 
false;
-  }
-
-  (0, _util.setVerbosityLevel)(params.verbosity);
-
-  if (!worker) {
-    const workerParams = {
-      verbosity: params.verbosity,
-      port: _worker_options.GlobalWorkerOptions.workerPort
-    };
-    worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);
-    task._worker = worker;
-  }
-
-  const docId = task.docId;
-  worker.promise.then(function () {
-    if (task.destroyed) {
-      throw new Error("Loading aborted");
-    }
-
-    return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) {
-      if (task.destroyed) {
-        throw new Error("Loading aborted");
-      }
-
-      let networkStream;
-
-      if (rangeTransport) {
-        networkStream = new _transport_stream.PDFDataTransportStream({
-          length: params.length,
-          initialData: params.initialData,
-          progressiveDone: params.progressiveDone,
-          disableRange: params.disableRange,
-          disableStream: params.disableStream
-        }, rangeTransport);
-      } else if (!params.data) {
-        networkStream = createPDFNetworkStream({
-          url: params.url,
-          length: params.length,
-          httpHeaders: params.httpHeaders,
-          withCredentials: params.withCredentials,
-          rangeChunkSize: params.rangeChunkSize,
-          disableRange: params.disableRange,
-          disableStream: params.disableStream
-        });
-      }
+const IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];
+exports.IDENTITY_MATRIX = IDENTITY_MATRIX;
+const FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];
+exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;
+const PermissionFlag = {
+  PRINT: 0x04,
+  MODIFY_CONTENTS: 0x08,
+  COPY: 0x10,
+  MODIFY_ANNOTATIONS: 0x20,
+  FILL_INTERACTIVE_FORMS: 0x100,
+  COPY_FOR_ACCESSIBILITY: 0x200,
+  ASSEMBLE: 0x400,
+  PRINT_HIGH_QUALITY: 0x800
+};
+exports.PermissionFlag = PermissionFlag;
+const 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
+};
+exports.TextRenderingMode = TextRenderingMode;
+const ImageKind = {
+  GRAYSCALE_1BPP: 1,
+  RGB_24BPP: 2,
+  RGBA_32BPP: 3
+};
+exports.ImageKind = ImageKind;
+const 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
+};
+exports.AnnotationType = AnnotationType;
+const AnnotationStateModelType = {
+  MARKED: "Marked",
+  REVIEW: "Review"
+};
+exports.AnnotationStateModelType = AnnotationStateModelType;
+const AnnotationMarkedState = {
+  MARKED: "Marked",
+  UNMARKED: "Unmarked"
+};
+exports.AnnotationMarkedState = AnnotationMarkedState;
+const AnnotationReviewState = {
+  ACCEPTED: "Accepted",
+  REJECTED: "Rejected",
+  CANCELLED: "Cancelled",
+  COMPLETED: "Completed",
+  NONE: "None"
+};
+exports.AnnotationReviewState = AnnotationReviewState;
+const AnnotationReplyType = {
+  GROUP: "Group",
+  REPLY: "R"
+};
+exports.AnnotationReplyType = AnnotationReplyType;
+const AnnotationFlag = {
+  INVISIBLE: 0x01,
+  HIDDEN: 0x02,
+  PRINT: 0x04,
+  NOZOOM: 0x08,
+  NOROTATE: 0x10,
+  NOVIEW: 0x20,
+  READONLY: 0x40,
+  LOCKED: 0x80,
+  TOGGLENOVIEW: 0x100,
+  LOCKEDCONTENTS: 0x200
+};
+exports.AnnotationFlag = AnnotationFlag;
+const AnnotationFieldFlag = {
+  READONLY: 0x0000001,
+  REQUIRED: 0x0000002,
+  NOEXPORT: 0x0000004,
+  MULTILINE: 0x0001000,
+  PASSWORD: 0x0002000,
+  NOTOGGLETOOFF: 0x0004000,
+  RADIO: 0x0008000,
+  PUSHBUTTON: 0x0010000,
+  COMBO: 0x0020000,
+  EDIT: 0x0040000,
+  SORT: 0x0080000,
+  FILESELECT: 0x0100000,
+  MULTISELECT: 0x0200000,
+  DONOTSPELLCHECK: 0x0400000,
+  DONOTSCROLL: 0x0800000,
+  COMB: 0x1000000,
+  RICHTEXT: 0x2000000,
+  RADIOSINUNISON: 0x2000000,
+  COMMITONSELCHANGE: 0x4000000
+};
+exports.AnnotationFieldFlag = AnnotationFieldFlag;
+const AnnotationBorderStyleType = {
+  SOLID: 1,
+  DASHED: 2,
+  BEVELED: 3,
+  INSET: 4,
+  UNDERLINE: 5
+};
+exports.AnnotationBorderStyleType = AnnotationBorderStyleType;
+const StreamType = {
+  UNKNOWN: "UNKNOWN",
+  FLATE: "FLATE",
+  LZW: "LZW",
+  DCT: "DCT",
+  JPX: "JPX",
+  JBIG: "JBIG",
+  A85: "A85",
+  AHX: "AHX",
+  CCF: "CCF",
+  RLX: "RLX"
+};
+exports.StreamType = StreamType;
+const FontType = {
+  UNKNOWN: "UNKNOWN",
+  TYPE1: "TYPE1",
+  TYPE1C: "TYPE1C",
+  CIDFONTTYPE0: "CIDFONTTYPE0",
+  CIDFONTTYPE0C: "CIDFONTTYPE0C",
+  TRUETYPE: "TRUETYPE",
+  CIDFONTTYPE2: "CIDFONTTYPE2",
+  TYPE3: "TYPE3",
+  OPENTYPE: "OPENTYPE",
+  TYPE0: "TYPE0",
+  MMTYPE1: "MMTYPE1"
+};
+exports.FontType = FontType;
+const VerbosityLevel = {
+  ERRORS: 0,
+  WARNINGS: 1,
+  INFOS: 5
+};
+exports.VerbosityLevel = VerbosityLevel;
+const CMapCompressionType = {
+  NONE: 0,
+  BINARY: 1,
+  STREAM: 2
+};
+exports.CMapCompressionType = CMapCompressionType;
+const 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,
+  beginAnnotations: 78,
+  endAnnotations: 79,
+  beginAnnotation: 80,
+  endAnnotation: 81,
+  paintJpegXObject: 82,
+  paintImageMaskXObject: 83,
+  paintImageMaskXObjectGroup: 84,
+  paintImageXObject: 85,
+  paintInlineImageXObject: 86,
+  paintInlineImageXObjectGroup: 87,
+  paintImageXObjectRepeat: 88,
+  paintImageMaskXObjectRepeat: 89,
+  paintSolidColorImageMask: 90,
+  constructPath: 91
+};
+exports.OPS = OPS;
+const UNSUPPORTED_FEATURES = {
+  unknown: "unknown",
+  forms: "forms",
+  javaScript: "javaScript",
+  smask: "smask",
+  shadingPattern: "shadingPattern",
+  font: "font",
+  errorTilingPattern: "errorTilingPattern",
+  errorExtGState: "errorExtGState",
+  errorXObject: "errorXObject",
+  errorFontLoadType3: "errorFontLoadType3",
+  errorFontState: "errorFontState",
+  errorFontMissing: "errorFontMissing",
+  errorFontTranslate: "errorFontTranslate",
+  errorColorSpace: "errorColorSpace",
+  errorOperatorList: "errorOperatorList",
+  errorFontToUnicode: "errorFontToUnicode",
+  errorFontLoadNative: "errorFontLoadNative",
+  errorFontGetPath: "errorFontGetPath"
+};
+exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;
+const PasswordResponses = {
+  NEED_PASSWORD: 1,
+  INCORRECT_PASSWORD: 2
+};
+exports.PasswordResponses = PasswordResponses;
+let verbosity = VerbosityLevel.WARNINGS;
 
-      const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);
-      messageHandler.postMessageTransfers = worker.postMessageTransfers;
-      const transport = new WorkerTransport(messageHandler, task, networkStream, params);
-      task._transport = transport;
-      messageHandler.send("Ready", null);
-    });
-  }).catch(task._capability.reject);
-  return task;
+function setVerbosityLevel(level) {
+  if (Number.isInteger(level)) {
+    verbosity = level;
+  }
 }
 
-function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
-  if (worker.destroyed) {
-    return Promise.reject(new Error("Worker was destroyed"));
+function getVerbosityLevel() {
+  return verbosity;
+}
+
+function info(msg) {
+  if (verbosity >= VerbosityLevel.INFOS) {
+    console.log(`Info: ${msg}`);
   }
+}
 
-  if (pdfDataRangeTransport) {
-    source.length = pdfDataRangeTransport.length;
-    source.initialData = pdfDataRangeTransport.initialData;
-    source.progressiveDone = pdfDataRangeTransport.progressiveDone;
+function warn(msg) {
+  if (verbosity >= VerbosityLevel.WARNINGS) {
+    console.log(`Warning: ${msg}`);
   }
+}
 
-  return worker.messageHandler.sendWithPromise("GetDocRequest", {
-    docId,
-    apiVersion: '2.4.456',
-    source: {
-      data: source.data,
-      url: source.url,
-      password: source.password,
-      disableAutoFetch: source.disableAutoFetch,
-      rangeChunkSize: source.rangeChunkSize,
-      length: source.length
-    },
-    maxImageSize: source.maxImageSize,
-    disableFontFace: source.disableFontFace,
-    disableCreateObjectURL: source.disableCreateObjectURL,
-    postMessageTransfers: worker.postMessageTransfers,
-    docBaseUrl: source.docBaseUrl,
-    nativeImageDecoderSupport: source.nativeImageDecoderSupport,
-    ignoreErrors: source.ignoreErrors,
-    isEvalSupported: source.isEvalSupported
-  }).then(function (workerId) {
-    if (worker.destroyed) {
-      throw new Error("Worker was destroyed");
-    }
+function unreachable(msg) {
+  throw new Error(msg);
+}
 
-    return workerId;
-  });
+function assert(cond, msg) {
+  if (!cond) {
+    unreachable(msg);
+  }
 }
 
-const PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {
-  let nextDocumentId = 0;
+function isSameOrigin(baseUrl, otherUrl) {
+  let base;
 
-  class PDFDocumentLoadingTask {
-    constructor() {
-      this._capability = (0, _util.createPromiseCapability)();
-      this._transport = null;
-      this._worker = null;
-      this.docId = "d" + nextDocumentId++;
-      this.destroyed = false;
-      this.onPassword = null;
-      this.onProgress = null;
-      this.onUnsupportedFeature = null;
-    }
+  try {
+    base = new URL(baseUrl);
 
-    get promise() {
-      return this._capability.promise;
+    if (!base.origin || base.origin === "null") {
+      return false;
     }
+  } catch (e) {
+    return false;
+  }
 
-    destroy() {
-      this.destroyed = true;
-      const transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy();
-      return transportDestroyed.then(() => {
-        this._transport = null;
+  const other = new URL(otherUrl, base);
+  return base.origin === other.origin;
+}
 
-        if (this._worker) {
-          this._worker.destroy();
+function _isValidProtocol(url) {
+  if (!url) {
+    return false;
+  }
 
-          this._worker = null;
-        }
-      });
+  switch (url.protocol) {
+    case "http:":
+    case "https:":
+    case "ftp:":
+    case "mailto:":
+    case "tel:":
+      return true;
+
+    default:
+      return false;
+  }
+}
+
+function createValidAbsoluteUrl(url, baseUrl) {
+  if (!url) {
+    return null;
+  }
+
+  try {
+    const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);
+
+    if (_isValidProtocol(absoluteUrl)) {
+      return absoluteUrl;
     }
+  } catch (ex) {}
+
+  return null;
+}
+
+function shadow(obj, prop, value) {
+  Object.defineProperty(obj, prop, {
+    value,
+    enumerable: true,
+    configurable: true,
+    writable: false
+  });
+  return value;
+}
 
-    then(onFulfilled, onRejected) {
-      throw new Error("Removed API method: " + "PDFDocumentLoadingTask.then, use the `promise` getter 
instead.");
+const BaseException = function BaseExceptionClosure() {
+  function BaseException(message) {
+    if (this.constructor === BaseException) {
+      unreachable("Cannot initialize BaseException.");
     }
 
+    this.message = message;
+    this.name = this.constructor.name;
   }
 
-  return PDFDocumentLoadingTask;
+  BaseException.prototype = new Error();
+  BaseException.constructor = BaseException;
+  return BaseException;
 }();
 
-class PDFDataRangeTransport {
-  constructor(length, initialData, progressiveDone = false) {
-    this.length = length;
-    this.initialData = initialData;
-    this.progressiveDone = progressiveDone;
-    this._rangeListeners = [];
-    this._progressListeners = [];
-    this._progressiveReadListeners = [];
-    this._progressiveDoneListeners = [];
-    this._readyCapability = (0, _util.createPromiseCapability)();
-  }
+exports.BaseException = BaseException;
 
-  addRangeListener(listener) {
-    this._rangeListeners.push(listener);
+class PasswordException extends BaseException {
+  constructor(msg, code) {
+    super(msg);
+    this.code = code;
   }
 
-  addProgressListener(listener) {
-    this._progressListeners.push(listener);
-  }
+}
 
-  addProgressiveReadListener(listener) {
-    this._progressiveReadListeners.push(listener);
-  }
+exports.PasswordException = PasswordException;
 
-  addProgressiveDoneListener(listener) {
-    this._progressiveDoneListeners.push(listener);
+class UnknownErrorException extends BaseException {
+  constructor(msg, details) {
+    super(msg);
+    this.details = details;
   }
 
-  onDataRange(begin, chunk) {
-    for (const listener of this._rangeListeners) {
-      listener(begin, chunk);
-    }
-  }
+}
 
-  onDataProgress(loaded, total) {
-    this._readyCapability.promise.then(() => {
-      for (const listener of this._progressListeners) {
-        listener(loaded, total);
-      }
-    });
-  }
+exports.UnknownErrorException = UnknownErrorException;
 
-  onDataProgressiveRead(chunk) {
-    this._readyCapability.promise.then(() => {
-      for (const listener of this._progressiveReadListeners) {
-        listener(chunk);
-      }
-    });
-  }
+class InvalidPDFException extends BaseException {}
 
-  onDataProgressiveDone() {
-    this._readyCapability.promise.then(() => {
-      for (const listener of this._progressiveDoneListeners) {
-        listener();
-      }
-    });
-  }
+exports.InvalidPDFException = InvalidPDFException;
 
-  transportReady() {
-    this._readyCapability.resolve();
-  }
+class MissingPDFException extends BaseException {}
 
-  requestDataRange(begin, end) {
-    (0, _util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange");
-  }
+exports.MissingPDFException = MissingPDFException;
 
-  abort() {}
+class UnexpectedResponseException extends BaseException {
+  constructor(msg, status) {
+    super(msg);
+    this.status = status;
+  }
 
 }
 
-exports.PDFDataRangeTransport = PDFDataRangeTransport;
-
-class PDFDocumentProxy {
-  constructor(pdfInfo, transport) {
-    this._pdfInfo = pdfInfo;
-    this._transport = transport;
-  }
+exports.UnexpectedResponseException = UnexpectedResponseException;
 
-  get numPages() {
-    return this._pdfInfo.numPages;
-  }
+class FormatError extends BaseException {}
 
-  get fingerprint() {
-    return this._pdfInfo.fingerprint;
-  }
+exports.FormatError = FormatError;
 
-  getPage(pageNumber) {
-    return this._transport.getPage(pageNumber);
-  }
+class AbortException extends BaseException {}
 
-  getPageIndex(ref) {
-    return this._transport.getPageIndex(ref);
-  }
+exports.AbortException = AbortException;
+const NullCharactersRegExp = /\x00/g;
 
-  getDestinations() {
-    return this._transport.getDestinations();
+function removeNullCharacters(str) {
+  if (typeof str !== "string") {
+    warn("The argument for removeNullCharacters must be a string.");
+    return str;
   }
 
-  getDestination(id) {
-    return this._transport.getDestination(id);
-  }
+  return str.replace(NullCharactersRegExp, "");
+}
 
-  getPageLabels() {
-    return this._transport.getPageLabels();
-  }
+function bytesToString(bytes) {
+  assert(bytes !== null && typeof bytes === "object" && bytes.length !== undefined, "Invalid argument for 
bytesToString");
+  const length = bytes.length;
+  const MAX_ARGUMENT_COUNT = 8192;
 
-  getPageLayout() {
-    return this._transport.getPageLayout();
+  if (length < MAX_ARGUMENT_COUNT) {
+    return String.fromCharCode.apply(null, bytes);
   }
 
-  getPageMode() {
-    return this._transport.getPageMode();
-  }
+  const strBuf = [];
 
-  getViewerPreferences() {
-    return this._transport.getViewerPreferences();
+  for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {
+    const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);
+    const chunk = bytes.subarray(i, chunkEnd);
+    strBuf.push(String.fromCharCode.apply(null, chunk));
   }
 
-  getOpenAction() {
-    return this._transport.getOpenAction();
-  }
+  return strBuf.join("");
+}
 
-  getOpenActionDestination() {
-    (0, _display_utils.deprecated)("getOpenActionDestination, use getOpenAction instead.");
-    return this.getOpenAction().then(function (openAction) {
-      return openAction && openAction.dest ? openAction.dest : null;
-    });
-  }
+function stringToBytes(str) {
+  assert(typeof str === "string", "Invalid argument for stringToBytes");
+  const length = str.length;
+  const bytes = new Uint8Array(length);
 
-  getAttachments() {
-    return this._transport.getAttachments();
+  for (let i = 0; i < length; ++i) {
+    bytes[i] = str.charCodeAt(i) & 0xff;
   }
 
-  getJavaScript() {
-    return this._transport.getJavaScript();
-  }
+  return bytes;
+}
 
-  getOutline() {
-    return this._transport.getOutline();
+function arrayByteLength(arr) {
+  if (arr.length !== undefined) {
+    return arr.length;
   }
 
-  getPermissions() {
-    return this._transport.getPermissions();
-  }
+  assert(arr.byteLength !== undefined, "arrayByteLength - invalid argument.");
+  return arr.byteLength;
+}
 
-  getMetadata() {
-    return this._transport.getMetadata();
-  }
+function arraysToBytes(arr) {
+  const length = arr.length;
 
-  getData() {
-    return this._transport.getData();
+  if (length === 1 && arr[0] instanceof Uint8Array) {
+    return arr[0];
   }
 
-  getDownloadInfo() {
-    return this._transport.downloadInfoCapability.promise;
-  }
+  let resultLength = 0;
 
-  getStats() {
-    return this._transport.getStats();
+  for (let i = 0; i < length; i++) {
+    resultLength += arrayByteLength(arr[i]);
   }
 
-  cleanup() {
-    return this._transport.startCleanup();
-  }
+  let pos = 0;
+  const data = new Uint8Array(resultLength);
 
-  destroy() {
-    return this.loadingTask.destroy();
-  }
+  for (let i = 0; i < length; i++) {
+    let item = arr[i];
 
-  get loadingParams() {
-    return this._transport.loadingParams;
-  }
+    if (!(item instanceof Uint8Array)) {
+      if (typeof item === "string") {
+        item = stringToBytes(item);
+      } else {
+        item = new Uint8Array(item);
+      }
+    }
 
-  get loadingTask() {
-    return this._transport.loadingTask;
+    const itemLength = item.byteLength;
+    data.set(item, pos);
+    pos += itemLength;
   }
 
+  return data;
 }
 
-exports.PDFDocumentProxy = PDFDocumentProxy;
-
-class PDFPageProxy {
-  constructor(pageIndex, pageInfo, transport, pdfBug = false) {
-    this._pageIndex = pageIndex;
-    this._pageInfo = pageInfo;
-    this._transport = transport;
-    this._stats = pdfBug ? new _display_utils.StatTimer() : null;
-    this._pdfBug = pdfBug;
-    this.commonObjs = transport.commonObjs;
-    this.objs = new PDFObjects();
-    this.cleanupAfterRender = false;
-    this.pendingCleanup = false;
-    this.intentStates = Object.create(null);
-    this.destroyed = false;
-  }
+function string32(value) {
+  return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);
+}
 
-  get pageNumber() {
-    return this._pageIndex + 1;
-  }
+function isLittleEndian() {
+  const buffer8 = new Uint8Array(4);
+  buffer8[0] = 1;
+  const view32 = new Uint32Array(buffer8.buffer, 0, 1);
+  return view32[0] === 1;
+}
 
-  get rotate() {
-    return this._pageInfo.rotate;
+const IsLittleEndianCached = {
+  get value() {
+    return shadow(this, "value", isLittleEndian());
   }
 
-  get ref() {
-    return this._pageInfo.ref;
-  }
+};
+exports.IsLittleEndianCached = IsLittleEndianCached;
 
-  get userUnit() {
-    return this._pageInfo.userUnit;
+function isEvalSupported() {
+  try {
+    new Function("");
+    return true;
+  } catch (e) {
+    return false;
   }
+}
 
-  get view() {
-    return this._pageInfo.view;
+const IsEvalSupportedCached = {
+  get value() {
+    return shadow(this, "value", isEvalSupported());
   }
 
-  getViewport({
-    scale,
-    rotation = this.rotate,
-    offsetX = 0,
-    offsetY = 0,
-    dontFlip = false
-  } = {}) {
-    if (arguments.length > 1 || typeof arguments[0] === "number") {
-      throw new Error("PDFPageProxy.getViewport is called with obsolete arguments.");
-    }
+};
+exports.IsEvalSupportedCached = IsEvalSupportedCached;
+const rgbBuf = ["rgb(", 0, ",", 0, ",", 0, ")"];
 
-    return new _display_utils.PageViewport({
-      viewBox: this.view,
-      scale,
-      rotation,
-      offsetX,
-      offsetY,
-      dontFlip
-    });
+class Util {
+  static makeCssRgb(r, g, b) {
+    rgbBuf[1] = r;
+    rgbBuf[3] = g;
+    rgbBuf[5] = b;
+    return rgbBuf.join("");
   }
 
-  getAnnotations({
-    intent = null
-  } = {}) {
-    if (!this.annotationsPromise || this.annotationsIntent !== intent) {
-      this.annotationsPromise = this._transport.getAnnotations(this._pageIndex, intent);
-      this.annotationsIntent = intent;
-    }
-
-    return this.annotationsPromise;
+  static transform(m1, m2) {
+    return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], 
m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];
   }
 
-  render({
-    canvasContext,
-    viewport,
-    intent = "display",
-    enableWebGL = false,
-    renderInteractiveForms = false,
-    transform = null,
-    imageLayer = null,
-    canvasFactory = null,
-    background = null
-  }) {
-    if (this._stats) {
-      this._stats.time("Overall");
-    }
+  static applyTransform(p, m) {
+    const xt = p[0] * m[0] + p[1] * m[2] + m[4];
+    const yt = p[0] * m[1] + p[1] * m[3] + m[5];
+    return [xt, yt];
+  }
 
-    const renderingIntent = intent === "print" ? "print" : "display";
-    this.pendingCleanup = false;
+  static applyInverseTransform(p, m) {
+    const d = m[0] * m[3] - m[1] * m[2];
+    const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;
+    const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;
+    return [xt, yt];
+  }
 
-    if (!this.intentStates[renderingIntent]) {
-      this.intentStates[renderingIntent] = Object.create(null);
-    }
+  static getAxialAlignedBoundingBox(r, m) {
+    const p1 = Util.applyTransform(r, m);
+    const p2 = Util.applyTransform(r.slice(2, 4), m);
+    const p3 = Util.applyTransform([r[0], r[3]], m);
+    const p4 = Util.applyTransform([r[2], r[1]], m);
+    return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], 
p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];
+  }
 
-    const intentState = this.intentStates[renderingIntent];
+  static inverseTransform(m) {
+    const d = m[0] * m[3] - m[1] * m[2];
+    return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * 
m[0]) / d];
+  }
 
-    if (intentState.streamReaderCancelTimeout) {
-      clearTimeout(intentState.streamReaderCancelTimeout);
-      intentState.streamReaderCancelTimeout = null;
-    }
+  static apply3dTransform(m, v) {
+    return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + 
m[7] * v[1] + m[8] * v[2]];
+  }
 
-    const canvasFactoryInstance = canvasFactory || new _display_utils.DOMCanvasFactory();
-    const webGLContext = new _webgl.WebGLContext({
-      enable: enableWebGL
-    });
+  static singularValueDecompose2dScale(m) {
+    const transpose = [m[0], m[2], m[1], m[3]];
+    const a = m[0] * transpose[0] + m[1] * transpose[2];
+    const b = m[0] * transpose[1] + m[1] * transpose[3];
+    const c = m[2] * transpose[0] + m[3] * transpose[2];
+    const d = m[2] * transpose[1] + m[3] * transpose[3];
+    const first = (a + d) / 2;
+    const second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;
+    const sx = first + second || 1;
+    const sy = first - second || 1;
+    return [Math.sqrt(sx), Math.sqrt(sy)];
+  }
 
-    if (!intentState.displayReadyCapability) {
-      intentState.displayReadyCapability = (0, _util.createPromiseCapability)();
-      intentState.operatorList = {
-        fnArray: [],
-        argsArray: [],
-        lastChunk: false
-      };
+  static normalizeRect(rect) {
+    const r = rect.slice(0);
 
-      if (this._stats) {
-        this._stats.time("Page Request");
-      }
+    if (rect[0] > rect[2]) {
+      r[0] = rect[2];
+      r[2] = rect[0];
+    }
 
-      this._pumpOperatorList({
-        pageIndex: this._pageIndex,
-        intent: renderingIntent,
-        renderInteractiveForms: renderInteractiveForms === true
-      });
+    if (rect[1] > rect[3]) {
+      r[1] = rect[3];
+      r[3] = rect[1];
     }
 
-    const complete = error => {
-      const i = intentState.renderTasks.indexOf(internalRenderTask);
+    return r;
+  }
 
-      if (i >= 0) {
-        intentState.renderTasks.splice(i, 1);
-      }
+  static intersect(rect1, rect2) {
+    function compare(a, b) {
+      return a - b;
+    }
 
-      if (this.cleanupAfterRender || renderingIntent === "print") {
-        this.pendingCleanup = true;
-      }
+    const orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare);
+    const orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare);
+    const result = [];
+    rect1 = Util.normalizeRect(rect1);
+    rect2 = Util.normalizeRect(rect2);
 
-      this._tryCleanup();
+    if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === 
rect1[0]) {
+      result[0] = orderedX[1];
+      result[2] = orderedX[2];
+    } else {
+      return null;
+    }
 
-      if (error) {
-        internalRenderTask.capability.reject(error);
+    if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === 
rect1[1]) {
+      result[1] = orderedY[1];
+      result[3] = orderedY[2];
+    } else {
+      return null;
+    }
 
-        this._abortOperatorList({
-          intentState,
-          reason: error
-        });
-      } else {
-        internalRenderTask.capability.resolve();
-      }
+    return result;
+  }
 
-      if (this._stats) {
-        this._stats.timeEnd("Rendering");
+}
 
-        this._stats.timeEnd("Overall");
-      }
-    };
+exports.Util = Util;
+const PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 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, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 
0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 
0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC];
 
-    const internalRenderTask = new InternalRenderTask({
-      callback: complete,
-      params: {
-        canvasContext,
-        viewport,
-        transform,
-        imageLayer,
-        background
-      },
-      objs: this.objs,
-      commonObjs: this.commonObjs,
-      operatorList: intentState.operatorList,
-      pageIndex: this._pageIndex,
-      canvasFactory: canvasFactoryInstance,
-      webGLContext,
-      useRequestAnimationFrame: renderingIntent !== "print",
-      pdfBug: this._pdfBug
-    });
+function stringToPDFString(str) {
+  const length = str.length,
+        strBuf = [];
 
-    if (!intentState.renderTasks) {
-      intentState.renderTasks = [];
+  if (str[0] === "\xFE" && str[1] === "\xFF") {
+    for (let i = 2; i < length; i += 2) {
+      strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));
+    }
+  } else if (str[0] === "\xFF" && str[1] === "\xFE") {
+    for (let i = 2; i < length; i += 2) {
+      strBuf.push(String.fromCharCode(str.charCodeAt(i + 1) << 8 | str.charCodeAt(i)));
+    }
+  } else {
+    for (let i = 0; i < length; ++i) {
+      const code = PDFStringTranslateTable[str.charCodeAt(i)];
+      strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));
     }
+  }
 
-    intentState.renderTasks.push(internalRenderTask);
-    const renderTask = internalRenderTask.task;
-    intentState.displayReadyCapability.promise.then(transparency => {
-      if (this.pendingCleanup) {
-        complete();
-        return;
-      }
+  return strBuf.join("");
+}
 
-      if (this._stats) {
-        this._stats.time("Rendering");
-      }
+function stringToUTF8String(str) {
+  return decodeURIComponent(escape(str));
+}
 
-      internalRenderTask.initializeGraphics(transparency);
-      internalRenderTask.operatorListChanged();
-    }).catch(complete);
-    return renderTask;
+function utf8StringToString(str) {
+  return unescape(encodeURIComponent(str));
+}
+
+function isEmptyObj(obj) {
+  for (const key in obj) {
+    return false;
   }
 
-  getOperatorList() {
-    function operatorListChanged() {
-      if (intentState.operatorList.lastChunk) {
-        intentState.opListReadCapability.resolve(intentState.operatorList);
-        const i = intentState.renderTasks.indexOf(opListTask);
+  return true;
+}
 
-        if (i >= 0) {
-          intentState.renderTasks.splice(i, 1);
-        }
-      }
-    }
+function isBool(v) {
+  return typeof v === "boolean";
+}
 
-    const renderingIntent = "oplist";
+function isNum(v) {
+  return typeof v === "number";
+}
 
-    if (!this.intentStates[renderingIntent]) {
-      this.intentStates[renderingIntent] = Object.create(null);
-    }
+function isString(v) {
+  return typeof v === "string";
+}
 
-    const intentState = this.intentStates[renderingIntent];
-    let opListTask;
+function isArrayBuffer(v) {
+  return typeof v === "object" && v !== null && v.byteLength !== undefined;
+}
 
-    if (!intentState.opListReadCapability) {
-      opListTask = {};
-      opListTask.operatorListChanged = operatorListChanged;
-      intentState.opListReadCapability = (0, _util.createPromiseCapability)();
-      intentState.renderTasks = [];
-      intentState.renderTasks.push(opListTask);
-      intentState.operatorList = {
-        fnArray: [],
-        argsArray: [],
-        lastChunk: false
-      };
+function isArrayEqual(arr1, arr2) {
+  if (arr1.length !== arr2.length) {
+    return false;
+  }
 
-      if (this._stats) {
-        this._stats.time("Page Request");
-      }
+  return arr1.every(function (element, index) {
+    return element === arr2[index];
+  });
+}
 
-      this._pumpOperatorList({
-        pageIndex: this._pageIndex,
-        intent: renderingIntent
-      });
+function createPromiseCapability() {
+  const capability = Object.create(null);
+  let isSettled = false;
+  Object.defineProperty(capability, "settled", {
+    get() {
+      return isSettled;
     }
 
-    return intentState.opListReadCapability.promise;
-  }
-
-  streamTextContent({
-    normalizeWhitespace = false,
-    disableCombineTextItems = false
-  } = {}) {
-    const TEXT_CONTENT_CHUNK_SIZE = 100;
-    return this._transport.messageHandler.sendWithStream("GetTextContent", {
-      pageIndex: this._pageIndex,
-      normalizeWhitespace: normalizeWhitespace === true,
-      combineTextItems: disableCombineTextItems !== true
-    }, {
-      highWaterMark: TEXT_CONTENT_CHUNK_SIZE,
-
-      size(textContent) {
-        return textContent.items.length;
-      }
+  });
+  capability.promise = new Promise(function (resolve, reject) {
+    capability.resolve = function (data) {
+      isSettled = true;
+      resolve(data);
+    };
 
-    });
-  }
+    capability.reject = function (reason) {
+      isSettled = true;
+      reject(reason);
+    };
+  });
+  return capability;
+}
 
-  getTextContent(params = {}) {
-    const readableStream = this.streamTextContent(params);
-    return new Promise(function (resolve, reject) {
-      function pump() {
-        reader.read().then(function ({
-          value,
-          done
-        }) {
-          if (done) {
-            resolve(textContent);
-            return;
-          }
+const createObjectURL = function createObjectURLClosure() {
+  const digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
+  return function createObjectURL(data, contentType, forceDataSchema = false) {
+    if (!forceDataSchema && URL.createObjectURL) {
+      const blob = new Blob([data], {
+        type: contentType
+      });
+      return URL.createObjectURL(blob);
+    }
 
-          Object.assign(textContent.styles, value.styles);
-          textContent.items.push(...value.items);
-          pump();
-        }, reject);
-      }
+    let buffer = `data:${contentType};base64,`;
 
-      const reader = readableStream.getReader();
-      const textContent = {
-        items: [],
-        styles: Object.create(null)
-      };
-      pump();
-    });
-  }
+    for (let i = 0, ii = data.length; i < ii; i += 3) {
+      const b1 = data[i] & 0xff;
+      const b2 = data[i + 1] & 0xff;
+      const b3 = data[i + 2] & 0xff;
+      const d1 = b1 >> 2,
+            d2 = (b1 & 3) << 4 | b2 >> 4;
+      const d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64;
+      const d4 = i + 2 < ii ? b3 & 0x3f : 64;
+      buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];
+    }
 
-  _destroy() {
-    this.destroyed = true;
-    this._transport.pageCache[this._pageIndex] = null;
-    const waitOn = [];
-    Object.keys(this.intentStates).forEach(intent => {
-      const intentState = this.intentStates[intent];
+    return buffer;
+  };
+}();
 
-      this._abortOperatorList({
-        intentState,
-        reason: new Error("Page was destroyed."),
-        force: true
-      });
+exports.createObjectURL = createObjectURL;
 
-      if (intent === "oplist") {
-        return;
-      }
+/***/ }),
+/* 3 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
 
-      intentState.renderTasks.forEach(function (renderTask) {
-        const renderCompleted = renderTask.capability.promise.catch(function () {});
-        waitOn.push(renderCompleted);
-        renderTask.cancel();
-      });
-    });
-    this.objs.clear();
-    this.annotationsPromise = null;
-    this.pendingCleanup = false;
-    return Promise.all(waitOn);
-  }
+"use strict";
 
-  cleanup(resetStats = false) {
-    this.pendingCleanup = true;
-    return this._tryCleanup(resetStats);
-  }
 
-  _tryCleanup(resetStats = false) {
-    if (!this.pendingCleanup || Object.keys(this.intentStates).some(intent => {
-      const intentState = this.intentStates[intent];
-      return intentState.renderTasks.length !== 0 || !intentState.operatorList.lastChunk;
-    })) {
-      return false;
-    }
+var _is_node = __w_pdfjs_require__(4);
 
-    Object.keys(this.intentStates).forEach(intent => {
-      delete this.intentStates[intent];
-    });
-    this.objs.clear();
-    this.annotationsPromise = null;
+;
 
-    if (resetStats && this._stats) {
-      this._stats = new _display_utils.StatTimer();
-    }
+/***/ }),
+/* 4 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
 
-    this.pendingCleanup = false;
-    return true;
-  }
+"use strict";
 
-  _startRenderPage(transparency, intent) {
-    const intentState = this.intentStates[intent];
 
-    if (!intentState) {
-      return;
-    }
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.isNodeJS = void 0;
+const isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw 
&& !process.versions.electron;
+exports.isNodeJS = isNodeJS;
 
-    if (this._stats) {
-      this._stats.timeEnd("Page Request");
-    }
+/***/ }),
+/* 5 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
 
-    if (intentState.displayReadyCapability) {
-      intentState.displayReadyCapability.resolve(transparency);
-    }
-  }
+"use strict";
 
-  _renderPageChunk(operatorListChunk, intentState) {
-    for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {
-      intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);
-      intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);
-    }
 
-    intentState.operatorList.lastChunk = operatorListChunk.lastChunk;
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.getDocument = getDocument;
+exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;
+exports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = 
exports.PDFDataRangeTransport = exports.LoopbackPort = void 0;
 
-    for (let i = 0; i < intentState.renderTasks.length; i++) {
-      intentState.renderTasks[i].operatorListChanged();
-    }
+var _util = __w_pdfjs_require__(2);
 
-    if (operatorListChunk.lastChunk) {
-      this._tryCleanup();
-    }
-  }
+var _display_utils = __w_pdfjs_require__(1);
 
-  _pumpOperatorList(args) {
-    (0, _util.assert)(args.intent, 'PDFPageProxy._pumpOperatorList: Expected "intent" argument.');
+var _font_loader = __w_pdfjs_require__(6);
 
-    const readableStream = this._transport.messageHandler.sendWithStream("GetOperatorList", args);
+var _api_compatibility = __w_pdfjs_require__(7);
 
-    const reader = readableStream.getReader();
-    const intentState = this.intentStates[args.intent];
-    intentState.streamReader = reader;
+var _canvas = __w_pdfjs_require__(8);
 
-    const pump = () => {
-      reader.read().then(({
-        value,
-        done
-      }) => {
-        if (done) {
-          intentState.streamReader = null;
-          return;
-        }
+var _worker_options = __w_pdfjs_require__(10);
 
-        if (this._transport.destroyed) {
-          return;
-        }
+var _is_node = __w_pdfjs_require__(4);
 
-        this._renderPageChunk(value, intentState);
+var _message_handler = __w_pdfjs_require__(11);
 
-        pump();
-      }, reason => {
-        intentState.streamReader = null;
+var _metadata = __w_pdfjs_require__(12);
 
-        if (this._transport.destroyed) {
-          return;
-        }
+var _transport_stream = __w_pdfjs_require__(14);
 
-        if (intentState.operatorList) {
-          intentState.operatorList.lastChunk = true;
+var _webgl = __w_pdfjs_require__(15);
 
-          for (let i = 0; i < intentState.renderTasks.length; i++) {
-            intentState.renderTasks[i].operatorListChanged();
-          }
+const DEFAULT_RANGE_CHUNK_SIZE = 65536;
+const RENDERING_CANCELLED_TIMEOUT = 100;
+let createPDFNetworkStream;
 
-          this._tryCleanup();
-        }
+function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {
+  createPDFNetworkStream = pdfNetworkStreamFactory;
+}
 
-        if (intentState.displayReadyCapability) {
-          intentState.displayReadyCapability.reject(reason);
-        } else if (intentState.opListReadCapability) {
-          intentState.opListReadCapability.reject(reason);
-        } else {
-          throw reason;
-        }
-      });
+function getDocument(src) {
+  const task = new PDFDocumentLoadingTask();
+  let source;
+
+  if (typeof src === "string") {
+    source = {
+      url: src
+    };
+  } else if ((0, _util.isArrayBuffer)(src)) {
+    source = {
+      data: src
+    };
+  } else if (src instanceof PDFDataRangeTransport) {
+    source = {
+      range: src
     };
+  } else {
+    if (typeof src !== "object") {
+      throw new Error("Invalid parameter in getDocument, " + "need either Uint8Array, string or a parameter 
object");
+    }
 
-    pump();
+    if (!src.url && !src.data && !src.range) {
+      throw new Error("Invalid parameter object: need either .data, .range or .url");
+    }
+
+    source = src;
   }
 
-  _abortOperatorList({
-    intentState,
-    reason,
-    force = false
-  }) {
-    (0, _util.assert)(reason instanceof Error || typeof reason === "object" && reason !== null, 
'PDFPageProxy._abortOperatorList: Expected "reason" argument.');
+  const params = Object.create(null);
+  let rangeTransport = null,
+      worker = null;
 
-    if (!intentState.streamReader) {
-      return;
-    }
+  for (const key in source) {
+    if (key === "url" && typeof window !== "undefined") {
+      params[key] = new URL(source[key], window.location).href;
+      continue;
+    } else if (key === "range") {
+      rangeTransport = source[key];
+      continue;
+    } else if (key === "worker") {
+      worker = source[key];
+      continue;
+    } else if (key === "data" && !(source[key] instanceof Uint8Array)) {
+      const pdfBytes = source[key];
 
-    if (!force) {
-      if (intentState.renderTasks.length !== 0) {
-        return;
+      if (typeof pdfBytes === "string") {
+        params[key] = (0, _util.stringToBytes)(pdfBytes);
+      } else if (typeof pdfBytes === "object" && pdfBytes !== null && !isNaN(pdfBytes.length)) {
+        params[key] = new Uint8Array(pdfBytes);
+      } else if ((0, _util.isArrayBuffer)(pdfBytes)) {
+        params[key] = new Uint8Array(pdfBytes);
+      } else {
+        throw new Error("Invalid PDF binary data: either typed array, " + "string or array-like object is 
expected in the " + "data property.");
       }
 
-      if (reason instanceof _display_utils.RenderingCancelledException) {
-        intentState.streamReaderCancelTimeout = setTimeout(() => {
-          this._abortOperatorList({
-            intentState,
-            reason,
-            force: true
-          });
-
-          intentState.streamReaderCancelTimeout = null;
-        }, RENDERING_CANCELLED_TIMEOUT);
-        return;
-      }
+      continue;
     }
 
-    intentState.streamReader.cancel(new _util.AbortException(reason && reason.message));
-    intentState.streamReader = null;
+    params[key] = source[key];
+  }
 
-    if (this._transport.destroyed) {
-      return;
-    }
+  params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;
+  params.CMapReaderFactory = params.CMapReaderFactory || _display_utils.DOMCMapReaderFactory;
+  params.ignoreErrors = params.stopAtErrors !== true;
+  params.fontExtraProperties = params.fontExtraProperties === true;
+  params.pdfBug = params.pdfBug === true;
 
-    Object.keys(this.intentStates).some(intent => {
-      if (this.intentStates[intent] === intentState) {
-        delete this.intentStates[intent];
-        return true;
-      }
+  if (!Number.isInteger(params.maxImageSize)) {
+    params.maxImageSize = -1;
+  }
 
-      return false;
-    });
-    this.cleanup();
+  if (typeof params.isEvalSupported !== "boolean") {
+    params.isEvalSupported = true;
   }
 
-  get stats() {
-    return this._stats;
+  if (typeof params.disableFontFace !== "boolean") {
+    params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;
   }
 
-}
+  if (typeof params.disableRange !== "boolean") {
+    params.disableRange = false;
+  }
 
-exports.PDFPageProxy = PDFPageProxy;
+  if (typeof params.disableStream !== "boolean") {
+    params.disableStream = false;
+  }
 
-class LoopbackPort {
-  constructor(defer = true) {
-    this._listeners = [];
-    this._defer = defer;
-    this._deferred = Promise.resolve(undefined);
+  if (typeof params.disableAutoFetch !== "boolean") {
+    params.disableAutoFetch = false;
   }
 
-  postMessage(obj, transfers) {
-    function cloneValue(value) {
-      if (typeof value !== "object" || value === null) {
-        return value;
-      }
+  (0, _util.setVerbosityLevel)(params.verbosity);
 
-      if (cloned.has(value)) {
-        return cloned.get(value);
-      }
+  if (!worker) {
+    const workerParams = {
+      verbosity: params.verbosity,
+      port: _worker_options.GlobalWorkerOptions.workerPort
+    };
+    worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);
+    task._worker = worker;
+  }
 
-      let buffer, result;
+  const docId = task.docId;
+  worker.promise.then(function () {
+    if (task.destroyed) {
+      throw new Error("Loading aborted");
+    }
 
-      if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {
-        const transferable = transfers && transfers.includes(buffer);
+    const workerIdPromise = _fetchDocument(worker, params, rangeTransport, docId);
 
-        if (transferable) {
-          result = new value.constructor(buffer, value.byteOffset, value.byteLength);
-        } else {
-          result = new value.constructor(value);
-        }
+    const networkStreamPromise = new Promise(function (resolve) {
+      let networkStream;
 
-        cloned.set(value, result);
-        return result;
+      if (rangeTransport) {
+        networkStream = new _transport_stream.PDFDataTransportStream({
+          length: params.length,
+          initialData: params.initialData,
+          progressiveDone: params.progressiveDone,
+          disableRange: params.disableRange,
+          disableStream: params.disableStream
+        }, rangeTransport);
+      } else if (!params.data) {
+        networkStream = createPDFNetworkStream({
+          url: params.url,
+          length: params.length,
+          httpHeaders: params.httpHeaders,
+          withCredentials: params.withCredentials,
+          rangeChunkSize: params.rangeChunkSize,
+          disableRange: params.disableRange,
+          disableStream: params.disableStream
+        });
       }
 
-      result = Array.isArray(value) ? [] : {};
-      cloned.set(value, result);
+      resolve(networkStream);
+    });
+    return Promise.all([workerIdPromise, networkStreamPromise]).then(function ([workerId, networkStream]) {
+      if (task.destroyed) {
+        throw new Error("Loading aborted");
+      }
 
-      for (const i in value) {
-        let desc,
-            p = value;
+      const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);
+      messageHandler.postMessageTransfers = worker.postMessageTransfers;
+      const transport = new WorkerTransport(messageHandler, task, networkStream, params);
+      task._transport = transport;
+      messageHandler.send("Ready", null);
+    });
+  }).catch(task._capability.reject);
+  return task;
+}
 
-        while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {
-          p = Object.getPrototypeOf(p);
-        }
+function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
+  if (worker.destroyed) {
+    return Promise.reject(new Error("Worker was destroyed"));
+  }
 
-        if (typeof desc.value === "undefined") {
-          continue;
-        }
+  if (pdfDataRangeTransport) {
+    source.length = pdfDataRangeTransport.length;
+    source.initialData = pdfDataRangeTransport.initialData;
+    source.progressiveDone = pdfDataRangeTransport.progressiveDone;
+  }
 
-        if (typeof desc.value === "function") {
-          if (value.hasOwnProperty && value.hasOwnProperty(i)) {
-            throw new Error(`LoopbackPort.postMessage - cannot clone: ${value[i]}`);
-          }
+  return worker.messageHandler.sendWithPromise("GetDocRequest", {
+    docId,
+    apiVersion: '2.5.207',
+    source: {
+      data: source.data,
+      url: source.url,
+      password: source.password,
+      disableAutoFetch: source.disableAutoFetch,
+      rangeChunkSize: source.rangeChunkSize,
+      length: source.length
+    },
+    maxImageSize: source.maxImageSize,
+    disableFontFace: source.disableFontFace,
+    postMessageTransfers: worker.postMessageTransfers,
+    docBaseUrl: source.docBaseUrl,
+    ignoreErrors: source.ignoreErrors,
+    isEvalSupported: source.isEvalSupported,
+    fontExtraProperties: source.fontExtraProperties
+  }).then(function (workerId) {
+    if (worker.destroyed) {
+      throw new Error("Worker was destroyed");
+    }
 
-          continue;
-        }
+    return workerId;
+  });
+}
 
-        result[i] = cloneValue(desc.value);
-      }
+const PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {
+  let nextDocumentId = 0;
 
-      return result;
+  class PDFDocumentLoadingTask {
+    constructor() {
+      this._capability = (0, _util.createPromiseCapability)();
+      this._transport = null;
+      this._worker = null;
+      this.docId = "d" + nextDocumentId++;
+      this.destroyed = false;
+      this.onPassword = null;
+      this.onProgress = null;
+      this.onUnsupportedFeature = null;
     }
 
-    if (!this._defer) {
-      this._listeners.forEach(listener => {
-        listener.call(this, {
-          data: obj
-        });
-      });
-
-      return;
+    get promise() {
+      return this._capability.promise;
     }
 
-    const cloned = new WeakMap();
-    const e = {
-      data: cloneValue(obj)
-    };
+    destroy() {
+      this.destroyed = true;
+      const transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy();
+      return transportDestroyed.then(() => {
+        this._transport = null;
 
-    this._deferred.then(() => {
-      this._listeners.forEach(listener => {
-        listener.call(this, e);
+        if (this._worker) {
+          this._worker.destroy();
+
+          this._worker = null;
+        }
       });
-    });
-  }
+    }
 
-  addEventListener(name, listener) {
-    this._listeners.push(listener);
   }
 
-  removeEventListener(name, listener) {
-    const i = this._listeners.indexOf(listener);
+  return PDFDocumentLoadingTask;
+}();
 
-    this._listeners.splice(i, 1);
+class PDFDataRangeTransport {
+  constructor(length, initialData, progressiveDone = false) {
+    this.length = length;
+    this.initialData = initialData;
+    this.progressiveDone = progressiveDone;
+    this._rangeListeners = [];
+    this._progressListeners = [];
+    this._progressiveReadListeners = [];
+    this._progressiveDoneListeners = [];
+    this._readyCapability = (0, _util.createPromiseCapability)();
   }
 
-  terminate() {
-    this._listeners.length = 0;
+  addRangeListener(listener) {
+    this._rangeListeners.push(listener);
   }
 
-}
-
-exports.LoopbackPort = LoopbackPort;
+  addProgressListener(listener) {
+    this._progressListeners.push(listener);
+  }
 
-const PDFWorker = function PDFWorkerClosure() {
-  const pdfWorkerPorts = new WeakMap();
-  let isWorkerDisabled = false;
-  let fallbackWorkerSrc;
-  let nextFakeWorkerId = 0;
-  let fakeWorkerCapability;
+  addProgressiveReadListener(listener) {
+    this._progressiveReadListeners.push(listener);
+  }
 
-  if (_is_node.isNodeJS && typeof require === "function") {
-    isWorkerDisabled = true;
-    fallbackWorkerSrc = "./pdf.worker.js";
-  } else if (typeof document === "object" && "currentScript" in document) {
-    const pdfjsFilePath = document.currentScript && document.currentScript.src;
+  addProgressiveDoneListener(listener) {
+    this._progressiveDoneListeners.push(listener);
+  }
 
-    if (pdfjsFilePath) {
-      fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, ".worker$1$2");
+  onDataRange(begin, chunk) {
+    for (const listener of this._rangeListeners) {
+      listener(begin, chunk);
     }
   }
 
-  function getWorkerSrc() {
-    if (_worker_options.GlobalWorkerOptions.workerSrc) {
-      return _worker_options.GlobalWorkerOptions.workerSrc;
-    }
+  onDataProgress(loaded, total) {
+    this._readyCapability.promise.then(() => {
+      for (const listener of this._progressListeners) {
+        listener(loaded, total);
+      }
+    });
+  }
 
-    if (typeof fallbackWorkerSrc !== "undefined") {
-      if (!_is_node.isNodeJS) {
-        (0, _display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.');
+  onDataProgressiveRead(chunk) {
+    this._readyCapability.promise.then(() => {
+      for (const listener of this._progressiveReadListeners) {
+        listener(chunk);
       }
+    });
+  }
 
-      return fallbackWorkerSrc;
-    }
+  onDataProgressiveDone() {
+    this._readyCapability.promise.then(() => {
+      for (const listener of this._progressiveDoneListeners) {
+        listener();
+      }
+    });
+  }
 
-    throw new Error('No "GlobalWorkerOptions.workerSrc" specified.');
+  transportReady() {
+    this._readyCapability.resolve();
   }
 
-  function getMainThreadWorkerMessageHandler() {
-    let mainWorkerMessageHandler;
+  requestDataRange(begin, end) {
+    (0, _util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange");
+  }
 
-    try {
-      mainWorkerMessageHandler = globalThis.pdfjsWorker && globalThis.pdfjsWorker.WorkerMessageHandler;
-    } catch (ex) {}
+  abort() {}
 
-    return mainWorkerMessageHandler || null;
-  }
+}
 
-  function setupFakeWorkerGlobal() {
-    if (fakeWorkerCapability) {
-      return fakeWorkerCapability.promise;
-    }
+exports.PDFDataRangeTransport = PDFDataRangeTransport;
 
-    fakeWorkerCapability = (0, _util.createPromiseCapability)();
+class PDFDocumentProxy {
+  constructor(pdfInfo, transport) {
+    this._pdfInfo = pdfInfo;
+    this._transport = transport;
+  }
 
-    const loader = async function () {
-      const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();
+  get numPages() {
+    return this._pdfInfo.numPages;
+  }
 
-      if (mainWorkerMessageHandler) {
-        return mainWorkerMessageHandler;
-      }
+  get fingerprint() {
+    return this._pdfInfo.fingerprint;
+  }
 
-      if (_is_node.isNodeJS && typeof require === "function") {
-        const worker = eval("require")(getWorkerSrc());
-        return worker.WorkerMessageHandler;
-      }
+  getPage(pageNumber) {
+    return this._transport.getPage(pageNumber);
+  }
 
-      await (0, _display_utils.loadScript)(getWorkerSrc());
-      return window.pdfjsWorker.WorkerMessageHandler;
-    };
+  getPageIndex(ref) {
+    return this._transport.getPageIndex(ref);
+  }
 
-    loader().then(fakeWorkerCapability.resolve, fakeWorkerCapability.reject);
-    return fakeWorkerCapability.promise;
+  getDestinations() {
+    return this._transport.getDestinations();
   }
 
-  function createCDNWrapper(url) {
-    const wrapper = "importScripts('" + url + "');";
-    return URL.createObjectURL(new Blob([wrapper]));
+  getDestination(id) {
+    return this._transport.getDestination(id);
   }
 
-  class PDFWorker {
-    constructor({
-      name = null,
-      port = null,
-      verbosity = (0, _util.getVerbosityLevel)()
-    } = {}) {
-      if (port && pdfWorkerPorts.has(port)) {
-        throw new Error("Cannot use more than one PDFWorker per port");
-      }
+  getPageLabels() {
+    return this._transport.getPageLabels();
+  }
 
-      this.name = name;
-      this.destroyed = false;
-      this.postMessageTransfers = true;
-      this.verbosity = verbosity;
-      this._readyCapability = (0, _util.createPromiseCapability)();
-      this._port = null;
-      this._webWorker = null;
-      this._messageHandler = null;
+  getPageLayout() {
+    return this._transport.getPageLayout();
+  }
 
-      if (port) {
-        pdfWorkerPorts.set(port, this);
+  getPageMode() {
+    return this._transport.getPageMode();
+  }
 
-        this._initializeFromPort(port);
+  getViewerPreferences() {
+    return this._transport.getViewerPreferences();
+  }
 
-        return;
-      }
+  getOpenAction() {
+    return this._transport.getOpenAction();
+  }
 
-      this._initialize();
-    }
+  getOpenActionDestination() {
+    (0, _display_utils.deprecated)("getOpenActionDestination, use getOpenAction instead.");
+    return this.getOpenAction().then(function (openAction) {
+      return openAction && openAction.dest ? openAction.dest : null;
+    });
+  }
 
-    get promise() {
-      return this._readyCapability.promise;
-    }
+  getAttachments() {
+    return this._transport.getAttachments();
+  }
 
-    get port() {
-      return this._port;
-    }
+  getJavaScript() {
+    return this._transport.getJavaScript();
+  }
 
-    get messageHandler() {
-      return this._messageHandler;
-    }
+  getOutline() {
+    return this._transport.getOutline();
+  }
 
-    _initializeFromPort(port) {
-      this._port = port;
-      this._messageHandler = new _message_handler.MessageHandler("main", "worker", port);
+  getPermissions() {
+    return this._transport.getPermissions();
+  }
 
-      this._messageHandler.on("ready", function () {});
+  getMetadata() {
+    return this._transport.getMetadata();
+  }
 
-      this._readyCapability.resolve();
-    }
+  getData() {
+    return this._transport.getData();
+  }
 
-    _initialize() {
-      if (typeof Worker !== "undefined" && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {
-        let workerSrc = getWorkerSrc();
+  getDownloadInfo() {
+    return this._transport.downloadInfoCapability.promise;
+  }
 
-        try {
-          if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {
-            workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href);
-          }
+  getStats() {
+    return this._transport.getStats();
+  }
 
-          const worker = new Worker(workerSrc);
-          const messageHandler = new _message_handler.MessageHandler("main", "worker", worker);
+  cleanup() {
+    return this._transport.startCleanup();
+  }
 
-          const terminateEarly = () => {
-            worker.removeEventListener("error", onWorkerError);
-            messageHandler.destroy();
-            worker.terminate();
+  destroy() {
+    return this.loadingTask.destroy();
+  }
 
-            if (this.destroyed) {
-              this._readyCapability.reject(new Error("Worker was destroyed"));
-            } else {
-              this._setupFakeWorker();
-            }
-          };
+  get loadingParams() {
+    return this._transport.loadingParams;
+  }
 
-          const onWorkerError = () => {
-            if (!this._webWorker) {
-              terminateEarly();
-            }
-          };
+  get loadingTask() {
+    return this._transport.loadingTask;
+  }
 
-          worker.addEventListener("error", onWorkerError);
-          messageHandler.on("test", data => {
-            worker.removeEventListener("error", onWorkerError);
+}
 
-            if (this.destroyed) {
-              terminateEarly();
-              return;
-            }
+exports.PDFDocumentProxy = PDFDocumentProxy;
 
-            if (data) {
-              this._messageHandler = messageHandler;
-              this._port = worker;
-              this._webWorker = worker;
+class PDFPageProxy {
+  constructor(pageIndex, pageInfo, transport, pdfBug = false) {
+    this._pageIndex = pageIndex;
+    this._pageInfo = pageInfo;
+    this._transport = transport;
+    this._stats = pdfBug ? new _display_utils.StatTimer() : null;
+    this._pdfBug = pdfBug;
+    this.commonObjs = transport.commonObjs;
+    this.objs = new PDFObjects();
+    this.cleanupAfterRender = false;
+    this.pendingCleanup = false;
+    this.intentStates = Object.create(null);
+    this.destroyed = false;
+  }
 
-              if (!data.supportTransfers) {
-                this.postMessageTransfers = false;
-              }
+  get pageNumber() {
+    return this._pageIndex + 1;
+  }
 
-              this._readyCapability.resolve();
+  get rotate() {
+    return this._pageInfo.rotate;
+  }
 
-              messageHandler.send("configure", {
-                verbosity: this.verbosity
-              });
-            } else {
-              this._setupFakeWorker();
+  get ref() {
+    return this._pageInfo.ref;
+  }
 
-              messageHandler.destroy();
-              worker.terminate();
-            }
-          });
-          messageHandler.on("ready", data => {
-            worker.removeEventListener("error", onWorkerError);
+  get userUnit() {
+    return this._pageInfo.userUnit;
+  }
 
-            if (this.destroyed) {
-              terminateEarly();
-              return;
-            }
+  get view() {
+    return this._pageInfo.view;
+  }
 
-            try {
-              sendTest();
-            } catch (e) {
-              this._setupFakeWorker();
-            }
-          });
+  getViewport({
+    scale,
+    rotation = this.rotate,
+    offsetX = 0,
+    offsetY = 0,
+    dontFlip = false
+  } = {}) {
+    return new _display_utils.PageViewport({
+      viewBox: this.view,
+      scale,
+      rotation,
+      offsetX,
+      offsetY,
+      dontFlip
+    });
+  }
 
-          const sendTest = () => {
-            const testObj = new Uint8Array([this.postMessageTransfers ? 255 : 0]);
+  getAnnotations({
+    intent = null
+  } = {}) {
+    if (!this.annotationsPromise || this.annotationsIntent !== intent) {
+      this.annotationsPromise = this._transport.getAnnotations(this._pageIndex, intent);
+      this.annotationsIntent = intent;
+    }
 
-            try {
-              messageHandler.send("test", testObj, [testObj.buffer]);
-            } catch (ex) {
-              (0, _util.warn)("Cannot use postMessage transfers.");
-              testObj[0] = 0;
-              messageHandler.send("test", testObj);
-            }
-          };
+    return this.annotationsPromise;
+  }
 
-          sendTest();
-          return;
-        } catch (e) {
-          (0, _util.info)("The worker has been disabled.");
-        }
-      }
+  render({
+    canvasContext,
+    viewport,
+    intent = "display",
+    enableWebGL = false,
+    renderInteractiveForms = false,
+    transform = null,
+    imageLayer = null,
+    canvasFactory = null,
+    background = null
+  }) {
+    if (this._stats) {
+      this._stats.time("Overall");
+    }
 
-      this._setupFakeWorker();
+    const renderingIntent = intent === "print" ? "print" : "display";
+    this.pendingCleanup = false;
+
+    if (!this.intentStates[renderingIntent]) {
+      this.intentStates[renderingIntent] = Object.create(null);
     }
 
-    _setupFakeWorker() {
-      if (!isWorkerDisabled) {
-        (0, _util.warn)("Setting up fake worker.");
-        isWorkerDisabled = true;
-      }
+    const intentState = this.intentStates[renderingIntent];
 
-      setupFakeWorkerGlobal().then(WorkerMessageHandler => {
-        if (this.destroyed) {
-          this._readyCapability.reject(new Error("Worker was destroyed"));
+    if (intentState.streamReaderCancelTimeout) {
+      clearTimeout(intentState.streamReaderCancelTimeout);
+      intentState.streamReaderCancelTimeout = null;
+    }
 
-          return;
-        }
+    const canvasFactoryInstance = canvasFactory || new _display_utils.DOMCanvasFactory();
+    const webGLContext = new _webgl.WebGLContext({
+      enable: enableWebGL
+    });
 
-        const port = new LoopbackPort();
-        this._port = port;
-        const id = "fake" + nextFakeWorkerId++;
-        const workerHandler = new _message_handler.MessageHandler(id + "_worker", id, port);
-        WorkerMessageHandler.setup(workerHandler, port);
-        const messageHandler = new _message_handler.MessageHandler(id, id + "_worker", port);
-        this._messageHandler = messageHandler;
+    if (!intentState.displayReadyCapability) {
+      intentState.displayReadyCapability = (0, _util.createPromiseCapability)();
+      intentState.operatorList = {
+        fnArray: [],
+        argsArray: [],
+        lastChunk: false
+      };
 
-        this._readyCapability.resolve();
+      if (this._stats) {
+        this._stats.time("Page Request");
+      }
 
-        messageHandler.send("configure", {
-          verbosity: this.verbosity
-        });
-      }).catch(reason => {
-        this._readyCapability.reject(new Error(`Setting up fake worker failed: "${reason.message}".`));
+      this._pumpOperatorList({
+        pageIndex: this._pageIndex,
+        intent: renderingIntent,
+        renderInteractiveForms: renderInteractiveForms === true
       });
     }
 
-    destroy() {
-      this.destroyed = true;
+    const complete = error => {
+      const i = intentState.renderTasks.indexOf(internalRenderTask);
 
-      if (this._webWorker) {
-        this._webWorker.terminate();
+      if (i >= 0) {
+        intentState.renderTasks.splice(i, 1);
+      }
 
-        this._webWorker = null;
+      if (this.cleanupAfterRender || renderingIntent === "print") {
+        this.pendingCleanup = true;
       }
 
-      pdfWorkerPorts.delete(this._port);
-      this._port = null;
+      this._tryCleanup();
 
-      if (this._messageHandler) {
-        this._messageHandler.destroy();
+      if (error) {
+        internalRenderTask.capability.reject(error);
 
-        this._messageHandler = null;
+        this._abortOperatorList({
+          intentState,
+          reason: error
+        });
+      } else {
+        internalRenderTask.capability.resolve();
       }
-    }
 
-    static fromPort(params) {
-      if (!params || !params.port) {
-        throw new Error("PDFWorker.fromPort - invalid method signature.");
-      }
+      if (this._stats) {
+        this._stats.timeEnd("Rendering");
 
-      if (pdfWorkerPorts.has(params.port)) {
-        return pdfWorkerPorts.get(params.port);
+        this._stats.timeEnd("Overall");
       }
+    };
 
-      return new PDFWorker(params);
-    }
+    const internalRenderTask = new InternalRenderTask({
+      callback: complete,
+      params: {
+        canvasContext,
+        viewport,
+        transform,
+        imageLayer,
+        background
+      },
+      objs: this.objs,
+      commonObjs: this.commonObjs,
+      operatorList: intentState.operatorList,
+      pageIndex: this._pageIndex,
+      canvasFactory: canvasFactoryInstance,
+      webGLContext,
+      useRequestAnimationFrame: renderingIntent !== "print",
+      pdfBug: this._pdfBug
+    });
 
-    static getWorkerSrc() {
-      return getWorkerSrc();
+    if (!intentState.renderTasks) {
+      intentState.renderTasks = [];
     }
 
-  }
-
-  return PDFWorker;
-}();
+    intentState.renderTasks.push(internalRenderTask);
+    const renderTask = internalRenderTask.task;
+    intentState.displayReadyCapability.promise.then(transparency => {
+      if (this.pendingCleanup) {
+        complete();
+        return;
+      }
 
-exports.PDFWorker = PDFWorker;
+      if (this._stats) {
+        this._stats.time("Rendering");
+      }
 
-class WorkerTransport {
-  constructor(messageHandler, loadingTask, networkStream, params) {
-    this.messageHandler = messageHandler;
-    this.loadingTask = loadingTask;
-    this.commonObjs = new PDFObjects();
-    this.fontLoader = new _font_loader.FontLoader({
-      docId: loadingTask.docId,
-      onUnsupportedFeature: this._onUnsupportedFeature.bind(this)
-    });
-    this._params = params;
-    this.CMapReaderFactory = new params.CMapReaderFactory({
-      baseUrl: params.cMapUrl,
-      isCompressed: params.cMapPacked
-    });
-    this.destroyed = false;
-    this.destroyCapability = null;
-    this._passwordCapability = null;
-    this._networkStream = networkStream;
-    this._fullReader = null;
-    this._lastProgress = null;
-    this.pageCache = [];
-    this.pagePromises = [];
-    this.downloadInfoCapability = (0, _util.createPromiseCapability)();
-    this.setupMessageHandler();
+      internalRenderTask.initializeGraphics(transparency);
+      internalRenderTask.operatorListChanged();
+    }).catch(complete);
+    return renderTask;
   }
 
-  destroy() {
-    if (this.destroyCapability) {
-      return this.destroyCapability.promise;
+  getOperatorList() {
+    function operatorListChanged() {
+      if (intentState.operatorList.lastChunk) {
+        intentState.opListReadCapability.resolve(intentState.operatorList);
+        const i = intentState.renderTasks.indexOf(opListTask);
+
+        if (i >= 0) {
+          intentState.renderTasks.splice(i, 1);
+        }
+      }
     }
 
-    this.destroyed = true;
-    this.destroyCapability = (0, _util.createPromiseCapability)();
+    const renderingIntent = "oplist";
 
-    if (this._passwordCapability) {
-      this._passwordCapability.reject(new Error("Worker was destroyed during onPassword callback"));
+    if (!this.intentStates[renderingIntent]) {
+      this.intentStates[renderingIntent] = Object.create(null);
     }
 
-    const waitOn = [];
-    this.pageCache.forEach(function (page) {
-      if (page) {
-        waitOn.push(page._destroy());
-      }
-    });
-    this.pageCache.length = 0;
-    this.pagePromises.length = 0;
-    const terminated = this.messageHandler.sendWithPromise("Terminate", null);
-    waitOn.push(terminated);
-    Promise.all(waitOn).then(() => {
-      this.fontLoader.clear();
+    const intentState = this.intentStates[renderingIntent];
+    let opListTask;
+
+    if (!intentState.opListReadCapability) {
+      opListTask = {};
+      opListTask.operatorListChanged = operatorListChanged;
+      intentState.opListReadCapability = (0, _util.createPromiseCapability)();
+      intentState.renderTasks = [];
+      intentState.renderTasks.push(opListTask);
+      intentState.operatorList = {
+        fnArray: [],
+        argsArray: [],
+        lastChunk: false
+      };
 
-      if (this._networkStream) {
-        this._networkStream.cancelAllRequests(new _util.AbortException("Worker was terminated."));
+      if (this._stats) {
+        this._stats.time("Page Request");
       }
 
-      if (this.messageHandler) {
-        this.messageHandler.destroy();
-        this.messageHandler = null;
-      }
+      this._pumpOperatorList({
+        pageIndex: this._pageIndex,
+        intent: renderingIntent
+      });
+    }
 
-      this.destroyCapability.resolve();
-    }, this.destroyCapability.reject);
-    return this.destroyCapability.promise;
+    return intentState.opListReadCapability.promise;
   }
 
-  setupMessageHandler() {
-    const {
-      messageHandler,
-      loadingTask
-    } = this;
-    messageHandler.on("GetReader", (data, sink) => {
-      (0, _util.assert)(this._networkStream);
-      this._fullReader = this._networkStream.getFullReader();
+  streamTextContent({
+    normalizeWhitespace = false,
+    disableCombineTextItems = false
+  } = {}) {
+    const TEXT_CONTENT_CHUNK_SIZE = 100;
+    return this._transport.messageHandler.sendWithStream("GetTextContent", {
+      pageIndex: this._pageIndex,
+      normalizeWhitespace: normalizeWhitespace === true,
+      combineTextItems: disableCombineTextItems !== true
+    }, {
+      highWaterMark: TEXT_CONTENT_CHUNK_SIZE,
 
-      this._fullReader.onProgress = evt => {
-        this._lastProgress = {
-          loaded: evt.loaded,
-          total: evt.total
-        };
-      };
+      size(textContent) {
+        return textContent.items.length;
+      }
 
-      sink.onPull = () => {
-        this._fullReader.read().then(function ({
+    });
+  }
+
+  getTextContent(params = {}) {
+    const readableStream = this.streamTextContent(params);
+    return new Promise(function (resolve, reject) {
+      function pump() {
+        reader.read().then(function ({
           value,
           done
         }) {
           if (done) {
-            sink.close();
+            resolve(textContent);
             return;
           }
 
-          (0, _util.assert)((0, _util.isArrayBuffer)(value));
-          sink.enqueue(new Uint8Array(value), 1, [value]);
-        }).catch(reason => {
-          sink.error(reason);
-        });
-      };
+          Object.assign(textContent.styles, value.styles);
+          textContent.items.push(...value.items);
+          pump();
+        }, reject);
+      }
 
-      sink.onCancel = reason => {
-        this._fullReader.cancel(reason);
+      const reader = readableStream.getReader();
+      const textContent = {
+        items: [],
+        styles: Object.create(null)
       };
+      pump();
     });
-    messageHandler.on("ReaderHeadersReady", data => {
-      const headersCapability = (0, _util.createPromiseCapability)();
-      const fullReader = this._fullReader;
-      fullReader.headersReady.then(() => {
-        if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {
-          if (this._lastProgress && loadingTask.onProgress) {
-            loadingTask.onProgress(this._lastProgress);
-          }
-
-          fullReader.onProgress = evt => {
-            if (loadingTask.onProgress) {
-              loadingTask.onProgress({
-                loaded: evt.loaded,
-                total: evt.total
-              });
-            }
-          };
-        }
+  }
 
-        headersCapability.resolve({
-          isStreamingSupported: fullReader.isStreamingSupported,
-          isRangeSupported: fullReader.isRangeSupported,
-          contentLength: fullReader.contentLength
-        });
-      }, headersCapability.reject);
-      return headersCapability.promise;
-    });
-    messageHandler.on("GetRangeReader", (data, sink) => {
-      (0, _util.assert)(this._networkStream);
+  _destroy() {
+    this.destroyed = true;
+    this._transport.pageCache[this._pageIndex] = null;
+    const waitOn = [];
+    Object.keys(this.intentStates).forEach(intent => {
+      const intentState = this.intentStates[intent];
 
-      const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);
+      this._abortOperatorList({
+        intentState,
+        reason: new Error("Page was destroyed."),
+        force: true
+      });
 
-      if (!rangeReader) {
-        sink.close();
+      if (intent === "oplist") {
         return;
       }
 
-      sink.onPull = () => {
-        rangeReader.read().then(function ({
-          value,
-          done
-        }) {
-          if (done) {
-            sink.close();
-            return;
-          }
+      intentState.renderTasks.forEach(function (renderTask) {
+        const renderCompleted = renderTask.capability.promise.catch(function () {});
+        waitOn.push(renderCompleted);
+        renderTask.cancel();
+      });
+    });
+    this.objs.clear();
+    this.annotationsPromise = null;
+    this.pendingCleanup = false;
+    return Promise.all(waitOn);
+  }
 
-          (0, _util.assert)((0, _util.isArrayBuffer)(value));
-          sink.enqueue(new Uint8Array(value), 1, [value]);
-        }).catch(reason => {
-          sink.error(reason);
-        });
-      };
+  cleanup(resetStats = false) {
+    this.pendingCleanup = true;
+    return this._tryCleanup(resetStats);
+  }
 
-      sink.onCancel = reason => {
-        rangeReader.cancel(reason);
-      };
-    });
-    messageHandler.on("GetDoc", ({
-      pdfInfo
-    }) => {
-      this._numPages = pdfInfo.numPages;
+  _tryCleanup(resetStats = false) {
+    if (!this.pendingCleanup || Object.keys(this.intentStates).some(intent => {
+      const intentState = this.intentStates[intent];
+      return intentState.renderTasks.length !== 0 || !intentState.operatorList.lastChunk;
+    })) {
+      return false;
+    }
 
-      loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));
+    Object.keys(this.intentStates).forEach(intent => {
+      delete this.intentStates[intent];
     });
-    messageHandler.on("DocException", function (ex) {
-      let reason;
+    this.objs.clear();
+    this.annotationsPromise = null;
 
-      switch (ex.name) {
-        case "PasswordException":
-          reason = new _util.PasswordException(ex.message, ex.code);
-          break;
+    if (resetStats && this._stats) {
+      this._stats = new _display_utils.StatTimer();
+    }
 
-        case "InvalidPDFException":
-          reason = new _util.InvalidPDFException(ex.message);
-          break;
+    this.pendingCleanup = false;
+    return true;
+  }
 
-        case "MissingPDFException":
-          reason = new _util.MissingPDFException(ex.message);
-          break;
+  _startRenderPage(transparency, intent) {
+    const intentState = this.intentStates[intent];
 
-        case "UnexpectedResponseException":
-          reason = new _util.UnexpectedResponseException(ex.message, ex.status);
-          break;
+    if (!intentState) {
+      return;
+    }
+
+    if (this._stats) {
+      this._stats.timeEnd("Page Request");
+    }
+
+    if (intentState.displayReadyCapability) {
+      intentState.displayReadyCapability.resolve(transparency);
+    }
+  }
+
+  _renderPageChunk(operatorListChunk, intentState) {
+    for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {
+      intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);
+      intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);
+    }
+
+    intentState.operatorList.lastChunk = operatorListChunk.lastChunk;
+
+    for (let i = 0; i < intentState.renderTasks.length; i++) {
+      intentState.renderTasks[i].operatorListChanged();
+    }
+
+    if (operatorListChunk.lastChunk) {
+      this._tryCleanup();
+    }
+  }
+
+  _pumpOperatorList(args) {
+    (0, _util.assert)(args.intent, 'PDFPageProxy._pumpOperatorList: Expected "intent" argument.');
+
+    const readableStream = this._transport.messageHandler.sendWithStream("GetOperatorList", args);
+
+    const reader = readableStream.getReader();
+    const intentState = this.intentStates[args.intent];
+    intentState.streamReader = reader;
+
+    const pump = () => {
+      reader.read().then(({
+        value,
+        done
+      }) => {
+        if (done) {
+          intentState.streamReader = null;
+          return;
+        }
+
+        if (this._transport.destroyed) {
+          return;
+        }
+
+        this._renderPageChunk(value, intentState);
+
+        pump();
+      }, reason => {
+        intentState.streamReader = null;
+
+        if (this._transport.destroyed) {
+          return;
+        }
 
-        case "UnknownErrorException":
-          reason = new _util.UnknownErrorException(ex.message, ex.details);
-          break;
-      }
+        if (intentState.operatorList) {
+          intentState.operatorList.lastChunk = true;
 
-      loadingTask._capability.reject(reason);
-    });
-    messageHandler.on("PasswordRequest", exception => {
-      this._passwordCapability = (0, _util.createPromiseCapability)();
+          for (let i = 0; i < intentState.renderTasks.length; i++) {
+            intentState.renderTasks[i].operatorListChanged();
+          }
 
-      if (loadingTask.onPassword) {
-        const updatePassword = password => {
-          this._passwordCapability.resolve({
-            password
-          });
-        };
+          this._tryCleanup();
+        }
 
-        try {
-          loadingTask.onPassword(updatePassword, exception.code);
-        } catch (ex) {
-          this._passwordCapability.reject(ex);
+        if (intentState.displayReadyCapability) {
+          intentState.displayReadyCapability.reject(reason);
+        } else if (intentState.opListReadCapability) {
+          intentState.opListReadCapability.reject(reason);
+        } else {
+          throw reason;
         }
-      } else {
-        this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));
-      }
+      });
+    };
 
-      return this._passwordCapability.promise;
-    });
-    messageHandler.on("DataLoaded", data => {
-      if (loadingTask.onProgress) {
-        loadingTask.onProgress({
-          loaded: data.length,
-          total: data.length
-        });
-      }
+    pump();
+  }
 
-      this.downloadInfoCapability.resolve(data);
-    });
-    messageHandler.on("StartRenderPage", data => {
-      if (this.destroyed) {
-        return;
-      }
+  _abortOperatorList({
+    intentState,
+    reason,
+    force = false
+  }) {
+    (0, _util.assert)(reason instanceof Error || typeof reason === "object" && reason !== null, 
'PDFPageProxy._abortOperatorList: Expected "reason" argument.');
 
-      const page = this.pageCache[data.pageIndex];
+    if (!intentState.streamReader) {
+      return;
+    }
 
-      page._startRenderPage(data.transparency, data.intent);
-    });
-    messageHandler.on("commonobj", data => {
-      if (this.destroyed) {
+    if (!force) {
+      if (intentState.renderTasks.length !== 0) {
         return;
       }
 
-      const [id, type, exportedData] = data;
+      if (reason instanceof _display_utils.RenderingCancelledException) {
+        intentState.streamReaderCancelTimeout = setTimeout(() => {
+          this._abortOperatorList({
+            intentState,
+            reason,
+            force: true
+          });
 
-      if (this.commonObjs.has(id)) {
+          intentState.streamReaderCancelTimeout = null;
+        }, RENDERING_CANCELLED_TIMEOUT);
         return;
       }
+    }
 
-      switch (type) {
-        case "Font":
-          const params = this._params;
+    intentState.streamReader.cancel(new _util.AbortException(reason && reason.message));
+    intentState.streamReader = null;
 
-          if ("error" in exportedData) {
-            const exportedError = exportedData.error;
-            (0, _util.warn)(`Error during font loading: ${exportedError}`);
-            this.commonObjs.resolve(id, exportedError);
-            break;
-          }
+    if (this._transport.destroyed) {
+      return;
+    }
 
-          let fontRegistry = null;
+    Object.keys(this.intentStates).some(intent => {
+      if (this.intentStates[intent] === intentState) {
+        delete this.intentStates[intent];
+        return true;
+      }
 
-          if (params.pdfBug && globalThis.FontInspector && globalThis.FontInspector.enabled) {
-            fontRegistry = {
-              registerFont(font, url) {
-                globalThis.FontInspector.fontAdded(font, url);
-              }
+      return false;
+    });
+    this.cleanup();
+  }
 
-            };
-          }
+  get stats() {
+    return this._stats;
+  }
 
-          const font = new _font_loader.FontFaceObject(exportedData, {
-            isEvalSupported: params.isEvalSupported,
-            disableFontFace: params.disableFontFace,
-            ignoreErrors: params.ignoreErrors,
-            onUnsupportedFeature: this._onUnsupportedFeature.bind(this),
-            fontRegistry
-          });
-          this.fontLoader.bind(font).then(() => {
-            this.commonObjs.resolve(id, font);
-          }, reason => {
-            messageHandler.sendWithPromise("FontFallback", {
-              id
-            }).finally(() => {
-              this.commonObjs.resolve(id, font);
-            });
-          });
-          break;
+}
 
-        case "FontPath":
-        case "FontType3Res":
-          this.commonObjs.resolve(id, exportedData);
-          break;
+exports.PDFPageProxy = PDFPageProxy;
 
-        default:
-          throw new Error(`Got unknown common object type ${type}`);
+class LoopbackPort {
+  constructor(defer = true) {
+    this._listeners = [];
+    this._defer = defer;
+    this._deferred = Promise.resolve(undefined);
+  }
+
+  postMessage(obj, transfers) {
+    function cloneValue(value) {
+      if (typeof value !== "object" || value === null) {
+        return value;
       }
-    });
-    messageHandler.on("obj", data => {
-      if (this.destroyed) {
-        return undefined;
+
+      if (cloned.has(value)) {
+        return cloned.get(value);
       }
 
-      const [id, pageIndex, type, imageData] = data;
-      const pageProxy = this.pageCache[pageIndex];
+      let buffer, result;
 
-      if (pageProxy.objs.has(id)) {
-        return undefined;
-      }
+      if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {
+        const transferable = transfers && transfers.includes(buffer);
 
-      switch (type) {
-        case "JpegStream":
-          return new Promise((resolve, reject) => {
-            const img = new Image();
+        if (transferable) {
+          result = new value.constructor(buffer, value.byteOffset, value.byteLength);
+        } else {
+          result = new value.constructor(value);
+        }
 
-            img.onload = function () {
-              resolve(img);
-            };
+        cloned.set(value, result);
+        return result;
+      }
 
-            img.onerror = function () {
-              reject(new Error("Error during JPEG image loading"));
-              (0, _display_utils.releaseImageResources)(img);
-            };
+      result = Array.isArray(value) ? [] : {};
+      cloned.set(value, result);
 
-            img.src = imageData;
-          }).then(img => {
-            pageProxy.objs.resolve(id, img);
-          });
+      for (const i in value) {
+        let desc,
+            p = value;
 
-        case "Image":
-          pageProxy.objs.resolve(id, imageData);
-          const MAX_IMAGE_SIZE_TO_STORE = 8000000;
+        while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {
+          p = Object.getPrototypeOf(p);
+        }
 
-          if (imageData && "data" in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {
-            pageProxy.cleanupAfterRender = true;
+        if (typeof desc.value === "undefined") {
+          continue;
+        }
+
+        if (typeof desc.value === "function") {
+          if (value.hasOwnProperty && value.hasOwnProperty(i)) {
+            throw new Error(`LoopbackPort.postMessage - cannot clone: ${value[i]}`);
           }
 
-          break;
+          continue;
+        }
 
-        default:
-          throw new Error(`Got unknown object type ${type}`);
+        result[i] = cloneValue(desc.value);
       }
 
-      return undefined;
-    });
-    messageHandler.on("DocProgress", data => {
-      if (this.destroyed) {
-        return;
-      }
+      return result;
+    }
 
-      if (loadingTask.onProgress) {
-        loadingTask.onProgress({
-          loaded: data.loaded,
-          total: data.total
+    if (!this._defer) {
+      this._listeners.forEach(listener => {
+        listener.call(this, {
+          data: obj
         });
-      }
-    });
-    messageHandler.on("UnsupportedFeature", this._onUnsupportedFeature.bind(this));
-    messageHandler.on("JpegDecode", data => {
-      if (this.destroyed) {
-        return Promise.reject(new Error("Worker was destroyed"));
-      }
+      });
 
-      if (typeof document === "undefined") {
-        return Promise.reject(new Error('"document" is not defined.'));
-      }
+      return;
+    }
 
-      const [imageUrl, components] = data;
+    const cloned = new WeakMap();
+    const e = {
+      data: cloneValue(obj)
+    };
 
-      if (components !== 3 && components !== 1) {
-        return Promise.reject(new Error("Only 3 components or 1 component can be returned"));
-      }
+    this._deferred.then(() => {
+      this._listeners.forEach(listener => {
+        listener.call(this, e);
+      });
+    });
+  }
+
+  addEventListener(name, listener) {
+    this._listeners.push(listener);
+  }
 
-      return new Promise(function (resolve, reject) {
-        const img = new Image();
+  removeEventListener(name, listener) {
+    const i = this._listeners.indexOf(listener);
 
-        img.onload = function () {
-          const {
-            width,
-            height
-          } = img;
-          const size = width * height;
-          const rgbaLength = size * 4;
-          const buf = new Uint8ClampedArray(size * components);
-          let tmpCanvas = document.createElement("canvas");
-          tmpCanvas.width = width;
-          tmpCanvas.height = height;
-          let tmpCtx = tmpCanvas.getContext("2d");
-          tmpCtx.drawImage(img, 0, 0);
-          const data = tmpCtx.getImageData(0, 0, width, height).data;
-
-          if (components === 3) {
-            for (let i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {
-              buf[j] = data[i];
-              buf[j + 1] = data[i + 1];
-              buf[j + 2] = data[i + 2];
-            }
-          } else if (components === 1) {
-            for (let i = 0, j = 0; i < rgbaLength; i += 4, j++) {
-              buf[j] = data[i];
-            }
-          }
+    this._listeners.splice(i, 1);
+  }
 
-          resolve({
-            data: buf,
-            width,
-            height
-          });
-          (0, _display_utils.releaseImageResources)(img);
-          tmpCanvas.width = 0;
-          tmpCanvas.height = 0;
-          tmpCanvas = null;
-          tmpCtx = null;
-        };
+  terminate() {
+    this._listeners.length = 0;
+  }
 
-        img.onerror = function () {
-          reject(new Error("JpegDecode failed to load image"));
-          (0, _display_utils.releaseImageResources)(img);
-        };
+}
 
-        img.src = imageUrl;
-      });
-    });
-    messageHandler.on("FetchBuiltInCMap", (data, sink) => {
-      if (this.destroyed) {
-        sink.error(new Error("Worker was destroyed"));
-        return;
-      }
+exports.LoopbackPort = LoopbackPort;
 
-      let fetched = false;
+const PDFWorker = function PDFWorkerClosure() {
+  const pdfWorkerPorts = new WeakMap();
+  let isWorkerDisabled = false;
+  let fallbackWorkerSrc;
+  let nextFakeWorkerId = 0;
+  let fakeWorkerCapability;
 
-      sink.onPull = () => {
-        if (fetched) {
-          sink.close();
-          return;
-        }
+  if (_is_node.isNodeJS && typeof require === "function") {
+    isWorkerDisabled = true;
+    fallbackWorkerSrc = "./pdf.worker.js";
+  } else if (typeof document === "object" && "currentScript" in document) {
+    const pdfjsFilePath = document.currentScript && document.currentScript.src;
 
-        fetched = true;
-        this.CMapReaderFactory.fetch(data).then(function (builtInCMap) {
-          sink.enqueue(builtInCMap, 1, [builtInCMap.cMapData.buffer]);
-        }).catch(function (reason) {
-          sink.error(reason);
-        });
-      };
-    });
+    if (pdfjsFilePath) {
+      fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, ".worker$1$2");
+    }
   }
 
-  _onUnsupportedFeature({
-    featureId
-  }) {
-    if (this.destroyed) {
-      return;
+  function getWorkerSrc() {
+    if (_worker_options.GlobalWorkerOptions.workerSrc) {
+      return _worker_options.GlobalWorkerOptions.workerSrc;
     }
 
-    if (this.loadingTask.onUnsupportedFeature) {
-      this.loadingTask.onUnsupportedFeature(featureId);
+    if (typeof fallbackWorkerSrc !== "undefined") {
+      if (!_is_node.isNodeJS) {
+        (0, _display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.');
+      }
+
+      return fallbackWorkerSrc;
     }
+
+    throw new Error('No "GlobalWorkerOptions.workerSrc" specified.');
   }
 
-  getData() {
-    return this.messageHandler.sendWithPromise("GetData", null);
+  function getMainThreadWorkerMessageHandler() {
+    let mainWorkerMessageHandler;
+
+    try {
+      mainWorkerMessageHandler = globalThis.pdfjsWorker && globalThis.pdfjsWorker.WorkerMessageHandler;
+    } catch (ex) {}
+
+    return mainWorkerMessageHandler || null;
   }
 
-  getPage(pageNumber) {
-    if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {
-      return Promise.reject(new Error("Invalid page request"));
+  function setupFakeWorkerGlobal() {
+    if (fakeWorkerCapability) {
+      return fakeWorkerCapability.promise;
     }
 
-    const pageIndex = pageNumber - 1;
+    fakeWorkerCapability = (0, _util.createPromiseCapability)();
 
-    if (pageIndex in this.pagePromises) {
-      return this.pagePromises[pageIndex];
-    }
+    const loader = async function () {
+      const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();
 
-    const promise = this.messageHandler.sendWithPromise("GetPage", {
-      pageIndex
-    }).then(pageInfo => {
-      if (this.destroyed) {
-        throw new Error("Transport destroyed");
+      if (mainWorkerMessageHandler) {
+        return mainWorkerMessageHandler;
       }
 
-      const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.pdfBug);
-      this.pageCache[pageIndex] = page;
-      return page;
-    });
-    this.pagePromises[pageIndex] = promise;
-    return promise;
-  }
-
-  getPageIndex(ref) {
-    return this.messageHandler.sendWithPromise("GetPageIndex", {
-      ref
-    }).catch(function (reason) {
-      return Promise.reject(new Error(reason));
-    });
-  }
+      if (_is_node.isNodeJS && typeof require === "function") {
+        const worker = eval("require")(getWorkerSrc());
+        return worker.WorkerMessageHandler;
+      }
 
-  getAnnotations(pageIndex, intent) {
-    return this.messageHandler.sendWithPromise("GetAnnotations", {
-      pageIndex,
-      intent
-    });
-  }
+      await (0, _display_utils.loadScript)(getWorkerSrc());
+      return window.pdfjsWorker.WorkerMessageHandler;
+    };
 
-  getDestinations() {
-    return this.messageHandler.sendWithPromise("GetDestinations", null);
+    loader().then(fakeWorkerCapability.resolve, fakeWorkerCapability.reject);
+    return fakeWorkerCapability.promise;
   }
 
-  getDestination(id) {
-    if (typeof id !== "string") {
-      return Promise.reject(new Error("Invalid destination request."));
-    }
-
-    return this.messageHandler.sendWithPromise("GetDestination", {
-      id
-    });
+  function createCDNWrapper(url) {
+    const wrapper = "importScripts('" + url + "');";
+    return URL.createObjectURL(new Blob([wrapper]));
   }
 
-  getPageLabels() {
-    return this.messageHandler.sendWithPromise("GetPageLabels", null);
-  }
+  class PDFWorker {
+    constructor({
+      name = null,
+      port = null,
+      verbosity = (0, _util.getVerbosityLevel)()
+    } = {}) {
+      if (port && pdfWorkerPorts.has(port)) {
+        throw new Error("Cannot use more than one PDFWorker per port");
+      }
 
-  getPageLayout() {
-    return this.messageHandler.sendWithPromise("GetPageLayout", null);
-  }
+      this.name = name;
+      this.destroyed = false;
+      this.postMessageTransfers = true;
+      this.verbosity = verbosity;
+      this._readyCapability = (0, _util.createPromiseCapability)();
+      this._port = null;
+      this._webWorker = null;
+      this._messageHandler = null;
 
-  getPageMode() {
-    return this.messageHandler.sendWithPromise("GetPageMode", null);
-  }
+      if (port) {
+        pdfWorkerPorts.set(port, this);
 
-  getViewerPreferences() {
-    return this.messageHandler.sendWithPromise("GetViewerPreferences", null);
-  }
+        this._initializeFromPort(port);
 
-  getOpenAction() {
-    return this.messageHandler.sendWithPromise("GetOpenAction", null);
-  }
+        return;
+      }
 
-  getAttachments() {
-    return this.messageHandler.sendWithPromise("GetAttachments", null);
-  }
+      this._initialize();
+    }
 
-  getJavaScript() {
-    return this.messageHandler.sendWithPromise("GetJavaScript", null);
-  }
+    get promise() {
+      return this._readyCapability.promise;
+    }
 
-  getOutline() {
-    return this.messageHandler.sendWithPromise("GetOutline", null);
-  }
+    get port() {
+      return this._port;
+    }
 
-  getPermissions() {
-    return this.messageHandler.sendWithPromise("GetPermissions", null);
-  }
+    get messageHandler() {
+      return this._messageHandler;
+    }
 
-  getMetadata() {
-    return this.messageHandler.sendWithPromise("GetMetadata", null).then(results => {
-      return {
-        info: results[0],
-        metadata: results[1] ? new _metadata.Metadata(results[1]) : null,
-        contentDispositionFilename: this._fullReader ? this._fullReader.filename : null
-      };
-    });
-  }
+    _initializeFromPort(port) {
+      this._port = port;
+      this._messageHandler = new _message_handler.MessageHandler("main", "worker", port);
 
-  getStats() {
-    return this.messageHandler.sendWithPromise("GetStats", null);
-  }
+      this._messageHandler.on("ready", function () {});
 
-  startCleanup() {
-    return this.messageHandler.sendWithPromise("Cleanup", null).then(() => {
-      for (let i = 0, ii = this.pageCache.length; i < ii; i++) {
-        const page = this.pageCache[i];
+      this._readyCapability.resolve();
+    }
 
-        if (page) {
-          const cleanupSuccessful = page.cleanup();
+    _initialize() {
+      if (typeof Worker !== "undefined" && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {
+        let workerSrc = getWorkerSrc();
 
-          if (!cleanupSuccessful) {
-            throw new Error(`startCleanup: Page ${i + 1} is currently rendering.`);
+        try {
+          if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {
+            workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href);
           }
-        }
-      }
 
-      this.commonObjs.clear();
-      this.fontLoader.clear();
-    });
-  }
+          const worker = new Worker(workerSrc);
+          const messageHandler = new _message_handler.MessageHandler("main", "worker", worker);
 
-  get loadingParams() {
-    const params = this._params;
-    return (0, _util.shadow)(this, "loadingParams", {
-      disableAutoFetch: params.disableAutoFetch,
-      disableCreateObjectURL: params.disableCreateObjectURL,
-      disableFontFace: params.disableFontFace,
-      nativeImageDecoderSupport: params.nativeImageDecoderSupport
-    });
-  }
+          const terminateEarly = () => {
+            worker.removeEventListener("error", onWorkerError);
+            messageHandler.destroy();
+            worker.terminate();
 
-}
+            if (this.destroyed) {
+              this._readyCapability.reject(new Error("Worker was destroyed"));
+            } else {
+              this._setupFakeWorker();
+            }
+          };
 
-class PDFObjects {
-  constructor() {
-    this._objs = Object.create(null);
-  }
+          const onWorkerError = () => {
+            if (!this._webWorker) {
+              terminateEarly();
+            }
+          };
 
-  _ensureObj(objId) {
-    if (this._objs[objId]) {
-      return this._objs[objId];
-    }
+          worker.addEventListener("error", onWorkerError);
+          messageHandler.on("test", data => {
+            worker.removeEventListener("error", onWorkerError);
 
-    return this._objs[objId] = {
-      capability: (0, _util.createPromiseCapability)(),
-      data: null,
-      resolved: false
-    };
-  }
+            if (this.destroyed) {
+              terminateEarly();
+              return;
+            }
 
-  get(objId, callback = null) {
-    if (callback) {
-      this._ensureObj(objId).capability.promise.then(callback);
+            if (data) {
+              this._messageHandler = messageHandler;
+              this._port = worker;
+              this._webWorker = worker;
 
-      return null;
-    }
+              if (!data.supportTransfers) {
+                this.postMessageTransfers = false;
+              }
 
-    const obj = this._objs[objId];
+              this._readyCapability.resolve();
 
-    if (!obj || !obj.resolved) {
-      throw new Error(`Requesting object that isn't resolved yet ${objId}.`);
-    }
+              messageHandler.send("configure", {
+                verbosity: this.verbosity
+              });
+            } else {
+              this._setupFakeWorker();
 
-    return obj.data;
-  }
+              messageHandler.destroy();
+              worker.terminate();
+            }
+          });
+          messageHandler.on("ready", data => {
+            worker.removeEventListener("error", onWorkerError);
 
-  has(objId) {
-    const obj = this._objs[objId];
-    return obj ? obj.resolved : false;
-  }
+            if (this.destroyed) {
+              terminateEarly();
+              return;
+            }
 
-  resolve(objId, data) {
-    const obj = this._ensureObj(objId);
+            try {
+              sendTest();
+            } catch (e) {
+              this._setupFakeWorker();
+            }
+          });
 
-    obj.resolved = true;
-    obj.data = data;
-    obj.capability.resolve(data);
-  }
+          const sendTest = () => {
+            const testObj = new Uint8Array([this.postMessageTransfers ? 255 : 0]);
 
-  clear() {
-    for (const objId in this._objs) {
-      const {
-        data
-      } = this._objs[objId];
+            try {
+              messageHandler.send("test", testObj, [testObj.buffer]);
+            } catch (ex) {
+              (0, _util.warn)("Cannot use postMessage transfers.");
+              testObj[0] = 0;
+              messageHandler.send("test", testObj);
+            }
+          };
 
-      if (typeof Image !== "undefined" && data instanceof Image) {
-        (0, _display_utils.releaseImageResources)(data);
+          sendTest();
+          return;
+        } catch (e) {
+          (0, _util.info)("The worker has been disabled.");
+        }
       }
-    }
 
-    this._objs = Object.create(null);
-  }
+      this._setupFakeWorker();
+    }
 
-}
+    _setupFakeWorker() {
+      if (!isWorkerDisabled) {
+        (0, _util.warn)("Setting up fake worker.");
+        isWorkerDisabled = true;
+      }
 
-class RenderTask {
-  constructor(internalRenderTask) {
-    this._internalRenderTask = internalRenderTask;
-    this.onContinue = null;
-  }
+      setupFakeWorkerGlobal().then(WorkerMessageHandler => {
+        if (this.destroyed) {
+          this._readyCapability.reject(new Error("Worker was destroyed"));
 
-  get promise() {
-    return this._internalRenderTask.capability.promise;
-  }
+          return;
+        }
 
-  cancel() {
-    this._internalRenderTask.cancel();
-  }
+        const port = new LoopbackPort();
+        this._port = port;
+        const id = "fake" + nextFakeWorkerId++;
+        const workerHandler = new _message_handler.MessageHandler(id + "_worker", id, port);
+        WorkerMessageHandler.setup(workerHandler, port);
+        const messageHandler = new _message_handler.MessageHandler(id, id + "_worker", port);
+        this._messageHandler = messageHandler;
 
-  then(onFulfilled, onRejected) {
-    throw new Error("Removed API method: " + "RenderTask.then, use the `promise` getter instead.");
-  }
+        this._readyCapability.resolve();
 
-}
+        messageHandler.send("configure", {
+          verbosity: this.verbosity
+        });
+      }).catch(reason => {
+        this._readyCapability.reject(new Error(`Setting up fake worker failed: "${reason.message}".`));
+      });
+    }
 
-const InternalRenderTask = function InternalRenderTaskClosure() {
-  const canvasInRendering = new WeakSet();
+    destroy() {
+      this.destroyed = true;
 
-  class InternalRenderTask {
-    constructor({
-      callback,
-      params,
-      objs,
-      commonObjs,
-      operatorList,
-      pageIndex,
-      canvasFactory,
-      webGLContext,
-      useRequestAnimationFrame = false,
-      pdfBug = false
-    }) {
-      this.callback = callback;
-      this.params = params;
-      this.objs = objs;
-      this.commonObjs = commonObjs;
-      this.operatorListIdx = null;
-      this.operatorList = operatorList;
-      this._pageIndex = pageIndex;
-      this.canvasFactory = canvasFactory;
-      this.webGLContext = webGLContext;
-      this._pdfBug = pdfBug;
-      this.running = false;
-      this.graphicsReadyCallback = null;
-      this.graphicsReady = false;
-      this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== "undefined";
-      this.cancelled = false;
-      this.capability = (0, _util.createPromiseCapability)();
-      this.task = new RenderTask(this);
-      this._continueBound = this._continue.bind(this);
-      this._scheduleNextBound = this._scheduleNext.bind(this);
-      this._nextBound = this._next.bind(this);
-      this._canvas = params.canvasContext.canvas;
-    }
+      if (this._webWorker) {
+        this._webWorker.terminate();
 
-    initializeGraphics(transparency = false) {
-      if (this.cancelled) {
-        return;
+        this._webWorker = null;
       }
 
-      if (this._canvas) {
-        if (canvasInRendering.has(this._canvas)) {
-          throw new Error("Cannot use the same canvas during multiple render() operations. " + "Use 
different canvas or ensure previous operations were " + "cancelled or completed.");
-        }
+      pdfWorkerPorts.delete(this._port);
+      this._port = null;
 
-        canvasInRendering.add(this._canvas);
-      }
+      if (this._messageHandler) {
+        this._messageHandler.destroy();
 
-      if (this._pdfBug && globalThis.StepperManager && globalThis.StepperManager.enabled) {
-        this.stepper = globalThis.StepperManager.create(this._pageIndex);
-        this.stepper.init(this.operatorList);
-        this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();
+        this._messageHandler = null;
       }
+    }
 
-      const {
-        canvasContext,
-        viewport,
-        transform,
-        imageLayer,
-        background
-      } = this.params;
-      this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, 
this.webGLContext, imageLayer);
-      this.gfx.beginDrawing({
-        transform,
-        viewport,
-        transparency,
-        background
-      });
-      this.operatorListIdx = 0;
-      this.graphicsReady = true;
+    static fromPort(params) {
+      if (!params || !params.port) {
+        throw new Error("PDFWorker.fromPort - invalid method signature.");
+      }
 
-      if (this.graphicsReadyCallback) {
-        this.graphicsReadyCallback();
+      if (pdfWorkerPorts.has(params.port)) {
+        return pdfWorkerPorts.get(params.port);
       }
+
+      return new PDFWorker(params);
     }
 
-    cancel(error = null) {
-      this.running = false;
-      this.cancelled = true;
+    static getWorkerSrc() {
+      return getWorkerSrc();
+    }
 
-      if (this.gfx) {
-        this.gfx.endDrawing();
-      }
+  }
 
-      if (this._canvas) {
-        canvasInRendering.delete(this._canvas);
-      }
+  return PDFWorker;
+}();
+
+exports.PDFWorker = PDFWorker;
+
+class WorkerTransport {
+  constructor(messageHandler, loadingTask, networkStream, params) {
+    this.messageHandler = messageHandler;
+    this.loadingTask = loadingTask;
+    this.commonObjs = new PDFObjects();
+    this.fontLoader = new _font_loader.FontLoader({
+      docId: loadingTask.docId,
+      onUnsupportedFeature: this._onUnsupportedFeature.bind(this)
+    });
+    this._params = params;
+    this.CMapReaderFactory = new params.CMapReaderFactory({
+      baseUrl: params.cMapUrl,
+      isCompressed: params.cMapPacked
+    });
+    this.destroyed = false;
+    this.destroyCapability = null;
+    this._passwordCapability = null;
+    this._networkStream = networkStream;
+    this._fullReader = null;
+    this._lastProgress = null;
+    this.pageCache = [];
+    this.pagePromises = [];
+    this.downloadInfoCapability = (0, _util.createPromiseCapability)();
+    this.setupMessageHandler();
+  }
 
-      this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page 
${this._pageIndex + 1}`, "canvas"));
+  destroy() {
+    if (this.destroyCapability) {
+      return this.destroyCapability.promise;
     }
 
-    operatorListChanged() {
-      if (!this.graphicsReady) {
-        if (!this.graphicsReadyCallback) {
-          this.graphicsReadyCallback = this._continueBound;
-        }
+    this.destroyed = true;
+    this.destroyCapability = (0, _util.createPromiseCapability)();
 
-        return;
+    if (this._passwordCapability) {
+      this._passwordCapability.reject(new Error("Worker was destroyed during onPassword callback"));
+    }
+
+    const waitOn = [];
+    this.pageCache.forEach(function (page) {
+      if (page) {
+        waitOn.push(page._destroy());
       }
+    });
+    this.pageCache.length = 0;
+    this.pagePromises.length = 0;
+    const terminated = this.messageHandler.sendWithPromise("Terminate", null);
+    waitOn.push(terminated);
+    Promise.all(waitOn).then(() => {
+      this.fontLoader.clear();
 
-      if (this.stepper) {
-        this.stepper.updateOperatorList(this.operatorList);
+      if (this._networkStream) {
+        this._networkStream.cancelAllRequests(new _util.AbortException("Worker was terminated."));
       }
 
-      if (this.running) {
-        return;
+      if (this.messageHandler) {
+        this.messageHandler.destroy();
+        this.messageHandler = null;
       }
 
-      this._continue();
-    }
+      this.destroyCapability.resolve();
+    }, this.destroyCapability.reject);
+    return this.destroyCapability.promise;
+  }
 
-    _continue() {
-      this.running = true;
+  setupMessageHandler() {
+    const {
+      messageHandler,
+      loadingTask
+    } = this;
+    messageHandler.on("GetReader", (data, sink) => {
+      (0, _util.assert)(this._networkStream, "GetReader - no `IPDFStream` instance available.");
+      this._fullReader = this._networkStream.getFullReader();
 
-      if (this.cancelled) {
-        return;
-      }
+      this._fullReader.onProgress = evt => {
+        this._lastProgress = {
+          loaded: evt.loaded,
+          total: evt.total
+        };
+      };
 
-      if (this.task.onContinue) {
-        this.task.onContinue(this._scheduleNextBound);
-      } else {
-        this._scheduleNext();
-      }
-    }
+      sink.onPull = () => {
+        this._fullReader.read().then(function ({
+          value,
+          done
+        }) {
+          if (done) {
+            sink.close();
+            return;
+          }
 
-    _scheduleNext() {
-      if (this._useRequestAnimationFrame) {
-        window.requestAnimationFrame(() => {
-          this._nextBound().catch(this.cancel.bind(this));
+          (0, _util.assert)((0, _util.isArrayBuffer)(value), "GetReader - expected an ArrayBuffer.");
+          sink.enqueue(new Uint8Array(value), 1, [value]);
+        }).catch(reason => {
+          sink.error(reason);
         });
-      } else {
-        Promise.resolve().then(this._nextBound).catch(this.cancel.bind(this));
-      }
-    }
+      };
 
-    async _next() {
-      if (this.cancelled) {
+      sink.onCancel = reason => {
+        this._fullReader.cancel(reason);
+      };
+    });
+    messageHandler.on("ReaderHeadersReady", data => {
+      const headersCapability = (0, _util.createPromiseCapability)();
+      const fullReader = this._fullReader;
+      fullReader.headersReady.then(() => {
+        if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {
+          if (this._lastProgress && loadingTask.onProgress) {
+            loadingTask.onProgress(this._lastProgress);
+          }
+
+          fullReader.onProgress = evt => {
+            if (loadingTask.onProgress) {
+              loadingTask.onProgress({
+                loaded: evt.loaded,
+                total: evt.total
+              });
+            }
+          };
+        }
+
+        headersCapability.resolve({
+          isStreamingSupported: fullReader.isStreamingSupported,
+          isRangeSupported: fullReader.isRangeSupported,
+          contentLength: fullReader.contentLength
+        });
+      }, headersCapability.reject);
+      return headersCapability.promise;
+    });
+    messageHandler.on("GetRangeReader", (data, sink) => {
+      (0, _util.assert)(this._networkStream, "GetRangeReader - no `IPDFStream` instance available.");
+
+      const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);
+
+      if (!rangeReader) {
+        sink.close();
         return;
       }
 
-      this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, 
this._continueBound, this.stepper);
+      sink.onPull = () => {
+        rangeReader.read().then(function ({
+          value,
+          done
+        }) {
+          if (done) {
+            sink.close();
+            return;
+          }
 
-      if (this.operatorListIdx === this.operatorList.argsArray.length) {
-        this.running = false;
+          (0, _util.assert)((0, _util.isArrayBuffer)(value), "GetRangeReader - expected an ArrayBuffer.");
+          sink.enqueue(new Uint8Array(value), 1, [value]);
+        }).catch(reason => {
+          sink.error(reason);
+        });
+      };
 
-        if (this.operatorList.lastChunk) {
-          this.gfx.endDrawing();
+      sink.onCancel = reason => {
+        rangeReader.cancel(reason);
+      };
+    });
+    messageHandler.on("GetDoc", ({
+      pdfInfo
+    }) => {
+      this._numPages = pdfInfo.numPages;
 
-          if (this._canvas) {
-            canvasInRendering.delete(this._canvas);
-          }
+      loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));
+    });
+    messageHandler.on("DocException", function (ex) {
+      let reason;
 
-          this.callback();
-        }
-      }
-    }
+      switch (ex.name) {
+        case "PasswordException":
+          reason = new _util.PasswordException(ex.message, ex.code);
+          break;
 
-  }
+        case "InvalidPDFException":
+          reason = new _util.InvalidPDFException(ex.message);
+          break;
 
-  return InternalRenderTask;
-}();
+        case "MissingPDFException":
+          reason = new _util.MissingPDFException(ex.message);
+          break;
 
-const version = '2.4.456';
-exports.version = version;
-const build = '228a591c';
-exports.build = build;
+        case "UnexpectedResponseException":
+          reason = new _util.UnexpectedResponseException(ex.message, ex.status);
+          break;
 
-/***/ }),
-/* 4 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
+        case "UnknownErrorException":
+          reason = new _util.UnknownErrorException(ex.message, ex.details);
+          break;
+      }
 
-"use strict";
+      loadingTask._capability.reject(reason);
+    });
+    messageHandler.on("PasswordRequest", exception => {
+      this._passwordCapability = (0, _util.createPromiseCapability)();
 
+      if (loadingTask.onPassword) {
+        const updatePassword = password => {
+          this._passwordCapability.resolve({
+            password
+          });
+        };
 
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.addLinkAttributes = addLinkAttributes;
-exports.getFilenameFromUrl = getFilenameFromUrl;
-exports.isFetchSupported = isFetchSupported;
-exports.isValidFetchUrl = isValidFetchUrl;
-exports.loadScript = loadScript;
-exports.deprecated = deprecated;
-exports.releaseImageResources = releaseImageResources;
-exports.PDFDateString = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = 
exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = 
exports.RenderingCancelledException = exports.PageViewport = void 0;
+        try {
+          loadingTask.onPassword(updatePassword, exception.code);
+        } catch (ex) {
+          this._passwordCapability.reject(ex);
+        }
+      } else {
+        this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));
+      }
 
-var _util = __w_pdfjs_require__(1);
+      return this._passwordCapability.promise;
+    });
+    messageHandler.on("DataLoaded", data => {
+      if (loadingTask.onProgress) {
+        loadingTask.onProgress({
+          loaded: data.length,
+          total: data.length
+        });
+      }
 
-const DEFAULT_LINK_REL = "noopener noreferrer nofollow";
-exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;
-const SVG_NS = "http://www.w3.org/2000/svg";;
+      this.downloadInfoCapability.resolve(data);
+    });
+    messageHandler.on("StartRenderPage", data => {
+      if (this.destroyed) {
+        return;
+      }
 
-class DOMCanvasFactory {
-  create(width, height) {
-    if (width <= 0 || height <= 0) {
-      throw new Error("Invalid canvas size");
-    }
+      const page = this.pageCache[data.pageIndex];
 
-    const canvas = document.createElement("canvas");
-    const context = canvas.getContext("2d");
-    canvas.width = width;
-    canvas.height = height;
-    return {
-      canvas,
-      context
-    };
-  }
+      page._startRenderPage(data.transparency, data.intent);
+    });
+    messageHandler.on("commonobj", data => {
+      if (this.destroyed) {
+        return;
+      }
 
-  reset(canvasAndContext, width, height) {
-    if (!canvasAndContext.canvas) {
-      throw new Error("Canvas is not specified");
-    }
+      const [id, type, exportedData] = data;
 
-    if (width <= 0 || height <= 0) {
-      throw new Error("Invalid canvas size");
-    }
+      if (this.commonObjs.has(id)) {
+        return;
+      }
 
-    canvasAndContext.canvas.width = width;
-    canvasAndContext.canvas.height = height;
-  }
+      switch (type) {
+        case "Font":
+          const params = this._params;
 
-  destroy(canvasAndContext) {
-    if (!canvasAndContext.canvas) {
-      throw new Error("Canvas is not specified");
-    }
+          if ("error" in exportedData) {
+            const exportedError = exportedData.error;
+            (0, _util.warn)(`Error during font loading: ${exportedError}`);
+            this.commonObjs.resolve(id, exportedError);
+            break;
+          }
 
-    canvasAndContext.canvas.width = 0;
-    canvasAndContext.canvas.height = 0;
-    canvasAndContext.canvas = null;
-    canvasAndContext.context = null;
-  }
+          let fontRegistry = null;
 
-}
+          if (params.pdfBug && globalThis.FontInspector && globalThis.FontInspector.enabled) {
+            fontRegistry = {
+              registerFont(font, url) {
+                globalThis.FontInspector.fontAdded(font, url);
+              }
 
-exports.DOMCanvasFactory = DOMCanvasFactory;
+            };
+          }
 
-class DOMCMapReaderFactory {
-  constructor({
-    baseUrl = null,
-    isCompressed = false
-  }) {
-    this.baseUrl = baseUrl;
-    this.isCompressed = isCompressed;
-  }
+          const font = new _font_loader.FontFaceObject(exportedData, {
+            isEvalSupported: params.isEvalSupported,
+            disableFontFace: params.disableFontFace,
+            ignoreErrors: params.ignoreErrors,
+            onUnsupportedFeature: this._onUnsupportedFeature.bind(this),
+            fontRegistry
+          });
+          this.fontLoader.bind(font).catch(reason => {
+            return messageHandler.sendWithPromise("FontFallback", {
+              id
+            });
+          }).finally(() => {
+            if (!params.fontExtraProperties && font.data) {
+              font.data = null;
+            }
 
-  async fetch({
-    name
-  }) {
-    if (!this.baseUrl) {
-      throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and 
"cMapPacked" API parameters are provided.');
-    }
+            this.commonObjs.resolve(id, font);
+          });
+          break;
 
-    if (!name) {
-      throw new Error("CMap name must be specified.");
-    }
+        case "FontPath":
+        case "FontType3Res":
+        case "Image":
+          this.commonObjs.resolve(id, exportedData);
+          break;
 
-    const url = this.baseUrl + name + (this.isCompressed ? ".bcmap" : "");
-    const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : 
_util.CMapCompressionType.NONE;
+        default:
+          throw new Error(`Got unknown common object type ${type}`);
+      }
+    });
+    messageHandler.on("obj", data => {
+      if (this.destroyed) {
+        return undefined;
+      }
 
-    if (isFetchSupported() && isValidFetchUrl(url, document.baseURI)) {
-      return fetch(url).then(async response => {
-        if (!response.ok) {
-          throw new Error(response.statusText);
-        }
+      const [id, pageIndex, type, imageData] = data;
+      const pageProxy = this.pageCache[pageIndex];
 
-        let cMapData;
+      if (pageProxy.objs.has(id)) {
+        return undefined;
+      }
 
-        if (this.isCompressed) {
-          cMapData = new Uint8Array((await response.arrayBuffer()));
-        } else {
-          cMapData = (0, _util.stringToBytes)((await response.text()));
-        }
+      switch (type) {
+        case "Image":
+          pageProxy.objs.resolve(id, imageData);
+          const MAX_IMAGE_SIZE_TO_STORE = 8000000;
 
-        return {
-          cMapData,
-          compressionType
-        };
-      }).catch(reason => {
-        throw new Error(`Unable to load ${this.isCompressed ? "binary " : ""}` + `CMap at: ${url}`);
-      });
-    }
+          if (imageData && "data" in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {
+            pageProxy.cleanupAfterRender = true;
+          }
 
-    return new Promise((resolve, reject) => {
-      const request = new XMLHttpRequest();
-      request.open("GET", url, true);
+          break;
 
-      if (this.isCompressed) {
-        request.responseType = "arraybuffer";
+        default:
+          throw new Error(`Got unknown object type ${type}`);
       }
 
-      request.onreadystatechange = () => {
-        if (request.readyState !== XMLHttpRequest.DONE) {
-          return;
-        }
+      return undefined;
+    });
+    messageHandler.on("DocProgress", data => {
+      if (this.destroyed) {
+        return;
+      }
 
-        if (request.status === 200 || request.status === 0) {
-          let cMapData;
+      if (loadingTask.onProgress) {
+        loadingTask.onProgress({
+          loaded: data.loaded,
+          total: data.total
+        });
+      }
+    });
+    messageHandler.on("UnsupportedFeature", this._onUnsupportedFeature.bind(this));
+    messageHandler.on("FetchBuiltInCMap", (data, sink) => {
+      if (this.destroyed) {
+        sink.error(new Error("Worker was destroyed"));
+        return;
+      }
 
-          if (this.isCompressed && request.response) {
-            cMapData = new Uint8Array(request.response);
-          } else if (!this.isCompressed && request.responseText) {
-            cMapData = (0, _util.stringToBytes)(request.responseText);
-          }
+      let fetched = false;
 
-          if (cMapData) {
-            resolve({
-              cMapData,
-              compressionType
-            });
-            return;
-          }
+      sink.onPull = () => {
+        if (fetched) {
+          sink.close();
+          return;
         }
 
-        reject(new Error(request.statusText));
+        fetched = true;
+        this.CMapReaderFactory.fetch(data).then(function (builtInCMap) {
+          sink.enqueue(builtInCMap, 1, [builtInCMap.cMapData.buffer]);
+        }).catch(function (reason) {
+          sink.error(reason);
+        });
       };
-
-      request.send(null);
-    }).catch(reason => {
-      throw new Error(`Unable to load ${this.isCompressed ? "binary " : ""}` + `CMap at: ${url}`);
     });
   }
 
-}
-
-exports.DOMCMapReaderFactory = DOMCMapReaderFactory;
+  _onUnsupportedFeature({
+    featureId
+  }) {
+    if (this.destroyed) {
+      return;
+    }
 
-class DOMSVGFactory {
-  create(width, height) {
-    (0, _util.assert)(width > 0 && height > 0, "Invalid SVG dimensions");
-    const svg = document.createElementNS(SVG_NS, "svg:svg");
-    svg.setAttribute("version", "1.1");
-    svg.setAttribute("width", width + "px");
-    svg.setAttribute("height", height + "px");
-    svg.setAttribute("preserveAspectRatio", "none");
-    svg.setAttribute("viewBox", "0 0 " + width + " " + height);
-    return svg;
+    if (this.loadingTask.onUnsupportedFeature) {
+      this.loadingTask.onUnsupportedFeature(featureId);
+    }
   }
 
-  createElement(type) {
-    (0, _util.assert)(typeof type === "string", "Invalid SVG element type");
-    return document.createElementNS(SVG_NS, type);
+  getData() {
+    return this.messageHandler.sendWithPromise("GetData", null);
   }
 
-}
+  getPage(pageNumber) {
+    if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {
+      return Promise.reject(new Error("Invalid page request"));
+    }
 
-exports.DOMSVGFactory = DOMSVGFactory;
+    const pageIndex = pageNumber - 1;
 
-class PageViewport {
-  constructor({
-    viewBox,
-    scale,
-    rotation,
-    offsetX = 0,
-    offsetY = 0,
-    dontFlip = false
-  }) {
-    this.viewBox = viewBox;
-    this.scale = scale;
-    this.rotation = rotation;
-    this.offsetX = offsetX;
-    this.offsetY = offsetY;
-    const centerX = (viewBox[2] + viewBox[0]) / 2;
-    const centerY = (viewBox[3] + viewBox[1]) / 2;
-    let rotateA, rotateB, rotateC, rotateD;
-    rotation = rotation % 360;
-    rotation = rotation < 0 ? rotation + 360 : rotation;
+    if (pageIndex in this.pagePromises) {
+      return this.pagePromises[pageIndex];
+    }
 
-    switch (rotation) {
-      case 180:
-        rotateA = -1;
-        rotateB = 0;
-        rotateC = 0;
-        rotateD = 1;
-        break;
+    const promise = this.messageHandler.sendWithPromise("GetPage", {
+      pageIndex
+    }).then(pageInfo => {
+      if (this.destroyed) {
+        throw new Error("Transport destroyed");
+      }
+
+      const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.pdfBug);
+      this.pageCache[pageIndex] = page;
+      return page;
+    });
+    this.pagePromises[pageIndex] = promise;
+    return promise;
+  }
 
-      case 90:
-        rotateA = 0;
-        rotateB = 1;
-        rotateC = 1;
-        rotateD = 0;
-        break;
+  getPageIndex(ref) {
+    return this.messageHandler.sendWithPromise("GetPageIndex", {
+      ref
+    }).catch(function (reason) {
+      return Promise.reject(new Error(reason));
+    });
+  }
 
-      case 270:
-        rotateA = 0;
-        rotateB = -1;
-        rotateC = -1;
-        rotateD = 0;
-        break;
+  getAnnotations(pageIndex, intent) {
+    return this.messageHandler.sendWithPromise("GetAnnotations", {
+      pageIndex,
+      intent
+    });
+  }
 
-      default:
-        rotateA = 1;
-        rotateB = 0;
-        rotateC = 0;
-        rotateD = -1;
-        break;
-    }
+  getDestinations() {
+    return this.messageHandler.sendWithPromise("GetDestinations", null);
+  }
 
-    if (dontFlip) {
-      rotateC = -rotateC;
-      rotateD = -rotateD;
+  getDestination(id) {
+    if (typeof id !== "string") {
+      return Promise.reject(new Error("Invalid destination request."));
     }
 
-    let offsetCanvasX, offsetCanvasY;
-    let width, height;
+    return this.messageHandler.sendWithPromise("GetDestination", {
+      id
+    });
+  }
 
-    if (rotateA === 0) {
-      offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;
-      offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;
-      width = Math.abs(viewBox[3] - viewBox[1]) * scale;
-      height = Math.abs(viewBox[2] - viewBox[0]) * scale;
-    } else {
-      offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;
-      offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;
-      width = Math.abs(viewBox[2] - viewBox[0]) * scale;
-      height = Math.abs(viewBox[3] - viewBox[1]) * scale;
-    }
+  getPageLabels() {
+    return this.messageHandler.sendWithPromise("GetPageLabels", null);
+  }
 
-    this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - 
rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * 
scale * centerY];
-    this.width = width;
-    this.height = height;
+  getPageLayout() {
+    return this.messageHandler.sendWithPromise("GetPageLayout", null);
   }
 
-  clone({
-    scale = this.scale,
-    rotation = this.rotation,
-    offsetX = this.offsetX,
-    offsetY = this.offsetY,
-    dontFlip = false
-  } = {}) {
-    return new PageViewport({
-      viewBox: this.viewBox.slice(),
-      scale,
-      rotation,
-      offsetX,
-      offsetY,
-      dontFlip
-    });
+  getPageMode() {
+    return this.messageHandler.sendWithPromise("GetPageMode", null);
   }
 
-  convertToViewportPoint(x, y) {
-    return _util.Util.applyTransform([x, y], this.transform);
+  getViewerPreferences() {
+    return this.messageHandler.sendWithPromise("GetViewerPreferences", null);
   }
 
-  convertToViewportRectangle(rect) {
-    const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);
+  getOpenAction() {
+    return this.messageHandler.sendWithPromise("GetOpenAction", null);
+  }
 
-    const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);
+  getAttachments() {
+    return this.messageHandler.sendWithPromise("GetAttachments", null);
+  }
 
-    return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];
+  getJavaScript() {
+    return this.messageHandler.sendWithPromise("GetJavaScript", null);
   }
 
-  convertToPdfPoint(x, y) {
-    return _util.Util.applyInverseTransform([x, y], this.transform);
+  getOutline() {
+    return this.messageHandler.sendWithPromise("GetOutline", null);
   }
 
-}
+  getPermissions() {
+    return this.messageHandler.sendWithPromise("GetPermissions", null);
+  }
 
-exports.PageViewport = PageViewport;
+  getMetadata() {
+    return this.messageHandler.sendWithPromise("GetMetadata", null).then(results => {
+      return {
+        info: results[0],
+        metadata: results[1] ? new _metadata.Metadata(results[1]) : null,
+        contentDispositionFilename: this._fullReader ? this._fullReader.filename : null
+      };
+    });
+  }
 
-class RenderingCancelledException extends _util.BaseException {
-  constructor(msg, type) {
-    super(msg);
-    this.type = type;
+  getStats() {
+    return this.messageHandler.sendWithPromise("GetStats", null);
   }
 
-}
+  startCleanup() {
+    return this.messageHandler.sendWithPromise("Cleanup", null).then(() => {
+      for (let i = 0, ii = this.pageCache.length; i < ii; i++) {
+        const page = this.pageCache[i];
 
-exports.RenderingCancelledException = RenderingCancelledException;
-const LinkTarget = {
-  NONE: 0,
-  SELF: 1,
-  BLANK: 2,
-  PARENT: 3,
-  TOP: 4
-};
-exports.LinkTarget = LinkTarget;
+        if (page) {
+          const cleanupSuccessful = page.cleanup();
 
-function addLinkAttributes(link, {
-  url,
-  target,
-  rel,
-  enabled = true
-} = {}) {
-  (0, _util.assert)(url && typeof url === "string", 'addLinkAttributes: A valid "url" parameter must 
provided.');
-  const urlNullRemoved = (0, _util.removeNullCharacters)(url);
+          if (!cleanupSuccessful) {
+            throw new Error(`startCleanup: Page ${i + 1} is currently rendering.`);
+          }
+        }
+      }
 
-  if (enabled) {
-    link.href = link.title = urlNullRemoved;
-  } else {
-    link.href = "";
-    link.title = `Disabled: ${urlNullRemoved}`;
+      this.commonObjs.clear();
+      this.fontLoader.clear();
+    });
+  }
 
-    link.onclick = () => {
-      return false;
+  get loadingParams() {
+    const params = this._params;
+    return (0, _util.shadow)(this, "loadingParams", {
+      disableAutoFetch: params.disableAutoFetch,
+      disableFontFace: params.disableFontFace
+    });
+  }
+
+}
+
+class PDFObjects {
+  constructor() {
+    this._objs = Object.create(null);
+  }
+
+  _ensureObj(objId) {
+    if (this._objs[objId]) {
+      return this._objs[objId];
+    }
+
+    return this._objs[objId] = {
+      capability: (0, _util.createPromiseCapability)(),
+      data: null,
+      resolved: false
     };
   }
 
-  let targetStr = "";
+  get(objId, callback = null) {
+    if (callback) {
+      this._ensureObj(objId).capability.promise.then(callback);
 
-  switch (target) {
-    case LinkTarget.NONE:
-      break;
+      return null;
+    }
 
-    case LinkTarget.SELF:
-      targetStr = "_self";
-      break;
+    const obj = this._objs[objId];
 
-    case LinkTarget.BLANK:
-      targetStr = "_blank";
-      break;
+    if (!obj || !obj.resolved) {
+      throw new Error(`Requesting object that isn't resolved yet ${objId}.`);
+    }
 
-    case LinkTarget.PARENT:
-      targetStr = "_parent";
-      break;
+    return obj.data;
+  }
 
-    case LinkTarget.TOP:
-      targetStr = "_top";
-      break;
+  has(objId) {
+    const obj = this._objs[objId];
+    return obj ? obj.resolved : false;
   }
 
-  link.target = targetStr;
-  link.rel = typeof rel === "string" ? rel : DEFAULT_LINK_REL;
-}
+  resolve(objId, data) {
+    const obj = this._ensureObj(objId);
+
+    obj.resolved = true;
+    obj.data = data;
+    obj.capability.resolve(data);
+  }
+
+  clear() {
+    this._objs = Object.create(null);
+  }
 
-function getFilenameFromUrl(url) {
-  const anchor = url.indexOf("#");
-  const query = url.indexOf("?");
-  const end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);
-  return url.substring(url.lastIndexOf("/", end) + 1, end);
 }
 
-class StatTimer {
-  constructor() {
-    this.started = Object.create(null);
-    this.times = [];
+class RenderTask {
+  constructor(internalRenderTask) {
+    this._internalRenderTask = internalRenderTask;
+    this.onContinue = null;
   }
 
-  time(name) {
-    if (name in this.started) {
-      (0, _util.warn)(`Timer is already running for ${name}`);
-    }
+  get promise() {
+    return this._internalRenderTask.capability.promise;
+  }
 
-    this.started[name] = Date.now();
+  cancel() {
+    this._internalRenderTask.cancel();
   }
 
-  timeEnd(name) {
-    if (!(name in this.started)) {
-      (0, _util.warn)(`Timer has not been started for ${name}`);
-    }
+}
 
-    this.times.push({
-      name,
-      start: this.started[name],
-      end: Date.now()
-    });
-    delete this.started[name];
-  }
+const InternalRenderTask = function InternalRenderTaskClosure() {
+  const canvasInRendering = new WeakSet();
 
-  toString() {
-    const outBuf = [];
-    let longest = 0;
+  class InternalRenderTask {
+    constructor({
+      callback,
+      params,
+      objs,
+      commonObjs,
+      operatorList,
+      pageIndex,
+      canvasFactory,
+      webGLContext,
+      useRequestAnimationFrame = false,
+      pdfBug = false
+    }) {
+      this.callback = callback;
+      this.params = params;
+      this.objs = objs;
+      this.commonObjs = commonObjs;
+      this.operatorListIdx = null;
+      this.operatorList = operatorList;
+      this._pageIndex = pageIndex;
+      this.canvasFactory = canvasFactory;
+      this.webGLContext = webGLContext;
+      this._pdfBug = pdfBug;
+      this.running = false;
+      this.graphicsReadyCallback = null;
+      this.graphicsReady = false;
+      this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== "undefined";
+      this.cancelled = false;
+      this.capability = (0, _util.createPromiseCapability)();
+      this.task = new RenderTask(this);
+      this._continueBound = this._continue.bind(this);
+      this._scheduleNextBound = this._scheduleNext.bind(this);
+      this._nextBound = this._next.bind(this);
+      this._canvas = params.canvasContext.canvas;
+    }
 
-    for (const time of this.times) {
-      const name = time.name;
+    initializeGraphics(transparency = false) {
+      if (this.cancelled) {
+        return;
+      }
 
-      if (name.length > longest) {
-        longest = name.length;
+      if (this._canvas) {
+        if (canvasInRendering.has(this._canvas)) {
+          throw new Error("Cannot use the same canvas during multiple render() operations. " + "Use 
different canvas or ensure previous operations were " + "cancelled or completed.");
+        }
+
+        canvasInRendering.add(this._canvas);
       }
-    }
 
-    for (const time of this.times) {
-      const duration = time.end - time.start;
-      outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\n`);
-    }
+      if (this._pdfBug && globalThis.StepperManager && globalThis.StepperManager.enabled) {
+        this.stepper = globalThis.StepperManager.create(this._pageIndex);
+        this.stepper.init(this.operatorList);
+        this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();
+      }
 
-    return outBuf.join("");
-  }
+      const {
+        canvasContext,
+        viewport,
+        transform,
+        imageLayer,
+        background
+      } = this.params;
+      this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, 
this.webGLContext, imageLayer);
+      this.gfx.beginDrawing({
+        transform,
+        viewport,
+        transparency,
+        background
+      });
+      this.operatorListIdx = 0;
+      this.graphicsReady = true;
 
-}
+      if (this.graphicsReadyCallback) {
+        this.graphicsReadyCallback();
+      }
+    }
 
-exports.StatTimer = StatTimer;
+    cancel(error = null) {
+      this.running = false;
+      this.cancelled = true;
 
-function isFetchSupported() {
-  return typeof fetch !== "undefined" && typeof Response !== "undefined" && "body" in Response.prototype && 
typeof ReadableStream !== "undefined";
-}
+      if (this.gfx) {
+        this.gfx.endDrawing();
+      }
 
-function isValidFetchUrl(url, baseUrl) {
-  try {
-    const {
-      protocol
-    } = baseUrl ? new URL(url, baseUrl) : new URL(url);
-    return protocol === "http:" || protocol === "https:";
-  } catch (ex) {
-    return false;
-  }
-}
+      if (this._canvas) {
+        canvasInRendering.delete(this._canvas);
+      }
 
-function loadScript(src) {
-  return new Promise((resolve, reject) => {
-    const script = document.createElement("script");
-    script.src = src;
-    script.onload = resolve;
+      this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page 
${this._pageIndex + 1}`, "canvas"));
+    }
 
-    script.onerror = function () {
-      reject(new Error(`Cannot load script at: ${script.src}`));
-    };
+    operatorListChanged() {
+      if (!this.graphicsReady) {
+        if (!this.graphicsReadyCallback) {
+          this.graphicsReadyCallback = this._continueBound;
+        }
 
-    (document.head || document.documentElement).appendChild(script);
-  });
-}
+        return;
+      }
 
-function deprecated(details) {
-  console.log("Deprecated API usage: " + details);
-}
+      if (this.stepper) {
+        this.stepper.updateOperatorList(this.operatorList);
+      }
 
-function releaseImageResources(img) {
-  (0, _util.assert)(img instanceof Image, "Invalid `img` parameter.");
-  const url = img.src;
+      if (this.running) {
+        return;
+      }
 
-  if (typeof url === "string" && url.startsWith("blob:") && URL.revokeObjectURL) {
-    URL.revokeObjectURL(url);
-  }
+      this._continue();
+    }
 
-  img.removeAttribute("src");
-}
+    _continue() {
+      this.running = true;
 
-let pdfDateStringRegex;
+      if (this.cancelled) {
+        return;
+      }
 
-class PDFDateString {
-  static toDateObject(input) {
-    if (!input || !(0, _util.isString)(input)) {
-      return null;
+      if (this.task.onContinue) {
+        this.task.onContinue(this._scheduleNextBound);
+      } else {
+        this._scheduleNext();
+      }
     }
 
-    if (!pdfDateStringRegex) {
-      pdfDateStringRegex = new RegExp("^D:" + "(\\d{4})" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + 
"(\\d{2})?" + "(\\d{2})?" + "([Z|+|-])?" + "(\\d{2})?" + "'?" + "(\\d{2})?" + "'?");
+    _scheduleNext() {
+      if (this._useRequestAnimationFrame) {
+        window.requestAnimationFrame(() => {
+          this._nextBound().catch(this.cancel.bind(this));
+        });
+      } else {
+        Promise.resolve().then(this._nextBound).catch(this.cancel.bind(this));
+      }
     }
 
-    const matches = pdfDateStringRegex.exec(input);
+    async _next() {
+      if (this.cancelled) {
+        return;
+      }
 
-    if (!matches) {
-      return null;
-    }
+      this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, 
this._continueBound, this.stepper);
 
-    const year = parseInt(matches[1], 10);
-    let month = parseInt(matches[2], 10);
-    month = month >= 1 && month <= 12 ? month - 1 : 0;
-    let day = parseInt(matches[3], 10);
-    day = day >= 1 && day <= 31 ? day : 1;
-    let hour = parseInt(matches[4], 10);
-    hour = hour >= 0 && hour <= 23 ? hour : 0;
-    let minute = parseInt(matches[5], 10);
-    minute = minute >= 0 && minute <= 59 ? minute : 0;
-    let second = parseInt(matches[6], 10);
-    second = second >= 0 && second <= 59 ? second : 0;
-    const universalTimeRelation = matches[7] || "Z";
-    let offsetHour = parseInt(matches[8], 10);
-    offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;
-    let offsetMinute = parseInt(matches[9], 10) || 0;
-    offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;
+      if (this.operatorListIdx === this.operatorList.argsArray.length) {
+        this.running = false;
 
-    if (universalTimeRelation === "-") {
-      hour += offsetHour;
-      minute += offsetMinute;
-    } else if (universalTimeRelation === "+") {
-      hour -= offsetHour;
-      minute -= offsetMinute;
+        if (this.operatorList.lastChunk) {
+          this.gfx.endDrawing();
+
+          if (this._canvas) {
+            canvasInRendering.delete(this._canvas);
+          }
+
+          this.callback();
+        }
+      }
     }
 
-    return new Date(Date.UTC(year, month, day, hour, minute, second));
   }
 
-}
+  return InternalRenderTask;
+}();
 
-exports.PDFDateString = PDFDateString;
+const version = '2.5.207';
+exports.version = version;
+const build = '0974d6052';
+exports.build = build;
 
 /***/ }),
-/* 5 */
+/* 6 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -3748,7 +3815,7 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.FontLoader = exports.FontFaceObject = void 0;
 
-var _util = __w_pdfjs_require__(1);
+var _util = __w_pdfjs_require__(2);
 
 class BaseFontLoader {
   constructor({
@@ -3812,7 +3879,7 @@ class BaseFontLoader {
           await nativeFontFace.loaded;
         } catch (ex) {
           this._onUnsupportedFeature({
-            featureId: _util.UNSUPPORTED_FEATURES.font
+            featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative
           });
 
           (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);
@@ -4079,7 +4146,7 @@ class FontFaceObject {
 
       if (this._onUnsupportedFeature) {
         this._onUnsupportedFeature({
-          featureId: _util.UNSUPPORTED_FEATURES.font
+          featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath
         });
       }
 
@@ -4111,49 +4178,17 @@ class FontFaceObject {
         current = cmds[i];
 
         if (current.cmd === "scale") {
-          current.args = [size, -size];
-        }
-
-        c[current.cmd].apply(c, current.args);
-      }
-    };
-  }
-
-}
-
-exports.FontFaceObject = FontFaceObject;
-
-/***/ }),
-/* 6 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
-
-const compatibilityParams = Object.create(null);
-{
-  const {
-    isNodeJS
-  } = __w_pdfjs_require__(7);
-
-  const userAgent = typeof navigator !== "undefined" && navigator.userAgent || "";
-  const isIE = /Trident/.test(userAgent);
-  const isIOSChrome = /CriOS/.test(userAgent);
+          current.args = [size, -size];
+        }
 
-  (function checkOnBlobSupport() {
-    if (isIE || isIOSChrome) {
-      compatibilityParams.disableCreateObjectURL = true;
-    }
-  })();
+        c[current.cmd].apply(c, current.args);
+      }
+    };
+  }
 
-  (function checkFontFaceAndImage() {
-    if (isNodeJS) {
-      compatibilityParams.disableFontFace = true;
-      compatibilityParams.nativeImageDecoderSupport = "none";
-    }
-  })();
 }
-exports.apiCompatibilityParams = Object.freeze(compatibilityParams);
+
+exports.FontFaceObject = FontFaceObject;
 
 /***/ }),
 /* 7 */
@@ -4165,9 +4200,20 @@ exports.apiCompatibilityParams = Object.freeze(compatibilityParams);
 Object.defineProperty(exports, "__esModule", {
   value: true
 });
-exports.isNodeJS = void 0;
-const isNodeJS = typeof process === "object" && process + "" === "[object process]" && 
!process.versions["nw"] && !process.versions["electron"];
-exports.isNodeJS = isNodeJS;
+exports.apiCompatibilityParams = void 0;
+
+var _is_node = __w_pdfjs_require__(4);
+
+const compatibilityParams = Object.create(null);
+{
+  (function checkFontFace() {
+    if (_is_node.isNodeJS) {
+      compatibilityParams.disableFontFace = true;
+    }
+  })();
+}
+const apiCompatibilityParams = Object.freeze(compatibilityParams);
+exports.apiCompatibilityParams = apiCompatibilityParams;
 
 /***/ }),
 /* 8 */
@@ -4181,7 +4227,7 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.CanvasGraphics = void 0;
 
-var _util = __w_pdfjs_require__(1);
+var _util = __w_pdfjs_require__(2);
 
 var _pattern_helper = __w_pdfjs_require__(9);
 
@@ -4485,12 +4531,12 @@ function compileType3Glyph(imgData) {
     c.translate(0, -height);
     c.beginPath();
 
-    for (var i = 0, ii = outlines.length; i < ii; i++) {
-      var o = outlines[i];
+    for (let k = 0, kk = outlines.length; k < kk; k++) {
+      var o = outlines[k];
       c.moveTo(o[0], o[1]);
 
-      for (var j = 2, jj = o.length; j < jj; j += 2) {
-        c.lineTo(o[j], o[j + 1]);
+      for (let l = 2, ll = o.length; l < ll; l += 2) {
+        c.lineTo(o[l], o[l + 1]);
       }
     }
 
@@ -5442,7 +5488,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() {
       var fontSize = current.fontSize / current.fontSizeScale;
       var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;
       var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);
-      const patternFill = current.patternFill && font.data;
+      const patternFill = current.patternFill && !font.missingFile;
       var addToPath;
 
       if (font.disableFontFace || isAddToPathSet || patternFill) {
@@ -5950,33 +5996,6 @@ var CanvasGraphics = function CanvasGraphicsClosure() {
     endAnnotation: function CanvasGraphics_endAnnotation() {
       this.restore();
     },
-    paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) {
-      const domImage = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId);
-
-      if (!domImage) {
-        (0, _util.warn)("Dependent image isn't ready yet");
-        return;
-      }
-
-      this.save();
-      var ctx = this.ctx;
-      ctx.scale(1 / w, -1 / h);
-      ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h);
-
-      if (this.imageLayer) {
-        var currentTransform = ctx.mozCurrentTransformInverse;
-        var position = this.getCanvasPosition(0, 0);
-        this.imageLayer.appendImage({
-          objId,
-          left: position[0],
-          top: position[1],
-          width: w / currentTransform[0],
-          height: h / currentTransform[3]
-        });
-      }
-
-      this.restore();
-    },
     paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {
       var ctx = this.ctx;
       var width = img.width,
@@ -6060,7 +6079,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() {
       }
     },
     paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {
-      const imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId);
+      const imgData = objId.startsWith("g_") ? this.commonObjs.get(objId) : this.objs.get(objId);
 
       if (!imgData) {
         (0, _util.warn)("Dependent image isn't ready yet");
@@ -6070,7 +6089,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() {
       this.paintInlineImageXObject(imgData);
     },
     paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, 
positions) {
-      const imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId);
+      const imgData = objId.startsWith("g_") ? this.commonObjs.get(objId) : this.objs.get(objId);
 
       if (!imgData) {
         (0, _util.warn)("Dependent image isn't ready yet");
@@ -6255,7 +6274,7 @@ Object.defineProperty(exports, "__esModule", {
 exports.getShadingPatternFromIR = getShadingPatternFromIR;
 exports.TilingPattern = void 0;
 
-var _util = __w_pdfjs_require__(1);
+var _util = __w_pdfjs_require__(2);
 
 var ShadingIRs = {};
 
@@ -6415,7 +6434,7 @@ var createMeshCanvas = function createMeshCanvasClosure() {
       var j = rowSize * y + x1_ * 4;
 
       for (var x = x1_; x <= x2_; x++) {
-        let k = (xa - x) / (xa - xb);
+        k = (xa - x) / (xa - xb);
 
         if (k < 0) {
           k = 0;
@@ -6751,7 +6770,7 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.MessageHandler = void 0;
 
-var _util = __w_pdfjs_require__(1);
+var _util = __w_pdfjs_require__(2);
 
 const CallbackKind = {
   UNKNOWN: 0,
@@ -6847,22 +6866,22 @@ class MessageHandler {
       }
 
       if (data.callbackId) {
-        const sourceName = this.sourceName;
-        const targetName = data.sourceName;
+        const cbSourceName = this.sourceName;
+        const cbTargetName = data.sourceName;
         new Promise(function (resolve) {
           resolve(action(data.data));
         }).then(function (result) {
           comObj.postMessage({
-            sourceName,
-            targetName,
+            sourceName: cbSourceName,
+            targetName: cbTargetName,
             callback: CallbackKind.DATA,
             callbackId: data.callbackId,
             data: result
           });
         }, function (reason) {
           comObj.postMessage({
-            sourceName,
-            targetName,
+            sourceName: cbSourceName,
+            targetName: cbTargetName,
             callback: CallbackKind.ERROR,
             callbackId: data.callbackId,
             reason: wrapReason(reason)
@@ -7252,7 +7271,7 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.Metadata = void 0;
 
-var _util = __w_pdfjs_require__(1);
+var _util = __w_pdfjs_require__(2);
 
 var _xml_parser = __w_pdfjs_require__(13);
 
@@ -7823,11 +7842,11 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.PDFDataTransportStream = void 0;
 
-var _util = __w_pdfjs_require__(1);
+var _util = __w_pdfjs_require__(2);
 
 class PDFDataTransportStream {
   constructor(params, pdfDataRangeTransport) {
-    (0, _util.assert)(pdfDataRangeTransport);
+    (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required 
"pdfDataRangeTransport" argument.');
     this._queuedChunks = [];
     this._progressiveDone = params.progressiveDone || false;
     const initialData = params.initialData;
@@ -7892,7 +7911,7 @@ class PDFDataTransportStream {
         return true;
       });
 
-      (0, _util.assert)(found);
+      (0, _util.assert)(found, "_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.");
     }
   }
 
@@ -7938,7 +7957,7 @@ class PDFDataTransportStream {
   }
 
   getFullReader() {
-    (0, _util.assert)(!this._fullRequestReader);
+    (0, _util.assert)(!this._fullRequestReader, "PDFDataTransportStream.getFullReader can only be called 
once.");
     const queuedChunks = this._queuedChunks;
     this._queuedChunks = null;
     return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone);
@@ -8178,7 +8197,7 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.WebGLContext = void 0;
 
-var _util = __w_pdfjs_require__(1);
+var _util = __w_pdfjs_require__(2);
 
 class WebGLContext {
   constructor({
@@ -8542,1792 +8561,1807 @@ var WebGLUtils = function WebGLUtilsClosure() {
           break;
 
         case "triangles":
-          for (var j = 0, jj = ps.length; j < jj; j++) {
-            coords[pIndex] = coordsMap[ps[j]];
-            coords[pIndex + 1] = coordsMap[ps[j] + 1];
-            colors[cIndex] = colorsMap[cs[j]];
-            colors[cIndex + 1] = colorsMap[cs[j] + 1];
-            colors[cIndex + 2] = colorsMap[cs[j] + 2];
-            pIndex += 2;
-            cIndex += 3;
-          }
-
-          break;
-      }
-    }
-
-    if (backgroundColor) {
-      gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0);
-    } else {
-      gl.clearColor(0, 0, 0, 0);
-    }
-
-    gl.clear(gl.COLOR_BUFFER_BIT);
-    var coordsBuffer = gl.createBuffer();
-    gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer);
-    gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW);
-    gl.enableVertexAttribArray(cache.positionLocation);
-    gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);
-    var colorsBuffer = gl.createBuffer();
-    gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer);
-    gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);
-    gl.enableVertexAttribArray(cache.colorLocation);
-    gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0);
-    gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);
-    gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);
-    gl.drawArrays(gl.TRIANGLES, 0, count);
-    gl.flush();
-    gl.deleteBuffer(coordsBuffer);
-    gl.deleteBuffer(colorsBuffer);
-    return canvas;
-  }
-
-  return {
-    tryInitGL() {
-      try {
-        generateGL();
-        return !!currentGL;
-      } catch (ex) {}
-
-      return false;
-    },
-
-    composeSMask,
-    drawFigures,
-
-    cleanup() {
-      if (smaskCache && smaskCache.canvas) {
-        smaskCache.canvas.width = 0;
-        smaskCache.canvas.height = 0;
-      }
-
-      if (figuresCache && figuresCache.canvas) {
-        figuresCache.canvas.width = 0;
-        figuresCache.canvas.height = 0;
-      }
-
-      smaskCache = null;
-      figuresCache = null;
-    }
-
-  };
-}();
-
-/***/ }),
-/* 16 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.renderTextLayer = void 0;
-
-var _util = __w_pdfjs_require__(1);
-
-var renderTextLayer = function renderTextLayerClosure() {
-  var MAX_TEXT_DIVS_TO_RENDER = 100000;
-  var NonWhitespaceRegexp = /\S/;
-
-  function isAllWhitespace(str) {
-    return !NonWhitespaceRegexp.test(str);
-  }
-
-  function appendText(task, geom, styles) {
-    var textDiv = document.createElement("span");
-    var textDivProperties = {
-      angle: 0,
-      canvasWidth: 0,
-      isWhitespace: false,
-      originalTransform: null,
-      paddingBottom: 0,
-      paddingLeft: 0,
-      paddingRight: 0,
-      paddingTop: 0,
-      scale: 1
-    };
-
-    task._textDivs.push(textDiv);
-
-    if (isAllWhitespace(geom.str)) {
-      textDivProperties.isWhitespace = true;
-
-      task._textDivProperties.set(textDiv, textDivProperties);
-
-      return;
-    }
-
-    var tx = _util.Util.transform(task._viewport.transform, geom.transform);
-
-    var angle = Math.atan2(tx[1], tx[0]);
-    var style = styles[geom.fontName];
-
-    if (style.vertical) {
-      angle += Math.PI / 2;
-    }
-
-    var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]);
-    var fontAscent = fontHeight;
-
-    if (style.ascent) {
-      fontAscent = style.ascent * fontAscent;
-    } else if (style.descent) {
-      fontAscent = (1 + style.descent) * fontAscent;
-    }
-
-    let left, top;
-
-    if (angle === 0) {
-      left = tx[4];
-      top = tx[5] - fontAscent;
-    } else {
-      left = tx[4] + fontAscent * Math.sin(angle);
-      top = tx[5] - fontAscent * Math.cos(angle);
-    }
-
-    textDiv.style.left = `${left}px`;
-    textDiv.style.top = `${top}px`;
-    textDiv.style.fontSize = `${fontHeight}px`;
-    textDiv.style.fontFamily = style.fontFamily;
-    textDiv.textContent = geom.str;
-
-    if (task._fontInspectorEnabled) {
-      textDiv.dataset.fontName = geom.fontName;
-    }
-
-    if (angle !== 0) {
-      textDivProperties.angle = angle * (180 / Math.PI);
-    }
-
-    if (geom.str.length > 1) {
-      if (style.vertical) {
-        textDivProperties.canvasWidth = geom.height * task._viewport.scale;
-      } else {
-        textDivProperties.canvasWidth = geom.width * task._viewport.scale;
-      }
-    }
-
-    task._textDivProperties.set(textDiv, textDivProperties);
-
-    if (task._textContentStream) {
-      task._layoutText(textDiv);
-    }
-
-    if (task._enhanceTextSelection) {
-      var angleCos = 1,
-          angleSin = 0;
-
-      if (angle !== 0) {
-        angleCos = Math.cos(angle);
-        angleSin = Math.sin(angle);
-      }
-
-      var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;
-      var divHeight = fontHeight;
-      var m, b;
-
-      if (angle !== 0) {
-        m = [angleCos, angleSin, -angleSin, angleCos, left, top];
-        b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);
-      } else {
-        b = [left, top, left + divWidth, top + divHeight];
-      }
-
-      task._bounds.push({
-        left: b[0],
-        top: b[1],
-        right: b[2],
-        bottom: b[3],
-        div: textDiv,
-        size: [divWidth, divHeight],
-        m
-      });
-    }
-  }
-
-  function render(task) {
-    if (task._canceled) {
-      return;
-    }
-
-    var textDivs = task._textDivs;
-    var capability = task._capability;
-    var textDivsLength = textDivs.length;
+          for (var j = 0, jj = ps.length; j < jj; j++) {
+            coords[pIndex] = coordsMap[ps[j]];
+            coords[pIndex + 1] = coordsMap[ps[j] + 1];
+            colors[cIndex] = colorsMap[cs[j]];
+            colors[cIndex + 1] = colorsMap[cs[j] + 1];
+            colors[cIndex + 2] = colorsMap[cs[j] + 2];
+            pIndex += 2;
+            cIndex += 3;
+          }
 
-    if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {
-      task._renderingDone = true;
-      capability.resolve();
-      return;
+          break;
+      }
     }
 
-    if (!task._textContentStream) {
-      for (var i = 0; i < textDivsLength; i++) {
-        task._layoutText(textDivs[i]);
-      }
+    if (backgroundColor) {
+      gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0);
+    } else {
+      gl.clearColor(0, 0, 0, 0);
     }
 
-    task._renderingDone = true;
-    capability.resolve();
+    gl.clear(gl.COLOR_BUFFER_BIT);
+    var coordsBuffer = gl.createBuffer();
+    gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer);
+    gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW);
+    gl.enableVertexAttribArray(cache.positionLocation);
+    gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);
+    var colorsBuffer = gl.createBuffer();
+    gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer);
+    gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);
+    gl.enableVertexAttribArray(cache.colorLocation);
+    gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0);
+    gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);
+    gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);
+    gl.drawArrays(gl.TRIANGLES, 0, count);
+    gl.flush();
+    gl.deleteBuffer(coordsBuffer);
+    gl.deleteBuffer(colorsBuffer);
+    return canvas;
   }
 
-  function expand(task) {
-    var bounds = task._bounds;
-    var viewport = task._viewport;
-    var expanded = expandBounds(viewport.width, viewport.height, bounds);
-
-    for (var i = 0; i < expanded.length; i++) {
-      var div = bounds[i].div;
+  return {
+    tryInitGL() {
+      try {
+        generateGL();
+        return !!currentGL;
+      } catch (ex) {}
 
-      var divProperties = task._textDivProperties.get(div);
+      return false;
+    },
 
-      if (divProperties.angle === 0) {
-        divProperties.paddingLeft = bounds[i].left - expanded[i].left;
-        divProperties.paddingTop = bounds[i].top - expanded[i].top;
-        divProperties.paddingRight = expanded[i].right - bounds[i].right;
-        divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;
+    composeSMask,
+    drawFigures,
 
-        task._textDivProperties.set(div, divProperties);
+    cleanup() {
+      if (smaskCache && smaskCache.canvas) {
+        smaskCache.canvas.width = 0;
+        smaskCache.canvas.height = 0;
+      }
 
-        continue;
+      if (figuresCache && figuresCache.canvas) {
+        figuresCache.canvas.width = 0;
+        figuresCache.canvas.height = 0;
       }
 
-      var e = expanded[i],
-          b = bounds[i];
-      var m = b.m,
-          c = m[0],
-          s = m[1];
-      var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];
-      var ts = new Float64Array(64);
-      points.forEach(function (p, i) {
-        var t = _util.Util.applyTransform(p, m);
+      smaskCache = null;
+      figuresCache = null;
+    }
 
-        ts[i + 0] = c && (e.left - t[0]) / c;
-        ts[i + 4] = s && (e.top - t[1]) / s;
-        ts[i + 8] = c && (e.right - t[0]) / c;
-        ts[i + 12] = s && (e.bottom - t[1]) / s;
-        ts[i + 16] = s && (e.left - t[0]) / -s;
-        ts[i + 20] = c && (e.top - t[1]) / c;
-        ts[i + 24] = s && (e.right - t[0]) / -s;
-        ts[i + 28] = c && (e.bottom - t[1]) / c;
-        ts[i + 32] = c && (e.left - t[0]) / -c;
-        ts[i + 36] = s && (e.top - t[1]) / -s;
-        ts[i + 40] = c && (e.right - t[0]) / -c;
-        ts[i + 44] = s && (e.bottom - t[1]) / -s;
-        ts[i + 48] = s && (e.left - t[0]) / s;
-        ts[i + 52] = c && (e.top - t[1]) / -c;
-        ts[i + 56] = s && (e.right - t[0]) / s;
-        ts[i + 60] = c && (e.bottom - t[1]) / -c;
-      });
+  };
+}();
 
-      var findPositiveMin = function (ts, offset, count) {
-        var result = 0;
+/***/ }),
+/* 16 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
 
-        for (var i = 0; i < count; i++) {
-          var t = ts[offset++];
+"use strict";
 
-          if (t > 0) {
-            result = result ? Math.min(t, result) : t;
-          }
-        }
 
-        return result;
-      };
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.AnnotationLayer = void 0;
 
-      var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));
-      divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;
-      divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;
-      divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;
-      divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;
+var _display_utils = __w_pdfjs_require__(1);
 
-      task._textDivProperties.set(div, divProperties);
-    }
-  }
+var _util = __w_pdfjs_require__(2);
 
-  function expandBounds(width, height, boxes) {
-    var bounds = boxes.map(function (box, i) {
-      return {
-        x1: box.left,
-        y1: box.top,
-        x2: box.right,
-        y2: box.bottom,
-        index: i,
-        x1New: undefined,
-        x2New: undefined
-      };
-    });
-    expandBoundsLTR(width, bounds);
-    var expanded = new Array(boxes.length);
-    bounds.forEach(function (b) {
-      var i = b.index;
-      expanded[i] = {
-        left: b.x1New,
-        top: 0,
-        right: b.x2New,
-        bottom: 0
-      };
-    });
-    boxes.map(function (box, i) {
-      var e = expanded[i],
-          b = bounds[i];
-      b.x1 = box.top;
-      b.y1 = width - e.right;
-      b.x2 = box.bottom;
-      b.y2 = width - e.left;
-      b.index = i;
-      b.x1New = undefined;
-      b.x2New = undefined;
-    });
-    expandBoundsLTR(height, bounds);
-    bounds.forEach(function (b) {
-      var i = b.index;
-      expanded[i].top = b.x1New;
-      expanded[i].bottom = b.x2New;
-    });
-    return expanded;
-  }
+class AnnotationElementFactory {
+  static create(parameters) {
+    const subtype = parameters.data.annotationType;
 
-  function expandBoundsLTR(width, bounds) {
-    bounds.sort(function (a, b) {
-      return a.x1 - b.x1 || a.index - b.index;
-    });
-    var fakeBoundary = {
-      x1: -Infinity,
-      y1: -Infinity,
-      x2: 0,
-      y2: Infinity,
-      index: -1,
-      x1New: 0,
-      x2New: 0
-    };
-    var horizon = [{
-      start: -Infinity,
-      end: Infinity,
-      boundary: fakeBoundary
-    }];
-    bounds.forEach(function (boundary) {
-      var i = 0;
+    switch (subtype) {
+      case _util.AnnotationType.LINK:
+        return new LinkAnnotationElement(parameters);
 
-      while (i < horizon.length && horizon[i].end <= boundary.y1) {
-        i++;
-      }
+      case _util.AnnotationType.TEXT:
+        return new TextAnnotationElement(parameters);
 
-      var j = horizon.length - 1;
+      case _util.AnnotationType.WIDGET:
+        const fieldType = parameters.data.fieldType;
 
-      while (j >= 0 && horizon[j].start >= boundary.y2) {
-        j--;
-      }
+        switch (fieldType) {
+          case "Tx":
+            return new TextWidgetAnnotationElement(parameters);
 
-      var horizonPart, affectedBoundary;
-      var q,
-          k,
-          maxXNew = -Infinity;
+          case "Btn":
+            if (parameters.data.radioButton) {
+              return new RadioButtonWidgetAnnotationElement(parameters);
+            } else if (parameters.data.checkBox) {
+              return new CheckboxWidgetAnnotationElement(parameters);
+            }
 
-      for (q = i; q <= j; q++) {
-        horizonPart = horizon[q];
-        affectedBoundary = horizonPart.boundary;
-        var xNew;
+            return new PushButtonWidgetAnnotationElement(parameters);
 
-        if (affectedBoundary.x2 > boundary.x1) {
-          xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1;
-        } else if (affectedBoundary.x2New === undefined) {
-          xNew = (affectedBoundary.x2 + boundary.x1) / 2;
-        } else {
-          xNew = affectedBoundary.x2New;
+          case "Ch":
+            return new ChoiceWidgetAnnotationElement(parameters);
         }
 
-        if (xNew > maxXNew) {
-          maxXNew = xNew;
-        }
-      }
+        return new WidgetAnnotationElement(parameters);
 
-      boundary.x1New = maxXNew;
+      case _util.AnnotationType.POPUP:
+        return new PopupAnnotationElement(parameters);
 
-      for (q = i; q <= j; q++) {
-        horizonPart = horizon[q];
-        affectedBoundary = horizonPart.boundary;
+      case _util.AnnotationType.FREETEXT:
+        return new FreeTextAnnotationElement(parameters);
 
-        if (affectedBoundary.x2New === undefined) {
-          if (affectedBoundary.x2 > boundary.x1) {
-            if (affectedBoundary.index > boundary.index) {
-              affectedBoundary.x2New = affectedBoundary.x2;
-            }
-          } else {
-            affectedBoundary.x2New = maxXNew;
-          }
-        } else if (affectedBoundary.x2New > maxXNew) {
-          affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);
-        }
-      }
+      case _util.AnnotationType.LINE:
+        return new LineAnnotationElement(parameters);
+
+      case _util.AnnotationType.SQUARE:
+        return new SquareAnnotationElement(parameters);
+
+      case _util.AnnotationType.CIRCLE:
+        return new CircleAnnotationElement(parameters);
+
+      case _util.AnnotationType.POLYLINE:
+        return new PolylineAnnotationElement(parameters);
+
+      case _util.AnnotationType.CARET:
+        return new CaretAnnotationElement(parameters);
+
+      case _util.AnnotationType.INK:
+        return new InkAnnotationElement(parameters);
 
-      var changedHorizon = [],
-          lastBoundary = null;
+      case _util.AnnotationType.POLYGON:
+        return new PolygonAnnotationElement(parameters);
 
-      for (q = i; q <= j; q++) {
-        horizonPart = horizon[q];
-        affectedBoundary = horizonPart.boundary;
-        var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;
+      case _util.AnnotationType.HIGHLIGHT:
+        return new HighlightAnnotationElement(parameters);
 
-        if (lastBoundary === useBoundary) {
-          changedHorizon[changedHorizon.length - 1].end = horizonPart.end;
-        } else {
-          changedHorizon.push({
-            start: horizonPart.start,
-            end: horizonPart.end,
-            boundary: useBoundary
-          });
-          lastBoundary = useBoundary;
-        }
-      }
+      case _util.AnnotationType.UNDERLINE:
+        return new UnderlineAnnotationElement(parameters);
 
-      if (horizon[i].start < boundary.y1) {
-        changedHorizon[0].start = boundary.y1;
-        changedHorizon.unshift({
-          start: horizon[i].start,
-          end: boundary.y1,
-          boundary: horizon[i].boundary
-        });
-      }
+      case _util.AnnotationType.SQUIGGLY:
+        return new SquigglyAnnotationElement(parameters);
 
-      if (boundary.y2 < horizon[j].end) {
-        changedHorizon[changedHorizon.length - 1].end = boundary.y2;
-        changedHorizon.push({
-          start: boundary.y2,
-          end: horizon[j].end,
-          boundary: horizon[j].boundary
-        });
-      }
+      case _util.AnnotationType.STRIKEOUT:
+        return new StrikeOutAnnotationElement(parameters);
 
-      for (q = i; q <= j; q++) {
-        horizonPart = horizon[q];
-        affectedBoundary = horizonPart.boundary;
+      case _util.AnnotationType.STAMP:
+        return new StampAnnotationElement(parameters);
 
-        if (affectedBoundary.x2New !== undefined) {
-          continue;
-        }
+      case _util.AnnotationType.FILEATTACHMENT:
+        return new FileAttachmentAnnotationElement(parameters);
 
-        var used = false;
+      default:
+        return new AnnotationElement(parameters);
+    }
+  }
 
-        for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {
-          used = horizon[k].boundary === affectedBoundary;
-        }
+}
 
-        for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {
-          used = horizon[k].boundary === affectedBoundary;
-        }
+class AnnotationElement {
+  constructor(parameters, isRenderable = false, ignoreBorder = false) {
+    this.isRenderable = isRenderable;
+    this.data = parameters.data;
+    this.layer = parameters.layer;
+    this.page = parameters.page;
+    this.viewport = parameters.viewport;
+    this.linkService = parameters.linkService;
+    this.downloadManager = parameters.downloadManager;
+    this.imageResourcesPath = parameters.imageResourcesPath;
+    this.renderInteractiveForms = parameters.renderInteractiveForms;
+    this.svgFactory = parameters.svgFactory;
 
-        for (k = 0; !used && k < changedHorizon.length; k++) {
-          used = changedHorizon[k].boundary === affectedBoundary;
-        }
+    if (isRenderable) {
+      this.container = this._createContainer(ignoreBorder);
+    }
+  }
 
-        if (!used) {
-          affectedBoundary.x2New = maxXNew;
-        }
-      }
+  _createContainer(ignoreBorder = false) {
+    const data = this.data,
+          page = this.page,
+          viewport = this.viewport;
+    const container = document.createElement("section");
+    let width = data.rect[2] - data.rect[0];
+    let height = data.rect[3] - data.rect[1];
+    container.setAttribute("data-annotation-id", data.id);
 
-      Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon));
-    });
-    horizon.forEach(function (horizonPart) {
-      var affectedBoundary = horizonPart.boundary;
+    const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], 
data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);
 
-      if (affectedBoundary.x2New === undefined) {
-        affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);
+    container.style.transform = `matrix(${viewport.transform.join(",")})`;
+    container.style.transformOrigin = `-${rect[0]}px -${rect[1]}px`;
+
+    if (!ignoreBorder && data.borderStyle.width > 0) {
+      container.style.borderWidth = `${data.borderStyle.width}px`;
+
+      if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) {
+        width = width - 2 * data.borderStyle.width;
+        height = height - 2 * data.borderStyle.width;
       }
-    });
-  }
 
-  function TextLayerRenderTask({
-    textContent,
-    textContentStream,
-    container,
-    viewport,
-    textDivs,
-    textContentItemsStr,
-    enhanceTextSelection
-  }) {
-    this._textContent = textContent;
-    this._textContentStream = textContentStream;
-    this._container = container;
-    this._viewport = viewport;
-    this._textDivs = textDivs || [];
-    this._textContentItemsStr = textContentItemsStr || [];
-    this._enhanceTextSelection = !!enhanceTextSelection;
-    this._fontInspectorEnabled = !!(globalThis.FontInspector && globalThis.FontInspector.enabled);
-    this._reader = null;
-    this._layoutTextLastFontSize = null;
-    this._layoutTextLastFontFamily = null;
-    this._layoutTextCtx = null;
-    this._textDivProperties = new WeakMap();
-    this._renderingDone = false;
-    this._canceled = false;
-    this._capability = (0, _util.createPromiseCapability)();
-    this._renderTimer = null;
-    this._bounds = [];
+      const horizontalRadius = data.borderStyle.horizontalCornerRadius;
+      const verticalRadius = data.borderStyle.verticalCornerRadius;
 
-    this._capability.promise.finally(() => {
-      if (this._layoutTextCtx) {
-        this._layoutTextCtx.canvas.width = 0;
-        this._layoutTextCtx.canvas.height = 0;
-        this._layoutTextCtx = null;
+      if (horizontalRadius > 0 || verticalRadius > 0) {
+        const radius = `${horizontalRadius}px / ${verticalRadius}px`;
+        container.style.borderRadius = radius;
       }
-    }).catch(() => {});
-  }
 
-  TextLayerRenderTask.prototype = {
-    get promise() {
-      return this._capability.promise;
-    },
+      switch (data.borderStyle.style) {
+        case _util.AnnotationBorderStyleType.SOLID:
+          container.style.borderStyle = "solid";
+          break;
 
-    cancel: function TextLayer_cancel() {
-      this._canceled = true;
+        case _util.AnnotationBorderStyleType.DASHED:
+          container.style.borderStyle = "dashed";
+          break;
 
-      if (this._reader) {
-        this._reader.cancel(new _util.AbortException("TextLayer task cancelled."));
+        case _util.AnnotationBorderStyleType.BEVELED:
+          (0, _util.warn)("Unimplemented border style: beveled");
+          break;
 
-        this._reader = null;
+        case _util.AnnotationBorderStyleType.INSET:
+          (0, _util.warn)("Unimplemented border style: inset");
+          break;
+
+        case _util.AnnotationBorderStyleType.UNDERLINE:
+          container.style.borderBottomStyle = "solid";
+          break;
+
+        default:
+          break;
       }
 
-      if (this._renderTimer !== null) {
-        clearTimeout(this._renderTimer);
-        this._renderTimer = null;
+      if (data.color) {
+        container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, 
data.color[2] | 0);
+      } else {
+        container.style.borderWidth = 0;
       }
+    }
 
-      this._capability.reject(new Error("TextLayer task cancelled."));
-    },
+    container.style.left = `${rect[0]}px`;
+    container.style.top = `${rect[1]}px`;
+    container.style.width = `${width}px`;
+    container.style.height = `${height}px`;
+    return container;
+  }
 
-    _processItems(items, styleCache) {
-      for (let i = 0, len = items.length; i < len; i++) {
-        this._textContentItemsStr.push(items[i].str);
+  _createPopup(container, trigger, data) {
+    if (!trigger) {
+      trigger = document.createElement("div");
+      trigger.style.height = container.style.height;
+      trigger.style.width = container.style.width;
+      container.appendChild(trigger);
+    }
 
-        appendText(this, items[i], styleCache);
-      }
-    },
+    const popupElement = new PopupElement({
+      container,
+      trigger,
+      color: data.color,
+      title: data.title,
+      modificationDate: data.modificationDate,
+      contents: data.contents,
+      hideWrapper: true
+    });
+    const popup = popupElement.render();
+    popup.style.left = container.style.width;
+    container.appendChild(popup);
+  }
 
-    _layoutText(textDiv) {
-      const textDivProperties = this._textDivProperties.get(textDiv);
+  render() {
+    (0, _util.unreachable)("Abstract method `AnnotationElement.render` called");
+  }
+
+}
+
+class LinkAnnotationElement extends AnnotationElement {
+  constructor(parameters) {
+    const isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action);
+    super(parameters, isRenderable);
+  }
+
+  render() {
+    this.container.className = "linkAnnotation";
+    const {
+      data,
+      linkService
+    } = this;
+    const link = document.createElement("a");
+
+    if (data.url) {
+      (0, _display_utils.addLinkAttributes)(link, {
+        url: data.url,
+        target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget,
+        rel: linkService.externalLinkRel,
+        enabled: linkService.externalLinkEnabled
+      });
+    } else if (data.action) {
+      this._bindNamedAction(link, data.action);
+    } else {
+      this._bindLink(link, data.dest);
+    }
 
-      if (textDivProperties.isWhitespace) {
-        return;
-      }
+    this.container.appendChild(link);
+    return this.container;
+  }
 
-      let transform = "";
+  _bindLink(link, destination) {
+    link.href = this.linkService.getDestinationHash(destination);
 
-      if (textDivProperties.canvasWidth !== 0) {
-        const {
-          fontSize,
-          fontFamily
-        } = textDiv.style;
+    link.onclick = () => {
+      if (destination) {
+        this.linkService.navigateTo(destination);
+      }
 
-        if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {
-          this._layoutTextCtx.font = `${fontSize} ${fontFamily}`;
-          this._layoutTextLastFontSize = fontSize;
-          this._layoutTextLastFontFamily = fontFamily;
-        }
+      return false;
+    };
 
-        const {
-          width
-        } = this._layoutTextCtx.measureText(textDiv.textContent);
+    if (destination) {
+      link.className = "internalLink";
+    }
+  }
 
-        if (width > 0) {
-          textDivProperties.scale = textDivProperties.canvasWidth / width;
-          transform = `scaleX(${textDivProperties.scale})`;
-        }
-      }
+  _bindNamedAction(link, action) {
+    link.href = this.linkService.getAnchorUrl("");
 
-      if (textDivProperties.angle !== 0) {
-        transform = `rotate(${textDivProperties.angle}deg) ${transform}`;
-      }
+    link.onclick = () => {
+      this.linkService.executeNamedAction(action);
+      return false;
+    };
 
-      if (transform.length > 0) {
-        if (this._enhanceTextSelection) {
-          textDivProperties.originalTransform = transform;
-        }
+    link.className = "internalLink";
+  }
 
-        textDiv.style.transform = transform;
-      }
+}
 
-      this._textDivProperties.set(textDiv, textDivProperties);
+class TextAnnotationElement extends AnnotationElement {
+  constructor(parameters) {
+    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
+    super(parameters, isRenderable);
+  }
 
-      this._container.appendChild(textDiv);
-    },
+  render() {
+    this.container.className = "textAnnotation";
+    const image = document.createElement("img");
+    image.style.height = this.container.style.height;
+    image.style.width = this.container.style.width;
+    image.src = this.imageResourcesPath + "annotation-" + this.data.name.toLowerCase() + ".svg";
+    image.alt = "[{{type}} Annotation]";
+    image.dataset.l10nId = "text_annotation_type";
+    image.dataset.l10nArgs = JSON.stringify({
+      type: this.data.name
+    });
 
-    _render: function TextLayer_render(timeout) {
-      const capability = (0, _util.createPromiseCapability)();
-      let styleCache = Object.create(null);
-      const canvas = document.createElement("canvas");
-      canvas.mozOpaque = true;
-      this._layoutTextCtx = canvas.getContext("2d", {
-        alpha: false
-      });
+    if (!this.data.hasPopup) {
+      this._createPopup(this.container, image, this.data);
+    }
 
-      if (this._textContent) {
-        const textItems = this._textContent.items;
-        const textStyles = this._textContent.styles;
+    this.container.appendChild(image);
+    return this.container;
+  }
 
-        this._processItems(textItems, textStyles);
+}
 
-        capability.resolve();
-      } else if (this._textContentStream) {
-        const pump = () => {
-          this._reader.read().then(({
-            value,
-            done
-          }) => {
-            if (done) {
-              capability.resolve();
-              return;
-            }
+class WidgetAnnotationElement extends AnnotationElement {
+  render() {
+    return this.container;
+  }
 
-            Object.assign(styleCache, value.styles);
+}
 
-            this._processItems(value.items, styleCache);
+class TextWidgetAnnotationElement extends WidgetAnnotationElement {
+  constructor(parameters) {
+    const isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && 
!!parameters.data.fieldValue;
+    super(parameters, isRenderable);
+  }
 
-            pump();
-          }, capability.reject);
-        };
+  render() {
+    const TEXT_ALIGNMENT = ["left", "center", "right"];
+    this.container.className = "textWidgetAnnotation";
+    let element = null;
 
-        this._reader = this._textContentStream.getReader();
-        pump();
+    if (this.renderInteractiveForms) {
+      if (this.data.multiLine) {
+        element = document.createElement("textarea");
+        element.textContent = this.data.fieldValue;
       } else {
-        throw new Error('Neither "textContent" nor "textContentStream"' + " parameters specified.");
+        element = document.createElement("input");
+        element.type = "text";
+        element.setAttribute("value", this.data.fieldValue);
       }
 
-      capability.promise.then(() => {
-        styleCache = null;
+      element.disabled = this.data.readOnly;
+      element.name = this.data.fieldName;
 
-        if (!timeout) {
-          render(this);
-        } else {
-          this._renderTimer = setTimeout(() => {
-            render(this);
-            this._renderTimer = null;
-          }, timeout);
-        }
-      }, this._capability.reject);
-    },
-    expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {
-      if (!this._enhanceTextSelection || !this._renderingDone) {
-        return;
+      if (this.data.maxLen !== null) {
+        element.maxLength = this.data.maxLen;
       }
 
-      if (this._bounds !== null) {
-        expand(this);
-        this._bounds = null;
+      if (this.data.comb) {
+        const fieldWidth = this.data.rect[2] - this.data.rect[0];
+        const combWidth = fieldWidth / this.data.maxLen;
+        element.classList.add("comb");
+        element.style.letterSpacing = `calc(${combWidth}px - 1ch)`;
       }
+    } else {
+      element = document.createElement("div");
+      element.textContent = this.data.fieldValue;
+      element.style.verticalAlign = "middle";
+      element.style.display = "table-cell";
+      let font = null;
 
-      const transformBuf = [],
-            paddingBuf = [];
+      if (this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName)) {
+        font = this.page.commonObjs.get(this.data.fontRefName);
+      }
 
-      for (var i = 0, ii = this._textDivs.length; i < ii; i++) {
-        const div = this._textDivs[i];
+      this._setTextStyle(element, font);
+    }
 
-        const divProps = this._textDivProperties.get(div);
+    if (this.data.textAlignment !== null) {
+      element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];
+    }
 
-        if (divProps.isWhitespace) {
-          continue;
-        }
+    this.container.appendChild(element);
+    return this.container;
+  }
 
-        if (expandDivs) {
-          transformBuf.length = 0;
-          paddingBuf.length = 0;
+  _setTextStyle(element, font) {
+    const style = element.style;
+    style.fontSize = `${this.data.fontSize}px`;
+    style.direction = this.data.fontDirection < 0 ? "rtl" : "ltr";
 
-          if (divProps.originalTransform) {
-            transformBuf.push(divProps.originalTransform);
-          }
+    if (!font) {
+      return;
+    }
 
-          if (divProps.paddingTop > 0) {
-            paddingBuf.push(`${divProps.paddingTop}px`);
-            transformBuf.push(`translateY(${-divProps.paddingTop}px)`);
-          } else {
-            paddingBuf.push(0);
-          }
+    let bold = "normal";
 
-          if (divProps.paddingRight > 0) {
-            paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`);
-          } else {
-            paddingBuf.push(0);
-          }
+    if (font.black) {
+      bold = "900";
+    } else if (font.bold) {
+      bold = "bold";
+    }
 
-          if (divProps.paddingBottom > 0) {
-            paddingBuf.push(`${divProps.paddingBottom}px`);
-          } else {
-            paddingBuf.push(0);
-          }
+    style.fontWeight = bold;
+    style.fontStyle = font.italic ? "italic" : "normal";
+    const fontFamily = font.loadedName ? `"${font.loadedName}", ` : "";
+    const fallbackName = font.fallbackName || "Helvetica, sans-serif";
+    style.fontFamily = fontFamily + fallbackName;
+  }
 
-          if (divProps.paddingLeft > 0) {
-            paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`);
-            transformBuf.push(`translateX(${-divProps.paddingLeft / divProps.scale}px)`);
-          } else {
-            paddingBuf.push(0);
-          }
+}
+
+class CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {
+  constructor(parameters) {
+    super(parameters, parameters.renderInteractiveForms);
+  }
+
+  render() {
+    this.container.className = "buttonWidgetAnnotation checkBox";
+    const element = document.createElement("input");
+    element.disabled = this.data.readOnly;
+    element.type = "checkbox";
+    element.name = this.data.fieldName;
+
+    if (this.data.fieldValue && this.data.fieldValue !== "Off") {
+      element.setAttribute("checked", true);
+    }
+
+    this.container.appendChild(element);
+    return this.container;
+  }
+
+}
 
-          div.style.padding = paddingBuf.join(" ");
+class RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {
+  constructor(parameters) {
+    super(parameters, parameters.renderInteractiveForms);
+  }
 
-          if (transformBuf.length) {
-            div.style.transform = transformBuf.join(" ");
-          }
-        } else {
-          div.style.padding = null;
-          div.style.transform = divProps.originalTransform;
-        }
-      }
+  render() {
+    this.container.className = "buttonWidgetAnnotation radioButton";
+    const element = document.createElement("input");
+    element.disabled = this.data.readOnly;
+    element.type = "radio";
+    element.name = this.data.fieldName;
+
+    if (this.data.fieldValue === this.data.buttonValue) {
+      element.setAttribute("checked", true);
     }
-  };
 
-  function renderTextLayer(renderParameters) {
-    var task = new TextLayerRenderTask({
-      textContent: renderParameters.textContent,
-      textContentStream: renderParameters.textContentStream,
-      container: renderParameters.container,
-      viewport: renderParameters.viewport,
-      textDivs: renderParameters.textDivs,
-      textContentItemsStr: renderParameters.textContentItemsStr,
-      enhanceTextSelection: renderParameters.enhanceTextSelection
-    });
+    this.container.appendChild(element);
+    return this.container;
+  }
 
-    task._render(renderParameters.timeout);
+}
 
-    return task;
+class PushButtonWidgetAnnotationElement extends LinkAnnotationElement {
+  render() {
+    const container = super.render();
+    container.className = "buttonWidgetAnnotation pushButton";
+    return container;
   }
 
-  return renderTextLayer;
-}();
+}
 
-exports.renderTextLayer = renderTextLayer;
+class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {
+  constructor(parameters) {
+    super(parameters, parameters.renderInteractiveForms);
+  }
 
-/***/ }),
-/* 17 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
+  render() {
+    this.container.className = "choiceWidgetAnnotation";
+    const selectElement = document.createElement("select");
+    selectElement.disabled = this.data.readOnly;
+    selectElement.name = this.data.fieldName;
 
-"use strict";
+    if (!this.data.combo) {
+      selectElement.size = this.data.options.length;
 
+      if (this.data.multiSelect) {
+        selectElement.multiple = true;
+      }
+    }
 
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.AnnotationLayer = void 0;
+    for (const option of this.data.options) {
+      const optionElement = document.createElement("option");
+      optionElement.textContent = option.displayValue;
+      optionElement.value = option.exportValue;
 
-var _display_utils = __w_pdfjs_require__(4);
+      if (this.data.fieldValue.includes(option.displayValue)) {
+        optionElement.setAttribute("selected", true);
+      }
 
-var _util = __w_pdfjs_require__(1);
+      selectElement.appendChild(optionElement);
+    }
 
-class AnnotationElementFactory {
-  static create(parameters) {
-    const subtype = parameters.data.annotationType;
+    this.container.appendChild(selectElement);
+    return this.container;
+  }
 
-    switch (subtype) {
-      case _util.AnnotationType.LINK:
-        return new LinkAnnotationElement(parameters);
+}
 
-      case _util.AnnotationType.TEXT:
-        return new TextAnnotationElement(parameters);
+class PopupAnnotationElement extends AnnotationElement {
+  constructor(parameters) {
+    const isRenderable = !!(parameters.data.title || parameters.data.contents);
+    super(parameters, isRenderable);
+  }
 
-      case _util.AnnotationType.WIDGET:
-        const fieldType = parameters.data.fieldType;
+  render() {
+    const IGNORE_TYPES = ["Line", "Square", "Circle", "PolyLine", "Polygon", "Ink"];
+    this.container.className = "popupAnnotation";
 
-        switch (fieldType) {
-          case "Tx":
-            return new TextWidgetAnnotationElement(parameters);
+    if (IGNORE_TYPES.includes(this.data.parentType)) {
+      return this.container;
+    }
 
-          case "Btn":
-            if (parameters.data.radioButton) {
-              return new RadioButtonWidgetAnnotationElement(parameters);
-            } else if (parameters.data.checkBox) {
-              return new CheckboxWidgetAnnotationElement(parameters);
-            }
+    const selector = `[data-annotation-id="${this.data.parentId}"]`;
+    const parentElement = this.layer.querySelector(selector);
 
-            return new PushButtonWidgetAnnotationElement(parameters);
+    if (!parentElement) {
+      return this.container;
+    }
 
-          case "Ch":
-            return new ChoiceWidgetAnnotationElement(parameters);
-        }
+    const popup = new PopupElement({
+      container: this.container,
+      trigger: parentElement,
+      color: this.data.color,
+      title: this.data.title,
+      modificationDate: this.data.modificationDate,
+      contents: this.data.contents
+    });
+    const parentLeft = parseFloat(parentElement.style.left);
+    const parentWidth = parseFloat(parentElement.style.width);
+    this.container.style.transformOrigin = `-${parentLeft + parentWidth}px -${parentElement.style.top}`;
+    this.container.style.left = `${parentLeft + parentWidth}px`;
+    this.container.appendChild(popup.render());
+    return this.container;
+  }
 
-        return new WidgetAnnotationElement(parameters);
+}
 
-      case _util.AnnotationType.POPUP:
-        return new PopupAnnotationElement(parameters);
+class PopupElement {
+  constructor(parameters) {
+    this.container = parameters.container;
+    this.trigger = parameters.trigger;
+    this.color = parameters.color;
+    this.title = parameters.title;
+    this.modificationDate = parameters.modificationDate;
+    this.contents = parameters.contents;
+    this.hideWrapper = parameters.hideWrapper || false;
+    this.pinned = false;
+  }
 
-      case _util.AnnotationType.FREETEXT:
-        return new FreeTextAnnotationElement(parameters);
+  render() {
+    const BACKGROUND_ENLIGHT = 0.7;
+    const wrapper = document.createElement("div");
+    wrapper.className = "popupWrapper";
+    this.hideElement = this.hideWrapper ? wrapper : this.container;
+    this.hideElement.setAttribute("hidden", true);
+    const popup = document.createElement("div");
+    popup.className = "popup";
+    const color = this.color;
 
-      case _util.AnnotationType.LINE:
-        return new LineAnnotationElement(parameters);
+    if (color) {
+      const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];
+      const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];
+      const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];
+      popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0);
+    }
 
-      case _util.AnnotationType.SQUARE:
-        return new SquareAnnotationElement(parameters);
+    const title = document.createElement("h1");
+    title.textContent = this.title;
+    popup.appendChild(title);
 
-      case _util.AnnotationType.CIRCLE:
-        return new CircleAnnotationElement(parameters);
+    const dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate);
 
-      case _util.AnnotationType.POLYLINE:
-        return new PolylineAnnotationElement(parameters);
+    if (dateObject) {
+      const modificationDate = document.createElement("span");
+      modificationDate.textContent = "{{date}}, {{time}}";
+      modificationDate.dataset.l10nId = "annotation_date_string";
+      modificationDate.dataset.l10nArgs = JSON.stringify({
+        date: dateObject.toLocaleDateString(),
+        time: dateObject.toLocaleTimeString()
+      });
+      popup.appendChild(modificationDate);
+    }
 
-      case _util.AnnotationType.CARET:
-        return new CaretAnnotationElement(parameters);
+    const contents = this._formatContents(this.contents);
 
-      case _util.AnnotationType.INK:
-        return new InkAnnotationElement(parameters);
+    popup.appendChild(contents);
+    this.trigger.addEventListener("click", this._toggle.bind(this));
+    this.trigger.addEventListener("mouseover", this._show.bind(this, false));
+    this.trigger.addEventListener("mouseout", this._hide.bind(this, false));
+    popup.addEventListener("click", this._hide.bind(this, true));
+    wrapper.appendChild(popup);
+    return wrapper;
+  }
 
-      case _util.AnnotationType.POLYGON:
-        return new PolygonAnnotationElement(parameters);
+  _formatContents(contents) {
+    const p = document.createElement("p");
+    const lines = contents.split(/(?:\r\n?|\n)/);
 
-      case _util.AnnotationType.HIGHLIGHT:
-        return new HighlightAnnotationElement(parameters);
+    for (let i = 0, ii = lines.length; i < ii; ++i) {
+      const line = lines[i];
+      p.appendChild(document.createTextNode(line));
 
-      case _util.AnnotationType.UNDERLINE:
-        return new UnderlineAnnotationElement(parameters);
+      if (i < ii - 1) {
+        p.appendChild(document.createElement("br"));
+      }
+    }
 
-      case _util.AnnotationType.SQUIGGLY:
-        return new SquigglyAnnotationElement(parameters);
+    return p;
+  }
 
-      case _util.AnnotationType.STRIKEOUT:
-        return new StrikeOutAnnotationElement(parameters);
+  _toggle() {
+    if (this.pinned) {
+      this._hide(true);
+    } else {
+      this._show(true);
+    }
+  }
 
-      case _util.AnnotationType.STAMP:
-        return new StampAnnotationElement(parameters);
+  _show(pin = false) {
+    if (pin) {
+      this.pinned = true;
+    }
 
-      case _util.AnnotationType.FILEATTACHMENT:
-        return new FileAttachmentAnnotationElement(parameters);
+    if (this.hideElement.hasAttribute("hidden")) {
+      this.hideElement.removeAttribute("hidden");
+      this.container.style.zIndex += 1;
+    }
+  }
 
-      default:
-        return new AnnotationElement(parameters);
+  _hide(unpin = true) {
+    if (unpin) {
+      this.pinned = false;
+    }
+
+    if (!this.hideElement.hasAttribute("hidden") && !this.pinned) {
+      this.hideElement.setAttribute("hidden", true);
+      this.container.style.zIndex -= 1;
     }
   }
 
 }
 
-class AnnotationElement {
-  constructor(parameters, isRenderable = false, ignoreBorder = false) {
-    this.isRenderable = isRenderable;
-    this.data = parameters.data;
-    this.layer = parameters.layer;
-    this.page = parameters.page;
-    this.viewport = parameters.viewport;
-    this.linkService = parameters.linkService;
-    this.downloadManager = parameters.downloadManager;
-    this.imageResourcesPath = parameters.imageResourcesPath;
-    this.renderInteractiveForms = parameters.renderInteractiveForms;
-    this.svgFactory = parameters.svgFactory;
+class FreeTextAnnotationElement extends AnnotationElement {
+  constructor(parameters) {
+    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
+    super(parameters, isRenderable, true);
+  }
 
-    if (isRenderable) {
-      this.container = this._createContainer(ignoreBorder);
+  render() {
+    this.container.className = "freeTextAnnotation";
+
+    if (!this.data.hasPopup) {
+      this._createPopup(this.container, null, this.data);
     }
+
+    return this.container;
   }
 
-  _createContainer(ignoreBorder = false) {
-    const data = this.data,
-          page = this.page,
-          viewport = this.viewport;
-    const container = document.createElement("section");
-    let width = data.rect[2] - data.rect[0];
-    let height = data.rect[3] - data.rect[1];
-    container.setAttribute("data-annotation-id", data.id);
+}
 
-    const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], 
data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);
+class LineAnnotationElement extends AnnotationElement {
+  constructor(parameters) {
+    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
+    super(parameters, isRenderable, true);
+  }
 
-    container.style.transform = `matrix(${viewport.transform.join(",")})`;
-    container.style.transformOrigin = `-${rect[0]}px -${rect[1]}px`;
+  render() {
+    this.container.className = "lineAnnotation";
+    const data = this.data;
+    const width = data.rect[2] - data.rect[0];
+    const height = data.rect[3] - data.rect[1];
+    const svg = this.svgFactory.create(width, height);
+    const line = this.svgFactory.createElement("svg:line");
+    line.setAttribute("x1", data.rect[2] - data.lineCoordinates[0]);
+    line.setAttribute("y1", data.rect[3] - data.lineCoordinates[1]);
+    line.setAttribute("x2", data.rect[2] - data.lineCoordinates[2]);
+    line.setAttribute("y2", data.rect[3] - data.lineCoordinates[3]);
+    line.setAttribute("stroke-width", data.borderStyle.width || 1);
+    line.setAttribute("stroke", "transparent");
+    svg.appendChild(line);
+    this.container.append(svg);
 
-    if (!ignoreBorder && data.borderStyle.width > 0) {
-      container.style.borderWidth = `${data.borderStyle.width}px`;
+    this._createPopup(this.container, line, data);
 
-      if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) {
-        width = width - 2 * data.borderStyle.width;
-        height = height - 2 * data.borderStyle.width;
-      }
+    return this.container;
+  }
 
-      const horizontalRadius = data.borderStyle.horizontalCornerRadius;
-      const verticalRadius = data.borderStyle.verticalCornerRadius;
+}
 
-      if (horizontalRadius > 0 || verticalRadius > 0) {
-        const radius = `${horizontalRadius}px / ${verticalRadius}px`;
-        container.style.borderRadius = radius;
-      }
+class SquareAnnotationElement extends AnnotationElement {
+  constructor(parameters) {
+    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
+    super(parameters, isRenderable, true);
+  }
 
-      switch (data.borderStyle.style) {
-        case _util.AnnotationBorderStyleType.SOLID:
-          container.style.borderStyle = "solid";
-          break;
+  render() {
+    this.container.className = "squareAnnotation";
+    const data = this.data;
+    const width = data.rect[2] - data.rect[0];
+    const height = data.rect[3] - data.rect[1];
+    const svg = this.svgFactory.create(width, height);
+    const borderWidth = data.borderStyle.width;
+    const square = this.svgFactory.createElement("svg:rect");
+    square.setAttribute("x", borderWidth / 2);
+    square.setAttribute("y", borderWidth / 2);
+    square.setAttribute("width", width - borderWidth);
+    square.setAttribute("height", height - borderWidth);
+    square.setAttribute("stroke-width", borderWidth || 1);
+    square.setAttribute("stroke", "transparent");
+    square.setAttribute("fill", "none");
+    svg.appendChild(square);
+    this.container.append(svg);
 
-        case _util.AnnotationBorderStyleType.DASHED:
-          container.style.borderStyle = "dashed";
-          break;
+    this._createPopup(this.container, square, data);
 
-        case _util.AnnotationBorderStyleType.BEVELED:
-          (0, _util.warn)("Unimplemented border style: beveled");
-          break;
+    return this.container;
+  }
 
-        case _util.AnnotationBorderStyleType.INSET:
-          (0, _util.warn)("Unimplemented border style: inset");
-          break;
+}
 
-        case _util.AnnotationBorderStyleType.UNDERLINE:
-          container.style.borderBottomStyle = "solid";
-          break;
+class CircleAnnotationElement extends AnnotationElement {
+  constructor(parameters) {
+    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
+    super(parameters, isRenderable, true);
+  }
 
-        default:
-          break;
-      }
+  render() {
+    this.container.className = "circleAnnotation";
+    const data = this.data;
+    const width = data.rect[2] - data.rect[0];
+    const height = data.rect[3] - data.rect[1];
+    const svg = this.svgFactory.create(width, height);
+    const borderWidth = data.borderStyle.width;
+    const circle = this.svgFactory.createElement("svg:ellipse");
+    circle.setAttribute("cx", width / 2);
+    circle.setAttribute("cy", height / 2);
+    circle.setAttribute("rx", width / 2 - borderWidth / 2);
+    circle.setAttribute("ry", height / 2 - borderWidth / 2);
+    circle.setAttribute("stroke-width", borderWidth || 1);
+    circle.setAttribute("stroke", "transparent");
+    circle.setAttribute("fill", "none");
+    svg.appendChild(circle);
+    this.container.append(svg);
 
-      if (data.color) {
-        container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, 
data.color[2] | 0);
-      } else {
-        container.style.borderWidth = 0;
-      }
-    }
+    this._createPopup(this.container, circle, data);
 
-    container.style.left = `${rect[0]}px`;
-    container.style.top = `${rect[1]}px`;
-    container.style.width = `${width}px`;
-    container.style.height = `${height}px`;
-    return container;
+    return this.container;
   }
 
-  _createPopup(container, trigger, data) {
-    if (!trigger) {
-      trigger = document.createElement("div");
-      trigger.style.height = container.style.height;
-      trigger.style.width = container.style.width;
-      container.appendChild(trigger);
-    }
+}
 
-    const popupElement = new PopupElement({
-      container,
-      trigger,
-      color: data.color,
-      title: data.title,
-      modificationDate: data.modificationDate,
-      contents: data.contents,
-      hideWrapper: true
-    });
-    const popup = popupElement.render();
-    popup.style.left = container.style.width;
-    container.appendChild(popup);
+class PolylineAnnotationElement extends AnnotationElement {
+  constructor(parameters) {
+    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
+    super(parameters, isRenderable, true);
+    this.containerClassName = "polylineAnnotation";
+    this.svgElementName = "svg:polyline";
   }
 
   render() {
-    (0, _util.unreachable)("Abstract method `AnnotationElement.render` called");
+    this.container.className = this.containerClassName;
+    const data = this.data;
+    const width = data.rect[2] - data.rect[0];
+    const height = data.rect[3] - data.rect[1];
+    const svg = this.svgFactory.create(width, height);
+    let points = [];
+
+    for (const coordinate of data.vertices) {
+      const x = coordinate.x - data.rect[0];
+      const y = data.rect[3] - coordinate.y;
+      points.push(x + "," + y);
+    }
+
+    points = points.join(" ");
+    const polyline = this.svgFactory.createElement(this.svgElementName);
+    polyline.setAttribute("points", points);
+    polyline.setAttribute("stroke-width", data.borderStyle.width || 1);
+    polyline.setAttribute("stroke", "transparent");
+    polyline.setAttribute("fill", "none");
+    svg.appendChild(polyline);
+    this.container.append(svg);
+
+    this._createPopup(this.container, polyline, data);
+
+    return this.container;
   }
 
 }
 
-class LinkAnnotationElement extends AnnotationElement {
+class PolygonAnnotationElement extends PolylineAnnotationElement {
   constructor(parameters) {
-    const isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action);
-    super(parameters, isRenderable);
+    super(parameters);
+    this.containerClassName = "polygonAnnotation";
+    this.svgElementName = "svg:polygon";
+  }
+
+}
+
+class CaretAnnotationElement extends AnnotationElement {
+  constructor(parameters) {
+    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
+    super(parameters, isRenderable, true);
   }
 
   render() {
-    this.container.className = "linkAnnotation";
-    const {
-      data,
-      linkService
-    } = this;
-    const link = document.createElement("a");
+    this.container.className = "caretAnnotation";
 
-    if (data.url) {
-      (0, _display_utils.addLinkAttributes)(link, {
-        url: data.url,
-        target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget,
-        rel: linkService.externalLinkRel,
-        enabled: linkService.externalLinkEnabled
-      });
-    } else if (data.action) {
-      this._bindNamedAction(link, data.action);
-    } else {
-      this._bindLink(link, data.dest);
+    if (!this.data.hasPopup) {
+      this._createPopup(this.container, null, this.data);
     }
 
-    this.container.appendChild(link);
     return this.container;
   }
 
-  _bindLink(link, destination) {
-    link.href = this.linkService.getDestinationHash(destination);
+}
+
+class InkAnnotationElement extends AnnotationElement {
+  constructor(parameters) {
+    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
+    super(parameters, isRenderable, true);
+    this.containerClassName = "inkAnnotation";
+    this.svgElementName = "svg:polyline";
+  }
+
+  render() {
+    this.container.className = this.containerClassName;
+    const data = this.data;
+    const width = data.rect[2] - data.rect[0];
+    const height = data.rect[3] - data.rect[1];
+    const svg = this.svgFactory.create(width, height);
+
+    for (const inkList of data.inkLists) {
+      let points = [];
 
-    link.onclick = () => {
-      if (destination) {
-        this.linkService.navigateTo(destination);
+      for (const coordinate of inkList) {
+        const x = coordinate.x - data.rect[0];
+        const y = data.rect[3] - coordinate.y;
+        points.push(`${x},${y}`);
       }
 
-      return false;
-    };
-
-    if (destination) {
-      link.className = "internalLink";
-    }
-  }
+      points = points.join(" ");
+      const polyline = this.svgFactory.createElement(this.svgElementName);
+      polyline.setAttribute("points", points);
+      polyline.setAttribute("stroke-width", data.borderStyle.width || 1);
+      polyline.setAttribute("stroke", "transparent");
+      polyline.setAttribute("fill", "none");
 
-  _bindNamedAction(link, action) {
-    link.href = this.linkService.getAnchorUrl("");
+      this._createPopup(this.container, polyline, data);
 
-    link.onclick = () => {
-      this.linkService.executeNamedAction(action);
-      return false;
-    };
+      svg.appendChild(polyline);
+    }
 
-    link.className = "internalLink";
+    this.container.append(svg);
+    return this.container;
   }
 
 }
 
-class TextAnnotationElement extends AnnotationElement {
+class HighlightAnnotationElement extends AnnotationElement {
   constructor(parameters) {
     const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
-    super(parameters, isRenderable);
+    super(parameters, isRenderable, true);
   }
 
   render() {
-    this.container.className = "textAnnotation";
-    const image = document.createElement("img");
-    image.style.height = this.container.style.height;
-    image.style.width = this.container.style.width;
-    image.src = this.imageResourcesPath + "annotation-" + this.data.name.toLowerCase() + ".svg";
-    image.alt = "[{{type}} Annotation]";
-    image.dataset.l10nId = "text_annotation_type";
-    image.dataset.l10nArgs = JSON.stringify({
-      type: this.data.name
-    });
+    this.container.className = "highlightAnnotation";
 
     if (!this.data.hasPopup) {
-      this._createPopup(this.container, image, this.data);
+      this._createPopup(this.container, null, this.data);
     }
 
-    this.container.appendChild(image);
     return this.container;
   }
 
 }
 
-class WidgetAnnotationElement extends AnnotationElement {
+class UnderlineAnnotationElement extends AnnotationElement {
+  constructor(parameters) {
+    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
+    super(parameters, isRenderable, true);
+  }
+
   render() {
+    this.container.className = "underlineAnnotation";
+
+    if (!this.data.hasPopup) {
+      this._createPopup(this.container, null, this.data);
+    }
+
     return this.container;
   }
 
 }
 
-class TextWidgetAnnotationElement extends WidgetAnnotationElement {
+class SquigglyAnnotationElement extends AnnotationElement {
   constructor(parameters) {
-    const isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && 
!!parameters.data.fieldValue;
-    super(parameters, isRenderable);
+    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
+    super(parameters, isRenderable, true);
   }
 
   render() {
-    const TEXT_ALIGNMENT = ["left", "center", "right"];
-    this.container.className = "textWidgetAnnotation";
-    let element = null;
-
-    if (this.renderInteractiveForms) {
-      if (this.data.multiLine) {
-        element = document.createElement("textarea");
-        element.textContent = this.data.fieldValue;
-      } else {
-        element = document.createElement("input");
-        element.type = "text";
-        element.setAttribute("value", this.data.fieldValue);
-      }
-
-      element.disabled = this.data.readOnly;
-
-      if (this.data.maxLen !== null) {
-        element.maxLength = this.data.maxLen;
-      }
-
-      if (this.data.comb) {
-        const fieldWidth = this.data.rect[2] - this.data.rect[0];
-        const combWidth = fieldWidth / this.data.maxLen;
-        element.classList.add("comb");
-        element.style.letterSpacing = `calc(${combWidth}px - 1ch)`;
-      }
-    } else {
-      element = document.createElement("div");
-      element.textContent = this.data.fieldValue;
-      element.style.verticalAlign = "middle";
-      element.style.display = "table-cell";
-      let font = null;
-
-      if (this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName)) {
-        font = this.page.commonObjs.get(this.data.fontRefName);
-      }
-
-      this._setTextStyle(element, font);
-    }
+    this.container.className = "squigglyAnnotation";
 
-    if (this.data.textAlignment !== null) {
-      element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];
+    if (!this.data.hasPopup) {
+      this._createPopup(this.container, null, this.data);
     }
 
-    this.container.appendChild(element);
     return this.container;
   }
 
-  _setTextStyle(element, font) {
-    const style = element.style;
-    style.fontSize = `${this.data.fontSize}px`;
-    style.direction = this.data.fontDirection < 0 ? "rtl" : "ltr";
+}
 
-    if (!font) {
-      return;
-    }
+class StrikeOutAnnotationElement extends AnnotationElement {
+  constructor(parameters) {
+    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
+    super(parameters, isRenderable, true);
+  }
 
-    let bold = "normal";
+  render() {
+    this.container.className = "strikeoutAnnotation";
 
-    if (font.black) {
-      bold = "900";
-    } else if (font.bold) {
-      bold = "bold";
+    if (!this.data.hasPopup) {
+      this._createPopup(this.container, null, this.data);
     }
 
-    style.fontWeight = bold;
-    style.fontStyle = font.italic ? "italic" : "normal";
-    const fontFamily = font.loadedName ? `"${font.loadedName}", ` : "";
-    const fallbackName = font.fallbackName || "Helvetica, sans-serif";
-    style.fontFamily = fontFamily + fallbackName;
+    return this.container;
   }
 
 }
 
-class CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {
+class StampAnnotationElement extends AnnotationElement {
   constructor(parameters) {
-    super(parameters, parameters.renderInteractiveForms);
+    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
+    super(parameters, isRenderable, true);
   }
 
   render() {
-    this.container.className = "buttonWidgetAnnotation checkBox";
-    const element = document.createElement("input");
-    element.disabled = this.data.readOnly;
-    element.type = "checkbox";
+    this.container.className = "stampAnnotation";
 
-    if (this.data.fieldValue && this.data.fieldValue !== "Off") {
-      element.setAttribute("checked", true);
+    if (!this.data.hasPopup) {
+      this._createPopup(this.container, null, this.data);
     }
 
-    this.container.appendChild(element);
     return this.container;
   }
 
 }
 
-class RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {
+class FileAttachmentAnnotationElement extends AnnotationElement {
   constructor(parameters) {
-    super(parameters, parameters.renderInteractiveForms);
+    super(parameters, true);
+    const {
+      filename,
+      content
+    } = this.data.file;
+    this.filename = (0, _display_utils.getFilenameFromUrl)(filename);
+    this.content = content;
+
+    if (this.linkService.eventBus) {
+      this.linkService.eventBus.dispatch("fileattachmentannotation", {
+        source: this,
+        id: (0, _util.stringToPDFString)(filename),
+        filename,
+        content
+      });
+    }
   }
 
   render() {
-    this.container.className = "buttonWidgetAnnotation radioButton";
-    const element = document.createElement("input");
-    element.disabled = this.data.readOnly;
-    element.type = "radio";
-    element.name = this.data.fieldName;
+    this.container.className = "fileAttachmentAnnotation";
+    const trigger = document.createElement("div");
+    trigger.style.height = this.container.style.height;
+    trigger.style.width = this.container.style.width;
+    trigger.addEventListener("dblclick", this._download.bind(this));
 
-    if (this.data.fieldValue === this.data.buttonValue) {
-      element.setAttribute("checked", true);
+    if (!this.data.hasPopup && (this.data.title || this.data.contents)) {
+      this._createPopup(this.container, trigger, this.data);
     }
 
-    this.container.appendChild(element);
+    this.container.appendChild(trigger);
     return this.container;
   }
 
-}
+  _download() {
+    if (!this.downloadManager) {
+      (0, _util.warn)("Download cannot be started due to unavailable download manager");
+      return;
+    }
 
-class PushButtonWidgetAnnotationElement extends LinkAnnotationElement {
-  render() {
-    const container = super.render();
-    container.className = "buttonWidgetAnnotation pushButton";
-    return container;
+    this.downloadManager.downloadData(this.content, this.filename, "");
   }
 
 }
 
-class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {
-  constructor(parameters) {
-    super(parameters, parameters.renderInteractiveForms);
-  }
+class AnnotationLayer {
+  static render(parameters) {
+    const sortedAnnotations = [],
+          popupAnnotations = [];
 
-  render() {
-    this.container.className = "choiceWidgetAnnotation";
-    const selectElement = document.createElement("select");
-    selectElement.disabled = this.data.readOnly;
+    for (const data of parameters.annotations) {
+      if (!data) {
+        continue;
+      }
 
-    if (!this.data.combo) {
-      selectElement.size = this.data.options.length;
+      if (data.annotationType === _util.AnnotationType.POPUP) {
+        popupAnnotations.push(data);
+        continue;
+      }
 
-      if (this.data.multiSelect) {
-        selectElement.multiple = true;
+      sortedAnnotations.push(data);
+    }
+
+    if (popupAnnotations.length) {
+      sortedAnnotations.push(...popupAnnotations);
+    }
+
+    for (const data of sortedAnnotations) {
+      const element = AnnotationElementFactory.create({
+        data,
+        layer: parameters.div,
+        page: parameters.page,
+        viewport: parameters.viewport,
+        linkService: parameters.linkService,
+        downloadManager: parameters.downloadManager,
+        imageResourcesPath: parameters.imageResourcesPath || "",
+        renderInteractiveForms: parameters.renderInteractiveForms || false,
+        svgFactory: new _display_utils.DOMSVGFactory()
+      });
+
+      if (element.isRenderable) {
+        parameters.div.appendChild(element.render());
       }
     }
+  }
 
-    for (const option of this.data.options) {
-      const optionElement = document.createElement("option");
-      optionElement.textContent = option.displayValue;
-      optionElement.value = option.exportValue;
+  static update(parameters) {
+    for (const data of parameters.annotations) {
+      const element = parameters.div.querySelector(`[data-annotation-id="${data.id}"]`);
 
-      if (this.data.fieldValue.includes(option.displayValue)) {
-        optionElement.setAttribute("selected", true);
+      if (element) {
+        element.style.transform = `matrix(${parameters.viewport.transform.join(",")})`;
       }
-
-      selectElement.appendChild(optionElement);
     }
 
-    this.container.appendChild(selectElement);
-    return this.container;
+    parameters.div.removeAttribute("hidden");
   }
 
 }
 
-class PopupAnnotationElement extends AnnotationElement {
-  constructor(parameters) {
-    const isRenderable = !!(parameters.data.title || parameters.data.contents);
-    super(parameters, isRenderable);
-  }
+exports.AnnotationLayer = AnnotationLayer;
 
-  render() {
-    const IGNORE_TYPES = ["Line", "Square", "Circle", "PolyLine", "Polygon", "Ink"];
-    this.container.className = "popupAnnotation";
+/***/ }),
+/* 17 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
 
-    if (IGNORE_TYPES.includes(this.data.parentType)) {
-      return this.container;
-    }
+"use strict";
 
-    const selector = `[data-annotation-id="${this.data.parentId}"]`;
-    const parentElement = this.layer.querySelector(selector);
 
-    if (!parentElement) {
-      return this.container;
-    }
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.renderTextLayer = void 0;
 
-    const popup = new PopupElement({
-      container: this.container,
-      trigger: parentElement,
-      color: this.data.color,
-      title: this.data.title,
-      modificationDate: this.data.modificationDate,
-      contents: this.data.contents
-    });
-    const parentLeft = parseFloat(parentElement.style.left);
-    const parentWidth = parseFloat(parentElement.style.width);
-    this.container.style.transformOrigin = `-${parentLeft + parentWidth}px -${parentElement.style.top}`;
-    this.container.style.left = `${parentLeft + parentWidth}px`;
-    this.container.appendChild(popup.render());
-    return this.container;
-  }
+var _util = __w_pdfjs_require__(2);
 
-}
+var renderTextLayer = function renderTextLayerClosure() {
+  var MAX_TEXT_DIVS_TO_RENDER = 100000;
+  var NonWhitespaceRegexp = /\S/;
 
-class PopupElement {
-  constructor(parameters) {
-    this.container = parameters.container;
-    this.trigger = parameters.trigger;
-    this.color = parameters.color;
-    this.title = parameters.title;
-    this.modificationDate = parameters.modificationDate;
-    this.contents = parameters.contents;
-    this.hideWrapper = parameters.hideWrapper || false;
-    this.pinned = false;
+  function isAllWhitespace(str) {
+    return !NonWhitespaceRegexp.test(str);
   }
 
-  render() {
-    const BACKGROUND_ENLIGHT = 0.7;
-    const wrapper = document.createElement("div");
-    wrapper.className = "popupWrapper";
-    this.hideElement = this.hideWrapper ? wrapper : this.container;
-    this.hideElement.setAttribute("hidden", true);
-    const popup = document.createElement("div");
-    popup.className = "popup";
-    const color = this.color;
+  function appendText(task, geom, styles) {
+    var textDiv = document.createElement("span");
+    var textDivProperties = {
+      angle: 0,
+      canvasWidth: 0,
+      isWhitespace: false,
+      originalTransform: null,
+      paddingBottom: 0,
+      paddingLeft: 0,
+      paddingRight: 0,
+      paddingTop: 0,
+      scale: 1
+    };
 
-    if (color) {
-      const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];
-      const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];
-      const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];
-      popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0);
-    }
+    task._textDivs.push(textDiv);
 
-    const title = document.createElement("h1");
-    title.textContent = this.title;
-    popup.appendChild(title);
+    if (isAllWhitespace(geom.str)) {
+      textDivProperties.isWhitespace = true;
 
-    const dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate);
+      task._textDivProperties.set(textDiv, textDivProperties);
 
-    if (dateObject) {
-      const modificationDate = document.createElement("span");
-      modificationDate.textContent = "{{date}}, {{time}}";
-      modificationDate.dataset.l10nId = "annotation_date_string";
-      modificationDate.dataset.l10nArgs = JSON.stringify({
-        date: dateObject.toLocaleDateString(),
-        time: dateObject.toLocaleTimeString()
-      });
-      popup.appendChild(modificationDate);
+      return;
     }
 
-    const contents = this._formatContents(this.contents);
+    var tx = _util.Util.transform(task._viewport.transform, geom.transform);
 
-    popup.appendChild(contents);
-    this.trigger.addEventListener("click", this._toggle.bind(this));
-    this.trigger.addEventListener("mouseover", this._show.bind(this, false));
-    this.trigger.addEventListener("mouseout", this._hide.bind(this, false));
-    popup.addEventListener("click", this._hide.bind(this, true));
-    wrapper.appendChild(popup);
-    return wrapper;
-  }
+    var angle = Math.atan2(tx[1], tx[0]);
+    var style = styles[geom.fontName];
 
-  _formatContents(contents) {
-    const p = document.createElement("p");
-    const lines = contents.split(/(?:\r\n?|\n)/);
+    if (style.vertical) {
+      angle += Math.PI / 2;
+    }
 
-    for (let i = 0, ii = lines.length; i < ii; ++i) {
-      const line = lines[i];
-      p.appendChild(document.createTextNode(line));
+    var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]);
+    var fontAscent = fontHeight;
 
-      if (i < ii - 1) {
-        p.appendChild(document.createElement("br"));
-      }
+    if (style.ascent) {
+      fontAscent = style.ascent * fontAscent;
+    } else if (style.descent) {
+      fontAscent = (1 + style.descent) * fontAscent;
     }
 
-    return p;
-  }
+    let left, top;
 
-  _toggle() {
-    if (this.pinned) {
-      this._hide(true);
+    if (angle === 0) {
+      left = tx[4];
+      top = tx[5] - fontAscent;
     } else {
-      this._show(true);
+      left = tx[4] + fontAscent * Math.sin(angle);
+      top = tx[5] - fontAscent * Math.cos(angle);
     }
-  }
 
-  _show(pin = false) {
-    if (pin) {
-      this.pinned = true;
+    textDiv.style.left = `${left}px`;
+    textDiv.style.top = `${top}px`;
+    textDiv.style.fontSize = `${fontHeight}px`;
+    textDiv.style.fontFamily = style.fontFamily;
+    textDiv.textContent = geom.str;
+
+    if (task._fontInspectorEnabled) {
+      textDiv.dataset.fontName = geom.fontName;
     }
 
-    if (this.hideElement.hasAttribute("hidden")) {
-      this.hideElement.removeAttribute("hidden");
-      this.container.style.zIndex += 1;
+    if (angle !== 0) {
+      textDivProperties.angle = angle * (180 / Math.PI);
     }
-  }
 
-  _hide(unpin = true) {
-    if (unpin) {
-      this.pinned = false;
+    let shouldScaleText = false;
+
+    if (geom.str.length > 1) {
+      shouldScaleText = true;
+    } else if (geom.transform[0] !== geom.transform[3]) {
+      const absScaleX = Math.abs(geom.transform[0]),
+            absScaleY = Math.abs(geom.transform[3]);
+
+      if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {
+        shouldScaleText = true;
+      }
     }
 
-    if (!this.hideElement.hasAttribute("hidden") && !this.pinned) {
-      this.hideElement.setAttribute("hidden", true);
-      this.container.style.zIndex -= 1;
+    if (shouldScaleText) {
+      if (style.vertical) {
+        textDivProperties.canvasWidth = geom.height * task._viewport.scale;
+      } else {
+        textDivProperties.canvasWidth = geom.width * task._viewport.scale;
+      }
+    }
+
+    task._textDivProperties.set(textDiv, textDivProperties);
+
+    if (task._textContentStream) {
+      task._layoutText(textDiv);
+    }
+
+    if (task._enhanceTextSelection) {
+      var angleCos = 1,
+          angleSin = 0;
+
+      if (angle !== 0) {
+        angleCos = Math.cos(angle);
+        angleSin = Math.sin(angle);
+      }
+
+      var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;
+      var divHeight = fontHeight;
+      var m, b;
+
+      if (angle !== 0) {
+        m = [angleCos, angleSin, -angleSin, angleCos, left, top];
+        b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);
+      } else {
+        b = [left, top, left + divWidth, top + divHeight];
+      }
+
+      task._bounds.push({
+        left: b[0],
+        top: b[1],
+        right: b[2],
+        bottom: b[3],
+        div: textDiv,
+        size: [divWidth, divHeight],
+        m
+      });
     }
   }
 
-}
+  function render(task) {
+    if (task._canceled) {
+      return;
+    }
 
-class FreeTextAnnotationElement extends AnnotationElement {
-  constructor(parameters) {
-    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
-    super(parameters, isRenderable, true);
+    var textDivs = task._textDivs;
+    var capability = task._capability;
+    var textDivsLength = textDivs.length;
+
+    if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {
+      task._renderingDone = true;
+      capability.resolve();
+      return;
+    }
+
+    if (!task._textContentStream) {
+      for (var i = 0; i < textDivsLength; i++) {
+        task._layoutText(textDivs[i]);
+      }
+    }
+
+    task._renderingDone = true;
+    capability.resolve();
   }
 
-  render() {
-    this.container.className = "freeTextAnnotation";
+  function findPositiveMin(ts, offset, count) {
+    let result = 0;
 
-    if (!this.data.hasPopup) {
-      this._createPopup(this.container, null, this.data);
+    for (let i = 0; i < count; i++) {
+      const t = ts[offset++];
+
+      if (t > 0) {
+        result = result ? Math.min(t, result) : t;
+      }
     }
 
-    return this.container;
+    return result;
   }
 
-}
-
-class LineAnnotationElement extends AnnotationElement {
-  constructor(parameters) {
-    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
-    super(parameters, isRenderable, true);
-  }
+  function expand(task) {
+    var bounds = task._bounds;
+    var viewport = task._viewport;
+    var expanded = expandBounds(viewport.width, viewport.height, bounds);
 
-  render() {
-    this.container.className = "lineAnnotation";
-    const data = this.data;
-    const width = data.rect[2] - data.rect[0];
-    const height = data.rect[3] - data.rect[1];
-    const svg = this.svgFactory.create(width, height);
-    const line = this.svgFactory.createElement("svg:line");
-    line.setAttribute("x1", data.rect[2] - data.lineCoordinates[0]);
-    line.setAttribute("y1", data.rect[3] - data.lineCoordinates[1]);
-    line.setAttribute("x2", data.rect[2] - data.lineCoordinates[2]);
-    line.setAttribute("y2", data.rect[3] - data.lineCoordinates[3]);
-    line.setAttribute("stroke-width", data.borderStyle.width || 1);
-    line.setAttribute("stroke", "transparent");
-    svg.appendChild(line);
-    this.container.append(svg);
+    for (var i = 0; i < expanded.length; i++) {
+      var div = bounds[i].div;
 
-    this._createPopup(this.container, line, data);
+      var divProperties = task._textDivProperties.get(div);
 
-    return this.container;
-  }
+      if (divProperties.angle === 0) {
+        divProperties.paddingLeft = bounds[i].left - expanded[i].left;
+        divProperties.paddingTop = bounds[i].top - expanded[i].top;
+        divProperties.paddingRight = expanded[i].right - bounds[i].right;
+        divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;
 
-}
+        task._textDivProperties.set(div, divProperties);
 
-class SquareAnnotationElement extends AnnotationElement {
-  constructor(parameters) {
-    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
-    super(parameters, isRenderable, true);
-  }
+        continue;
+      }
 
-  render() {
-    this.container.className = "squareAnnotation";
-    const data = this.data;
-    const width = data.rect[2] - data.rect[0];
-    const height = data.rect[3] - data.rect[1];
-    const svg = this.svgFactory.create(width, height);
-    const borderWidth = data.borderStyle.width;
-    const square = this.svgFactory.createElement("svg:rect");
-    square.setAttribute("x", borderWidth / 2);
-    square.setAttribute("y", borderWidth / 2);
-    square.setAttribute("width", width - borderWidth);
-    square.setAttribute("height", height - borderWidth);
-    square.setAttribute("stroke-width", borderWidth || 1);
-    square.setAttribute("stroke", "transparent");
-    square.setAttribute("fill", "none");
-    svg.appendChild(square);
-    this.container.append(svg);
+      var e = expanded[i],
+          b = bounds[i];
+      var m = b.m,
+          c = m[0],
+          s = m[1];
+      var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];
+      var ts = new Float64Array(64);
+      points.forEach(function (p, j) {
+        var t = _util.Util.applyTransform(p, m);
 
-    this._createPopup(this.container, square, data);
+        ts[j + 0] = c && (e.left - t[0]) / c;
+        ts[j + 4] = s && (e.top - t[1]) / s;
+        ts[j + 8] = c && (e.right - t[0]) / c;
+        ts[j + 12] = s && (e.bottom - t[1]) / s;
+        ts[j + 16] = s && (e.left - t[0]) / -s;
+        ts[j + 20] = c && (e.top - t[1]) / c;
+        ts[j + 24] = s && (e.right - t[0]) / -s;
+        ts[j + 28] = c && (e.bottom - t[1]) / c;
+        ts[j + 32] = c && (e.left - t[0]) / -c;
+        ts[j + 36] = s && (e.top - t[1]) / -s;
+        ts[j + 40] = c && (e.right - t[0]) / -c;
+        ts[j + 44] = s && (e.bottom - t[1]) / -s;
+        ts[j + 48] = s && (e.left - t[0]) / s;
+        ts[j + 52] = c && (e.top - t[1]) / -c;
+        ts[j + 56] = s && (e.right - t[0]) / s;
+        ts[j + 60] = c && (e.bottom - t[1]) / -c;
+      });
+      var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));
+      divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;
+      divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;
+      divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;
+      divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;
 
-    return this.container;
+      task._textDivProperties.set(div, divProperties);
+    }
   }
 
-}
-
-class CircleAnnotationElement extends AnnotationElement {
-  constructor(parameters) {
-    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
-    super(parameters, isRenderable, true);
+  function expandBounds(width, height, boxes) {
+    var bounds = boxes.map(function (box, i) {
+      return {
+        x1: box.left,
+        y1: box.top,
+        x2: box.right,
+        y2: box.bottom,
+        index: i,
+        x1New: undefined,
+        x2New: undefined
+      };
+    });
+    expandBoundsLTR(width, bounds);
+    var expanded = new Array(boxes.length);
+    bounds.forEach(function (b) {
+      var i = b.index;
+      expanded[i] = {
+        left: b.x1New,
+        top: 0,
+        right: b.x2New,
+        bottom: 0
+      };
+    });
+    boxes.map(function (box, i) {
+      var e = expanded[i],
+          b = bounds[i];
+      b.x1 = box.top;
+      b.y1 = width - e.right;
+      b.x2 = box.bottom;
+      b.y2 = width - e.left;
+      b.index = i;
+      b.x1New = undefined;
+      b.x2New = undefined;
+    });
+    expandBoundsLTR(height, bounds);
+    bounds.forEach(function (b) {
+      var i = b.index;
+      expanded[i].top = b.x1New;
+      expanded[i].bottom = b.x2New;
+    });
+    return expanded;
   }
 
-  render() {
-    this.container.className = "circleAnnotation";
-    const data = this.data;
-    const width = data.rect[2] - data.rect[0];
-    const height = data.rect[3] - data.rect[1];
-    const svg = this.svgFactory.create(width, height);
-    const borderWidth = data.borderStyle.width;
-    const circle = this.svgFactory.createElement("svg:ellipse");
-    circle.setAttribute("cx", width / 2);
-    circle.setAttribute("cy", height / 2);
-    circle.setAttribute("rx", width / 2 - borderWidth / 2);
-    circle.setAttribute("ry", height / 2 - borderWidth / 2);
-    circle.setAttribute("stroke-width", borderWidth || 1);
-    circle.setAttribute("stroke", "transparent");
-    circle.setAttribute("fill", "none");
-    svg.appendChild(circle);
-    this.container.append(svg);
+  function expandBoundsLTR(width, bounds) {
+    bounds.sort(function (a, b) {
+      return a.x1 - b.x1 || a.index - b.index;
+    });
+    var fakeBoundary = {
+      x1: -Infinity,
+      y1: -Infinity,
+      x2: 0,
+      y2: Infinity,
+      index: -1,
+      x1New: 0,
+      x2New: 0
+    };
+    var horizon = [{
+      start: -Infinity,
+      end: Infinity,
+      boundary: fakeBoundary
+    }];
+    bounds.forEach(function (boundary) {
+      var i = 0;
 
-    this._createPopup(this.container, circle, data);
+      while (i < horizon.length && horizon[i].end <= boundary.y1) {
+        i++;
+      }
 
-    return this.container;
-  }
+      var j = horizon.length - 1;
 
-}
+      while (j >= 0 && horizon[j].start >= boundary.y2) {
+        j--;
+      }
 
-class PolylineAnnotationElement extends AnnotationElement {
-  constructor(parameters) {
-    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
-    super(parameters, isRenderable, true);
-    this.containerClassName = "polylineAnnotation";
-    this.svgElementName = "svg:polyline";
-  }
+      var horizonPart, affectedBoundary;
+      var q,
+          k,
+          maxXNew = -Infinity;
 
-  render() {
-    this.container.className = this.containerClassName;
-    const data = this.data;
-    const width = data.rect[2] - data.rect[0];
-    const height = data.rect[3] - data.rect[1];
-    const svg = this.svgFactory.create(width, height);
-    let points = [];
+      for (q = i; q <= j; q++) {
+        horizonPart = horizon[q];
+        affectedBoundary = horizonPart.boundary;
+        var xNew;
 
-    for (const coordinate of data.vertices) {
-      const x = coordinate.x - data.rect[0];
-      const y = data.rect[3] - coordinate.y;
-      points.push(x + "," + y);
-    }
+        if (affectedBoundary.x2 > boundary.x1) {
+          xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1;
+        } else if (affectedBoundary.x2New === undefined) {
+          xNew = (affectedBoundary.x2 + boundary.x1) / 2;
+        } else {
+          xNew = affectedBoundary.x2New;
+        }
 
-    points = points.join(" ");
-    const polyline = this.svgFactory.createElement(this.svgElementName);
-    polyline.setAttribute("points", points);
-    polyline.setAttribute("stroke-width", data.borderStyle.width || 1);
-    polyline.setAttribute("stroke", "transparent");
-    polyline.setAttribute("fill", "none");
-    svg.appendChild(polyline);
-    this.container.append(svg);
+        if (xNew > maxXNew) {
+          maxXNew = xNew;
+        }
+      }
 
-    this._createPopup(this.container, polyline, data);
+      boundary.x1New = maxXNew;
 
-    return this.container;
-  }
+      for (q = i; q <= j; q++) {
+        horizonPart = horizon[q];
+        affectedBoundary = horizonPart.boundary;
 
-}
+        if (affectedBoundary.x2New === undefined) {
+          if (affectedBoundary.x2 > boundary.x1) {
+            if (affectedBoundary.index > boundary.index) {
+              affectedBoundary.x2New = affectedBoundary.x2;
+            }
+          } else {
+            affectedBoundary.x2New = maxXNew;
+          }
+        } else if (affectedBoundary.x2New > maxXNew) {
+          affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);
+        }
+      }
+
+      var changedHorizon = [],
+          lastBoundary = null;
 
-class PolygonAnnotationElement extends PolylineAnnotationElement {
-  constructor(parameters) {
-    super(parameters);
-    this.containerClassName = "polygonAnnotation";
-    this.svgElementName = "svg:polygon";
-  }
+      for (q = i; q <= j; q++) {
+        horizonPart = horizon[q];
+        affectedBoundary = horizonPart.boundary;
+        var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;
 
-}
+        if (lastBoundary === useBoundary) {
+          changedHorizon[changedHorizon.length - 1].end = horizonPart.end;
+        } else {
+          changedHorizon.push({
+            start: horizonPart.start,
+            end: horizonPart.end,
+            boundary: useBoundary
+          });
+          lastBoundary = useBoundary;
+        }
+      }
 
-class CaretAnnotationElement extends AnnotationElement {
-  constructor(parameters) {
-    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
-    super(parameters, isRenderable, true);
-  }
+      if (horizon[i].start < boundary.y1) {
+        changedHorizon[0].start = boundary.y1;
+        changedHorizon.unshift({
+          start: horizon[i].start,
+          end: boundary.y1,
+          boundary: horizon[i].boundary
+        });
+      }
 
-  render() {
-    this.container.className = "caretAnnotation";
+      if (boundary.y2 < horizon[j].end) {
+        changedHorizon[changedHorizon.length - 1].end = boundary.y2;
+        changedHorizon.push({
+          start: boundary.y2,
+          end: horizon[j].end,
+          boundary: horizon[j].boundary
+        });
+      }
 
-    if (!this.data.hasPopup) {
-      this._createPopup(this.container, null, this.data);
-    }
+      for (q = i; q <= j; q++) {
+        horizonPart = horizon[q];
+        affectedBoundary = horizonPart.boundary;
 
-    return this.container;
-  }
+        if (affectedBoundary.x2New !== undefined) {
+          continue;
+        }
 
-}
+        var used = false;
 
-class InkAnnotationElement extends AnnotationElement {
-  constructor(parameters) {
-    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
-    super(parameters, isRenderable, true);
-    this.containerClassName = "inkAnnotation";
-    this.svgElementName = "svg:polyline";
-  }
+        for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {
+          used = horizon[k].boundary === affectedBoundary;
+        }
 
-  render() {
-    this.container.className = this.containerClassName;
-    const data = this.data;
-    const width = data.rect[2] - data.rect[0];
-    const height = data.rect[3] - data.rect[1];
-    const svg = this.svgFactory.create(width, height);
+        for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {
+          used = horizon[k].boundary === affectedBoundary;
+        }
 
-    for (const inkList of data.inkLists) {
-      let points = [];
+        for (k = 0; !used && k < changedHorizon.length; k++) {
+          used = changedHorizon[k].boundary === affectedBoundary;
+        }
 
-      for (const coordinate of inkList) {
-        const x = coordinate.x - data.rect[0];
-        const y = data.rect[3] - coordinate.y;
-        points.push(`${x},${y}`);
+        if (!used) {
+          affectedBoundary.x2New = maxXNew;
+        }
       }
 
-      points = points.join(" ");
-      const polyline = this.svgFactory.createElement(this.svgElementName);
-      polyline.setAttribute("points", points);
-      polyline.setAttribute("stroke-width", data.borderStyle.width || 1);
-      polyline.setAttribute("stroke", "transparent");
-      polyline.setAttribute("fill", "none");
+      Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon));
+    });
+    horizon.forEach(function (horizonPart) {
+      var affectedBoundary = horizonPart.boundary;
 
-      this._createPopup(this.container, polyline, data);
+      if (affectedBoundary.x2New === undefined) {
+        affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);
+      }
+    });
+  }
 
-      svg.appendChild(polyline);
-    }
+  function TextLayerRenderTask({
+    textContent,
+    textContentStream,
+    container,
+    viewport,
+    textDivs,
+    textContentItemsStr,
+    enhanceTextSelection
+  }) {
+    this._textContent = textContent;
+    this._textContentStream = textContentStream;
+    this._container = container;
+    this._viewport = viewport;
+    this._textDivs = textDivs || [];
+    this._textContentItemsStr = textContentItemsStr || [];
+    this._enhanceTextSelection = !!enhanceTextSelection;
+    this._fontInspectorEnabled = !!(globalThis.FontInspector && globalThis.FontInspector.enabled);
+    this._reader = null;
+    this._layoutTextLastFontSize = null;
+    this._layoutTextLastFontFamily = null;
+    this._layoutTextCtx = null;
+    this._textDivProperties = new WeakMap();
+    this._renderingDone = false;
+    this._canceled = false;
+    this._capability = (0, _util.createPromiseCapability)();
+    this._renderTimer = null;
+    this._bounds = [];
 
-    this.container.append(svg);
-    return this.container;
+    this._capability.promise.finally(() => {
+      if (this._layoutTextCtx) {
+        this._layoutTextCtx.canvas.width = 0;
+        this._layoutTextCtx.canvas.height = 0;
+        this._layoutTextCtx = null;
+      }
+    }).catch(() => {});
   }
 
-}
+  TextLayerRenderTask.prototype = {
+    get promise() {
+      return this._capability.promise;
+    },
 
-class HighlightAnnotationElement extends AnnotationElement {
-  constructor(parameters) {
-    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
-    super(parameters, isRenderable, true);
-  }
+    cancel: function TextLayer_cancel() {
+      this._canceled = true;
 
-  render() {
-    this.container.className = "highlightAnnotation";
+      if (this._reader) {
+        this._reader.cancel(new _util.AbortException("TextLayer task cancelled."));
 
-    if (!this.data.hasPopup) {
-      this._createPopup(this.container, null, this.data);
-    }
+        this._reader = null;
+      }
 
-    return this.container;
-  }
+      if (this._renderTimer !== null) {
+        clearTimeout(this._renderTimer);
+        this._renderTimer = null;
+      }
 
-}
+      this._capability.reject(new Error("TextLayer task cancelled."));
+    },
 
-class UnderlineAnnotationElement extends AnnotationElement {
-  constructor(parameters) {
-    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
-    super(parameters, isRenderable, true);
-  }
+    _processItems(items, styleCache) {
+      for (let i = 0, len = items.length; i < len; i++) {
+        this._textContentItemsStr.push(items[i].str);
 
-  render() {
-    this.container.className = "underlineAnnotation";
+        appendText(this, items[i], styleCache);
+      }
+    },
 
-    if (!this.data.hasPopup) {
-      this._createPopup(this.container, null, this.data);
-    }
+    _layoutText(textDiv) {
+      const textDivProperties = this._textDivProperties.get(textDiv);
 
-    return this.container;
-  }
+      if (textDivProperties.isWhitespace) {
+        return;
+      }
 
-}
+      let transform = "";
 
-class SquigglyAnnotationElement extends AnnotationElement {
-  constructor(parameters) {
-    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
-    super(parameters, isRenderable, true);
-  }
+      if (textDivProperties.canvasWidth !== 0) {
+        const {
+          fontSize,
+          fontFamily
+        } = textDiv.style;
 
-  render() {
-    this.container.className = "squigglyAnnotation";
+        if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {
+          this._layoutTextCtx.font = `${fontSize} ${fontFamily}`;
+          this._layoutTextLastFontSize = fontSize;
+          this._layoutTextLastFontFamily = fontFamily;
+        }
 
-    if (!this.data.hasPopup) {
-      this._createPopup(this.container, null, this.data);
-    }
+        const {
+          width
+        } = this._layoutTextCtx.measureText(textDiv.textContent);
 
-    return this.container;
-  }
+        if (width > 0) {
+          textDivProperties.scale = textDivProperties.canvasWidth / width;
+          transform = `scaleX(${textDivProperties.scale})`;
+        }
+      }
 
-}
+      if (textDivProperties.angle !== 0) {
+        transform = `rotate(${textDivProperties.angle}deg) ${transform}`;
+      }
 
-class StrikeOutAnnotationElement extends AnnotationElement {
-  constructor(parameters) {
-    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
-    super(parameters, isRenderable, true);
-  }
+      if (transform.length > 0) {
+        if (this._enhanceTextSelection) {
+          textDivProperties.originalTransform = transform;
+        }
 
-  render() {
-    this.container.className = "strikeoutAnnotation";
+        textDiv.style.transform = transform;
+      }
 
-    if (!this.data.hasPopup) {
-      this._createPopup(this.container, null, this.data);
-    }
+      this._textDivProperties.set(textDiv, textDivProperties);
+
+      this._container.appendChild(textDiv);
+    },
+
+    _render: function TextLayer_render(timeout) {
+      const capability = (0, _util.createPromiseCapability)();
+      let styleCache = Object.create(null);
+      const canvas = document.createElement("canvas");
+      canvas.mozOpaque = true;
+      this._layoutTextCtx = canvas.getContext("2d", {
+        alpha: false
+      });
 
-    return this.container;
-  }
+      if (this._textContent) {
+        const textItems = this._textContent.items;
+        const textStyles = this._textContent.styles;
 
-}
+        this._processItems(textItems, textStyles);
 
-class StampAnnotationElement extends AnnotationElement {
-  constructor(parameters) {
-    const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
-    super(parameters, isRenderable, true);
-  }
+        capability.resolve();
+      } else if (this._textContentStream) {
+        const pump = () => {
+          this._reader.read().then(({
+            value,
+            done
+          }) => {
+            if (done) {
+              capability.resolve();
+              return;
+            }
 
-  render() {
-    this.container.className = "stampAnnotation";
+            Object.assign(styleCache, value.styles);
 
-    if (!this.data.hasPopup) {
-      this._createPopup(this.container, null, this.data);
-    }
+            this._processItems(value.items, styleCache);
 
-    return this.container;
-  }
+            pump();
+          }, capability.reject);
+        };
 
-}
+        this._reader = this._textContentStream.getReader();
+        pump();
+      } else {
+        throw new Error('Neither "textContent" nor "textContentStream"' + " parameters specified.");
+      }
 
-class FileAttachmentAnnotationElement extends AnnotationElement {
-  constructor(parameters) {
-    super(parameters, true);
-    const {
-      filename,
-      content
-    } = this.data.file;
-    this.filename = (0, _display_utils.getFilenameFromUrl)(filename);
-    this.content = content;
+      capability.promise.then(() => {
+        styleCache = null;
 
-    if (this.linkService.eventBus) {
-      this.linkService.eventBus.dispatch("fileattachmentannotation", {
-        source: this,
-        id: (0, _util.stringToPDFString)(filename),
-        filename,
-        content
-      });
-    }
-  }
+        if (!timeout) {
+          render(this);
+        } else {
+          this._renderTimer = setTimeout(() => {
+            render(this);
+            this._renderTimer = null;
+          }, timeout);
+        }
+      }, this._capability.reject);
+    },
+    expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {
+      if (!this._enhanceTextSelection || !this._renderingDone) {
+        return;
+      }
 
-  render() {
-    this.container.className = "fileAttachmentAnnotation";
-    const trigger = document.createElement("div");
-    trigger.style.height = this.container.style.height;
-    trigger.style.width = this.container.style.width;
-    trigger.addEventListener("dblclick", this._download.bind(this));
+      if (this._bounds !== null) {
+        expand(this);
+        this._bounds = null;
+      }
 
-    if (!this.data.hasPopup && (this.data.title || this.data.contents)) {
-      this._createPopup(this.container, trigger, this.data);
-    }
+      const transformBuf = [],
+            paddingBuf = [];
 
-    this.container.appendChild(trigger);
-    return this.container;
-  }
+      for (var i = 0, ii = this._textDivs.length; i < ii; i++) {
+        const div = this._textDivs[i];
 
-  _download() {
-    if (!this.downloadManager) {
-      (0, _util.warn)("Download cannot be started due to unavailable download manager");
-      return;
-    }
+        const divProps = this._textDivProperties.get(div);
 
-    this.downloadManager.downloadData(this.content, this.filename, "");
-  }
+        if (divProps.isWhitespace) {
+          continue;
+        }
 
-}
+        if (expandDivs) {
+          transformBuf.length = 0;
+          paddingBuf.length = 0;
 
-class AnnotationLayer {
-  static render(parameters) {
-    const sortedAnnotations = [],
-          popupAnnotations = [];
+          if (divProps.originalTransform) {
+            transformBuf.push(divProps.originalTransform);
+          }
 
-    for (const data of parameters.annotations) {
-      if (!data) {
-        continue;
-      }
+          if (divProps.paddingTop > 0) {
+            paddingBuf.push(`${divProps.paddingTop}px`);
+            transformBuf.push(`translateY(${-divProps.paddingTop}px)`);
+          } else {
+            paddingBuf.push(0);
+          }
 
-      if (data.annotationType === _util.AnnotationType.POPUP) {
-        popupAnnotations.push(data);
-        continue;
-      }
+          if (divProps.paddingRight > 0) {
+            paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`);
+          } else {
+            paddingBuf.push(0);
+          }
 
-      sortedAnnotations.push(data);
-    }
+          if (divProps.paddingBottom > 0) {
+            paddingBuf.push(`${divProps.paddingBottom}px`);
+          } else {
+            paddingBuf.push(0);
+          }
 
-    if (popupAnnotations.length) {
-      sortedAnnotations.push(...popupAnnotations);
-    }
+          if (divProps.paddingLeft > 0) {
+            paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`);
+            transformBuf.push(`translateX(${-divProps.paddingLeft / divProps.scale}px)`);
+          } else {
+            paddingBuf.push(0);
+          }
 
-    for (const data of sortedAnnotations) {
-      const element = AnnotationElementFactory.create({
-        data,
-        layer: parameters.div,
-        page: parameters.page,
-        viewport: parameters.viewport,
-        linkService: parameters.linkService,
-        downloadManager: parameters.downloadManager,
-        imageResourcesPath: parameters.imageResourcesPath || "",
-        renderInteractiveForms: parameters.renderInteractiveForms || false,
-        svgFactory: new _display_utils.DOMSVGFactory()
-      });
+          div.style.padding = paddingBuf.join(" ");
 
-      if (element.isRenderable) {
-        parameters.div.appendChild(element.render());
+          if (transformBuf.length) {
+            div.style.transform = transformBuf.join(" ");
+          }
+        } else {
+          div.style.padding = null;
+          div.style.transform = divProps.originalTransform;
+        }
       }
     }
-  }
+  };
 
-  static update(parameters) {
-    for (const data of parameters.annotations) {
-      const element = parameters.div.querySelector(`[data-annotation-id="${data.id}"]`);
+  function renderTextLayer(renderParameters) {
+    var task = new TextLayerRenderTask({
+      textContent: renderParameters.textContent,
+      textContentStream: renderParameters.textContentStream,
+      container: renderParameters.container,
+      viewport: renderParameters.viewport,
+      textDivs: renderParameters.textDivs,
+      textContentItemsStr: renderParameters.textContentItemsStr,
+      enhanceTextSelection: renderParameters.enhanceTextSelection
+    });
 
-      if (element) {
-        element.style.transform = `matrix(${parameters.viewport.transform.join(",")})`;
-      }
-    }
+    task._render(renderParameters.timeout);
 
-    parameters.div.removeAttribute("hidden");
+    return task;
   }
 
-}
+  return renderTextLayer;
+}();
 
-exports.AnnotationLayer = AnnotationLayer;
+exports.renderTextLayer = renderTextLayer;
 
 /***/ }),
 /* 18 */
@@ -10341,11 +10375,11 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.SVGGraphics = void 0;
 
-var _util = __w_pdfjs_require__(1);
+var _util = __w_pdfjs_require__(2);
 
-var _display_utils = __w_pdfjs_require__(4);
+var _display_utils = __w_pdfjs_require__(1);
 
-var _is_node = __w_pdfjs_require__(7);
+var _is_node = __w_pdfjs_require__(4);
 
 let SVGGraphics = function () {
   throw new Error("Not implemented: SVGGraphics");
@@ -10681,7 +10715,7 @@ exports.SVGGraphics = SVGGraphics;
   let maskCount = 0;
   let shadingCount = 0;
   exports.SVGGraphics = SVGGraphics = class SVGGraphics {
-    constructor(commonObjs, objs, forceDataSchema) {
+    constructor(commonObjs, objs, forceDataSchema = false) {
       this.svgFactory = new _display_utils.DOMSVGFactory();
       this.current = new SVGExtraState();
       this.transformMatrix = _util.IDENTITY_MATRIX;
@@ -10929,10 +10963,6 @@ exports.SVGGraphics = SVGGraphics;
             this.paintSolidColorImageMask();
             break;
 
-          case _util.OPS.paintJpegXObject:
-            this.paintJpegXObject(args[0], args[1], args[2]);
-            break;
-
           case _util.OPS.paintImageXObject:
             this.paintImageXObject(args[0]);
             break;
@@ -11015,6 +11045,7 @@ exports.SVGGraphics = SVGGraphics;
       current.x = current.lineX = 0;
       current.y = current.lineY = 0;
       current.xcoords = [];
+      current.ycoords = [];
       current.tspan = this.svgFactory.createElement("svg:tspan");
       current.tspan.setAttributeNS(null, "font-family", current.fontFamily);
       current.tspan.setAttributeNS(null, "font-size", `${pf(current.fontSize)}px`);
@@ -11034,6 +11065,7 @@ exports.SVGGraphics = SVGGraphics;
       current.txtElement = this.svgFactory.createElement("svg:text");
       current.txtgrp = this.svgFactory.createElement("svg:g");
       current.xcoords = [];
+      current.ycoords = [];
     }
 
     moveText(x, y) {
@@ -11041,6 +11073,7 @@ exports.SVGGraphics = SVGGraphics;
       current.x = current.lineX += x;
       current.y = current.lineY += y;
       current.xcoords = [];
+      current.ycoords = [];
       current.tspan = this.svgFactory.createElement("svg:tspan");
       current.tspan.setAttributeNS(null, "font-family", current.fontFamily);
       current.tspan.setAttributeNS(null, "font-size", `${pf(current.fontSize)}px`);
@@ -11056,11 +11089,14 @@ exports.SVGGraphics = SVGGraphics;
         return;
       }
 
+      const fontSizeScale = current.fontSizeScale;
       const charSpacing = current.charSpacing;
       const wordSpacing = current.wordSpacing;
       const fontDirection = current.fontDirection;
       const textHScale = current.textHScale * fontDirection;
       const vertical = font.vertical;
+      const spacingDir = vertical ? 1 : -1;
+      const defaultVMetrics = font.defaultVMetrics;
       const widthAdvanceScale = fontSize * current.fontMatrix[0];
       let x = 0;
 
@@ -11069,33 +11105,64 @@ exports.SVGGraphics = SVGGraphics;
           x += fontDirection * wordSpacing;
           continue;
         } else if ((0, _util.isNum)(glyph)) {
-          x += -glyph * fontSize * 0.001;
+          x += spacingDir * glyph * fontSize / 1000;
           continue;
         }
 
-        const width = glyph.width;
-        const character = glyph.fontChar;
         const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
-        const charWidth = width * widthAdvanceScale + spacing * fontDirection;
+        const character = glyph.fontChar;
+        let scaledX, scaledY;
+        let width = glyph.width;
 
-        if (!glyph.isInFont && !font.missingFile) {
-          x += charWidth;
-          continue;
+        if (vertical) {
+          let vx;
+          const vmetric = glyph.vmetric || defaultVMetrics;
+          vx = glyph.vmetric ? vmetric[1] : width * 0.5;
+          vx = -vx * widthAdvanceScale;
+          const vy = vmetric[2] * widthAdvanceScale;
+          width = vmetric ? -vmetric[0] : width;
+          scaledX = vx / fontSizeScale;
+          scaledY = (x + vy) / fontSizeScale;
+        } else {
+          scaledX = x / fontSizeScale;
+          scaledY = 0;
+        }
+
+        if (glyph.isInFont || font.missingFile) {
+          current.xcoords.push(current.x + scaledX);
+
+          if (vertical) {
+            current.ycoords.push(-current.y + scaledY);
+          }
+
+          current.tspan.textContent += character;
+        } else {}
+
+        let charWidth;
+
+        if (vertical) {
+          charWidth = width * widthAdvanceScale - spacing * fontDirection;
+        } else {
+          charWidth = width * widthAdvanceScale + spacing * fontDirection;
         }
 
-        current.xcoords.push(current.x + x);
-        current.tspan.textContent += character;
         x += charWidth;
       }
 
+      current.tspan.setAttributeNS(null, "x", current.xcoords.map(pf).join(" "));
+
+      if (vertical) {
+        current.tspan.setAttributeNS(null, "y", current.ycoords.map(pf).join(" "));
+      } else {
+        current.tspan.setAttributeNS(null, "y", pf(-current.y));
+      }
+
       if (vertical) {
-        current.y -= x * textHScale;
+        current.y -= x;
       } else {
         current.x += x * textHScale;
       }
 
-      current.tspan.setAttributeNS(null, "x", current.xcoords.map(pf).join(" "));
-      current.tspan.setAttributeNS(null, "y", pf(-current.y));
       current.tspan.setAttributeNS(null, "font-family", current.fontFamily);
       current.tspan.setAttributeNS(null, "font-size", `${pf(current.fontSize)}px`);
 
@@ -11150,6 +11217,10 @@ exports.SVGGraphics = SVGGraphics;
     }
 
     addFontStyle(fontObj) {
+      if (!fontObj.data) {
+        throw new Error("addFontStyle: No font data available, " + 'ensure that the "fontExtraProperties" 
API parameter is set.');
+      }
+
       if (!this.cssStyle) {
         this.cssStyle = this.svgFactory.createElement("svg:style");
         this.cssStyle.setAttributeNS(null, "type", "text/css");
@@ -11166,7 +11237,7 @@ exports.SVGGraphics = SVGGraphics;
       let size = details[1];
       current.font = fontObj;
 
-      if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) {
+      if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) {
         this.addFontStyle(fontObj);
         this.embeddedFonts[fontObj.loadedName] = fontObj;
       }
@@ -11196,6 +11267,7 @@ exports.SVGGraphics = SVGGraphics;
       current.tspan = this.svgFactory.createElement("svg:tspan");
       current.tspan.setAttributeNS(null, "y", pf(-current.y));
       current.xcoords = [];
+      current.ycoords = [];
     }
 
     endText() {
@@ -11242,6 +11314,7 @@ exports.SVGGraphics = SVGGraphics;
       this.current.fillColor = _util.Util.makeCssRgb(r, g, b);
       this.current.tspan = this.svgFactory.createElement("svg:tspan");
       this.current.xcoords = [];
+      this.current.ycoords = [];
     }
 
     setStrokeColorN(args) {
@@ -11277,6 +11350,10 @@ exports.SVGGraphics = SVGGraphics;
       rect.setAttributeNS(null, "height", y1 - y0);
       rect.setAttributeNS(null, "fill", this._makeShadingPattern(args));
 
+      if (this.current.fillAlpha < 1) {
+        rect.setAttributeNS(null, "fill-opacity", this.current.fillAlpha);
+      }
+
       this._ensureTransformGroup().appendChild(rect);
     }
 
@@ -11691,19 +11768,6 @@ exports.SVGGraphics = SVGGraphics;
       this._ensureTransformGroup().appendChild(rect);
     }
 
-    paintJpegXObject(objId, w, h) {
-      const imgObj = this.objs.get(objId);
-      const imgEl = this.svgFactory.createElement("svg:image");
-      imgEl.setAttributeNS(XLINK_NS, "xlink:href", imgObj.src);
-      imgEl.setAttributeNS(null, "width", pf(w));
-      imgEl.setAttributeNS(null, "height", pf(h));
-      imgEl.setAttributeNS(null, "x", "0");
-      imgEl.setAttributeNS(null, "y", pf(-h));
-      imgEl.setAttributeNS(null, "transform", `scale(${pf(1 / w)} ${pf(-1 / h)})`);
-
-      this._ensureTransformGroup().appendChild(imgEl);
-    }
-
     paintImageXObject(objId) {
       const imgData = this.objs.get(objId);
 
@@ -11837,10 +11901,12 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.PDFNodeStream = void 0;
 
-var _util = __w_pdfjs_require__(1);
+var _util = __w_pdfjs_require__(2);
 
 var _network_utils = __w_pdfjs_require__(20);
 
+;
+
 const fs = require("fs");
 
 const http = require("http");
@@ -11885,7 +11951,7 @@ class PDFNodeStream {
   }
 
   getFullReader() {
-    (0, _util.assert)(!this._fullRequestReader);
+    (0, _util.assert)(!this._fullRequestReader, "PDFNodeStream.getFullReader can only be called once.");
     this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new 
PDFNodeStreamFullReader(this);
     return this._fullRequestReader;
   }
@@ -12132,13 +12198,13 @@ class BaseRangeReader {
 
 }
 
-function createRequestOptions(url, headers) {
+function createRequestOptions(parsedUrl, headers) {
   return {
-    protocol: url.protocol,
-    auth: url.auth,
-    host: url.hostname,
-    port: url.port,
-    path: url.path,
+    protocol: parsedUrl.protocol,
+    auth: parsedUrl.auth,
+    host: parsedUrl.hostname,
+    port: parsedUrl.port,
+    path: parsedUrl.path,
     method: "GET",
     headers
   };
@@ -12214,7 +12280,7 @@ class PDFNodeStreamRangeReader extends BaseRangeReader {
       this._httpHeaders[property] = value;
     }
 
-    this._httpHeaders["Range"] = `bytes=${start}-${end - 1}`;
+    this._httpHeaders.Range = `bytes=${start}-${end - 1}`;
 
     const handleResponse = response => {
       if (response.statusCode === 404) {
@@ -12307,7 +12373,7 @@ exports.extractFilenameFromHeader = extractFilenameFromHeader;
 exports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;
 exports.validateResponseStatus = validateResponseStatus;
 
-var _util = __w_pdfjs_require__(1);
+var _util = __w_pdfjs_require__(2);
 
 var _content_disposition = __w_pdfjs_require__(21);
 
@@ -12469,12 +12535,12 @@ function getFilenameFromContentDispositionHeader(contentDisposition) {
     return value;
   }
 
-  function rfc2231getparam(contentDisposition) {
+  function rfc2231getparam(contentDispositionStr) {
     const matches = [];
     let match;
     const iter = toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)", "ig");
 
-    while ((match = iter.exec(contentDisposition)) !== null) {
+    while ((match = iter.exec(contentDispositionStr)) !== null) {
       let [, n, quot, part] = match;
       n = parseInt(n, 10);
 
@@ -12552,10 +12618,10 @@ function getFilenameFromContentDispositionHeader(contentDisposition) {
       return value;
     }
 
-    return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (_, charset, encoding, 
text) {
+    return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (matches, charset, 
encoding, text) {
       if (encoding === "q" || encoding === "Q") {
         text = text.replace(/_/g, " ");
-        text = text.replace(/=([0-9a-fA-F]{2})/g, function (_, hex) {
+        text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) {
           return String.fromCharCode(parseInt(hex, 16));
         });
         return textdecode(charset, text);
@@ -12584,7 +12650,7 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.PDFNetworkStream = void 0;
 
-var _util = __w_pdfjs_require__(1);
+var _util = __w_pdfjs_require__(2);
 
 var _network_utils = __w_pdfjs_require__(20);
 
@@ -12805,7 +12871,7 @@ class PDFNetworkStream {
   }
 
   getFullReader() {
-    (0, _util.assert)(!this._fullRequestReader);
+    (0, _util.assert)(!this._fullRequestReader, "PDFNetworkStream.getFullReader can only be called once.");
     this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);
     return this._fullRequestReader;
   }
@@ -13141,10 +13207,12 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.PDFFetchStream = void 0;
 
-var _util = __w_pdfjs_require__(1);
+var _util = __w_pdfjs_require__(2);
 
 var _network_utils = __w_pdfjs_require__(20);
 
+;
+
 function createFetchOptions(headers, withCredentials, abortController) {
   return {
     method: "GET",
@@ -13186,7 +13254,7 @@ class PDFFetchStream {
   }
 
   getFullReader() {
-    (0, _util.assert)(!this._fullRequestReader);
+    (0, _util.assert)(!this._fullRequestReader, "PDFFetchStream.getFullReader can only be called once.");
     this._fullRequestReader = new PDFFetchStreamReader(this);
     return this._fullRequestReader;
   }
diff --git a/third-party/pdfjs/build/pdf.worker.js b/third-party/pdfjs/build/pdf.worker.js
index 337f9f8ea..af4e46699 100644
--- a/third-party/pdfjs/build/pdf.worker.js
+++ b/third-party/pdfjs/build/pdf.worker.js
@@ -123,12 +123,20 @@ return /******/ (function(modules) { // webpackBootstrap
 "use strict";
 
 
-const pdfjsVersion = '2.4.456';
-const pdfjsBuild = '228a591c';
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+Object.defineProperty(exports, "WorkerMessageHandler", {
+  enumerable: true,
+  get: function () {
+    return _worker.WorkerMessageHandler;
+  }
+});
 
-const pdfjsCoreWorker = __w_pdfjs_require__(1);
+var _worker = __w_pdfjs_require__(1);
 
-exports.WorkerMessageHandler = pdfjsCoreWorker.WorkerMessageHandler;
+const pdfjsVersion = '2.5.207';
+const pdfjsBuild = '0974d6052';
 
 /***/ }),
 /* 1 */
@@ -144,17 +152,17 @@ exports.WorkerMessageHandler = exports.WorkerTask = void 0;
 
 var _util = __w_pdfjs_require__(2);
 
-var _primitives = __w_pdfjs_require__(4);
+var _primitives = __w_pdfjs_require__(5);
 
-var _pdf_manager = __w_pdfjs_require__(5);
+var _pdf_manager = __w_pdfjs_require__(6);
 
-var _is_node = __w_pdfjs_require__(44);
+var _is_node = __w_pdfjs_require__(4);
 
 var _message_handler = __w_pdfjs_require__(45);
 
 var _worker_stream = __w_pdfjs_require__(46);
 
-var _core_utils = __w_pdfjs_require__(7);
+var _core_utils = __w_pdfjs_require__(8);
 
 var WorkerTask = function WorkerTaskClosure() {
   function WorkerTask(name) {
@@ -223,7 +231,7 @@ var WorkerMessageHandler = {
     var WorkerTasks = [];
     const verbosity = (0, _util.getVerbosityLevel)();
     const apiVersion = docParams.apiVersion;
-    const workerVersion = '2.4.456';
+    const workerVersion = '2.5.207';
 
     if (apiVersion !== workerVersion) {
       throw new Error(`The API version "${apiVersion}" does not match ` + `the Worker version 
"${workerVersion}".`);
@@ -239,6 +247,10 @@ var WorkerMessageHandler = {
       throw new Error("The `Array.prototype` contains unexpected enumerable properties: " + 
enumerableProperties.join(", ") + "; thus breaking e.g. `for...in` iteration of `Array`s.");
     }
 
+    if (typeof ReadableStream === "undefined" || typeof Promise.allSettled === "undefined") {
+      throw new Error("The browser/environment lacks native support for critical " + "functionality used by 
the PDF.js library (e.g. " + "`ReadableStream` and/or `Promise.allSettled`); " + "please use an 
ES5-compatible build instead.");
+    }
+
     var docId = docParams.docId;
     var docBaseUrl = docParams.docBaseUrl;
     var workerHandlerName = docParams.docId + "_worker";
@@ -279,13 +291,13 @@ var WorkerMessageHandler = {
 
     function getPdfManager(data, evaluatorOptions) {
       var pdfManagerCapability = (0, _util.createPromiseCapability)();
-      var pdfManager;
+      let newPdfManager;
       var source = data.source;
 
       if (source.data) {
         try {
-          pdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, 
evaluatorOptions, docBaseUrl);
-          pdfManagerCapability.resolve(pdfManager);
+          newPdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, 
evaluatorOptions, docBaseUrl);
+          pdfManagerCapability.resolve(newPdfManager);
         } catch (ex) {
           pdfManagerCapability.reject(ex);
         }
@@ -310,7 +322,7 @@ var WorkerMessageHandler = {
         }
 
         var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;
-        pdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {
+        newPdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {
           msgHandler: handler,
           password: source.password,
           length: fullRequest.contentLength,
@@ -319,11 +331,11 @@ var WorkerMessageHandler = {
         }, evaluatorOptions, docBaseUrl);
 
         for (let i = 0; i < cachedChunks.length; i++) {
-          pdfManager.sendProgressiveData(cachedChunks[i]);
+          newPdfManager.sendProgressiveData(cachedChunks[i]);
         }
 
         cachedChunks = [];
-        pdfManagerCapability.resolve(pdfManager);
+        pdfManagerCapability.resolve(newPdfManager);
         cancelXHRs = null;
       }).catch(function (reason) {
         pdfManagerCapability.reject(reason);
@@ -339,8 +351,8 @@ var WorkerMessageHandler = {
         }
 
         try {
-          pdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, 
docBaseUrl);
-          pdfManagerCapability.resolve(pdfManager);
+          newPdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, 
evaluatorOptions, docBaseUrl);
+          pdfManagerCapability.resolve(newPdfManager);
         } catch (ex) {
           pdfManagerCapability.reject(ex);
         }
@@ -349,12 +361,15 @@ var WorkerMessageHandler = {
       };
 
       var readPromise = new Promise(function (resolve, reject) {
-        var readChunk = function (chunk) {
+        var readChunk = function ({
+          value,
+          done
+        }) {
           try {
             ensureNotTerminated();
 
-            if (chunk.done) {
-              if (!pdfManager) {
+            if (done) {
+              if (!newPdfManager) {
                 flushChunks();
               }
 
@@ -362,8 +377,7 @@ var WorkerMessageHandler = {
               return;
             }
 
-            var data = chunk.value;
-            loaded += (0, _util.arrayByteLength)(data);
+            loaded += (0, _util.arrayByteLength)(value);
 
             if (!fullRequest.isStreamingSupported) {
               handler.send("DocProgress", {
@@ -372,10 +386,10 @@ var WorkerMessageHandler = {
               });
             }
 
-            if (pdfManager) {
-              pdfManager.sendProgressiveData(data);
+            if (newPdfManager) {
+              newPdfManager.sendProgressiveData(value);
             } else {
-              cachedChunks.push(data);
+              cachedChunks.push(value);
             }
 
             fullRequest.read().then(readChunk, reject);
@@ -412,9 +426,11 @@ var WorkerMessageHandler = {
         if (ex instanceof _util.PasswordException) {
           var task = new WorkerTask(`PasswordException: response ${ex.code}`);
           startWorkerTask(task);
-          handler.sendWithPromise("PasswordRequest", ex).then(function (data) {
+          handler.sendWithPromise("PasswordRequest", ex).then(function ({
+            password
+          }) {
             finishWorkerTask(task);
-            pdfManager.updatePassword(data.password);
+            pdfManager.updatePassword(password);
             pdfManagerReady();
           }).catch(function () {
             finishWorkerTask(task);
@@ -447,12 +463,11 @@ var WorkerMessageHandler = {
 
       ensureNotTerminated();
       var evaluatorOptions = {
-        forceDataSchema: data.disableCreateObjectURL,
         maxImageSize: data.maxImageSize,
         disableFontFace: data.disableFontFace,
-        nativeImageDecoderSupport: data.nativeImageDecoderSupport,
         ignoreErrors: data.ignoreErrors,
-        isEvalSupported: data.isEvalSupported
+        isEvalSupported: data.isEvalSupported,
+        fontExtraProperties: data.fontExtraProperties
       };
       getPdfManager(data, evaluatorOptions).then(function (newPdfManager) {
         if (terminated) {
@@ -568,7 +583,7 @@ var WorkerMessageHandler = {
           }
 
           handler.send("UnsupportedFeature", {
-            featureId: _util.UNSUPPORTED_FEATURES.unknown
+            featureId: _util.UNSUPPORTED_FEATURES.errorOperatorList
           });
           sink.error(reason);
         });
@@ -614,7 +629,7 @@ var WorkerMessageHandler = {
       return pdfManager.fontFallback(data.id, handler);
     });
     handler.on("Cleanup", function wphCleanup(data) {
-      return pdfManager.cleanup();
+      return pdfManager.cleanup(true);
     });
     handler.on("Terminate", function wphTerminate(data) {
       terminated = true;
@@ -701,7 +716,7 @@ exports.stringToUTF8String = stringToUTF8String;
 exports.utf8StringToString = utf8StringToString;
 exports.warn = warn;
 exports.unreachable = unreachable;
-exports.IsEvalSupportedCached = exports.IsLittleEndianCached = exports.createObjectURL = exports.FormatError 
= exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = 
exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = 
exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = 
exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = 
exports.FontType = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState 
= exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = 
exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = 
exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = 
exports.BaseException = void 0;
+exports.IsEvalSupportedCached = exports.IsLittleEndianCached = exports.createObjectURL = exports.FormatError 
= exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = 
exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = 
exports.PasswordException = exports.MissingPDFException = exports.InvalidPDFException = 
exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = 
exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = 
exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = 
exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = 
exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = 
exports.BaseException = void 0;
 
 __w_pdfjs_require__(3);
 
@@ -709,12 +724,6 @@ const IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];
 exports.IDENTITY_MATRIX = IDENTITY_MATRIX;
 const FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];
 exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;
-const NativeImageDecoding = {
-  NONE: "none",
-  DECODE: "decode",
-  DISPLAY: "display"
-};
-exports.NativeImageDecoding = NativeImageDecoding;
 const PermissionFlag = {
   PRINT: 0x04,
   MODIFY_CONTENTS: 0x08,
@@ -979,7 +988,19 @@ const UNSUPPORTED_FEATURES = {
   javaScript: "javaScript",
   smask: "smask",
   shadingPattern: "shadingPattern",
-  font: "font"
+  font: "font",
+  errorTilingPattern: "errorTilingPattern",
+  errorExtGState: "errorExtGState",
+  errorXObject: "errorXObject",
+  errorFontLoadType3: "errorFontLoadType3",
+  errorFontState: "errorFontState",
+  errorFontMissing: "errorFontMissing",
+  errorFontTranslate: "errorFontTranslate",
+  errorColorSpace: "errorColorSpace",
+  errorOperatorList: "errorOperatorList",
+  errorFontToUnicode: "errorFontToUnicode",
+  errorFontLoadNative: "errorFontLoadNative",
+  errorFontGetPath: "errorFontGetPath"
 };
 exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;
 const PasswordResponses = {
@@ -1192,7 +1213,7 @@ function arrayByteLength(arr) {
     return arr.length;
   }
 
-  assert(arr.byteLength !== undefined);
+  assert(arr.byteLength !== undefined, "arrayByteLength - invalid argument.");
   return arr.byteLength;
 }
 
@@ -1495,6 +1516,8 @@ exports.createObjectURL = createObjectURL;
 "use strict";
 
 
+var _is_node = __w_pdfjs_require__(4);
+
 ;
 
 /***/ }),
@@ -1504,6 +1527,20 @@ exports.createObjectURL = createObjectURL;
 "use strict";
 
 
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.isNodeJS = void 0;
+const isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw 
&& !process.versions.electron;
+exports.isNodeJS = isNodeJS;
+
+/***/ }),
+/* 5 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
+
+"use strict";
+
+
 Object.defineProperty(exports, "__esModule", {
   value: true
 });
@@ -1749,6 +1786,10 @@ var RefSetCache = function RefSetCacheClosure() {
   }
 
   RefSetCache.prototype = {
+    get size() {
+      return Object.keys(this.dict).length;
+    },
+
     get: function RefSetCache_get(ref) {
       return this.dict[ref.toString()];
     },
@@ -1812,7 +1853,7 @@ function clearPrimitiveCaches() {
 }
 
 /***/ }),
-/* 5 */
+/* 6 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -1825,13 +1866,13 @@ exports.NetworkPdfManager = exports.LocalPdfManager = void 0;
 
 var _util = __w_pdfjs_require__(2);
 
-var _chunked_stream = __w_pdfjs_require__(6);
+var _chunked_stream = __w_pdfjs_require__(7);
 
-var _core_utils = __w_pdfjs_require__(7);
+var _core_utils = __w_pdfjs_require__(8);
 
-var _document = __w_pdfjs_require__(8);
+var _document = __w_pdfjs_require__(9);
 
-var _stream = __w_pdfjs_require__(11);
+var _stream = __w_pdfjs_require__(12);
 
 class BasePdfManager {
   constructor() {
@@ -1888,8 +1929,8 @@ class BasePdfManager {
     return this.pdfDocument.fontFallback(id, handler);
   }
 
-  cleanup() {
-    return this.pdfDocument.cleanup();
+  cleanup(manuallyTriggered = false) {
+    return this.pdfDocument.cleanup(manuallyTriggered);
   }
 
   async ensure(obj, prop, args) {
@@ -2019,7 +2060,7 @@ class NetworkPdfManager extends BasePdfManager {
 exports.NetworkPdfManager = NetworkPdfManager;
 
 /***/ }),
-/* 6 */
+/* 7 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -2032,7 +2073,7 @@ exports.ChunkedStreamManager = exports.ChunkedStream = void 0;
 
 var _util = __w_pdfjs_require__(2);
 
-var _core_utils = __w_pdfjs_require__(7);
+var _core_utils = __w_pdfjs_require__(8);
 
 class ChunkedStream {
   constructor(length, chunkSize, manager) {
@@ -2554,15 +2595,15 @@ class ChunkedStreamManager {
 
     const loadedRequests = [];
 
-    for (let chunk = beginChunk; chunk < endChunk; ++chunk) {
-      const requestIds = this.requestsByChunk[chunk] || [];
-      delete this.requestsByChunk[chunk];
+    for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {
+      const requestIds = this.requestsByChunk[curChunk] || [];
+      delete this.requestsByChunk[curChunk];
 
       for (const requestId of requestIds) {
         const chunksNeeded = this.chunksNeededByRequest[requestId];
 
-        if (chunk in chunksNeeded) {
-          delete chunksNeeded[chunk];
+        if (curChunk in chunksNeeded) {
+          delete chunksNeeded[curChunk];
         }
 
         if (!(0, _util.isEmptyObj)(chunksNeeded)) {
@@ -2632,7 +2673,7 @@ class ChunkedStreamManager {
 exports.ChunkedStreamManager = ChunkedStreamManager;
 
 /***/ }),
-/* 7 */
+/* 8 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -2769,7 +2810,7 @@ function isWhiteSpace(ch) {
 }
 
 /***/ }),
-/* 8 */
+/* 9 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -2782,25 +2823,25 @@ exports.PDFDocument = exports.Page = void 0;
 
 var _util = __w_pdfjs_require__(2);
 
-var _obj = __w_pdfjs_require__(9);
+var _obj = __w_pdfjs_require__(10);
 
-var _primitives = __w_pdfjs_require__(4);
+var _primitives = __w_pdfjs_require__(5);
 
-var _core_utils = __w_pdfjs_require__(7);
+var _core_utils = __w_pdfjs_require__(8);
 
-var _stream = __w_pdfjs_require__(11);
+var _stream = __w_pdfjs_require__(12);
 
-var _annotation = __w_pdfjs_require__(23);
+var _annotation = __w_pdfjs_require__(25);
 
-var _crypto = __w_pdfjs_require__(21);
+var _crypto = __w_pdfjs_require__(22);
 
-var _parser = __w_pdfjs_require__(10);
+var _parser = __w_pdfjs_require__(11);
 
-var _operator_list = __w_pdfjs_require__(24);
+var _operator_list = __w_pdfjs_require__(26);
 
-var _evaluator = __w_pdfjs_require__(25);
+var _evaluator = __w_pdfjs_require__(27);
 
-var _function = __w_pdfjs_require__(39);
+var _function = __w_pdfjs_require__(41);
 
 const DEFAULT_USER_UNIT = 1.0;
 const LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];
@@ -2818,6 +2859,7 @@ class Page {
     ref,
     fontCache,
     builtInCMapCache,
+    globalImageCache,
     pdfFunctionFactory
   }) {
     this.pdfManager = pdfManager;
@@ -2827,6 +2869,7 @@ class Page {
     this.ref = ref;
     this.fontCache = fontCache;
     this.builtInCMapCache = builtInCMapCache;
+    this.globalImageCache = globalImageCache;
     this.pdfFunctionFactory = pdfFunctionFactory;
     this.evaluatorOptions = pdfManager.evaluatorOptions;
     this.resourcesPromise = null;
@@ -2948,8 +2991,8 @@ class Page {
       const xref = this.xref;
       const streams = [];
 
-      for (const stream of content) {
-        streams.push(xref.fetchIfRef(stream));
+      for (const subStream of content) {
+        streams.push(xref.fetchIfRef(subStream));
       }
 
       stream = new _stream.StreamsSequenceStream(streams);
@@ -2989,6 +3032,7 @@ class Page {
       idFactory: this.idFactory,
       fontCache: this.fontCache,
       builtInCMapCache: this.builtInCMapCache,
+      globalImageCache: this.globalImageCache,
       options: this.evaluatorOptions,
       pdfFunctionFactory: this.pdfFunctionFactory
     });
@@ -3021,7 +3065,10 @@ class Page {
 
       for (const annotation of annotations) {
         if (isAnnotationRenderable(annotation, intent)) {
-          opListPromises.push(annotation.getOperatorList(partialEvaluator, task, renderInteractiveForms));
+          opListPromises.push(annotation.getOperatorList(partialEvaluator, task, 
renderInteractiveForms).catch(function (reason) {
+            (0, _util.warn)("getOperatorList - ignoring annotation data during " + `"${task.name}" task: 
"${reason}".`);
+            return null;
+          }));
         }
       }
 
@@ -3059,6 +3106,7 @@ class Page {
         idFactory: this.idFactory,
         fontCache: this.fontCache,
         builtInCMapCache: this.builtInCMapCache,
+        globalImageCache: this.globalImageCache,
         options: this.evaluatorOptions,
         pdfFunctionFactory: this.pdfFunctionFactory
       });
@@ -3093,20 +3141,17 @@ class Page {
 
   get _parsedAnnotations() {
     const parsedAnnotations = this.pdfManager.ensure(this, "annotations").then(() => {
-      const annotationRefs = this.annotations;
       const annotationPromises = [];
 
-      for (let i = 0, ii = annotationRefs.length; i < ii; i++) {
-        annotationPromises.push(_annotation.AnnotationFactory.create(this.xref, annotationRefs[i], 
this.pdfManager, this.idFactory));
+      for (const annotationRef of this.annotations) {
+        annotationPromises.push(_annotation.AnnotationFactory.create(this.xref, annotationRef, 
this.pdfManager, this.idFactory).catch(function (reason) {
+          (0, _util.warn)(`_parsedAnnotations: "${reason}".`);
+          return null;
+        }));
       }
 
       return Promise.all(annotationPromises).then(function (annotations) {
-        return annotations.filter(function isDefined(annotation) {
-          return !!annotation;
-        });
-      }, function (reason) {
-        (0, _util.warn)(`_parsedAnnotations: "${reason}".`);
-        return [];
+        return annotations.filter(annotation => !!annotation);
       });
     });
     return (0, _util.shadow)(this, "_parsedAnnotations", parsedAnnotations);
@@ -3410,11 +3455,11 @@ class PDFDocument {
             continue;
           }
 
-          if (!docInfo["Custom"]) {
-            docInfo["Custom"] = Object.create(null);
+          if (!docInfo.Custom) {
+            docInfo.Custom = Object.create(null);
           }
 
-          docInfo["Custom"][key] = customValue;
+          docInfo.Custom[key] = customValue;
         }
       }
     }
@@ -3447,7 +3492,6 @@ class PDFDocument {
       catalog,
       linearization
     } = this;
-    (0, _util.assert)(linearization && linearization.pageFirst === pageIndex);
 
     const ref = _primitives.Ref.get(linearization.objectNumberFirst, 0);
 
@@ -3486,6 +3530,7 @@ class PDFDocument {
         ref,
         fontCache: catalog.fontCache,
         builtInCMapCache: catalog.builtInCMapCache,
+        globalImageCache: catalog.globalImageCache,
         pdfFunctionFactory: this.pdfFunctionFactory
       });
     });
@@ -3505,8 +3550,8 @@ class PDFDocument {
     return this.catalog.fontFallback(id, handler);
   }
 
-  async cleanup() {
-    return this.catalog ? this.catalog.cleanup() : (0, _primitives.clearPrimitiveCaches)();
+  async cleanup(manuallyTriggered = false) {
+    return this.catalog ? this.catalog.cleanup(manuallyTriggered) : (0, _primitives.clearPrimitiveCaches)();
   }
 
 }
@@ -3514,7 +3559,7 @@ class PDFDocument {
 exports.PDFDocument = PDFDocument;
 
 /***/ }),
-/* 9 */
+/* 10 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -3527,15 +3572,17 @@ exports.FileSpec = exports.XRef = exports.ObjectLoader = exports.Catalog = void
 
 var _util = __w_pdfjs_require__(2);
 
-var _primitives = __w_pdfjs_require__(4);
+var _primitives = __w_pdfjs_require__(5);
+
+var _parser = __w_pdfjs_require__(11);
 
-var _parser = __w_pdfjs_require__(10);
+var _core_utils = __w_pdfjs_require__(8);
 
-var _core_utils = __w_pdfjs_require__(7);
+var _crypto = __w_pdfjs_require__(22);
 
-var _crypto = __w_pdfjs_require__(21);
+var _colorspace = __w_pdfjs_require__(23);
 
-var _colorspace = __w_pdfjs_require__(22);
+var _image_utils = __w_pdfjs_require__(24);
 
 function fetchDestination(dest) {
   return (0, _primitives.isDict)(dest) ? dest.get("D") : dest;
@@ -3553,6 +3600,7 @@ class Catalog {
 
     this.fontCache = new _primitives.RefSetCache();
     this.builtInCMapCache = new Map();
+    this.globalImageCache = new _image_utils.GlobalImageCache();
     this.pageKidsCountCache = new _primitives.RefSetCache();
   }
 
@@ -3983,7 +4031,7 @@ class Catalog {
       NumCopies: Number.isInteger
     };
     const obj = this.catDict.get("ViewerPreferences");
-    const prefs = Object.create(null);
+    let prefs = null;
 
     if ((0, _primitives.isDict)(obj)) {
       for (const key in ViewerPreferencesValidators) {
@@ -4100,11 +4148,18 @@ class Catalog {
             break;
 
           default:
-            (0, _util.assert)(typeof value === "boolean");
+            if (typeof value !== "boolean") {
+              throw new _util.FormatError(`viewerPreferences - expected a boolean value for: ${key}`);
+            }
+
             prefValue = value;
         }
 
         if (prefValue !== undefined) {
+          if (!prefs) {
+            prefs = Object.create(null);
+          }
+
           prefs[key] = prefValue;
         } else {
           (0, _util.info)(`Bad value in ViewerPreferences for "${key}".`);
@@ -4241,8 +4296,9 @@ class Catalog {
     });
   }
 
-  cleanup() {
+  cleanup(manuallyTriggered = false) {
     (0, _primitives.clearPrimitiveCaches)();
+    this.globalImageCache.clear(manuallyTriggered);
     this.pageKidsCountCache.clear();
     const promises = [];
     this.fontCache.forEach(function (promise) {
@@ -4409,13 +4465,13 @@ class Catalog {
             break;
           }
 
-          kidPromises.push(xref.fetchAsync(kid).then(function (kid) {
-            if (!(0, _primitives.isDict)(kid)) {
+          kidPromises.push(xref.fetchAsync(kid).then(function (obj) {
+            if (!(0, _primitives.isDict)(obj)) {
               throw new _util.FormatError("Kid node must be a dictionary.");
             }
 
-            if (kid.has("Count")) {
-              total += kid.get("Count");
+            if (obj.has("Count")) {
+              total += obj.get("Count");
             } else {
               total++;
             }
@@ -5761,7 +5817,7 @@ const ObjectLoader = function () {
 exports.ObjectLoader = ObjectLoader;
 
 /***/ }),
-/* 10 */
+/* 11 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -5772,21 +5828,21 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.Parser = exports.Linearization = exports.Lexer = void 0;
 
-var _stream = __w_pdfjs_require__(11);
+var _stream = __w_pdfjs_require__(12);
 
 var _util = __w_pdfjs_require__(2);
 
-var _primitives = __w_pdfjs_require__(4);
+var _primitives = __w_pdfjs_require__(5);
 
-var _core_utils = __w_pdfjs_require__(7);
+var _core_utils = __w_pdfjs_require__(8);
 
-var _ccitt_stream = __w_pdfjs_require__(12);
+var _ccitt_stream = __w_pdfjs_require__(13);
 
-var _jbig2_stream = __w_pdfjs_require__(14);
+var _jbig2_stream = __w_pdfjs_require__(15);
 
-var _jpeg_stream = __w_pdfjs_require__(17);
+var _jpeg_stream = __w_pdfjs_require__(18);
 
-var _jpx_stream = __w_pdfjs_require__(19);
+var _jpx_stream = __w_pdfjs_require__(20);
 
 const MAX_LENGTH_TO_CACHE = 1000;
 const MAX_ADLER32_LENGTH = 5552;
@@ -5956,7 +6012,7 @@ class Parser {
       } else if (state === 1) {
         state = ch === I ? 2 : 0;
       } else {
-        (0, _util.assert)(state === 2);
+        (0, _util.assert)(state === 2, "findDefaultInlineStreamEnd - invalid state.");
 
         if (ch === SPACE || ch === LF || ch === CR) {
           maybeEIPos = stream.pos;
@@ -7068,7 +7124,7 @@ class Linearization {
 exports.Linearization = Linearization;
 
 /***/ }),
-/* 11 */
+/* 12 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -7081,9 +7137,9 @@ exports.LZWStream = exports.StringStream = exports.StreamsSequenceStream = expor
 
 var _util = __w_pdfjs_require__(2);
 
-var _primitives = __w_pdfjs_require__(4);
+var _primitives = __w_pdfjs_require__(5);
 
-var _core_utils = __w_pdfjs_require__(7);
+var _core_utils = __w_pdfjs_require__(8);
 
 var Stream = function StreamClosure() {
   function Stream(arrayBuffer, start, length, dict) {
@@ -8370,7 +8426,7 @@ var NullStream = function NullStreamClosure() {
 exports.NullStream = NullStream;
 
 /***/ }),
-/* 12 */
+/* 13 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -8381,11 +8437,11 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.CCITTFaxStream = void 0;
 
-var _primitives = __w_pdfjs_require__(4);
+var _primitives = __w_pdfjs_require__(5);
 
-var _ccitt = __w_pdfjs_require__(13);
+var _ccitt = __w_pdfjs_require__(14);
 
-var _stream = __w_pdfjs_require__(11);
+var _stream = __w_pdfjs_require__(12);
 
 var CCITTFaxStream = function CCITTFaxStreamClosure() {
   function CCITTFaxStream(str, maybeLength, params) {
@@ -8437,7 +8493,7 @@ var CCITTFaxStream = function CCITTFaxStreamClosure() {
 exports.CCITTFaxStream = CCITTFaxStream;
 
 /***/ }),
-/* 13 */
+/* 14 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -8476,19 +8532,19 @@ const CCITTFaxDecoder = function CCITTFaxDecoder() {
 
     this.source = source;
     this.eof = false;
-    this.encoding = options["K"] || 0;
-    this.eoline = options["EndOfLine"] || false;
-    this.byteAlign = options["EncodedByteAlign"] || false;
-    this.columns = options["Columns"] || 1728;
-    this.rows = options["Rows"] || 0;
-    let eoblock = options["EndOfBlock"];
+    this.encoding = options.K || 0;
+    this.eoline = options.EndOfLine || false;
+    this.byteAlign = options.EncodedByteAlign || false;
+    this.columns = options.Columns || 1728;
+    this.rows = options.Rows || 0;
+    let eoblock = options.EndOfBlock;
 
     if (eoblock === null || eoblock === undefined) {
       eoblock = true;
     }
 
     this.eoblock = eoblock;
-    this.black = options["BlackIs1"] || false;
+    this.black = options.BlackIs1 || false;
     this.codingLine = new Uint32Array(this.columns + 1);
     this.refLine = new Uint32Array(this.columns + 2);
     this.codingLine[0] = this.columns;
@@ -9142,7 +9198,7 @@ const CCITTFaxDecoder = function CCITTFaxDecoder() {
 exports.CCITTFaxDecoder = CCITTFaxDecoder;
 
 /***/ }),
-/* 14 */
+/* 15 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -9153,11 +9209,11 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.Jbig2Stream = void 0;
 
-var _primitives = __w_pdfjs_require__(4);
+var _primitives = __w_pdfjs_require__(5);
 
-var _stream = __w_pdfjs_require__(11);
+var _stream = __w_pdfjs_require__(12);
 
-var _jbig = __w_pdfjs_require__(15);
+var _jbig = __w_pdfjs_require__(16);
 
 var _util = __w_pdfjs_require__(2);
 
@@ -9226,7 +9282,7 @@ const Jbig2Stream = function Jbig2StreamClosure() {
 exports.Jbig2Stream = Jbig2Stream;
 
 /***/ }),
-/* 15 */
+/* 16 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -9239,11 +9295,11 @@ exports.Jbig2Image = void 0;
 
 var _util = __w_pdfjs_require__(2);
 
-var _core_utils = __w_pdfjs_require__(7);
+var _core_utils = __w_pdfjs_require__(8);
 
-var _arithmetic_decoder = __w_pdfjs_require__(16);
+var _arithmetic_decoder = __w_pdfjs_require__(17);
 
-var _ccitt = __w_pdfjs_require__(13);
+var _ccitt = __w_pdfjs_require__(14);
 
 class Jbig2Error extends _util.BaseException {
   constructor(msg) {
@@ -11434,7 +11490,7 @@ var Jbig2Image = function Jbig2ImageClosure() {
 exports.Jbig2Image = Jbig2Image;
 
 /***/ }),
-/* 16 */
+/* 17 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -11788,7 +11844,7 @@ class ArithmeticDecoder {
 exports.ArithmeticDecoder = ArithmeticDecoder;
 
 /***/ }),
-/* 17 */
+/* 18 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -11799,13 +11855,13 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.JpegStream = void 0;
 
-var _util = __w_pdfjs_require__(2);
+var _stream = __w_pdfjs_require__(12);
 
-var _stream = __w_pdfjs_require__(11);
+var _primitives = __w_pdfjs_require__(5);
 
-var _primitives = __w_pdfjs_require__(4);
+var _jpg = __w_pdfjs_require__(19);
 
-var _jpg = __w_pdfjs_require__(18);
+var _util = __w_pdfjs_require__(2);
 
 const JpegStream = function JpegStreamClosure() {
   function JpegStream(stream, maybeLength, dict, params) {
@@ -11889,127 +11945,13 @@ const JpegStream = function JpegStreamClosure() {
     this.eof = true;
   };
 
-  Object.defineProperty(JpegStream.prototype, "maybeValidDimensions", {
-    get: function JpegStream_maybeValidDimensions() {
-      const {
-        dict,
-        stream
-      } = this;
-      const dictHeight = dict.get("Height", "H");
-      const startPos = stream.pos;
-      let validDimensions = true,
-          foundSOF = false,
-          b;
-
-      while ((b = stream.getByte()) !== -1) {
-        if (b !== 0xff) {
-          continue;
-        }
-
-        switch (stream.getByte()) {
-          case 0xc0:
-          case 0xc1:
-          case 0xc2:
-            foundSOF = true;
-            stream.pos += 2;
-            stream.pos += 1;
-            const scanLines = stream.getUint16();
-
-            if (scanLines === dictHeight) {
-              break;
-            }
-
-            if (scanLines === 0) {
-              validDimensions = false;
-              break;
-            }
-
-            if (scanLines > dictHeight * 10) {
-              validDimensions = false;
-              break;
-            }
-
-            break;
-
-          case 0xc3:
-          case 0xc5:
-          case 0xc6:
-          case 0xc7:
-          case 0xc9:
-          case 0xca:
-          case 0xcb:
-          case 0xcd:
-          case 0xce:
-          case 0xcf:
-            foundSOF = true;
-            break;
-
-          case 0xc4:
-          case 0xcc:
-          case 0xda:
-          case 0xdb:
-          case 0xdc:
-          case 0xdd:
-          case 0xde:
-          case 0xdf:
-          case 0xe0:
-          case 0xe1:
-          case 0xe2:
-          case 0xe3:
-          case 0xe4:
-          case 0xe5:
-          case 0xe6:
-          case 0xe7:
-          case 0xe8:
-          case 0xe9:
-          case 0xea:
-          case 0xeb:
-          case 0xec:
-          case 0xed:
-          case 0xee:
-          case 0xef:
-          case 0xfe:
-            const markerLength = stream.getUint16();
-
-            if (markerLength > 2) {
-              stream.skip(markerLength - 2);
-            } else {
-              stream.skip(-2);
-            }
-
-            break;
-
-          case 0xff:
-            stream.skip(-1);
-            break;
-
-          case 0xd9:
-            foundSOF = true;
-            break;
-        }
-
-        if (foundSOF) {
-          break;
-        }
-      }
-
-      stream.pos = startPos;
-      return (0, _util.shadow)(this, "maybeValidDimensions", validDimensions);
-    },
-    configurable: true
-  });
-
-  JpegStream.prototype.getIR = function (forceDataSchema = false) {
-    return (0, _util.createObjectURL)(this.bytes, "image/jpeg", forceDataSchema);
-  };
-
   return JpegStream;
 }();
 
 exports.JpegStream = JpegStream;
 
 /***/ }),
-/* 18 */
+/* 19 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -12022,7 +11964,7 @@ exports.JpegImage = void 0;
 
 var _util = __w_pdfjs_require__(2);
 
-var _core_utils = __w_pdfjs_require__(7);
+var _core_utils = __w_pdfjs_require__(8);
 
 class JpegError extends _util.BaseException {
   constructor(msg) {
@@ -12122,8 +12064,8 @@ var JpegImage = function JpegImageClosure() {
   function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, 
successivePrev, successive, parseDNLMarker = false) {
     var mcusPerLine = frame.mcusPerLine;
     var progressive = frame.progressive;
-    var startOffset = offset,
-        bitsData = 0,
+    const startOffset = offset;
+    let bitsData = 0,
         bitsCount = 0;
 
     function readBit() {
@@ -12209,10 +12151,10 @@ var JpegImage = function JpegImageClosure() {
       return n + (-1 << length) + 1;
     }
 
-    function decodeBaseline(component, offset) {
+    function decodeBaseline(component, blockOffset) {
       var t = decodeHuffman(component.huffmanTableDC);
       var diff = t === 0 ? 0 : receiveAndExtend(t);
-      component.blockData[offset] = component.pred += diff;
+      component.blockData[blockOffset] = component.pred += diff;
       var k = 1;
 
       while (k < 64) {
@@ -12231,24 +12173,24 @@ var JpegImage = function JpegImageClosure() {
 
         k += r;
         var z = dctZigZag[k];
-        component.blockData[offset + z] = receiveAndExtend(s);
+        component.blockData[blockOffset + z] = receiveAndExtend(s);
         k++;
       }
     }
 
-    function decodeDCFirst(component, offset) {
+    function decodeDCFirst(component, blockOffset) {
       var t = decodeHuffman(component.huffmanTableDC);
       var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;
-      component.blockData[offset] = component.pred += diff;
+      component.blockData[blockOffset] = component.pred += diff;
     }
 
-    function decodeDCSuccessive(component, offset) {
-      component.blockData[offset] |= readBit() << successive;
+    function decodeDCSuccessive(component, blockOffset) {
+      component.blockData[blockOffset] |= readBit() << successive;
     }
 
     var eobrun = 0;
 
-    function decodeACFirst(component, offset) {
+    function decodeACFirst(component, blockOffset) {
       if (eobrun > 0) {
         eobrun--;
         return;
@@ -12274,7 +12216,7 @@ var JpegImage = function JpegImageClosure() {
 
         k += r;
         var z = dctZigZag[k];
-        component.blockData[offset + z] = receiveAndExtend(s) * (1 << successive);
+        component.blockData[blockOffset + z] = receiveAndExtend(s) * (1 << successive);
         k++;
       }
     }
@@ -12282,7 +12224,7 @@ var JpegImage = function JpegImageClosure() {
     var successiveACState = 0,
         successiveACNextValue;
 
-    function decodeACSuccessive(component, offset) {
+    function decodeACSuccessive(component, blockOffset) {
       var k = spectralStart;
       var e = spectralEnd;
       var r = 0;
@@ -12290,7 +12232,7 @@ var JpegImage = function JpegImageClosure() {
       var rs;
 
       while (k <= e) {
-        const offsetZ = offset + dctZigZag[k];
+        const offsetZ = blockOffset + dctZigZag[k];
         const sign = component.blockData[offsetZ] < 0 ? -1 : 1;
 
         switch (successiveACState) {
@@ -12369,15 +12311,15 @@ var JpegImage = function JpegImageClosure() {
       var mcuCol = mcu % mcusPerLine;
       blockRow = mcuRow * component.v + row;
       var blockCol = mcuCol * component.h + col;
-      var offset = getBlockBufferOffset(component, blockRow, blockCol);
-      decode(component, offset);
+      const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);
+      decode(component, blockOffset);
     }
 
     function decodeBlock(component, decode, mcu) {
       blockRow = mcu / component.blocksPerLine | 0;
       var blockCol = mcu % component.blocksPerLine;
-      var offset = getBlockBufferOffset(component, blockRow, blockCol);
-      decode(component, offset);
+      const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);
+      decode(component, blockOffset);
     }
 
     var componentsLength = components.length;
@@ -12406,37 +12348,39 @@ var JpegImage = function JpegImageClosure() {
 
     var h, v;
 
-    while (mcu < mcuExpected) {
+    while (mcu <= mcuExpected) {
       var mcuToRead = resetInterval ? Math.min(mcuExpected - mcu, resetInterval) : mcuExpected;
 
-      for (i = 0; i < componentsLength; i++) {
-        components[i].pred = 0;
-      }
+      if (mcuToRead > 0) {
+        for (i = 0; i < componentsLength; i++) {
+          components[i].pred = 0;
+        }
 
-      eobrun = 0;
+        eobrun = 0;
 
-      if (componentsLength === 1) {
-        component = components[0];
+        if (componentsLength === 1) {
+          component = components[0];
 
-        for (n = 0; n < mcuToRead; n++) {
-          decodeBlock(component, decodeFn, mcu);
-          mcu++;
-        }
-      } else {
-        for (n = 0; n < mcuToRead; n++) {
-          for (i = 0; i < componentsLength; i++) {
-            component = components[i];
-            h = component.h;
-            v = component.v;
-
-            for (j = 0; j < v; j++) {
-              for (k = 0; k < h; k++) {
-                decodeMcu(component, decodeFn, mcu, j, k);
+          for (n = 0; n < mcuToRead; n++) {
+            decodeBlock(component, decodeFn, mcu);
+            mcu++;
+          }
+        } else {
+          for (n = 0; n < mcuToRead; n++) {
+            for (i = 0; i < componentsLength; i++) {
+              component = components[i];
+              h = component.h;
+              v = component.v;
+
+              for (j = 0; j < v; j++) {
+                for (k = 0; k < h; k++) {
+                  decodeMcu(component, decodeFn, mcu, j, k);
+                }
               }
             }
-          }
 
-          mcu++;
+            mcu++;
+          }
         }
       }
 
@@ -12445,31 +12389,21 @@ var JpegImage = function JpegImageClosure() {
 
       if (!fileMarker) {
         break;
-      } else if (fileMarker.invalid) {
-        (0, _util.warn)("decodeScan - unexpected MCU data, current marker is: " + fileMarker.invalid);
-        offset = fileMarker.offset;
       }
 
-      var marker = fileMarker && fileMarker.marker;
-
-      if (!marker || marker <= 0xff00) {
-        throw new JpegError("decodeScan - a valid marker was not found.");
+      if (fileMarker.invalid) {
+        const partialMsg = mcuToRead > 0 ? "unexpected" : "excessive";
+        (0, _util.warn)(`decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`);
+        offset = fileMarker.offset;
       }
 
-      if (marker >= 0xffd0 && marker <= 0xffd7) {
+      if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {
         offset += 2;
       } else {
         break;
       }
     }
 
-    fileMarker = findNextFileMarker(data, offset);
-
-    if (fileMarker && fileMarker.invalid) {
-      (0, _util.warn)("decodeScan - unexpected Scan data, current marker is: " + fileMarker.invalid);
-      offset = fileMarker.offset;
-    }
-
     return offset - startOffset;
   }
 
@@ -13258,7 +13192,7 @@ var JpegImage = function JpegImageClosure() {
 exports.JpegImage = JpegImage;
 
 /***/ }),
-/* 19 */
+/* 20 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -13269,9 +13203,9 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.JpxStream = void 0;
 
-var _stream = __w_pdfjs_require__(11);
+var _stream = __w_pdfjs_require__(12);
 
-var _jpx = __w_pdfjs_require__(20);
+var _jpx = __w_pdfjs_require__(21);
 
 var _util = __w_pdfjs_require__(2);
 
@@ -13345,7 +13279,7 @@ const JpxStream = function JpxStreamClosure() {
 exports.JpxStream = JpxStream;
 
 /***/ }),
-/* 20 */
+/* 21 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -13358,9 +13292,9 @@ exports.JpxImage = void 0;
 
 var _util = __w_pdfjs_require__(2);
 
-var _core_utils = __w_pdfjs_require__(7);
+var _core_utils = __w_pdfjs_require__(8);
 
-var _arithmetic_decoder = __w_pdfjs_require__(16);
+var _arithmetic_decoder = __w_pdfjs_require__(17);
 
 class JpxError extends _util.BaseException {
   constructor(msg) {
@@ -14115,7 +14049,7 @@ var JpxImage = function JpxImageClosure() {
     var maxDecompositionLevelsCount = 0;
 
     for (c = 0; c < componentsCount; c++) {
-      var component = tile.components[c];
+      const component = tile.components[c];
       maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, 
component.codingStyleParameters.decompositionLevelsCount);
     }
 
@@ -14144,7 +14078,7 @@ var JpxImage = function JpxImageClosure() {
       for (; r <= maxDecompositionLevelsCount; r++) {
         for (; p < maxNumPrecinctsInLevel[r]; p++) {
           for (; c < componentsCount; c++) {
-            var component = tile.components[c];
+            const component = tile.components[c];
 
             if (r > component.codingStyleParameters.decompositionLevelsCount) {
               continue;
@@ -14563,13 +14497,13 @@ var JpxImage = function JpxImageClosure() {
         var firstTimeInclusion = false;
         var valueReady;
 
-        if (codeblock["included"] !== undefined) {
+        if (codeblock.included !== undefined) {
           codeblockIncluded = !!readBits(1);
         } else {
           precinct = codeblock.precinct;
           var inclusionTree, zeroBitPlanesTree;
 
-          if (precinct["inclusionTree"] !== undefined) {
+          if (precinct.inclusionTree !== undefined) {
             inclusionTree = precinct.inclusionTree;
           } else {
             var width = precinct.cbxMax - precinct.cbxMin + 1;
@@ -14647,7 +14581,7 @@ var JpxImage = function JpxImageClosure() {
         var packetItem = queue.shift();
         codeblock = packetItem.codeblock;
 
-        if (codeblock["data"] === undefined) {
+        if (codeblock.data === undefined) {
           codeblock.data = [];
         }
 
@@ -14681,7 +14615,7 @@ var JpxImage = function JpxImageClosure() {
         continue;
       }
 
-      if (codeblock["data"] === undefined) {
+      if (codeblock.data === undefined) {
         continue;
       }
 
@@ -15681,7 +15615,7 @@ var JpxImage = function JpxImageClosure() {
 exports.JpxImage = JpxImage;
 
 /***/ }),
-/* 21 */
+/* 22 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -15694,9 +15628,9 @@ exports.calculateSHA512 = exports.calculateSHA384 = exports.calculateSHA256 = ex
 
 var _util = __w_pdfjs_require__(2);
 
-var _primitives = __w_pdfjs_require__(4);
+var _primitives = __w_pdfjs_require__(5);
 
-var _stream = __w_pdfjs_require__(11);
+var _stream = __w_pdfjs_require__(12);
 
 var ARCFourCipher = function ARCFourCipherClosure() {
   function ARCFourCipher(key) {
@@ -17271,7 +17205,7 @@ var CipherTransformFactory = function CipherTransformFactoryClosure() {
 exports.CipherTransformFactory = CipherTransformFactory;
 
 /***/ }),
-/* 22 */
+/* 23 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -17284,7 +17218,7 @@ exports.ColorSpace = void 0;
 
 var _util = __w_pdfjs_require__(2);
 
-var _primitives = __w_pdfjs_require__(4);
+var _primitives = __w_pdfjs_require__(5);
 
 function resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {
   const COMPONENTS = 3;
@@ -18317,7 +18251,162 @@ const LabCS = function LabCSClosure() {
 }();
 
 /***/ }),
-/* 23 */
+/* 24 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.GlobalImageCache = exports.LocalImageCache = void 0;
+
+var _util = __w_pdfjs_require__(2);
+
+var _primitives = __w_pdfjs_require__(5);
+
+class LocalImageCache {
+  constructor() {
+    this._nameRefMap = new Map();
+    this._imageMap = new Map();
+    this._imageCache = new _primitives.RefSetCache();
+  }
+
+  getByName(name) {
+    const ref = this._nameRefMap.get(name);
+
+    if (ref) {
+      return this.getByRef(ref);
+    }
+
+    return this._imageMap.get(name) || null;
+  }
+
+  getByRef(ref) {
+    return this._imageCache.get(ref) || null;
+  }
+
+  set(name, ref = null, data) {
+    if (!name) {
+      throw new Error('LocalImageCache.set - expected "name" argument.');
+    }
+
+    if (ref) {
+      if (this._imageCache.has(ref)) {
+        return;
+      }
+
+      this._nameRefMap.set(name, ref);
+
+      this._imageCache.put(ref, data);
+
+      return;
+    }
+
+    if (this._imageMap.has(name)) {
+      return;
+    }
+
+    this._imageMap.set(name, data);
+  }
+
+}
+
+exports.LocalImageCache = LocalImageCache;
+
+class GlobalImageCache {
+  static get NUM_PAGES_THRESHOLD() {
+    return (0, _util.shadow)(this, "NUM_PAGES_THRESHOLD", 2);
+  }
+
+  static get MAX_IMAGES_TO_CACHE() {
+    return (0, _util.shadow)(this, "MAX_IMAGES_TO_CACHE", 10);
+  }
+
+  constructor() {
+    this._refCache = new _primitives.RefSetCache();
+    this._imageCache = new _primitives.RefSetCache();
+  }
+
+  shouldCache(ref, pageIndex) {
+    const pageIndexSet = this._refCache.get(ref);
+
+    const numPages = pageIndexSet ? pageIndexSet.size + (pageIndexSet.has(pageIndex) ? 0 : 1) : 1;
+
+    if (numPages < GlobalImageCache.NUM_PAGES_THRESHOLD) {
+      return false;
+    }
+
+    if (!this._imageCache.has(ref) && this._imageCache.size >= GlobalImageCache.MAX_IMAGES_TO_CACHE) {
+      return false;
+    }
+
+    return true;
+  }
+
+  addPageIndex(ref, pageIndex) {
+    let pageIndexSet = this._refCache.get(ref);
+
+    if (!pageIndexSet) {
+      pageIndexSet = new Set();
+
+      this._refCache.put(ref, pageIndexSet);
+    }
+
+    pageIndexSet.add(pageIndex);
+  }
+
+  getData(ref, pageIndex) {
+    if (!this._refCache.has(ref)) {
+      return null;
+    }
+
+    const pageIndexSet = this._refCache.get(ref);
+
+    if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) {
+      return null;
+    }
+
+    if (!this._imageCache.has(ref)) {
+      return null;
+    }
+
+    pageIndexSet.add(pageIndex);
+    return this._imageCache.get(ref);
+  }
+
+  setData(ref, data) {
+    if (!this._refCache.has(ref)) {
+      throw new Error('GlobalImageCache.setData - expected "addPageIndex" to have been called.');
+    }
+
+    if (this._imageCache.has(ref)) {
+      return;
+    }
+
+    if (this._imageCache.size >= GlobalImageCache.MAX_IMAGES_TO_CACHE) {
+      (0, _util.info)("GlobalImageCache.setData - ignoring image above MAX_IMAGES_TO_CACHE.");
+      return;
+    }
+
+    this._imageCache.put(ref, data);
+  }
+
+  clear(onlyData = false) {
+    if (!onlyData) {
+      this._refCache.clear();
+    }
+
+    this._imageCache.clear();
+  }
+
+}
+
+exports.GlobalImageCache = GlobalImageCache;
+
+/***/ }),
+/* 25 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -18331,17 +18420,17 @@ exports.MarkupAnnotation = exports.AnnotationFactory = exports.AnnotationBorderS
 
 var _util = __w_pdfjs_require__(2);
 
-var _obj = __w_pdfjs_require__(9);
+var _obj = __w_pdfjs_require__(10);
 
-var _primitives = __w_pdfjs_require__(4);
+var _primitives = __w_pdfjs_require__(5);
 
-var _colorspace = __w_pdfjs_require__(22);
+var _colorspace = __w_pdfjs_require__(23);
 
-var _core_utils = __w_pdfjs_require__(7);
+var _core_utils = __w_pdfjs_require__(8);
 
-var _operator_list = __w_pdfjs_require__(24);
+var _operator_list = __w_pdfjs_require__(26);
 
-var _stream = __w_pdfjs_require__(11);
+var _stream = __w_pdfjs_require__(12);
 
 class AnnotationFactory {
   static create(xref, ref, pdfManager, idFactory) {
@@ -19400,7 +19489,7 @@ class FileAttachmentAnnotation extends MarkupAnnotation {
 }
 
 /***/ }),
-/* 24 */
+/* 26 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -19989,6 +20078,11 @@ var OperatorList = function OperatorListClosure() {
     },
 
     addOpList(opList) {
+      if (!(opList instanceof OperatorList)) {
+        (0, _util.warn)('addOpList - ignoring invalid "opList" parameter.');
+        return;
+      }
+
       Object.assign(this.dependencies, opList.dependencies);
 
       for (var i = 0, ii = opList.length; i < ii; i++) {
@@ -20057,7 +20151,7 @@ var OperatorList = function OperatorListClosure() {
 exports.OperatorList = OperatorList;
 
 /***/ }),
-/* 25 */
+/* 27 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -20070,54 +20164,51 @@ exports.PartialEvaluator = void 0;
 
 var _util = __w_pdfjs_require__(2);
 
-var _cmap = __w_pdfjs_require__(26);
-
-var _primitives = __w_pdfjs_require__(4);
+var _cmap = __w_pdfjs_require__(28);
 
-var _fonts = __w_pdfjs_require__(27);
+var _primitives = __w_pdfjs_require__(5);
 
-var _encodings = __w_pdfjs_require__(30);
+var _fonts = __w_pdfjs_require__(29);
 
-var _core_utils = __w_pdfjs_require__(7);
+var _encodings = __w_pdfjs_require__(32);
 
-var _unicode = __w_pdfjs_require__(33);
+var _core_utils = __w_pdfjs_require__(8);
 
-var _standard_fonts = __w_pdfjs_require__(32);
+var _unicode = __w_pdfjs_require__(35);
 
-var _pattern = __w_pdfjs_require__(36);
+var _standard_fonts = __w_pdfjs_require__(34);
 
-var _parser = __w_pdfjs_require__(10);
+var _pattern = __w_pdfjs_require__(38);
 
-var _bidi = __w_pdfjs_require__(37);
+var _parser = __w_pdfjs_require__(11);
 
-var _colorspace = __w_pdfjs_require__(22);
+var _bidi = __w_pdfjs_require__(39);
 
-var _stream = __w_pdfjs_require__(11);
+var _colorspace = __w_pdfjs_require__(23);
 
-var _glyphlist = __w_pdfjs_require__(31);
+var _stream = __w_pdfjs_require__(12);
 
-var _metrics = __w_pdfjs_require__(38);
+var _glyphlist = __w_pdfjs_require__(33);
 
-var _function = __w_pdfjs_require__(39);
+var _metrics = __w_pdfjs_require__(40);
 
-var _jpeg_stream = __w_pdfjs_require__(17);
+var _function = __w_pdfjs_require__(41);
 
-var _murmurhash = __w_pdfjs_require__(41);
+var _image_utils = __w_pdfjs_require__(24);
 
-var _image_utils = __w_pdfjs_require__(42);
+var _murmurhash = __w_pdfjs_require__(43);
 
-var _operator_list = __w_pdfjs_require__(24);
+var _operator_list = __w_pdfjs_require__(26);
 
-var _image = __w_pdfjs_require__(43);
+var _image = __w_pdfjs_require__(44);
 
 var PartialEvaluator = function PartialEvaluatorClosure() {
   const DefaultPartialEvaluatorOptions = {
-    forceDataSchema: false,
     maxImageSize: -1,
     disableFontFace: false,
-    nativeImageDecoderSupport: _util.NativeImageDecoding.DECODE,
     ignoreErrors: false,
-    isEvalSupported: true
+    isEvalSupported: true,
+    fontExtraProperties: false
   };
 
   function PartialEvaluator({
@@ -20127,6 +20218,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
     idFactory,
     fontCache,
     builtInCMapCache,
+    globalImageCache,
     options = null,
     pdfFunctionFactory
   }) {
@@ -20136,6 +20228,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
     this.idFactory = idFactory;
     this.fontCache = fontCache;
     this.builtInCMapCache = builtInCMapCache;
+    this.globalImageCache = globalImageCache;
     this.options = options || DefaultPartialEvaluatorOptions;
     this.pdfFunctionFactory = pdfFunctionFactory;
     this.parsingType3Font = false;
@@ -20331,7 +20424,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
                   }
 
                   this.handler.send("UnsupportedFeature", {
-                    featureId: _util.UNSUPPORTED_FEATURES.unknown
+                    featureId: _util.UNSUPPORTED_FEATURES.errorExtGState
                   });
                   (0, _util.warn)(`hasBlendModes - ignoring ExtGState: "${ex}".`);
                   continue;
@@ -20399,7 +20492,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
                 }
 
                 this.handler.send("UnsupportedFeature", {
-                  featureId: _util.UNSUPPORTED_FEATURES.unknown
+                  featureId: _util.UNSUPPORTED_FEATURES.errorXObject
                 });
                 (0, _util.warn)(`hasBlendModes - ignoring XObject: "${ex}".`);
                 continue;
@@ -20502,10 +20595,10 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
       isInline = false,
       operatorList,
       cacheKey,
-      imageCache,
-      forceDisableNativeImageDecoder = false
+      localImageCache
     }) {
       var dict = image.dict;
+      const imageRef = dict.objId;
       var w = dict.get("Width", "W");
       var h = dict.get("Height", "H");
 
@@ -20542,10 +20635,10 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
         operatorList.addOp(_util.OPS.paintImageMaskXObject, args);
 
         if (cacheKey) {
-          imageCache[cacheKey] = {
+          localImageCache.set(cacheKey, imageRef, {
             fn: _util.OPS.paintImageMaskXObject,
             args
-          };
+          });
         }
 
         return undefined;
@@ -20555,7 +20648,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
       var mask = dict.get("Mask") || false;
       var SMALL_IMAGE_DIMENSIONS = 200;
 
-      if (isInline && !softMask && !mask && !(image instanceof _jpeg_stream.JpegStream) && w + h < 
SMALL_IMAGE_DIMENSIONS) {
+      if (isInline && !softMask && !mask && w + h < SMALL_IMAGE_DIMENSIONS) {
         const imageObj = new _image.PDFImage({
           xref: this.xref,
           res: resources,
@@ -20568,68 +20661,36 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
         return undefined;
       }
 
-      const nativeImageDecoderSupport = forceDisableNativeImageDecoder ? _util.NativeImageDecoding.NONE : 
this.options.nativeImageDecoderSupport;
-      let objId = `img_${this.idFactory.createObjId()}`;
+      let objId = `img_${this.idFactory.createObjId()}`,
+          cacheGlobally = false;
 
       if (this.parsingType3Font) {
-        (0, _util.assert)(nativeImageDecoderSupport === _util.NativeImageDecoding.NONE, "Type3 image 
resources should be completely decoded in the worker.");
         objId = `${this.idFactory.getDocId()}_type3res_${objId}`;
-      }
-
-      if (nativeImageDecoderSupport !== _util.NativeImageDecoding.NONE && !softMask && !mask && image 
instanceof _jpeg_stream.JpegStream && _image_utils.NativeImageDecoder.isSupported(image, this.xref, 
resources, this.pdfFunctionFactory) && image.maybeValidDimensions) {
-        return this.handler.sendWithPromise("obj", [objId, this.pageIndex, "JpegStream", 
image.getIR(this.options.forceDataSchema)]).then(function () {
-          operatorList.addDependency(objId);
-          args = [objId, w, h];
-          operatorList.addOp(_util.OPS.paintJpegXObject, args);
+      } else if (imageRef) {
+        cacheGlobally = this.globalImageCache.shouldCache(imageRef, this.pageIndex);
 
-          if (cacheKey) {
-            imageCache[cacheKey] = {
-              fn: _util.OPS.paintJpegXObject,
-              args
-            };
-          }
-        }, reason => {
-          (0, _util.warn)("Native JPEG decoding failed -- trying to recover: " + (reason && reason.message));
-          return this.buildPaintImageXObject({
-            resources,
-            image,
-            isInline,
-            operatorList,
-            cacheKey,
-            imageCache,
-            forceDisableNativeImageDecoder: true
-          });
-        });
-      }
-
-      var nativeImageDecoder = null;
-
-      if (nativeImageDecoderSupport === _util.NativeImageDecoding.DECODE && (image instanceof 
_jpeg_stream.JpegStream || mask instanceof _jpeg_stream.JpegStream || softMask instanceof 
_jpeg_stream.JpegStream)) {
-        nativeImageDecoder = new _image_utils.NativeImageDecoder({
-          xref: this.xref,
-          resources,
-          handler: this.handler,
-          forceDataSchema: this.options.forceDataSchema,
-          pdfFunctionFactory: this.pdfFunctionFactory
-        });
+        if (cacheGlobally) {
+          objId = `${this.idFactory.getDocId()}_${objId}`;
+        }
       }
 
       operatorList.addDependency(objId);
       args = [objId, w, h];
 
       const imgPromise = _image.PDFImage.buildImage({
-        handler: this.handler,
         xref: this.xref,
         res: resources,
         image,
         isInline,
-        nativeDecoder: nativeImageDecoder,
         pdfFunctionFactory: this.pdfFunctionFactory
       }).then(imageObj => {
-        var imgData = imageObj.createImageData(false);
+        imgData = imageObj.createImageData(false);
 
         if (this.parsingType3Font) {
           return this.handler.sendWithPromise("commonobj", [objId, "FontType3Res", imgData], 
[imgData.data.buffer]);
+        } else if (cacheGlobally) {
+          this.handler.send("commonobj", [objId, "Image", imgData], [imgData.data.buffer]);
+          return undefined;
         }
 
         this.handler.send("obj", [objId, this.pageIndex, "Image", imgData], [imgData.data.buffer]);
@@ -20639,6 +20700,9 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
 
         if (this.parsingType3Font) {
           return this.handler.sendWithPromise("commonobj", [objId, "FontType3Res", null]);
+        } else if (cacheGlobally) {
+          this.handler.send("commonobj", [objId, "Image", null]);
+          return undefined;
         }
 
         this.handler.send("obj", [objId, this.pageIndex, "Image", null]);
@@ -20652,10 +20716,23 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
       operatorList.addOp(_util.OPS.paintImageXObject, args);
 
       if (cacheKey) {
-        imageCache[cacheKey] = {
+        localImageCache.set(cacheKey, imageRef, {
           fn: _util.OPS.paintImageXObject,
           args
-        };
+        });
+
+        if (imageRef) {
+          (0, _util.assert)(!isInline, "Cannot cache an inline image globally.");
+          this.globalImageCache.addPageIndex(imageRef, this.pageIndex);
+
+          if (cacheGlobally) {
+            this.globalImageCache.setData(imageRef, {
+              objId,
+              fn: _util.OPS.paintImageXObject,
+              args
+            });
+          }
+        }
       }
 
       return undefined;
@@ -20712,7 +20789,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
 
         if (this.options.ignoreErrors) {
           this.handler.send("UnsupportedFeature", {
-            featureId: _util.UNSUPPORTED_FEATURES.unknown
+            featureId: _util.UNSUPPORTED_FEATURES.errorTilingPattern
           });
           (0, _util.warn)(`handleTilingType - ignoring pattern: "${reason}".`);
           return;
@@ -20739,9 +20816,14 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
           return translated;
         }).catch(reason => {
           this.handler.send("UnsupportedFeature", {
-            featureId: _util.UNSUPPORTED_FEATURES.font
+            featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadType3
+          });
+          return new TranslatedFont({
+            loadedName: "g_font_error",
+            font: new _fonts.ErrorFont(`Type3 font load error: ${reason}`),
+            dict: translated.font,
+            extraProperties: this.options.fontExtraProperties
           });
-          return new TranslatedFont("g_font_error", new _fonts.ErrorFont("Type3 font load error: " + 
reason), translated.font);
         });
       }).then(translated => {
         state.font = translated.font;
@@ -20774,7 +20856,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
 
       if (this.options.ignoreErrors) {
         this.handler.send("UnsupportedFeature", {
-          featureId: _util.UNSUPPORTED_FEATURES.font
+          featureId: _util.UNSUPPORTED_FEATURES.errorFontState
         });
         (0, _util.warn)(`ensureStateFont: "${reason}".`);
         return;
@@ -20868,9 +20950,14 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
       });
     },
     loadFont: function PartialEvaluator_loadFont(fontName, font, resources) {
-      function errorFont() {
-        return Promise.resolve(new TranslatedFont("g_font_error", new _fonts.ErrorFont("Font " + fontName + 
" is not available"), font));
-      }
+      const errorFont = () => {
+        return Promise.resolve(new TranslatedFont({
+          loadedName: "g_font_error",
+          font: new _fonts.ErrorFont(`Font "${fontName}" is not available.`),
+          dict: font,
+          extraProperties: this.options.fontExtraProperties
+        }));
+      };
 
       var fontRef,
           xref = this.xref;
@@ -20898,7 +20985,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
         }
 
         this.handler.send("UnsupportedFeature", {
-          featureId: _util.UNSUPPORTED_FEATURES.font
+          featureId: _util.UNSUPPORTED_FEATURES.errorFontMissing
         });
         (0, _util.warn)(`${partialMsg} -- attempting to fallback to a default font.`);
         fontRef = PartialEvaluator.getFallbackFontDict();
@@ -20979,16 +21066,21 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
         translatedPromise = Promise.reject(e);
       }
 
-      translatedPromise.then(function (translatedFont) {
+      translatedPromise.then(translatedFont => {
         if (translatedFont.fontType !== undefined) {
           var xrefFontStats = xref.stats.fontTypes;
           xrefFontStats[translatedFont.fontType] = true;
         }
 
-        fontCapability.resolve(new TranslatedFont(font.loadedName, translatedFont, font));
+        fontCapability.resolve(new TranslatedFont({
+          loadedName: font.loadedName,
+          font: translatedFont,
+          dict: font,
+          extraProperties: this.options.fontExtraProperties
+        }));
       }).catch(reason => {
         this.handler.send("UnsupportedFeature", {
-          featureId: _util.UNSUPPORTED_FEATURES.font
+          featureId: _util.UNSUPPORTED_FEATURES.errorFontTranslate
         });
 
         try {
@@ -20999,7 +21091,12 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
           xrefFontStats[fontType] = true;
         } catch (ex) {}
 
-        fontCapability.resolve(new TranslatedFont(font.loadedName, new _fonts.ErrorFont(reason instanceof 
Error ? reason.message : reason), font));
+        fontCapability.resolve(new TranslatedFont({
+          loadedName: font.loadedName,
+          font: new _fonts.ErrorFont(reason instanceof Error ? reason.message : reason),
+          dict: font,
+          extraProperties: this.options.fontExtraProperties
+        }));
       });
       return fontCapability.promise;
     },
@@ -21042,7 +21139,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
 
         if (this.options.ignoreErrors) {
           this.handler.send("UnsupportedFeature", {
-            featureId: _util.UNSUPPORTED_FEATURES.unknown
+            featureId: _util.UNSUPPORTED_FEATURES.errorColorSpace
           });
           (0, _util.warn)(`parseColorSpace - ignoring ColorSpace: "${reason}".`);
           return null;
@@ -21094,7 +21191,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
       var self = this;
       var xref = this.xref;
       let parsingText = false;
-      var imageCache = Object.create(null);
+      const localImageCache = new _image_utils.LocalImageCache();
 
       var xobjs = resources.get("XObject") || _primitives.Dict.empty;
 
@@ -21143,10 +21240,14 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
             case _util.OPS.paintXObject:
               var name = args[0].name;
 
-              if (name && imageCache[name] !== undefined) {
-                operatorList.addOp(imageCache[name].fn, imageCache[name].args);
-                args = null;
-                continue;
+              if (name) {
+                const localImage = localImageCache.getByName(name);
+
+                if (localImage) {
+                  operatorList.addOp(localImage.fn, localImage.args);
+                  args = null;
+                  continue;
+                }
               }
 
               next(new Promise(function (resolveXObject, rejectXObject) {
@@ -21154,7 +21255,28 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
                   throw new _util.FormatError("XObject must be referred to by name.");
                 }
 
-                const xobj = xobjs.get(name);
+                let xobj = xobjs.getRaw(name);
+
+                if (xobj instanceof _primitives.Ref) {
+                  const localImage = localImageCache.getByRef(xobj);
+
+                  if (localImage) {
+                    operatorList.addOp(localImage.fn, localImage.args);
+                    resolveXObject();
+                    return;
+                  }
+
+                  const globalImage = self.globalImageCache.getData(xobj, self.pageIndex);
+
+                  if (globalImage) {
+                    operatorList.addDependency(globalImage.objId);
+                    operatorList.addOp(globalImage.fn, globalImage.args);
+                    resolveXObject();
+                    return;
+                  }
+
+                  xobj = xref.fetch(xobj);
+                }
 
                 if (!xobj) {
                   operatorList.addOp(fn, args);
@@ -21185,7 +21307,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
                     image: xobj,
                     operatorList,
                     cacheKey: name,
-                    imageCache
+                    localImageCache
                   }).then(resolveXObject, rejectXObject);
                   return;
                 } else if (type.name === "PS") {
@@ -21202,7 +21324,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
 
                 if (self.options.ignoreErrors) {
                   self.handler.send("UnsupportedFeature", {
-                    featureId: _util.UNSUPPORTED_FEATURES.unknown
+                    featureId: _util.UNSUPPORTED_FEATURES.errorXObject
                   });
                   (0, _util.warn)(`getOperatorList - ignoring XObject: "${reason}".`);
                   return;
@@ -21232,10 +21354,10 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
               var cacheKey = args[0].cacheKey;
 
               if (cacheKey) {
-                var cacheEntry = imageCache[cacheKey];
+                const localImage = localImageCache.getByName(cacheKey);
 
-                if (cacheEntry !== undefined) {
-                  operatorList.addOp(cacheEntry.fn, cacheEntry.args);
+                if (localImage) {
+                  operatorList.addOp(localImage.fn, localImage.args);
                   args = null;
                   continue;
                 }
@@ -21247,7 +21369,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
                 isInline: true,
                 operatorList,
                 cacheKey,
-                imageCache
+                localImageCache
               }));
               return;
 
@@ -21489,7 +21611,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
 
         if (this.options.ignoreErrors) {
           this.handler.send("UnsupportedFeature", {
-            featureId: _util.UNSUPPORTED_FEATURES.unknown
+            featureId: _util.UNSUPPORTED_FEATURES.errorOperatorList
           });
           (0, _util.warn)(`getOperatorList - ignoring errors during "${task.name}" ` + `task: "${reason}".`);
           closePendingRestoreOPS();
@@ -21540,7 +21662,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
       var self = this;
       var xref = this.xref;
       var xobjs = null;
-      var skipEmptyXObjs = Object.create(null);
+      const emptyXObjectCache = new _image_utils.LocalImageCache();
       var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);
       var textState;
 
@@ -21557,7 +21679,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
             fontFamily: font.fallbackName,
             ascent: font.ascent,
             descent: font.descent,
-            vertical: !!font.vertical
+            vertical: font.vertical
           };
         }
 
@@ -21965,7 +22087,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
 
               var name = args[0].name;
 
-              if (name && skipEmptyXObjs[name] !== undefined) {
+              if (name && emptyXObjectCache.getByName(name)) {
                 break;
               }
 
@@ -21974,7 +22096,16 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
                   throw new _util.FormatError("XObject must be referred to by name.");
                 }
 
-                const xobj = xobjs.get(name);
+                let xobj = xobjs.getRaw(name);
+
+                if (xobj instanceof _primitives.Ref) {
+                  if (emptyXObjectCache.getByRef(xobj)) {
+                    resolveXObject();
+                    return;
+                  }
+
+                  xobj = xref.fetch(xobj);
+                }
 
                 if (!xobj) {
                   resolveXObject();
@@ -21992,7 +22123,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
                 }
 
                 if (type.name !== "Form") {
-                  skipEmptyXObjs[name] = true;
+                  emptyXObjectCache.set(name, xobj.dict.objId, true);
                   resolveXObject();
                   return;
                 }
@@ -22034,7 +22165,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
                   seenStyles
                 }).then(function () {
                   if (!sinkWrapper.enqueueInvoked) {
-                    skipEmptyXObjs[name] = true;
+                    emptyXObjectCache.set(name, xobj.dict.objId, true);
                   }
 
                   resolveXObject();
@@ -22202,14 +22333,14 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
       properties.baseEncodingName = baseEncodingName;
       properties.hasEncoding = !!baseEncodingName || differences.length > 0;
       properties.dict = dict;
-      return toUnicodePromise.then(toUnicode => {
-        properties.toUnicode = toUnicode;
+      return toUnicodePromise.then(readToUnicode => {
+        properties.toUnicode = readToUnicode;
         return this.buildToUnicode(properties);
-      }).then(toUnicode => {
-        properties.toUnicode = toUnicode;
+      }).then(builtToUnicode => {
+        properties.toUnicode = builtToUnicode;
 
         if (cidToGidBytes) {
-          properties.cidToGidMap = this.readCidToGidMap(cidToGidBytes, toUnicode);
+          properties.cidToGidMap = this.readCidToGidMap(cidToGidBytes, builtToUnicode);
         }
 
         return properties;
@@ -22286,7 +22417,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
 
           }
 
-          if (code > 0 && Number.isInteger(code)) {
+          if (code > 0 && code <= 0x10ffff && Number.isInteger(code)) {
             if (baseEncodingName && code === +charcode) {
               const baseEncoding = (0, _encodings.getEncoding)(baseEncodingName);
 
@@ -22406,7 +22537,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
 
           if (this.options.ignoreErrors) {
             this.handler.send("UnsupportedFeature", {
-              featureId: _util.UNSUPPORTED_FEATURES.font
+              featureId: _util.UNSUPPORTED_FEATURES.errorFontToUnicode
             });
             (0, _util.warn)(`readToUnicode - ignoring ToUnicode data: "${reason}".`);
             return null;
@@ -22732,7 +22863,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
             lastChar
           };
           const widths = dict.get("Widths");
-          return this.extractDataStructures(dict, dict, properties).then(properties => {
+          return this.extractDataStructures(dict, dict, properties).then(newProperties => {
             if (widths) {
               const glyphWidths = [];
               let j = firstChar;
@@ -22741,12 +22872,12 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
                 glyphWidths[j++] = this.xref.fetchIfRef(widths[i]);
               }
 
-              properties.widths = glyphWidths;
+              newProperties.widths = glyphWidths;
             } else {
-              properties.widths = this.buildCharCodeToWidth(metrics.widths, properties);
+              newProperties.widths = this.buildCharCodeToWidth(metrics.widths, newProperties);
             }
 
-            return new _fonts.Font(baseFontName, null, properties);
+            return new _fonts.Font(baseFontName, null, newProperties);
           });
         }
       }
@@ -22807,7 +22938,6 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
         length3,
         loadedName: baseDict.loadedName,
         composite,
-        wideChars: composite,
         fixedPitch: false,
         fontMatrix: dict.getArray("FontMatrix") || _util.FONT_IDENTITY_MATRIX,
         firstChar: firstChar || 0,
@@ -22844,14 +22974,14 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
 
       return cMapPromise.then(() => {
         return this.extractDataStructures(dict, baseDict, properties);
-      }).then(properties => {
-        this.extractWidths(dict, descriptor, properties);
+      }).then(newProperties => {
+        this.extractWidths(dict, descriptor, newProperties);
 
         if (type === "Type3") {
-          properties.isType3Font = true;
+          newProperties.isType3Font = true;
         }
 
-        return new _fonts.Font(fontName.name, fontFile, properties);
+        return new _fonts.Font(fontName.name, fontFile, newProperties);
       });
     }
   };
@@ -22893,86 +23023,88 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
 
 exports.PartialEvaluator = PartialEvaluator;
 
-var TranslatedFont = function TranslatedFontClosure() {
-  function TranslatedFont(loadedName, font, dict) {
+class TranslatedFont {
+  constructor({
+    loadedName,
+    font,
+    dict,
+    extraProperties = false
+  }) {
     this.loadedName = loadedName;
     this.font = font;
     this.dict = dict;
+    this._extraProperties = extraProperties;
     this.type3Loaded = null;
     this.sent = false;
   }
 
-  TranslatedFont.prototype = {
-    send(handler) {
-      if (this.sent) {
-        return;
-      }
+  send(handler) {
+    if (this.sent) {
+      return;
+    }
 
-      this.sent = true;
-      handler.send("commonobj", [this.loadedName, "Font", this.font.exportData()]);
-    },
+    this.sent = true;
+    handler.send("commonobj", [this.loadedName, "Font", this.font.exportData(this._extraProperties)]);
+  }
 
-    fallback(handler) {
-      if (!this.font.data) {
-        return;
-      }
+  fallback(handler) {
+    if (!this.font.data) {
+      return;
+    }
 
-      this.font.disableFontFace = true;
-      const glyphs = this.font.glyphCacheValues;
-      PartialEvaluator.buildFontPaths(this.font, glyphs, handler);
-    },
-
-    loadType3Data(evaluator, resources, parentOperatorList, task) {
-      if (!this.font.isType3Font) {
-        throw new Error("Must be a Type3 font.");
-      }
-
-      if (this.type3Loaded) {
-        return this.type3Loaded;
-      }
-
-      var type3Options = Object.create(evaluator.options);
-      type3Options.ignoreErrors = false;
-      type3Options.nativeImageDecoderSupport = _util.NativeImageDecoding.NONE;
-      var type3Evaluator = evaluator.clone(type3Options);
-      type3Evaluator.parsingType3Font = true;
-      var translatedFont = this.font;
-      var loadCharProcsPromise = Promise.resolve();
-      var charProcs = this.dict.get("CharProcs");
-      var fontResources = this.dict.get("Resources") || resources;
-      var charProcKeys = charProcs.getKeys();
-      var charProcOperatorList = Object.create(null);
-
-      for (var i = 0, n = charProcKeys.length; i < n; ++i) {
-        const key = charProcKeys[i];
-        loadCharProcsPromise = loadCharProcsPromise.then(function () {
-          var glyphStream = charProcs.get(key);
-          var operatorList = new _operator_list.OperatorList();
-          return type3Evaluator.getOperatorList({
-            stream: glyphStream,
-            task,
-            resources: fontResources,
-            operatorList
-          }).then(function () {
-            charProcOperatorList[key] = operatorList.getIR();
-            parentOperatorList.addDependencies(operatorList.dependencies);
-          }).catch(function (reason) {
-            (0, _util.warn)(`Type3 font resource "${key}" is not available.`);
-            var operatorList = new _operator_list.OperatorList();
-            charProcOperatorList[key] = operatorList.getIR();
-          });
-        });
-      }
+    this.font.disableFontFace = true;
+    const glyphs = this.font.glyphCacheValues;
+    PartialEvaluator.buildFontPaths(this.font, glyphs, handler);
+  }
 
-      this.type3Loaded = loadCharProcsPromise.then(function () {
-        translatedFont.charProcOperatorList = charProcOperatorList;
-      });
+  loadType3Data(evaluator, resources, parentOperatorList, task) {
+    if (!this.font.isType3Font) {
+      throw new Error("Must be a Type3 font.");
+    }
+
+    if (this.type3Loaded) {
       return this.type3Loaded;
     }
 
-  };
-  return TranslatedFont;
-}();
+    var type3Options = Object.create(evaluator.options);
+    type3Options.ignoreErrors = false;
+    var type3Evaluator = evaluator.clone(type3Options);
+    type3Evaluator.parsingType3Font = true;
+    var translatedFont = this.font;
+    var loadCharProcsPromise = Promise.resolve();
+    var charProcs = this.dict.get("CharProcs");
+    var fontResources = this.dict.get("Resources") || resources;
+    var charProcKeys = charProcs.getKeys();
+    var charProcOperatorList = Object.create(null);
+
+    for (var i = 0, n = charProcKeys.length; i < n; ++i) {
+      const key = charProcKeys[i];
+      loadCharProcsPromise = loadCharProcsPromise.then(function () {
+        var glyphStream = charProcs.get(key);
+        var operatorList = new _operator_list.OperatorList();
+        return type3Evaluator.getOperatorList({
+          stream: glyphStream,
+          task,
+          resources: fontResources,
+          operatorList
+        }).then(function () {
+          charProcOperatorList[key] = operatorList.getIR();
+          parentOperatorList.addDependencies(operatorList.dependencies);
+        }).catch(function (reason) {
+          (0, _util.warn)(`Type3 font resource "${key}" is not available.`);
+          const dummyOperatorList = new _operator_list.OperatorList();
+          charProcOperatorList[key] = dummyOperatorList.getIR();
+        });
+      });
+    }
+
+    this.type3Loaded = loadCharProcsPromise.then(function () {
+      translatedFont.charProcOperatorList = charProcOperatorList;
+    });
+    return this.type3Loaded;
+  }
+
+}
 
 var StateManager = function StateManagerClosure() {
   function StateManager(initialState) {
@@ -23124,112 +23256,112 @@ var EvalState = function EvalStateClosure() {
 
 var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {
   var getOPMap = (0, _core_utils.getLookupTableFactory)(function (t) {
-    t["w"] = {
+    t.w = {
       id: _util.OPS.setLineWidth,
       numArgs: 1,
       variableArgs: false
     };
-    t["J"] = {
+    t.J = {
       id: _util.OPS.setLineCap,
       numArgs: 1,
       variableArgs: false
     };
-    t["j"] = {
+    t.j = {
       id: _util.OPS.setLineJoin,
       numArgs: 1,
       variableArgs: false
     };
-    t["M"] = {
+    t.M = {
       id: _util.OPS.setMiterLimit,
       numArgs: 1,
       variableArgs: false
     };
-    t["d"] = {
+    t.d = {
       id: _util.OPS.setDash,
       numArgs: 2,
       variableArgs: false
     };
-    t["ri"] = {
+    t.ri = {
       id: _util.OPS.setRenderingIntent,
       numArgs: 1,
       variableArgs: false
     };
-    t["i"] = {
+    t.i = {
       id: _util.OPS.setFlatness,
       numArgs: 1,
       variableArgs: false
     };
-    t["gs"] = {
+    t.gs = {
       id: _util.OPS.setGState,
       numArgs: 1,
       variableArgs: false
     };
-    t["q"] = {
+    t.q = {
       id: _util.OPS.save,
       numArgs: 0,
       variableArgs: false
     };
-    t["Q"] = {
+    t.Q = {
       id: _util.OPS.restore,
       numArgs: 0,
       variableArgs: false
     };
-    t["cm"] = {
+    t.cm = {
       id: _util.OPS.transform,
       numArgs: 6,
       variableArgs: false
     };
-    t["m"] = {
+    t.m = {
       id: _util.OPS.moveTo,
       numArgs: 2,
       variableArgs: false
     };
-    t["l"] = {
+    t.l = {
       id: _util.OPS.lineTo,
       numArgs: 2,
       variableArgs: false
     };
-    t["c"] = {
+    t.c = {
       id: _util.OPS.curveTo,
       numArgs: 6,
       variableArgs: false
     };
-    t["v"] = {
+    t.v = {
       id: _util.OPS.curveTo2,
       numArgs: 4,
       variableArgs: false
     };
-    t["y"] = {
+    t.y = {
       id: _util.OPS.curveTo3,
       numArgs: 4,
       variableArgs: false
     };
-    t["h"] = {
+    t.h = {
       id: _util.OPS.closePath,
       numArgs: 0,
       variableArgs: false
     };
-    t["re"] = {
+    t.re = {
       id: _util.OPS.rectangle,
       numArgs: 4,
       variableArgs: false
     };
-    t["S"] = {
+    t.S = {
       id: _util.OPS.stroke,
       numArgs: 0,
       variableArgs: false
     };
-    t["s"] = {
+    t.s = {
       id: _util.OPS.closeStroke,
       numArgs: 0,
       variableArgs: false
     };
-    t["f"] = {
+    t.f = {
       id: _util.OPS.fill,
       numArgs: 0,
       variableArgs: false
     };
-    t["F"] = {
+    t.F = {
       id: _util.OPS.fill,
       numArgs: 0,
       variableArgs: false
@@ -23239,7 +23371,7 @@ var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {
       numArgs: 0,
       variableArgs: false
     };
-    t["B"] = {
+    t.B = {
       id: _util.OPS.fillStroke,
       numArgs: 0,
       variableArgs: false
@@ -23249,7 +23381,7 @@ var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {
       numArgs: 0,
       variableArgs: false
     };
-    t["b"] = {
+    t.b = {
       id: _util.OPS.closeFillStroke,
       numArgs: 0,
       variableArgs: false
@@ -23259,12 +23391,12 @@ var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {
       numArgs: 0,
       variableArgs: false
     };
-    t["n"] = {
+    t.n = {
       id: _util.OPS.endPath,
       numArgs: 0,
       variableArgs: false
     };
-    t["W"] = {
+    t.W = {
       id: _util.OPS.clip,
       numArgs: 0,
       variableArgs: false
@@ -23274,62 +23406,62 @@ var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {
       numArgs: 0,
       variableArgs: false
     };
-    t["BT"] = {
+    t.BT = {
       id: _util.OPS.beginText,
       numArgs: 0,
       variableArgs: false
     };
-    t["ET"] = {
+    t.ET = {
       id: _util.OPS.endText,
       numArgs: 0,
       variableArgs: false
     };
-    t["Tc"] = {
+    t.Tc = {
       id: _util.OPS.setCharSpacing,
       numArgs: 1,
       variableArgs: false
     };
-    t["Tw"] = {
+    t.Tw = {
       id: _util.OPS.setWordSpacing,
       numArgs: 1,
       variableArgs: false
     };
-    t["Tz"] = {
+    t.Tz = {
       id: _util.OPS.setHScale,
       numArgs: 1,
       variableArgs: false
     };
-    t["TL"] = {
+    t.TL = {
       id: _util.OPS.setLeading,
       numArgs: 1,
       variableArgs: false
     };
-    t["Tf"] = {
+    t.Tf = {
       id: _util.OPS.setFont,
       numArgs: 2,
       variableArgs: false
     };
-    t["Tr"] = {
+    t.Tr = {
       id: _util.OPS.setTextRenderingMode,
       numArgs: 1,
       variableArgs: false
     };
-    t["Ts"] = {
+    t.Ts = {
       id: _util.OPS.setTextRise,
       numArgs: 1,
       variableArgs: false
     };
-    t["Td"] = {
+    t.Td = {
       id: _util.OPS.moveText,
       numArgs: 2,
       variableArgs: false
     };
-    t["TD"] = {
+    t.TD = {
       id: _util.OPS.setLeadingMoveText,
       numArgs: 2,
       variableArgs: false
     };
-    t["Tm"] = {
+    t.Tm = {
       id: _util.OPS.setTextMatrix,
       numArgs: 6,
       variableArgs: false
@@ -23339,12 +23471,12 @@ var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {
       numArgs: 0,
       variableArgs: false
     };
-    t["Tj"] = {
+    t.Tj = {
       id: _util.OPS.showText,
       numArgs: 1,
       variableArgs: false
     };
-    t["TJ"] = {
+    t.TJ = {
       id: _util.OPS.showSpacedText,
       numArgs: 1,
       variableArgs: false
@@ -23359,146 +23491,146 @@ var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {
       numArgs: 3,
       variableArgs: false
     };
-    t["d0"] = {
+    t.d0 = {
       id: _util.OPS.setCharWidth,
       numArgs: 2,
       variableArgs: false
     };
-    t["d1"] = {
+    t.d1 = {
       id: _util.OPS.setCharWidthAndBounds,
       numArgs: 6,
       variableArgs: false
     };
-    t["CS"] = {
+    t.CS = {
       id: _util.OPS.setStrokeColorSpace,
       numArgs: 1,
       variableArgs: false
     };
-    t["cs"] = {
+    t.cs = {
       id: _util.OPS.setFillColorSpace,
       numArgs: 1,
       variableArgs: false
     };
-    t["SC"] = {
+    t.SC = {
       id: _util.OPS.setStrokeColor,
       numArgs: 4,
       variableArgs: true
     };
-    t["SCN"] = {
+    t.SCN = {
       id: _util.OPS.setStrokeColorN,
       numArgs: 33,
       variableArgs: true
     };
-    t["sc"] = {
+    t.sc = {
       id: _util.OPS.setFillColor,
       numArgs: 4,
       variableArgs: true
     };
-    t["scn"] = {
+    t.scn = {
       id: _util.OPS.setFillColorN,
       numArgs: 33,
       variableArgs: true
     };
-    t["G"] = {
+    t.G = {
       id: _util.OPS.setStrokeGray,
       numArgs: 1,
       variableArgs: false
     };
-    t["g"] = {
+    t.g = {
       id: _util.OPS.setFillGray,
       numArgs: 1,
       variableArgs: false
     };
-    t["RG"] = {
+    t.RG = {
       id: _util.OPS.setStrokeRGBColor,
       numArgs: 3,
       variableArgs: false
     };
-    t["rg"] = {
+    t.rg = {
       id: _util.OPS.setFillRGBColor,
       numArgs: 3,
       variableArgs: false
     };
-    t["K"] = {
+    t.K = {
       id: _util.OPS.setStrokeCMYKColor,
       numArgs: 4,
       variableArgs: false
     };
-    t["k"] = {
+    t.k = {
       id: _util.OPS.setFillCMYKColor,
       numArgs: 4,
       variableArgs: false
     };
-    t["sh"] = {
+    t.sh = {
       id: _util.OPS.shadingFill,
       numArgs: 1,
       variableArgs: false
     };
-    t["BI"] = {
+    t.BI = {
       id: _util.OPS.beginInlineImage,
       numArgs: 0,
       variableArgs: false
     };
-    t["ID"] = {
+    t.ID = {
       id: _util.OPS.beginImageData,
       numArgs: 0,
       variableArgs: false
     };
-    t["EI"] = {
+    t.EI = {
       id: _util.OPS.endInlineImage,
       numArgs: 1,
       variableArgs: false
     };
-    t["Do"] = {
+    t.Do = {
       id: _util.OPS.paintXObject,
       numArgs: 1,
       variableArgs: false
     };
-    t["MP"] = {
+    t.MP = {
       id: _util.OPS.markPoint,
       numArgs: 1,
       variableArgs: false
     };
-    t["DP"] = {
+    t.DP = {
       id: _util.OPS.markPointProps,
       numArgs: 2,
       variableArgs: false
     };
-    t["BMC"] = {
+    t.BMC = {
       id: _util.OPS.beginMarkedContent,
       numArgs: 1,
       variableArgs: false
     };
-    t["BDC"] = {
+    t.BDC = {
       id: _util.OPS.beginMarkedContentProps,
       numArgs: 2,
       variableArgs: false
     };
-    t["EMC"] = {
+    t.EMC = {
       id: _util.OPS.endMarkedContent,
       numArgs: 0,
       variableArgs: false
     };
-    t["BX"] = {
+    t.BX = {
       id: _util.OPS.beginCompat,
       numArgs: 0,
       variableArgs: false
     };
-    t["EX"] = {
+    t.EX = {
       id: _util.OPS.endCompat,
       numArgs: 0,
       variableArgs: false
     };
-    t["BM"] = null;
-    t["BD"] = null;
-    t["true"] = null;
-    t["fa"] = null;
-    t["fal"] = null;
-    t["fals"] = null;
-    t["false"] = null;
-    t["nu"] = null;
-    t["nul"] = null;
-    t["null"] = null;
+    t.BM = null;
+    t.BD = null;
+    t.true = null;
+    t.fa = null;
+    t.fal = null;
+    t.fals = null;
+    t.false = null;
+    t.nu = null;
+    t.nul = null;
+    t.null = null;
   });
   const MAX_INVALID_PATH_OPS = 20;
 
@@ -23618,7 +23750,7 @@ var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {
 }();
 
 /***/ }),
-/* 26 */
+/* 28 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -23631,15 +23763,16 @@ exports.CMapFactory = exports.IdentityCMap = exports.CMap = void 0;
 
 var _util = __w_pdfjs_require__(2);
 
-var _primitives = __w_pdfjs_require__(4);
+var _primitives = __w_pdfjs_require__(5);
 
-var _parser = __w_pdfjs_require__(10);
+var _parser = __w_pdfjs_require__(11);
 
-var _core_utils = __w_pdfjs_require__(7);
+var _core_utils = __w_pdfjs_require__(8);
 
-var _stream = __w_pdfjs_require__(11);
+var _stream = __w_pdfjs_require__(12);
 
 var BUILT_IN_CMAPS = ["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-E
 UC-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"];
+const MAX_MAP_RANGE = 2 ** 24 - 1;
 
 class CMap {
   constructor(builtInCMap = false) {
@@ -23658,12 +23791,20 @@ class CMap {
   }
 
   mapCidRange(low, high, dstLow) {
+    if (high - low > MAX_MAP_RANGE) {
+      throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE.");
+    }
+
     while (low <= high) {
       this._map[low++] = dstLow++;
     }
   }
 
   mapBfRange(low, high, dstLow) {
+    if (high - low > MAX_MAP_RANGE) {
+      throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE.");
+    }
+
     var lastByte = dstLow.length - 1;
 
     while (low <= high) {
@@ -23673,6 +23814,10 @@ class CMap {
   }
 
   mapBfRangeToArray(low, high, array) {
+    if (high - low > MAX_MAP_RANGE) {
+      throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.");
+    }
+
     const ii = array.length;
     let i = 0;
 
@@ -24515,7 +24660,7 @@ var CMapFactory = function CMapFactoryClosure() {
 exports.CMapFactory = CMapFactory;
 
 /***/ }),
-/* 27 */
+/* 29 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -24529,30 +24674,32 @@ exports.IdentityToUnicodeMap = exports.ToUnicodeMap = exports.FontFlags = export
 
 var _util = __w_pdfjs_require__(2);
 
-var _cff_parser = __w_pdfjs_require__(28);
+var _cff_parser = __w_pdfjs_require__(30);
 
-var _glyphlist = __w_pdfjs_require__(31);
+var _glyphlist = __w_pdfjs_require__(33);
 
-var _encodings = __w_pdfjs_require__(30);
+var _encodings = __w_pdfjs_require__(32);
 
-var _standard_fonts = __w_pdfjs_require__(32);
+var _standard_fonts = __w_pdfjs_require__(34);
 
-var _unicode = __w_pdfjs_require__(33);
+var _unicode = __w_pdfjs_require__(35);
 
-var _core_utils = __w_pdfjs_require__(7);
+var _core_utils = __w_pdfjs_require__(8);
 
-var _font_renderer = __w_pdfjs_require__(34);
+var _font_renderer = __w_pdfjs_require__(36);
 
-var _cmap = __w_pdfjs_require__(26);
+var _cmap = __w_pdfjs_require__(28);
 
-var _stream = __w_pdfjs_require__(11);
+var _stream = __w_pdfjs_require__(12);
 
-var _type1_parser = __w_pdfjs_require__(35);
+var _type1_parser = __w_pdfjs_require__(37);
 
 const PRIVATE_USE_AREAS = [[0xe000, 0xf8ff], [0x100000, 0x10fffd]];
 var PDF_GLYPH_SPACE_UNITS = 1000;
 var SEAC_ANALYSIS_ENABLED = true;
 exports.SEAC_ANALYSIS_ENABLED = SEAC_ANALYSIS_ENABLED;
+const EXPORT_DATA_PROPERTIES = ["ascent", "bbox", "black", "bold", "charProcOperatorList", "composite", 
"data", "defaultVMetrics", "defaultWidth", "descent", "fallbackName", "fontMatrix", "fontType", 
"isMonospace", "isSerifFont", "isType3Font", "italic", "loadedName", "mimetype", "missingFile", "name", 
"remeasure", "subtype", "type", "vertical"];
+const EXPORT_DATA_EXTRA_PROPERTIES = ["cMap", "defaultEncoding", "differences", "isSymbolicFont", "seacMap", 
"toFontChar", "toUnicode", "vmetrics", "widths"];
 var FontFlags = {
   FixedPitch: 1,
   Serif: 2,
@@ -24910,7 +25057,6 @@ var Font = function FontClosure() {
     this.name = name;
     this.loadedName = properties.loadedName;
     this.isType3Font = properties.isType3Font;
-    this.sizes = [];
     this.missingFile = false;
     this.glyphCache = Object.create(null);
     this.isSerifFont = !!(properties.flags & FontFlags.Serif);
@@ -24933,7 +25079,6 @@ var Font = function FontClosure() {
     this.widths = properties.widths;
     this.defaultWidth = properties.defaultWidth;
     this.composite = properties.composite;
-    this.wideChars = properties.wideChars;
     this.cMap = properties.cMap;
     this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;
     this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;
@@ -24954,7 +25099,7 @@ var Font = function FontClosure() {
     }
 
     this.cidEncoding = properties.cidEncoding;
-    this.vertical = properties.vertical;
+    this.vertical = !!properties.vertical;
 
     if (this.vertical) {
       this.vmetrics = properties.vmetrics;
@@ -25019,7 +25164,6 @@ var Font = function FontClosure() {
     this.widths = properties.widths;
     this.defaultWidth = properties.defaultWidth;
     this.toUnicode = properties.toUnicode;
-    this.encoding = properties.baseEncoding;
     this.seacMap = properties.seacMap;
   }
 
@@ -25359,25 +25503,25 @@ var Font = function FontClosure() {
     return cmap + "\x00\x04" + string16(format314.length + 4) + format314 + header31012 + format31012;
   }
 
-  function validateOS2Table(os2) {
-    var stream = new _stream.Stream(os2.data);
-    var version = stream.getUint16();
-    stream.getBytes(60);
-    var selection = stream.getUint16();
+  function validateOS2Table(os2, file) {
+    file.pos = (file.start || 0) + os2.offset;
+    var version = file.getUint16();
+    file.skip(60);
+    var selection = file.getUint16();
 
     if (version < 4 && selection & 0x0300) {
       return false;
     }
 
-    var firstChar = stream.getUint16();
-    var lastChar = stream.getUint16();
+    var firstChar = file.getUint16();
+    var lastChar = file.getUint16();
 
     if (firstChar > lastChar) {
       return false;
     }
 
-    stream.getBytes(6);
-    var usWinAscent = stream.getUint16();
+    file.skip(6);
+    var usWinAscent = file.getUint16();
 
     if (usWinAscent === 0) {
       return false;
@@ -25504,7 +25648,6 @@ var Font = function FontClosure() {
     name: null,
     font: null,
     mimetype: null,
-    encoding: null,
     disableFontFace: false,
 
     get renderer() {
@@ -25513,20 +25656,24 @@ var Font = function FontClosure() {
       return (0, _util.shadow)(this, "renderer", renderer);
     },
 
-    exportData: function Font_exportData() {
-      var data = {};
+    exportData(extraProperties = false) {
+      const exportDataProperties = extraProperties ? [...EXPORT_DATA_PROPERTIES, 
...EXPORT_DATA_EXTRA_PROPERTIES] : EXPORT_DATA_PROPERTIES;
+      const data = Object.create(null);
+      let property, value;
+
+      for (property of exportDataProperties) {
+        value = this[property];
 
-      for (var i in this) {
-        if (this.hasOwnProperty(i)) {
-          data[i] = this[i];
+        if (value !== undefined) {
+          data[property] = value;
         }
       }
 
       return data;
     },
+
     fallbackToSystemFont: function Font_fallbackToSystemFont() {
       this.missingFile = true;
-      var charCode, unicode;
       var name = this.name;
       var type = this.type;
       var subtype = this.subtype;
@@ -25544,20 +25691,20 @@ var Font = function FontClosure() {
         const GlyphMapForStandardFonts = (0, _standard_fonts.getGlyphMapForStandardFonts)();
         const map = [];
 
-        for (charCode in GlyphMapForStandardFonts) {
+        for (const charCode in GlyphMapForStandardFonts) {
           map[+charCode] = GlyphMapForStandardFonts[charCode];
         }
 
         if (/Arial-?Black/i.test(name)) {
           var SupplementalGlyphMapForArialBlack = (0, 
_standard_fonts.getSupplementalGlyphMapForArialBlack)();
 
-          for (charCode in SupplementalGlyphMapForArialBlack) {
+          for (const charCode in SupplementalGlyphMapForArialBlack) {
             map[+charCode] = SupplementalGlyphMapForArialBlack[charCode];
           }
         } else if (/Calibri/i.test(name)) {
           const SupplementalGlyphMapForCalibri = (0, _standard_fonts.getSupplementalGlyphMapForCalibri)();
 
-          for (charCode in SupplementalGlyphMapForCalibri) {
+          for (const charCode in SupplementalGlyphMapForCalibri) {
             map[+charCode] = SupplementalGlyphMapForCalibri[charCode];
           }
         }
@@ -25588,7 +25735,7 @@ var Font = function FontClosure() {
         this.toUnicode.forEach((charCode, unicodeCharCode) => {
           if (!this.composite) {
             var glyphName = this.differences[charCode] || this.defaultEncoding[charCode];
-            unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);
+            const unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);
 
             if (unicode !== -1) {
               unicodeCharCode = unicode;
@@ -25602,7 +25749,7 @@ var Font = function FontClosure() {
           if (/Verdana/i.test(name)) {
             const GlyphMapForStandardFonts = (0, _standard_fonts.getGlyphMapForStandardFonts)();
 
-            for (charCode in GlyphMapForStandardFonts) {
+            for (const charCode in GlyphMapForStandardFonts) {
               map[+charCode] = GlyphMapForStandardFonts[charCode];
             }
           }
@@ -25620,16 +25767,16 @@ var Font = function FontClosure() {
       function readTables(file, numTables) {
         const tables = Object.create(null);
         tables["OS/2"] = null;
-        tables["cmap"] = null;
-        tables["head"] = null;
-        tables["hhea"] = null;
-        tables["hmtx"] = null;
-        tables["maxp"] = null;
-        tables["name"] = null;
-        tables["post"] = null;
+        tables.cmap = null;
+        tables.head = null;
+        tables.hhea = null;
+        tables.hmtx = null;
+        tables.maxp = null;
+        tables.name = null;
+        tables.post = null;
 
         for (let i = 0; i < numTables; i++) {
-          const table = readTableEntry(font);
+          const table = readTableEntry(file);
 
           if (!VALID_TABLES.includes(table.tag)) {
             continue;
@@ -25725,11 +25872,11 @@ var Font = function FontClosure() {
           const potentialHeader = readOpenTypeHeader(ttc);
           const potentialTables = readTables(ttc, potentialHeader.numTables);
 
-          if (!potentialTables["name"]) {
+          if (!potentialTables.name) {
             throw new _util.FormatError('TrueType Collection font must contain a "name" table.');
           }
 
-          const nameTable = readNameTable(potentialTables["name"]);
+          const nameTable = readNameTable(potentialTables.name);
 
           for (let j = 0, jj = nameTable.length; j < jj; j++) {
             for (let k = 0, kk = nameTable[j].length; k < kk; k++) {
@@ -25748,7 +25895,7 @@ var Font = function FontClosure() {
         throw new _util.FormatError(`TrueType Collection does not contain "${fontName}" font.`);
       }
 
-      function readCmapTable(cmap, font, isSymbolicFont, hasEncoding) {
+      function readCmapTable(cmap, file, isSymbolicFont, hasEncoding) {
         if (!cmap) {
           (0, _util.warn)("No cmap table available.");
           return {
@@ -25760,17 +25907,17 @@ var Font = function FontClosure() {
         }
 
         var segment;
-        var start = (font.start ? font.start : 0) + cmap.offset;
-        font.pos = start;
-        font.getUint16();
-        var numTables = font.getUint16();
+        var start = (file.start ? file.start : 0) + cmap.offset;
+        file.pos = start;
+        file.skip(2);
+        var numTables = file.getUint16();
         var potentialTable;
         var canBreak = false;
 
         for (var i = 0; i < numTables; i++) {
-          var platformId = font.getUint16();
-          var encodingId = font.getUint16();
-          var offset = font.getInt32() >>> 0;
+          var platformId = file.getUint16();
+          var encodingId = file.getUint16();
+          var offset = file.getInt32() >>> 0;
           var useTable = false;
 
           if (potentialTable && potentialTable.platformId === platformId && potentialTable.encodingId === 
encodingId) {
@@ -25806,10 +25953,10 @@ var Font = function FontClosure() {
         }
 
         if (potentialTable) {
-          font.pos = start + potentialTable.offset;
+          file.pos = start + potentialTable.offset;
         }
 
-        if (!potentialTable || font.peekByte() === -1) {
+        if (!potentialTable || file.peekByte() === -1) {
           (0, _util.warn)("Could not find a preferred cmap table.");
           return {
             platformId: -1,
@@ -25819,16 +25966,15 @@ var Font = function FontClosure() {
           };
         }
 
-        var format = font.getUint16();
-        font.getUint16();
-        font.getUint16();
+        var format = file.getUint16();
+        file.skip(2 + 2);
         var hasShortCmap = false;
         var mappings = [];
         var j, glyphId;
 
         if (format === 0) {
           for (j = 0; j < 256; j++) {
-            var index = font.getByte();
+            var index = file.getByte();
 
             if (!index) {
               continue;
@@ -25842,32 +25988,32 @@ var Font = function FontClosure() {
 
           hasShortCmap = true;
         } else if (format === 4) {
-          var segCount = font.getUint16() >> 1;
-          font.getBytes(6);
+          var segCount = file.getUint16() >> 1;
+          file.skip(6);
           var segIndex,
               segments = [];
 
           for (segIndex = 0; segIndex < segCount; segIndex++) {
             segments.push({
-              end: font.getUint16()
+              end: file.getUint16()
             });
           }
 
-          font.getUint16();
+          file.skip(2);
 
           for (segIndex = 0; segIndex < segCount; segIndex++) {
-            segments[segIndex].start = font.getUint16();
+            segments[segIndex].start = file.getUint16();
           }
 
           for (segIndex = 0; segIndex < segCount; segIndex++) {
-            segments[segIndex].delta = font.getUint16();
+            segments[segIndex].delta = file.getUint16();
           }
 
           var offsetsCount = 0;
 
           for (segIndex = 0; segIndex < segCount; segIndex++) {
             segment = segments[segIndex];
-            var rangeOffset = font.getUint16();
+            var rangeOffset = file.getUint16();
 
             if (!rangeOffset) {
               segment.offsetIndex = -1;
@@ -25882,7 +26028,7 @@ var Font = function FontClosure() {
           var offsets = [];
 
           for (j = 0; j < offsetsCount; j++) {
-            offsets.push(font.getUint16());
+            offsets.push(file.getUint16());
           }
 
           for (segIndex = 0; segIndex < segCount; segIndex++) {
@@ -25906,11 +26052,11 @@ var Font = function FontClosure() {
             }
           }
         } else if (format === 6) {
-          var firstCode = font.getUint16();
-          var entryCount = font.getUint16();
+          var firstCode = file.getUint16();
+          var entryCount = file.getUint16();
 
           for (j = 0; j < entryCount; j++) {
-            glyphId = font.getUint16();
+            glyphId = file.getUint16();
             var charCode = firstCode + j;
             mappings.push({
               charCode,
@@ -25946,7 +26092,7 @@ var Font = function FontClosure() {
         };
       }
 
-      function sanitizeMetrics(font, header, metrics, numGlyphs, dupFirstEntry) {
+      function sanitizeMetrics(file, header, metrics, numGlyphs, dupFirstEntry) {
         if (!header) {
           if (metrics) {
             metrics.data = null;
@@ -25955,21 +26101,21 @@ var Font = function FontClosure() {
           return;
         }
 
-        font.pos = (font.start ? font.start : 0) + header.offset;
-        font.pos += 4;
-        font.pos += 2;
-        font.pos += 2;
-        font.pos += 2;
-        font.pos += 2;
-        font.pos += 2;
-        font.pos += 2;
-        font.pos += 2;
-        font.pos += 2;
-        font.pos += 2;
-        font.pos += 2;
-        font.pos += 8;
-        font.pos += 2;
-        var numOfMetrics = font.getUint16();
+        file.pos = (file.start ? file.start : 0) + header.offset;
+        file.pos += 4;
+        file.pos += 2;
+        file.pos += 2;
+        file.pos += 2;
+        file.pos += 2;
+        file.pos += 2;
+        file.pos += 2;
+        file.pos += 2;
+        file.pos += 2;
+        file.pos += 2;
+        file.pos += 2;
+        file.pos += 8;
+        file.pos += 2;
+        var numOfMetrics = file.getUint16();
 
         if (numOfMetrics > numGlyphs) {
           (0, _util.info)("The numOfMetrics (" + numOfMetrics + ") should not be " + "greater than the 
numGlyphs (" + numGlyphs + ")");
@@ -26235,13 +26381,13 @@ var Font = function FontClosure() {
         };
       }
 
-      function readPostScriptTable(post, properties, maxpNumGlyphs) {
+      function readPostScriptTable(post, propertiesObj, maxpNumGlyphs) {
         var start = (font.start ? font.start : 0) + post.offset;
         font.pos = start;
         var length = post.length,
             end = start + length;
         var version = font.getInt32();
-        font.getBytes(28);
+        font.skip(28);
         var glyphNames;
         var valid = true;
         var i;
@@ -26312,14 +26458,14 @@ var Font = function FontClosure() {
             (0, _util.warn)("Unknown/unsupported post table version " + version);
             valid = false;
 
-            if (properties.defaultEncoding) {
-              glyphNames = properties.defaultEncoding;
+            if (propertiesObj.defaultEncoding) {
+              glyphNames = propertiesObj.defaultEncoding;
             }
 
             break;
         }
 
-        properties.glyphNames = glyphNames;
+        propertiesObj.glyphNames = glyphNames;
         return valid;
       }
 
@@ -26695,27 +26841,27 @@ var Font = function FontClosure() {
       if (!isTrueType) {
         const isComposite = properties.composite && ((properties.cidToGidMap || []).length > 0 || 
!(properties.cMap instanceof _cmap.IdentityCMap));
 
-        if (header.version === "OTTO" && !isComposite || !tables["head"] || !tables["hhea"] || 
!tables["maxp"] || !tables["post"]) {
+        if (header.version === "OTTO" && !isComposite || !tables.head || !tables.hhea || !tables.maxp || 
!tables.post) {
           cffFile = new _stream.Stream(tables["CFF "].data);
           cff = new CFFFont(cffFile, properties);
           adjustWidths(properties);
           return this.convert(name, cff, properties);
         }
 
-        delete tables["glyf"];
-        delete tables["loca"];
-        delete tables["fpgm"];
-        delete tables["prep"];
+        delete tables.glyf;
+        delete tables.loca;
+        delete tables.fpgm;
+        delete tables.prep;
         delete tables["cvt "];
         this.isOpenType = true;
       } else {
-        if (!tables["loca"]) {
+        if (!tables.loca) {
           throw new _util.FormatError('Required "loca" table is not found');
         }
 
-        if (!tables["glyf"]) {
+        if (!tables.glyf) {
           (0, _util.warn)('Required "glyf" table is not found -- trying to recover.');
-          tables["glyf"] = {
+          tables.glyf = {
             tag: "glyf",
             data: new Uint8Array(0)
           };
@@ -26724,11 +26870,11 @@ var Font = function FontClosure() {
         this.isOpenType = false;
       }
 
-      if (!tables["maxp"]) {
+      if (!tables.maxp) {
         throw new _util.FormatError('Required "maxp" table is not found');
       }
 
-      font.pos = (font.start || 0) + tables["maxp"].offset;
+      font.pos = (font.start || 0) + tables.maxp.offset;
       var version = font.getInt32();
       const numGlyphs = font.getUint16();
       let numGlyphsOut = numGlyphs + 1;
@@ -26743,13 +26889,13 @@ var Font = function FontClosure() {
       var maxFunctionDefs = 0;
       var maxSizeOfInstructions = 0;
 
-      if (version >= 0x00010000 && tables["maxp"].length >= 22) {
+      if (version >= 0x00010000 && tables.maxp.length >= 22) {
         font.pos += 8;
         var maxZones = font.getUint16();
 
         if (maxZones > 2) {
-          tables["maxp"].data[14] = 0;
-          tables["maxp"].data[15] = 2;
+          tables.maxp.data[14] = 0;
+          tables.maxp.data[15] = 2;
         }
 
         font.pos += 4;
@@ -26758,65 +26904,64 @@ var Font = function FontClosure() {
         maxSizeOfInstructions = font.getUint16();
       }
 
-      tables["maxp"].data[4] = numGlyphsOut >> 8;
-      tables["maxp"].data[5] = numGlyphsOut & 255;
-      var hintsValid = sanitizeTTPrograms(tables["fpgm"], tables["prep"], tables["cvt "], maxFunctionDefs);
+      tables.maxp.data[4] = numGlyphsOut >> 8;
+      tables.maxp.data[5] = numGlyphsOut & 255;
+      var hintsValid = sanitizeTTPrograms(tables.fpgm, tables.prep, tables["cvt "], maxFunctionDefs);
 
       if (!hintsValid) {
-        delete tables["fpgm"];
-        delete tables["prep"];
+        delete tables.fpgm;
+        delete tables.prep;
         delete tables["cvt "];
       }
 
-      sanitizeMetrics(font, tables["hhea"], tables["hmtx"], numGlyphsOut, dupFirstEntry);
+      sanitizeMetrics(font, tables.hhea, tables.hmtx, numGlyphsOut, dupFirstEntry);
 
-      if (!tables["head"]) {
+      if (!tables.head) {
         throw new _util.FormatError('Required "head" table is not found');
       }
 
-      sanitizeHead(tables["head"], numGlyphs, isTrueType ? tables["loca"].length : 0);
+      sanitizeHead(tables.head, numGlyphs, isTrueType ? tables.loca.length : 0);
       var missingGlyphs = Object.create(null);
 
       if (isTrueType) {
-        var isGlyphLocationsLong = int16(tables["head"].data[50], tables["head"].data[51]);
-        var glyphsInfo = sanitizeGlyphLocations(tables["loca"], tables["glyf"], numGlyphs, 
isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions);
+        var isGlyphLocationsLong = int16(tables.head.data[50], tables.head.data[51]);
+        var glyphsInfo = sanitizeGlyphLocations(tables.loca, tables.glyf, numGlyphs, isGlyphLocationsLong, 
hintsValid, dupFirstEntry, maxSizeOfInstructions);
         missingGlyphs = glyphsInfo.missingGlyphs;
 
-        if (version >= 0x00010000 && tables["maxp"].length >= 22) {
-          tables["maxp"].data[26] = glyphsInfo.maxSizeOfInstructions >> 8;
-          tables["maxp"].data[27] = glyphsInfo.maxSizeOfInstructions & 255;
+        if (version >= 0x00010000 && tables.maxp.length >= 22) {
+          tables.maxp.data[26] = glyphsInfo.maxSizeOfInstructions >> 8;
+          tables.maxp.data[27] = glyphsInfo.maxSizeOfInstructions & 255;
         }
       }
 
-      if (!tables["hhea"]) {
+      if (!tables.hhea) {
         throw new _util.FormatError('Required "hhea" table is not found');
       }
 
-      if (tables["hhea"].data[10] === 0 && tables["hhea"].data[11] === 0) {
-        tables["hhea"].data[10] = 0xff;
-        tables["hhea"].data[11] = 0xff;
+      if (tables.hhea.data[10] === 0 && tables.hhea.data[11] === 0) {
+        tables.hhea.data[10] = 0xff;
+        tables.hhea.data[11] = 0xff;
       }
 
       var metricsOverride = {
-        unitsPerEm: int16(tables["head"].data[18], tables["head"].data[19]),
-        yMax: int16(tables["head"].data[42], tables["head"].data[43]),
-        yMin: signedInt16(tables["head"].data[38], tables["head"].data[39]),
-        ascent: int16(tables["hhea"].data[4], tables["hhea"].data[5]),
-        descent: signedInt16(tables["hhea"].data[6], tables["hhea"].data[7])
+        unitsPerEm: int16(tables.head.data[18], tables.head.data[19]),
+        yMax: int16(tables.head.data[42], tables.head.data[43]),
+        yMin: signedInt16(tables.head.data[38], tables.head.data[39]),
+        ascent: int16(tables.hhea.data[4], tables.hhea.data[5]),
+        descent: signedInt16(tables.hhea.data[6], tables.hhea.data[7])
       };
       this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;
       this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;
 
-      if (tables["post"]) {
-        readPostScriptTable(tables["post"], properties, numGlyphs);
+      if (tables.post) {
+        readPostScriptTable(tables.post, properties, numGlyphs);
       }
 
-      tables["post"] = {
+      tables.post = {
         tag: "post",
         data: createPostTable(properties)
       };
-      var charCodeToGlyphId = [],
-          charCode;
+      const charCodeToGlyphId = [];
 
       function hasGlyph(glyphId) {
         return !missingGlyphs[glyphId];
@@ -26843,7 +26988,7 @@ var Font = function FontClosure() {
           }
         });
       } else {
-        var cmapTable = readCmapTable(tables["cmap"], font, this.isSymbolicFont, properties.hasEncoding);
+        var cmapTable = readCmapTable(tables.cmap, font, this.isSymbolicFont, properties.hasEncoding);
         var cmapPlatformId = cmapTable.platformId;
         var cmapEncodingId = cmapTable.encodingId;
         var cmapMappings = cmapTable.mappings;
@@ -26858,7 +27003,7 @@ var Font = function FontClosure() {
 
           var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();
 
-          for (charCode = 0; charCode < 256; charCode++) {
+          for (let charCode = 0; charCode < 256; charCode++) {
             var glyphName, standardGlyphName;
 
             if (this.differences && charCode in this.differences) {
@@ -26912,7 +27057,7 @@ var Font = function FontClosure() {
           }
         } else {
           for (let i = 0; i < cmapMappingsLength; ++i) {
-            charCode = cmapMappings[i].charCode;
+            let charCode = cmapMappings[i].charCode;
 
             if (cmapPlatformId === 3 && charCode >= 0xf000 && charCode <= 0xf0ff) {
               charCode &= 0xff;
@@ -26935,12 +27080,12 @@ var Font = function FontClosure() {
 
       var newMapping = adjustMapping(charCodeToGlyphId, hasGlyph, glyphZeroId);
       this.toFontChar = newMapping.toFontChar;
-      tables["cmap"] = {
+      tables.cmap = {
         tag: "cmap",
         data: createCmapTable(newMapping.charCodeToGlyphId, numGlyphsOut)
       };
 
-      if (!tables["OS/2"] || !validateOS2Table(tables["OS/2"])) {
+      if (!tables["OS/2"] || !validateOS2Table(tables["OS/2"], font)) {
         tables["OS/2"] = {
           tag: "OS/2",
           data: createOS2Table(properties, newMapping.charCodeToGlyphId, metricsOverride)
@@ -26960,14 +27105,14 @@ var Font = function FontClosure() {
         }
       }
 
-      if (!tables["name"]) {
-        tables["name"] = {
+      if (!tables.name) {
+        tables.name = {
           tag: "name",
           data: createNameTable(this.name)
         };
       } else {
-        var namePrototype = readNameTable(tables["name"]);
-        tables["name"].data = createNameTable(name, namePrototype);
+        var namePrototype = readNameTable(tables.name);
+        tables.name.data = createNameTable(name, namePrototype);
       }
 
       var builder = new OpenTypeFileBuilder(header.version);
@@ -27052,7 +27197,7 @@ var Font = function FontClosure() {
             continue;
           }
 
-          for (var i = 0, ii = charCodes.length; i < ii; i++) {
+          for (let i = 0, ii = charCodes.length; i < ii; i++) {
             var charCode = charCodes[i];
             var charCodeToGlyphId = newMapping.charCodeToGlyphId;
             var baseFontCharCode = createCharCode(charCodeToGlyphId, baseGlyphId);
@@ -27080,7 +27225,7 @@ var Font = function FontClosure() {
         var cffWidths = font.cff ? font.cff.widths : null;
         var hmtx = "\x00\x00\x00\x00";
 
-        for (var i = 1, ii = numGlyphs; i < ii; i++) {
+        for (let i = 1, ii = numGlyphs; i < ii; i++) {
           var width = 0;
 
           if (charstrings) {
@@ -27102,10 +27247,6 @@ var Font = function FontClosure() {
     },
 
     get spaceWidth() {
-      if ("_shadowWidth" in this) {
-        return this._shadowWidth;
-      }
-
       var possibleSpaceReplacements = ["space", "minus", "one", "i", "I"];
       var width;
 
@@ -27121,10 +27262,8 @@ var Font = function FontClosure() {
         var glyphUnicode = glyphsUnicodeMap[glyphName];
         var charcode = 0;
 
-        if (this.composite) {
-          if (this.cMap.contains(glyphUnicode)) {
-            charcode = this.cMap.lookup(glyphUnicode);
-          }
+        if (this.composite && this.cMap.contains(glyphUnicode)) {
+          charcode = this.cMap.lookup(glyphUnicode);
         }
 
         if (!charcode && this.toUnicode) {
@@ -27143,8 +27282,7 @@ var Font = function FontClosure() {
       }
 
       width = width || this.defaultWidth;
-      this._shadowWidth = width;
-      return width;
+      return (0, _util.shadow)(this, "spaceWidth", width);
     },
 
     charToGlyph: function Font_charToGlyph(charcode, isSpace) {
@@ -27164,7 +27302,7 @@ var Font = function FontClosure() {
         unicode = String.fromCharCode(unicode);
       }
 
-      var isInFont = charcode in this.toFontChar;
+      var isInFont = (charcode in this.toFontChar);
       fontCharCode = this.toFontChar[charcode] || charcode;
 
       if (this.missingFile) {
@@ -27193,7 +27331,16 @@ var Font = function FontClosure() {
         };
       }
 
-      var fontChar = typeof fontCharCode === "number" ? String.fromCodePoint(fontCharCode) : "";
+      let fontChar = "";
+
+      if (typeof fontCharCode === "number") {
+        if (fontCharCode <= 0x10ffff) {
+          fontChar = String.fromCodePoint(fontCharCode);
+        } else {
+          (0, _util.warn)(`charToGlyph - invalid fontCharCode: ${fontCharCode}`);
+        }
+      }
+
       var glyph = this.glyphCache[charcode];
 
       if (!glyph || !glyph.matchesForCache(fontChar, unicode, accent, width, vmetric, operatorListId, 
isSpace, isInFont)) {
@@ -27268,11 +27415,13 @@ var ErrorFont = function ErrorFontClosure() {
     charsToGlyphs: function ErrorFont_charsToGlyphs() {
       return [];
     },
-    exportData: function ErrorFont_exportData() {
+
+    exportData(extraProperties = false) {
       return {
         error: this.error
       };
     }
+
   };
   return ErrorFont;
 }();
@@ -27476,8 +27625,8 @@ var Type1Font = function Type1FontClosure() {
     var eexecBlockParser = new _type1_parser.Type1Parser(eexecBlock.stream, true, SEAC_ANALYSIS_ENABLED);
     var data = eexecBlockParser.extractFontProgram(properties);
 
-    for (var info in data.properties) {
-      properties[info] = data.properties[info];
+    for (const key in data.properties) {
+      properties[key] = data.properties[key];
     }
 
     var charstrings = data.charstrings;
@@ -27505,6 +27654,18 @@ var Type1Font = function Type1FontClosure() {
     },
     getGlyphMapping: function Type1Font_getGlyphMapping(properties) {
       var charstrings = this.charstrings;
+
+      if (properties.composite) {
+        const charCodeToGlyphId = Object.create(null);
+
+        for (let glyphId = 0, charstringsLen = charstrings.length; glyphId < charstringsLen; glyphId++) {
+          const charCode = properties.cMap.charCodeOf(glyphId);
+          charCodeToGlyphId[charCode] = glyphId + 1;
+        }
+
+        return charCodeToGlyphId;
+      }
+
       var glyphNames = [".notdef"],
           glyphId;
 
@@ -27739,7 +27900,7 @@ var CFFFont = function CFFFontClosure() {
 }();
 
 /***/ }),
-/* 28 */
+/* 30 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -27752,9 +27913,9 @@ exports.CFFFDSelect = exports.CFFCompiler = exports.CFFPrivateDict = exports.CFF
 
 var _util = __w_pdfjs_require__(2);
 
-var _charsets = __w_pdfjs_require__(29);
+var _charsets = __w_pdfjs_require__(31);
 
-var _encodings = __w_pdfjs_require__(30);
+var _encodings = __w_pdfjs_require__(32);
 
 var MAX_SUBR_NESTING = 10;
 var CFFStandardStrings = [".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", "paragra
 ph", "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", "acircum
 flex", "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", "hyphensu
 perior", "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", "periodinferi
 or", "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"];
@@ -28523,7 +28684,7 @@ var CFFParser = function CFFParserClosure() {
       var bytes = this.bytes;
       var start = pos;
       var format = bytes[pos++];
-      var charset = [".notdef"];
+      const charset = [cid ? 0 : ".notdef"];
       var id, count, i;
       length -= 1;
 
@@ -29542,7 +29703,7 @@ var CFFCompiler = function CFFCompilerClosure() {
 exports.CFFCompiler = CFFCompiler;
 
 /***/ }),
-/* 29 */
+/* 31 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -29560,7 +29721,7 @@ const ExpertSubsetCharset = [".notdef", "space", "dollaroldstyle", "dollarsuperi
 exports.ExpertSubsetCharset = ExpertSubsetCharset;
 
 /***/ }),
-/* 30 */
+/* 32 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -29614,4544 +29775,4544 @@ function getEncoding(encodingName) {
 }
 
 /***/ }),
-/* 31 */
+/* 33 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
-var getLookupTableFactory = __w_pdfjs_require__(7).getLookupTableFactory;
+var getLookupTableFactory = __w_pdfjs_require__(8).getLookupTableFactory;
 var getGlyphsUnicode = getLookupTableFactory(function (t) {
- t["A"] = 0x0041;
- t["AE"] = 0x00c6;
- t["AEacute"] = 0x01fc;
- t["AEmacron"] = 0x01e2;
- t["AEsmall"] = 0xf7e6;
- t["Aacute"] = 0x00c1;
- t["Aacutesmall"] = 0xf7e1;
- t["Abreve"] = 0x0102;
- t["Abreveacute"] = 0x1eae;
- t["Abrevecyrillic"] = 0x04d0;
- t["Abrevedotbelow"] = 0x1eb6;
- t["Abrevegrave"] = 0x1eb0;
- t["Abrevehookabove"] = 0x1eb2;
- t["Abrevetilde"] = 0x1eb4;
- t["Acaron"] = 0x01cd;
- t["Acircle"] = 0x24b6;
- t["Acircumflex"] = 0x00c2;
- t["Acircumflexacute"] = 0x1ea4;
- t["Acircumflexdotbelow"] = 0x1eac;
- t["Acircumflexgrave"] = 0x1ea6;
- t["Acircumflexhookabove"] = 0x1ea8;
- t["Acircumflexsmall"] = 0xf7e2;
- t["Acircumflextilde"] = 0x1eaa;
- t["Acute"] = 0xf6c9;
- t["Acutesmall"] = 0xf7b4;
- t["Acyrillic"] = 0x0410;
- t["Adblgrave"] = 0x0200;
- t["Adieresis"] = 0x00c4;
- t["Adieresiscyrillic"] = 0x04d2;
- t["Adieresismacron"] = 0x01de;
- t["Adieresissmall"] = 0xf7e4;
- t["Adotbelow"] = 0x1ea0;
- t["Adotmacron"] = 0x01e0;
- t["Agrave"] = 0x00c0;
- t["Agravesmall"] = 0xf7e0;
- t["Ahookabove"] = 0x1ea2;
- t["Aiecyrillic"] = 0x04d4;
- t["Ainvertedbreve"] = 0x0202;
- t["Alpha"] = 0x0391;
- t["Alphatonos"] = 0x0386;
- t["Amacron"] = 0x0100;
- t["Amonospace"] = 0xff21;
- t["Aogonek"] = 0x0104;
- t["Aring"] = 0x00c5;
- t["Aringacute"] = 0x01fa;
- t["Aringbelow"] = 0x1e00;
- t["Aringsmall"] = 0xf7e5;
- t["Asmall"] = 0xf761;
- t["Atilde"] = 0x00c3;
- t["Atildesmall"] = 0xf7e3;
- t["Aybarmenian"] = 0x0531;
- t["B"] = 0x0042;
- t["Bcircle"] = 0x24b7;
- t["Bdotaccent"] = 0x1e02;
- t["Bdotbelow"] = 0x1e04;
- t["Becyrillic"] = 0x0411;
- t["Benarmenian"] = 0x0532;
- t["Beta"] = 0x0392;
- t["Bhook"] = 0x0181;
- t["Blinebelow"] = 0x1e06;
- t["Bmonospace"] = 0xff22;
- t["Brevesmall"] = 0xf6f4;
- t["Bsmall"] = 0xf762;
- t["Btopbar"] = 0x0182;
- t["C"] = 0x0043;
- t["Caarmenian"] = 0x053e;
- t["Cacute"] = 0x0106;
- t["Caron"] = 0xf6ca;
- t["Caronsmall"] = 0xf6f5;
- t["Ccaron"] = 0x010c;
- t["Ccedilla"] = 0x00c7;
- t["Ccedillaacute"] = 0x1e08;
- t["Ccedillasmall"] = 0xf7e7;
- t["Ccircle"] = 0x24b8;
- t["Ccircumflex"] = 0x0108;
- t["Cdot"] = 0x010a;
- t["Cdotaccent"] = 0x010a;
- t["Cedillasmall"] = 0xf7b8;
- t["Chaarmenian"] = 0x0549;
- t["Cheabkhasiancyrillic"] = 0x04bc;
- t["Checyrillic"] = 0x0427;
- t["Chedescenderabkhasiancyrillic"] = 0x04be;
- t["Chedescendercyrillic"] = 0x04b6;
- t["Chedieresiscyrillic"] = 0x04f4;
- t["Cheharmenian"] = 0x0543;
- t["Chekhakassiancyrillic"] = 0x04cb;
- t["Cheverticalstrokecyrillic"] = 0x04b8;
- t["Chi"] = 0x03a7;
- t["Chook"] = 0x0187;
- t["Circumflexsmall"] = 0xf6f6;
- t["Cmonospace"] = 0xff23;
- t["Coarmenian"] = 0x0551;
- t["Csmall"] = 0xf763;
- t["D"] = 0x0044;
- t["DZ"] = 0x01f1;
- t["DZcaron"] = 0x01c4;
- t["Daarmenian"] = 0x0534;
- t["Dafrican"] = 0x0189;
- t["Dcaron"] = 0x010e;
- t["Dcedilla"] = 0x1e10;
- t["Dcircle"] = 0x24b9;
- t["Dcircumflexbelow"] = 0x1e12;
- t["Dcroat"] = 0x0110;
- t["Ddotaccent"] = 0x1e0a;
- t["Ddotbelow"] = 0x1e0c;
- t["Decyrillic"] = 0x0414;
- t["Deicoptic"] = 0x03ee;
- t["Delta"] = 0x2206;
- t["Deltagreek"] = 0x0394;
- t["Dhook"] = 0x018a;
- t["Dieresis"] = 0xf6cb;
- t["DieresisAcute"] = 0xf6cc;
- t["DieresisGrave"] = 0xf6cd;
- t["Dieresissmall"] = 0xf7a8;
- t["Digammagreek"] = 0x03dc;
- t["Djecyrillic"] = 0x0402;
- t["Dlinebelow"] = 0x1e0e;
- t["Dmonospace"] = 0xff24;
- t["Dotaccentsmall"] = 0xf6f7;
- t["Dslash"] = 0x0110;
- t["Dsmall"] = 0xf764;
- t["Dtopbar"] = 0x018b;
- t["Dz"] = 0x01f2;
- t["Dzcaron"] = 0x01c5;
- t["Dzeabkhasiancyrillic"] = 0x04e0;
- t["Dzecyrillic"] = 0x0405;
- t["Dzhecyrillic"] = 0x040f;
- t["E"] = 0x0045;
- t["Eacute"] = 0x00c9;
- t["Eacutesmall"] = 0xf7e9;
- t["Ebreve"] = 0x0114;
- t["Ecaron"] = 0x011a;
- t["Ecedillabreve"] = 0x1e1c;
- t["Echarmenian"] = 0x0535;
- t["Ecircle"] = 0x24ba;
- t["Ecircumflex"] = 0x00ca;
- t["Ecircumflexacute"] = 0x1ebe;
- t["Ecircumflexbelow"] = 0x1e18;
- t["Ecircumflexdotbelow"] = 0x1ec6;
- t["Ecircumflexgrave"] = 0x1ec0;
- t["Ecircumflexhookabove"] = 0x1ec2;
- t["Ecircumflexsmall"] = 0xf7ea;
- t["Ecircumflextilde"] = 0x1ec4;
- t["Ecyrillic"] = 0x0404;
- t["Edblgrave"] = 0x0204;
- t["Edieresis"] = 0x00cb;
- t["Edieresissmall"] = 0xf7eb;
- t["Edot"] = 0x0116;
- t["Edotaccent"] = 0x0116;
- t["Edotbelow"] = 0x1eb8;
- t["Efcyrillic"] = 0x0424;
- t["Egrave"] = 0x00c8;
- t["Egravesmall"] = 0xf7e8;
- t["Eharmenian"] = 0x0537;
- t["Ehookabove"] = 0x1eba;
- t["Eightroman"] = 0x2167;
- t["Einvertedbreve"] = 0x0206;
- t["Eiotifiedcyrillic"] = 0x0464;
- t["Elcyrillic"] = 0x041b;
- t["Elevenroman"] = 0x216a;
- t["Emacron"] = 0x0112;
- t["Emacronacute"] = 0x1e16;
- t["Emacrongrave"] = 0x1e14;
- t["Emcyrillic"] = 0x041c;
- t["Emonospace"] = 0xff25;
- t["Encyrillic"] = 0x041d;
- t["Endescendercyrillic"] = 0x04a2;
- t["Eng"] = 0x014a;
- t["Enghecyrillic"] = 0x04a4;
- t["Enhookcyrillic"] = 0x04c7;
- t["Eogonek"] = 0x0118;
- t["Eopen"] = 0x0190;
- t["Epsilon"] = 0x0395;
- t["Epsilontonos"] = 0x0388;
- t["Ercyrillic"] = 0x0420;
- t["Ereversed"] = 0x018e;
- t["Ereversedcyrillic"] = 0x042d;
- t["Escyrillic"] = 0x0421;
- t["Esdescendercyrillic"] = 0x04aa;
- t["Esh"] = 0x01a9;
- t["Esmall"] = 0xf765;
- t["Eta"] = 0x0397;
- t["Etarmenian"] = 0x0538;
- t["Etatonos"] = 0x0389;
- t["Eth"] = 0x00d0;
- t["Ethsmall"] = 0xf7f0;
- t["Etilde"] = 0x1ebc;
- t["Etildebelow"] = 0x1e1a;
- t["Euro"] = 0x20ac;
- t["Ezh"] = 0x01b7;
- t["Ezhcaron"] = 0x01ee;
- t["Ezhreversed"] = 0x01b8;
- t["F"] = 0x0046;
- t["Fcircle"] = 0x24bb;
- t["Fdotaccent"] = 0x1e1e;
- t["Feharmenian"] = 0x0556;
- t["Feicoptic"] = 0x03e4;
- t["Fhook"] = 0x0191;
- t["Fitacyrillic"] = 0x0472;
- t["Fiveroman"] = 0x2164;
- t["Fmonospace"] = 0xff26;
- t["Fourroman"] = 0x2163;
- t["Fsmall"] = 0xf766;
- t["G"] = 0x0047;
- t["GBsquare"] = 0x3387;
- t["Gacute"] = 0x01f4;
- t["Gamma"] = 0x0393;
- t["Gammaafrican"] = 0x0194;
- t["Gangiacoptic"] = 0x03ea;
- t["Gbreve"] = 0x011e;
- t["Gcaron"] = 0x01e6;
- t["Gcedilla"] = 0x0122;
- t["Gcircle"] = 0x24bc;
- t["Gcircumflex"] = 0x011c;
- t["Gcommaaccent"] = 0x0122;
- t["Gdot"] = 0x0120;
- t["Gdotaccent"] = 0x0120;
- t["Gecyrillic"] = 0x0413;
- t["Ghadarmenian"] = 0x0542;
- t["Ghemiddlehookcyrillic"] = 0x0494;
- t["Ghestrokecyrillic"] = 0x0492;
- t["Gheupturncyrillic"] = 0x0490;
- t["Ghook"] = 0x0193;
- t["Gimarmenian"] = 0x0533;
- t["Gjecyrillic"] = 0x0403;
- t["Gmacron"] = 0x1e20;
- t["Gmonospace"] = 0xff27;
- t["Grave"] = 0xf6ce;
- t["Gravesmall"] = 0xf760;
- t["Gsmall"] = 0xf767;
- t["Gsmallhook"] = 0x029b;
- t["Gstroke"] = 0x01e4;
- t["H"] = 0x0048;
- t["H18533"] = 0x25cf;
- t["H18543"] = 0x25aa;
- t["H18551"] = 0x25ab;
- t["H22073"] = 0x25a1;
- t["HPsquare"] = 0x33cb;
- t["Haabkhasiancyrillic"] = 0x04a8;
- t["Hadescendercyrillic"] = 0x04b2;
- t["Hardsigncyrillic"] = 0x042a;
- t["Hbar"] = 0x0126;
- t["Hbrevebelow"] = 0x1e2a;
- t["Hcedilla"] = 0x1e28;
- t["Hcircle"] = 0x24bd;
- t["Hcircumflex"] = 0x0124;
- t["Hdieresis"] = 0x1e26;
- t["Hdotaccent"] = 0x1e22;
- t["Hdotbelow"] = 0x1e24;
- t["Hmonospace"] = 0xff28;
- t["Hoarmenian"] = 0x0540;
- t["Horicoptic"] = 0x03e8;
- t["Hsmall"] = 0xf768;
- t["Hungarumlaut"] = 0xf6cf;
- t["Hungarumlautsmall"] = 0xf6f8;
- t["Hzsquare"] = 0x3390;
- t["I"] = 0x0049;
- t["IAcyrillic"] = 0x042f;
- t["IJ"] = 0x0132;
- t["IUcyrillic"] = 0x042e;
- t["Iacute"] = 0x00cd;
- t["Iacutesmall"] = 0xf7ed;
- t["Ibreve"] = 0x012c;
- t["Icaron"] = 0x01cf;
- t["Icircle"] = 0x24be;
- t["Icircumflex"] = 0x00ce;
- t["Icircumflexsmall"] = 0xf7ee;
- t["Icyrillic"] = 0x0406;
- t["Idblgrave"] = 0x0208;
- t["Idieresis"] = 0x00cf;
- t["Idieresisacute"] = 0x1e2e;
- t["Idieresiscyrillic"] = 0x04e4;
- t["Idieresissmall"] = 0xf7ef;
- t["Idot"] = 0x0130;
- t["Idotaccent"] = 0x0130;
- t["Idotbelow"] = 0x1eca;
- t["Iebrevecyrillic"] = 0x04d6;
- t["Iecyrillic"] = 0x0415;
- t["Ifraktur"] = 0x2111;
- t["Igrave"] = 0x00cc;
- t["Igravesmall"] = 0xf7ec;
- t["Ihookabove"] = 0x1ec8;
- t["Iicyrillic"] = 0x0418;
- t["Iinvertedbreve"] = 0x020a;
- t["Iishortcyrillic"] = 0x0419;
- t["Imacron"] = 0x012a;
- t["Imacroncyrillic"] = 0x04e2;
- t["Imonospace"] = 0xff29;
- t["Iniarmenian"] = 0x053b;
- t["Iocyrillic"] = 0x0401;
- t["Iogonek"] = 0x012e;
- t["Iota"] = 0x0399;
- t["Iotaafrican"] = 0x0196;
- t["Iotadieresis"] = 0x03aa;
- t["Iotatonos"] = 0x038a;
- t["Ismall"] = 0xf769;
- t["Istroke"] = 0x0197;
- t["Itilde"] = 0x0128;
- t["Itildebelow"] = 0x1e2c;
- t["Izhitsacyrillic"] = 0x0474;
- t["Izhitsadblgravecyrillic"] = 0x0476;
- t["J"] = 0x004a;
- t["Jaarmenian"] = 0x0541;
- t["Jcircle"] = 0x24bf;
- t["Jcircumflex"] = 0x0134;
- t["Jecyrillic"] = 0x0408;
- t["Jheharmenian"] = 0x054b;
- t["Jmonospace"] = 0xff2a;
- t["Jsmall"] = 0xf76a;
- t["K"] = 0x004b;
- t["KBsquare"] = 0x3385;
- t["KKsquare"] = 0x33cd;
- t["Kabashkircyrillic"] = 0x04a0;
- t["Kacute"] = 0x1e30;
- t["Kacyrillic"] = 0x041a;
- t["Kadescendercyrillic"] = 0x049a;
- t["Kahookcyrillic"] = 0x04c3;
- t["Kappa"] = 0x039a;
- t["Kastrokecyrillic"] = 0x049e;
- t["Kaverticalstrokecyrillic"] = 0x049c;
- t["Kcaron"] = 0x01e8;
- t["Kcedilla"] = 0x0136;
- t["Kcircle"] = 0x24c0;
- t["Kcommaaccent"] = 0x0136;
- t["Kdotbelow"] = 0x1e32;
- t["Keharmenian"] = 0x0554;
- t["Kenarmenian"] = 0x053f;
- t["Khacyrillic"] = 0x0425;
- t["Kheicoptic"] = 0x03e6;
- t["Khook"] = 0x0198;
- t["Kjecyrillic"] = 0x040c;
- t["Klinebelow"] = 0x1e34;
- t["Kmonospace"] = 0xff2b;
- t["Koppacyrillic"] = 0x0480;
- t["Koppagreek"] = 0x03de;
- t["Ksicyrillic"] = 0x046e;
- t["Ksmall"] = 0xf76b;
- t["L"] = 0x004c;
- t["LJ"] = 0x01c7;
- t["LL"] = 0xf6bf;
- t["Lacute"] = 0x0139;
- t["Lambda"] = 0x039b;
- t["Lcaron"] = 0x013d;
- t["Lcedilla"] = 0x013b;
- t["Lcircle"] = 0x24c1;
- t["Lcircumflexbelow"] = 0x1e3c;
- t["Lcommaaccent"] = 0x013b;
- t["Ldot"] = 0x013f;
- t["Ldotaccent"] = 0x013f;
- t["Ldotbelow"] = 0x1e36;
- t["Ldotbelowmacron"] = 0x1e38;
- t["Liwnarmenian"] = 0x053c;
- t["Lj"] = 0x01c8;
- t["Ljecyrillic"] = 0x0409;
- t["Llinebelow"] = 0x1e3a;
- t["Lmonospace"] = 0xff2c;
- t["Lslash"] = 0x0141;
- t["Lslashsmall"] = 0xf6f9;
- t["Lsmall"] = 0xf76c;
- t["M"] = 0x004d;
- t["MBsquare"] = 0x3386;
- t["Macron"] = 0xf6d0;
- t["Macronsmall"] = 0xf7af;
- t["Macute"] = 0x1e3e;
- t["Mcircle"] = 0x24c2;
- t["Mdotaccent"] = 0x1e40;
- t["Mdotbelow"] = 0x1e42;
- t["Menarmenian"] = 0x0544;
- t["Mmonospace"] = 0xff2d;
- t["Msmall"] = 0xf76d;
- t["Mturned"] = 0x019c;
- t["Mu"] = 0x039c;
- t["N"] = 0x004e;
- t["NJ"] = 0x01ca;
- t["Nacute"] = 0x0143;
- t["Ncaron"] = 0x0147;
- t["Ncedilla"] = 0x0145;
- t["Ncircle"] = 0x24c3;
- t["Ncircumflexbelow"] = 0x1e4a;
- t["Ncommaaccent"] = 0x0145;
- t["Ndotaccent"] = 0x1e44;
- t["Ndotbelow"] = 0x1e46;
- t["Nhookleft"] = 0x019d;
- t["Nineroman"] = 0x2168;
- t["Nj"] = 0x01cb;
- t["Njecyrillic"] = 0x040a;
- t["Nlinebelow"] = 0x1e48;
- t["Nmonospace"] = 0xff2e;
- t["Nowarmenian"] = 0x0546;
- t["Nsmall"] = 0xf76e;
- t["Ntilde"] = 0x00d1;
- t["Ntildesmall"] = 0xf7f1;
- t["Nu"] = 0x039d;
- t["O"] = 0x004f;
- t["OE"] = 0x0152;
- t["OEsmall"] = 0xf6fa;
- t["Oacute"] = 0x00d3;
- t["Oacutesmall"] = 0xf7f3;
- t["Obarredcyrillic"] = 0x04e8;
- t["Obarreddieresiscyrillic"] = 0x04ea;
- t["Obreve"] = 0x014e;
- t["Ocaron"] = 0x01d1;
- t["Ocenteredtilde"] = 0x019f;
- t["Ocircle"] = 0x24c4;
- t["Ocircumflex"] = 0x00d4;
- t["Ocircumflexacute"] = 0x1ed0;
- t["Ocircumflexdotbelow"] = 0x1ed8;
- t["Ocircumflexgrave"] = 0x1ed2;
- t["Ocircumflexhookabove"] = 0x1ed4;
- t["Ocircumflexsmall"] = 0xf7f4;
- t["Ocircumflextilde"] = 0x1ed6;
- t["Ocyrillic"] = 0x041e;
- t["Odblacute"] = 0x0150;
- t["Odblgrave"] = 0x020c;
- t["Odieresis"] = 0x00d6;
- t["Odieresiscyrillic"] = 0x04e6;
- t["Odieresissmall"] = 0xf7f6;
- t["Odotbelow"] = 0x1ecc;
- t["Ogoneksmall"] = 0xf6fb;
- t["Ograve"] = 0x00d2;
- t["Ogravesmall"] = 0xf7f2;
- t["Oharmenian"] = 0x0555;
- t["Ohm"] = 0x2126;
- t["Ohookabove"] = 0x1ece;
- t["Ohorn"] = 0x01a0;
- t["Ohornacute"] = 0x1eda;
- t["Ohorndotbelow"] = 0x1ee2;
- t["Ohorngrave"] = 0x1edc;
- t["Ohornhookabove"] = 0x1ede;
- t["Ohorntilde"] = 0x1ee0;
- t["Ohungarumlaut"] = 0x0150;
- t["Oi"] = 0x01a2;
- t["Oinvertedbreve"] = 0x020e;
- t["Omacron"] = 0x014c;
- t["Omacronacute"] = 0x1e52;
- t["Omacrongrave"] = 0x1e50;
- t["Omega"] = 0x2126;
- t["Omegacyrillic"] = 0x0460;
- t["Omegagreek"] = 0x03a9;
- t["Omegaroundcyrillic"] = 0x047a;
- t["Omegatitlocyrillic"] = 0x047c;
- t["Omegatonos"] = 0x038f;
- t["Omicron"] = 0x039f;
- t["Omicrontonos"] = 0x038c;
- t["Omonospace"] = 0xff2f;
- t["Oneroman"] = 0x2160;
- t["Oogonek"] = 0x01ea;
- t["Oogonekmacron"] = 0x01ec;
- t["Oopen"] = 0x0186;
- t["Oslash"] = 0x00d8;
- t["Oslashacute"] = 0x01fe;
- t["Oslashsmall"] = 0xf7f8;
- t["Osmall"] = 0xf76f;
- t["Ostrokeacute"] = 0x01fe;
- t["Otcyrillic"] = 0x047e;
- t["Otilde"] = 0x00d5;
- t["Otildeacute"] = 0x1e4c;
- t["Otildedieresis"] = 0x1e4e;
- t["Otildesmall"] = 0xf7f5;
- t["P"] = 0x0050;
- t["Pacute"] = 0x1e54;
- t["Pcircle"] = 0x24c5;
- t["Pdotaccent"] = 0x1e56;
- t["Pecyrillic"] = 0x041f;
- t["Peharmenian"] = 0x054a;
- t["Pemiddlehookcyrillic"] = 0x04a6;
- t["Phi"] = 0x03a6;
- t["Phook"] = 0x01a4;
- t["Pi"] = 0x03a0;
- t["Piwrarmenian"] = 0x0553;
- t["Pmonospace"] = 0xff30;
- t["Psi"] = 0x03a8;
- t["Psicyrillic"] = 0x0470;
- t["Psmall"] = 0xf770;
- t["Q"] = 0x0051;
- t["Qcircle"] = 0x24c6;
- t["Qmonospace"] = 0xff31;
- t["Qsmall"] = 0xf771;
- t["R"] = 0x0052;
- t["Raarmenian"] = 0x054c;
- t["Racute"] = 0x0154;
- t["Rcaron"] = 0x0158;
- t["Rcedilla"] = 0x0156;
- t["Rcircle"] = 0x24c7;
- t["Rcommaaccent"] = 0x0156;
- t["Rdblgrave"] = 0x0210;
- t["Rdotaccent"] = 0x1e58;
- t["Rdotbelow"] = 0x1e5a;
- t["Rdotbelowmacron"] = 0x1e5c;
- t["Reharmenian"] = 0x0550;
- t["Rfraktur"] = 0x211c;
- t["Rho"] = 0x03a1;
- t["Ringsmall"] = 0xf6fc;
- t["Rinvertedbreve"] = 0x0212;
- t["Rlinebelow"] = 0x1e5e;
- t["Rmonospace"] = 0xff32;
- t["Rsmall"] = 0xf772;
- t["Rsmallinverted"] = 0x0281;
- t["Rsmallinvertedsuperior"] = 0x02b6;
- t["S"] = 0x0053;
- t["SF010000"] = 0x250c;
- t["SF020000"] = 0x2514;
- t["SF030000"] = 0x2510;
- t["SF040000"] = 0x2518;
- t["SF050000"] = 0x253c;
- t["SF060000"] = 0x252c;
- t["SF070000"] = 0x2534;
- t["SF080000"] = 0x251c;
- t["SF090000"] = 0x2524;
- t["SF100000"] = 0x2500;
- t["SF110000"] = 0x2502;
- t["SF190000"] = 0x2561;
- t["SF200000"] = 0x2562;
- t["SF210000"] = 0x2556;
- t["SF220000"] = 0x2555;
- t["SF230000"] = 0x2563;
- t["SF240000"] = 0x2551;
- t["SF250000"] = 0x2557;
- t["SF260000"] = 0x255d;
- t["SF270000"] = 0x255c;
- t["SF280000"] = 0x255b;
- t["SF360000"] = 0x255e;
- t["SF370000"] = 0x255f;
- t["SF380000"] = 0x255a;
- t["SF390000"] = 0x2554;
- t["SF400000"] = 0x2569;
- t["SF410000"] = 0x2566;
- t["SF420000"] = 0x2560;
- t["SF430000"] = 0x2550;
- t["SF440000"] = 0x256c;
- t["SF450000"] = 0x2567;
- t["SF460000"] = 0x2568;
- t["SF470000"] = 0x2564;
- t["SF480000"] = 0x2565;
- t["SF490000"] = 0x2559;
- t["SF500000"] = 0x2558;
- t["SF510000"] = 0x2552;
- t["SF520000"] = 0x2553;
- t["SF530000"] = 0x256b;
- t["SF540000"] = 0x256a;
- t["Sacute"] = 0x015a;
- t["Sacutedotaccent"] = 0x1e64;
- t["Sampigreek"] = 0x03e0;
- t["Scaron"] = 0x0160;
- t["Scarondotaccent"] = 0x1e66;
- t["Scaronsmall"] = 0xf6fd;
- t["Scedilla"] = 0x015e;
- t["Schwa"] = 0x018f;
- t["Schwacyrillic"] = 0x04d8;
- t["Schwadieresiscyrillic"] = 0x04da;
- t["Scircle"] = 0x24c8;
- t["Scircumflex"] = 0x015c;
- t["Scommaaccent"] = 0x0218;
- t["Sdotaccent"] = 0x1e60;
- t["Sdotbelow"] = 0x1e62;
- t["Sdotbelowdotaccent"] = 0x1e68;
- t["Seharmenian"] = 0x054d;
- t["Sevenroman"] = 0x2166;
- t["Shaarmenian"] = 0x0547;
- t["Shacyrillic"] = 0x0428;
- t["Shchacyrillic"] = 0x0429;
- t["Sheicoptic"] = 0x03e2;
- t["Shhacyrillic"] = 0x04ba;
- t["Shimacoptic"] = 0x03ec;
- t["Sigma"] = 0x03a3;
- t["Sixroman"] = 0x2165;
- t["Smonospace"] = 0xff33;
- t["Softsigncyrillic"] = 0x042c;
- t["Ssmall"] = 0xf773;
- t["Stigmagreek"] = 0x03da;
- t["T"] = 0x0054;
- t["Tau"] = 0x03a4;
- t["Tbar"] = 0x0166;
- t["Tcaron"] = 0x0164;
- t["Tcedilla"] = 0x0162;
- t["Tcircle"] = 0x24c9;
- t["Tcircumflexbelow"] = 0x1e70;
- t["Tcommaaccent"] = 0x0162;
- t["Tdotaccent"] = 0x1e6a;
- t["Tdotbelow"] = 0x1e6c;
- t["Tecyrillic"] = 0x0422;
- t["Tedescendercyrillic"] = 0x04ac;
- t["Tenroman"] = 0x2169;
- t["Tetsecyrillic"] = 0x04b4;
- t["Theta"] = 0x0398;
- t["Thook"] = 0x01ac;
- t["Thorn"] = 0x00de;
- t["Thornsmall"] = 0xf7fe;
- t["Threeroman"] = 0x2162;
- t["Tildesmall"] = 0xf6fe;
- t["Tiwnarmenian"] = 0x054f;
- t["Tlinebelow"] = 0x1e6e;
- t["Tmonospace"] = 0xff34;
- t["Toarmenian"] = 0x0539;
- t["Tonefive"] = 0x01bc;
- t["Tonesix"] = 0x0184;
- t["Tonetwo"] = 0x01a7;
- t["Tretroflexhook"] = 0x01ae;
- t["Tsecyrillic"] = 0x0426;
- t["Tshecyrillic"] = 0x040b;
- t["Tsmall"] = 0xf774;
- t["Twelveroman"] = 0x216b;
- t["Tworoman"] = 0x2161;
- t["U"] = 0x0055;
- t["Uacute"] = 0x00da;
- t["Uacutesmall"] = 0xf7fa;
- t["Ubreve"] = 0x016c;
- t["Ucaron"] = 0x01d3;
- t["Ucircle"] = 0x24ca;
- t["Ucircumflex"] = 0x00db;
- t["Ucircumflexbelow"] = 0x1e76;
- t["Ucircumflexsmall"] = 0xf7fb;
- t["Ucyrillic"] = 0x0423;
- t["Udblacute"] = 0x0170;
- t["Udblgrave"] = 0x0214;
- t["Udieresis"] = 0x00dc;
- t["Udieresisacute"] = 0x01d7;
- t["Udieresisbelow"] = 0x1e72;
- t["Udieresiscaron"] = 0x01d9;
- t["Udieresiscyrillic"] = 0x04f0;
- t["Udieresisgrave"] = 0x01db;
- t["Udieresismacron"] = 0x01d5;
- t["Udieresissmall"] = 0xf7fc;
- t["Udotbelow"] = 0x1ee4;
- t["Ugrave"] = 0x00d9;
- t["Ugravesmall"] = 0xf7f9;
- t["Uhookabove"] = 0x1ee6;
- t["Uhorn"] = 0x01af;
- t["Uhornacute"] = 0x1ee8;
- t["Uhorndotbelow"] = 0x1ef0;
- t["Uhorngrave"] = 0x1eea;
- t["Uhornhookabove"] = 0x1eec;
- t["Uhorntilde"] = 0x1eee;
- t["Uhungarumlaut"] = 0x0170;
- t["Uhungarumlautcyrillic"] = 0x04f2;
- t["Uinvertedbreve"] = 0x0216;
- t["Ukcyrillic"] = 0x0478;
- t["Umacron"] = 0x016a;
- t["Umacroncyrillic"] = 0x04ee;
- t["Umacrondieresis"] = 0x1e7a;
- t["Umonospace"] = 0xff35;
- t["Uogonek"] = 0x0172;
- t["Upsilon"] = 0x03a5;
- t["Upsilon1"] = 0x03d2;
- t["Upsilonacutehooksymbolgreek"] = 0x03d3;
- t["Upsilonafrican"] = 0x01b1;
- t["Upsilondieresis"] = 0x03ab;
- t["Upsilondieresishooksymbolgreek"] = 0x03d4;
- t["Upsilonhooksymbol"] = 0x03d2;
- t["Upsilontonos"] = 0x038e;
- t["Uring"] = 0x016e;
- t["Ushortcyrillic"] = 0x040e;
- t["Usmall"] = 0xf775;
- t["Ustraightcyrillic"] = 0x04ae;
- t["Ustraightstrokecyrillic"] = 0x04b0;
- t["Utilde"] = 0x0168;
- t["Utildeacute"] = 0x1e78;
- t["Utildebelow"] = 0x1e74;
- t["V"] = 0x0056;
- t["Vcircle"] = 0x24cb;
- t["Vdotbelow"] = 0x1e7e;
- t["Vecyrillic"] = 0x0412;
- t["Vewarmenian"] = 0x054e;
- t["Vhook"] = 0x01b2;
- t["Vmonospace"] = 0xff36;
- t["Voarmenian"] = 0x0548;
- t["Vsmall"] = 0xf776;
- t["Vtilde"] = 0x1e7c;
- t["W"] = 0x0057;
- t["Wacute"] = 0x1e82;
- t["Wcircle"] = 0x24cc;
- t["Wcircumflex"] = 0x0174;
- t["Wdieresis"] = 0x1e84;
- t["Wdotaccent"] = 0x1e86;
- t["Wdotbelow"] = 0x1e88;
- t["Wgrave"] = 0x1e80;
- t["Wmonospace"] = 0xff37;
- t["Wsmall"] = 0xf777;
- t["X"] = 0x0058;
- t["Xcircle"] = 0x24cd;
- t["Xdieresis"] = 0x1e8c;
- t["Xdotaccent"] = 0x1e8a;
- t["Xeharmenian"] = 0x053d;
- t["Xi"] = 0x039e;
- t["Xmonospace"] = 0xff38;
- t["Xsmall"] = 0xf778;
- t["Y"] = 0x0059;
- t["Yacute"] = 0x00dd;
- t["Yacutesmall"] = 0xf7fd;
- t["Yatcyrillic"] = 0x0462;
- t["Ycircle"] = 0x24ce;
- t["Ycircumflex"] = 0x0176;
- t["Ydieresis"] = 0x0178;
- t["Ydieresissmall"] = 0xf7ff;
- t["Ydotaccent"] = 0x1e8e;
- t["Ydotbelow"] = 0x1ef4;
- t["Yericyrillic"] = 0x042b;
- t["Yerudieresiscyrillic"] = 0x04f8;
- t["Ygrave"] = 0x1ef2;
- t["Yhook"] = 0x01b3;
- t["Yhookabove"] = 0x1ef6;
- t["Yiarmenian"] = 0x0545;
- t["Yicyrillic"] = 0x0407;
- t["Yiwnarmenian"] = 0x0552;
- t["Ymonospace"] = 0xff39;
- t["Ysmall"] = 0xf779;
- t["Ytilde"] = 0x1ef8;
- t["Yusbigcyrillic"] = 0x046a;
- t["Yusbigiotifiedcyrillic"] = 0x046c;
- t["Yuslittlecyrillic"] = 0x0466;
- t["Yuslittleiotifiedcyrillic"] = 0x0468;
- t["Z"] = 0x005a;
- t["Zaarmenian"] = 0x0536;
- t["Zacute"] = 0x0179;
- t["Zcaron"] = 0x017d;
- t["Zcaronsmall"] = 0xf6ff;
- t["Zcircle"] = 0x24cf;
- t["Zcircumflex"] = 0x1e90;
- t["Zdot"] = 0x017b;
- t["Zdotaccent"] = 0x017b;
- t["Zdotbelow"] = 0x1e92;
- t["Zecyrillic"] = 0x0417;
- t["Zedescendercyrillic"] = 0x0498;
- t["Zedieresiscyrillic"] = 0x04de;
- t["Zeta"] = 0x0396;
- t["Zhearmenian"] = 0x053a;
- t["Zhebrevecyrillic"] = 0x04c1;
- t["Zhecyrillic"] = 0x0416;
- t["Zhedescendercyrillic"] = 0x0496;
- t["Zhedieresiscyrillic"] = 0x04dc;
- t["Zlinebelow"] = 0x1e94;
- t["Zmonospace"] = 0xff3a;
- t["Zsmall"] = 0xf77a;
- t["Zstroke"] = 0x01b5;
- t["a"] = 0x0061;
- t["aabengali"] = 0x0986;
- t["aacute"] = 0x00e1;
- t["aadeva"] = 0x0906;
- t["aagujarati"] = 0x0a86;
- t["aagurmukhi"] = 0x0a06;
- t["aamatragurmukhi"] = 0x0a3e;
- t["aarusquare"] = 0x3303;
- t["aavowelsignbengali"] = 0x09be;
- t["aavowelsigndeva"] = 0x093e;
- t["aavowelsigngujarati"] = 0x0abe;
- t["abbreviationmarkarmenian"] = 0x055f;
- t["abbreviationsigndeva"] = 0x0970;
- t["abengali"] = 0x0985;
- t["abopomofo"] = 0x311a;
- t["abreve"] = 0x0103;
- t["abreveacute"] = 0x1eaf;
- t["abrevecyrillic"] = 0x04d1;
- t["abrevedotbelow"] = 0x1eb7;
- t["abrevegrave"] = 0x1eb1;
- t["abrevehookabove"] = 0x1eb3;
- t["abrevetilde"] = 0x1eb5;
- t["acaron"] = 0x01ce;
- t["acircle"] = 0x24d0;
- t["acircumflex"] = 0x00e2;
- t["acircumflexacute"] = 0x1ea5;
- t["acircumflexdotbelow"] = 0x1ead;
- t["acircumflexgrave"] = 0x1ea7;
- t["acircumflexhookabove"] = 0x1ea9;
- t["acircumflextilde"] = 0x1eab;
- t["acute"] = 0x00b4;
- t["acutebelowcmb"] = 0x0317;
- t["acutecmb"] = 0x0301;
- t["acutecomb"] = 0x0301;
- t["acutedeva"] = 0x0954;
- t["acutelowmod"] = 0x02cf;
- t["acutetonecmb"] = 0x0341;
- t["acyrillic"] = 0x0430;
- t["adblgrave"] = 0x0201;
- t["addakgurmukhi"] = 0x0a71;
- t["adeva"] = 0x0905;
- t["adieresis"] = 0x00e4;
- t["adieresiscyrillic"] = 0x04d3;
- t["adieresismacron"] = 0x01df;
- t["adotbelow"] = 0x1ea1;
- t["adotmacron"] = 0x01e1;
- t["ae"] = 0x00e6;
- t["aeacute"] = 0x01fd;
- t["aekorean"] = 0x3150;
- t["aemacron"] = 0x01e3;
- t["afii00208"] = 0x2015;
- t["afii08941"] = 0x20a4;
- t["afii10017"] = 0x0410;
- t["afii10018"] = 0x0411;
- t["afii10019"] = 0x0412;
- t["afii10020"] = 0x0413;
- t["afii10021"] = 0x0414;
- t["afii10022"] = 0x0415;
- t["afii10023"] = 0x0401;
- t["afii10024"] = 0x0416;
- t["afii10025"] = 0x0417;
- t["afii10026"] = 0x0418;
- t["afii10027"] = 0x0419;
- t["afii10028"] = 0x041a;
- t["afii10029"] = 0x041b;
- t["afii10030"] = 0x041c;
- t["afii10031"] = 0x041d;
- t["afii10032"] = 0x041e;
- t["afii10033"] = 0x041f;
- t["afii10034"] = 0x0420;
- t["afii10035"] = 0x0421;
- t["afii10036"] = 0x0422;
- t["afii10037"] = 0x0423;
- t["afii10038"] = 0x0424;
- t["afii10039"] = 0x0425;
- t["afii10040"] = 0x0426;
- t["afii10041"] = 0x0427;
- t["afii10042"] = 0x0428;
- t["afii10043"] = 0x0429;
- t["afii10044"] = 0x042a;
- t["afii10045"] = 0x042b;
- t["afii10046"] = 0x042c;
- t["afii10047"] = 0x042d;
- t["afii10048"] = 0x042e;
- t["afii10049"] = 0x042f;
- t["afii10050"] = 0x0490;
- t["afii10051"] = 0x0402;
- t["afii10052"] = 0x0403;
- t["afii10053"] = 0x0404;
- t["afii10054"] = 0x0405;
- t["afii10055"] = 0x0406;
- t["afii10056"] = 0x0407;
- t["afii10057"] = 0x0408;
- t["afii10058"] = 0x0409;
- t["afii10059"] = 0x040a;
- t["afii10060"] = 0x040b;
- t["afii10061"] = 0x040c;
- t["afii10062"] = 0x040e;
- t["afii10063"] = 0xf6c4;
- t["afii10064"] = 0xf6c5;
- t["afii10065"] = 0x0430;
- t["afii10066"] = 0x0431;
- t["afii10067"] = 0x0432;
- t["afii10068"] = 0x0433;
- t["afii10069"] = 0x0434;
- t["afii10070"] = 0x0435;
- t["afii10071"] = 0x0451;
- t["afii10072"] = 0x0436;
- t["afii10073"] = 0x0437;
- t["afii10074"] = 0x0438;
- t["afii10075"] = 0x0439;
- t["afii10076"] = 0x043a;
- t["afii10077"] = 0x043b;
- t["afii10078"] = 0x043c;
- t["afii10079"] = 0x043d;
- t["afii10080"] = 0x043e;
- t["afii10081"] = 0x043f;
- t["afii10082"] = 0x0440;
- t["afii10083"] = 0x0441;
- t["afii10084"] = 0x0442;
- t["afii10085"] = 0x0443;
- t["afii10086"] = 0x0444;
- t["afii10087"] = 0x0445;
- t["afii10088"] = 0x0446;
- t["afii10089"] = 0x0447;
- t["afii10090"] = 0x0448;
- t["afii10091"] = 0x0449;
- t["afii10092"] = 0x044a;
- t["afii10093"] = 0x044b;
- t["afii10094"] = 0x044c;
- t["afii10095"] = 0x044d;
- t["afii10096"] = 0x044e;
- t["afii10097"] = 0x044f;
- t["afii10098"] = 0x0491;
- t["afii10099"] = 0x0452;
- t["afii10100"] = 0x0453;
- t["afii10101"] = 0x0454;
- t["afii10102"] = 0x0455;
- t["afii10103"] = 0x0456;
- t["afii10104"] = 0x0457;
- t["afii10105"] = 0x0458;
- t["afii10106"] = 0x0459;
- t["afii10107"] = 0x045a;
- t["afii10108"] = 0x045b;
- t["afii10109"] = 0x045c;
- t["afii10110"] = 0x045e;
- t["afii10145"] = 0x040f;
- t["afii10146"] = 0x0462;
- t["afii10147"] = 0x0472;
- t["afii10148"] = 0x0474;
- t["afii10192"] = 0xf6c6;
- t["afii10193"] = 0x045f;
- t["afii10194"] = 0x0463;
- t["afii10195"] = 0x0473;
- t["afii10196"] = 0x0475;
- t["afii10831"] = 0xf6c7;
- t["afii10832"] = 0xf6c8;
- t["afii10846"] = 0x04d9;
- t["afii299"] = 0x200e;
- t["afii300"] = 0x200f;
- t["afii301"] = 0x200d;
- t["afii57381"] = 0x066a;
- t["afii57388"] = 0x060c;
- t["afii57392"] = 0x0660;
- t["afii57393"] = 0x0661;
- t["afii57394"] = 0x0662;
- t["afii57395"] = 0x0663;
- t["afii57396"] = 0x0664;
- t["afii57397"] = 0x0665;
- t["afii57398"] = 0x0666;
- t["afii57399"] = 0x0667;
- t["afii57400"] = 0x0668;
- t["afii57401"] = 0x0669;
- t["afii57403"] = 0x061b;
- t["afii57407"] = 0x061f;
- t["afii57409"] = 0x0621;
- t["afii57410"] = 0x0622;
- t["afii57411"] = 0x0623;
- t["afii57412"] = 0x0624;
- t["afii57413"] = 0x0625;
- t["afii57414"] = 0x0626;
- t["afii57415"] = 0x0627;
- t["afii57416"] = 0x0628;
- t["afii57417"] = 0x0629;
- t["afii57418"] = 0x062a;
- t["afii57419"] = 0x062b;
- t["afii57420"] = 0x062c;
- t["afii57421"] = 0x062d;
- t["afii57422"] = 0x062e;
- t["afii57423"] = 0x062f;
- t["afii57424"] = 0x0630;
- t["afii57425"] = 0x0631;
- t["afii57426"] = 0x0632;
- t["afii57427"] = 0x0633;
- t["afii57428"] = 0x0634;
- t["afii57429"] = 0x0635;
- t["afii57430"] = 0x0636;
- t["afii57431"] = 0x0637;
- t["afii57432"] = 0x0638;
- t["afii57433"] = 0x0639;
- t["afii57434"] = 0x063a;
- t["afii57440"] = 0x0640;
- t["afii57441"] = 0x0641;
- t["afii57442"] = 0x0642;
- t["afii57443"] = 0x0643;
- t["afii57444"] = 0x0644;
- t["afii57445"] = 0x0645;
- t["afii57446"] = 0x0646;
- t["afii57448"] = 0x0648;
- t["afii57449"] = 0x0649;
- t["afii57450"] = 0x064a;
- t["afii57451"] = 0x064b;
- t["afii57452"] = 0x064c;
- t["afii57453"] = 0x064d;
- t["afii57454"] = 0x064e;
- t["afii57455"] = 0x064f;
- t["afii57456"] = 0x0650;
- t["afii57457"] = 0x0651;
- t["afii57458"] = 0x0652;
- t["afii57470"] = 0x0647;
- t["afii57505"] = 0x06a4;
- t["afii57506"] = 0x067e;
- t["afii57507"] = 0x0686;
- t["afii57508"] = 0x0698;
- t["afii57509"] = 0x06af;
- t["afii57511"] = 0x0679;
- t["afii57512"] = 0x0688;
- t["afii57513"] = 0x0691;
- t["afii57514"] = 0x06ba;
- t["afii57519"] = 0x06d2;
- t["afii57534"] = 0x06d5;
- t["afii57636"] = 0x20aa;
- t["afii57645"] = 0x05be;
- t["afii57658"] = 0x05c3;
- t["afii57664"] = 0x05d0;
- t["afii57665"] = 0x05d1;
- t["afii57666"] = 0x05d2;
- t["afii57667"] = 0x05d3;
- t["afii57668"] = 0x05d4;
- t["afii57669"] = 0x05d5;
- t["afii57670"] = 0x05d6;
- t["afii57671"] = 0x05d7;
- t["afii57672"] = 0x05d8;
- t["afii57673"] = 0x05d9;
- t["afii57674"] = 0x05da;
- t["afii57675"] = 0x05db;
- t["afii57676"] = 0x05dc;
- t["afii57677"] = 0x05dd;
- t["afii57678"] = 0x05de;
- t["afii57679"] = 0x05df;
- t["afii57680"] = 0x05e0;
- t["afii57681"] = 0x05e1;
- t["afii57682"] = 0x05e2;
- t["afii57683"] = 0x05e3;
- t["afii57684"] = 0x05e4;
- t["afii57685"] = 0x05e5;
- t["afii57686"] = 0x05e6;
- t["afii57687"] = 0x05e7;
- t["afii57688"] = 0x05e8;
- t["afii57689"] = 0x05e9;
- t["afii57690"] = 0x05ea;
- t["afii57694"] = 0xfb2a;
- t["afii57695"] = 0xfb2b;
- t["afii57700"] = 0xfb4b;
- t["afii57705"] = 0xfb1f;
- t["afii57716"] = 0x05f0;
- t["afii57717"] = 0x05f1;
- t["afii57718"] = 0x05f2;
- t["afii57723"] = 0xfb35;
- t["afii57793"] = 0x05b4;
- t["afii57794"] = 0x05b5;
- t["afii57795"] = 0x05b6;
- t["afii57796"] = 0x05bb;
- t["afii57797"] = 0x05b8;
- t["afii57798"] = 0x05b7;
- t["afii57799"] = 0x05b0;
- t["afii57800"] = 0x05b2;
- t["afii57801"] = 0x05b1;
- t["afii57802"] = 0x05b3;
- t["afii57803"] = 0x05c2;
- t["afii57804"] = 0x05c1;
- t["afii57806"] = 0x05b9;
- t["afii57807"] = 0x05bc;
- t["afii57839"] = 0x05bd;
- t["afii57841"] = 0x05bf;
- t["afii57842"] = 0x05c0;
- t["afii57929"] = 0x02bc;
- t["afii61248"] = 0x2105;
- t["afii61289"] = 0x2113;
- t["afii61352"] = 0x2116;
- t["afii61573"] = 0x202c;
- t["afii61574"] = 0x202d;
- t["afii61575"] = 0x202e;
- t["afii61664"] = 0x200c;
- t["afii63167"] = 0x066d;
- t["afii64937"] = 0x02bd;
- t["agrave"] = 0x00e0;
- t["agujarati"] = 0x0a85;
- t["agurmukhi"] = 0x0a05;
- t["ahiragana"] = 0x3042;
- t["ahookabove"] = 0x1ea3;
- t["aibengali"] = 0x0990;
- t["aibopomofo"] = 0x311e;
- t["aideva"] = 0x0910;
- t["aiecyrillic"] = 0x04d5;
- t["aigujarati"] = 0x0a90;
- t["aigurmukhi"] = 0x0a10;
- t["aimatragurmukhi"] = 0x0a48;
- t["ainarabic"] = 0x0639;
- t["ainfinalarabic"] = 0xfeca;
- t["aininitialarabic"] = 0xfecb;
- t["ainmedialarabic"] = 0xfecc;
- t["ainvertedbreve"] = 0x0203;
- t["aivowelsignbengali"] = 0x09c8;
- t["aivowelsigndeva"] = 0x0948;
- t["aivowelsigngujarati"] = 0x0ac8;
- t["akatakana"] = 0x30a2;
- t["akatakanahalfwidth"] = 0xff71;
- t["akorean"] = 0x314f;
- t["alef"] = 0x05d0;
- t["alefarabic"] = 0x0627;
- t["alefdageshhebrew"] = 0xfb30;
- t["aleffinalarabic"] = 0xfe8e;
- t["alefhamzaabovearabic"] = 0x0623;
- t["alefhamzaabovefinalarabic"] = 0xfe84;
- t["alefhamzabelowarabic"] = 0x0625;
- t["alefhamzabelowfinalarabic"] = 0xfe88;
- t["alefhebrew"] = 0x05d0;
- t["aleflamedhebrew"] = 0xfb4f;
- t["alefmaddaabovearabic"] = 0x0622;
- t["alefmaddaabovefinalarabic"] = 0xfe82;
- t["alefmaksuraarabic"] = 0x0649;
- t["alefmaksurafinalarabic"] = 0xfef0;
- t["alefmaksurainitialarabic"] = 0xfef3;
- t["alefmaksuramedialarabic"] = 0xfef4;
- t["alefpatahhebrew"] = 0xfb2e;
- t["alefqamatshebrew"] = 0xfb2f;
- t["aleph"] = 0x2135;
- t["allequal"] = 0x224c;
- t["alpha"] = 0x03b1;
- t["alphatonos"] = 0x03ac;
- t["amacron"] = 0x0101;
- t["amonospace"] = 0xff41;
- t["ampersand"] = 0x0026;
- t["ampersandmonospace"] = 0xff06;
- t["ampersandsmall"] = 0xf726;
- t["amsquare"] = 0x33c2;
- t["anbopomofo"] = 0x3122;
- t["angbopomofo"] = 0x3124;
- t["angbracketleft"] = 0x3008;
- t["angbracketright"] = 0x3009;
- t["angkhankhuthai"] = 0x0e5a;
- t["angle"] = 0x2220;
- t["anglebracketleft"] = 0x3008;
- t["anglebracketleftvertical"] = 0xfe3f;
- t["anglebracketright"] = 0x3009;
- t["anglebracketrightvertical"] = 0xfe40;
- t["angleleft"] = 0x2329;
- t["angleright"] = 0x232a;
- t["angstrom"] = 0x212b;
- t["anoteleia"] = 0x0387;
- t["anudattadeva"] = 0x0952;
- t["anusvarabengali"] = 0x0982;
- t["anusvaradeva"] = 0x0902;
- t["anusvaragujarati"] = 0x0a82;
- t["aogonek"] = 0x0105;
- t["apaatosquare"] = 0x3300;
- t["aparen"] = 0x249c;
- t["apostrophearmenian"] = 0x055a;
- t["apostrophemod"] = 0x02bc;
- t["apple"] = 0xf8ff;
- t["approaches"] = 0x2250;
- t["approxequal"] = 0x2248;
- t["approxequalorimage"] = 0x2252;
- t["approximatelyequal"] = 0x2245;
- t["araeaekorean"] = 0x318e;
- t["araeakorean"] = 0x318d;
- t["arc"] = 0x2312;
- t["arighthalfring"] = 0x1e9a;
- t["aring"] = 0x00e5;
- t["aringacute"] = 0x01fb;
- t["aringbelow"] = 0x1e01;
- t["arrowboth"] = 0x2194;
- t["arrowdashdown"] = 0x21e3;
- t["arrowdashleft"] = 0x21e0;
- t["arrowdashright"] = 0x21e2;
- t["arrowdashup"] = 0x21e1;
- t["arrowdblboth"] = 0x21d4;
- t["arrowdbldown"] = 0x21d3;
- t["arrowdblleft"] = 0x21d0;
- t["arrowdblright"] = 0x21d2;
- t["arrowdblup"] = 0x21d1;
- t["arrowdown"] = 0x2193;
- t["arrowdownleft"] = 0x2199;
- t["arrowdownright"] = 0x2198;
- t["arrowdownwhite"] = 0x21e9;
- t["arrowheaddownmod"] = 0x02c5;
- t["arrowheadleftmod"] = 0x02c2;
- t["arrowheadrightmod"] = 0x02c3;
- t["arrowheadupmod"] = 0x02c4;
- t["arrowhorizex"] = 0xf8e7;
- t["arrowleft"] = 0x2190;
- t["arrowleftdbl"] = 0x21d0;
- t["arrowleftdblstroke"] = 0x21cd;
- t["arrowleftoverright"] = 0x21c6;
- t["arrowleftwhite"] = 0x21e6;
- t["arrowright"] = 0x2192;
- t["arrowrightdblstroke"] = 0x21cf;
- t["arrowrightheavy"] = 0x279e;
- t["arrowrightoverleft"] = 0x21c4;
- t["arrowrightwhite"] = 0x21e8;
- t["arrowtableft"] = 0x21e4;
- t["arrowtabright"] = 0x21e5;
- t["arrowup"] = 0x2191;
- t["arrowupdn"] = 0x2195;
- t["arrowupdnbse"] = 0x21a8;
- t["arrowupdownbase"] = 0x21a8;
- t["arrowupleft"] = 0x2196;
- t["arrowupleftofdown"] = 0x21c5;
- t["arrowupright"] = 0x2197;
- t["arrowupwhite"] = 0x21e7;
- t["arrowvertex"] = 0xf8e6;
- t["asciicircum"] = 0x005e;
- t["asciicircummonospace"] = 0xff3e;
- t["asciitilde"] = 0x007e;
- t["asciitildemonospace"] = 0xff5e;
- t["ascript"] = 0x0251;
- t["ascriptturned"] = 0x0252;
- t["asmallhiragana"] = 0x3041;
- t["asmallkatakana"] = 0x30a1;
- t["asmallkatakanahalfwidth"] = 0xff67;
- t["asterisk"] = 0x002a;
- t["asteriskaltonearabic"] = 0x066d;
- t["asteriskarabic"] = 0x066d;
- t["asteriskmath"] = 0x2217;
- t["asteriskmonospace"] = 0xff0a;
- t["asterisksmall"] = 0xfe61;
- t["asterism"] = 0x2042;
- t["asuperior"] = 0xf6e9;
- t["asymptoticallyequal"] = 0x2243;
- t["at"] = 0x0040;
- t["atilde"] = 0x00e3;
- t["atmonospace"] = 0xff20;
- t["atsmall"] = 0xfe6b;
- t["aturned"] = 0x0250;
- t["aubengali"] = 0x0994;
- t["aubopomofo"] = 0x3120;
- t["audeva"] = 0x0914;
- t["augujarati"] = 0x0a94;
- t["augurmukhi"] = 0x0a14;
- t["aulengthmarkbengali"] = 0x09d7;
- t["aumatragurmukhi"] = 0x0a4c;
- t["auvowelsignbengali"] = 0x09cc;
- t["auvowelsigndeva"] = 0x094c;
- t["auvowelsigngujarati"] = 0x0acc;
- t["avagrahadeva"] = 0x093d;
- t["aybarmenian"] = 0x0561;
- t["ayin"] = 0x05e2;
- t["ayinaltonehebrew"] = 0xfb20;
- t["ayinhebrew"] = 0x05e2;
- t["b"] = 0x0062;
- t["babengali"] = 0x09ac;
- t["backslash"] = 0x005c;
- t["backslashmonospace"] = 0xff3c;
- t["badeva"] = 0x092c;
- t["bagujarati"] = 0x0aac;
- t["bagurmukhi"] = 0x0a2c;
- t["bahiragana"] = 0x3070;
- t["bahtthai"] = 0x0e3f;
- t["bakatakana"] = 0x30d0;
- t["bar"] = 0x007c;
- t["barmonospace"] = 0xff5c;
- t["bbopomofo"] = 0x3105;
- t["bcircle"] = 0x24d1;
- t["bdotaccent"] = 0x1e03;
- t["bdotbelow"] = 0x1e05;
- t["beamedsixteenthnotes"] = 0x266c;
- t["because"] = 0x2235;
- t["becyrillic"] = 0x0431;
- t["beharabic"] = 0x0628;
- t["behfinalarabic"] = 0xfe90;
- t["behinitialarabic"] = 0xfe91;
- t["behiragana"] = 0x3079;
- t["behmedialarabic"] = 0xfe92;
- t["behmeeminitialarabic"] = 0xfc9f;
- t["behmeemisolatedarabic"] = 0xfc08;
- t["behnoonfinalarabic"] = 0xfc6d;
- t["bekatakana"] = 0x30d9;
- t["benarmenian"] = 0x0562;
- t["bet"] = 0x05d1;
- t["beta"] = 0x03b2;
- t["betasymbolgreek"] = 0x03d0;
- t["betdagesh"] = 0xfb31;
- t["betdageshhebrew"] = 0xfb31;
- t["bethebrew"] = 0x05d1;
- t["betrafehebrew"] = 0xfb4c;
- t["bhabengali"] = 0x09ad;
- t["bhadeva"] = 0x092d;
- t["bhagujarati"] = 0x0aad;
- t["bhagurmukhi"] = 0x0a2d;
- t["bhook"] = 0x0253;
- t["bihiragana"] = 0x3073;
- t["bikatakana"] = 0x30d3;
- t["bilabialclick"] = 0x0298;
- t["bindigurmukhi"] = 0x0a02;
- t["birusquare"] = 0x3331;
- t["blackcircle"] = 0x25cf;
- t["blackdiamond"] = 0x25c6;
- t["blackdownpointingtriangle"] = 0x25bc;
- t["blackleftpointingpointer"] = 0x25c4;
- t["blackleftpointingtriangle"] = 0x25c0;
- t["blacklenticularbracketleft"] = 0x3010;
- t["blacklenticularbracketleftvertical"] = 0xfe3b;
- t["blacklenticularbracketright"] = 0x3011;
- t["blacklenticularbracketrightvertical"] = 0xfe3c;
- t["blacklowerlefttriangle"] = 0x25e3;
- t["blacklowerrighttriangle"] = 0x25e2;
- t["blackrectangle"] = 0x25ac;
- t["blackrightpointingpointer"] = 0x25ba;
- t["blackrightpointingtriangle"] = 0x25b6;
- t["blacksmallsquare"] = 0x25aa;
- t["blacksmilingface"] = 0x263b;
- t["blacksquare"] = 0x25a0;
- t["blackstar"] = 0x2605;
- t["blackupperlefttriangle"] = 0x25e4;
- t["blackupperrighttriangle"] = 0x25e5;
- t["blackuppointingsmalltriangle"] = 0x25b4;
- t["blackuppointingtriangle"] = 0x25b2;
- t["blank"] = 0x2423;
- t["blinebelow"] = 0x1e07;
- t["block"] = 0x2588;
- t["bmonospace"] = 0xff42;
- t["bobaimaithai"] = 0x0e1a;
- t["bohiragana"] = 0x307c;
- t["bokatakana"] = 0x30dc;
- t["bparen"] = 0x249d;
- t["bqsquare"] = 0x33c3;
- t["braceex"] = 0xf8f4;
- t["braceleft"] = 0x007b;
- t["braceleftbt"] = 0xf8f3;
- t["braceleftmid"] = 0xf8f2;
- t["braceleftmonospace"] = 0xff5b;
- t["braceleftsmall"] = 0xfe5b;
- t["bracelefttp"] = 0xf8f1;
- t["braceleftvertical"] = 0xfe37;
- t["braceright"] = 0x007d;
- t["bracerightbt"] = 0xf8fe;
- t["bracerightmid"] = 0xf8fd;
- t["bracerightmonospace"] = 0xff5d;
- t["bracerightsmall"] = 0xfe5c;
- t["bracerighttp"] = 0xf8fc;
- t["bracerightvertical"] = 0xfe38;
- t["bracketleft"] = 0x005b;
- t["bracketleftbt"] = 0xf8f0;
- t["bracketleftex"] = 0xf8ef;
- t["bracketleftmonospace"] = 0xff3b;
- t["bracketlefttp"] = 0xf8ee;
- t["bracketright"] = 0x005d;
- t["bracketrightbt"] = 0xf8fb;
- t["bracketrightex"] = 0xf8fa;
- t["bracketrightmonospace"] = 0xff3d;
- t["bracketrighttp"] = 0xf8f9;
- t["breve"] = 0x02d8;
- t["brevebelowcmb"] = 0x032e;
- t["brevecmb"] = 0x0306;
- t["breveinvertedbelowcmb"] = 0x032f;
- t["breveinvertedcmb"] = 0x0311;
- t["breveinverteddoublecmb"] = 0x0361;
- t["bridgebelowcmb"] = 0x032a;
- t["bridgeinvertedbelowcmb"] = 0x033a;
- t["brokenbar"] = 0x00a6;
- t["bstroke"] = 0x0180;
- t["bsuperior"] = 0xf6ea;
- t["btopbar"] = 0x0183;
- t["buhiragana"] = 0x3076;
- t["bukatakana"] = 0x30d6;
- t["bullet"] = 0x2022;
- t["bulletinverse"] = 0x25d8;
- t["bulletoperator"] = 0x2219;
- t["bullseye"] = 0x25ce;
- t["c"] = 0x0063;
- t["caarmenian"] = 0x056e;
- t["cabengali"] = 0x099a;
- t["cacute"] = 0x0107;
- t["cadeva"] = 0x091a;
- t["cagujarati"] = 0x0a9a;
- t["cagurmukhi"] = 0x0a1a;
- t["calsquare"] = 0x3388;
- t["candrabindubengali"] = 0x0981;
- t["candrabinducmb"] = 0x0310;
- t["candrabindudeva"] = 0x0901;
- t["candrabindugujarati"] = 0x0a81;
- t["capslock"] = 0x21ea;
- t["careof"] = 0x2105;
- t["caron"] = 0x02c7;
- t["caronbelowcmb"] = 0x032c;
- t["caroncmb"] = 0x030c;
- t["carriagereturn"] = 0x21b5;
- t["cbopomofo"] = 0x3118;
- t["ccaron"] = 0x010d;
- t["ccedilla"] = 0x00e7;
- t["ccedillaacute"] = 0x1e09;
- t["ccircle"] = 0x24d2;
- t["ccircumflex"] = 0x0109;
- t["ccurl"] = 0x0255;
- t["cdot"] = 0x010b;
- t["cdotaccent"] = 0x010b;
- t["cdsquare"] = 0x33c5;
- t["cedilla"] = 0x00b8;
- t["cedillacmb"] = 0x0327;
- t["cent"] = 0x00a2;
- t["centigrade"] = 0x2103;
- t["centinferior"] = 0xf6df;
- t["centmonospace"] = 0xffe0;
- t["centoldstyle"] = 0xf7a2;
- t["centsuperior"] = 0xf6e0;
- t["chaarmenian"] = 0x0579;
- t["chabengali"] = 0x099b;
- t["chadeva"] = 0x091b;
- t["chagujarati"] = 0x0a9b;
- t["chagurmukhi"] = 0x0a1b;
- t["chbopomofo"] = 0x3114;
- t["cheabkhasiancyrillic"] = 0x04bd;
- t["checkmark"] = 0x2713;
- t["checyrillic"] = 0x0447;
- t["chedescenderabkhasiancyrillic"] = 0x04bf;
- t["chedescendercyrillic"] = 0x04b7;
- t["chedieresiscyrillic"] = 0x04f5;
- t["cheharmenian"] = 0x0573;
- t["chekhakassiancyrillic"] = 0x04cc;
- t["cheverticalstrokecyrillic"] = 0x04b9;
- t["chi"] = 0x03c7;
- t["chieuchacirclekorean"] = 0x3277;
- t["chieuchaparenkorean"] = 0x3217;
- t["chieuchcirclekorean"] = 0x3269;
- t["chieuchkorean"] = 0x314a;
- t["chieuchparenkorean"] = 0x3209;
- t["chochangthai"] = 0x0e0a;
- t["chochanthai"] = 0x0e08;
- t["chochingthai"] = 0x0e09;
- t["chochoethai"] = 0x0e0c;
- t["chook"] = 0x0188;
- t["cieucacirclekorean"] = 0x3276;
- t["cieucaparenkorean"] = 0x3216;
- t["cieuccirclekorean"] = 0x3268;
- t["cieuckorean"] = 0x3148;
- t["cieucparenkorean"] = 0x3208;
- t["cieucuparenkorean"] = 0x321c;
- t["circle"] = 0x25cb;
- t["circlecopyrt"] = 0x00a9;
- t["circlemultiply"] = 0x2297;
- t["circleot"] = 0x2299;
- t["circleplus"] = 0x2295;
- t["circlepostalmark"] = 0x3036;
- t["circlewithlefthalfblack"] = 0x25d0;
- t["circlewithrighthalfblack"] = 0x25d1;
- t["circumflex"] = 0x02c6;
- t["circumflexbelowcmb"] = 0x032d;
- t["circumflexcmb"] = 0x0302;
- t["clear"] = 0x2327;
- t["clickalveolar"] = 0x01c2;
- t["clickdental"] = 0x01c0;
- t["clicklateral"] = 0x01c1;
- t["clickretroflex"] = 0x01c3;
- t["club"] = 0x2663;
- t["clubsuitblack"] = 0x2663;
- t["clubsuitwhite"] = 0x2667;
- t["cmcubedsquare"] = 0x33a4;
- t["cmonospace"] = 0xff43;
- t["cmsquaredsquare"] = 0x33a0;
- t["coarmenian"] = 0x0581;
- t["colon"] = 0x003a;
- t["colonmonetary"] = 0x20a1;
- t["colonmonospace"] = 0xff1a;
- t["colonsign"] = 0x20a1;
- t["colonsmall"] = 0xfe55;
- t["colontriangularhalfmod"] = 0x02d1;
- t["colontriangularmod"] = 0x02d0;
- t["comma"] = 0x002c;
- t["commaabovecmb"] = 0x0313;
- t["commaaboverightcmb"] = 0x0315;
- t["commaaccent"] = 0xf6c3;
- t["commaarabic"] = 0x060c;
- t["commaarmenian"] = 0x055d;
- t["commainferior"] = 0xf6e1;
- t["commamonospace"] = 0xff0c;
- t["commareversedabovecmb"] = 0x0314;
- t["commareversedmod"] = 0x02bd;
- t["commasmall"] = 0xfe50;
- t["commasuperior"] = 0xf6e2;
- t["commaturnedabovecmb"] = 0x0312;
- t["commaturnedmod"] = 0x02bb;
- t["compass"] = 0x263c;
- t["congruent"] = 0x2245;
- t["contourintegral"] = 0x222e;
- t["control"] = 0x2303;
- t["controlACK"] = 0x0006;
- t["controlBEL"] = 0x0007;
- t["controlBS"] = 0x0008;
- t["controlCAN"] = 0x0018;
- t["controlCR"] = 0x000d;
- t["controlDC1"] = 0x0011;
- t["controlDC2"] = 0x0012;
- t["controlDC3"] = 0x0013;
- t["controlDC4"] = 0x0014;
- t["controlDEL"] = 0x007f;
- t["controlDLE"] = 0x0010;
- t["controlEM"] = 0x0019;
- t["controlENQ"] = 0x0005;
- t["controlEOT"] = 0x0004;
- t["controlESC"] = 0x001b;
- t["controlETB"] = 0x0017;
- t["controlETX"] = 0x0003;
- t["controlFF"] = 0x000c;
- t["controlFS"] = 0x001c;
- t["controlGS"] = 0x001d;
- t["controlHT"] = 0x0009;
- t["controlLF"] = 0x000a;
- t["controlNAK"] = 0x0015;
- t["controlNULL"] = 0x0000;
- t["controlRS"] = 0x001e;
- t["controlSI"] = 0x000f;
- t["controlSO"] = 0x000e;
- t["controlSOT"] = 0x0002;
- t["controlSTX"] = 0x0001;
- t["controlSUB"] = 0x001a;
- t["controlSYN"] = 0x0016;
- t["controlUS"] = 0x001f;
- t["controlVT"] = 0x000b;
- t["copyright"] = 0x00a9;
- t["copyrightsans"] = 0xf8e9;
- t["copyrightserif"] = 0xf6d9;
- t["cornerbracketleft"] = 0x300c;
- t["cornerbracketlefthalfwidth"] = 0xff62;
- t["cornerbracketleftvertical"] = 0xfe41;
- t["cornerbracketright"] = 0x300d;
- t["cornerbracketrighthalfwidth"] = 0xff63;
- t["cornerbracketrightvertical"] = 0xfe42;
- t["corporationsquare"] = 0x337f;
- t["cosquare"] = 0x33c7;
- t["coverkgsquare"] = 0x33c6;
- t["cparen"] = 0x249e;
- t["cruzeiro"] = 0x20a2;
- t["cstretched"] = 0x0297;
- t["curlyand"] = 0x22cf;
- t["curlyor"] = 0x22ce;
- t["currency"] = 0x00a4;
- t["cyrBreve"] = 0xf6d1;
- t["cyrFlex"] = 0xf6d2;
- t["cyrbreve"] = 0xf6d4;
- t["cyrflex"] = 0xf6d5;
- t["d"] = 0x0064;
- t["daarmenian"] = 0x0564;
- t["dabengali"] = 0x09a6;
- t["dadarabic"] = 0x0636;
- t["dadeva"] = 0x0926;
- t["dadfinalarabic"] = 0xfebe;
- t["dadinitialarabic"] = 0xfebf;
- t["dadmedialarabic"] = 0xfec0;
- t["dagesh"] = 0x05bc;
- t["dageshhebrew"] = 0x05bc;
- t["dagger"] = 0x2020;
- t["daggerdbl"] = 0x2021;
- t["dagujarati"] = 0x0aa6;
- t["dagurmukhi"] = 0x0a26;
- t["dahiragana"] = 0x3060;
- t["dakatakana"] = 0x30c0;
- t["dalarabic"] = 0x062f;
- t["dalet"] = 0x05d3;
- t["daletdagesh"] = 0xfb33;
- t["daletdageshhebrew"] = 0xfb33;
- t["dalethebrew"] = 0x05d3;
- t["dalfinalarabic"] = 0xfeaa;
- t["dammaarabic"] = 0x064f;
- t["dammalowarabic"] = 0x064f;
- t["dammatanaltonearabic"] = 0x064c;
- t["dammatanarabic"] = 0x064c;
- t["danda"] = 0x0964;
- t["dargahebrew"] = 0x05a7;
- t["dargalefthebrew"] = 0x05a7;
- t["dasiapneumatacyrilliccmb"] = 0x0485;
- t["dblGrave"] = 0xf6d3;
- t["dblanglebracketleft"] = 0x300a;
- t["dblanglebracketleftvertical"] = 0xfe3d;
- t["dblanglebracketright"] = 0x300b;
- t["dblanglebracketrightvertical"] = 0xfe3e;
- t["dblarchinvertedbelowcmb"] = 0x032b;
- t["dblarrowleft"] = 0x21d4;
- t["dblarrowright"] = 0x21d2;
- t["dbldanda"] = 0x0965;
- t["dblgrave"] = 0xf6d6;
- t["dblgravecmb"] = 0x030f;
- t["dblintegral"] = 0x222c;
- t["dbllowline"] = 0x2017;
- t["dbllowlinecmb"] = 0x0333;
- t["dbloverlinecmb"] = 0x033f;
- t["dblprimemod"] = 0x02ba;
- t["dblverticalbar"] = 0x2016;
- t["dblverticallineabovecmb"] = 0x030e;
- t["dbopomofo"] = 0x3109;
- t["dbsquare"] = 0x33c8;
- t["dcaron"] = 0x010f;
- t["dcedilla"] = 0x1e11;
- t["dcircle"] = 0x24d3;
- t["dcircumflexbelow"] = 0x1e13;
- t["dcroat"] = 0x0111;
- t["ddabengali"] = 0x09a1;
- t["ddadeva"] = 0x0921;
- t["ddagujarati"] = 0x0aa1;
- t["ddagurmukhi"] = 0x0a21;
- t["ddalarabic"] = 0x0688;
- t["ddalfinalarabic"] = 0xfb89;
- t["dddhadeva"] = 0x095c;
- t["ddhabengali"] = 0x09a2;
- t["ddhadeva"] = 0x0922;
- t["ddhagujarati"] = 0x0aa2;
- t["ddhagurmukhi"] = 0x0a22;
- t["ddotaccent"] = 0x1e0b;
- t["ddotbelow"] = 0x1e0d;
- t["decimalseparatorarabic"] = 0x066b;
- t["decimalseparatorpersian"] = 0x066b;
- t["decyrillic"] = 0x0434;
- t["degree"] = 0x00b0;
- t["dehihebrew"] = 0x05ad;
- t["dehiragana"] = 0x3067;
- t["deicoptic"] = 0x03ef;
- t["dekatakana"] = 0x30c7;
- t["deleteleft"] = 0x232b;
- t["deleteright"] = 0x2326;
- t["delta"] = 0x03b4;
- t["deltaturned"] = 0x018d;
- t["denominatorminusonenumeratorbengali"] = 0x09f8;
- t["dezh"] = 0x02a4;
- t["dhabengali"] = 0x09a7;
- t["dhadeva"] = 0x0927;
- t["dhagujarati"] = 0x0aa7;
- t["dhagurmukhi"] = 0x0a27;
- t["dhook"] = 0x0257;
- t["dialytikatonos"] = 0x0385;
- t["dialytikatonoscmb"] = 0x0344;
- t["diamond"] = 0x2666;
- t["diamondsuitwhite"] = 0x2662;
- t["dieresis"] = 0x00a8;
- t["dieresisacute"] = 0xf6d7;
- t["dieresisbelowcmb"] = 0x0324;
- t["dieresiscmb"] = 0x0308;
- t["dieresisgrave"] = 0xf6d8;
- t["dieresistonos"] = 0x0385;
- t["dihiragana"] = 0x3062;
- t["dikatakana"] = 0x30c2;
- t["dittomark"] = 0x3003;
- t["divide"] = 0x00f7;
- t["divides"] = 0x2223;
- t["divisionslash"] = 0x2215;
- t["djecyrillic"] = 0x0452;
- t["dkshade"] = 0x2593;
- t["dlinebelow"] = 0x1e0f;
- t["dlsquare"] = 0x3397;
- t["dmacron"] = 0x0111;
- t["dmonospace"] = 0xff44;
- t["dnblock"] = 0x2584;
- t["dochadathai"] = 0x0e0e;
- t["dodekthai"] = 0x0e14;
- t["dohiragana"] = 0x3069;
- t["dokatakana"] = 0x30c9;
- t["dollar"] = 0x0024;
- t["dollarinferior"] = 0xf6e3;
- t["dollarmonospace"] = 0xff04;
- t["dollaroldstyle"] = 0xf724;
- t["dollarsmall"] = 0xfe69;
- t["dollarsuperior"] = 0xf6e4;
- t["dong"] = 0x20ab;
- t["dorusquare"] = 0x3326;
- t["dotaccent"] = 0x02d9;
- t["dotaccentcmb"] = 0x0307;
- t["dotbelowcmb"] = 0x0323;
- t["dotbelowcomb"] = 0x0323;
- t["dotkatakana"] = 0x30fb;
- t["dotlessi"] = 0x0131;
- t["dotlessj"] = 0xf6be;
- t["dotlessjstrokehook"] = 0x0284;
- t["dotmath"] = 0x22c5;
- t["dottedcircle"] = 0x25cc;
- t["doubleyodpatah"] = 0xfb1f;
- t["doubleyodpatahhebrew"] = 0xfb1f;
- t["downtackbelowcmb"] = 0x031e;
- t["downtackmod"] = 0x02d5;
- t["dparen"] = 0x249f;
- t["dsuperior"] = 0xf6eb;
- t["dtail"] = 0x0256;
- t["dtopbar"] = 0x018c;
- t["duhiragana"] = 0x3065;
- t["dukatakana"] = 0x30c5;
- t["dz"] = 0x01f3;
- t["dzaltone"] = 0x02a3;
- t["dzcaron"] = 0x01c6;
- t["dzcurl"] = 0x02a5;
- t["dzeabkhasiancyrillic"] = 0x04e1;
- t["dzecyrillic"] = 0x0455;
- t["dzhecyrillic"] = 0x045f;
- t["e"] = 0x0065;
- t["eacute"] = 0x00e9;
- t["earth"] = 0x2641;
- t["ebengali"] = 0x098f;
- t["ebopomofo"] = 0x311c;
- t["ebreve"] = 0x0115;
- t["ecandradeva"] = 0x090d;
- t["ecandragujarati"] = 0x0a8d;
- t["ecandravowelsigndeva"] = 0x0945;
- t["ecandravowelsigngujarati"] = 0x0ac5;
- t["ecaron"] = 0x011b;
- t["ecedillabreve"] = 0x1e1d;
- t["echarmenian"] = 0x0565;
- t["echyiwnarmenian"] = 0x0587;
- t["ecircle"] = 0x24d4;
- t["ecircumflex"] = 0x00ea;
- t["ecircumflexacute"] = 0x1ebf;
- t["ecircumflexbelow"] = 0x1e19;
- t["ecircumflexdotbelow"] = 0x1ec7;
- t["ecircumflexgrave"] = 0x1ec1;
- t["ecircumflexhookabove"] = 0x1ec3;
- t["ecircumflextilde"] = 0x1ec5;
- t["ecyrillic"] = 0x0454;
- t["edblgrave"] = 0x0205;
- t["edeva"] = 0x090f;
- t["edieresis"] = 0x00eb;
- t["edot"] = 0x0117;
- t["edotaccent"] = 0x0117;
- t["edotbelow"] = 0x1eb9;
- t["eegurmukhi"] = 0x0a0f;
- t["eematragurmukhi"] = 0x0a47;
- t["efcyrillic"] = 0x0444;
- t["egrave"] = 0x00e8;
- t["egujarati"] = 0x0a8f;
- t["eharmenian"] = 0x0567;
- t["ehbopomofo"] = 0x311d;
- t["ehiragana"] = 0x3048;
- t["ehookabove"] = 0x1ebb;
- t["eibopomofo"] = 0x311f;
- t["eight"] = 0x0038;
- t["eightarabic"] = 0x0668;
- t["eightbengali"] = 0x09ee;
- t["eightcircle"] = 0x2467;
- t["eightcircleinversesansserif"] = 0x2791;
- t["eightdeva"] = 0x096e;
- t["eighteencircle"] = 0x2471;
- t["eighteenparen"] = 0x2485;
- t["eighteenperiod"] = 0x2499;
- t["eightgujarati"] = 0x0aee;
- t["eightgurmukhi"] = 0x0a6e;
- t["eighthackarabic"] = 0x0668;
- t["eighthangzhou"] = 0x3028;
- t["eighthnotebeamed"] = 0x266b;
- t["eightideographicparen"] = 0x3227;
- t["eightinferior"] = 0x2088;
- t["eightmonospace"] = 0xff18;
- t["eightoldstyle"] = 0xf738;
- t["eightparen"] = 0x247b;
- t["eightperiod"] = 0x248f;
- t["eightpersian"] = 0x06f8;
- t["eightroman"] = 0x2177;
- t["eightsuperior"] = 0x2078;
- t["eightthai"] = 0x0e58;
- t["einvertedbreve"] = 0x0207;
- t["eiotifiedcyrillic"] = 0x0465;
- t["ekatakana"] = 0x30a8;
- t["ekatakanahalfwidth"] = 0xff74;
- t["ekonkargurmukhi"] = 0x0a74;
- t["ekorean"] = 0x3154;
- t["elcyrillic"] = 0x043b;
- t["element"] = 0x2208;
- t["elevencircle"] = 0x246a;
- t["elevenparen"] = 0x247e;
- t["elevenperiod"] = 0x2492;
- t["elevenroman"] = 0x217a;
- t["ellipsis"] = 0x2026;
- t["ellipsisvertical"] = 0x22ee;
- t["emacron"] = 0x0113;
- t["emacronacute"] = 0x1e17;
- t["emacrongrave"] = 0x1e15;
- t["emcyrillic"] = 0x043c;
- t["emdash"] = 0x2014;
- t["emdashvertical"] = 0xfe31;
- t["emonospace"] = 0xff45;
- t["emphasismarkarmenian"] = 0x055b;
- t["emptyset"] = 0x2205;
- t["enbopomofo"] = 0x3123;
- t["encyrillic"] = 0x043d;
- t["endash"] = 0x2013;
- t["endashvertical"] = 0xfe32;
- t["endescendercyrillic"] = 0x04a3;
- t["eng"] = 0x014b;
- t["engbopomofo"] = 0x3125;
- t["enghecyrillic"] = 0x04a5;
- t["enhookcyrillic"] = 0x04c8;
- t["enspace"] = 0x2002;
- t["eogonek"] = 0x0119;
- t["eokorean"] = 0x3153;
- t["eopen"] = 0x025b;
- t["eopenclosed"] = 0x029a;
- t["eopenreversed"] = 0x025c;
- t["eopenreversedclosed"] = 0x025e;
- t["eopenreversedhook"] = 0x025d;
- t["eparen"] = 0x24a0;
- t["epsilon"] = 0x03b5;
- t["epsilontonos"] = 0x03ad;
- t["equal"] = 0x003d;
- t["equalmonospace"] = 0xff1d;
- t["equalsmall"] = 0xfe66;
- t["equalsuperior"] = 0x207c;
- t["equivalence"] = 0x2261;
- t["erbopomofo"] = 0x3126;
- t["ercyrillic"] = 0x0440;
- t["ereversed"] = 0x0258;
- t["ereversedcyrillic"] = 0x044d;
- t["escyrillic"] = 0x0441;
- t["esdescendercyrillic"] = 0x04ab;
- t["esh"] = 0x0283;
- t["eshcurl"] = 0x0286;
- t["eshortdeva"] = 0x090e;
- t["eshortvowelsigndeva"] = 0x0946;
- t["eshreversedloop"] = 0x01aa;
- t["eshsquatreversed"] = 0x0285;
- t["esmallhiragana"] = 0x3047;
- t["esmallkatakana"] = 0x30a7;
- t["esmallkatakanahalfwidth"] = 0xff6a;
- t["estimated"] = 0x212e;
- t["esuperior"] = 0xf6ec;
- t["eta"] = 0x03b7;
- t["etarmenian"] = 0x0568;
- t["etatonos"] = 0x03ae;
- t["eth"] = 0x00f0;
- t["etilde"] = 0x1ebd;
- t["etildebelow"] = 0x1e1b;
- t["etnahtafoukhhebrew"] = 0x0591;
- t["etnahtafoukhlefthebrew"] = 0x0591;
- t["etnahtahebrew"] = 0x0591;
- t["etnahtalefthebrew"] = 0x0591;
- t["eturned"] = 0x01dd;
- t["eukorean"] = 0x3161;
- t["euro"] = 0x20ac;
- t["evowelsignbengali"] = 0x09c7;
- t["evowelsigndeva"] = 0x0947;
- t["evowelsigngujarati"] = 0x0ac7;
- t["exclam"] = 0x0021;
- t["exclamarmenian"] = 0x055c;
- t["exclamdbl"] = 0x203c;
- t["exclamdown"] = 0x00a1;
- t["exclamdownsmall"] = 0xf7a1;
- t["exclammonospace"] = 0xff01;
- t["exclamsmall"] = 0xf721;
- t["existential"] = 0x2203;
- t["ezh"] = 0x0292;
- t["ezhcaron"] = 0x01ef;
- t["ezhcurl"] = 0x0293;
- t["ezhreversed"] = 0x01b9;
- t["ezhtail"] = 0x01ba;
- t["f"] = 0x0066;
- t["fadeva"] = 0x095e;
- t["fagurmukhi"] = 0x0a5e;
- t["fahrenheit"] = 0x2109;
- t["fathaarabic"] = 0x064e;
- t["fathalowarabic"] = 0x064e;
- t["fathatanarabic"] = 0x064b;
- t["fbopomofo"] = 0x3108;
- t["fcircle"] = 0x24d5;
- t["fdotaccent"] = 0x1e1f;
- t["feharabic"] = 0x0641;
- t["feharmenian"] = 0x0586;
- t["fehfinalarabic"] = 0xfed2;
- t["fehinitialarabic"] = 0xfed3;
- t["fehmedialarabic"] = 0xfed4;
- t["feicoptic"] = 0x03e5;
- t["female"] = 0x2640;
- t["ff"] = 0xfb00;
- t["f_f"] = 0xfb00;
- t["ffi"] = 0xfb03;
- t["ffl"] = 0xfb04;
- t["fi"] = 0xfb01;
- t["fifteencircle"] = 0x246e;
- t["fifteenparen"] = 0x2482;
- t["fifteenperiod"] = 0x2496;
- t["figuredash"] = 0x2012;
- t["filledbox"] = 0x25a0;
- t["filledrect"] = 0x25ac;
- t["finalkaf"] = 0x05da;
- t["finalkafdagesh"] = 0xfb3a;
- t["finalkafdageshhebrew"] = 0xfb3a;
- t["finalkafhebrew"] = 0x05da;
- t["finalmem"] = 0x05dd;
- t["finalmemhebrew"] = 0x05dd;
- t["finalnun"] = 0x05df;
- t["finalnunhebrew"] = 0x05df;
- t["finalpe"] = 0x05e3;
- t["finalpehebrew"] = 0x05e3;
- t["finaltsadi"] = 0x05e5;
- t["finaltsadihebrew"] = 0x05e5;
- t["firsttonechinese"] = 0x02c9;
- t["fisheye"] = 0x25c9;
- t["fitacyrillic"] = 0x0473;
- t["five"] = 0x0035;
- t["fivearabic"] = 0x0665;
- t["fivebengali"] = 0x09eb;
- t["fivecircle"] = 0x2464;
- t["fivecircleinversesansserif"] = 0x278e;
- t["fivedeva"] = 0x096b;
- t["fiveeighths"] = 0x215d;
- t["fivegujarati"] = 0x0aeb;
- t["fivegurmukhi"] = 0x0a6b;
- t["fivehackarabic"] = 0x0665;
- t["fivehangzhou"] = 0x3025;
- t["fiveideographicparen"] = 0x3224;
- t["fiveinferior"] = 0x2085;
- t["fivemonospace"] = 0xff15;
- t["fiveoldstyle"] = 0xf735;
- t["fiveparen"] = 0x2478;
- t["fiveperiod"] = 0x248c;
- t["fivepersian"] = 0x06f5;
- t["fiveroman"] = 0x2174;
- t["fivesuperior"] = 0x2075;
- t["fivethai"] = 0x0e55;
- t["fl"] = 0xfb02;
- t["florin"] = 0x0192;
- t["fmonospace"] = 0xff46;
- t["fmsquare"] = 0x3399;
- t["fofanthai"] = 0x0e1f;
- t["fofathai"] = 0x0e1d;
- t["fongmanthai"] = 0x0e4f;
- t["forall"] = 0x2200;
- t["four"] = 0x0034;
- t["fourarabic"] = 0x0664;
- t["fourbengali"] = 0x09ea;
- t["fourcircle"] = 0x2463;
- t["fourcircleinversesansserif"] = 0x278d;
- t["fourdeva"] = 0x096a;
- t["fourgujarati"] = 0x0aea;
- t["fourgurmukhi"] = 0x0a6a;
- t["fourhackarabic"] = 0x0664;
- t["fourhangzhou"] = 0x3024;
- t["fourideographicparen"] = 0x3223;
- t["fourinferior"] = 0x2084;
- t["fourmonospace"] = 0xff14;
- t["fournumeratorbengali"] = 0x09f7;
- t["fouroldstyle"] = 0xf734;
- t["fourparen"] = 0x2477;
- t["fourperiod"] = 0x248b;
- t["fourpersian"] = 0x06f4;
- t["fourroman"] = 0x2173;
- t["foursuperior"] = 0x2074;
- t["fourteencircle"] = 0x246d;
- t["fourteenparen"] = 0x2481;
- t["fourteenperiod"] = 0x2495;
- t["fourthai"] = 0x0e54;
- t["fourthtonechinese"] = 0x02cb;
- t["fparen"] = 0x24a1;
- t["fraction"] = 0x2044;
- t["franc"] = 0x20a3;
- t["g"] = 0x0067;
- t["gabengali"] = 0x0997;
- t["gacute"] = 0x01f5;
- t["gadeva"] = 0x0917;
- t["gafarabic"] = 0x06af;
- t["gaffinalarabic"] = 0xfb93;
- t["gafinitialarabic"] = 0xfb94;
- t["gafmedialarabic"] = 0xfb95;
- t["gagujarati"] = 0x0a97;
- t["gagurmukhi"] = 0x0a17;
- t["gahiragana"] = 0x304c;
- t["gakatakana"] = 0x30ac;
- t["gamma"] = 0x03b3;
- t["gammalatinsmall"] = 0x0263;
- t["gammasuperior"] = 0x02e0;
- t["gangiacoptic"] = 0x03eb;
- t["gbopomofo"] = 0x310d;
- t["gbreve"] = 0x011f;
- t["gcaron"] = 0x01e7;
- t["gcedilla"] = 0x0123;
- t["gcircle"] = 0x24d6;
- t["gcircumflex"] = 0x011d;
- t["gcommaaccent"] = 0x0123;
- t["gdot"] = 0x0121;
- t["gdotaccent"] = 0x0121;
- t["gecyrillic"] = 0x0433;
- t["gehiragana"] = 0x3052;
- t["gekatakana"] = 0x30b2;
- t["geometricallyequal"] = 0x2251;
- t["gereshaccenthebrew"] = 0x059c;
- t["gereshhebrew"] = 0x05f3;
- t["gereshmuqdamhebrew"] = 0x059d;
- t["germandbls"] = 0x00df;
- t["gershayimaccenthebrew"] = 0x059e;
- t["gershayimhebrew"] = 0x05f4;
- t["getamark"] = 0x3013;
- t["ghabengali"] = 0x0998;
- t["ghadarmenian"] = 0x0572;
- t["ghadeva"] = 0x0918;
- t["ghagujarati"] = 0x0a98;
- t["ghagurmukhi"] = 0x0a18;
- t["ghainarabic"] = 0x063a;
- t["ghainfinalarabic"] = 0xfece;
- t["ghaininitialarabic"] = 0xfecf;
- t["ghainmedialarabic"] = 0xfed0;
- t["ghemiddlehookcyrillic"] = 0x0495;
- t["ghestrokecyrillic"] = 0x0493;
- t["gheupturncyrillic"] = 0x0491;
- t["ghhadeva"] = 0x095a;
- t["ghhagurmukhi"] = 0x0a5a;
- t["ghook"] = 0x0260;
- t["ghzsquare"] = 0x3393;
- t["gihiragana"] = 0x304e;
- t["gikatakana"] = 0x30ae;
- t["gimarmenian"] = 0x0563;
- t["gimel"] = 0x05d2;
- t["gimeldagesh"] = 0xfb32;
- t["gimeldageshhebrew"] = 0xfb32;
- t["gimelhebrew"] = 0x05d2;
- t["gjecyrillic"] = 0x0453;
- t["glottalinvertedstroke"] = 0x01be;
- t["glottalstop"] = 0x0294;
- t["glottalstopinverted"] = 0x0296;
- t["glottalstopmod"] = 0x02c0;
- t["glottalstopreversed"] = 0x0295;
- t["glottalstopreversedmod"] = 0x02c1;
- t["glottalstopreversedsuperior"] = 0x02e4;
- t["glottalstopstroke"] = 0x02a1;
- t["glottalstopstrokereversed"] = 0x02a2;
- t["gmacron"] = 0x1e21;
- t["gmonospace"] = 0xff47;
- t["gohiragana"] = 0x3054;
- t["gokatakana"] = 0x30b4;
- t["gparen"] = 0x24a2;
- t["gpasquare"] = 0x33ac;
- t["gradient"] = 0x2207;
- t["grave"] = 0x0060;
- t["gravebelowcmb"] = 0x0316;
- t["gravecmb"] = 0x0300;
- t["gravecomb"] = 0x0300;
- t["gravedeva"] = 0x0953;
- t["gravelowmod"] = 0x02ce;
- t["gravemonospace"] = 0xff40;
- t["gravetonecmb"] = 0x0340;
- t["greater"] = 0x003e;
- t["greaterequal"] = 0x2265;
- t["greaterequalorless"] = 0x22db;
- t["greatermonospace"] = 0xff1e;
- t["greaterorequivalent"] = 0x2273;
- t["greaterorless"] = 0x2277;
- t["greateroverequal"] = 0x2267;
- t["greatersmall"] = 0xfe65;
- t["gscript"] = 0x0261;
- t["gstroke"] = 0x01e5;
- t["guhiragana"] = 0x3050;
- t["guillemotleft"] = 0x00ab;
- t["guillemotright"] = 0x00bb;
- t["guilsinglleft"] = 0x2039;
- t["guilsinglright"] = 0x203a;
- t["gukatakana"] = 0x30b0;
- t["guramusquare"] = 0x3318;
- t["gysquare"] = 0x33c9;
- t["h"] = 0x0068;
- t["haabkhasiancyrillic"] = 0x04a9;
- t["haaltonearabic"] = 0x06c1;
- t["habengali"] = 0x09b9;
- t["hadescendercyrillic"] = 0x04b3;
- t["hadeva"] = 0x0939;
- t["hagujarati"] = 0x0ab9;
- t["hagurmukhi"] = 0x0a39;
- t["haharabic"] = 0x062d;
- t["hahfinalarabic"] = 0xfea2;
- t["hahinitialarabic"] = 0xfea3;
- t["hahiragana"] = 0x306f;
- t["hahmedialarabic"] = 0xfea4;
- t["haitusquare"] = 0x332a;
- t["hakatakana"] = 0x30cf;
- t["hakatakanahalfwidth"] = 0xff8a;
- t["halantgurmukhi"] = 0x0a4d;
- t["hamzaarabic"] = 0x0621;
- t["hamzalowarabic"] = 0x0621;
- t["hangulfiller"] = 0x3164;
- t["hardsigncyrillic"] = 0x044a;
- t["harpoonleftbarbup"] = 0x21bc;
- t["harpoonrightbarbup"] = 0x21c0;
- t["hasquare"] = 0x33ca;
- t["hatafpatah"] = 0x05b2;
- t["hatafpatah16"] = 0x05b2;
- t["hatafpatah23"] = 0x05b2;
- t["hatafpatah2f"] = 0x05b2;
- t["hatafpatahhebrew"] = 0x05b2;
- t["hatafpatahnarrowhebrew"] = 0x05b2;
- t["hatafpatahquarterhebrew"] = 0x05b2;
- t["hatafpatahwidehebrew"] = 0x05b2;
- t["hatafqamats"] = 0x05b3;
- t["hatafqamats1b"] = 0x05b3;
- t["hatafqamats28"] = 0x05b3;
- t["hatafqamats34"] = 0x05b3;
- t["hatafqamatshebrew"] = 0x05b3;
- t["hatafqamatsnarrowhebrew"] = 0x05b3;
- t["hatafqamatsquarterhebrew"] = 0x05b3;
- t["hatafqamatswidehebrew"] = 0x05b3;
- t["hatafsegol"] = 0x05b1;
- t["hatafsegol17"] = 0x05b1;
- t["hatafsegol24"] = 0x05b1;
- t["hatafsegol30"] = 0x05b1;
- t["hatafsegolhebrew"] = 0x05b1;
- t["hatafsegolnarrowhebrew"] = 0x05b1;
- t["hatafsegolquarterhebrew"] = 0x05b1;
- t["hatafsegolwidehebrew"] = 0x05b1;
- t["hbar"] = 0x0127;
- t["hbopomofo"] = 0x310f;
- t["hbrevebelow"] = 0x1e2b;
- t["hcedilla"] = 0x1e29;
- t["hcircle"] = 0x24d7;
- t["hcircumflex"] = 0x0125;
- t["hdieresis"] = 0x1e27;
- t["hdotaccent"] = 0x1e23;
- t["hdotbelow"] = 0x1e25;
- t["he"] = 0x05d4;
- t["heart"] = 0x2665;
- t["heartsuitblack"] = 0x2665;
- t["heartsuitwhite"] = 0x2661;
- t["hedagesh"] = 0xfb34;
- t["hedageshhebrew"] = 0xfb34;
- t["hehaltonearabic"] = 0x06c1;
- t["heharabic"] = 0x0647;
- t["hehebrew"] = 0x05d4;
- t["hehfinalaltonearabic"] = 0xfba7;
- t["hehfinalalttwoarabic"] = 0xfeea;
- t["hehfinalarabic"] = 0xfeea;
- t["hehhamzaabovefinalarabic"] = 0xfba5;
- t["hehhamzaaboveisolatedarabic"] = 0xfba4;
- t["hehinitialaltonearabic"] = 0xfba8;
- t["hehinitialarabic"] = 0xfeeb;
- t["hehiragana"] = 0x3078;
- t["hehmedialaltonearabic"] = 0xfba9;
- t["hehmedialarabic"] = 0xfeec;
- t["heiseierasquare"] = 0x337b;
- t["hekatakana"] = 0x30d8;
- t["hekatakanahalfwidth"] = 0xff8d;
- t["hekutaarusquare"] = 0x3336;
- t["henghook"] = 0x0267;
- t["herutusquare"] = 0x3339;
- t["het"] = 0x05d7;
- t["hethebrew"] = 0x05d7;
- t["hhook"] = 0x0266;
- t["hhooksuperior"] = 0x02b1;
- t["hieuhacirclekorean"] = 0x327b;
- t["hieuhaparenkorean"] = 0x321b;
- t["hieuhcirclekorean"] = 0x326d;
- t["hieuhkorean"] = 0x314e;
- t["hieuhparenkorean"] = 0x320d;
- t["hihiragana"] = 0x3072;
- t["hikatakana"] = 0x30d2;
- t["hikatakanahalfwidth"] = 0xff8b;
- t["hiriq"] = 0x05b4;
- t["hiriq14"] = 0x05b4;
- t["hiriq21"] = 0x05b4;
- t["hiriq2d"] = 0x05b4;
- t["hiriqhebrew"] = 0x05b4;
- t["hiriqnarrowhebrew"] = 0x05b4;
- t["hiriqquarterhebrew"] = 0x05b4;
- t["hiriqwidehebrew"] = 0x05b4;
- t["hlinebelow"] = 0x1e96;
- t["hmonospace"] = 0xff48;
- t["hoarmenian"] = 0x0570;
- t["hohipthai"] = 0x0e2b;
- t["hohiragana"] = 0x307b;
- t["hokatakana"] = 0x30db;
- t["hokatakanahalfwidth"] = 0xff8e;
- t["holam"] = 0x05b9;
- t["holam19"] = 0x05b9;
- t["holam26"] = 0x05b9;
- t["holam32"] = 0x05b9;
- t["holamhebrew"] = 0x05b9;
- t["holamnarrowhebrew"] = 0x05b9;
- t["holamquarterhebrew"] = 0x05b9;
- t["holamwidehebrew"] = 0x05b9;
- t["honokhukthai"] = 0x0e2e;
- t["hookabovecomb"] = 0x0309;
- t["hookcmb"] = 0x0309;
- t["hookpalatalizedbelowcmb"] = 0x0321;
- t["hookretroflexbelowcmb"] = 0x0322;
- t["hoonsquare"] = 0x3342;
- t["horicoptic"] = 0x03e9;
- t["horizontalbar"] = 0x2015;
- t["horncmb"] = 0x031b;
- t["hotsprings"] = 0x2668;
- t["house"] = 0x2302;
- t["hparen"] = 0x24a3;
- t["hsuperior"] = 0x02b0;
- t["hturned"] = 0x0265;
- t["huhiragana"] = 0x3075;
- t["huiitosquare"] = 0x3333;
- t["hukatakana"] = 0x30d5;
- t["hukatakanahalfwidth"] = 0xff8c;
- t["hungarumlaut"] = 0x02dd;
- t["hungarumlautcmb"] = 0x030b;
- t["hv"] = 0x0195;
- t["hyphen"] = 0x002d;
- t["hypheninferior"] = 0xf6e5;
- t["hyphenmonospace"] = 0xff0d;
- t["hyphensmall"] = 0xfe63;
- t["hyphensuperior"] = 0xf6e6;
- t["hyphentwo"] = 0x2010;
- t["i"] = 0x0069;
- t["iacute"] = 0x00ed;
- t["iacyrillic"] = 0x044f;
- t["ibengali"] = 0x0987;
- t["ibopomofo"] = 0x3127;
- t["ibreve"] = 0x012d;
- t["icaron"] = 0x01d0;
- t["icircle"] = 0x24d8;
- t["icircumflex"] = 0x00ee;
- t["icyrillic"] = 0x0456;
- t["idblgrave"] = 0x0209;
- t["ideographearthcircle"] = 0x328f;
- t["ideographfirecircle"] = 0x328b;
- t["ideographicallianceparen"] = 0x323f;
- t["ideographiccallparen"] = 0x323a;
- t["ideographiccentrecircle"] = 0x32a5;
- t["ideographicclose"] = 0x3006;
- t["ideographiccomma"] = 0x3001;
- t["ideographiccommaleft"] = 0xff64;
- t["ideographiccongratulationparen"] = 0x3237;
- t["ideographiccorrectcircle"] = 0x32a3;
- t["ideographicearthparen"] = 0x322f;
- t["ideographicenterpriseparen"] = 0x323d;
- t["ideographicexcellentcircle"] = 0x329d;
- t["ideographicfestivalparen"] = 0x3240;
- t["ideographicfinancialcircle"] = 0x3296;
- t["ideographicfinancialparen"] = 0x3236;
- t["ideographicfireparen"] = 0x322b;
- t["ideographichaveparen"] = 0x3232;
- t["ideographichighcircle"] = 0x32a4;
- t["ideographiciterationmark"] = 0x3005;
- t["ideographiclaborcircle"] = 0x3298;
- t["ideographiclaborparen"] = 0x3238;
- t["ideographicleftcircle"] = 0x32a7;
- t["ideographiclowcircle"] = 0x32a6;
- t["ideographicmedicinecircle"] = 0x32a9;
- t["ideographicmetalparen"] = 0x322e;
- t["ideographicmoonparen"] = 0x322a;
- t["ideographicnameparen"] = 0x3234;
- t["ideographicperiod"] = 0x3002;
- t["ideographicprintcircle"] = 0x329e;
- t["ideographicreachparen"] = 0x3243;
- t["ideographicrepresentparen"] = 0x3239;
- t["ideographicresourceparen"] = 0x323e;
- t["ideographicrightcircle"] = 0x32a8;
- t["ideographicsecretcircle"] = 0x3299;
- t["ideographicselfparen"] = 0x3242;
- t["ideographicsocietyparen"] = 0x3233;
- t["ideographicspace"] = 0x3000;
- t["ideographicspecialparen"] = 0x3235;
- t["ideographicstockparen"] = 0x3231;
- t["ideographicstudyparen"] = 0x323b;
- t["ideographicsunparen"] = 0x3230;
- t["ideographicsuperviseparen"] = 0x323c;
- t["ideographicwaterparen"] = 0x322c;
- t["ideographicwoodparen"] = 0x322d;
- t["ideographiczero"] = 0x3007;
- t["ideographmetalcircle"] = 0x328e;
- t["ideographmooncircle"] = 0x328a;
- t["ideographnamecircle"] = 0x3294;
- t["ideographsuncircle"] = 0x3290;
- t["ideographwatercircle"] = 0x328c;
- t["ideographwoodcircle"] = 0x328d;
- t["ideva"] = 0x0907;
- t["idieresis"] = 0x00ef;
- t["idieresisacute"] = 0x1e2f;
- t["idieresiscyrillic"] = 0x04e5;
- t["idotbelow"] = 0x1ecb;
- t["iebrevecyrillic"] = 0x04d7;
- t["iecyrillic"] = 0x0435;
- t["ieungacirclekorean"] = 0x3275;
- t["ieungaparenkorean"] = 0x3215;
- t["ieungcirclekorean"] = 0x3267;
- t["ieungkorean"] = 0x3147;
- t["ieungparenkorean"] = 0x3207;
- t["igrave"] = 0x00ec;
- t["igujarati"] = 0x0a87;
- t["igurmukhi"] = 0x0a07;
- t["ihiragana"] = 0x3044;
- t["ihookabove"] = 0x1ec9;
- t["iibengali"] = 0x0988;
- t["iicyrillic"] = 0x0438;
- t["iideva"] = 0x0908;
- t["iigujarati"] = 0x0a88;
- t["iigurmukhi"] = 0x0a08;
- t["iimatragurmukhi"] = 0x0a40;
- t["iinvertedbreve"] = 0x020b;
- t["iishortcyrillic"] = 0x0439;
- t["iivowelsignbengali"] = 0x09c0;
- t["iivowelsigndeva"] = 0x0940;
- t["iivowelsigngujarati"] = 0x0ac0;
- t["ij"] = 0x0133;
- t["ikatakana"] = 0x30a4;
- t["ikatakanahalfwidth"] = 0xff72;
- t["ikorean"] = 0x3163;
- t["ilde"] = 0x02dc;
- t["iluyhebrew"] = 0x05ac;
- t["imacron"] = 0x012b;
- t["imacroncyrillic"] = 0x04e3;
- t["imageorapproximatelyequal"] = 0x2253;
- t["imatragurmukhi"] = 0x0a3f;
- t["imonospace"] = 0xff49;
- t["increment"] = 0x2206;
- t["infinity"] = 0x221e;
- t["iniarmenian"] = 0x056b;
- t["integral"] = 0x222b;
- t["integralbottom"] = 0x2321;
- t["integralbt"] = 0x2321;
- t["integralex"] = 0xf8f5;
- t["integraltop"] = 0x2320;
- t["integraltp"] = 0x2320;
- t["intersection"] = 0x2229;
- t["intisquare"] = 0x3305;
- t["invbullet"] = 0x25d8;
- t["invcircle"] = 0x25d9;
- t["invsmileface"] = 0x263b;
- t["iocyrillic"] = 0x0451;
- t["iogonek"] = 0x012f;
- t["iota"] = 0x03b9;
- t["iotadieresis"] = 0x03ca;
- t["iotadieresistonos"] = 0x0390;
- t["iotalatin"] = 0x0269;
- t["iotatonos"] = 0x03af;
- t["iparen"] = 0x24a4;
- t["irigurmukhi"] = 0x0a72;
- t["ismallhiragana"] = 0x3043;
- t["ismallkatakana"] = 0x30a3;
- t["ismallkatakanahalfwidth"] = 0xff68;
- t["issharbengali"] = 0x09fa;
- t["istroke"] = 0x0268;
- t["isuperior"] = 0xf6ed;
- t["iterationhiragana"] = 0x309d;
- t["iterationkatakana"] = 0x30fd;
- t["itilde"] = 0x0129;
- t["itildebelow"] = 0x1e2d;
- t["iubopomofo"] = 0x3129;
- t["iucyrillic"] = 0x044e;
- t["ivowelsignbengali"] = 0x09bf;
- t["ivowelsigndeva"] = 0x093f;
- t["ivowelsigngujarati"] = 0x0abf;
- t["izhitsacyrillic"] = 0x0475;
- t["izhitsadblgravecyrillic"] = 0x0477;
- t["j"] = 0x006a;
- t["jaarmenian"] = 0x0571;
- t["jabengali"] = 0x099c;
- t["jadeva"] = 0x091c;
- t["jagujarati"] = 0x0a9c;
- t["jagurmukhi"] = 0x0a1c;
- t["jbopomofo"] = 0x3110;
- t["jcaron"] = 0x01f0;
- t["jcircle"] = 0x24d9;
- t["jcircumflex"] = 0x0135;
- t["jcrossedtail"] = 0x029d;
- t["jdotlessstroke"] = 0x025f;
- t["jecyrillic"] = 0x0458;
- t["jeemarabic"] = 0x062c;
- t["jeemfinalarabic"] = 0xfe9e;
- t["jeeminitialarabic"] = 0xfe9f;
- t["jeemmedialarabic"] = 0xfea0;
- t["jeharabic"] = 0x0698;
- t["jehfinalarabic"] = 0xfb8b;
- t["jhabengali"] = 0x099d;
- t["jhadeva"] = 0x091d;
- t["jhagujarati"] = 0x0a9d;
- t["jhagurmukhi"] = 0x0a1d;
- t["jheharmenian"] = 0x057b;
- t["jis"] = 0x3004;
- t["jmonospace"] = 0xff4a;
- t["jparen"] = 0x24a5;
- t["jsuperior"] = 0x02b2;
- t["k"] = 0x006b;
- t["kabashkircyrillic"] = 0x04a1;
- t["kabengali"] = 0x0995;
- t["kacute"] = 0x1e31;
- t["kacyrillic"] = 0x043a;
- t["kadescendercyrillic"] = 0x049b;
- t["kadeva"] = 0x0915;
- t["kaf"] = 0x05db;
- t["kafarabic"] = 0x0643;
- t["kafdagesh"] = 0xfb3b;
- t["kafdageshhebrew"] = 0xfb3b;
- t["kaffinalarabic"] = 0xfeda;
- t["kafhebrew"] = 0x05db;
- t["kafinitialarabic"] = 0xfedb;
- t["kafmedialarabic"] = 0xfedc;
- t["kafrafehebrew"] = 0xfb4d;
- t["kagujarati"] = 0x0a95;
- t["kagurmukhi"] = 0x0a15;
- t["kahiragana"] = 0x304b;
- t["kahookcyrillic"] = 0x04c4;
- t["kakatakana"] = 0x30ab;
- t["kakatakanahalfwidth"] = 0xff76;
- t["kappa"] = 0x03ba;
- t["kappasymbolgreek"] = 0x03f0;
- t["kapyeounmieumkorean"] = 0x3171;
- t["kapyeounphieuphkorean"] = 0x3184;
- t["kapyeounpieupkorean"] = 0x3178;
- t["kapyeounssangpieupkorean"] = 0x3179;
- t["karoriisquare"] = 0x330d;
- t["kashidaautoarabic"] = 0x0640;
- t["kashidaautonosidebearingarabic"] = 0x0640;
- t["kasmallkatakana"] = 0x30f5;
- t["kasquare"] = 0x3384;
- t["kasraarabic"] = 0x0650;
- t["kasratanarabic"] = 0x064d;
- t["kastrokecyrillic"] = 0x049f;
- t["katahiraprolongmarkhalfwidth"] = 0xff70;
- t["kaverticalstrokecyrillic"] = 0x049d;
- t["kbopomofo"] = 0x310e;
- t["kcalsquare"] = 0x3389;
- t["kcaron"] = 0x01e9;
- t["kcedilla"] = 0x0137;
- t["kcircle"] = 0x24da;
- t["kcommaaccent"] = 0x0137;
- t["kdotbelow"] = 0x1e33;
- t["keharmenian"] = 0x0584;
- t["kehiragana"] = 0x3051;
- t["kekatakana"] = 0x30b1;
- t["kekatakanahalfwidth"] = 0xff79;
- t["kenarmenian"] = 0x056f;
- t["kesmallkatakana"] = 0x30f6;
- t["kgreenlandic"] = 0x0138;
- t["khabengali"] = 0x0996;
- t["khacyrillic"] = 0x0445;
- t["khadeva"] = 0x0916;
- t["khagujarati"] = 0x0a96;
- t["khagurmukhi"] = 0x0a16;
- t["khaharabic"] = 0x062e;
- t["khahfinalarabic"] = 0xfea6;
- t["khahinitialarabic"] = 0xfea7;
- t["khahmedialarabic"] = 0xfea8;
- t["kheicoptic"] = 0x03e7;
- t["khhadeva"] = 0x0959;
- t["khhagurmukhi"] = 0x0a59;
- t["khieukhacirclekorean"] = 0x3278;
- t["khieukhaparenkorean"] = 0x3218;
- t["khieukhcirclekorean"] = 0x326a;
- t["khieukhkorean"] = 0x314b;
- t["khieukhparenkorean"] = 0x320a;
- t["khokhaithai"] = 0x0e02;
- t["khokhonthai"] = 0x0e05;
- t["khokhuatthai"] = 0x0e03;
- t["khokhwaithai"] = 0x0e04;
- t["khomutthai"] = 0x0e5b;
- t["khook"] = 0x0199;
- t["khorakhangthai"] = 0x0e06;
- t["khzsquare"] = 0x3391;
- t["kihiragana"] = 0x304d;
- t["kikatakana"] = 0x30ad;
- t["kikatakanahalfwidth"] = 0xff77;
- t["kiroguramusquare"] = 0x3315;
- t["kiromeetorusquare"] = 0x3316;
- t["kirosquare"] = 0x3314;
- t["kiyeokacirclekorean"] = 0x326e;
- t["kiyeokaparenkorean"] = 0x320e;
- t["kiyeokcirclekorean"] = 0x3260;
- t["kiyeokkorean"] = 0x3131;
- t["kiyeokparenkorean"] = 0x3200;
- t["kiyeoksioskorean"] = 0x3133;
- t["kjecyrillic"] = 0x045c;
- t["klinebelow"] = 0x1e35;
- t["klsquare"] = 0x3398;
- t["kmcubedsquare"] = 0x33a6;
- t["kmonospace"] = 0xff4b;
- t["kmsquaredsquare"] = 0x33a2;
- t["kohiragana"] = 0x3053;
- t["kohmsquare"] = 0x33c0;
- t["kokaithai"] = 0x0e01;
- t["kokatakana"] = 0x30b3;
- t["kokatakanahalfwidth"] = 0xff7a;
- t["kooposquare"] = 0x331e;
- t["koppacyrillic"] = 0x0481;
- t["koreanstandardsymbol"] = 0x327f;
- t["koroniscmb"] = 0x0343;
- t["kparen"] = 0x24a6;
- t["kpasquare"] = 0x33aa;
- t["ksicyrillic"] = 0x046f;
- t["ktsquare"] = 0x33cf;
- t["kturned"] = 0x029e;
- t["kuhiragana"] = 0x304f;
- t["kukatakana"] = 0x30af;
- t["kukatakanahalfwidth"] = 0xff78;
- t["kvsquare"] = 0x33b8;
- t["kwsquare"] = 0x33be;
- t["l"] = 0x006c;
- t["labengali"] = 0x09b2;
- t["lacute"] = 0x013a;
- t["ladeva"] = 0x0932;
- t["lagujarati"] = 0x0ab2;
- t["lagurmukhi"] = 0x0a32;
- t["lakkhangyaothai"] = 0x0e45;
- t["lamaleffinalarabic"] = 0xfefc;
- t["lamalefhamzaabovefinalarabic"] = 0xfef8;
- t["lamalefhamzaaboveisolatedarabic"] = 0xfef7;
- t["lamalefhamzabelowfinalarabic"] = 0xfefa;
- t["lamalefhamzabelowisolatedarabic"] = 0xfef9;
- t["lamalefisolatedarabic"] = 0xfefb;
- t["lamalefmaddaabovefinalarabic"] = 0xfef6;
- t["lamalefmaddaaboveisolatedarabic"] = 0xfef5;
- t["lamarabic"] = 0x0644;
- t["lambda"] = 0x03bb;
- t["lambdastroke"] = 0x019b;
- t["lamed"] = 0x05dc;
- t["lameddagesh"] = 0xfb3c;
- t["lameddageshhebrew"] = 0xfb3c;
- t["lamedhebrew"] = 0x05dc;
- t["lamfinalarabic"] = 0xfede;
- t["lamhahinitialarabic"] = 0xfcca;
- t["laminitialarabic"] = 0xfedf;
- t["lamjeeminitialarabic"] = 0xfcc9;
- t["lamkhahinitialarabic"] = 0xfccb;
- t["lamlamhehisolatedarabic"] = 0xfdf2;
- t["lammedialarabic"] = 0xfee0;
- t["lammeemhahinitialarabic"] = 0xfd88;
- t["lammeeminitialarabic"] = 0xfccc;
- t["largecircle"] = 0x25ef;
- t["lbar"] = 0x019a;
- t["lbelt"] = 0x026c;
- t["lbopomofo"] = 0x310c;
- t["lcaron"] = 0x013e;
- t["lcedilla"] = 0x013c;
- t["lcircle"] = 0x24db;
- t["lcircumflexbelow"] = 0x1e3d;
- t["lcommaaccent"] = 0x013c;
- t["ldot"] = 0x0140;
- t["ldotaccent"] = 0x0140;
- t["ldotbelow"] = 0x1e37;
- t["ldotbelowmacron"] = 0x1e39;
- t["leftangleabovecmb"] = 0x031a;
- t["lefttackbelowcmb"] = 0x0318;
- t["less"] = 0x003c;
- t["lessequal"] = 0x2264;
- t["lessequalorgreater"] = 0x22da;
- t["lessmonospace"] = 0xff1c;
- t["lessorequivalent"] = 0x2272;
- t["lessorgreater"] = 0x2276;
- t["lessoverequal"] = 0x2266;
- t["lesssmall"] = 0xfe64;
- t["lezh"] = 0x026e;
- t["lfblock"] = 0x258c;
- t["lhookretroflex"] = 0x026d;
- t["lira"] = 0x20a4;
- t["liwnarmenian"] = 0x056c;
- t["lj"] = 0x01c9;
- t["ljecyrillic"] = 0x0459;
- t["ll"] = 0xf6c0;
- t["lladeva"] = 0x0933;
- t["llagujarati"] = 0x0ab3;
- t["llinebelow"] = 0x1e3b;
- t["llladeva"] = 0x0934;
- t["llvocalicbengali"] = 0x09e1;
- t["llvocalicdeva"] = 0x0961;
- t["llvocalicvowelsignbengali"] = 0x09e3;
- t["llvocalicvowelsigndeva"] = 0x0963;
- t["lmiddletilde"] = 0x026b;
- t["lmonospace"] = 0xff4c;
- t["lmsquare"] = 0x33d0;
- t["lochulathai"] = 0x0e2c;
- t["logicaland"] = 0x2227;
- t["logicalnot"] = 0x00ac;
- t["logicalnotreversed"] = 0x2310;
- t["logicalor"] = 0x2228;
- t["lolingthai"] = 0x0e25;
- t["longs"] = 0x017f;
- t["lowlinecenterline"] = 0xfe4e;
- t["lowlinecmb"] = 0x0332;
- t["lowlinedashed"] = 0xfe4d;
- t["lozenge"] = 0x25ca;
- t["lparen"] = 0x24a7;
- t["lslash"] = 0x0142;
- t["lsquare"] = 0x2113;
- t["lsuperior"] = 0xf6ee;
- t["ltshade"] = 0x2591;
- t["luthai"] = 0x0e26;
- t["lvocalicbengali"] = 0x098c;
- t["lvocalicdeva"] = 0x090c;
- t["lvocalicvowelsignbengali"] = 0x09e2;
- t["lvocalicvowelsigndeva"] = 0x0962;
- t["lxsquare"] = 0x33d3;
- t["m"] = 0x006d;
- t["mabengali"] = 0x09ae;
- t["macron"] = 0x00af;
- t["macronbelowcmb"] = 0x0331;
- t["macroncmb"] = 0x0304;
- t["macronlowmod"] = 0x02cd;
- t["macronmonospace"] = 0xffe3;
- t["macute"] = 0x1e3f;
- t["madeva"] = 0x092e;
- t["magujarati"] = 0x0aae;
- t["magurmukhi"] = 0x0a2e;
- t["mahapakhhebrew"] = 0x05a4;
- t["mahapakhlefthebrew"] = 0x05a4;
- t["mahiragana"] = 0x307e;
- t["maichattawalowleftthai"] = 0xf895;
- t["maichattawalowrightthai"] = 0xf894;
- t["maichattawathai"] = 0x0e4b;
- t["maichattawaupperleftthai"] = 0xf893;
- t["maieklowleftthai"] = 0xf88c;
- t["maieklowrightthai"] = 0xf88b;
- t["maiekthai"] = 0x0e48;
- t["maiekupperleftthai"] = 0xf88a;
- t["maihanakatleftthai"] = 0xf884;
- t["maihanakatthai"] = 0x0e31;
- t["maitaikhuleftthai"] = 0xf889;
- t["maitaikhuthai"] = 0x0e47;
- t["maitholowleftthai"] = 0xf88f;
- t["maitholowrightthai"] = 0xf88e;
- t["maithothai"] = 0x0e49;
- t["maithoupperleftthai"] = 0xf88d;
- t["maitrilowleftthai"] = 0xf892;
- t["maitrilowrightthai"] = 0xf891;
- t["maitrithai"] = 0x0e4a;
- t["maitriupperleftthai"] = 0xf890;
- t["maiyamokthai"] = 0x0e46;
- t["makatakana"] = 0x30de;
- t["makatakanahalfwidth"] = 0xff8f;
- t["male"] = 0x2642;
- t["mansyonsquare"] = 0x3347;
- t["maqafhebrew"] = 0x05be;
- t["mars"] = 0x2642;
- t["masoracirclehebrew"] = 0x05af;
- t["masquare"] = 0x3383;
- t["mbopomofo"] = 0x3107;
- t["mbsquare"] = 0x33d4;
- t["mcircle"] = 0x24dc;
- t["mcubedsquare"] = 0x33a5;
- t["mdotaccent"] = 0x1e41;
- t["mdotbelow"] = 0x1e43;
- t["meemarabic"] = 0x0645;
- t["meemfinalarabic"] = 0xfee2;
- t["meeminitialarabic"] = 0xfee3;
- t["meemmedialarabic"] = 0xfee4;
- t["meemmeeminitialarabic"] = 0xfcd1;
- t["meemmeemisolatedarabic"] = 0xfc48;
- t["meetorusquare"] = 0x334d;
- t["mehiragana"] = 0x3081;
- t["meizierasquare"] = 0x337e;
- t["mekatakana"] = 0x30e1;
- t["mekatakanahalfwidth"] = 0xff92;
- t["mem"] = 0x05de;
- t["memdagesh"] = 0xfb3e;
- t["memdageshhebrew"] = 0xfb3e;
- t["memhebrew"] = 0x05de;
- t["menarmenian"] = 0x0574;
- t["merkhahebrew"] = 0x05a5;
- t["merkhakefulahebrew"] = 0x05a6;
- t["merkhakefulalefthebrew"] = 0x05a6;
- t["merkhalefthebrew"] = 0x05a5;
- t["mhook"] = 0x0271;
- t["mhzsquare"] = 0x3392;
- t["middledotkatakanahalfwidth"] = 0xff65;
- t["middot"] = 0x00b7;
- t["mieumacirclekorean"] = 0x3272;
- t["mieumaparenkorean"] = 0x3212;
- t["mieumcirclekorean"] = 0x3264;
- t["mieumkorean"] = 0x3141;
- t["mieumpansioskorean"] = 0x3170;
- t["mieumparenkorean"] = 0x3204;
- t["mieumpieupkorean"] = 0x316e;
- t["mieumsioskorean"] = 0x316f;
- t["mihiragana"] = 0x307f;
- t["mikatakana"] = 0x30df;
- t["mikatakanahalfwidth"] = 0xff90;
- t["minus"] = 0x2212;
- t["minusbelowcmb"] = 0x0320;
- t["minuscircle"] = 0x2296;
- t["minusmod"] = 0x02d7;
- t["minusplus"] = 0x2213;
- t["minute"] = 0x2032;
- t["miribaarusquare"] = 0x334a;
- t["mirisquare"] = 0x3349;
- t["mlonglegturned"] = 0x0270;
- t["mlsquare"] = 0x3396;
- t["mmcubedsquare"] = 0x33a3;
- t["mmonospace"] = 0xff4d;
- t["mmsquaredsquare"] = 0x339f;
- t["mohiragana"] = 0x3082;
- t["mohmsquare"] = 0x33c1;
- t["mokatakana"] = 0x30e2;
- t["mokatakanahalfwidth"] = 0xff93;
- t["molsquare"] = 0x33d6;
- t["momathai"] = 0x0e21;
- t["moverssquare"] = 0x33a7;
- t["moverssquaredsquare"] = 0x33a8;
- t["mparen"] = 0x24a8;
- t["mpasquare"] = 0x33ab;
- t["mssquare"] = 0x33b3;
- t["msuperior"] = 0xf6ef;
- t["mturned"] = 0x026f;
- t["mu"] = 0x00b5;
- t["mu1"] = 0x00b5;
- t["muasquare"] = 0x3382;
- t["muchgreater"] = 0x226b;
- t["muchless"] = 0x226a;
- t["mufsquare"] = 0x338c;
- t["mugreek"] = 0x03bc;
- t["mugsquare"] = 0x338d;
- t["muhiragana"] = 0x3080;
- t["mukatakana"] = 0x30e0;
- t["mukatakanahalfwidth"] = 0xff91;
- t["mulsquare"] = 0x3395;
- t["multiply"] = 0x00d7;
- t["mumsquare"] = 0x339b;
- t["munahhebrew"] = 0x05a3;
- t["munahlefthebrew"] = 0x05a3;
- t["musicalnote"] = 0x266a;
- t["musicalnotedbl"] = 0x266b;
- t["musicflatsign"] = 0x266d;
- t["musicsharpsign"] = 0x266f;
- t["mussquare"] = 0x33b2;
- t["muvsquare"] = 0x33b6;
- t["muwsquare"] = 0x33bc;
- t["mvmegasquare"] = 0x33b9;
- t["mvsquare"] = 0x33b7;
- t["mwmegasquare"] = 0x33bf;
- t["mwsquare"] = 0x33bd;
- t["n"] = 0x006e;
- t["nabengali"] = 0x09a8;
- t["nabla"] = 0x2207;
- t["nacute"] = 0x0144;
- t["nadeva"] = 0x0928;
- t["nagujarati"] = 0x0aa8;
- t["nagurmukhi"] = 0x0a28;
- t["nahiragana"] = 0x306a;
- t["nakatakana"] = 0x30ca;
- t["nakatakanahalfwidth"] = 0xff85;
- t["napostrophe"] = 0x0149;
- t["nasquare"] = 0x3381;
- t["nbopomofo"] = 0x310b;
- t["nbspace"] = 0x00a0;
- t["ncaron"] = 0x0148;
- t["ncedilla"] = 0x0146;
- t["ncircle"] = 0x24dd;
- t["ncircumflexbelow"] = 0x1e4b;
- t["ncommaaccent"] = 0x0146;
- t["ndotaccent"] = 0x1e45;
- t["ndotbelow"] = 0x1e47;
- t["nehiragana"] = 0x306d;
- t["nekatakana"] = 0x30cd;
- t["nekatakanahalfwidth"] = 0xff88;
- t["newsheqelsign"] = 0x20aa;
- t["nfsquare"] = 0x338b;
- t["ngabengali"] = 0x0999;
- t["ngadeva"] = 0x0919;
- t["ngagujarati"] = 0x0a99;
- t["ngagurmukhi"] = 0x0a19;
- t["ngonguthai"] = 0x0e07;
- t["nhiragana"] = 0x3093;
- t["nhookleft"] = 0x0272;
- t["nhookretroflex"] = 0x0273;
- t["nieunacirclekorean"] = 0x326f;
- t["nieunaparenkorean"] = 0x320f;
- t["nieuncieuckorean"] = 0x3135;
- t["nieuncirclekorean"] = 0x3261;
- t["nieunhieuhkorean"] = 0x3136;
- t["nieunkorean"] = 0x3134;
- t["nieunpansioskorean"] = 0x3168;
- t["nieunparenkorean"] = 0x3201;
- t["nieunsioskorean"] = 0x3167;
- t["nieuntikeutkorean"] = 0x3166;
- t["nihiragana"] = 0x306b;
- t["nikatakana"] = 0x30cb;
- t["nikatakanahalfwidth"] = 0xff86;
- t["nikhahitleftthai"] = 0xf899;
- t["nikhahitthai"] = 0x0e4d;
- t["nine"] = 0x0039;
- t["ninearabic"] = 0x0669;
- t["ninebengali"] = 0x09ef;
- t["ninecircle"] = 0x2468;
- t["ninecircleinversesansserif"] = 0x2792;
- t["ninedeva"] = 0x096f;
- t["ninegujarati"] = 0x0aef;
- t["ninegurmukhi"] = 0x0a6f;
- t["ninehackarabic"] = 0x0669;
- t["ninehangzhou"] = 0x3029;
- t["nineideographicparen"] = 0x3228;
- t["nineinferior"] = 0x2089;
- t["ninemonospace"] = 0xff19;
- t["nineoldstyle"] = 0xf739;
- t["nineparen"] = 0x247c;
- t["nineperiod"] = 0x2490;
- t["ninepersian"] = 0x06f9;
- t["nineroman"] = 0x2178;
- t["ninesuperior"] = 0x2079;
- t["nineteencircle"] = 0x2472;
- t["nineteenparen"] = 0x2486;
- t["nineteenperiod"] = 0x249a;
- t["ninethai"] = 0x0e59;
- t["nj"] = 0x01cc;
- t["njecyrillic"] = 0x045a;
- t["nkatakana"] = 0x30f3;
- t["nkatakanahalfwidth"] = 0xff9d;
- t["nlegrightlong"] = 0x019e;
- t["nlinebelow"] = 0x1e49;
- t["nmonospace"] = 0xff4e;
- t["nmsquare"] = 0x339a;
- t["nnabengali"] = 0x09a3;
- t["nnadeva"] = 0x0923;
- t["nnagujarati"] = 0x0aa3;
- t["nnagurmukhi"] = 0x0a23;
- t["nnnadeva"] = 0x0929;
- t["nohiragana"] = 0x306e;
- t["nokatakana"] = 0x30ce;
- t["nokatakanahalfwidth"] = 0xff89;
- t["nonbreakingspace"] = 0x00a0;
- t["nonenthai"] = 0x0e13;
- t["nonuthai"] = 0x0e19;
- t["noonarabic"] = 0x0646;
- t["noonfinalarabic"] = 0xfee6;
- t["noonghunnaarabic"] = 0x06ba;
- t["noonghunnafinalarabic"] = 0xfb9f;
- t["nooninitialarabic"] = 0xfee7;
- t["noonjeeminitialarabic"] = 0xfcd2;
- t["noonjeemisolatedarabic"] = 0xfc4b;
- t["noonmedialarabic"] = 0xfee8;
- t["noonmeeminitialarabic"] = 0xfcd5;
- t["noonmeemisolatedarabic"] = 0xfc4e;
- t["noonnoonfinalarabic"] = 0xfc8d;
- t["notcontains"] = 0x220c;
- t["notelement"] = 0x2209;
- t["notelementof"] = 0x2209;
- t["notequal"] = 0x2260;
- t["notgreater"] = 0x226f;
- t["notgreaternorequal"] = 0x2271;
- t["notgreaternorless"] = 0x2279;
- t["notidentical"] = 0x2262;
- t["notless"] = 0x226e;
- t["notlessnorequal"] = 0x2270;
- t["notparallel"] = 0x2226;
- t["notprecedes"] = 0x2280;
- t["notsubset"] = 0x2284;
- t["notsucceeds"] = 0x2281;
- t["notsuperset"] = 0x2285;
- t["nowarmenian"] = 0x0576;
- t["nparen"] = 0x24a9;
- t["nssquare"] = 0x33b1;
- t["nsuperior"] = 0x207f;
- t["ntilde"] = 0x00f1;
- t["nu"] = 0x03bd;
- t["nuhiragana"] = 0x306c;
- t["nukatakana"] = 0x30cc;
- t["nukatakanahalfwidth"] = 0xff87;
- t["nuktabengali"] = 0x09bc;
- t["nuktadeva"] = 0x093c;
- t["nuktagujarati"] = 0x0abc;
- t["nuktagurmukhi"] = 0x0a3c;
- t["numbersign"] = 0x0023;
- t["numbersignmonospace"] = 0xff03;
- t["numbersignsmall"] = 0xfe5f;
- t["numeralsigngreek"] = 0x0374;
- t["numeralsignlowergreek"] = 0x0375;
- t["numero"] = 0x2116;
- t["nun"] = 0x05e0;
- t["nundagesh"] = 0xfb40;
- t["nundageshhebrew"] = 0xfb40;
- t["nunhebrew"] = 0x05e0;
- t["nvsquare"] = 0x33b5;
- t["nwsquare"] = 0x33bb;
- t["nyabengali"] = 0x099e;
- t["nyadeva"] = 0x091e;
- t["nyagujarati"] = 0x0a9e;
- t["nyagurmukhi"] = 0x0a1e;
- t["o"] = 0x006f;
- t["oacute"] = 0x00f3;
- t["oangthai"] = 0x0e2d;
- t["obarred"] = 0x0275;
- t["obarredcyrillic"] = 0x04e9;
- t["obarreddieresiscyrillic"] = 0x04eb;
- t["obengali"] = 0x0993;
- t["obopomofo"] = 0x311b;
- t["obreve"] = 0x014f;
- t["ocandradeva"] = 0x0911;
- t["ocandragujarati"] = 0x0a91;
- t["ocandravowelsigndeva"] = 0x0949;
- t["ocandravowelsigngujarati"] = 0x0ac9;
- t["ocaron"] = 0x01d2;
- t["ocircle"] = 0x24de;
- t["ocircumflex"] = 0x00f4;
- t["ocircumflexacute"] = 0x1ed1;
- t["ocircumflexdotbelow"] = 0x1ed9;
- t["ocircumflexgrave"] = 0x1ed3;
- t["ocircumflexhookabove"] = 0x1ed5;
- t["ocircumflextilde"] = 0x1ed7;
- t["ocyrillic"] = 0x043e;
- t["odblacute"] = 0x0151;
- t["odblgrave"] = 0x020d;
- t["odeva"] = 0x0913;
- t["odieresis"] = 0x00f6;
- t["odieresiscyrillic"] = 0x04e7;
- t["odotbelow"] = 0x1ecd;
- t["oe"] = 0x0153;
- t["oekorean"] = 0x315a;
- t["ogonek"] = 0x02db;
- t["ogonekcmb"] = 0x0328;
- t["ograve"] = 0x00f2;
- t["ogujarati"] = 0x0a93;
- t["oharmenian"] = 0x0585;
- t["ohiragana"] = 0x304a;
- t["ohookabove"] = 0x1ecf;
- t["ohorn"] = 0x01a1;
- t["ohornacute"] = 0x1edb;
- t["ohorndotbelow"] = 0x1ee3;
- t["ohorngrave"] = 0x1edd;
- t["ohornhookabove"] = 0x1edf;
- t["ohorntilde"] = 0x1ee1;
- t["ohungarumlaut"] = 0x0151;
- t["oi"] = 0x01a3;
- t["oinvertedbreve"] = 0x020f;
- t["okatakana"] = 0x30aa;
- t["okatakanahalfwidth"] = 0xff75;
- t["okorean"] = 0x3157;
- t["olehebrew"] = 0x05ab;
- t["omacron"] = 0x014d;
- t["omacronacute"] = 0x1e53;
- t["omacrongrave"] = 0x1e51;
- t["omdeva"] = 0x0950;
- t["omega"] = 0x03c9;
- t["omega1"] = 0x03d6;
- t["omegacyrillic"] = 0x0461;
- t["omegalatinclosed"] = 0x0277;
- t["omegaroundcyrillic"] = 0x047b;
- t["omegatitlocyrillic"] = 0x047d;
- t["omegatonos"] = 0x03ce;
- t["omgujarati"] = 0x0ad0;
- t["omicron"] = 0x03bf;
- t["omicrontonos"] = 0x03cc;
- t["omonospace"] = 0xff4f;
- t["one"] = 0x0031;
- t["onearabic"] = 0x0661;
- t["onebengali"] = 0x09e7;
- t["onecircle"] = 0x2460;
- t["onecircleinversesansserif"] = 0x278a;
- t["onedeva"] = 0x0967;
- t["onedotenleader"] = 0x2024;
- t["oneeighth"] = 0x215b;
- t["onefitted"] = 0xf6dc;
- t["onegujarati"] = 0x0ae7;
- t["onegurmukhi"] = 0x0a67;
- t["onehackarabic"] = 0x0661;
- t["onehalf"] = 0x00bd;
- t["onehangzhou"] = 0x3021;
- t["oneideographicparen"] = 0x3220;
- t["oneinferior"] = 0x2081;
- t["onemonospace"] = 0xff11;
- t["onenumeratorbengali"] = 0x09f4;
- t["oneoldstyle"] = 0xf731;
- t["oneparen"] = 0x2474;
- t["oneperiod"] = 0x2488;
- t["onepersian"] = 0x06f1;
- t["onequarter"] = 0x00bc;
- t["oneroman"] = 0x2170;
- t["onesuperior"] = 0x00b9;
- t["onethai"] = 0x0e51;
- t["onethird"] = 0x2153;
- t["oogonek"] = 0x01eb;
- t["oogonekmacron"] = 0x01ed;
- t["oogurmukhi"] = 0x0a13;
- t["oomatragurmukhi"] = 0x0a4b;
- t["oopen"] = 0x0254;
- t["oparen"] = 0x24aa;
- t["openbullet"] = 0x25e6;
- t["option"] = 0x2325;
- t["ordfeminine"] = 0x00aa;
- t["ordmasculine"] = 0x00ba;
- t["orthogonal"] = 0x221f;
- t["oshortdeva"] = 0x0912;
- t["oshortvowelsigndeva"] = 0x094a;
- t["oslash"] = 0x00f8;
- t["oslashacute"] = 0x01ff;
- t["osmallhiragana"] = 0x3049;
- t["osmallkatakana"] = 0x30a9;
- t["osmallkatakanahalfwidth"] = 0xff6b;
- t["ostrokeacute"] = 0x01ff;
- t["osuperior"] = 0xf6f0;
- t["otcyrillic"] = 0x047f;
- t["otilde"] = 0x00f5;
- t["otildeacute"] = 0x1e4d;
- t["otildedieresis"] = 0x1e4f;
- t["oubopomofo"] = 0x3121;
- t["overline"] = 0x203e;
- t["overlinecenterline"] = 0xfe4a;
- t["overlinecmb"] = 0x0305;
- t["overlinedashed"] = 0xfe49;
- t["overlinedblwavy"] = 0xfe4c;
- t["overlinewavy"] = 0xfe4b;
- t["overscore"] = 0x00af;
- t["ovowelsignbengali"] = 0x09cb;
- t["ovowelsigndeva"] = 0x094b;
- t["ovowelsigngujarati"] = 0x0acb;
- t["p"] = 0x0070;
- t["paampssquare"] = 0x3380;
- t["paasentosquare"] = 0x332b;
- t["pabengali"] = 0x09aa;
- t["pacute"] = 0x1e55;
- t["padeva"] = 0x092a;
- t["pagedown"] = 0x21df;
- t["pageup"] = 0x21de;
- t["pagujarati"] = 0x0aaa;
- t["pagurmukhi"] = 0x0a2a;
- t["pahiragana"] = 0x3071;
- t["paiyannoithai"] = 0x0e2f;
- t["pakatakana"] = 0x30d1;
- t["palatalizationcyrilliccmb"] = 0x0484;
- t["palochkacyrillic"] = 0x04c0;
- t["pansioskorean"] = 0x317f;
- t["paragraph"] = 0x00b6;
- t["parallel"] = 0x2225;
- t["parenleft"] = 0x0028;
- t["parenleftaltonearabic"] = 0xfd3e;
- t["parenleftbt"] = 0xf8ed;
- t["parenleftex"] = 0xf8ec;
- t["parenleftinferior"] = 0x208d;
- t["parenleftmonospace"] = 0xff08;
- t["parenleftsmall"] = 0xfe59;
- t["parenleftsuperior"] = 0x207d;
- t["parenlefttp"] = 0xf8eb;
- t["parenleftvertical"] = 0xfe35;
- t["parenright"] = 0x0029;
- t["parenrightaltonearabic"] = 0xfd3f;
- t["parenrightbt"] = 0xf8f8;
- t["parenrightex"] = 0xf8f7;
- t["parenrightinferior"] = 0x208e;
- t["parenrightmonospace"] = 0xff09;
- t["parenrightsmall"] = 0xfe5a;
- t["parenrightsuperior"] = 0x207e;
- t["parenrighttp"] = 0xf8f6;
- t["parenrightvertical"] = 0xfe36;
- t["partialdiff"] = 0x2202;
- t["paseqhebrew"] = 0x05c0;
- t["pashtahebrew"] = 0x0599;
- t["pasquare"] = 0x33a9;
- t["patah"] = 0x05b7;
- t["patah11"] = 0x05b7;
- t["patah1d"] = 0x05b7;
- t["patah2a"] = 0x05b7;
- t["patahhebrew"] = 0x05b7;
- t["patahnarrowhebrew"] = 0x05b7;
- t["patahquarterhebrew"] = 0x05b7;
- t["patahwidehebrew"] = 0x05b7;
- t["pazerhebrew"] = 0x05a1;
- t["pbopomofo"] = 0x3106;
- t["pcircle"] = 0x24df;
- t["pdotaccent"] = 0x1e57;
- t["pe"] = 0x05e4;
- t["pecyrillic"] = 0x043f;
- t["pedagesh"] = 0xfb44;
- t["pedageshhebrew"] = 0xfb44;
- t["peezisquare"] = 0x333b;
- t["pefinaldageshhebrew"] = 0xfb43;
- t["peharabic"] = 0x067e;
- t["peharmenian"] = 0x057a;
- t["pehebrew"] = 0x05e4;
- t["pehfinalarabic"] = 0xfb57;
- t["pehinitialarabic"] = 0xfb58;
- t["pehiragana"] = 0x307a;
- t["pehmedialarabic"] = 0xfb59;
- t["pekatakana"] = 0x30da;
- t["pemiddlehookcyrillic"] = 0x04a7;
- t["perafehebrew"] = 0xfb4e;
- t["percent"] = 0x0025;
- t["percentarabic"] = 0x066a;
- t["percentmonospace"] = 0xff05;
- t["percentsmall"] = 0xfe6a;
- t["period"] = 0x002e;
- t["periodarmenian"] = 0x0589;
- t["periodcentered"] = 0x00b7;
- t["periodhalfwidth"] = 0xff61;
- t["periodinferior"] = 0xf6e7;
- t["periodmonospace"] = 0xff0e;
- t["periodsmall"] = 0xfe52;
- t["periodsuperior"] = 0xf6e8;
- t["perispomenigreekcmb"] = 0x0342;
- t["perpendicular"] = 0x22a5;
- t["perthousand"] = 0x2030;
- t["peseta"] = 0x20a7;
- t["pfsquare"] = 0x338a;
- t["phabengali"] = 0x09ab;
- t["phadeva"] = 0x092b;
- t["phagujarati"] = 0x0aab;
- t["phagurmukhi"] = 0x0a2b;
- t["phi"] = 0x03c6;
- t["phi1"] = 0x03d5;
- t["phieuphacirclekorean"] = 0x327a;
- t["phieuphaparenkorean"] = 0x321a;
- t["phieuphcirclekorean"] = 0x326c;
- t["phieuphkorean"] = 0x314d;
- t["phieuphparenkorean"] = 0x320c;
- t["philatin"] = 0x0278;
- t["phinthuthai"] = 0x0e3a;
- t["phisymbolgreek"] = 0x03d5;
- t["phook"] = 0x01a5;
- t["phophanthai"] = 0x0e1e;
- t["phophungthai"] = 0x0e1c;
- t["phosamphaothai"] = 0x0e20;
- t["pi"] = 0x03c0;
- t["pieupacirclekorean"] = 0x3273;
- t["pieupaparenkorean"] = 0x3213;
- t["pieupcieuckorean"] = 0x3176;
- t["pieupcirclekorean"] = 0x3265;
- t["pieupkiyeokkorean"] = 0x3172;
- t["pieupkorean"] = 0x3142;
- t["pieupparenkorean"] = 0x3205;
- t["pieupsioskiyeokkorean"] = 0x3174;
- t["pieupsioskorean"] = 0x3144;
- t["pieupsiostikeutkorean"] = 0x3175;
- t["pieupthieuthkorean"] = 0x3177;
- t["pieuptikeutkorean"] = 0x3173;
- t["pihiragana"] = 0x3074;
- t["pikatakana"] = 0x30d4;
- t["pisymbolgreek"] = 0x03d6;
- t["piwrarmenian"] = 0x0583;
- t["plus"] = 0x002b;
- t["plusbelowcmb"] = 0x031f;
- t["pluscircle"] = 0x2295;
- t["plusminus"] = 0x00b1;
- t["plusmod"] = 0x02d6;
- t["plusmonospace"] = 0xff0b;
- t["plussmall"] = 0xfe62;
- t["plussuperior"] = 0x207a;
- t["pmonospace"] = 0xff50;
- t["pmsquare"] = 0x33d8;
- t["pohiragana"] = 0x307d;
- t["pointingindexdownwhite"] = 0x261f;
- t["pointingindexleftwhite"] = 0x261c;
- t["pointingindexrightwhite"] = 0x261e;
- t["pointingindexupwhite"] = 0x261d;
- t["pokatakana"] = 0x30dd;
- t["poplathai"] = 0x0e1b;
- t["postalmark"] = 0x3012;
- t["postalmarkface"] = 0x3020;
- t["pparen"] = 0x24ab;
- t["precedes"] = 0x227a;
- t["prescription"] = 0x211e;
- t["primemod"] = 0x02b9;
- t["primereversed"] = 0x2035;
- t["product"] = 0x220f;
- t["projective"] = 0x2305;
- t["prolongedkana"] = 0x30fc;
- t["propellor"] = 0x2318;
- t["propersubset"] = 0x2282;
- t["propersuperset"] = 0x2283;
- t["proportion"] = 0x2237;
- t["proportional"] = 0x221d;
- t["psi"] = 0x03c8;
- t["psicyrillic"] = 0x0471;
- t["psilipneumatacyrilliccmb"] = 0x0486;
- t["pssquare"] = 0x33b0;
- t["puhiragana"] = 0x3077;
- t["pukatakana"] = 0x30d7;
- t["pvsquare"] = 0x33b4;
- t["pwsquare"] = 0x33ba;
- t["q"] = 0x0071;
- t["qadeva"] = 0x0958;
- t["qadmahebrew"] = 0x05a8;
- t["qafarabic"] = 0x0642;
- t["qaffinalarabic"] = 0xfed6;
- t["qafinitialarabic"] = 0xfed7;
- t["qafmedialarabic"] = 0xfed8;
- t["qamats"] = 0x05b8;
- t["qamats10"] = 0x05b8;
- t["qamats1a"] = 0x05b8;
- t["qamats1c"] = 0x05b8;
- t["qamats27"] = 0x05b8;
- t["qamats29"] = 0x05b8;
- t["qamats33"] = 0x05b8;
- t["qamatsde"] = 0x05b8;
- t["qamatshebrew"] = 0x05b8;
- t["qamatsnarrowhebrew"] = 0x05b8;
- t["qamatsqatanhebrew"] = 0x05b8;
- t["qamatsqatannarrowhebrew"] = 0x05b8;
- t["qamatsqatanquarterhebrew"] = 0x05b8;
- t["qamatsqatanwidehebrew"] = 0x05b8;
- t["qamatsquarterhebrew"] = 0x05b8;
- t["qamatswidehebrew"] = 0x05b8;
- t["qarneyparahebrew"] = 0x059f;
- t["qbopomofo"] = 0x3111;
- t["qcircle"] = 0x24e0;
- t["qhook"] = 0x02a0;
- t["qmonospace"] = 0xff51;
- t["qof"] = 0x05e7;
- t["qofdagesh"] = 0xfb47;
- t["qofdageshhebrew"] = 0xfb47;
- t["qofhebrew"] = 0x05e7;
- t["qparen"] = 0x24ac;
- t["quarternote"] = 0x2669;
- t["qubuts"] = 0x05bb;
- t["qubuts18"] = 0x05bb;
- t["qubuts25"] = 0x05bb;
- t["qubuts31"] = 0x05bb;
- t["qubutshebrew"] = 0x05bb;
- t["qubutsnarrowhebrew"] = 0x05bb;
- t["qubutsquarterhebrew"] = 0x05bb;
- t["qubutswidehebrew"] = 0x05bb;
- t["question"] = 0x003f;
- t["questionarabic"] = 0x061f;
- t["questionarmenian"] = 0x055e;
- t["questiondown"] = 0x00bf;
- t["questiondownsmall"] = 0xf7bf;
- t["questiongreek"] = 0x037e;
- t["questionmonospace"] = 0xff1f;
- t["questionsmall"] = 0xf73f;
- t["quotedbl"] = 0x0022;
- t["quotedblbase"] = 0x201e;
- t["quotedblleft"] = 0x201c;
- t["quotedblmonospace"] = 0xff02;
- t["quotedblprime"] = 0x301e;
- t["quotedblprimereversed"] = 0x301d;
- t["quotedblright"] = 0x201d;
- t["quoteleft"] = 0x2018;
- t["quoteleftreversed"] = 0x201b;
- t["quotereversed"] = 0x201b;
- t["quoteright"] = 0x2019;
- t["quoterightn"] = 0x0149;
- t["quotesinglbase"] = 0x201a;
- t["quotesingle"] = 0x0027;
- t["quotesinglemonospace"] = 0xff07;
- t["r"] = 0x0072;
- t["raarmenian"] = 0x057c;
- t["rabengali"] = 0x09b0;
- t["racute"] = 0x0155;
- t["radeva"] = 0x0930;
- t["radical"] = 0x221a;
- t["radicalex"] = 0xf8e5;
- t["radoverssquare"] = 0x33ae;
- t["radoverssquaredsquare"] = 0x33af;
- t["radsquare"] = 0x33ad;
- t["rafe"] = 0x05bf;
- t["rafehebrew"] = 0x05bf;
- t["ragujarati"] = 0x0ab0;
- t["ragurmukhi"] = 0x0a30;
- t["rahiragana"] = 0x3089;
- t["rakatakana"] = 0x30e9;
- t["rakatakanahalfwidth"] = 0xff97;
- t["ralowerdiagonalbengali"] = 0x09f1;
- t["ramiddlediagonalbengali"] = 0x09f0;
- t["ramshorn"] = 0x0264;
- t["ratio"] = 0x2236;
- t["rbopomofo"] = 0x3116;
- t["rcaron"] = 0x0159;
- t["rcedilla"] = 0x0157;
- t["rcircle"] = 0x24e1;
- t["rcommaaccent"] = 0x0157;
- t["rdblgrave"] = 0x0211;
- t["rdotaccent"] = 0x1e59;
- t["rdotbelow"] = 0x1e5b;
- t["rdotbelowmacron"] = 0x1e5d;
- t["referencemark"] = 0x203b;
- t["reflexsubset"] = 0x2286;
- t["reflexsuperset"] = 0x2287;
- t["registered"] = 0x00ae;
- t["registersans"] = 0xf8e8;
- t["registerserif"] = 0xf6da;
- t["reharabic"] = 0x0631;
- t["reharmenian"] = 0x0580;
- t["rehfinalarabic"] = 0xfeae;
- t["rehiragana"] = 0x308c;
- t["rekatakana"] = 0x30ec;
- t["rekatakanahalfwidth"] = 0xff9a;
- t["resh"] = 0x05e8;
- t["reshdageshhebrew"] = 0xfb48;
- t["reshhebrew"] = 0x05e8;
- t["reversedtilde"] = 0x223d;
- t["reviahebrew"] = 0x0597;
- t["reviamugrashhebrew"] = 0x0597;
- t["revlogicalnot"] = 0x2310;
- t["rfishhook"] = 0x027e;
- t["rfishhookreversed"] = 0x027f;
- t["rhabengali"] = 0x09dd;
- t["rhadeva"] = 0x095d;
- t["rho"] = 0x03c1;
- t["rhook"] = 0x027d;
- t["rhookturned"] = 0x027b;
- t["rhookturnedsuperior"] = 0x02b5;
- t["rhosymbolgreek"] = 0x03f1;
- t["rhotichookmod"] = 0x02de;
- t["rieulacirclekorean"] = 0x3271;
- t["rieulaparenkorean"] = 0x3211;
- t["rieulcirclekorean"] = 0x3263;
- t["rieulhieuhkorean"] = 0x3140;
- t["rieulkiyeokkorean"] = 0x313a;
- t["rieulkiyeoksioskorean"] = 0x3169;
- t["rieulkorean"] = 0x3139;
- t["rieulmieumkorean"] = 0x313b;
- t["rieulpansioskorean"] = 0x316c;
- t["rieulparenkorean"] = 0x3203;
- t["rieulphieuphkorean"] = 0x313f;
- t["rieulpieupkorean"] = 0x313c;
- t["rieulpieupsioskorean"] = 0x316b;
- t["rieulsioskorean"] = 0x313d;
- t["rieulthieuthkorean"] = 0x313e;
- t["rieultikeutkorean"] = 0x316a;
- t["rieulyeorinhieuhkorean"] = 0x316d;
- t["rightangle"] = 0x221f;
- t["righttackbelowcmb"] = 0x0319;
- t["righttriangle"] = 0x22bf;
- t["rihiragana"] = 0x308a;
- t["rikatakana"] = 0x30ea;
- t["rikatakanahalfwidth"] = 0xff98;
- t["ring"] = 0x02da;
- t["ringbelowcmb"] = 0x0325;
- t["ringcmb"] = 0x030a;
- t["ringhalfleft"] = 0x02bf;
- t["ringhalfleftarmenian"] = 0x0559;
- t["ringhalfleftbelowcmb"] = 0x031c;
- t["ringhalfleftcentered"] = 0x02d3;
- t["ringhalfright"] = 0x02be;
- t["ringhalfrightbelowcmb"] = 0x0339;
- t["ringhalfrightcentered"] = 0x02d2;
- t["rinvertedbreve"] = 0x0213;
- t["rittorusquare"] = 0x3351;
- t["rlinebelow"] = 0x1e5f;
- t["rlongleg"] = 0x027c;
- t["rlonglegturned"] = 0x027a;
- t["rmonospace"] = 0xff52;
- t["rohiragana"] = 0x308d;
- t["rokatakana"] = 0x30ed;
- t["rokatakanahalfwidth"] = 0xff9b;
- t["roruathai"] = 0x0e23;
- t["rparen"] = 0x24ad;
- t["rrabengali"] = 0x09dc;
- t["rradeva"] = 0x0931;
- t["rragurmukhi"] = 0x0a5c;
- t["rreharabic"] = 0x0691;
- t["rrehfinalarabic"] = 0xfb8d;
- t["rrvocalicbengali"] = 0x09e0;
- t["rrvocalicdeva"] = 0x0960;
- t["rrvocalicgujarati"] = 0x0ae0;
- t["rrvocalicvowelsignbengali"] = 0x09c4;
- t["rrvocalicvowelsigndeva"] = 0x0944;
- t["rrvocalicvowelsigngujarati"] = 0x0ac4;
- t["rsuperior"] = 0xf6f1;
- t["rtblock"] = 0x2590;
- t["rturned"] = 0x0279;
- t["rturnedsuperior"] = 0x02b4;
- t["ruhiragana"] = 0x308b;
- t["rukatakana"] = 0x30eb;
- t["rukatakanahalfwidth"] = 0xff99;
- t["rupeemarkbengali"] = 0x09f2;
- t["rupeesignbengali"] = 0x09f3;
- t["rupiah"] = 0xf6dd;
- t["ruthai"] = 0x0e24;
- t["rvocalicbengali"] = 0x098b;
- t["rvocalicdeva"] = 0x090b;
- t["rvocalicgujarati"] = 0x0a8b;
- t["rvocalicvowelsignbengali"] = 0x09c3;
- t["rvocalicvowelsigndeva"] = 0x0943;
- t["rvocalicvowelsigngujarati"] = 0x0ac3;
- t["s"] = 0x0073;
- t["sabengali"] = 0x09b8;
- t["sacute"] = 0x015b;
- t["sacutedotaccent"] = 0x1e65;
- t["sadarabic"] = 0x0635;
- t["sadeva"] = 0x0938;
- t["sadfinalarabic"] = 0xfeba;
- t["sadinitialarabic"] = 0xfebb;
- t["sadmedialarabic"] = 0xfebc;
- t["sagujarati"] = 0x0ab8;
- t["sagurmukhi"] = 0x0a38;
- t["sahiragana"] = 0x3055;
- t["sakatakana"] = 0x30b5;
- t["sakatakanahalfwidth"] = 0xff7b;
- t["sallallahoualayhewasallamarabic"] = 0xfdfa;
- t["samekh"] = 0x05e1;
- t["samekhdagesh"] = 0xfb41;
- t["samekhdageshhebrew"] = 0xfb41;
- t["samekhhebrew"] = 0x05e1;
- t["saraaathai"] = 0x0e32;
- t["saraaethai"] = 0x0e41;
- t["saraaimaimalaithai"] = 0x0e44;
- t["saraaimaimuanthai"] = 0x0e43;
- t["saraamthai"] = 0x0e33;
- t["saraathai"] = 0x0e30;
- t["saraethai"] = 0x0e40;
- t["saraiileftthai"] = 0xf886;
- t["saraiithai"] = 0x0e35;
- t["saraileftthai"] = 0xf885;
- t["saraithai"] = 0x0e34;
- t["saraothai"] = 0x0e42;
- t["saraueeleftthai"] = 0xf888;
- t["saraueethai"] = 0x0e37;
- t["saraueleftthai"] = 0xf887;
- t["sarauethai"] = 0x0e36;
- t["sarauthai"] = 0x0e38;
- t["sarauuthai"] = 0x0e39;
- t["sbopomofo"] = 0x3119;
- t["scaron"] = 0x0161;
- t["scarondotaccent"] = 0x1e67;
- t["scedilla"] = 0x015f;
- t["schwa"] = 0x0259;
- t["schwacyrillic"] = 0x04d9;
- t["schwadieresiscyrillic"] = 0x04db;
- t["schwahook"] = 0x025a;
- t["scircle"] = 0x24e2;
- t["scircumflex"] = 0x015d;
- t["scommaaccent"] = 0x0219;
- t["sdotaccent"] = 0x1e61;
- t["sdotbelow"] = 0x1e63;
- t["sdotbelowdotaccent"] = 0x1e69;
- t["seagullbelowcmb"] = 0x033c;
- t["second"] = 0x2033;
- t["secondtonechinese"] = 0x02ca;
- t["section"] = 0x00a7;
- t["seenarabic"] = 0x0633;
- t["seenfinalarabic"] = 0xfeb2;
- t["seeninitialarabic"] = 0xfeb3;
- t["seenmedialarabic"] = 0xfeb4;
- t["segol"] = 0x05b6;
- t["segol13"] = 0x05b6;
- t["segol1f"] = 0x05b6;
- t["segol2c"] = 0x05b6;
- t["segolhebrew"] = 0x05b6;
- t["segolnarrowhebrew"] = 0x05b6;
- t["segolquarterhebrew"] = 0x05b6;
- t["segoltahebrew"] = 0x0592;
- t["segolwidehebrew"] = 0x05b6;
- t["seharmenian"] = 0x057d;
- t["sehiragana"] = 0x305b;
- t["sekatakana"] = 0x30bb;
- t["sekatakanahalfwidth"] = 0xff7e;
- t["semicolon"] = 0x003b;
- t["semicolonarabic"] = 0x061b;
- t["semicolonmonospace"] = 0xff1b;
- t["semicolonsmall"] = 0xfe54;
- t["semivoicedmarkkana"] = 0x309c;
- t["semivoicedmarkkanahalfwidth"] = 0xff9f;
- t["sentisquare"] = 0x3322;
- t["sentosquare"] = 0x3323;
- t["seven"] = 0x0037;
- t["sevenarabic"] = 0x0667;
- t["sevenbengali"] = 0x09ed;
- t["sevencircle"] = 0x2466;
- t["sevencircleinversesansserif"] = 0x2790;
- t["sevendeva"] = 0x096d;
- t["seveneighths"] = 0x215e;
- t["sevengujarati"] = 0x0aed;
- t["sevengurmukhi"] = 0x0a6d;
- t["sevenhackarabic"] = 0x0667;
- t["sevenhangzhou"] = 0x3027;
- t["sevenideographicparen"] = 0x3226;
- t["seveninferior"] = 0x2087;
- t["sevenmonospace"] = 0xff17;
- t["sevenoldstyle"] = 0xf737;
- t["sevenparen"] = 0x247a;
- t["sevenperiod"] = 0x248e;
- t["sevenpersian"] = 0x06f7;
- t["sevenroman"] = 0x2176;
- t["sevensuperior"] = 0x2077;
- t["seventeencircle"] = 0x2470;
- t["seventeenparen"] = 0x2484;
- t["seventeenperiod"] = 0x2498;
- t["seventhai"] = 0x0e57;
- t["sfthyphen"] = 0x00ad;
- t["shaarmenian"] = 0x0577;
- t["shabengali"] = 0x09b6;
- t["shacyrillic"] = 0x0448;
- t["shaddaarabic"] = 0x0651;
- t["shaddadammaarabic"] = 0xfc61;
- t["shaddadammatanarabic"] = 0xfc5e;
- t["shaddafathaarabic"] = 0xfc60;
- t["shaddakasraarabic"] = 0xfc62;
- t["shaddakasratanarabic"] = 0xfc5f;
- t["shade"] = 0x2592;
- t["shadedark"] = 0x2593;
- t["shadelight"] = 0x2591;
- t["shademedium"] = 0x2592;
- t["shadeva"] = 0x0936;
- t["shagujarati"] = 0x0ab6;
- t["shagurmukhi"] = 0x0a36;
- t["shalshelethebrew"] = 0x0593;
- t["shbopomofo"] = 0x3115;
- t["shchacyrillic"] = 0x0449;
- t["sheenarabic"] = 0x0634;
- t["sheenfinalarabic"] = 0xfeb6;
- t["sheeninitialarabic"] = 0xfeb7;
- t["sheenmedialarabic"] = 0xfeb8;
- t["sheicoptic"] = 0x03e3;
- t["sheqel"] = 0x20aa;
- t["sheqelhebrew"] = 0x20aa;
- t["sheva"] = 0x05b0;
- t["sheva115"] = 0x05b0;
- t["sheva15"] = 0x05b0;
- t["sheva22"] = 0x05b0;
- t["sheva2e"] = 0x05b0;
- t["shevahebrew"] = 0x05b0;
- t["shevanarrowhebrew"] = 0x05b0;
- t["shevaquarterhebrew"] = 0x05b0;
- t["shevawidehebrew"] = 0x05b0;
- t["shhacyrillic"] = 0x04bb;
- t["shimacoptic"] = 0x03ed;
- t["shin"] = 0x05e9;
- t["shindagesh"] = 0xfb49;
- t["shindageshhebrew"] = 0xfb49;
- t["shindageshshindot"] = 0xfb2c;
- t["shindageshshindothebrew"] = 0xfb2c;
- t["shindageshsindot"] = 0xfb2d;
- t["shindageshsindothebrew"] = 0xfb2d;
- t["shindothebrew"] = 0x05c1;
- t["shinhebrew"] = 0x05e9;
- t["shinshindot"] = 0xfb2a;
- t["shinshindothebrew"] = 0xfb2a;
- t["shinsindot"] = 0xfb2b;
- t["shinsindothebrew"] = 0xfb2b;
- t["shook"] = 0x0282;
- t["sigma"] = 0x03c3;
- t["sigma1"] = 0x03c2;
- t["sigmafinal"] = 0x03c2;
- t["sigmalunatesymbolgreek"] = 0x03f2;
- t["sihiragana"] = 0x3057;
- t["sikatakana"] = 0x30b7;
- t["sikatakanahalfwidth"] = 0xff7c;
- t["siluqhebrew"] = 0x05bd;
- t["siluqlefthebrew"] = 0x05bd;
- t["similar"] = 0x223c;
- t["sindothebrew"] = 0x05c2;
- t["siosacirclekorean"] = 0x3274;
- t["siosaparenkorean"] = 0x3214;
- t["sioscieuckorean"] = 0x317e;
- t["sioscirclekorean"] = 0x3266;
- t["sioskiyeokkorean"] = 0x317a;
- t["sioskorean"] = 0x3145;
- t["siosnieunkorean"] = 0x317b;
- t["siosparenkorean"] = 0x3206;
- t["siospieupkorean"] = 0x317d;
- t["siostikeutkorean"] = 0x317c;
- t["six"] = 0x0036;
- t["sixarabic"] = 0x0666;
- t["sixbengali"] = 0x09ec;
- t["sixcircle"] = 0x2465;
- t["sixcircleinversesansserif"] = 0x278f;
- t["sixdeva"] = 0x096c;
- t["sixgujarati"] = 0x0aec;
- t["sixgurmukhi"] = 0x0a6c;
- t["sixhackarabic"] = 0x0666;
- t["sixhangzhou"] = 0x3026;
- t["sixideographicparen"] = 0x3225;
- t["sixinferior"] = 0x2086;
- t["sixmonospace"] = 0xff16;
- t["sixoldstyle"] = 0xf736;
- t["sixparen"] = 0x2479;
- t["sixperiod"] = 0x248d;
- t["sixpersian"] = 0x06f6;
- t["sixroman"] = 0x2175;
- t["sixsuperior"] = 0x2076;
- t["sixteencircle"] = 0x246f;
- t["sixteencurrencydenominatorbengali"] = 0x09f9;
- t["sixteenparen"] = 0x2483;
- t["sixteenperiod"] = 0x2497;
- t["sixthai"] = 0x0e56;
- t["slash"] = 0x002f;
- t["slashmonospace"] = 0xff0f;
- t["slong"] = 0x017f;
- t["slongdotaccent"] = 0x1e9b;
- t["smileface"] = 0x263a;
- t["smonospace"] = 0xff53;
- t["sofpasuqhebrew"] = 0x05c3;
- t["softhyphen"] = 0x00ad;
- t["softsigncyrillic"] = 0x044c;
- t["sohiragana"] = 0x305d;
- t["sokatakana"] = 0x30bd;
- t["sokatakanahalfwidth"] = 0xff7f;
- t["soliduslongoverlaycmb"] = 0x0338;
- t["solidusshortoverlaycmb"] = 0x0337;
- t["sorusithai"] = 0x0e29;
- t["sosalathai"] = 0x0e28;
- t["sosothai"] = 0x0e0b;
- t["sosuathai"] = 0x0e2a;
- t["space"] = 0x0020;
- t["spacehackarabic"] = 0x0020;
- t["spade"] = 0x2660;
- t["spadesuitblack"] = 0x2660;
- t["spadesuitwhite"] = 0x2664;
- t["sparen"] = 0x24ae;
- t["squarebelowcmb"] = 0x033b;
- t["squarecc"] = 0x33c4;
- t["squarecm"] = 0x339d;
- t["squarediagonalcrosshatchfill"] = 0x25a9;
- t["squarehorizontalfill"] = 0x25a4;
- t["squarekg"] = 0x338f;
- t["squarekm"] = 0x339e;
- t["squarekmcapital"] = 0x33ce;
- t["squareln"] = 0x33d1;
- t["squarelog"] = 0x33d2;
- t["squaremg"] = 0x338e;
- t["squaremil"] = 0x33d5;
- t["squaremm"] = 0x339c;
- t["squaremsquared"] = 0x33a1;
- t["squareorthogonalcrosshatchfill"] = 0x25a6;
- t["squareupperlefttolowerrightfill"] = 0x25a7;
- t["squareupperrighttolowerleftfill"] = 0x25a8;
- t["squareverticalfill"] = 0x25a5;
- t["squarewhitewithsmallblack"] = 0x25a3;
- t["srsquare"] = 0x33db;
- t["ssabengali"] = 0x09b7;
- t["ssadeva"] = 0x0937;
- t["ssagujarati"] = 0x0ab7;
- t["ssangcieuckorean"] = 0x3149;
- t["ssanghieuhkorean"] = 0x3185;
- t["ssangieungkorean"] = 0x3180;
- t["ssangkiyeokkorean"] = 0x3132;
- t["ssangnieunkorean"] = 0x3165;
- t["ssangpieupkorean"] = 0x3143;
- t["ssangsioskorean"] = 0x3146;
- t["ssangtikeutkorean"] = 0x3138;
- t["ssuperior"] = 0xf6f2;
- t["sterling"] = 0x00a3;
- t["sterlingmonospace"] = 0xffe1;
- t["strokelongoverlaycmb"] = 0x0336;
- t["strokeshortoverlaycmb"] = 0x0335;
- t["subset"] = 0x2282;
- t["subsetnotequal"] = 0x228a;
- t["subsetorequal"] = 0x2286;
- t["succeeds"] = 0x227b;
- t["suchthat"] = 0x220b;
- t["suhiragana"] = 0x3059;
- t["sukatakana"] = 0x30b9;
- t["sukatakanahalfwidth"] = 0xff7d;
- t["sukunarabic"] = 0x0652;
- t["summation"] = 0x2211;
- t["sun"] = 0x263c;
- t["superset"] = 0x2283;
- t["supersetnotequal"] = 0x228b;
- t["supersetorequal"] = 0x2287;
- t["svsquare"] = 0x33dc;
- t["syouwaerasquare"] = 0x337c;
- t["t"] = 0x0074;
- t["tabengali"] = 0x09a4;
- t["tackdown"] = 0x22a4;
- t["tackleft"] = 0x22a3;
- t["tadeva"] = 0x0924;
- t["tagujarati"] = 0x0aa4;
- t["tagurmukhi"] = 0x0a24;
- t["taharabic"] = 0x0637;
- t["tahfinalarabic"] = 0xfec2;
- t["tahinitialarabic"] = 0xfec3;
- t["tahiragana"] = 0x305f;
- t["tahmedialarabic"] = 0xfec4;
- t["taisyouerasquare"] = 0x337d;
- t["takatakana"] = 0x30bf;
- t["takatakanahalfwidth"] = 0xff80;
- t["tatweelarabic"] = 0x0640;
- t["tau"] = 0x03c4;
- t["tav"] = 0x05ea;
- t["tavdages"] = 0xfb4a;
- t["tavdagesh"] = 0xfb4a;
- t["tavdageshhebrew"] = 0xfb4a;
- t["tavhebrew"] = 0x05ea;
- t["tbar"] = 0x0167;
- t["tbopomofo"] = 0x310a;
- t["tcaron"] = 0x0165;
- t["tccurl"] = 0x02a8;
- t["tcedilla"] = 0x0163;
- t["tcheharabic"] = 0x0686;
- t["tchehfinalarabic"] = 0xfb7b;
- t["tchehinitialarabic"] = 0xfb7c;
- t["tchehmedialarabic"] = 0xfb7d;
- t["tcircle"] = 0x24e3;
- t["tcircumflexbelow"] = 0x1e71;
- t["tcommaaccent"] = 0x0163;
- t["tdieresis"] = 0x1e97;
- t["tdotaccent"] = 0x1e6b;
- t["tdotbelow"] = 0x1e6d;
- t["tecyrillic"] = 0x0442;
- t["tedescendercyrillic"] = 0x04ad;
- t["teharabic"] = 0x062a;
- t["tehfinalarabic"] = 0xfe96;
- t["tehhahinitialarabic"] = 0xfca2;
- t["tehhahisolatedarabic"] = 0xfc0c;
- t["tehinitialarabic"] = 0xfe97;
- t["tehiragana"] = 0x3066;
- t["tehjeeminitialarabic"] = 0xfca1;
- t["tehjeemisolatedarabic"] = 0xfc0b;
- t["tehmarbutaarabic"] = 0x0629;
- t["tehmarbutafinalarabic"] = 0xfe94;
- t["tehmedialarabic"] = 0xfe98;
- t["tehmeeminitialarabic"] = 0xfca4;
- t["tehmeemisolatedarabic"] = 0xfc0e;
- t["tehnoonfinalarabic"] = 0xfc73;
- t["tekatakana"] = 0x30c6;
- t["tekatakanahalfwidth"] = 0xff83;
- t["telephone"] = 0x2121;
- t["telephoneblack"] = 0x260e;
- t["telishagedolahebrew"] = 0x05a0;
- t["telishaqetanahebrew"] = 0x05a9;
- t["tencircle"] = 0x2469;
- t["tenideographicparen"] = 0x3229;
- t["tenparen"] = 0x247d;
- t["tenperiod"] = 0x2491;
- t["tenroman"] = 0x2179;
- t["tesh"] = 0x02a7;
- t["tet"] = 0x05d8;
- t["tetdagesh"] = 0xfb38;
- t["tetdageshhebrew"] = 0xfb38;
- t["tethebrew"] = 0x05d8;
- t["tetsecyrillic"] = 0x04b5;
- t["tevirhebrew"] = 0x059b;
- t["tevirlefthebrew"] = 0x059b;
- t["thabengali"] = 0x09a5;
- t["thadeva"] = 0x0925;
- t["thagujarati"] = 0x0aa5;
- t["thagurmukhi"] = 0x0a25;
- t["thalarabic"] = 0x0630;
- t["thalfinalarabic"] = 0xfeac;
- t["thanthakhatlowleftthai"] = 0xf898;
- t["thanthakhatlowrightthai"] = 0xf897;
- t["thanthakhatthai"] = 0x0e4c;
- t["thanthakhatupperleftthai"] = 0xf896;
- t["theharabic"] = 0x062b;
- t["thehfinalarabic"] = 0xfe9a;
- t["thehinitialarabic"] = 0xfe9b;
- t["thehmedialarabic"] = 0xfe9c;
- t["thereexists"] = 0x2203;
- t["therefore"] = 0x2234;
- t["theta"] = 0x03b8;
- t["theta1"] = 0x03d1;
- t["thetasymbolgreek"] = 0x03d1;
- t["thieuthacirclekorean"] = 0x3279;
- t["thieuthaparenkorean"] = 0x3219;
- t["thieuthcirclekorean"] = 0x326b;
- t["thieuthkorean"] = 0x314c;
- t["thieuthparenkorean"] = 0x320b;
- t["thirteencircle"] = 0x246c;
- t["thirteenparen"] = 0x2480;
- t["thirteenperiod"] = 0x2494;
- t["thonangmonthothai"] = 0x0e11;
- t["thook"] = 0x01ad;
- t["thophuthaothai"] = 0x0e12;
- t["thorn"] = 0x00fe;
- t["thothahanthai"] = 0x0e17;
- t["thothanthai"] = 0x0e10;
- t["thothongthai"] = 0x0e18;
- t["thothungthai"] = 0x0e16;
- t["thousandcyrillic"] = 0x0482;
- t["thousandsseparatorarabic"] = 0x066c;
- t["thousandsseparatorpersian"] = 0x066c;
- t["three"] = 0x0033;
- t["threearabic"] = 0x0663;
- t["threebengali"] = 0x09e9;
- t["threecircle"] = 0x2462;
- t["threecircleinversesansserif"] = 0x278c;
- t["threedeva"] = 0x0969;
- t["threeeighths"] = 0x215c;
- t["threegujarati"] = 0x0ae9;
- t["threegurmukhi"] = 0x0a69;
- t["threehackarabic"] = 0x0663;
- t["threehangzhou"] = 0x3023;
- t["threeideographicparen"] = 0x3222;
- t["threeinferior"] = 0x2083;
- t["threemonospace"] = 0xff13;
- t["threenumeratorbengali"] = 0x09f6;
- t["threeoldstyle"] = 0xf733;
- t["threeparen"] = 0x2476;
- t["threeperiod"] = 0x248a;
- t["threepersian"] = 0x06f3;
- t["threequarters"] = 0x00be;
- t["threequartersemdash"] = 0xf6de;
- t["threeroman"] = 0x2172;
- t["threesuperior"] = 0x00b3;
- t["threethai"] = 0x0e53;
- t["thzsquare"] = 0x3394;
- t["tihiragana"] = 0x3061;
- t["tikatakana"] = 0x30c1;
- t["tikatakanahalfwidth"] = 0xff81;
- t["tikeutacirclekorean"] = 0x3270;
- t["tikeutaparenkorean"] = 0x3210;
- t["tikeutcirclekorean"] = 0x3262;
- t["tikeutkorean"] = 0x3137;
- t["tikeutparenkorean"] = 0x3202;
- t["tilde"] = 0x02dc;
- t["tildebelowcmb"] = 0x0330;
- t["tildecmb"] = 0x0303;
- t["tildecomb"] = 0x0303;
- t["tildedoublecmb"] = 0x0360;
- t["tildeoperator"] = 0x223c;
- t["tildeoverlaycmb"] = 0x0334;
- t["tildeverticalcmb"] = 0x033e;
- t["timescircle"] = 0x2297;
- t["tipehahebrew"] = 0x0596;
- t["tipehalefthebrew"] = 0x0596;
- t["tippigurmukhi"] = 0x0a70;
- t["titlocyrilliccmb"] = 0x0483;
- t["tiwnarmenian"] = 0x057f;
- t["tlinebelow"] = 0x1e6f;
- t["tmonospace"] = 0xff54;
- t["toarmenian"] = 0x0569;
- t["tohiragana"] = 0x3068;
- t["tokatakana"] = 0x30c8;
- t["tokatakanahalfwidth"] = 0xff84;
- t["tonebarextrahighmod"] = 0x02e5;
- t["tonebarextralowmod"] = 0x02e9;
- t["tonebarhighmod"] = 0x02e6;
- t["tonebarlowmod"] = 0x02e8;
- t["tonebarmidmod"] = 0x02e7;
- t["tonefive"] = 0x01bd;
- t["tonesix"] = 0x0185;
- t["tonetwo"] = 0x01a8;
- t["tonos"] = 0x0384;
- t["tonsquare"] = 0x3327;
- t["topatakthai"] = 0x0e0f;
- t["tortoiseshellbracketleft"] = 0x3014;
- t["tortoiseshellbracketleftsmall"] = 0xfe5d;
- t["tortoiseshellbracketleftvertical"] = 0xfe39;
- t["tortoiseshellbracketright"] = 0x3015;
- t["tortoiseshellbracketrightsmall"] = 0xfe5e;
- t["tortoiseshellbracketrightvertical"] = 0xfe3a;
- t["totaothai"] = 0x0e15;
- t["tpalatalhook"] = 0x01ab;
- t["tparen"] = 0x24af;
- t["trademark"] = 0x2122;
- t["trademarksans"] = 0xf8ea;
- t["trademarkserif"] = 0xf6db;
- t["tretroflexhook"] = 0x0288;
- t["triagdn"] = 0x25bc;
- t["triaglf"] = 0x25c4;
- t["triagrt"] = 0x25ba;
- t["triagup"] = 0x25b2;
- t["ts"] = 0x02a6;
- t["tsadi"] = 0x05e6;
- t["tsadidagesh"] = 0xfb46;
- t["tsadidageshhebrew"] = 0xfb46;
- t["tsadihebrew"] = 0x05e6;
- t["tsecyrillic"] = 0x0446;
- t["tsere"] = 0x05b5;
- t["tsere12"] = 0x05b5;
- t["tsere1e"] = 0x05b5;
- t["tsere2b"] = 0x05b5;
- t["tserehebrew"] = 0x05b5;
- t["tserenarrowhebrew"] = 0x05b5;
- t["tserequarterhebrew"] = 0x05b5;
- t["tserewidehebrew"] = 0x05b5;
- t["tshecyrillic"] = 0x045b;
- t["tsuperior"] = 0xf6f3;
- t["ttabengali"] = 0x099f;
- t["ttadeva"] = 0x091f;
- t["ttagujarati"] = 0x0a9f;
- t["ttagurmukhi"] = 0x0a1f;
- t["tteharabic"] = 0x0679;
- t["ttehfinalarabic"] = 0xfb67;
- t["ttehinitialarabic"] = 0xfb68;
- t["ttehmedialarabic"] = 0xfb69;
- t["tthabengali"] = 0x09a0;
- t["tthadeva"] = 0x0920;
- t["tthagujarati"] = 0x0aa0;
- t["tthagurmukhi"] = 0x0a20;
- t["tturned"] = 0x0287;
- t["tuhiragana"] = 0x3064;
- t["tukatakana"] = 0x30c4;
- t["tukatakanahalfwidth"] = 0xff82;
- t["tusmallhiragana"] = 0x3063;
- t["tusmallkatakana"] = 0x30c3;
- t["tusmallkatakanahalfwidth"] = 0xff6f;
- t["twelvecircle"] = 0x246b;
- t["twelveparen"] = 0x247f;
- t["twelveperiod"] = 0x2493;
- t["twelveroman"] = 0x217b;
- t["twentycircle"] = 0x2473;
- t["twentyhangzhou"] = 0x5344;
- t["twentyparen"] = 0x2487;
- t["twentyperiod"] = 0x249b;
- t["two"] = 0x0032;
- t["twoarabic"] = 0x0662;
- t["twobengali"] = 0x09e8;
- t["twocircle"] = 0x2461;
- t["twocircleinversesansserif"] = 0x278b;
- t["twodeva"] = 0x0968;
- t["twodotenleader"] = 0x2025;
- t["twodotleader"] = 0x2025;
- t["twodotleadervertical"] = 0xfe30;
- t["twogujarati"] = 0x0ae8;
- t["twogurmukhi"] = 0x0a68;
- t["twohackarabic"] = 0x0662;
- t["twohangzhou"] = 0x3022;
- t["twoideographicparen"] = 0x3221;
- t["twoinferior"] = 0x2082;
- t["twomonospace"] = 0xff12;
- t["twonumeratorbengali"] = 0x09f5;
- t["twooldstyle"] = 0xf732;
- t["twoparen"] = 0x2475;
- t["twoperiod"] = 0x2489;
- t["twopersian"] = 0x06f2;
- t["tworoman"] = 0x2171;
- t["twostroke"] = 0x01bb;
- t["twosuperior"] = 0x00b2;
- t["twothai"] = 0x0e52;
- t["twothirds"] = 0x2154;
- t["u"] = 0x0075;
- t["uacute"] = 0x00fa;
- t["ubar"] = 0x0289;
- t["ubengali"] = 0x0989;
- t["ubopomofo"] = 0x3128;
- t["ubreve"] = 0x016d;
- t["ucaron"] = 0x01d4;
- t["ucircle"] = 0x24e4;
- t["ucircumflex"] = 0x00fb;
- t["ucircumflexbelow"] = 0x1e77;
- t["ucyrillic"] = 0x0443;
- t["udattadeva"] = 0x0951;
- t["udblacute"] = 0x0171;
- t["udblgrave"] = 0x0215;
- t["udeva"] = 0x0909;
- t["udieresis"] = 0x00fc;
- t["udieresisacute"] = 0x01d8;
- t["udieresisbelow"] = 0x1e73;
- t["udieresiscaron"] = 0x01da;
- t["udieresiscyrillic"] = 0x04f1;
- t["udieresisgrave"] = 0x01dc;
- t["udieresismacron"] = 0x01d6;
- t["udotbelow"] = 0x1ee5;
- t["ugrave"] = 0x00f9;
- t["ugujarati"] = 0x0a89;
- t["ugurmukhi"] = 0x0a09;
- t["uhiragana"] = 0x3046;
- t["uhookabove"] = 0x1ee7;
- t["uhorn"] = 0x01b0;
- t["uhornacute"] = 0x1ee9;
- t["uhorndotbelow"] = 0x1ef1;
- t["uhorngrave"] = 0x1eeb;
- t["uhornhookabove"] = 0x1eed;
- t["uhorntilde"] = 0x1eef;
- t["uhungarumlaut"] = 0x0171;
- t["uhungarumlautcyrillic"] = 0x04f3;
- t["uinvertedbreve"] = 0x0217;
- t["ukatakana"] = 0x30a6;
- t["ukatakanahalfwidth"] = 0xff73;
- t["ukcyrillic"] = 0x0479;
- t["ukorean"] = 0x315c;
- t["umacron"] = 0x016b;
- t["umacroncyrillic"] = 0x04ef;
- t["umacrondieresis"] = 0x1e7b;
- t["umatragurmukhi"] = 0x0a41;
- t["umonospace"] = 0xff55;
- t["underscore"] = 0x005f;
- t["underscoredbl"] = 0x2017;
- t["underscoremonospace"] = 0xff3f;
- t["underscorevertical"] = 0xfe33;
- t["underscorewavy"] = 0xfe4f;
- t["union"] = 0x222a;
- t["universal"] = 0x2200;
- t["uogonek"] = 0x0173;
- t["uparen"] = 0x24b0;
- t["upblock"] = 0x2580;
- t["upperdothebrew"] = 0x05c4;
- t["upsilon"] = 0x03c5;
- t["upsilondieresis"] = 0x03cb;
- t["upsilondieresistonos"] = 0x03b0;
- t["upsilonlatin"] = 0x028a;
- t["upsilontonos"] = 0x03cd;
- t["uptackbelowcmb"] = 0x031d;
- t["uptackmod"] = 0x02d4;
- t["uragurmukhi"] = 0x0a73;
- t["uring"] = 0x016f;
- t["ushortcyrillic"] = 0x045e;
- t["usmallhiragana"] = 0x3045;
- t["usmallkatakana"] = 0x30a5;
- t["usmallkatakanahalfwidth"] = 0xff69;
- t["ustraightcyrillic"] = 0x04af;
- t["ustraightstrokecyrillic"] = 0x04b1;
- t["utilde"] = 0x0169;
- t["utildeacute"] = 0x1e79;
- t["utildebelow"] = 0x1e75;
- t["uubengali"] = 0x098a;
- t["uudeva"] = 0x090a;
- t["uugujarati"] = 0x0a8a;
- t["uugurmukhi"] = 0x0a0a;
- t["uumatragurmukhi"] = 0x0a42;
- t["uuvowelsignbengali"] = 0x09c2;
- t["uuvowelsigndeva"] = 0x0942;
- t["uuvowelsigngujarati"] = 0x0ac2;
- t["uvowelsignbengali"] = 0x09c1;
- t["uvowelsigndeva"] = 0x0941;
- t["uvowelsigngujarati"] = 0x0ac1;
- t["v"] = 0x0076;
- t["vadeva"] = 0x0935;
- t["vagujarati"] = 0x0ab5;
- t["vagurmukhi"] = 0x0a35;
- t["vakatakana"] = 0x30f7;
- t["vav"] = 0x05d5;
- t["vavdagesh"] = 0xfb35;
- t["vavdagesh65"] = 0xfb35;
- t["vavdageshhebrew"] = 0xfb35;
- t["vavhebrew"] = 0x05d5;
- t["vavholam"] = 0xfb4b;
- t["vavholamhebrew"] = 0xfb4b;
- t["vavvavhebrew"] = 0x05f0;
- t["vavyodhebrew"] = 0x05f1;
- t["vcircle"] = 0x24e5;
- t["vdotbelow"] = 0x1e7f;
- t["vecyrillic"] = 0x0432;
- t["veharabic"] = 0x06a4;
- t["vehfinalarabic"] = 0xfb6b;
- t["vehinitialarabic"] = 0xfb6c;
- t["vehmedialarabic"] = 0xfb6d;
- t["vekatakana"] = 0x30f9;
- t["venus"] = 0x2640;
- t["verticalbar"] = 0x007c;
- t["verticallineabovecmb"] = 0x030d;
- t["verticallinebelowcmb"] = 0x0329;
- t["verticallinelowmod"] = 0x02cc;
- t["verticallinemod"] = 0x02c8;
- t["vewarmenian"] = 0x057e;
- t["vhook"] = 0x028b;
- t["vikatakana"] = 0x30f8;
- t["viramabengali"] = 0x09cd;
- t["viramadeva"] = 0x094d;
- t["viramagujarati"] = 0x0acd;
- t["visargabengali"] = 0x0983;
- t["visargadeva"] = 0x0903;
- t["visargagujarati"] = 0x0a83;
- t["vmonospace"] = 0xff56;
- t["voarmenian"] = 0x0578;
- t["voicediterationhiragana"] = 0x309e;
- t["voicediterationkatakana"] = 0x30fe;
- t["voicedmarkkana"] = 0x309b;
- t["voicedmarkkanahalfwidth"] = 0xff9e;
- t["vokatakana"] = 0x30fa;
- t["vparen"] = 0x24b1;
- t["vtilde"] = 0x1e7d;
- t["vturned"] = 0x028c;
- t["vuhiragana"] = 0x3094;
- t["vukatakana"] = 0x30f4;
- t["w"] = 0x0077;
- t["wacute"] = 0x1e83;
- t["waekorean"] = 0x3159;
- t["wahiragana"] = 0x308f;
- t["wakatakana"] = 0x30ef;
- t["wakatakanahalfwidth"] = 0xff9c;
- t["wakorean"] = 0x3158;
- t["wasmallhiragana"] = 0x308e;
- t["wasmallkatakana"] = 0x30ee;
- t["wattosquare"] = 0x3357;
- t["wavedash"] = 0x301c;
- t["wavyunderscorevertical"] = 0xfe34;
- t["wawarabic"] = 0x0648;
- t["wawfinalarabic"] = 0xfeee;
- t["wawhamzaabovearabic"] = 0x0624;
- t["wawhamzaabovefinalarabic"] = 0xfe86;
- t["wbsquare"] = 0x33dd;
- t["wcircle"] = 0x24e6;
- t["wcircumflex"] = 0x0175;
- t["wdieresis"] = 0x1e85;
- t["wdotaccent"] = 0x1e87;
- t["wdotbelow"] = 0x1e89;
- t["wehiragana"] = 0x3091;
- t["weierstrass"] = 0x2118;
- t["wekatakana"] = 0x30f1;
- t["wekorean"] = 0x315e;
- t["weokorean"] = 0x315d;
- t["wgrave"] = 0x1e81;
- t["whitebullet"] = 0x25e6;
- t["whitecircle"] = 0x25cb;
- t["whitecircleinverse"] = 0x25d9;
- t["whitecornerbracketleft"] = 0x300e;
- t["whitecornerbracketleftvertical"] = 0xfe43;
- t["whitecornerbracketright"] = 0x300f;
- t["whitecornerbracketrightvertical"] = 0xfe44;
- t["whitediamond"] = 0x25c7;
- t["whitediamondcontainingblacksmalldiamond"] = 0x25c8;
- t["whitedownpointingsmalltriangle"] = 0x25bf;
- t["whitedownpointingtriangle"] = 0x25bd;
- t["whiteleftpointingsmalltriangle"] = 0x25c3;
- t["whiteleftpointingtriangle"] = 0x25c1;
- t["whitelenticularbracketleft"] = 0x3016;
- t["whitelenticularbracketright"] = 0x3017;
- t["whiterightpointingsmalltriangle"] = 0x25b9;
- t["whiterightpointingtriangle"] = 0x25b7;
- t["whitesmallsquare"] = 0x25ab;
- t["whitesmilingface"] = 0x263a;
- t["whitesquare"] = 0x25a1;
- t["whitestar"] = 0x2606;
- t["whitetelephone"] = 0x260f;
- t["whitetortoiseshellbracketleft"] = 0x3018;
- t["whitetortoiseshellbracketright"] = 0x3019;
- t["whiteuppointingsmalltriangle"] = 0x25b5;
- t["whiteuppointingtriangle"] = 0x25b3;
- t["wihiragana"] = 0x3090;
- t["wikatakana"] = 0x30f0;
- t["wikorean"] = 0x315f;
- t["wmonospace"] = 0xff57;
- t["wohiragana"] = 0x3092;
- t["wokatakana"] = 0x30f2;
- t["wokatakanahalfwidth"] = 0xff66;
- t["won"] = 0x20a9;
- t["wonmonospace"] = 0xffe6;
- t["wowaenthai"] = 0x0e27;
- t["wparen"] = 0x24b2;
- t["wring"] = 0x1e98;
- t["wsuperior"] = 0x02b7;
- t["wturned"] = 0x028d;
- t["wynn"] = 0x01bf;
- t["x"] = 0x0078;
- t["xabovecmb"] = 0x033d;
- t["xbopomofo"] = 0x3112;
- t["xcircle"] = 0x24e7;
- t["xdieresis"] = 0x1e8d;
- t["xdotaccent"] = 0x1e8b;
- t["xeharmenian"] = 0x056d;
- t["xi"] = 0x03be;
- t["xmonospace"] = 0xff58;
- t["xparen"] = 0x24b3;
- t["xsuperior"] = 0x02e3;
- t["y"] = 0x0079;
- t["yaadosquare"] = 0x334e;
- t["yabengali"] = 0x09af;
- t["yacute"] = 0x00fd;
- t["yadeva"] = 0x092f;
- t["yaekorean"] = 0x3152;
- t["yagujarati"] = 0x0aaf;
- t["yagurmukhi"] = 0x0a2f;
- t["yahiragana"] = 0x3084;
- t["yakatakana"] = 0x30e4;
- t["yakatakanahalfwidth"] = 0xff94;
- t["yakorean"] = 0x3151;
- t["yamakkanthai"] = 0x0e4e;
- t["yasmallhiragana"] = 0x3083;
- t["yasmallkatakana"] = 0x30e3;
- t["yasmallkatakanahalfwidth"] = 0xff6c;
- t["yatcyrillic"] = 0x0463;
- t["ycircle"] = 0x24e8;
- t["ycircumflex"] = 0x0177;
- t["ydieresis"] = 0x00ff;
- t["ydotaccent"] = 0x1e8f;
- t["ydotbelow"] = 0x1ef5;
- t["yeharabic"] = 0x064a;
- t["yehbarreearabic"] = 0x06d2;
- t["yehbarreefinalarabic"] = 0xfbaf;
- t["yehfinalarabic"] = 0xfef2;
- t["yehhamzaabovearabic"] = 0x0626;
- t["yehhamzaabovefinalarabic"] = 0xfe8a;
- t["yehhamzaaboveinitialarabic"] = 0xfe8b;
- t["yehhamzaabovemedialarabic"] = 0xfe8c;
- t["yehinitialarabic"] = 0xfef3;
- t["yehmedialarabic"] = 0xfef4;
- t["yehmeeminitialarabic"] = 0xfcdd;
- t["yehmeemisolatedarabic"] = 0xfc58;
- t["yehnoonfinalarabic"] = 0xfc94;
- t["yehthreedotsbelowarabic"] = 0x06d1;
- t["yekorean"] = 0x3156;
- t["yen"] = 0x00a5;
- t["yenmonospace"] = 0xffe5;
- t["yeokorean"] = 0x3155;
- t["yeorinhieuhkorean"] = 0x3186;
- t["yerahbenyomohebrew"] = 0x05aa;
- t["yerahbenyomolefthebrew"] = 0x05aa;
- t["yericyrillic"] = 0x044b;
- t["yerudieresiscyrillic"] = 0x04f9;
- t["yesieungkorean"] = 0x3181;
- t["yesieungpansioskorean"] = 0x3183;
- t["yesieungsioskorean"] = 0x3182;
- t["yetivhebrew"] = 0x059a;
- t["ygrave"] = 0x1ef3;
- t["yhook"] = 0x01b4;
- t["yhookabove"] = 0x1ef7;
- t["yiarmenian"] = 0x0575;
- t["yicyrillic"] = 0x0457;
- t["yikorean"] = 0x3162;
- t["yinyang"] = 0x262f;
- t["yiwnarmenian"] = 0x0582;
- t["ymonospace"] = 0xff59;
- t["yod"] = 0x05d9;
- t["yoddagesh"] = 0xfb39;
- t["yoddageshhebrew"] = 0xfb39;
- t["yodhebrew"] = 0x05d9;
- t["yodyodhebrew"] = 0x05f2;
- t["yodyodpatahhebrew"] = 0xfb1f;
- t["yohiragana"] = 0x3088;
- t["yoikorean"] = 0x3189;
- t["yokatakana"] = 0x30e8;
- t["yokatakanahalfwidth"] = 0xff96;
- t["yokorean"] = 0x315b;
- t["yosmallhiragana"] = 0x3087;
- t["yosmallkatakana"] = 0x30e7;
- t["yosmallkatakanahalfwidth"] = 0xff6e;
- t["yotgreek"] = 0x03f3;
- t["yoyaekorean"] = 0x3188;
- t["yoyakorean"] = 0x3187;
- t["yoyakthai"] = 0x0e22;
- t["yoyingthai"] = 0x0e0d;
- t["yparen"] = 0x24b4;
- t["ypogegrammeni"] = 0x037a;
- t["ypogegrammenigreekcmb"] = 0x0345;
- t["yr"] = 0x01a6;
- t["yring"] = 0x1e99;
- t["ysuperior"] = 0x02b8;
- t["ytilde"] = 0x1ef9;
- t["yturned"] = 0x028e;
- t["yuhiragana"] = 0x3086;
- t["yuikorean"] = 0x318c;
- t["yukatakana"] = 0x30e6;
- t["yukatakanahalfwidth"] = 0xff95;
- t["yukorean"] = 0x3160;
- t["yusbigcyrillic"] = 0x046b;
- t["yusbigiotifiedcyrillic"] = 0x046d;
- t["yuslittlecyrillic"] = 0x0467;
- t["yuslittleiotifiedcyrillic"] = 0x0469;
- t["yusmallhiragana"] = 0x3085;
- t["yusmallkatakana"] = 0x30e5;
- t["yusmallkatakanahalfwidth"] = 0xff6d;
- t["yuyekorean"] = 0x318b;
- t["yuyeokorean"] = 0x318a;
- t["yyabengali"] = 0x09df;
- t["yyadeva"] = 0x095f;
- t["z"] = 0x007a;
- t["zaarmenian"] = 0x0566;
- t["zacute"] = 0x017a;
- t["zadeva"] = 0x095b;
- t["zagurmukhi"] = 0x0a5b;
- t["zaharabic"] = 0x0638;
- t["zahfinalarabic"] = 0xfec6;
- t["zahinitialarabic"] = 0xfec7;
- t["zahiragana"] = 0x3056;
- t["zahmedialarabic"] = 0xfec8;
- t["zainarabic"] = 0x0632;
- t["zainfinalarabic"] = 0xfeb0;
- t["zakatakana"] = 0x30b6;
- t["zaqefgadolhebrew"] = 0x0595;
- t["zaqefqatanhebrew"] = 0x0594;
- t["zarqahebrew"] = 0x0598;
- t["zayin"] = 0x05d6;
- t["zayindagesh"] = 0xfb36;
- t["zayindageshhebrew"] = 0xfb36;
- t["zayinhebrew"] = 0x05d6;
- t["zbopomofo"] = 0x3117;
- t["zcaron"] = 0x017e;
- t["zcircle"] = 0x24e9;
- t["zcircumflex"] = 0x1e91;
- t["zcurl"] = 0x0291;
- t["zdot"] = 0x017c;
- t["zdotaccent"] = 0x017c;
- t["zdotbelow"] = 0x1e93;
- t["zecyrillic"] = 0x0437;
- t["zedescendercyrillic"] = 0x0499;
- t["zedieresiscyrillic"] = 0x04df;
- t["zehiragana"] = 0x305c;
- t["zekatakana"] = 0x30bc;
- t["zero"] = 0x0030;
- t["zeroarabic"] = 0x0660;
- t["zerobengali"] = 0x09e6;
- t["zerodeva"] = 0x0966;
- t["zerogujarati"] = 0x0ae6;
- t["zerogurmukhi"] = 0x0a66;
- t["zerohackarabic"] = 0x0660;
- t["zeroinferior"] = 0x2080;
- t["zeromonospace"] = 0xff10;
- t["zerooldstyle"] = 0xf730;
- t["zeropersian"] = 0x06f0;
- t["zerosuperior"] = 0x2070;
- t["zerothai"] = 0x0e50;
- t["zerowidthjoiner"] = 0xfeff;
- t["zerowidthnonjoiner"] = 0x200c;
- t["zerowidthspace"] = 0x200b;
- t["zeta"] = 0x03b6;
- t["zhbopomofo"] = 0x3113;
- t["zhearmenian"] = 0x056a;
- t["zhebrevecyrillic"] = 0x04c2;
- t["zhecyrillic"] = 0x0436;
- t["zhedescendercyrillic"] = 0x0497;
- t["zhedieresiscyrillic"] = 0x04dd;
- t["zihiragana"] = 0x3058;
- t["zikatakana"] = 0x30b8;
- t["zinorhebrew"] = 0x05ae;
- t["zlinebelow"] = 0x1e95;
- t["zmonospace"] = 0xff5a;
- t["zohiragana"] = 0x305e;
- t["zokatakana"] = 0x30be;
- t["zparen"] = 0x24b5;
- t["zretroflexhook"] = 0x0290;
- t["zstroke"] = 0x01b6;
- t["zuhiragana"] = 0x305a;
- t["zukatakana"] = 0x30ba;
+ t.A = 0x0041;
+ t.AE = 0x00c6;
+ t.AEacute = 0x01fc;
+ t.AEmacron = 0x01e2;
+ t.AEsmall = 0xf7e6;
+ t.Aacute = 0x00c1;
+ t.Aacutesmall = 0xf7e1;
+ t.Abreve = 0x0102;
+ t.Abreveacute = 0x1eae;
+ t.Abrevecyrillic = 0x04d0;
+ t.Abrevedotbelow = 0x1eb6;
+ t.Abrevegrave = 0x1eb0;
+ t.Abrevehookabove = 0x1eb2;
+ t.Abrevetilde = 0x1eb4;
+ t.Acaron = 0x01cd;
+ t.Acircle = 0x24b6;
+ t.Acircumflex = 0x00c2;
+ t.Acircumflexacute = 0x1ea4;
+ t.Acircumflexdotbelow = 0x1eac;
+ t.Acircumflexgrave = 0x1ea6;
+ t.Acircumflexhookabove = 0x1ea8;
+ t.Acircumflexsmall = 0xf7e2;
+ t.Acircumflextilde = 0x1eaa;
+ t.Acute = 0xf6c9;
+ t.Acutesmall = 0xf7b4;
+ t.Acyrillic = 0x0410;
+ t.Adblgrave = 0x0200;
+ t.Adieresis = 0x00c4;
+ t.Adieresiscyrillic = 0x04d2;
+ t.Adieresismacron = 0x01de;
+ t.Adieresissmall = 0xf7e4;
+ t.Adotbelow = 0x1ea0;
+ t.Adotmacron = 0x01e0;
+ t.Agrave = 0x00c0;
+ t.Agravesmall = 0xf7e0;
+ t.Ahookabove = 0x1ea2;
+ t.Aiecyrillic = 0x04d4;
+ t.Ainvertedbreve = 0x0202;
+ t.Alpha = 0x0391;
+ t.Alphatonos = 0x0386;
+ t.Amacron = 0x0100;
+ t.Amonospace = 0xff21;
+ t.Aogonek = 0x0104;
+ t.Aring = 0x00c5;
+ t.Aringacute = 0x01fa;
+ t.Aringbelow = 0x1e00;
+ t.Aringsmall = 0xf7e5;
+ t.Asmall = 0xf761;
+ t.Atilde = 0x00c3;
+ t.Atildesmall = 0xf7e3;
+ t.Aybarmenian = 0x0531;
+ t.B = 0x0042;
+ t.Bcircle = 0x24b7;
+ t.Bdotaccent = 0x1e02;
+ t.Bdotbelow = 0x1e04;
+ t.Becyrillic = 0x0411;
+ t.Benarmenian = 0x0532;
+ t.Beta = 0x0392;
+ t.Bhook = 0x0181;
+ t.Blinebelow = 0x1e06;
+ t.Bmonospace = 0xff22;
+ t.Brevesmall = 0xf6f4;
+ t.Bsmall = 0xf762;
+ t.Btopbar = 0x0182;
+ t.C = 0x0043;
+ t.Caarmenian = 0x053e;
+ t.Cacute = 0x0106;
+ t.Caron = 0xf6ca;
+ t.Caronsmall = 0xf6f5;
+ t.Ccaron = 0x010c;
+ t.Ccedilla = 0x00c7;
+ t.Ccedillaacute = 0x1e08;
+ t.Ccedillasmall = 0xf7e7;
+ t.Ccircle = 0x24b8;
+ t.Ccircumflex = 0x0108;
+ t.Cdot = 0x010a;
+ t.Cdotaccent = 0x010a;
+ t.Cedillasmall = 0xf7b8;
+ t.Chaarmenian = 0x0549;
+ t.Cheabkhasiancyrillic = 0x04bc;
+ t.Checyrillic = 0x0427;
+ t.Chedescenderabkhasiancyrillic = 0x04be;
+ t.Chedescendercyrillic = 0x04b6;
+ t.Chedieresiscyrillic = 0x04f4;
+ t.Cheharmenian = 0x0543;
+ t.Chekhakassiancyrillic = 0x04cb;
+ t.Cheverticalstrokecyrillic = 0x04b8;
+ t.Chi = 0x03a7;
+ t.Chook = 0x0187;
+ t.Circumflexsmall = 0xf6f6;
+ t.Cmonospace = 0xff23;
+ t.Coarmenian = 0x0551;
+ t.Csmall = 0xf763;
+ t.D = 0x0044;
+ t.DZ = 0x01f1;
+ t.DZcaron = 0x01c4;
+ t.Daarmenian = 0x0534;
+ t.Dafrican = 0x0189;
+ t.Dcaron = 0x010e;
+ t.Dcedilla = 0x1e10;
+ t.Dcircle = 0x24b9;
+ t.Dcircumflexbelow = 0x1e12;
+ t.Dcroat = 0x0110;
+ t.Ddotaccent = 0x1e0a;
+ t.Ddotbelow = 0x1e0c;
+ t.Decyrillic = 0x0414;
+ t.Deicoptic = 0x03ee;
+ t.Delta = 0x2206;
+ t.Deltagreek = 0x0394;
+ t.Dhook = 0x018a;
+ t.Dieresis = 0xf6cb;
+ t.DieresisAcute = 0xf6cc;
+ t.DieresisGrave = 0xf6cd;
+ t.Dieresissmall = 0xf7a8;
+ t.Digammagreek = 0x03dc;
+ t.Djecyrillic = 0x0402;
+ t.Dlinebelow = 0x1e0e;
+ t.Dmonospace = 0xff24;
+ t.Dotaccentsmall = 0xf6f7;
+ t.Dslash = 0x0110;
+ t.Dsmall = 0xf764;
+ t.Dtopbar = 0x018b;
+ t.Dz = 0x01f2;
+ t.Dzcaron = 0x01c5;
+ t.Dzeabkhasiancyrillic = 0x04e0;
+ t.Dzecyrillic = 0x0405;
+ t.Dzhecyrillic = 0x040f;
+ t.E = 0x0045;
+ t.Eacute = 0x00c9;
+ t.Eacutesmall = 0xf7e9;
+ t.Ebreve = 0x0114;
+ t.Ecaron = 0x011a;
+ t.Ecedillabreve = 0x1e1c;
+ t.Echarmenian = 0x0535;
+ t.Ecircle = 0x24ba;
+ t.Ecircumflex = 0x00ca;
+ t.Ecircumflexacute = 0x1ebe;
+ t.Ecircumflexbelow = 0x1e18;
+ t.Ecircumflexdotbelow = 0x1ec6;
+ t.Ecircumflexgrave = 0x1ec0;
+ t.Ecircumflexhookabove = 0x1ec2;
+ t.Ecircumflexsmall = 0xf7ea;
+ t.Ecircumflextilde = 0x1ec4;
+ t.Ecyrillic = 0x0404;
+ t.Edblgrave = 0x0204;
+ t.Edieresis = 0x00cb;
+ t.Edieresissmall = 0xf7eb;
+ t.Edot = 0x0116;
+ t.Edotaccent = 0x0116;
+ t.Edotbelow = 0x1eb8;
+ t.Efcyrillic = 0x0424;
+ t.Egrave = 0x00c8;
+ t.Egravesmall = 0xf7e8;
+ t.Eharmenian = 0x0537;
+ t.Ehookabove = 0x1eba;
+ t.Eightroman = 0x2167;
+ t.Einvertedbreve = 0x0206;
+ t.Eiotifiedcyrillic = 0x0464;
+ t.Elcyrillic = 0x041b;
+ t.Elevenroman = 0x216a;
+ t.Emacron = 0x0112;
+ t.Emacronacute = 0x1e16;
+ t.Emacrongrave = 0x1e14;
+ t.Emcyrillic = 0x041c;
+ t.Emonospace = 0xff25;
+ t.Encyrillic = 0x041d;
+ t.Endescendercyrillic = 0x04a2;
+ t.Eng = 0x014a;
+ t.Enghecyrillic = 0x04a4;
+ t.Enhookcyrillic = 0x04c7;
+ t.Eogonek = 0x0118;
+ t.Eopen = 0x0190;
+ t.Epsilon = 0x0395;
+ t.Epsilontonos = 0x0388;
+ t.Ercyrillic = 0x0420;
+ t.Ereversed = 0x018e;
+ t.Ereversedcyrillic = 0x042d;
+ t.Escyrillic = 0x0421;
+ t.Esdescendercyrillic = 0x04aa;
+ t.Esh = 0x01a9;
+ t.Esmall = 0xf765;
+ t.Eta = 0x0397;
+ t.Etarmenian = 0x0538;
+ t.Etatonos = 0x0389;
+ t.Eth = 0x00d0;
+ t.Ethsmall = 0xf7f0;
+ t.Etilde = 0x1ebc;
+ t.Etildebelow = 0x1e1a;
+ t.Euro = 0x20ac;
+ t.Ezh = 0x01b7;
+ t.Ezhcaron = 0x01ee;
+ t.Ezhreversed = 0x01b8;
+ t.F = 0x0046;
+ t.Fcircle = 0x24bb;
+ t.Fdotaccent = 0x1e1e;
+ t.Feharmenian = 0x0556;
+ t.Feicoptic = 0x03e4;
+ t.Fhook = 0x0191;
+ t.Fitacyrillic = 0x0472;
+ t.Fiveroman = 0x2164;
+ t.Fmonospace = 0xff26;
+ t.Fourroman = 0x2163;
+ t.Fsmall = 0xf766;
+ t.G = 0x0047;
+ t.GBsquare = 0x3387;
+ t.Gacute = 0x01f4;
+ t.Gamma = 0x0393;
+ t.Gammaafrican = 0x0194;
+ t.Gangiacoptic = 0x03ea;
+ t.Gbreve = 0x011e;
+ t.Gcaron = 0x01e6;
+ t.Gcedilla = 0x0122;
+ t.Gcircle = 0x24bc;
+ t.Gcircumflex = 0x011c;
+ t.Gcommaaccent = 0x0122;
+ t.Gdot = 0x0120;
+ t.Gdotaccent = 0x0120;
+ t.Gecyrillic = 0x0413;
+ t.Ghadarmenian = 0x0542;
+ t.Ghemiddlehookcyrillic = 0x0494;
+ t.Ghestrokecyrillic = 0x0492;
+ t.Gheupturncyrillic = 0x0490;
+ t.Ghook = 0x0193;
+ t.Gimarmenian = 0x0533;
+ t.Gjecyrillic = 0x0403;
+ t.Gmacron = 0x1e20;
+ t.Gmonospace = 0xff27;
+ t.Grave = 0xf6ce;
+ t.Gravesmall = 0xf760;
+ t.Gsmall = 0xf767;
+ t.Gsmallhook = 0x029b;
+ t.Gstroke = 0x01e4;
+ t.H = 0x0048;
+ t.H18533 = 0x25cf;
+ t.H18543 = 0x25aa;
+ t.H18551 = 0x25ab;
+ t.H22073 = 0x25a1;
+ t.HPsquare = 0x33cb;
+ t.Haabkhasiancyrillic = 0x04a8;
+ t.Hadescendercyrillic = 0x04b2;
+ t.Hardsigncyrillic = 0x042a;
+ t.Hbar = 0x0126;
+ t.Hbrevebelow = 0x1e2a;
+ t.Hcedilla = 0x1e28;
+ t.Hcircle = 0x24bd;
+ t.Hcircumflex = 0x0124;
+ t.Hdieresis = 0x1e26;
+ t.Hdotaccent = 0x1e22;
+ t.Hdotbelow = 0x1e24;
+ t.Hmonospace = 0xff28;
+ t.Hoarmenian = 0x0540;
+ t.Horicoptic = 0x03e8;
+ t.Hsmall = 0xf768;
+ t.Hungarumlaut = 0xf6cf;
+ t.Hungarumlautsmall = 0xf6f8;
+ t.Hzsquare = 0x3390;
+ t.I = 0x0049;
+ t.IAcyrillic = 0x042f;
+ t.IJ = 0x0132;
+ t.IUcyrillic = 0x042e;
+ t.Iacute = 0x00cd;
+ t.Iacutesmall = 0xf7ed;
+ t.Ibreve = 0x012c;
+ t.Icaron = 0x01cf;
+ t.Icircle = 0x24be;
+ t.Icircumflex = 0x00ce;
+ t.Icircumflexsmall = 0xf7ee;
+ t.Icyrillic = 0x0406;
+ t.Idblgrave = 0x0208;
+ t.Idieresis = 0x00cf;
+ t.Idieresisacute = 0x1e2e;
+ t.Idieresiscyrillic = 0x04e4;
+ t.Idieresissmall = 0xf7ef;
+ t.Idot = 0x0130;
+ t.Idotaccent = 0x0130;
+ t.Idotbelow = 0x1eca;
+ t.Iebrevecyrillic = 0x04d6;
+ t.Iecyrillic = 0x0415;
+ t.Ifraktur = 0x2111;
+ t.Igrave = 0x00cc;
+ t.Igravesmall = 0xf7ec;
+ t.Ihookabove = 0x1ec8;
+ t.Iicyrillic = 0x0418;
+ t.Iinvertedbreve = 0x020a;
+ t.Iishortcyrillic = 0x0419;
+ t.Imacron = 0x012a;
+ t.Imacroncyrillic = 0x04e2;
+ t.Imonospace = 0xff29;
+ t.Iniarmenian = 0x053b;
+ t.Iocyrillic = 0x0401;
+ t.Iogonek = 0x012e;
+ t.Iota = 0x0399;
+ t.Iotaafrican = 0x0196;
+ t.Iotadieresis = 0x03aa;
+ t.Iotatonos = 0x038a;
+ t.Ismall = 0xf769;
+ t.Istroke = 0x0197;
+ t.Itilde = 0x0128;
+ t.Itildebelow = 0x1e2c;
+ t.Izhitsacyrillic = 0x0474;
+ t.Izhitsadblgravecyrillic = 0x0476;
+ t.J = 0x004a;
+ t.Jaarmenian = 0x0541;
+ t.Jcircle = 0x24bf;
+ t.Jcircumflex = 0x0134;
+ t.Jecyrillic = 0x0408;
+ t.Jheharmenian = 0x054b;
+ t.Jmonospace = 0xff2a;
+ t.Jsmall = 0xf76a;
+ t.K = 0x004b;
+ t.KBsquare = 0x3385;
+ t.KKsquare = 0x33cd;
+ t.Kabashkircyrillic = 0x04a0;
+ t.Kacute = 0x1e30;
+ t.Kacyrillic = 0x041a;
+ t.Kadescendercyrillic = 0x049a;
+ t.Kahookcyrillic = 0x04c3;
+ t.Kappa = 0x039a;
+ t.Kastrokecyrillic = 0x049e;
+ t.Kaverticalstrokecyrillic = 0x049c;
+ t.Kcaron = 0x01e8;
+ t.Kcedilla = 0x0136;
+ t.Kcircle = 0x24c0;
+ t.Kcommaaccent = 0x0136;
+ t.Kdotbelow = 0x1e32;
+ t.Keharmenian = 0x0554;
+ t.Kenarmenian = 0x053f;
+ t.Khacyrillic = 0x0425;
+ t.Kheicoptic = 0x03e6;
+ t.Khook = 0x0198;
+ t.Kjecyrillic = 0x040c;
+ t.Klinebelow = 0x1e34;
+ t.Kmonospace = 0xff2b;
+ t.Koppacyrillic = 0x0480;
+ t.Koppagreek = 0x03de;
+ t.Ksicyrillic = 0x046e;
+ t.Ksmall = 0xf76b;
+ t.L = 0x004c;
+ t.LJ = 0x01c7;
+ t.LL = 0xf6bf;
+ t.Lacute = 0x0139;
+ t.Lambda = 0x039b;
+ t.Lcaron = 0x013d;
+ t.Lcedilla = 0x013b;
+ t.Lcircle = 0x24c1;
+ t.Lcircumflexbelow = 0x1e3c;
+ t.Lcommaaccent = 0x013b;
+ t.Ldot = 0x013f;
+ t.Ldotaccent = 0x013f;
+ t.Ldotbelow = 0x1e36;
+ t.Ldotbelowmacron = 0x1e38;
+ t.Liwnarmenian = 0x053c;
+ t.Lj = 0x01c8;
+ t.Ljecyrillic = 0x0409;
+ t.Llinebelow = 0x1e3a;
+ t.Lmonospace = 0xff2c;
+ t.Lslash = 0x0141;
+ t.Lslashsmall = 0xf6f9;
+ t.Lsmall = 0xf76c;
+ t.M = 0x004d;
+ t.MBsquare = 0x3386;
+ t.Macron = 0xf6d0;
+ t.Macronsmall = 0xf7af;
+ t.Macute = 0x1e3e;
+ t.Mcircle = 0x24c2;
+ t.Mdotaccent = 0x1e40;
+ t.Mdotbelow = 0x1e42;
+ t.Menarmenian = 0x0544;
+ t.Mmonospace = 0xff2d;
+ t.Msmall = 0xf76d;
+ t.Mturned = 0x019c;
+ t.Mu = 0x039c;
+ t.N = 0x004e;
+ t.NJ = 0x01ca;
+ t.Nacute = 0x0143;
+ t.Ncaron = 0x0147;
+ t.Ncedilla = 0x0145;
+ t.Ncircle = 0x24c3;
+ t.Ncircumflexbelow = 0x1e4a;
+ t.Ncommaaccent = 0x0145;
+ t.Ndotaccent = 0x1e44;
+ t.Ndotbelow = 0x1e46;
+ t.Nhookleft = 0x019d;
+ t.Nineroman = 0x2168;
+ t.Nj = 0x01cb;
+ t.Njecyrillic = 0x040a;
+ t.Nlinebelow = 0x1e48;
+ t.Nmonospace = 0xff2e;
+ t.Nowarmenian = 0x0546;
+ t.Nsmall = 0xf76e;
+ t.Ntilde = 0x00d1;
+ t.Ntildesmall = 0xf7f1;
+ t.Nu = 0x039d;
+ t.O = 0x004f;
+ t.OE = 0x0152;
+ t.OEsmall = 0xf6fa;
+ t.Oacute = 0x00d3;
+ t.Oacutesmall = 0xf7f3;
+ t.Obarredcyrillic = 0x04e8;
+ t.Obarreddieresiscyrillic = 0x04ea;
+ t.Obreve = 0x014e;
+ t.Ocaron = 0x01d1;
+ t.Ocenteredtilde = 0x019f;
+ t.Ocircle = 0x24c4;
+ t.Ocircumflex = 0x00d4;
+ t.Ocircumflexacute = 0x1ed0;
+ t.Ocircumflexdotbelow = 0x1ed8;
+ t.Ocircumflexgrave = 0x1ed2;
+ t.Ocircumflexhookabove = 0x1ed4;
+ t.Ocircumflexsmall = 0xf7f4;
+ t.Ocircumflextilde = 0x1ed6;
+ t.Ocyrillic = 0x041e;
+ t.Odblacute = 0x0150;
+ t.Odblgrave = 0x020c;
+ t.Odieresis = 0x00d6;
+ t.Odieresiscyrillic = 0x04e6;
+ t.Odieresissmall = 0xf7f6;
+ t.Odotbelow = 0x1ecc;
+ t.Ogoneksmall = 0xf6fb;
+ t.Ograve = 0x00d2;
+ t.Ogravesmall = 0xf7f2;
+ t.Oharmenian = 0x0555;
+ t.Ohm = 0x2126;
+ t.Ohookabove = 0x1ece;
+ t.Ohorn = 0x01a0;
+ t.Ohornacute = 0x1eda;
+ t.Ohorndotbelow = 0x1ee2;
+ t.Ohorngrave = 0x1edc;
+ t.Ohornhookabove = 0x1ede;
+ t.Ohorntilde = 0x1ee0;
+ t.Ohungarumlaut = 0x0150;
+ t.Oi = 0x01a2;
+ t.Oinvertedbreve = 0x020e;
+ t.Omacron = 0x014c;
+ t.Omacronacute = 0x1e52;
+ t.Omacrongrave = 0x1e50;
+ t.Omega = 0x2126;
+ t.Omegacyrillic = 0x0460;
+ t.Omegagreek = 0x03a9;
+ t.Omegaroundcyrillic = 0x047a;
+ t.Omegatitlocyrillic = 0x047c;
+ t.Omegatonos = 0x038f;
+ t.Omicron = 0x039f;
+ t.Omicrontonos = 0x038c;
+ t.Omonospace = 0xff2f;
+ t.Oneroman = 0x2160;
+ t.Oogonek = 0x01ea;
+ t.Oogonekmacron = 0x01ec;
+ t.Oopen = 0x0186;
+ t.Oslash = 0x00d8;
+ t.Oslashacute = 0x01fe;
+ t.Oslashsmall = 0xf7f8;
+ t.Osmall = 0xf76f;
+ t.Ostrokeacute = 0x01fe;
+ t.Otcyrillic = 0x047e;
+ t.Otilde = 0x00d5;
+ t.Otildeacute = 0x1e4c;
+ t.Otildedieresis = 0x1e4e;
+ t.Otildesmall = 0xf7f5;
+ t.P = 0x0050;
+ t.Pacute = 0x1e54;
+ t.Pcircle = 0x24c5;
+ t.Pdotaccent = 0x1e56;
+ t.Pecyrillic = 0x041f;
+ t.Peharmenian = 0x054a;
+ t.Pemiddlehookcyrillic = 0x04a6;
+ t.Phi = 0x03a6;
+ t.Phook = 0x01a4;
+ t.Pi = 0x03a0;
+ t.Piwrarmenian = 0x0553;
+ t.Pmonospace = 0xff30;
+ t.Psi = 0x03a8;
+ t.Psicyrillic = 0x0470;
+ t.Psmall = 0xf770;
+ t.Q = 0x0051;
+ t.Qcircle = 0x24c6;
+ t.Qmonospace = 0xff31;
+ t.Qsmall = 0xf771;
+ t.R = 0x0052;
+ t.Raarmenian = 0x054c;
+ t.Racute = 0x0154;
+ t.Rcaron = 0x0158;
+ t.Rcedilla = 0x0156;
+ t.Rcircle = 0x24c7;
+ t.Rcommaaccent = 0x0156;
+ t.Rdblgrave = 0x0210;
+ t.Rdotaccent = 0x1e58;
+ t.Rdotbelow = 0x1e5a;
+ t.Rdotbelowmacron = 0x1e5c;
+ t.Reharmenian = 0x0550;
+ t.Rfraktur = 0x211c;
+ t.Rho = 0x03a1;
+ t.Ringsmall = 0xf6fc;
+ t.Rinvertedbreve = 0x0212;
+ t.Rlinebelow = 0x1e5e;
+ t.Rmonospace = 0xff32;
+ t.Rsmall = 0xf772;
+ t.Rsmallinverted = 0x0281;
+ t.Rsmallinvertedsuperior = 0x02b6;
+ t.S = 0x0053;
+ t.SF010000 = 0x250c;
+ t.SF020000 = 0x2514;
+ t.SF030000 = 0x2510;
+ t.SF040000 = 0x2518;
+ t.SF050000 = 0x253c;
+ t.SF060000 = 0x252c;
+ t.SF070000 = 0x2534;
+ t.SF080000 = 0x251c;
+ t.SF090000 = 0x2524;
+ t.SF100000 = 0x2500;
+ t.SF110000 = 0x2502;
+ t.SF190000 = 0x2561;
+ t.SF200000 = 0x2562;
+ t.SF210000 = 0x2556;
+ t.SF220000 = 0x2555;
+ t.SF230000 = 0x2563;
+ t.SF240000 = 0x2551;
+ t.SF250000 = 0x2557;
+ t.SF260000 = 0x255d;
+ t.SF270000 = 0x255c;
+ t.SF280000 = 0x255b;
+ t.SF360000 = 0x255e;
+ t.SF370000 = 0x255f;
+ t.SF380000 = 0x255a;
+ t.SF390000 = 0x2554;
+ t.SF400000 = 0x2569;
+ t.SF410000 = 0x2566;
+ t.SF420000 = 0x2560;
+ t.SF430000 = 0x2550;
+ t.SF440000 = 0x256c;
+ t.SF450000 = 0x2567;
+ t.SF460000 = 0x2568;
+ t.SF470000 = 0x2564;
+ t.SF480000 = 0x2565;
+ t.SF490000 = 0x2559;
+ t.SF500000 = 0x2558;
+ t.SF510000 = 0x2552;
+ t.SF520000 = 0x2553;
+ t.SF530000 = 0x256b;
+ t.SF540000 = 0x256a;
+ t.Sacute = 0x015a;
+ t.Sacutedotaccent = 0x1e64;
+ t.Sampigreek = 0x03e0;
+ t.Scaron = 0x0160;
+ t.Scarondotaccent = 0x1e66;
+ t.Scaronsmall = 0xf6fd;
+ t.Scedilla = 0x015e;
+ t.Schwa = 0x018f;
+ t.Schwacyrillic = 0x04d8;
+ t.Schwadieresiscyrillic = 0x04da;
+ t.Scircle = 0x24c8;
+ t.Scircumflex = 0x015c;
+ t.Scommaaccent = 0x0218;
+ t.Sdotaccent = 0x1e60;
+ t.Sdotbelow = 0x1e62;
+ t.Sdotbelowdotaccent = 0x1e68;
+ t.Seharmenian = 0x054d;
+ t.Sevenroman = 0x2166;
+ t.Shaarmenian = 0x0547;
+ t.Shacyrillic = 0x0428;
+ t.Shchacyrillic = 0x0429;
+ t.Sheicoptic = 0x03e2;
+ t.Shhacyrillic = 0x04ba;
+ t.Shimacoptic = 0x03ec;
+ t.Sigma = 0x03a3;
+ t.Sixroman = 0x2165;
+ t.Smonospace = 0xff33;
+ t.Softsigncyrillic = 0x042c;
+ t.Ssmall = 0xf773;
+ t.Stigmagreek = 0x03da;
+ t.T = 0x0054;
+ t.Tau = 0x03a4;
+ t.Tbar = 0x0166;
+ t.Tcaron = 0x0164;
+ t.Tcedilla = 0x0162;
+ t.Tcircle = 0x24c9;
+ t.Tcircumflexbelow = 0x1e70;
+ t.Tcommaaccent = 0x0162;
+ t.Tdotaccent = 0x1e6a;
+ t.Tdotbelow = 0x1e6c;
+ t.Tecyrillic = 0x0422;
+ t.Tedescendercyrillic = 0x04ac;
+ t.Tenroman = 0x2169;
+ t.Tetsecyrillic = 0x04b4;
+ t.Theta = 0x0398;
+ t.Thook = 0x01ac;
+ t.Thorn = 0x00de;
+ t.Thornsmall = 0xf7fe;
+ t.Threeroman = 0x2162;
+ t.Tildesmall = 0xf6fe;
+ t.Tiwnarmenian = 0x054f;
+ t.Tlinebelow = 0x1e6e;
+ t.Tmonospace = 0xff34;
+ t.Toarmenian = 0x0539;
+ t.Tonefive = 0x01bc;
+ t.Tonesix = 0x0184;
+ t.Tonetwo = 0x01a7;
+ t.Tretroflexhook = 0x01ae;
+ t.Tsecyrillic = 0x0426;
+ t.Tshecyrillic = 0x040b;
+ t.Tsmall = 0xf774;
+ t.Twelveroman = 0x216b;
+ t.Tworoman = 0x2161;
+ t.U = 0x0055;
+ t.Uacute = 0x00da;
+ t.Uacutesmall = 0xf7fa;
+ t.Ubreve = 0x016c;
+ t.Ucaron = 0x01d3;
+ t.Ucircle = 0x24ca;
+ t.Ucircumflex = 0x00db;
+ t.Ucircumflexbelow = 0x1e76;
+ t.Ucircumflexsmall = 0xf7fb;
+ t.Ucyrillic = 0x0423;
+ t.Udblacute = 0x0170;
+ t.Udblgrave = 0x0214;
+ t.Udieresis = 0x00dc;
+ t.Udieresisacute = 0x01d7;
+ t.Udieresisbelow = 0x1e72;
+ t.Udieresiscaron = 0x01d9;
+ t.Udieresiscyrillic = 0x04f0;
+ t.Udieresisgrave = 0x01db;
+ t.Udieresismacron = 0x01d5;
+ t.Udieresissmall = 0xf7fc;
+ t.Udotbelow = 0x1ee4;
+ t.Ugrave = 0x00d9;
+ t.Ugravesmall = 0xf7f9;
+ t.Uhookabove = 0x1ee6;
+ t.Uhorn = 0x01af;
+ t.Uhornacute = 0x1ee8;
+ t.Uhorndotbelow = 0x1ef0;
+ t.Uhorngrave = 0x1eea;
+ t.Uhornhookabove = 0x1eec;
+ t.Uhorntilde = 0x1eee;
+ t.Uhungarumlaut = 0x0170;
+ t.Uhungarumlautcyrillic = 0x04f2;
+ t.Uinvertedbreve = 0x0216;
+ t.Ukcyrillic = 0x0478;
+ t.Umacron = 0x016a;
+ t.Umacroncyrillic = 0x04ee;
+ t.Umacrondieresis = 0x1e7a;
+ t.Umonospace = 0xff35;
+ t.Uogonek = 0x0172;
+ t.Upsilon = 0x03a5;
+ t.Upsilon1 = 0x03d2;
+ t.Upsilonacutehooksymbolgreek = 0x03d3;
+ t.Upsilonafrican = 0x01b1;
+ t.Upsilondieresis = 0x03ab;
+ t.Upsilondieresishooksymbolgreek = 0x03d4;
+ t.Upsilonhooksymbol = 0x03d2;
+ t.Upsilontonos = 0x038e;
+ t.Uring = 0x016e;
+ t.Ushortcyrillic = 0x040e;
+ t.Usmall = 0xf775;
+ t.Ustraightcyrillic = 0x04ae;
+ t.Ustraightstrokecyrillic = 0x04b0;
+ t.Utilde = 0x0168;
+ t.Utildeacute = 0x1e78;
+ t.Utildebelow = 0x1e74;
+ t.V = 0x0056;
+ t.Vcircle = 0x24cb;
+ t.Vdotbelow = 0x1e7e;
+ t.Vecyrillic = 0x0412;
+ t.Vewarmenian = 0x054e;
+ t.Vhook = 0x01b2;
+ t.Vmonospace = 0xff36;
+ t.Voarmenian = 0x0548;
+ t.Vsmall = 0xf776;
+ t.Vtilde = 0x1e7c;
+ t.W = 0x0057;
+ t.Wacute = 0x1e82;
+ t.Wcircle = 0x24cc;
+ t.Wcircumflex = 0x0174;
+ t.Wdieresis = 0x1e84;
+ t.Wdotaccent = 0x1e86;
+ t.Wdotbelow = 0x1e88;
+ t.Wgrave = 0x1e80;
+ t.Wmonospace = 0xff37;
+ t.Wsmall = 0xf777;
+ t.X = 0x0058;
+ t.Xcircle = 0x24cd;
+ t.Xdieresis = 0x1e8c;
+ t.Xdotaccent = 0x1e8a;
+ t.Xeharmenian = 0x053d;
+ t.Xi = 0x039e;
+ t.Xmonospace = 0xff38;
+ t.Xsmall = 0xf778;
+ t.Y = 0x0059;
+ t.Yacute = 0x00dd;
+ t.Yacutesmall = 0xf7fd;
+ t.Yatcyrillic = 0x0462;
+ t.Ycircle = 0x24ce;
+ t.Ycircumflex = 0x0176;
+ t.Ydieresis = 0x0178;
+ t.Ydieresissmall = 0xf7ff;
+ t.Ydotaccent = 0x1e8e;
+ t.Ydotbelow = 0x1ef4;
+ t.Yericyrillic = 0x042b;
+ t.Yerudieresiscyrillic = 0x04f8;
+ t.Ygrave = 0x1ef2;
+ t.Yhook = 0x01b3;
+ t.Yhookabove = 0x1ef6;
+ t.Yiarmenian = 0x0545;
+ t.Yicyrillic = 0x0407;
+ t.Yiwnarmenian = 0x0552;
+ t.Ymonospace = 0xff39;
+ t.Ysmall = 0xf779;
+ t.Ytilde = 0x1ef8;
+ t.Yusbigcyrillic = 0x046a;
+ t.Yusbigiotifiedcyrillic = 0x046c;
+ t.Yuslittlecyrillic = 0x0466;
+ t.Yuslittleiotifiedcyrillic = 0x0468;
+ t.Z = 0x005a;
+ t.Zaarmenian = 0x0536;
+ t.Zacute = 0x0179;
+ t.Zcaron = 0x017d;
+ t.Zcaronsmall = 0xf6ff;
+ t.Zcircle = 0x24cf;
+ t.Zcircumflex = 0x1e90;
+ t.Zdot = 0x017b;
+ t.Zdotaccent = 0x017b;
+ t.Zdotbelow = 0x1e92;
+ t.Zecyrillic = 0x0417;
+ t.Zedescendercyrillic = 0x0498;
+ t.Zedieresiscyrillic = 0x04de;
+ t.Zeta = 0x0396;
+ t.Zhearmenian = 0x053a;
+ t.Zhebrevecyrillic = 0x04c1;
+ t.Zhecyrillic = 0x0416;
+ t.Zhedescendercyrillic = 0x0496;
+ t.Zhedieresiscyrillic = 0x04dc;
+ t.Zlinebelow = 0x1e94;
+ t.Zmonospace = 0xff3a;
+ t.Zsmall = 0xf77a;
+ t.Zstroke = 0x01b5;
+ t.a = 0x0061;
+ t.aabengali = 0x0986;
+ t.aacute = 0x00e1;
+ t.aadeva = 0x0906;
+ t.aagujarati = 0x0a86;
+ t.aagurmukhi = 0x0a06;
+ t.aamatragurmukhi = 0x0a3e;
+ t.aarusquare = 0x3303;
+ t.aavowelsignbengali = 0x09be;
+ t.aavowelsigndeva = 0x093e;
+ t.aavowelsigngujarati = 0x0abe;
+ t.abbreviationmarkarmenian = 0x055f;
+ t.abbreviationsigndeva = 0x0970;
+ t.abengali = 0x0985;
+ t.abopomofo = 0x311a;
+ t.abreve = 0x0103;
+ t.abreveacute = 0x1eaf;
+ t.abrevecyrillic = 0x04d1;
+ t.abrevedotbelow = 0x1eb7;
+ t.abrevegrave = 0x1eb1;
+ t.abrevehookabove = 0x1eb3;
+ t.abrevetilde = 0x1eb5;
+ t.acaron = 0x01ce;
+ t.acircle = 0x24d0;
+ t.acircumflex = 0x00e2;
+ t.acircumflexacute = 0x1ea5;
+ t.acircumflexdotbelow = 0x1ead;
+ t.acircumflexgrave = 0x1ea7;
+ t.acircumflexhookabove = 0x1ea9;
+ t.acircumflextilde = 0x1eab;
+ t.acute = 0x00b4;
+ t.acutebelowcmb = 0x0317;
+ t.acutecmb = 0x0301;
+ t.acutecomb = 0x0301;
+ t.acutedeva = 0x0954;
+ t.acutelowmod = 0x02cf;
+ t.acutetonecmb = 0x0341;
+ t.acyrillic = 0x0430;
+ t.adblgrave = 0x0201;
+ t.addakgurmukhi = 0x0a71;
+ t.adeva = 0x0905;
+ t.adieresis = 0x00e4;
+ t.adieresiscyrillic = 0x04d3;
+ t.adieresismacron = 0x01df;
+ t.adotbelow = 0x1ea1;
+ t.adotmacron = 0x01e1;
+ t.ae = 0x00e6;
+ t.aeacute = 0x01fd;
+ t.aekorean = 0x3150;
+ t.aemacron = 0x01e3;
+ t.afii00208 = 0x2015;
+ t.afii08941 = 0x20a4;
+ t.afii10017 = 0x0410;
+ t.afii10018 = 0x0411;
+ t.afii10019 = 0x0412;
+ t.afii10020 = 0x0413;
+ t.afii10021 = 0x0414;
+ t.afii10022 = 0x0415;
+ t.afii10023 = 0x0401;
+ t.afii10024 = 0x0416;
+ t.afii10025 = 0x0417;
+ t.afii10026 = 0x0418;
+ t.afii10027 = 0x0419;
+ t.afii10028 = 0x041a;
+ t.afii10029 = 0x041b;
+ t.afii10030 = 0x041c;
+ t.afii10031 = 0x041d;
+ t.afii10032 = 0x041e;
+ t.afii10033 = 0x041f;
+ t.afii10034 = 0x0420;
+ t.afii10035 = 0x0421;
+ t.afii10036 = 0x0422;
+ t.afii10037 = 0x0423;
+ t.afii10038 = 0x0424;
+ t.afii10039 = 0x0425;
+ t.afii10040 = 0x0426;
+ t.afii10041 = 0x0427;
+ t.afii10042 = 0x0428;
+ t.afii10043 = 0x0429;
+ t.afii10044 = 0x042a;
+ t.afii10045 = 0x042b;
+ t.afii10046 = 0x042c;
+ t.afii10047 = 0x042d;
+ t.afii10048 = 0x042e;
+ t.afii10049 = 0x042f;
+ t.afii10050 = 0x0490;
+ t.afii10051 = 0x0402;
+ t.afii10052 = 0x0403;
+ t.afii10053 = 0x0404;
+ t.afii10054 = 0x0405;
+ t.afii10055 = 0x0406;
+ t.afii10056 = 0x0407;
+ t.afii10057 = 0x0408;
+ t.afii10058 = 0x0409;
+ t.afii10059 = 0x040a;
+ t.afii10060 = 0x040b;
+ t.afii10061 = 0x040c;
+ t.afii10062 = 0x040e;
+ t.afii10063 = 0xf6c4;
+ t.afii10064 = 0xf6c5;
+ t.afii10065 = 0x0430;
+ t.afii10066 = 0x0431;
+ t.afii10067 = 0x0432;
+ t.afii10068 = 0x0433;
+ t.afii10069 = 0x0434;
+ t.afii10070 = 0x0435;
+ t.afii10071 = 0x0451;
+ t.afii10072 = 0x0436;
+ t.afii10073 = 0x0437;
+ t.afii10074 = 0x0438;
+ t.afii10075 = 0x0439;
+ t.afii10076 = 0x043a;
+ t.afii10077 = 0x043b;
+ t.afii10078 = 0x043c;
+ t.afii10079 = 0x043d;
+ t.afii10080 = 0x043e;
+ t.afii10081 = 0x043f;
+ t.afii10082 = 0x0440;
+ t.afii10083 = 0x0441;
+ t.afii10084 = 0x0442;
+ t.afii10085 = 0x0443;
+ t.afii10086 = 0x0444;
+ t.afii10087 = 0x0445;
+ t.afii10088 = 0x0446;
+ t.afii10089 = 0x0447;
+ t.afii10090 = 0x0448;
+ t.afii10091 = 0x0449;
+ t.afii10092 = 0x044a;
+ t.afii10093 = 0x044b;
+ t.afii10094 = 0x044c;
+ t.afii10095 = 0x044d;
+ t.afii10096 = 0x044e;
+ t.afii10097 = 0x044f;
+ t.afii10098 = 0x0491;
+ t.afii10099 = 0x0452;
+ t.afii10100 = 0x0453;
+ t.afii10101 = 0x0454;
+ t.afii10102 = 0x0455;
+ t.afii10103 = 0x0456;
+ t.afii10104 = 0x0457;
+ t.afii10105 = 0x0458;
+ t.afii10106 = 0x0459;
+ t.afii10107 = 0x045a;
+ t.afii10108 = 0x045b;
+ t.afii10109 = 0x045c;
+ t.afii10110 = 0x045e;
+ t.afii10145 = 0x040f;
+ t.afii10146 = 0x0462;
+ t.afii10147 = 0x0472;
+ t.afii10148 = 0x0474;
+ t.afii10192 = 0xf6c6;
+ t.afii10193 = 0x045f;
+ t.afii10194 = 0x0463;
+ t.afii10195 = 0x0473;
+ t.afii10196 = 0x0475;
+ t.afii10831 = 0xf6c7;
+ t.afii10832 = 0xf6c8;
+ t.afii10846 = 0x04d9;
+ t.afii299 = 0x200e;
+ t.afii300 = 0x200f;
+ t.afii301 = 0x200d;
+ t.afii57381 = 0x066a;
+ t.afii57388 = 0x060c;
+ t.afii57392 = 0x0660;
+ t.afii57393 = 0x0661;
+ t.afii57394 = 0x0662;
+ t.afii57395 = 0x0663;
+ t.afii57396 = 0x0664;
+ t.afii57397 = 0x0665;
+ t.afii57398 = 0x0666;
+ t.afii57399 = 0x0667;
+ t.afii57400 = 0x0668;
+ t.afii57401 = 0x0669;
+ t.afii57403 = 0x061b;
+ t.afii57407 = 0x061f;
+ t.afii57409 = 0x0621;
+ t.afii57410 = 0x0622;
+ t.afii57411 = 0x0623;
+ t.afii57412 = 0x0624;
+ t.afii57413 = 0x0625;
+ t.afii57414 = 0x0626;
+ t.afii57415 = 0x0627;
+ t.afii57416 = 0x0628;
+ t.afii57417 = 0x0629;
+ t.afii57418 = 0x062a;
+ t.afii57419 = 0x062b;
+ t.afii57420 = 0x062c;
+ t.afii57421 = 0x062d;
+ t.afii57422 = 0x062e;
+ t.afii57423 = 0x062f;
+ t.afii57424 = 0x0630;
+ t.afii57425 = 0x0631;
+ t.afii57426 = 0x0632;
+ t.afii57427 = 0x0633;
+ t.afii57428 = 0x0634;
+ t.afii57429 = 0x0635;
+ t.afii57430 = 0x0636;
+ t.afii57431 = 0x0637;
+ t.afii57432 = 0x0638;
+ t.afii57433 = 0x0639;
+ t.afii57434 = 0x063a;
+ t.afii57440 = 0x0640;
+ t.afii57441 = 0x0641;
+ t.afii57442 = 0x0642;
+ t.afii57443 = 0x0643;
+ t.afii57444 = 0x0644;
+ t.afii57445 = 0x0645;
+ t.afii57446 = 0x0646;
+ t.afii57448 = 0x0648;
+ t.afii57449 = 0x0649;
+ t.afii57450 = 0x064a;
+ t.afii57451 = 0x064b;
+ t.afii57452 = 0x064c;
+ t.afii57453 = 0x064d;
+ t.afii57454 = 0x064e;
+ t.afii57455 = 0x064f;
+ t.afii57456 = 0x0650;
+ t.afii57457 = 0x0651;
+ t.afii57458 = 0x0652;
+ t.afii57470 = 0x0647;
+ t.afii57505 = 0x06a4;
+ t.afii57506 = 0x067e;
+ t.afii57507 = 0x0686;
+ t.afii57508 = 0x0698;
+ t.afii57509 = 0x06af;
+ t.afii57511 = 0x0679;
+ t.afii57512 = 0x0688;
+ t.afii57513 = 0x0691;
+ t.afii57514 = 0x06ba;
+ t.afii57519 = 0x06d2;
+ t.afii57534 = 0x06d5;
+ t.afii57636 = 0x20aa;
+ t.afii57645 = 0x05be;
+ t.afii57658 = 0x05c3;
+ t.afii57664 = 0x05d0;
+ t.afii57665 = 0x05d1;
+ t.afii57666 = 0x05d2;
+ t.afii57667 = 0x05d3;
+ t.afii57668 = 0x05d4;
+ t.afii57669 = 0x05d5;
+ t.afii57670 = 0x05d6;
+ t.afii57671 = 0x05d7;
+ t.afii57672 = 0x05d8;
+ t.afii57673 = 0x05d9;
+ t.afii57674 = 0x05da;
+ t.afii57675 = 0x05db;
+ t.afii57676 = 0x05dc;
+ t.afii57677 = 0x05dd;
+ t.afii57678 = 0x05de;
+ t.afii57679 = 0x05df;
+ t.afii57680 = 0x05e0;
+ t.afii57681 = 0x05e1;
+ t.afii57682 = 0x05e2;
+ t.afii57683 = 0x05e3;
+ t.afii57684 = 0x05e4;
+ t.afii57685 = 0x05e5;
+ t.afii57686 = 0x05e6;
+ t.afii57687 = 0x05e7;
+ t.afii57688 = 0x05e8;
+ t.afii57689 = 0x05e9;
+ t.afii57690 = 0x05ea;
+ t.afii57694 = 0xfb2a;
+ t.afii57695 = 0xfb2b;
+ t.afii57700 = 0xfb4b;
+ t.afii57705 = 0xfb1f;
+ t.afii57716 = 0x05f0;
+ t.afii57717 = 0x05f1;
+ t.afii57718 = 0x05f2;
+ t.afii57723 = 0xfb35;
+ t.afii57793 = 0x05b4;
+ t.afii57794 = 0x05b5;
+ t.afii57795 = 0x05b6;
+ t.afii57796 = 0x05bb;
+ t.afii57797 = 0x05b8;
+ t.afii57798 = 0x05b7;
+ t.afii57799 = 0x05b0;
+ t.afii57800 = 0x05b2;
+ t.afii57801 = 0x05b1;
+ t.afii57802 = 0x05b3;
+ t.afii57803 = 0x05c2;
+ t.afii57804 = 0x05c1;
+ t.afii57806 = 0x05b9;
+ t.afii57807 = 0x05bc;
+ t.afii57839 = 0x05bd;
+ t.afii57841 = 0x05bf;
+ t.afii57842 = 0x05c0;
+ t.afii57929 = 0x02bc;
+ t.afii61248 = 0x2105;
+ t.afii61289 = 0x2113;
+ t.afii61352 = 0x2116;
+ t.afii61573 = 0x202c;
+ t.afii61574 = 0x202d;
+ t.afii61575 = 0x202e;
+ t.afii61664 = 0x200c;
+ t.afii63167 = 0x066d;
+ t.afii64937 = 0x02bd;
+ t.agrave = 0x00e0;
+ t.agujarati = 0x0a85;
+ t.agurmukhi = 0x0a05;
+ t.ahiragana = 0x3042;
+ t.ahookabove = 0x1ea3;
+ t.aibengali = 0x0990;
+ t.aibopomofo = 0x311e;
+ t.aideva = 0x0910;
+ t.aiecyrillic = 0x04d5;
+ t.aigujarati = 0x0a90;
+ t.aigurmukhi = 0x0a10;
+ t.aimatragurmukhi = 0x0a48;
+ t.ainarabic = 0x0639;
+ t.ainfinalarabic = 0xfeca;
+ t.aininitialarabic = 0xfecb;
+ t.ainmedialarabic = 0xfecc;
+ t.ainvertedbreve = 0x0203;
+ t.aivowelsignbengali = 0x09c8;
+ t.aivowelsigndeva = 0x0948;
+ t.aivowelsigngujarati = 0x0ac8;
+ t.akatakana = 0x30a2;
+ t.akatakanahalfwidth = 0xff71;
+ t.akorean = 0x314f;
+ t.alef = 0x05d0;
+ t.alefarabic = 0x0627;
+ t.alefdageshhebrew = 0xfb30;
+ t.aleffinalarabic = 0xfe8e;
+ t.alefhamzaabovearabic = 0x0623;
+ t.alefhamzaabovefinalarabic = 0xfe84;
+ t.alefhamzabelowarabic = 0x0625;
+ t.alefhamzabelowfinalarabic = 0xfe88;
+ t.alefhebrew = 0x05d0;
+ t.aleflamedhebrew = 0xfb4f;
+ t.alefmaddaabovearabic = 0x0622;
+ t.alefmaddaabovefinalarabic = 0xfe82;
+ t.alefmaksuraarabic = 0x0649;
+ t.alefmaksurafinalarabic = 0xfef0;
+ t.alefmaksurainitialarabic = 0xfef3;
+ t.alefmaksuramedialarabic = 0xfef4;
+ t.alefpatahhebrew = 0xfb2e;
+ t.alefqamatshebrew = 0xfb2f;
+ t.aleph = 0x2135;
+ t.allequal = 0x224c;
+ t.alpha = 0x03b1;
+ t.alphatonos = 0x03ac;
+ t.amacron = 0x0101;
+ t.amonospace = 0xff41;
+ t.ampersand = 0x0026;
+ t.ampersandmonospace = 0xff06;
+ t.ampersandsmall = 0xf726;
+ t.amsquare = 0x33c2;
+ t.anbopomofo = 0x3122;
+ t.angbopomofo = 0x3124;
+ t.angbracketleft = 0x3008;
+ t.angbracketright = 0x3009;
+ t.angkhankhuthai = 0x0e5a;
+ t.angle = 0x2220;
+ t.anglebracketleft = 0x3008;
+ t.anglebracketleftvertical = 0xfe3f;
+ t.anglebracketright = 0x3009;
+ t.anglebracketrightvertical = 0xfe40;
+ t.angleleft = 0x2329;
+ t.angleright = 0x232a;
+ t.angstrom = 0x212b;
+ t.anoteleia = 0x0387;
+ t.anudattadeva = 0x0952;
+ t.anusvarabengali = 0x0982;
+ t.anusvaradeva = 0x0902;
+ t.anusvaragujarati = 0x0a82;
+ t.aogonek = 0x0105;
+ t.apaatosquare = 0x3300;
+ t.aparen = 0x249c;
+ t.apostrophearmenian = 0x055a;
+ t.apostrophemod = 0x02bc;
+ t.apple = 0xf8ff;
+ t.approaches = 0x2250;
+ t.approxequal = 0x2248;
+ t.approxequalorimage = 0x2252;
+ t.approximatelyequal = 0x2245;
+ t.araeaekorean = 0x318e;
+ t.araeakorean = 0x318d;
+ t.arc = 0x2312;
+ t.arighthalfring = 0x1e9a;
+ t.aring = 0x00e5;
+ t.aringacute = 0x01fb;
+ t.aringbelow = 0x1e01;
+ t.arrowboth = 0x2194;
+ t.arrowdashdown = 0x21e3;
+ t.arrowdashleft = 0x21e0;
+ t.arrowdashright = 0x21e2;
+ t.arrowdashup = 0x21e1;
+ t.arrowdblboth = 0x21d4;
+ t.arrowdbldown = 0x21d3;
+ t.arrowdblleft = 0x21d0;
+ t.arrowdblright = 0x21d2;
+ t.arrowdblup = 0x21d1;
+ t.arrowdown = 0x2193;
+ t.arrowdownleft = 0x2199;
+ t.arrowdownright = 0x2198;
+ t.arrowdownwhite = 0x21e9;
+ t.arrowheaddownmod = 0x02c5;
+ t.arrowheadleftmod = 0x02c2;
+ t.arrowheadrightmod = 0x02c3;
+ t.arrowheadupmod = 0x02c4;
+ t.arrowhorizex = 0xf8e7;
+ t.arrowleft = 0x2190;
+ t.arrowleftdbl = 0x21d0;
+ t.arrowleftdblstroke = 0x21cd;
+ t.arrowleftoverright = 0x21c6;
+ t.arrowleftwhite = 0x21e6;
+ t.arrowright = 0x2192;
+ t.arrowrightdblstroke = 0x21cf;
+ t.arrowrightheavy = 0x279e;
+ t.arrowrightoverleft = 0x21c4;
+ t.arrowrightwhite = 0x21e8;
+ t.arrowtableft = 0x21e4;
+ t.arrowtabright = 0x21e5;
+ t.arrowup = 0x2191;
+ t.arrowupdn = 0x2195;
+ t.arrowupdnbse = 0x21a8;
+ t.arrowupdownbase = 0x21a8;
+ t.arrowupleft = 0x2196;
+ t.arrowupleftofdown = 0x21c5;
+ t.arrowupright = 0x2197;
+ t.arrowupwhite = 0x21e7;
+ t.arrowvertex = 0xf8e6;
+ t.asciicircum = 0x005e;
+ t.asciicircummonospace = 0xff3e;
+ t.asciitilde = 0x007e;
+ t.asciitildemonospace = 0xff5e;
+ t.ascript = 0x0251;
+ t.ascriptturned = 0x0252;
+ t.asmallhiragana = 0x3041;
+ t.asmallkatakana = 0x30a1;
+ t.asmallkatakanahalfwidth = 0xff67;
+ t.asterisk = 0x002a;
+ t.asteriskaltonearabic = 0x066d;
+ t.asteriskarabic = 0x066d;
+ t.asteriskmath = 0x2217;
+ t.asteriskmonospace = 0xff0a;
+ t.asterisksmall = 0xfe61;
+ t.asterism = 0x2042;
+ t.asuperior = 0xf6e9;
+ t.asymptoticallyequal = 0x2243;
+ t.at = 0x0040;
+ t.atilde = 0x00e3;
+ t.atmonospace = 0xff20;
+ t.atsmall = 0xfe6b;
+ t.aturned = 0x0250;
+ t.aubengali = 0x0994;
+ t.aubopomofo = 0x3120;
+ t.audeva = 0x0914;
+ t.augujarati = 0x0a94;
+ t.augurmukhi = 0x0a14;
+ t.aulengthmarkbengali = 0x09d7;
+ t.aumatragurmukhi = 0x0a4c;
+ t.auvowelsignbengali = 0x09cc;
+ t.auvowelsigndeva = 0x094c;
+ t.auvowelsigngujarati = 0x0acc;
+ t.avagrahadeva = 0x093d;
+ t.aybarmenian = 0x0561;
+ t.ayin = 0x05e2;
+ t.ayinaltonehebrew = 0xfb20;
+ t.ayinhebrew = 0x05e2;
+ t.b = 0x0062;
+ t.babengali = 0x09ac;
+ t.backslash = 0x005c;
+ t.backslashmonospace = 0xff3c;
+ t.badeva = 0x092c;
+ t.bagujarati = 0x0aac;
+ t.bagurmukhi = 0x0a2c;
+ t.bahiragana = 0x3070;
+ t.bahtthai = 0x0e3f;
+ t.bakatakana = 0x30d0;
+ t.bar = 0x007c;
+ t.barmonospace = 0xff5c;
+ t.bbopomofo = 0x3105;
+ t.bcircle = 0x24d1;
+ t.bdotaccent = 0x1e03;
+ t.bdotbelow = 0x1e05;
+ t.beamedsixteenthnotes = 0x266c;
+ t.because = 0x2235;
+ t.becyrillic = 0x0431;
+ t.beharabic = 0x0628;
+ t.behfinalarabic = 0xfe90;
+ t.behinitialarabic = 0xfe91;
+ t.behiragana = 0x3079;
+ t.behmedialarabic = 0xfe92;
+ t.behmeeminitialarabic = 0xfc9f;
+ t.behmeemisolatedarabic = 0xfc08;
+ t.behnoonfinalarabic = 0xfc6d;
+ t.bekatakana = 0x30d9;
+ t.benarmenian = 0x0562;
+ t.bet = 0x05d1;
+ t.beta = 0x03b2;
+ t.betasymbolgreek = 0x03d0;
+ t.betdagesh = 0xfb31;
+ t.betdageshhebrew = 0xfb31;
+ t.bethebrew = 0x05d1;
+ t.betrafehebrew = 0xfb4c;
+ t.bhabengali = 0x09ad;
+ t.bhadeva = 0x092d;
+ t.bhagujarati = 0x0aad;
+ t.bhagurmukhi = 0x0a2d;
+ t.bhook = 0x0253;
+ t.bihiragana = 0x3073;
+ t.bikatakana = 0x30d3;
+ t.bilabialclick = 0x0298;
+ t.bindigurmukhi = 0x0a02;
+ t.birusquare = 0x3331;
+ t.blackcircle = 0x25cf;
+ t.blackdiamond = 0x25c6;
+ t.blackdownpointingtriangle = 0x25bc;
+ t.blackleftpointingpointer = 0x25c4;
+ t.blackleftpointingtriangle = 0x25c0;
+ t.blacklenticularbracketleft = 0x3010;
+ t.blacklenticularbracketleftvertical = 0xfe3b;
+ t.blacklenticularbracketright = 0x3011;
+ t.blacklenticularbracketrightvertical = 0xfe3c;
+ t.blacklowerlefttriangle = 0x25e3;
+ t.blacklowerrighttriangle = 0x25e2;
+ t.blackrectangle = 0x25ac;
+ t.blackrightpointingpointer = 0x25ba;
+ t.blackrightpointingtriangle = 0x25b6;
+ t.blacksmallsquare = 0x25aa;
+ t.blacksmilingface = 0x263b;
+ t.blacksquare = 0x25a0;
+ t.blackstar = 0x2605;
+ t.blackupperlefttriangle = 0x25e4;
+ t.blackupperrighttriangle = 0x25e5;
+ t.blackuppointingsmalltriangle = 0x25b4;
+ t.blackuppointingtriangle = 0x25b2;
+ t.blank = 0x2423;
+ t.blinebelow = 0x1e07;
+ t.block = 0x2588;
+ t.bmonospace = 0xff42;
+ t.bobaimaithai = 0x0e1a;
+ t.bohiragana = 0x307c;
+ t.bokatakana = 0x30dc;
+ t.bparen = 0x249d;
+ t.bqsquare = 0x33c3;
+ t.braceex = 0xf8f4;
+ t.braceleft = 0x007b;
+ t.braceleftbt = 0xf8f3;
+ t.braceleftmid = 0xf8f2;
+ t.braceleftmonospace = 0xff5b;
+ t.braceleftsmall = 0xfe5b;
+ t.bracelefttp = 0xf8f1;
+ t.braceleftvertical = 0xfe37;
+ t.braceright = 0x007d;
+ t.bracerightbt = 0xf8fe;
+ t.bracerightmid = 0xf8fd;
+ t.bracerightmonospace = 0xff5d;
+ t.bracerightsmall = 0xfe5c;
+ t.bracerighttp = 0xf8fc;
+ t.bracerightvertical = 0xfe38;
+ t.bracketleft = 0x005b;
+ t.bracketleftbt = 0xf8f0;
+ t.bracketleftex = 0xf8ef;
+ t.bracketleftmonospace = 0xff3b;
+ t.bracketlefttp = 0xf8ee;
+ t.bracketright = 0x005d;
+ t.bracketrightbt = 0xf8fb;
+ t.bracketrightex = 0xf8fa;
+ t.bracketrightmonospace = 0xff3d;
+ t.bracketrighttp = 0xf8f9;
+ t.breve = 0x02d8;
+ t.brevebelowcmb = 0x032e;
+ t.brevecmb = 0x0306;
+ t.breveinvertedbelowcmb = 0x032f;
+ t.breveinvertedcmb = 0x0311;
+ t.breveinverteddoublecmb = 0x0361;
+ t.bridgebelowcmb = 0x032a;
+ t.bridgeinvertedbelowcmb = 0x033a;
+ t.brokenbar = 0x00a6;
+ t.bstroke = 0x0180;
+ t.bsuperior = 0xf6ea;
+ t.btopbar = 0x0183;
+ t.buhiragana = 0x3076;
+ t.bukatakana = 0x30d6;
+ t.bullet = 0x2022;
+ t.bulletinverse = 0x25d8;
+ t.bulletoperator = 0x2219;
+ t.bullseye = 0x25ce;
+ t.c = 0x0063;
+ t.caarmenian = 0x056e;
+ t.cabengali = 0x099a;
+ t.cacute = 0x0107;
+ t.cadeva = 0x091a;
+ t.cagujarati = 0x0a9a;
+ t.cagurmukhi = 0x0a1a;
+ t.calsquare = 0x3388;
+ t.candrabindubengali = 0x0981;
+ t.candrabinducmb = 0x0310;
+ t.candrabindudeva = 0x0901;
+ t.candrabindugujarati = 0x0a81;
+ t.capslock = 0x21ea;
+ t.careof = 0x2105;
+ t.caron = 0x02c7;
+ t.caronbelowcmb = 0x032c;
+ t.caroncmb = 0x030c;
+ t.carriagereturn = 0x21b5;
+ t.cbopomofo = 0x3118;
+ t.ccaron = 0x010d;
+ t.ccedilla = 0x00e7;
+ t.ccedillaacute = 0x1e09;
+ t.ccircle = 0x24d2;
+ t.ccircumflex = 0x0109;
+ t.ccurl = 0x0255;
+ t.cdot = 0x010b;
+ t.cdotaccent = 0x010b;
+ t.cdsquare = 0x33c5;
+ t.cedilla = 0x00b8;
+ t.cedillacmb = 0x0327;
+ t.cent = 0x00a2;
+ t.centigrade = 0x2103;
+ t.centinferior = 0xf6df;
+ t.centmonospace = 0xffe0;
+ t.centoldstyle = 0xf7a2;
+ t.centsuperior = 0xf6e0;
+ t.chaarmenian = 0x0579;
+ t.chabengali = 0x099b;
+ t.chadeva = 0x091b;
+ t.chagujarati = 0x0a9b;
+ t.chagurmukhi = 0x0a1b;
+ t.chbopomofo = 0x3114;
+ t.cheabkhasiancyrillic = 0x04bd;
+ t.checkmark = 0x2713;
+ t.checyrillic = 0x0447;
+ t.chedescenderabkhasiancyrillic = 0x04bf;
+ t.chedescendercyrillic = 0x04b7;
+ t.chedieresiscyrillic = 0x04f5;
+ t.cheharmenian = 0x0573;
+ t.chekhakassiancyrillic = 0x04cc;
+ t.cheverticalstrokecyrillic = 0x04b9;
+ t.chi = 0x03c7;
+ t.chieuchacirclekorean = 0x3277;
+ t.chieuchaparenkorean = 0x3217;
+ t.chieuchcirclekorean = 0x3269;
+ t.chieuchkorean = 0x314a;
+ t.chieuchparenkorean = 0x3209;
+ t.chochangthai = 0x0e0a;
+ t.chochanthai = 0x0e08;
+ t.chochingthai = 0x0e09;
+ t.chochoethai = 0x0e0c;
+ t.chook = 0x0188;
+ t.cieucacirclekorean = 0x3276;
+ t.cieucaparenkorean = 0x3216;
+ t.cieuccirclekorean = 0x3268;
+ t.cieuckorean = 0x3148;
+ t.cieucparenkorean = 0x3208;
+ t.cieucuparenkorean = 0x321c;
+ t.circle = 0x25cb;
+ t.circlecopyrt = 0x00a9;
+ t.circlemultiply = 0x2297;
+ t.circleot = 0x2299;
+ t.circleplus = 0x2295;
+ t.circlepostalmark = 0x3036;
+ t.circlewithlefthalfblack = 0x25d0;
+ t.circlewithrighthalfblack = 0x25d1;
+ t.circumflex = 0x02c6;
+ t.circumflexbelowcmb = 0x032d;
+ t.circumflexcmb = 0x0302;
+ t.clear = 0x2327;
+ t.clickalveolar = 0x01c2;
+ t.clickdental = 0x01c0;
+ t.clicklateral = 0x01c1;
+ t.clickretroflex = 0x01c3;
+ t.club = 0x2663;
+ t.clubsuitblack = 0x2663;
+ t.clubsuitwhite = 0x2667;
+ t.cmcubedsquare = 0x33a4;
+ t.cmonospace = 0xff43;
+ t.cmsquaredsquare = 0x33a0;
+ t.coarmenian = 0x0581;
+ t.colon = 0x003a;
+ t.colonmonetary = 0x20a1;
+ t.colonmonospace = 0xff1a;
+ t.colonsign = 0x20a1;
+ t.colonsmall = 0xfe55;
+ t.colontriangularhalfmod = 0x02d1;
+ t.colontriangularmod = 0x02d0;
+ t.comma = 0x002c;
+ t.commaabovecmb = 0x0313;
+ t.commaaboverightcmb = 0x0315;
+ t.commaaccent = 0xf6c3;
+ t.commaarabic = 0x060c;
+ t.commaarmenian = 0x055d;
+ t.commainferior = 0xf6e1;
+ t.commamonospace = 0xff0c;
+ t.commareversedabovecmb = 0x0314;
+ t.commareversedmod = 0x02bd;
+ t.commasmall = 0xfe50;
+ t.commasuperior = 0xf6e2;
+ t.commaturnedabovecmb = 0x0312;
+ t.commaturnedmod = 0x02bb;
+ t.compass = 0x263c;
+ t.congruent = 0x2245;
+ t.contourintegral = 0x222e;
+ t.control = 0x2303;
+ t.controlACK = 0x0006;
+ t.controlBEL = 0x0007;
+ t.controlBS = 0x0008;
+ t.controlCAN = 0x0018;
+ t.controlCR = 0x000d;
+ t.controlDC1 = 0x0011;
+ t.controlDC2 = 0x0012;
+ t.controlDC3 = 0x0013;
+ t.controlDC4 = 0x0014;
+ t.controlDEL = 0x007f;
+ t.controlDLE = 0x0010;
+ t.controlEM = 0x0019;
+ t.controlENQ = 0x0005;
+ t.controlEOT = 0x0004;
+ t.controlESC = 0x001b;
+ t.controlETB = 0x0017;
+ t.controlETX = 0x0003;
+ t.controlFF = 0x000c;
+ t.controlFS = 0x001c;
+ t.controlGS = 0x001d;
+ t.controlHT = 0x0009;
+ t.controlLF = 0x000a;
+ t.controlNAK = 0x0015;
+ t.controlNULL = 0x0000;
+ t.controlRS = 0x001e;
+ t.controlSI = 0x000f;
+ t.controlSO = 0x000e;
+ t.controlSOT = 0x0002;
+ t.controlSTX = 0x0001;
+ t.controlSUB = 0x001a;
+ t.controlSYN = 0x0016;
+ t.controlUS = 0x001f;
+ t.controlVT = 0x000b;
+ t.copyright = 0x00a9;
+ t.copyrightsans = 0xf8e9;
+ t.copyrightserif = 0xf6d9;
+ t.cornerbracketleft = 0x300c;
+ t.cornerbracketlefthalfwidth = 0xff62;
+ t.cornerbracketleftvertical = 0xfe41;
+ t.cornerbracketright = 0x300d;
+ t.cornerbracketrighthalfwidth = 0xff63;
+ t.cornerbracketrightvertical = 0xfe42;
+ t.corporationsquare = 0x337f;
+ t.cosquare = 0x33c7;
+ t.coverkgsquare = 0x33c6;
+ t.cparen = 0x249e;
+ t.cruzeiro = 0x20a2;
+ t.cstretched = 0x0297;
+ t.curlyand = 0x22cf;
+ t.curlyor = 0x22ce;
+ t.currency = 0x00a4;
+ t.cyrBreve = 0xf6d1;
+ t.cyrFlex = 0xf6d2;
+ t.cyrbreve = 0xf6d4;
+ t.cyrflex = 0xf6d5;
+ t.d = 0x0064;
+ t.daarmenian = 0x0564;
+ t.dabengali = 0x09a6;
+ t.dadarabic = 0x0636;
+ t.dadeva = 0x0926;
+ t.dadfinalarabic = 0xfebe;
+ t.dadinitialarabic = 0xfebf;
+ t.dadmedialarabic = 0xfec0;
+ t.dagesh = 0x05bc;
+ t.dageshhebrew = 0x05bc;
+ t.dagger = 0x2020;
+ t.daggerdbl = 0x2021;
+ t.dagujarati = 0x0aa6;
+ t.dagurmukhi = 0x0a26;
+ t.dahiragana = 0x3060;
+ t.dakatakana = 0x30c0;
+ t.dalarabic = 0x062f;
+ t.dalet = 0x05d3;
+ t.daletdagesh = 0xfb33;
+ t.daletdageshhebrew = 0xfb33;
+ t.dalethebrew = 0x05d3;
+ t.dalfinalarabic = 0xfeaa;
+ t.dammaarabic = 0x064f;
+ t.dammalowarabic = 0x064f;
+ t.dammatanaltonearabic = 0x064c;
+ t.dammatanarabic = 0x064c;
+ t.danda = 0x0964;
+ t.dargahebrew = 0x05a7;
+ t.dargalefthebrew = 0x05a7;
+ t.dasiapneumatacyrilliccmb = 0x0485;
+ t.dblGrave = 0xf6d3;
+ t.dblanglebracketleft = 0x300a;
+ t.dblanglebracketleftvertical = 0xfe3d;
+ t.dblanglebracketright = 0x300b;
+ t.dblanglebracketrightvertical = 0xfe3e;
+ t.dblarchinvertedbelowcmb = 0x032b;
+ t.dblarrowleft = 0x21d4;
+ t.dblarrowright = 0x21d2;
+ t.dbldanda = 0x0965;
+ t.dblgrave = 0xf6d6;
+ t.dblgravecmb = 0x030f;
+ t.dblintegral = 0x222c;
+ t.dbllowline = 0x2017;
+ t.dbllowlinecmb = 0x0333;
+ t.dbloverlinecmb = 0x033f;
+ t.dblprimemod = 0x02ba;
+ t.dblverticalbar = 0x2016;
+ t.dblverticallineabovecmb = 0x030e;
+ t.dbopomofo = 0x3109;
+ t.dbsquare = 0x33c8;
+ t.dcaron = 0x010f;
+ t.dcedilla = 0x1e11;
+ t.dcircle = 0x24d3;
+ t.dcircumflexbelow = 0x1e13;
+ t.dcroat = 0x0111;
+ t.ddabengali = 0x09a1;
+ t.ddadeva = 0x0921;
+ t.ddagujarati = 0x0aa1;
+ t.ddagurmukhi = 0x0a21;
+ t.ddalarabic = 0x0688;
+ t.ddalfinalarabic = 0xfb89;
+ t.dddhadeva = 0x095c;
+ t.ddhabengali = 0x09a2;
+ t.ddhadeva = 0x0922;
+ t.ddhagujarati = 0x0aa2;
+ t.ddhagurmukhi = 0x0a22;
+ t.ddotaccent = 0x1e0b;
+ t.ddotbelow = 0x1e0d;
+ t.decimalseparatorarabic = 0x066b;
+ t.decimalseparatorpersian = 0x066b;
+ t.decyrillic = 0x0434;
+ t.degree = 0x00b0;
+ t.dehihebrew = 0x05ad;
+ t.dehiragana = 0x3067;
+ t.deicoptic = 0x03ef;
+ t.dekatakana = 0x30c7;
+ t.deleteleft = 0x232b;
+ t.deleteright = 0x2326;
+ t.delta = 0x03b4;
+ t.deltaturned = 0x018d;
+ t.denominatorminusonenumeratorbengali = 0x09f8;
+ t.dezh = 0x02a4;
+ t.dhabengali = 0x09a7;
+ t.dhadeva = 0x0927;
+ t.dhagujarati = 0x0aa7;
+ t.dhagurmukhi = 0x0a27;
+ t.dhook = 0x0257;
+ t.dialytikatonos = 0x0385;
+ t.dialytikatonoscmb = 0x0344;
+ t.diamond = 0x2666;
+ t.diamondsuitwhite = 0x2662;
+ t.dieresis = 0x00a8;
+ t.dieresisacute = 0xf6d7;
+ t.dieresisbelowcmb = 0x0324;
+ t.dieresiscmb = 0x0308;
+ t.dieresisgrave = 0xf6d8;
+ t.dieresistonos = 0x0385;
+ t.dihiragana = 0x3062;
+ t.dikatakana = 0x30c2;
+ t.dittomark = 0x3003;
+ t.divide = 0x00f7;
+ t.divides = 0x2223;
+ t.divisionslash = 0x2215;
+ t.djecyrillic = 0x0452;
+ t.dkshade = 0x2593;
+ t.dlinebelow = 0x1e0f;
+ t.dlsquare = 0x3397;
+ t.dmacron = 0x0111;
+ t.dmonospace = 0xff44;
+ t.dnblock = 0x2584;
+ t.dochadathai = 0x0e0e;
+ t.dodekthai = 0x0e14;
+ t.dohiragana = 0x3069;
+ t.dokatakana = 0x30c9;
+ t.dollar = 0x0024;
+ t.dollarinferior = 0xf6e3;
+ t.dollarmonospace = 0xff04;
+ t.dollaroldstyle = 0xf724;
+ t.dollarsmall = 0xfe69;
+ t.dollarsuperior = 0xf6e4;
+ t.dong = 0x20ab;
+ t.dorusquare = 0x3326;
+ t.dotaccent = 0x02d9;
+ t.dotaccentcmb = 0x0307;
+ t.dotbelowcmb = 0x0323;
+ t.dotbelowcomb = 0x0323;
+ t.dotkatakana = 0x30fb;
+ t.dotlessi = 0x0131;
+ t.dotlessj = 0xf6be;
+ t.dotlessjstrokehook = 0x0284;
+ t.dotmath = 0x22c5;
+ t.dottedcircle = 0x25cc;
+ t.doubleyodpatah = 0xfb1f;
+ t.doubleyodpatahhebrew = 0xfb1f;
+ t.downtackbelowcmb = 0x031e;
+ t.downtackmod = 0x02d5;
+ t.dparen = 0x249f;
+ t.dsuperior = 0xf6eb;
+ t.dtail = 0x0256;
+ t.dtopbar = 0x018c;
+ t.duhiragana = 0x3065;
+ t.dukatakana = 0x30c5;
+ t.dz = 0x01f3;
+ t.dzaltone = 0x02a3;
+ t.dzcaron = 0x01c6;
+ t.dzcurl = 0x02a5;
+ t.dzeabkhasiancyrillic = 0x04e1;
+ t.dzecyrillic = 0x0455;
+ t.dzhecyrillic = 0x045f;
+ t.e = 0x0065;
+ t.eacute = 0x00e9;
+ t.earth = 0x2641;
+ t.ebengali = 0x098f;
+ t.ebopomofo = 0x311c;
+ t.ebreve = 0x0115;
+ t.ecandradeva = 0x090d;
+ t.ecandragujarati = 0x0a8d;
+ t.ecandravowelsigndeva = 0x0945;
+ t.ecandravowelsigngujarati = 0x0ac5;
+ t.ecaron = 0x011b;
+ t.ecedillabreve = 0x1e1d;
+ t.echarmenian = 0x0565;
+ t.echyiwnarmenian = 0x0587;
+ t.ecircle = 0x24d4;
+ t.ecircumflex = 0x00ea;
+ t.ecircumflexacute = 0x1ebf;
+ t.ecircumflexbelow = 0x1e19;
+ t.ecircumflexdotbelow = 0x1ec7;
+ t.ecircumflexgrave = 0x1ec1;
+ t.ecircumflexhookabove = 0x1ec3;
+ t.ecircumflextilde = 0x1ec5;
+ t.ecyrillic = 0x0454;
+ t.edblgrave = 0x0205;
+ t.edeva = 0x090f;
+ t.edieresis = 0x00eb;
+ t.edot = 0x0117;
+ t.edotaccent = 0x0117;
+ t.edotbelow = 0x1eb9;
+ t.eegurmukhi = 0x0a0f;
+ t.eematragurmukhi = 0x0a47;
+ t.efcyrillic = 0x0444;
+ t.egrave = 0x00e8;
+ t.egujarati = 0x0a8f;
+ t.eharmenian = 0x0567;
+ t.ehbopomofo = 0x311d;
+ t.ehiragana = 0x3048;
+ t.ehookabove = 0x1ebb;
+ t.eibopomofo = 0x311f;
+ t.eight = 0x0038;
+ t.eightarabic = 0x0668;
+ t.eightbengali = 0x09ee;
+ t.eightcircle = 0x2467;
+ t.eightcircleinversesansserif = 0x2791;
+ t.eightdeva = 0x096e;
+ t.eighteencircle = 0x2471;
+ t.eighteenparen = 0x2485;
+ t.eighteenperiod = 0x2499;
+ t.eightgujarati = 0x0aee;
+ t.eightgurmukhi = 0x0a6e;
+ t.eighthackarabic = 0x0668;
+ t.eighthangzhou = 0x3028;
+ t.eighthnotebeamed = 0x266b;
+ t.eightideographicparen = 0x3227;
+ t.eightinferior = 0x2088;
+ t.eightmonospace = 0xff18;
+ t.eightoldstyle = 0xf738;
+ t.eightparen = 0x247b;
+ t.eightperiod = 0x248f;
+ t.eightpersian = 0x06f8;
+ t.eightroman = 0x2177;
+ t.eightsuperior = 0x2078;
+ t.eightthai = 0x0e58;
+ t.einvertedbreve = 0x0207;
+ t.eiotifiedcyrillic = 0x0465;
+ t.ekatakana = 0x30a8;
+ t.ekatakanahalfwidth = 0xff74;
+ t.ekonkargurmukhi = 0x0a74;
+ t.ekorean = 0x3154;
+ t.elcyrillic = 0x043b;
+ t.element = 0x2208;
+ t.elevencircle = 0x246a;
+ t.elevenparen = 0x247e;
+ t.elevenperiod = 0x2492;
+ t.elevenroman = 0x217a;
+ t.ellipsis = 0x2026;
+ t.ellipsisvertical = 0x22ee;
+ t.emacron = 0x0113;
+ t.emacronacute = 0x1e17;
+ t.emacrongrave = 0x1e15;
+ t.emcyrillic = 0x043c;
+ t.emdash = 0x2014;
+ t.emdashvertical = 0xfe31;
+ t.emonospace = 0xff45;
+ t.emphasismarkarmenian = 0x055b;
+ t.emptyset = 0x2205;
+ t.enbopomofo = 0x3123;
+ t.encyrillic = 0x043d;
+ t.endash = 0x2013;
+ t.endashvertical = 0xfe32;
+ t.endescendercyrillic = 0x04a3;
+ t.eng = 0x014b;
+ t.engbopomofo = 0x3125;
+ t.enghecyrillic = 0x04a5;
+ t.enhookcyrillic = 0x04c8;
+ t.enspace = 0x2002;
+ t.eogonek = 0x0119;
+ t.eokorean = 0x3153;
+ t.eopen = 0x025b;
+ t.eopenclosed = 0x029a;
+ t.eopenreversed = 0x025c;
+ t.eopenreversedclosed = 0x025e;
+ t.eopenreversedhook = 0x025d;
+ t.eparen = 0x24a0;
+ t.epsilon = 0x03b5;
+ t.epsilontonos = 0x03ad;
+ t.equal = 0x003d;
+ t.equalmonospace = 0xff1d;
+ t.equalsmall = 0xfe66;
+ t.equalsuperior = 0x207c;
+ t.equivalence = 0x2261;
+ t.erbopomofo = 0x3126;
+ t.ercyrillic = 0x0440;
+ t.ereversed = 0x0258;
+ t.ereversedcyrillic = 0x044d;
+ t.escyrillic = 0x0441;
+ t.esdescendercyrillic = 0x04ab;
+ t.esh = 0x0283;
+ t.eshcurl = 0x0286;
+ t.eshortdeva = 0x090e;
+ t.eshortvowelsigndeva = 0x0946;
+ t.eshreversedloop = 0x01aa;
+ t.eshsquatreversed = 0x0285;
+ t.esmallhiragana = 0x3047;
+ t.esmallkatakana = 0x30a7;
+ t.esmallkatakanahalfwidth = 0xff6a;
+ t.estimated = 0x212e;
+ t.esuperior = 0xf6ec;
+ t.eta = 0x03b7;
+ t.etarmenian = 0x0568;
+ t.etatonos = 0x03ae;
+ t.eth = 0x00f0;
+ t.etilde = 0x1ebd;
+ t.etildebelow = 0x1e1b;
+ t.etnahtafoukhhebrew = 0x0591;
+ t.etnahtafoukhlefthebrew = 0x0591;
+ t.etnahtahebrew = 0x0591;
+ t.etnahtalefthebrew = 0x0591;
+ t.eturned = 0x01dd;
+ t.eukorean = 0x3161;
+ t.euro = 0x20ac;
+ t.evowelsignbengali = 0x09c7;
+ t.evowelsigndeva = 0x0947;
+ t.evowelsigngujarati = 0x0ac7;
+ t.exclam = 0x0021;
+ t.exclamarmenian = 0x055c;
+ t.exclamdbl = 0x203c;
+ t.exclamdown = 0x00a1;
+ t.exclamdownsmall = 0xf7a1;
+ t.exclammonospace = 0xff01;
+ t.exclamsmall = 0xf721;
+ t.existential = 0x2203;
+ t.ezh = 0x0292;
+ t.ezhcaron = 0x01ef;
+ t.ezhcurl = 0x0293;
+ t.ezhreversed = 0x01b9;
+ t.ezhtail = 0x01ba;
+ t.f = 0x0066;
+ t.fadeva = 0x095e;
+ t.fagurmukhi = 0x0a5e;
+ t.fahrenheit = 0x2109;
+ t.fathaarabic = 0x064e;
+ t.fathalowarabic = 0x064e;
+ t.fathatanarabic = 0x064b;
+ t.fbopomofo = 0x3108;
+ t.fcircle = 0x24d5;
+ t.fdotaccent = 0x1e1f;
+ t.feharabic = 0x0641;
+ t.feharmenian = 0x0586;
+ t.fehfinalarabic = 0xfed2;
+ t.fehinitialarabic = 0xfed3;
+ t.fehmedialarabic = 0xfed4;
+ t.feicoptic = 0x03e5;
+ t.female = 0x2640;
+ t.ff = 0xfb00;
+ t.f_f = 0xfb00;
+ t.ffi = 0xfb03;
+ t.ffl = 0xfb04;
+ t.fi = 0xfb01;
+ t.fifteencircle = 0x246e;
+ t.fifteenparen = 0x2482;
+ t.fifteenperiod = 0x2496;
+ t.figuredash = 0x2012;
+ t.filledbox = 0x25a0;
+ t.filledrect = 0x25ac;
+ t.finalkaf = 0x05da;
+ t.finalkafdagesh = 0xfb3a;
+ t.finalkafdageshhebrew = 0xfb3a;
+ t.finalkafhebrew = 0x05da;
+ t.finalmem = 0x05dd;
+ t.finalmemhebrew = 0x05dd;
+ t.finalnun = 0x05df;
+ t.finalnunhebrew = 0x05df;
+ t.finalpe = 0x05e3;
+ t.finalpehebrew = 0x05e3;
+ t.finaltsadi = 0x05e5;
+ t.finaltsadihebrew = 0x05e5;
+ t.firsttonechinese = 0x02c9;
+ t.fisheye = 0x25c9;
+ t.fitacyrillic = 0x0473;
+ t.five = 0x0035;
+ t.fivearabic = 0x0665;
+ t.fivebengali = 0x09eb;
+ t.fivecircle = 0x2464;
+ t.fivecircleinversesansserif = 0x278e;
+ t.fivedeva = 0x096b;
+ t.fiveeighths = 0x215d;
+ t.fivegujarati = 0x0aeb;
+ t.fivegurmukhi = 0x0a6b;
+ t.fivehackarabic = 0x0665;
+ t.fivehangzhou = 0x3025;
+ t.fiveideographicparen = 0x3224;
+ t.fiveinferior = 0x2085;
+ t.fivemonospace = 0xff15;
+ t.fiveoldstyle = 0xf735;
+ t.fiveparen = 0x2478;
+ t.fiveperiod = 0x248c;
+ t.fivepersian = 0x06f5;
+ t.fiveroman = 0x2174;
+ t.fivesuperior = 0x2075;
+ t.fivethai = 0x0e55;
+ t.fl = 0xfb02;
+ t.florin = 0x0192;
+ t.fmonospace = 0xff46;
+ t.fmsquare = 0x3399;
+ t.fofanthai = 0x0e1f;
+ t.fofathai = 0x0e1d;
+ t.fongmanthai = 0x0e4f;
+ t.forall = 0x2200;
+ t.four = 0x0034;
+ t.fourarabic = 0x0664;
+ t.fourbengali = 0x09ea;
+ t.fourcircle = 0x2463;
+ t.fourcircleinversesansserif = 0x278d;
+ t.fourdeva = 0x096a;
+ t.fourgujarati = 0x0aea;
+ t.fourgurmukhi = 0x0a6a;
+ t.fourhackarabic = 0x0664;
+ t.fourhangzhou = 0x3024;
+ t.fourideographicparen = 0x3223;
+ t.fourinferior = 0x2084;
+ t.fourmonospace = 0xff14;
+ t.fournumeratorbengali = 0x09f7;
+ t.fouroldstyle = 0xf734;
+ t.fourparen = 0x2477;
+ t.fourperiod = 0x248b;
+ t.fourpersian = 0x06f4;
+ t.fourroman = 0x2173;
+ t.foursuperior = 0x2074;
+ t.fourteencircle = 0x246d;
+ t.fourteenparen = 0x2481;
+ t.fourteenperiod = 0x2495;
+ t.fourthai = 0x0e54;
+ t.fourthtonechinese = 0x02cb;
+ t.fparen = 0x24a1;
+ t.fraction = 0x2044;
+ t.franc = 0x20a3;
+ t.g = 0x0067;
+ t.gabengali = 0x0997;
+ t.gacute = 0x01f5;
+ t.gadeva = 0x0917;
+ t.gafarabic = 0x06af;
+ t.gaffinalarabic = 0xfb93;
+ t.gafinitialarabic = 0xfb94;
+ t.gafmedialarabic = 0xfb95;
+ t.gagujarati = 0x0a97;
+ t.gagurmukhi = 0x0a17;
+ t.gahiragana = 0x304c;
+ t.gakatakana = 0x30ac;
+ t.gamma = 0x03b3;
+ t.gammalatinsmall = 0x0263;
+ t.gammasuperior = 0x02e0;
+ t.gangiacoptic = 0x03eb;
+ t.gbopomofo = 0x310d;
+ t.gbreve = 0x011f;
+ t.gcaron = 0x01e7;
+ t.gcedilla = 0x0123;
+ t.gcircle = 0x24d6;
+ t.gcircumflex = 0x011d;
+ t.gcommaaccent = 0x0123;
+ t.gdot = 0x0121;
+ t.gdotaccent = 0x0121;
+ t.gecyrillic = 0x0433;
+ t.gehiragana = 0x3052;
+ t.gekatakana = 0x30b2;
+ t.geometricallyequal = 0x2251;
+ t.gereshaccenthebrew = 0x059c;
+ t.gereshhebrew = 0x05f3;
+ t.gereshmuqdamhebrew = 0x059d;
+ t.germandbls = 0x00df;
+ t.gershayimaccenthebrew = 0x059e;
+ t.gershayimhebrew = 0x05f4;
+ t.getamark = 0x3013;
+ t.ghabengali = 0x0998;
+ t.ghadarmenian = 0x0572;
+ t.ghadeva = 0x0918;
+ t.ghagujarati = 0x0a98;
+ t.ghagurmukhi = 0x0a18;
+ t.ghainarabic = 0x063a;
+ t.ghainfinalarabic = 0xfece;
+ t.ghaininitialarabic = 0xfecf;
+ t.ghainmedialarabic = 0xfed0;
+ t.ghemiddlehookcyrillic = 0x0495;
+ t.ghestrokecyrillic = 0x0493;
+ t.gheupturncyrillic = 0x0491;
+ t.ghhadeva = 0x095a;
+ t.ghhagurmukhi = 0x0a5a;
+ t.ghook = 0x0260;
+ t.ghzsquare = 0x3393;
+ t.gihiragana = 0x304e;
+ t.gikatakana = 0x30ae;
+ t.gimarmenian = 0x0563;
+ t.gimel = 0x05d2;
+ t.gimeldagesh = 0xfb32;
+ t.gimeldageshhebrew = 0xfb32;
+ t.gimelhebrew = 0x05d2;
+ t.gjecyrillic = 0x0453;
+ t.glottalinvertedstroke = 0x01be;
+ t.glottalstop = 0x0294;
+ t.glottalstopinverted = 0x0296;
+ t.glottalstopmod = 0x02c0;
+ t.glottalstopreversed = 0x0295;
+ t.glottalstopreversedmod = 0x02c1;
+ t.glottalstopreversedsuperior = 0x02e4;
+ t.glottalstopstroke = 0x02a1;
+ t.glottalstopstrokereversed = 0x02a2;
+ t.gmacron = 0x1e21;
+ t.gmonospace = 0xff47;
+ t.gohiragana = 0x3054;
+ t.gokatakana = 0x30b4;
+ t.gparen = 0x24a2;
+ t.gpasquare = 0x33ac;
+ t.gradient = 0x2207;
+ t.grave = 0x0060;
+ t.gravebelowcmb = 0x0316;
+ t.gravecmb = 0x0300;
+ t.gravecomb = 0x0300;
+ t.gravedeva = 0x0953;
+ t.gravelowmod = 0x02ce;
+ t.gravemonospace = 0xff40;
+ t.gravetonecmb = 0x0340;
+ t.greater = 0x003e;
+ t.greaterequal = 0x2265;
+ t.greaterequalorless = 0x22db;
+ t.greatermonospace = 0xff1e;
+ t.greaterorequivalent = 0x2273;
+ t.greaterorless = 0x2277;
+ t.greateroverequal = 0x2267;
+ t.greatersmall = 0xfe65;
+ t.gscript = 0x0261;
+ t.gstroke = 0x01e5;
+ t.guhiragana = 0x3050;
+ t.guillemotleft = 0x00ab;
+ t.guillemotright = 0x00bb;
+ t.guilsinglleft = 0x2039;
+ t.guilsinglright = 0x203a;
+ t.gukatakana = 0x30b0;
+ t.guramusquare = 0x3318;
+ t.gysquare = 0x33c9;
+ t.h = 0x0068;
+ t.haabkhasiancyrillic = 0x04a9;
+ t.haaltonearabic = 0x06c1;
+ t.habengali = 0x09b9;
+ t.hadescendercyrillic = 0x04b3;
+ t.hadeva = 0x0939;
+ t.hagujarati = 0x0ab9;
+ t.hagurmukhi = 0x0a39;
+ t.haharabic = 0x062d;
+ t.hahfinalarabic = 0xfea2;
+ t.hahinitialarabic = 0xfea3;
+ t.hahiragana = 0x306f;
+ t.hahmedialarabic = 0xfea4;
+ t.haitusquare = 0x332a;
+ t.hakatakana = 0x30cf;
+ t.hakatakanahalfwidth = 0xff8a;
+ t.halantgurmukhi = 0x0a4d;
+ t.hamzaarabic = 0x0621;
+ t.hamzalowarabic = 0x0621;
+ t.hangulfiller = 0x3164;
+ t.hardsigncyrillic = 0x044a;
+ t.harpoonleftbarbup = 0x21bc;
+ t.harpoonrightbarbup = 0x21c0;
+ t.hasquare = 0x33ca;
+ t.hatafpatah = 0x05b2;
+ t.hatafpatah16 = 0x05b2;
+ t.hatafpatah23 = 0x05b2;
+ t.hatafpatah2f = 0x05b2;
+ t.hatafpatahhebrew = 0x05b2;
+ t.hatafpatahnarrowhebrew = 0x05b2;
+ t.hatafpatahquarterhebrew = 0x05b2;
+ t.hatafpatahwidehebrew = 0x05b2;
+ t.hatafqamats = 0x05b3;
+ t.hatafqamats1b = 0x05b3;
+ t.hatafqamats28 = 0x05b3;
+ t.hatafqamats34 = 0x05b3;
+ t.hatafqamatshebrew = 0x05b3;
+ t.hatafqamatsnarrowhebrew = 0x05b3;
+ t.hatafqamatsquarterhebrew = 0x05b3;
+ t.hatafqamatswidehebrew = 0x05b3;
+ t.hatafsegol = 0x05b1;
+ t.hatafsegol17 = 0x05b1;
+ t.hatafsegol24 = 0x05b1;
+ t.hatafsegol30 = 0x05b1;
+ t.hatafsegolhebrew = 0x05b1;
+ t.hatafsegolnarrowhebrew = 0x05b1;
+ t.hatafsegolquarterhebrew = 0x05b1;
+ t.hatafsegolwidehebrew = 0x05b1;
+ t.hbar = 0x0127;
+ t.hbopomofo = 0x310f;
+ t.hbrevebelow = 0x1e2b;
+ t.hcedilla = 0x1e29;
+ t.hcircle = 0x24d7;
+ t.hcircumflex = 0x0125;
+ t.hdieresis = 0x1e27;
+ t.hdotaccent = 0x1e23;
+ t.hdotbelow = 0x1e25;
+ t.he = 0x05d4;
+ t.heart = 0x2665;
+ t.heartsuitblack = 0x2665;
+ t.heartsuitwhite = 0x2661;
+ t.hedagesh = 0xfb34;
+ t.hedageshhebrew = 0xfb34;
+ t.hehaltonearabic = 0x06c1;
+ t.heharabic = 0x0647;
+ t.hehebrew = 0x05d4;
+ t.hehfinalaltonearabic = 0xfba7;
+ t.hehfinalalttwoarabic = 0xfeea;
+ t.hehfinalarabic = 0xfeea;
+ t.hehhamzaabovefinalarabic = 0xfba5;
+ t.hehhamzaaboveisolatedarabic = 0xfba4;
+ t.hehinitialaltonearabic = 0xfba8;
+ t.hehinitialarabic = 0xfeeb;
+ t.hehiragana = 0x3078;
+ t.hehmedialaltonearabic = 0xfba9;
+ t.hehmedialarabic = 0xfeec;
+ t.heiseierasquare = 0x337b;
+ t.hekatakana = 0x30d8;
+ t.hekatakanahalfwidth = 0xff8d;
+ t.hekutaarusquare = 0x3336;
+ t.henghook = 0x0267;
+ t.herutusquare = 0x3339;
+ t.het = 0x05d7;
+ t.hethebrew = 0x05d7;
+ t.hhook = 0x0266;
+ t.hhooksuperior = 0x02b1;
+ t.hieuhacirclekorean = 0x327b;
+ t.hieuhaparenkorean = 0x321b;
+ t.hieuhcirclekorean = 0x326d;
+ t.hieuhkorean = 0x314e;
+ t.hieuhparenkorean = 0x320d;
+ t.hihiragana = 0x3072;
+ t.hikatakana = 0x30d2;
+ t.hikatakanahalfwidth = 0xff8b;
+ t.hiriq = 0x05b4;
+ t.hiriq14 = 0x05b4;
+ t.hiriq21 = 0x05b4;
+ t.hiriq2d = 0x05b4;
+ t.hiriqhebrew = 0x05b4;
+ t.hiriqnarrowhebrew = 0x05b4;
+ t.hiriqquarterhebrew = 0x05b4;
+ t.hiriqwidehebrew = 0x05b4;
+ t.hlinebelow = 0x1e96;
+ t.hmonospace = 0xff48;
+ t.hoarmenian = 0x0570;
+ t.hohipthai = 0x0e2b;
+ t.hohiragana = 0x307b;
+ t.hokatakana = 0x30db;
+ t.hokatakanahalfwidth = 0xff8e;
+ t.holam = 0x05b9;
+ t.holam19 = 0x05b9;
+ t.holam26 = 0x05b9;
+ t.holam32 = 0x05b9;
+ t.holamhebrew = 0x05b9;
+ t.holamnarrowhebrew = 0x05b9;
+ t.holamquarterhebrew = 0x05b9;
+ t.holamwidehebrew = 0x05b9;
+ t.honokhukthai = 0x0e2e;
+ t.hookabovecomb = 0x0309;
+ t.hookcmb = 0x0309;
+ t.hookpalatalizedbelowcmb = 0x0321;
+ t.hookretroflexbelowcmb = 0x0322;
+ t.hoonsquare = 0x3342;
+ t.horicoptic = 0x03e9;
+ t.horizontalbar = 0x2015;
+ t.horncmb = 0x031b;
+ t.hotsprings = 0x2668;
+ t.house = 0x2302;
+ t.hparen = 0x24a3;
+ t.hsuperior = 0x02b0;
+ t.hturned = 0x0265;
+ t.huhiragana = 0x3075;
+ t.huiitosquare = 0x3333;
+ t.hukatakana = 0x30d5;
+ t.hukatakanahalfwidth = 0xff8c;
+ t.hungarumlaut = 0x02dd;
+ t.hungarumlautcmb = 0x030b;
+ t.hv = 0x0195;
+ t.hyphen = 0x002d;
+ t.hypheninferior = 0xf6e5;
+ t.hyphenmonospace = 0xff0d;
+ t.hyphensmall = 0xfe63;
+ t.hyphensuperior = 0xf6e6;
+ t.hyphentwo = 0x2010;
+ t.i = 0x0069;
+ t.iacute = 0x00ed;
+ t.iacyrillic = 0x044f;
+ t.ibengali = 0x0987;
+ t.ibopomofo = 0x3127;
+ t.ibreve = 0x012d;
+ t.icaron = 0x01d0;
+ t.icircle = 0x24d8;
+ t.icircumflex = 0x00ee;
+ t.icyrillic = 0x0456;
+ t.idblgrave = 0x0209;
+ t.ideographearthcircle = 0x328f;
+ t.ideographfirecircle = 0x328b;
+ t.ideographicallianceparen = 0x323f;
+ t.ideographiccallparen = 0x323a;
+ t.ideographiccentrecircle = 0x32a5;
+ t.ideographicclose = 0x3006;
+ t.ideographiccomma = 0x3001;
+ t.ideographiccommaleft = 0xff64;
+ t.ideographiccongratulationparen = 0x3237;
+ t.ideographiccorrectcircle = 0x32a3;
+ t.ideographicearthparen = 0x322f;
+ t.ideographicenterpriseparen = 0x323d;
+ t.ideographicexcellentcircle = 0x329d;
+ t.ideographicfestivalparen = 0x3240;
+ t.ideographicfinancialcircle = 0x3296;
+ t.ideographicfinancialparen = 0x3236;
+ t.ideographicfireparen = 0x322b;
+ t.ideographichaveparen = 0x3232;
+ t.ideographichighcircle = 0x32a4;
+ t.ideographiciterationmark = 0x3005;
+ t.ideographiclaborcircle = 0x3298;
+ t.ideographiclaborparen = 0x3238;
+ t.ideographicleftcircle = 0x32a7;
+ t.ideographiclowcircle = 0x32a6;
+ t.ideographicmedicinecircle = 0x32a9;
+ t.ideographicmetalparen = 0x322e;
+ t.ideographicmoonparen = 0x322a;
+ t.ideographicnameparen = 0x3234;
+ t.ideographicperiod = 0x3002;
+ t.ideographicprintcircle = 0x329e;
+ t.ideographicreachparen = 0x3243;
+ t.ideographicrepresentparen = 0x3239;
+ t.ideographicresourceparen = 0x323e;
+ t.ideographicrightcircle = 0x32a8;
+ t.ideographicsecretcircle = 0x3299;
+ t.ideographicselfparen = 0x3242;
+ t.ideographicsocietyparen = 0x3233;
+ t.ideographicspace = 0x3000;
+ t.ideographicspecialparen = 0x3235;
+ t.ideographicstockparen = 0x3231;
+ t.ideographicstudyparen = 0x323b;
+ t.ideographicsunparen = 0x3230;
+ t.ideographicsuperviseparen = 0x323c;
+ t.ideographicwaterparen = 0x322c;
+ t.ideographicwoodparen = 0x322d;
+ t.ideographiczero = 0x3007;
+ t.ideographmetalcircle = 0x328e;
+ t.ideographmooncircle = 0x328a;
+ t.ideographnamecircle = 0x3294;
+ t.ideographsuncircle = 0x3290;
+ t.ideographwatercircle = 0x328c;
+ t.ideographwoodcircle = 0x328d;
+ t.ideva = 0x0907;
+ t.idieresis = 0x00ef;
+ t.idieresisacute = 0x1e2f;
+ t.idieresiscyrillic = 0x04e5;
+ t.idotbelow = 0x1ecb;
+ t.iebrevecyrillic = 0x04d7;
+ t.iecyrillic = 0x0435;
+ t.ieungacirclekorean = 0x3275;
+ t.ieungaparenkorean = 0x3215;
+ t.ieungcirclekorean = 0x3267;
+ t.ieungkorean = 0x3147;
+ t.ieungparenkorean = 0x3207;
+ t.igrave = 0x00ec;
+ t.igujarati = 0x0a87;
+ t.igurmukhi = 0x0a07;
+ t.ihiragana = 0x3044;
+ t.ihookabove = 0x1ec9;
+ t.iibengali = 0x0988;
+ t.iicyrillic = 0x0438;
+ t.iideva = 0x0908;
+ t.iigujarati = 0x0a88;
+ t.iigurmukhi = 0x0a08;
+ t.iimatragurmukhi = 0x0a40;
+ t.iinvertedbreve = 0x020b;
+ t.iishortcyrillic = 0x0439;
+ t.iivowelsignbengali = 0x09c0;
+ t.iivowelsigndeva = 0x0940;
+ t.iivowelsigngujarati = 0x0ac0;
+ t.ij = 0x0133;
+ t.ikatakana = 0x30a4;
+ t.ikatakanahalfwidth = 0xff72;
+ t.ikorean = 0x3163;
+ t.ilde = 0x02dc;
+ t.iluyhebrew = 0x05ac;
+ t.imacron = 0x012b;
+ t.imacroncyrillic = 0x04e3;
+ t.imageorapproximatelyequal = 0x2253;
+ t.imatragurmukhi = 0x0a3f;
+ t.imonospace = 0xff49;
+ t.increment = 0x2206;
+ t.infinity = 0x221e;
+ t.iniarmenian = 0x056b;
+ t.integral = 0x222b;
+ t.integralbottom = 0x2321;
+ t.integralbt = 0x2321;
+ t.integralex = 0xf8f5;
+ t.integraltop = 0x2320;
+ t.integraltp = 0x2320;
+ t.intersection = 0x2229;
+ t.intisquare = 0x3305;
+ t.invbullet = 0x25d8;
+ t.invcircle = 0x25d9;
+ t.invsmileface = 0x263b;
+ t.iocyrillic = 0x0451;
+ t.iogonek = 0x012f;
+ t.iota = 0x03b9;
+ t.iotadieresis = 0x03ca;
+ t.iotadieresistonos = 0x0390;
+ t.iotalatin = 0x0269;
+ t.iotatonos = 0x03af;
+ t.iparen = 0x24a4;
+ t.irigurmukhi = 0x0a72;
+ t.ismallhiragana = 0x3043;
+ t.ismallkatakana = 0x30a3;
+ t.ismallkatakanahalfwidth = 0xff68;
+ t.issharbengali = 0x09fa;
+ t.istroke = 0x0268;
+ t.isuperior = 0xf6ed;
+ t.iterationhiragana = 0x309d;
+ t.iterationkatakana = 0x30fd;
+ t.itilde = 0x0129;
+ t.itildebelow = 0x1e2d;
+ t.iubopomofo = 0x3129;
+ t.iucyrillic = 0x044e;
+ t.ivowelsignbengali = 0x09bf;
+ t.ivowelsigndeva = 0x093f;
+ t.ivowelsigngujarati = 0x0abf;
+ t.izhitsacyrillic = 0x0475;
+ t.izhitsadblgravecyrillic = 0x0477;
+ t.j = 0x006a;
+ t.jaarmenian = 0x0571;
+ t.jabengali = 0x099c;
+ t.jadeva = 0x091c;
+ t.jagujarati = 0x0a9c;
+ t.jagurmukhi = 0x0a1c;
+ t.jbopomofo = 0x3110;
+ t.jcaron = 0x01f0;
+ t.jcircle = 0x24d9;
+ t.jcircumflex = 0x0135;
+ t.jcrossedtail = 0x029d;
+ t.jdotlessstroke = 0x025f;
+ t.jecyrillic = 0x0458;
+ t.jeemarabic = 0x062c;
+ t.jeemfinalarabic = 0xfe9e;
+ t.jeeminitialarabic = 0xfe9f;
+ t.jeemmedialarabic = 0xfea0;
+ t.jeharabic = 0x0698;
+ t.jehfinalarabic = 0xfb8b;
+ t.jhabengali = 0x099d;
+ t.jhadeva = 0x091d;
+ t.jhagujarati = 0x0a9d;
+ t.jhagurmukhi = 0x0a1d;
+ t.jheharmenian = 0x057b;
+ t.jis = 0x3004;
+ t.jmonospace = 0xff4a;
+ t.jparen = 0x24a5;
+ t.jsuperior = 0x02b2;
+ t.k = 0x006b;
+ t.kabashkircyrillic = 0x04a1;
+ t.kabengali = 0x0995;
+ t.kacute = 0x1e31;
+ t.kacyrillic = 0x043a;
+ t.kadescendercyrillic = 0x049b;
+ t.kadeva = 0x0915;
+ t.kaf = 0x05db;
+ t.kafarabic = 0x0643;
+ t.kafdagesh = 0xfb3b;
+ t.kafdageshhebrew = 0xfb3b;
+ t.kaffinalarabic = 0xfeda;
+ t.kafhebrew = 0x05db;
+ t.kafinitialarabic = 0xfedb;
+ t.kafmedialarabic = 0xfedc;
+ t.kafrafehebrew = 0xfb4d;
+ t.kagujarati = 0x0a95;
+ t.kagurmukhi = 0x0a15;
+ t.kahiragana = 0x304b;
+ t.kahookcyrillic = 0x04c4;
+ t.kakatakana = 0x30ab;
+ t.kakatakanahalfwidth = 0xff76;
+ t.kappa = 0x03ba;
+ t.kappasymbolgreek = 0x03f0;
+ t.kapyeounmieumkorean = 0x3171;
+ t.kapyeounphieuphkorean = 0x3184;
+ t.kapyeounpieupkorean = 0x3178;
+ t.kapyeounssangpieupkorean = 0x3179;
+ t.karoriisquare = 0x330d;
+ t.kashidaautoarabic = 0x0640;
+ t.kashidaautonosidebearingarabic = 0x0640;
+ t.kasmallkatakana = 0x30f5;
+ t.kasquare = 0x3384;
+ t.kasraarabic = 0x0650;
+ t.kasratanarabic = 0x064d;
+ t.kastrokecyrillic = 0x049f;
+ t.katahiraprolongmarkhalfwidth = 0xff70;
+ t.kaverticalstrokecyrillic = 0x049d;
+ t.kbopomofo = 0x310e;
+ t.kcalsquare = 0x3389;
+ t.kcaron = 0x01e9;
+ t.kcedilla = 0x0137;
+ t.kcircle = 0x24da;
+ t.kcommaaccent = 0x0137;
+ t.kdotbelow = 0x1e33;
+ t.keharmenian = 0x0584;
+ t.kehiragana = 0x3051;
+ t.kekatakana = 0x30b1;
+ t.kekatakanahalfwidth = 0xff79;
+ t.kenarmenian = 0x056f;
+ t.kesmallkatakana = 0x30f6;
+ t.kgreenlandic = 0x0138;
+ t.khabengali = 0x0996;
+ t.khacyrillic = 0x0445;
+ t.khadeva = 0x0916;
+ t.khagujarati = 0x0a96;
+ t.khagurmukhi = 0x0a16;
+ t.khaharabic = 0x062e;
+ t.khahfinalarabic = 0xfea6;
+ t.khahinitialarabic = 0xfea7;
+ t.khahmedialarabic = 0xfea8;
+ t.kheicoptic = 0x03e7;
+ t.khhadeva = 0x0959;
+ t.khhagurmukhi = 0x0a59;
+ t.khieukhacirclekorean = 0x3278;
+ t.khieukhaparenkorean = 0x3218;
+ t.khieukhcirclekorean = 0x326a;
+ t.khieukhkorean = 0x314b;
+ t.khieukhparenkorean = 0x320a;
+ t.khokhaithai = 0x0e02;
+ t.khokhonthai = 0x0e05;
+ t.khokhuatthai = 0x0e03;
+ t.khokhwaithai = 0x0e04;
+ t.khomutthai = 0x0e5b;
+ t.khook = 0x0199;
+ t.khorakhangthai = 0x0e06;
+ t.khzsquare = 0x3391;
+ t.kihiragana = 0x304d;
+ t.kikatakana = 0x30ad;
+ t.kikatakanahalfwidth = 0xff77;
+ t.kiroguramusquare = 0x3315;
+ t.kiromeetorusquare = 0x3316;
+ t.kirosquare = 0x3314;
+ t.kiyeokacirclekorean = 0x326e;
+ t.kiyeokaparenkorean = 0x320e;
+ t.kiyeokcirclekorean = 0x3260;
+ t.kiyeokkorean = 0x3131;
+ t.kiyeokparenkorean = 0x3200;
+ t.kiyeoksioskorean = 0x3133;
+ t.kjecyrillic = 0x045c;
+ t.klinebelow = 0x1e35;
+ t.klsquare = 0x3398;
+ t.kmcubedsquare = 0x33a6;
+ t.kmonospace = 0xff4b;
+ t.kmsquaredsquare = 0x33a2;
+ t.kohiragana = 0x3053;
+ t.kohmsquare = 0x33c0;
+ t.kokaithai = 0x0e01;
+ t.kokatakana = 0x30b3;
+ t.kokatakanahalfwidth = 0xff7a;
+ t.kooposquare = 0x331e;
+ t.koppacyrillic = 0x0481;
+ t.koreanstandardsymbol = 0x327f;
+ t.koroniscmb = 0x0343;
+ t.kparen = 0x24a6;
+ t.kpasquare = 0x33aa;
+ t.ksicyrillic = 0x046f;
+ t.ktsquare = 0x33cf;
+ t.kturned = 0x029e;
+ t.kuhiragana = 0x304f;
+ t.kukatakana = 0x30af;
+ t.kukatakanahalfwidth = 0xff78;
+ t.kvsquare = 0x33b8;
+ t.kwsquare = 0x33be;
+ t.l = 0x006c;
+ t.labengali = 0x09b2;
+ t.lacute = 0x013a;
+ t.ladeva = 0x0932;
+ t.lagujarati = 0x0ab2;
+ t.lagurmukhi = 0x0a32;
+ t.lakkhangyaothai = 0x0e45;
+ t.lamaleffinalarabic = 0xfefc;
+ t.lamalefhamzaabovefinalarabic = 0xfef8;
+ t.lamalefhamzaaboveisolatedarabic = 0xfef7;
+ t.lamalefhamzabelowfinalarabic = 0xfefa;
+ t.lamalefhamzabelowisolatedarabic = 0xfef9;
+ t.lamalefisolatedarabic = 0xfefb;
+ t.lamalefmaddaabovefinalarabic = 0xfef6;
+ t.lamalefmaddaaboveisolatedarabic = 0xfef5;
+ t.lamarabic = 0x0644;
+ t.lambda = 0x03bb;
+ t.lambdastroke = 0x019b;
+ t.lamed = 0x05dc;
+ t.lameddagesh = 0xfb3c;
+ t.lameddageshhebrew = 0xfb3c;
+ t.lamedhebrew = 0x05dc;
+ t.lamfinalarabic = 0xfede;
+ t.lamhahinitialarabic = 0xfcca;
+ t.laminitialarabic = 0xfedf;
+ t.lamjeeminitialarabic = 0xfcc9;
+ t.lamkhahinitialarabic = 0xfccb;
+ t.lamlamhehisolatedarabic = 0xfdf2;
+ t.lammedialarabic = 0xfee0;
+ t.lammeemhahinitialarabic = 0xfd88;
+ t.lammeeminitialarabic = 0xfccc;
+ t.largecircle = 0x25ef;
+ t.lbar = 0x019a;
+ t.lbelt = 0x026c;
+ t.lbopomofo = 0x310c;
+ t.lcaron = 0x013e;
+ t.lcedilla = 0x013c;
+ t.lcircle = 0x24db;
+ t.lcircumflexbelow = 0x1e3d;
+ t.lcommaaccent = 0x013c;
+ t.ldot = 0x0140;
+ t.ldotaccent = 0x0140;
+ t.ldotbelow = 0x1e37;
+ t.ldotbelowmacron = 0x1e39;
+ t.leftangleabovecmb = 0x031a;
+ t.lefttackbelowcmb = 0x0318;
+ t.less = 0x003c;
+ t.lessequal = 0x2264;
+ t.lessequalorgreater = 0x22da;
+ t.lessmonospace = 0xff1c;
+ t.lessorequivalent = 0x2272;
+ t.lessorgreater = 0x2276;
+ t.lessoverequal = 0x2266;
+ t.lesssmall = 0xfe64;
+ t.lezh = 0x026e;
+ t.lfblock = 0x258c;
+ t.lhookretroflex = 0x026d;
+ t.lira = 0x20a4;
+ t.liwnarmenian = 0x056c;
+ t.lj = 0x01c9;
+ t.ljecyrillic = 0x0459;
+ t.ll = 0xf6c0;
+ t.lladeva = 0x0933;
+ t.llagujarati = 0x0ab3;
+ t.llinebelow = 0x1e3b;
+ t.llladeva = 0x0934;
+ t.llvocalicbengali = 0x09e1;
+ t.llvocalicdeva = 0x0961;
+ t.llvocalicvowelsignbengali = 0x09e3;
+ t.llvocalicvowelsigndeva = 0x0963;
+ t.lmiddletilde = 0x026b;
+ t.lmonospace = 0xff4c;
+ t.lmsquare = 0x33d0;
+ t.lochulathai = 0x0e2c;
+ t.logicaland = 0x2227;
+ t.logicalnot = 0x00ac;
+ t.logicalnotreversed = 0x2310;
+ t.logicalor = 0x2228;
+ t.lolingthai = 0x0e25;
+ t.longs = 0x017f;
+ t.lowlinecenterline = 0xfe4e;
+ t.lowlinecmb = 0x0332;
+ t.lowlinedashed = 0xfe4d;
+ t.lozenge = 0x25ca;
+ t.lparen = 0x24a7;
+ t.lslash = 0x0142;
+ t.lsquare = 0x2113;
+ t.lsuperior = 0xf6ee;
+ t.ltshade = 0x2591;
+ t.luthai = 0x0e26;
+ t.lvocalicbengali = 0x098c;
+ t.lvocalicdeva = 0x090c;
+ t.lvocalicvowelsignbengali = 0x09e2;
+ t.lvocalicvowelsigndeva = 0x0962;
+ t.lxsquare = 0x33d3;
+ t.m = 0x006d;
+ t.mabengali = 0x09ae;
+ t.macron = 0x00af;
+ t.macronbelowcmb = 0x0331;
+ t.macroncmb = 0x0304;
+ t.macronlowmod = 0x02cd;
+ t.macronmonospace = 0xffe3;
+ t.macute = 0x1e3f;
+ t.madeva = 0x092e;
+ t.magujarati = 0x0aae;
+ t.magurmukhi = 0x0a2e;
+ t.mahapakhhebrew = 0x05a4;
+ t.mahapakhlefthebrew = 0x05a4;
+ t.mahiragana = 0x307e;
+ t.maichattawalowleftthai = 0xf895;
+ t.maichattawalowrightthai = 0xf894;
+ t.maichattawathai = 0x0e4b;
+ t.maichattawaupperleftthai = 0xf893;
+ t.maieklowleftthai = 0xf88c;
+ t.maieklowrightthai = 0xf88b;
+ t.maiekthai = 0x0e48;
+ t.maiekupperleftthai = 0xf88a;
+ t.maihanakatleftthai = 0xf884;
+ t.maihanakatthai = 0x0e31;
+ t.maitaikhuleftthai = 0xf889;
+ t.maitaikhuthai = 0x0e47;
+ t.maitholowleftthai = 0xf88f;
+ t.maitholowrightthai = 0xf88e;
+ t.maithothai = 0x0e49;
+ t.maithoupperleftthai = 0xf88d;
+ t.maitrilowleftthai = 0xf892;
+ t.maitrilowrightthai = 0xf891;
+ t.maitrithai = 0x0e4a;
+ t.maitriupperleftthai = 0xf890;
+ t.maiyamokthai = 0x0e46;
+ t.makatakana = 0x30de;
+ t.makatakanahalfwidth = 0xff8f;
+ t.male = 0x2642;
+ t.mansyonsquare = 0x3347;
+ t.maqafhebrew = 0x05be;
+ t.mars = 0x2642;
+ t.masoracirclehebrew = 0x05af;
+ t.masquare = 0x3383;
+ t.mbopomofo = 0x3107;
+ t.mbsquare = 0x33d4;
+ t.mcircle = 0x24dc;
+ t.mcubedsquare = 0x33a5;
+ t.mdotaccent = 0x1e41;
+ t.mdotbelow = 0x1e43;
+ t.meemarabic = 0x0645;
+ t.meemfinalarabic = 0xfee2;
+ t.meeminitialarabic = 0xfee3;
+ t.meemmedialarabic = 0xfee4;
+ t.meemmeeminitialarabic = 0xfcd1;
+ t.meemmeemisolatedarabic = 0xfc48;
+ t.meetorusquare = 0x334d;
+ t.mehiragana = 0x3081;
+ t.meizierasquare = 0x337e;
+ t.mekatakana = 0x30e1;
+ t.mekatakanahalfwidth = 0xff92;
+ t.mem = 0x05de;
+ t.memdagesh = 0xfb3e;
+ t.memdageshhebrew = 0xfb3e;
+ t.memhebrew = 0x05de;
+ t.menarmenian = 0x0574;
+ t.merkhahebrew = 0x05a5;
+ t.merkhakefulahebrew = 0x05a6;
+ t.merkhakefulalefthebrew = 0x05a6;
+ t.merkhalefthebrew = 0x05a5;
+ t.mhook = 0x0271;
+ t.mhzsquare = 0x3392;
+ t.middledotkatakanahalfwidth = 0xff65;
+ t.middot = 0x00b7;
+ t.mieumacirclekorean = 0x3272;
+ t.mieumaparenkorean = 0x3212;
+ t.mieumcirclekorean = 0x3264;
+ t.mieumkorean = 0x3141;
+ t.mieumpansioskorean = 0x3170;
+ t.mieumparenkorean = 0x3204;
+ t.mieumpieupkorean = 0x316e;
+ t.mieumsioskorean = 0x316f;
+ t.mihiragana = 0x307f;
+ t.mikatakana = 0x30df;
+ t.mikatakanahalfwidth = 0xff90;
+ t.minus = 0x2212;
+ t.minusbelowcmb = 0x0320;
+ t.minuscircle = 0x2296;
+ t.minusmod = 0x02d7;
+ t.minusplus = 0x2213;
+ t.minute = 0x2032;
+ t.miribaarusquare = 0x334a;
+ t.mirisquare = 0x3349;
+ t.mlonglegturned = 0x0270;
+ t.mlsquare = 0x3396;
+ t.mmcubedsquare = 0x33a3;
+ t.mmonospace = 0xff4d;
+ t.mmsquaredsquare = 0x339f;
+ t.mohiragana = 0x3082;
+ t.mohmsquare = 0x33c1;
+ t.mokatakana = 0x30e2;
+ t.mokatakanahalfwidth = 0xff93;
+ t.molsquare = 0x33d6;
+ t.momathai = 0x0e21;
+ t.moverssquare = 0x33a7;
+ t.moverssquaredsquare = 0x33a8;
+ t.mparen = 0x24a8;
+ t.mpasquare = 0x33ab;
+ t.mssquare = 0x33b3;
+ t.msuperior = 0xf6ef;
+ t.mturned = 0x026f;
+ t.mu = 0x00b5;
+ t.mu1 = 0x00b5;
+ t.muasquare = 0x3382;
+ t.muchgreater = 0x226b;
+ t.muchless = 0x226a;
+ t.mufsquare = 0x338c;
+ t.mugreek = 0x03bc;
+ t.mugsquare = 0x338d;
+ t.muhiragana = 0x3080;
+ t.mukatakana = 0x30e0;
+ t.mukatakanahalfwidth = 0xff91;
+ t.mulsquare = 0x3395;
+ t.multiply = 0x00d7;
+ t.mumsquare = 0x339b;
+ t.munahhebrew = 0x05a3;
+ t.munahlefthebrew = 0x05a3;
+ t.musicalnote = 0x266a;
+ t.musicalnotedbl = 0x266b;
+ t.musicflatsign = 0x266d;
+ t.musicsharpsign = 0x266f;
+ t.mussquare = 0x33b2;
+ t.muvsquare = 0x33b6;
+ t.muwsquare = 0x33bc;
+ t.mvmegasquare = 0x33b9;
+ t.mvsquare = 0x33b7;
+ t.mwmegasquare = 0x33bf;
+ t.mwsquare = 0x33bd;
+ t.n = 0x006e;
+ t.nabengali = 0x09a8;
+ t.nabla = 0x2207;
+ t.nacute = 0x0144;
+ t.nadeva = 0x0928;
+ t.nagujarati = 0x0aa8;
+ t.nagurmukhi = 0x0a28;
+ t.nahiragana = 0x306a;
+ t.nakatakana = 0x30ca;
+ t.nakatakanahalfwidth = 0xff85;
+ t.napostrophe = 0x0149;
+ t.nasquare = 0x3381;
+ t.nbopomofo = 0x310b;
+ t.nbspace = 0x00a0;
+ t.ncaron = 0x0148;
+ t.ncedilla = 0x0146;
+ t.ncircle = 0x24dd;
+ t.ncircumflexbelow = 0x1e4b;
+ t.ncommaaccent = 0x0146;
+ t.ndotaccent = 0x1e45;
+ t.ndotbelow = 0x1e47;
+ t.nehiragana = 0x306d;
+ t.nekatakana = 0x30cd;
+ t.nekatakanahalfwidth = 0xff88;
+ t.newsheqelsign = 0x20aa;
+ t.nfsquare = 0x338b;
+ t.ngabengali = 0x0999;
+ t.ngadeva = 0x0919;
+ t.ngagujarati = 0x0a99;
+ t.ngagurmukhi = 0x0a19;
+ t.ngonguthai = 0x0e07;
+ t.nhiragana = 0x3093;
+ t.nhookleft = 0x0272;
+ t.nhookretroflex = 0x0273;
+ t.nieunacirclekorean = 0x326f;
+ t.nieunaparenkorean = 0x320f;
+ t.nieuncieuckorean = 0x3135;
+ t.nieuncirclekorean = 0x3261;
+ t.nieunhieuhkorean = 0x3136;
+ t.nieunkorean = 0x3134;
+ t.nieunpansioskorean = 0x3168;
+ t.nieunparenkorean = 0x3201;
+ t.nieunsioskorean = 0x3167;
+ t.nieuntikeutkorean = 0x3166;
+ t.nihiragana = 0x306b;
+ t.nikatakana = 0x30cb;
+ t.nikatakanahalfwidth = 0xff86;
+ t.nikhahitleftthai = 0xf899;
+ t.nikhahitthai = 0x0e4d;
+ t.nine = 0x0039;
+ t.ninearabic = 0x0669;
+ t.ninebengali = 0x09ef;
+ t.ninecircle = 0x2468;
+ t.ninecircleinversesansserif = 0x2792;
+ t.ninedeva = 0x096f;
+ t.ninegujarati = 0x0aef;
+ t.ninegurmukhi = 0x0a6f;
+ t.ninehackarabic = 0x0669;
+ t.ninehangzhou = 0x3029;
+ t.nineideographicparen = 0x3228;
+ t.nineinferior = 0x2089;
+ t.ninemonospace = 0xff19;
+ t.nineoldstyle = 0xf739;
+ t.nineparen = 0x247c;
+ t.nineperiod = 0x2490;
+ t.ninepersian = 0x06f9;
+ t.nineroman = 0x2178;
+ t.ninesuperior = 0x2079;
+ t.nineteencircle = 0x2472;
+ t.nineteenparen = 0x2486;
+ t.nineteenperiod = 0x249a;
+ t.ninethai = 0x0e59;
+ t.nj = 0x01cc;
+ t.njecyrillic = 0x045a;
+ t.nkatakana = 0x30f3;
+ t.nkatakanahalfwidth = 0xff9d;
+ t.nlegrightlong = 0x019e;
+ t.nlinebelow = 0x1e49;
+ t.nmonospace = 0xff4e;
+ t.nmsquare = 0x339a;
+ t.nnabengali = 0x09a3;
+ t.nnadeva = 0x0923;
+ t.nnagujarati = 0x0aa3;
+ t.nnagurmukhi = 0x0a23;
+ t.nnnadeva = 0x0929;
+ t.nohiragana = 0x306e;
+ t.nokatakana = 0x30ce;
+ t.nokatakanahalfwidth = 0xff89;
+ t.nonbreakingspace = 0x00a0;
+ t.nonenthai = 0x0e13;
+ t.nonuthai = 0x0e19;
+ t.noonarabic = 0x0646;
+ t.noonfinalarabic = 0xfee6;
+ t.noonghunnaarabic = 0x06ba;
+ t.noonghunnafinalarabic = 0xfb9f;
+ t.nooninitialarabic = 0xfee7;
+ t.noonjeeminitialarabic = 0xfcd2;
+ t.noonjeemisolatedarabic = 0xfc4b;
+ t.noonmedialarabic = 0xfee8;
+ t.noonmeeminitialarabic = 0xfcd5;
+ t.noonmeemisolatedarabic = 0xfc4e;
+ t.noonnoonfinalarabic = 0xfc8d;
+ t.notcontains = 0x220c;
+ t.notelement = 0x2209;
+ t.notelementof = 0x2209;
+ t.notequal = 0x2260;
+ t.notgreater = 0x226f;
+ t.notgreaternorequal = 0x2271;
+ t.notgreaternorless = 0x2279;
+ t.notidentical = 0x2262;
+ t.notless = 0x226e;
+ t.notlessnorequal = 0x2270;
+ t.notparallel = 0x2226;
+ t.notprecedes = 0x2280;
+ t.notsubset = 0x2284;
+ t.notsucceeds = 0x2281;
+ t.notsuperset = 0x2285;
+ t.nowarmenian = 0x0576;
+ t.nparen = 0x24a9;
+ t.nssquare = 0x33b1;
+ t.nsuperior = 0x207f;
+ t.ntilde = 0x00f1;
+ t.nu = 0x03bd;
+ t.nuhiragana = 0x306c;
+ t.nukatakana = 0x30cc;
+ t.nukatakanahalfwidth = 0xff87;
+ t.nuktabengali = 0x09bc;
+ t.nuktadeva = 0x093c;
+ t.nuktagujarati = 0x0abc;
+ t.nuktagurmukhi = 0x0a3c;
+ t.numbersign = 0x0023;
+ t.numbersignmonospace = 0xff03;
+ t.numbersignsmall = 0xfe5f;
+ t.numeralsigngreek = 0x0374;
+ t.numeralsignlowergreek = 0x0375;
+ t.numero = 0x2116;
+ t.nun = 0x05e0;
+ t.nundagesh = 0xfb40;
+ t.nundageshhebrew = 0xfb40;
+ t.nunhebrew = 0x05e0;
+ t.nvsquare = 0x33b5;
+ t.nwsquare = 0x33bb;
+ t.nyabengali = 0x099e;
+ t.nyadeva = 0x091e;
+ t.nyagujarati = 0x0a9e;
+ t.nyagurmukhi = 0x0a1e;
+ t.o = 0x006f;
+ t.oacute = 0x00f3;
+ t.oangthai = 0x0e2d;
+ t.obarred = 0x0275;
+ t.obarredcyrillic = 0x04e9;
+ t.obarreddieresiscyrillic = 0x04eb;
+ t.obengali = 0x0993;
+ t.obopomofo = 0x311b;
+ t.obreve = 0x014f;
+ t.ocandradeva = 0x0911;
+ t.ocandragujarati = 0x0a91;
+ t.ocandravowelsigndeva = 0x0949;
+ t.ocandravowelsigngujarati = 0x0ac9;
+ t.ocaron = 0x01d2;
+ t.ocircle = 0x24de;
+ t.ocircumflex = 0x00f4;
+ t.ocircumflexacute = 0x1ed1;
+ t.ocircumflexdotbelow = 0x1ed9;
+ t.ocircumflexgrave = 0x1ed3;
+ t.ocircumflexhookabove = 0x1ed5;
+ t.ocircumflextilde = 0x1ed7;
+ t.ocyrillic = 0x043e;
+ t.odblacute = 0x0151;
+ t.odblgrave = 0x020d;
+ t.odeva = 0x0913;
+ t.odieresis = 0x00f6;
+ t.odieresiscyrillic = 0x04e7;
+ t.odotbelow = 0x1ecd;
+ t.oe = 0x0153;
+ t.oekorean = 0x315a;
+ t.ogonek = 0x02db;
+ t.ogonekcmb = 0x0328;
+ t.ograve = 0x00f2;
+ t.ogujarati = 0x0a93;
+ t.oharmenian = 0x0585;
+ t.ohiragana = 0x304a;
+ t.ohookabove = 0x1ecf;
+ t.ohorn = 0x01a1;
+ t.ohornacute = 0x1edb;
+ t.ohorndotbelow = 0x1ee3;
+ t.ohorngrave = 0x1edd;
+ t.ohornhookabove = 0x1edf;
+ t.ohorntilde = 0x1ee1;
+ t.ohungarumlaut = 0x0151;
+ t.oi = 0x01a3;
+ t.oinvertedbreve = 0x020f;
+ t.okatakana = 0x30aa;
+ t.okatakanahalfwidth = 0xff75;
+ t.okorean = 0x3157;
+ t.olehebrew = 0x05ab;
+ t.omacron = 0x014d;
+ t.omacronacute = 0x1e53;
+ t.omacrongrave = 0x1e51;
+ t.omdeva = 0x0950;
+ t.omega = 0x03c9;
+ t.omega1 = 0x03d6;
+ t.omegacyrillic = 0x0461;
+ t.omegalatinclosed = 0x0277;
+ t.omegaroundcyrillic = 0x047b;
+ t.omegatitlocyrillic = 0x047d;
+ t.omegatonos = 0x03ce;
+ t.omgujarati = 0x0ad0;
+ t.omicron = 0x03bf;
+ t.omicrontonos = 0x03cc;
+ t.omonospace = 0xff4f;
+ t.one = 0x0031;
+ t.onearabic = 0x0661;
+ t.onebengali = 0x09e7;
+ t.onecircle = 0x2460;
+ t.onecircleinversesansserif = 0x278a;
+ t.onedeva = 0x0967;
+ t.onedotenleader = 0x2024;
+ t.oneeighth = 0x215b;
+ t.onefitted = 0xf6dc;
+ t.onegujarati = 0x0ae7;
+ t.onegurmukhi = 0x0a67;
+ t.onehackarabic = 0x0661;
+ t.onehalf = 0x00bd;
+ t.onehangzhou = 0x3021;
+ t.oneideographicparen = 0x3220;
+ t.oneinferior = 0x2081;
+ t.onemonospace = 0xff11;
+ t.onenumeratorbengali = 0x09f4;
+ t.oneoldstyle = 0xf731;
+ t.oneparen = 0x2474;
+ t.oneperiod = 0x2488;
+ t.onepersian = 0x06f1;
+ t.onequarter = 0x00bc;
+ t.oneroman = 0x2170;
+ t.onesuperior = 0x00b9;
+ t.onethai = 0x0e51;
+ t.onethird = 0x2153;
+ t.oogonek = 0x01eb;
+ t.oogonekmacron = 0x01ed;
+ t.oogurmukhi = 0x0a13;
+ t.oomatragurmukhi = 0x0a4b;
+ t.oopen = 0x0254;
+ t.oparen = 0x24aa;
+ t.openbullet = 0x25e6;
+ t.option = 0x2325;
+ t.ordfeminine = 0x00aa;
+ t.ordmasculine = 0x00ba;
+ t.orthogonal = 0x221f;
+ t.oshortdeva = 0x0912;
+ t.oshortvowelsigndeva = 0x094a;
+ t.oslash = 0x00f8;
+ t.oslashacute = 0x01ff;
+ t.osmallhiragana = 0x3049;
+ t.osmallkatakana = 0x30a9;
+ t.osmallkatakanahalfwidth = 0xff6b;
+ t.ostrokeacute = 0x01ff;
+ t.osuperior = 0xf6f0;
+ t.otcyrillic = 0x047f;
+ t.otilde = 0x00f5;
+ t.otildeacute = 0x1e4d;
+ t.otildedieresis = 0x1e4f;
+ t.oubopomofo = 0x3121;
+ t.overline = 0x203e;
+ t.overlinecenterline = 0xfe4a;
+ t.overlinecmb = 0x0305;
+ t.overlinedashed = 0xfe49;
+ t.overlinedblwavy = 0xfe4c;
+ t.overlinewavy = 0xfe4b;
+ t.overscore = 0x00af;
+ t.ovowelsignbengali = 0x09cb;
+ t.ovowelsigndeva = 0x094b;
+ t.ovowelsigngujarati = 0x0acb;
+ t.p = 0x0070;
+ t.paampssquare = 0x3380;
+ t.paasentosquare = 0x332b;
+ t.pabengali = 0x09aa;
+ t.pacute = 0x1e55;
+ t.padeva = 0x092a;
+ t.pagedown = 0x21df;
+ t.pageup = 0x21de;
+ t.pagujarati = 0x0aaa;
+ t.pagurmukhi = 0x0a2a;
+ t.pahiragana = 0x3071;
+ t.paiyannoithai = 0x0e2f;
+ t.pakatakana = 0x30d1;
+ t.palatalizationcyrilliccmb = 0x0484;
+ t.palochkacyrillic = 0x04c0;
+ t.pansioskorean = 0x317f;
+ t.paragraph = 0x00b6;
+ t.parallel = 0x2225;
+ t.parenleft = 0x0028;
+ t.parenleftaltonearabic = 0xfd3e;
+ t.parenleftbt = 0xf8ed;
+ t.parenleftex = 0xf8ec;
+ t.parenleftinferior = 0x208d;
+ t.parenleftmonospace = 0xff08;
+ t.parenleftsmall = 0xfe59;
+ t.parenleftsuperior = 0x207d;
+ t.parenlefttp = 0xf8eb;
+ t.parenleftvertical = 0xfe35;
+ t.parenright = 0x0029;
+ t.parenrightaltonearabic = 0xfd3f;
+ t.parenrightbt = 0xf8f8;
+ t.parenrightex = 0xf8f7;
+ t.parenrightinferior = 0x208e;
+ t.parenrightmonospace = 0xff09;
+ t.parenrightsmall = 0xfe5a;
+ t.parenrightsuperior = 0x207e;
+ t.parenrighttp = 0xf8f6;
+ t.parenrightvertical = 0xfe36;
+ t.partialdiff = 0x2202;
+ t.paseqhebrew = 0x05c0;
+ t.pashtahebrew = 0x0599;
+ t.pasquare = 0x33a9;
+ t.patah = 0x05b7;
+ t.patah11 = 0x05b7;
+ t.patah1d = 0x05b7;
+ t.patah2a = 0x05b7;
+ t.patahhebrew = 0x05b7;
+ t.patahnarrowhebrew = 0x05b7;
+ t.patahquarterhebrew = 0x05b7;
+ t.patahwidehebrew = 0x05b7;
+ t.pazerhebrew = 0x05a1;
+ t.pbopomofo = 0x3106;
+ t.pcircle = 0x24df;
+ t.pdotaccent = 0x1e57;
+ t.pe = 0x05e4;
+ t.pecyrillic = 0x043f;
+ t.pedagesh = 0xfb44;
+ t.pedageshhebrew = 0xfb44;
+ t.peezisquare = 0x333b;
+ t.pefinaldageshhebrew = 0xfb43;
+ t.peharabic = 0x067e;
+ t.peharmenian = 0x057a;
+ t.pehebrew = 0x05e4;
+ t.pehfinalarabic = 0xfb57;
+ t.pehinitialarabic = 0xfb58;
+ t.pehiragana = 0x307a;
+ t.pehmedialarabic = 0xfb59;
+ t.pekatakana = 0x30da;
+ t.pemiddlehookcyrillic = 0x04a7;
+ t.perafehebrew = 0xfb4e;
+ t.percent = 0x0025;
+ t.percentarabic = 0x066a;
+ t.percentmonospace = 0xff05;
+ t.percentsmall = 0xfe6a;
+ t.period = 0x002e;
+ t.periodarmenian = 0x0589;
+ t.periodcentered = 0x00b7;
+ t.periodhalfwidth = 0xff61;
+ t.periodinferior = 0xf6e7;
+ t.periodmonospace = 0xff0e;
+ t.periodsmall = 0xfe52;
+ t.periodsuperior = 0xf6e8;
+ t.perispomenigreekcmb = 0x0342;
+ t.perpendicular = 0x22a5;
+ t.perthousand = 0x2030;
+ t.peseta = 0x20a7;
+ t.pfsquare = 0x338a;
+ t.phabengali = 0x09ab;
+ t.phadeva = 0x092b;
+ t.phagujarati = 0x0aab;
+ t.phagurmukhi = 0x0a2b;
+ t.phi = 0x03c6;
+ t.phi1 = 0x03d5;
+ t.phieuphacirclekorean = 0x327a;
+ t.phieuphaparenkorean = 0x321a;
+ t.phieuphcirclekorean = 0x326c;
+ t.phieuphkorean = 0x314d;
+ t.phieuphparenkorean = 0x320c;
+ t.philatin = 0x0278;
+ t.phinthuthai = 0x0e3a;
+ t.phisymbolgreek = 0x03d5;
+ t.phook = 0x01a5;
+ t.phophanthai = 0x0e1e;
+ t.phophungthai = 0x0e1c;
+ t.phosamphaothai = 0x0e20;
+ t.pi = 0x03c0;
+ t.pieupacirclekorean = 0x3273;
+ t.pieupaparenkorean = 0x3213;
+ t.pieupcieuckorean = 0x3176;
+ t.pieupcirclekorean = 0x3265;
+ t.pieupkiyeokkorean = 0x3172;
+ t.pieupkorean = 0x3142;
+ t.pieupparenkorean = 0x3205;
+ t.pieupsioskiyeokkorean = 0x3174;
+ t.pieupsioskorean = 0x3144;
+ t.pieupsiostikeutkorean = 0x3175;
+ t.pieupthieuthkorean = 0x3177;
+ t.pieuptikeutkorean = 0x3173;
+ t.pihiragana = 0x3074;
+ t.pikatakana = 0x30d4;
+ t.pisymbolgreek = 0x03d6;
+ t.piwrarmenian = 0x0583;
+ t.plus = 0x002b;
+ t.plusbelowcmb = 0x031f;
+ t.pluscircle = 0x2295;
+ t.plusminus = 0x00b1;
+ t.plusmod = 0x02d6;
+ t.plusmonospace = 0xff0b;
+ t.plussmall = 0xfe62;
+ t.plussuperior = 0x207a;
+ t.pmonospace = 0xff50;
+ t.pmsquare = 0x33d8;
+ t.pohiragana = 0x307d;
+ t.pointingindexdownwhite = 0x261f;
+ t.pointingindexleftwhite = 0x261c;
+ t.pointingindexrightwhite = 0x261e;
+ t.pointingindexupwhite = 0x261d;
+ t.pokatakana = 0x30dd;
+ t.poplathai = 0x0e1b;
+ t.postalmark = 0x3012;
+ t.postalmarkface = 0x3020;
+ t.pparen = 0x24ab;
+ t.precedes = 0x227a;
+ t.prescription = 0x211e;
+ t.primemod = 0x02b9;
+ t.primereversed = 0x2035;
+ t.product = 0x220f;
+ t.projective = 0x2305;
+ t.prolongedkana = 0x30fc;
+ t.propellor = 0x2318;
+ t.propersubset = 0x2282;
+ t.propersuperset = 0x2283;
+ t.proportion = 0x2237;
+ t.proportional = 0x221d;
+ t.psi = 0x03c8;
+ t.psicyrillic = 0x0471;
+ t.psilipneumatacyrilliccmb = 0x0486;
+ t.pssquare = 0x33b0;
+ t.puhiragana = 0x3077;
+ t.pukatakana = 0x30d7;
+ t.pvsquare = 0x33b4;
+ t.pwsquare = 0x33ba;
+ t.q = 0x0071;
+ t.qadeva = 0x0958;
+ t.qadmahebrew = 0x05a8;
+ t.qafarabic = 0x0642;
+ t.qaffinalarabic = 0xfed6;
+ t.qafinitialarabic = 0xfed7;
+ t.qafmedialarabic = 0xfed8;
+ t.qamats = 0x05b8;
+ t.qamats10 = 0x05b8;
+ t.qamats1a = 0x05b8;
+ t.qamats1c = 0x05b8;
+ t.qamats27 = 0x05b8;
+ t.qamats29 = 0x05b8;
+ t.qamats33 = 0x05b8;
+ t.qamatsde = 0x05b8;
+ t.qamatshebrew = 0x05b8;
+ t.qamatsnarrowhebrew = 0x05b8;
+ t.qamatsqatanhebrew = 0x05b8;
+ t.qamatsqatannarrowhebrew = 0x05b8;
+ t.qamatsqatanquarterhebrew = 0x05b8;
+ t.qamatsqatanwidehebrew = 0x05b8;
+ t.qamatsquarterhebrew = 0x05b8;
+ t.qamatswidehebrew = 0x05b8;
+ t.qarneyparahebrew = 0x059f;
+ t.qbopomofo = 0x3111;
+ t.qcircle = 0x24e0;
+ t.qhook = 0x02a0;
+ t.qmonospace = 0xff51;
+ t.qof = 0x05e7;
+ t.qofdagesh = 0xfb47;
+ t.qofdageshhebrew = 0xfb47;
+ t.qofhebrew = 0x05e7;
+ t.qparen = 0x24ac;
+ t.quarternote = 0x2669;
+ t.qubuts = 0x05bb;
+ t.qubuts18 = 0x05bb;
+ t.qubuts25 = 0x05bb;
+ t.qubuts31 = 0x05bb;
+ t.qubutshebrew = 0x05bb;
+ t.qubutsnarrowhebrew = 0x05bb;
+ t.qubutsquarterhebrew = 0x05bb;
+ t.qubutswidehebrew = 0x05bb;
+ t.question = 0x003f;
+ t.questionarabic = 0x061f;
+ t.questionarmenian = 0x055e;
+ t.questiondown = 0x00bf;
+ t.questiondownsmall = 0xf7bf;
+ t.questiongreek = 0x037e;
+ t.questionmonospace = 0xff1f;
+ t.questionsmall = 0xf73f;
+ t.quotedbl = 0x0022;
+ t.quotedblbase = 0x201e;
+ t.quotedblleft = 0x201c;
+ t.quotedblmonospace = 0xff02;
+ t.quotedblprime = 0x301e;
+ t.quotedblprimereversed = 0x301d;
+ t.quotedblright = 0x201d;
+ t.quoteleft = 0x2018;
+ t.quoteleftreversed = 0x201b;
+ t.quotereversed = 0x201b;
+ t.quoteright = 0x2019;
+ t.quoterightn = 0x0149;
+ t.quotesinglbase = 0x201a;
+ t.quotesingle = 0x0027;
+ t.quotesinglemonospace = 0xff07;
+ t.r = 0x0072;
+ t.raarmenian = 0x057c;
+ t.rabengali = 0x09b0;
+ t.racute = 0x0155;
+ t.radeva = 0x0930;
+ t.radical = 0x221a;
+ t.radicalex = 0xf8e5;
+ t.radoverssquare = 0x33ae;
+ t.radoverssquaredsquare = 0x33af;
+ t.radsquare = 0x33ad;
+ t.rafe = 0x05bf;
+ t.rafehebrew = 0x05bf;
+ t.ragujarati = 0x0ab0;
+ t.ragurmukhi = 0x0a30;
+ t.rahiragana = 0x3089;
+ t.rakatakana = 0x30e9;
+ t.rakatakanahalfwidth = 0xff97;
+ t.ralowerdiagonalbengali = 0x09f1;
+ t.ramiddlediagonalbengali = 0x09f0;
+ t.ramshorn = 0x0264;
+ t.ratio = 0x2236;
+ t.rbopomofo = 0x3116;
+ t.rcaron = 0x0159;
+ t.rcedilla = 0x0157;
+ t.rcircle = 0x24e1;
+ t.rcommaaccent = 0x0157;
+ t.rdblgrave = 0x0211;
+ t.rdotaccent = 0x1e59;
+ t.rdotbelow = 0x1e5b;
+ t.rdotbelowmacron = 0x1e5d;
+ t.referencemark = 0x203b;
+ t.reflexsubset = 0x2286;
+ t.reflexsuperset = 0x2287;
+ t.registered = 0x00ae;
+ t.registersans = 0xf8e8;
+ t.registerserif = 0xf6da;
+ t.reharabic = 0x0631;
+ t.reharmenian = 0x0580;
+ t.rehfinalarabic = 0xfeae;
+ t.rehiragana = 0x308c;
+ t.rekatakana = 0x30ec;
+ t.rekatakanahalfwidth = 0xff9a;
+ t.resh = 0x05e8;
+ t.reshdageshhebrew = 0xfb48;
+ t.reshhebrew = 0x05e8;
+ t.reversedtilde = 0x223d;
+ t.reviahebrew = 0x0597;
+ t.reviamugrashhebrew = 0x0597;
+ t.revlogicalnot = 0x2310;
+ t.rfishhook = 0x027e;
+ t.rfishhookreversed = 0x027f;
+ t.rhabengali = 0x09dd;
+ t.rhadeva = 0x095d;
+ t.rho = 0x03c1;
+ t.rhook = 0x027d;
+ t.rhookturned = 0x027b;
+ t.rhookturnedsuperior = 0x02b5;
+ t.rhosymbolgreek = 0x03f1;
+ t.rhotichookmod = 0x02de;
+ t.rieulacirclekorean = 0x3271;
+ t.rieulaparenkorean = 0x3211;
+ t.rieulcirclekorean = 0x3263;
+ t.rieulhieuhkorean = 0x3140;
+ t.rieulkiyeokkorean = 0x313a;
+ t.rieulkiyeoksioskorean = 0x3169;
+ t.rieulkorean = 0x3139;
+ t.rieulmieumkorean = 0x313b;
+ t.rieulpansioskorean = 0x316c;
+ t.rieulparenkorean = 0x3203;
+ t.rieulphieuphkorean = 0x313f;
+ t.rieulpieupkorean = 0x313c;
+ t.rieulpieupsioskorean = 0x316b;
+ t.rieulsioskorean = 0x313d;
+ t.rieulthieuthkorean = 0x313e;
+ t.rieultikeutkorean = 0x316a;
+ t.rieulyeorinhieuhkorean = 0x316d;
+ t.rightangle = 0x221f;
+ t.righttackbelowcmb = 0x0319;
+ t.righttriangle = 0x22bf;
+ t.rihiragana = 0x308a;
+ t.rikatakana = 0x30ea;
+ t.rikatakanahalfwidth = 0xff98;
+ t.ring = 0x02da;
+ t.ringbelowcmb = 0x0325;
+ t.ringcmb = 0x030a;
+ t.ringhalfleft = 0x02bf;
+ t.ringhalfleftarmenian = 0x0559;
+ t.ringhalfleftbelowcmb = 0x031c;
+ t.ringhalfleftcentered = 0x02d3;
+ t.ringhalfright = 0x02be;
+ t.ringhalfrightbelowcmb = 0x0339;
+ t.ringhalfrightcentered = 0x02d2;
+ t.rinvertedbreve = 0x0213;
+ t.rittorusquare = 0x3351;
+ t.rlinebelow = 0x1e5f;
+ t.rlongleg = 0x027c;
+ t.rlonglegturned = 0x027a;
+ t.rmonospace = 0xff52;
+ t.rohiragana = 0x308d;
+ t.rokatakana = 0x30ed;
+ t.rokatakanahalfwidth = 0xff9b;
+ t.roruathai = 0x0e23;
+ t.rparen = 0x24ad;
+ t.rrabengali = 0x09dc;
+ t.rradeva = 0x0931;
+ t.rragurmukhi = 0x0a5c;
+ t.rreharabic = 0x0691;
+ t.rrehfinalarabic = 0xfb8d;
+ t.rrvocalicbengali = 0x09e0;
+ t.rrvocalicdeva = 0x0960;
+ t.rrvocalicgujarati = 0x0ae0;
+ t.rrvocalicvowelsignbengali = 0x09c4;
+ t.rrvocalicvowelsigndeva = 0x0944;
+ t.rrvocalicvowelsigngujarati = 0x0ac4;
+ t.rsuperior = 0xf6f1;
+ t.rtblock = 0x2590;
+ t.rturned = 0x0279;
+ t.rturnedsuperior = 0x02b4;
+ t.ruhiragana = 0x308b;
+ t.rukatakana = 0x30eb;
+ t.rukatakanahalfwidth = 0xff99;
+ t.rupeemarkbengali = 0x09f2;
+ t.rupeesignbengali = 0x09f3;
+ t.rupiah = 0xf6dd;
+ t.ruthai = 0x0e24;
+ t.rvocalicbengali = 0x098b;
+ t.rvocalicdeva = 0x090b;
+ t.rvocalicgujarati = 0x0a8b;
+ t.rvocalicvowelsignbengali = 0x09c3;
+ t.rvocalicvowelsigndeva = 0x0943;
+ t.rvocalicvowelsigngujarati = 0x0ac3;
+ t.s = 0x0073;
+ t.sabengali = 0x09b8;
+ t.sacute = 0x015b;
+ t.sacutedotaccent = 0x1e65;
+ t.sadarabic = 0x0635;
+ t.sadeva = 0x0938;
+ t.sadfinalarabic = 0xfeba;
+ t.sadinitialarabic = 0xfebb;
+ t.sadmedialarabic = 0xfebc;
+ t.sagujarati = 0x0ab8;
+ t.sagurmukhi = 0x0a38;
+ t.sahiragana = 0x3055;
+ t.sakatakana = 0x30b5;
+ t.sakatakanahalfwidth = 0xff7b;
+ t.sallallahoualayhewasallamarabic = 0xfdfa;
+ t.samekh = 0x05e1;
+ t.samekhdagesh = 0xfb41;
+ t.samekhdageshhebrew = 0xfb41;
+ t.samekhhebrew = 0x05e1;
+ t.saraaathai = 0x0e32;
+ t.saraaethai = 0x0e41;
+ t.saraaimaimalaithai = 0x0e44;
+ t.saraaimaimuanthai = 0x0e43;
+ t.saraamthai = 0x0e33;
+ t.saraathai = 0x0e30;
+ t.saraethai = 0x0e40;
+ t.saraiileftthai = 0xf886;
+ t.saraiithai = 0x0e35;
+ t.saraileftthai = 0xf885;
+ t.saraithai = 0x0e34;
+ t.saraothai = 0x0e42;
+ t.saraueeleftthai = 0xf888;
+ t.saraueethai = 0x0e37;
+ t.saraueleftthai = 0xf887;
+ t.sarauethai = 0x0e36;
+ t.sarauthai = 0x0e38;
+ t.sarauuthai = 0x0e39;
+ t.sbopomofo = 0x3119;
+ t.scaron = 0x0161;
+ t.scarondotaccent = 0x1e67;
+ t.scedilla = 0x015f;
+ t.schwa = 0x0259;
+ t.schwacyrillic = 0x04d9;
+ t.schwadieresiscyrillic = 0x04db;
+ t.schwahook = 0x025a;
+ t.scircle = 0x24e2;
+ t.scircumflex = 0x015d;
+ t.scommaaccent = 0x0219;
+ t.sdotaccent = 0x1e61;
+ t.sdotbelow = 0x1e63;
+ t.sdotbelowdotaccent = 0x1e69;
+ t.seagullbelowcmb = 0x033c;
+ t.second = 0x2033;
+ t.secondtonechinese = 0x02ca;
+ t.section = 0x00a7;
+ t.seenarabic = 0x0633;
+ t.seenfinalarabic = 0xfeb2;
+ t.seeninitialarabic = 0xfeb3;
+ t.seenmedialarabic = 0xfeb4;
+ t.segol = 0x05b6;
+ t.segol13 = 0x05b6;
+ t.segol1f = 0x05b6;
+ t.segol2c = 0x05b6;
+ t.segolhebrew = 0x05b6;
+ t.segolnarrowhebrew = 0x05b6;
+ t.segolquarterhebrew = 0x05b6;
+ t.segoltahebrew = 0x0592;
+ t.segolwidehebrew = 0x05b6;
+ t.seharmenian = 0x057d;
+ t.sehiragana = 0x305b;
+ t.sekatakana = 0x30bb;
+ t.sekatakanahalfwidth = 0xff7e;
+ t.semicolon = 0x003b;
+ t.semicolonarabic = 0x061b;
+ t.semicolonmonospace = 0xff1b;
+ t.semicolonsmall = 0xfe54;
+ t.semivoicedmarkkana = 0x309c;
+ t.semivoicedmarkkanahalfwidth = 0xff9f;
+ t.sentisquare = 0x3322;
+ t.sentosquare = 0x3323;
+ t.seven = 0x0037;
+ t.sevenarabic = 0x0667;
+ t.sevenbengali = 0x09ed;
+ t.sevencircle = 0x2466;
+ t.sevencircleinversesansserif = 0x2790;
+ t.sevendeva = 0x096d;
+ t.seveneighths = 0x215e;
+ t.sevengujarati = 0x0aed;
+ t.sevengurmukhi = 0x0a6d;
+ t.sevenhackarabic = 0x0667;
+ t.sevenhangzhou = 0x3027;
+ t.sevenideographicparen = 0x3226;
+ t.seveninferior = 0x2087;
+ t.sevenmonospace = 0xff17;
+ t.sevenoldstyle = 0xf737;
+ t.sevenparen = 0x247a;
+ t.sevenperiod = 0x248e;
+ t.sevenpersian = 0x06f7;
+ t.sevenroman = 0x2176;
+ t.sevensuperior = 0x2077;
+ t.seventeencircle = 0x2470;
+ t.seventeenparen = 0x2484;
+ t.seventeenperiod = 0x2498;
+ t.seventhai = 0x0e57;
+ t.sfthyphen = 0x00ad;
+ t.shaarmenian = 0x0577;
+ t.shabengali = 0x09b6;
+ t.shacyrillic = 0x0448;
+ t.shaddaarabic = 0x0651;
+ t.shaddadammaarabic = 0xfc61;
+ t.shaddadammatanarabic = 0xfc5e;
+ t.shaddafathaarabic = 0xfc60;
+ t.shaddakasraarabic = 0xfc62;
+ t.shaddakasratanarabic = 0xfc5f;
+ t.shade = 0x2592;
+ t.shadedark = 0x2593;
+ t.shadelight = 0x2591;
+ t.shademedium = 0x2592;
+ t.shadeva = 0x0936;
+ t.shagujarati = 0x0ab6;
+ t.shagurmukhi = 0x0a36;
+ t.shalshelethebrew = 0x0593;
+ t.shbopomofo = 0x3115;
+ t.shchacyrillic = 0x0449;
+ t.sheenarabic = 0x0634;
+ t.sheenfinalarabic = 0xfeb6;
+ t.sheeninitialarabic = 0xfeb7;
+ t.sheenmedialarabic = 0xfeb8;
+ t.sheicoptic = 0x03e3;
+ t.sheqel = 0x20aa;
+ t.sheqelhebrew = 0x20aa;
+ t.sheva = 0x05b0;
+ t.sheva115 = 0x05b0;
+ t.sheva15 = 0x05b0;
+ t.sheva22 = 0x05b0;
+ t.sheva2e = 0x05b0;
+ t.shevahebrew = 0x05b0;
+ t.shevanarrowhebrew = 0x05b0;
+ t.shevaquarterhebrew = 0x05b0;
+ t.shevawidehebrew = 0x05b0;
+ t.shhacyrillic = 0x04bb;
+ t.shimacoptic = 0x03ed;
+ t.shin = 0x05e9;
+ t.shindagesh = 0xfb49;
+ t.shindageshhebrew = 0xfb49;
+ t.shindageshshindot = 0xfb2c;
+ t.shindageshshindothebrew = 0xfb2c;
+ t.shindageshsindot = 0xfb2d;
+ t.shindageshsindothebrew = 0xfb2d;
+ t.shindothebrew = 0x05c1;
+ t.shinhebrew = 0x05e9;
+ t.shinshindot = 0xfb2a;
+ t.shinshindothebrew = 0xfb2a;
+ t.shinsindot = 0xfb2b;
+ t.shinsindothebrew = 0xfb2b;
+ t.shook = 0x0282;
+ t.sigma = 0x03c3;
+ t.sigma1 = 0x03c2;
+ t.sigmafinal = 0x03c2;
+ t.sigmalunatesymbolgreek = 0x03f2;
+ t.sihiragana = 0x3057;
+ t.sikatakana = 0x30b7;
+ t.sikatakanahalfwidth = 0xff7c;
+ t.siluqhebrew = 0x05bd;
+ t.siluqlefthebrew = 0x05bd;
+ t.similar = 0x223c;
+ t.sindothebrew = 0x05c2;
+ t.siosacirclekorean = 0x3274;
+ t.siosaparenkorean = 0x3214;
+ t.sioscieuckorean = 0x317e;
+ t.sioscirclekorean = 0x3266;
+ t.sioskiyeokkorean = 0x317a;
+ t.sioskorean = 0x3145;
+ t.siosnieunkorean = 0x317b;
+ t.siosparenkorean = 0x3206;
+ t.siospieupkorean = 0x317d;
+ t.siostikeutkorean = 0x317c;
+ t.six = 0x0036;
+ t.sixarabic = 0x0666;
+ t.sixbengali = 0x09ec;
+ t.sixcircle = 0x2465;
+ t.sixcircleinversesansserif = 0x278f;
+ t.sixdeva = 0x096c;
+ t.sixgujarati = 0x0aec;
+ t.sixgurmukhi = 0x0a6c;
+ t.sixhackarabic = 0x0666;
+ t.sixhangzhou = 0x3026;
+ t.sixideographicparen = 0x3225;
+ t.sixinferior = 0x2086;
+ t.sixmonospace = 0xff16;
+ t.sixoldstyle = 0xf736;
+ t.sixparen = 0x2479;
+ t.sixperiod = 0x248d;
+ t.sixpersian = 0x06f6;
+ t.sixroman = 0x2175;
+ t.sixsuperior = 0x2076;
+ t.sixteencircle = 0x246f;
+ t.sixteencurrencydenominatorbengali = 0x09f9;
+ t.sixteenparen = 0x2483;
+ t.sixteenperiod = 0x2497;
+ t.sixthai = 0x0e56;
+ t.slash = 0x002f;
+ t.slashmonospace = 0xff0f;
+ t.slong = 0x017f;
+ t.slongdotaccent = 0x1e9b;
+ t.smileface = 0x263a;
+ t.smonospace = 0xff53;
+ t.sofpasuqhebrew = 0x05c3;
+ t.softhyphen = 0x00ad;
+ t.softsigncyrillic = 0x044c;
+ t.sohiragana = 0x305d;
+ t.sokatakana = 0x30bd;
+ t.sokatakanahalfwidth = 0xff7f;
+ t.soliduslongoverlaycmb = 0x0338;
+ t.solidusshortoverlaycmb = 0x0337;
+ t.sorusithai = 0x0e29;
+ t.sosalathai = 0x0e28;
+ t.sosothai = 0x0e0b;
+ t.sosuathai = 0x0e2a;
+ t.space = 0x0020;
+ t.spacehackarabic = 0x0020;
+ t.spade = 0x2660;
+ t.spadesuitblack = 0x2660;
+ t.spadesuitwhite = 0x2664;
+ t.sparen = 0x24ae;
+ t.squarebelowcmb = 0x033b;
+ t.squarecc = 0x33c4;
+ t.squarecm = 0x339d;
+ t.squarediagonalcrosshatchfill = 0x25a9;
+ t.squarehorizontalfill = 0x25a4;
+ t.squarekg = 0x338f;
+ t.squarekm = 0x339e;
+ t.squarekmcapital = 0x33ce;
+ t.squareln = 0x33d1;
+ t.squarelog = 0x33d2;
+ t.squaremg = 0x338e;
+ t.squaremil = 0x33d5;
+ t.squaremm = 0x339c;
+ t.squaremsquared = 0x33a1;
+ t.squareorthogonalcrosshatchfill = 0x25a6;
+ t.squareupperlefttolowerrightfill = 0x25a7;
+ t.squareupperrighttolowerleftfill = 0x25a8;
+ t.squareverticalfill = 0x25a5;
+ t.squarewhitewithsmallblack = 0x25a3;
+ t.srsquare = 0x33db;
+ t.ssabengali = 0x09b7;
+ t.ssadeva = 0x0937;
+ t.ssagujarati = 0x0ab7;
+ t.ssangcieuckorean = 0x3149;
+ t.ssanghieuhkorean = 0x3185;
+ t.ssangieungkorean = 0x3180;
+ t.ssangkiyeokkorean = 0x3132;
+ t.ssangnieunkorean = 0x3165;
+ t.ssangpieupkorean = 0x3143;
+ t.ssangsioskorean = 0x3146;
+ t.ssangtikeutkorean = 0x3138;
+ t.ssuperior = 0xf6f2;
+ t.sterling = 0x00a3;
+ t.sterlingmonospace = 0xffe1;
+ t.strokelongoverlaycmb = 0x0336;
+ t.strokeshortoverlaycmb = 0x0335;
+ t.subset = 0x2282;
+ t.subsetnotequal = 0x228a;
+ t.subsetorequal = 0x2286;
+ t.succeeds = 0x227b;
+ t.suchthat = 0x220b;
+ t.suhiragana = 0x3059;
+ t.sukatakana = 0x30b9;
+ t.sukatakanahalfwidth = 0xff7d;
+ t.sukunarabic = 0x0652;
+ t.summation = 0x2211;
+ t.sun = 0x263c;
+ t.superset = 0x2283;
+ t.supersetnotequal = 0x228b;
+ t.supersetorequal = 0x2287;
+ t.svsquare = 0x33dc;
+ t.syouwaerasquare = 0x337c;
+ t.t = 0x0074;
+ t.tabengali = 0x09a4;
+ t.tackdown = 0x22a4;
+ t.tackleft = 0x22a3;
+ t.tadeva = 0x0924;
+ t.tagujarati = 0x0aa4;
+ t.tagurmukhi = 0x0a24;
+ t.taharabic = 0x0637;
+ t.tahfinalarabic = 0xfec2;
+ t.tahinitialarabic = 0xfec3;
+ t.tahiragana = 0x305f;
+ t.tahmedialarabic = 0xfec4;
+ t.taisyouerasquare = 0x337d;
+ t.takatakana = 0x30bf;
+ t.takatakanahalfwidth = 0xff80;
+ t.tatweelarabic = 0x0640;
+ t.tau = 0x03c4;
+ t.tav = 0x05ea;
+ t.tavdages = 0xfb4a;
+ t.tavdagesh = 0xfb4a;
+ t.tavdageshhebrew = 0xfb4a;
+ t.tavhebrew = 0x05ea;
+ t.tbar = 0x0167;
+ t.tbopomofo = 0x310a;
+ t.tcaron = 0x0165;
+ t.tccurl = 0x02a8;
+ t.tcedilla = 0x0163;
+ t.tcheharabic = 0x0686;
+ t.tchehfinalarabic = 0xfb7b;
+ t.tchehinitialarabic = 0xfb7c;
+ t.tchehmedialarabic = 0xfb7d;
+ t.tcircle = 0x24e3;
+ t.tcircumflexbelow = 0x1e71;
+ t.tcommaaccent = 0x0163;
+ t.tdieresis = 0x1e97;
+ t.tdotaccent = 0x1e6b;
+ t.tdotbelow = 0x1e6d;
+ t.tecyrillic = 0x0442;
+ t.tedescendercyrillic = 0x04ad;
+ t.teharabic = 0x062a;
+ t.tehfinalarabic = 0xfe96;
+ t.tehhahinitialarabic = 0xfca2;
+ t.tehhahisolatedarabic = 0xfc0c;
+ t.tehinitialarabic = 0xfe97;
+ t.tehiragana = 0x3066;
+ t.tehjeeminitialarabic = 0xfca1;
+ t.tehjeemisolatedarabic = 0xfc0b;
+ t.tehmarbutaarabic = 0x0629;
+ t.tehmarbutafinalarabic = 0xfe94;
+ t.tehmedialarabic = 0xfe98;
+ t.tehmeeminitialarabic = 0xfca4;
+ t.tehmeemisolatedarabic = 0xfc0e;
+ t.tehnoonfinalarabic = 0xfc73;
+ t.tekatakana = 0x30c6;
+ t.tekatakanahalfwidth = 0xff83;
+ t.telephone = 0x2121;
+ t.telephoneblack = 0x260e;
+ t.telishagedolahebrew = 0x05a0;
+ t.telishaqetanahebrew = 0x05a9;
+ t.tencircle = 0x2469;
+ t.tenideographicparen = 0x3229;
+ t.tenparen = 0x247d;
+ t.tenperiod = 0x2491;
+ t.tenroman = 0x2179;
+ t.tesh = 0x02a7;
+ t.tet = 0x05d8;
+ t.tetdagesh = 0xfb38;
+ t.tetdageshhebrew = 0xfb38;
+ t.tethebrew = 0x05d8;
+ t.tetsecyrillic = 0x04b5;
+ t.tevirhebrew = 0x059b;
+ t.tevirlefthebrew = 0x059b;
+ t.thabengali = 0x09a5;
+ t.thadeva = 0x0925;
+ t.thagujarati = 0x0aa5;
+ t.thagurmukhi = 0x0a25;
+ t.thalarabic = 0x0630;
+ t.thalfinalarabic = 0xfeac;
+ t.thanthakhatlowleftthai = 0xf898;
+ t.thanthakhatlowrightthai = 0xf897;
+ t.thanthakhatthai = 0x0e4c;
+ t.thanthakhatupperleftthai = 0xf896;
+ t.theharabic = 0x062b;
+ t.thehfinalarabic = 0xfe9a;
+ t.thehinitialarabic = 0xfe9b;
+ t.thehmedialarabic = 0xfe9c;
+ t.thereexists = 0x2203;
+ t.therefore = 0x2234;
+ t.theta = 0x03b8;
+ t.theta1 = 0x03d1;
+ t.thetasymbolgreek = 0x03d1;
+ t.thieuthacirclekorean = 0x3279;
+ t.thieuthaparenkorean = 0x3219;
+ t.thieuthcirclekorean = 0x326b;
+ t.thieuthkorean = 0x314c;
+ t.thieuthparenkorean = 0x320b;
+ t.thirteencircle = 0x246c;
+ t.thirteenparen = 0x2480;
+ t.thirteenperiod = 0x2494;
+ t.thonangmonthothai = 0x0e11;
+ t.thook = 0x01ad;
+ t.thophuthaothai = 0x0e12;
+ t.thorn = 0x00fe;
+ t.thothahanthai = 0x0e17;
+ t.thothanthai = 0x0e10;
+ t.thothongthai = 0x0e18;
+ t.thothungthai = 0x0e16;
+ t.thousandcyrillic = 0x0482;
+ t.thousandsseparatorarabic = 0x066c;
+ t.thousandsseparatorpersian = 0x066c;
+ t.three = 0x0033;
+ t.threearabic = 0x0663;
+ t.threebengali = 0x09e9;
+ t.threecircle = 0x2462;
+ t.threecircleinversesansserif = 0x278c;
+ t.threedeva = 0x0969;
+ t.threeeighths = 0x215c;
+ t.threegujarati = 0x0ae9;
+ t.threegurmukhi = 0x0a69;
+ t.threehackarabic = 0x0663;
+ t.threehangzhou = 0x3023;
+ t.threeideographicparen = 0x3222;
+ t.threeinferior = 0x2083;
+ t.threemonospace = 0xff13;
+ t.threenumeratorbengali = 0x09f6;
+ t.threeoldstyle = 0xf733;
+ t.threeparen = 0x2476;
+ t.threeperiod = 0x248a;
+ t.threepersian = 0x06f3;
+ t.threequarters = 0x00be;
+ t.threequartersemdash = 0xf6de;
+ t.threeroman = 0x2172;
+ t.threesuperior = 0x00b3;
+ t.threethai = 0x0e53;
+ t.thzsquare = 0x3394;
+ t.tihiragana = 0x3061;
+ t.tikatakana = 0x30c1;
+ t.tikatakanahalfwidth = 0xff81;
+ t.tikeutacirclekorean = 0x3270;
+ t.tikeutaparenkorean = 0x3210;
+ t.tikeutcirclekorean = 0x3262;
+ t.tikeutkorean = 0x3137;
+ t.tikeutparenkorean = 0x3202;
+ t.tilde = 0x02dc;
+ t.tildebelowcmb = 0x0330;
+ t.tildecmb = 0x0303;
+ t.tildecomb = 0x0303;
+ t.tildedoublecmb = 0x0360;
+ t.tildeoperator = 0x223c;
+ t.tildeoverlaycmb = 0x0334;
+ t.tildeverticalcmb = 0x033e;
+ t.timescircle = 0x2297;
+ t.tipehahebrew = 0x0596;
+ t.tipehalefthebrew = 0x0596;
+ t.tippigurmukhi = 0x0a70;
+ t.titlocyrilliccmb = 0x0483;
+ t.tiwnarmenian = 0x057f;
+ t.tlinebelow = 0x1e6f;
+ t.tmonospace = 0xff54;
+ t.toarmenian = 0x0569;
+ t.tohiragana = 0x3068;
+ t.tokatakana = 0x30c8;
+ t.tokatakanahalfwidth = 0xff84;
+ t.tonebarextrahighmod = 0x02e5;
+ t.tonebarextralowmod = 0x02e9;
+ t.tonebarhighmod = 0x02e6;
+ t.tonebarlowmod = 0x02e8;
+ t.tonebarmidmod = 0x02e7;
+ t.tonefive = 0x01bd;
+ t.tonesix = 0x0185;
+ t.tonetwo = 0x01a8;
+ t.tonos = 0x0384;
+ t.tonsquare = 0x3327;
+ t.topatakthai = 0x0e0f;
+ t.tortoiseshellbracketleft = 0x3014;
+ t.tortoiseshellbracketleftsmall = 0xfe5d;
+ t.tortoiseshellbracketleftvertical = 0xfe39;
+ t.tortoiseshellbracketright = 0x3015;
+ t.tortoiseshellbracketrightsmall = 0xfe5e;
+ t.tortoiseshellbracketrightvertical = 0xfe3a;
+ t.totaothai = 0x0e15;
+ t.tpalatalhook = 0x01ab;
+ t.tparen = 0x24af;
+ t.trademark = 0x2122;
+ t.trademarksans = 0xf8ea;
+ t.trademarkserif = 0xf6db;
+ t.tretroflexhook = 0x0288;
+ t.triagdn = 0x25bc;
+ t.triaglf = 0x25c4;
+ t.triagrt = 0x25ba;
+ t.triagup = 0x25b2;
+ t.ts = 0x02a6;
+ t.tsadi = 0x05e6;
+ t.tsadidagesh = 0xfb46;
+ t.tsadidageshhebrew = 0xfb46;
+ t.tsadihebrew = 0x05e6;
+ t.tsecyrillic = 0x0446;
+ t.tsere = 0x05b5;
+ t.tsere12 = 0x05b5;
+ t.tsere1e = 0x05b5;
+ t.tsere2b = 0x05b5;
+ t.tserehebrew = 0x05b5;
+ t.tserenarrowhebrew = 0x05b5;
+ t.tserequarterhebrew = 0x05b5;
+ t.tserewidehebrew = 0x05b5;
+ t.tshecyrillic = 0x045b;
+ t.tsuperior = 0xf6f3;
+ t.ttabengali = 0x099f;
+ t.ttadeva = 0x091f;
+ t.ttagujarati = 0x0a9f;
+ t.ttagurmukhi = 0x0a1f;
+ t.tteharabic = 0x0679;
+ t.ttehfinalarabic = 0xfb67;
+ t.ttehinitialarabic = 0xfb68;
+ t.ttehmedialarabic = 0xfb69;
+ t.tthabengali = 0x09a0;
+ t.tthadeva = 0x0920;
+ t.tthagujarati = 0x0aa0;
+ t.tthagurmukhi = 0x0a20;
+ t.tturned = 0x0287;
+ t.tuhiragana = 0x3064;
+ t.tukatakana = 0x30c4;
+ t.tukatakanahalfwidth = 0xff82;
+ t.tusmallhiragana = 0x3063;
+ t.tusmallkatakana = 0x30c3;
+ t.tusmallkatakanahalfwidth = 0xff6f;
+ t.twelvecircle = 0x246b;
+ t.twelveparen = 0x247f;
+ t.twelveperiod = 0x2493;
+ t.twelveroman = 0x217b;
+ t.twentycircle = 0x2473;
+ t.twentyhangzhou = 0x5344;
+ t.twentyparen = 0x2487;
+ t.twentyperiod = 0x249b;
+ t.two = 0x0032;
+ t.twoarabic = 0x0662;
+ t.twobengali = 0x09e8;
+ t.twocircle = 0x2461;
+ t.twocircleinversesansserif = 0x278b;
+ t.twodeva = 0x0968;
+ t.twodotenleader = 0x2025;
+ t.twodotleader = 0x2025;
+ t.twodotleadervertical = 0xfe30;
+ t.twogujarati = 0x0ae8;
+ t.twogurmukhi = 0x0a68;
+ t.twohackarabic = 0x0662;
+ t.twohangzhou = 0x3022;
+ t.twoideographicparen = 0x3221;
+ t.twoinferior = 0x2082;
+ t.twomonospace = 0xff12;
+ t.twonumeratorbengali = 0x09f5;
+ t.twooldstyle = 0xf732;
+ t.twoparen = 0x2475;
+ t.twoperiod = 0x2489;
+ t.twopersian = 0x06f2;
+ t.tworoman = 0x2171;
+ t.twostroke = 0x01bb;
+ t.twosuperior = 0x00b2;
+ t.twothai = 0x0e52;
+ t.twothirds = 0x2154;
+ t.u = 0x0075;
+ t.uacute = 0x00fa;
+ t.ubar = 0x0289;
+ t.ubengali = 0x0989;
+ t.ubopomofo = 0x3128;
+ t.ubreve = 0x016d;
+ t.ucaron = 0x01d4;
+ t.ucircle = 0x24e4;
+ t.ucircumflex = 0x00fb;
+ t.ucircumflexbelow = 0x1e77;
+ t.ucyrillic = 0x0443;
+ t.udattadeva = 0x0951;
+ t.udblacute = 0x0171;
+ t.udblgrave = 0x0215;
+ t.udeva = 0x0909;
+ t.udieresis = 0x00fc;
+ t.udieresisacute = 0x01d8;
+ t.udieresisbelow = 0x1e73;
+ t.udieresiscaron = 0x01da;
+ t.udieresiscyrillic = 0x04f1;
+ t.udieresisgrave = 0x01dc;
+ t.udieresismacron = 0x01d6;
+ t.udotbelow = 0x1ee5;
+ t.ugrave = 0x00f9;
+ t.ugujarati = 0x0a89;
+ t.ugurmukhi = 0x0a09;
+ t.uhiragana = 0x3046;
+ t.uhookabove = 0x1ee7;
+ t.uhorn = 0x01b0;
+ t.uhornacute = 0x1ee9;
+ t.uhorndotbelow = 0x1ef1;
+ t.uhorngrave = 0x1eeb;
+ t.uhornhookabove = 0x1eed;
+ t.uhorntilde = 0x1eef;
+ t.uhungarumlaut = 0x0171;
+ t.uhungarumlautcyrillic = 0x04f3;
+ t.uinvertedbreve = 0x0217;
+ t.ukatakana = 0x30a6;
+ t.ukatakanahalfwidth = 0xff73;
+ t.ukcyrillic = 0x0479;
+ t.ukorean = 0x315c;
+ t.umacron = 0x016b;
+ t.umacroncyrillic = 0x04ef;
+ t.umacrondieresis = 0x1e7b;
+ t.umatragurmukhi = 0x0a41;
+ t.umonospace = 0xff55;
+ t.underscore = 0x005f;
+ t.underscoredbl = 0x2017;
+ t.underscoremonospace = 0xff3f;
+ t.underscorevertical = 0xfe33;
+ t.underscorewavy = 0xfe4f;
+ t.union = 0x222a;
+ t.universal = 0x2200;
+ t.uogonek = 0x0173;
+ t.uparen = 0x24b0;
+ t.upblock = 0x2580;
+ t.upperdothebrew = 0x05c4;
+ t.upsilon = 0x03c5;
+ t.upsilondieresis = 0x03cb;
+ t.upsilondieresistonos = 0x03b0;
+ t.upsilonlatin = 0x028a;
+ t.upsilontonos = 0x03cd;
+ t.uptackbelowcmb = 0x031d;
+ t.uptackmod = 0x02d4;
+ t.uragurmukhi = 0x0a73;
+ t.uring = 0x016f;
+ t.ushortcyrillic = 0x045e;
+ t.usmallhiragana = 0x3045;
+ t.usmallkatakana = 0x30a5;
+ t.usmallkatakanahalfwidth = 0xff69;
+ t.ustraightcyrillic = 0x04af;
+ t.ustraightstrokecyrillic = 0x04b1;
+ t.utilde = 0x0169;
+ t.utildeacute = 0x1e79;
+ t.utildebelow = 0x1e75;
+ t.uubengali = 0x098a;
+ t.uudeva = 0x090a;
+ t.uugujarati = 0x0a8a;
+ t.uugurmukhi = 0x0a0a;
+ t.uumatragurmukhi = 0x0a42;
+ t.uuvowelsignbengali = 0x09c2;
+ t.uuvowelsigndeva = 0x0942;
+ t.uuvowelsigngujarati = 0x0ac2;
+ t.uvowelsignbengali = 0x09c1;
+ t.uvowelsigndeva = 0x0941;
+ t.uvowelsigngujarati = 0x0ac1;
+ t.v = 0x0076;
+ t.vadeva = 0x0935;
+ t.vagujarati = 0x0ab5;
+ t.vagurmukhi = 0x0a35;
+ t.vakatakana = 0x30f7;
+ t.vav = 0x05d5;
+ t.vavdagesh = 0xfb35;
+ t.vavdagesh65 = 0xfb35;
+ t.vavdageshhebrew = 0xfb35;
+ t.vavhebrew = 0x05d5;
+ t.vavholam = 0xfb4b;
+ t.vavholamhebrew = 0xfb4b;
+ t.vavvavhebrew = 0x05f0;
+ t.vavyodhebrew = 0x05f1;
+ t.vcircle = 0x24e5;
+ t.vdotbelow = 0x1e7f;
+ t.vecyrillic = 0x0432;
+ t.veharabic = 0x06a4;
+ t.vehfinalarabic = 0xfb6b;
+ t.vehinitialarabic = 0xfb6c;
+ t.vehmedialarabic = 0xfb6d;
+ t.vekatakana = 0x30f9;
+ t.venus = 0x2640;
+ t.verticalbar = 0x007c;
+ t.verticallineabovecmb = 0x030d;
+ t.verticallinebelowcmb = 0x0329;
+ t.verticallinelowmod = 0x02cc;
+ t.verticallinemod = 0x02c8;
+ t.vewarmenian = 0x057e;
+ t.vhook = 0x028b;
+ t.vikatakana = 0x30f8;
+ t.viramabengali = 0x09cd;
+ t.viramadeva = 0x094d;
+ t.viramagujarati = 0x0acd;
+ t.visargabengali = 0x0983;
+ t.visargadeva = 0x0903;
+ t.visargagujarati = 0x0a83;
+ t.vmonospace = 0xff56;
+ t.voarmenian = 0x0578;
+ t.voicediterationhiragana = 0x309e;
+ t.voicediterationkatakana = 0x30fe;
+ t.voicedmarkkana = 0x309b;
+ t.voicedmarkkanahalfwidth = 0xff9e;
+ t.vokatakana = 0x30fa;
+ t.vparen = 0x24b1;
+ t.vtilde = 0x1e7d;
+ t.vturned = 0x028c;
+ t.vuhiragana = 0x3094;
+ t.vukatakana = 0x30f4;
+ t.w = 0x0077;
+ t.wacute = 0x1e83;
+ t.waekorean = 0x3159;
+ t.wahiragana = 0x308f;
+ t.wakatakana = 0x30ef;
+ t.wakatakanahalfwidth = 0xff9c;
+ t.wakorean = 0x3158;
+ t.wasmallhiragana = 0x308e;
+ t.wasmallkatakana = 0x30ee;
+ t.wattosquare = 0x3357;
+ t.wavedash = 0x301c;
+ t.wavyunderscorevertical = 0xfe34;
+ t.wawarabic = 0x0648;
+ t.wawfinalarabic = 0xfeee;
+ t.wawhamzaabovearabic = 0x0624;
+ t.wawhamzaabovefinalarabic = 0xfe86;
+ t.wbsquare = 0x33dd;
+ t.wcircle = 0x24e6;
+ t.wcircumflex = 0x0175;
+ t.wdieresis = 0x1e85;
+ t.wdotaccent = 0x1e87;
+ t.wdotbelow = 0x1e89;
+ t.wehiragana = 0x3091;
+ t.weierstrass = 0x2118;
+ t.wekatakana = 0x30f1;
+ t.wekorean = 0x315e;
+ t.weokorean = 0x315d;
+ t.wgrave = 0x1e81;
+ t.whitebullet = 0x25e6;
+ t.whitecircle = 0x25cb;
+ t.whitecircleinverse = 0x25d9;
+ t.whitecornerbracketleft = 0x300e;
+ t.whitecornerbracketleftvertical = 0xfe43;
+ t.whitecornerbracketright = 0x300f;
+ t.whitecornerbracketrightvertical = 0xfe44;
+ t.whitediamond = 0x25c7;
+ t.whitediamondcontainingblacksmalldiamond = 0x25c8;
+ t.whitedownpointingsmalltriangle = 0x25bf;
+ t.whitedownpointingtriangle = 0x25bd;
+ t.whiteleftpointingsmalltriangle = 0x25c3;
+ t.whiteleftpointingtriangle = 0x25c1;
+ t.whitelenticularbracketleft = 0x3016;
+ t.whitelenticularbracketright = 0x3017;
+ t.whiterightpointingsmalltriangle = 0x25b9;
+ t.whiterightpointingtriangle = 0x25b7;
+ t.whitesmallsquare = 0x25ab;
+ t.whitesmilingface = 0x263a;
+ t.whitesquare = 0x25a1;
+ t.whitestar = 0x2606;
+ t.whitetelephone = 0x260f;
+ t.whitetortoiseshellbracketleft = 0x3018;
+ t.whitetortoiseshellbracketright = 0x3019;
+ t.whiteuppointingsmalltriangle = 0x25b5;
+ t.whiteuppointingtriangle = 0x25b3;
+ t.wihiragana = 0x3090;
+ t.wikatakana = 0x30f0;
+ t.wikorean = 0x315f;
+ t.wmonospace = 0xff57;
+ t.wohiragana = 0x3092;
+ t.wokatakana = 0x30f2;
+ t.wokatakanahalfwidth = 0xff66;
+ t.won = 0x20a9;
+ t.wonmonospace = 0xffe6;
+ t.wowaenthai = 0x0e27;
+ t.wparen = 0x24b2;
+ t.wring = 0x1e98;
+ t.wsuperior = 0x02b7;
+ t.wturned = 0x028d;
+ t.wynn = 0x01bf;
+ t.x = 0x0078;
+ t.xabovecmb = 0x033d;
+ t.xbopomofo = 0x3112;
+ t.xcircle = 0x24e7;
+ t.xdieresis = 0x1e8d;
+ t.xdotaccent = 0x1e8b;
+ t.xeharmenian = 0x056d;
+ t.xi = 0x03be;
+ t.xmonospace = 0xff58;
+ t.xparen = 0x24b3;
+ t.xsuperior = 0x02e3;
+ t.y = 0x0079;
+ t.yaadosquare = 0x334e;
+ t.yabengali = 0x09af;
+ t.yacute = 0x00fd;
+ t.yadeva = 0x092f;
+ t.yaekorean = 0x3152;
+ t.yagujarati = 0x0aaf;
+ t.yagurmukhi = 0x0a2f;
+ t.yahiragana = 0x3084;
+ t.yakatakana = 0x30e4;
+ t.yakatakanahalfwidth = 0xff94;
+ t.yakorean = 0x3151;
+ t.yamakkanthai = 0x0e4e;
+ t.yasmallhiragana = 0x3083;
+ t.yasmallkatakana = 0x30e3;
+ t.yasmallkatakanahalfwidth = 0xff6c;
+ t.yatcyrillic = 0x0463;
+ t.ycircle = 0x24e8;
+ t.ycircumflex = 0x0177;
+ t.ydieresis = 0x00ff;
+ t.ydotaccent = 0x1e8f;
+ t.ydotbelow = 0x1ef5;
+ t.yeharabic = 0x064a;
+ t.yehbarreearabic = 0x06d2;
+ t.yehbarreefinalarabic = 0xfbaf;
+ t.yehfinalarabic = 0xfef2;
+ t.yehhamzaabovearabic = 0x0626;
+ t.yehhamzaabovefinalarabic = 0xfe8a;
+ t.yehhamzaaboveinitialarabic = 0xfe8b;
+ t.yehhamzaabovemedialarabic = 0xfe8c;
+ t.yehinitialarabic = 0xfef3;
+ t.yehmedialarabic = 0xfef4;
+ t.yehmeeminitialarabic = 0xfcdd;
+ t.yehmeemisolatedarabic = 0xfc58;
+ t.yehnoonfinalarabic = 0xfc94;
+ t.yehthreedotsbelowarabic = 0x06d1;
+ t.yekorean = 0x3156;
+ t.yen = 0x00a5;
+ t.yenmonospace = 0xffe5;
+ t.yeokorean = 0x3155;
+ t.yeorinhieuhkorean = 0x3186;
+ t.yerahbenyomohebrew = 0x05aa;
+ t.yerahbenyomolefthebrew = 0x05aa;
+ t.yericyrillic = 0x044b;
+ t.yerudieresiscyrillic = 0x04f9;
+ t.yesieungkorean = 0x3181;
+ t.yesieungpansioskorean = 0x3183;
+ t.yesieungsioskorean = 0x3182;
+ t.yetivhebrew = 0x059a;
+ t.ygrave = 0x1ef3;
+ t.yhook = 0x01b4;
+ t.yhookabove = 0x1ef7;
+ t.yiarmenian = 0x0575;
+ t.yicyrillic = 0x0457;
+ t.yikorean = 0x3162;
+ t.yinyang = 0x262f;
+ t.yiwnarmenian = 0x0582;
+ t.ymonospace = 0xff59;
+ t.yod = 0x05d9;
+ t.yoddagesh = 0xfb39;
+ t.yoddageshhebrew = 0xfb39;
+ t.yodhebrew = 0x05d9;
+ t.yodyodhebrew = 0x05f2;
+ t.yodyodpatahhebrew = 0xfb1f;
+ t.yohiragana = 0x3088;
+ t.yoikorean = 0x3189;
+ t.yokatakana = 0x30e8;
+ t.yokatakanahalfwidth = 0xff96;
+ t.yokorean = 0x315b;
+ t.yosmallhiragana = 0x3087;
+ t.yosmallkatakana = 0x30e7;
+ t.yosmallkatakanahalfwidth = 0xff6e;
+ t.yotgreek = 0x03f3;
+ t.yoyaekorean = 0x3188;
+ t.yoyakorean = 0x3187;
+ t.yoyakthai = 0x0e22;
+ t.yoyingthai = 0x0e0d;
+ t.yparen = 0x24b4;
+ t.ypogegrammeni = 0x037a;
+ t.ypogegrammenigreekcmb = 0x0345;
+ t.yr = 0x01a6;
+ t.yring = 0x1e99;
+ t.ysuperior = 0x02b8;
+ t.ytilde = 0x1ef9;
+ t.yturned = 0x028e;
+ t.yuhiragana = 0x3086;
+ t.yuikorean = 0x318c;
+ t.yukatakana = 0x30e6;
+ t.yukatakanahalfwidth = 0xff95;
+ t.yukorean = 0x3160;
+ t.yusbigcyrillic = 0x046b;
+ t.yusbigiotifiedcyrillic = 0x046d;
+ t.yuslittlecyrillic = 0x0467;
+ t.yuslittleiotifiedcyrillic = 0x0469;
+ t.yusmallhiragana = 0x3085;
+ t.yusmallkatakana = 0x30e5;
+ t.yusmallkatakanahalfwidth = 0xff6d;
+ t.yuyekorean = 0x318b;
+ t.yuyeokorean = 0x318a;
+ t.yyabengali = 0x09df;
+ t.yyadeva = 0x095f;
+ t.z = 0x007a;
+ t.zaarmenian = 0x0566;
+ t.zacute = 0x017a;
+ t.zadeva = 0x095b;
+ t.zagurmukhi = 0x0a5b;
+ t.zaharabic = 0x0638;
+ t.zahfinalarabic = 0xfec6;
+ t.zahinitialarabic = 0xfec7;
+ t.zahiragana = 0x3056;
+ t.zahmedialarabic = 0xfec8;
+ t.zainarabic = 0x0632;
+ t.zainfinalarabic = 0xfeb0;
+ t.zakatakana = 0x30b6;
+ t.zaqefgadolhebrew = 0x0595;
+ t.zaqefqatanhebrew = 0x0594;
+ t.zarqahebrew = 0x0598;
+ t.zayin = 0x05d6;
+ t.zayindagesh = 0xfb36;
+ t.zayindageshhebrew = 0xfb36;
+ t.zayinhebrew = 0x05d6;
+ t.zbopomofo = 0x3117;
+ t.zcaron = 0x017e;
+ t.zcircle = 0x24e9;
+ t.zcircumflex = 0x1e91;
+ t.zcurl = 0x0291;
+ t.zdot = 0x017c;
+ t.zdotaccent = 0x017c;
+ t.zdotbelow = 0x1e93;
+ t.zecyrillic = 0x0437;
+ t.zedescendercyrillic = 0x0499;
+ t.zedieresiscyrillic = 0x04df;
+ t.zehiragana = 0x305c;
+ t.zekatakana = 0x30bc;
+ t.zero = 0x0030;
+ t.zeroarabic = 0x0660;
+ t.zerobengali = 0x09e6;
+ t.zerodeva = 0x0966;
+ t.zerogujarati = 0x0ae6;
+ t.zerogurmukhi = 0x0a66;
+ t.zerohackarabic = 0x0660;
+ t.zeroinferior = 0x2080;
+ t.zeromonospace = 0xff10;
+ t.zerooldstyle = 0xf730;
+ t.zeropersian = 0x06f0;
+ t.zerosuperior = 0x2070;
+ t.zerothai = 0x0e50;
+ t.zerowidthjoiner = 0xfeff;
+ t.zerowidthnonjoiner = 0x200c;
+ t.zerowidthspace = 0x200b;
+ t.zeta = 0x03b6;
+ t.zhbopomofo = 0x3113;
+ t.zhearmenian = 0x056a;
+ t.zhebrevecyrillic = 0x04c2;
+ t.zhecyrillic = 0x0436;
+ t.zhedescendercyrillic = 0x0497;
+ t.zhedieresiscyrillic = 0x04dd;
+ t.zihiragana = 0x3058;
+ t.zikatakana = 0x30b8;
+ t.zinorhebrew = 0x05ae;
+ t.zlinebelow = 0x1e95;
+ t.zmonospace = 0xff5a;
+ t.zohiragana = 0x305e;
+ t.zokatakana = 0x30be;
+ t.zparen = 0x24b5;
+ t.zretroflexhook = 0x0290;
+ t.zstroke = 0x01b6;
+ t.zuhiragana = 0x305a;
+ t.zukatakana = 0x30ba;
  t[".notdef"] = 0x0000;
- t["angbracketleftbig"] = 0x2329;
- t["angbracketleftBig"] = 0x2329;
- t["angbracketleftbigg"] = 0x2329;
- t["angbracketleftBigg"] = 0x2329;
- t["angbracketrightBig"] = 0x232a;
- t["angbracketrightbig"] = 0x232a;
- t["angbracketrightBigg"] = 0x232a;
- t["angbracketrightbigg"] = 0x232a;
- t["arrowhookleft"] = 0x21aa;
- t["arrowhookright"] = 0x21a9;
- t["arrowlefttophalf"] = 0x21bc;
- t["arrowleftbothalf"] = 0x21bd;
- t["arrownortheast"] = 0x2197;
- t["arrownorthwest"] = 0x2196;
- t["arrowrighttophalf"] = 0x21c0;
- t["arrowrightbothalf"] = 0x21c1;
- t["arrowsoutheast"] = 0x2198;
- t["arrowsouthwest"] = 0x2199;
- t["backslashbig"] = 0x2216;
- t["backslashBig"] = 0x2216;
- t["backslashBigg"] = 0x2216;
- t["backslashbigg"] = 0x2216;
- t["bardbl"] = 0x2016;
- t["bracehtipdownleft"] = 0xfe37;
- t["bracehtipdownright"] = 0xfe37;
- t["bracehtipupleft"] = 0xfe38;
- t["bracehtipupright"] = 0xfe38;
- t["braceleftBig"] = 0x007b;
- t["braceleftbig"] = 0x007b;
- t["braceleftbigg"] = 0x007b;
- t["braceleftBigg"] = 0x007b;
- t["bracerightBig"] = 0x007d;
- t["bracerightbig"] = 0x007d;
- t["bracerightbigg"] = 0x007d;
- t["bracerightBigg"] = 0x007d;
- t["bracketleftbig"] = 0x005b;
- t["bracketleftBig"] = 0x005b;
- t["bracketleftbigg"] = 0x005b;
- t["bracketleftBigg"] = 0x005b;
- t["bracketrightBig"] = 0x005d;
- t["bracketrightbig"] = 0x005d;
- t["bracketrightbigg"] = 0x005d;
- t["bracketrightBigg"] = 0x005d;
- t["ceilingleftbig"] = 0x2308;
- t["ceilingleftBig"] = 0x2308;
- t["ceilingleftBigg"] = 0x2308;
- t["ceilingleftbigg"] = 0x2308;
- t["ceilingrightbig"] = 0x2309;
- t["ceilingrightBig"] = 0x2309;
- t["ceilingrightbigg"] = 0x2309;
- t["ceilingrightBigg"] = 0x2309;
- t["circledotdisplay"] = 0x2299;
- t["circledottext"] = 0x2299;
- t["circlemultiplydisplay"] = 0x2297;
- t["circlemultiplytext"] = 0x2297;
- t["circleplusdisplay"] = 0x2295;
- t["circleplustext"] = 0x2295;
- t["contintegraldisplay"] = 0x222e;
- t["contintegraltext"] = 0x222e;
- t["coproductdisplay"] = 0x2210;
- t["coproducttext"] = 0x2210;
- t["floorleftBig"] = 0x230a;
- t["floorleftbig"] = 0x230a;
- t["floorleftbigg"] = 0x230a;
- t["floorleftBigg"] = 0x230a;
- t["floorrightbig"] = 0x230b;
- t["floorrightBig"] = 0x230b;
- t["floorrightBigg"] = 0x230b;
- t["floorrightbigg"] = 0x230b;
- t["hatwide"] = 0x0302;
- t["hatwider"] = 0x0302;
- t["hatwidest"] = 0x0302;
- t["intercal"] = 0x1d40;
- t["integraldisplay"] = 0x222b;
- t["integraltext"] = 0x222b;
- t["intersectiondisplay"] = 0x22c2;
- t["intersectiontext"] = 0x22c2;
- t["logicalanddisplay"] = 0x2227;
- t["logicalandtext"] = 0x2227;
- t["logicalordisplay"] = 0x2228;
- t["logicalortext"] = 0x2228;
- t["parenleftBig"] = 0x0028;
- t["parenleftbig"] = 0x0028;
- t["parenleftBigg"] = 0x0028;
- t["parenleftbigg"] = 0x0028;
- t["parenrightBig"] = 0x0029;
- t["parenrightbig"] = 0x0029;
- t["parenrightBigg"] = 0x0029;
- t["parenrightbigg"] = 0x0029;
- t["prime"] = 0x2032;
- t["productdisplay"] = 0x220f;
- t["producttext"] = 0x220f;
- t["radicalbig"] = 0x221a;
- t["radicalBig"] = 0x221a;
- t["radicalBigg"] = 0x221a;
- t["radicalbigg"] = 0x221a;
- t["radicalbt"] = 0x221a;
- t["radicaltp"] = 0x221a;
- t["radicalvertex"] = 0x221a;
- t["slashbig"] = 0x002f;
- t["slashBig"] = 0x002f;
- t["slashBigg"] = 0x002f;
- t["slashbigg"] = 0x002f;
- t["summationdisplay"] = 0x2211;
- t["summationtext"] = 0x2211;
- t["tildewide"] = 0x02dc;
- t["tildewider"] = 0x02dc;
- t["tildewidest"] = 0x02dc;
- t["uniondisplay"] = 0x22c3;
- t["unionmultidisplay"] = 0x228e;
- t["unionmultitext"] = 0x228e;
- t["unionsqdisplay"] = 0x2294;
- t["unionsqtext"] = 0x2294;
- t["uniontext"] = 0x22c3;
- t["vextenddouble"] = 0x2225;
- t["vextendsingle"] = 0x2223;
+ t.angbracketleftbig = 0x2329;
+ t.angbracketleftBig = 0x2329;
+ t.angbracketleftbigg = 0x2329;
+ t.angbracketleftBigg = 0x2329;
+ t.angbracketrightBig = 0x232a;
+ t.angbracketrightbig = 0x232a;
+ t.angbracketrightBigg = 0x232a;
+ t.angbracketrightbigg = 0x232a;
+ t.arrowhookleft = 0x21aa;
+ t.arrowhookright = 0x21a9;
+ t.arrowlefttophalf = 0x21bc;
+ t.arrowleftbothalf = 0x21bd;
+ t.arrownortheast = 0x2197;
+ t.arrownorthwest = 0x2196;
+ t.arrowrighttophalf = 0x21c0;
+ t.arrowrightbothalf = 0x21c1;
+ t.arrowsoutheast = 0x2198;
+ t.arrowsouthwest = 0x2199;
+ t.backslashbig = 0x2216;
+ t.backslashBig = 0x2216;
+ t.backslashBigg = 0x2216;
+ t.backslashbigg = 0x2216;
+ t.bardbl = 0x2016;
+ t.bracehtipdownleft = 0xfe37;
+ t.bracehtipdownright = 0xfe37;
+ t.bracehtipupleft = 0xfe38;
+ t.bracehtipupright = 0xfe38;
+ t.braceleftBig = 0x007b;
+ t.braceleftbig = 0x007b;
+ t.braceleftbigg = 0x007b;
+ t.braceleftBigg = 0x007b;
+ t.bracerightBig = 0x007d;
+ t.bracerightbig = 0x007d;
+ t.bracerightbigg = 0x007d;
+ t.bracerightBigg = 0x007d;
+ t.bracketleftbig = 0x005b;
+ t.bracketleftBig = 0x005b;
+ t.bracketleftbigg = 0x005b;
+ t.bracketleftBigg = 0x005b;
+ t.bracketrightBig = 0x005d;
+ t.bracketrightbig = 0x005d;
+ t.bracketrightbigg = 0x005d;
+ t.bracketrightBigg = 0x005d;
+ t.ceilingleftbig = 0x2308;
+ t.ceilingleftBig = 0x2308;
+ t.ceilingleftBigg = 0x2308;
+ t.ceilingleftbigg = 0x2308;
+ t.ceilingrightbig = 0x2309;
+ t.ceilingrightBig = 0x2309;
+ t.ceilingrightbigg = 0x2309;
+ t.ceilingrightBigg = 0x2309;
+ t.circledotdisplay = 0x2299;
+ t.circledottext = 0x2299;
+ t.circlemultiplydisplay = 0x2297;
+ t.circlemultiplytext = 0x2297;
+ t.circleplusdisplay = 0x2295;
+ t.circleplustext = 0x2295;
+ t.contintegraldisplay = 0x222e;
+ t.contintegraltext = 0x222e;
+ t.coproductdisplay = 0x2210;
+ t.coproducttext = 0x2210;
+ t.floorleftBig = 0x230a;
+ t.floorleftbig = 0x230a;
+ t.floorleftbigg = 0x230a;
+ t.floorleftBigg = 0x230a;
+ t.floorrightbig = 0x230b;
+ t.floorrightBig = 0x230b;
+ t.floorrightBigg = 0x230b;
+ t.floorrightbigg = 0x230b;
+ t.hatwide = 0x0302;
+ t.hatwider = 0x0302;
+ t.hatwidest = 0x0302;
+ t.intercal = 0x1d40;
+ t.integraldisplay = 0x222b;
+ t.integraltext = 0x222b;
+ t.intersectiondisplay = 0x22c2;
+ t.intersectiontext = 0x22c2;
+ t.logicalanddisplay = 0x2227;
+ t.logicalandtext = 0x2227;
+ t.logicalordisplay = 0x2228;
+ t.logicalortext = 0x2228;
+ t.parenleftBig = 0x0028;
+ t.parenleftbig = 0x0028;
+ t.parenleftBigg = 0x0028;
+ t.parenleftbigg = 0x0028;
+ t.parenrightBig = 0x0029;
+ t.parenrightbig = 0x0029;
+ t.parenrightBigg = 0x0029;
+ t.parenrightbigg = 0x0029;
+ t.prime = 0x2032;
+ t.productdisplay = 0x220f;
+ t.producttext = 0x220f;
+ t.radicalbig = 0x221a;
+ t.radicalBig = 0x221a;
+ t.radicalBigg = 0x221a;
+ t.radicalbigg = 0x221a;
+ t.radicalbt = 0x221a;
+ t.radicaltp = 0x221a;
+ t.radicalvertex = 0x221a;
+ t.slashbig = 0x002f;
+ t.slashBig = 0x002f;
+ t.slashBigg = 0x002f;
+ t.slashbigg = 0x002f;
+ t.summationdisplay = 0x2211;
+ t.summationtext = 0x2211;
+ t.tildewide = 0x02dc;
+ t.tildewider = 0x02dc;
+ t.tildewidest = 0x02dc;
+ t.uniondisplay = 0x22c3;
+ t.unionmultidisplay = 0x228e;
+ t.unionmultitext = 0x228e;
+ t.unionsqdisplay = 0x2294;
+ t.unionsqtext = 0x2294;
+ t.uniontext = 0x22c3;
+ t.vextenddouble = 0x2225;
+ t.vextendsingle = 0x2223;
 });
 var getDingbatsGlyphsUnicode = getLookupTableFactory(function (t) {
- t["space"] = 0x0020;
- t["a1"] = 0x2701;
- t["a2"] = 0x2702;
- t["a202"] = 0x2703;
- t["a3"] = 0x2704;
- t["a4"] = 0x260e;
- t["a5"] = 0x2706;
- t["a119"] = 0x2707;
- t["a118"] = 0x2708;
- t["a117"] = 0x2709;
- t["a11"] = 0x261b;
- t["a12"] = 0x261e;
- t["a13"] = 0x270c;
- t["a14"] = 0x270d;
- t["a15"] = 0x270e;
- t["a16"] = 0x270f;
- t["a105"] = 0x2710;
- t["a17"] = 0x2711;
- t["a18"] = 0x2712;
- t["a19"] = 0x2713;
- t["a20"] = 0x2714;
- t["a21"] = 0x2715;
- t["a22"] = 0x2716;
- t["a23"] = 0x2717;
- t["a24"] = 0x2718;
- t["a25"] = 0x2719;
- t["a26"] = 0x271a;
- t["a27"] = 0x271b;
- t["a28"] = 0x271c;
- t["a6"] = 0x271d;
- t["a7"] = 0x271e;
- t["a8"] = 0x271f;
- t["a9"] = 0x2720;
- t["a10"] = 0x2721;
- t["a29"] = 0x2722;
- t["a30"] = 0x2723;
- t["a31"] = 0x2724;
- t["a32"] = 0x2725;
- t["a33"] = 0x2726;
- t["a34"] = 0x2727;
- t["a35"] = 0x2605;
- t["a36"] = 0x2729;
- t["a37"] = 0x272a;
- t["a38"] = 0x272b;
- t["a39"] = 0x272c;
- t["a40"] = 0x272d;
- t["a41"] = 0x272e;
- t["a42"] = 0x272f;
- t["a43"] = 0x2730;
- t["a44"] = 0x2731;
- t["a45"] = 0x2732;
- t["a46"] = 0x2733;
- t["a47"] = 0x2734;
- t["a48"] = 0x2735;
- t["a49"] = 0x2736;
- t["a50"] = 0x2737;
- t["a51"] = 0x2738;
- t["a52"] = 0x2739;
- t["a53"] = 0x273a;
- t["a54"] = 0x273b;
- t["a55"] = 0x273c;
- t["a56"] = 0x273d;
- t["a57"] = 0x273e;
- t["a58"] = 0x273f;
- t["a59"] = 0x2740;
- t["a60"] = 0x2741;
- t["a61"] = 0x2742;
- t["a62"] = 0x2743;
- t["a63"] = 0x2744;
- t["a64"] = 0x2745;
- t["a65"] = 0x2746;
- t["a66"] = 0x2747;
- t["a67"] = 0x2748;
- t["a68"] = 0x2749;
- t["a69"] = 0x274a;
- t["a70"] = 0x274b;
- t["a71"] = 0x25cf;
- t["a72"] = 0x274d;
- t["a73"] = 0x25a0;
- t["a74"] = 0x274f;
- t["a203"] = 0x2750;
- t["a75"] = 0x2751;
- t["a204"] = 0x2752;
- t["a76"] = 0x25b2;
- t["a77"] = 0x25bc;
- t["a78"] = 0x25c6;
- t["a79"] = 0x2756;
- t["a81"] = 0x25d7;
- t["a82"] = 0x2758;
- t["a83"] = 0x2759;
- t["a84"] = 0x275a;
- t["a97"] = 0x275b;
- t["a98"] = 0x275c;
- t["a99"] = 0x275d;
- t["a100"] = 0x275e;
- t["a101"] = 0x2761;
- t["a102"] = 0x2762;
- t["a103"] = 0x2763;
- t["a104"] = 0x2764;
- t["a106"] = 0x2765;
- t["a107"] = 0x2766;
- t["a108"] = 0x2767;
- t["a112"] = 0x2663;
- t["a111"] = 0x2666;
- t["a110"] = 0x2665;
- t["a109"] = 0x2660;
- t["a120"] = 0x2460;
- t["a121"] = 0x2461;
- t["a122"] = 0x2462;
- t["a123"] = 0x2463;
- t["a124"] = 0x2464;
- t["a125"] = 0x2465;
- t["a126"] = 0x2466;
- t["a127"] = 0x2467;
- t["a128"] = 0x2468;
- t["a129"] = 0x2469;
- t["a130"] = 0x2776;
- t["a131"] = 0x2777;
- t["a132"] = 0x2778;
- t["a133"] = 0x2779;
- t["a134"] = 0x277a;
- t["a135"] = 0x277b;
- t["a136"] = 0x277c;
- t["a137"] = 0x277d;
- t["a138"] = 0x277e;
- t["a139"] = 0x277f;
- t["a140"] = 0x2780;
- t["a141"] = 0x2781;
- t["a142"] = 0x2782;
- t["a143"] = 0x2783;
- t["a144"] = 0x2784;
- t["a145"] = 0x2785;
- t["a146"] = 0x2786;
- t["a147"] = 0x2787;
- t["a148"] = 0x2788;
- t["a149"] = 0x2789;
- t["a150"] = 0x278a;
- t["a151"] = 0x278b;
- t["a152"] = 0x278c;
- t["a153"] = 0x278d;
- t["a154"] = 0x278e;
- t["a155"] = 0x278f;
- t["a156"] = 0x2790;
- t["a157"] = 0x2791;
- t["a158"] = 0x2792;
- t["a159"] = 0x2793;
- t["a160"] = 0x2794;
- t["a161"] = 0x2192;
- t["a163"] = 0x2194;
- t["a164"] = 0x2195;
- t["a196"] = 0x2798;
- t["a165"] = 0x2799;
- t["a192"] = 0x279a;
- t["a166"] = 0x279b;
- t["a167"] = 0x279c;
- t["a168"] = 0x279d;
- t["a169"] = 0x279e;
- t["a170"] = 0x279f;
- t["a171"] = 0x27a0;
- t["a172"] = 0x27a1;
- t["a173"] = 0x27a2;
- t["a162"] = 0x27a3;
- t["a174"] = 0x27a4;
- t["a175"] = 0x27a5;
- t["a176"] = 0x27a6;
- t["a177"] = 0x27a7;
- t["a178"] = 0x27a8;
- t["a179"] = 0x27a9;
- t["a193"] = 0x27aa;
- t["a180"] = 0x27ab;
- t["a199"] = 0x27ac;
- t["a181"] = 0x27ad;
- t["a200"] = 0x27ae;
- t["a182"] = 0x27af;
- t["a201"] = 0x27b1;
- t["a183"] = 0x27b2;
- t["a184"] = 0x27b3;
- t["a197"] = 0x27b4;
- t["a185"] = 0x27b5;
- t["a194"] = 0x27b6;
- t["a198"] = 0x27b7;
- t["a186"] = 0x27b8;
- t["a195"] = 0x27b9;
- t["a187"] = 0x27ba;
- t["a188"] = 0x27bb;
- t["a189"] = 0x27bc;
- t["a190"] = 0x27bd;
- t["a191"] = 0x27be;
- t["a89"] = 0x2768;
- t["a90"] = 0x2769;
- t["a93"] = 0x276a;
- t["a94"] = 0x276b;
- t["a91"] = 0x276c;
- t["a92"] = 0x276d;
- t["a205"] = 0x276e;
- t["a85"] = 0x276f;
- t["a206"] = 0x2770;
- t["a86"] = 0x2771;
- t["a87"] = 0x2772;
- t["a88"] = 0x2773;
- t["a95"] = 0x2774;
- t["a96"] = 0x2775;
+ t.space = 0x0020;
+ t.a1 = 0x2701;
+ t.a2 = 0x2702;
+ t.a202 = 0x2703;
+ t.a3 = 0x2704;
+ t.a4 = 0x260e;
+ t.a5 = 0x2706;
+ t.a119 = 0x2707;
+ t.a118 = 0x2708;
+ t.a117 = 0x2709;
+ t.a11 = 0x261b;
+ t.a12 = 0x261e;
+ t.a13 = 0x270c;
+ t.a14 = 0x270d;
+ t.a15 = 0x270e;
+ t.a16 = 0x270f;
+ t.a105 = 0x2710;
+ t.a17 = 0x2711;
+ t.a18 = 0x2712;
+ t.a19 = 0x2713;
+ t.a20 = 0x2714;
+ t.a21 = 0x2715;
+ t.a22 = 0x2716;
+ t.a23 = 0x2717;
+ t.a24 = 0x2718;
+ t.a25 = 0x2719;
+ t.a26 = 0x271a;
+ t.a27 = 0x271b;
+ t.a28 = 0x271c;
+ t.a6 = 0x271d;
+ t.a7 = 0x271e;
+ t.a8 = 0x271f;
+ t.a9 = 0x2720;
+ t.a10 = 0x2721;
+ t.a29 = 0x2722;
+ t.a30 = 0x2723;
+ t.a31 = 0x2724;
+ t.a32 = 0x2725;
+ t.a33 = 0x2726;
+ t.a34 = 0x2727;
+ t.a35 = 0x2605;
+ t.a36 = 0x2729;
+ t.a37 = 0x272a;
+ t.a38 = 0x272b;
+ t.a39 = 0x272c;
+ t.a40 = 0x272d;
+ t.a41 = 0x272e;
+ t.a42 = 0x272f;
+ t.a43 = 0x2730;
+ t.a44 = 0x2731;
+ t.a45 = 0x2732;
+ t.a46 = 0x2733;
+ t.a47 = 0x2734;
+ t.a48 = 0x2735;
+ t.a49 = 0x2736;
+ t.a50 = 0x2737;
+ t.a51 = 0x2738;
+ t.a52 = 0x2739;
+ t.a53 = 0x273a;
+ t.a54 = 0x273b;
+ t.a55 = 0x273c;
+ t.a56 = 0x273d;
+ t.a57 = 0x273e;
+ t.a58 = 0x273f;
+ t.a59 = 0x2740;
+ t.a60 = 0x2741;
+ t.a61 = 0x2742;
+ t.a62 = 0x2743;
+ t.a63 = 0x2744;
+ t.a64 = 0x2745;
+ t.a65 = 0x2746;
+ t.a66 = 0x2747;
+ t.a67 = 0x2748;
+ t.a68 = 0x2749;
+ t.a69 = 0x274a;
+ t.a70 = 0x274b;
+ t.a71 = 0x25cf;
+ t.a72 = 0x274d;
+ t.a73 = 0x25a0;
+ t.a74 = 0x274f;
+ t.a203 = 0x2750;
+ t.a75 = 0x2751;
+ t.a204 = 0x2752;
+ t.a76 = 0x25b2;
+ t.a77 = 0x25bc;
+ t.a78 = 0x25c6;
+ t.a79 = 0x2756;
+ t.a81 = 0x25d7;
+ t.a82 = 0x2758;
+ t.a83 = 0x2759;
+ t.a84 = 0x275a;
+ t.a97 = 0x275b;
+ t.a98 = 0x275c;
+ t.a99 = 0x275d;
+ t.a100 = 0x275e;
+ t.a101 = 0x2761;
+ t.a102 = 0x2762;
+ t.a103 = 0x2763;
+ t.a104 = 0x2764;
+ t.a106 = 0x2765;
+ t.a107 = 0x2766;
+ t.a108 = 0x2767;
+ t.a112 = 0x2663;
+ t.a111 = 0x2666;
+ t.a110 = 0x2665;
+ t.a109 = 0x2660;
+ t.a120 = 0x2460;
+ t.a121 = 0x2461;
+ t.a122 = 0x2462;
+ t.a123 = 0x2463;
+ t.a124 = 0x2464;
+ t.a125 = 0x2465;
+ t.a126 = 0x2466;
+ t.a127 = 0x2467;
+ t.a128 = 0x2468;
+ t.a129 = 0x2469;
+ t.a130 = 0x2776;
+ t.a131 = 0x2777;
+ t.a132 = 0x2778;
+ t.a133 = 0x2779;
+ t.a134 = 0x277a;
+ t.a135 = 0x277b;
+ t.a136 = 0x277c;
+ t.a137 = 0x277d;
+ t.a138 = 0x277e;
+ t.a139 = 0x277f;
+ t.a140 = 0x2780;
+ t.a141 = 0x2781;
+ t.a142 = 0x2782;
+ t.a143 = 0x2783;
+ t.a144 = 0x2784;
+ t.a145 = 0x2785;
+ t.a146 = 0x2786;
+ t.a147 = 0x2787;
+ t.a148 = 0x2788;
+ t.a149 = 0x2789;
+ t.a150 = 0x278a;
+ t.a151 = 0x278b;
+ t.a152 = 0x278c;
+ t.a153 = 0x278d;
+ t.a154 = 0x278e;
+ t.a155 = 0x278f;
+ t.a156 = 0x2790;
+ t.a157 = 0x2791;
+ t.a158 = 0x2792;
+ t.a159 = 0x2793;
+ t.a160 = 0x2794;
+ t.a161 = 0x2192;
+ t.a163 = 0x2194;
+ t.a164 = 0x2195;
+ t.a196 = 0x2798;
+ t.a165 = 0x2799;
+ t.a192 = 0x279a;
+ t.a166 = 0x279b;
+ t.a167 = 0x279c;
+ t.a168 = 0x279d;
+ t.a169 = 0x279e;
+ t.a170 = 0x279f;
+ t.a171 = 0x27a0;
+ t.a172 = 0x27a1;
+ t.a173 = 0x27a2;
+ t.a162 = 0x27a3;
+ t.a174 = 0x27a4;
+ t.a175 = 0x27a5;
+ t.a176 = 0x27a6;
+ t.a177 = 0x27a7;
+ t.a178 = 0x27a8;
+ t.a179 = 0x27a9;
+ t.a193 = 0x27aa;
+ t.a180 = 0x27ab;
+ t.a199 = 0x27ac;
+ t.a181 = 0x27ad;
+ t.a200 = 0x27ae;
+ t.a182 = 0x27af;
+ t.a201 = 0x27b1;
+ t.a183 = 0x27b2;
+ t.a184 = 0x27b3;
+ t.a197 = 0x27b4;
+ t.a185 = 0x27b5;
+ t.a194 = 0x27b6;
+ t.a198 = 0x27b7;
+ t.a186 = 0x27b8;
+ t.a195 = 0x27b9;
+ t.a187 = 0x27ba;
+ t.a188 = 0x27bb;
+ t.a189 = 0x27bc;
+ t.a190 = 0x27bd;
+ t.a191 = 0x27be;
+ t.a89 = 0x2768;
+ t.a90 = 0x2769;
+ t.a93 = 0x276a;
+ t.a94 = 0x276b;
+ t.a91 = 0x276c;
+ t.a92 = 0x276d;
+ t.a205 = 0x276e;
+ t.a85 = 0x276f;
+ t.a206 = 0x2770;
+ t.a86 = 0x2771;
+ t.a87 = 0x2772;
+ t.a88 = 0x2773;
+ t.a95 = 0x2774;
+ t.a96 = 0x2775;
  t[".notdef"] = 0x0000;
 });
 exports.getGlyphsUnicode = getGlyphsUnicode;
 exports.getDingbatsGlyphsUnicode = getDingbatsGlyphsUnicode;
 
 /***/ }),
-/* 32 */
+/* 34 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -34162,14 +34323,14 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.getSupplementalGlyphMapForCalibri = exports.getSupplementalGlyphMapForArialBlack = 
exports.getGlyphMapForStandardFonts = exports.getSymbolsFonts = exports.getSerifFonts = 
exports.getNonStdFontMap = exports.getStdFontMap = void 0;
 
-var _core_utils = __w_pdfjs_require__(7);
+var _core_utils = __w_pdfjs_require__(8);
 
 const getStdFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {
-  t["ArialNarrow"] = "Helvetica";
+  t.ArialNarrow = "Helvetica";
   t["ArialNarrow-Bold"] = "Helvetica-Bold";
   t["ArialNarrow-BoldItalic"] = "Helvetica-BoldOblique";
   t["ArialNarrow-Italic"] = "Helvetica-Oblique";
-  t["ArialBlack"] = "Helvetica";
+  t.ArialBlack = "Helvetica";
   t["ArialBlack-Bold"] = "Helvetica-Bold";
   t["ArialBlack-BoldItalic"] = "Helvetica-BoldOblique";
   t["ArialBlack-Italic"] = "Helvetica-Oblique";
@@ -34177,26 +34338,26 @@ const getStdFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {
   t["Arial-Black-Bold"] = "Helvetica-Bold";
   t["Arial-Black-BoldItalic"] = "Helvetica-BoldOblique";
   t["Arial-Black-Italic"] = "Helvetica-Oblique";
-  t["Arial"] = "Helvetica";
+  t.Arial = "Helvetica";
   t["Arial-Bold"] = "Helvetica-Bold";
   t["Arial-BoldItalic"] = "Helvetica-BoldOblique";
   t["Arial-Italic"] = "Helvetica-Oblique";
   t["Arial-BoldItalicMT"] = "Helvetica-BoldOblique";
   t["Arial-BoldMT"] = "Helvetica-Bold";
   t["Arial-ItalicMT"] = "Helvetica-Oblique";
-  t["ArialMT"] = "Helvetica";
+  t.ArialMT = "Helvetica";
   t["Courier-Bold"] = "Courier-Bold";
   t["Courier-BoldItalic"] = "Courier-BoldOblique";
   t["Courier-Italic"] = "Courier-Oblique";
-  t["CourierNew"] = "Courier";
+  t.CourierNew = "Courier";
   t["CourierNew-Bold"] = "Courier-Bold";
   t["CourierNew-BoldItalic"] = "Courier-BoldOblique";
   t["CourierNew-Italic"] = "Courier-Oblique";
   t["CourierNewPS-BoldItalicMT"] = "Courier-BoldOblique";
   t["CourierNewPS-BoldMT"] = "Courier-Bold";
   t["CourierNewPS-ItalicMT"] = "Courier-Oblique";
-  t["CourierNewPSMT"] = "Courier";
-  t["Helvetica"] = "Helvetica";
+  t.CourierNewPSMT = "Courier";
+  t.Helvetica = "Helvetica";
   t["Helvetica-Bold"] = "Helvetica-Bold";
   t["Helvetica-BoldItalic"] = "Helvetica-BoldOblique";
   t["Helvetica-BoldOblique"] = "Helvetica-BoldOblique";
@@ -34205,37 +34366,37 @@ const getStdFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {
   t["Symbol-Bold"] = "Symbol";
   t["Symbol-BoldItalic"] = "Symbol";
   t["Symbol-Italic"] = "Symbol";
-  t["TimesNewRoman"] = "Times-Roman";
+  t.TimesNewRoman = "Times-Roman";
   t["TimesNewRoman-Bold"] = "Times-Bold";
   t["TimesNewRoman-BoldItalic"] = "Times-BoldItalic";
   t["TimesNewRoman-Italic"] = "Times-Italic";
-  t["TimesNewRomanPS"] = "Times-Roman";
+  t.TimesNewRomanPS = "Times-Roman";
   t["TimesNewRomanPS-Bold"] = "Times-Bold";
   t["TimesNewRomanPS-BoldItalic"] = "Times-BoldItalic";
   t["TimesNewRomanPS-BoldItalicMT"] = "Times-BoldItalic";
   t["TimesNewRomanPS-BoldMT"] = "Times-Bold";
   t["TimesNewRomanPS-Italic"] = "Times-Italic";
   t["TimesNewRomanPS-ItalicMT"] = "Times-Italic";
-  t["TimesNewRomanPSMT"] = "Times-Roman";
+  t.TimesNewRomanPSMT = "Times-Roman";
   t["TimesNewRomanPSMT-Bold"] = "Times-Bold";
   t["TimesNewRomanPSMT-BoldItalic"] = "Times-BoldItalic";
   t["TimesNewRomanPSMT-Italic"] = "Times-Italic";
 });
 exports.getStdFontMap = getStdFontMap;
 const getNonStdFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {
-  t["Calibri"] = "Helvetica";
+  t.Calibri = "Helvetica";
   t["Calibri-Bold"] = "Helvetica-Bold";
   t["Calibri-BoldItalic"] = "Helvetica-BoldOblique";
   t["Calibri-Italic"] = "Helvetica-Oblique";
-  t["CenturyGothic"] = "Helvetica";
+  t.CenturyGothic = "Helvetica";
   t["CenturyGothic-Bold"] = "Helvetica-Bold";
   t["CenturyGothic-BoldItalic"] = "Helvetica-BoldOblique";
   t["CenturyGothic-Italic"] = "Helvetica-Oblique";
-  t["ComicSansMS"] = "Comic Sans MS";
+  t.ComicSansMS = "Comic Sans MS";
   t["ComicSansMS-Bold"] = "Comic Sans MS-Bold";
   t["ComicSansMS-BoldItalic"] = "Comic Sans MS-BoldItalic";
   t["ComicSansMS-Italic"] = "Comic Sans MS-Italic";
-  t["LucidaConsole"] = "Courier";
+  t.LucidaConsole = "Courier";
   t["LucidaConsole-Bold"] = "Courier-Bold";
   t["LucidaConsole-BoldItalic"] = "Courier-BoldOblique";
   t["LucidaConsole-Italic"] = "Courier-Oblique";
@@ -34256,103 +34417,103 @@ const getNonStdFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {
   t["MS-PMincho-Bold"] = "MS PMincho-Bold";
   t["MS-PMincho-BoldItalic"] = "MS PMincho-BoldItalic";
   t["MS-PMincho-Italic"] = "MS PMincho-Italic";
-  t["NuptialScript"] = "Times-Italic";
-  t["SegoeUISymbol"] = "Helvetica";
-  t["Wingdings"] = "ZapfDingbats";
+  t.NuptialScript = "Times-Italic";
+  t.SegoeUISymbol = "Helvetica";
+  t.Wingdings = "ZapfDingbats";
   t["Wingdings-Regular"] = "ZapfDingbats";
 });
 exports.getNonStdFontMap = getNonStdFontMap;
 const getSerifFonts = (0, _core_utils.getLookupTableFactory)(function (t) {
   t["Adobe Jenson"] = true;
   t["Adobe Text"] = true;
-  t["Albertus"] = true;
-  t["Aldus"] = true;
-  t["Alexandria"] = true;
-  t["Algerian"] = true;
+  t.Albertus = true;
+  t.Aldus = true;
+  t.Alexandria = true;
+  t.Algerian = true;
   t["American Typewriter"] = true;
-  t["Antiqua"] = true;
-  t["Apex"] = true;
-  t["Arno"] = true;
-  t["Aster"] = true;
-  t["Aurora"] = true;
-  t["Baskerville"] = true;
-  t["Bell"] = true;
-  t["Bembo"] = true;
+  t.Antiqua = true;
+  t.Apex = true;
+  t.Arno = true;
+  t.Aster = true;
+  t.Aurora = true;
+  t.Baskerville = true;
+  t.Bell = true;
+  t.Bembo = true;
   t["Bembo Schoolbook"] = true;
-  t["Benguiat"] = true;
+  t.Benguiat = true;
   t["Berkeley Old Style"] = true;
   t["Bernhard Modern"] = true;
   t["Berthold City"] = true;
-  t["Bodoni"] = true;
+  t.Bodoni = true;
   t["Bauer Bodoni"] = true;
   t["Book Antiqua"] = true;
-  t["Bookman"] = true;
+  t.Bookman = true;
   t["Bordeaux Roman"] = true;
   t["Californian FB"] = true;
-  t["Calisto"] = true;
-  t["Calvert"] = true;
-  t["Capitals"] = true;
-  t["Cambria"] = true;
-  t["Cartier"] = true;
-  t["Caslon"] = true;
-  t["Catull"] = true;
-  t["Centaur"] = true;
+  t.Calisto = true;
+  t.Calvert = true;
+  t.Capitals = true;
+  t.Cambria = true;
+  t.Cartier = true;
+  t.Caslon = true;
+  t.Catull = true;
+  t.Centaur = true;
   t["Century Old Style"] = true;
   t["Century Schoolbook"] = true;
-  t["Chaparral"] = true;
+  t.Chaparral = true;
   t["Charis SIL"] = true;
-  t["Cheltenham"] = true;
+  t.Cheltenham = true;
   t["Cholla Slab"] = true;
-  t["Clarendon"] = true;
-  t["Clearface"] = true;
-  t["Cochin"] = true;
-  t["Colonna"] = true;
+  t.Clarendon = true;
+  t.Clearface = true;
+  t.Cochin = true;
+  t.Colonna = true;
   t["Computer Modern"] = true;
   t["Concrete Roman"] = true;
-  t["Constantia"] = true;
+  t.Constantia = true;
   t["Cooper Black"] = true;
-  t["Corona"] = true;
-  t["Ecotype"] = true;
-  t["Egyptienne"] = true;
-  t["Elephant"] = true;
-  t["Excelsior"] = true;
-  t["Fairfield"] = true;
+  t.Corona = true;
+  t.Ecotype = true;
+  t.Egyptienne = true;
+  t.Elephant = true;
+  t.Excelsior = true;
+  t.Fairfield = true;
   t["FF Scala"] = true;
-  t["Folkard"] = true;
-  t["Footlight"] = true;
-  t["FreeSerif"] = true;
+  t.Folkard = true;
+  t.Footlight = true;
+  t.FreeSerif = true;
   t["Friz Quadrata"] = true;
-  t["Garamond"] = true;
-  t["Gentium"] = true;
-  t["Georgia"] = true;
-  t["Gloucester"] = true;
+  t.Garamond = true;
+  t.Gentium = true;
+  t.Georgia = true;
+  t.Gloucester = true;
   t["Goudy Old Style"] = true;
   t["Goudy Schoolbook"] = true;
   t["Goudy Pro Font"] = true;
-  t["Granjon"] = true;
+  t.Granjon = true;
   t["Guardian Egyptian"] = true;
-  t["Heather"] = true;
-  t["Hercules"] = true;
+  t.Heather = true;
+  t.Hercules = true;
   t["High Tower Text"] = true;
-  t["Hiroshige"] = true;
+  t.Hiroshige = true;
   t["Hoefler Text"] = true;
   t["Humana Serif"] = true;
-  t["Imprint"] = true;
+  t.Imprint = true;
   t["Ionic No. 5"] = true;
-  t["Janson"] = true;
-  t["Joanna"] = true;
-  t["Korinna"] = true;
-  t["Lexicon"] = true;
+  t.Janson = true;
+  t.Joanna = true;
+  t.Korinna = true;
+  t.Lexicon = true;
   t["Liberation Serif"] = true;
   t["Linux Libertine"] = true;
-  t["Literaturnaya"] = true;
-  t["Lucida"] = true;
+  t.Literaturnaya = true;
+  t.Lucida = true;
   t["Lucida Bright"] = true;
-  t["Melior"] = true;
-  t["Memphis"] = true;
-  t["Miller"] = true;
-  t["Minion"] = true;
-  t["Modern"] = true;
+  t.Melior = true;
+  t.Memphis = true;
+  t.Miller = true;
+  t.Minion = true;
+  t.Modern = true;
   t["Mona Lisa"] = true;
   t["Mrs Eaves"] = true;
   t["MS Serif"] = true;
@@ -34360,48 +34521,48 @@ const getSerifFonts = (0, _core_utils.getLookupTableFactory)(function (t) {
   t["New York"] = true;
   t["Nimbus Roman"] = true;
   t["NPS Rawlinson Roadway"] = true;
-  t["NuptialScript"] = true;
-  t["Palatino"] = true;
-  t["Perpetua"] = true;
-  t["Plantin"] = true;
+  t.NuptialScript = true;
+  t.Palatino = true;
+  t.Perpetua = true;
+  t.Plantin = true;
   t["Plantin Schoolbook"] = true;
-  t["Playbill"] = true;
+  t.Playbill = true;
   t["Poor Richard"] = true;
   t["Rawlinson Roadway"] = true;
-  t["Renault"] = true;
-  t["Requiem"] = true;
-  t["Rockwell"] = true;
-  t["Roman"] = true;
+  t.Renault = true;
+  t.Requiem = true;
+  t.Rockwell = true;
+  t.Roman = true;
   t["Rotis Serif"] = true;
-  t["Sabon"] = true;
-  t["Scala"] = true;
-  t["Seagull"] = true;
-  t["Sistina"] = true;
-  t["Souvenir"] = true;
-  t["STIX"] = true;
+  t.Sabon = true;
+  t.Scala = true;
+  t.Seagull = true;
+  t.Sistina = true;
+  t.Souvenir = true;
+  t.STIX = true;
   t["Stone Informal"] = true;
   t["Stone Serif"] = true;
-  t["Sylfaen"] = true;
-  t["Times"] = true;
-  t["Trajan"] = true;
+  t.Sylfaen = true;
+  t.Times = true;
+  t.Trajan = true;
   t["Trinité"] = true;
   t["Trump Mediaeval"] = true;
-  t["Utopia"] = true;
+  t.Utopia = true;
   t["Vale Type"] = true;
   t["Bitstream Vera"] = true;
   t["Vera Serif"] = true;
-  t["Versailles"] = true;
-  t["Wanted"] = true;
-  t["Weiss"] = true;
+  t.Versailles = true;
+  t.Wanted = true;
+  t.Weiss = true;
   t["Wide Latin"] = true;
-  t["Windsor"] = true;
-  t["XITS"] = true;
+  t.Windsor = true;
+  t.XITS = true;
 });
 exports.getSerifFonts = getSerifFonts;
 const getSymbolsFonts = (0, _core_utils.getLookupTableFactory)(function (t) {
-  t["Dingbats"] = true;
-  t["Symbol"] = true;
-  t["ZapfDingbats"] = true;
+  t.Dingbats = true;
+  t.Symbol = true;
+  t.ZapfDingbats = true;
 });
 exports.getSymbolsFonts = getSymbolsFonts;
 const getGlyphMapForStandardFonts = (0, _core_utils.getLookupTableFactory)(function (t) {
@@ -34895,10 +35056,10 @@ const getSupplementalGlyphMapForCalibri = (0, _core_utils.getLookupTableFactory)
 exports.getSupplementalGlyphMapForCalibri = getSupplementalGlyphMapForCalibri;
 
 /***/ }),
-/* 33 */
+/* 35 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
-var getLookupTableFactory = __w_pdfjs_require__(7).getLookupTableFactory;
+var getLookupTableFactory = __w_pdfjs_require__(8).getLookupTableFactory;
 var getSpecialPUASymbols = getLookupTableFactory(function (t) {
  t[63721] = 0x00a9;
  t[63193] = 0x00a9;
@@ -36872,7 +37033,7 @@ exports.getNormalizedUnicodes = getNormalizedUnicodes;
 exports.getUnicodeForGlyph = getUnicodeForGlyph;
 
 /***/ }),
-/* 34 */
+/* 36 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -36885,13 +37046,13 @@ exports.FontRendererFactory = void 0;
 
 var _util = __w_pdfjs_require__(2);
 
-var _cff_parser = __w_pdfjs_require__(28);
+var _cff_parser = __w_pdfjs_require__(30);
 
-var _glyphlist = __w_pdfjs_require__(31);
+var _glyphlist = __w_pdfjs_require__(33);
 
-var _encodings = __w_pdfjs_require__(30);
+var _encodings = __w_pdfjs_require__(32);
 
-var _stream = __w_pdfjs_require__(11);
+var _stream = __w_pdfjs_require__(12);
 
 var FontRendererFactory = function FontRendererFactoryClosure() {
   function getLong(data, offset) {
@@ -37242,12 +37403,7 @@ var FontRendererFactory = function FontRendererFactoryClosure() {
     }
   }
 
-  function compileCharString(code, cmds, font, glyphId) {
-    var stack = [];
-    var x = 0,
-        y = 0;
-    var stems = 0;
-
+  function compileCharString(charStringCode, cmds, font, glyphId) {
     function moveTo(x, y) {
       cmds.push({
         cmd: "moveTo",
@@ -37269,6 +37425,11 @@ var FontRendererFactory = function FontRendererFactoryClosure() {
       });
     }
 
+    var stack = [];
+    var x = 0,
+        y = 0;
+    var stems = 0;
+
     function parse(code) {
       var i = 0;
 
@@ -37676,7 +37837,7 @@ var FontRendererFactory = function FontRendererFactoryClosure() {
       }
     }
 
-    parse(code);
+    parse(charStringCode);
   }
 
   const NOOP = [];
@@ -37838,7 +37999,7 @@ var FontRendererFactory = function FontRendererFactoryClosure() {
 exports.FontRendererFactory = FontRendererFactory;
 
 /***/ }),
-/* 35 */
+/* 37 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -37849,11 +38010,11 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.Type1Parser = void 0;
 
-var _encodings = __w_pdfjs_require__(30);
+var _encodings = __w_pdfjs_require__(32);
 
-var _core_utils = __w_pdfjs_require__(7);
+var _core_utils = __w_pdfjs_require__(8);
 
-var _stream = __w_pdfjs_require__(11);
+var _stream = __w_pdfjs_require__(12);
 
 var _util = __w_pdfjs_require__(2);
 
@@ -38229,7 +38390,7 @@ var Type1Parser = function Type1ParserClosure() {
       }
     }
 
-    return Array.prototype.slice.call(decrypted, discardNumber, j);
+    return decrypted.slice(discardNumber, j);
   }
 
   function isSpecial(c) {
@@ -38239,7 +38400,7 @@ var Type1Parser = function Type1ParserClosure() {
   function Type1Parser(stream, encrypted, seacAnalysisEnabled) {
     if (encrypted) {
       var data = stream.getBytes();
-      var isBinary = !(isHexDigit(data[0]) && isHexDigit(data[1]) && isHexDigit(data[2]) && 
isHexDigit(data[3]));
+      var isBinary = !((isHexDigit(data[0]) || (0, _core_utils.isWhiteSpace)(data[0])) && 
isHexDigit(data[1]) && isHexDigit(data[2]) && isHexDigit(data[3]) && isHexDigit(data[4]) && 
isHexDigit(data[5]) && isHexDigit(data[6]) && isHexDigit(data[7]));
       stream = new _stream.Stream(isBinary ? decrypt(data, EEXEC_ENCRYPT_KEY, 4) : decryptAscii(data, 
EEXEC_ENCRYPT_KEY, 4));
     }
 
@@ -38328,7 +38489,7 @@ var Type1Parser = function Type1ParserClosure() {
       var subrs = [],
           charstrings = [];
       var privateData = Object.create(null);
-      privateData["lenIV"] = 4;
+      privateData.lenIV = 4;
       var program = {
         subrs: [],
         charstrings: [],
@@ -38367,7 +38528,7 @@ var Type1Parser = function Type1ParserClosure() {
               length = this.readInt();
               this.getToken();
               data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);
-              lenIV = program.properties.privateData["lenIV"];
+              lenIV = program.properties.privateData.lenIV;
               encoded = this.readCharStrings(data, lenIV);
               this.nextChar();
               token = this.getToken();
@@ -38389,11 +38550,11 @@ var Type1Parser = function Type1ParserClosure() {
             this.getToken();
 
             while (this.getToken() === "dup") {
-              var index = this.readInt();
+              const index = this.readInt();
               length = this.readInt();
               this.getToken();
               data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);
-              lenIV = program.properties.privateData["lenIV"];
+              lenIV = program.properties.privateData.lenIV;
               encoded = this.readCharStrings(data, lenIV);
               this.nextChar();
               token = this.getToken();
@@ -38549,7 +38710,7 @@ var Type1Parser = function Type1ParserClosure() {
 exports.Type1Parser = Type1Parser;
 
 /***/ }),
-/* 36 */
+/* 38 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -38563,11 +38724,11 @@ exports.Pattern = void 0;
 
 var _util = __w_pdfjs_require__(2);
 
-var _colorspace = __w_pdfjs_require__(22);
+var _colorspace = __w_pdfjs_require__(23);
 
-var _primitives = __w_pdfjs_require__(4);
+var _primitives = __w_pdfjs_require__(5);
 
-var _core_utils = __w_pdfjs_require__(7);
+var _core_utils = __w_pdfjs_require__(8);
 
 var ShadingType = {
   FUNCTION_BASED: 1,
@@ -39488,7 +39649,7 @@ function getTilingPatternIR(operatorList, dict, args) {
 }
 
 /***/ }),
-/* 37 */
+/* 39 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -39800,7 +39961,7 @@ function bidi(str, startLevel, vertical) {
 }
 
 /***/ }),
-/* 38 */
+/* 40 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -39811,2950 +39972,2950 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.getMetrics = void 0;
 
-var _core_utils = __w_pdfjs_require__(7);
+var _core_utils = __w_pdfjs_require__(8);
 
 var getMetrics = (0, _core_utils.getLookupTableFactory)(function (t) {
-  t["Courier"] = 600;
+  t.Courier = 600;
   t["Courier-Bold"] = 600;
   t["Courier-BoldOblique"] = 600;
   t["Courier-Oblique"] = 600;
-  t["Helvetica"] = (0, _core_utils.getLookupTableFactory)(function (t) {
-    t["space"] = 278;
-    t["exclam"] = 278;
-    t["quotedbl"] = 355;
-    t["numbersign"] = 556;
-    t["dollar"] = 556;
-    t["percent"] = 889;
-    t["ampersand"] = 667;
-    t["quoteright"] = 222;
-    t["parenleft"] = 333;
-    t["parenright"] = 333;
-    t["asterisk"] = 389;
-    t["plus"] = 584;
-    t["comma"] = 278;
-    t["hyphen"] = 333;
-    t["period"] = 278;
-    t["slash"] = 278;
-    t["zero"] = 556;
-    t["one"] = 556;
-    t["two"] = 556;
-    t["three"] = 556;
-    t["four"] = 556;
-    t["five"] = 556;
-    t["six"] = 556;
-    t["seven"] = 556;
-    t["eight"] = 556;
-    t["nine"] = 556;
-    t["colon"] = 278;
-    t["semicolon"] = 278;
-    t["less"] = 584;
-    t["equal"] = 584;
-    t["greater"] = 584;
-    t["question"] = 556;
-    t["at"] = 1015;
-    t["A"] = 667;
-    t["B"] = 667;
-    t["C"] = 722;
-    t["D"] = 722;
-    t["E"] = 667;
-    t["F"] = 611;
-    t["G"] = 778;
-    t["H"] = 722;
-    t["I"] = 278;
-    t["J"] = 500;
-    t["K"] = 667;
-    t["L"] = 556;
-    t["M"] = 833;
-    t["N"] = 722;
-    t["O"] = 778;
-    t["P"] = 667;
-    t["Q"] = 778;
-    t["R"] = 722;
-    t["S"] = 667;
-    t["T"] = 611;
-    t["U"] = 722;
-    t["V"] = 667;
-    t["W"] = 944;
-    t["X"] = 667;
-    t["Y"] = 667;
-    t["Z"] = 611;
-    t["bracketleft"] = 278;
-    t["backslash"] = 278;
-    t["bracketright"] = 278;
-    t["asciicircum"] = 469;
-    t["underscore"] = 556;
-    t["quoteleft"] = 222;
-    t["a"] = 556;
-    t["b"] = 556;
-    t["c"] = 500;
-    t["d"] = 556;
-    t["e"] = 556;
-    t["f"] = 278;
-    t["g"] = 556;
-    t["h"] = 556;
-    t["i"] = 222;
-    t["j"] = 222;
-    t["k"] = 500;
-    t["l"] = 222;
-    t["m"] = 833;
-    t["n"] = 556;
-    t["o"] = 556;
-    t["p"] = 556;
-    t["q"] = 556;
-    t["r"] = 333;
-    t["s"] = 500;
-    t["t"] = 278;
-    t["u"] = 556;
-    t["v"] = 500;
-    t["w"] = 722;
-    t["x"] = 500;
-    t["y"] = 500;
-    t["z"] = 500;
-    t["braceleft"] = 334;
-    t["bar"] = 260;
-    t["braceright"] = 334;
-    t["asciitilde"] = 584;
-    t["exclamdown"] = 333;
-    t["cent"] = 556;
-    t["sterling"] = 556;
-    t["fraction"] = 167;
-    t["yen"] = 556;
-    t["florin"] = 556;
-    t["section"] = 556;
-    t["currency"] = 556;
-    t["quotesingle"] = 191;
-    t["quotedblleft"] = 333;
-    t["guillemotleft"] = 556;
-    t["guilsinglleft"] = 333;
-    t["guilsinglright"] = 333;
-    t["fi"] = 500;
-    t["fl"] = 500;
-    t["endash"] = 556;
-    t["dagger"] = 556;
-    t["daggerdbl"] = 556;
-    t["periodcentered"] = 278;
-    t["paragraph"] = 537;
-    t["bullet"] = 350;
-    t["quotesinglbase"] = 222;
-    t["quotedblbase"] = 333;
-    t["quotedblright"] = 333;
-    t["guillemotright"] = 556;
-    t["ellipsis"] = 1000;
-    t["perthousand"] = 1000;
-    t["questiondown"] = 611;
-    t["grave"] = 333;
-    t["acute"] = 333;
-    t["circumflex"] = 333;
-    t["tilde"] = 333;
-    t["macron"] = 333;
-    t["breve"] = 333;
-    t["dotaccent"] = 333;
-    t["dieresis"] = 333;
-    t["ring"] = 333;
-    t["cedilla"] = 333;
-    t["hungarumlaut"] = 333;
-    t["ogonek"] = 333;
-    t["caron"] = 333;
-    t["emdash"] = 1000;
-    t["AE"] = 1000;
-    t["ordfeminine"] = 370;
-    t["Lslash"] = 556;
-    t["Oslash"] = 778;
-    t["OE"] = 1000;
-    t["ordmasculine"] = 365;
-    t["ae"] = 889;
-    t["dotlessi"] = 278;
-    t["lslash"] = 222;
-    t["oslash"] = 611;
-    t["oe"] = 944;
-    t["germandbls"] = 611;
-    t["Idieresis"] = 278;
-    t["eacute"] = 556;
-    t["abreve"] = 556;
-    t["uhungarumlaut"] = 556;
-    t["ecaron"] = 556;
-    t["Ydieresis"] = 667;
-    t["divide"] = 584;
-    t["Yacute"] = 667;
-    t["Acircumflex"] = 667;
-    t["aacute"] = 556;
-    t["Ucircumflex"] = 722;
-    t["yacute"] = 500;
-    t["scommaaccent"] = 500;
-    t["ecircumflex"] = 556;
-    t["Uring"] = 722;
-    t["Udieresis"] = 722;
-    t["aogonek"] = 556;
-    t["Uacute"] = 722;
-    t["uogonek"] = 556;
-    t["Edieresis"] = 667;
-    t["Dcroat"] = 722;
-    t["commaaccent"] = 250;
-    t["copyright"] = 737;
-    t["Emacron"] = 667;
-    t["ccaron"] = 500;
-    t["aring"] = 556;
-    t["Ncommaaccent"] = 722;
-    t["lacute"] = 222;
-    t["agrave"] = 556;
-    t["Tcommaaccent"] = 611;
-    t["Cacute"] = 722;
-    t["atilde"] = 556;
-    t["Edotaccent"] = 667;
-    t["scaron"] = 500;
-    t["scedilla"] = 500;
-    t["iacute"] = 278;
-    t["lozenge"] = 471;
-    t["Rcaron"] = 722;
-    t["Gcommaaccent"] = 778;
-    t["ucircumflex"] = 556;
-    t["acircumflex"] = 556;
-    t["Amacron"] = 667;
-    t["rcaron"] = 333;
-    t["ccedilla"] = 500;
-    t["Zdotaccent"] = 611;
-    t["Thorn"] = 667;
-    t["Omacron"] = 778;
-    t["Racute"] = 722;
-    t["Sacute"] = 667;
-    t["dcaron"] = 643;
-    t["Umacron"] = 722;
-    t["uring"] = 556;
-    t["threesuperior"] = 333;
-    t["Ograve"] = 778;
-    t["Agrave"] = 667;
-    t["Abreve"] = 667;
-    t["multiply"] = 584;
-    t["uacute"] = 556;
-    t["Tcaron"] = 611;
-    t["partialdiff"] = 476;
-    t["ydieresis"] = 500;
-    t["Nacute"] = 722;
-    t["icircumflex"] = 278;
-    t["Ecircumflex"] = 667;
-    t["adieresis"] = 556;
-    t["edieresis"] = 556;
-    t["cacute"] = 500;
-    t["nacute"] = 556;
-    t["umacron"] = 556;
-    t["Ncaron"] = 722;
-    t["Iacute"] = 278;
-    t["plusminus"] = 584;
-    t["brokenbar"] = 260;
-    t["registered"] = 737;
-    t["Gbreve"] = 778;
-    t["Idotaccent"] = 278;
-    t["summation"] = 600;
-    t["Egrave"] = 667;
-    t["racute"] = 333;
-    t["omacron"] = 556;
-    t["Zacute"] = 611;
-    t["Zcaron"] = 611;
-    t["greaterequal"] = 549;
-    t["Eth"] = 722;
-    t["Ccedilla"] = 722;
-    t["lcommaaccent"] = 222;
-    t["tcaron"] = 317;
-    t["eogonek"] = 556;
-    t["Uogonek"] = 722;
-    t["Aacute"] = 667;
-    t["Adieresis"] = 667;
-    t["egrave"] = 556;
-    t["zacute"] = 500;
-    t["iogonek"] = 222;
-    t["Oacute"] = 778;
-    t["oacute"] = 556;
-    t["amacron"] = 556;
-    t["sacute"] = 500;
-    t["idieresis"] = 278;
-    t["Ocircumflex"] = 778;
-    t["Ugrave"] = 722;
-    t["Delta"] = 612;
-    t["thorn"] = 556;
-    t["twosuperior"] = 333;
-    t["Odieresis"] = 778;
-    t["mu"] = 556;
-    t["igrave"] = 278;
-    t["ohungarumlaut"] = 556;
-    t["Eogonek"] = 667;
-    t["dcroat"] = 556;
-    t["threequarters"] = 834;
-    t["Scedilla"] = 667;
-    t["lcaron"] = 299;
-    t["Kcommaaccent"] = 667;
-    t["Lacute"] = 556;
-    t["trademark"] = 1000;
-    t["edotaccent"] = 556;
-    t["Igrave"] = 278;
-    t["Imacron"] = 278;
-    t["Lcaron"] = 556;
-    t["onehalf"] = 834;
-    t["lessequal"] = 549;
-    t["ocircumflex"] = 556;
-    t["ntilde"] = 556;
-    t["Uhungarumlaut"] = 722;
-    t["Eacute"] = 667;
-    t["emacron"] = 556;
-    t["gbreve"] = 556;
-    t["onequarter"] = 834;
-    t["Scaron"] = 667;
-    t["Scommaaccent"] = 667;
-    t["Ohungarumlaut"] = 778;
-    t["degree"] = 400;
-    t["ograve"] = 556;
-    t["Ccaron"] = 722;
-    t["ugrave"] = 556;
-    t["radical"] = 453;
-    t["Dcaron"] = 722;
-    t["rcommaaccent"] = 333;
-    t["Ntilde"] = 722;
-    t["otilde"] = 556;
-    t["Rcommaaccent"] = 722;
-    t["Lcommaaccent"] = 556;
-    t["Atilde"] = 667;
-    t["Aogonek"] = 667;
-    t["Aring"] = 667;
-    t["Otilde"] = 778;
-    t["zdotaccent"] = 500;
-    t["Ecaron"] = 667;
-    t["Iogonek"] = 278;
-    t["kcommaaccent"] = 500;
-    t["minus"] = 584;
-    t["Icircumflex"] = 278;
-    t["ncaron"] = 556;
-    t["tcommaaccent"] = 278;
-    t["logicalnot"] = 584;
-    t["odieresis"] = 556;
-    t["udieresis"] = 556;
-    t["notequal"] = 549;
-    t["gcommaaccent"] = 556;
-    t["eth"] = 556;
-    t["zcaron"] = 500;
-    t["ncommaaccent"] = 556;
-    t["onesuperior"] = 333;
-    t["imacron"] = 278;
-    t["Euro"] = 556;
+  t.Helvetica = (0, _core_utils.getLookupTableFactory)(function (t) {
+    t.space = 278;
+    t.exclam = 278;
+    t.quotedbl = 355;
+    t.numbersign = 556;
+    t.dollar = 556;
+    t.percent = 889;
+    t.ampersand = 667;
+    t.quoteright = 222;
+    t.parenleft = 333;
+    t.parenright = 333;
+    t.asterisk = 389;
+    t.plus = 584;
+    t.comma = 278;
+    t.hyphen = 333;
+    t.period = 278;
+    t.slash = 278;
+    t.zero = 556;
+    t.one = 556;
+    t.two = 556;
+    t.three = 556;
+    t.four = 556;
+    t.five = 556;
+    t.six = 556;
+    t.seven = 556;
+    t.eight = 556;
+    t.nine = 556;
+    t.colon = 278;
+    t.semicolon = 278;
+    t.less = 584;
+    t.equal = 584;
+    t.greater = 584;
+    t.question = 556;
+    t.at = 1015;
+    t.A = 667;
+    t.B = 667;
+    t.C = 722;
+    t.D = 722;
+    t.E = 667;
+    t.F = 611;
+    t.G = 778;
+    t.H = 722;
+    t.I = 278;
+    t.J = 500;
+    t.K = 667;
+    t.L = 556;
+    t.M = 833;
+    t.N = 722;
+    t.O = 778;
+    t.P = 667;
+    t.Q = 778;
+    t.R = 722;
+    t.S = 667;
+    t.T = 611;
+    t.U = 722;
+    t.V = 667;
+    t.W = 944;
+    t.X = 667;
+    t.Y = 667;
+    t.Z = 611;
+    t.bracketleft = 278;
+    t.backslash = 278;
+    t.bracketright = 278;
+    t.asciicircum = 469;
+    t.underscore = 556;
+    t.quoteleft = 222;
+    t.a = 556;
+    t.b = 556;
+    t.c = 500;
+    t.d = 556;
+    t.e = 556;
+    t.f = 278;
+    t.g = 556;
+    t.h = 556;
+    t.i = 222;
+    t.j = 222;
+    t.k = 500;
+    t.l = 222;
+    t.m = 833;
+    t.n = 556;
+    t.o = 556;
+    t.p = 556;
+    t.q = 556;
+    t.r = 333;
+    t.s = 500;
+    t.t = 278;
+    t.u = 556;
+    t.v = 500;
+    t.w = 722;
+    t.x = 500;
+    t.y = 500;
+    t.z = 500;
+    t.braceleft = 334;
+    t.bar = 260;
+    t.braceright = 334;
+    t.asciitilde = 584;
+    t.exclamdown = 333;
+    t.cent = 556;
+    t.sterling = 556;
+    t.fraction = 167;
+    t.yen = 556;
+    t.florin = 556;
+    t.section = 556;
+    t.currency = 556;
+    t.quotesingle = 191;
+    t.quotedblleft = 333;
+    t.guillemotleft = 556;
+    t.guilsinglleft = 333;
+    t.guilsinglright = 333;
+    t.fi = 500;
+    t.fl = 500;
+    t.endash = 556;
+    t.dagger = 556;
+    t.daggerdbl = 556;
+    t.periodcentered = 278;
+    t.paragraph = 537;
+    t.bullet = 350;
+    t.quotesinglbase = 222;
+    t.quotedblbase = 333;
+    t.quotedblright = 333;
+    t.guillemotright = 556;
+    t.ellipsis = 1000;
+    t.perthousand = 1000;
+    t.questiondown = 611;
+    t.grave = 333;
+    t.acute = 333;
+    t.circumflex = 333;
+    t.tilde = 333;
+    t.macron = 333;
+    t.breve = 333;
+    t.dotaccent = 333;
+    t.dieresis = 333;
+    t.ring = 333;
+    t.cedilla = 333;
+    t.hungarumlaut = 333;
+    t.ogonek = 333;
+    t.caron = 333;
+    t.emdash = 1000;
+    t.AE = 1000;
+    t.ordfeminine = 370;
+    t.Lslash = 556;
+    t.Oslash = 778;
+    t.OE = 1000;
+    t.ordmasculine = 365;
+    t.ae = 889;
+    t.dotlessi = 278;
+    t.lslash = 222;
+    t.oslash = 611;
+    t.oe = 944;
+    t.germandbls = 611;
+    t.Idieresis = 278;
+    t.eacute = 556;
+    t.abreve = 556;
+    t.uhungarumlaut = 556;
+    t.ecaron = 556;
+    t.Ydieresis = 667;
+    t.divide = 584;
+    t.Yacute = 667;
+    t.Acircumflex = 667;
+    t.aacute = 556;
+    t.Ucircumflex = 722;
+    t.yacute = 500;
+    t.scommaaccent = 500;
+    t.ecircumflex = 556;
+    t.Uring = 722;
+    t.Udieresis = 722;
+    t.aogonek = 556;
+    t.Uacute = 722;
+    t.uogonek = 556;
+    t.Edieresis = 667;
+    t.Dcroat = 722;
+    t.commaaccent = 250;
+    t.copyright = 737;
+    t.Emacron = 667;
+    t.ccaron = 500;
+    t.aring = 556;
+    t.Ncommaaccent = 722;
+    t.lacute = 222;
+    t.agrave = 556;
+    t.Tcommaaccent = 611;
+    t.Cacute = 722;
+    t.atilde = 556;
+    t.Edotaccent = 667;
+    t.scaron = 500;
+    t.scedilla = 500;
+    t.iacute = 278;
+    t.lozenge = 471;
+    t.Rcaron = 722;
+    t.Gcommaaccent = 778;
+    t.ucircumflex = 556;
+    t.acircumflex = 556;
+    t.Amacron = 667;
+    t.rcaron = 333;
+    t.ccedilla = 500;
+    t.Zdotaccent = 611;
+    t.Thorn = 667;
+    t.Omacron = 778;
+    t.Racute = 722;
+    t.Sacute = 667;
+    t.dcaron = 643;
+    t.Umacron = 722;
+    t.uring = 556;
+    t.threesuperior = 333;
+    t.Ograve = 778;
+    t.Agrave = 667;
+    t.Abreve = 667;
+    t.multiply = 584;
+    t.uacute = 556;
+    t.Tcaron = 611;
+    t.partialdiff = 476;
+    t.ydieresis = 500;
+    t.Nacute = 722;
+    t.icircumflex = 278;
+    t.Ecircumflex = 667;
+    t.adieresis = 556;
+    t.edieresis = 556;
+    t.cacute = 500;
+    t.nacute = 556;
+    t.umacron = 556;
+    t.Ncaron = 722;
+    t.Iacute = 278;
+    t.plusminus = 584;
+    t.brokenbar = 260;
+    t.registered = 737;
+    t.Gbreve = 778;
+    t.Idotaccent = 278;
+    t.summation = 600;
+    t.Egrave = 667;
+    t.racute = 333;
+    t.omacron = 556;
+    t.Zacute = 611;
+    t.Zcaron = 611;
+    t.greaterequal = 549;
+    t.Eth = 722;
+    t.Ccedilla = 722;
+    t.lcommaaccent = 222;
+    t.tcaron = 317;
+    t.eogonek = 556;
+    t.Uogonek = 722;
+    t.Aacute = 667;
+    t.Adieresis = 667;
+    t.egrave = 556;
+    t.zacute = 500;
+    t.iogonek = 222;
+    t.Oacute = 778;
+    t.oacute = 556;
+    t.amacron = 556;
+    t.sacute = 500;
+    t.idieresis = 278;
+    t.Ocircumflex = 778;
+    t.Ugrave = 722;
+    t.Delta = 612;
+    t.thorn = 556;
+    t.twosuperior = 333;
+    t.Odieresis = 778;
+    t.mu = 556;
+    t.igrave = 278;
+    t.ohungarumlaut = 556;
+    t.Eogonek = 667;
+    t.dcroat = 556;
+    t.threequarters = 834;
+    t.Scedilla = 667;
+    t.lcaron = 299;
+    t.Kcommaaccent = 667;
+    t.Lacute = 556;
+    t.trademark = 1000;
+    t.edotaccent = 556;
+    t.Igrave = 278;
+    t.Imacron = 278;
+    t.Lcaron = 556;
+    t.onehalf = 834;
+    t.lessequal = 549;
+    t.ocircumflex = 556;
+    t.ntilde = 556;
+    t.Uhungarumlaut = 722;
+    t.Eacute = 667;
+    t.emacron = 556;
+    t.gbreve = 556;
+    t.onequarter = 834;
+    t.Scaron = 667;
+    t.Scommaaccent = 667;
+    t.Ohungarumlaut = 778;
+    t.degree = 400;
+    t.ograve = 556;
+    t.Ccaron = 722;
+    t.ugrave = 556;
+    t.radical = 453;
+    t.Dcaron = 722;
+    t.rcommaaccent = 333;
+    t.Ntilde = 722;
+    t.otilde = 556;
+    t.Rcommaaccent = 722;
+    t.Lcommaaccent = 556;
+    t.Atilde = 667;
+    t.Aogonek = 667;
+    t.Aring = 667;
+    t.Otilde = 778;
+    t.zdotaccent = 500;
+    t.Ecaron = 667;
+    t.Iogonek = 278;
+    t.kcommaaccent = 500;
+    t.minus = 584;
+    t.Icircumflex = 278;
+    t.ncaron = 556;
+    t.tcommaaccent = 278;
+    t.logicalnot = 584;
+    t.odieresis = 556;
+    t.udieresis = 556;
+    t.notequal = 549;
+    t.gcommaaccent = 556;
+    t.eth = 556;
+    t.zcaron = 500;
+    t.ncommaaccent = 556;
+    t.onesuperior = 333;
+    t.imacron = 278;
+    t.Euro = 556;
   });
   t["Helvetica-Bold"] = (0, _core_utils.getLookupTableFactory)(function (t) {
-    t["space"] = 278;
-    t["exclam"] = 333;
-    t["quotedbl"] = 474;
-    t["numbersign"] = 556;
-    t["dollar"] = 556;
-    t["percent"] = 889;
-    t["ampersand"] = 722;
-    t["quoteright"] = 278;
-    t["parenleft"] = 333;
-    t["parenright"] = 333;
-    t["asterisk"] = 389;
-    t["plus"] = 584;
-    t["comma"] = 278;
-    t["hyphen"] = 333;
-    t["period"] = 278;
-    t["slash"] = 278;
-    t["zero"] = 556;
-    t["one"] = 556;
-    t["two"] = 556;
-    t["three"] = 556;
-    t["four"] = 556;
-    t["five"] = 556;
-    t["six"] = 556;
-    t["seven"] = 556;
-    t["eight"] = 556;
-    t["nine"] = 556;
-    t["colon"] = 333;
-    t["semicolon"] = 333;
-    t["less"] = 584;
-    t["equal"] = 584;
-    t["greater"] = 584;
-    t["question"] = 611;
-    t["at"] = 975;
-    t["A"] = 722;
-    t["B"] = 722;
-    t["C"] = 722;
-    t["D"] = 722;
-    t["E"] = 667;
-    t["F"] = 611;
-    t["G"] = 778;
-    t["H"] = 722;
-    t["I"] = 278;
-    t["J"] = 556;
-    t["K"] = 722;
-    t["L"] = 611;
-    t["M"] = 833;
-    t["N"] = 722;
-    t["O"] = 778;
-    t["P"] = 667;
-    t["Q"] = 778;
-    t["R"] = 722;
-    t["S"] = 667;
-    t["T"] = 611;
-    t["U"] = 722;
-    t["V"] = 667;
-    t["W"] = 944;
-    t["X"] = 667;
-    t["Y"] = 667;
-    t["Z"] = 611;
-    t["bracketleft"] = 333;
-    t["backslash"] = 278;
-    t["bracketright"] = 333;
-    t["asciicircum"] = 584;
-    t["underscore"] = 556;
-    t["quoteleft"] = 278;
-    t["a"] = 556;
-    t["b"] = 611;
-    t["c"] = 556;
-    t["d"] = 611;
-    t["e"] = 556;
-    t["f"] = 333;
-    t["g"] = 611;
-    t["h"] = 611;
-    t["i"] = 278;
-    t["j"] = 278;
-    t["k"] = 556;
-    t["l"] = 278;
-    t["m"] = 889;
-    t["n"] = 611;
-    t["o"] = 611;
-    t["p"] = 611;
-    t["q"] = 611;
-    t["r"] = 389;
-    t["s"] = 556;
-    t["t"] = 333;
-    t["u"] = 611;
-    t["v"] = 556;
-    t["w"] = 778;
-    t["x"] = 556;
-    t["y"] = 556;
-    t["z"] = 500;
-    t["braceleft"] = 389;
-    t["bar"] = 280;
-    t["braceright"] = 389;
-    t["asciitilde"] = 584;
-    t["exclamdown"] = 333;
-    t["cent"] = 556;
-    t["sterling"] = 556;
-    t["fraction"] = 167;
-    t["yen"] = 556;
-    t["florin"] = 556;
-    t["section"] = 556;
-    t["currency"] = 556;
-    t["quotesingle"] = 238;
-    t["quotedblleft"] = 500;
-    t["guillemotleft"] = 556;
-    t["guilsinglleft"] = 333;
-    t["guilsinglright"] = 333;
-    t["fi"] = 611;
-    t["fl"] = 611;
-    t["endash"] = 556;
-    t["dagger"] = 556;
-    t["daggerdbl"] = 556;
-    t["periodcentered"] = 278;
-    t["paragraph"] = 556;
-    t["bullet"] = 350;
-    t["quotesinglbase"] = 278;
-    t["quotedblbase"] = 500;
-    t["quotedblright"] = 500;
-    t["guillemotright"] = 556;
-    t["ellipsis"] = 1000;
-    t["perthousand"] = 1000;
-    t["questiondown"] = 611;
-    t["grave"] = 333;
-    t["acute"] = 333;
-    t["circumflex"] = 333;
-    t["tilde"] = 333;
-    t["macron"] = 333;
-    t["breve"] = 333;
-    t["dotaccent"] = 333;
-    t["dieresis"] = 333;
-    t["ring"] = 333;
-    t["cedilla"] = 333;
-    t["hungarumlaut"] = 333;
-    t["ogonek"] = 333;
-    t["caron"] = 333;
-    t["emdash"] = 1000;
-    t["AE"] = 1000;
-    t["ordfeminine"] = 370;
-    t["Lslash"] = 611;
-    t["Oslash"] = 778;
-    t["OE"] = 1000;
-    t["ordmasculine"] = 365;
-    t["ae"] = 889;
-    t["dotlessi"] = 278;
-    t["lslash"] = 278;
-    t["oslash"] = 611;
-    t["oe"] = 944;
-    t["germandbls"] = 611;
-    t["Idieresis"] = 278;
-    t["eacute"] = 556;
-    t["abreve"] = 556;
-    t["uhungarumlaut"] = 611;
-    t["ecaron"] = 556;
-    t["Ydieresis"] = 667;
-    t["divide"] = 584;
-    t["Yacute"] = 667;
-    t["Acircumflex"] = 722;
-    t["aacute"] = 556;
-    t["Ucircumflex"] = 722;
-    t["yacute"] = 556;
-    t["scommaaccent"] = 556;
-    t["ecircumflex"] = 556;
-    t["Uring"] = 722;
-    t["Udieresis"] = 722;
-    t["aogonek"] = 556;
-    t["Uacute"] = 722;
-    t["uogonek"] = 611;
-    t["Edieresis"] = 667;
-    t["Dcroat"] = 722;
-    t["commaaccent"] = 250;
-    t["copyright"] = 737;
-    t["Emacron"] = 667;
-    t["ccaron"] = 556;
-    t["aring"] = 556;
-    t["Ncommaaccent"] = 722;
-    t["lacute"] = 278;
-    t["agrave"] = 556;
-    t["Tcommaaccent"] = 611;
-    t["Cacute"] = 722;
-    t["atilde"] = 556;
-    t["Edotaccent"] = 667;
-    t["scaron"] = 556;
-    t["scedilla"] = 556;
-    t["iacute"] = 278;
-    t["lozenge"] = 494;
-    t["Rcaron"] = 722;
-    t["Gcommaaccent"] = 778;
-    t["ucircumflex"] = 611;
-    t["acircumflex"] = 556;
-    t["Amacron"] = 722;
-    t["rcaron"] = 389;
-    t["ccedilla"] = 556;
-    t["Zdotaccent"] = 611;
-    t["Thorn"] = 667;
-    t["Omacron"] = 778;
-    t["Racute"] = 722;
-    t["Sacute"] = 667;
-    t["dcaron"] = 743;
-    t["Umacron"] = 722;
-    t["uring"] = 611;
-    t["threesuperior"] = 333;
-    t["Ograve"] = 778;
-    t["Agrave"] = 722;
-    t["Abreve"] = 722;
-    t["multiply"] = 584;
-    t["uacute"] = 611;
-    t["Tcaron"] = 611;
-    t["partialdiff"] = 494;
-    t["ydieresis"] = 556;
-    t["Nacute"] = 722;
-    t["icircumflex"] = 278;
-    t["Ecircumflex"] = 667;
-    t["adieresis"] = 556;
-    t["edieresis"] = 556;
-    t["cacute"] = 556;
-    t["nacute"] = 611;
-    t["umacron"] = 611;
-    t["Ncaron"] = 722;
-    t["Iacute"] = 278;
-    t["plusminus"] = 584;
-    t["brokenbar"] = 280;
-    t["registered"] = 737;
-    t["Gbreve"] = 778;
-    t["Idotaccent"] = 278;
-    t["summation"] = 600;
-    t["Egrave"] = 667;
-    t["racute"] = 389;
-    t["omacron"] = 611;
-    t["Zacute"] = 611;
-    t["Zcaron"] = 611;
-    t["greaterequal"] = 549;
-    t["Eth"] = 722;
-    t["Ccedilla"] = 722;
-    t["lcommaaccent"] = 278;
-    t["tcaron"] = 389;
-    t["eogonek"] = 556;
-    t["Uogonek"] = 722;
-    t["Aacute"] = 722;
-    t["Adieresis"] = 722;
-    t["egrave"] = 556;
-    t["zacute"] = 500;
-    t["iogonek"] = 278;
-    t["Oacute"] = 778;
-    t["oacute"] = 611;
-    t["amacron"] = 556;
-    t["sacute"] = 556;
-    t["idieresis"] = 278;
-    t["Ocircumflex"] = 778;
-    t["Ugrave"] = 722;
-    t["Delta"] = 612;
-    t["thorn"] = 611;
-    t["twosuperior"] = 333;
-    t["Odieresis"] = 778;
-    t["mu"] = 611;
-    t["igrave"] = 278;
-    t["ohungarumlaut"] = 611;
-    t["Eogonek"] = 667;
-    t["dcroat"] = 611;
-    t["threequarters"] = 834;
-    t["Scedilla"] = 667;
-    t["lcaron"] = 400;
-    t["Kcommaaccent"] = 722;
-    t["Lacute"] = 611;
-    t["trademark"] = 1000;
-    t["edotaccent"] = 556;
-    t["Igrave"] = 278;
-    t["Imacron"] = 278;
-    t["Lcaron"] = 611;
-    t["onehalf"] = 834;
-    t["lessequal"] = 549;
-    t["ocircumflex"] = 611;
-    t["ntilde"] = 611;
-    t["Uhungarumlaut"] = 722;
-    t["Eacute"] = 667;
-    t["emacron"] = 556;
-    t["gbreve"] = 611;
-    t["onequarter"] = 834;
-    t["Scaron"] = 667;
-    t["Scommaaccent"] = 667;
-    t["Ohungarumlaut"] = 778;
-    t["degree"] = 400;
-    t["ograve"] = 611;
-    t["Ccaron"] = 722;
-    t["ugrave"] = 611;
-    t["radical"] = 549;
-    t["Dcaron"] = 722;
-    t["rcommaaccent"] = 389;
-    t["Ntilde"] = 722;
-    t["otilde"] = 611;
-    t["Rcommaaccent"] = 722;
-    t["Lcommaaccent"] = 611;
-    t["Atilde"] = 722;
-    t["Aogonek"] = 722;
-    t["Aring"] = 722;
-    t["Otilde"] = 778;
-    t["zdotaccent"] = 500;
-    t["Ecaron"] = 667;
-    t["Iogonek"] = 278;
-    t["kcommaaccent"] = 556;
-    t["minus"] = 584;
-    t["Icircumflex"] = 278;
-    t["ncaron"] = 611;
-    t["tcommaaccent"] = 333;
-    t["logicalnot"] = 584;
-    t["odieresis"] = 611;
-    t["udieresis"] = 611;
-    t["notequal"] = 549;
-    t["gcommaaccent"] = 611;
-    t["eth"] = 611;
-    t["zcaron"] = 500;
-    t["ncommaaccent"] = 611;
-    t["onesuperior"] = 333;
-    t["imacron"] = 278;
-    t["Euro"] = 556;
+    t.space = 278;
+    t.exclam = 333;
+    t.quotedbl = 474;
+    t.numbersign = 556;
+    t.dollar = 556;
+    t.percent = 889;
+    t.ampersand = 722;
+    t.quoteright = 278;
+    t.parenleft = 333;
+    t.parenright = 333;
+    t.asterisk = 389;
+    t.plus = 584;
+    t.comma = 278;
+    t.hyphen = 333;
+    t.period = 278;
+    t.slash = 278;
+    t.zero = 556;
+    t.one = 556;
+    t.two = 556;
+    t.three = 556;
+    t.four = 556;
+    t.five = 556;
+    t.six = 556;
+    t.seven = 556;
+    t.eight = 556;
+    t.nine = 556;
+    t.colon = 333;
+    t.semicolon = 333;
+    t.less = 584;
+    t.equal = 584;
+    t.greater = 584;
+    t.question = 611;
+    t.at = 975;
+    t.A = 722;
+    t.B = 722;
+    t.C = 722;
+    t.D = 722;
+    t.E = 667;
+    t.F = 611;
+    t.G = 778;
+    t.H = 722;
+    t.I = 278;
+    t.J = 556;
+    t.K = 722;
+    t.L = 611;
+    t.M = 833;
+    t.N = 722;
+    t.O = 778;
+    t.P = 667;
+    t.Q = 778;
+    t.R = 722;
+    t.S = 667;
+    t.T = 611;
+    t.U = 722;
+    t.V = 667;
+    t.W = 944;
+    t.X = 667;
+    t.Y = 667;
+    t.Z = 611;
+    t.bracketleft = 333;
+    t.backslash = 278;
+    t.bracketright = 333;
+    t.asciicircum = 584;
+    t.underscore = 556;
+    t.quoteleft = 278;
+    t.a = 556;
+    t.b = 611;
+    t.c = 556;
+    t.d = 611;
+    t.e = 556;
+    t.f = 333;
+    t.g = 611;
+    t.h = 611;
+    t.i = 278;
+    t.j = 278;
+    t.k = 556;
+    t.l = 278;
+    t.m = 889;
+    t.n = 611;
+    t.o = 611;
+    t.p = 611;
+    t.q = 611;
+    t.r = 389;
+    t.s = 556;
+    t.t = 333;
+    t.u = 611;
+    t.v = 556;
+    t.w = 778;
+    t.x = 556;
+    t.y = 556;
+    t.z = 500;
+    t.braceleft = 389;
+    t.bar = 280;
+    t.braceright = 389;
+    t.asciitilde = 584;
+    t.exclamdown = 333;
+    t.cent = 556;
+    t.sterling = 556;
+    t.fraction = 167;
+    t.yen = 556;
+    t.florin = 556;
+    t.section = 556;
+    t.currency = 556;
+    t.quotesingle = 238;
+    t.quotedblleft = 500;
+    t.guillemotleft = 556;
+    t.guilsinglleft = 333;
+    t.guilsinglright = 333;
+    t.fi = 611;
+    t.fl = 611;
+    t.endash = 556;
+    t.dagger = 556;
+    t.daggerdbl = 556;
+    t.periodcentered = 278;
+    t.paragraph = 556;
+    t.bullet = 350;
+    t.quotesinglbase = 278;
+    t.quotedblbase = 500;
+    t.quotedblright = 500;
+    t.guillemotright = 556;
+    t.ellipsis = 1000;
+    t.perthousand = 1000;
+    t.questiondown = 611;
+    t.grave = 333;
+    t.acute = 333;
+    t.circumflex = 333;
+    t.tilde = 333;
+    t.macron = 333;
+    t.breve = 333;
+    t.dotaccent = 333;
+    t.dieresis = 333;
+    t.ring = 333;
+    t.cedilla = 333;
+    t.hungarumlaut = 333;
+    t.ogonek = 333;
+    t.caron = 333;
+    t.emdash = 1000;
+    t.AE = 1000;
+    t.ordfeminine = 370;
+    t.Lslash = 611;
+    t.Oslash = 778;
+    t.OE = 1000;
+    t.ordmasculine = 365;
+    t.ae = 889;
+    t.dotlessi = 278;
+    t.lslash = 278;
+    t.oslash = 611;
+    t.oe = 944;
+    t.germandbls = 611;
+    t.Idieresis = 278;
+    t.eacute = 556;
+    t.abreve = 556;
+    t.uhungarumlaut = 611;
+    t.ecaron = 556;
+    t.Ydieresis = 667;
+    t.divide = 584;
+    t.Yacute = 667;
+    t.Acircumflex = 722;
+    t.aacute = 556;
+    t.Ucircumflex = 722;
+    t.yacute = 556;
+    t.scommaaccent = 556;
+    t.ecircumflex = 556;
+    t.Uring = 722;
+    t.Udieresis = 722;
+    t.aogonek = 556;
+    t.Uacute = 722;
+    t.uogonek = 611;
+    t.Edieresis = 667;
+    t.Dcroat = 722;
+    t.commaaccent = 250;
+    t.copyright = 737;
+    t.Emacron = 667;
+    t.ccaron = 556;
+    t.aring = 556;
+    t.Ncommaaccent = 722;
+    t.lacute = 278;
+    t.agrave = 556;
+    t.Tcommaaccent = 611;
+    t.Cacute = 722;
+    t.atilde = 556;
+    t.Edotaccent = 667;
+    t.scaron = 556;
+    t.scedilla = 556;
+    t.iacute = 278;
+    t.lozenge = 494;
+    t.Rcaron = 722;
+    t.Gcommaaccent = 778;
+    t.ucircumflex = 611;
+    t.acircumflex = 556;
+    t.Amacron = 722;
+    t.rcaron = 389;
+    t.ccedilla = 556;
+    t.Zdotaccent = 611;
+    t.Thorn = 667;
+    t.Omacron = 778;
+    t.Racute = 722;
+    t.Sacute = 667;
+    t.dcaron = 743;
+    t.Umacron = 722;
+    t.uring = 611;
+    t.threesuperior = 333;
+    t.Ograve = 778;
+    t.Agrave = 722;
+    t.Abreve = 722;
+    t.multiply = 584;
+    t.uacute = 611;
+    t.Tcaron = 611;
+    t.partialdiff = 494;
+    t.ydieresis = 556;
+    t.Nacute = 722;
+    t.icircumflex = 278;
+    t.Ecircumflex = 667;
+    t.adieresis = 556;
+    t.edieresis = 556;
+    t.cacute = 556;
+    t.nacute = 611;
+    t.umacron = 611;
+    t.Ncaron = 722;
+    t.Iacute = 278;
+    t.plusminus = 584;
+    t.brokenbar = 280;
+    t.registered = 737;
+    t.Gbreve = 778;
+    t.Idotaccent = 278;
+    t.summation = 600;
+    t.Egrave = 667;
+    t.racute = 389;
+    t.omacron = 611;
+    t.Zacute = 611;
+    t.Zcaron = 611;
+    t.greaterequal = 549;
+    t.Eth = 722;
+    t.Ccedilla = 722;
+    t.lcommaaccent = 278;
+    t.tcaron = 389;
+    t.eogonek = 556;
+    t.Uogonek = 722;
+    t.Aacute = 722;
+    t.Adieresis = 722;
+    t.egrave = 556;
+    t.zacute = 500;
+    t.iogonek = 278;
+    t.Oacute = 778;
+    t.oacute = 611;
+    t.amacron = 556;
+    t.sacute = 556;
+    t.idieresis = 278;
+    t.Ocircumflex = 778;
+    t.Ugrave = 722;
+    t.Delta = 612;
+    t.thorn = 611;
+    t.twosuperior = 333;
+    t.Odieresis = 778;
+    t.mu = 611;
+    t.igrave = 278;
+    t.ohungarumlaut = 611;
+    t.Eogonek = 667;
+    t.dcroat = 611;
+    t.threequarters = 834;
+    t.Scedilla = 667;
+    t.lcaron = 400;
+    t.Kcommaaccent = 722;
+    t.Lacute = 611;
+    t.trademark = 1000;
+    t.edotaccent = 556;
+    t.Igrave = 278;
+    t.Imacron = 278;
+    t.Lcaron = 611;
+    t.onehalf = 834;
+    t.lessequal = 549;
+    t.ocircumflex = 611;
+    t.ntilde = 611;
+    t.Uhungarumlaut = 722;
+    t.Eacute = 667;
+    t.emacron = 556;
+    t.gbreve = 611;
+    t.onequarter = 834;
+    t.Scaron = 667;
+    t.Scommaaccent = 667;
+    t.Ohungarumlaut = 778;
+    t.degree = 400;
+    t.ograve = 611;
+    t.Ccaron = 722;
+    t.ugrave = 611;
+    t.radical = 549;
+    t.Dcaron = 722;
+    t.rcommaaccent = 389;
+    t.Ntilde = 722;
+    t.otilde = 611;
+    t.Rcommaaccent = 722;
+    t.Lcommaaccent = 611;
+    t.Atilde = 722;
+    t.Aogonek = 722;
+    t.Aring = 722;
+    t.Otilde = 778;
+    t.zdotaccent = 500;
+    t.Ecaron = 667;
+    t.Iogonek = 278;
+    t.kcommaaccent = 556;
+    t.minus = 584;
+    t.Icircumflex = 278;
+    t.ncaron = 611;
+    t.tcommaaccent = 333;
+    t.logicalnot = 584;
+    t.odieresis = 611;
+    t.udieresis = 611;
+    t.notequal = 549;
+    t.gcommaaccent = 611;
+    t.eth = 611;
+    t.zcaron = 500;
+    t.ncommaaccent = 611;
+    t.onesuperior = 333;
+    t.imacron = 278;
+    t.Euro = 556;
   });
   t["Helvetica-BoldOblique"] = (0, _core_utils.getLookupTableFactory)(function (t) {
-    t["space"] = 278;
-    t["exclam"] = 333;
-    t["quotedbl"] = 474;
-    t["numbersign"] = 556;
-    t["dollar"] = 556;
-    t["percent"] = 889;
-    t["ampersand"] = 722;
-    t["quoteright"] = 278;
-    t["parenleft"] = 333;
-    t["parenright"] = 333;
-    t["asterisk"] = 389;
-    t["plus"] = 584;
-    t["comma"] = 278;
-    t["hyphen"] = 333;
-    t["period"] = 278;
-    t["slash"] = 278;
-    t["zero"] = 556;
-    t["one"] = 556;
-    t["two"] = 556;
-    t["three"] = 556;
-    t["four"] = 556;
-    t["five"] = 556;
-    t["six"] = 556;
-    t["seven"] = 556;
-    t["eight"] = 556;
-    t["nine"] = 556;
-    t["colon"] = 333;
-    t["semicolon"] = 333;
-    t["less"] = 584;
-    t["equal"] = 584;
-    t["greater"] = 584;
-    t["question"] = 611;
-    t["at"] = 975;
-    t["A"] = 722;
-    t["B"] = 722;
-    t["C"] = 722;
-    t["D"] = 722;
-    t["E"] = 667;
-    t["F"] = 611;
-    t["G"] = 778;
-    t["H"] = 722;
-    t["I"] = 278;
-    t["J"] = 556;
-    t["K"] = 722;
-    t["L"] = 611;
-    t["M"] = 833;
-    t["N"] = 722;
-    t["O"] = 778;
-    t["P"] = 667;
-    t["Q"] = 778;
-    t["R"] = 722;
-    t["S"] = 667;
-    t["T"] = 611;
-    t["U"] = 722;
-    t["V"] = 667;
-    t["W"] = 944;
-    t["X"] = 667;
-    t["Y"] = 667;
-    t["Z"] = 611;
-    t["bracketleft"] = 333;
-    t["backslash"] = 278;
-    t["bracketright"] = 333;
-    t["asciicircum"] = 584;
-    t["underscore"] = 556;
-    t["quoteleft"] = 278;
-    t["a"] = 556;
-    t["b"] = 611;
-    t["c"] = 556;
-    t["d"] = 611;
-    t["e"] = 556;
-    t["f"] = 333;
-    t["g"] = 611;
-    t["h"] = 611;
-    t["i"] = 278;
-    t["j"] = 278;
-    t["k"] = 556;
-    t["l"] = 278;
-    t["m"] = 889;
-    t["n"] = 611;
-    t["o"] = 611;
-    t["p"] = 611;
-    t["q"] = 611;
-    t["r"] = 389;
-    t["s"] = 556;
-    t["t"] = 333;
-    t["u"] = 611;
-    t["v"] = 556;
-    t["w"] = 778;
-    t["x"] = 556;
-    t["y"] = 556;
-    t["z"] = 500;
-    t["braceleft"] = 389;
-    t["bar"] = 280;
-    t["braceright"] = 389;
-    t["asciitilde"] = 584;
-    t["exclamdown"] = 333;
-    t["cent"] = 556;
-    t["sterling"] = 556;
-    t["fraction"] = 167;
-    t["yen"] = 556;
-    t["florin"] = 556;
-    t["section"] = 556;
-    t["currency"] = 556;
-    t["quotesingle"] = 238;
-    t["quotedblleft"] = 500;
-    t["guillemotleft"] = 556;
-    t["guilsinglleft"] = 333;
-    t["guilsinglright"] = 333;
-    t["fi"] = 611;
-    t["fl"] = 611;
-    t["endash"] = 556;
-    t["dagger"] = 556;
-    t["daggerdbl"] = 556;
-    t["periodcentered"] = 278;
-    t["paragraph"] = 556;
-    t["bullet"] = 350;
-    t["quotesinglbase"] = 278;
-    t["quotedblbase"] = 500;
-    t["quotedblright"] = 500;
-    t["guillemotright"] = 556;
-    t["ellipsis"] = 1000;
-    t["perthousand"] = 1000;
-    t["questiondown"] = 611;
-    t["grave"] = 333;
-    t["acute"] = 333;
-    t["circumflex"] = 333;
-    t["tilde"] = 333;
-    t["macron"] = 333;
-    t["breve"] = 333;
-    t["dotaccent"] = 333;
-    t["dieresis"] = 333;
-    t["ring"] = 333;
-    t["cedilla"] = 333;
-    t["hungarumlaut"] = 333;
-    t["ogonek"] = 333;
-    t["caron"] = 333;
-    t["emdash"] = 1000;
-    t["AE"] = 1000;
-    t["ordfeminine"] = 370;
-    t["Lslash"] = 611;
-    t["Oslash"] = 778;
-    t["OE"] = 1000;
-    t["ordmasculine"] = 365;
-    t["ae"] = 889;
-    t["dotlessi"] = 278;
-    t["lslash"] = 278;
-    t["oslash"] = 611;
-    t["oe"] = 944;
-    t["germandbls"] = 611;
-    t["Idieresis"] = 278;
-    t["eacute"] = 556;
-    t["abreve"] = 556;
-    t["uhungarumlaut"] = 611;
-    t["ecaron"] = 556;
-    t["Ydieresis"] = 667;
-    t["divide"] = 584;
-    t["Yacute"] = 667;
-    t["Acircumflex"] = 722;
-    t["aacute"] = 556;
-    t["Ucircumflex"] = 722;
-    t["yacute"] = 556;
-    t["scommaaccent"] = 556;
-    t["ecircumflex"] = 556;
-    t["Uring"] = 722;
-    t["Udieresis"] = 722;
-    t["aogonek"] = 556;
-    t["Uacute"] = 722;
-    t["uogonek"] = 611;
-    t["Edieresis"] = 667;
-    t["Dcroat"] = 722;
-    t["commaaccent"] = 250;
-    t["copyright"] = 737;
-    t["Emacron"] = 667;
-    t["ccaron"] = 556;
-    t["aring"] = 556;
-    t["Ncommaaccent"] = 722;
-    t["lacute"] = 278;
-    t["agrave"] = 556;
-    t["Tcommaaccent"] = 611;
-    t["Cacute"] = 722;
-    t["atilde"] = 556;
-    t["Edotaccent"] = 667;
-    t["scaron"] = 556;
-    t["scedilla"] = 556;
-    t["iacute"] = 278;
-    t["lozenge"] = 494;
-    t["Rcaron"] = 722;
-    t["Gcommaaccent"] = 778;
-    t["ucircumflex"] = 611;
-    t["acircumflex"] = 556;
-    t["Amacron"] = 722;
-    t["rcaron"] = 389;
-    t["ccedilla"] = 556;
-    t["Zdotaccent"] = 611;
-    t["Thorn"] = 667;
-    t["Omacron"] = 778;
-    t["Racute"] = 722;
-    t["Sacute"] = 667;
-    t["dcaron"] = 743;
-    t["Umacron"] = 722;
-    t["uring"] = 611;
-    t["threesuperior"] = 333;
-    t["Ograve"] = 778;
-    t["Agrave"] = 722;
-    t["Abreve"] = 722;
-    t["multiply"] = 584;
-    t["uacute"] = 611;
-    t["Tcaron"] = 611;
-    t["partialdiff"] = 494;
-    t["ydieresis"] = 556;
-    t["Nacute"] = 722;
-    t["icircumflex"] = 278;
-    t["Ecircumflex"] = 667;
-    t["adieresis"] = 556;
-    t["edieresis"] = 556;
-    t["cacute"] = 556;
-    t["nacute"] = 611;
-    t["umacron"] = 611;
-    t["Ncaron"] = 722;
-    t["Iacute"] = 278;
-    t["plusminus"] = 584;
-    t["brokenbar"] = 280;
-    t["registered"] = 737;
-    t["Gbreve"] = 778;
-    t["Idotaccent"] = 278;
-    t["summation"] = 600;
-    t["Egrave"] = 667;
-    t["racute"] = 389;
-    t["omacron"] = 611;
-    t["Zacute"] = 611;
-    t["Zcaron"] = 611;
-    t["greaterequal"] = 549;
-    t["Eth"] = 722;
-    t["Ccedilla"] = 722;
-    t["lcommaaccent"] = 278;
-    t["tcaron"] = 389;
-    t["eogonek"] = 556;
-    t["Uogonek"] = 722;
-    t["Aacute"] = 722;
-    t["Adieresis"] = 722;
-    t["egrave"] = 556;
-    t["zacute"] = 500;
-    t["iogonek"] = 278;
-    t["Oacute"] = 778;
-    t["oacute"] = 611;
-    t["amacron"] = 556;
-    t["sacute"] = 556;
-    t["idieresis"] = 278;
-    t["Ocircumflex"] = 778;
-    t["Ugrave"] = 722;
-    t["Delta"] = 612;
-    t["thorn"] = 611;
-    t["twosuperior"] = 333;
-    t["Odieresis"] = 778;
-    t["mu"] = 611;
-    t["igrave"] = 278;
-    t["ohungarumlaut"] = 611;
-    t["Eogonek"] = 667;
-    t["dcroat"] = 611;
-    t["threequarters"] = 834;
-    t["Scedilla"] = 667;
-    t["lcaron"] = 400;
-    t["Kcommaaccent"] = 722;
-    t["Lacute"] = 611;
-    t["trademark"] = 1000;
-    t["edotaccent"] = 556;
-    t["Igrave"] = 278;
-    t["Imacron"] = 278;
-    t["Lcaron"] = 611;
-    t["onehalf"] = 834;
-    t["lessequal"] = 549;
-    t["ocircumflex"] = 611;
-    t["ntilde"] = 611;
-    t["Uhungarumlaut"] = 722;
-    t["Eacute"] = 667;
-    t["emacron"] = 556;
-    t["gbreve"] = 611;
-    t["onequarter"] = 834;
-    t["Scaron"] = 667;
-    t["Scommaaccent"] = 667;
-    t["Ohungarumlaut"] = 778;
-    t["degree"] = 400;
-    t["ograve"] = 611;
-    t["Ccaron"] = 722;
-    t["ugrave"] = 611;
-    t["radical"] = 549;
-    t["Dcaron"] = 722;
-    t["rcommaaccent"] = 389;
-    t["Ntilde"] = 722;
-    t["otilde"] = 611;
-    t["Rcommaaccent"] = 722;
-    t["Lcommaaccent"] = 611;
-    t["Atilde"] = 722;
-    t["Aogonek"] = 722;
-    t["Aring"] = 722;
-    t["Otilde"] = 778;
-    t["zdotaccent"] = 500;
-    t["Ecaron"] = 667;
-    t["Iogonek"] = 278;
-    t["kcommaaccent"] = 556;
-    t["minus"] = 584;
-    t["Icircumflex"] = 278;
-    t["ncaron"] = 611;
-    t["tcommaaccent"] = 333;
-    t["logicalnot"] = 584;
-    t["odieresis"] = 611;
-    t["udieresis"] = 611;
-    t["notequal"] = 549;
-    t["gcommaaccent"] = 611;
-    t["eth"] = 611;
-    t["zcaron"] = 500;
-    t["ncommaaccent"] = 611;
-    t["onesuperior"] = 333;
-    t["imacron"] = 278;
-    t["Euro"] = 556;
+    t.space = 278;
+    t.exclam = 333;
+    t.quotedbl = 474;
+    t.numbersign = 556;
+    t.dollar = 556;
+    t.percent = 889;
+    t.ampersand = 722;
+    t.quoteright = 278;
+    t.parenleft = 333;
+    t.parenright = 333;
+    t.asterisk = 389;
+    t.plus = 584;
+    t.comma = 278;
+    t.hyphen = 333;
+    t.period = 278;
+    t.slash = 278;
+    t.zero = 556;
+    t.one = 556;
+    t.two = 556;
+    t.three = 556;
+    t.four = 556;
+    t.five = 556;
+    t.six = 556;
+    t.seven = 556;
+    t.eight = 556;
+    t.nine = 556;
+    t.colon = 333;
+    t.semicolon = 333;
+    t.less = 584;
+    t.equal = 584;
+    t.greater = 584;
+    t.question = 611;
+    t.at = 975;
+    t.A = 722;
+    t.B = 722;
+    t.C = 722;
+    t.D = 722;
+    t.E = 667;
+    t.F = 611;
+    t.G = 778;
+    t.H = 722;
+    t.I = 278;
+    t.J = 556;
+    t.K = 722;
+    t.L = 611;
+    t.M = 833;
+    t.N = 722;
+    t.O = 778;
+    t.P = 667;
+    t.Q = 778;
+    t.R = 722;
+    t.S = 667;
+    t.T = 611;
+    t.U = 722;
+    t.V = 667;
+    t.W = 944;
+    t.X = 667;
+    t.Y = 667;
+    t.Z = 611;
+    t.bracketleft = 333;
+    t.backslash = 278;
+    t.bracketright = 333;
+    t.asciicircum = 584;
+    t.underscore = 556;
+    t.quoteleft = 278;
+    t.a = 556;
+    t.b = 611;
+    t.c = 556;
+    t.d = 611;
+    t.e = 556;
+    t.f = 333;
+    t.g = 611;
+    t.h = 611;
+    t.i = 278;
+    t.j = 278;
+    t.k = 556;
+    t.l = 278;
+    t.m = 889;
+    t.n = 611;
+    t.o = 611;
+    t.p = 611;
+    t.q = 611;
+    t.r = 389;
+    t.s = 556;
+    t.t = 333;
+    t.u = 611;
+    t.v = 556;
+    t.w = 778;
+    t.x = 556;
+    t.y = 556;
+    t.z = 500;
+    t.braceleft = 389;
+    t.bar = 280;
+    t.braceright = 389;
+    t.asciitilde = 584;
+    t.exclamdown = 333;
+    t.cent = 556;
+    t.sterling = 556;
+    t.fraction = 167;
+    t.yen = 556;
+    t.florin = 556;
+    t.section = 556;
+    t.currency = 556;
+    t.quotesingle = 238;
+    t.quotedblleft = 500;
+    t.guillemotleft = 556;
+    t.guilsinglleft = 333;
+    t.guilsinglright = 333;
+    t.fi = 611;
+    t.fl = 611;
+    t.endash = 556;
+    t.dagger = 556;
+    t.daggerdbl = 556;
+    t.periodcentered = 278;
+    t.paragraph = 556;
+    t.bullet = 350;
+    t.quotesinglbase = 278;
+    t.quotedblbase = 500;
+    t.quotedblright = 500;
+    t.guillemotright = 556;
+    t.ellipsis = 1000;
+    t.perthousand = 1000;
+    t.questiondown = 611;
+    t.grave = 333;
+    t.acute = 333;
+    t.circumflex = 333;
+    t.tilde = 333;
+    t.macron = 333;
+    t.breve = 333;
+    t.dotaccent = 333;
+    t.dieresis = 333;
+    t.ring = 333;
+    t.cedilla = 333;
+    t.hungarumlaut = 333;
+    t.ogonek = 333;
+    t.caron = 333;
+    t.emdash = 1000;
+    t.AE = 1000;
+    t.ordfeminine = 370;
+    t.Lslash = 611;
+    t.Oslash = 778;
+    t.OE = 1000;
+    t.ordmasculine = 365;
+    t.ae = 889;
+    t.dotlessi = 278;
+    t.lslash = 278;
+    t.oslash = 611;
+    t.oe = 944;
+    t.germandbls = 611;
+    t.Idieresis = 278;
+    t.eacute = 556;
+    t.abreve = 556;
+    t.uhungarumlaut = 611;
+    t.ecaron = 556;
+    t.Ydieresis = 667;
+    t.divide = 584;
+    t.Yacute = 667;
+    t.Acircumflex = 722;
+    t.aacute = 556;
+    t.Ucircumflex = 722;
+    t.yacute = 556;
+    t.scommaaccent = 556;
+    t.ecircumflex = 556;
+    t.Uring = 722;
+    t.Udieresis = 722;
+    t.aogonek = 556;
+    t.Uacute = 722;
+    t.uogonek = 611;
+    t.Edieresis = 667;
+    t.Dcroat = 722;
+    t.commaaccent = 250;
+    t.copyright = 737;
+    t.Emacron = 667;
+    t.ccaron = 556;
+    t.aring = 556;
+    t.Ncommaaccent = 722;
+    t.lacute = 278;
+    t.agrave = 556;
+    t.Tcommaaccent = 611;
+    t.Cacute = 722;
+    t.atilde = 556;
+    t.Edotaccent = 667;
+    t.scaron = 556;
+    t.scedilla = 556;
+    t.iacute = 278;
+    t.lozenge = 494;
+    t.Rcaron = 722;
+    t.Gcommaaccent = 778;
+    t.ucircumflex = 611;
+    t.acircumflex = 556;
+    t.Amacron = 722;
+    t.rcaron = 389;
+    t.ccedilla = 556;
+    t.Zdotaccent = 611;
+    t.Thorn = 667;
+    t.Omacron = 778;
+    t.Racute = 722;
+    t.Sacute = 667;
+    t.dcaron = 743;
+    t.Umacron = 722;
+    t.uring = 611;
+    t.threesuperior = 333;
+    t.Ograve = 778;
+    t.Agrave = 722;
+    t.Abreve = 722;
+    t.multiply = 584;
+    t.uacute = 611;
+    t.Tcaron = 611;
+    t.partialdiff = 494;
+    t.ydieresis = 556;
+    t.Nacute = 722;
+    t.icircumflex = 278;
+    t.Ecircumflex = 667;
+    t.adieresis = 556;
+    t.edieresis = 556;
+    t.cacute = 556;
+    t.nacute = 611;
+    t.umacron = 611;
+    t.Ncaron = 722;
+    t.Iacute = 278;
+    t.plusminus = 584;
+    t.brokenbar = 280;
+    t.registered = 737;
+    t.Gbreve = 778;
+    t.Idotaccent = 278;
+    t.summation = 600;
+    t.Egrave = 667;
+    t.racute = 389;
+    t.omacron = 611;
+    t.Zacute = 611;
+    t.Zcaron = 611;
+    t.greaterequal = 549;
+    t.Eth = 722;
+    t.Ccedilla = 722;
+    t.lcommaaccent = 278;
+    t.tcaron = 389;
+    t.eogonek = 556;
+    t.Uogonek = 722;
+    t.Aacute = 722;
+    t.Adieresis = 722;
+    t.egrave = 556;
+    t.zacute = 500;
+    t.iogonek = 278;
+    t.Oacute = 778;
+    t.oacute = 611;
+    t.amacron = 556;
+    t.sacute = 556;
+    t.idieresis = 278;
+    t.Ocircumflex = 778;
+    t.Ugrave = 722;
+    t.Delta = 612;
+    t.thorn = 611;
+    t.twosuperior = 333;
+    t.Odieresis = 778;
+    t.mu = 611;
+    t.igrave = 278;
+    t.ohungarumlaut = 611;
+    t.Eogonek = 667;
+    t.dcroat = 611;
+    t.threequarters = 834;
+    t.Scedilla = 667;
+    t.lcaron = 400;
+    t.Kcommaaccent = 722;
+    t.Lacute = 611;
+    t.trademark = 1000;
+    t.edotaccent = 556;
+    t.Igrave = 278;
+    t.Imacron = 278;
+    t.Lcaron = 611;
+    t.onehalf = 834;
+    t.lessequal = 549;
+    t.ocircumflex = 611;
+    t.ntilde = 611;
+    t.Uhungarumlaut = 722;
+    t.Eacute = 667;
+    t.emacron = 556;
+    t.gbreve = 611;
+    t.onequarter = 834;
+    t.Scaron = 667;
+    t.Scommaaccent = 667;
+    t.Ohungarumlaut = 778;
+    t.degree = 400;
+    t.ograve = 611;
+    t.Ccaron = 722;
+    t.ugrave = 611;
+    t.radical = 549;
+    t.Dcaron = 722;
+    t.rcommaaccent = 389;
+    t.Ntilde = 722;
+    t.otilde = 611;
+    t.Rcommaaccent = 722;
+    t.Lcommaaccent = 611;
+    t.Atilde = 722;
+    t.Aogonek = 722;
+    t.Aring = 722;
+    t.Otilde = 778;
+    t.zdotaccent = 500;
+    t.Ecaron = 667;
+    t.Iogonek = 278;
+    t.kcommaaccent = 556;
+    t.minus = 584;
+    t.Icircumflex = 278;
+    t.ncaron = 611;
+    t.tcommaaccent = 333;
+    t.logicalnot = 584;
+    t.odieresis = 611;
+    t.udieresis = 611;
+    t.notequal = 549;
+    t.gcommaaccent = 611;
+    t.eth = 611;
+    t.zcaron = 500;
+    t.ncommaaccent = 611;
+    t.onesuperior = 333;
+    t.imacron = 278;
+    t.Euro = 556;
   });
   t["Helvetica-Oblique"] = (0, _core_utils.getLookupTableFactory)(function (t) {
-    t["space"] = 278;
-    t["exclam"] = 278;
-    t["quotedbl"] = 355;
-    t["numbersign"] = 556;
-    t["dollar"] = 556;
-    t["percent"] = 889;
-    t["ampersand"] = 667;
-    t["quoteright"] = 222;
-    t["parenleft"] = 333;
-    t["parenright"] = 333;
-    t["asterisk"] = 389;
-    t["plus"] = 584;
-    t["comma"] = 278;
-    t["hyphen"] = 333;
-    t["period"] = 278;
-    t["slash"] = 278;
-    t["zero"] = 556;
-    t["one"] = 556;
-    t["two"] = 556;
-    t["three"] = 556;
-    t["four"] = 556;
-    t["five"] = 556;
-    t["six"] = 556;
-    t["seven"] = 556;
-    t["eight"] = 556;
-    t["nine"] = 556;
-    t["colon"] = 278;
-    t["semicolon"] = 278;
-    t["less"] = 584;
-    t["equal"] = 584;
-    t["greater"] = 584;
-    t["question"] = 556;
-    t["at"] = 1015;
-    t["A"] = 667;
-    t["B"] = 667;
-    t["C"] = 722;
-    t["D"] = 722;
-    t["E"] = 667;
-    t["F"] = 611;
-    t["G"] = 778;
-    t["H"] = 722;
-    t["I"] = 278;
-    t["J"] = 500;
-    t["K"] = 667;
-    t["L"] = 556;
-    t["M"] = 833;
-    t["N"] = 722;
-    t["O"] = 778;
-    t["P"] = 667;
-    t["Q"] = 778;
-    t["R"] = 722;
-    t["S"] = 667;
-    t["T"] = 611;
-    t["U"] = 722;
-    t["V"] = 667;
-    t["W"] = 944;
-    t["X"] = 667;
-    t["Y"] = 667;
-    t["Z"] = 611;
-    t["bracketleft"] = 278;
-    t["backslash"] = 278;
-    t["bracketright"] = 278;
-    t["asciicircum"] = 469;
-    t["underscore"] = 556;
-    t["quoteleft"] = 222;
-    t["a"] = 556;
-    t["b"] = 556;
-    t["c"] = 500;
-    t["d"] = 556;
-    t["e"] = 556;
-    t["f"] = 278;
-    t["g"] = 556;
-    t["h"] = 556;
-    t["i"] = 222;
-    t["j"] = 222;
-    t["k"] = 500;
-    t["l"] = 222;
-    t["m"] = 833;
-    t["n"] = 556;
-    t["o"] = 556;
-    t["p"] = 556;
-    t["q"] = 556;
-    t["r"] = 333;
-    t["s"] = 500;
-    t["t"] = 278;
-    t["u"] = 556;
-    t["v"] = 500;
-    t["w"] = 722;
-    t["x"] = 500;
-    t["y"] = 500;
-    t["z"] = 500;
-    t["braceleft"] = 334;
-    t["bar"] = 260;
-    t["braceright"] = 334;
-    t["asciitilde"] = 584;
-    t["exclamdown"] = 333;
-    t["cent"] = 556;
-    t["sterling"] = 556;
-    t["fraction"] = 167;
-    t["yen"] = 556;
-    t["florin"] = 556;
-    t["section"] = 556;
-    t["currency"] = 556;
-    t["quotesingle"] = 191;
-    t["quotedblleft"] = 333;
-    t["guillemotleft"] = 556;
-    t["guilsinglleft"] = 333;
-    t["guilsinglright"] = 333;
-    t["fi"] = 500;
-    t["fl"] = 500;
-    t["endash"] = 556;
-    t["dagger"] = 556;
-    t["daggerdbl"] = 556;
-    t["periodcentered"] = 278;
-    t["paragraph"] = 537;
-    t["bullet"] = 350;
-    t["quotesinglbase"] = 222;
-    t["quotedblbase"] = 333;
-    t["quotedblright"] = 333;
-    t["guillemotright"] = 556;
-    t["ellipsis"] = 1000;
-    t["perthousand"] = 1000;
-    t["questiondown"] = 611;
-    t["grave"] = 333;
-    t["acute"] = 333;
-    t["circumflex"] = 333;
-    t["tilde"] = 333;
-    t["macron"] = 333;
-    t["breve"] = 333;
-    t["dotaccent"] = 333;
-    t["dieresis"] = 333;
-    t["ring"] = 333;
-    t["cedilla"] = 333;
-    t["hungarumlaut"] = 333;
-    t["ogonek"] = 333;
-    t["caron"] = 333;
-    t["emdash"] = 1000;
-    t["AE"] = 1000;
-    t["ordfeminine"] = 370;
-    t["Lslash"] = 556;
-    t["Oslash"] = 778;
-    t["OE"] = 1000;
-    t["ordmasculine"] = 365;
-    t["ae"] = 889;
-    t["dotlessi"] = 278;
-    t["lslash"] = 222;
-    t["oslash"] = 611;
-    t["oe"] = 944;
-    t["germandbls"] = 611;
-    t["Idieresis"] = 278;
-    t["eacute"] = 556;
-    t["abreve"] = 556;
-    t["uhungarumlaut"] = 556;
-    t["ecaron"] = 556;
-    t["Ydieresis"] = 667;
-    t["divide"] = 584;
-    t["Yacute"] = 667;
-    t["Acircumflex"] = 667;
-    t["aacute"] = 556;
-    t["Ucircumflex"] = 722;
-    t["yacute"] = 500;
-    t["scommaaccent"] = 500;
-    t["ecircumflex"] = 556;
-    t["Uring"] = 722;
-    t["Udieresis"] = 722;
-    t["aogonek"] = 556;
-    t["Uacute"] = 722;
-    t["uogonek"] = 556;
-    t["Edieresis"] = 667;
-    t["Dcroat"] = 722;
-    t["commaaccent"] = 250;
-    t["copyright"] = 737;
-    t["Emacron"] = 667;
-    t["ccaron"] = 500;
-    t["aring"] = 556;
-    t["Ncommaaccent"] = 722;
-    t["lacute"] = 222;
-    t["agrave"] = 556;
-    t["Tcommaaccent"] = 611;
-    t["Cacute"] = 722;
-    t["atilde"] = 556;
-    t["Edotaccent"] = 667;
-    t["scaron"] = 500;
-    t["scedilla"] = 500;
-    t["iacute"] = 278;
-    t["lozenge"] = 471;
-    t["Rcaron"] = 722;
-    t["Gcommaaccent"] = 778;
-    t["ucircumflex"] = 556;
-    t["acircumflex"] = 556;
-    t["Amacron"] = 667;
-    t["rcaron"] = 333;
-    t["ccedilla"] = 500;
-    t["Zdotaccent"] = 611;
-    t["Thorn"] = 667;
-    t["Omacron"] = 778;
-    t["Racute"] = 722;
-    t["Sacute"] = 667;
-    t["dcaron"] = 643;
-    t["Umacron"] = 722;
-    t["uring"] = 556;
-    t["threesuperior"] = 333;
-    t["Ograve"] = 778;
-    t["Agrave"] = 667;
-    t["Abreve"] = 667;
-    t["multiply"] = 584;
-    t["uacute"] = 556;
-    t["Tcaron"] = 611;
-    t["partialdiff"] = 476;
-    t["ydieresis"] = 500;
-    t["Nacute"] = 722;
-    t["icircumflex"] = 278;
-    t["Ecircumflex"] = 667;
-    t["adieresis"] = 556;
-    t["edieresis"] = 556;
-    t["cacute"] = 500;
-    t["nacute"] = 556;
-    t["umacron"] = 556;
-    t["Ncaron"] = 722;
-    t["Iacute"] = 278;
-    t["plusminus"] = 584;
-    t["brokenbar"] = 260;
-    t["registered"] = 737;
-    t["Gbreve"] = 778;
-    t["Idotaccent"] = 278;
-    t["summation"] = 600;
-    t["Egrave"] = 667;
-    t["racute"] = 333;
-    t["omacron"] = 556;
-    t["Zacute"] = 611;
-    t["Zcaron"] = 611;
-    t["greaterequal"] = 549;
-    t["Eth"] = 722;
-    t["Ccedilla"] = 722;
-    t["lcommaaccent"] = 222;
-    t["tcaron"] = 317;
-    t["eogonek"] = 556;
-    t["Uogonek"] = 722;
-    t["Aacute"] = 667;
-    t["Adieresis"] = 667;
-    t["egrave"] = 556;
-    t["zacute"] = 500;
-    t["iogonek"] = 222;
-    t["Oacute"] = 778;
-    t["oacute"] = 556;
-    t["amacron"] = 556;
-    t["sacute"] = 500;
-    t["idieresis"] = 278;
-    t["Ocircumflex"] = 778;
-    t["Ugrave"] = 722;
-    t["Delta"] = 612;
-    t["thorn"] = 556;
-    t["twosuperior"] = 333;
-    t["Odieresis"] = 778;
-    t["mu"] = 556;
-    t["igrave"] = 278;
-    t["ohungarumlaut"] = 556;
-    t["Eogonek"] = 667;
-    t["dcroat"] = 556;
-    t["threequarters"] = 834;
-    t["Scedilla"] = 667;
-    t["lcaron"] = 299;
-    t["Kcommaaccent"] = 667;
-    t["Lacute"] = 556;
-    t["trademark"] = 1000;
-    t["edotaccent"] = 556;
-    t["Igrave"] = 278;
-    t["Imacron"] = 278;
-    t["Lcaron"] = 556;
-    t["onehalf"] = 834;
-    t["lessequal"] = 549;
-    t["ocircumflex"] = 556;
-    t["ntilde"] = 556;
-    t["Uhungarumlaut"] = 722;
-    t["Eacute"] = 667;
-    t["emacron"] = 556;
-    t["gbreve"] = 556;
-    t["onequarter"] = 834;
-    t["Scaron"] = 667;
-    t["Scommaaccent"] = 667;
-    t["Ohungarumlaut"] = 778;
-    t["degree"] = 400;
-    t["ograve"] = 556;
-    t["Ccaron"] = 722;
-    t["ugrave"] = 556;
-    t["radical"] = 453;
-    t["Dcaron"] = 722;
-    t["rcommaaccent"] = 333;
-    t["Ntilde"] = 722;
-    t["otilde"] = 556;
-    t["Rcommaaccent"] = 722;
-    t["Lcommaaccent"] = 556;
-    t["Atilde"] = 667;
-    t["Aogonek"] = 667;
-    t["Aring"] = 667;
-    t["Otilde"] = 778;
-    t["zdotaccent"] = 500;
-    t["Ecaron"] = 667;
-    t["Iogonek"] = 278;
-    t["kcommaaccent"] = 500;
-    t["minus"] = 584;
-    t["Icircumflex"] = 278;
-    t["ncaron"] = 556;
-    t["tcommaaccent"] = 278;
-    t["logicalnot"] = 584;
-    t["odieresis"] = 556;
-    t["udieresis"] = 556;
-    t["notequal"] = 549;
-    t["gcommaaccent"] = 556;
-    t["eth"] = 556;
-    t["zcaron"] = 500;
-    t["ncommaaccent"] = 556;
-    t["onesuperior"] = 333;
-    t["imacron"] = 278;
-    t["Euro"] = 556;
+    t.space = 278;
+    t.exclam = 278;
+    t.quotedbl = 355;
+    t.numbersign = 556;
+    t.dollar = 556;
+    t.percent = 889;
+    t.ampersand = 667;
+    t.quoteright = 222;
+    t.parenleft = 333;
+    t.parenright = 333;
+    t.asterisk = 389;
+    t.plus = 584;
+    t.comma = 278;
+    t.hyphen = 333;
+    t.period = 278;
+    t.slash = 278;
+    t.zero = 556;
+    t.one = 556;
+    t.two = 556;
+    t.three = 556;
+    t.four = 556;
+    t.five = 556;
+    t.six = 556;
+    t.seven = 556;
+    t.eight = 556;
+    t.nine = 556;
+    t.colon = 278;
+    t.semicolon = 278;
+    t.less = 584;
+    t.equal = 584;
+    t.greater = 584;
+    t.question = 556;
+    t.at = 1015;
+    t.A = 667;
+    t.B = 667;
+    t.C = 722;
+    t.D = 722;
+    t.E = 667;
+    t.F = 611;
+    t.G = 778;
+    t.H = 722;
+    t.I = 278;
+    t.J = 500;
+    t.K = 667;
+    t.L = 556;
+    t.M = 833;
+    t.N = 722;
+    t.O = 778;
+    t.P = 667;
+    t.Q = 778;
+    t.R = 722;
+    t.S = 667;
+    t.T = 611;
+    t.U = 722;
+    t.V = 667;
+    t.W = 944;
+    t.X = 667;
+    t.Y = 667;
+    t.Z = 611;
+    t.bracketleft = 278;
+    t.backslash = 278;
+    t.bracketright = 278;
+    t.asciicircum = 469;
+    t.underscore = 556;
+    t.quoteleft = 222;
+    t.a = 556;
+    t.b = 556;
+    t.c = 500;
+    t.d = 556;
+    t.e = 556;
+    t.f = 278;
+    t.g = 556;
+    t.h = 556;
+    t.i = 222;
+    t.j = 222;
+    t.k = 500;
+    t.l = 222;
+    t.m = 833;
+    t.n = 556;
+    t.o = 556;
+    t.p = 556;
+    t.q = 556;
+    t.r = 333;
+    t.s = 500;
+    t.t = 278;
+    t.u = 556;
+    t.v = 500;
+    t.w = 722;
+    t.x = 500;
+    t.y = 500;
+    t.z = 500;
+    t.braceleft = 334;
+    t.bar = 260;
+    t.braceright = 334;
+    t.asciitilde = 584;
+    t.exclamdown = 333;
+    t.cent = 556;
+    t.sterling = 556;
+    t.fraction = 167;
+    t.yen = 556;
+    t.florin = 556;
+    t.section = 556;
+    t.currency = 556;
+    t.quotesingle = 191;
+    t.quotedblleft = 333;
+    t.guillemotleft = 556;
+    t.guilsinglleft = 333;
+    t.guilsinglright = 333;
+    t.fi = 500;
+    t.fl = 500;
+    t.endash = 556;
+    t.dagger = 556;
+    t.daggerdbl = 556;
+    t.periodcentered = 278;
+    t.paragraph = 537;
+    t.bullet = 350;
+    t.quotesinglbase = 222;
+    t.quotedblbase = 333;
+    t.quotedblright = 333;
+    t.guillemotright = 556;
+    t.ellipsis = 1000;
+    t.perthousand = 1000;
+    t.questiondown = 611;
+    t.grave = 333;
+    t.acute = 333;
+    t.circumflex = 333;
+    t.tilde = 333;
+    t.macron = 333;
+    t.breve = 333;
+    t.dotaccent = 333;
+    t.dieresis = 333;
+    t.ring = 333;
+    t.cedilla = 333;
+    t.hungarumlaut = 333;
+    t.ogonek = 333;
+    t.caron = 333;
+    t.emdash = 1000;
+    t.AE = 1000;
+    t.ordfeminine = 370;
+    t.Lslash = 556;
+    t.Oslash = 778;
+    t.OE = 1000;
+    t.ordmasculine = 365;
+    t.ae = 889;
+    t.dotlessi = 278;
+    t.lslash = 222;
+    t.oslash = 611;
+    t.oe = 944;
+    t.germandbls = 611;
+    t.Idieresis = 278;
+    t.eacute = 556;
+    t.abreve = 556;
+    t.uhungarumlaut = 556;
+    t.ecaron = 556;
+    t.Ydieresis = 667;
+    t.divide = 584;
+    t.Yacute = 667;
+    t.Acircumflex = 667;
+    t.aacute = 556;
+    t.Ucircumflex = 722;
+    t.yacute = 500;
+    t.scommaaccent = 500;
+    t.ecircumflex = 556;
+    t.Uring = 722;
+    t.Udieresis = 722;
+    t.aogonek = 556;
+    t.Uacute = 722;
+    t.uogonek = 556;
+    t.Edieresis = 667;
+    t.Dcroat = 722;
+    t.commaaccent = 250;
+    t.copyright = 737;
+    t.Emacron = 667;
+    t.ccaron = 500;
+    t.aring = 556;
+    t.Ncommaaccent = 722;
+    t.lacute = 222;
+    t.agrave = 556;
+    t.Tcommaaccent = 611;
+    t.Cacute = 722;
+    t.atilde = 556;
+    t.Edotaccent = 667;
+    t.scaron = 500;
+    t.scedilla = 500;
+    t.iacute = 278;
+    t.lozenge = 471;
+    t.Rcaron = 722;
+    t.Gcommaaccent = 778;
+    t.ucircumflex = 556;
+    t.acircumflex = 556;
+    t.Amacron = 667;
+    t.rcaron = 333;
+    t.ccedilla = 500;
+    t.Zdotaccent = 611;
+    t.Thorn = 667;
+    t.Omacron = 778;
+    t.Racute = 722;
+    t.Sacute = 667;
+    t.dcaron = 643;
+    t.Umacron = 722;
+    t.uring = 556;
+    t.threesuperior = 333;
+    t.Ograve = 778;
+    t.Agrave = 667;
+    t.Abreve = 667;
+    t.multiply = 584;
+    t.uacute = 556;
+    t.Tcaron = 611;
+    t.partialdiff = 476;
+    t.ydieresis = 500;
+    t.Nacute = 722;
+    t.icircumflex = 278;
+    t.Ecircumflex = 667;
+    t.adieresis = 556;
+    t.edieresis = 556;
+    t.cacute = 500;
+    t.nacute = 556;
+    t.umacron = 556;
+    t.Ncaron = 722;
+    t.Iacute = 278;
+    t.plusminus = 584;
+    t.brokenbar = 260;
+    t.registered = 737;
+    t.Gbreve = 778;
+    t.Idotaccent = 278;
+    t.summation = 600;
+    t.Egrave = 667;
+    t.racute = 333;
+    t.omacron = 556;
+    t.Zacute = 611;
+    t.Zcaron = 611;
+    t.greaterequal = 549;
+    t.Eth = 722;
+    t.Ccedilla = 722;
+    t.lcommaaccent = 222;
+    t.tcaron = 317;
+    t.eogonek = 556;
+    t.Uogonek = 722;
+    t.Aacute = 667;
+    t.Adieresis = 667;
+    t.egrave = 556;
+    t.zacute = 500;
+    t.iogonek = 222;
+    t.Oacute = 778;
+    t.oacute = 556;
+    t.amacron = 556;
+    t.sacute = 500;
+    t.idieresis = 278;
+    t.Ocircumflex = 778;
+    t.Ugrave = 722;
+    t.Delta = 612;
+    t.thorn = 556;
+    t.twosuperior = 333;
+    t.Odieresis = 778;
+    t.mu = 556;
+    t.igrave = 278;
+    t.ohungarumlaut = 556;
+    t.Eogonek = 667;
+    t.dcroat = 556;
+    t.threequarters = 834;
+    t.Scedilla = 667;
+    t.lcaron = 299;
+    t.Kcommaaccent = 667;
+    t.Lacute = 556;
+    t.trademark = 1000;
+    t.edotaccent = 556;
+    t.Igrave = 278;
+    t.Imacron = 278;
+    t.Lcaron = 556;
+    t.onehalf = 834;
+    t.lessequal = 549;
+    t.ocircumflex = 556;
+    t.ntilde = 556;
+    t.Uhungarumlaut = 722;
+    t.Eacute = 667;
+    t.emacron = 556;
+    t.gbreve = 556;
+    t.onequarter = 834;
+    t.Scaron = 667;
+    t.Scommaaccent = 667;
+    t.Ohungarumlaut = 778;
+    t.degree = 400;
+    t.ograve = 556;
+    t.Ccaron = 722;
+    t.ugrave = 556;
+    t.radical = 453;
+    t.Dcaron = 722;
+    t.rcommaaccent = 333;
+    t.Ntilde = 722;
+    t.otilde = 556;
+    t.Rcommaaccent = 722;
+    t.Lcommaaccent = 556;
+    t.Atilde = 667;
+    t.Aogonek = 667;
+    t.Aring = 667;
+    t.Otilde = 778;
+    t.zdotaccent = 500;
+    t.Ecaron = 667;
+    t.Iogonek = 278;
+    t.kcommaaccent = 500;
+    t.minus = 584;
+    t.Icircumflex = 278;
+    t.ncaron = 556;
+    t.tcommaaccent = 278;
+    t.logicalnot = 584;
+    t.odieresis = 556;
+    t.udieresis = 556;
+    t.notequal = 549;
+    t.gcommaaccent = 556;
+    t.eth = 556;
+    t.zcaron = 500;
+    t.ncommaaccent = 556;
+    t.onesuperior = 333;
+    t.imacron = 278;
+    t.Euro = 556;
   });
-  t["Symbol"] = (0, _core_utils.getLookupTableFactory)(function (t) {
-    t["space"] = 250;
-    t["exclam"] = 333;
-    t["universal"] = 713;
-    t["numbersign"] = 500;
-    t["existential"] = 549;
-    t["percent"] = 833;
-    t["ampersand"] = 778;
-    t["suchthat"] = 439;
-    t["parenleft"] = 333;
-    t["parenright"] = 333;
-    t["asteriskmath"] = 500;
-    t["plus"] = 549;
-    t["comma"] = 250;
-    t["minus"] = 549;
-    t["period"] = 250;
-    t["slash"] = 278;
-    t["zero"] = 500;
-    t["one"] = 500;
-    t["two"] = 500;
-    t["three"] = 500;
-    t["four"] = 500;
-    t["five"] = 500;
-    t["six"] = 500;
-    t["seven"] = 500;
-    t["eight"] = 500;
-    t["nine"] = 500;
-    t["colon"] = 278;
-    t["semicolon"] = 278;
-    t["less"] = 549;
-    t["equal"] = 549;
-    t["greater"] = 549;
-    t["question"] = 444;
-    t["congruent"] = 549;
-    t["Alpha"] = 722;
-    t["Beta"] = 667;
-    t["Chi"] = 722;
-    t["Delta"] = 612;
-    t["Epsilon"] = 611;
-    t["Phi"] = 763;
-    t["Gamma"] = 603;
-    t["Eta"] = 722;
-    t["Iota"] = 333;
-    t["theta1"] = 631;
-    t["Kappa"] = 722;
-    t["Lambda"] = 686;
-    t["Mu"] = 889;
-    t["Nu"] = 722;
-    t["Omicron"] = 722;
-    t["Pi"] = 768;
-    t["Theta"] = 741;
-    t["Rho"] = 556;
-    t["Sigma"] = 592;
-    t["Tau"] = 611;
-    t["Upsilon"] = 690;
-    t["sigma1"] = 439;
-    t["Omega"] = 768;
-    t["Xi"] = 645;
-    t["Psi"] = 795;
-    t["Zeta"] = 611;
-    t["bracketleft"] = 333;
-    t["therefore"] = 863;
-    t["bracketright"] = 333;
-    t["perpendicular"] = 658;
-    t["underscore"] = 500;
-    t["radicalex"] = 500;
-    t["alpha"] = 631;
-    t["beta"] = 549;
-    t["chi"] = 549;
-    t["delta"] = 494;
-    t["epsilon"] = 439;
-    t["phi"] = 521;
-    t["gamma"] = 411;
-    t["eta"] = 603;
-    t["iota"] = 329;
-    t["phi1"] = 603;
-    t["kappa"] = 549;
-    t["lambda"] = 549;
-    t["mu"] = 576;
-    t["nu"] = 521;
-    t["omicron"] = 549;
-    t["pi"] = 549;
-    t["theta"] = 521;
-    t["rho"] = 549;
-    t["sigma"] = 603;
-    t["tau"] = 439;
-    t["upsilon"] = 576;
-    t["omega1"] = 713;
-    t["omega"] = 686;
-    t["xi"] = 493;
-    t["psi"] = 686;
-    t["zeta"] = 494;
-    t["braceleft"] = 480;
-    t["bar"] = 200;
-    t["braceright"] = 480;
-    t["similar"] = 549;
-    t["Euro"] = 750;
-    t["Upsilon1"] = 620;
-    t["minute"] = 247;
-    t["lessequal"] = 549;
-    t["fraction"] = 167;
-    t["infinity"] = 713;
-    t["florin"] = 500;
-    t["club"] = 753;
-    t["diamond"] = 753;
-    t["heart"] = 753;
-    t["spade"] = 753;
-    t["arrowboth"] = 1042;
-    t["arrowleft"] = 987;
-    t["arrowup"] = 603;
-    t["arrowright"] = 987;
-    t["arrowdown"] = 603;
-    t["degree"] = 400;
-    t["plusminus"] = 549;
-    t["second"] = 411;
-    t["greaterequal"] = 549;
-    t["multiply"] = 549;
-    t["proportional"] = 713;
-    t["partialdiff"] = 494;
-    t["bullet"] = 460;
-    t["divide"] = 549;
-    t["notequal"] = 549;
-    t["equivalence"] = 549;
-    t["approxequal"] = 549;
-    t["ellipsis"] = 1000;
-    t["arrowvertex"] = 603;
-    t["arrowhorizex"] = 1000;
-    t["carriagereturn"] = 658;
-    t["aleph"] = 823;
-    t["Ifraktur"] = 686;
-    t["Rfraktur"] = 795;
-    t["weierstrass"] = 987;
-    t["circlemultiply"] = 768;
-    t["circleplus"] = 768;
-    t["emptyset"] = 823;
-    t["intersection"] = 768;
-    t["union"] = 768;
-    t["propersuperset"] = 713;
-    t["reflexsuperset"] = 713;
-    t["notsubset"] = 713;
-    t["propersubset"] = 713;
-    t["reflexsubset"] = 713;
-    t["element"] = 713;
-    t["notelement"] = 713;
-    t["angle"] = 768;
-    t["gradient"] = 713;
-    t["registerserif"] = 790;
-    t["copyrightserif"] = 790;
-    t["trademarkserif"] = 890;
-    t["product"] = 823;
-    t["radical"] = 549;
-    t["dotmath"] = 250;
-    t["logicalnot"] = 713;
-    t["logicaland"] = 603;
-    t["logicalor"] = 603;
-    t["arrowdblboth"] = 1042;
-    t["arrowdblleft"] = 987;
-    t["arrowdblup"] = 603;
-    t["arrowdblright"] = 987;
-    t["arrowdbldown"] = 603;
-    t["lozenge"] = 494;
-    t["angleleft"] = 329;
-    t["registersans"] = 790;
-    t["copyrightsans"] = 790;
-    t["trademarksans"] = 786;
-    t["summation"] = 713;
-    t["parenlefttp"] = 384;
-    t["parenleftex"] = 384;
-    t["parenleftbt"] = 384;
-    t["bracketlefttp"] = 384;
-    t["bracketleftex"] = 384;
-    t["bracketleftbt"] = 384;
-    t["bracelefttp"] = 494;
-    t["braceleftmid"] = 494;
-    t["braceleftbt"] = 494;
-    t["braceex"] = 494;
-    t["angleright"] = 329;
-    t["integral"] = 274;
-    t["integraltp"] = 686;
-    t["integralex"] = 686;
-    t["integralbt"] = 686;
-    t["parenrighttp"] = 384;
-    t["parenrightex"] = 384;
-    t["parenrightbt"] = 384;
-    t["bracketrighttp"] = 384;
-    t["bracketrightex"] = 384;
-    t["bracketrightbt"] = 384;
-    t["bracerighttp"] = 494;
-    t["bracerightmid"] = 494;
-    t["bracerightbt"] = 494;
-    t["apple"] = 790;
+  t.Symbol = (0, _core_utils.getLookupTableFactory)(function (t) {
+    t.space = 250;
+    t.exclam = 333;
+    t.universal = 713;
+    t.numbersign = 500;
+    t.existential = 549;
+    t.percent = 833;
+    t.ampersand = 778;
+    t.suchthat = 439;
+    t.parenleft = 333;
+    t.parenright = 333;
+    t.asteriskmath = 500;
+    t.plus = 549;
+    t.comma = 250;
+    t.minus = 549;
+    t.period = 250;
+    t.slash = 278;
+    t.zero = 500;
+    t.one = 500;
+    t.two = 500;
+    t.three = 500;
+    t.four = 500;
+    t.five = 500;
+    t.six = 500;
+    t.seven = 500;
+    t.eight = 500;
+    t.nine = 500;
+    t.colon = 278;
+    t.semicolon = 278;
+    t.less = 549;
+    t.equal = 549;
+    t.greater = 549;
+    t.question = 444;
+    t.congruent = 549;
+    t.Alpha = 722;
+    t.Beta = 667;
+    t.Chi = 722;
+    t.Delta = 612;
+    t.Epsilon = 611;
+    t.Phi = 763;
+    t.Gamma = 603;
+    t.Eta = 722;
+    t.Iota = 333;
+    t.theta1 = 631;
+    t.Kappa = 722;
+    t.Lambda = 686;
+    t.Mu = 889;
+    t.Nu = 722;
+    t.Omicron = 722;
+    t.Pi = 768;
+    t.Theta = 741;
+    t.Rho = 556;
+    t.Sigma = 592;
+    t.Tau = 611;
+    t.Upsilon = 690;
+    t.sigma1 = 439;
+    t.Omega = 768;
+    t.Xi = 645;
+    t.Psi = 795;
+    t.Zeta = 611;
+    t.bracketleft = 333;
+    t.therefore = 863;
+    t.bracketright = 333;
+    t.perpendicular = 658;
+    t.underscore = 500;
+    t.radicalex = 500;
+    t.alpha = 631;
+    t.beta = 549;
+    t.chi = 549;
+    t.delta = 494;
+    t.epsilon = 439;
+    t.phi = 521;
+    t.gamma = 411;
+    t.eta = 603;
+    t.iota = 329;
+    t.phi1 = 603;
+    t.kappa = 549;
+    t.lambda = 549;
+    t.mu = 576;
+    t.nu = 521;
+    t.omicron = 549;
+    t.pi = 549;
+    t.theta = 521;
+    t.rho = 549;
+    t.sigma = 603;
+    t.tau = 439;
+    t.upsilon = 576;
+    t.omega1 = 713;
+    t.omega = 686;
+    t.xi = 493;
+    t.psi = 686;
+    t.zeta = 494;
+    t.braceleft = 480;
+    t.bar = 200;
+    t.braceright = 480;
+    t.similar = 549;
+    t.Euro = 750;
+    t.Upsilon1 = 620;
+    t.minute = 247;
+    t.lessequal = 549;
+    t.fraction = 167;
+    t.infinity = 713;
+    t.florin = 500;
+    t.club = 753;
+    t.diamond = 753;
+    t.heart = 753;
+    t.spade = 753;
+    t.arrowboth = 1042;
+    t.arrowleft = 987;
+    t.arrowup = 603;
+    t.arrowright = 987;
+    t.arrowdown = 603;
+    t.degree = 400;
+    t.plusminus = 549;
+    t.second = 411;
+    t.greaterequal = 549;
+    t.multiply = 549;
+    t.proportional = 713;
+    t.partialdiff = 494;
+    t.bullet = 460;
+    t.divide = 549;
+    t.notequal = 549;
+    t.equivalence = 549;
+    t.approxequal = 549;
+    t.ellipsis = 1000;
+    t.arrowvertex = 603;
+    t.arrowhorizex = 1000;
+    t.carriagereturn = 658;
+    t.aleph = 823;
+    t.Ifraktur = 686;
+    t.Rfraktur = 795;
+    t.weierstrass = 987;
+    t.circlemultiply = 768;
+    t.circleplus = 768;
+    t.emptyset = 823;
+    t.intersection = 768;
+    t.union = 768;
+    t.propersuperset = 713;
+    t.reflexsuperset = 713;
+    t.notsubset = 713;
+    t.propersubset = 713;
+    t.reflexsubset = 713;
+    t.element = 713;
+    t.notelement = 713;
+    t.angle = 768;
+    t.gradient = 713;
+    t.registerserif = 790;
+    t.copyrightserif = 790;
+    t.trademarkserif = 890;
+    t.product = 823;
+    t.radical = 549;
+    t.dotmath = 250;
+    t.logicalnot = 713;
+    t.logicaland = 603;
+    t.logicalor = 603;
+    t.arrowdblboth = 1042;
+    t.arrowdblleft = 987;
+    t.arrowdblup = 603;
+    t.arrowdblright = 987;
+    t.arrowdbldown = 603;
+    t.lozenge = 494;
+    t.angleleft = 329;
+    t.registersans = 790;
+    t.copyrightsans = 790;
+    t.trademarksans = 786;
+    t.summation = 713;
+    t.parenlefttp = 384;
+    t.parenleftex = 384;
+    t.parenleftbt = 384;
+    t.bracketlefttp = 384;
+    t.bracketleftex = 384;
+    t.bracketleftbt = 384;
+    t.bracelefttp = 494;
+    t.braceleftmid = 494;
+    t.braceleftbt = 494;
+    t.braceex = 494;
+    t.angleright = 329;
+    t.integral = 274;
+    t.integraltp = 686;
+    t.integralex = 686;
+    t.integralbt = 686;
+    t.parenrighttp = 384;
+    t.parenrightex = 384;
+    t.parenrightbt = 384;
+    t.bracketrighttp = 384;
+    t.bracketrightex = 384;
+    t.bracketrightbt = 384;
+    t.bracerighttp = 494;
+    t.bracerightmid = 494;
+    t.bracerightbt = 494;
+    t.apple = 790;
   });
   t["Times-Roman"] = (0, _core_utils.getLookupTableFactory)(function (t) {
-    t["space"] = 250;
-    t["exclam"] = 333;
-    t["quotedbl"] = 408;
-    t["numbersign"] = 500;
-    t["dollar"] = 500;
-    t["percent"] = 833;
-    t["ampersand"] = 778;
-    t["quoteright"] = 333;
-    t["parenleft"] = 333;
-    t["parenright"] = 333;
-    t["asterisk"] = 500;
-    t["plus"] = 564;
-    t["comma"] = 250;
-    t["hyphen"] = 333;
-    t["period"] = 250;
-    t["slash"] = 278;
-    t["zero"] = 500;
-    t["one"] = 500;
-    t["two"] = 500;
-    t["three"] = 500;
-    t["four"] = 500;
-    t["five"] = 500;
-    t["six"] = 500;
-    t["seven"] = 500;
-    t["eight"] = 500;
-    t["nine"] = 500;
-    t["colon"] = 278;
-    t["semicolon"] = 278;
-    t["less"] = 564;
-    t["equal"] = 564;
-    t["greater"] = 564;
-    t["question"] = 444;
-    t["at"] = 921;
-    t["A"] = 722;
-    t["B"] = 667;
-    t["C"] = 667;
-    t["D"] = 722;
-    t["E"] = 611;
-    t["F"] = 556;
-    t["G"] = 722;
-    t["H"] = 722;
-    t["I"] = 333;
-    t["J"] = 389;
-    t["K"] = 722;
-    t["L"] = 611;
-    t["M"] = 889;
-    t["N"] = 722;
-    t["O"] = 722;
-    t["P"] = 556;
-    t["Q"] = 722;
-    t["R"] = 667;
-    t["S"] = 556;
-    t["T"] = 611;
-    t["U"] = 722;
-    t["V"] = 722;
-    t["W"] = 944;
-    t["X"] = 722;
-    t["Y"] = 722;
-    t["Z"] = 611;
-    t["bracketleft"] = 333;
-    t["backslash"] = 278;
-    t["bracketright"] = 333;
-    t["asciicircum"] = 469;
-    t["underscore"] = 500;
-    t["quoteleft"] = 333;
-    t["a"] = 444;
-    t["b"] = 500;
-    t["c"] = 444;
-    t["d"] = 500;
-    t["e"] = 444;
-    t["f"] = 333;
-    t["g"] = 500;
-    t["h"] = 500;
-    t["i"] = 278;
-    t["j"] = 278;
-    t["k"] = 500;
-    t["l"] = 278;
-    t["m"] = 778;
-    t["n"] = 500;
-    t["o"] = 500;
-    t["p"] = 500;
-    t["q"] = 500;
-    t["r"] = 333;
-    t["s"] = 389;
-    t["t"] = 278;
-    t["u"] = 500;
-    t["v"] = 500;
-    t["w"] = 722;
-    t["x"] = 500;
-    t["y"] = 500;
-    t["z"] = 444;
-    t["braceleft"] = 480;
-    t["bar"] = 200;
-    t["braceright"] = 480;
-    t["asciitilde"] = 541;
-    t["exclamdown"] = 333;
-    t["cent"] = 500;
-    t["sterling"] = 500;
-    t["fraction"] = 167;
-    t["yen"] = 500;
-    t["florin"] = 500;
-    t["section"] = 500;
-    t["currency"] = 500;
-    t["quotesingle"] = 180;
-    t["quotedblleft"] = 444;
-    t["guillemotleft"] = 500;
-    t["guilsinglleft"] = 333;
-    t["guilsinglright"] = 333;
-    t["fi"] = 556;
-    t["fl"] = 556;
-    t["endash"] = 500;
-    t["dagger"] = 500;
-    t["daggerdbl"] = 500;
-    t["periodcentered"] = 250;
-    t["paragraph"] = 453;
-    t["bullet"] = 350;
-    t["quotesinglbase"] = 333;
-    t["quotedblbase"] = 444;
-    t["quotedblright"] = 444;
-    t["guillemotright"] = 500;
-    t["ellipsis"] = 1000;
-    t["perthousand"] = 1000;
-    t["questiondown"] = 444;
-    t["grave"] = 333;
-    t["acute"] = 333;
-    t["circumflex"] = 333;
-    t["tilde"] = 333;
-    t["macron"] = 333;
-    t["breve"] = 333;
-    t["dotaccent"] = 333;
-    t["dieresis"] = 333;
-    t["ring"] = 333;
-    t["cedilla"] = 333;
-    t["hungarumlaut"] = 333;
-    t["ogonek"] = 333;
-    t["caron"] = 333;
-    t["emdash"] = 1000;
-    t["AE"] = 889;
-    t["ordfeminine"] = 276;
-    t["Lslash"] = 611;
-    t["Oslash"] = 722;
-    t["OE"] = 889;
-    t["ordmasculine"] = 310;
-    t["ae"] = 667;
-    t["dotlessi"] = 278;
-    t["lslash"] = 278;
-    t["oslash"] = 500;
-    t["oe"] = 722;
-    t["germandbls"] = 500;
-    t["Idieresis"] = 333;
-    t["eacute"] = 444;
-    t["abreve"] = 444;
-    t["uhungarumlaut"] = 500;
-    t["ecaron"] = 444;
-    t["Ydieresis"] = 722;
-    t["divide"] = 564;
-    t["Yacute"] = 722;
-    t["Acircumflex"] = 722;
-    t["aacute"] = 444;
-    t["Ucircumflex"] = 722;
-    t["yacute"] = 500;
-    t["scommaaccent"] = 389;
-    t["ecircumflex"] = 444;
-    t["Uring"] = 722;
-    t["Udieresis"] = 722;
-    t["aogonek"] = 444;
-    t["Uacute"] = 722;
-    t["uogonek"] = 500;
-    t["Edieresis"] = 611;
-    t["Dcroat"] = 722;
-    t["commaaccent"] = 250;
-    t["copyright"] = 760;
-    t["Emacron"] = 611;
-    t["ccaron"] = 444;
-    t["aring"] = 444;
-    t["Ncommaaccent"] = 722;
-    t["lacute"] = 278;
-    t["agrave"] = 444;
-    t["Tcommaaccent"] = 611;
-    t["Cacute"] = 667;
-    t["atilde"] = 444;
-    t["Edotaccent"] = 611;
-    t["scaron"] = 389;
-    t["scedilla"] = 389;
-    t["iacute"] = 278;
-    t["lozenge"] = 471;
-    t["Rcaron"] = 667;
-    t["Gcommaaccent"] = 722;
-    t["ucircumflex"] = 500;
-    t["acircumflex"] = 444;
-    t["Amacron"] = 722;
-    t["rcaron"] = 333;
-    t["ccedilla"] = 444;
-    t["Zdotaccent"] = 611;
-    t["Thorn"] = 556;
-    t["Omacron"] = 722;
-    t["Racute"] = 667;
-    t["Sacute"] = 556;
-    t["dcaron"] = 588;
-    t["Umacron"] = 722;
-    t["uring"] = 500;
-    t["threesuperior"] = 300;
-    t["Ograve"] = 722;
-    t["Agrave"] = 722;
-    t["Abreve"] = 722;
-    t["multiply"] = 564;
-    t["uacute"] = 500;
-    t["Tcaron"] = 611;
-    t["partialdiff"] = 476;
-    t["ydieresis"] = 500;
-    t["Nacute"] = 722;
-    t["icircumflex"] = 278;
-    t["Ecircumflex"] = 611;
-    t["adieresis"] = 444;
-    t["edieresis"] = 444;
-    t["cacute"] = 444;
-    t["nacute"] = 500;
-    t["umacron"] = 500;
-    t["Ncaron"] = 722;
-    t["Iacute"] = 333;
-    t["plusminus"] = 564;
-    t["brokenbar"] = 200;
-    t["registered"] = 760;
-    t["Gbreve"] = 722;
-    t["Idotaccent"] = 333;
-    t["summation"] = 600;
-    t["Egrave"] = 611;
-    t["racute"] = 333;
-    t["omacron"] = 500;
-    t["Zacute"] = 611;
-    t["Zcaron"] = 611;
-    t["greaterequal"] = 549;
-    t["Eth"] = 722;
-    t["Ccedilla"] = 667;
-    t["lcommaaccent"] = 278;
-    t["tcaron"] = 326;
-    t["eogonek"] = 444;
-    t["Uogonek"] = 722;
-    t["Aacute"] = 722;
-    t["Adieresis"] = 722;
-    t["egrave"] = 444;
-    t["zacute"] = 444;
-    t["iogonek"] = 278;
-    t["Oacute"] = 722;
-    t["oacute"] = 500;
-    t["amacron"] = 444;
-    t["sacute"] = 389;
-    t["idieresis"] = 278;
-    t["Ocircumflex"] = 722;
-    t["Ugrave"] = 722;
-    t["Delta"] = 612;
-    t["thorn"] = 500;
-    t["twosuperior"] = 300;
-    t["Odieresis"] = 722;
-    t["mu"] = 500;
-    t["igrave"] = 278;
-    t["ohungarumlaut"] = 500;
-    t["Eogonek"] = 611;
-    t["dcroat"] = 500;
-    t["threequarters"] = 750;
-    t["Scedilla"] = 556;
-    t["lcaron"] = 344;
-    t["Kcommaaccent"] = 722;
-    t["Lacute"] = 611;
-    t["trademark"] = 980;
-    t["edotaccent"] = 444;
-    t["Igrave"] = 333;
-    t["Imacron"] = 333;
-    t["Lcaron"] = 611;
-    t["onehalf"] = 750;
-    t["lessequal"] = 549;
-    t["ocircumflex"] = 500;
-    t["ntilde"] = 500;
-    t["Uhungarumlaut"] = 722;
-    t["Eacute"] = 611;
-    t["emacron"] = 444;
-    t["gbreve"] = 500;
-    t["onequarter"] = 750;
-    t["Scaron"] = 556;
-    t["Scommaaccent"] = 556;
-    t["Ohungarumlaut"] = 722;
-    t["degree"] = 400;
-    t["ograve"] = 500;
-    t["Ccaron"] = 667;
-    t["ugrave"] = 500;
-    t["radical"] = 453;
-    t["Dcaron"] = 722;
-    t["rcommaaccent"] = 333;
-    t["Ntilde"] = 722;
-    t["otilde"] = 500;
-    t["Rcommaaccent"] = 667;
-    t["Lcommaaccent"] = 611;
-    t["Atilde"] = 722;
-    t["Aogonek"] = 722;
-    t["Aring"] = 722;
-    t["Otilde"] = 722;
-    t["zdotaccent"] = 444;
-    t["Ecaron"] = 611;
-    t["Iogonek"] = 333;
-    t["kcommaaccent"] = 500;
-    t["minus"] = 564;
-    t["Icircumflex"] = 333;
-    t["ncaron"] = 500;
-    t["tcommaaccent"] = 278;
-    t["logicalnot"] = 564;
-    t["odieresis"] = 500;
-    t["udieresis"] = 500;
-    t["notequal"] = 549;
-    t["gcommaaccent"] = 500;
-    t["eth"] = 500;
-    t["zcaron"] = 444;
-    t["ncommaaccent"] = 500;
-    t["onesuperior"] = 300;
-    t["imacron"] = 278;
-    t["Euro"] = 500;
+    t.space = 250;
+    t.exclam = 333;
+    t.quotedbl = 408;
+    t.numbersign = 500;
+    t.dollar = 500;
+    t.percent = 833;
+    t.ampersand = 778;
+    t.quoteright = 333;
+    t.parenleft = 333;
+    t.parenright = 333;
+    t.asterisk = 500;
+    t.plus = 564;
+    t.comma = 250;
+    t.hyphen = 333;
+    t.period = 250;
+    t.slash = 278;
+    t.zero = 500;
+    t.one = 500;
+    t.two = 500;
+    t.three = 500;
+    t.four = 500;
+    t.five = 500;
+    t.six = 500;
+    t.seven = 500;
+    t.eight = 500;
+    t.nine = 500;
+    t.colon = 278;
+    t.semicolon = 278;
+    t.less = 564;
+    t.equal = 564;
+    t.greater = 564;
+    t.question = 444;
+    t.at = 921;
+    t.A = 722;
+    t.B = 667;
+    t.C = 667;
+    t.D = 722;
+    t.E = 611;
+    t.F = 556;
+    t.G = 722;
+    t.H = 722;
+    t.I = 333;
+    t.J = 389;
+    t.K = 722;
+    t.L = 611;
+    t.M = 889;
+    t.N = 722;
+    t.O = 722;
+    t.P = 556;
+    t.Q = 722;
+    t.R = 667;
+    t.S = 556;
+    t.T = 611;
+    t.U = 722;
+    t.V = 722;
+    t.W = 944;
+    t.X = 722;
+    t.Y = 722;
+    t.Z = 611;
+    t.bracketleft = 333;
+    t.backslash = 278;
+    t.bracketright = 333;
+    t.asciicircum = 469;
+    t.underscore = 500;
+    t.quoteleft = 333;
+    t.a = 444;
+    t.b = 500;
+    t.c = 444;
+    t.d = 500;
+    t.e = 444;
+    t.f = 333;
+    t.g = 500;
+    t.h = 500;
+    t.i = 278;
+    t.j = 278;
+    t.k = 500;
+    t.l = 278;
+    t.m = 778;
+    t.n = 500;
+    t.o = 500;
+    t.p = 500;
+    t.q = 500;
+    t.r = 333;
+    t.s = 389;
+    t.t = 278;
+    t.u = 500;
+    t.v = 500;
+    t.w = 722;
+    t.x = 500;
+    t.y = 500;
+    t.z = 444;
+    t.braceleft = 480;
+    t.bar = 200;
+    t.braceright = 480;
+    t.asciitilde = 541;
+    t.exclamdown = 333;
+    t.cent = 500;
+    t.sterling = 500;
+    t.fraction = 167;
+    t.yen = 500;
+    t.florin = 500;
+    t.section = 500;
+    t.currency = 500;
+    t.quotesingle = 180;
+    t.quotedblleft = 444;
+    t.guillemotleft = 500;
+    t.guilsinglleft = 333;
+    t.guilsinglright = 333;
+    t.fi = 556;
+    t.fl = 556;
+    t.endash = 500;
+    t.dagger = 500;
+    t.daggerdbl = 500;
+    t.periodcentered = 250;
+    t.paragraph = 453;
+    t.bullet = 350;
+    t.quotesinglbase = 333;
+    t.quotedblbase = 444;
+    t.quotedblright = 444;
+    t.guillemotright = 500;
+    t.ellipsis = 1000;
+    t.perthousand = 1000;
+    t.questiondown = 444;
+    t.grave = 333;
+    t.acute = 333;
+    t.circumflex = 333;
+    t.tilde = 333;
+    t.macron = 333;
+    t.breve = 333;
+    t.dotaccent = 333;
+    t.dieresis = 333;
+    t.ring = 333;
+    t.cedilla = 333;
+    t.hungarumlaut = 333;
+    t.ogonek = 333;
+    t.caron = 333;
+    t.emdash = 1000;
+    t.AE = 889;
+    t.ordfeminine = 276;
+    t.Lslash = 611;
+    t.Oslash = 722;
+    t.OE = 889;
+    t.ordmasculine = 310;
+    t.ae = 667;
+    t.dotlessi = 278;
+    t.lslash = 278;
+    t.oslash = 500;
+    t.oe = 722;
+    t.germandbls = 500;
+    t.Idieresis = 333;
+    t.eacute = 444;
+    t.abreve = 444;
+    t.uhungarumlaut = 500;
+    t.ecaron = 444;
+    t.Ydieresis = 722;
+    t.divide = 564;
+    t.Yacute = 722;
+    t.Acircumflex = 722;
+    t.aacute = 444;
+    t.Ucircumflex = 722;
+    t.yacute = 500;
+    t.scommaaccent = 389;
+    t.ecircumflex = 444;
+    t.Uring = 722;
+    t.Udieresis = 722;
+    t.aogonek = 444;
+    t.Uacute = 722;
+    t.uogonek = 500;
+    t.Edieresis = 611;
+    t.Dcroat = 722;
+    t.commaaccent = 250;
+    t.copyright = 760;
+    t.Emacron = 611;
+    t.ccaron = 444;
+    t.aring = 444;
+    t.Ncommaaccent = 722;
+    t.lacute = 278;
+    t.agrave = 444;
+    t.Tcommaaccent = 611;
+    t.Cacute = 667;
+    t.atilde = 444;
+    t.Edotaccent = 611;
+    t.scaron = 389;
+    t.scedilla = 389;
+    t.iacute = 278;
+    t.lozenge = 471;
+    t.Rcaron = 667;
+    t.Gcommaaccent = 722;
+    t.ucircumflex = 500;
+    t.acircumflex = 444;
+    t.Amacron = 722;
+    t.rcaron = 333;
+    t.ccedilla = 444;
+    t.Zdotaccent = 611;
+    t.Thorn = 556;
+    t.Omacron = 722;
+    t.Racute = 667;
+    t.Sacute = 556;
+    t.dcaron = 588;
+    t.Umacron = 722;
+    t.uring = 500;
+    t.threesuperior = 300;
+    t.Ograve = 722;
+    t.Agrave = 722;
+    t.Abreve = 722;
+    t.multiply = 564;
+    t.uacute = 500;
+    t.Tcaron = 611;
+    t.partialdiff = 476;
+    t.ydieresis = 500;
+    t.Nacute = 722;
+    t.icircumflex = 278;
+    t.Ecircumflex = 611;
+    t.adieresis = 444;
+    t.edieresis = 444;
+    t.cacute = 444;
+    t.nacute = 500;
+    t.umacron = 500;
+    t.Ncaron = 722;
+    t.Iacute = 333;
+    t.plusminus = 564;
+    t.brokenbar = 200;
+    t.registered = 760;
+    t.Gbreve = 722;
+    t.Idotaccent = 333;
+    t.summation = 600;
+    t.Egrave = 611;
+    t.racute = 333;
+    t.omacron = 500;
+    t.Zacute = 611;
+    t.Zcaron = 611;
+    t.greaterequal = 549;
+    t.Eth = 722;
+    t.Ccedilla = 667;
+    t.lcommaaccent = 278;
+    t.tcaron = 326;
+    t.eogonek = 444;
+    t.Uogonek = 722;
+    t.Aacute = 722;
+    t.Adieresis = 722;
+    t.egrave = 444;
+    t.zacute = 444;
+    t.iogonek = 278;
+    t.Oacute = 722;
+    t.oacute = 500;
+    t.amacron = 444;
+    t.sacute = 389;
+    t.idieresis = 278;
+    t.Ocircumflex = 722;
+    t.Ugrave = 722;
+    t.Delta = 612;
+    t.thorn = 500;
+    t.twosuperior = 300;
+    t.Odieresis = 722;
+    t.mu = 500;
+    t.igrave = 278;
+    t.ohungarumlaut = 500;
+    t.Eogonek = 611;
+    t.dcroat = 500;
+    t.threequarters = 750;
+    t.Scedilla = 556;
+    t.lcaron = 344;
+    t.Kcommaaccent = 722;
+    t.Lacute = 611;
+    t.trademark = 980;
+    t.edotaccent = 444;
+    t.Igrave = 333;
+    t.Imacron = 333;
+    t.Lcaron = 611;
+    t.onehalf = 750;
+    t.lessequal = 549;
+    t.ocircumflex = 500;
+    t.ntilde = 500;
+    t.Uhungarumlaut = 722;
+    t.Eacute = 611;
+    t.emacron = 444;
+    t.gbreve = 500;
+    t.onequarter = 750;
+    t.Scaron = 556;
+    t.Scommaaccent = 556;
+    t.Ohungarumlaut = 722;
+    t.degree = 400;
+    t.ograve = 500;
+    t.Ccaron = 667;
+    t.ugrave = 500;
+    t.radical = 453;
+    t.Dcaron = 722;
+    t.rcommaaccent = 333;
+    t.Ntilde = 722;
+    t.otilde = 500;
+    t.Rcommaaccent = 667;
+    t.Lcommaaccent = 611;
+    t.Atilde = 722;
+    t.Aogonek = 722;
+    t.Aring = 722;
+    t.Otilde = 722;
+    t.zdotaccent = 444;
+    t.Ecaron = 611;
+    t.Iogonek = 333;
+    t.kcommaaccent = 500;
+    t.minus = 564;
+    t.Icircumflex = 333;
+    t.ncaron = 500;
+    t.tcommaaccent = 278;
+    t.logicalnot = 564;
+    t.odieresis = 500;
+    t.udieresis = 500;
+    t.notequal = 549;
+    t.gcommaaccent = 500;
+    t.eth = 500;
+    t.zcaron = 444;
+    t.ncommaaccent = 500;
+    t.onesuperior = 300;
+    t.imacron = 278;
+    t.Euro = 500;
   });
   t["Times-Bold"] = (0, _core_utils.getLookupTableFactory)(function (t) {
-    t["space"] = 250;
-    t["exclam"] = 333;
-    t["quotedbl"] = 555;
-    t["numbersign"] = 500;
-    t["dollar"] = 500;
-    t["percent"] = 1000;
-    t["ampersand"] = 833;
-    t["quoteright"] = 333;
-    t["parenleft"] = 333;
-    t["parenright"] = 333;
-    t["asterisk"] = 500;
-    t["plus"] = 570;
-    t["comma"] = 250;
-    t["hyphen"] = 333;
-    t["period"] = 250;
-    t["slash"] = 278;
-    t["zero"] = 500;
-    t["one"] = 500;
-    t["two"] = 500;
-    t["three"] = 500;
-    t["four"] = 500;
-    t["five"] = 500;
-    t["six"] = 500;
-    t["seven"] = 500;
-    t["eight"] = 500;
-    t["nine"] = 500;
-    t["colon"] = 333;
-    t["semicolon"] = 333;
-    t["less"] = 570;
-    t["equal"] = 570;
-    t["greater"] = 570;
-    t["question"] = 500;
-    t["at"] = 930;
-    t["A"] = 722;
-    t["B"] = 667;
-    t["C"] = 722;
-    t["D"] = 722;
-    t["E"] = 667;
-    t["F"] = 611;
-    t["G"] = 778;
-    t["H"] = 778;
-    t["I"] = 389;
-    t["J"] = 500;
-    t["K"] = 778;
-    t["L"] = 667;
-    t["M"] = 944;
-    t["N"] = 722;
-    t["O"] = 778;
-    t["P"] = 611;
-    t["Q"] = 778;
-    t["R"] = 722;
-    t["S"] = 556;
-    t["T"] = 667;
-    t["U"] = 722;
-    t["V"] = 722;
-    t["W"] = 1000;
-    t["X"] = 722;
-    t["Y"] = 722;
-    t["Z"] = 667;
-    t["bracketleft"] = 333;
-    t["backslash"] = 278;
-    t["bracketright"] = 333;
-    t["asciicircum"] = 581;
-    t["underscore"] = 500;
-    t["quoteleft"] = 333;
-    t["a"] = 500;
-    t["b"] = 556;
-    t["c"] = 444;
-    t["d"] = 556;
-    t["e"] = 444;
-    t["f"] = 333;
-    t["g"] = 500;
-    t["h"] = 556;
-    t["i"] = 278;
-    t["j"] = 333;
-    t["k"] = 556;
-    t["l"] = 278;
-    t["m"] = 833;
-    t["n"] = 556;
-    t["o"] = 500;
-    t["p"] = 556;
-    t["q"] = 556;
-    t["r"] = 444;
-    t["s"] = 389;
-    t["t"] = 333;
-    t["u"] = 556;
-    t["v"] = 500;
-    t["w"] = 722;
-    t["x"] = 500;
-    t["y"] = 500;
-    t["z"] = 444;
-    t["braceleft"] = 394;
-    t["bar"] = 220;
-    t["braceright"] = 394;
-    t["asciitilde"] = 520;
-    t["exclamdown"] = 333;
-    t["cent"] = 500;
-    t["sterling"] = 500;
-    t["fraction"] = 167;
-    t["yen"] = 500;
-    t["florin"] = 500;
-    t["section"] = 500;
-    t["currency"] = 500;
-    t["quotesingle"] = 278;
-    t["quotedblleft"] = 500;
-    t["guillemotleft"] = 500;
-    t["guilsinglleft"] = 333;
-    t["guilsinglright"] = 333;
-    t["fi"] = 556;
-    t["fl"] = 556;
-    t["endash"] = 500;
-    t["dagger"] = 500;
-    t["daggerdbl"] = 500;
-    t["periodcentered"] = 250;
-    t["paragraph"] = 540;
-    t["bullet"] = 350;
-    t["quotesinglbase"] = 333;
-    t["quotedblbase"] = 500;
-    t["quotedblright"] = 500;
-    t["guillemotright"] = 500;
-    t["ellipsis"] = 1000;
-    t["perthousand"] = 1000;
-    t["questiondown"] = 500;
-    t["grave"] = 333;
-    t["acute"] = 333;
-    t["circumflex"] = 333;
-    t["tilde"] = 333;
-    t["macron"] = 333;
-    t["breve"] = 333;
-    t["dotaccent"] = 333;
-    t["dieresis"] = 333;
-    t["ring"] = 333;
-    t["cedilla"] = 333;
-    t["hungarumlaut"] = 333;
-    t["ogonek"] = 333;
-    t["caron"] = 333;
-    t["emdash"] = 1000;
-    t["AE"] = 1000;
-    t["ordfeminine"] = 300;
-    t["Lslash"] = 667;
-    t["Oslash"] = 778;
-    t["OE"] = 1000;
-    t["ordmasculine"] = 330;
-    t["ae"] = 722;
-    t["dotlessi"] = 278;
-    t["lslash"] = 278;
-    t["oslash"] = 500;
-    t["oe"] = 722;
-    t["germandbls"] = 556;
-    t["Idieresis"] = 389;
-    t["eacute"] = 444;
-    t["abreve"] = 500;
-    t["uhungarumlaut"] = 556;
-    t["ecaron"] = 444;
-    t["Ydieresis"] = 722;
-    t["divide"] = 570;
-    t["Yacute"] = 722;
-    t["Acircumflex"] = 722;
-    t["aacute"] = 500;
-    t["Ucircumflex"] = 722;
-    t["yacute"] = 500;
-    t["scommaaccent"] = 389;
-    t["ecircumflex"] = 444;
-    t["Uring"] = 722;
-    t["Udieresis"] = 722;
-    t["aogonek"] = 500;
-    t["Uacute"] = 722;
-    t["uogonek"] = 556;
-    t["Edieresis"] = 667;
-    t["Dcroat"] = 722;
-    t["commaaccent"] = 250;
-    t["copyright"] = 747;
-    t["Emacron"] = 667;
-    t["ccaron"] = 444;
-    t["aring"] = 500;
-    t["Ncommaaccent"] = 722;
-    t["lacute"] = 278;
-    t["agrave"] = 500;
-    t["Tcommaaccent"] = 667;
-    t["Cacute"] = 722;
-    t["atilde"] = 500;
-    t["Edotaccent"] = 667;
-    t["scaron"] = 389;
-    t["scedilla"] = 389;
-    t["iacute"] = 278;
-    t["lozenge"] = 494;
-    t["Rcaron"] = 722;
-    t["Gcommaaccent"] = 778;
-    t["ucircumflex"] = 556;
-    t["acircumflex"] = 500;
-    t["Amacron"] = 722;
-    t["rcaron"] = 444;
-    t["ccedilla"] = 444;
-    t["Zdotaccent"] = 667;
-    t["Thorn"] = 611;
-    t["Omacron"] = 778;
-    t["Racute"] = 722;
-    t["Sacute"] = 556;
-    t["dcaron"] = 672;
-    t["Umacron"] = 722;
-    t["uring"] = 556;
-    t["threesuperior"] = 300;
-    t["Ograve"] = 778;
-    t["Agrave"] = 722;
-    t["Abreve"] = 722;
-    t["multiply"] = 570;
-    t["uacute"] = 556;
-    t["Tcaron"] = 667;
-    t["partialdiff"] = 494;
-    t["ydieresis"] = 500;
-    t["Nacute"] = 722;
-    t["icircumflex"] = 278;
-    t["Ecircumflex"] = 667;
-    t["adieresis"] = 500;
-    t["edieresis"] = 444;
-    t["cacute"] = 444;
-    t["nacute"] = 556;
-    t["umacron"] = 556;
-    t["Ncaron"] = 722;
-    t["Iacute"] = 389;
-    t["plusminus"] = 570;
-    t["brokenbar"] = 220;
-    t["registered"] = 747;
-    t["Gbreve"] = 778;
-    t["Idotaccent"] = 389;
-    t["summation"] = 600;
-    t["Egrave"] = 667;
-    t["racute"] = 444;
-    t["omacron"] = 500;
-    t["Zacute"] = 667;
-    t["Zcaron"] = 667;
-    t["greaterequal"] = 549;
-    t["Eth"] = 722;
-    t["Ccedilla"] = 722;
-    t["lcommaaccent"] = 278;
-    t["tcaron"] = 416;
-    t["eogonek"] = 444;
-    t["Uogonek"] = 722;
-    t["Aacute"] = 722;
-    t["Adieresis"] = 722;
-    t["egrave"] = 444;
-    t["zacute"] = 444;
-    t["iogonek"] = 278;
-    t["Oacute"] = 778;
-    t["oacute"] = 500;
-    t["amacron"] = 500;
-    t["sacute"] = 389;
-    t["idieresis"] = 278;
-    t["Ocircumflex"] = 778;
-    t["Ugrave"] = 722;
-    t["Delta"] = 612;
-    t["thorn"] = 556;
-    t["twosuperior"] = 300;
-    t["Odieresis"] = 778;
-    t["mu"] = 556;
-    t["igrave"] = 278;
-    t["ohungarumlaut"] = 500;
-    t["Eogonek"] = 667;
-    t["dcroat"] = 556;
-    t["threequarters"] = 750;
-    t["Scedilla"] = 556;
-    t["lcaron"] = 394;
-    t["Kcommaaccent"] = 778;
-    t["Lacute"] = 667;
-    t["trademark"] = 1000;
-    t["edotaccent"] = 444;
-    t["Igrave"] = 389;
-    t["Imacron"] = 389;
-    t["Lcaron"] = 667;
-    t["onehalf"] = 750;
-    t["lessequal"] = 549;
-    t["ocircumflex"] = 500;
-    t["ntilde"] = 556;
-    t["Uhungarumlaut"] = 722;
-    t["Eacute"] = 667;
-    t["emacron"] = 444;
-    t["gbreve"] = 500;
-    t["onequarter"] = 750;
-    t["Scaron"] = 556;
-    t["Scommaaccent"] = 556;
-    t["Ohungarumlaut"] = 778;
-    t["degree"] = 400;
-    t["ograve"] = 500;
-    t["Ccaron"] = 722;
-    t["ugrave"] = 556;
-    t["radical"] = 549;
-    t["Dcaron"] = 722;
-    t["rcommaaccent"] = 444;
-    t["Ntilde"] = 722;
-    t["otilde"] = 500;
-    t["Rcommaaccent"] = 722;
-    t["Lcommaaccent"] = 667;
-    t["Atilde"] = 722;
-    t["Aogonek"] = 722;
-    t["Aring"] = 722;
-    t["Otilde"] = 778;
-    t["zdotaccent"] = 444;
-    t["Ecaron"] = 667;
-    t["Iogonek"] = 389;
-    t["kcommaaccent"] = 556;
-    t["minus"] = 570;
-    t["Icircumflex"] = 389;
-    t["ncaron"] = 556;
-    t["tcommaaccent"] = 333;
-    t["logicalnot"] = 570;
-    t["odieresis"] = 500;
-    t["udieresis"] = 556;
-    t["notequal"] = 549;
-    t["gcommaaccent"] = 500;
-    t["eth"] = 500;
-    t["zcaron"] = 444;
-    t["ncommaaccent"] = 556;
-    t["onesuperior"] = 300;
-    t["imacron"] = 278;
-    t["Euro"] = 500;
+    t.space = 250;
+    t.exclam = 333;
+    t.quotedbl = 555;
+    t.numbersign = 500;
+    t.dollar = 500;
+    t.percent = 1000;
+    t.ampersand = 833;
+    t.quoteright = 333;
+    t.parenleft = 333;
+    t.parenright = 333;
+    t.asterisk = 500;
+    t.plus = 570;
+    t.comma = 250;
+    t.hyphen = 333;
+    t.period = 250;
+    t.slash = 278;
+    t.zero = 500;
+    t.one = 500;
+    t.two = 500;
+    t.three = 500;
+    t.four = 500;
+    t.five = 500;
+    t.six = 500;
+    t.seven = 500;
+    t.eight = 500;
+    t.nine = 500;
+    t.colon = 333;
+    t.semicolon = 333;
+    t.less = 570;
+    t.equal = 570;
+    t.greater = 570;
+    t.question = 500;
+    t.at = 930;
+    t.A = 722;
+    t.B = 667;
+    t.C = 722;
+    t.D = 722;
+    t.E = 667;
+    t.F = 611;
+    t.G = 778;
+    t.H = 778;
+    t.I = 389;
+    t.J = 500;
+    t.K = 778;
+    t.L = 667;
+    t.M = 944;
+    t.N = 722;
+    t.O = 778;
+    t.P = 611;
+    t.Q = 778;
+    t.R = 722;
+    t.S = 556;
+    t.T = 667;
+    t.U = 722;
+    t.V = 722;
+    t.W = 1000;
+    t.X = 722;
+    t.Y = 722;
+    t.Z = 667;
+    t.bracketleft = 333;
+    t.backslash = 278;
+    t.bracketright = 333;
+    t.asciicircum = 581;
+    t.underscore = 500;
+    t.quoteleft = 333;
+    t.a = 500;
+    t.b = 556;
+    t.c = 444;
+    t.d = 556;
+    t.e = 444;
+    t.f = 333;
+    t.g = 500;
+    t.h = 556;
+    t.i = 278;
+    t.j = 333;
+    t.k = 556;
+    t.l = 278;
+    t.m = 833;
+    t.n = 556;
+    t.o = 500;
+    t.p = 556;
+    t.q = 556;
+    t.r = 444;
+    t.s = 389;
+    t.t = 333;
+    t.u = 556;
+    t.v = 500;
+    t.w = 722;
+    t.x = 500;
+    t.y = 500;
+    t.z = 444;
+    t.braceleft = 394;
+    t.bar = 220;
+    t.braceright = 394;
+    t.asciitilde = 520;
+    t.exclamdown = 333;
+    t.cent = 500;
+    t.sterling = 500;
+    t.fraction = 167;
+    t.yen = 500;
+    t.florin = 500;
+    t.section = 500;
+    t.currency = 500;
+    t.quotesingle = 278;
+    t.quotedblleft = 500;
+    t.guillemotleft = 500;
+    t.guilsinglleft = 333;
+    t.guilsinglright = 333;
+    t.fi = 556;
+    t.fl = 556;
+    t.endash = 500;
+    t.dagger = 500;
+    t.daggerdbl = 500;
+    t.periodcentered = 250;
+    t.paragraph = 540;
+    t.bullet = 350;
+    t.quotesinglbase = 333;
+    t.quotedblbase = 500;
+    t.quotedblright = 500;
+    t.guillemotright = 500;
+    t.ellipsis = 1000;
+    t.perthousand = 1000;
+    t.questiondown = 500;
+    t.grave = 333;
+    t.acute = 333;
+    t.circumflex = 333;
+    t.tilde = 333;
+    t.macron = 333;
+    t.breve = 333;
+    t.dotaccent = 333;
+    t.dieresis = 333;
+    t.ring = 333;
+    t.cedilla = 333;
+    t.hungarumlaut = 333;
+    t.ogonek = 333;
+    t.caron = 333;
+    t.emdash = 1000;
+    t.AE = 1000;
+    t.ordfeminine = 300;
+    t.Lslash = 667;
+    t.Oslash = 778;
+    t.OE = 1000;
+    t.ordmasculine = 330;
+    t.ae = 722;
+    t.dotlessi = 278;
+    t.lslash = 278;
+    t.oslash = 500;
+    t.oe = 722;
+    t.germandbls = 556;
+    t.Idieresis = 389;
+    t.eacute = 444;
+    t.abreve = 500;
+    t.uhungarumlaut = 556;
+    t.ecaron = 444;
+    t.Ydieresis = 722;
+    t.divide = 570;
+    t.Yacute = 722;
+    t.Acircumflex = 722;
+    t.aacute = 500;
+    t.Ucircumflex = 722;
+    t.yacute = 500;
+    t.scommaaccent = 389;
+    t.ecircumflex = 444;
+    t.Uring = 722;
+    t.Udieresis = 722;
+    t.aogonek = 500;
+    t.Uacute = 722;
+    t.uogonek = 556;
+    t.Edieresis = 667;
+    t.Dcroat = 722;
+    t.commaaccent = 250;
+    t.copyright = 747;
+    t.Emacron = 667;
+    t.ccaron = 444;
+    t.aring = 500;
+    t.Ncommaaccent = 722;
+    t.lacute = 278;
+    t.agrave = 500;
+    t.Tcommaaccent = 667;
+    t.Cacute = 722;
+    t.atilde = 500;
+    t.Edotaccent = 667;
+    t.scaron = 389;
+    t.scedilla = 389;
+    t.iacute = 278;
+    t.lozenge = 494;
+    t.Rcaron = 722;
+    t.Gcommaaccent = 778;
+    t.ucircumflex = 556;
+    t.acircumflex = 500;
+    t.Amacron = 722;
+    t.rcaron = 444;
+    t.ccedilla = 444;
+    t.Zdotaccent = 667;
+    t.Thorn = 611;
+    t.Omacron = 778;
+    t.Racute = 722;
+    t.Sacute = 556;
+    t.dcaron = 672;
+    t.Umacron = 722;
+    t.uring = 556;
+    t.threesuperior = 300;
+    t.Ograve = 778;
+    t.Agrave = 722;
+    t.Abreve = 722;
+    t.multiply = 570;
+    t.uacute = 556;
+    t.Tcaron = 667;
+    t.partialdiff = 494;
+    t.ydieresis = 500;
+    t.Nacute = 722;
+    t.icircumflex = 278;
+    t.Ecircumflex = 667;
+    t.adieresis = 500;
+    t.edieresis = 444;
+    t.cacute = 444;
+    t.nacute = 556;
+    t.umacron = 556;
+    t.Ncaron = 722;
+    t.Iacute = 389;
+    t.plusminus = 570;
+    t.brokenbar = 220;
+    t.registered = 747;
+    t.Gbreve = 778;
+    t.Idotaccent = 389;
+    t.summation = 600;
+    t.Egrave = 667;
+    t.racute = 444;
+    t.omacron = 500;
+    t.Zacute = 667;
+    t.Zcaron = 667;
+    t.greaterequal = 549;
+    t.Eth = 722;
+    t.Ccedilla = 722;
+    t.lcommaaccent = 278;
+    t.tcaron = 416;
+    t.eogonek = 444;
+    t.Uogonek = 722;
+    t.Aacute = 722;
+    t.Adieresis = 722;
+    t.egrave = 444;
+    t.zacute = 444;
+    t.iogonek = 278;
+    t.Oacute = 778;
+    t.oacute = 500;
+    t.amacron = 500;
+    t.sacute = 389;
+    t.idieresis = 278;
+    t.Ocircumflex = 778;
+    t.Ugrave = 722;
+    t.Delta = 612;
+    t.thorn = 556;
+    t.twosuperior = 300;
+    t.Odieresis = 778;
+    t.mu = 556;
+    t.igrave = 278;
+    t.ohungarumlaut = 500;
+    t.Eogonek = 667;
+    t.dcroat = 556;
+    t.threequarters = 750;
+    t.Scedilla = 556;
+    t.lcaron = 394;
+    t.Kcommaaccent = 778;
+    t.Lacute = 667;
+    t.trademark = 1000;
+    t.edotaccent = 444;
+    t.Igrave = 389;
+    t.Imacron = 389;
+    t.Lcaron = 667;
+    t.onehalf = 750;
+    t.lessequal = 549;
+    t.ocircumflex = 500;
+    t.ntilde = 556;
+    t.Uhungarumlaut = 722;
+    t.Eacute = 667;
+    t.emacron = 444;
+    t.gbreve = 500;
+    t.onequarter = 750;
+    t.Scaron = 556;
+    t.Scommaaccent = 556;
+    t.Ohungarumlaut = 778;
+    t.degree = 400;
+    t.ograve = 500;
+    t.Ccaron = 722;
+    t.ugrave = 556;
+    t.radical = 549;
+    t.Dcaron = 722;
+    t.rcommaaccent = 444;
+    t.Ntilde = 722;
+    t.otilde = 500;
+    t.Rcommaaccent = 722;
+    t.Lcommaaccent = 667;
+    t.Atilde = 722;
+    t.Aogonek = 722;
+    t.Aring = 722;
+    t.Otilde = 778;
+    t.zdotaccent = 444;
+    t.Ecaron = 667;
+    t.Iogonek = 389;
+    t.kcommaaccent = 556;
+    t.minus = 570;
+    t.Icircumflex = 389;
+    t.ncaron = 556;
+    t.tcommaaccent = 333;
+    t.logicalnot = 570;
+    t.odieresis = 500;
+    t.udieresis = 556;
+    t.notequal = 549;
+    t.gcommaaccent = 500;
+    t.eth = 500;
+    t.zcaron = 444;
+    t.ncommaaccent = 556;
+    t.onesuperior = 300;
+    t.imacron = 278;
+    t.Euro = 500;
   });
   t["Times-BoldItalic"] = (0, _core_utils.getLookupTableFactory)(function (t) {
-    t["space"] = 250;
-    t["exclam"] = 389;
-    t["quotedbl"] = 555;
-    t["numbersign"] = 500;
-    t["dollar"] = 500;
-    t["percent"] = 833;
-    t["ampersand"] = 778;
-    t["quoteright"] = 333;
-    t["parenleft"] = 333;
-    t["parenright"] = 333;
-    t["asterisk"] = 500;
-    t["plus"] = 570;
-    t["comma"] = 250;
-    t["hyphen"] = 333;
-    t["period"] = 250;
-    t["slash"] = 278;
-    t["zero"] = 500;
-    t["one"] = 500;
-    t["two"] = 500;
-    t["three"] = 500;
-    t["four"] = 500;
-    t["five"] = 500;
-    t["six"] = 500;
-    t["seven"] = 500;
-    t["eight"] = 500;
-    t["nine"] = 500;
-    t["colon"] = 333;
-    t["semicolon"] = 333;
-    t["less"] = 570;
-    t["equal"] = 570;
-    t["greater"] = 570;
-    t["question"] = 500;
-    t["at"] = 832;
-    t["A"] = 667;
-    t["B"] = 667;
-    t["C"] = 667;
-    t["D"] = 722;
-    t["E"] = 667;
-    t["F"] = 667;
-    t["G"] = 722;
-    t["H"] = 778;
-    t["I"] = 389;
-    t["J"] = 500;
-    t["K"] = 667;
-    t["L"] = 611;
-    t["M"] = 889;
-    t["N"] = 722;
-    t["O"] = 722;
-    t["P"] = 611;
-    t["Q"] = 722;
-    t["R"] = 667;
-    t["S"] = 556;
-    t["T"] = 611;
-    t["U"] = 722;
-    t["V"] = 667;
-    t["W"] = 889;
-    t["X"] = 667;
-    t["Y"] = 611;
-    t["Z"] = 611;
-    t["bracketleft"] = 333;
-    t["backslash"] = 278;
-    t["bracketright"] = 333;
-    t["asciicircum"] = 570;
-    t["underscore"] = 500;
-    t["quoteleft"] = 333;
-    t["a"] = 500;
-    t["b"] = 500;
-    t["c"] = 444;
-    t["d"] = 500;
-    t["e"] = 444;
-    t["f"] = 333;
-    t["g"] = 500;
-    t["h"] = 556;
-    t["i"] = 278;
-    t["j"] = 278;
-    t["k"] = 500;
-    t["l"] = 278;
-    t["m"] = 778;
-    t["n"] = 556;
-    t["o"] = 500;
-    t["p"] = 500;
-    t["q"] = 500;
-    t["r"] = 389;
-    t["s"] = 389;
-    t["t"] = 278;
-    t["u"] = 556;
-    t["v"] = 444;
-    t["w"] = 667;
-    t["x"] = 500;
-    t["y"] = 444;
-    t["z"] = 389;
-    t["braceleft"] = 348;
-    t["bar"] = 220;
-    t["braceright"] = 348;
-    t["asciitilde"] = 570;
-    t["exclamdown"] = 389;
-    t["cent"] = 500;
-    t["sterling"] = 500;
-    t["fraction"] = 167;
-    t["yen"] = 500;
-    t["florin"] = 500;
-    t["section"] = 500;
-    t["currency"] = 500;
-    t["quotesingle"] = 278;
-    t["quotedblleft"] = 500;
-    t["guillemotleft"] = 500;
-    t["guilsinglleft"] = 333;
-    t["guilsinglright"] = 333;
-    t["fi"] = 556;
-    t["fl"] = 556;
-    t["endash"] = 500;
-    t["dagger"] = 500;
-    t["daggerdbl"] = 500;
-    t["periodcentered"] = 250;
-    t["paragraph"] = 500;
-    t["bullet"] = 350;
-    t["quotesinglbase"] = 333;
-    t["quotedblbase"] = 500;
-    t["quotedblright"] = 500;
-    t["guillemotright"] = 500;
-    t["ellipsis"] = 1000;
-    t["perthousand"] = 1000;
-    t["questiondown"] = 500;
-    t["grave"] = 333;
-    t["acute"] = 333;
-    t["circumflex"] = 333;
-    t["tilde"] = 333;
-    t["macron"] = 333;
-    t["breve"] = 333;
-    t["dotaccent"] = 333;
-    t["dieresis"] = 333;
-    t["ring"] = 333;
-    t["cedilla"] = 333;
-    t["hungarumlaut"] = 333;
-    t["ogonek"] = 333;
-    t["caron"] = 333;
-    t["emdash"] = 1000;
-    t["AE"] = 944;
-    t["ordfeminine"] = 266;
-    t["Lslash"] = 611;
-    t["Oslash"] = 722;
-    t["OE"] = 944;
-    t["ordmasculine"] = 300;
-    t["ae"] = 722;
-    t["dotlessi"] = 278;
-    t["lslash"] = 278;
-    t["oslash"] = 500;
-    t["oe"] = 722;
-    t["germandbls"] = 500;
-    t["Idieresis"] = 389;
-    t["eacute"] = 444;
-    t["abreve"] = 500;
-    t["uhungarumlaut"] = 556;
-    t["ecaron"] = 444;
-    t["Ydieresis"] = 611;
-    t["divide"] = 570;
-    t["Yacute"] = 611;
-    t["Acircumflex"] = 667;
-    t["aacute"] = 500;
-    t["Ucircumflex"] = 722;
-    t["yacute"] = 444;
-    t["scommaaccent"] = 389;
-    t["ecircumflex"] = 444;
-    t["Uring"] = 722;
-    t["Udieresis"] = 722;
-    t["aogonek"] = 500;
-    t["Uacute"] = 722;
-    t["uogonek"] = 556;
-    t["Edieresis"] = 667;
-    t["Dcroat"] = 722;
-    t["commaaccent"] = 250;
-    t["copyright"] = 747;
-    t["Emacron"] = 667;
-    t["ccaron"] = 444;
-    t["aring"] = 500;
-    t["Ncommaaccent"] = 722;
-    t["lacute"] = 278;
-    t["agrave"] = 500;
-    t["Tcommaaccent"] = 611;
-    t["Cacute"] = 667;
-    t["atilde"] = 500;
-    t["Edotaccent"] = 667;
-    t["scaron"] = 389;
-    t["scedilla"] = 389;
-    t["iacute"] = 278;
-    t["lozenge"] = 494;
-    t["Rcaron"] = 667;
-    t["Gcommaaccent"] = 722;
-    t["ucircumflex"] = 556;
-    t["acircumflex"] = 500;
-    t["Amacron"] = 667;
-    t["rcaron"] = 389;
-    t["ccedilla"] = 444;
-    t["Zdotaccent"] = 611;
-    t["Thorn"] = 611;
-    t["Omacron"] = 722;
-    t["Racute"] = 667;
-    t["Sacute"] = 556;
-    t["dcaron"] = 608;
-    t["Umacron"] = 722;
-    t["uring"] = 556;
-    t["threesuperior"] = 300;
-    t["Ograve"] = 722;
-    t["Agrave"] = 667;
-    t["Abreve"] = 667;
-    t["multiply"] = 570;
-    t["uacute"] = 556;
-    t["Tcaron"] = 611;
-    t["partialdiff"] = 494;
-    t["ydieresis"] = 444;
-    t["Nacute"] = 722;
-    t["icircumflex"] = 278;
-    t["Ecircumflex"] = 667;
-    t["adieresis"] = 500;
-    t["edieresis"] = 444;
-    t["cacute"] = 444;
-    t["nacute"] = 556;
-    t["umacron"] = 556;
-    t["Ncaron"] = 722;
-    t["Iacute"] = 389;
-    t["plusminus"] = 570;
-    t["brokenbar"] = 220;
-    t["registered"] = 747;
-    t["Gbreve"] = 722;
-    t["Idotaccent"] = 389;
-    t["summation"] = 600;
-    t["Egrave"] = 667;
-    t["racute"] = 389;
-    t["omacron"] = 500;
-    t["Zacute"] = 611;
-    t["Zcaron"] = 611;
-    t["greaterequal"] = 549;
-    t["Eth"] = 722;
-    t["Ccedilla"] = 667;
-    t["lcommaaccent"] = 278;
-    t["tcaron"] = 366;
-    t["eogonek"] = 444;
-    t["Uogonek"] = 722;
-    t["Aacute"] = 667;
-    t["Adieresis"] = 667;
-    t["egrave"] = 444;
-    t["zacute"] = 389;
-    t["iogonek"] = 278;
-    t["Oacute"] = 722;
-    t["oacute"] = 500;
-    t["amacron"] = 500;
-    t["sacute"] = 389;
-    t["idieresis"] = 278;
-    t["Ocircumflex"] = 722;
-    t["Ugrave"] = 722;
-    t["Delta"] = 612;
-    t["thorn"] = 500;
-    t["twosuperior"] = 300;
-    t["Odieresis"] = 722;
-    t["mu"] = 576;
-    t["igrave"] = 278;
-    t["ohungarumlaut"] = 500;
-    t["Eogonek"] = 667;
-    t["dcroat"] = 500;
-    t["threequarters"] = 750;
-    t["Scedilla"] = 556;
-    t["lcaron"] = 382;
-    t["Kcommaaccent"] = 667;
-    t["Lacute"] = 611;
-    t["trademark"] = 1000;
-    t["edotaccent"] = 444;
-    t["Igrave"] = 389;
-    t["Imacron"] = 389;
-    t["Lcaron"] = 611;
-    t["onehalf"] = 750;
-    t["lessequal"] = 549;
-    t["ocircumflex"] = 500;
-    t["ntilde"] = 556;
-    t["Uhungarumlaut"] = 722;
-    t["Eacute"] = 667;
-    t["emacron"] = 444;
-    t["gbreve"] = 500;
-    t["onequarter"] = 750;
-    t["Scaron"] = 556;
-    t["Scommaaccent"] = 556;
-    t["Ohungarumlaut"] = 722;
-    t["degree"] = 400;
-    t["ograve"] = 500;
-    t["Ccaron"] = 667;
-    t["ugrave"] = 556;
-    t["radical"] = 549;
-    t["Dcaron"] = 722;
-    t["rcommaaccent"] = 389;
-    t["Ntilde"] = 722;
-    t["otilde"] = 500;
-    t["Rcommaaccent"] = 667;
-    t["Lcommaaccent"] = 611;
-    t["Atilde"] = 667;
-    t["Aogonek"] = 667;
-    t["Aring"] = 667;
-    t["Otilde"] = 722;
-    t["zdotaccent"] = 389;
-    t["Ecaron"] = 667;
-    t["Iogonek"] = 389;
-    t["kcommaaccent"] = 500;
-    t["minus"] = 606;
-    t["Icircumflex"] = 389;
-    t["ncaron"] = 556;
-    t["tcommaaccent"] = 278;
-    t["logicalnot"] = 606;
-    t["odieresis"] = 500;
-    t["udieresis"] = 556;
-    t["notequal"] = 549;
-    t["gcommaaccent"] = 500;
-    t["eth"] = 500;
-    t["zcaron"] = 389;
-    t["ncommaaccent"] = 556;
-    t["onesuperior"] = 300;
-    t["imacron"] = 278;
-    t["Euro"] = 500;
+    t.space = 250;
+    t.exclam = 389;
+    t.quotedbl = 555;
+    t.numbersign = 500;
+    t.dollar = 500;
+    t.percent = 833;
+    t.ampersand = 778;
+    t.quoteright = 333;
+    t.parenleft = 333;
+    t.parenright = 333;
+    t.asterisk = 500;
+    t.plus = 570;
+    t.comma = 250;
+    t.hyphen = 333;
+    t.period = 250;
+    t.slash = 278;
+    t.zero = 500;
+    t.one = 500;
+    t.two = 500;
+    t.three = 500;
+    t.four = 500;
+    t.five = 500;
+    t.six = 500;
+    t.seven = 500;
+    t.eight = 500;
+    t.nine = 500;
+    t.colon = 333;
+    t.semicolon = 333;
+    t.less = 570;
+    t.equal = 570;
+    t.greater = 570;
+    t.question = 500;
+    t.at = 832;
+    t.A = 667;
+    t.B = 667;
+    t.C = 667;
+    t.D = 722;
+    t.E = 667;
+    t.F = 667;
+    t.G = 722;
+    t.H = 778;
+    t.I = 389;
+    t.J = 500;
+    t.K = 667;
+    t.L = 611;
+    t.M = 889;
+    t.N = 722;
+    t.O = 722;
+    t.P = 611;
+    t.Q = 722;
+    t.R = 667;
+    t.S = 556;
+    t.T = 611;
+    t.U = 722;
+    t.V = 667;
+    t.W = 889;
+    t.X = 667;
+    t.Y = 611;
+    t.Z = 611;
+    t.bracketleft = 333;
+    t.backslash = 278;
+    t.bracketright = 333;
+    t.asciicircum = 570;
+    t.underscore = 500;
+    t.quoteleft = 333;
+    t.a = 500;
+    t.b = 500;
+    t.c = 444;
+    t.d = 500;
+    t.e = 444;
+    t.f = 333;
+    t.g = 500;
+    t.h = 556;
+    t.i = 278;
+    t.j = 278;
+    t.k = 500;
+    t.l = 278;
+    t.m = 778;
+    t.n = 556;
+    t.o = 500;
+    t.p = 500;
+    t.q = 500;
+    t.r = 389;
+    t.s = 389;
+    t.t = 278;
+    t.u = 556;
+    t.v = 444;
+    t.w = 667;
+    t.x = 500;
+    t.y = 444;
+    t.z = 389;
+    t.braceleft = 348;
+    t.bar = 220;
+    t.braceright = 348;
+    t.asciitilde = 570;
+    t.exclamdown = 389;
+    t.cent = 500;
+    t.sterling = 500;
+    t.fraction = 167;
+    t.yen = 500;
+    t.florin = 500;
+    t.section = 500;
+    t.currency = 500;
+    t.quotesingle = 278;
+    t.quotedblleft = 500;
+    t.guillemotleft = 500;
+    t.guilsinglleft = 333;
+    t.guilsinglright = 333;
+    t.fi = 556;
+    t.fl = 556;
+    t.endash = 500;
+    t.dagger = 500;
+    t.daggerdbl = 500;
+    t.periodcentered = 250;
+    t.paragraph = 500;
+    t.bullet = 350;
+    t.quotesinglbase = 333;
+    t.quotedblbase = 500;
+    t.quotedblright = 500;
+    t.guillemotright = 500;
+    t.ellipsis = 1000;
+    t.perthousand = 1000;
+    t.questiondown = 500;
+    t.grave = 333;
+    t.acute = 333;
+    t.circumflex = 333;
+    t.tilde = 333;
+    t.macron = 333;
+    t.breve = 333;
+    t.dotaccent = 333;
+    t.dieresis = 333;
+    t.ring = 333;
+    t.cedilla = 333;
+    t.hungarumlaut = 333;
+    t.ogonek = 333;
+    t.caron = 333;
+    t.emdash = 1000;
+    t.AE = 944;
+    t.ordfeminine = 266;
+    t.Lslash = 611;
+    t.Oslash = 722;
+    t.OE = 944;
+    t.ordmasculine = 300;
+    t.ae = 722;
+    t.dotlessi = 278;
+    t.lslash = 278;
+    t.oslash = 500;
+    t.oe = 722;
+    t.germandbls = 500;
+    t.Idieresis = 389;
+    t.eacute = 444;
+    t.abreve = 500;
+    t.uhungarumlaut = 556;
+    t.ecaron = 444;
+    t.Ydieresis = 611;
+    t.divide = 570;
+    t.Yacute = 611;
+    t.Acircumflex = 667;
+    t.aacute = 500;
+    t.Ucircumflex = 722;
+    t.yacute = 444;
+    t.scommaaccent = 389;
+    t.ecircumflex = 444;
+    t.Uring = 722;
+    t.Udieresis = 722;
+    t.aogonek = 500;
+    t.Uacute = 722;
+    t.uogonek = 556;
+    t.Edieresis = 667;
+    t.Dcroat = 722;
+    t.commaaccent = 250;
+    t.copyright = 747;
+    t.Emacron = 667;
+    t.ccaron = 444;
+    t.aring = 500;
+    t.Ncommaaccent = 722;
+    t.lacute = 278;
+    t.agrave = 500;
+    t.Tcommaaccent = 611;
+    t.Cacute = 667;
+    t.atilde = 500;
+    t.Edotaccent = 667;
+    t.scaron = 389;
+    t.scedilla = 389;
+    t.iacute = 278;
+    t.lozenge = 494;
+    t.Rcaron = 667;
+    t.Gcommaaccent = 722;
+    t.ucircumflex = 556;
+    t.acircumflex = 500;
+    t.Amacron = 667;
+    t.rcaron = 389;
+    t.ccedilla = 444;
+    t.Zdotaccent = 611;
+    t.Thorn = 611;
+    t.Omacron = 722;
+    t.Racute = 667;
+    t.Sacute = 556;
+    t.dcaron = 608;
+    t.Umacron = 722;
+    t.uring = 556;
+    t.threesuperior = 300;
+    t.Ograve = 722;
+    t.Agrave = 667;
+    t.Abreve = 667;
+    t.multiply = 570;
+    t.uacute = 556;
+    t.Tcaron = 611;
+    t.partialdiff = 494;
+    t.ydieresis = 444;
+    t.Nacute = 722;
+    t.icircumflex = 278;
+    t.Ecircumflex = 667;
+    t.adieresis = 500;
+    t.edieresis = 444;
+    t.cacute = 444;
+    t.nacute = 556;
+    t.umacron = 556;
+    t.Ncaron = 722;
+    t.Iacute = 389;
+    t.plusminus = 570;
+    t.brokenbar = 220;
+    t.registered = 747;
+    t.Gbreve = 722;
+    t.Idotaccent = 389;
+    t.summation = 600;
+    t.Egrave = 667;
+    t.racute = 389;
+    t.omacron = 500;
+    t.Zacute = 611;
+    t.Zcaron = 611;
+    t.greaterequal = 549;
+    t.Eth = 722;
+    t.Ccedilla = 667;
+    t.lcommaaccent = 278;
+    t.tcaron = 366;
+    t.eogonek = 444;
+    t.Uogonek = 722;
+    t.Aacute = 667;
+    t.Adieresis = 667;
+    t.egrave = 444;
+    t.zacute = 389;
+    t.iogonek = 278;
+    t.Oacute = 722;
+    t.oacute = 500;
+    t.amacron = 500;
+    t.sacute = 389;
+    t.idieresis = 278;
+    t.Ocircumflex = 722;
+    t.Ugrave = 722;
+    t.Delta = 612;
+    t.thorn = 500;
+    t.twosuperior = 300;
+    t.Odieresis = 722;
+    t.mu = 576;
+    t.igrave = 278;
+    t.ohungarumlaut = 500;
+    t.Eogonek = 667;
+    t.dcroat = 500;
+    t.threequarters = 750;
+    t.Scedilla = 556;
+    t.lcaron = 382;
+    t.Kcommaaccent = 667;
+    t.Lacute = 611;
+    t.trademark = 1000;
+    t.edotaccent = 444;
+    t.Igrave = 389;
+    t.Imacron = 389;
+    t.Lcaron = 611;
+    t.onehalf = 750;
+    t.lessequal = 549;
+    t.ocircumflex = 500;
+    t.ntilde = 556;
+    t.Uhungarumlaut = 722;
+    t.Eacute = 667;
+    t.emacron = 444;
+    t.gbreve = 500;
+    t.onequarter = 750;
+    t.Scaron = 556;
+    t.Scommaaccent = 556;
+    t.Ohungarumlaut = 722;
+    t.degree = 400;
+    t.ograve = 500;
+    t.Ccaron = 667;
+    t.ugrave = 556;
+    t.radical = 549;
+    t.Dcaron = 722;
+    t.rcommaaccent = 389;
+    t.Ntilde = 722;
+    t.otilde = 500;
+    t.Rcommaaccent = 667;
+    t.Lcommaaccent = 611;
+    t.Atilde = 667;
+    t.Aogonek = 667;
+    t.Aring = 667;
+    t.Otilde = 722;
+    t.zdotaccent = 389;
+    t.Ecaron = 667;
+    t.Iogonek = 389;
+    t.kcommaaccent = 500;
+    t.minus = 606;
+    t.Icircumflex = 389;
+    t.ncaron = 556;
+    t.tcommaaccent = 278;
+    t.logicalnot = 606;
+    t.odieresis = 500;
+    t.udieresis = 556;
+    t.notequal = 549;
+    t.gcommaaccent = 500;
+    t.eth = 500;
+    t.zcaron = 389;
+    t.ncommaaccent = 556;
+    t.onesuperior = 300;
+    t.imacron = 278;
+    t.Euro = 500;
   });
   t["Times-Italic"] = (0, _core_utils.getLookupTableFactory)(function (t) {
-    t["space"] = 250;
-    t["exclam"] = 333;
-    t["quotedbl"] = 420;
-    t["numbersign"] = 500;
-    t["dollar"] = 500;
-    t["percent"] = 833;
-    t["ampersand"] = 778;
-    t["quoteright"] = 333;
-    t["parenleft"] = 333;
-    t["parenright"] = 333;
-    t["asterisk"] = 500;
-    t["plus"] = 675;
-    t["comma"] = 250;
-    t["hyphen"] = 333;
-    t["period"] = 250;
-    t["slash"] = 278;
-    t["zero"] = 500;
-    t["one"] = 500;
-    t["two"] = 500;
-    t["three"] = 500;
-    t["four"] = 500;
-    t["five"] = 500;
-    t["six"] = 500;
-    t["seven"] = 500;
-    t["eight"] = 500;
-    t["nine"] = 500;
-    t["colon"] = 333;
-    t["semicolon"] = 333;
-    t["less"] = 675;
-    t["equal"] = 675;
-    t["greater"] = 675;
-    t["question"] = 500;
-    t["at"] = 920;
-    t["A"] = 611;
-    t["B"] = 611;
-    t["C"] = 667;
-    t["D"] = 722;
-    t["E"] = 611;
-    t["F"] = 611;
-    t["G"] = 722;
-    t["H"] = 722;
-    t["I"] = 333;
-    t["J"] = 444;
-    t["K"] = 667;
-    t["L"] = 556;
-    t["M"] = 833;
-    t["N"] = 667;
-    t["O"] = 722;
-    t["P"] = 611;
-    t["Q"] = 722;
-    t["R"] = 611;
-    t["S"] = 500;
-    t["T"] = 556;
-    t["U"] = 722;
-    t["V"] = 611;
-    t["W"] = 833;
-    t["X"] = 611;
-    t["Y"] = 556;
-    t["Z"] = 556;
-    t["bracketleft"] = 389;
-    t["backslash"] = 278;
-    t["bracketright"] = 389;
-    t["asciicircum"] = 422;
-    t["underscore"] = 500;
-    t["quoteleft"] = 333;
-    t["a"] = 500;
-    t["b"] = 500;
-    t["c"] = 444;
-    t["d"] = 500;
-    t["e"] = 444;
-    t["f"] = 278;
-    t["g"] = 500;
-    t["h"] = 500;
-    t["i"] = 278;
-    t["j"] = 278;
-    t["k"] = 444;
-    t["l"] = 278;
-    t["m"] = 722;
-    t["n"] = 500;
-    t["o"] = 500;
-    t["p"] = 500;
-    t["q"] = 500;
-    t["r"] = 389;
-    t["s"] = 389;
-    t["t"] = 278;
-    t["u"] = 500;
-    t["v"] = 444;
-    t["w"] = 667;
-    t["x"] = 444;
-    t["y"] = 444;
-    t["z"] = 389;
-    t["braceleft"] = 400;
-    t["bar"] = 275;
-    t["braceright"] = 400;
-    t["asciitilde"] = 541;
-    t["exclamdown"] = 389;
-    t["cent"] = 500;
-    t["sterling"] = 500;
-    t["fraction"] = 167;
-    t["yen"] = 500;
-    t["florin"] = 500;
-    t["section"] = 500;
-    t["currency"] = 500;
-    t["quotesingle"] = 214;
-    t["quotedblleft"] = 556;
-    t["guillemotleft"] = 500;
-    t["guilsinglleft"] = 333;
-    t["guilsinglright"] = 333;
-    t["fi"] = 500;
-    t["fl"] = 500;
-    t["endash"] = 500;
-    t["dagger"] = 500;
-    t["daggerdbl"] = 500;
-    t["periodcentered"] = 250;
-    t["paragraph"] = 523;
-    t["bullet"] = 350;
-    t["quotesinglbase"] = 333;
-    t["quotedblbase"] = 556;
-    t["quotedblright"] = 556;
-    t["guillemotright"] = 500;
-    t["ellipsis"] = 889;
-    t["perthousand"] = 1000;
-    t["questiondown"] = 500;
-    t["grave"] = 333;
-    t["acute"] = 333;
-    t["circumflex"] = 333;
-    t["tilde"] = 333;
-    t["macron"] = 333;
-    t["breve"] = 333;
-    t["dotaccent"] = 333;
-    t["dieresis"] = 333;
-    t["ring"] = 333;
-    t["cedilla"] = 333;
-    t["hungarumlaut"] = 333;
-    t["ogonek"] = 333;
-    t["caron"] = 333;
-    t["emdash"] = 889;
-    t["AE"] = 889;
-    t["ordfeminine"] = 276;
-    t["Lslash"] = 556;
-    t["Oslash"] = 722;
-    t["OE"] = 944;
-    t["ordmasculine"] = 310;
-    t["ae"] = 667;
-    t["dotlessi"] = 278;
-    t["lslash"] = 278;
-    t["oslash"] = 500;
-    t["oe"] = 667;
-    t["germandbls"] = 500;
-    t["Idieresis"] = 333;
-    t["eacute"] = 444;
-    t["abreve"] = 500;
-    t["uhungarumlaut"] = 500;
-    t["ecaron"] = 444;
-    t["Ydieresis"] = 556;
-    t["divide"] = 675;
-    t["Yacute"] = 556;
-    t["Acircumflex"] = 611;
-    t["aacute"] = 500;
-    t["Ucircumflex"] = 722;
-    t["yacute"] = 444;
-    t["scommaaccent"] = 389;
-    t["ecircumflex"] = 444;
-    t["Uring"] = 722;
-    t["Udieresis"] = 722;
-    t["aogonek"] = 500;
-    t["Uacute"] = 722;
-    t["uogonek"] = 500;
-    t["Edieresis"] = 611;
-    t["Dcroat"] = 722;
-    t["commaaccent"] = 250;
-    t["copyright"] = 760;
-    t["Emacron"] = 611;
-    t["ccaron"] = 444;
-    t["aring"] = 500;
-    t["Ncommaaccent"] = 667;
-    t["lacute"] = 278;
-    t["agrave"] = 500;
-    t["Tcommaaccent"] = 556;
-    t["Cacute"] = 667;
-    t["atilde"] = 500;
-    t["Edotaccent"] = 611;
-    t["scaron"] = 389;
-    t["scedilla"] = 389;
-    t["iacute"] = 278;
-    t["lozenge"] = 471;
-    t["Rcaron"] = 611;
-    t["Gcommaaccent"] = 722;
-    t["ucircumflex"] = 500;
-    t["acircumflex"] = 500;
-    t["Amacron"] = 611;
-    t["rcaron"] = 389;
-    t["ccedilla"] = 444;
-    t["Zdotaccent"] = 556;
-    t["Thorn"] = 611;
-    t["Omacron"] = 722;
-    t["Racute"] = 611;
-    t["Sacute"] = 500;
-    t["dcaron"] = 544;
-    t["Umacron"] = 722;
-    t["uring"] = 500;
-    t["threesuperior"] = 300;
-    t["Ograve"] = 722;
-    t["Agrave"] = 611;
-    t["Abreve"] = 611;
-    t["multiply"] = 675;
-    t["uacute"] = 500;
-    t["Tcaron"] = 556;
-    t["partialdiff"] = 476;
-    t["ydieresis"] = 444;
-    t["Nacute"] = 667;
-    t["icircumflex"] = 278;
-    t["Ecircumflex"] = 611;
-    t["adieresis"] = 500;
-    t["edieresis"] = 444;
-    t["cacute"] = 444;
-    t["nacute"] = 500;
-    t["umacron"] = 500;
-    t["Ncaron"] = 667;
-    t["Iacute"] = 333;
-    t["plusminus"] = 675;
-    t["brokenbar"] = 275;
-    t["registered"] = 760;
-    t["Gbreve"] = 722;
-    t["Idotaccent"] = 333;
-    t["summation"] = 600;
-    t["Egrave"] = 611;
-    t["racute"] = 389;
-    t["omacron"] = 500;
-    t["Zacute"] = 556;
-    t["Zcaron"] = 556;
-    t["greaterequal"] = 549;
-    t["Eth"] = 722;
-    t["Ccedilla"] = 667;
-    t["lcommaaccent"] = 278;
-    t["tcaron"] = 300;
-    t["eogonek"] = 444;
-    t["Uogonek"] = 722;
-    t["Aacute"] = 611;
-    t["Adieresis"] = 611;
-    t["egrave"] = 444;
-    t["zacute"] = 389;
-    t["iogonek"] = 278;
-    t["Oacute"] = 722;
-    t["oacute"] = 500;
-    t["amacron"] = 500;
-    t["sacute"] = 389;
-    t["idieresis"] = 278;
-    t["Ocircumflex"] = 722;
-    t["Ugrave"] = 722;
-    t["Delta"] = 612;
-    t["thorn"] = 500;
-    t["twosuperior"] = 300;
-    t["Odieresis"] = 722;
-    t["mu"] = 500;
-    t["igrave"] = 278;
-    t["ohungarumlaut"] = 500;
-    t["Eogonek"] = 611;
-    t["dcroat"] = 500;
-    t["threequarters"] = 750;
-    t["Scedilla"] = 500;
-    t["lcaron"] = 300;
-    t["Kcommaaccent"] = 667;
-    t["Lacute"] = 556;
-    t["trademark"] = 980;
-    t["edotaccent"] = 444;
-    t["Igrave"] = 333;
-    t["Imacron"] = 333;
-    t["Lcaron"] = 611;
-    t["onehalf"] = 750;
-    t["lessequal"] = 549;
-    t["ocircumflex"] = 500;
-    t["ntilde"] = 500;
-    t["Uhungarumlaut"] = 722;
-    t["Eacute"] = 611;
-    t["emacron"] = 444;
-    t["gbreve"] = 500;
-    t["onequarter"] = 750;
-    t["Scaron"] = 500;
-    t["Scommaaccent"] = 500;
-    t["Ohungarumlaut"] = 722;
-    t["degree"] = 400;
-    t["ograve"] = 500;
-    t["Ccaron"] = 667;
-    t["ugrave"] = 500;
-    t["radical"] = 453;
-    t["Dcaron"] = 722;
-    t["rcommaaccent"] = 389;
-    t["Ntilde"] = 667;
-    t["otilde"] = 500;
-    t["Rcommaaccent"] = 611;
-    t["Lcommaaccent"] = 556;
-    t["Atilde"] = 611;
-    t["Aogonek"] = 611;
-    t["Aring"] = 611;
-    t["Otilde"] = 722;
-    t["zdotaccent"] = 389;
-    t["Ecaron"] = 611;
-    t["Iogonek"] = 333;
-    t["kcommaaccent"] = 444;
-    t["minus"] = 675;
-    t["Icircumflex"] = 333;
-    t["ncaron"] = 500;
-    t["tcommaaccent"] = 278;
-    t["logicalnot"] = 675;
-    t["odieresis"] = 500;
-    t["udieresis"] = 500;
-    t["notequal"] = 549;
-    t["gcommaaccent"] = 500;
-    t["eth"] = 500;
-    t["zcaron"] = 389;
-    t["ncommaaccent"] = 500;
-    t["onesuperior"] = 300;
-    t["imacron"] = 278;
-    t["Euro"] = 500;
+    t.space = 250;
+    t.exclam = 333;
+    t.quotedbl = 420;
+    t.numbersign = 500;
+    t.dollar = 500;
+    t.percent = 833;
+    t.ampersand = 778;
+    t.quoteright = 333;
+    t.parenleft = 333;
+    t.parenright = 333;
+    t.asterisk = 500;
+    t.plus = 675;
+    t.comma = 250;
+    t.hyphen = 333;
+    t.period = 250;
+    t.slash = 278;
+    t.zero = 500;
+    t.one = 500;
+    t.two = 500;
+    t.three = 500;
+    t.four = 500;
+    t.five = 500;
+    t.six = 500;
+    t.seven = 500;
+    t.eight = 500;
+    t.nine = 500;
+    t.colon = 333;
+    t.semicolon = 333;
+    t.less = 675;
+    t.equal = 675;
+    t.greater = 675;
+    t.question = 500;
+    t.at = 920;
+    t.A = 611;
+    t.B = 611;
+    t.C = 667;
+    t.D = 722;
+    t.E = 611;
+    t.F = 611;
+    t.G = 722;
+    t.H = 722;
+    t.I = 333;
+    t.J = 444;
+    t.K = 667;
+    t.L = 556;
+    t.M = 833;
+    t.N = 667;
+    t.O = 722;
+    t.P = 611;
+    t.Q = 722;
+    t.R = 611;
+    t.S = 500;
+    t.T = 556;
+    t.U = 722;
+    t.V = 611;
+    t.W = 833;
+    t.X = 611;
+    t.Y = 556;
+    t.Z = 556;
+    t.bracketleft = 389;
+    t.backslash = 278;
+    t.bracketright = 389;
+    t.asciicircum = 422;
+    t.underscore = 500;
+    t.quoteleft = 333;
+    t.a = 500;
+    t.b = 500;
+    t.c = 444;
+    t.d = 500;
+    t.e = 444;
+    t.f = 278;
+    t.g = 500;
+    t.h = 500;
+    t.i = 278;
+    t.j = 278;
+    t.k = 444;
+    t.l = 278;
+    t.m = 722;
+    t.n = 500;
+    t.o = 500;
+    t.p = 500;
+    t.q = 500;
+    t.r = 389;
+    t.s = 389;
+    t.t = 278;
+    t.u = 500;
+    t.v = 444;
+    t.w = 667;
+    t.x = 444;
+    t.y = 444;
+    t.z = 389;
+    t.braceleft = 400;
+    t.bar = 275;
+    t.braceright = 400;
+    t.asciitilde = 541;
+    t.exclamdown = 389;
+    t.cent = 500;
+    t.sterling = 500;
+    t.fraction = 167;
+    t.yen = 500;
+    t.florin = 500;
+    t.section = 500;
+    t.currency = 500;
+    t.quotesingle = 214;
+    t.quotedblleft = 556;
+    t.guillemotleft = 500;
+    t.guilsinglleft = 333;
+    t.guilsinglright = 333;
+    t.fi = 500;
+    t.fl = 500;
+    t.endash = 500;
+    t.dagger = 500;
+    t.daggerdbl = 500;
+    t.periodcentered = 250;
+    t.paragraph = 523;
+    t.bullet = 350;
+    t.quotesinglbase = 333;
+    t.quotedblbase = 556;
+    t.quotedblright = 556;
+    t.guillemotright = 500;
+    t.ellipsis = 889;
+    t.perthousand = 1000;
+    t.questiondown = 500;
+    t.grave = 333;
+    t.acute = 333;
+    t.circumflex = 333;
+    t.tilde = 333;
+    t.macron = 333;
+    t.breve = 333;
+    t.dotaccent = 333;
+    t.dieresis = 333;
+    t.ring = 333;
+    t.cedilla = 333;
+    t.hungarumlaut = 333;
+    t.ogonek = 333;
+    t.caron = 333;
+    t.emdash = 889;
+    t.AE = 889;
+    t.ordfeminine = 276;
+    t.Lslash = 556;
+    t.Oslash = 722;
+    t.OE = 944;
+    t.ordmasculine = 310;
+    t.ae = 667;
+    t.dotlessi = 278;
+    t.lslash = 278;
+    t.oslash = 500;
+    t.oe = 667;
+    t.germandbls = 500;
+    t.Idieresis = 333;
+    t.eacute = 444;
+    t.abreve = 500;
+    t.uhungarumlaut = 500;
+    t.ecaron = 444;
+    t.Ydieresis = 556;
+    t.divide = 675;
+    t.Yacute = 556;
+    t.Acircumflex = 611;
+    t.aacute = 500;
+    t.Ucircumflex = 722;
+    t.yacute = 444;
+    t.scommaaccent = 389;
+    t.ecircumflex = 444;
+    t.Uring = 722;
+    t.Udieresis = 722;
+    t.aogonek = 500;
+    t.Uacute = 722;
+    t.uogonek = 500;
+    t.Edieresis = 611;
+    t.Dcroat = 722;
+    t.commaaccent = 250;
+    t.copyright = 760;
+    t.Emacron = 611;
+    t.ccaron = 444;
+    t.aring = 500;
+    t.Ncommaaccent = 667;
+    t.lacute = 278;
+    t.agrave = 500;
+    t.Tcommaaccent = 556;
+    t.Cacute = 667;
+    t.atilde = 500;
+    t.Edotaccent = 611;
+    t.scaron = 389;
+    t.scedilla = 389;
+    t.iacute = 278;
+    t.lozenge = 471;
+    t.Rcaron = 611;
+    t.Gcommaaccent = 722;
+    t.ucircumflex = 500;
+    t.acircumflex = 500;
+    t.Amacron = 611;
+    t.rcaron = 389;
+    t.ccedilla = 444;
+    t.Zdotaccent = 556;
+    t.Thorn = 611;
+    t.Omacron = 722;
+    t.Racute = 611;
+    t.Sacute = 500;
+    t.dcaron = 544;
+    t.Umacron = 722;
+    t.uring = 500;
+    t.threesuperior = 300;
+    t.Ograve = 722;
+    t.Agrave = 611;
+    t.Abreve = 611;
+    t.multiply = 675;
+    t.uacute = 500;
+    t.Tcaron = 556;
+    t.partialdiff = 476;
+    t.ydieresis = 444;
+    t.Nacute = 667;
+    t.icircumflex = 278;
+    t.Ecircumflex = 611;
+    t.adieresis = 500;
+    t.edieresis = 444;
+    t.cacute = 444;
+    t.nacute = 500;
+    t.umacron = 500;
+    t.Ncaron = 667;
+    t.Iacute = 333;
+    t.plusminus = 675;
+    t.brokenbar = 275;
+    t.registered = 760;
+    t.Gbreve = 722;
+    t.Idotaccent = 333;
+    t.summation = 600;
+    t.Egrave = 611;
+    t.racute = 389;
+    t.omacron = 500;
+    t.Zacute = 556;
+    t.Zcaron = 556;
+    t.greaterequal = 549;
+    t.Eth = 722;
+    t.Ccedilla = 667;
+    t.lcommaaccent = 278;
+    t.tcaron = 300;
+    t.eogonek = 444;
+    t.Uogonek = 722;
+    t.Aacute = 611;
+    t.Adieresis = 611;
+    t.egrave = 444;
+    t.zacute = 389;
+    t.iogonek = 278;
+    t.Oacute = 722;
+    t.oacute = 500;
+    t.amacron = 500;
+    t.sacute = 389;
+    t.idieresis = 278;
+    t.Ocircumflex = 722;
+    t.Ugrave = 722;
+    t.Delta = 612;
+    t.thorn = 500;
+    t.twosuperior = 300;
+    t.Odieresis = 722;
+    t.mu = 500;
+    t.igrave = 278;
+    t.ohungarumlaut = 500;
+    t.Eogonek = 611;
+    t.dcroat = 500;
+    t.threequarters = 750;
+    t.Scedilla = 500;
+    t.lcaron = 300;
+    t.Kcommaaccent = 667;
+    t.Lacute = 556;
+    t.trademark = 980;
+    t.edotaccent = 444;
+    t.Igrave = 333;
+    t.Imacron = 333;
+    t.Lcaron = 611;
+    t.onehalf = 750;
+    t.lessequal = 549;
+    t.ocircumflex = 500;
+    t.ntilde = 500;
+    t.Uhungarumlaut = 722;
+    t.Eacute = 611;
+    t.emacron = 444;
+    t.gbreve = 500;
+    t.onequarter = 750;
+    t.Scaron = 500;
+    t.Scommaaccent = 500;
+    t.Ohungarumlaut = 722;
+    t.degree = 400;
+    t.ograve = 500;
+    t.Ccaron = 667;
+    t.ugrave = 500;
+    t.radical = 453;
+    t.Dcaron = 722;
+    t.rcommaaccent = 389;
+    t.Ntilde = 667;
+    t.otilde = 500;
+    t.Rcommaaccent = 611;
+    t.Lcommaaccent = 556;
+    t.Atilde = 611;
+    t.Aogonek = 611;
+    t.Aring = 611;
+    t.Otilde = 722;
+    t.zdotaccent = 389;
+    t.Ecaron = 611;
+    t.Iogonek = 333;
+    t.kcommaaccent = 444;
+    t.minus = 675;
+    t.Icircumflex = 333;
+    t.ncaron = 500;
+    t.tcommaaccent = 278;
+    t.logicalnot = 675;
+    t.odieresis = 500;
+    t.udieresis = 500;
+    t.notequal = 549;
+    t.gcommaaccent = 500;
+    t.eth = 500;
+    t.zcaron = 389;
+    t.ncommaaccent = 500;
+    t.onesuperior = 300;
+    t.imacron = 278;
+    t.Euro = 500;
   });
-  t["ZapfDingbats"] = (0, _core_utils.getLookupTableFactory)(function (t) {
-    t["space"] = 278;
-    t["a1"] = 974;
-    t["a2"] = 961;
-    t["a202"] = 974;
-    t["a3"] = 980;
-    t["a4"] = 719;
-    t["a5"] = 789;
-    t["a119"] = 790;
-    t["a118"] = 791;
-    t["a117"] = 690;
-    t["a11"] = 960;
-    t["a12"] = 939;
-    t["a13"] = 549;
-    t["a14"] = 855;
-    t["a15"] = 911;
-    t["a16"] = 933;
-    t["a105"] = 911;
-    t["a17"] = 945;
-    t["a18"] = 974;
-    t["a19"] = 755;
-    t["a20"] = 846;
-    t["a21"] = 762;
-    t["a22"] = 761;
-    t["a23"] = 571;
-    t["a24"] = 677;
-    t["a25"] = 763;
-    t["a26"] = 760;
-    t["a27"] = 759;
-    t["a28"] = 754;
-    t["a6"] = 494;
-    t["a7"] = 552;
-    t["a8"] = 537;
-    t["a9"] = 577;
-    t["a10"] = 692;
-    t["a29"] = 786;
-    t["a30"] = 788;
-    t["a31"] = 788;
-    t["a32"] = 790;
-    t["a33"] = 793;
-    t["a34"] = 794;
-    t["a35"] = 816;
-    t["a36"] = 823;
-    t["a37"] = 789;
-    t["a38"] = 841;
-    t["a39"] = 823;
-    t["a40"] = 833;
-    t["a41"] = 816;
-    t["a42"] = 831;
-    t["a43"] = 923;
-    t["a44"] = 744;
-    t["a45"] = 723;
-    t["a46"] = 749;
-    t["a47"] = 790;
-    t["a48"] = 792;
-    t["a49"] = 695;
-    t["a50"] = 776;
-    t["a51"] = 768;
-    t["a52"] = 792;
-    t["a53"] = 759;
-    t["a54"] = 707;
-    t["a55"] = 708;
-    t["a56"] = 682;
-    t["a57"] = 701;
-    t["a58"] = 826;
-    t["a59"] = 815;
-    t["a60"] = 789;
-    t["a61"] = 789;
-    t["a62"] = 707;
-    t["a63"] = 687;
-    t["a64"] = 696;
-    t["a65"] = 689;
-    t["a66"] = 786;
-    t["a67"] = 787;
-    t["a68"] = 713;
-    t["a69"] = 791;
-    t["a70"] = 785;
-    t["a71"] = 791;
-    t["a72"] = 873;
-    t["a73"] = 761;
-    t["a74"] = 762;
-    t["a203"] = 762;
-    t["a75"] = 759;
-    t["a204"] = 759;
-    t["a76"] = 892;
-    t["a77"] = 892;
-    t["a78"] = 788;
-    t["a79"] = 784;
-    t["a81"] = 438;
-    t["a82"] = 138;
-    t["a83"] = 277;
-    t["a84"] = 415;
-    t["a97"] = 392;
-    t["a98"] = 392;
-    t["a99"] = 668;
-    t["a100"] = 668;
-    t["a89"] = 390;
-    t["a90"] = 390;
-    t["a93"] = 317;
-    t["a94"] = 317;
-    t["a91"] = 276;
-    t["a92"] = 276;
-    t["a205"] = 509;
-    t["a85"] = 509;
-    t["a206"] = 410;
-    t["a86"] = 410;
-    t["a87"] = 234;
-    t["a88"] = 234;
-    t["a95"] = 334;
-    t["a96"] = 334;
-    t["a101"] = 732;
-    t["a102"] = 544;
-    t["a103"] = 544;
-    t["a104"] = 910;
-    t["a106"] = 667;
-    t["a107"] = 760;
-    t["a108"] = 760;
-    t["a112"] = 776;
-    t["a111"] = 595;
-    t["a110"] = 694;
-    t["a109"] = 626;
-    t["a120"] = 788;
-    t["a121"] = 788;
-    t["a122"] = 788;
-    t["a123"] = 788;
-    t["a124"] = 788;
-    t["a125"] = 788;
-    t["a126"] = 788;
-    t["a127"] = 788;
-    t["a128"] = 788;
-    t["a129"] = 788;
-    t["a130"] = 788;
-    t["a131"] = 788;
-    t["a132"] = 788;
-    t["a133"] = 788;
-    t["a134"] = 788;
-    t["a135"] = 788;
-    t["a136"] = 788;
-    t["a137"] = 788;
-    t["a138"] = 788;
-    t["a139"] = 788;
-    t["a140"] = 788;
-    t["a141"] = 788;
-    t["a142"] = 788;
-    t["a143"] = 788;
-    t["a144"] = 788;
-    t["a145"] = 788;
-    t["a146"] = 788;
-    t["a147"] = 788;
-    t["a148"] = 788;
-    t["a149"] = 788;
-    t["a150"] = 788;
-    t["a151"] = 788;
-    t["a152"] = 788;
-    t["a153"] = 788;
-    t["a154"] = 788;
-    t["a155"] = 788;
-    t["a156"] = 788;
-    t["a157"] = 788;
-    t["a158"] = 788;
-    t["a159"] = 788;
-    t["a160"] = 894;
-    t["a161"] = 838;
-    t["a163"] = 1016;
-    t["a164"] = 458;
-    t["a196"] = 748;
-    t["a165"] = 924;
-    t["a192"] = 748;
-    t["a166"] = 918;
-    t["a167"] = 927;
-    t["a168"] = 928;
-    t["a169"] = 928;
-    t["a170"] = 834;
-    t["a171"] = 873;
-    t["a172"] = 828;
-    t["a173"] = 924;
-    t["a162"] = 924;
-    t["a174"] = 917;
-    t["a175"] = 930;
-    t["a176"] = 931;
-    t["a177"] = 463;
-    t["a178"] = 883;
-    t["a179"] = 836;
-    t["a193"] = 836;
-    t["a180"] = 867;
-    t["a199"] = 867;
-    t["a181"] = 696;
-    t["a200"] = 696;
-    t["a182"] = 874;
-    t["a201"] = 874;
-    t["a183"] = 760;
-    t["a184"] = 946;
-    t["a197"] = 771;
-    t["a185"] = 865;
-    t["a194"] = 771;
-    t["a198"] = 888;
-    t["a186"] = 967;
-    t["a195"] = 888;
-    t["a187"] = 831;
-    t["a188"] = 873;
-    t["a189"] = 927;
-    t["a190"] = 970;
-    t["a191"] = 918;
+  t.ZapfDingbats = (0, _core_utils.getLookupTableFactory)(function (t) {
+    t.space = 278;
+    t.a1 = 974;
+    t.a2 = 961;
+    t.a202 = 974;
+    t.a3 = 980;
+    t.a4 = 719;
+    t.a5 = 789;
+    t.a119 = 790;
+    t.a118 = 791;
+    t.a117 = 690;
+    t.a11 = 960;
+    t.a12 = 939;
+    t.a13 = 549;
+    t.a14 = 855;
+    t.a15 = 911;
+    t.a16 = 933;
+    t.a105 = 911;
+    t.a17 = 945;
+    t.a18 = 974;
+    t.a19 = 755;
+    t.a20 = 846;
+    t.a21 = 762;
+    t.a22 = 761;
+    t.a23 = 571;
+    t.a24 = 677;
+    t.a25 = 763;
+    t.a26 = 760;
+    t.a27 = 759;
+    t.a28 = 754;
+    t.a6 = 494;
+    t.a7 = 552;
+    t.a8 = 537;
+    t.a9 = 577;
+    t.a10 = 692;
+    t.a29 = 786;
+    t.a30 = 788;
+    t.a31 = 788;
+    t.a32 = 790;
+    t.a33 = 793;
+    t.a34 = 794;
+    t.a35 = 816;
+    t.a36 = 823;
+    t.a37 = 789;
+    t.a38 = 841;
+    t.a39 = 823;
+    t.a40 = 833;
+    t.a41 = 816;
+    t.a42 = 831;
+    t.a43 = 923;
+    t.a44 = 744;
+    t.a45 = 723;
+    t.a46 = 749;
+    t.a47 = 790;
+    t.a48 = 792;
+    t.a49 = 695;
+    t.a50 = 776;
+    t.a51 = 768;
+    t.a52 = 792;
+    t.a53 = 759;
+    t.a54 = 707;
+    t.a55 = 708;
+    t.a56 = 682;
+    t.a57 = 701;
+    t.a58 = 826;
+    t.a59 = 815;
+    t.a60 = 789;
+    t.a61 = 789;
+    t.a62 = 707;
+    t.a63 = 687;
+    t.a64 = 696;
+    t.a65 = 689;
+    t.a66 = 786;
+    t.a67 = 787;
+    t.a68 = 713;
+    t.a69 = 791;
+    t.a70 = 785;
+    t.a71 = 791;
+    t.a72 = 873;
+    t.a73 = 761;
+    t.a74 = 762;
+    t.a203 = 762;
+    t.a75 = 759;
+    t.a204 = 759;
+    t.a76 = 892;
+    t.a77 = 892;
+    t.a78 = 788;
+    t.a79 = 784;
+    t.a81 = 438;
+    t.a82 = 138;
+    t.a83 = 277;
+    t.a84 = 415;
+    t.a97 = 392;
+    t.a98 = 392;
+    t.a99 = 668;
+    t.a100 = 668;
+    t.a89 = 390;
+    t.a90 = 390;
+    t.a93 = 317;
+    t.a94 = 317;
+    t.a91 = 276;
+    t.a92 = 276;
+    t.a205 = 509;
+    t.a85 = 509;
+    t.a206 = 410;
+    t.a86 = 410;
+    t.a87 = 234;
+    t.a88 = 234;
+    t.a95 = 334;
+    t.a96 = 334;
+    t.a101 = 732;
+    t.a102 = 544;
+    t.a103 = 544;
+    t.a104 = 910;
+    t.a106 = 667;
+    t.a107 = 760;
+    t.a108 = 760;
+    t.a112 = 776;
+    t.a111 = 595;
+    t.a110 = 694;
+    t.a109 = 626;
+    t.a120 = 788;
+    t.a121 = 788;
+    t.a122 = 788;
+    t.a123 = 788;
+    t.a124 = 788;
+    t.a125 = 788;
+    t.a126 = 788;
+    t.a127 = 788;
+    t.a128 = 788;
+    t.a129 = 788;
+    t.a130 = 788;
+    t.a131 = 788;
+    t.a132 = 788;
+    t.a133 = 788;
+    t.a134 = 788;
+    t.a135 = 788;
+    t.a136 = 788;
+    t.a137 = 788;
+    t.a138 = 788;
+    t.a139 = 788;
+    t.a140 = 788;
+    t.a141 = 788;
+    t.a142 = 788;
+    t.a143 = 788;
+    t.a144 = 788;
+    t.a145 = 788;
+    t.a146 = 788;
+    t.a147 = 788;
+    t.a148 = 788;
+    t.a149 = 788;
+    t.a150 = 788;
+    t.a151 = 788;
+    t.a152 = 788;
+    t.a153 = 788;
+    t.a154 = 788;
+    t.a155 = 788;
+    t.a156 = 788;
+    t.a157 = 788;
+    t.a158 = 788;
+    t.a159 = 788;
+    t.a160 = 894;
+    t.a161 = 838;
+    t.a163 = 1016;
+    t.a164 = 458;
+    t.a196 = 748;
+    t.a165 = 924;
+    t.a192 = 748;
+    t.a166 = 918;
+    t.a167 = 927;
+    t.a168 = 928;
+    t.a169 = 928;
+    t.a170 = 834;
+    t.a171 = 873;
+    t.a172 = 828;
+    t.a173 = 924;
+    t.a162 = 924;
+    t.a174 = 917;
+    t.a175 = 930;
+    t.a176 = 931;
+    t.a177 = 463;
+    t.a178 = 883;
+    t.a179 = 836;
+    t.a193 = 836;
+    t.a180 = 867;
+    t.a199 = 867;
+    t.a181 = 696;
+    t.a200 = 696;
+    t.a182 = 874;
+    t.a201 = 874;
+    t.a183 = 760;
+    t.a184 = 946;
+    t.a197 = 771;
+    t.a185 = 865;
+    t.a194 = 771;
+    t.a198 = 888;
+    t.a186 = 967;
+    t.a195 = 888;
+    t.a187 = 831;
+    t.a188 = 873;
+    t.a189 = 927;
+    t.a190 = 970;
+    t.a191 = 918;
   });
 });
 exports.getMetrics = getMetrics;
 
 /***/ }),
-/* 39 */
+/* 41 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -42768,9 +42929,9 @@ exports.PostScriptCompiler = exports.PostScriptEvaluator = exports.PDFFunctionFa
 
 var _util = __w_pdfjs_require__(2);
 
-var _primitives = __w_pdfjs_require__(4);
+var _primitives = __w_pdfjs_require__(5);
 
-var _ps_parser = __w_pdfjs_require__(40);
+var _ps_parser = __w_pdfjs_require__(42);
 
 class PDFFunctionFactory {
   constructor({
@@ -42812,8 +42973,8 @@ function toNumberArray(arr) {
     if (typeof arr[i] !== "number") {
       const result = new Array(length);
 
-      for (let i = 0; i < length; i++) {
-        result[i] = +arr[i];
+      for (let j = 0; j < length; j++) {
+        result[j] = +arr[j];
       }
 
       return result;
@@ -43901,7 +44062,6 @@ var PostScriptCompiler = function PostScriptCompilerClosure() {
   PostScriptCompiler.prototype = {
     compile: function PostScriptCompiler_compile(code, domain, range) {
       var stack = [];
-      var i, ii;
       var instructions = [];
       var inputSize = domain.length >> 1,
           outputSize = range.length >> 1;
@@ -43909,11 +44069,11 @@ var PostScriptCompiler = function PostScriptCompilerClosure() {
       var n, j;
       var num1, num2, ast1, ast2, tmpVar, item;
 
-      for (i = 0; i < inputSize; i++) {
+      for (let i = 0; i < inputSize; i++) {
         stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1]));
       }
 
-      for (i = 0, ii = code.length; i < ii; i++) {
+      for (let i = 0, ii = code.length; i < ii; i++) {
         item = code[i];
 
         if (typeof item === "number") {
@@ -44105,7 +44265,7 @@ var PostScriptCompiler = function PostScriptCompilerClosure() {
 exports.PostScriptCompiler = PostScriptCompiler;
 
 /***/ }),
-/* 40 */
+/* 42 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -44118,9 +44278,9 @@ exports.PostScriptParser = exports.PostScriptLexer = void 0;
 
 var _util = __w_pdfjs_require__(2);
 
-var _primitives = __w_pdfjs_require__(4);
+var _primitives = __w_pdfjs_require__(5);
 
-var _core_utils = __w_pdfjs_require__(7);
+var _core_utils = __w_pdfjs_require__(8);
 
 class PostScriptParser {
   constructor(lexer) {
@@ -44359,7 +44519,7 @@ class PostScriptLexer {
 exports.PostScriptLexer = PostScriptLexer;
 
 /***/ }),
-/* 41 */
+/* 43 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -44485,86 +44645,7 @@ class MurmurHash3_64 {
 exports.MurmurHash3_64 = MurmurHash3_64;
 
 /***/ }),
-/* 42 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.NativeImageDecoder = void 0;
-
-var _colorspace = __w_pdfjs_require__(22);
-
-var _jpeg_stream = __w_pdfjs_require__(17);
-
-var _stream = __w_pdfjs_require__(11);
-
-class NativeImageDecoder {
-  constructor({
-    xref,
-    resources,
-    handler,
-    forceDataSchema = false,
-    pdfFunctionFactory
-  }) {
-    this.xref = xref;
-    this.resources = resources;
-    this.handler = handler;
-    this.forceDataSchema = forceDataSchema;
-    this.pdfFunctionFactory = pdfFunctionFactory;
-  }
-
-  canDecode(image) {
-    return image instanceof _jpeg_stream.JpegStream && NativeImageDecoder.isDecodable(image, this.xref, 
this.resources, this.pdfFunctionFactory) && image.maybeValidDimensions;
-  }
-
-  decode(image) {
-    const dict = image.dict;
-    let colorSpace = dict.get("ColorSpace", "CS");
-    colorSpace = _colorspace.ColorSpace.parse(colorSpace, this.xref, this.resources, 
this.pdfFunctionFactory);
-    return this.handler.sendWithPromise("JpegDecode", [image.getIR(this.forceDataSchema), 
colorSpace.numComps]).then(function ({
-      data,
-      width,
-      height
-    }) {
-      return new _stream.Stream(data, 0, data.length, dict);
-    });
-  }
-
-  static isSupported(image, xref, res, pdfFunctionFactory) {
-    const dict = image.dict;
-
-    if (dict.has("DecodeParms") || dict.has("DP")) {
-      return false;
-    }
-
-    const cs = _colorspace.ColorSpace.parse(dict.get("ColorSpace", "CS"), xref, res, pdfFunctionFactory);
-
-    return (cs.name === "DeviceGray" || cs.name === "DeviceRGB") && 
cs.isDefaultDecode(dict.getArray("Decode", "D"));
-  }
-
-  static isDecodable(image, xref, res, pdfFunctionFactory) {
-    const dict = image.dict;
-
-    if (dict.has("DecodeParms") || dict.has("DP")) {
-      return false;
-    }
-
-    const cs = _colorspace.ColorSpace.parse(dict.get("ColorSpace", "CS"), xref, res, pdfFunctionFactory);
-
-    const bpc = dict.get("BitsPerComponent", "BPC") || 1;
-    return (cs.numComps === 1 || cs.numComps === 3) && cs.isDefaultDecode(dict.getArray("Decode", "D"), bpc);
-  }
-
-}
-
-exports.NativeImageDecoder = NativeImageDecoder;
-
-/***/ }),
-/* 43 */
+/* 44 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
 
 "use strict";
@@ -44577,28 +44658,17 @@ exports.PDFImage = void 0;
 
 var _util = __w_pdfjs_require__(2);
 
-var _primitives = __w_pdfjs_require__(4);
+var _primitives = __w_pdfjs_require__(5);
 
-var _colorspace = __w_pdfjs_require__(22);
+var _colorspace = __w_pdfjs_require__(23);
 
-var _stream = __w_pdfjs_require__(11);
+var _stream = __w_pdfjs_require__(12);
 
-var _jpeg_stream = __w_pdfjs_require__(17);
+var _jpeg_stream = __w_pdfjs_require__(18);
 
-var _jpx = __w_pdfjs_require__(20);
+var _jpx = __w_pdfjs_require__(21);
 
 var PDFImage = function PDFImageClosure() {
-  function handleImageData(image, nativeDecoder) {
-    if (nativeDecoder && nativeDecoder.canDecode(image)) {
-      return nativeDecoder.decode(image).catch(reason => {
-        (0, _util.warn)("Native image decoding failed -- trying to recover: " + (reason && reason.message));
-        return image;
-      });
-    }
-
-    return Promise.resolve(image);
-  }
-
   function decodeAndClamp(value, addend, coefficient, max) {
     value = addend + value * coefficient;
 
@@ -44795,51 +44865,37 @@ var PDFImage = function PDFImageClosure() {
   }
 
   PDFImage.buildImage = function ({
-    handler,
     xref,
     res,
     image,
     isInline = false,
-    nativeDecoder = null,
     pdfFunctionFactory
   }) {
-    var imagePromise = handleImageData(image, nativeDecoder);
-    var smaskPromise;
-    var maskPromise;
-    var smask = image.dict.get("SMask");
-    var mask = image.dict.get("Mask");
+    const imageData = image;
+    let smaskData = null;
+    let maskData = null;
+    const smask = image.dict.get("SMask");
+    const mask = image.dict.get("Mask");
 
     if (smask) {
-      smaskPromise = handleImageData(smask, nativeDecoder);
-      maskPromise = Promise.resolve(null);
-    } else {
-      smaskPromise = Promise.resolve(null);
-
-      if (mask) {
-        if ((0, _primitives.isStream)(mask)) {
-          maskPromise = handleImageData(mask, nativeDecoder);
-        } else if (Array.isArray(mask)) {
-          maskPromise = Promise.resolve(mask);
-        } else {
-          (0, _util.warn)("Unsupported mask format.");
-          maskPromise = Promise.resolve(null);
-        }
+      smaskData = smask;
+    } else if (mask) {
+      if ((0, _primitives.isStream)(mask) || Array.isArray(mask)) {
+        maskData = mask;
       } else {
-        maskPromise = Promise.resolve(null);
+        (0, _util.warn)("Unsupported mask format.");
       }
     }
 
-    return Promise.all([imagePromise, smaskPromise, maskPromise]).then(function ([imageData, smaskData, 
maskData]) {
-      return new PDFImage({
-        xref,
-        res,
-        image: imageData,
-        isInline,
-        smask: smaskData,
-        mask: maskData,
-        pdfFunctionFactory
-      });
-    });
+    return Promise.resolve(new PDFImage({
+      xref,
+      res,
+      image: imageData,
+      isInline,
+      smask: smaskData,
+      mask: maskData,
+      pdfFunctionFactory
+    }));
   };
 
   PDFImage.createMask = function ({
@@ -45255,20 +45311,6 @@ var PDFImage = function PDFImageClosure() {
 
 exports.PDFImage = PDFImage;
 
-/***/ }),
-/* 44 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.isNodeJS = void 0;
-const isNodeJS = typeof process === "object" && process + "" === "[object process]" && 
!process.versions["nw"] && !process.versions["electron"];
-exports.isNodeJS = isNodeJS;
-
 /***/ }),
 /* 45 */
 /***/ (function(module, exports, __w_pdfjs_require__) {
@@ -45377,22 +45419,22 @@ class MessageHandler {
       }
 
       if (data.callbackId) {
-        const sourceName = this.sourceName;
-        const targetName = data.sourceName;
+        const cbSourceName = this.sourceName;
+        const cbTargetName = data.sourceName;
         new Promise(function (resolve) {
           resolve(action(data.data));
         }).then(function (result) {
           comObj.postMessage({
-            sourceName,
-            targetName,
+            sourceName: cbSourceName,
+            targetName: cbTargetName,
             callback: CallbackKind.DATA,
             callbackId: data.callbackId,
             data: result
           });
         }, function (reason) {
           comObj.postMessage({
-            sourceName,
-            targetName,
+            sourceName: cbSourceName,
+            targetName: cbTargetName,
             callback: CallbackKind.ERROR,
             callbackId: data.callbackId,
             reason: wrapReason(reason)
@@ -45793,7 +45835,7 @@ class PDFWorkerStream {
   }
 
   getFullReader() {
-    (0, _util.assert)(!this._fullRequestReader);
+    (0, _util.assert)(!this._fullRequestReader, "PDFWorkerStream.getFullReader can only be called once.");
     this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);
     return this._fullRequestReader;
   }
diff --git a/third-party/pdfjs/pdfjs.gresource.xml b/third-party/pdfjs/pdfjs.gresource.xml
index 71445a2b0..7788e8752 100644
--- a/third-party/pdfjs/pdfjs.gresource.xml
+++ b/third-party/pdfjs/pdfjs.gresource.xml
@@ -1,399 +1,367 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <gresources>
        <gresource prefix="/org/gnome/epiphany/pdfjs">
+               <file compressed="true">build/pdf.js</file>
+               <file compressed="true">build/pdf.worker.js</file>
+               <file compressed="true">web/viewer.html</file>
                <file compressed="true">web/viewer.css</file>
                <file compressed="true">web/viewer.js</file>
-               <file compressed="true">web/viewer.html</file>
-               <file compressed="true">web/locale/locale.properties</file>
-               <file compressed="true">web/locale/bn-BD/viewer.properties</file>
-               <file compressed="true">web/locale/ff/viewer.properties</file>
-               <file compressed="true">web/locale/mr/viewer.properties</file>
-               <file compressed="true">web/locale/tsz/viewer.properties</file>
-               <file compressed="true">web/locale/es-AR/viewer.properties</file>
-               <file compressed="true">web/locale/mk/viewer.properties</file>
-               <file compressed="true">web/locale/ru/viewer.properties</file>
-               <file compressed="true">web/locale/kk/viewer.properties</file>
-               <file compressed="true">web/locale/ltg/viewer.properties</file>
-               <file compressed="true">web/locale/uz/viewer.properties</file>
-               <file compressed="true">web/locale/nso/viewer.properties</file>
-               <file compressed="true">web/locale/pa-IN/viewer.properties</file>
-               <file compressed="true">web/locale/vi/viewer.properties</file>
-               <file compressed="true">web/locale/brx/viewer.properties</file>
-               <file compressed="true">web/locale/gn/viewer.properties</file>
-               <file compressed="true">web/locale/fi/viewer.properties</file>
-               <file compressed="true">web/locale/it/viewer.properties</file>
-               <file compressed="true">web/locale/zam/viewer.properties</file>
-               <file compressed="true">web/locale/lg/viewer.properties</file>
-               <file compressed="true">web/locale/ne-NP/viewer.properties</file>
-               <file compressed="true">web/locale/sv-SE/viewer.properties</file>
-               <file compressed="true">web/locale/ro/viewer.properties</file>
-               <file compressed="true">web/locale/eu/viewer.properties</file>
-               <file compressed="true">web/locale/bs/viewer.properties</file>
-               <file compressed="true">web/locale/kab/viewer.properties</file>
-               <file compressed="true">web/locale/en-US/viewer.properties</file>
-               <file compressed="true">web/locale/eo/viewer.properties</file>
-               <file compressed="true">web/locale/si/viewer.properties</file>
-               <file compressed="true">web/locale/zh-TW/viewer.properties</file>
-               <file compressed="true">web/locale/rm/viewer.properties</file>
-               <file compressed="true">web/locale/dsb/viewer.properties</file>
-               <file compressed="true">web/locale/sah/viewer.properties</file>
-               <file compressed="true">web/locale/es-MX/viewer.properties</file>
-               <file compressed="true">web/locale/sr/viewer.properties</file>
-               <file compressed="true">web/locale/ga-IE/viewer.properties</file>
-               <file compressed="true">web/locale/pt-BR/viewer.properties</file>
-               <file compressed="true">web/locale/he/viewer.properties</file>
-               <file compressed="true">web/locale/rw/viewer.properties</file>
-               <file compressed="true">web/locale/sq/viewer.properties</file>
-               <file compressed="true">web/locale/hu/viewer.properties</file>
-               <file compressed="true">web/locale/lv/viewer.properties</file>
-               <file compressed="true">web/locale/nn-NO/viewer.properties</file>
-               <file compressed="true">web/locale/en-CA/viewer.properties</file>
-               <file compressed="true">web/locale/ja/viewer.properties</file>
-               <file compressed="true">web/locale/hi-IN/viewer.properties</file>
-               <file compressed="true">web/locale/hy-AM/viewer.properties</file>
-               <file compressed="true">web/locale/de/viewer.properties</file>
-               <file compressed="true">web/locale/br/viewer.properties</file>
-               <file compressed="true">web/locale/hr/viewer.properties</file>
-               <file compressed="true">web/locale/th/viewer.properties</file>
-               <file compressed="true">web/locale/bn/viewer.properties</file>
-               <file compressed="true">web/locale/sw/viewer.properties</file>
-               <file compressed="true">web/locale/da/viewer.properties</file>
-               <file compressed="true">web/locale/lij/viewer.properties</file>
-               <file compressed="true">web/locale/son/viewer.properties</file>
-               <file compressed="true">web/locale/kok/viewer.properties</file>
-               <file compressed="true">web/locale/cak/viewer.properties</file>
-               <file compressed="true">web/locale/oc/viewer.properties</file>
-               <file compressed="true">web/locale/ak/viewer.properties</file>
-               <file compressed="true">web/locale/ca/viewer.properties</file>
-               <file compressed="true">web/locale/be/viewer.properties</file>
-               <file compressed="true">web/locale/sk/viewer.properties</file>
-               <file compressed="true">web/locale/hto/viewer.properties</file>
-               <file compressed="true">web/locale/ar/viewer.properties</file>
-               <file compressed="true">web/locale/gd/viewer.properties</file>
-               <file compressed="true">web/locale/trs/viewer.properties</file>
-               <file compressed="true">web/locale/pl/viewer.properties</file>
-               <file compressed="true">web/locale/bg/viewer.properties</file>
-               <file compressed="true">web/locale/bn-IN/viewer.properties</file>
-               <file compressed="true">web/locale/xh/viewer.properties</file>
-               <file compressed="true">web/locale/es-ES/viewer.properties</file>
-               <file compressed="true">web/locale/kn/viewer.properties</file>
-               <file compressed="true">web/locale/ms/viewer.properties</file>
-               <file compressed="true">web/locale/mn/viewer.properties</file>
-               <file compressed="true">web/locale/ku/viewer.properties</file>
-               <file compressed="true">web/locale/ast/viewer.properties</file>
-               <file compressed="true">web/locale/ko/viewer.properties</file>
-               <file compressed="true">web/locale/pt-PT/viewer.properties</file>
-               <file compressed="true">web/locale/tl/viewer.properties</file>
-               <file compressed="true">web/locale/gl/viewer.properties</file>
-               <file compressed="true">web/locale/an/viewer.properties</file>
-               <file compressed="true">web/locale/sl/viewer.properties</file>
-               <file compressed="true">web/locale/bo/viewer.properties</file>
-               <file compressed="true">web/locale/et/viewer.properties</file>
-               <file compressed="true">web/locale/hsb/viewer.properties</file>
-               <file compressed="true">web/locale/cy/viewer.properties</file>
-               <file compressed="true">web/locale/lt/viewer.properties</file>
-               <file compressed="true">web/locale/zu/viewer.properties</file>
-               <file compressed="true">web/locale/tn/viewer.properties</file>
-               <file compressed="true">web/locale/meh/viewer.properties</file>
-               <file compressed="true">web/locale/te/viewer.properties</file>
-               <file compressed="true">web/locale/csb/viewer.properties</file>
-               <file compressed="true">web/locale/tr/viewer.properties</file>
-               <file compressed="true">web/locale/wo/viewer.properties</file>
-               <file compressed="true">web/locale/cs/viewer.properties</file>
-               <file compressed="true">web/locale/fy-NL/viewer.properties</file>
-               <file compressed="true">web/locale/km/viewer.properties</file>
-               <file compressed="true">web/locale/fa/viewer.properties</file>
-               <file compressed="true">web/locale/sat/viewer.properties</file>
-               <file compressed="true">web/locale/lo/viewer.properties</file>
-               <file compressed="true">web/locale/ach/viewer.properties</file>
-               <file compressed="true">web/locale/ka/viewer.properties</file>
-               <file compressed="true">web/locale/nl/viewer.properties</file>
-               <file compressed="true">web/locale/es-CL/viewer.properties</file>
-               <file compressed="true">web/locale/my/viewer.properties</file>
-               <file compressed="true">web/locale/az/viewer.properties</file>
-               <file compressed="true">web/locale/el/viewer.properties</file>
-               <file compressed="true">web/locale/ks/viewer.properties</file>
-               <file compressed="true">web/locale/fr/viewer.properties</file>
-               <file compressed="true">web/locale/zh-CN/viewer.properties</file>
-               <file compressed="true">web/locale/nb-NO/viewer.properties</file>
-               <file compressed="true">web/locale/af/viewer.properties</file>
-               <file compressed="true">web/locale/ur/viewer.properties</file>
-               <file compressed="true">web/locale/is/viewer.properties</file>
-               <file compressed="true">web/locale/uk/viewer.properties</file>
-               <file compressed="true">web/locale/ta-LK/viewer.properties</file>
-               <file compressed="true">web/locale/ia/viewer.properties</file>
-               <file compressed="true">web/locale/ta/viewer.properties</file>
-               <file compressed="true">web/locale/en-GB/viewer.properties</file>
-               <file compressed="true">web/locale/gu-IN/viewer.properties</file>
-               <file compressed="true">web/locale/id/viewer.properties</file>
+               <file compressed="true">web/compressed.tracemonkey-pldi-09.pdf</file>
+               <file compressed="true">web/debugger.js</file>
+               <file compressed="true">web/cmaps/78-EUC-H.bcmap</file>
+               <file compressed="true">web/cmaps/78-EUC-V.bcmap</file>
+               <file compressed="true">web/cmaps/78-H.bcmap</file>
+               <file compressed="true">web/cmaps/78-RKSJ-H.bcmap</file>
+               <file compressed="true">web/cmaps/78-RKSJ-V.bcmap</file>
+               <file compressed="true">web/cmaps/78-V.bcmap</file>
+               <file compressed="true">web/cmaps/78ms-RKSJ-H.bcmap</file>
+               <file compressed="true">web/cmaps/78ms-RKSJ-V.bcmap</file>
                <file compressed="true">web/cmaps/83pv-RKSJ-H.bcmap</file>
-               <file compressed="true">web/cmaps/GBpc-EUC-H.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-Japan1-4.bcmap</file>
-               <file compressed="true">web/cmaps/GBTpc-EUC-V.bcmap</file>
+               <file compressed="true">web/cmaps/90ms-RKSJ-H.bcmap</file>
+               <file compressed="true">web/cmaps/90ms-RKSJ-V.bcmap</file>
+               <file compressed="true">web/cmaps/90msp-RKSJ-H.bcmap</file>
                <file compressed="true">web/cmaps/90msp-RKSJ-V.bcmap</file>
+               <file compressed="true">web/cmaps/90pv-RKSJ-H.bcmap</file>
                <file compressed="true">web/cmaps/90pv-RKSJ-V.bcmap</file>
-               <file compressed="true">web/cmaps/GB-EUC-V.bcmap</file>
-               <file compressed="true">web/cmaps/HKgccs-B5-H.bcmap</file>
-               <file compressed="true">web/cmaps/UniGB-UCS2-H.bcmap</file>
-               <file compressed="true">web/cmaps/KSC-H.bcmap</file>
-               <file compressed="true">web/cmaps/WP-Symbol.bcmap</file>
-               <file compressed="true">web/cmaps/90msp-RKSJ-H.bcmap</file>
-               <file compressed="true">web/cmaps/78ms-RKSJ-H.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-Japan1-UCS2.bcmap</file>
-               <file compressed="true">web/cmaps/V.bcmap</file>
-               <file compressed="true">web/cmaps/UniJIS2004-UTF16-H.bcmap</file>
-               <file compressed="true">web/cmaps/Ext-V.bcmap</file>
-               <file compressed="true">web/cmaps/UniJIS2004-UTF32-H.bcmap</file>
-               <file compressed="true">web/cmaps/KSCms-UHC-HW-H.bcmap</file>
-               <file compressed="true">web/cmaps/UniGB-UTF8-H.bcmap</file>
-               <file compressed="true">web/cmaps/KSC-EUC-H.bcmap</file>
-               <file compressed="true">web/cmaps/Hiragana.bcmap</file>
-               <file compressed="true">web/cmaps/KSC-V.bcmap</file>
-               <file compressed="true">web/cmaps/GBK-EUC-V.bcmap</file>
-               <file compressed="true">web/cmaps/UniCNS-UTF8-H.bcmap</file>
+               <file compressed="true">web/cmaps/Add-H.bcmap</file>
+               <file compressed="true">web/cmaps/Add-RKSJ-H.bcmap</file>
+               <file compressed="true">web/cmaps/Add-RKSJ-V.bcmap</file>
+               <file compressed="true">web/cmaps/Add-V.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-CNS1-0.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-CNS1-1.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-CNS1-2.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-CNS1-3.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-CNS1-4.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-CNS1-5.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-CNS1-6.bcmap</file>
                <file compressed="true">web/cmaps/Adobe-CNS1-UCS2.bcmap</file>
-               <file compressed="true">web/cmaps/UniKS-UTF16-V.bcmap</file>
-               <file compressed="true">web/cmaps/78-EUC-V.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-GB1-0.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-GB1-1.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-GB1-2.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-GB1-3.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-GB1-4.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-GB1-5.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-GB1-UCS2.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-Japan1-0.bcmap</file>
                <file compressed="true">web/cmaps/Adobe-Japan1-1.bcmap</file>
-               <file compressed="true">web/cmaps/UniJISPro-UCS2-HW-V.bcmap</file>
-               <file compressed="true">web/cmaps/HKm471-B5-V.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-CNS1-6.bcmap</file>
-               <file compressed="true">web/cmaps/UniCNS-UTF8-V.bcmap</file>
-               <file compressed="true">web/cmaps/UniJIS-UTF32-V.bcmap</file>
-               <file compressed="true">web/cmaps/UniGB-UTF16-V.bcmap</file>
-               <file compressed="true">web/cmaps/Add-H.bcmap</file>
-               <file compressed="true">web/cmaps/GBK2K-V.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-Japan1-2.bcmap</file>
                <file compressed="true">web/cmaps/Adobe-Japan1-3.bcmap</file>
-               <file compressed="true">web/cmaps/KSCms-UHC-V.bcmap</file>
-               <file compressed="true">web/cmaps/UniCNS-UTF32-H.bcmap</file>
-               <file compressed="true">web/cmaps/KSC-EUC-V.bcmap</file>
-               <file compressed="true">web/cmaps/78-EUC-H.bcmap</file>
-               <file compressed="true">web/cmaps/UniCNS-UTF32-V.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-Japan1-4.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-Japan1-5.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-Japan1-6.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-Japan1-UCS2.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-Korea1-0.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-Korea1-1.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-Korea1-2.bcmap</file>
+               <file compressed="true">web/cmaps/Adobe-Korea1-UCS2.bcmap</file>
+               <file compressed="true">web/cmaps/B5-H.bcmap</file>
+               <file compressed="true">web/cmaps/B5-V.bcmap</file>
+               <file compressed="true">web/cmaps/B5pc-H.bcmap</file>
+               <file compressed="true">web/cmaps/B5pc-V.bcmap</file>
+               <file compressed="true">web/cmaps/CNS-EUC-H.bcmap</file>
+               <file compressed="true">web/cmaps/CNS-EUC-V.bcmap</file>
+               <file compressed="true">web/cmaps/CNS1-H.bcmap</file>
+               <file compressed="true">web/cmaps/CNS1-V.bcmap</file>
+               <file compressed="true">web/cmaps/CNS2-H.bcmap</file>
+               <file compressed="true">web/cmaps/CNS2-V.bcmap</file>
+               <file compressed="true">web/cmaps/ETHK-B5-H.bcmap</file>
+               <file compressed="true">web/cmaps/ETHK-B5-V.bcmap</file>
+               <file compressed="true">web/cmaps/ETen-B5-H.bcmap</file>
+               <file compressed="true">web/cmaps/ETen-B5-V.bcmap</file>
+               <file compressed="true">web/cmaps/ETenms-B5-H.bcmap</file>
+               <file compressed="true">web/cmaps/ETenms-B5-V.bcmap</file>
                <file compressed="true">web/cmaps/EUC-H.bcmap</file>
-               <file compressed="true">web/cmaps/UniJIS-UTF8-H.bcmap</file>
+               <file compressed="true">web/cmaps/EUC-V.bcmap</file>
+               <file compressed="true">web/cmaps/Ext-H.bcmap</file>
+               <file compressed="true">web/cmaps/Ext-RKSJ-H.bcmap</file>
                <file compressed="true">web/cmaps/Ext-RKSJ-V.bcmap</file>
-               <file compressed="true">web/cmaps/90pv-RKSJ-H.bcmap</file>
-               <file compressed="true">web/cmaps/UniGB-UTF8-V.bcmap</file>
+               <file compressed="true">web/cmaps/Ext-V.bcmap</file>
+               <file compressed="true">web/cmaps/GB-EUC-H.bcmap</file>
+               <file compressed="true">web/cmaps/GB-EUC-V.bcmap</file>
                <file compressed="true">web/cmaps/GB-H.bcmap</file>
-               <file compressed="true">web/cmaps/KSCms-UHC-HW-V.bcmap</file>
-               <file compressed="true">web/cmaps/UniJIS-UCS2-HW-V.bcmap</file>
-               <file compressed="true">web/cmaps/LICENSE</file>
-               <file compressed="true">web/cmaps/ETen-B5-V.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-CNS1-5.bcmap</file>
-               <file compressed="true">web/cmaps/HKdlb-B5-H.bcmap</file>
-               <file compressed="true">web/cmaps/UniCNS-UTF16-H.bcmap</file>
-               <file compressed="true">web/cmaps/B5pc-H.bcmap</file>
-               <file compressed="true">web/cmaps/EUC-V.bcmap</file>
-               <file compressed="true">web/cmaps/UniJIS2004-UTF8-V.bcmap</file>
-               <file compressed="true">web/cmaps/UniGB-UTF32-V.bcmap</file>
-               <file compressed="true">web/cmaps/UniKS-UTF8-V.bcmap</file>
-               <file compressed="true">web/cmaps/CNS2-V.bcmap</file>
-               <file compressed="true">web/cmaps/UniJIS2004-UTF8-H.bcmap</file>
-               <file compressed="true">web/cmaps/RKSJ-H.bcmap</file>
-               <file compressed="true">web/cmaps/UniJISX0213-UTF32-V.bcmap</file>
-               <file compressed="true">web/cmaps/Add-V.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-CNS1-2.bcmap</file>
-               <file compressed="true">web/cmaps/HKscs-B5-V.bcmap</file>
-               <file compressed="true">web/cmaps/UniGB-UCS2-V.bcmap</file>
-               <file compressed="true">web/cmaps/H.bcmap</file>
+               <file compressed="true">web/cmaps/GB-V.bcmap</file>
+               <file compressed="true">web/cmaps/GBK-EUC-H.bcmap</file>
+               <file compressed="true">web/cmaps/GBK-EUC-V.bcmap</file>
+               <file compressed="true">web/cmaps/GBK2K-H.bcmap</file>
+               <file compressed="true">web/cmaps/GBK2K-V.bcmap</file>
                <file compressed="true">web/cmaps/GBKp-EUC-H.bcmap</file>
-               <file compressed="true">web/cmaps/ETenms-B5-H.bcmap</file>
-               <file compressed="true">web/cmaps/UniKS-UCS2-V.bcmap</file>
-               <file compressed="true">web/cmaps/KSCpc-EUC-V.bcmap</file>
+               <file compressed="true">web/cmaps/GBKp-EUC-V.bcmap</file>
+               <file compressed="true">web/cmaps/GBT-EUC-H.bcmap</file>
+               <file compressed="true">web/cmaps/GBT-EUC-V.bcmap</file>
                <file compressed="true">web/cmaps/GBT-H.bcmap</file>
-               <file compressed="true">web/cmaps/NWP-H.bcmap</file>
+               <file compressed="true">web/cmaps/GBT-V.bcmap</file>
                <file compressed="true">web/cmaps/GBTpc-EUC-H.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-Korea1-1.bcmap</file>
-               <file compressed="true">web/cmaps/UniCNS-UTF16-V.bcmap</file>
-               <file compressed="true">web/cmaps/UniJISX02132004-UTF32-V.bcmap</file>
-               <file compressed="true">web/cmaps/HKgccs-B5-V.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-Japan1-2.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-GB1-4.bcmap</file>
-               <file compressed="true">web/cmaps/UniJIS-UTF32-H.bcmap</file>
-               <file compressed="true">web/cmaps/GB-V.bcmap</file>
-               <file compressed="true">web/cmaps/78-H.bcmap</file>
-               <file compressed="true">web/cmaps/UniJISX02132004-UTF32-H.bcmap</file>
-               <file compressed="true">web/cmaps/78-V.bcmap</file>
-               <file compressed="true">web/cmaps/78-RKSJ-H.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-GB1-3.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-CNS1-4.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-Korea1-0.bcmap</file>
-               <file compressed="true">web/cmaps/UniJIS-UCS2-HW-H.bcmap</file>
-               <file compressed="true">web/cmaps/CNS1-V.bcmap</file>
-               <file compressed="true">web/cmaps/Hankaku.bcmap</file>
+               <file compressed="true">web/cmaps/GBTpc-EUC-V.bcmap</file>
+               <file compressed="true">web/cmaps/GBpc-EUC-H.bcmap</file>
                <file compressed="true">web/cmaps/GBpc-EUC-V.bcmap</file>
-               <file compressed="true">web/cmaps/UniJIS-UCS2-H.bcmap</file>
-               <file compressed="true">web/cmaps/B5pc-V.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-Japan1-6.bcmap</file>
-               <file compressed="true">web/cmaps/HKscs-B5-H.bcmap</file>
-               <file compressed="true">web/cmaps/90ms-RKSJ-V.bcmap</file>
-               <file compressed="true">web/cmaps/HKm471-B5-H.bcmap</file>
-               <file compressed="true">web/cmaps/CNS2-H.bcmap</file>
-               <file compressed="true">web/cmaps/UniJIS-UTF16-V.bcmap</file>
-               <file compressed="true">web/cmaps/UniKS-UCS2-H.bcmap</file>
+               <file compressed="true">web/cmaps/H.bcmap</file>
+               <file compressed="true">web/cmaps/HKdla-B5-H.bcmap</file>
+               <file compressed="true">web/cmaps/HKdla-B5-V.bcmap</file>
+               <file compressed="true">web/cmaps/HKdlb-B5-H.bcmap</file>
+               <file compressed="true">web/cmaps/HKdlb-B5-V.bcmap</file>
+               <file compressed="true">web/cmaps/HKgccs-B5-H.bcmap</file>
+               <file compressed="true">web/cmaps/HKgccs-B5-V.bcmap</file>
+               <file compressed="true">web/cmaps/HKm314-B5-H.bcmap</file>
                <file compressed="true">web/cmaps/HKm314-B5-V.bcmap</file>
-               <file compressed="true">web/cmaps/ETen-B5-H.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-Japan1-5.bcmap</file>
-               <file compressed="true">web/cmaps/CNS-EUC-H.bcmap</file>
-               <file compressed="true">web/cmaps/UniJIS-UTF16-H.bcmap</file>
-               <file compressed="true">web/cmaps/UniGB-UTF32-H.bcmap</file>
-               <file compressed="true">web/cmaps/GBKp-EUC-V.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-CNS1-1.bcmap</file>
-               <file compressed="true">web/cmaps/78-RKSJ-V.bcmap</file>
-               <file compressed="true">web/cmaps/UniKS-UTF16-H.bcmap</file>
-               <file compressed="true">web/cmaps/90ms-RKSJ-H.bcmap</file>
-               <file compressed="true">web/cmaps/B5-H.bcmap</file>
-               <file compressed="true">web/cmaps/KSCms-UHC-H.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-Korea1-2.bcmap</file>
+               <file compressed="true">web/cmaps/HKm471-B5-H.bcmap</file>
+               <file compressed="true">web/cmaps/HKm471-B5-V.bcmap</file>
+               <file compressed="true">web/cmaps/HKscs-B5-H.bcmap</file>
+               <file compressed="true">web/cmaps/HKscs-B5-V.bcmap</file>
+               <file compressed="true">web/cmaps/Hankaku.bcmap</file>
+               <file compressed="true">web/cmaps/Hiragana.bcmap</file>
+               <file compressed="true">web/cmaps/KSC-EUC-H.bcmap</file>
+               <file compressed="true">web/cmaps/KSC-EUC-V.bcmap</file>
+               <file compressed="true">web/cmaps/KSC-H.bcmap</file>
                <file compressed="true">web/cmaps/KSC-Johab-H.bcmap</file>
-               <file compressed="true">web/cmaps/GBT-V.bcmap</file>
-               <file compressed="true">web/cmaps/UniJIS-UCS2-V.bcmap</file>
+               <file compressed="true">web/cmaps/KSC-Johab-V.bcmap</file>
+               <file compressed="true">web/cmaps/KSC-V.bcmap</file>
+               <file compressed="true">web/cmaps/KSCms-UHC-H.bcmap</file>
+               <file compressed="true">web/cmaps/KSCms-UHC-HW-H.bcmap</file>
+               <file compressed="true">web/cmaps/KSCms-UHC-HW-V.bcmap</file>
+               <file compressed="true">web/cmaps/KSCms-UHC-V.bcmap</file>
+               <file compressed="true">web/cmaps/KSCpc-EUC-H.bcmap</file>
+               <file compressed="true">web/cmaps/KSCpc-EUC-V.bcmap</file>
                <file compressed="true">web/cmaps/Katakana.bcmap</file>
-               <file compressed="true">web/cmaps/Roman.bcmap</file>
-               <file compressed="true">web/cmaps/UniJISPro-UCS2-V.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-CNS1-0.bcmap</file>
-               <file compressed="true">web/cmaps/UniJISX0213-UTF32-H.bcmap</file>
+               <file compressed="true">web/cmaps/LICENSE</file>
+               <file compressed="true">web/cmaps/NWP-H.bcmap</file>
                <file compressed="true">web/cmaps/NWP-V.bcmap</file>
-               <file compressed="true">web/cmaps/GB-EUC-H.bcmap</file>
+               <file compressed="true">web/cmaps/RKSJ-H.bcmap</file>
                <file compressed="true">web/cmaps/RKSJ-V.bcmap</file>
-               <file compressed="true">web/cmaps/Ext-H.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-GB1-2.bcmap</file>
-               <file compressed="true">web/cmaps/KSCpc-EUC-H.bcmap</file>
-               <file compressed="true">web/cmaps/ETHK-B5-V.bcmap</file>
-               <file compressed="true">web/cmaps/ETHK-B5-H.bcmap</file>
-               <file compressed="true">web/cmaps/UniJISPro-UTF8-V.bcmap</file>
+               <file compressed="true">web/cmaps/Roman.bcmap</file>
+               <file compressed="true">web/cmaps/UniCNS-UCS2-H.bcmap</file>
                <file compressed="true">web/cmaps/UniCNS-UCS2-V.bcmap</file>
-               <file compressed="true">web/cmaps/HKdla-B5-V.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-GB1-1.bcmap</file>
-               <file compressed="true">web/cmaps/HKdla-B5-H.bcmap</file>
-               <file compressed="true">web/cmaps/UniKS-UTF8-H.bcmap</file>
-               <file compressed="true">web/cmaps/GBT-EUC-H.bcmap</file>
-               <file compressed="true">web/cmaps/UniKS-UTF32-V.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-Korea1-UCS2.bcmap</file>
-               <file compressed="true">web/cmaps/GBK2K-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniCNS-UTF16-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniCNS-UTF16-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniCNS-UTF32-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniCNS-UTF32-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniCNS-UTF8-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniCNS-UTF8-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniGB-UCS2-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniGB-UCS2-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniGB-UTF16-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniGB-UTF16-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniGB-UTF32-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniGB-UTF32-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniGB-UTF8-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniGB-UTF8-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniJIS-UCS2-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniJIS-UCS2-HW-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniJIS-UCS2-HW-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniJIS-UCS2-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniJIS-UTF16-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniJIS-UTF16-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniJIS-UTF32-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniJIS-UTF32-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniJIS-UTF8-H.bcmap</file>
                <file compressed="true">web/cmaps/UniJIS-UTF8-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniJIS2004-UTF16-H.bcmap</file>
                <file compressed="true">web/cmaps/UniJIS2004-UTF16-V.bcmap</file>
-               <file compressed="true">web/cmaps/ETenms-B5-V.bcmap</file>
-               <file compressed="true">web/cmaps/CNS1-H.bcmap</file>
-               <file compressed="true">web/cmaps/GBK-EUC-H.bcmap</file>
-               <file compressed="true">web/cmaps/UniGB-UTF16-H.bcmap</file>
-               <file compressed="true">web/cmaps/GBT-EUC-V.bcmap</file>
-               <file compressed="true">web/cmaps/UniCNS-UCS2-H.bcmap</file>
-               <file compressed="true">web/cmaps/Ext-RKSJ-H.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-GB1-UCS2.bcmap</file>
-               <file compressed="true">web/cmaps/HKdlb-B5-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniJIS2004-UTF32-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniJIS2004-UTF32-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniJIS2004-UTF8-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniJIS2004-UTF8-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniJISPro-UCS2-HW-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniJISPro-UCS2-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniJISPro-UTF8-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniJISX0213-UTF32-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniJISX0213-UTF32-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniJISX02132004-UTF32-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniJISX02132004-UTF32-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniKS-UCS2-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniKS-UCS2-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniKS-UTF16-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniKS-UTF16-V.bcmap</file>
                <file compressed="true">web/cmaps/UniKS-UTF32-H.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-Japan1-0.bcmap</file>
-               <file compressed="true">web/cmaps/UniJIS2004-UTF32-V.bcmap</file>
-               <file compressed="true">web/cmaps/HKm314-B5-H.bcmap</file>
-               <file compressed="true">web/cmaps/CNS-EUC-V.bcmap</file>
-               <file compressed="true">web/cmaps/Add-RKSJ-H.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-CNS1-3.bcmap</file>
-               <file compressed="true">web/cmaps/B5-V.bcmap</file>
-               <file compressed="true">web/cmaps/78ms-RKSJ-V.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-GB1-5.bcmap</file>
-               <file compressed="true">web/cmaps/KSC-Johab-V.bcmap</file>
-               <file compressed="true">web/cmaps/Add-RKSJ-V.bcmap</file>
-               <file compressed="true">web/cmaps/Adobe-GB1-0.bcmap</file>
-               <file compressed="true">web/images/secondaryToolbarButton-rotateCcw.png</file>
-               <file compressed="true">web/images/loading-small 2x png</file>
-               <file compressed="true">web/images/grab.cur</file>
-               <file compressed="true">web/images/secondaryToolbarButton-firstPage.png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-handTool 2x png</file>
-               <file compressed="true">web/images/toolbarButton-zoomIn 2x png</file>
-               <file compressed="true">web/images/texture.png</file>
-               <file compressed="true">web/images/toolbarButton-viewAttachments 2x png</file>
-               <file compressed="true">web/images/toolbarButton-zoomOut 2x png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-spreadEven 2x png</file>
-               <file compressed="true">web/images/treeitem-collapsed.png</file>
-               <file compressed="true">web/images/findbarButton-previous-rtl 2x png</file>
-               <file compressed="true">web/images/toolbarButton-menuArrows 2x png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-scrollVertical 2x png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-handTool.png</file>
+               <file compressed="true">web/cmaps/UniKS-UTF32-V.bcmap</file>
+               <file compressed="true">web/cmaps/UniKS-UTF8-H.bcmap</file>
+               <file compressed="true">web/cmaps/UniKS-UTF8-V.bcmap</file>
+               <file compressed="true">web/cmaps/V.bcmap</file>
+               <file compressed="true">web/cmaps/WP-Symbol.bcmap</file>
+               <file compressed="true">web/images/annotation-check.svg</file>
+               <file compressed="true">web/images/annotation-comment.svg</file>
+               <file compressed="true">web/images/annotation-help.svg</file>
+               <file compressed="true">web/images/annotation-insert.svg</file>
                <file compressed="true">web/images/annotation-key.svg</file>
-               <file compressed="true">web/images/treeitem-expanded.png</file>
+               <file compressed="true">web/images/annotation-newparagraph.svg</file>
+               <file compressed="true">web/images/annotation-noicon.svg</file>
+               <file compressed="true">web/images/annotation-note.svg</file>
+               <file compressed="true">web/images/annotation-paragraph.svg</file>
+               <file compressed="true">web/images/findbarButton-next.png</file>
                <file compressed="true">web/images/findbarButton-next 2x png</file>
-               <file compressed="true">web/images/toolbarButton-viewOutline.png</file>
-               <file compressed="true">web/images/toolbarButton-sidebarToggle 2x png</file>
-               <file compressed="true">web/images/toolbarButton-pageDown.png</file>
-               <file compressed="true">web/images/toolbarButton-pageDown 2x png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-spreadNone 2x png</file>
-               <file compressed="true">web/images/toolbarButton-bookmark 2x png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-spreadOdd.png</file>
-               <file compressed="true">web/images/toolbarButton-search.png</file>
+               <file compressed="true">web/images/findbarButton-previous.png</file>
+               <file compressed="true">web/images/findbarButton-previous 2x png</file>
+               <file compressed="true">web/images/grab.cur</file>
                <file compressed="true">web/images/grabbing.cur</file>
                <file compressed="true">web/images/loading-icon.gif</file>
+               <file compressed="true">web/images/loading-small.png</file>
+               <file compressed="true">web/images/loading-small 2x png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-documentProperties.png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-documentProperties 2x png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-firstPage.png</file>
                <file compressed="true">web/images/secondaryToolbarButton-firstPage 2x png</file>
-               <file compressed="true">web/images/annotation-note.svg</file>
-               <file compressed="true">web/images/annotation-paragraph.svg</file>
-               <file compressed="true">web/images/toolbarButton-presentationMode 2x png</file>
-               <file compressed="true">web/images/toolbarButton-secondaryToolbarToggle-rtl 2x png</file>
-               <file compressed="true">web/images/toolbarButton-viewOutline-rtl 2x png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-spreadNone.png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-handTool.png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-handTool 2x png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-lastPage.png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-lastPage 2x png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-rotateCcw.png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-rotateCcw 2x png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-rotateCw.png</file>
                <file compressed="true">web/images/secondaryToolbarButton-rotateCw 2x png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-spreadOdd 2x png</file>
-               <file compressed="true">web/images/annotation-comment.svg</file>
-               <file compressed="true">web/images/toolbarButton-search 2x png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-documentProperties 2x png</file>
-               <file compressed="true">web/images/toolbarButton-secondaryToolbarToggle-rtl.png</file>
-               <file compressed="true">web/images/annotation-check.svg</file>
-               <file compressed="true">web/images/toolbarButton-download.png</file>
-               <file compressed="true">web/images/toolbarButton-viewThumbnail 2x png</file>
-               <file compressed="true">web/images/loading-small.png</file>
-               <file compressed="true">web/images/annotation-insert.svg</file>
+               <file compressed="true">web/images/secondaryToolbarButton-scrollHorizontal.png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-scrollHorizontal 2x png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-scrollVertical.png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-scrollVertical 2x png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-scrollWrapped.png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-scrollWrapped 2x png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-selectTool.png</file>
                <file compressed="true">web/images/secondaryToolbarButton-selectTool 2x png</file>
-               <file compressed="true">web/images/treeitem-expanded 2x png</file>
-               <file compressed="true">web/images/toolbarButton-presentationMode.png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-rotateCw.png</file>
-               <file compressed="true">web/images/toolbarButton-pageUp 2x png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-spreadEven.png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-spreadEven 2x png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-spreadNone.png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-spreadNone 2x png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-spreadOdd.png</file>
+               <file compressed="true">web/images/secondaryToolbarButton-spreadOdd 2x png</file>
                <file compressed="true">web/images/shadow.png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-scrollWrapped 2x png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-lastPage.png</file>
-               <file compressed="true">web/images/toolbarButton-zoomOut.png</file>
-               <file compressed="true">web/images/toolbarButton-sidebarToggle-rtl.png</file>
-               <file compressed="true">web/images/toolbarButton-pageDown-rtl.png</file>
-               <file compressed="true">web/images/toolbarButton-viewOutline-rtl.png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-scrollVertical.png</file>
+               <file compressed="true">web/images/texture.png</file>
+               <file compressed="true">web/images/toolbarButton-bookmark.png</file>
+               <file compressed="true">web/images/toolbarButton-bookmark 2x png</file>
+               <file compressed="true">web/images/toolbarButton-download.png</file>
+               <file compressed="true">web/images/toolbarButton-download 2x png</file>
+               <file compressed="true">web/images/toolbarButton-menuArrows.png</file>
+               <file compressed="true">web/images/toolbarButton-menuArrows 2x png</file>
+               <file compressed="true">web/images/toolbarButton-openFile.png</file>
                <file compressed="true">web/images/toolbarButton-openFile 2x png</file>
-               <file compressed="true">web/images/treeitem-collapsed-rtl.png</file>
-               <file compressed="true">web/images/toolbarButton-pageUp-rtl 2x png</file>
-               <file compressed="true">web/images/treeitem-collapsed-rtl 2x png</file>
+               <file compressed="true">web/images/toolbarButton-pageDown.png</file>
+               <file compressed="true">web/images/toolbarButton-pageDown 2x png</file>
                <file compressed="true">web/images/toolbarButton-pageUp.png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-lastPage 2x png</file>
+               <file compressed="true">web/images/toolbarButton-pageUp 2x png</file>
+               <file compressed="true">web/images/toolbarButton-presentationMode.png</file>
+               <file compressed="true">web/images/toolbarButton-presentationMode 2x png</file>
+               <file compressed="true">web/images/toolbarButton-print.png</file>
                <file compressed="true">web/images/toolbarButton-print 2x png</file>
-               <file compressed="true">web/images/annotation-help.svg</file>
-               <file compressed="true">web/images/secondaryToolbarButton-scrollHorizontal 2x png</file>
-               <file compressed="true">web/images/toolbarButton-menuArrows.png</file>
-               <file compressed="true">web/images/toolbarButton-viewThumbnail.png</file>
+               <file compressed="true">web/images/toolbarButton-search.png</file>
+               <file compressed="true">web/images/toolbarButton-search 2x png</file>
+               <file compressed="true">web/images/toolbarButton-secondaryToolbarToggle.png</file>
                <file compressed="true">web/images/toolbarButton-secondaryToolbarToggle 2x png</file>
-               <file compressed="true">web/images/toolbarButton-pageDown-rtl 2x png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-selectTool.png</file>
                <file compressed="true">web/images/toolbarButton-sidebarToggle.png</file>
+               <file compressed="true">web/images/toolbarButton-sidebarToggle 2x png</file>
                <file compressed="true">web/images/toolbarButton-viewAttachments.png</file>
-               <file compressed="true">web/images/toolbarButton-print.png</file>
-               <file compressed="true">web/images/findbarButton-previous.png</file>
-               <file compressed="true">web/images/annotation-noicon.svg</file>
-               <file compressed="true">web/images/annotation-newparagraph.svg</file>
-               <file compressed="true">web/images/toolbarButton-openFile.png</file>
-               <file compressed="true">web/images/findbarButton-next-rtl 2x png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-scrollHorizontal.png</file>
-               <file compressed="true">web/images/findbarButton-next.png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-documentProperties.png</file>
-               <file compressed="true">web/images/toolbarButton-bookmark.png</file>
-               <file compressed="true">web/images/treeitem-collapsed 2x png</file>
-               <file compressed="true">web/images/findbarButton-previous-rtl.png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-rotateCcw 2x png</file>
-               <file compressed="true">web/images/toolbarButton-secondaryToolbarToggle.png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-spreadEven.png</file>
-               <file compressed="true">web/images/toolbarButton-sidebarToggle-rtl 2x png</file>
-               <file compressed="true">web/images/toolbarButton-pageUp-rtl.png</file>
-               <file compressed="true">web/images/toolbarButton-zoomIn.png</file>
+               <file compressed="true">web/images/toolbarButton-viewAttachments 2x png</file>
+               <file compressed="true">web/images/toolbarButton-viewOutline.png</file>
                <file compressed="true">web/images/toolbarButton-viewOutline 2x png</file>
-               <file compressed="true">web/images/secondaryToolbarButton-scrollWrapped.png</file>
-               <file compressed="true">web/images/findbarButton-previous 2x png</file>
-               <file compressed="true">web/images/toolbarButton-download 2x png</file>
-               <file compressed="true">web/images/findbarButton-next-rtl.png</file>
-               <file compressed="true">build/pdf.js</file>
-               <file compressed="true">build/pdf.worker.js</file>
+               <file compressed="true">web/images/toolbarButton-viewThumbnail.png</file>
+               <file compressed="true">web/images/toolbarButton-viewThumbnail 2x png</file>
+               <file compressed="true">web/images/toolbarButton-zoomIn.png</file>
+               <file compressed="true">web/images/toolbarButton-zoomIn 2x png</file>
+               <file compressed="true">web/images/toolbarButton-zoomOut.png</file>
+               <file compressed="true">web/images/toolbarButton-zoomOut 2x png</file>
+               <file compressed="true">web/images/treeitem-collapsed.png</file>
+               <file compressed="true">web/images/treeitem-collapsed 2x png</file>
+               <file compressed="true">web/images/treeitem-expanded.png</file>
+               <file compressed="true">web/images/treeitem-expanded 2x png</file>
+               <file compressed="true">web/locale/locale.properties</file>
+               <file compressed="true">web/locale/ach/viewer.properties</file>
+               <file compressed="true">web/locale/af/viewer.properties</file>
+               <file compressed="true">web/locale/an/viewer.properties</file>
+               <file compressed="true">web/locale/ar/viewer.properties</file>
+               <file compressed="true">web/locale/ast/viewer.properties</file>
+               <file compressed="true">web/locale/az/viewer.properties</file>
+               <file compressed="true">web/locale/be/viewer.properties</file>
+               <file compressed="true">web/locale/bg/viewer.properties</file>
+               <file compressed="true">web/locale/bn/viewer.properties</file>
+               <file compressed="true">web/locale/bo/viewer.properties</file>
+               <file compressed="true">web/locale/br/viewer.properties</file>
+               <file compressed="true">web/locale/brx/viewer.properties</file>
+               <file compressed="true">web/locale/bs/viewer.properties</file>
+               <file compressed="true">web/locale/ca/viewer.properties</file>
+               <file compressed="true">web/locale/cak/viewer.properties</file>
+               <file compressed="true">web/locale/cs/viewer.properties</file>
+               <file compressed="true">web/locale/cy/viewer.properties</file>
+               <file compressed="true">web/locale/da/viewer.properties</file>
+               <file compressed="true">web/locale/de/viewer.properties</file>
+               <file compressed="true">web/locale/dsb/viewer.properties</file>
+               <file compressed="true">web/locale/el/viewer.properties</file>
+               <file compressed="true">web/locale/en-CA/viewer.properties</file>
+               <file compressed="true">web/locale/en-GB/viewer.properties</file>
+               <file compressed="true">web/locale/en-US/viewer.properties</file>
+               <file compressed="true">web/locale/eo/viewer.properties</file>
+               <file compressed="true">web/locale/es-AR/viewer.properties</file>
+               <file compressed="true">web/locale/es-CL/viewer.properties</file>
+               <file compressed="true">web/locale/es-ES/viewer.properties</file>
+               <file compressed="true">web/locale/es-MX/viewer.properties</file>
+               <file compressed="true">web/locale/et/viewer.properties</file>
+               <file compressed="true">web/locale/eu/viewer.properties</file>
+               <file compressed="true">web/locale/fa/viewer.properties</file>
+               <file compressed="true">web/locale/ff/viewer.properties</file>
+               <file compressed="true">web/locale/fi/viewer.properties</file>
+               <file compressed="true">web/locale/fr/viewer.properties</file>
+               <file compressed="true">web/locale/fy-NL/viewer.properties</file>
+               <file compressed="true">web/locale/ga-IE/viewer.properties</file>
+               <file compressed="true">web/locale/gd/viewer.properties</file>
+               <file compressed="true">web/locale/gl/viewer.properties</file>
+               <file compressed="true">web/locale/gn/viewer.properties</file>
+               <file compressed="true">web/locale/gu-IN/viewer.properties</file>
+               <file compressed="true">web/locale/he/viewer.properties</file>
+               <file compressed="true">web/locale/hi-IN/viewer.properties</file>
+               <file compressed="true">web/locale/hr/viewer.properties</file>
+               <file compressed="true">web/locale/hsb/viewer.properties</file>
+               <file compressed="true">web/locale/hu/viewer.properties</file>
+               <file compressed="true">web/locale/hy-AM/viewer.properties</file>
+               <file compressed="true">web/locale/hye/viewer.properties</file>
+               <file compressed="true">web/locale/ia/viewer.properties</file>
+               <file compressed="true">web/locale/id/viewer.properties</file>
+               <file compressed="true">web/locale/is/viewer.properties</file>
+               <file compressed="true">web/locale/it/viewer.properties</file>
+               <file compressed="true">web/locale/ja/viewer.properties</file>
+               <file compressed="true">web/locale/ka/viewer.properties</file>
+               <file compressed="true">web/locale/kab/viewer.properties</file>
+               <file compressed="true">web/locale/kk/viewer.properties</file>
+               <file compressed="true">web/locale/km/viewer.properties</file>
+               <file compressed="true">web/locale/kn/viewer.properties</file>
+               <file compressed="true">web/locale/ko/viewer.properties</file>
+               <file compressed="true">web/locale/lij/viewer.properties</file>
+               <file compressed="true">web/locale/lo/viewer.properties</file>
+               <file compressed="true">web/locale/lt/viewer.properties</file>
+               <file compressed="true">web/locale/ltg/viewer.properties</file>
+               <file compressed="true">web/locale/lv/viewer.properties</file>
+               <file compressed="true">web/locale/meh/viewer.properties</file>
+               <file compressed="true">web/locale/mk/viewer.properties</file>
+               <file compressed="true">web/locale/mr/viewer.properties</file>
+               <file compressed="true">web/locale/ms/viewer.properties</file>
+               <file compressed="true">web/locale/my/viewer.properties</file>
+               <file compressed="true">web/locale/nb-NO/viewer.properties</file>
+               <file compressed="true">web/locale/ne-NP/viewer.properties</file>
+               <file compressed="true">web/locale/nl/viewer.properties</file>
+               <file compressed="true">web/locale/nn-NO/viewer.properties</file>
+               <file compressed="true">web/locale/oc/viewer.properties</file>
+               <file compressed="true">web/locale/pa-IN/viewer.properties</file>
+               <file compressed="true">web/locale/pl/viewer.properties</file>
+               <file compressed="true">web/locale/pt-BR/viewer.properties</file>
+               <file compressed="true">web/locale/pt-PT/viewer.properties</file>
+               <file compressed="true">web/locale/rm/viewer.properties</file>
+               <file compressed="true">web/locale/ro/viewer.properties</file>
+               <file compressed="true">web/locale/ru/viewer.properties</file>
+               <file compressed="true">web/locale/scn/viewer.properties</file>
+               <file compressed="true">web/locale/si/viewer.properties</file>
+               <file compressed="true">web/locale/sk/viewer.properties</file>
+               <file compressed="true">web/locale/sl/viewer.properties</file>
+               <file compressed="true">web/locale/son/viewer.properties</file>
+               <file compressed="true">web/locale/sq/viewer.properties</file>
+               <file compressed="true">web/locale/sr/viewer.properties</file>
+               <file compressed="true">web/locale/sv-SE/viewer.properties</file>
+               <file compressed="true">web/locale/ta/viewer.properties</file>
+               <file compressed="true">web/locale/te/viewer.properties</file>
+               <file compressed="true">web/locale/th/viewer.properties</file>
+               <file compressed="true">web/locale/tl/viewer.properties</file>
+               <file compressed="true">web/locale/tr/viewer.properties</file>
+               <file compressed="true">web/locale/trs/viewer.properties</file>
+               <file compressed="true">web/locale/uk/viewer.properties</file>
+               <file compressed="true">web/locale/ur/viewer.properties</file>
+               <file compressed="true">web/locale/uz/viewer.properties</file>
+               <file compressed="true">web/locale/vi/viewer.properties</file>
+               <file compressed="true">web/locale/wo/viewer.properties</file>
+               <file compressed="true">web/locale/xh/viewer.properties</file>
+               <file compressed="true">web/locale/zh-CN/viewer.properties</file>
+               <file compressed="true">web/locale/zh-TW/viewer.properties</file>
        </gresource>
 </gresources>
diff --git a/third-party/pdfjs/web/compressed.tracemonkey-pldi-09.pdf 
b/third-party/pdfjs/web/compressed.tracemonkey-pldi-09.pdf
new file mode 100644
index 000000000..65570184a
Binary files /dev/null and b/third-party/pdfjs/web/compressed.tracemonkey-pldi-09.pdf differ
diff --git a/third-party/pdfjs/web/debugger.js b/third-party/pdfjs/web/debugger.js
new file mode 100644
index 000000000..500522d84
--- /dev/null
+++ b/third-party/pdfjs/web/debugger.js
@@ -0,0 +1,624 @@
+/* Copyright 2012 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.
+ */
+/* eslint-disable no-var */
+
+"use strict";
+
+var FontInspector = (function FontInspectorClosure() {
+  var fonts;
+  var active = false;
+  var fontAttribute = "data-font-name";
+  function removeSelection() {
+    const divs = document.querySelectorAll(`span[${fontAttribute}]`);
+    for (const div of divs) {
+      div.className = "";
+    }
+  }
+  function resetSelection() {
+    const divs = document.querySelectorAll(`span[${fontAttribute}]`);
+    for (const div of divs) {
+      div.className = "debuggerHideText";
+    }
+  }
+  function selectFont(fontName, show) {
+    const divs = document.querySelectorAll(
+      `span[${fontAttribute}=${fontName}]`
+    );
+    for (const div of divs) {
+      div.className = show ? "debuggerShowText" : "debuggerHideText";
+    }
+  }
+  function textLayerClick(e) {
+    if (
+      !e.target.dataset.fontName ||
+      e.target.tagName.toUpperCase() !== "SPAN"
+    ) {
+      return;
+    }
+    var fontName = e.target.dataset.fontName;
+    var selects = document.getElementsByTagName("input");
+    for (var i = 0; i < selects.length; ++i) {
+      var select = selects[i];
+      if (select.dataset.fontName !== fontName) {
+        continue;
+      }
+      select.checked = !select.checked;
+      selectFont(fontName, select.checked);
+      select.scrollIntoView();
+    }
+  }
+  return {
+    // Properties/functions needed by PDFBug.
+    id: "FontInspector",
+    name: "Font Inspector",
+    panel: null,
+    manager: null,
+    init: function init(pdfjsLib) {
+      var panel = this.panel;
+      var tmp = document.createElement("button");
+      tmp.addEventListener("click", resetSelection);
+      tmp.textContent = "Refresh";
+      panel.appendChild(tmp);
+
+      fonts = document.createElement("div");
+      panel.appendChild(fonts);
+    },
+    cleanup: function cleanup() {
+      fonts.textContent = "";
+    },
+    enabled: false,
+    get active() {
+      return active;
+    },
+    set active(value) {
+      active = value;
+      if (active) {
+        document.body.addEventListener("click", textLayerClick, true);
+        resetSelection();
+      } else {
+        document.body.removeEventListener("click", textLayerClick, true);
+        removeSelection();
+      }
+    },
+    // FontInspector specific functions.
+    fontAdded: function fontAdded(fontObj, url) {
+      function properties(obj, list) {
+        var moreInfo = document.createElement("table");
+        for (var i = 0; i < list.length; i++) {
+          var tr = document.createElement("tr");
+          var td1 = document.createElement("td");
+          td1.textContent = list[i];
+          tr.appendChild(td1);
+          var td2 = document.createElement("td");
+          td2.textContent = obj[list[i]].toString();
+          tr.appendChild(td2);
+          moreInfo.appendChild(tr);
+        }
+        return moreInfo;
+      }
+      var moreInfo = properties(fontObj, ["name", "type"]);
+      const fontName = fontObj.loadedName;
+      var font = document.createElement("div");
+      var name = document.createElement("span");
+      name.textContent = fontName;
+      var download = document.createElement("a");
+      if (url) {
+        url = /url\(['"]?([^\)"']+)/.exec(url);
+        download.href = url[1];
+      } else if (fontObj.data) {
+        download.href = URL.createObjectURL(
+          new Blob([fontObj.data], { type: fontObj.mimeType })
+        );
+      }
+      download.textContent = "Download";
+      var logIt = document.createElement("a");
+      logIt.href = "";
+      logIt.textContent = "Log";
+      logIt.addEventListener("click", function (event) {
+        event.preventDefault();
+        console.log(fontObj);
+      });
+      const select = document.createElement("input");
+      select.setAttribute("type", "checkbox");
+      select.dataset.fontName = fontName;
+      select.addEventListener("click", function () {
+        selectFont(fontName, select.checked);
+      });
+      font.appendChild(select);
+      font.appendChild(name);
+      font.appendChild(document.createTextNode(" "));
+      font.appendChild(download);
+      font.appendChild(document.createTextNode(" "));
+      font.appendChild(logIt);
+      font.appendChild(moreInfo);
+      fonts.appendChild(font);
+      // Somewhat of a hack, should probably add a hook for when the text layer
+      // is done rendering.
+      setTimeout(() => {
+        if (this.active) {
+          resetSelection();
+        }
+      }, 2000);
+    },
+  };
+})();
+
+var opMap;
+
+// Manages all the page steppers.
+var StepperManager = (function StepperManagerClosure() {
+  var steppers = [];
+  var stepperDiv = null;
+  var stepperControls = null;
+  var stepperChooser = null;
+  var breakPoints = Object.create(null);
+  return {
+    // Properties/functions needed by PDFBug.
+    id: "Stepper",
+    name: "Stepper",
+    panel: null,
+    manager: null,
+    init: function init(pdfjsLib) {
+      var self = this;
+      stepperControls = document.createElement("div");
+      stepperChooser = document.createElement("select");
+      stepperChooser.addEventListener("change", function (event) {
+        self.selectStepper(this.value);
+      });
+      stepperControls.appendChild(stepperChooser);
+      stepperDiv = document.createElement("div");
+      this.panel.appendChild(stepperControls);
+      this.panel.appendChild(stepperDiv);
+      if (sessionStorage.getItem("pdfjsBreakPoints")) {
+        breakPoints = JSON.parse(sessionStorage.getItem("pdfjsBreakPoints"));
+      }
+
+      opMap = Object.create(null);
+      for (var key in pdfjsLib.OPS) {
+        opMap[pdfjsLib.OPS[key]] = key;
+      }
+    },
+    cleanup: function cleanup() {
+      stepperChooser.textContent = "";
+      stepperDiv.textContent = "";
+      steppers = [];
+    },
+    enabled: false,
+    active: false,
+    // Stepper specific functions.
+    create: function create(pageIndex) {
+      var debug = document.createElement("div");
+      debug.id = "stepper" + pageIndex;
+      debug.setAttribute("hidden", true);
+      debug.className = "stepper";
+      stepperDiv.appendChild(debug);
+      var b = document.createElement("option");
+      b.textContent = "Page " + (pageIndex + 1);
+      b.value = pageIndex;
+      stepperChooser.appendChild(b);
+      var initBreakPoints = breakPoints[pageIndex] || [];
+      var stepper = new Stepper(debug, pageIndex, initBreakPoints);
+      steppers.push(stepper);
+      if (steppers.length === 1) {
+        this.selectStepper(pageIndex, false);
+      }
+      return stepper;
+    },
+    selectStepper: function selectStepper(pageIndex, selectPanel) {
+      var i;
+      pageIndex = pageIndex | 0;
+      if (selectPanel) {
+        this.manager.selectPanel(this);
+      }
+      for (i = 0; i < steppers.length; ++i) {
+        var stepper = steppers[i];
+        if (stepper.pageIndex === pageIndex) {
+          stepper.panel.removeAttribute("hidden");
+        } else {
+          stepper.panel.setAttribute("hidden", true);
+        }
+      }
+      var options = stepperChooser.options;
+      for (i = 0; i < options.length; ++i) {
+        var option = options[i];
+        option.selected = (option.value | 0) === pageIndex;
+      }
+    },
+    saveBreakPoints: function saveBreakPoints(pageIndex, bps) {
+      breakPoints[pageIndex] = bps;
+      sessionStorage.setItem("pdfjsBreakPoints", JSON.stringify(breakPoints));
+    },
+  };
+})();
+
+// The stepper for each page's IRQueue.
+var Stepper = (function StepperClosure() {
+  // Shorter way to create element and optionally set textContent.
+  function c(tag, textContent) {
+    var d = document.createElement(tag);
+    if (textContent) {
+      d.textContent = textContent;
+    }
+    return d;
+  }
+
+  function simplifyArgs(args) {
+    if (typeof args === "string") {
+      var MAX_STRING_LENGTH = 75;
+      return args.length <= MAX_STRING_LENGTH
+        ? args
+        : args.substring(0, MAX_STRING_LENGTH) + "...";
+    }
+    if (typeof args !== "object" || args === null) {
+      return args;
+    }
+    if ("length" in args) {
+      // array
+      var simpleArgs = [],
+        i,
+        ii;
+      var MAX_ITEMS = 10;
+      for (i = 0, ii = Math.min(MAX_ITEMS, args.length); i < ii; i++) {
+        simpleArgs.push(simplifyArgs(args[i]));
+      }
+      if (i < args.length) {
+        simpleArgs.push("...");
+      }
+      return simpleArgs;
+    }
+    var simpleObj = {};
+    for (var key in args) {
+      simpleObj[key] = simplifyArgs(args[key]);
+    }
+    return simpleObj;
+  }
+
+  // eslint-disable-next-line no-shadow
+  function Stepper(panel, pageIndex, initialBreakPoints) {
+    this.panel = panel;
+    this.breakPoint = 0;
+    this.nextBreakPoint = null;
+    this.pageIndex = pageIndex;
+    this.breakPoints = initialBreakPoints;
+    this.currentIdx = -1;
+    this.operatorListIdx = 0;
+  }
+  Stepper.prototype = {
+    init: function init(operatorList) {
+      var panel = this.panel;
+      var content = c("div", "c=continue, s=step");
+      var table = c("table");
+      content.appendChild(table);
+      table.cellSpacing = 0;
+      var headerRow = c("tr");
+      table.appendChild(headerRow);
+      headerRow.appendChild(c("th", "Break"));
+      headerRow.appendChild(c("th", "Idx"));
+      headerRow.appendChild(c("th", "fn"));
+      headerRow.appendChild(c("th", "args"));
+      panel.appendChild(content);
+      this.table = table;
+      this.updateOperatorList(operatorList);
+    },
+    updateOperatorList: function updateOperatorList(operatorList) {
+      var self = this;
+
+      function cboxOnClick() {
+        var x = +this.dataset.idx;
+        if (this.checked) {
+          self.breakPoints.push(x);
+        } else {
+          self.breakPoints.splice(self.breakPoints.indexOf(x), 1);
+        }
+        StepperManager.saveBreakPoints(self.pageIndex, self.breakPoints);
+      }
+
+      var MAX_OPERATORS_COUNT = 15000;
+      if (this.operatorListIdx > MAX_OPERATORS_COUNT) {
+        return;
+      }
+
+      var chunk = document.createDocumentFragment();
+      var operatorsToDisplay = Math.min(
+        MAX_OPERATORS_COUNT,
+        operatorList.fnArray.length
+      );
+      for (var i = this.operatorListIdx; i < operatorsToDisplay; i++) {
+        var line = c("tr");
+        line.className = "line";
+        line.dataset.idx = i;
+        chunk.appendChild(line);
+        var checked = this.breakPoints.includes(i);
+        var args = operatorList.argsArray[i] || [];
+
+        var breakCell = c("td");
+        var cbox = c("input");
+        cbox.type = "checkbox";
+        cbox.className = "points";
+        cbox.checked = checked;
+        cbox.dataset.idx = i;
+        cbox.onclick = cboxOnClick;
+
+        breakCell.appendChild(cbox);
+        line.appendChild(breakCell);
+        line.appendChild(c("td", i.toString()));
+        var fn = opMap[operatorList.fnArray[i]];
+        var decArgs = args;
+        if (fn === "showText") {
+          var glyphs = args[0];
+          var newArgs = [];
+          var str = [];
+          for (var j = 0; j < glyphs.length; j++) {
+            var glyph = glyphs[j];
+            if (typeof glyph === "object" && glyph !== null) {
+              str.push(glyph.fontChar);
+            } else {
+              if (str.length > 0) {
+                newArgs.push(str.join(""));
+                str = [];
+              }
+              newArgs.push(glyph); // null or number
+            }
+          }
+          if (str.length > 0) {
+            newArgs.push(str.join(""));
+          }
+          decArgs = [newArgs];
+        }
+        line.appendChild(c("td", fn));
+        line.appendChild(c("td", JSON.stringify(simplifyArgs(decArgs))));
+      }
+      if (operatorsToDisplay < operatorList.fnArray.length) {
+        line = c("tr");
+        var lastCell = c("td", "...");
+        lastCell.colspan = 4;
+        chunk.appendChild(lastCell);
+      }
+      this.operatorListIdx = operatorList.fnArray.length;
+      this.table.appendChild(chunk);
+    },
+    getNextBreakPoint: function getNextBreakPoint() {
+      this.breakPoints.sort(function (a, b) {
+        return a - b;
+      });
+      for (var i = 0; i < this.breakPoints.length; i++) {
+        if (this.breakPoints[i] > this.currentIdx) {
+          return this.breakPoints[i];
+        }
+      }
+      return null;
+    },
+    breakIt: function breakIt(idx, callback) {
+      StepperManager.selectStepper(this.pageIndex, true);
+      var self = this;
+      var dom = document;
+      self.currentIdx = idx;
+      var listener = function (e) {
+        switch (e.keyCode) {
+          case 83: // step
+            dom.removeEventListener("keydown", listener);
+            self.nextBreakPoint = self.currentIdx + 1;
+            self.goTo(-1);
+            callback();
+            break;
+          case 67: // continue
+            dom.removeEventListener("keydown", listener);
+            var breakPoint = self.getNextBreakPoint();
+            self.nextBreakPoint = breakPoint;
+            self.goTo(-1);
+            callback();
+            break;
+        }
+      };
+      dom.addEventListener("keydown", listener);
+      self.goTo(idx);
+    },
+    goTo: function goTo(idx) {
+      var allRows = this.panel.getElementsByClassName("line");
+      for (var x = 0, xx = allRows.length; x < xx; ++x) {
+        var row = allRows[x];
+        if ((row.dataset.idx | 0) === idx) {
+          row.style.backgroundColor = "rgb(251,250,207)";
+          row.scrollIntoView();
+        } else {
+          row.style.backgroundColor = null;
+        }
+      }
+    },
+  };
+  return Stepper;
+})();
+
+var Stats = (function Stats() {
+  var stats = [];
+  function clear(node) {
+    while (node.hasChildNodes()) {
+      node.removeChild(node.lastChild);
+    }
+  }
+  function getStatIndex(pageNumber) {
+    for (var i = 0, ii = stats.length; i < ii; ++i) {
+      if (stats[i].pageNumber === pageNumber) {
+        return i;
+      }
+    }
+    return false;
+  }
+  return {
+    // Properties/functions needed by PDFBug.
+    id: "Stats",
+    name: "Stats",
+    panel: null,
+    manager: null,
+    init(pdfjsLib) {},
+    enabled: false,
+    active: false,
+    // Stats specific functions.
+    add(pageNumber, stat) {
+      if (!stat) {
+        return;
+      }
+      var statsIndex = getStatIndex(pageNumber);
+      if (statsIndex !== false) {
+        const b = stats[statsIndex];
+        this.panel.removeChild(b.div);
+        stats.splice(statsIndex, 1);
+      }
+      var wrapper = document.createElement("div");
+      wrapper.className = "stats";
+      var title = document.createElement("div");
+      title.className = "title";
+      title.textContent = "Page: " + pageNumber;
+      var statsDiv = document.createElement("div");
+      statsDiv.textContent = stat.toString();
+      wrapper.appendChild(title);
+      wrapper.appendChild(statsDiv);
+      stats.push({ pageNumber, div: wrapper });
+      stats.sort(function (a, b) {
+        return a.pageNumber - b.pageNumber;
+      });
+      clear(this.panel);
+      for (var i = 0, ii = stats.length; i < ii; ++i) {
+        this.panel.appendChild(stats[i].div);
+      }
+    },
+    cleanup() {
+      stats = [];
+      clear(this.panel);
+    },
+  };
+})();
+
+// Manages all the debugging tools.
+window.PDFBug = (function PDFBugClosure() {
+  var panelWidth = 300;
+  var buttons = [];
+  var activePanel = null;
+
+  return {
+    tools: [FontInspector, StepperManager, Stats],
+    enable(ids) {
+      var all = false,
+        tools = this.tools;
+      if (ids.length === 1 && ids[0] === "all") {
+        all = true;
+      }
+      for (var i = 0; i < tools.length; ++i) {
+        var tool = tools[i];
+        if (all || ids.includes(tool.id)) {
+          tool.enabled = true;
+        }
+      }
+      if (!all) {
+        // Sort the tools by the order they are enabled.
+        tools.sort(function (a, b) {
+          var indexA = ids.indexOf(a.id);
+          indexA = indexA < 0 ? tools.length : indexA;
+          var indexB = ids.indexOf(b.id);
+          indexB = indexB < 0 ? tools.length : indexB;
+          return indexA - indexB;
+        });
+      }
+    },
+    init(pdfjsLib, container) {
+      /*
+       * Basic Layout:
+       * PDFBug
+       *  Controls
+       *  Panels
+       *    Panel
+       *    Panel
+       *    ...
+       */
+      var ui = document.createElement("div");
+      ui.id = "PDFBug";
+
+      var controls = document.createElement("div");
+      controls.setAttribute("class", "controls");
+      ui.appendChild(controls);
+
+      var panels = document.createElement("div");
+      panels.setAttribute("class", "panels");
+      ui.appendChild(panels);
+
+      container.appendChild(ui);
+      container.style.right = panelWidth + "px";
+
+      // Initialize all the debugging tools.
+      var tools = this.tools;
+      var self = this;
+      for (var i = 0; i < tools.length; ++i) {
+        var tool = tools[i];
+        var panel = document.createElement("div");
+        var panelButton = document.createElement("button");
+        panelButton.textContent = tool.name;
+        panelButton.addEventListener(
+          "click",
+          (function (selected) {
+            return function (event) {
+              event.preventDefault();
+              self.selectPanel(selected);
+            };
+          })(i)
+        );
+        controls.appendChild(panelButton);
+        panels.appendChild(panel);
+        tool.panel = panel;
+        tool.manager = this;
+        if (tool.enabled) {
+          tool.init(pdfjsLib);
+        } else {
+          panel.textContent =
+            tool.name +
+            " is disabled. To enable add " +
+            ' "' +
+            tool.id +
+            '" to the pdfBug parameter ' +
+            "and refresh (separate multiple by commas).";
+        }
+        buttons.push(panelButton);
+      }
+      this.selectPanel(0);
+    },
+    cleanup() {
+      for (var i = 0, ii = this.tools.length; i < ii; i++) {
+        if (this.tools[i].enabled) {
+          this.tools[i].cleanup();
+        }
+      }
+    },
+    selectPanel(index) {
+      if (typeof index !== "number") {
+        index = this.tools.indexOf(index);
+      }
+      if (index === activePanel) {
+        return;
+      }
+      activePanel = index;
+      var tools = this.tools;
+      for (var j = 0; j < tools.length; ++j) {
+        if (j === index) {
+          buttons[j].setAttribute("class", "active");
+          tools[j].active = true;
+          tools[j].panel.removeAttribute("hidden");
+        } else {
+          buttons[j].setAttribute("class", "");
+          tools[j].active = false;
+          tools[j].panel.setAttribute("hidden", "true");
+        }
+      }
+    },
+  };
+})();
diff --git a/third-party/pdfjs/web/locale/az/viewer.properties 
b/third-party/pdfjs/web/locale/az/viewer.properties
index ba81c4f90..2c27d1246 100644
--- a/third-party/pdfjs/web/locale/az/viewer.properties
+++ b/third-party/pdfjs/web/locale/az/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Kiçik şəkillər
 findbar.title=Sənəddə Tap
 findbar_label=Tap
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Səhifə {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/be/viewer.properties 
b/third-party/pdfjs/web/locale/be/viewer.properties
index d3f81887e..67cd0126e 100644
--- a/third-party/pdfjs/web/locale/be/viewer.properties
+++ b/third-party/pdfjs/web/locale/be/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Мініяцюры
 findbar.title=Пошук у дакуменце
 findbar_label=Знайсці
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Старонка {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/bn/viewer.properties 
b/third-party/pdfjs/web/locale/bn/viewer.properties
index 87a9c9a3d..52fec2c35 100644
--- a/third-party/pdfjs/web/locale/bn/viewer.properties
+++ b/third-party/pdfjs/web/locale/bn/viewer.properties
@@ -146,6 +146,8 @@ thumbs_label=থাম্বনেইল সমূহ
 findbar.title=নথির মধ্যে খুঁজুন
 findbar_label=খুঁজুন
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=পাতা {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/br/viewer.properties 
b/third-party/pdfjs/web/locale/br/viewer.properties
index ac2558e12..14c2a5e4f 100644
--- a/third-party/pdfjs/web/locale/br/viewer.properties
+++ b/third-party/pdfjs/web/locale/br/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Melvennoù
 findbar.title=Klask e-barzh an teuliad
 findbar_label=Klask
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Pajenn {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/ca/viewer.properties 
b/third-party/pdfjs/web/locale/ca/viewer.properties
index b4e87d21e..924637aaf 100644
--- a/third-party/pdfjs/web/locale/ca/viewer.properties
+++ b/third-party/pdfjs/web/locale/ca/viewer.properties
@@ -28,10 +28,10 @@ of_pages=de {{pagesCount}}
 # respectively a number representing the total number of pages in the document.
 page_of_pages=({{pageNumber}} de {{pagesCount}})
 
-zoom_out.title=Allunya
-zoom_out_label=Allunya
-zoom_in.title=Apropa
-zoom_in_label=Apropa
+zoom_out.title=Redueix
+zoom_out_label=Redueix
+zoom_in.title=Amplia
+zoom_in_label=Amplia
 zoom.title=Escala
 presentation_mode.title=Canvia al mode de presentació
 presentation_mode_label=Mode de presentació
@@ -148,6 +148,8 @@ thumbs_label=Miniatures
 findbar.title=Cerca al document
 findbar_label=Cerca
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Pàgina {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/cak/viewer.properties 
b/third-party/pdfjs/web/locale/cak/viewer.properties
index 8086f32aa..c105d8252 100644
--- a/third-party/pdfjs/web/locale/cak/viewer.properties
+++ b/third-party/pdfjs/web/locale/cak/viewer.properties
@@ -141,13 +141,15 @@ toggle_sidebar_notification.title=Tik'ex ri ajxikin yuqkajtz'ik (ri wuj eruk'wan
 toggle_sidebar_label=Tijal ri ajxikin kajtz'ik
 document_outline.title=Tik'ut pe ruch'akulal wuj (kamul-pitz'oj richin nirik'/nich'utinirisäx ronojel 
ruch'akulal)
 document_outline_label=Ruch'akulal wuj
-attachments.title=Kek'ut pe taq taqoj
+attachments.title=Kek'ut pe ri taq taqoj
 attachments_label=Taq taqoj
 thumbs.title=Kek'ut pe taq ch'utiq
 thumbs_label=Koköj
 findbar.title=Tikanöx chupam ri wuj
 findbar_label=Tikanöx
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Ruxaq {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/cs/viewer.properties 
b/third-party/pdfjs/web/locale/cs/viewer.properties
index 1dd8a36ca..6310f637c 100644
--- a/third-party/pdfjs/web/locale/cs/viewer.properties
+++ b/third-party/pdfjs/web/locale/cs/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Náhledy
 findbar.title=Najde v dokumentu
 findbar_label=Najít
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Strana {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
@@ -217,7 +219,7 @@ page_scale_auto=Automatická velikost
 page_scale_actual=Skutečná velikost
 # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
 # numerical scale value.
-page_scale_percent={{scale}}%
+page_scale_percent={{scale}} %
 
 # Loading indicator messages
 loading_error_indicator=Chyba
diff --git a/third-party/pdfjs/web/locale/cy/viewer.properties 
b/third-party/pdfjs/web/locale/cy/viewer.properties
index 45493a545..dc4fb2ea4 100644
--- a/third-party/pdfjs/web/locale/cy/viewer.properties
+++ b/third-party/pdfjs/web/locale/cy/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Lluniau Bach
 findbar.title=Canfod yn y Ddogfen
 findbar_label=Canfod
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Tudalen {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/da/viewer.properties 
b/third-party/pdfjs/web/locale/da/viewer.properties
index dce46725b..4f05fd980 100644
--- a/third-party/pdfjs/web/locale/da/viewer.properties
+++ b/third-party/pdfjs/web/locale/da/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Miniaturer
 findbar.title=Find i dokument
 findbar_label=Find
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Side {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/de/viewer.properties 
b/third-party/pdfjs/web/locale/de/viewer.properties
index cea73190e..84240bb20 100644
--- a/third-party/pdfjs/web/locale/de/viewer.properties
+++ b/third-party/pdfjs/web/locale/de/viewer.properties
@@ -130,7 +130,7 @@ document_properties_close=Schließen
 print_progress_message=Dokument wird für Drucken vorbereitet…
 # LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
 # a numerical per cent value.
-print_progress_percent={{progress}}%
+print_progress_percent={{progress}} %
 print_progress_close=Abbrechen
 
 # Tooltips and alt text for side panel toolbar buttons
@@ -148,6 +148,8 @@ thumbs_label=Miniaturansichten
 findbar.title=Dokument durchsuchen
 findbar_label=Suchen
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Seite {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
@@ -217,7 +219,7 @@ page_scale_auto=Automatischer Zoom
 page_scale_actual=Originalgröße
 # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
 # numerical scale value.
-page_scale_percent={{scale}}%
+page_scale_percent={{scale}} %
 
 # Loading indicator messages
 loading_error_indicator=Fehler
diff --git a/third-party/pdfjs/web/locale/dsb/viewer.properties 
b/third-party/pdfjs/web/locale/dsb/viewer.properties
index 5bd18d03b..eb567ecb6 100644
--- a/third-party/pdfjs/web/locale/dsb/viewer.properties
+++ b/third-party/pdfjs/web/locale/dsb/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Miniatury
 findbar.title=W dokumenśe pytaś
 findbar_label=Pytaś
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Bok {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/en-CA/viewer.properties 
b/third-party/pdfjs/web/locale/en-CA/viewer.properties
index e52573b10..df7a68774 100644
--- a/third-party/pdfjs/web/locale/en-CA/viewer.properties
+++ b/third-party/pdfjs/web/locale/en-CA/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Thumbnails
 findbar.title=Find in Document
 findbar_label=Find
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Page {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/en-GB/viewer.properties 
b/third-party/pdfjs/web/locale/en-GB/viewer.properties
index e52573b10..df7a68774 100644
--- a/third-party/pdfjs/web/locale/en-GB/viewer.properties
+++ b/third-party/pdfjs/web/locale/en-GB/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Thumbnails
 findbar.title=Find in Document
 findbar_label=Find
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Page {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/en-US/viewer.properties 
b/third-party/pdfjs/web/locale/en-US/viewer.properties
index 2dd7751aa..6f7598e3d 100644
--- a/third-party/pdfjs/web/locale/en-US/viewer.properties
+++ b/third-party/pdfjs/web/locale/en-US/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Thumbnails
 findbar.title=Find in Document
 findbar_label=Find
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Page {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
@@ -243,4 +245,3 @@ password_cancel=Cancel
 printing_not_supported=Warning: Printing is not fully supported by this browser.
 printing_not_ready=Warning: The PDF is not fully loaded for printing.
 web_fonts_disabled=Web fonts are disabled: unable to use embedded PDF fonts.
-document_colors_not_allowed=PDF documents are not allowed to use their own colors: “Allow pages to choose 
their own colors” is deactivated in the browser.
diff --git a/third-party/pdfjs/web/locale/eo/viewer.properties 
b/third-party/pdfjs/web/locale/eo/viewer.properties
index eb2949552..bca7c4568 100644
--- a/third-party/pdfjs/web/locale/eo/viewer.properties
+++ b/third-party/pdfjs/web/locale/eo/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Miniaturoj
 findbar.title=Serĉi en dokumento
 findbar_label=Serĉi
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Paĝo {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/es-AR/viewer.properties 
b/third-party/pdfjs/web/locale/es-AR/viewer.properties
index 6f3662c7f..1d22fbad6 100644
--- a/third-party/pdfjs/web/locale/es-AR/viewer.properties
+++ b/third-party/pdfjs/web/locale/es-AR/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Miniaturas
 findbar.title=Buscar en documento
 findbar_label=Buscar
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Página {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/es-CL/viewer.properties 
b/third-party/pdfjs/web/locale/es-CL/viewer.properties
index 7691ed7f3..f7f621f59 100644
--- a/third-party/pdfjs/web/locale/es-CL/viewer.properties
+++ b/third-party/pdfjs/web/locale/es-CL/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Miniaturas
 findbar.title=Buscar en el documento
 findbar_label=Buscar
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Página {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/es-ES/viewer.properties 
b/third-party/pdfjs/web/locale/es-ES/viewer.properties
index 0a632eced..cef373a1f 100644
--- a/third-party/pdfjs/web/locale/es-ES/viewer.properties
+++ b/third-party/pdfjs/web/locale/es-ES/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Miniaturas
 findbar.title=Buscar en el documento
 findbar_label=Buscar
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Página {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/es-MX/viewer.properties 
b/third-party/pdfjs/web/locale/es-MX/viewer.properties
index 3c506c8cd..88a82826e 100644
--- a/third-party/pdfjs/web/locale/es-MX/viewer.properties
+++ b/third-party/pdfjs/web/locale/es-MX/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Miniaturas
 findbar.title=Buscar en el documento
 findbar_label=Buscar
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Página {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/eu/viewer.properties 
b/third-party/pdfjs/web/locale/eu/viewer.properties
index a3f230a5c..e14f5cd38 100644
--- a/third-party/pdfjs/web/locale/eu/viewer.properties
+++ b/third-party/pdfjs/web/locale/eu/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Koadro txikiak
 findbar.title=Bilatu dokumentuan
 findbar_label=Bilatu
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas={{page}}. orria
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/fi/viewer.properties 
b/third-party/pdfjs/web/locale/fi/viewer.properties
index bb4d44ae3..76bfa13a2 100644
--- a/third-party/pdfjs/web/locale/fi/viewer.properties
+++ b/third-party/pdfjs/web/locale/fi/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Pienoiskuvat
 findbar.title=Etsi dokumentista
 findbar_label=Etsi
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Sivu {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/fr/viewer.properties 
b/third-party/pdfjs/web/locale/fr/viewer.properties
index 10559f708..7df1d3d51 100644
--- a/third-party/pdfjs/web/locale/fr/viewer.properties
+++ b/third-party/pdfjs/web/locale/fr/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Vignettes
 findbar.title=Rechercher dans le document
 findbar_label=Rechercher
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Page {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
@@ -159,9 +161,9 @@ thumb_page_canvas=Vignette de la page {{page}}
 # Find panel button title and messages
 find_input.title=Rechercher
 find_input.placeholder=Rechercher dans le document…
-find_previous.title=Trouver l’occurrence précédente de la phrase
+find_previous.title=Trouver l’occurrence précédente de l’expression
 find_previous_label=Précédent
-find_next.title=Trouver la prochaine occurrence de la phrase
+find_next.title=Trouver la prochaine occurrence de l’expression
 find_next_label=Suivant
 find_highlight=Tout surligner
 find_match_case_label=Respecter la casse
@@ -189,7 +191,7 @@ find_match_count_limit[two]=Plus de {{limit}} correspondances
 find_match_count_limit[few]=Plus de {{limit}} correspondances
 find_match_count_limit[many]=Plus de {{limit}} correspondances
 find_match_count_limit[other]=Plus de {{limit}} correspondances
-find_not_found=Phrase introuvable
+find_not_found=Expression non trouvée
 
 # Error panel labels
 error_more_info=Plus d’informations
diff --git a/third-party/pdfjs/web/locale/fy-NL/viewer.properties 
b/third-party/pdfjs/web/locale/fy-NL/viewer.properties
index ddba4cc08..4d6b18c69 100644
--- a/third-party/pdfjs/web/locale/fy-NL/viewer.properties
+++ b/third-party/pdfjs/web/locale/fy-NL/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Foarbylden
 findbar.title=Sykje yn dokumint
 findbar_label=Sykje
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Side {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/gn/viewer.properties 
b/third-party/pdfjs/web/locale/gn/viewer.properties
index 692d1d726..e5652d71f 100644
--- a/third-party/pdfjs/web/locale/gn/viewer.properties
+++ b/third-party/pdfjs/web/locale/gn/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Mba'emirĩ
 findbar.title=Kuatiápe jeheka
 findbar_label=Juhu
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Kuatiarogue {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/he/viewer.properties 
b/third-party/pdfjs/web/locale/he/viewer.properties
index 7aa2b9bfa..e3d197efb 100644
--- a/third-party/pdfjs/web/locale/he/viewer.properties
+++ b/third-party/pdfjs/web/locale/he/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=תצוגה מקדימה
 findbar.title=חיפוש במסמך
 findbar_label=חיפוש
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=עמוד {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/hi-IN/viewer.properties 
b/third-party/pdfjs/web/locale/hi-IN/viewer.properties
index a2f61669b..3005180f5 100644
--- a/third-party/pdfjs/web/locale/hi-IN/viewer.properties
+++ b/third-party/pdfjs/web/locale/hi-IN/viewer.properties
@@ -72,6 +72,7 @@ scroll_horizontal_label=क्षितिजिय स्क्रॉलिं
 scroll_wrapped.title=व्राप्पेड स्क्रॉलिंग का उपयोग करें
 
 spread_none_label=कोई स्प्रेड उपलब्ध नहीं
+spread_odd.title=विषम-क्रमांकित पृष्ठों से प्रारंभ होने वाले पृष्ठ स्प्रेड में शामिल हों
 spread_odd_label=विषम फैलाव
 
 # Document properties dialog box
@@ -143,6 +144,8 @@ thumbs_label=लघु छवि
 findbar.title=\u0020दस्तावेज़ में ढूँढ़ें
 findbar_label=ढूँढें
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=पृष्ठ {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/hr/viewer.properties 
b/third-party/pdfjs/web/locale/hr/viewer.properties
index 4f1f3c498..67cc8983d 100644
--- a/third-party/pdfjs/web/locale/hr/viewer.properties
+++ b/third-party/pdfjs/web/locale/hr/viewer.properties
@@ -28,21 +28,21 @@ of_pages=od {{pagesCount}}
 # respectively a number representing the total number of pages in the document.
 page_of_pages=({{pageNumber}} od {{pagesCount}})
 
-zoom_out.title=Uvećaj
-zoom_out_label=Smanji
+zoom_out.title=Umanji
+zoom_out_label=Umanji
 zoom_in.title=Uvećaj
-zoom_in_label=Smanji
-zoom.title=Uvećanje
+zoom_in_label=Uvećaj
+zoom.title=Zumiranje
 presentation_mode.title=Prebaci u prezentacijski način rada
 presentation_mode_label=Prezentacijski način rada
 open_file.title=Otvori datoteku
 open_file_label=Otvori
-print.title=Ispis
-print_label=Ispis
+print.title=Ispiši
+print_label=Ispiši
 download.title=Preuzmi
 download_label=Preuzmi
-bookmark.title=Trenutni prikaz (kopiraj ili otvori u novom prozoru)
-bookmark_label=Trenutni prikaz
+bookmark.title=Trenutačni prikaz (kopiraj ili otvori u novom prozoru)
+bookmark_label=Trenutačni prikaz
 
 # Secondary toolbar and context menu
 tools.title=Alati
@@ -69,15 +69,15 @@ scroll_vertical.title=Koristi okomito pomicanje
 scroll_vertical_label=Okomito pomicanje
 scroll_horizontal.title=Koristi vodoravno pomicanje
 scroll_horizontal_label=Vodoravno pomicanje
-scroll_wrapped.title=Koristi omotano pomicanje
-scroll_wrapped_label=Omotano pomicanje
+scroll_wrapped.title=Koristi kontinuirani raspored stranica
+scroll_wrapped_label=Kontinuirani raspored stranica
 
-spread_none.title=Ne pridružuj razmake stranica
-spread_none_label=Bez razmaka
-spread_odd.title=Pridruži razmake stranica počinjući od neparnih stranica
-spread_odd_label=Neparni razmaci
-spread_even.title=Pridruži razmake stranica počinjući od parnih stranica
-spread_even_label=Parni razmaci
+spread_none.title=Ne izrađuj duplerice
+spread_none_label=Pojedinačne stranice
+spread_odd.title=Izradi duplerice koje počinju s neparnim stranicama
+spread_odd_label=Neparne duplerice
+spread_even.title=Izradi duplerice koje počinju s parnim stranicama
+spread_even_label=Parne duplerice
 
 # Document properties dialog box
 document_properties.title=Svojstva dokumenta...
@@ -101,17 +101,17 @@ document_properties_modification_date=Datum promjene:
 document_properties_date_string={{date}}, {{time}}
 document_properties_creator=Stvaratelj:
 document_properties_producer=PDF stvaratelj:
-document_properties_version=PDF inačica:
+document_properties_version=PDF verzija:
 document_properties_page_count=Broj stranica:
 document_properties_page_size=Dimenzije stranice:
 document_properties_page_size_unit_inches=in
 document_properties_page_size_unit_millimeters=mm
-document_properties_page_size_orientation_portrait=portret
-document_properties_page_size_orientation_landscape=pejzaž
+document_properties_page_size_orientation_portrait=uspravno
+document_properties_page_size_orientation_landscape=položeno
 document_properties_page_size_name_a3=A3
 document_properties_page_size_name_a4=A4
-document_properties_page_size_name_letter=Pismo
-document_properties_page_size_name_legal=Pravno
+document_properties_page_size_name_letter=Letter
+document_properties_page_size_name_legal=Legal
 # LOCALIZATION NOTE (document_properties_page_size_dimension_string):
 # "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
 # the size, respectively their unit of measurement and orientation, of the (current) page.
@@ -139,35 +139,37 @@ print_progress_close=Odustani
 toggle_sidebar.title=Prikaži/sakrij bočnu traku
 toggle_sidebar_notification.title=Prikazivanje i sklanjanje bočne trake (dokument sadrži konturu/privitke)
 toggle_sidebar_label=Prikaži/sakrij bočnu traku
-document_outline.title=Prikaži obris dokumenta (dvostruki klik za proširivanje/skupljanje svih stavki)
-document_outline_label=Obris dokumenta
+document_outline.title=Prikaži strukturu dokumenta (dvostruki klik za rasklapanje/sklapanje svih stavki)
+document_outline_label=Struktura dokumenta
 attachments.title=Prikaži privitke
 attachments_label=Privitci
-thumbs.title=Prikaži sličice
-thumbs_label=Sličice
+thumbs.title=Prikaži minijature
+thumbs_label=Minijature
 findbar.title=Traži u dokumentu
 findbar_label=Traži
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Stranica br. {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
 thumb_page_title=Stranica {{page}}
 # LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
 # number.
-thumb_page_canvas=Sličica stranice {{page}}
+thumb_page_canvas=Minijatura stranice {{page}}
 
 # Find panel button title and messages
 find_input.title=Traži
 find_input.placeholder=Traži u dokumentu…
-find_previous.title=Pronađi prethodno javljanje ovog izraza
+find_previous.title=Pronađi prethodno pojavljivanje ovog izraza
 find_previous_label=Prethodno
-find_next.title=Pronađi iduće javljanje ovog izraza
+find_next.title=Pronađi sljedeće pojavljivanje ovog izraza
 find_next_label=Sljedeće
 find_highlight=Istankni sve
-find_match_case_label=Slučaj podudaranja
+find_match_case_label=Razlikovanje velikih i malih slova
 find_entire_word_label=Cijele riječi
-find_reached_top=Dosegnut vrh dokumenta, nastavak od dna
-find_reached_bottom=Dosegnut vrh dokumenta, nastavak od vrha
+find_reached_top=Dosegnut početak dokumenta, nastavak s kraja
+find_reached_bottom=Dosegnut kraj dokumenta, nastavak s početka
 # LOCALIZATION NOTE (find_match_count): The supported plural forms are
 # [one|two|few|many|other], with [other] as the default value.
 # "{{current}}" and "{{total}}" will be replaced by a number representing the
@@ -211,18 +213,18 @@ error_line=Redak: {{line}}
 rendering_error=Došlo je do greške prilikom iscrtavanja stranice.
 
 # Predefined zoom values
-page_scale_width=Širina stranice
-page_scale_fit=Pristajanje stranici
-page_scale_auto=Automatsko uvećanje
-page_scale_actual=Prava veličina
+page_scale_width=Prilagodi širini prozora
+page_scale_fit=Prilagodi veličini prozora
+page_scale_auto=Automatsko zumiranje
+page_scale_actual=Stvarna veličina
 # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
 # numerical scale value.
-page_scale_percent={{scale}}%
+page_scale_percent={{scale}} %
 
 # Loading indicator messages
 loading_error_indicator=Greška
 loading_error=Došlo je do greške pri učitavanju PDF-a.
-invalid_file_error=Kriva ili oštećena PDF datoteka.
+invalid_file_error=Neispravna ili oštećena PDF datoteka.
 missing_file_error=Nedostaje PDF datoteka.
 unexpected_response_error=Neočekivani odgovor poslužitelja.
 
@@ -235,12 +237,12 @@ annotation_date_string={{date}}, {{time}}
 # the PDF spec (32000-1:2008 Table 169 – Annotation types).
 # Some common types are e.g.: "Check", "Text", "Comment", "Note"
 text_annotation_type.alt=[{{type}} Bilješka]
-password_label=Upišite lozinku da biste otvorili ovu PDF datoteku.
-password_invalid=Neispravna lozinka. Pokušajte ponovo.
+password_label=Za otvoranje ove PDF datoteku upiši lozinku.
+password_invalid=Neispravna lozinka. Pokušaj ponovo.
 password_ok=U redu
 password_cancel=Odustani
 
-printing_not_supported=Upozorenje: Ispisivanje nije potpuno podržano u ovom pregledniku.
+printing_not_supported=Upozorenje: Ovaj preglednik ne podržava u potpunosti ispisivanje.
 printing_not_ready=Upozorenje: PDF nije u potpunosti učitan za ispis.
 web_fonts_disabled=Web fontovi su onemogućeni: nije moguće koristiti umetnute PDF fontove.
-document_colors_not_allowed=PDF dokumenti nemaju dopuštene koristiti vlastite boje: opcija 'Dopusti 
stranicama da koriste vlastite boje' je deaktivirana.
+document_colors_not_allowed=PDF dokumentima nije dozvoljeno koristiti vlastite boje: opcija „Dozvoli 
stranicama koristiti vlastite boje” je deaktivirana u pregledniku.
diff --git a/third-party/pdfjs/web/locale/hsb/viewer.properties 
b/third-party/pdfjs/web/locale/hsb/viewer.properties
index 790f72350..a8f31f1a5 100644
--- a/third-party/pdfjs/web/locale/hsb/viewer.properties
+++ b/third-party/pdfjs/web/locale/hsb/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Miniatury
 findbar.title=W dokumenće pytać
 findbar_label=Pytać
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Strona {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/hu/viewer.properties 
b/third-party/pdfjs/web/locale/hu/viewer.properties
index fb5e35f4d..cba69f0fc 100644
--- a/third-party/pdfjs/web/locale/hu/viewer.properties
+++ b/third-party/pdfjs/web/locale/hu/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Bélyegképek
 findbar.title=Keresés a dokumentumban
 findbar_label=Keresés
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas={{page}}. oldal
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/hy-AM/viewer.properties 
b/third-party/pdfjs/web/locale/hy-AM/viewer.properties
index e94633c09..f38581b21 100644
--- a/third-party/pdfjs/web/locale/hy-AM/viewer.properties
+++ b/third-party/pdfjs/web/locale/hy-AM/viewer.properties
@@ -35,7 +35,7 @@ zoom_in_label=Խոշորացնել
 zoom.title=Մասշտաբը\u0020
 presentation_mode.title=Անցնել Ներկայացման եղանակին
 presentation_mode_label=Ներկայացման եղանակ
-open_file.title=Բացել Ֆայլ
+open_file.title=Բացել նիշք
 open_file_label=Բացել
 print.title=Տպել
 print_label=Տպել
@@ -60,16 +60,30 @@ page_rotate_ccw.title=Պտտել հակառակ ժամացույցի սլաքի
 page_rotate_ccw.label=Պտտել հակառակ ժամացույցի սլաքի
 page_rotate_ccw_label=Պտտել հակառակ ժամացույցի սլաքի
 
-cursor_text_select_tool.title=Միացնել Տեքստը ընտրելու գործիքը
-cursor_text_select_tool_label=Տեքստը ընտրելու գործիք
+cursor_text_select_tool.title=Միացնել գրույթ ընտրելու գործիքը
+cursor_text_select_tool_label=Գրույթը ընտրելու գործիք
 cursor_hand_tool.title=Միացնել Ձեռքի գործիքը
 cursor_hand_tool_label=Ձեռքի գործիք
 
+scroll_vertical.title=Օգտագործել ուղղահայաց ոլորում
+scroll_vertical_label=Ուղղահայաց ոլորում
+scroll_horizontal.title=Օգտագործել հորիզոնական ոլորում
+scroll_horizontal_label=Հորիզոնական ոլորում
+scroll_wrapped.title=Օգտագործել փաթաթված ոլորում
+scroll_wrapped_label=Փաթաթված ոլորում
+
+spread_none.title=Մի միացեք էջի վերածածկերին
+spread_none_label=Չկա վերածածկեր
+spread_odd.title=Միացեք էջի վերածածկերին սկսելով՝ կենտ համարակալված էջերով
+spread_odd_label=Կենտ վերածածկեր
+spread_even.title=Միացեք էջի վերածածկերին սկսելով՝ զույգ համարակալված էջերով
+spread_even_label=Զույգ վերածածկեր
+
 # Document properties dialog box
-document_properties.title=Փաստաթղթի հատկությունները...
-document_properties_label=Փաստաթղթի հատկությունները...
-document_properties_file_name=Ֆայլի անունը.
-document_properties_file_size=Ֆայլի չափը.
+document_properties.title=Փաստաթղթի հատկությունները…
+document_properties_label=Փաստաթղթի հատկությունները…
+document_properties_file_name=Նիշքի անունը.
+document_properties_file_size=Նիշք չափը.
 # LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
 # will be replaced by the PDF file size in kilobytes, respectively in bytes.
 document_properties_kb={{size_kb}} ԿԲ ({{size_b}} բայթ)
@@ -90,7 +104,7 @@ document_properties_producer=PDF-ի հեղինակը.
 document_properties_version=PDF-ի տարբերակը.
 document_properties_page_count=Էջերի քանակը.
 document_properties_page_size=Էջի չափը.
-document_properties_page_size_unit_inches=դյ.
+document_properties_page_size_unit_inches=ում
 document_properties_page_size_unit_millimeters=մմ
 document_properties_page_size_orientation_portrait=ուղղաձիգ
 document_properties_page_size_orientation_landscape=հորիզոնական
@@ -106,6 +120,11 @@ document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}}
 # "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
 # the size, respectively their unit of measurement, name, and orientation, of the (current) page.
 document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, 
{{orientation}})
+# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
+# the document; usually called "Fast Web View" in English locales of Adobe software.
+document_properties_linearized=Արագ վեբ դիտում․
+document_properties_linearized_yes=Այո
+document_properties_linearized_no=Ոչ
 document_properties_close=Փակել
 
 print_progress_message=Նախապատրաստում է փաստաթուղթը տպելուն...
@@ -120,7 +139,7 @@ print_progress_close=Չեղարկել
 toggle_sidebar.title=Բացել/Փակել Կողային վահանակը
 toggle_sidebar_notification.title=Փոխանջատել Կողային գոտին (փաստաթուղթը պարունակում է ուրվագիծ/կցորդ)
 toggle_sidebar_label=Բացել/Փակել Կողային վահանակը
-document_outline.title=Ցուցադրել փաստաթղթի ուրվագիծը (կրկնակի սեղմեք՝ միույթները ընդարձակելու/կոծկելու համար)
+document_outline.title=Ցուցադրել փաստաթղթի ուրվագիծը (կրկնակի սեղմեք՝ միավորները ընդարձակելու/կոծկելու համար)
 document_outline_label=Փաստաթղթի բովանդակությունը
 attachments.title=Ցուցադրել կցորդները
 attachments_label=Կցորդներ
@@ -129,6 +148,8 @@ thumbs_label=Մանրապատկերը
 findbar.title=Գտնել փաստաթղթում
 findbar_label=Որոնում
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Էջ {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
@@ -146,8 +167,30 @@ find_next.title=Գտիր արտահայտության հաջորդ հանդիպ
 find_next_label=Հաջորդը
 find_highlight=Գունանշել բոլորը
 find_match_case_label=Մեծ(փոքր)ատառ հաշվի առնել
+find_entire_word_label=Ամբողջ բառերը
 find_reached_top=Հասել եք փաստաթղթի վերևին, կշարունակվի ներքևից
 find_reached_bottom=Հասել եք փաստաթղթի վերջին, կշարունակվի վերևից
+# LOCALIZATION NOTE (find_match_count): The supported plural forms are
+# [one|two|few|many|other], with [other] as the default value.
+# "{{current}}" and "{{total}}" will be replaced by a number representing the
+# index of the currently active find result, respectively a number representing
+# the total number of matches in the document.
+find_match_count={[ հոգնակի(ընդհանուր) ]}
+find_match_count[one]={{current}} {{total}}-ի համընկնումից
+find_match_count[two]={{current}} {{total}}-ի համընկնումներից
+find_match_count[few]={{current}} {{total}}-ի համընկնումներից
+find_match_count[many]={{current}} {{total}}-ի համընկնումներից
+find_match_count[other]={{current}} {{total}}-ի համընկնումներից
+# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
+# [zero|one|two|few|many|other], with [other] as the default value.
+# "{{limit}}" will be replaced by a numerical value.
+find_match_count_limit={[ հոգնակի (սահմանը) ]}
+find_match_count_limit[zero]=Ավելին քան {{limit}} համընկնումները
+find_match_count_limit[one]=Ավելին քան {{limit}} համընկնումը
+find_match_count_limit[two]=Ավելին քան {{limit}} համընկնումներներ
+find_match_count_limit[few]=Ավելին քան {{limit}} համընկնումներներ
+find_match_count_limit[many]=Ավելին քան {{limit}} համընկնումներներ
+find_match_count_limit[other]=Ավելին քան {{limit}} համընկնումներներ
 find_not_found=Արտահայտությունը չգտնվեց
 
 # Error panel labels
@@ -181,10 +224,14 @@ page_scale_percent={{scale}}%
 # Loading indicator messages
 loading_error_indicator=Սխալ
 loading_error=Սխալ՝ PDF ֆայլը բացելիս։
-invalid_file_error=Սխալ կամ բնասված PDF ֆայլ:
+invalid_file_error=Սխալ կամ վնասված PDF ֆայլ:
 missing_file_error=PDF ֆայլը բացակայում է:
 unexpected_response_error=Սպասարկիչի անսպասելի պատասխան:
 
+# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
+# replaced by the modification date, and time, of the annotation.
+annotation_date_string={{date}}, {{time}}
+
 # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
 # "{{type}}" will be replaced with an annotation type from a list defined in
 # the PDF spec (32000-1:2008 Table 169 – Annotation types).
diff --git a/third-party/pdfjs/web/locale/hye/viewer.properties 
b/third-party/pdfjs/web/locale/hye/viewer.properties
new file mode 100644
index 000000000..b5c712772
--- /dev/null
+++ b/third-party/pdfjs/web/locale/hye/viewer.properties
@@ -0,0 +1,247 @@
+# Copyright 2012 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Նախորդ էջ
+previous_label=Նախորդը
+next.title=Յաջորդ էջ
+next_label=Յաջորդը
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=էջ
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages={{pagesCount}}-ից\u0020
+# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
+# will be replaced by a number representing the currently visible page,
+# respectively a number representing the total number of pages in the document.
+page_of_pages=({{pageNumber}}-ը {{pagesCount}})-ից
+
+zoom_out.title=Փոքրացնել
+zoom_out_label=Փոքրացնել
+zoom_in.title=Խոշորացնել
+zoom_in_label=Խոշորացնել
+zoom.title=Խոշորացում
+presentation_mode.title=Անցնել ներկայացման եղանակին
+presentation_mode_label=Ներկայացման եղանակ
+open_file.title=Բացել նիշքը
+open_file_label=Բացել
+print.title=Տպել
+print_label=Տպել
+download.title=Բեռնել
+download_label=Բեռնել
+bookmark.title=Ընթացիկ տեսքով (պատճէնել կամ բացել նոր պատուհանում)
+bookmark_label=Ընթացիկ տեսք
+
+# Secondary toolbar and context menu
+tools.title=Գործիքներ
+tools_label=Գործիքներ
+first_page.title=Գնալ դէպի առաջին էջ
+first_page.label=Գնալ դէպի առաջին էջ
+first_page_label=Գնալ դէպի առաջին էջ
+last_page.title=Գնալ դէպի վերջին էջ
+last_page.label=Գնալ դէպի վերջին էջ
+last_page_label=Գնալ դէպի վերջին էջ
+page_rotate_cw.title=Պտտել ժամացոյցի սլաքի ուղղութեամբ
+page_rotate_cw.label=Պտտել ժամացոյցի սլաքի ուղղութեամբ
+page_rotate_cw_label=Պտտել ժամացոյցի սլաքի ուղղութեամբ
+page_rotate_ccw.title=Պտտել ժամացոյցի սլաքի հակառակ ուղղութեամբ
+page_rotate_ccw.label=Պտտել ժամացոյցի սլաքի հակառակ ուղղութեամբ
+page_rotate_ccw_label=Պտտել ժամացոյցի սլաքի հակառակ ուղղութեամբ
+
+cursor_text_select_tool.title=Միացնել գրոյթ ընտրելու գործիքը
+cursor_text_select_tool_label=Գրուածք ընտրելու գործիք
+cursor_hand_tool.title=Միացնել ձեռքի գործիքը
+cursor_hand_tool_label=Ձեռքի գործիք
+
+scroll_vertical.title=Աւգտագործել ուղղահայեաց ոլորում
+scroll_vertical_label=Ուղղահայեաց ոլորում
+scroll_horizontal.title=Աւգտագործել հորիզոնական ոլորում
+scroll_horizontal_label=Հորիզոնական ոլորում
+scroll_wrapped.title=Աւգտագործել փաթաթուած ոլորում
+scroll_wrapped_label=Փաթաթուած ոլորում
+
+spread_none.title=Մի միացէք էջի կոնտեքստում
+spread_none_label=Չկայ կոնտեքստ
+spread_odd.title=Միացէք էջի կոնտեքստին սկսելով՝ կենտ համարակալուած էջերով
+spread_odd_label=Տարաւրինակ կոնտեքստ
+spread_even.title=Միացէք էջի կոնտեքստին սկսելով՝ զոյգ համարակալուած էջերով
+
+# Document properties dialog box
+document_properties.title=Փաստաթղթի հատկութիւնները…
+document_properties_label=Փաստաթղթի յատկութիւնները…
+document_properties_file_name=Նիշքի անունը․
+document_properties_file_size=Նիշք չափը.
+# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
+# will be replaced by the PDF file size in kilobytes, respectively in bytes.
+document_properties_kb={{size_kb}} ԿԲ ({{size_b}} բայթ)
+# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
+# will be replaced by the PDF file size in megabytes, respectively in bytes.
+document_properties_mb={{size_mb}} ՄԲ ({{size_b}} բայթ)
+document_properties_title=Վերնագիր
+document_properties_author=Հեղինակ․
+document_properties_subject=առարկայ
+document_properties_keywords=Հիմնաբառեր
+document_properties_creation_date=Ստեղծման ամսաթիւ
+document_properties_modification_date=Փոփոխութեան ամսաթիւ.
+# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
+# will be replaced by the creation/modification date, and time, of the PDF file.
+document_properties_date_string={{date}}, {{time}}
+document_properties_creator=Ստեղծող
+document_properties_producer=PDF-ի Արտադրողը.
+document_properties_version=PDF-ի տարբերակը.
+document_properties_page_count=Էջերի քանակը.
+document_properties_page_size=Էջի չափը.
+document_properties_page_size_unit_inches=ում
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=ուղղաձիգ
+document_properties_page_size_orientation_landscape=հորիզոնական
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Նամակ
+document_properties_page_size_name_legal=Աւրինական
+# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
+# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
+# the size, respectively their unit of measurement and orientation, of the (current) page.
+document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}})
+# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
+# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
+# the size, respectively their unit of measurement, name, and orientation, of the (current) page.
+document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, 
{{orientation}})
+# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
+# the document; usually called "Fast Web View" in English locales of Adobe software.
+document_properties_linearized=Արագ վեբ դիտում․
+document_properties_linearized_yes=Այո
+document_properties_linearized_no=Ոչ
+document_properties_close=Փակել
+
+print_progress_message=Նախապատրաստում է փաստաթուղթը տպելուն…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Չեղարկել
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Փոխարկել կողային վահանակը
+toggle_sidebar_notification.title=Փոխարկել կողային վահանակը (փաստաթուղթը պարունակում է ուրուագիծ/կցորդ)
+toggle_sidebar_label=Փոխարկել կողային վահանակը
+document_outline.title=Ցուցադրել փաստաթղթի ուրուագիծը (կրկնակի սեղմէք՝ միաւորները ընդարձակելու/կոծկելու 
համար)
+document_outline_label=Փաստաթղթի ուրուագիծ
+attachments.title=Ցուցադրել կցորդները
+attachments_label=Կցորդներ
+thumbs.title=Ցուցադրել մանրապատկերը
+thumbs_label=Մանրապատկեր
+findbar.title=Գտնել փաստաթղթում
+findbar_label=Որոնում
+
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Էջ {{page}}
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Էջը {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Էջի մանրապատկերը {{page}}
+
+# Find panel button title and messages
+find_input.title=Որոնում
+find_input.placeholder=Գտնել փաստաթղթում…
+find_previous.title=Գտնել արտայայտութեան նախորդ արտայայտութիւնը
+find_previous_label=Նախորդը
+find_next.title=Գտիր արտայայտութեան յաջորդ արտայայտութիւնը
+find_next_label=Հաջորդը
+find_highlight=Գունանշել բոլորը
+find_match_case_label=Հաշուի առնել հանգամանքը
+find_entire_word_label=Ամբողջ բառերը
+find_reached_top=Հասել եք փաստաթղթի վերեւին,շարունակել ներքեւից
+find_reached_bottom=Հասել էք փաստաթղթի վերջին, շարունակել վերեւից
+# LOCALIZATION NOTE (find_match_count): The supported plural forms are
+# [one|two|few|many|other], with [other] as the default value.
+# "{{current}}" and "{{total}}" will be replaced by a number representing the
+# index of the currently active find result, respectively a number representing
+# the total number of matches in the document.
+find_match_count={[ հոգնակի(ընդհանուր) ]}
+find_match_count[one]={{current}} {{total}}-ի համընկնումից
+find_match_count[two]={{current}} {{total}}-ի համընկնումներից
+find_match_count[few]={{current}} {{total}}-ի համընկնումներից
+find_match_count[many]={{current}} {{total}}-ի համընկնումներից
+find_match_count[other]={{current}} {{total}}-ի համընկնումներից
+# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
+# [zero|one|two|few|many|other], with [other] as the default value.
+# "{{limit}}" will be replaced by a numerical value.
+find_match_count_limit={[ հոգնակի (սահմանը) ]}
+find_match_count_limit[zero]=Աւելին քան {{limit}} համընկնումները
+find_match_count_limit[one]=Աւելին քան {{limit}} համընկնումը
+find_match_count_limit[two]=Աւելին քան {{limit}} համընկնումները
+find_match_count_limit[few]=Աւելին քան {{limit}} համընկնումները
+find_match_count_limit[many]=Աւելին քան {{limit}} համընկնումները
+find_match_count_limit[other]=Աւելին քան {{limit}} համընկնումները
+find_not_found=Արտայայտութիւնը չգտնուեց
+
+# Error panel labels
+error_more_info=Աւելի շատ տեղեկութիւն
+error_less_info=Քիչ տեղեկութիւն
+error_close=Փակել
+# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
+# replaced by the PDF.JS version and build ID.
+error_version_info=PDF.js v{{version}} (կառուցումը. {{build}})
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=Գրութիւնը. {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=Շեղջ. {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=նիշք․ {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=Տողը. {{line}}
+rendering_error=Սխալ է տեղի ունեցել էջի մեկնաբանման ժամանակ
+
+# Predefined zoom values
+page_scale_width=Էջի լայնքը
+page_scale_fit=Հարմարեցնել էջը
+page_scale_auto=Ինքնաշխատ խոշորացում
+page_scale_actual=Իրական չափը
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error_indicator=Սխալ
+loading_error=PDF նիշքը բացելիս սխալ է տեղի ունեցել։
+invalid_file_error=Սխալ կամ վնասուած PDF նիշք։
+missing_file_error=PDF նիշքը բացակաիւմ է։
+unexpected_response_error=Սպասարկիչի անսպասելի պատասխան։
+
+# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
+# replaced by the modification date, and time, of the annotation.
+annotation_date_string={{date}}, {{time}}
+
+# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}} Ծանոթութիւն]
+password_label=Մուտքագրէք  գաղտնաբառը այս PDF նիշքը բացելու համար
+password_invalid=Գաղտնաբառը սխալ է: Կրկին փորձէք:
+password_ok=Լաւ
+password_cancel=Չեղարկել
+
+printing_not_supported=Զգուշացում. Տպելը ամբողջութեամբ չի աջակցուում զննարկիչի կողմից։
+printing_not_ready=Զգուշացում. PDF֊ը ամբողջութեամբ չի բեռնաւորուել տպելու համար։
+web_fonts_disabled=Վեբ-տառատեսակները անջատուած են. հնարաւոր չէ աւգտագործել ներկառուցուած PDF տառատեսակները։
+document_colors_not_allowed=PDF փաստաթղթերին թոյլատրուած չէ աւգտագործել իրենց սեփական գոյները։ “Թոյլատրել 
էջերին ընտրել իրենց սեփական գոյները“ ընտրանքը անջատուած է զննարկիչում։
diff --git a/third-party/pdfjs/web/locale/ia/viewer.properties 
b/third-party/pdfjs/web/locale/ia/viewer.properties
index 4648ff8c5..f69b26e40 100644
--- a/third-party/pdfjs/web/locale/ia/viewer.properties
+++ b/third-party/pdfjs/web/locale/ia/viewer.properties
@@ -46,7 +46,7 @@ bookmark_label=Vista actual
 
 # Secondary toolbar and context menu
 tools.title=Instrumentos
-tools_label=Intrumentos
+tools_label=Instrumentos
 first_page.title=Ir al prime pagina
 first_page.label=Ir al prime pagina
 first_page_label=Ir al prime pagina
@@ -145,9 +145,11 @@ attachments.title=Monstrar le annexos
 attachments_label=Annexos
 thumbs.title=Monstrar le vignettes
 thumbs_label=Vignettes
-findbar.title=Recercar in le documento
+findbar.title=Cercar in le documento
 findbar_label=Cercar
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Pagina {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
@@ -166,8 +168,8 @@ find_next_label=Sequente
 find_highlight=Evidentiar toto
 find_match_case_label=Distinguer majusculas/minusculas
 find_entire_word_label=Parolas integre
-find_reached_top=Le initio del documento ha essite attingite, on continua ab le fin
-find_reached_bottom=Le fin del documento ha essite attingite, on continua ab le initio
+find_reached_top=Initio del documento attingite, continuation ab fin
+find_reached_bottom=Fin del documento attingite, continuation ab initio
 # LOCALIZATION NOTE (find_match_count): The supported plural forms are
 # [one|two|few|many|other], with [other] as the default value.
 # "{{current}}" and "{{total}}" will be replaced by a number representing the
@@ -187,7 +189,7 @@ find_match_count_limit[zero]=Plus de {{limit}} concordantias
 find_match_count_limit[one]=Plus de {{limit}} concordantia
 find_match_count_limit[two]=Plus de {{limit}} concordantias
 find_match_count_limit[few]=Plus de {{limit}} concordantias
-find_match_count_limit[many]=Plus de {{limit}} concordantias
+find_match_count_limit[many]=Plus de {{limit}} correspondentias
 find_match_count_limit[other]=Plus de {{limit}} concordantias
 find_not_found=Phrase non trovate
 
@@ -242,5 +244,5 @@ password_cancel=Cancellar
 
 printing_not_supported=Attention : le impression non es totalmente supportate per ce navigator.
 printing_not_ready=Attention: le file PDF non es integremente cargate pro lo poter imprimer.
-web_fonts_disabled=Le typos de character de web es inactive: incapace de usar le typos de character 
incorporate al PDF.
+web_fonts_disabled=Le typos de litteras web es disactivate: impossibile usar le typos de litteras PDF 
incorporate.
 document_colors_not_allowed=Le documentos PDF non pote utilisar lor proprie colores: “Autorisar le paginas 
web a utilisar lor proprie colores” es disactivate in le navigator.
diff --git a/third-party/pdfjs/web/locale/id/viewer.properties 
b/third-party/pdfjs/web/locale/id/viewer.properties
index 58ebc40d7..0a904e16d 100644
--- a/third-party/pdfjs/web/locale/id/viewer.properties
+++ b/third-party/pdfjs/web/locale/id/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Miniatur
 findbar.title=Temukan di Dokumen
 findbar_label=Temukan
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Laman {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/it/viewer.properties 
b/third-party/pdfjs/web/locale/it/viewer.properties
index c5867f5d2..1f0a20ac8 100644
--- a/third-party/pdfjs/web/locale/it/viewer.properties
+++ b/third-party/pdfjs/web/locale/it/viewer.properties
@@ -100,6 +100,7 @@ thumbs.title = Mostra le miniature
 thumbs_label = Miniature
 findbar.title = Trova nel documento
 findbar_label = Trova
+page_canvas = Pagina {{page}}
 thumb_page_title = Pagina {{page}}
 thumb_page_canvas = Miniatura della pagina {{page}}
 find_input.title = Trova
diff --git a/third-party/pdfjs/web/locale/ja/viewer.properties 
b/third-party/pdfjs/web/locale/ja/viewer.properties
index 3a90b47bc..95732a07f 100644
--- a/third-party/pdfjs/web/locale/ja/viewer.properties
+++ b/third-party/pdfjs/web/locale/ja/viewer.properties
@@ -148,13 +148,15 @@ thumbs_label=縮小版
 findbar.title=文書内を検索します
 findbar_label=検索
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas={{page}} ページ
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
 thumb_page_title={{page}} ページ
 # LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
 # number.
-thumb_page_canvas=ページの縮小版 {{page}}
+thumb_page_canvas={{page}} ページの縮小版
 
 # Find panel button title and messages
 find_input.title=検索
diff --git a/third-party/pdfjs/web/locale/ka/viewer.properties 
b/third-party/pdfjs/web/locale/ka/viewer.properties
index e4aa1e9b7..d7a8f7a1f 100644
--- a/third-party/pdfjs/web/locale/ka/viewer.properties
+++ b/third-party/pdfjs/web/locale/ka/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=ესკიზები
 findbar.title=პოვნა დოკუმენტში
 findbar_label=ძიება
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=გვერდი {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
@@ -164,7 +166,7 @@ find_previous_label=წინა
 find_next.title=ფრაზის შემდეგი კონტექსტის პოვნა
 find_next_label=შემდეგი
 find_highlight=ყველას მონიშვნა
-find_match_case_label=მთავრულის გათვალისწინება
+find_match_case_label=ემთხვევა მთავრული
 find_entire_word_label=მთლიანი სიტყვები
 find_reached_top=მიღწეულია დოკუმენტის დასაწყისი, გრძელდება ბოლოდან
 find_reached_bottom=მიღწეულია დოკუმენტის ბოლო, გრძელდება დასაწყისიდან
diff --git a/third-party/pdfjs/web/locale/kab/viewer.properties 
b/third-party/pdfjs/web/locale/kab/viewer.properties
index db59ef712..e3d0dc4b1 100644
--- a/third-party/pdfjs/web/locale/kab/viewer.properties
+++ b/third-party/pdfjs/web/locale/kab/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Tinfulin
 findbar.title=Nadi deg isemli
 findbar_label=Nadi
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Asebter {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/kk/viewer.properties 
b/third-party/pdfjs/web/locale/kk/viewer.properties
index cc1b4f6a6..389b854b5 100644
--- a/third-party/pdfjs/web/locale/kk/viewer.properties
+++ b/third-party/pdfjs/web/locale/kk/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Кіші көріністер
 findbar.title=Құжаттан табу
 findbar_label=Табу
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Бет {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/ko/viewer.properties 
b/third-party/pdfjs/web/locale/ko/viewer.properties
index d173a2426..ef688a956 100644
--- a/third-party/pdfjs/web/locale/ko/viewer.properties
+++ b/third-party/pdfjs/web/locale/ko/viewer.properties
@@ -22,7 +22,7 @@ next_label=다음
 page.title=페이지
 # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
 # representing the total number of pages in the document.
-of_pages=전체 {{pagesCount}}
+of_pages=/ {{pagesCount}}
 # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
 # will be replaced by a number representing the currently visible page,
 # respectively a number representing the total number of pages in the document.
@@ -106,8 +106,8 @@ document_properties_page_count=페이지 수:
 document_properties_page_size=페이지 크기:
 document_properties_page_size_unit_inches=in
 document_properties_page_size_unit_millimeters=mm
-document_properties_page_size_orientation_portrait=세로
-document_properties_page_size_orientation_landscape=가로
+document_properties_page_size_orientation_portrait=세로 방향
+document_properties_page_size_orientation_landscape=가로 방향
 document_properties_page_size_name_a3=A3
 document_properties_page_size_name_a4=A4
 document_properties_page_size_name_letter=레터
@@ -127,7 +127,7 @@ document_properties_linearized_yes=예
 document_properties_linearized_no=아니오
 document_properties_close=닫기
 
-print_progress_message=인쇄 문서 준비중…
+print_progress_message=인쇄 문서 준비 중…
 # LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
 # a numerical per cent value.
 print_progress_percent={{progress}}%
@@ -136,10 +136,10 @@ print_progress_close=취소
 # Tooltips and alt text for side panel toolbar buttons
 # (the _label strings are alt text for the buttons, the .title strings are
 # tooltips)
-toggle_sidebar.title=탐색창 열고 닫기
-toggle_sidebar_notification.title=탐색창 열고 닫기 (문서에 아웃라인이나 첨부파일이 들어있음)
-toggle_sidebar_label=탐색창 열고 닫기
-document_outline.title=문서 아웃라인 보기(더블 클릭해서 모든 항목 열고 닫기)
+toggle_sidebar.title=탐색창 표시/숨기기
+toggle_sidebar_notification.title=탐색창 표시/숨기기 (문서에 아웃라인/첨부파일 포함)
+toggle_sidebar_label=탐색창 표시/숨기기
+document_outline.title=문서 아웃라인 보기(더블 클릭해서 모든 항목 펼치기/접기)
 document_outline_label=문서 아웃라인
 attachments.title=첨부파일 보기
 attachments_label=첨부파일
@@ -148,6 +148,8 @@ thumbs_label=미리보기
 findbar.title=검색
 findbar_label=검색
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas={{page}} 페이지
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
@@ -165,7 +167,7 @@ find_next.title=지정 문자열에 일치하는 다음 부분을 검색
 find_next_label=다음
 find_highlight=모두 강조 표시
 find_match_case_label=대/소문자 구분
-find_entire_word_label=전체 단어
+find_entire_word_label=단어 단위로
 find_reached_top=문서 처음까지 검색하고 끝으로 돌아와 검색했습니다.
 find_reached_bottom=문서 끝까지 검색하고 앞으로 돌아와 검색했습니다.
 # LOCALIZATION NOTE (find_match_count): The supported plural forms are
@@ -208,7 +210,7 @@ error_stack=스택: {{stack}}
 error_file=파일: {{file}}
 # LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
 error_line=줄 번호: {{line}}
-rendering_error=페이지를 렌더링하는 중 오류가 발생했습니다.
+rendering_error=페이지를 렌더링하는 동안 오류가 발생했습니다.
 
 # Predefined zoom values
 page_scale_width=페이지 너비에 맞춤
@@ -221,9 +223,9 @@ page_scale_percent={{scale}}%
 
 # Loading indicator messages
 loading_error_indicator=오류
-loading_error=PDF를 로드하는 중 오류가 발생했습니다.
-invalid_file_error=유효하지 않거나 파손된 PDF 파일
-missing_file_error=PDF 파일이 없습니다.
+loading_error=PDF를 로드하는 동안 오류가 발생했습니다.
+invalid_file_error=잘못되었거나 손상된 PDF 파일.
+missing_file_error=PDF 파일 없음.
 unexpected_response_error=예상치 못한 서버 응답입니다.
 
 # LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
@@ -235,8 +237,8 @@ annotation_date_string={{date}} {{time}}
 # the PDF spec (32000-1:2008 Table 169 – Annotation types).
 # Some common types are e.g.: "Check", "Text", "Comment", "Note"
 text_annotation_type.alt=[{{type}} 주석]
-password_label=이 PDF 파일을 열 수 있는 비밀번호를 입력하십시오.
-password_invalid=잘못된 비밀번호입니다. 다시 시도해 주십시오.
+password_label=이 PDF 파일을 열 수 있는 비밀번호를 입력하세요.
+password_invalid=잘못된 비밀번호입니다. 다시 시도하세요.
 password_ok=확인
 password_cancel=취소
 
diff --git a/third-party/pdfjs/web/locale/locale.properties b/third-party/pdfjs/web/locale/locale.properties
index 6c08538aa..411c19830 100644
--- a/third-party/pdfjs/web/locale/locale.properties
+++ b/third-party/pdfjs/web/locale/locale.properties
@@ -4,9 +4,6 @@
 [af]
 @import url(af/viewer.properties)
 
-[ak]
-@import url(ak/viewer.properties)
-
 [an]
 @import url(an/viewer.properties)
 
@@ -25,11 +22,11 @@
 [bg]
 @import url(bg/viewer.properties)
 
-[bn-BD]
-@import url(bn-BD/viewer.properties)
+[bn]
+@import url(bn/viewer.properties)
 
-[bn-IN]
-@import url(bn-IN/viewer.properties)
+[bo]
+@import url(bo/viewer.properties)
 
 [br]
 @import url(br/viewer.properties)
@@ -49,9 +46,6 @@
 [cs]
 @import url(cs/viewer.properties)
 
-[csb]
-@import url(csb/viewer.properties)
-
 [cy]
 @import url(cy/viewer.properties)
 
@@ -61,6 +55,9 @@
 [de]
 @import url(de/viewer.properties)
 
+[dsb]
+@import url(dsb/viewer.properties)
+
 [el]
 @import url(el/viewer.properties)
 
@@ -136,15 +133,15 @@
 [hsb]
 @import url(hsb/viewer.properties)
 
-[hto]
-@import url(hto/viewer.properties)
-
 [hu]
 @import url(hu/viewer.properties)
 
 [hy-AM]
 @import url(hy-AM/viewer.properties)
 
+[hye]
+@import url(hye/viewer.properties)
+
 [ia]
 @import url(ia/viewer.properties)
 
@@ -178,18 +175,6 @@
 [ko]
 @import url(ko/viewer.properties)
 
-[kok]
-@import url(kok/viewer.properties)
-
-[ks]
-@import url(ks/viewer.properties)
-
-[ku]
-@import url(ku/viewer.properties)
-
-[lg]
-@import url(lg/viewer.properties)
-
 [lij]
 @import url(lij/viewer.properties)
 
@@ -211,9 +196,6 @@
 [mk]
 @import url(mk/viewer.properties)
 
-[mn]
-@import url(mn/viewer.properties)
-
 [mr]
 @import url(mr/viewer.properties)
 
@@ -235,9 +217,6 @@
 [nn-NO]
 @import url(nn-NO/viewer.properties)
 
-[nso]
-@import url(nso/viewer.properties)
-
 [oc]
 @import url(oc/viewer.properties)
 
@@ -262,14 +241,8 @@
 [ru]
 @import url(ru/viewer.properties)
 
-[rw]
-@import url(rw/viewer.properties)
-
-[sah]
-@import url(sah/viewer.properties)
-
-[sat]
-@import url(sat/viewer.properties)
+[scn]
+@import url(scn/viewer.properties)
 
 [si]
 @import url(si/viewer.properties)
@@ -292,15 +265,9 @@
 [sv-SE]
 @import url(sv-SE/viewer.properties)
 
-[sw]
-@import url(sw/viewer.properties)
-
 [ta]
 @import url(ta/viewer.properties)
 
-[ta-LK]
-@import url(ta-LK/viewer.properties)
-
 [te]
 @import url(te/viewer.properties)
 
@@ -310,14 +277,11 @@
 [tl]
 @import url(tl/viewer.properties)
 
-[tn]
-@import url(tn/viewer.properties)
-
 [tr]
 @import url(tr/viewer.properties)
 
-[tsz]
-@import url(tsz/viewer.properties)
+[trs]
+@import url(trs/viewer.properties)
 
 [uk]
 @import url(uk/viewer.properties)
@@ -337,15 +301,9 @@
 [xh]
 @import url(xh/viewer.properties)
 
-[zam]
-@import url(zam/viewer.properties)
-
 [zh-CN]
 @import url(zh-CN/viewer.properties)
 
 [zh-TW]
 @import url(zh-TW/viewer.properties)
 
-[zu]
-@import url(zu/viewer.properties)
-
diff --git a/third-party/pdfjs/web/locale/lt/viewer.properties 
b/third-party/pdfjs/web/locale/lt/viewer.properties
index 45ec30359..dbdc82136 100644
--- a/third-party/pdfjs/web/locale/lt/viewer.properties
+++ b/third-party/pdfjs/web/locale/lt/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Miniatiūros
 findbar.title=Ieškoti dokumente
 findbar_label=Rasti
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas={{page}} puslapis
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/meh/viewer.properties 
b/third-party/pdfjs/web/locale/meh/viewer.properties
index 0a3a55705..7a1bf04a6 100644
--- a/third-party/pdfjs/web/locale/meh/viewer.properties
+++ b/third-party/pdfjs/web/locale/meh/viewer.properties
@@ -13,6 +13,7 @@
 # limitations under the License.
 
 # Main toolbar buttons (tooltips and alt text for images)
+previous.title=Página yata
 
 # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
 # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
@@ -58,6 +59,7 @@ print_progress_close=Nkuvi-ka
 # Tooltips and alt text for side panel toolbar buttons
 # (the _label strings are alt text for the buttons, the .title strings are
 # tooltips)
+findbar_label=Nánuku
 
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
@@ -66,6 +68,7 @@ print_progress_close=Nkuvi-ka
 # number.
 
 # Find panel button title and messages
+find_input.title=Nánuku
 # LOCALIZATION NOTE (find_match_count): The supported plural forms are
 # [one|two|few|many|other], with [other] as the default value.
 # "{{current}}" and "{{total}}" will be replaced by a number representing the
diff --git a/third-party/pdfjs/web/locale/mr/viewer.properties 
b/third-party/pdfjs/web/locale/mr/viewer.properties
index 67e419ec6..25229ea4f 100644
--- a/third-party/pdfjs/web/locale/mr/viewer.properties
+++ b/third-party/pdfjs/web/locale/mr/viewer.properties
@@ -166,10 +166,17 @@ find_reached_bottom=दस्तऐवजाच्या तळाला पो
 # index of the currently active find result, respectively a number representing
 # the total number of matches in the document.
 find_match_count={[ plural(total) ]}
+find_match_count[one]={{total}} पैकी {{current}} सुसंगत
+find_match_count[two]={{total}} पैकी {{current}} सुसंगत
+find_match_count[few]={{total}} पैकी {{current}} सुसंगत
+find_match_count[many]={{total}} पैकी {{current}} सुसंगत
+find_match_count[other]={{total}} पैकी {{current}} सुसंगत
 # LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
 # [zero|one|two|few|many|other], with [other] as the default value.
 # "{{limit}}" will be replaced by a numerical value.
+find_match_count_limit={[ plural(limit) ]}
 find_match_count_limit[zero]={{limit}} पेक्षा अधिक जुळण्या
+find_match_count_limit[one]={{limit}} पेक्षा अधिक जुळण्या
 find_match_count_limit[two]={{limit}} पेक्षा अधिक जुळण्या
 find_match_count_limit[few]={{limit}} पेक्षा अधिक जुळण्या
 find_match_count_limit[many]={{limit}} पेक्षा अधिक जुळण्या
@@ -211,6 +218,10 @@ invalid_file_error=अवैध किंवा दोषीत PDF फाइल
 missing_file_error=न आढळणारी PDF फाइल.
 unexpected_response_error=अनपेक्षित सर्व्हर प्रतिसाद.
 
+# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
+# replaced by the modification date, and time, of the annotation.
+annotation_date_string={{date}}, {{time}}
+
 # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
 # "{{type}}" will be replaced with an annotation type from a list defined in
 # the PDF spec (32000-1:2008 Table 169 – Annotation types).
diff --git a/third-party/pdfjs/web/locale/nb-NO/viewer.properties 
b/third-party/pdfjs/web/locale/nb-NO/viewer.properties
index 8656cb4ff..5612abb0b 100644
--- a/third-party/pdfjs/web/locale/nb-NO/viewer.properties
+++ b/third-party/pdfjs/web/locale/nb-NO/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Miniatyrbilde
 findbar.title=Finn i dokumentet
 findbar_label=Finn
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Side {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/nl/viewer.properties 
b/third-party/pdfjs/web/locale/nl/viewer.properties
index c62110a46..af8fb681e 100644
--- a/third-party/pdfjs/web/locale/nl/viewer.properties
+++ b/third-party/pdfjs/web/locale/nl/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Miniaturen
 findbar.title=Zoeken in document
 findbar_label=Zoeken
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Pagina {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/nn-NO/viewer.properties 
b/third-party/pdfjs/web/locale/nn-NO/viewer.properties
index f0feeb40e..ad6de8f81 100644
--- a/third-party/pdfjs/web/locale/nn-NO/viewer.properties
+++ b/third-party/pdfjs/web/locale/nn-NO/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Miniatyrbilde
 findbar.title=Finn i dokumentet
 findbar_label=Finn
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Side {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/oc/viewer.properties 
b/third-party/pdfjs/web/locale/oc/viewer.properties
index 2c520c255..3732e943b 100644
--- a/third-party/pdfjs/web/locale/oc/viewer.properties
+++ b/third-party/pdfjs/web/locale/oc/viewer.properties
@@ -69,7 +69,15 @@ scroll_vertical.title=Utilizar lo desfilament vertical
 scroll_vertical_label=Desfilament vertical
 scroll_horizontal.title=Utilizar lo desfilament orizontal
 scroll_horizontal_label=Desfilament orizontal
+scroll_wrapped.title=Activar lo desfilament continú
+scroll_wrapped_label=Desfilament continú
 
+spread_none.title=Agropar pas las paginas doas a doas
+spread_none_label=Una sola pagina
+spread_odd.title=Mostrar doas paginas en començant per las paginas imparas a esquèrra
+spread_odd_label=Dobla pagina, impara a drecha
+spread_even.title=Mostrar doas paginas en començant per las paginas paras a esquèrra
+spread_even_label=Dobla pagina, para a drecha
 
 # Document properties dialog box
 document_properties.title=Proprietats del document…
@@ -78,10 +86,10 @@ document_properties_file_name=Nom del fichièr :
 document_properties_file_size=Talha del fichièr :
 # LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
 # will be replaced by the PDF file size in kilobytes, respectively in bytes.
-document_properties_kb={{size_kb}} Ko ({{size_b}} octets)
+document_properties_kb={{size_kb}} Ko ({{size_b}} octets)
 # LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
 # will be replaced by the PDF file size in megabytes, respectively in bytes.
-document_properties_mb={{size_mb}} Mo ({{size_b}} octets)
+document_properties_mb={{size_mb}} Mo ({{size_b}} octets)
 document_properties_title=Títol :
 document_properties_author=Autor :
 document_properties_subject=Subjècte :
@@ -96,6 +104,7 @@ document_properties_producer=Aisina de conversion PDF :
 document_properties_version=Version PDF :
 document_properties_page_count=Nombre de paginas :
 document_properties_page_size=Talha de la pagina :
+document_properties_page_size_unit_inches=in
 document_properties_page_size_unit_millimeters=mm
 document_properties_page_size_orientation_portrait=retrait
 document_properties_page_size_orientation_landscape=païsatge
@@ -113,6 +122,7 @@ document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}}
 document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, 
{{orientation}})
 # LOCALIZATION NOTE (document_properties_linearized): The linearization status of
 # the document; usually called "Fast Web View" in English locales of Adobe software.
+document_properties_linearized=Vista web rapida :
 document_properties_linearized_yes=Òc
 document_properties_linearized_no=Non
 document_properties_close=Tampar
@@ -135,9 +145,11 @@ attachments.title=Visualizar las pèças juntas
 attachments_label=Pèças juntas
 thumbs.title=Afichar las vinhetas
 thumbs_label=Vinhetas
-findbar.title=Trobar dins lo document
+findbar.title=Cercar dins lo document
 findbar_label=Recercar
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Pagina {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
@@ -155,8 +167,30 @@ find_next.title=Tròba l'ocurréncia venenta de la frasa
 find_next_label=Seguent
 find_highlight=Suslinhar tot
 find_match_case_label=Respectar la cassa
+find_entire_word_label=Mots entièrs
 find_reached_top=Naut de la pagina atenh, perseguida del bas
 find_reached_bottom=Bas de la pagina atench, perseguida al començament
+# LOCALIZATION NOTE (find_match_count): The supported plural forms are
+# [one|two|few|many|other], with [other] as the default value.
+# "{{current}}" and "{{total}}" will be replaced by a number representing the
+# index of the currently active find result, respectively a number representing
+# the total number of matches in the document.
+find_match_count={[ plural(total) ]}
+find_match_count[one]=Occuréncia {{current}} sus {{total}}
+find_match_count[two]=Occuréncia {{current}} sus {{total}}
+find_match_count[few]=Occuréncia {{current}} sus {{total}}
+find_match_count[many]=Occuréncia {{current}} sus {{total}}
+find_match_count[other]=Occuréncia {{current}} sus {{total}}
+# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
+# [zero|one|two|few|many|other], with [other] as the default value.
+# "{{limit}}" will be replaced by a numerical value.
+find_match_count_limit={[ plural(limit) ]}
+find_match_count_limit[zero]=Mai de {{limit}} occuréncias
+find_match_count_limit[one]=Mai de {{limit}} occuréncia
+find_match_count_limit[two]=Mai de {{limit}} occuréncias
+find_match_count_limit[few]=Mai de {{limit}} occuréncias
+find_match_count_limit[many]=Mai de {{limit}} occuréncias
+find_match_count_limit[other]=Mai de {{limit}} occuréncias
 find_not_found=Frasa pas trobada
 
 # Error panel labels
@@ -194,6 +228,10 @@ invalid_file_error=Fichièr PDF invalid o corromput.
 missing_file_error=Fichièr PDF mancant.
 unexpected_response_error=Responsa de servidor imprevista.
 
+# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
+# replaced by the modification date, and time, of the annotation.
+annotation_date_string={{date}} a {{time}}
+
 # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
 # "{{type}}" will be replaced with an annotation type from a list defined in
 # the PDF spec (32000-1:2008 Table 169 – Annotation types).
diff --git a/third-party/pdfjs/web/locale/pa-IN/viewer.properties 
b/third-party/pdfjs/web/locale/pa-IN/viewer.properties
index 719cfad3e..e1ccb6541 100644
--- a/third-party/pdfjs/web/locale/pa-IN/viewer.properties
+++ b/third-party/pdfjs/web/locale/pa-IN/viewer.properties
@@ -74,6 +74,8 @@ scroll_wrapped_label=ਸਮੇਟਿਆ ਸਰਕਾਉਣਾ
 
 spread_none.title=ਸਫ਼ਾ ਫੈਲਾਅ ਵਿੱਚ ਸ਼ਾਮਲ ਨਾ ਹੋਵੋ
 spread_none_label=ਕੋਈ ਫੈਲਾਅ ਨਹੀਂ
+spread_odd.title=ਅਜੀਬ-ਨੰਬਰ ਵਾਲੇ ਪੰਨਿਆਂ ਨਾਲ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਪੰਨੇ ਸਪਰਸ਼ਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਵੋ
+spread_even.title=ਜਿਸਤ ਨੰਬਰ ਵਾਲੇ ਸਫ਼ਿਆਂ ਨਾਲ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਸਫਿਆਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਵੋ
 
 # Document properties dialog box
 document_properties.title=…ਦਸਤਾਵੇਜ਼ ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ
@@ -144,6 +146,8 @@ thumbs_label=ਥੰਮਨੇਲ
 findbar.title=ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਲੱਭੋ
 findbar_label=ਲੱਭੋ
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=ਸਫ਼ਾ {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/pl/viewer.properties 
b/third-party/pdfjs/web/locale/pl/viewer.properties
index 64a6504f4..c18ea5ed8 100644
--- a/third-party/pdfjs/web/locale/pl/viewer.properties
+++ b/third-party/pdfjs/web/locale/pl/viewer.properties
@@ -28,18 +28,18 @@ of_pages=z {{pagesCount}}
 # respectively a number representing the total number of pages in the document.
 page_of_pages=({{pageNumber}} z {{pagesCount}})
 
-zoom_out.title=Pomniejszenie
+zoom_out.title=Pomniejsz
 zoom_out_label=Pomniejsz
-zoom_in.title=Powiększenie
+zoom_in.title=Powiększ
 zoom_in_label=Powiększ
 zoom.title=Skala
 presentation_mode.title=Przełącz na tryb prezentacji
 presentation_mode_label=Tryb prezentacji
-open_file.title=Otwieranie pliku
+open_file.title=Otwórz plik
 open_file_label=Otwórz
-print.title=Drukowanie
+print.title=Drukuj
 print_label=Drukuj
-download.title=Pobieranie
+download.title=Pobierz
 download_label=Pobierz
 bookmark.title=Bieżąca pozycja (skopiuj lub otwórz jako odnośnik w nowym oknie)
 bookmark_label=Bieżąca pozycja
@@ -47,27 +47,27 @@ bookmark_label=Bieżąca pozycja
 # Secondary toolbar and context menu
 tools.title=Narzędzia
 tools_label=Narzędzia
-first_page.title=Przechodzenie do pierwszej strony
+first_page.title=Przejdź do pierwszej strony
 first_page.label=Przejdź do pierwszej strony
 first_page_label=Przejdź do pierwszej strony
-last_page.title=Przechodzenie do ostatniej strony
+last_page.title=Przejdź do ostatniej strony
 last_page.label=Przejdź do ostatniej strony
 last_page_label=Przejdź do ostatniej strony
-page_rotate_cw.title=Obracanie zgodnie z ruchem wskazówek zegara
+page_rotate_cw.title=Obróć zgodnie z ruchem wskazówek zegara
 page_rotate_cw.label=Obróć zgodnie z ruchem wskazówek zegara
 page_rotate_cw_label=Obróć zgodnie z ruchem wskazówek zegara
-page_rotate_ccw.title=Obracanie przeciwnie do ruchu wskazówek zegara
+page_rotate_ccw.title=Obróć przeciwnie do ruchu wskazówek zegara
 page_rotate_ccw.label=Obróć przeciwnie do ruchu wskazówek zegara
 page_rotate_ccw_label=Obróć przeciwnie do ruchu wskazówek zegara
 
-cursor_text_select_tool.title=Włącza narzędzie zaznaczania tekstu
+cursor_text_select_tool.title=Włącz narzędzie zaznaczania tekstu
 cursor_text_select_tool_label=Narzędzie zaznaczania tekstu
-cursor_hand_tool.title=Włącza narzędzie rączka
+cursor_hand_tool.title=Włącz narzędzie rączka
 cursor_hand_tool_label=Narzędzie rączka
 
-scroll_vertical.title=Przewijaj dokument w pionie
+scroll_vertical.title=Przewijaj dokument w pionie
 scroll_vertical_label=Przewijanie pionowe
-scroll_horizontal.title=Przewijaj dokument w poziomie
+scroll_horizontal.title=Przewijaj dokument w poziomie
 scroll_horizontal_label=Przewijanie poziome
 scroll_wrapped.title=Strony dokumentu wyświetlaj i przewijaj w kolumnach
 scroll_wrapped_label=Widok dwóch stron
@@ -136,28 +136,30 @@ print_progress_close=Anuluj
 # Tooltips and alt text for side panel toolbar buttons
 # (the _label strings are alt text for the buttons, the .title strings are
 # tooltips)
-toggle_sidebar.title=Przełączanie panelu bocznego
-toggle_sidebar_notification.title=Przełączanie panelu bocznego (dokument zawiera konspekt/załączniki)
+toggle_sidebar.title=Przełącz panel boczny
+toggle_sidebar_notification.title=Przełącz panel boczny (dokument zawiera konspekt/załączniki)
 toggle_sidebar_label=Przełącz panel boczny
-document_outline.title=Wyświetlanie zarysu dokumentu (podwójne kliknięcie rozwija lub zwija wszystkie 
pozycje)
-document_outline_label=Zarys dokumentu
-attachments.title=Wyświetlanie załączników
+document_outline.title=Konspekt dokumentu (podwójne kliknięcie rozwija lub zwija wszystkie pozycje)
+document_outline_label=Konspekt dokumentu
+attachments.title=Załączniki
 attachments_label=Załączniki
-thumbs.title=Wyświetlanie miniaturek
-thumbs_label=Miniaturki
+thumbs.title=Miniatury
+thumbs_label=Miniatury
 findbar.title=Znajdź w dokumencie
 findbar_label=Znajdź
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas={{page}}. strona
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
-thumb_page_title=Strona {{page}}
+thumb_page_title={{page}}. strona
 # LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
 # number.
-thumb_page_canvas=Miniaturka strony {{page}}
+thumb_page_canvas=Miniatura {{page}}. strony
 
 # Find panel button title and messages
-find_input.title=Wyszukiwanie
+find_input.title=Znajdź
 find_input.placeholder=Znajdź w dokumencie…
 find_previous.title=Znajdź poprzednie wystąpienie tekstu
 find_previous_label=Poprzednie
@@ -200,7 +202,7 @@ error_close=Zamknij
 error_version_info=PDF.js v{{version}} (kompilacja: {{build}})
 # LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
 # english string describing the error.
-error_message=Wiadomość: {{message}}
+error_message=Komunikat: {{message}}
 # LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
 # trace.
 error_stack=Stos: {{stack}}
@@ -214,7 +216,7 @@ rendering_error=Podczas renderowania strony wystąpił błąd.
 page_scale_width=Szerokość strony
 page_scale_fit=Dopasowanie strony
 page_scale_auto=Skala automatyczna
-page_scale_actual=Rozmiar rzeczywisty
+page_scale_actual=Rozmiar oryginalny
 # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
 # numerical scale value.
 page_scale_percent={{scale}}%
@@ -240,7 +242,7 @@ password_invalid=Nieprawidłowe hasło. Proszę spróbować ponownie.
 password_ok=OK
 password_cancel=Anuluj
 
-printing_not_supported=Ostrzeżenie: drukowanie nie jest w pełni obsługiwane przez przeglądarkę.
+printing_not_supported=Ostrzeżenie: drukowanie nie jest w pełni obsługiwane przez tę przeglądarkę.
 printing_not_ready=Ostrzeżenie: dokument PDF nie jest całkowicie wczytany, więc nie można go wydrukować.
 web_fonts_disabled=Czcionki sieciowe są wyłączone: nie można użyć osadzonych czcionek PDF.
 document_colors_not_allowed=Dokumenty PDF nie mogą używać własnych kolorów: opcja „Pozwalaj stronom stosować 
inne kolory” w przeglądarce jest nieaktywna.
diff --git a/third-party/pdfjs/web/locale/pt-BR/viewer.properties 
b/third-party/pdfjs/web/locale/pt-BR/viewer.properties
index d62dd5f96..5947d2d43 100644
--- a/third-party/pdfjs/web/locale/pt-BR/viewer.properties
+++ b/third-party/pdfjs/web/locale/pt-BR/viewer.properties
@@ -72,11 +72,11 @@ scroll_horizontal_label=Rolagem horizontal
 scroll_wrapped.title=Usar rolagem contida
 scroll_wrapped_label=Rolagem contida
 
-spread_none.title=Não associar à página estendidas
+spread_none.title=Não reagrupar páginas
 spread_none_label=Não estender
-spread_odd.title=Associar página estendida a partir de páginas com números ímpares
+spread_odd.title=Agrupar páginas começando em páginas com números ímpares
 spread_odd_label=Estender ímpares
-spread_even.title=Associar página estendida a partir de páginas com números pares
+spread_even.title=Agrupar páginas começando em páginas com números pares
 spread_even_label=Estender pares
 
 # Document properties dialog box
@@ -148,6 +148,8 @@ thumbs_label=Miniaturas
 findbar.title=Procurar no documento
 findbar_label=Procurar
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Página {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/pt-PT/viewer.properties 
b/third-party/pdfjs/web/locale/pt-PT/viewer.properties
index 7f4c3fe99..5129a5226 100644
--- a/third-party/pdfjs/web/locale/pt-PT/viewer.properties
+++ b/third-party/pdfjs/web/locale/pt-PT/viewer.properties
@@ -72,11 +72,11 @@ scroll_horizontal_label=Deslocação horizontal
 scroll_wrapped.title=Utilizar deslocação encapsulada
 scroll_wrapped_label=Deslocação encapsulada
 
-spread_none.title=Não juntar spreads de páginas
+spread_none.title=Não juntar páginas dispersas
 spread_none_label=Sem spreads
-spread_odd.title=Juntar spreads de páginas a partir de páginas com números ímpares
+spread_odd.title=Juntar páginas dispersas a partir de páginas com números ímpares
 spread_odd_label=Spreads ímpares
-spread_even.title=Juntar spreads de páginas a partir de páginas com números pares
+spread_even.title=Juntar páginas dispersas a partir de páginas com números pares
 spread_even_label=Spreads pares
 
 # Document properties dialog box
@@ -148,6 +148,8 @@ thumbs_label=Miniaturas
 findbar.title=Localizar em documento
 findbar_label=Localizar
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Página {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/rm/viewer.properties 
b/third-party/pdfjs/web/locale/rm/viewer.properties
index 6a6776ea5..99aca5c6b 100644
--- a/third-party/pdfjs/web/locale/rm/viewer.properties
+++ b/third-party/pdfjs/web/locale/rm/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Miniaturas
 findbar.title=Tschertgar en il document
 findbar_label=Tschertgar
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Pagina {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/ro/viewer.properties 
b/third-party/pdfjs/web/locale/ro/viewer.properties
index f3a6b83cf..691d9dc32 100644
--- a/third-party/pdfjs/web/locale/ro/viewer.properties
+++ b/third-party/pdfjs/web/locale/ro/viewer.properties
@@ -32,7 +32,7 @@ zoom_out.title=Micșorează
 zoom_out_label=Micșorează
 zoom_in.title=Mărește
 zoom_in_label=Mărește
-zoom.title=Zoom
+zoom.title=Focalizare
 presentation_mode.title=Comută la modul de prezentare
 presentation_mode_label=Mod de prezentare
 open_file.title=Deschide un fișier
@@ -145,9 +145,11 @@ attachments.title=Afișează atașamentele
 attachments_label=Atașamente
 thumbs.title=Afișează miniaturi
 thumbs_label=Miniaturi
-findbar.title=Găsește în document
+findbar.title=Caută în document
 findbar_label=Caută
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Pagina {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
@@ -159,12 +161,12 @@ thumb_page_canvas=Miniatura paginii {{page}}
 # Find panel button title and messages
 find_input.title=Caută
 find_input.placeholder=Caută în document…
-find_previous.title=Găsește instanța anterioară în frază
-find_previous_label=Anterior
-find_next.title=Găsește instanța următoare în frază
-find_next_label=Următor
+find_previous.title=Mergi la apariția anterioară a textului
+find_previous_label=Înapoi
+find_next.title=Mergi la apariția următoare a textului
+find_next_label=Înainte
 find_highlight=Evidențiază toate aparițiile
-find_match_case_label=Corelează literele mari și mici
+find_match_case_label=Ține cont de majuscule și minuscule
 find_entire_word_label=Cuvinte întregi
 find_reached_top=Am ajuns la începutul documentului, continuă de la sfârșit
 find_reached_bottom=Am ajuns la sfârșitul documentului, continuă de la început
@@ -211,9 +213,9 @@ error_line=Rând: {{line}}
 rendering_error=A intervenit o eroare la randarea paginii.
 
 # Predefined zoom values
-page_scale_width=Lățimea paginii
+page_scale_width=Lățime pagină
 page_scale_fit=Potrivire la pagină
-page_scale_auto=Zoom automat
+page_scale_auto=Focalizare automată
 page_scale_actual=Mărime reală
 # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
 # numerical scale value.
diff --git a/third-party/pdfjs/web/locale/ru/viewer.properties 
b/third-party/pdfjs/web/locale/ru/viewer.properties
index be8aa5b03..bf417bcb4 100644
--- a/third-party/pdfjs/web/locale/ru/viewer.properties
+++ b/third-party/pdfjs/web/locale/ru/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Миниатюры
 findbar.title=Найти в документе
 findbar_label=Найти
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Страница {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/lg/viewer.properties 
b/third-party/pdfjs/web/locale/scn/viewer.properties
similarity index 65%
rename from third-party/pdfjs/web/locale/lg/viewer.properties
rename to third-party/pdfjs/web/locale/scn/viewer.properties
index 5658d5448..e9a650a91 100644
--- a/third-party/pdfjs/web/locale/lg/viewer.properties
+++ b/third-party/pdfjs/web/locale/scn/viewer.properties
@@ -13,34 +13,24 @@
 # limitations under the License.
 
 # Main toolbar buttons (tooltips and alt text for images)
-previous.title=Omuko  Ogubadewo
-next.title=Omuko Oguddako
 
 # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
 # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
 # representing the total number of pages in the document.
-of_pages=ku {{pagesCount}}
 # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
 # will be replaced by a number representing the currently visible page,
 # respectively a number representing the total number of pages in the document.
 
-zoom_out.title=Zimbulukusa
-zoom_out_label=Zimbulukusa
-zoom_in.title=Funza Munda
-zoom_in_label=Funza Munda
-zoom.title=Gezzamu
-open_file.title=Bikula Fayiro
-open_file_label=Ggulawo
-print.title=Fulumya
-print_label=Fulumya
-download.title=Tikula
-download_label=Tikula
-bookmark.title=Endabika eriwo (koppa oba gulawo mu diriisa epya)
-bookmark_label=Endabika Eriwo
+zoom_out.title=Cchiù nicu
+zoom_out_label=Cchiù nicu
+zoom_in.title=Cchiù granni
+zoom_in_label=Cchiù granni
 
 # Secondary toolbar and context menu
 
 
+
+
 # Document properties dialog box
 # LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
 # will be replaced by the PDF file size in kilobytes, respectively in bytes.
@@ -48,65 +38,64 @@ bookmark_label=Endabika Eriwo
 # will be replaced by the PDF file size in megabytes, respectively in bytes.
 # LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
 # will be replaced by the creation/modification date, and time, of the PDF file.
+# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
+# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
+# the size, respectively their unit of measurement and orientation, of the (current) page.
+# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
+# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
+# the size, respectively their unit of measurement, name, and orientation, of the (current) page.
+# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
+# the document; usually called "Fast Web View" in English locales of Adobe software.
+document_properties_linearized=Vista web lesta:
+document_properties_linearized_yes=Se
 
 # LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
 # a numerical per cent value.
+print_progress_close=Sfai
 
 # Tooltips and alt text for side panel toolbar buttons
 # (the _label strings are alt text for the buttons, the .title strings are
 # tooltips)
-document_outline_label=Ensalo ze Ekiwandiko
-thumbs.title=Laga Ekifanyi Mubufunze
-thumbs_label=Ekifanyi Mubufunze
 
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
-thumb_page_title=Omuko {{page}}
 # LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
 # number.
-thumb_page_canvas=Ekifananyi kyo Omuko Mubufunze {{page}}
 
 # Find panel button title and messages
-find_previous.title=Zuula awayise mukweddamu mumiteddera
-find_next.title=Zuula ekidako mukweddamu mumiteddera
-find_highlight=Londa byonna
-find_not_found=Emiteddera tezuuliddwa
+# LOCALIZATION NOTE (find_match_count): The supported plural forms are
+# [one|two|few|many|other], with [other] as the default value.
+# "{{current}}" and "{{total}}" will be replaced by a number representing the
+# index of the currently active find result, respectively a number representing
+# the total number of matches in the document.
+# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
+# [zero|one|two|few|many|other], with [other] as the default value.
+# "{{limit}}" will be replaced by a numerical value.
 
 # Error panel labels
-error_more_info=Ebisingawo
-error_less_info=Mubumpimpi
 # LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
 # replaced by the PDF.JS version and build ID.
 # LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
 # english string describing the error.
-error_message=Obubaaka: {{message}}
 # LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
 # trace.
-error_stack=Ebipangiddwa: {{stack}}
 # LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Fayiro {{file}}
 # LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Layini: {{line}}
-rendering_error=Wabadewo ensobi muku tekawo omuko.
 
 # Predefined zoom values
-page_scale_width=Obugazi bwo Omuko
-page_scale_fit=Okutuka kwo Omuko
-page_scale_auto=Okwefunza no Kwegeza
-page_scale_actual=Obunene Obutufu
+page_scale_width=Larghizza dâ pàggina
 # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
 # numerical scale value.
 
 # Loading indicator messages
-loading_error_indicator=Ensobi
-loading_error=Wabadewo ensobi mukutika PDF.
+
+# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
+# replaced by the modification date, and time, of the annotation.
 
 # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
 # "{{type}}" will be replaced with an annotation type from a list defined in
 # the PDF spec (32000-1:2008 Table 169 – Annotation types).
 # Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} Enyonyola]
-password_ok=OK
+password_cancel=Sfai
 
-printing_not_supported=Okulaabula: Okulumya empapula tekuwagirwa enonyeso enno.
diff --git a/third-party/pdfjs/web/locale/sk/viewer.properties 
b/third-party/pdfjs/web/locale/sk/viewer.properties
index 00cf62e3b..a08911bf9 100644
--- a/third-party/pdfjs/web/locale/sk/viewer.properties
+++ b/third-party/pdfjs/web/locale/sk/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Miniatúry
 findbar.title=Hľadať v dokumente
 findbar_label=Hľadať
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Strana {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/sl/viewer.properties 
b/third-party/pdfjs/web/locale/sl/viewer.properties
index 790205de7..86db2d9ab 100644
--- a/third-party/pdfjs/web/locale/sl/viewer.properties
+++ b/third-party/pdfjs/web/locale/sl/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Sličice
 findbar.title=Iskanje po dokumentu
 findbar_label=Najdi
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Stran {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/sq/viewer.properties 
b/third-party/pdfjs/web/locale/sq/viewer.properties
index 153ab56e9..b0f12b21e 100644
--- a/third-party/pdfjs/web/locale/sq/viewer.properties
+++ b/third-party/pdfjs/web/locale/sq/viewer.properties
@@ -28,9 +28,9 @@ of_pages=nga {{pagesCount}} gjithsej
 # respectively a number representing the total number of pages in the document.
 page_of_pages=({{pageNumber}} nga {{pagesCount}})
 
-zoom_out.title=Zvogëlim
-zoom_out_label=Zvogëlojini
-zoom_in.title=Zmadhim
+zoom_out.title=Zvogëlojeni
+zoom_out_label=Zvogëlojeni
+zoom_in.title=Zmadhojeni
 zoom_in_label=Zmadhojini
 zoom.title=Zoom
 presentation_mode.title=Kalo te Mënyra Paraqitje
@@ -98,7 +98,7 @@ document_properties_producer=Prodhues PDF-je:
 document_properties_version=Version PDF-je:
 document_properties_page_count=Numër Faqesh:
 document_properties_page_size=Madhësi Faqeje:
-document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_inches=inç
 document_properties_page_size_unit_millimeters=mm
 document_properties_page_size_orientation_portrait=portret
 document_properties_page_size_orientation_landscape=së gjeri
@@ -141,6 +141,8 @@ thumbs_label=Miniatura
 findbar.title=Gjeni në Dokument
 findbar_label=Gjej
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Faqja {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
@@ -150,7 +152,7 @@ thumb_page_title=Faqja {{page}}
 thumb_page_canvas=Miniaturë e Faqes {{page}}
 
 # Find panel button title and messages
-find_input.title=Gjeje
+find_input.title=Gjej
 find_input.placeholder=Gjeni në dokument…
 find_previous.title=Gjeni hasjen e mëparshme të togfjalëshit
 find_previous_label=E mëparshmja
diff --git a/third-party/pdfjs/web/locale/sr/viewer.properties 
b/third-party/pdfjs/web/locale/sr/viewer.properties
index 1b43b567e..cee0a4f83 100644
--- a/third-party/pdfjs/web/locale/sr/viewer.properties
+++ b/third-party/pdfjs/web/locale/sr/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Сличице
 findbar.title=Пронађи у документу
 findbar_label=Пронађи
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Страница {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
@@ -165,8 +167,30 @@ find_next.title=Пронађи следећу појаву фразе
 find_next_label=Следећа
 find_highlight=Истакнути све
 find_match_case_label=Подударања
+find_entire_word_label=Целе речи
 find_reached_top=Достигнут врх документа, наставио са дна
 find_reached_bottom=Достигнуто дно документа, наставио са врха
+# LOCALIZATION NOTE (find_match_count): The supported plural forms are
+# [one|two|few|many|other], with [other] as the default value.
+# "{{current}}" and "{{total}}" will be replaced by a number representing the
+# index of the currently active find result, respectively a number representing
+# the total number of matches in the document.
+find_match_count={[ plural(total) ]}
+find_match_count[one]={{current}} од {{total}} одговара
+find_match_count[two]={{current}} од {{total}} одговара
+find_match_count[few]={{current}} од {{total}} одговара
+find_match_count[many]={{current}} од {{total}} одговара
+find_match_count[other]={{current}} од {{total}} одговара
+# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
+# [zero|one|two|few|many|other], with [other] as the default value.
+# "{{limit}}" will be replaced by a numerical value.
+find_match_count_limit={[ plural(limit) ]}
+find_match_count_limit[zero]=Више од {{limit}} одговара
+find_match_count_limit[one]=Више од {{limit}} одговара
+find_match_count_limit[two]=Више од {{limit}} одговара
+find_match_count_limit[few]=Више од {{limit}} одговара
+find_match_count_limit[many]=Више од {{limit}} одговара
+find_match_count_limit[other]=Више од {{limit}} одговара
 find_not_found=Фраза није пронађена
 
 # Error panel labels
@@ -204,6 +228,10 @@ invalid_file_error=PDF датотека је оштећена или је неи
 missing_file_error=PDF датотека није пронађена.
 unexpected_response_error=Неочекиван одговор од сервера.
 
+# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
+# replaced by the modification date, and time, of the annotation.
+annotation_date_string={{date}}, {{time}}
+
 # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
 # "{{type}}" will be replaced with an annotation type from a list defined in
 # the PDF spec (32000-1:2008 Table 169 – Annotation types).
diff --git a/third-party/pdfjs/web/locale/sv-SE/viewer.properties 
b/third-party/pdfjs/web/locale/sv-SE/viewer.properties
index b1b60bd40..3d2f0cf43 100644
--- a/third-party/pdfjs/web/locale/sv-SE/viewer.properties
+++ b/third-party/pdfjs/web/locale/sv-SE/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Miniatyrer
 findbar.title=Sök i dokument
 findbar_label=Sök
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Sida {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/th/viewer.properties 
b/third-party/pdfjs/web/locale/th/viewer.properties
index 34d46147e..b66865fd1 100644
--- a/third-party/pdfjs/web/locale/th/viewer.properties
+++ b/third-party/pdfjs/web/locale/th/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=ภาพขนาดย่อ
 findbar.title=ค้นหาในเอกสาร
 findbar_label=ค้นหา
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=หน้า {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/tl/viewer.properties 
b/third-party/pdfjs/web/locale/tl/viewer.properties
index 9ebb98939..32b348340 100644
--- a/third-party/pdfjs/web/locale/tl/viewer.properties
+++ b/third-party/pdfjs/web/locale/tl/viewer.properties
@@ -28,7 +28,7 @@ of_pages=ng {{pagesCount}}
 # respectively a number representing the total number of pages in the document.
 page_of_pages=({{pageNumber}} ng {{pagesCount}})
 
-zoom_out.title=Mag-zoom Out
+zoom_out.title=Paliitin
 zoom_out_label=Paliitin
 zoom_in.title=Palakihin
 zoom_in_label=Palakihin
@@ -45,8 +45,8 @@ bookmark.title=Kasalukuyang tingin (kopyahin o buksan sa bagong window)
 bookmark_label=Kasalukuyang tingin
 
 # Secondary toolbar and context menu
-tools.title=Mga Tool
-tools_label=Mga Tool
+tools.title=Mga Kagamitan
+tools_label=Mga Kagamitan
 first_page.title=Pumunta sa Unang Pahina
 first_page.label=Pumunta sa Unang Pahina
 first_page_label=Pumunta sa Unang Pahina
@@ -148,6 +148,8 @@ thumbs_label=Thumbnails
 findbar.title=Find in Document
 findbar_label=Hanapin
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Pahina {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
@@ -192,8 +194,8 @@ find_match_count_limit[other]=More than {{limit}} matches
 find_not_found=Hindi nakita ang prasko
 
 # Error panel labels
-error_more_info=Maraming Inpormasyon
-error_less_info=Maikling Inpormasyon
+error_more_info=Karagdagang Impormasyon
+error_less_info=Mas Kaunting Impormasyon
 error_close=Sarado
 # LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
 # replaced by the PDF.JS version and build ID.
@@ -211,7 +213,7 @@ error_line=Linya: {{line}}
 rendering_error=May naganap na pagkakamali habang pagsasalin sa pahina.
 
 # Predefined zoom values
-page_scale_width=Haba ng Pahina
+page_scale_width=Lapad ng Pahina
 page_scale_fit=ang pahina ay angkop
 page_scale_auto=Automatic Zoom
 page_scale_actual=Totoong sukat
diff --git a/third-party/pdfjs/web/locale/tr/viewer.properties 
b/third-party/pdfjs/web/locale/tr/viewer.properties
index 792ea052e..f398fc9f5 100644
--- a/third-party/pdfjs/web/locale/tr/viewer.properties
+++ b/third-party/pdfjs/web/locale/tr/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Küçük resimler
 findbar.title=Belgede bul
 findbar_label=Bul
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Sayfa {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/uk/viewer.properties 
b/third-party/pdfjs/web/locale/uk/viewer.properties
index 6eb227726..599c8f916 100644
--- a/third-party/pdfjs/web/locale/uk/viewer.properties
+++ b/third-party/pdfjs/web/locale/uk/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Ескізи
 findbar.title=Знайти в документі
 findbar_label=Пошук
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Сторінка {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/ur/viewer.properties 
b/third-party/pdfjs/web/locale/ur/viewer.properties
index 31928bcb4..78e2029d4 100644
--- a/third-party/pdfjs/web/locale/ur/viewer.properties
+++ b/third-party/pdfjs/web/locale/ur/viewer.properties
@@ -60,8 +60,20 @@ page_rotate_ccw.title=ضد گھڑی وار گھمائیں
 page_rotate_ccw.label=ضد گھڑی وار گھمائیں
 page_rotate_ccw_label=ضد گھڑی وار گھمائیں
 
+cursor_text_select_tool.title=متن کے انتخاب کے ٹول کو فعال بناے
+cursor_text_select_tool_label=متن کے انتخاب کا آلہ
+cursor_hand_tool.title=ہینڈ ٹول کو فعال بناییں
+cursor_hand_tool_label=ہاتھ کا آلہ
 
+scroll_vertical.title=عمودی اسکرولنگ کا استعمال کریں
+scroll_vertical_label=عمودی اسکرولنگ
+scroll_horizontal.title=افقی سکرولنگ کا استعمال کریں
+scroll_horizontal_label=افقی سکرولنگ
 
+spread_none.title=صفحہ پھیلانے میں شامل نہ ہوں
+spread_none_label=کوئی پھیلاؤ نہیں
+spread_odd_label=تاک پھیلاؤ
+spread_even_label=جفت پھیلاؤ
 
 # Document properties dialog box
 document_properties.title=دستاویز خواص…
@@ -91,6 +103,7 @@ document_properties_page_size=صفہ کی لمبائ:
 document_properties_page_size_unit_inches=میں
 document_properties_page_size_unit_millimeters=mm
 document_properties_page_size_orientation_portrait=عمودی انداز
+document_properties_page_size_orientation_landscape=افقى انداز
 document_properties_page_size_name_a3=A3
 document_properties_page_size_name_a4=A4
 document_properties_page_size_name_letter=خط
@@ -102,8 +115,10 @@ document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}}
 # LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
 # "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
 # the size, respectively their unit of measurement, name, and orientation, of the (current) page.
+document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} {{name}} {{orientation}}
 # LOCALIZATION NOTE (document_properties_linearized): The linearization status of
 # the document; usually called "Fast Web View" in English locales of Adobe software.
+document_properties_linearized=تیز ویب دیکھیں:
 document_properties_linearized_yes=ہاں
 document_properties_linearized_no=نہیں
 document_properties_close=بند کریں
@@ -128,6 +143,8 @@ thumbs_label=مجمل
 findbar.title=دستاویز میں ڈھونڈیں
 findbar_label=ڈھونڈیں
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=صفحہ {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
@@ -145,6 +162,7 @@ find_next.title=فقرے کا اگلہ وقوع ڈھونڈیں
 find_next_label=آگے
 find_highlight=تمام نمایاں کریں
 find_match_case_label=حروف مشابہ کریں
+find_entire_word_label=تمام الفاظ
 find_reached_top=صفحہ کے شروع پر پہنچ گیا، نیچے سے جاری کیا
 find_reached_bottom=صفحہ کے اختتام پر پہنچ گیا، اوپر سے جاری کیا
 # LOCALIZATION NOTE (find_match_count): The supported plural forms are
@@ -152,9 +170,21 @@ find_reached_bottom=صفحہ کے اختتام پر پہنچ گیا، اوپر 
 # "{{current}}" and "{{total}}" will be replaced by a number representing the
 # index of the currently active find result, respectively a number representing
 # the total number of matches in the document.
+find_match_count={[ plural(total) ]}
+find_match_count[one]={{total}} میچ کا {{current}}.
+find_match_count[few]={{total}} میچوں میں سے {{current}}
+find_match_count[many]={{total}} میچوں میں سے {{current}}
+find_match_count[other]={{total}} میچوں میں سے {{current}}
 # LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
 # [zero|one|two|few|many|other], with [other] as the default value.
 # "{{limit}}" will be replaced by a numerical value.
+find_match_count_limit={[ plural(total) ]}
+find_match_count_limit[zero]={{limit}} سے زیادہ میچ
+find_match_count_limit[one]={{limit}} سے زیادہ میچ
+find_match_count_limit[two]={{limit}} سے زیادہ میچ
+find_match_count_limit[few]={{limit}} سے زیادہ میچ
+find_match_count_limit[many]={{limit}} سے زیادہ میچ
+find_match_count_limit[other]={{limit}} سے زیادہ میچ
 find_not_found=فقرا نہیں ملا
 
 # Error panel labels
@@ -194,6 +224,7 @@ unexpected_response_error=غیرمتوقع پیش کار جواب
 
 # LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
 # replaced by the modification date, and time, of the annotation.
+annotation_date_string={{date}}.{{time}}
 
 # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
 # "{{type}}" will be replaced with an annotation type from a list defined in
@@ -202,7 +233,7 @@ unexpected_response_error=غیرمتوقع پیش کار جواب
 text_annotation_type.alt=[{{type}} نوٹ]
 password_label=PDF مسل کھولنے کے لیے پاس ورڈ داخل کریں.
 password_invalid=ناجائز پاس ورڈ. براےؑ کرم دوبارہ کوشش کریں.
-password_ok=سہی
+password_ok=ٹھیک ہے
 password_cancel=منسوخ کریں
 
 printing_not_supported=تنبیہ:چھاپنا اس براؤزر پر پوری طرح معاونت شدہ نہیں ہے۔
diff --git a/third-party/pdfjs/web/locale/vi/viewer.properties 
b/third-party/pdfjs/web/locale/vi/viewer.properties
index 39d4b2bd6..b8ee16e5c 100644
--- a/third-party/pdfjs/web/locale/vi/viewer.properties
+++ b/third-party/pdfjs/web/locale/vi/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=Ảnh thu nhỏ
 findbar.title=Tìm trong tài liệu
 findbar_label=Tìm
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=Trang {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/zh-CN/viewer.properties 
b/third-party/pdfjs/web/locale/zh-CN/viewer.properties
index 5c4c53673..2dc609bfb 100644
--- a/third-party/pdfjs/web/locale/zh-CN/viewer.properties
+++ b/third-party/pdfjs/web/locale/zh-CN/viewer.properties
@@ -148,6 +148,8 @@ thumbs_label=缩略图
 findbar.title=在文档中查找
 findbar_label=查找
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=页码 {{page}}
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
diff --git a/third-party/pdfjs/web/locale/zh-TW/viewer.properties 
b/third-party/pdfjs/web/locale/zh-TW/viewer.properties
index e20b84c70..29ff043bf 100644
--- a/third-party/pdfjs/web/locale/zh-TW/viewer.properties
+++ b/third-party/pdfjs/web/locale/zh-TW/viewer.properties
@@ -148,10 +148,12 @@ thumbs_label=縮圖
 findbar.title=在文件中尋找
 findbar_label=尋找
 
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=第 {{page}} 頁
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
-thumb_page_title=頁 {{page}}
+thumb_page_title=第 {{page}} 頁
 # LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
 # number.
 thumb_page_canvas=頁 {{page}} 的縮圖
diff --git a/third-party/pdfjs/web/viewer.css b/third-party/pdfjs/web/viewer.css
index aabbad188..595660ad3 100644
--- a/third-party/pdfjs/web/viewer.css
+++ b/third-party/pdfjs/web/viewer.css
@@ -1,5 +1,4 @@
 /* Copyright 2014 Mozilla Foundation
- * Modifications made for Epiphany by Jan-Michael Brummer <jan brummer tabos org>
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,8 +29,7 @@
   position: absolute;
   white-space: pre;
   cursor: text;
-  -webkit-transform-origin: 0% 0%;
-          transform-origin: 0% 0%;
+  transform-origin: 0% 0%;
 }
 
 .textLayer .highlight {
@@ -183,13 +181,11 @@
 }
 
 .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before {
-  -webkit-transform: rotate(45deg);
-          transform: rotate(45deg);
+  transform: rotate(45deg);
 }
 
 .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after {
-  -webkit-transform: rotate(-45deg);
-          transform: rotate(-45deg);
+  transform: rotate(-45deg);
 }
 
 .annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before {
@@ -293,9 +289,8 @@
   overflow: visible;
   border: 9px solid transparent;
   background-clip: content-box;
-  -webkit-border-image: url(images/shadow.png) 9 9 repeat;
-       -o-border-image: url(images/shadow.png) 9 9 repeat;
-          border-image: url(images/shadow.png) 9 9 repeat;
+  -o-border-image: url(images/shadow.png) 9 9 repeat;
+     border-image: url(images/shadow.png) 9 9 repeat;
   background-color: rgba(255, 255, 255, 1);
 }
 
@@ -447,6 +442,14 @@ select {
   display: none !important;
 }
 
+.pdfViewer.enablePermissions .textLayer > span {
+  -webkit-user-select: none !important;
+     -moz-user-select: none !important;
+      -ms-user-select: none !important;
+          user-select: none !important;
+  cursor: not-allowed;
+}
+
 #viewerContainer.pdfPresentationMode:-ms-fullscreen {
   top: 0px !important;
   overflow: hidden !important;
@@ -558,23 +561,17 @@ select {
   visibility: hidden;
   z-index: 100;
   border-top: 1px solid rgba(51, 51, 51, 1);
-  -webkit-transition-duration: 200ms;
-          transition-duration: 200ms;
-  -webkit-transition-duration: var(--sidebar-transition-duration);
-          transition-duration: var(--sidebar-transition-duration);
-  -webkit-transition-timing-function: ease;
-          transition-timing-function: ease;
-  -webkit-transition-timing-function: var(--sidebar-transition-timing-function);
-          transition-timing-function: var(--sidebar-transition-timing-function);
+  transition-duration: 200ms;
+  transition-duration: var(--sidebar-transition-duration);
+  transition-timing-function: ease;
+  transition-timing-function: var(--sidebar-transition-timing-function);
 }
 html[dir='ltr'] #sidebarContainer {
-  -webkit-transition-property: left;
   transition-property: left;
   left: -200px;
   left: calc(0px - var(--sidebar-width));
 }
 html[dir='rtl'] #sidebarContainer {
-  -webkit-transition-property: right;
   transition-property: right;
   right: -200px;
   right: calc(0px - var(--sidebar-width));
@@ -586,8 +583,7 @@ html[dir='rtl'] #sidebarContainer {
 
 #outerContainer.sidebarResizing #sidebarContainer {
   /* Improve responsiveness and avoid visual glitches when the sidebar is resized. */
-  -webkit-transition-duration: 0s;
-          transition-duration: 0s;
+  transition-duration: 0s;
   /* Prevent e.g. the thumbnails being selected when the sidebar is resized. */
   -webkit-user-select: none;
      -moz-user-select: none;
@@ -644,14 +640,10 @@ html[dir='rtl'] #sidebarContent {
   outline: none;
 }
 #viewerContainer:not(.pdfPresentationMode) {
-  -webkit-transition-duration: 200ms;
-          transition-duration: 200ms;
-  -webkit-transition-duration: var(--sidebar-transition-duration);
-          transition-duration: var(--sidebar-transition-duration);
-  -webkit-transition-timing-function: ease;
-          transition-timing-function: ease;
-  -webkit-transition-timing-function: var(--sidebar-transition-timing-function);
-          transition-timing-function: var(--sidebar-transition-timing-function);
+  transition-duration: 200ms;
+  transition-duration: var(--sidebar-transition-duration);
+  transition-timing-function: ease;
+  transition-timing-function: var(--sidebar-transition-timing-function);
 }
 html[dir='ltr'] #viewerContainer {
   box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.05);
@@ -662,18 +654,15 @@ html[dir='rtl'] #viewerContainer {
 
 #outerContainer.sidebarResizing #viewerContainer {
   /* Improve responsiveness and avoid visual glitches when the sidebar is resized. */
-  -webkit-transition-duration: 0s;
-          transition-duration: 0s;
+  transition-duration: 0s;
 }
 
 html[dir='ltr'] #outerContainer.sidebarOpen #viewerContainer:not(.pdfPresentationMode) {
-  -webkit-transition-property: left;
   transition-property: left;
   left: 200px;
   left: var(--sidebar-width);
 }
 html[dir='rtl'] #outerContainer.sidebarOpen #viewerContainer:not(.pdfPresentationMode) {
-  -webkit-transition-property: right;
   transition-property: right;
   right: 200px;
   right: var(--sidebar-width);
@@ -695,8 +684,6 @@ html[dir='rtl'] #outerContainer.sidebarOpen #viewerContainer:not(.pdfPresentatio
   width: 100%;
   height: 32px;
   background-color: rgba(66, 66, 66, 1); /* fallback */
-  background-image: url(images/texture.png),
-                    -webkit-gradient(linear, left top, left bottom, from(rgba(77, 77, 77, 0.99)), 
to(rgba(64, 64, 64, 0.95)));
   background-image: url(images/texture.png),
                     linear-gradient(rgba(77, 77, 77, 0.99), rgba(64, 64, 64, 0.95));
 }
@@ -732,8 +719,6 @@ html[dir='rtl'] #sidebarResizer {
   position: relative;
   height: 32px;
   background-color: rgba(71, 71, 71, 1); /* fallback */
-  background-image: url(images/texture.png),
-                    -webkit-gradient(linear, left top, left bottom, from(rgba(82, 82, 82, 0.99)), 
to(rgba(69, 69, 69, 0.95)));
   background-image: url(images/texture.png),
                     linear-gradient(rgba(82, 82, 82, 0.99), rgba(69, 69, 69, 0.95));
 }
@@ -770,7 +755,6 @@ html[dir='rtl'] #toolbarContainer, .findbar, .secondaryToolbar {
   height: 100%;
   background-color: rgba(221, 221, 221, 1);
   overflow: hidden;
-  -webkit-transition: width 200ms;
   transition: width 200ms;
 }
 
@@ -786,7 +770,6 @@ html[dir='rtl'] #toolbarContainer, .findbar, .secondaryToolbar {
 
 #loadingBar .progress.indeterminate {
   background-color: rgba(153, 153, 153, 1);
-  -webkit-transition: none;
   transition: none;
 }
 
@@ -970,8 +953,7 @@ html[dir='ltr'] .doorHangerRight:before {
 #toolbarViewerMiddle {
   position: absolute;
   left: 50%;
-  -webkit-transform: translateX(-50%);
-          transform: translateX(-50%);
+  transform: translateX(-50%);
 }
 
 html[dir='ltr'] #toolbarViewerLeft,
@@ -1045,7 +1027,6 @@ html[dir='rtl'] .splitToolbarButton > .toolbarButton {
 .splitToolbarButton.toggled > .toolbarButton,
 .toolbarButton.textButton {
   background-color: rgba(0, 0, 0, 0.12);
-  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), 
to(rgba(255, 255, 255, 0)));
   background-image: linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
   background-clip: padding-box;
   border: 1px solid rgba(0, 0, 0, 0.35);
@@ -1150,7 +1131,6 @@ html[dir='rtl'] .dropdownToolbarButton {
 .secondaryToolbarButton:hover,
 .secondaryToolbarButton:focus {
   background-color: rgba(0, 0, 0, 0.12);
-  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), 
to(rgba(255, 255, 255, 0)));
   background-image: linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
   background-clip: padding-box;
   border: 1px solid rgba(0, 0, 0, 0.35);
@@ -1165,7 +1145,6 @@ html[dir='rtl'] .dropdownToolbarButton {
 .dropdownToolbarButton:hover:active,
 .secondaryToolbarButton:hover:active {
   background-color: rgba(0, 0, 0, 0.2);
-  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), 
to(rgba(255, 255, 255, 0)));
   background-image: linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
   border-color: rgba(0, 0, 0, 0.35) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.45);
   box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1) inset,
@@ -1177,7 +1156,6 @@ html[dir='rtl'] .dropdownToolbarButton {
 .splitToolbarButton.toggled > .toolbarButton.toggled,
 .secondaryToolbarButton.toggled {
   background-color: rgba(0, 0, 0, 0.3);
-  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), 
to(rgba(255, 255, 255, 0)));
   background-image: linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
   border-color: rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.45) rgba(0, 0, 0, 0.5);
   box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1) inset,
@@ -1214,7 +1192,6 @@ html[dir='rtl'] .dropdownToolbarButton::after {
 }
 
 .dropdownToolbarButton > select {
-  -webkit-appearance: none;
   width: 162px;
   height: 23px;
   font-size: 12px;
@@ -1287,46 +1264,46 @@ html[dir="rtl"] .secondaryToolbarButton::before {
   right: 4px;
 }
 
-html[dir='ltr'] .toolbarButton#sidebarToggle::before {
+.toolbarButton#sidebarToggle::before {
   content: url(images/toolbarButton-sidebarToggle.png);
 }
 html[dir='rtl'] .toolbarButton#sidebarToggle::before {
-  content: url(images/toolbarButton-sidebarToggle-rtl.png);
+  transform: scaleX(-1);
 }
 
-html[dir='ltr'] .toolbarButton#secondaryToolbarToggle::before {
+.toolbarButton#secondaryToolbarToggle::before {
   content: url(images/toolbarButton-secondaryToolbarToggle.png);
 }
 html[dir='rtl'] .toolbarButton#secondaryToolbarToggle::before {
-  content: url(images/toolbarButton-secondaryToolbarToggle-rtl.png);
+  transform: scaleX(-1);
 }
 
-html[dir='ltr'] .toolbarButton.findPrevious::before {
+.toolbarButton.findPrevious::before {
   content: url(images/findbarButton-previous.png);
 }
 html[dir='rtl'] .toolbarButton.findPrevious::before {
-  content: url(images/findbarButton-previous-rtl.png);
+  transform: scaleX(-1);
 }
 
-html[dir='ltr'] .toolbarButton.findNext::before {
+.toolbarButton.findNext::before {
   content: url(images/findbarButton-next.png);
 }
 html[dir='rtl'] .toolbarButton.findNext::before {
-  content: url(images/findbarButton-next-rtl.png);
+  transform: scaleX(-1);
 }
 
-html[dir='ltr'] .toolbarButton.pageUp::before {
+.toolbarButton.pageUp::before {
   content: url(images/toolbarButton-pageUp.png);
 }
 html[dir='rtl'] .toolbarButton.pageUp::before {
-  content: url(images/toolbarButton-pageUp-rtl.png);
+  transform: scaleX(-1);
 }
 
-html[dir='ltr'] .toolbarButton.pageDown::before {
+.toolbarButton.pageDown::before {
   content: url(images/toolbarButton-pageDown.png);
 }
 html[dir='rtl'] .toolbarButton.pageDown::before {
-  content: url(images/toolbarButton-pageDown-rtl.png);
+  transform: scaleX(-1);
 }
 
 .toolbarButton.zoomOut::before {
@@ -1382,11 +1359,11 @@ html[dir='rtl'] .toolbarButton.pageDown::before {
   content: url(images/toolbarButton-viewThumbnail.png);
 }
 
-html[dir="ltr"] #viewOutline.toolbarButton::before {
+#viewOutline.toolbarButton::before {
   content: url(images/toolbarButton-viewOutline.png);
 }
 html[dir="rtl"] #viewOutline.toolbarButton::before {
-  content: url(images/toolbarButton-viewOutline-rtl.png);
+  transform: scaleX(-1);
 }
 
 #viewAttachments.toolbarButton::before {
@@ -1528,7 +1505,6 @@ html[dir='rtl'] .verticalToolbarSeparator {
   margin: 4px 0 4px 0;
   border-radius: 2px;
   background-color: rgba(255, 255, 255, 0.09);
-  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), 
to(rgba(255, 255, 255, 0)));
   background-image: linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
   background-clip: padding-box;
   border-width: 1px;
@@ -1548,7 +1524,6 @@ html[dir='rtl'] .verticalToolbarSeparator {
 }
 
 .toolbarField.pageNumber {
-  -webkit-appearance: none;
   -moz-appearance: textfield; /* hides the spinner in moz */
   min-width: 16px;
   text-align: right;
@@ -1654,7 +1629,6 @@ a:focus > .thumbnail > .thumbnailSelectionRing > .thumbnailImage,
 a:focus > .thumbnail > .thumbnailSelectionRing,
 .thumbnail:hover > .thumbnailSelectionRing {
   background-color: rgba(255, 255, 255, 0.15);
-  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), 
to(rgba(255, 255, 255, 0)));
   background-image: linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
   background-clip: padding-box;
   box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05) inset,
@@ -1670,7 +1644,6 @@ a:focus > .thumbnail > .thumbnailSelectionRing,
 
 .thumbnail.selected > .thumbnailSelectionRing {
   background-color: rgba(255, 255, 255, 0.3);
-  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), 
to(rgba(255, 255, 255, 0)));
   background-image: linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
   background-clip: padding-box;
   box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05) inset,
@@ -1764,11 +1737,11 @@ html[dir='rtl'] .attachmentsItem > button {
   display: inline-block;
   position: absolute;
 }
-html[dir='ltr'] .outlineItemToggler.outlineItemsHidden::before {
+.outlineItemToggler.outlineItemsHidden::before {
   content: url(images/treeitem-collapsed.png);
 }
 html[dir='rtl'] .outlineItemToggler.outlineItemsHidden::before {
-  content: url(images/treeitem-collapsed-rtl.png);
+  transform: scaleX(-1);
 }
 .outlineItemToggler.outlineItemsHidden ~ .outlineItems {
   display: none;
@@ -1792,7 +1765,6 @@ html[dir='rtl'] .outlineItemToggler::before {
 .outlineItem > a:hover,
 .attachmentsItem > button:hover {
   background-color: rgba(255, 255, 255, 0.02);
-  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), 
to(rgba(255, 255, 255, 0)));
   background-image: linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
   background-clip: padding-box;
   box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05) inset,
@@ -1804,7 +1776,6 @@ html[dir='rtl'] .outlineItemToggler::before {
 
 .outlineItem.selected {
   background-color: rgba(255, 255, 255, 0.08);
-  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), 
to(rgba(255, 255, 255, 0)));
   background-image: linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
   background-clip: padding-box;
   box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05) inset,
@@ -1893,8 +1864,6 @@ html[dir='rtl'] .outlineItemToggler::before {
   font-size: 12px;
   line-height: 14px;
   background-color: rgba(71, 71, 71, 1); /* fallback */
-  background-image: url(images/texture.png),
-                    -webkit-gradient(linear, left top, left bottom, from(rgba(82, 82, 82,0.99)), to(rgba(69, 
69, 69, 0.95)));
   background-image: url(images/texture.png),
                     linear-gradient(rgba(82, 82, 82,0.99), rgba(69, 69, 69, 0.95));
   border: 1px solid rgba(0, 0, 0, 0.5);
@@ -2091,14 +2060,12 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
 @media screen and (-webkit-min-device-pixel-ratio: 1.1), screen and (min-resolution: 1.1dppx) {
   /* Rules for Retina screens */
   .toolbarButton::before {
-    -webkit-transform: scale(0.5);
-            transform: scale(0.5);
+    transform: scale(0.5);
     top: -5px;
   }
 
   .secondaryToolbarButton::before {
-    -webkit-transform: scale(0.5);
-            transform: scale(0.5);
+    transform: scale(0.5);
     top: -4px;
   }
 
@@ -2121,8 +2088,7 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
   }
 
   .dropdownToolbarButton::after {
-    -webkit-transform: scale(0.5);
-            transform: scale(0.5);
+    transform: scale(0.5);
     top: -5px;
     content: url(images/toolbarButton-menuArrows 2x png);
   }
@@ -2133,46 +2099,46 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
     left: 4px;
   }
 
-  html[dir='ltr'] .toolbarButton#sidebarToggle::before {
+  .toolbarButton#sidebarToggle::before {
     content: url(images/toolbarButton-sidebarToggle 2x png);
   }
   html[dir='rtl'] .toolbarButton#sidebarToggle::before {
-    content: url(images/toolbarButton-sidebarToggle-rtl 2x png);
+    transform: scale(-0.5, 0.5);
   }
 
-  html[dir='ltr'] .toolbarButton#secondaryToolbarToggle::before {
+  .toolbarButton#secondaryToolbarToggle::before {
     content: url(images/toolbarButton-secondaryToolbarToggle 2x png);
   }
   html[dir='rtl'] .toolbarButton#secondaryToolbarToggle::before {
-    content: url(images/toolbarButton-secondaryToolbarToggle-rtl 2x png);
+    transform: scale(-0.5, 0.5);
   }
 
-  html[dir='ltr'] .toolbarButton.findPrevious::before {
+  .toolbarButton.findPrevious::before {
     content: url(images/findbarButton-previous 2x png);
   }
   html[dir='rtl'] .toolbarButton.findPrevious::before {
-    content: url(images/findbarButton-previous-rtl 2x png);
+    transform: scale(-0.5, 0.5);
   }
 
-  html[dir='ltr'] .toolbarButton.findNext::before {
+  .toolbarButton.findNext::before {
     content: url(images/findbarButton-next 2x png);
   }
   html[dir='rtl'] .toolbarButton.findNext::before {
-    content: url(images/findbarButton-next-rtl 2x png);
+    transform: scale(-0.5, 0.5);
   }
 
-  html[dir='ltr'] .toolbarButton.pageUp::before {
+  .toolbarButton.pageUp::before {
     content: url(images/toolbarButton-pageUp 2x png);
   }
   html[dir='rtl'] .toolbarButton.pageUp::before {
-    content: url(images/toolbarButton-pageUp-rtl 2x png);
+    transform: scale(-0.5, 0.5);
   }
 
-  html[dir='ltr'] .toolbarButton.pageDown::before {
+  .toolbarButton.pageDown::before {
     content: url(images/toolbarButton-pageDown 2x png);
   }
   html[dir='rtl'] .toolbarButton.pageDown::before {
-    content: url(images/toolbarButton-pageDown-rtl 2x png);
+    transform: scale(-0.5, 0.5);
   }
 
   .toolbarButton.zoomIn::before {
@@ -2212,11 +2178,11 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
     content: url(images/toolbarButton-viewThumbnail 2x png);
   }
 
-  html[dir="ltr"] #viewOutline.toolbarButton::before {
+  #viewOutline.toolbarButton::before {
     content: url(images/toolbarButton-viewOutline 2x png);
   }
   html[dir="rtl"] #viewOutline.toolbarButton::before {
-    content: url(images/toolbarButton-viewOutline-rtl 2x png);
+    transform: scale(-0.5, 0.5);
   }
 
   #viewAttachments.toolbarButton::before {
@@ -2280,16 +2246,15 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
   }
 
   .outlineItemToggler::before {
-    -webkit-transform: scale(0.5);
-            transform: scale(0.5);
+    transform: scale(0.5);
     top: -1px;
     content: url(images/treeitem-expanded 2x png);
   }
-  html[dir='ltr'] .outlineItemToggler.outlineItemsHidden::before {
+  .outlineItemToggler.outlineItemsHidden::before {
     content: url(images/treeitem-collapsed 2x png);
   }
   html[dir='rtl'] .outlineItemToggler.outlineItemsHidden::before {
-    content: url(images/treeitem-collapsed-rtl 2x png);
+    transform: scale(-0.5, 0.5);
   }
   html[dir='ltr'] .outlineItemToggler::before {
     right: 0;
@@ -2375,8 +2340,7 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
     margin: auto;
     left: auto;
     position: inherit;
-    -webkit-transform: none;
-            transform: none;
+    transform: none;
   }
 }
 
diff --git a/third-party/pdfjs/web/viewer.html b/third-party/pdfjs/web/viewer.html
index 038ce6fba..1730b09b7 100644
--- a/third-party/pdfjs/web/viewer.html
+++ b/third-party/pdfjs/web/viewer.html
@@ -1,7 +1,6 @@
 <!DOCTYPE html>
 <!--
 Copyright 2012 Mozilla Foundation
-* Modifications made for Epiphany by Jan-Michael Brummer <jan brummer tabos org>
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -22,7 +21,7 @@ Adobe CMap resources are covered by their own copyright but the same license:
 See https://github.com/adobe-type-tools/cmap-resources
 -->
 <html dir="ltr" mozdisallowselectionprint>
-  <head pdf_data="%s" pdf_name="%s">
+  <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
     <meta name="google" content="notranslate">
@@ -30,7 +29,6 @@ See https://github.com/adobe-type-tools/cmap-resources
     <title>PDF.js viewer</title>
 
 
-    <base href="ephy-resource:///org/gnome/epiphany/pdfjs/web/">
     <link rel="stylesheet" href="viewer.css">
 
 
@@ -39,7 +37,7 @@ See https://github.com/adobe-type-tools/cmap-resources
 <script src="../build/pdf.js"></script>
 
 
-    <script src="viewer.js"></script>
+  <script src="viewer.js"></script>  
 
   </head>
 
@@ -204,7 +202,7 @@ See https://github.com/adobe-type-tools/cmap-resources
                     <span data-l10n-id="next_label">Next</span>
                   </button>
                 </div>
-                <input type="number" id="pageNumber" class="toolbarField pageNumber" title="Page" value="1" 
size="4" min="1" tabindex="15" data-l10n-id="page">
+                <input type="number" id="pageNumber" class="toolbarField pageNumber" title="Page" value="1" 
size="4" min="1" tabindex="15" data-l10n-id="page" autocomplete="off">
                 <span id="numPages" class="toolbarLabel"></span>
               </div>
               <div id="toolbarViewerRight">
diff --git a/third-party/pdfjs/web/viewer.js b/third-party/pdfjs/web/viewer.js
index a8b31a2c1..3cf8beed8 100644
--- a/third-party/pdfjs/web/viewer.js
+++ b/third-party/pdfjs/web/viewer.js
@@ -3,7 +3,6 @@
  * Javascript code in this page
  *
  * Copyright 2020 Mozilla Foundation
- * Modifications made for Epiphany by Jan-Michael Brummer <jan brummer tabos org>
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -257,8 +256,17 @@ function webViewerLoad() {
   window.PDFViewerApplication = pdfjsWebApp.PDFViewerApplication;
   window.PDFViewerApplicationOptions = pdfjsWebAppOptions.AppOptions;
   const event = document.createEvent("CustomEvent");
-  event.initCustomEvent("webviewerloaded", true, true, {});
-  document.dispatchEvent(event);
+  event.initCustomEvent("webviewerloaded", true, true, {
+    source: window
+  });
+
+  try {
+    parent.document.dispatchEvent(event);
+  } catch (ex) {
+    console.error(`webviewerloaded: ${ex}`);
+    document.dispatchEvent(event);
+  }
+
   pdfjsWebApp.PDFViewerApplication.run(config);
 }
 
@@ -284,7 +292,7 @@ var _ui_utils = __webpack_require__(2);
 
 var _app_options = __webpack_require__(3);
 
-var _pdfjsLib = __webpack_require__(4);
+var _pdfjsLib = __webpack_require__(5);
 
 var _pdf_cursor_tools = __webpack_require__(6);
 
@@ -328,6 +336,7 @@ const DEFAULT_SCALE_DELTA = 1.1;
 const DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000;
 const FORCE_PAGES_LOADED_TIMEOUT = 10000;
 const WHEEL_ZOOM_DISABLED_TIMEOUT = 1000;
+const ENABLE_PERMISSIONS_CLASS = "enablePermissions";
 const ViewOnLoad = {
   UNKNOWN: -1,
   PREVIOUS: 0,
@@ -376,6 +385,10 @@ class DefaultExternalServices {
     });
   }
 
+  static get isInAutomation() {
+    return (0, _pdfjsLib.shadow)(this, "isInAutomation", false);
+  }
+
 }
 
 exports.DefaultExternalServices = DefaultExternalServices;
@@ -441,7 +454,7 @@ const PDFViewerApplication = {
   },
 
   async _readPreferences() {
-    if (_app_options.AppOptions.get("disablePreferences") === true) {
+    if (_app_options.AppOptions.get("disablePreferences")) {
       return;
     }
 
@@ -470,40 +483,40 @@ const PDFViewerApplication = {
     const hashParams = (0, _ui_utils.parseQueryString)(hash),
           waitOn = [];
 
-    if ("disableworker" in hashParams && hashParams["disableworker"] === "true") {
+    if ("disableworker" in hashParams && hashParams.disableworker === "true") {
       waitOn.push(loadFakeWorker());
     }
 
     if ("disablerange" in hashParams) {
-      _app_options.AppOptions.set("disableRange", hashParams["disablerange"] === "true");
+      _app_options.AppOptions.set("disableRange", hashParams.disablerange === "true");
     }
 
     if ("disablestream" in hashParams) {
-      _app_options.AppOptions.set("disableStream", hashParams["disablestream"] === "true");
+      _app_options.AppOptions.set("disableStream", hashParams.disablestream === "true");
     }
 
     if ("disableautofetch" in hashParams) {
-      _app_options.AppOptions.set("disableAutoFetch", hashParams["disableautofetch"] === "true");
+      _app_options.AppOptions.set("disableAutoFetch", hashParams.disableautofetch === "true");
     }
 
     if ("disablefontface" in hashParams) {
-      _app_options.AppOptions.set("disableFontFace", hashParams["disablefontface"] === "true");
+      _app_options.AppOptions.set("disableFontFace", hashParams.disablefontface === "true");
     }
 
     if ("disablehistory" in hashParams) {
-      _app_options.AppOptions.set("disableHistory", hashParams["disablehistory"] === "true");
+      _app_options.AppOptions.set("disableHistory", hashParams.disablehistory === "true");
     }
 
     if ("webgl" in hashParams) {
-      _app_options.AppOptions.set("enableWebGL", hashParams["webgl"] === "true");
+      _app_options.AppOptions.set("enableWebGL", hashParams.webgl === "true");
     }
 
     if ("verbosity" in hashParams) {
-      _app_options.AppOptions.set("verbosity", hashParams["verbosity"] | 0);
+      _app_options.AppOptions.set("verbosity", hashParams.verbosity | 0);
     }
 
     if ("textlayer" in hashParams) {
-      switch (hashParams["textlayer"]) {
+      switch (hashParams.textlayer) {
         case "off":
           _app_options.AppOptions.set("textLayerMode", _ui_utils.TextLayerMode.DISABLE);
 
@@ -513,7 +526,7 @@ const PDFViewerApplication = {
         case "shadow":
         case "hover":
           const viewer = this.appConfig.viewerContainer;
-          viewer.classList.add("textLayer-" + hashParams["textlayer"]);
+          viewer.classList.add("textLayer-" + hashParams.textlayer);
           break;
       }
     }
@@ -521,12 +534,14 @@ const PDFViewerApplication = {
     if ("pdfbug" in hashParams) {
       _app_options.AppOptions.set("pdfBug", true);
 
-      const enabled = hashParams["pdfbug"].split(",");
+      _app_options.AppOptions.set("fontExtraProperties", true);
+
+      const enabled = hashParams.pdfbug.split(",");
       waitOn.push(loadAndEnablePDFBug(enabled));
     }
 
     if ("locale" in hashParams) {
-      _app_options.AppOptions.set("locale", hashParams["locale"]);
+      _app_options.AppOptions.set("locale", hashParams.locale);
     }
 
     return Promise.all(waitOn).catch(reason => {
@@ -544,11 +559,11 @@ const PDFViewerApplication = {
 
   async _initializeViewerComponents() {
     const appConfig = this.appConfig;
-    this.overlayManager = new _overlay_manager.OverlayManager();
     const eventBus = appConfig.eventBus || new _ui_utils.EventBus({
-      dispatchToDOM: _app_options.AppOptions.get("eventBusDispatchToDOM")
+      isInAutomation: this.externalServices.isInAutomation
     });
     this.eventBus = eventBus;
+    this.overlayManager = new _overlay_manager.OverlayManager();
     const pdfRenderingQueue = new _pdf_rendering_queue.PDFRenderingQueue();
     pdfRenderingQueue.onIdle = this.cleanup.bind(this);
     this.pdfRenderingQueue = pdfRenderingQueue;
@@ -703,14 +718,14 @@ const PDFViewerApplication = {
     return this.pdfDocument ? this.pdfDocument.numPages : 0;
   },
 
-  set page(val) {
-    this.pdfViewer.currentPageNumber = val;
-  },
-
   get page() {
     return this.pdfViewer.currentPageNumber;
   },
 
+  set page(val) {
+    this.pdfViewer.currentPageNumber = val;
+  },
+
   get printing() {
     return !!this.printService;
   },
@@ -795,6 +810,7 @@ const PDFViewerApplication = {
       this.pdfDocumentProperties.setDocument(null);
     }
 
+    webViewerResetPermissions();
     this.store = null;
     this.isInitialViewSet = false;
     this.downloadComplete = false;
@@ -909,7 +925,7 @@ const PDFViewerApplication = {
         this.error(msg, {
           message
         });
-        throw new Error(msg);
+        throw exception;
       });
     });
   },
@@ -1035,7 +1051,7 @@ const PDFViewerApplication = {
 
     if (percent > this.loadingBar.percent || isNaN(percent)) {
       this.loadingBar.percent = percent;
-      const disableAutoFetch = this.pdfDocument ? this.pdfDocument.loadingParams["disableAutoFetch"] : 
_app_options.AppOptions.get("disableAutoFetch");
+      const disableAutoFetch = this.pdfDocument ? this.pdfDocument.loadingParams.disableAutoFetch : 
_app_options.AppOptions.get("disableAutoFetch");
 
       if (disableAutoFetch && percent) {
         if (this.disableAutoFetchLoadingBarTimeout) {
@@ -1068,7 +1084,6 @@ const PDFViewerApplication = {
     const openActionPromise = pdfDocument.getOpenAction().catch(function () {});
     this.toolbar.setPagesCount(pdfDocument.numPages, false);
     this.secondaryToolbar.setPagesCount(pdfDocument.numPages);
-    const store = this.store = new _view_history.ViewHistory(pdfDocument.fingerprint);
     let baseDocumentUrl;
     baseDocumentUrl = null;
     this.pdfLinkService.setDocument(pdfDocument, baseDocumentUrl);
@@ -1082,19 +1097,21 @@ const PDFViewerApplication = {
     } = pdfViewer;
     const pdfThumbnailViewer = this.pdfThumbnailViewer;
     pdfThumbnailViewer.setDocument(pdfDocument);
+    const storedPromise = (this.store = new _view_history.ViewHistory(pdfDocument.fingerprint)).getMultiple({
+      page: null,
+      zoom: _ui_utils.DEFAULT_SCALE_VALUE,
+      scrollLeft: "0",
+      scrollTop: "0",
+      rotation: null,
+      sidebarView: _pdf_sidebar.SidebarView.UNKNOWN,
+      scrollMode: _ui_utils.ScrollMode.UNKNOWN,
+      spreadMode: _ui_utils.SpreadMode.UNKNOWN
+    }).catch(() => {
+      return Object.create(null);
+    });
     firstPagePromise.then(pdfPage => {
       this.loadingBar.setWidth(this.appConfig.viewerContainer);
-      const storePromise = store.getMultiple({
-        page: null,
-        zoom: _ui_utils.DEFAULT_SCALE_VALUE,
-        scrollLeft: "0",
-        scrollTop: "0",
-        rotation: null,
-        sidebarView: _pdf_sidebar.SidebarView.UNKNOWN,
-        scrollMode: _ui_utils.ScrollMode.UNKNOWN,
-        spreadMode: _ui_utils.SpreadMode.UNKNOWN
-      }).catch(() => {});
-      Promise.all([_ui_utils.animationStarted, storePromise, pageLayoutPromise, pageModePromise, 
openActionPromise]).then(async ([timeStamp, values = {}, pageLayout, pageMode, openAction]) => {
+      Promise.all([_ui_utils.animationStarted, storedPromise, pageLayoutPromise, pageModePromise, 
openActionPromise]).then(async ([timeStamp, stored, pageLayout, pageMode, openAction]) => {
         const viewOnLoad = _app_options.AppOptions.get("viewOnLoad");
 
         this._initializePdfHistory({
@@ -1116,20 +1133,20 @@ const PDFViewerApplication = {
 
         let spreadMode = _app_options.AppOptions.get("spreadModeOnLoad");
 
-        if (values.page && viewOnLoad !== ViewOnLoad.INITIAL) {
-          hash = `page=${values.page}&zoom=${zoom || values.zoom},` + 
`${values.scrollLeft},${values.scrollTop}`;
-          rotation = parseInt(values.rotation, 10);
+        if (stored.page && viewOnLoad !== ViewOnLoad.INITIAL) {
+          hash = `page=${stored.page}&zoom=${zoom || stored.zoom},` + 
`${stored.scrollLeft},${stored.scrollTop}`;
+          rotation = parseInt(stored.rotation, 10);
 
           if (sidebarView === _pdf_sidebar.SidebarView.UNKNOWN) {
-            sidebarView = values.sidebarView | 0;
+            sidebarView = stored.sidebarView | 0;
           }
 
           if (scrollMode === _ui_utils.ScrollMode.UNKNOWN) {
-            scrollMode = values.scrollMode | 0;
+            scrollMode = stored.scrollMode | 0;
           }
 
           if (spreadMode === _ui_utils.SpreadMode.UNKNOWN) {
-            spreadMode = values.spreadMode | 0;
+            spreadMode = stored.spreadMode | 0;
           }
         }
 
@@ -1155,6 +1172,8 @@ const PDFViewerApplication = {
           pdfViewer.focus();
         }
 
+        this._initializePermissions(pdfDocument);
+
         await Promise.race([pagesPromise, new Promise(resolve => {
           setTimeout(resolve, FORCE_PAGES_LOADED_TIMEOUT);
         })]);
@@ -1176,162 +1195,194 @@ const PDFViewerApplication = {
         pdfViewer.update();
       });
     });
-    pdfDocument.getPageLabels().then(labels => {
-      if (!labels || _app_options.AppOptions.get("disablePageLabels")) {
-        return;
-      }
-
-      const numLabels = labels.length;
+    pagesPromise.then(() => {
+      this._initializeAutoPrint(pdfDocument, openActionPromise);
+    });
+    onePageRendered.then(() => {
+      pdfDocument.getOutline().then(outline => {
+        this.pdfOutlineViewer.render({
+          outline
+        });
+      });
+      pdfDocument.getAttachments().then(attachments => {
+        this.pdfAttachmentViewer.render({
+          attachments
+        });
+      });
+    });
 
-      if (numLabels !== this.pagesCount) {
-        console.error("The number of Page Labels does not match " + "the number of pages in the document.");
-        return;
-      }
+    this._initializePageLabels(pdfDocument);
 
-      let i = 0;
+    this._initializeMetadata(pdfDocument);
+  },
 
-      while (i < numLabels && labels[i] === (i + 1).toString()) {
-        i++;
-      }
+  async _initializeAutoPrint(pdfDocument, openActionPromise) {
+    const [openAction, javaScript] = await Promise.all([openActionPromise, pdfDocument.getJavaScript()]);
 
-      if (i === numLabels) {
-        return;
-      }
+    if (pdfDocument !== this.pdfDocument) {
+      return;
+    }
 
-      pdfViewer.setPageLabels(labels);
-      pdfThumbnailViewer.setPageLabels(labels);
-      this.toolbar.setPagesCount(pdfDocument.numPages, true);
-      this.toolbar.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel);
-    });
-    pagesPromise.then(async () => {
-      const [openAction, javaScript] = await Promise.all([openActionPromise, pdfDocument.getJavaScript()]);
-      let triggerAutoPrint = false;
+    let triggerAutoPrint = false;
 
-      if (openAction && openAction.action === "Print") {
-        triggerAutoPrint = true;
-      }
+    if (openAction && openAction.action === "Print") {
+      triggerAutoPrint = true;
+    }
 
-      if (javaScript) {
-        javaScript.some(js => {
-          if (!js) {
-            return false;
-          }
+    if (javaScript) {
+      javaScript.some(js => {
+        if (!js) {
+          return false;
+        }
 
-          console.warn("Warning: JavaScript is not supported");
-          this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.javaScript);
-          return true;
-        });
+        console.warn("Warning: JavaScript is not supported");
+        this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.javaScript);
+        return true;
+      });
 
-        if (!triggerAutoPrint) {
-          for (const js of javaScript) {
-            if (js && _ui_utils.AutoPrintRegExp.test(js)) {
-              triggerAutoPrint = true;
-              break;
-            }
+      if (!triggerAutoPrint) {
+        for (const js of javaScript) {
+          if (js && _ui_utils.AutoPrintRegExp.test(js)) {
+            triggerAutoPrint = true;
+            break;
           }
         }
       }
+    }
 
-      if (!this.supportsPrinting) {
-        return;
-      }
+    if (!this.supportsPrinting) {
+      return;
+    }
 
-      if (triggerAutoPrint) {
-        setTimeout(function () {
-          window.print();
-        });
-      }
-    });
-    onePageRendered.then(() => {
-      pdfDocument.getOutline().then(outline => {
-        this.pdfOutlineViewer.render({
-          outline
-        });
-      });
-      pdfDocument.getAttachments().then(attachments => {
-        this.pdfAttachmentViewer.render({
-          attachments
-        });
+    if (triggerAutoPrint) {
+      setTimeout(function () {
+        window.print();
       });
-    });
-    pdfDocument.getMetadata().then(({
+    }
+  },
+
+  async _initializeMetadata(pdfDocument) {
+    const {
       info,
       metadata,
       contentDispositionFilename
-    }) => {
-      this.documentInfo = info;
-      this.metadata = metadata;
-      this.contentDispositionFilename = contentDispositionFilename;
-      console.log("PDF " + pdfDocument.fingerprint + " [" + info.PDFFormatVersion + " " + (info.Producer || 
"-").trim() + " / " + (info.Creator || "-").trim() + "]" + " (PDF.js: " + (_pdfjsLib.version || "-") + 
(_app_options.AppOptions.get("enableWebGL") ? " [WebGL]" : "") + ")");
-      let pdfTitle;
-      const infoTitle = info && info["Title"];
+    } = await pdfDocument.getMetadata();
 
-      if (infoTitle) {
-        pdfTitle = infoTitle;
-      }
+    if (pdfDocument !== this.pdfDocument) {
+      return;
+    }
 
-      const metadataTitle = metadata && metadata.get("dc:title");
+    this.documentInfo = info;
+    this.metadata = metadata;
+    this.contentDispositionFilename = contentDispositionFilename;
+    console.log(`PDF ${pdfDocument.fingerprint} [${info.PDFFormatVersion} ` + `${(info.Producer || 
"-").trim()} / ${(info.Creator || "-").trim()}] ` + `(PDF.js: ${_pdfjsLib.version || "-"}` + 
`${this.pdfViewer.enableWebGL ? " [WebGL]" : ""})`);
+    let pdfTitle;
+    const infoTitle = info && info.Title;
 
-      if (metadataTitle) {
-        if (metadataTitle !== "Untitled" && !/[\uFFF0-\uFFFF]/g.test(metadataTitle)) {
-          pdfTitle = metadataTitle;
-        }
-      }
+    if (infoTitle) {
+      pdfTitle = infoTitle;
+    }
 
-      if (pdfTitle) {
-        this.setTitle(`${pdfTitle} - ${contentDispositionFilename || document.title}`);
-      } else if (contentDispositionFilename) {
-        this.setTitle(contentDispositionFilename);
-      }
+    const metadataTitle = metadata && metadata.get("dc:title");
 
-      if (info.IsAcroFormPresent) {
-        console.warn("Warning: AcroForm/XFA is not supported");
-        this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.forms);
+    if (metadataTitle) {
+      if (metadataTitle !== "Untitled" && !/[\uFFF0-\uFFFF]/g.test(metadataTitle)) {
+        pdfTitle = metadataTitle;
       }
+    }
 
-      let versionId = "other";
-      const KNOWN_VERSIONS = ["1.0", "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "2.0", 
"2.1", "2.2", "2.3"];
-
-      if (KNOWN_VERSIONS.includes(info.PDFFormatVersion)) {
-        versionId = `v${info.PDFFormatVersion.replace(".", "_")}`;
-      }
+    if (pdfTitle) {
+      this.setTitle(`${pdfTitle} - ${contentDispositionFilename || document.title}`);
+    } else if (contentDispositionFilename) {
+      this.setTitle(contentDispositionFilename);
+    }
 
-      let generatorId = "other";
-      const KNOWN_GENERATORS = ["acrobat distiller", "acrobat pdfwriter", "adobe livecycle", "adobe pdf 
library", "adobe photoshop", "ghostscript", "tcpdf", "cairo", "dvipdfm", "dvips", "pdftex", "pdfkit", 
"itext", "prince", "quarkxpress", "mac os x", "microsoft", "openoffice", "oracle", "luradocument", 
"pdf-xchange", "antenna house", "aspose.cells", "fpdf"];
+    if (info.IsAcroFormPresent) {
+      console.warn("Warning: AcroForm/XFA is not supported");
+      this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.forms);
+    }
 
-      if (info.Producer) {
-        const producer = info.Producer.toLowerCase();
-        KNOWN_GENERATORS.some(function (generator) {
-          if (!producer.includes(generator)) {
-            return false;
-          }
+    let versionId = "other";
+    const KNOWN_VERSIONS = ["1.0", "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "2.0", 
"2.1", "2.2", "2.3"];
 
-          generatorId = generator.replace(/[ .\-]/g, "_");
-          return true;
-        });
-      }
+    if (KNOWN_VERSIONS.includes(info.PDFFormatVersion)) {
+      versionId = `v${info.PDFFormatVersion.replace(".", "_")}`;
+    }
 
-      let formType = null;
+    let generatorId = "other";
+    const KNOWN_GENERATORS = ["acrobat distiller", "acrobat pdfwriter", "adobe livecycle", "adobe pdf 
library", "adobe photoshop", "ghostscript", "tcpdf", "cairo", "dvipdfm", "dvips", "pdftex", "pdfkit", 
"itext", "prince", "quarkxpress", "mac os x", "microsoft", "openoffice", "oracle", "luradocument", 
"pdf-xchange", "antenna house", "aspose.cells", "fpdf"];
 
-      if (info.IsAcroFormPresent) {
-        formType = info.IsXFAPresent ? "xfa" : "acroform";
-      }
+    if (info.Producer) {
+      const producer = info.Producer.toLowerCase();
+      KNOWN_GENERATORS.some(function (generator) {
+        if (!producer.includes(generator)) {
+          return false;
+        }
 
-      this.externalServices.reportTelemetry({
-        type: "documentInfo",
-        version: versionId,
-        generator: generatorId,
-        formType
+        generatorId = generator.replace(/[ .\-]/g, "_");
+        return true;
       });
+    }
+
+    let formType = null;
+
+    if (info.IsAcroFormPresent) {
+      formType = info.IsXFAPresent ? "xfa" : "acroform";
+    }
+
+    this.externalServices.reportTelemetry({
+      type: "documentInfo",
+      version: versionId,
+      generator: generatorId,
+      formType
     });
   },
 
+  async _initializePageLabels(pdfDocument) {
+    const labels = await pdfDocument.getPageLabels();
+
+    if (pdfDocument !== this.pdfDocument) {
+      return;
+    }
+
+    if (!labels || _app_options.AppOptions.get("disablePageLabels")) {
+      return;
+    }
+
+    const numLabels = labels.length;
+
+    if (numLabels !== this.pagesCount) {
+      console.error("The number of Page Labels does not match the number of pages in the document.");
+      return;
+    }
+
+    let i = 0;
+
+    while (i < numLabels && labels[i] === (i + 1).toString()) {
+      i++;
+    }
+
+    if (i === numLabels) {
+      return;
+    }
+
+    const {
+      pdfViewer,
+      pdfThumbnailViewer,
+      toolbar
+    } = this;
+    pdfViewer.setPageLabels(labels);
+    pdfThumbnailViewer.setPageLabels(labels);
+    toolbar.setPagesCount(numLabels, true);
+    toolbar.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel);
+  },
+
   _initializePdfHistory({
     fingerprint,
     viewOnLoad,
     initialDest = null
   }) {
-    if (_app_options.AppOptions.get("disableHistory") || this.isViewerEmbedded) {
+    if (this.isViewerEmbedded || _app_options.AppOptions.get("disableHistory")) {
       return;
     }
 
@@ -1355,6 +1406,22 @@ const PDFViewerApplication = {
     }
   },
 
+  async _initializePermissions(pdfDocument) {
+    const permissions = await pdfDocument.getPermissions();
+
+    if (pdfDocument !== this.pdfDocument) {
+      return;
+    }
+
+    if (!permissions || !_app_options.AppOptions.get("enablePermissions")) {
+      return;
+    }
+
+    if (!permissions.includes(_pdfjsLib.PermissionFlag.COPY)) {
+      this.appConfig.viewerContainer.classList.add(ENABLE_PERMISSIONS_CLASS);
+    }
+  },
+
   setInitialView(storedHash, {
     rotation,
     sidebarView,
@@ -1693,7 +1760,9 @@ const PDFViewerApplication = {
       _boundEvents
     } = this;
     window.removeEventListener("visibilitychange", webViewerVisibilityChange);
-    window.removeEventListener("wheel", webViewerWheel);
+    window.removeEventListener("wheel", webViewerWheel, {
+      passive: false
+    });
     window.removeEventListener("click", webViewerClick);
     window.removeEventListener("keydown", webViewerKeyDown);
     window.removeEventListener("resize", _boundEvents.windowResize);
@@ -1767,7 +1836,8 @@ function webViewerInitialized() {
   let file;
   const queryString = document.location.search.substring(1);
   const params = (0, _ui_utils.parseQueryString)(queryString);
-  file = ''
+  file = "file" in params ? params.file : _app_options.AppOptions.get("defaultUrl");
+  validateFileURL(file);
   const fileInput = document.createElement("input");
   fileInput.id = appConfig.openFileInputName;
   fileInput.className = "fileInput";
@@ -1775,10 +1845,12 @@ function webViewerInitialized() {
   fileInput.oncontextmenu = _ui_utils.noContextMenuHandler;
   document.body.appendChild(fileInput);
 
-  appConfig.toolbar.openFile.setAttribute('hidden', 'true');
-  appConfig.secondaryToolbar.openFileButton.setAttribute('hidden', 'true');
-
-  appConfig.toolbar.viewBookmark.setAttribute('hidden', 'true');
+  if (!window.File || !window.FileReader || !window.FileList || !window.Blob) {
+    appConfig.toolbar.openFile.setAttribute("hidden", "true");
+    appConfig.secondaryToolbar.openFileButton.setAttribute("hidden", "true");
+  } else {
+    fileInput.value = null;
+  }
 
   fileInput.addEventListener("change", function (evt) {
     const files = evt.target.files;
@@ -1840,18 +1912,8 @@ function webViewerInitialized() {
     }
   }, true);
 
-  var file_name = document.head.getAttribute('pdf_name')
-  var raw = atob(document.head.getAttribute('pdf_data'));
-  var raw_length = raw.length;
-  var array = new Uint8Array(new ArrayBuffer(raw_length));
-
-  for(var i = 0; i < raw_length; i++) {
-    array[i] = raw.charCodeAt(i);
-  }
-
   try {
-    PDFViewerApplication.open(array);
-    PDFViewerApplication.setTitleUsingUrl(file_name);
+    webViewerOpenFileViaURL(file);
   } catch (reason) {
     PDFViewerApplication.l10n.get("loading_error", null, "An error occurred while loading the 
PDF.").then(msg => {
       PDFViewerApplication.error(msg, reason);
@@ -1882,6 +1944,18 @@ let webViewerOpenFileViaURL;
   };
 }
 
+function webViewerResetPermissions() {
+  const {
+    appConfig
+  } = PDFViewerApplication;
+
+  if (!appConfig) {
+    return;
+  }
+
+  appConfig.viewerContainer.classList.remove(ENABLE_PERMISSIONS_CLASS);
+}
+
 function webViewerPageRendered(evt) {
   const pageNumber = evt.pageNumber;
   const pageIndex = pageNumber - 1;
@@ -2074,7 +2148,7 @@ let webViewerFileInputChange, webViewerOpenFile;
 
     const file = evt.fileInput.files[0];
 
-    if (URL.createObjectURL && !_app_options.AppOptions.get("disableCreateObjectURL")) {
+    if (!_app_options.AppOptions.get("disableCreateObjectURL")) {
       let url = URL.createObjectURL(file);
 
       if (file.name) {
@@ -2433,12 +2507,27 @@ function webViewerKeyDown(evt) {
     }
   }
 
+  const {
+    eventBus
+  } = PDFViewerApplication;
+
   if (cmd === 1 || cmd === 8) {
     switch (evt.keyCode) {
       case 83:
-        PDFViewerApplication.download();
+        eventBus.dispatch("download", {
+          source: window
+        });
         handled = true;
         break;
+
+      case 79:
+        {
+          eventBus.dispatch("openfile", {
+            source: window
+          });
+          handled = true;
+        }
+        break;
     }
   }
 
@@ -2697,7 +2786,6 @@ exports.isValidRotation = isValidRotation;
 exports.isValidScrollMode = isValidScrollMode;
 exports.isValidSpreadMode = isValidSpreadMode;
 exports.isPortraitOrientation = isPortraitOrientation;
-exports.getGlobalEventBus = getGlobalEventBus;
 exports.clamp = clamp;
 exports.getPDFFileNameFromURL = getPDFFileNameFromURL;
 exports.noContextMenuHandler = noContextMenuHandler;
@@ -2905,7 +2993,7 @@ function binarySearchFirstItem(items, condition) {
   let minIndex = 0;
   let maxIndex = items.length - 1;
 
-  if (items.length === 0 || !condition(items[maxIndex])) {
+  if (maxIndex < 0 || !condition(items[maxIndex])) {
     return items.length;
   }
 
@@ -3235,41 +3323,12 @@ const animationStarted = new Promise(function (resolve) {
 exports.animationStarted = animationStarted;
 
 function dispatchDOMEvent(eventName, args = null) {
-  const details = Object.create(null);
-
-  if (args && args.length > 0) {
-    const obj = args[0];
-
-    for (const key in obj) {
-      const value = obj[key];
-
-      if (key === "source") {
-        if (value === window || value === document) {
-          return;
-        }
-
-        continue;
-      }
-
-      details[key] = value;
-    }
-  }
-
-  const event = document.createEvent("CustomEvent");
-  event.initCustomEvent(eventName, true, true, details);
-  document.dispatchEvent(event);
+  throw new Error("Not implemented: dispatchDOMEvent");
 }
 
 class EventBus {
-  constructor({
-    dispatchToDOM = false
-  } = {}) {
+  constructor(options) {
     this._listeners = Object.create(null);
-    this._dispatchToDOM = dispatchToDOM === true;
-
-    if (dispatchToDOM) {
-      console.error("The `eventBusDispatchToDOM` option/preference is deprecated, " + "add event listeners 
to the EventBus instance rather than the DOM.");
-    }
   }
 
   on(eventName, listener) {
@@ -3288,11 +3347,6 @@ class EventBus {
     const eventListeners = this._listeners[eventName];
 
     if (!eventListeners || eventListeners.length === 0) {
-      if (this._dispatchToDOM) {
-        const args = Array.prototype.slice.call(arguments, 1);
-        dispatchDOMEvent(eventName, args);
-      }
-
       return;
     }
 
@@ -3320,10 +3374,6 @@ class EventBus {
       });
       externalListeners = null;
     }
-
-    if (this._dispatchToDOM) {
-      dispatchDOMEvent(eventName, args);
-    }
   }
 
   _on(eventName, listener, options = null) {
@@ -3357,19 +3407,6 @@ class EventBus {
 }
 
 exports.EventBus = EventBus;
-let globalEventBus = null;
-
-function getGlobalEventBus(dispatchToDOM = false) {
-  console.error("getGlobalEventBus is deprecated, use a manually created EventBus instance instead.");
-
-  if (!globalEventBus) {
-    globalEventBus = new EventBus({
-      dispatchToDOM
-    });
-  }
-
-  return globalEventBus;
-}
 
 function clamp(v, min, max) {
   return Math.min(Math.max(v, min), max);
@@ -3482,9 +3519,7 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.OptionKind = exports.AppOptions = void 0;
 
-var _pdfjsLib = __webpack_require__(4);
-
-var _viewer_compatibility = __webpack_require__(5);
+var _viewer_compatibility = __webpack_require__(4);
 
 const OptionKind = {
   VIEWER: 0x02,
@@ -3506,6 +3541,11 @@ const defaultOptions = {
     value: "",
     kind: OptionKind.VIEWER + OptionKind.PREFERENCE
   },
+  disableCreateObjectURL: {
+    value: false,
+    compatibility: _viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL,
+    kind: OptionKind.VIEWER
+  },
   disableHistory: {
     value: false,
     kind: OptionKind.VIEWER
@@ -3514,15 +3554,15 @@ const defaultOptions = {
     value: false,
     kind: OptionKind.VIEWER + OptionKind.PREFERENCE
   },
-  enablePrintAutoRotate: {
+  enablePermissions: {
     value: false,
     kind: OptionKind.VIEWER + OptionKind.PREFERENCE
   },
-  enableWebGL: {
+  enablePrintAutoRotate: {
     value: false,
     kind: OptionKind.VIEWER + OptionKind.PREFERENCE
   },
-  eventBusDispatchToDOM: {
+  enableWebGL: {
     value: false,
     kind: OptionKind.VIEWER + OptionKind.PREFERENCE
   },
@@ -3555,6 +3595,10 @@ const defaultOptions = {
     value: false,
     kind: OptionKind.VIEWER + OptionKind.PREFERENCE
   },
+  printResolution: {
+    value: 150,
+    kind: OptionKind.VIEWER
+  },
   renderer: {
     value: "canvas",
     kind: OptionKind.VIEWER + OptionKind.PREFERENCE
@@ -3599,11 +3643,6 @@ const defaultOptions = {
     value: false,
     kind: OptionKind.API + OptionKind.PREFERENCE
   },
-  disableCreateObjectURL: {
-    value: false,
-    compatibility: _pdfjsLib.apiCompatibilityParams.disableCreateObjectURL,
-    kind: OptionKind.API
-  },
   disableFontFace: {
     value: false,
     kind: OptionKind.API + OptionKind.PREFERENCE
@@ -3620,6 +3659,10 @@ const defaultOptions = {
     value: "",
     kind: OptionKind.API
   },
+  fontExtraProperties: {
+    value: false,
+    kind: OptionKind.API
+  },
   isEvalSupported: {
     value: true,
     kind: OptionKind.API
@@ -3654,10 +3697,6 @@ const defaultOptions = {
     value: typeof navigator !== "undefined" ? navigator.language : "en-US",
     kind: OptionKind.VIEWER
   };
-  defaultOptions.printResolution = {
-    value: 150,
-    kind: OptionKind.VIEWER
-  };
 }
 const userOptions = Object.create(null);
 
@@ -3732,30 +3771,25 @@ exports.AppOptions = AppOptions;
 "use strict";
 
 
-let pdfjsLib;
-
-if (typeof window !== "undefined" && window["pdfjs-dist/build/pdf"]) {
-  pdfjsLib = window["pdfjs-dist/build/pdf"];
-} else {
-  pdfjsLib = require("../build/pdf.js");
-}
-
-module.exports = pdfjsLib;
-
-/***/ }),
-/* 5 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.viewerCompatibilityParams = void 0;
 const compatibilityParams = Object.create(null);
 {
   const userAgent = typeof navigator !== "undefined" && navigator.userAgent || "";
   const platform = typeof navigator !== "undefined" && navigator.platform || "";
   const maxTouchPoints = typeof navigator !== "undefined" && navigator.maxTouchPoints || 1;
   const isAndroid = /Android/.test(userAgent);
+  const isIE = /Trident/.test(userAgent);
   const isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === "MacIntel" && maxTouchPoints > 1;
+  const isIOSChrome = /CriOS/.test(userAgent);
+
+  (function checkOnBlobSupport() {
+    if (isIE || isIOSChrome) {
+      compatibilityParams.disableCreateObjectURL = true;
+    }
+  })();
 
   (function checkCanvasSizeLimitation() {
     if (isIOS || isAndroid) {
@@ -3763,7 +3797,25 @@ const compatibilityParams = Object.create(null);
     }
   })();
 }
-exports.viewerCompatibilityParams = Object.freeze(compatibilityParams);
+const viewerCompatibilityParams = Object.freeze(compatibilityParams);
+exports.viewerCompatibilityParams = viewerCompatibilityParams;
+
+/***/ }),
+/* 5 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+let pdfjsLib;
+
+if (typeof window !== "undefined" && window["pdfjs-dist/build/pdf"]) {
+  pdfjsLib = window["pdfjs-dist/build/pdf"];
+} else {
+  pdfjsLib = require("../build/pdf.js");
+}
+
+module.exports = pdfjsLib;
 
 /***/ }),
 /* 6 */
@@ -4697,7 +4749,7 @@ exports.PasswordPrompt = void 0;
 
 var _ui_utils = __webpack_require__(2);
 
-var _pdfjsLib = __webpack_require__(4);
+var _pdfjsLib = __webpack_require__(5);
 
 class PasswordPrompt {
   constructor(options, overlayManager, l10n = _ui_utils.NullL10n) {
@@ -4774,7 +4826,7 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.PDFAttachmentViewer = void 0;
 
-var _pdfjsLib = __webpack_require__(4);
+var _pdfjsLib = __webpack_require__(5);
 
 class PDFAttachmentViewer {
   constructor({
@@ -4809,20 +4861,27 @@ class PDFAttachmentViewer {
   }
 
   _bindPdfLink(button, content, filename) {
-    if (this.downloadManager.disableCreateObjectURL) {
-      throw new Error('bindPdfLink: Unsupported "disableCreateObjectURL" value.');
-    }
-
     let blobUrl;
 
-    button.onclick = function () {
+    button.onclick = () => {
       if (!blobUrl) {
-        blobUrl = (0, _pdfjsLib.createObjectURL)(content, "application/pdf");
+        blobUrl = URL.createObjectURL(new Blob([content], {
+          type: "application/pdf"
+        }));
       }
 
       let viewerUrl;
       viewerUrl = "?file=" + encodeURIComponent(blobUrl + "#" + filename);
-      window.open(viewerUrl);
+
+      try {
+        window.open(viewerUrl);
+      } catch (ex) {
+        console.error(`_bindPdfLink: ${ex}`);
+        URL.revokeObjectURL(blobUrl);
+        blobUrl = null;
+        this.downloadManager.downloadData(content, filename, "application/pdf");
+      }
+
       return false;
     };
   }
@@ -4923,7 +4982,7 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.PDFDocumentProperties = void 0;
 
-var _pdfjsLib = __webpack_require__(4);
+var _pdfjsLib = __webpack_require__(5);
 
 var _ui_utils = __webpack_require__(2);
 
@@ -4959,21 +5018,16 @@ class PDFDocumentProperties {
 
     this._reset();
 
-    if (closeButton) {
-      closeButton.addEventListener("click", this.close.bind(this));
-    }
-
+    closeButton.addEventListener("click", this.close.bind(this));
     this.overlayManager.register(this.overlayName, this.container, this.close.bind(this));
 
-    if (eventBus) {
-      eventBus._on("pagechanging", evt => {
-        this._currentPageNumber = evt.pageNumber;
-      });
+    eventBus._on("pagechanging", evt => {
+      this._currentPageNumber = evt.pageNumber;
+    });
 
-      eventBus._on("rotationchanging", evt => {
-        this._pagesRotation = evt.pagesRotation;
-      });
-    }
+    eventBus._on("rotationchanging", evt => {
+      this._pagesRotation = evt.pagesRotation;
+    });
 
     this._isNonMetricLocale = true;
     l10n.getLanguage().then(locale => {
@@ -4995,7 +5049,7 @@ class PDFDocumentProperties {
       const currentPageNumber = this._currentPageNumber;
       const pagesRotation = this._pagesRotation;
 
-      if (this.fieldData && currentPageNumber === this.fieldData["_currentPageNumber"] && pagesRotation === 
this.fieldData["_pagesRotation"]) {
+      if (this.fieldData && currentPageNumber === this.fieldData._currentPageNumber && pagesRotation === 
this.fieldData._pagesRotation) {
         this._updateUI();
 
         return;
@@ -5006,7 +5060,7 @@ class PDFDocumentProperties {
         metadata,
         contentDispositionFilename
       }) => {
-        return Promise.all([info, metadata, contentDispositionFilename || (0, 
_ui_utils.getPDFFileNameFromURL)(this.url || ""), this._parseFileSize(this.maybeFileSize), 
this._parseDate(info.CreationDate), this._parseDate(info.ModDate), 
this.pdfDocument.getPage(currentPageNumber).then(pdfPage => {
+        return Promise.all([info, metadata, contentDispositionFilename || (0, 
_ui_utils.getPDFFileNameFromURL)(this.url), this._parseFileSize(this.maybeFileSize), 
this._parseDate(info.CreationDate), this._parseDate(info.ModDate), 
this.pdfDocument.getPage(currentPageNumber).then(pdfPage => {
           return this._parsePageSize((0, _ui_utils.getPageSizeInches)(pdfPage), pagesRotation);
         }), this._parseLinearization(info.IsLinearized)]);
       }).then(([info, metadata, fileName, fileSize, creationDate, modDate, pageSize, isLinearized]) => {
@@ -5038,12 +5092,12 @@ class PDFDocumentProperties {
         this.maybeFileSize = length;
         return this._parseFileSize(length);
       }).then(fileSize => {
-        if (fileSize === this.fieldData["fileSize"]) {
+        if (fileSize === this.fieldData.fileSize) {
           return;
         }
 
         const data = Object.assign(Object.create(null), this.fieldData);
-        data["fileSize"] = fileSize;
+        data.fileSize = fileSize;
         freezeFieldData(data);
 
         this._updateUI();
@@ -5223,10 +5277,10 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.PDFFindBar = void 0;
 
-var _ui_utils = __webpack_require__(2);
-
 var _pdf_find_controller = __webpack_require__(15);
 
+var _ui_utils = __webpack_require__(2);
+
 const MATCHES_COUNT_LIMIT = 1000;
 
 class PDFFindBar {
@@ -5242,7 +5296,7 @@ class PDFFindBar {
     this.findResultsCount = options.findResultsCount || null;
     this.findPreviousButton = options.findPreviousButton || null;
     this.findNextButton = options.findNextButton || null;
-    this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)();
+    this.eventBus = eventBus;
     this.l10n = l10n;
     this.toggleButton.addEventListener("click", () => {
       this.toggle();
@@ -5434,12 +5488,12 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.PDFFindController = exports.FindState = void 0;
 
-var _ui_utils = __webpack_require__(2);
-
-var _pdfjsLib = __webpack_require__(4);
+var _pdfjsLib = __webpack_require__(5);
 
 var _pdf_find_utils = __webpack_require__(16);
 
+var _ui_utils = __webpack_require__(2);
+
 const FindState = {
   FOUND: 0,
   NOT_FOUND: 1,
@@ -5482,7 +5536,7 @@ class PDFFindController {
     eventBus
   }) {
     this._linkService = linkService;
-    this._eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)();
+    this._eventBus = eventBus;
 
     this._reset();
 
@@ -6229,7 +6283,7 @@ class PDFHistory {
     eventBus
   }) {
     this.linkService = linkService;
-    this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)();
+    this.eventBus = eventBus;
     this._initialized = false;
     this._fingerprint = "";
     this.reset();
@@ -6288,7 +6342,7 @@ class PDFHistory {
         hash,
         page,
         rotation
-      } = this._parseCurrentHash();
+      } = this._parseCurrentHash(true);
 
       if (!hash || reInitialized || resetHistory) {
         this._pushOrReplaceState(null, true);
@@ -6466,9 +6520,6 @@ class PDFHistory {
       }
     }
 
-    // FIXME: This currently breaks Epiphany due to rewriting history with baseUrl
-    return;
-
     if (shouldReplace) {
       window.history.replaceState(newState, "", newUrl);
     } else {
@@ -6569,11 +6620,13 @@ class PDFHistory {
     this._numPositionUpdates = 0;
   }
 
-  _parseCurrentHash() {
+  _parseCurrentHash(checkNameddest = false) {
     const hash = unescape(getCurrentHash()).substring(1);
-    let page = (0, _ui_utils.parseQueryString)(hash).page | 0;
+    const params = (0, _ui_utils.parseQueryString)(hash);
+    const nameddest = params.nameddest || "";
+    let page = params.page | 0;
 
-    if (!(Number.isInteger(page) && page > 0 && page <= this.linkService.pagesCount)) {
+    if (!(Number.isInteger(page) && page > 0 && page <= this.linkService.pagesCount) || checkNameddest && 
nameddest.length > 0) {
       page = null;
     }
 
@@ -6810,7 +6863,7 @@ class PDFLinkService {
     externalLinkEnabled = true,
     ignoreDestinationZoom = false
   } = {}) {
-    this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)();
+    this.eventBus = eventBus;
     this.externalLinkTarget = externalLinkTarget;
     this.externalLinkRel = externalLinkRel;
     this.externalLinkEnabled = externalLinkEnabled;
@@ -6958,16 +7011,11 @@ class PDFLinkService {
       if ("search" in params) {
         this.eventBus.dispatch("findfromurlhash", {
           source: this,
-          query: params["search"].replace(/"/g, ""),
-          phraseSearch: params["phrase"] === "true"
+          query: params.search.replace(/"/g, ""),
+          phraseSearch: params.phrase === "true"
         });
       }
 
-      if ("nameddest" in params) {
-        this.navigateTo(params.nameddest);
-        return;
-      }
-
       if ("page" in params) {
         pageNumber = params.page | 0 || 1;
       }
@@ -7020,6 +7068,10 @@ class PDFLinkService {
           mode: params.pagemode
         });
       }
+
+      if ("nameddest" in params) {
+        this.navigateTo(params.nameddest);
+      }
     } else {
       dest = unescape(hash);
 
@@ -7240,7 +7292,7 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.PDFOutlineViewer = void 0;
 
-var _pdfjsLib = __webpack_require__(4);
+var _pdfjsLib = __webpack_require__(5);
 
 const DEFAULT_TITLE = "\u2013";
 
@@ -7780,7 +7832,9 @@ class PDFPresentationMode {
     this.touchSwipeBind = this._touchSwipe.bind(this);
     window.addEventListener("mousemove", this.showControlsBind);
     window.addEventListener("mousedown", this.mouseDownBind);
-    window.addEventListener("wheel", this.mouseWheelBind);
+    window.addEventListener("wheel", this.mouseWheelBind, {
+      passive: false
+    });
     window.addEventListener("keydown", this.resetMouseScrollStateBind);
     window.addEventListener("contextmenu", this.contextMenuBind);
     window.addEventListener("touchstart", this.touchSwipeBind);
@@ -7791,7 +7845,9 @@ class PDFPresentationMode {
   _removeWindowListeners() {
     window.removeEventListener("mousemove", this.showControlsBind);
     window.removeEventListener("mousedown", this.mouseDownBind);
-    window.removeEventListener("wheel", this.mouseWheelBind);
+    window.removeEventListener("wheel", this.mouseWheelBind, {
+      passive: false
+    });
     window.removeEventListener("keydown", this.resetMouseScrollStateBind);
     window.removeEventListener("contextmenu", this.contextMenuBind);
     window.removeEventListener("touchstart", this.touchSwipeBind);
@@ -8251,7 +8307,7 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.PDFThumbnailView = void 0;
 
-var _pdfjsLib = __webpack_require__(4);
+var _pdfjsLib = __webpack_require__(5);
 
 var _ui_utils = __webpack_require__(2);
 
@@ -8663,11 +8719,11 @@ exports.PDFViewer = void 0;
 
 var _base_viewer = __webpack_require__(25);
 
-var _pdfjsLib = __webpack_require__(4);
+var _pdfjsLib = __webpack_require__(5);
 
 class PDFViewer extends _base_viewer.BaseViewer {
-  get _setDocumentViewerElement() {
-    return (0, _pdfjsLib.shadow)(this, "_setDocumentViewerElement", this.viewer);
+  get _viewerElement() {
+    return (0, _pdfjsLib.shadow)(this, "_viewerElement", this.viewer);
   }
 
   _scrollIntoView({
@@ -8754,7 +8810,7 @@ var _pdf_rendering_queue = __webpack_require__(8);
 
 var _annotation_layer_builder = __webpack_require__(26);
 
-var _pdfjsLib = __webpack_require__(4);
+var _pdfjsLib = __webpack_require__(5);
 
 var _pdf_page_view = __webpack_require__(27);
 
@@ -8823,7 +8879,7 @@ class BaseViewer {
     this._name = this.constructor.name;
     this.container = options.container;
     this.viewer = options.viewer || options.container.firstElementChild;
-    this.eventBus = options.eventBus || (0, _ui_utils.getGlobalEventBus)();
+    this.eventBus = options.eventBus;
     this.linkService = options.linkService || new _pdf_link_service.SimpleLinkService();
     this.downloadManager = options.downloadManager || null;
     this.findController = options.findController || null;
@@ -9030,8 +9086,16 @@ class BaseViewer {
     return this.pdfDocument ? this._pagesCapability.promise : null;
   }
 
-  get _setDocumentViewerElement() {
-    throw new Error("Not implemented: _setDocumentViewerElement");
+  get _viewerElement() {
+    throw new Error("Not implemented: _viewerElement");
+  }
+
+  _onePageRenderedOrForceFetch() {
+    if (!this.container.offsetParent || this._getVisiblePages().views.length === 0) {
+      return Promise.resolve();
+    }
+
+    return this._onePageRenderedCapability.promise;
   }
 
   setDocument(pdfDocument) {
@@ -9098,7 +9162,7 @@ class BaseViewer {
 
       for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) {
         const pageView = new _pdf_page_view.PDFPageView({
-          container: this._setDocumentViewerElement,
+          container: this._viewerElement,
           eventBus: this.eventBus,
           id: pageNum,
           scale,
@@ -9130,12 +9194,12 @@ class BaseViewer {
         this._updateSpreadMode();
       }
 
-      this._onePageRenderedCapability.promise.then(() => {
+      this._onePageRenderedOrForceFetch().then(() => {
         if (this.findController) {
           this.findController.setDocument(pdfDocument);
         }
 
-        if (pdfDocument.loadingParams["disableAutoFetch"] || pagesCount > 7500) {
+        if (pdfDocument.loadingParams.disableAutoFetch || pagesCount > 7500) {
           this._pagesCapability.resolve();
 
           return;
@@ -9860,7 +9924,7 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.DefaultAnnotationLayerFactory = exports.AnnotationLayerBuilder = void 0;
 
-var _pdfjsLib = __webpack_require__(4);
+var _pdfjsLib = __webpack_require__(5);
 
 var _ui_utils = __webpack_require__(2);
 
@@ -9973,11 +10037,11 @@ exports.PDFPageView = void 0;
 
 var _ui_utils = __webpack_require__(2);
 
-var _pdfjsLib = __webpack_require__(4);
+var _pdfjsLib = __webpack_require__(5);
 
 var _pdf_rendering_queue = __webpack_require__(8);
 
-var _viewer_compatibility = __webpack_require__(5);
+var _viewer_compatibility = __webpack_require__(4);
 
 const MAX_CANVAS_PIXELS = _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels || 16777216;
 
@@ -9999,7 +10063,7 @@ class PDFPageView {
     this.renderInteractiveForms = options.renderInteractiveForms || false;
     this.useOnlyCssZoom = options.useOnlyCssZoom || false;
     this.maxCanvasPixels = options.maxCanvasPixels || MAX_CANVAS_PIXELS;
-    this.eventBus = options.eventBus || (0, _ui_utils.getGlobalEventBus)();
+    this.eventBus = options.eventBus;
     this.renderingQueue = options.renderingQueue;
     this.textLayerFactory = options.textLayerFactory;
     this.annotationLayerFactory = options.annotationLayerFactory;
@@ -10569,9 +10633,7 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.DefaultTextLayerFactory = exports.TextLayerBuilder = void 0;
 
-var _ui_utils = __webpack_require__(2);
-
-var _pdfjsLib = __webpack_require__(4);
+var _pdfjsLib = __webpack_require__(5);
 
 const EXPAND_DIVS_TIMEOUT = 300;
 
@@ -10585,7 +10647,7 @@ class TextLayerBuilder {
     enhanceTextSelection = false
   }) {
     this.textLayerDiv = textLayerDiv;
-    this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)();
+    this.eventBus = eventBus;
     this.textContent = null;
     this.textContentItemsStr = [];
     this.textContentStream = null;
@@ -11275,7 +11337,7 @@ exports.PDFSinglePageViewer = void 0;
 
 var _base_viewer = __webpack_require__(25);
 
-var _pdfjsLib = __webpack_require__(4);
+var _pdfjsLib = __webpack_require__(5);
 
 class PDFSinglePageViewer extends _base_viewer.BaseViewer {
   constructor(options) {
@@ -11286,8 +11348,8 @@ class PDFSinglePageViewer extends _base_viewer.BaseViewer {
     });
   }
 
-  get _setDocumentViewerElement() {
-    return (0, _pdfjsLib.shadow)(this, "_setDocumentViewerElement", this._shadowViewer);
+  get _viewerElement() {
+    return (0, _pdfjsLib.shadow)(this, "_viewerElement", this._shadowViewer);
   }
 
   _resetView() {
@@ -11672,23 +11734,22 @@ class ViewHistory {
     this.cacheSize = cacheSize;
     this._initializedPromise = this._readFromStorage().then(databaseStr => {
       const database = JSON.parse(databaseStr || "{}");
+      let index = -1;
 
-      if (!("files" in database)) {
+      if (!Array.isArray(database.files)) {
         database.files = [];
       } else {
         while (database.files.length >= this.cacheSize) {
           database.files.shift();
         }
-      }
-
-      let index = -1;
 
-      for (let i = 0, length = database.files.length; i < length; i++) {
-        const branch = database.files[i];
+        for (let i = 0, ii = database.files.length; i < ii; i++) {
+          const branch = database.files[i];
 
-        if (branch.fingerprint === this.fingerprint) {
-          index = i;
-          break;
+          if (branch.fingerprint === this.fingerprint) {
+            index = i;
+            break;
+          }
         }
       }
 
@@ -11815,6 +11876,9 @@ Object.defineProperty(exports, "__esModule", {
   value: true
 });
 exports.BasePreferences = void 0;
+
+var _app_options = __webpack_require__(3);
+
 let defaultPreferences = null;
 
 function getDefaultPreferences() {
@@ -11823,9 +11887,9 @@ function getDefaultPreferences() {
       "cursorToolOnLoad": 0,
       "defaultZoomValue": "",
       "disablePageLabels": false,
+      "enablePermissions": false,
       "enablePrintAutoRotate": false,
       "enableWebGL": false,
-      "eventBusDispatchToDOM": false,
       "externalLinkTarget": 0,
       "historyUpdateUrl": false,
       "ignoreDestinationZoom": false,
@@ -11963,10 +12027,12 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.DownloadManager = void 0;
 
-var _pdfjsLib = __webpack_require__(4);
+var _pdfjsLib = __webpack_require__(5);
+
+var _viewer_compatibility = __webpack_require__(4);
 
 ;
-const DISABLE_CREATE_OBJECT_URL = _pdfjsLib.apiCompatibilityParams.disableCreateObjectURL || false;
+const DISABLE_CREATE_OBJECT_URL = _viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL || 
false;
 
 function download(blobUrl, filename) {
   const a = document.createElement("a");
@@ -12967,7 +13033,7 @@ function PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n) {
   this.pagesOverview = pagesOverview;
   this.printContainer = printContainer;
   this.l10n = l10n || _ui_utils.NullL10n;
-  this.disableCreateObjectURL = pdfDocument.loadingParams["disableCreateObjectURL"];
+  this.disableCreateObjectURL = _app_options.AppOptions.get("disableCreateObjectURL");
   this.currentPage = -1;
   this.scratchCanvas = document.createElement("canvas");
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]