tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

pdf.js (731653B)


      1 /**
      2 * @licstart The following is the entire license notice for the
      3 * Javascript code in this page
      4 *
      5 * Copyright 2019 Mozilla Foundation
      6 *
      7 * Licensed under the Apache License, Version 2.0 (the "License");
      8 * you may not use this file except in compliance with the License.
      9 * You may obtain a copy of the License at
     10 *
     11 *     http://www.apache.org/licenses/LICENSE-2.0
     12 *
     13 * Unless required by applicable law or agreed to in writing, software
     14 * distributed under the License is distributed on an "AS IS" BASIS,
     15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     16 * See the License for the specific language governing permissions and
     17 * limitations under the License.
     18 *
     19 * @licend The above is the entire license notice for the
     20 * Javascript code in this page
     21 */
     22 
     23 (function webpackUniversalModuleDefinition(root, factory) {
     24 if(typeof exports === 'object' && typeof module === 'object')
     25 	module.exports = factory();
     26 else if(typeof define === 'function' && define.amd)
     27 	define("pdfjs-dist/build/pdf", [], factory);
     28 else if(typeof exports === 'object')
     29 	exports["pdfjs-dist/build/pdf"] = factory();
     30 else
     31 	root["pdfjs-dist/build/pdf"] = root.pdfjsLib = factory();
     32 })(this, function() {
     33 return /******/ (function(modules) { // webpackBootstrap
     34 /******/ 	// The module cache
     35 /******/ 	var installedModules = {};
     36 /******/
     37 /******/ 	// The require function
     38 /******/ 	function __w_pdfjs_require__(moduleId) {
     39 /******/
     40 /******/ 		// Check if module is in cache
     41 /******/ 		if(installedModules[moduleId]) {
     42 /******/ 			return installedModules[moduleId].exports;
     43 /******/ 		}
     44 /******/ 		// Create a new module (and put it into the cache)
     45 /******/ 		var module = installedModules[moduleId] = {
     46 /******/ 			i: moduleId,
     47 /******/ 			l: false,
     48 /******/ 			exports: {}
     49 /******/ 		};
     50 /******/
     51 /******/ 		// Execute the module function
     52 /******/ 		modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);
     53 /******/
     54 /******/ 		// Flag the module as loaded
     55 /******/ 		module.l = true;
     56 /******/
     57 /******/ 		// Return the exports of the module
     58 /******/ 		return module.exports;
     59 /******/ 	}
     60 /******/
     61 /******/
     62 /******/ 	// expose the modules object (__webpack_modules__)
     63 /******/ 	__w_pdfjs_require__.m = modules;
     64 /******/
     65 /******/ 	// expose the module cache
     66 /******/ 	__w_pdfjs_require__.c = installedModules;
     67 /******/
     68 /******/ 	// define getter function for harmony exports
     69 /******/ 	__w_pdfjs_require__.d = function(exports, name, getter) {
     70 /******/ 		if(!__w_pdfjs_require__.o(exports, name)) {
     71 /******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
     72 /******/ 		}
     73 /******/ 	};
     74 /******/
     75 /******/ 	// define __esModule on exports
     76 /******/ 	__w_pdfjs_require__.r = function(exports) {
     77 /******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
     78 /******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
     79 /******/ 		}
     80 /******/ 		Object.defineProperty(exports, '__esModule', { value: true });
     81 /******/ 	};
     82 /******/
     83 /******/ 	// create a fake namespace object
     84 /******/ 	// mode & 1: value is a module id, require it
     85 /******/ 	// mode & 2: merge all properties of value into the ns
     86 /******/ 	// mode & 4: return value when already ns object
     87 /******/ 	// mode & 8|1: behave like require
     88 /******/ 	__w_pdfjs_require__.t = function(value, mode) {
     89 /******/ 		if(mode & 1) value = __w_pdfjs_require__(value);
     90 /******/ 		if(mode & 8) return value;
     91 /******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
     92 /******/ 		var ns = Object.create(null);
     93 /******/ 		__w_pdfjs_require__.r(ns);
     94 /******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
     95 /******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
     96 /******/ 		return ns;
     97 /******/ 	};
     98 /******/
     99 /******/ 	// getDefaultExport function for compatibility with non-harmony modules
    100 /******/ 	__w_pdfjs_require__.n = function(module) {
    101 /******/ 		var getter = module && module.__esModule ?
    102 /******/ 			function getDefault() { return module['default']; } :
    103 /******/ 			function getModuleExports() { return module; };
    104 /******/ 		__w_pdfjs_require__.d(getter, 'a', getter);
    105 /******/ 		return getter;
    106 /******/ 	};
    107 /******/
    108 /******/ 	// Object.prototype.hasOwnProperty.call
    109 /******/ 	__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
    110 /******/
    111 /******/ 	// __webpack_public_path__
    112 /******/ 	__w_pdfjs_require__.p = "";
    113 /******/
    114 /******/
    115 /******/ 	// Load entry module and return exports
    116 /******/ 	return __w_pdfjs_require__(__w_pdfjs_require__.s = 0);
    117 /******/ })
    118 /************************************************************************/
    119 /******/ ([
    120 /* 0 */
    121 /***/ (function(module, exports, __w_pdfjs_require__) {
    122 
    123 "use strict";
    124 
    125 
    126 var pdfjsVersion = '2.2.228';
    127 var pdfjsBuild = 'd7afb74a';
    128 
    129 var pdfjsSharedUtil = __w_pdfjs_require__(1);
    130 
    131 var pdfjsDisplayAPI = __w_pdfjs_require__(147);
    132 
    133 var pdfjsDisplayTextLayer = __w_pdfjs_require__(162);
    134 
    135 var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(163);
    136 
    137 var pdfjsDisplayDisplayUtils = __w_pdfjs_require__(151);
    138 
    139 var pdfjsDisplaySVG = __w_pdfjs_require__(164);
    140 
    141 var pdfjsDisplayWorkerOptions = __w_pdfjs_require__(156);
    142 
    143 var pdfjsDisplayAPICompatibility = __w_pdfjs_require__(153);
    144 
    145 {
    146  var isNodeJS = __w_pdfjs_require__(4);
    147 
    148  if (isNodeJS()) {
    149    var PDFNodeStream = __w_pdfjs_require__(165).PDFNodeStream;
    150 
    151    pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {
    152      return new PDFNodeStream(params);
    153    });
    154  } else {
    155    var PDFNetworkStream = __w_pdfjs_require__(168).PDFNetworkStream;
    156 
    157    var PDFFetchStream;
    158 
    159    if (pdfjsDisplayDisplayUtils.isFetchSupported()) {
    160      PDFFetchStream = __w_pdfjs_require__(169).PDFFetchStream;
    161    }
    162 
    163    pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {
    164      if (PDFFetchStream && pdfjsDisplayDisplayUtils.isValidFetchUrl(params.url)) {
    165        return new PDFFetchStream(params);
    166      }
    167 
    168      return new PDFNetworkStream(params);
    169    });
    170  }
    171 }
    172 exports.build = pdfjsDisplayAPI.build;
    173 exports.version = pdfjsDisplayAPI.version;
    174 exports.getDocument = pdfjsDisplayAPI.getDocument;
    175 exports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort;
    176 exports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport;
    177 exports.PDFWorker = pdfjsDisplayAPI.PDFWorker;
    178 exports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer;
    179 exports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer;
    180 exports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability;
    181 exports.PasswordResponses = pdfjsSharedUtil.PasswordResponses;
    182 exports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException;
    183 exports.MissingPDFException = pdfjsSharedUtil.MissingPDFException;
    184 exports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics;
    185 exports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding;
    186 exports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType;
    187 exports.PermissionFlag = pdfjsSharedUtil.PermissionFlag;
    188 exports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException;
    189 exports.OPS = pdfjsSharedUtil.OPS;
    190 exports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel;
    191 exports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES;
    192 exports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl;
    193 exports.createObjectURL = pdfjsSharedUtil.createObjectURL;
    194 exports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters;
    195 exports.shadow = pdfjsSharedUtil.shadow;
    196 exports.Util = pdfjsSharedUtil.Util;
    197 exports.ReadableStream = pdfjsSharedUtil.ReadableStream;
    198 exports.URL = pdfjsSharedUtil.URL;
    199 exports.RenderingCancelledException = pdfjsDisplayDisplayUtils.RenderingCancelledException;
    200 exports.getFilenameFromUrl = pdfjsDisplayDisplayUtils.getFilenameFromUrl;
    201 exports.LinkTarget = pdfjsDisplayDisplayUtils.LinkTarget;
    202 exports.addLinkAttributes = pdfjsDisplayDisplayUtils.addLinkAttributes;
    203 exports.loadScript = pdfjsDisplayDisplayUtils.loadScript;
    204 exports.PDFDateString = pdfjsDisplayDisplayUtils.PDFDateString;
    205 exports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions;
    206 exports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityParams;
    207 
    208 /***/ }),
    209 /* 1 */
    210 /***/ (function(module, exports, __w_pdfjs_require__) {
    211 
    212 "use strict";
    213 
    214 
    215 Object.defineProperty(exports, "__esModule", {
    216  value: true
    217 });
    218 exports.arrayByteLength = arrayByteLength;
    219 exports.arraysToBytes = arraysToBytes;
    220 exports.assert = assert;
    221 exports.bytesToString = bytesToString;
    222 exports.createPromiseCapability = createPromiseCapability;
    223 exports.getVerbosityLevel = getVerbosityLevel;
    224 exports.info = info;
    225 exports.isArrayBuffer = isArrayBuffer;
    226 exports.isArrayEqual = isArrayEqual;
    227 exports.isBool = isBool;
    228 exports.isEmptyObj = isEmptyObj;
    229 exports.isNum = isNum;
    230 exports.isString = isString;
    231 exports.isSpace = isSpace;
    232 exports.isSameOrigin = isSameOrigin;
    233 exports.createValidAbsoluteUrl = createValidAbsoluteUrl;
    234 exports.isLittleEndian = isLittleEndian;
    235 exports.isEvalSupported = isEvalSupported;
    236 exports.log2 = log2;
    237 exports.readInt8 = readInt8;
    238 exports.readUint16 = readUint16;
    239 exports.readUint32 = readUint32;
    240 exports.removeNullCharacters = removeNullCharacters;
    241 exports.setVerbosityLevel = setVerbosityLevel;
    242 exports.shadow = shadow;
    243 exports.string32 = string32;
    244 exports.stringToBytes = stringToBytes;
    245 exports.stringToPDFString = stringToPDFString;
    246 exports.stringToUTF8String = stringToUTF8String;
    247 exports.utf8StringToString = utf8StringToString;
    248 exports.warn = warn;
    249 exports.unreachable = unreachable;
    250 Object.defineProperty(exports, "ReadableStream", {
    251  enumerable: true,
    252  get: function get() {
    253    return _streams_polyfill.ReadableStream;
    254  }
    255 });
    256 Object.defineProperty(exports, "URL", {
    257  enumerable: true,
    258  get: function get() {
    259    return _url_polyfill.URL;
    260  }
    261 });
    262 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.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = void 0;
    263 
    264 __w_pdfjs_require__(2);
    265 
    266 var _streams_polyfill = __w_pdfjs_require__(143);
    267 
    268 var _url_polyfill = __w_pdfjs_require__(145);
    269 
    270 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
    271 
    272 var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];
    273 exports.IDENTITY_MATRIX = IDENTITY_MATRIX;
    274 var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];
    275 exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;
    276 var NativeImageDecoding = {
    277  NONE: 'none',
    278  DECODE: 'decode',
    279  DISPLAY: 'display'
    280 };
    281 exports.NativeImageDecoding = NativeImageDecoding;
    282 var PermissionFlag = {
    283  PRINT: 0x04,
    284  MODIFY_CONTENTS: 0x08,
    285  COPY: 0x10,
    286  MODIFY_ANNOTATIONS: 0x20,
    287  FILL_INTERACTIVE_FORMS: 0x100,
    288  COPY_FOR_ACCESSIBILITY: 0x200,
    289  ASSEMBLE: 0x400,
    290  PRINT_HIGH_QUALITY: 0x800
    291 };
    292 exports.PermissionFlag = PermissionFlag;
    293 var TextRenderingMode = {
    294  FILL: 0,
    295  STROKE: 1,
    296  FILL_STROKE: 2,
    297  INVISIBLE: 3,
    298  FILL_ADD_TO_PATH: 4,
    299  STROKE_ADD_TO_PATH: 5,
    300  FILL_STROKE_ADD_TO_PATH: 6,
    301  ADD_TO_PATH: 7,
    302  FILL_STROKE_MASK: 3,
    303  ADD_TO_PATH_FLAG: 4
    304 };
    305 exports.TextRenderingMode = TextRenderingMode;
    306 var ImageKind = {
    307  GRAYSCALE_1BPP: 1,
    308  RGB_24BPP: 2,
    309  RGBA_32BPP: 3
    310 };
    311 exports.ImageKind = ImageKind;
    312 var AnnotationType = {
    313  TEXT: 1,
    314  LINK: 2,
    315  FREETEXT: 3,
    316  LINE: 4,
    317  SQUARE: 5,
    318  CIRCLE: 6,
    319  POLYGON: 7,
    320  POLYLINE: 8,
    321  HIGHLIGHT: 9,
    322  UNDERLINE: 10,
    323  SQUIGGLY: 11,
    324  STRIKEOUT: 12,
    325  STAMP: 13,
    326  CARET: 14,
    327  INK: 15,
    328  POPUP: 16,
    329  FILEATTACHMENT: 17,
    330  SOUND: 18,
    331  MOVIE: 19,
    332  WIDGET: 20,
    333  SCREEN: 21,
    334  PRINTERMARK: 22,
    335  TRAPNET: 23,
    336  WATERMARK: 24,
    337  THREED: 25,
    338  REDACT: 26
    339 };
    340 exports.AnnotationType = AnnotationType;
    341 var AnnotationFlag = {
    342  INVISIBLE: 0x01,
    343  HIDDEN: 0x02,
    344  PRINT: 0x04,
    345  NOZOOM: 0x08,
    346  NOROTATE: 0x10,
    347  NOVIEW: 0x20,
    348  READONLY: 0x40,
    349  LOCKED: 0x80,
    350  TOGGLENOVIEW: 0x100,
    351  LOCKEDCONTENTS: 0x200
    352 };
    353 exports.AnnotationFlag = AnnotationFlag;
    354 var AnnotationFieldFlag = {
    355  READONLY: 0x0000001,
    356  REQUIRED: 0x0000002,
    357  NOEXPORT: 0x0000004,
    358  MULTILINE: 0x0001000,
    359  PASSWORD: 0x0002000,
    360  NOTOGGLETOOFF: 0x0004000,
    361  RADIO: 0x0008000,
    362  PUSHBUTTON: 0x0010000,
    363  COMBO: 0x0020000,
    364  EDIT: 0x0040000,
    365  SORT: 0x0080000,
    366  FILESELECT: 0x0100000,
    367  MULTISELECT: 0x0200000,
    368  DONOTSPELLCHECK: 0x0400000,
    369  DONOTSCROLL: 0x0800000,
    370  COMB: 0x1000000,
    371  RICHTEXT: 0x2000000,
    372  RADIOSINUNISON: 0x2000000,
    373  COMMITONSELCHANGE: 0x4000000
    374 };
    375 exports.AnnotationFieldFlag = AnnotationFieldFlag;
    376 var AnnotationBorderStyleType = {
    377  SOLID: 1,
    378  DASHED: 2,
    379  BEVELED: 3,
    380  INSET: 4,
    381  UNDERLINE: 5
    382 };
    383 exports.AnnotationBorderStyleType = AnnotationBorderStyleType;
    384 var StreamType = {
    385  UNKNOWN: 0,
    386  FLATE: 1,
    387  LZW: 2,
    388  DCT: 3,
    389  JPX: 4,
    390  JBIG: 5,
    391  A85: 6,
    392  AHX: 7,
    393  CCF: 8,
    394  RL: 9
    395 };
    396 exports.StreamType = StreamType;
    397 var FontType = {
    398  UNKNOWN: 0,
    399  TYPE1: 1,
    400  TYPE1C: 2,
    401  CIDFONTTYPE0: 3,
    402  CIDFONTTYPE0C: 4,
    403  TRUETYPE: 5,
    404  CIDFONTTYPE2: 6,
    405  TYPE3: 7,
    406  OPENTYPE: 8,
    407  TYPE0: 9,
    408  MMTYPE1: 10
    409 };
    410 exports.FontType = FontType;
    411 var VerbosityLevel = {
    412  ERRORS: 0,
    413  WARNINGS: 1,
    414  INFOS: 5
    415 };
    416 exports.VerbosityLevel = VerbosityLevel;
    417 var CMapCompressionType = {
    418  NONE: 0,
    419  BINARY: 1,
    420  STREAM: 2
    421 };
    422 exports.CMapCompressionType = CMapCompressionType;
    423 var OPS = {
    424  dependency: 1,
    425  setLineWidth: 2,
    426  setLineCap: 3,
    427  setLineJoin: 4,
    428  setMiterLimit: 5,
    429  setDash: 6,
    430  setRenderingIntent: 7,
    431  setFlatness: 8,
    432  setGState: 9,
    433  save: 10,
    434  restore: 11,
    435  transform: 12,
    436  moveTo: 13,
    437  lineTo: 14,
    438  curveTo: 15,
    439  curveTo2: 16,
    440  curveTo3: 17,
    441  closePath: 18,
    442  rectangle: 19,
    443  stroke: 20,
    444  closeStroke: 21,
    445  fill: 22,
    446  eoFill: 23,
    447  fillStroke: 24,
    448  eoFillStroke: 25,
    449  closeFillStroke: 26,
    450  closeEOFillStroke: 27,
    451  endPath: 28,
    452  clip: 29,
    453  eoClip: 30,
    454  beginText: 31,
    455  endText: 32,
    456  setCharSpacing: 33,
    457  setWordSpacing: 34,
    458  setHScale: 35,
    459  setLeading: 36,
    460  setFont: 37,
    461  setTextRenderingMode: 38,
    462  setTextRise: 39,
    463  moveText: 40,
    464  setLeadingMoveText: 41,
    465  setTextMatrix: 42,
    466  nextLine: 43,
    467  showText: 44,
    468  showSpacedText: 45,
    469  nextLineShowText: 46,
    470  nextLineSetSpacingShowText: 47,
    471  setCharWidth: 48,
    472  setCharWidthAndBounds: 49,
    473  setStrokeColorSpace: 50,
    474  setFillColorSpace: 51,
    475  setStrokeColor: 52,
    476  setStrokeColorN: 53,
    477  setFillColor: 54,
    478  setFillColorN: 55,
    479  setStrokeGray: 56,
    480  setFillGray: 57,
    481  setStrokeRGBColor: 58,
    482  setFillRGBColor: 59,
    483  setStrokeCMYKColor: 60,
    484  setFillCMYKColor: 61,
    485  shadingFill: 62,
    486  beginInlineImage: 63,
    487  beginImageData: 64,
    488  endInlineImage: 65,
    489  paintXObject: 66,
    490  markPoint: 67,
    491  markPointProps: 68,
    492  beginMarkedContent: 69,
    493  beginMarkedContentProps: 70,
    494  endMarkedContent: 71,
    495  beginCompat: 72,
    496  endCompat: 73,
    497  paintFormXObjectBegin: 74,
    498  paintFormXObjectEnd: 75,
    499  beginGroup: 76,
    500  endGroup: 77,
    501  beginAnnotations: 78,
    502  endAnnotations: 79,
    503  beginAnnotation: 80,
    504  endAnnotation: 81,
    505  paintJpegXObject: 82,
    506  paintImageMaskXObject: 83,
    507  paintImageMaskXObjectGroup: 84,
    508  paintImageXObject: 85,
    509  paintInlineImageXObject: 86,
    510  paintInlineImageXObjectGroup: 87,
    511  paintImageXObjectRepeat: 88,
    512  paintImageMaskXObjectRepeat: 89,
    513  paintSolidColorImageMask: 90,
    514  constructPath: 91
    515 };
    516 exports.OPS = OPS;
    517 var UNSUPPORTED_FEATURES = {
    518  unknown: 'unknown',
    519  forms: 'forms',
    520  javaScript: 'javaScript',
    521  smask: 'smask',
    522  shadingPattern: 'shadingPattern',
    523  font: 'font'
    524 };
    525 exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;
    526 var PasswordResponses = {
    527  NEED_PASSWORD: 1,
    528  INCORRECT_PASSWORD: 2
    529 };
    530 exports.PasswordResponses = PasswordResponses;
    531 var verbosity = VerbosityLevel.WARNINGS;
    532 
    533 function setVerbosityLevel(level) {
    534  if (Number.isInteger(level)) {
    535    verbosity = level;
    536  }
    537 }
    538 
    539 function getVerbosityLevel() {
    540  return verbosity;
    541 }
    542 
    543 function info(msg) {
    544  if (verbosity >= VerbosityLevel.INFOS) {
    545    console.log('Info: ' + msg);
    546  }
    547 }
    548 
    549 function warn(msg) {
    550  if (verbosity >= VerbosityLevel.WARNINGS) {
    551    console.log('Warning: ' + msg);
    552  }
    553 }
    554 
    555 function unreachable(msg) {
    556  throw new Error(msg);
    557 }
    558 
    559 function assert(cond, msg) {
    560  if (!cond) {
    561    unreachable(msg);
    562  }
    563 }
    564 
    565 function isSameOrigin(baseUrl, otherUrl) {
    566  try {
    567    var base = new _url_polyfill.URL(baseUrl);
    568 
    569    if (!base.origin || base.origin === 'null') {
    570      return false;
    571    }
    572  } catch (e) {
    573    return false;
    574  }
    575 
    576  var other = new _url_polyfill.URL(otherUrl, base);
    577  return base.origin === other.origin;
    578 }
    579 
    580 function _isValidProtocol(url) {
    581  if (!url) {
    582    return false;
    583  }
    584 
    585  switch (url.protocol) {
    586    case 'http:':
    587    case 'https:':
    588    case 'ftp:':
    589    case 'mailto:':
    590    case 'tel:':
    591      return true;
    592 
    593    default:
    594      return false;
    595  }
    596 }
    597 
    598 function createValidAbsoluteUrl(url, baseUrl) {
    599  if (!url) {
    600    return null;
    601  }
    602 
    603  try {
    604    var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url);
    605 
    606    if (_isValidProtocol(absoluteUrl)) {
    607      return absoluteUrl;
    608    }
    609  } catch (ex) {}
    610 
    611  return null;
    612 }
    613 
    614 function shadow(obj, prop, value) {
    615  Object.defineProperty(obj, prop, {
    616    value: value,
    617    enumerable: true,
    618    configurable: true,
    619    writable: false
    620  });
    621  return value;
    622 }
    623 
    624 var PasswordException = function PasswordExceptionClosure() {
    625  function PasswordException(msg, code) {
    626    this.name = 'PasswordException';
    627    this.message = msg;
    628    this.code = code;
    629  }
    630 
    631  PasswordException.prototype = new Error();
    632  PasswordException.constructor = PasswordException;
    633  return PasswordException;
    634 }();
    635 
    636 exports.PasswordException = PasswordException;
    637 
    638 var UnknownErrorException = function UnknownErrorExceptionClosure() {
    639  function UnknownErrorException(msg, details) {
    640    this.name = 'UnknownErrorException';
    641    this.message = msg;
    642    this.details = details;
    643  }
    644 
    645  UnknownErrorException.prototype = new Error();
    646  UnknownErrorException.constructor = UnknownErrorException;
    647  return UnknownErrorException;
    648 }();
    649 
    650 exports.UnknownErrorException = UnknownErrorException;
    651 
    652 var InvalidPDFException = function InvalidPDFExceptionClosure() {
    653  function InvalidPDFException(msg) {
    654    this.name = 'InvalidPDFException';
    655    this.message = msg;
    656  }
    657 
    658  InvalidPDFException.prototype = new Error();
    659  InvalidPDFException.constructor = InvalidPDFException;
    660  return InvalidPDFException;
    661 }();
    662 
    663 exports.InvalidPDFException = InvalidPDFException;
    664 
    665 var MissingPDFException = function MissingPDFExceptionClosure() {
    666  function MissingPDFException(msg) {
    667    this.name = 'MissingPDFException';
    668    this.message = msg;
    669  }
    670 
    671  MissingPDFException.prototype = new Error();
    672  MissingPDFException.constructor = MissingPDFException;
    673  return MissingPDFException;
    674 }();
    675 
    676 exports.MissingPDFException = MissingPDFException;
    677 
    678 var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() {
    679  function UnexpectedResponseException(msg, status) {
    680    this.name = 'UnexpectedResponseException';
    681    this.message = msg;
    682    this.status = status;
    683  }
    684 
    685  UnexpectedResponseException.prototype = new Error();
    686  UnexpectedResponseException.constructor = UnexpectedResponseException;
    687  return UnexpectedResponseException;
    688 }();
    689 
    690 exports.UnexpectedResponseException = UnexpectedResponseException;
    691 
    692 var FormatError = function FormatErrorClosure() {
    693  function FormatError(msg) {
    694    this.message = msg;
    695  }
    696 
    697  FormatError.prototype = new Error();
    698  FormatError.prototype.name = 'FormatError';
    699  FormatError.constructor = FormatError;
    700  return FormatError;
    701 }();
    702 
    703 exports.FormatError = FormatError;
    704 
    705 var AbortException = function AbortExceptionClosure() {
    706  function AbortException(msg) {
    707    this.name = 'AbortException';
    708    this.message = msg;
    709  }
    710 
    711  AbortException.prototype = new Error();
    712  AbortException.constructor = AbortException;
    713  return AbortException;
    714 }();
    715 
    716 exports.AbortException = AbortException;
    717 var NullCharactersRegExp = /\x00/g;
    718 
    719 function removeNullCharacters(str) {
    720  if (typeof str !== 'string') {
    721    warn('The argument for removeNullCharacters must be a string.');
    722    return str;
    723  }
    724 
    725  return str.replace(NullCharactersRegExp, '');
    726 }
    727 
    728 function bytesToString(bytes) {
    729  assert(bytes !== null && _typeof(bytes) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString');
    730  var length = bytes.length;
    731  var MAX_ARGUMENT_COUNT = 8192;
    732 
    733  if (length < MAX_ARGUMENT_COUNT) {
    734    return String.fromCharCode.apply(null, bytes);
    735  }
    736 
    737  var strBuf = [];
    738 
    739  for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {
    740    var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);
    741    var chunk = bytes.subarray(i, chunkEnd);
    742    strBuf.push(String.fromCharCode.apply(null, chunk));
    743  }
    744 
    745  return strBuf.join('');
    746 }
    747 
    748 function stringToBytes(str) {
    749  assert(typeof str === 'string', 'Invalid argument for stringToBytes');
    750  var length = str.length;
    751  var bytes = new Uint8Array(length);
    752 
    753  for (var i = 0; i < length; ++i) {
    754    bytes[i] = str.charCodeAt(i) & 0xFF;
    755  }
    756 
    757  return bytes;
    758 }
    759 
    760 function arrayByteLength(arr) {
    761  if (arr.length !== undefined) {
    762    return arr.length;
    763  }
    764 
    765  assert(arr.byteLength !== undefined);
    766  return arr.byteLength;
    767 }
    768 
    769 function arraysToBytes(arr) {
    770  if (arr.length === 1 && arr[0] instanceof Uint8Array) {
    771    return arr[0];
    772  }
    773 
    774  var resultLength = 0;
    775  var i,
    776      ii = arr.length;
    777  var item, itemLength;
    778 
    779  for (i = 0; i < ii; i++) {
    780    item = arr[i];
    781    itemLength = arrayByteLength(item);
    782    resultLength += itemLength;
    783  }
    784 
    785  var pos = 0;
    786  var data = new Uint8Array(resultLength);
    787 
    788  for (i = 0; i < ii; i++) {
    789    item = arr[i];
    790 
    791    if (!(item instanceof Uint8Array)) {
    792      if (typeof item === 'string') {
    793        item = stringToBytes(item);
    794      } else {
    795        item = new Uint8Array(item);
    796      }
    797    }
    798 
    799    itemLength = item.byteLength;
    800    data.set(item, pos);
    801    pos += itemLength;
    802  }
    803 
    804  return data;
    805 }
    806 
    807 function string32(value) {
    808  return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);
    809 }
    810 
    811 function log2(x) {
    812  if (x <= 0) {
    813    return 0;
    814  }
    815 
    816  return Math.ceil(Math.log2(x));
    817 }
    818 
    819 function readInt8(data, start) {
    820  return data[start] << 24 >> 24;
    821 }
    822 
    823 function readUint16(data, offset) {
    824  return data[offset] << 8 | data[offset + 1];
    825 }
    826 
    827 function readUint32(data, offset) {
    828  return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;
    829 }
    830 
    831 function isLittleEndian() {
    832  var buffer8 = new Uint8Array(4);
    833  buffer8[0] = 1;
    834  var view32 = new Uint32Array(buffer8.buffer, 0, 1);
    835  return view32[0] === 1;
    836 }
    837 
    838 function isEvalSupported() {
    839  try {
    840    new Function('');
    841    return true;
    842  } catch (e) {
    843    return false;
    844  }
    845 }
    846 
    847 var Util = function UtilClosure() {
    848  function Util() {}
    849 
    850  var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];
    851 
    852  Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {
    853    rgbBuf[1] = r;
    854    rgbBuf[3] = g;
    855    rgbBuf[5] = b;
    856    return rgbBuf.join('');
    857  };
    858 
    859  Util.transform = function Util_transform(m1, m2) {
    860    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]];
    861  };
    862 
    863  Util.applyTransform = function Util_applyTransform(p, m) {
    864    var xt = p[0] * m[0] + p[1] * m[2] + m[4];
    865    var yt = p[0] * m[1] + p[1] * m[3] + m[5];
    866    return [xt, yt];
    867  };
    868 
    869  Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {
    870    var d = m[0] * m[3] - m[1] * m[2];
    871    var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;
    872    var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;
    873    return [xt, yt];
    874  };
    875 
    876  Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) {
    877    var p1 = Util.applyTransform(r, m);
    878    var p2 = Util.applyTransform(r.slice(2, 4), m);
    879    var p3 = Util.applyTransform([r[0], r[3]], m);
    880    var p4 = Util.applyTransform([r[2], r[1]], m);
    881    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])];
    882  };
    883 
    884  Util.inverseTransform = function Util_inverseTransform(m) {
    885    var d = m[0] * m[3] - m[1] * m[2];
    886    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];
    887  };
    888 
    889  Util.apply3dTransform = function Util_apply3dTransform(m, v) {
    890    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]];
    891  };
    892 
    893  Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) {
    894    var transpose = [m[0], m[2], m[1], m[3]];
    895    var a = m[0] * transpose[0] + m[1] * transpose[2];
    896    var b = m[0] * transpose[1] + m[1] * transpose[3];
    897    var c = m[2] * transpose[0] + m[3] * transpose[2];
    898    var d = m[2] * transpose[1] + m[3] * transpose[3];
    899    var first = (a + d) / 2;
    900    var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;
    901    var sx = first + second || 1;
    902    var sy = first - second || 1;
    903    return [Math.sqrt(sx), Math.sqrt(sy)];
    904  };
    905 
    906  Util.normalizeRect = function Util_normalizeRect(rect) {
    907    var r = rect.slice(0);
    908 
    909    if (rect[0] > rect[2]) {
    910      r[0] = rect[2];
    911      r[2] = rect[0];
    912    }
    913 
    914    if (rect[1] > rect[3]) {
    915      r[1] = rect[3];
    916      r[3] = rect[1];
    917    }
    918 
    919    return r;
    920  };
    921 
    922  Util.intersect = function Util_intersect(rect1, rect2) {
    923    function compare(a, b) {
    924      return a - b;
    925    }
    926 
    927    var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),
    928        orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),
    929        result = [];
    930    rect1 = Util.normalizeRect(rect1);
    931    rect2 = Util.normalizeRect(rect2);
    932 
    933    if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {
    934      result[0] = orderedX[1];
    935      result[2] = orderedX[2];
    936    } else {
    937      return false;
    938    }
    939 
    940    if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {
    941      result[1] = orderedY[1];
    942      result[3] = orderedY[2];
    943    } else {
    944      return false;
    945    }
    946 
    947    return result;
    948  };
    949 
    950  return Util;
    951 }();
    952 
    953 exports.Util = Util;
    954 var 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];
    955 
    956 function stringToPDFString(str) {
    957  var i,
    958      n = str.length,
    959      strBuf = [];
    960 
    961  if (str[0] === '\xFE' && str[1] === '\xFF') {
    962    for (i = 2; i < n; i += 2) {
    963      strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));
    964    }
    965  } else {
    966    for (i = 0; i < n; ++i) {
    967      var code = PDFStringTranslateTable[str.charCodeAt(i)];
    968      strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));
    969    }
    970  }
    971 
    972  return strBuf.join('');
    973 }
    974 
    975 function stringToUTF8String(str) {
    976  return decodeURIComponent(escape(str));
    977 }
    978 
    979 function utf8StringToString(str) {
    980  return unescape(encodeURIComponent(str));
    981 }
    982 
    983 function isEmptyObj(obj) {
    984  for (var key in obj) {
    985    return false;
    986  }
    987 
    988  return true;
    989 }
    990 
    991 function isBool(v) {
    992  return typeof v === 'boolean';
    993 }
    994 
    995 function isNum(v) {
    996  return typeof v === 'number';
    997 }
    998 
    999 function isString(v) {
   1000  return typeof v === 'string';
   1001 }
   1002 
   1003 function isArrayBuffer(v) {
   1004  return _typeof(v) === 'object' && v !== null && v.byteLength !== undefined;
   1005 }
   1006 
   1007 function isArrayEqual(arr1, arr2) {
   1008  if (arr1.length !== arr2.length) {
   1009    return false;
   1010  }
   1011 
   1012  return arr1.every(function (element, index) {
   1013    return element === arr2[index];
   1014  });
   1015 }
   1016 
   1017 function isSpace(ch) {
   1018  return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A;
   1019 }
   1020 
   1021 function createPromiseCapability() {
   1022  var capability = Object.create(null);
   1023  var isSettled = false;
   1024  Object.defineProperty(capability, 'settled', {
   1025    get: function get() {
   1026      return isSettled;
   1027    }
   1028  });
   1029  capability.promise = new Promise(function (resolve, reject) {
   1030    capability.resolve = function (data) {
   1031      isSettled = true;
   1032      resolve(data);
   1033    };
   1034 
   1035    capability.reject = function (reason) {
   1036      isSettled = true;
   1037      reject(reason);
   1038    };
   1039  });
   1040  return capability;
   1041 }
   1042 
   1043 var createObjectURL = function createObjectURLClosure() {
   1044  var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
   1045  return function createObjectURL(data, contentType) {
   1046    var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
   1047 
   1048    if (!forceDataSchema && _url_polyfill.URL.createObjectURL) {
   1049      var blob = new Blob([data], {
   1050        type: contentType
   1051      });
   1052      return _url_polyfill.URL.createObjectURL(blob);
   1053    }
   1054 
   1055    var buffer = 'data:' + contentType + ';base64,';
   1056 
   1057    for (var i = 0, ii = data.length; i < ii; i += 3) {
   1058      var b1 = data[i] & 0xFF;
   1059      var b2 = data[i + 1] & 0xFF;
   1060      var b3 = data[i + 2] & 0xFF;
   1061      var d1 = b1 >> 2,
   1062          d2 = (b1 & 3) << 4 | b2 >> 4;
   1063      var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64;
   1064      var d4 = i + 2 < ii ? b3 & 0x3F : 64;
   1065      buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];
   1066    }
   1067 
   1068    return buffer;
   1069  };
   1070 }();
   1071 
   1072 exports.createObjectURL = createObjectURL;
   1073 
   1074 /***/ }),
   1075 /* 2 */
   1076 /***/ (function(module, exports, __w_pdfjs_require__) {
   1077 
   1078 "use strict";
   1079 
   1080 
   1081 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
   1082 
   1083 var globalScope = __w_pdfjs_require__(3);
   1084 
   1085 if (!globalScope._pdfjsCompatibilityChecked) {
   1086  globalScope._pdfjsCompatibilityChecked = true;
   1087 
   1088  var isNodeJS = __w_pdfjs_require__(4);
   1089 
   1090  var hasDOM = (typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object' && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object';
   1091 
   1092  (function checkNodeBtoa() {
   1093    if (globalScope.btoa || !isNodeJS()) {
   1094      return;
   1095    }
   1096 
   1097    globalScope.btoa = function (chars) {
   1098      return Buffer.from(chars, 'binary').toString('base64');
   1099    };
   1100  })();
   1101 
   1102  (function checkNodeAtob() {
   1103    if (globalScope.atob || !isNodeJS()) {
   1104      return;
   1105    }
   1106 
   1107    globalScope.atob = function (input) {
   1108      return Buffer.from(input, 'base64').toString('binary');
   1109    };
   1110  })();
   1111 
   1112  (function checkChildNodeRemove() {
   1113    if (!hasDOM) {
   1114      return;
   1115    }
   1116 
   1117    if (typeof Element.prototype.remove !== 'undefined') {
   1118      return;
   1119    }
   1120 
   1121    Element.prototype.remove = function () {
   1122      if (this.parentNode) {
   1123        this.parentNode.removeChild(this);
   1124      }
   1125    };
   1126  })();
   1127 
   1128  (function checkDOMTokenListAddRemove() {
   1129    if (!hasDOM || isNodeJS()) {
   1130      return;
   1131    }
   1132 
   1133    var div = document.createElement('div');
   1134    div.classList.add('testOne', 'testTwo');
   1135 
   1136    if (div.classList.contains('testOne') === true && div.classList.contains('testTwo') === true) {
   1137      return;
   1138    }
   1139 
   1140    var OriginalDOMTokenListAdd = DOMTokenList.prototype.add;
   1141    var OriginalDOMTokenListRemove = DOMTokenList.prototype.remove;
   1142 
   1143    DOMTokenList.prototype.add = function () {
   1144      for (var _len = arguments.length, tokens = new Array(_len), _key = 0; _key < _len; _key++) {
   1145        tokens[_key] = arguments[_key];
   1146      }
   1147 
   1148      for (var _i = 0, _tokens = tokens; _i < _tokens.length; _i++) {
   1149        var token = _tokens[_i];
   1150        OriginalDOMTokenListAdd.call(this, token);
   1151      }
   1152    };
   1153 
   1154    DOMTokenList.prototype.remove = function () {
   1155      for (var _len2 = arguments.length, tokens = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
   1156        tokens[_key2] = arguments[_key2];
   1157      }
   1158 
   1159      for (var _i2 = 0, _tokens2 = tokens; _i2 < _tokens2.length; _i2++) {
   1160        var token = _tokens2[_i2];
   1161        OriginalDOMTokenListRemove.call(this, token);
   1162      }
   1163    };
   1164  })();
   1165 
   1166  (function checkDOMTokenListToggle() {
   1167    if (!hasDOM || isNodeJS()) {
   1168      return;
   1169    }
   1170 
   1171    var div = document.createElement('div');
   1172 
   1173    if (div.classList.toggle('test', 0) === false) {
   1174      return;
   1175    }
   1176 
   1177    DOMTokenList.prototype.toggle = function (token) {
   1178      var force = arguments.length > 1 ? !!arguments[1] : !this.contains(token);
   1179      return this[force ? 'add' : 'remove'](token), force;
   1180    };
   1181  })();
   1182 
   1183  (function checkStringStartsWith() {
   1184    if (String.prototype.startsWith) {
   1185      return;
   1186    }
   1187 
   1188    __w_pdfjs_require__(5);
   1189  })();
   1190 
   1191  (function checkStringEndsWith() {
   1192    if (String.prototype.endsWith) {
   1193      return;
   1194    }
   1195 
   1196    __w_pdfjs_require__(36);
   1197  })();
   1198 
   1199  (function checkStringIncludes() {
   1200    if (String.prototype.includes) {
   1201      return;
   1202    }
   1203 
   1204    __w_pdfjs_require__(38);
   1205  })();
   1206 
   1207  (function checkArrayIncludes() {
   1208    if (Array.prototype.includes) {
   1209      return;
   1210    }
   1211 
   1212    __w_pdfjs_require__(40);
   1213  })();
   1214 
   1215  (function checkArrayFrom() {
   1216    if (Array.from) {
   1217      return;
   1218    }
   1219 
   1220    __w_pdfjs_require__(47);
   1221  })();
   1222 
   1223  (function checkObjectAssign() {
   1224    if (Object.assign) {
   1225      return;
   1226    }
   1227 
   1228    __w_pdfjs_require__(70);
   1229  })();
   1230 
   1231  (function checkMathLog2() {
   1232    if (Math.log2) {
   1233      return;
   1234    }
   1235 
   1236    Math.log2 = __w_pdfjs_require__(75);
   1237  })();
   1238 
   1239  (function checkNumberIsNaN() {
   1240    if (Number.isNaN) {
   1241      return;
   1242    }
   1243 
   1244    Number.isNaN = __w_pdfjs_require__(77);
   1245  })();
   1246 
   1247  (function checkNumberIsInteger() {
   1248    if (Number.isInteger) {
   1249      return;
   1250    }
   1251 
   1252    Number.isInteger = __w_pdfjs_require__(79);
   1253  })();
   1254 
   1255  (function checkPromise() {
   1256    if (globalScope.Promise && globalScope.Promise.prototype && globalScope.Promise.prototype["finally"]) {
   1257      return;
   1258    }
   1259 
   1260    globalScope.Promise = __w_pdfjs_require__(82);
   1261  })();
   1262 
   1263  (function checkWeakMap() {
   1264    if (globalScope.WeakMap) {
   1265      return;
   1266    }
   1267 
   1268    globalScope.WeakMap = __w_pdfjs_require__(102);
   1269  })();
   1270 
   1271  (function checkWeakSet() {
   1272    if (globalScope.WeakSet) {
   1273      return;
   1274    }
   1275 
   1276    globalScope.WeakSet = __w_pdfjs_require__(119);
   1277  })();
   1278 
   1279  (function checkStringCodePointAt() {
   1280    if (String.codePointAt) {
   1281      return;
   1282    }
   1283 
   1284    String.codePointAt = __w_pdfjs_require__(123);
   1285  })();
   1286 
   1287  (function checkStringFromCodePoint() {
   1288    if (String.fromCodePoint) {
   1289      return;
   1290    }
   1291 
   1292    String.fromCodePoint = __w_pdfjs_require__(125);
   1293  })();
   1294 
   1295  (function checkSymbol() {
   1296    if (globalScope.Symbol) {
   1297      return;
   1298    }
   1299 
   1300    __w_pdfjs_require__(127);
   1301  })();
   1302 
   1303  (function checkStringPadStart() {
   1304    if (String.prototype.padStart) {
   1305      return;
   1306    }
   1307 
   1308    __w_pdfjs_require__(134);
   1309  })();
   1310 
   1311  (function checkStringPadEnd() {
   1312    if (String.prototype.padEnd) {
   1313      return;
   1314    }
   1315 
   1316    __w_pdfjs_require__(138);
   1317  })();
   1318 
   1319  (function checkObjectValues() {
   1320    if (Object.values) {
   1321      return;
   1322    }
   1323 
   1324    Object.values = __w_pdfjs_require__(140);
   1325  })();
   1326 }
   1327 
   1328 /***/ }),
   1329 /* 3 */
   1330 /***/ (function(module, exports, __w_pdfjs_require__) {
   1331 
   1332 "use strict";
   1333 
   1334 
   1335 module.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {};
   1336 
   1337 /***/ }),
   1338 /* 4 */
   1339 /***/ (function(module, exports, __w_pdfjs_require__) {
   1340 
   1341 "use strict";
   1342 
   1343 
   1344 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
   1345 
   1346 module.exports = function isNodeJS() {
   1347  return (typeof process === "undefined" ? "undefined" : _typeof(process)) === 'object' && process + '' === '[object process]' && !process.versions['nw'] && !process.versions['electron'];
   1348 };
   1349 
   1350 /***/ }),
   1351 /* 5 */
   1352 /***/ (function(module, exports, __w_pdfjs_require__) {
   1353 
   1354 "use strict";
   1355 
   1356 
   1357 __w_pdfjs_require__(6);
   1358 
   1359 module.exports = __w_pdfjs_require__(9).String.startsWith;
   1360 
   1361 /***/ }),
   1362 /* 6 */
   1363 /***/ (function(module, exports, __w_pdfjs_require__) {
   1364 
   1365 "use strict";
   1366 
   1367 
   1368 var $export = __w_pdfjs_require__(7);
   1369 
   1370 var toLength = __w_pdfjs_require__(28);
   1371 
   1372 var context = __w_pdfjs_require__(30);
   1373 
   1374 var STARTS_WITH = 'startsWith';
   1375 var $startsWith = ''[STARTS_WITH];
   1376 $export($export.P + $export.F * __w_pdfjs_require__(35)(STARTS_WITH), 'String', {
   1377  startsWith: function startsWith(searchString) {
   1378    var that = context(this, searchString, STARTS_WITH);
   1379    var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));
   1380    var search = String(searchString);
   1381    return $startsWith ? $startsWith.call(that, search, index) : that.slice(index, index + search.length) === search;
   1382  }
   1383 });
   1384 
   1385 /***/ }),
   1386 /* 7 */
   1387 /***/ (function(module, exports, __w_pdfjs_require__) {
   1388 
   1389 "use strict";
   1390 
   1391 
   1392 var global = __w_pdfjs_require__(8);
   1393 
   1394 var core = __w_pdfjs_require__(9);
   1395 
   1396 var hide = __w_pdfjs_require__(10);
   1397 
   1398 var redefine = __w_pdfjs_require__(20);
   1399 
   1400 var ctx = __w_pdfjs_require__(26);
   1401 
   1402 var PROTOTYPE = 'prototype';
   1403 
   1404 var $export = function $export(type, name, source) {
   1405  var IS_FORCED = type & $export.F;
   1406  var IS_GLOBAL = type & $export.G;
   1407  var IS_STATIC = type & $export.S;
   1408  var IS_PROTO = type & $export.P;
   1409  var IS_BIND = type & $export.B;
   1410  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
   1411  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
   1412  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
   1413  var key, own, out, exp;
   1414  if (IS_GLOBAL) source = name;
   1415 
   1416  for (key in source) {
   1417    own = !IS_FORCED && target && target[key] !== undefined;
   1418    out = (own ? target : source)[key];
   1419    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
   1420    if (target) redefine(target, key, out, type & $export.U);
   1421    if (exports[key] != out) hide(exports, key, exp);
   1422    if (IS_PROTO && expProto[key] != out) expProto[key] = out;
   1423  }
   1424 };
   1425 
   1426 global.core = core;
   1427 $export.F = 1;
   1428 $export.G = 2;
   1429 $export.S = 4;
   1430 $export.P = 8;
   1431 $export.B = 16;
   1432 $export.W = 32;
   1433 $export.U = 64;
   1434 $export.R = 128;
   1435 module.exports = $export;
   1436 
   1437 /***/ }),
   1438 /* 8 */
   1439 /***/ (function(module, exports, __w_pdfjs_require__) {
   1440 
   1441 "use strict";
   1442 
   1443 
   1444 var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
   1445 if (typeof __g == 'number') __g = global;
   1446 
   1447 /***/ }),
   1448 /* 9 */
   1449 /***/ (function(module, exports, __w_pdfjs_require__) {
   1450 
   1451 "use strict";
   1452 
   1453 
   1454 var core = module.exports = {
   1455  version: '2.6.9'
   1456 };
   1457 if (typeof __e == 'number') __e = core;
   1458 
   1459 /***/ }),
   1460 /* 10 */
   1461 /***/ (function(module, exports, __w_pdfjs_require__) {
   1462 
   1463 "use strict";
   1464 
   1465 
   1466 var dP = __w_pdfjs_require__(11);
   1467 
   1468 var createDesc = __w_pdfjs_require__(19);
   1469 
   1470 module.exports = __w_pdfjs_require__(15) ? function (object, key, value) {
   1471  return dP.f(object, key, createDesc(1, value));
   1472 } : function (object, key, value) {
   1473  object[key] = value;
   1474  return object;
   1475 };
   1476 
   1477 /***/ }),
   1478 /* 11 */
   1479 /***/ (function(module, exports, __w_pdfjs_require__) {
   1480 
   1481 "use strict";
   1482 
   1483 
   1484 var anObject = __w_pdfjs_require__(12);
   1485 
   1486 var IE8_DOM_DEFINE = __w_pdfjs_require__(14);
   1487 
   1488 var toPrimitive = __w_pdfjs_require__(18);
   1489 
   1490 var dP = Object.defineProperty;
   1491 exports.f = __w_pdfjs_require__(15) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
   1492  anObject(O);
   1493  P = toPrimitive(P, true);
   1494  anObject(Attributes);
   1495  if (IE8_DOM_DEFINE) try {
   1496    return dP(O, P, Attributes);
   1497  } catch (e) {}
   1498  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
   1499  if ('value' in Attributes) O[P] = Attributes.value;
   1500  return O;
   1501 };
   1502 
   1503 /***/ }),
   1504 /* 12 */
   1505 /***/ (function(module, exports, __w_pdfjs_require__) {
   1506 
   1507 "use strict";
   1508 
   1509 
   1510 var isObject = __w_pdfjs_require__(13);
   1511 
   1512 module.exports = function (it) {
   1513  if (!isObject(it)) throw TypeError(it + ' is not an object!');
   1514  return it;
   1515 };
   1516 
   1517 /***/ }),
   1518 /* 13 */
   1519 /***/ (function(module, exports, __w_pdfjs_require__) {
   1520 
   1521 "use strict";
   1522 
   1523 
   1524 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
   1525 
   1526 module.exports = function (it) {
   1527  return _typeof(it) === 'object' ? it !== null : typeof it === 'function';
   1528 };
   1529 
   1530 /***/ }),
   1531 /* 14 */
   1532 /***/ (function(module, exports, __w_pdfjs_require__) {
   1533 
   1534 "use strict";
   1535 
   1536 
   1537 module.exports = !__w_pdfjs_require__(15) && !__w_pdfjs_require__(16)(function () {
   1538  return Object.defineProperty(__w_pdfjs_require__(17)('div'), 'a', {
   1539    get: function get() {
   1540      return 7;
   1541    }
   1542  }).a != 7;
   1543 });
   1544 
   1545 /***/ }),
   1546 /* 15 */
   1547 /***/ (function(module, exports, __w_pdfjs_require__) {
   1548 
   1549 "use strict";
   1550 
   1551 
   1552 module.exports = !__w_pdfjs_require__(16)(function () {
   1553  return Object.defineProperty({}, 'a', {
   1554    get: function get() {
   1555      return 7;
   1556    }
   1557  }).a != 7;
   1558 });
   1559 
   1560 /***/ }),
   1561 /* 16 */
   1562 /***/ (function(module, exports, __w_pdfjs_require__) {
   1563 
   1564 "use strict";
   1565 
   1566 
   1567 module.exports = function (exec) {
   1568  try {
   1569    return !!exec();
   1570  } catch (e) {
   1571    return true;
   1572  }
   1573 };
   1574 
   1575 /***/ }),
   1576 /* 17 */
   1577 /***/ (function(module, exports, __w_pdfjs_require__) {
   1578 
   1579 "use strict";
   1580 
   1581 
   1582 var isObject = __w_pdfjs_require__(13);
   1583 
   1584 var document = __w_pdfjs_require__(8).document;
   1585 
   1586 var is = isObject(document) && isObject(document.createElement);
   1587 
   1588 module.exports = function (it) {
   1589  return is ? document.createElement(it) : {};
   1590 };
   1591 
   1592 /***/ }),
   1593 /* 18 */
   1594 /***/ (function(module, exports, __w_pdfjs_require__) {
   1595 
   1596 "use strict";
   1597 
   1598 
   1599 var isObject = __w_pdfjs_require__(13);
   1600 
   1601 module.exports = function (it, S) {
   1602  if (!isObject(it)) return it;
   1603  var fn, val;
   1604  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
   1605  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
   1606  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
   1607  throw TypeError("Can't convert object to primitive value");
   1608 };
   1609 
   1610 /***/ }),
   1611 /* 19 */
   1612 /***/ (function(module, exports, __w_pdfjs_require__) {
   1613 
   1614 "use strict";
   1615 
   1616 
   1617 module.exports = function (bitmap, value) {
   1618  return {
   1619    enumerable: !(bitmap & 1),
   1620    configurable: !(bitmap & 2),
   1621    writable: !(bitmap & 4),
   1622    value: value
   1623  };
   1624 };
   1625 
   1626 /***/ }),
   1627 /* 20 */
   1628 /***/ (function(module, exports, __w_pdfjs_require__) {
   1629 
   1630 "use strict";
   1631 
   1632 
   1633 var global = __w_pdfjs_require__(8);
   1634 
   1635 var hide = __w_pdfjs_require__(10);
   1636 
   1637 var has = __w_pdfjs_require__(21);
   1638 
   1639 var SRC = __w_pdfjs_require__(22)('src');
   1640 
   1641 var $toString = __w_pdfjs_require__(23);
   1642 
   1643 var TO_STRING = 'toString';
   1644 var TPL = ('' + $toString).split(TO_STRING);
   1645 
   1646 __w_pdfjs_require__(9).inspectSource = function (it) {
   1647  return $toString.call(it);
   1648 };
   1649 
   1650 (module.exports = function (O, key, val, safe) {
   1651  var isFunction = typeof val == 'function';
   1652  if (isFunction) has(val, 'name') || hide(val, 'name', key);
   1653  if (O[key] === val) return;
   1654  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
   1655 
   1656  if (O === global) {
   1657    O[key] = val;
   1658  } else if (!safe) {
   1659    delete O[key];
   1660    hide(O, key, val);
   1661  } else if (O[key]) {
   1662    O[key] = val;
   1663  } else {
   1664    hide(O, key, val);
   1665  }
   1666 })(Function.prototype, TO_STRING, function toString() {
   1667  return typeof this == 'function' && this[SRC] || $toString.call(this);
   1668 });
   1669 
   1670 /***/ }),
   1671 /* 21 */
   1672 /***/ (function(module, exports, __w_pdfjs_require__) {
   1673 
   1674 "use strict";
   1675 
   1676 
   1677 var hasOwnProperty = {}.hasOwnProperty;
   1678 
   1679 module.exports = function (it, key) {
   1680  return hasOwnProperty.call(it, key);
   1681 };
   1682 
   1683 /***/ }),
   1684 /* 22 */
   1685 /***/ (function(module, exports, __w_pdfjs_require__) {
   1686 
   1687 "use strict";
   1688 
   1689 
   1690 var id = 0;
   1691 var px = Math.random();
   1692 
   1693 module.exports = function (key) {
   1694  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
   1695 };
   1696 
   1697 /***/ }),
   1698 /* 23 */
   1699 /***/ (function(module, exports, __w_pdfjs_require__) {
   1700 
   1701 "use strict";
   1702 
   1703 
   1704 module.exports = __w_pdfjs_require__(24)('native-function-to-string', Function.toString);
   1705 
   1706 /***/ }),
   1707 /* 24 */
   1708 /***/ (function(module, exports, __w_pdfjs_require__) {
   1709 
   1710 "use strict";
   1711 
   1712 
   1713 var core = __w_pdfjs_require__(9);
   1714 
   1715 var global = __w_pdfjs_require__(8);
   1716 
   1717 var SHARED = '__core-js_shared__';
   1718 var store = global[SHARED] || (global[SHARED] = {});
   1719 (module.exports = function (key, value) {
   1720  return store[key] || (store[key] = value !== undefined ? value : {});
   1721 })('versions', []).push({
   1722  version: core.version,
   1723  mode: __w_pdfjs_require__(25) ? 'pure' : 'global',
   1724  copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
   1725 });
   1726 
   1727 /***/ }),
   1728 /* 25 */
   1729 /***/ (function(module, exports, __w_pdfjs_require__) {
   1730 
   1731 "use strict";
   1732 
   1733 
   1734 module.exports = false;
   1735 
   1736 /***/ }),
   1737 /* 26 */
   1738 /***/ (function(module, exports, __w_pdfjs_require__) {
   1739 
   1740 "use strict";
   1741 
   1742 
   1743 var aFunction = __w_pdfjs_require__(27);
   1744 
   1745 module.exports = function (fn, that, length) {
   1746  aFunction(fn);
   1747  if (that === undefined) return fn;
   1748 
   1749  switch (length) {
   1750    case 1:
   1751      return function (a) {
   1752        return fn.call(that, a);
   1753      };
   1754 
   1755    case 2:
   1756      return function (a, b) {
   1757        return fn.call(that, a, b);
   1758      };
   1759 
   1760    case 3:
   1761      return function (a, b, c) {
   1762        return fn.call(that, a, b, c);
   1763      };
   1764  }
   1765 
   1766  return function () {
   1767    return fn.apply(that, arguments);
   1768  };
   1769 };
   1770 
   1771 /***/ }),
   1772 /* 27 */
   1773 /***/ (function(module, exports, __w_pdfjs_require__) {
   1774 
   1775 "use strict";
   1776 
   1777 
   1778 module.exports = function (it) {
   1779  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
   1780  return it;
   1781 };
   1782 
   1783 /***/ }),
   1784 /* 28 */
   1785 /***/ (function(module, exports, __w_pdfjs_require__) {
   1786 
   1787 "use strict";
   1788 
   1789 
   1790 var toInteger = __w_pdfjs_require__(29);
   1791 
   1792 var min = Math.min;
   1793 
   1794 module.exports = function (it) {
   1795  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0;
   1796 };
   1797 
   1798 /***/ }),
   1799 /* 29 */
   1800 /***/ (function(module, exports, __w_pdfjs_require__) {
   1801 
   1802 "use strict";
   1803 
   1804 
   1805 var ceil = Math.ceil;
   1806 var floor = Math.floor;
   1807 
   1808 module.exports = function (it) {
   1809  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
   1810 };
   1811 
   1812 /***/ }),
   1813 /* 30 */
   1814 /***/ (function(module, exports, __w_pdfjs_require__) {
   1815 
   1816 "use strict";
   1817 
   1818 
   1819 var isRegExp = __w_pdfjs_require__(31);
   1820 
   1821 var defined = __w_pdfjs_require__(34);
   1822 
   1823 module.exports = function (that, searchString, NAME) {
   1824  if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!");
   1825  return String(defined(that));
   1826 };
   1827 
   1828 /***/ }),
   1829 /* 31 */
   1830 /***/ (function(module, exports, __w_pdfjs_require__) {
   1831 
   1832 "use strict";
   1833 
   1834 
   1835 var isObject = __w_pdfjs_require__(13);
   1836 
   1837 var cof = __w_pdfjs_require__(32);
   1838 
   1839 var MATCH = __w_pdfjs_require__(33)('match');
   1840 
   1841 module.exports = function (it) {
   1842  var isRegExp;
   1843  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
   1844 };
   1845 
   1846 /***/ }),
   1847 /* 32 */
   1848 /***/ (function(module, exports, __w_pdfjs_require__) {
   1849 
   1850 "use strict";
   1851 
   1852 
   1853 var toString = {}.toString;
   1854 
   1855 module.exports = function (it) {
   1856  return toString.call(it).slice(8, -1);
   1857 };
   1858 
   1859 /***/ }),
   1860 /* 33 */
   1861 /***/ (function(module, exports, __w_pdfjs_require__) {
   1862 
   1863 "use strict";
   1864 
   1865 
   1866 var store = __w_pdfjs_require__(24)('wks');
   1867 
   1868 var uid = __w_pdfjs_require__(22);
   1869 
   1870 var _Symbol = __w_pdfjs_require__(8).Symbol;
   1871 
   1872 var USE_SYMBOL = typeof _Symbol == 'function';
   1873 
   1874 var $exports = module.exports = function (name) {
   1875  return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name));
   1876 };
   1877 
   1878 $exports.store = store;
   1879 
   1880 /***/ }),
   1881 /* 34 */
   1882 /***/ (function(module, exports, __w_pdfjs_require__) {
   1883 
   1884 "use strict";
   1885 
   1886 
   1887 module.exports = function (it) {
   1888  if (it == undefined) throw TypeError("Can't call method on  " + it);
   1889  return it;
   1890 };
   1891 
   1892 /***/ }),
   1893 /* 35 */
   1894 /***/ (function(module, exports, __w_pdfjs_require__) {
   1895 
   1896 "use strict";
   1897 
   1898 
   1899 var MATCH = __w_pdfjs_require__(33)('match');
   1900 
   1901 module.exports = function (KEY) {
   1902  var re = /./;
   1903 
   1904  try {
   1905    '/./'[KEY](re);
   1906  } catch (e) {
   1907    try {
   1908      re[MATCH] = false;
   1909      return !'/./'[KEY](re);
   1910    } catch (f) {}
   1911  }
   1912 
   1913  return true;
   1914 };
   1915 
   1916 /***/ }),
   1917 /* 36 */
   1918 /***/ (function(module, exports, __w_pdfjs_require__) {
   1919 
   1920 "use strict";
   1921 
   1922 
   1923 __w_pdfjs_require__(37);
   1924 
   1925 module.exports = __w_pdfjs_require__(9).String.endsWith;
   1926 
   1927 /***/ }),
   1928 /* 37 */
   1929 /***/ (function(module, exports, __w_pdfjs_require__) {
   1930 
   1931 "use strict";
   1932 
   1933 
   1934 var $export = __w_pdfjs_require__(7);
   1935 
   1936 var toLength = __w_pdfjs_require__(28);
   1937 
   1938 var context = __w_pdfjs_require__(30);
   1939 
   1940 var ENDS_WITH = 'endsWith';
   1941 var $endsWith = ''[ENDS_WITH];
   1942 $export($export.P + $export.F * __w_pdfjs_require__(35)(ENDS_WITH), 'String', {
   1943  endsWith: function endsWith(searchString) {
   1944    var that = context(this, searchString, ENDS_WITH);
   1945    var endPosition = arguments.length > 1 ? arguments[1] : undefined;
   1946    var len = toLength(that.length);
   1947    var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);
   1948    var search = String(searchString);
   1949    return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search;
   1950  }
   1951 });
   1952 
   1953 /***/ }),
   1954 /* 38 */
   1955 /***/ (function(module, exports, __w_pdfjs_require__) {
   1956 
   1957 "use strict";
   1958 
   1959 
   1960 __w_pdfjs_require__(39);
   1961 
   1962 module.exports = __w_pdfjs_require__(9).String.includes;
   1963 
   1964 /***/ }),
   1965 /* 39 */
   1966 /***/ (function(module, exports, __w_pdfjs_require__) {
   1967 
   1968 "use strict";
   1969 
   1970 
   1971 var $export = __w_pdfjs_require__(7);
   1972 
   1973 var context = __w_pdfjs_require__(30);
   1974 
   1975 var INCLUDES = 'includes';
   1976 $export($export.P + $export.F * __w_pdfjs_require__(35)(INCLUDES), 'String', {
   1977  includes: function includes(searchString) {
   1978    return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
   1979  }
   1980 });
   1981 
   1982 /***/ }),
   1983 /* 40 */
   1984 /***/ (function(module, exports, __w_pdfjs_require__) {
   1985 
   1986 "use strict";
   1987 
   1988 
   1989 __w_pdfjs_require__(41);
   1990 
   1991 module.exports = __w_pdfjs_require__(9).Array.includes;
   1992 
   1993 /***/ }),
   1994 /* 41 */
   1995 /***/ (function(module, exports, __w_pdfjs_require__) {
   1996 
   1997 "use strict";
   1998 
   1999 
   2000 var $export = __w_pdfjs_require__(7);
   2001 
   2002 var $includes = __w_pdfjs_require__(42)(true);
   2003 
   2004 $export($export.P, 'Array', {
   2005  includes: function includes(el) {
   2006    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
   2007  }
   2008 });
   2009 
   2010 __w_pdfjs_require__(46)('includes');
   2011 
   2012 /***/ }),
   2013 /* 42 */
   2014 /***/ (function(module, exports, __w_pdfjs_require__) {
   2015 
   2016 "use strict";
   2017 
   2018 
   2019 var toIObject = __w_pdfjs_require__(43);
   2020 
   2021 var toLength = __w_pdfjs_require__(28);
   2022 
   2023 var toAbsoluteIndex = __w_pdfjs_require__(45);
   2024 
   2025 module.exports = function (IS_INCLUDES) {
   2026  return function ($this, el, fromIndex) {
   2027    var O = toIObject($this);
   2028    var length = toLength(O.length);
   2029    var index = toAbsoluteIndex(fromIndex, length);
   2030    var value;
   2031    if (IS_INCLUDES && el != el) while (length > index) {
   2032      value = O[index++];
   2033      if (value != value) return true;
   2034    } else for (; length > index; index++) {
   2035      if (IS_INCLUDES || index in O) {
   2036        if (O[index] === el) return IS_INCLUDES || index || 0;
   2037      }
   2038    }
   2039    return !IS_INCLUDES && -1;
   2040  };
   2041 };
   2042 
   2043 /***/ }),
   2044 /* 43 */
   2045 /***/ (function(module, exports, __w_pdfjs_require__) {
   2046 
   2047 "use strict";
   2048 
   2049 
   2050 var IObject = __w_pdfjs_require__(44);
   2051 
   2052 var defined = __w_pdfjs_require__(34);
   2053 
   2054 module.exports = function (it) {
   2055  return IObject(defined(it));
   2056 };
   2057 
   2058 /***/ }),
   2059 /* 44 */
   2060 /***/ (function(module, exports, __w_pdfjs_require__) {
   2061 
   2062 "use strict";
   2063 
   2064 
   2065 var cof = __w_pdfjs_require__(32);
   2066 
   2067 module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
   2068  return cof(it) == 'String' ? it.split('') : Object(it);
   2069 };
   2070 
   2071 /***/ }),
   2072 /* 45 */
   2073 /***/ (function(module, exports, __w_pdfjs_require__) {
   2074 
   2075 "use strict";
   2076 
   2077 
   2078 var toInteger = __w_pdfjs_require__(29);
   2079 
   2080 var max = Math.max;
   2081 var min = Math.min;
   2082 
   2083 module.exports = function (index, length) {
   2084  index = toInteger(index);
   2085  return index < 0 ? max(index + length, 0) : min(index, length);
   2086 };
   2087 
   2088 /***/ }),
   2089 /* 46 */
   2090 /***/ (function(module, exports, __w_pdfjs_require__) {
   2091 
   2092 "use strict";
   2093 
   2094 
   2095 var UNSCOPABLES = __w_pdfjs_require__(33)('unscopables');
   2096 
   2097 var ArrayProto = Array.prototype;
   2098 if (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(10)(ArrayProto, UNSCOPABLES, {});
   2099 
   2100 module.exports = function (key) {
   2101  ArrayProto[UNSCOPABLES][key] = true;
   2102 };
   2103 
   2104 /***/ }),
   2105 /* 47 */
   2106 /***/ (function(module, exports, __w_pdfjs_require__) {
   2107 
   2108 "use strict";
   2109 
   2110 
   2111 __w_pdfjs_require__(48);
   2112 
   2113 __w_pdfjs_require__(63);
   2114 
   2115 module.exports = __w_pdfjs_require__(9).Array.from;
   2116 
   2117 /***/ }),
   2118 /* 48 */
   2119 /***/ (function(module, exports, __w_pdfjs_require__) {
   2120 
   2121 "use strict";
   2122 
   2123 
   2124 var $at = __w_pdfjs_require__(49)(true);
   2125 
   2126 __w_pdfjs_require__(50)(String, 'String', function (iterated) {
   2127  this._t = String(iterated);
   2128  this._i = 0;
   2129 }, function () {
   2130  var O = this._t;
   2131  var index = this._i;
   2132  var point;
   2133  if (index >= O.length) return {
   2134    value: undefined,
   2135    done: true
   2136  };
   2137  point = $at(O, index);
   2138  this._i += point.length;
   2139  return {
   2140    value: point,
   2141    done: false
   2142  };
   2143 });
   2144 
   2145 /***/ }),
   2146 /* 49 */
   2147 /***/ (function(module, exports, __w_pdfjs_require__) {
   2148 
   2149 "use strict";
   2150 
   2151 
   2152 var toInteger = __w_pdfjs_require__(29);
   2153 
   2154 var defined = __w_pdfjs_require__(34);
   2155 
   2156 module.exports = function (TO_STRING) {
   2157  return function (that, pos) {
   2158    var s = String(defined(that));
   2159    var i = toInteger(pos);
   2160    var l = s.length;
   2161    var a, b;
   2162    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
   2163    a = s.charCodeAt(i);
   2164    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
   2165  };
   2166 };
   2167 
   2168 /***/ }),
   2169 /* 50 */
   2170 /***/ (function(module, exports, __w_pdfjs_require__) {
   2171 
   2172 "use strict";
   2173 
   2174 
   2175 var LIBRARY = __w_pdfjs_require__(25);
   2176 
   2177 var $export = __w_pdfjs_require__(7);
   2178 
   2179 var redefine = __w_pdfjs_require__(20);
   2180 
   2181 var hide = __w_pdfjs_require__(10);
   2182 
   2183 var Iterators = __w_pdfjs_require__(51);
   2184 
   2185 var $iterCreate = __w_pdfjs_require__(52);
   2186 
   2187 var setToStringTag = __w_pdfjs_require__(60);
   2188 
   2189 var getPrototypeOf = __w_pdfjs_require__(61);
   2190 
   2191 var ITERATOR = __w_pdfjs_require__(33)('iterator');
   2192 
   2193 var BUGGY = !([].keys && 'next' in [].keys());
   2194 var FF_ITERATOR = '@@iterator';
   2195 var KEYS = 'keys';
   2196 var VALUES = 'values';
   2197 
   2198 var returnThis = function returnThis() {
   2199  return this;
   2200 };
   2201 
   2202 module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
   2203  $iterCreate(Constructor, NAME, next);
   2204 
   2205  var getMethod = function getMethod(kind) {
   2206    if (!BUGGY && kind in proto) return proto[kind];
   2207 
   2208    switch (kind) {
   2209      case KEYS:
   2210        return function keys() {
   2211          return new Constructor(this, kind);
   2212        };
   2213 
   2214      case VALUES:
   2215        return function values() {
   2216          return new Constructor(this, kind);
   2217        };
   2218    }
   2219 
   2220    return function entries() {
   2221      return new Constructor(this, kind);
   2222    };
   2223  };
   2224 
   2225  var TAG = NAME + ' Iterator';
   2226  var DEF_VALUES = DEFAULT == VALUES;
   2227  var VALUES_BUG = false;
   2228  var proto = Base.prototype;
   2229  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
   2230  var $default = $native || getMethod(DEFAULT);
   2231  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
   2232  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
   2233  var methods, key, IteratorPrototype;
   2234 
   2235  if ($anyNative) {
   2236    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
   2237 
   2238    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
   2239      setToStringTag(IteratorPrototype, TAG, true);
   2240      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
   2241    }
   2242  }
   2243 
   2244  if (DEF_VALUES && $native && $native.name !== VALUES) {
   2245    VALUES_BUG = true;
   2246 
   2247    $default = function values() {
   2248      return $native.call(this);
   2249    };
   2250  }
   2251 
   2252  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
   2253    hide(proto, ITERATOR, $default);
   2254  }
   2255 
   2256  Iterators[NAME] = $default;
   2257  Iterators[TAG] = returnThis;
   2258 
   2259  if (DEFAULT) {
   2260    methods = {
   2261      values: DEF_VALUES ? $default : getMethod(VALUES),
   2262      keys: IS_SET ? $default : getMethod(KEYS),
   2263      entries: $entries
   2264    };
   2265    if (FORCED) for (key in methods) {
   2266      if (!(key in proto)) redefine(proto, key, methods[key]);
   2267    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
   2268  }
   2269 
   2270  return methods;
   2271 };
   2272 
   2273 /***/ }),
   2274 /* 51 */
   2275 /***/ (function(module, exports, __w_pdfjs_require__) {
   2276 
   2277 "use strict";
   2278 
   2279 
   2280 module.exports = {};
   2281 
   2282 /***/ }),
   2283 /* 52 */
   2284 /***/ (function(module, exports, __w_pdfjs_require__) {
   2285 
   2286 "use strict";
   2287 
   2288 
   2289 var create = __w_pdfjs_require__(53);
   2290 
   2291 var descriptor = __w_pdfjs_require__(19);
   2292 
   2293 var setToStringTag = __w_pdfjs_require__(60);
   2294 
   2295 var IteratorPrototype = {};
   2296 
   2297 __w_pdfjs_require__(10)(IteratorPrototype, __w_pdfjs_require__(33)('iterator'), function () {
   2298  return this;
   2299 });
   2300 
   2301 module.exports = function (Constructor, NAME, next) {
   2302  Constructor.prototype = create(IteratorPrototype, {
   2303    next: descriptor(1, next)
   2304  });
   2305  setToStringTag(Constructor, NAME + ' Iterator');
   2306 };
   2307 
   2308 /***/ }),
   2309 /* 53 */
   2310 /***/ (function(module, exports, __w_pdfjs_require__) {
   2311 
   2312 "use strict";
   2313 
   2314 
   2315 var anObject = __w_pdfjs_require__(12);
   2316 
   2317 var dPs = __w_pdfjs_require__(54);
   2318 
   2319 var enumBugKeys = __w_pdfjs_require__(58);
   2320 
   2321 var IE_PROTO = __w_pdfjs_require__(57)('IE_PROTO');
   2322 
   2323 var Empty = function Empty() {};
   2324 
   2325 var PROTOTYPE = 'prototype';
   2326 
   2327 var _createDict = function createDict() {
   2328  var iframe = __w_pdfjs_require__(17)('iframe');
   2329 
   2330  var i = enumBugKeys.length;
   2331  var lt = '<';
   2332  var gt = '>';
   2333  var iframeDocument;
   2334  iframe.style.display = 'none';
   2335 
   2336  __w_pdfjs_require__(59).appendChild(iframe);
   2337 
   2338  iframe.src = 'javascript:';
   2339  iframeDocument = iframe.contentWindow.document;
   2340  iframeDocument.open();
   2341  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
   2342  iframeDocument.close();
   2343  _createDict = iframeDocument.F;
   2344 
   2345  while (i--) {
   2346    delete _createDict[PROTOTYPE][enumBugKeys[i]];
   2347  }
   2348 
   2349  return _createDict();
   2350 };
   2351 
   2352 module.exports = Object.create || function create(O, Properties) {
   2353  var result;
   2354 
   2355  if (O !== null) {
   2356    Empty[PROTOTYPE] = anObject(O);
   2357    result = new Empty();
   2358    Empty[PROTOTYPE] = null;
   2359    result[IE_PROTO] = O;
   2360  } else result = _createDict();
   2361 
   2362  return Properties === undefined ? result : dPs(result, Properties);
   2363 };
   2364 
   2365 /***/ }),
   2366 /* 54 */
   2367 /***/ (function(module, exports, __w_pdfjs_require__) {
   2368 
   2369 "use strict";
   2370 
   2371 
   2372 var dP = __w_pdfjs_require__(11);
   2373 
   2374 var anObject = __w_pdfjs_require__(12);
   2375 
   2376 var getKeys = __w_pdfjs_require__(55);
   2377 
   2378 module.exports = __w_pdfjs_require__(15) ? Object.defineProperties : function defineProperties(O, Properties) {
   2379  anObject(O);
   2380  var keys = getKeys(Properties);
   2381  var length = keys.length;
   2382  var i = 0;
   2383  var P;
   2384 
   2385  while (length > i) {
   2386    dP.f(O, P = keys[i++], Properties[P]);
   2387  }
   2388 
   2389  return O;
   2390 };
   2391 
   2392 /***/ }),
   2393 /* 55 */
   2394 /***/ (function(module, exports, __w_pdfjs_require__) {
   2395 
   2396 "use strict";
   2397 
   2398 
   2399 var $keys = __w_pdfjs_require__(56);
   2400 
   2401 var enumBugKeys = __w_pdfjs_require__(58);
   2402 
   2403 module.exports = Object.keys || function keys(O) {
   2404  return $keys(O, enumBugKeys);
   2405 };
   2406 
   2407 /***/ }),
   2408 /* 56 */
   2409 /***/ (function(module, exports, __w_pdfjs_require__) {
   2410 
   2411 "use strict";
   2412 
   2413 
   2414 var has = __w_pdfjs_require__(21);
   2415 
   2416 var toIObject = __w_pdfjs_require__(43);
   2417 
   2418 var arrayIndexOf = __w_pdfjs_require__(42)(false);
   2419 
   2420 var IE_PROTO = __w_pdfjs_require__(57)('IE_PROTO');
   2421 
   2422 module.exports = function (object, names) {
   2423  var O = toIObject(object);
   2424  var i = 0;
   2425  var result = [];
   2426  var key;
   2427 
   2428  for (key in O) {
   2429    if (key != IE_PROTO) has(O, key) && result.push(key);
   2430  }
   2431 
   2432  while (names.length > i) {
   2433    if (has(O, key = names[i++])) {
   2434      ~arrayIndexOf(result, key) || result.push(key);
   2435    }
   2436  }
   2437 
   2438  return result;
   2439 };
   2440 
   2441 /***/ }),
   2442 /* 57 */
   2443 /***/ (function(module, exports, __w_pdfjs_require__) {
   2444 
   2445 "use strict";
   2446 
   2447 
   2448 var shared = __w_pdfjs_require__(24)('keys');
   2449 
   2450 var uid = __w_pdfjs_require__(22);
   2451 
   2452 module.exports = function (key) {
   2453  return shared[key] || (shared[key] = uid(key));
   2454 };
   2455 
   2456 /***/ }),
   2457 /* 58 */
   2458 /***/ (function(module, exports, __w_pdfjs_require__) {
   2459 
   2460 "use strict";
   2461 
   2462 
   2463 module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(',');
   2464 
   2465 /***/ }),
   2466 /* 59 */
   2467 /***/ (function(module, exports, __w_pdfjs_require__) {
   2468 
   2469 "use strict";
   2470 
   2471 
   2472 var document = __w_pdfjs_require__(8).document;
   2473 
   2474 module.exports = document && document.documentElement;
   2475 
   2476 /***/ }),
   2477 /* 60 */
   2478 /***/ (function(module, exports, __w_pdfjs_require__) {
   2479 
   2480 "use strict";
   2481 
   2482 
   2483 var def = __w_pdfjs_require__(11).f;
   2484 
   2485 var has = __w_pdfjs_require__(21);
   2486 
   2487 var TAG = __w_pdfjs_require__(33)('toStringTag');
   2488 
   2489 module.exports = function (it, tag, stat) {
   2490  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, {
   2491    configurable: true,
   2492    value: tag
   2493  });
   2494 };
   2495 
   2496 /***/ }),
   2497 /* 61 */
   2498 /***/ (function(module, exports, __w_pdfjs_require__) {
   2499 
   2500 "use strict";
   2501 
   2502 
   2503 var has = __w_pdfjs_require__(21);
   2504 
   2505 var toObject = __w_pdfjs_require__(62);
   2506 
   2507 var IE_PROTO = __w_pdfjs_require__(57)('IE_PROTO');
   2508 
   2509 var ObjectProto = Object.prototype;
   2510 
   2511 module.exports = Object.getPrototypeOf || function (O) {
   2512  O = toObject(O);
   2513  if (has(O, IE_PROTO)) return O[IE_PROTO];
   2514 
   2515  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
   2516    return O.constructor.prototype;
   2517  }
   2518 
   2519  return O instanceof Object ? ObjectProto : null;
   2520 };
   2521 
   2522 /***/ }),
   2523 /* 62 */
   2524 /***/ (function(module, exports, __w_pdfjs_require__) {
   2525 
   2526 "use strict";
   2527 
   2528 
   2529 var defined = __w_pdfjs_require__(34);
   2530 
   2531 module.exports = function (it) {
   2532  return Object(defined(it));
   2533 };
   2534 
   2535 /***/ }),
   2536 /* 63 */
   2537 /***/ (function(module, exports, __w_pdfjs_require__) {
   2538 
   2539 "use strict";
   2540 
   2541 
   2542 var ctx = __w_pdfjs_require__(26);
   2543 
   2544 var $export = __w_pdfjs_require__(7);
   2545 
   2546 var toObject = __w_pdfjs_require__(62);
   2547 
   2548 var call = __w_pdfjs_require__(64);
   2549 
   2550 var isArrayIter = __w_pdfjs_require__(65);
   2551 
   2552 var toLength = __w_pdfjs_require__(28);
   2553 
   2554 var createProperty = __w_pdfjs_require__(66);
   2555 
   2556 var getIterFn = __w_pdfjs_require__(67);
   2557 
   2558 $export($export.S + $export.F * !__w_pdfjs_require__(69)(function (iter) {
   2559  Array.from(iter);
   2560 }), 'Array', {
   2561  from: function from(arrayLike) {
   2562    var O = toObject(arrayLike);
   2563    var C = typeof this == 'function' ? this : Array;
   2564    var aLen = arguments.length;
   2565    var mapfn = aLen > 1 ? arguments[1] : undefined;
   2566    var mapping = mapfn !== undefined;
   2567    var index = 0;
   2568    var iterFn = getIterFn(O);
   2569    var length, result, step, iterator;
   2570    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
   2571 
   2572    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
   2573      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
   2574        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
   2575      }
   2576    } else {
   2577      length = toLength(O.length);
   2578 
   2579      for (result = new C(length); length > index; index++) {
   2580        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
   2581      }
   2582    }
   2583 
   2584    result.length = index;
   2585    return result;
   2586  }
   2587 });
   2588 
   2589 /***/ }),
   2590 /* 64 */
   2591 /***/ (function(module, exports, __w_pdfjs_require__) {
   2592 
   2593 "use strict";
   2594 
   2595 
   2596 var anObject = __w_pdfjs_require__(12);
   2597 
   2598 module.exports = function (iterator, fn, value, entries) {
   2599  try {
   2600    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
   2601  } catch (e) {
   2602    var ret = iterator['return'];
   2603    if (ret !== undefined) anObject(ret.call(iterator));
   2604    throw e;
   2605  }
   2606 };
   2607 
   2608 /***/ }),
   2609 /* 65 */
   2610 /***/ (function(module, exports, __w_pdfjs_require__) {
   2611 
   2612 "use strict";
   2613 
   2614 
   2615 var Iterators = __w_pdfjs_require__(51);
   2616 
   2617 var ITERATOR = __w_pdfjs_require__(33)('iterator');
   2618 
   2619 var ArrayProto = Array.prototype;
   2620 
   2621 module.exports = function (it) {
   2622  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
   2623 };
   2624 
   2625 /***/ }),
   2626 /* 66 */
   2627 /***/ (function(module, exports, __w_pdfjs_require__) {
   2628 
   2629 "use strict";
   2630 
   2631 
   2632 var $defineProperty = __w_pdfjs_require__(11);
   2633 
   2634 var createDesc = __w_pdfjs_require__(19);
   2635 
   2636 module.exports = function (object, index, value) {
   2637  if (index in object) $defineProperty.f(object, index, createDesc(0, value));else object[index] = value;
   2638 };
   2639 
   2640 /***/ }),
   2641 /* 67 */
   2642 /***/ (function(module, exports, __w_pdfjs_require__) {
   2643 
   2644 "use strict";
   2645 
   2646 
   2647 var classof = __w_pdfjs_require__(68);
   2648 
   2649 var ITERATOR = __w_pdfjs_require__(33)('iterator');
   2650 
   2651 var Iterators = __w_pdfjs_require__(51);
   2652 
   2653 module.exports = __w_pdfjs_require__(9).getIteratorMethod = function (it) {
   2654  if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];
   2655 };
   2656 
   2657 /***/ }),
   2658 /* 68 */
   2659 /***/ (function(module, exports, __w_pdfjs_require__) {
   2660 
   2661 "use strict";
   2662 
   2663 
   2664 var cof = __w_pdfjs_require__(32);
   2665 
   2666 var TAG = __w_pdfjs_require__(33)('toStringTag');
   2667 
   2668 var ARG = cof(function () {
   2669  return arguments;
   2670 }()) == 'Arguments';
   2671 
   2672 var tryGet = function tryGet(it, key) {
   2673  try {
   2674    return it[key];
   2675  } catch (e) {}
   2676 };
   2677 
   2678 module.exports = function (it) {
   2679  var O, T, B;
   2680  return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T : ARG ? cof(O) : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
   2681 };
   2682 
   2683 /***/ }),
   2684 /* 69 */
   2685 /***/ (function(module, exports, __w_pdfjs_require__) {
   2686 
   2687 "use strict";
   2688 
   2689 
   2690 var ITERATOR = __w_pdfjs_require__(33)('iterator');
   2691 
   2692 var SAFE_CLOSING = false;
   2693 
   2694 try {
   2695  var riter = [7][ITERATOR]();
   2696 
   2697  riter['return'] = function () {
   2698    SAFE_CLOSING = true;
   2699  };
   2700 
   2701  Array.from(riter, function () {
   2702    throw 2;
   2703  });
   2704 } catch (e) {}
   2705 
   2706 module.exports = function (exec, skipClosing) {
   2707  if (!skipClosing && !SAFE_CLOSING) return false;
   2708  var safe = false;
   2709 
   2710  try {
   2711    var arr = [7];
   2712    var iter = arr[ITERATOR]();
   2713 
   2714    iter.next = function () {
   2715      return {
   2716        done: safe = true
   2717      };
   2718    };
   2719 
   2720    arr[ITERATOR] = function () {
   2721      return iter;
   2722    };
   2723 
   2724    exec(arr);
   2725  } catch (e) {}
   2726 
   2727  return safe;
   2728 };
   2729 
   2730 /***/ }),
   2731 /* 70 */
   2732 /***/ (function(module, exports, __w_pdfjs_require__) {
   2733 
   2734 "use strict";
   2735 
   2736 
   2737 __w_pdfjs_require__(71);
   2738 
   2739 module.exports = __w_pdfjs_require__(9).Object.assign;
   2740 
   2741 /***/ }),
   2742 /* 71 */
   2743 /***/ (function(module, exports, __w_pdfjs_require__) {
   2744 
   2745 "use strict";
   2746 
   2747 
   2748 var $export = __w_pdfjs_require__(7);
   2749 
   2750 $export($export.S + $export.F, 'Object', {
   2751  assign: __w_pdfjs_require__(72)
   2752 });
   2753 
   2754 /***/ }),
   2755 /* 72 */
   2756 /***/ (function(module, exports, __w_pdfjs_require__) {
   2757 
   2758 "use strict";
   2759 
   2760 
   2761 var DESCRIPTORS = __w_pdfjs_require__(15);
   2762 
   2763 var getKeys = __w_pdfjs_require__(55);
   2764 
   2765 var gOPS = __w_pdfjs_require__(73);
   2766 
   2767 var pIE = __w_pdfjs_require__(74);
   2768 
   2769 var toObject = __w_pdfjs_require__(62);
   2770 
   2771 var IObject = __w_pdfjs_require__(44);
   2772 
   2773 var $assign = Object.assign;
   2774 module.exports = !$assign || __w_pdfjs_require__(16)(function () {
   2775  var A = {};
   2776  var B = {};
   2777  var S = Symbol();
   2778  var K = 'abcdefghijklmnopqrst';
   2779  A[S] = 7;
   2780  K.split('').forEach(function (k) {
   2781    B[k] = k;
   2782  });
   2783  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
   2784 }) ? function assign(target, source) {
   2785  var T = toObject(target);
   2786  var aLen = arguments.length;
   2787  var index = 1;
   2788  var getSymbols = gOPS.f;
   2789  var isEnum = pIE.f;
   2790 
   2791  while (aLen > index) {
   2792    var S = IObject(arguments[index++]);
   2793    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
   2794    var length = keys.length;
   2795    var j = 0;
   2796    var key;
   2797 
   2798    while (length > j) {
   2799      key = keys[j++];
   2800      if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];
   2801    }
   2802  }
   2803 
   2804  return T;
   2805 } : $assign;
   2806 
   2807 /***/ }),
   2808 /* 73 */
   2809 /***/ (function(module, exports, __w_pdfjs_require__) {
   2810 
   2811 "use strict";
   2812 
   2813 
   2814 exports.f = Object.getOwnPropertySymbols;
   2815 
   2816 /***/ }),
   2817 /* 74 */
   2818 /***/ (function(module, exports, __w_pdfjs_require__) {
   2819 
   2820 "use strict";
   2821 
   2822 
   2823 exports.f = {}.propertyIsEnumerable;
   2824 
   2825 /***/ }),
   2826 /* 75 */
   2827 /***/ (function(module, exports, __w_pdfjs_require__) {
   2828 
   2829 "use strict";
   2830 
   2831 
   2832 __w_pdfjs_require__(76);
   2833 
   2834 module.exports = __w_pdfjs_require__(9).Math.log2;
   2835 
   2836 /***/ }),
   2837 /* 76 */
   2838 /***/ (function(module, exports, __w_pdfjs_require__) {
   2839 
   2840 "use strict";
   2841 
   2842 
   2843 var $export = __w_pdfjs_require__(7);
   2844 
   2845 $export($export.S, 'Math', {
   2846  log2: function log2(x) {
   2847    return Math.log(x) / Math.LN2;
   2848  }
   2849 });
   2850 
   2851 /***/ }),
   2852 /* 77 */
   2853 /***/ (function(module, exports, __w_pdfjs_require__) {
   2854 
   2855 "use strict";
   2856 
   2857 
   2858 __w_pdfjs_require__(78);
   2859 
   2860 module.exports = __w_pdfjs_require__(9).Number.isNaN;
   2861 
   2862 /***/ }),
   2863 /* 78 */
   2864 /***/ (function(module, exports, __w_pdfjs_require__) {
   2865 
   2866 "use strict";
   2867 
   2868 
   2869 var $export = __w_pdfjs_require__(7);
   2870 
   2871 $export($export.S, 'Number', {
   2872  isNaN: function isNaN(number) {
   2873    return number != number;
   2874  }
   2875 });
   2876 
   2877 /***/ }),
   2878 /* 79 */
   2879 /***/ (function(module, exports, __w_pdfjs_require__) {
   2880 
   2881 "use strict";
   2882 
   2883 
   2884 __w_pdfjs_require__(80);
   2885 
   2886 module.exports = __w_pdfjs_require__(9).Number.isInteger;
   2887 
   2888 /***/ }),
   2889 /* 80 */
   2890 /***/ (function(module, exports, __w_pdfjs_require__) {
   2891 
   2892 "use strict";
   2893 
   2894 
   2895 var $export = __w_pdfjs_require__(7);
   2896 
   2897 $export($export.S, 'Number', {
   2898  isInteger: __w_pdfjs_require__(81)
   2899 });
   2900 
   2901 /***/ }),
   2902 /* 81 */
   2903 /***/ (function(module, exports, __w_pdfjs_require__) {
   2904 
   2905 "use strict";
   2906 
   2907 
   2908 var isObject = __w_pdfjs_require__(13);
   2909 
   2910 var floor = Math.floor;
   2911 
   2912 module.exports = function isInteger(it) {
   2913  return !isObject(it) && isFinite(it) && floor(it) === it;
   2914 };
   2915 
   2916 /***/ }),
   2917 /* 82 */
   2918 /***/ (function(module, exports, __w_pdfjs_require__) {
   2919 
   2920 "use strict";
   2921 
   2922 
   2923 __w_pdfjs_require__(83);
   2924 
   2925 __w_pdfjs_require__(48);
   2926 
   2927 __w_pdfjs_require__(84);
   2928 
   2929 __w_pdfjs_require__(87);
   2930 
   2931 __w_pdfjs_require__(100);
   2932 
   2933 __w_pdfjs_require__(101);
   2934 
   2935 module.exports = __w_pdfjs_require__(9).Promise;
   2936 
   2937 /***/ }),
   2938 /* 83 */
   2939 /***/ (function(module, exports, __w_pdfjs_require__) {
   2940 
   2941 "use strict";
   2942 
   2943 
   2944 var classof = __w_pdfjs_require__(68);
   2945 
   2946 var test = {};
   2947 test[__w_pdfjs_require__(33)('toStringTag')] = 'z';
   2948 
   2949 if (test + '' != '[object z]') {
   2950  __w_pdfjs_require__(20)(Object.prototype, 'toString', function toString() {
   2951    return '[object ' + classof(this) + ']';
   2952  }, true);
   2953 }
   2954 
   2955 /***/ }),
   2956 /* 84 */
   2957 /***/ (function(module, exports, __w_pdfjs_require__) {
   2958 
   2959 "use strict";
   2960 
   2961 
   2962 var $iterators = __w_pdfjs_require__(85);
   2963 
   2964 var getKeys = __w_pdfjs_require__(55);
   2965 
   2966 var redefine = __w_pdfjs_require__(20);
   2967 
   2968 var global = __w_pdfjs_require__(8);
   2969 
   2970 var hide = __w_pdfjs_require__(10);
   2971 
   2972 var Iterators = __w_pdfjs_require__(51);
   2973 
   2974 var wks = __w_pdfjs_require__(33);
   2975 
   2976 var ITERATOR = wks('iterator');
   2977 var TO_STRING_TAG = wks('toStringTag');
   2978 var ArrayValues = Iterators.Array;
   2979 var DOMIterables = {
   2980  CSSRuleList: true,
   2981  CSSStyleDeclaration: false,
   2982  CSSValueList: false,
   2983  ClientRectList: false,
   2984  DOMRectList: false,
   2985  DOMStringList: false,
   2986  DOMTokenList: true,
   2987  DataTransferItemList: false,
   2988  FileList: false,
   2989  HTMLAllCollection: false,
   2990  HTMLCollection: false,
   2991  HTMLFormElement: false,
   2992  HTMLSelectElement: false,
   2993  MediaList: true,
   2994  MimeTypeArray: false,
   2995  NamedNodeMap: false,
   2996  NodeList: true,
   2997  PaintRequestList: false,
   2998  Plugin: false,
   2999  PluginArray: false,
   3000  SVGLengthList: false,
   3001  SVGNumberList: false,
   3002  SVGPathSegList: false,
   3003  SVGPointList: false,
   3004  SVGStringList: false,
   3005  SVGTransformList: false,
   3006  SourceBufferList: false,
   3007  StyleSheetList: true,
   3008  TextTrackCueList: false,
   3009  TextTrackList: false,
   3010  TouchList: false
   3011 };
   3012 
   3013 for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {
   3014  var NAME = collections[i];
   3015  var explicit = DOMIterables[NAME];
   3016  var Collection = global[NAME];
   3017  var proto = Collection && Collection.prototype;
   3018  var key;
   3019 
   3020  if (proto) {
   3021    if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);
   3022    if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
   3023    Iterators[NAME] = ArrayValues;
   3024    if (explicit) for (key in $iterators) {
   3025      if (!proto[key]) redefine(proto, key, $iterators[key], true);
   3026    }
   3027  }
   3028 }
   3029 
   3030 /***/ }),
   3031 /* 85 */
   3032 /***/ (function(module, exports, __w_pdfjs_require__) {
   3033 
   3034 "use strict";
   3035 
   3036 
   3037 var addToUnscopables = __w_pdfjs_require__(46);
   3038 
   3039 var step = __w_pdfjs_require__(86);
   3040 
   3041 var Iterators = __w_pdfjs_require__(51);
   3042 
   3043 var toIObject = __w_pdfjs_require__(43);
   3044 
   3045 module.exports = __w_pdfjs_require__(50)(Array, 'Array', function (iterated, kind) {
   3046  this._t = toIObject(iterated);
   3047  this._i = 0;
   3048  this._k = kind;
   3049 }, function () {
   3050  var O = this._t;
   3051  var kind = this._k;
   3052  var index = this._i++;
   3053 
   3054  if (!O || index >= O.length) {
   3055    this._t = undefined;
   3056    return step(1);
   3057  }
   3058 
   3059  if (kind == 'keys') return step(0, index);
   3060  if (kind == 'values') return step(0, O[index]);
   3061  return step(0, [index, O[index]]);
   3062 }, 'values');
   3063 Iterators.Arguments = Iterators.Array;
   3064 addToUnscopables('keys');
   3065 addToUnscopables('values');
   3066 addToUnscopables('entries');
   3067 
   3068 /***/ }),
   3069 /* 86 */
   3070 /***/ (function(module, exports, __w_pdfjs_require__) {
   3071 
   3072 "use strict";
   3073 
   3074 
   3075 module.exports = function (done, value) {
   3076  return {
   3077    value: value,
   3078    done: !!done
   3079  };
   3080 };
   3081 
   3082 /***/ }),
   3083 /* 87 */
   3084 /***/ (function(module, exports, __w_pdfjs_require__) {
   3085 
   3086 "use strict";
   3087 
   3088 
   3089 var LIBRARY = __w_pdfjs_require__(25);
   3090 
   3091 var global = __w_pdfjs_require__(8);
   3092 
   3093 var ctx = __w_pdfjs_require__(26);
   3094 
   3095 var classof = __w_pdfjs_require__(68);
   3096 
   3097 var $export = __w_pdfjs_require__(7);
   3098 
   3099 var isObject = __w_pdfjs_require__(13);
   3100 
   3101 var aFunction = __w_pdfjs_require__(27);
   3102 
   3103 var anInstance = __w_pdfjs_require__(88);
   3104 
   3105 var forOf = __w_pdfjs_require__(89);
   3106 
   3107 var speciesConstructor = __w_pdfjs_require__(90);
   3108 
   3109 var task = __w_pdfjs_require__(91).set;
   3110 
   3111 var microtask = __w_pdfjs_require__(93)();
   3112 
   3113 var newPromiseCapabilityModule = __w_pdfjs_require__(94);
   3114 
   3115 var perform = __w_pdfjs_require__(95);
   3116 
   3117 var userAgent = __w_pdfjs_require__(96);
   3118 
   3119 var promiseResolve = __w_pdfjs_require__(97);
   3120 
   3121 var PROMISE = 'Promise';
   3122 var TypeError = global.TypeError;
   3123 var process = global.process;
   3124 var versions = process && process.versions;
   3125 var v8 = versions && versions.v8 || '';
   3126 var $Promise = global[PROMISE];
   3127 var isNode = classof(process) == 'process';
   3128 
   3129 var empty = function empty() {};
   3130 
   3131 var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
   3132 var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;
   3133 var USE_NATIVE = !!function () {
   3134  try {
   3135    var promise = $Promise.resolve(1);
   3136 
   3137    var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(33)('species')] = function (exec) {
   3138      exec(empty, empty);
   3139    };
   3140 
   3141    return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1;
   3142  } catch (e) {}
   3143 }();
   3144 
   3145 var isThenable = function isThenable(it) {
   3146  var then;
   3147  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
   3148 };
   3149 
   3150 var notify = function notify(promise, isReject) {
   3151  if (promise._n) return;
   3152  promise._n = true;
   3153  var chain = promise._c;
   3154  microtask(function () {
   3155    var value = promise._v;
   3156    var ok = promise._s == 1;
   3157    var i = 0;
   3158 
   3159    var run = function run(reaction) {
   3160      var handler = ok ? reaction.ok : reaction.fail;
   3161      var resolve = reaction.resolve;
   3162      var reject = reaction.reject;
   3163      var domain = reaction.domain;
   3164      var result, then, exited;
   3165 
   3166      try {
   3167        if (handler) {
   3168          if (!ok) {
   3169            if (promise._h == 2) onHandleUnhandled(promise);
   3170            promise._h = 1;
   3171          }
   3172 
   3173          if (handler === true) result = value;else {
   3174            if (domain) domain.enter();
   3175            result = handler(value);
   3176 
   3177            if (domain) {
   3178              domain.exit();
   3179              exited = true;
   3180            }
   3181          }
   3182 
   3183          if (result === reaction.promise) {
   3184            reject(TypeError('Promise-chain cycle'));
   3185          } else if (then = isThenable(result)) {
   3186            then.call(result, resolve, reject);
   3187          } else resolve(result);
   3188        } else reject(value);
   3189      } catch (e) {
   3190        if (domain && !exited) domain.exit();
   3191        reject(e);
   3192      }
   3193    };
   3194 
   3195    while (chain.length > i) {
   3196      run(chain[i++]);
   3197    }
   3198 
   3199    promise._c = [];
   3200    promise._n = false;
   3201    if (isReject && !promise._h) onUnhandled(promise);
   3202  });
   3203 };
   3204 
   3205 var onUnhandled = function onUnhandled(promise) {
   3206  task.call(global, function () {
   3207    var value = promise._v;
   3208    var unhandled = isUnhandled(promise);
   3209    var result, handler, console;
   3210 
   3211    if (unhandled) {
   3212      result = perform(function () {
   3213        if (isNode) {
   3214          process.emit('unhandledRejection', value, promise);
   3215        } else if (handler = global.onunhandledrejection) {
   3216          handler({
   3217            promise: promise,
   3218            reason: value
   3219          });
   3220        } else if ((console = global.console) && console.error) {
   3221          console.error('Unhandled promise rejection', value);
   3222        }
   3223      });
   3224      promise._h = isNode || isUnhandled(promise) ? 2 : 1;
   3225    }
   3226 
   3227    promise._a = undefined;
   3228    if (unhandled && result.e) throw result.v;
   3229  });
   3230 };
   3231 
   3232 var isUnhandled = function isUnhandled(promise) {
   3233  return promise._h !== 1 && (promise._a || promise._c).length === 0;
   3234 };
   3235 
   3236 var onHandleUnhandled = function onHandleUnhandled(promise) {
   3237  task.call(global, function () {
   3238    var handler;
   3239 
   3240    if (isNode) {
   3241      process.emit('rejectionHandled', promise);
   3242    } else if (handler = global.onrejectionhandled) {
   3243      handler({
   3244        promise: promise,
   3245        reason: promise._v
   3246      });
   3247    }
   3248  });
   3249 };
   3250 
   3251 var $reject = function $reject(value) {
   3252  var promise = this;
   3253  if (promise._d) return;
   3254  promise._d = true;
   3255  promise = promise._w || promise;
   3256  promise._v = value;
   3257  promise._s = 2;
   3258  if (!promise._a) promise._a = promise._c.slice();
   3259  notify(promise, true);
   3260 };
   3261 
   3262 var $resolve = function $resolve(value) {
   3263  var promise = this;
   3264  var then;
   3265  if (promise._d) return;
   3266  promise._d = true;
   3267  promise = promise._w || promise;
   3268 
   3269  try {
   3270    if (promise === value) throw TypeError("Promise can't be resolved itself");
   3271 
   3272    if (then = isThenable(value)) {
   3273      microtask(function () {
   3274        var wrapper = {
   3275          _w: promise,
   3276          _d: false
   3277        };
   3278 
   3279        try {
   3280          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
   3281        } catch (e) {
   3282          $reject.call(wrapper, e);
   3283        }
   3284      });
   3285    } else {
   3286      promise._v = value;
   3287      promise._s = 1;
   3288      notify(promise, false);
   3289    }
   3290  } catch (e) {
   3291    $reject.call({
   3292      _w: promise,
   3293      _d: false
   3294    }, e);
   3295  }
   3296 };
   3297 
   3298 if (!USE_NATIVE) {
   3299  $Promise = function Promise(executor) {
   3300    anInstance(this, $Promise, PROMISE, '_h');
   3301    aFunction(executor);
   3302    Internal.call(this);
   3303 
   3304    try {
   3305      executor(ctx($resolve, this, 1), ctx($reject, this, 1));
   3306    } catch (err) {
   3307      $reject.call(this, err);
   3308    }
   3309  };
   3310 
   3311  Internal = function Promise(executor) {
   3312    this._c = [];
   3313    this._a = undefined;
   3314    this._s = 0;
   3315    this._d = false;
   3316    this._v = undefined;
   3317    this._h = 0;
   3318    this._n = false;
   3319  };
   3320 
   3321  Internal.prototype = __w_pdfjs_require__(98)($Promise.prototype, {
   3322    then: function then(onFulfilled, onRejected) {
   3323      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
   3324      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
   3325      reaction.fail = typeof onRejected == 'function' && onRejected;
   3326      reaction.domain = isNode ? process.domain : undefined;
   3327 
   3328      this._c.push(reaction);
   3329 
   3330      if (this._a) this._a.push(reaction);
   3331      if (this._s) notify(this, false);
   3332      return reaction.promise;
   3333    },
   3334    'catch': function _catch(onRejected) {
   3335      return this.then(undefined, onRejected);
   3336    }
   3337  });
   3338 
   3339  OwnPromiseCapability = function OwnPromiseCapability() {
   3340    var promise = new Internal();
   3341    this.promise = promise;
   3342    this.resolve = ctx($resolve, promise, 1);
   3343    this.reject = ctx($reject, promise, 1);
   3344  };
   3345 
   3346  newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) {
   3347    return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);
   3348  };
   3349 }
   3350 
   3351 $export($export.G + $export.W + $export.F * !USE_NATIVE, {
   3352  Promise: $Promise
   3353 });
   3354 
   3355 __w_pdfjs_require__(60)($Promise, PROMISE);
   3356 
   3357 __w_pdfjs_require__(99)(PROMISE);
   3358 
   3359 Wrapper = __w_pdfjs_require__(9)[PROMISE];
   3360 $export($export.S + $export.F * !USE_NATIVE, PROMISE, {
   3361  reject: function reject(r) {
   3362    var capability = newPromiseCapability(this);
   3363    var $$reject = capability.reject;
   3364    $$reject(r);
   3365    return capability.promise;
   3366  }
   3367 });
   3368 $export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
   3369  resolve: function resolve(x) {
   3370    return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
   3371  }
   3372 });
   3373 $export($export.S + $export.F * !(USE_NATIVE && __w_pdfjs_require__(69)(function (iter) {
   3374  $Promise.all(iter)['catch'](empty);
   3375 })), PROMISE, {
   3376  all: function all(iterable) {
   3377    var C = this;
   3378    var capability = newPromiseCapability(C);
   3379    var resolve = capability.resolve;
   3380    var reject = capability.reject;
   3381    var result = perform(function () {
   3382      var values = [];
   3383      var index = 0;
   3384      var remaining = 1;
   3385      forOf(iterable, false, function (promise) {
   3386        var $index = index++;
   3387        var alreadyCalled = false;
   3388        values.push(undefined);
   3389        remaining++;
   3390        C.resolve(promise).then(function (value) {
   3391          if (alreadyCalled) return;
   3392          alreadyCalled = true;
   3393          values[$index] = value;
   3394          --remaining || resolve(values);
   3395        }, reject);
   3396      });
   3397      --remaining || resolve(values);
   3398    });
   3399    if (result.e) reject(result.v);
   3400    return capability.promise;
   3401  },
   3402  race: function race(iterable) {
   3403    var C = this;
   3404    var capability = newPromiseCapability(C);
   3405    var reject = capability.reject;
   3406    var result = perform(function () {
   3407      forOf(iterable, false, function (promise) {
   3408        C.resolve(promise).then(capability.resolve, reject);
   3409      });
   3410    });
   3411    if (result.e) reject(result.v);
   3412    return capability.promise;
   3413  }
   3414 });
   3415 
   3416 /***/ }),
   3417 /* 88 */
   3418 /***/ (function(module, exports, __w_pdfjs_require__) {
   3419 
   3420 "use strict";
   3421 
   3422 
   3423 module.exports = function (it, Constructor, name, forbiddenField) {
   3424  if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) {
   3425    throw TypeError(name + ': incorrect invocation!');
   3426  }
   3427 
   3428  return it;
   3429 };
   3430 
   3431 /***/ }),
   3432 /* 89 */
   3433 /***/ (function(module, exports, __w_pdfjs_require__) {
   3434 
   3435 "use strict";
   3436 
   3437 
   3438 var ctx = __w_pdfjs_require__(26);
   3439 
   3440 var call = __w_pdfjs_require__(64);
   3441 
   3442 var isArrayIter = __w_pdfjs_require__(65);
   3443 
   3444 var anObject = __w_pdfjs_require__(12);
   3445 
   3446 var toLength = __w_pdfjs_require__(28);
   3447 
   3448 var getIterFn = __w_pdfjs_require__(67);
   3449 
   3450 var BREAK = {};
   3451 var RETURN = {};
   3452 
   3453 var _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
   3454  var iterFn = ITERATOR ? function () {
   3455    return iterable;
   3456  } : getIterFn(iterable);
   3457  var f = ctx(fn, that, entries ? 2 : 1);
   3458  var index = 0;
   3459  var length, step, iterator, result;
   3460  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
   3461  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
   3462    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
   3463    if (result === BREAK || result === RETURN) return result;
   3464  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
   3465    result = call(iterator, f, step.value, entries);
   3466    if (result === BREAK || result === RETURN) return result;
   3467  }
   3468 };
   3469 
   3470 _exports.BREAK = BREAK;
   3471 _exports.RETURN = RETURN;
   3472 
   3473 /***/ }),
   3474 /* 90 */
   3475 /***/ (function(module, exports, __w_pdfjs_require__) {
   3476 
   3477 "use strict";
   3478 
   3479 
   3480 var anObject = __w_pdfjs_require__(12);
   3481 
   3482 var aFunction = __w_pdfjs_require__(27);
   3483 
   3484 var SPECIES = __w_pdfjs_require__(33)('species');
   3485 
   3486 module.exports = function (O, D) {
   3487  var C = anObject(O).constructor;
   3488  var S;
   3489  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
   3490 };
   3491 
   3492 /***/ }),
   3493 /* 91 */
   3494 /***/ (function(module, exports, __w_pdfjs_require__) {
   3495 
   3496 "use strict";
   3497 
   3498 
   3499 var ctx = __w_pdfjs_require__(26);
   3500 
   3501 var invoke = __w_pdfjs_require__(92);
   3502 
   3503 var html = __w_pdfjs_require__(59);
   3504 
   3505 var cel = __w_pdfjs_require__(17);
   3506 
   3507 var global = __w_pdfjs_require__(8);
   3508 
   3509 var process = global.process;
   3510 var setTask = global.setImmediate;
   3511 var clearTask = global.clearImmediate;
   3512 var MessageChannel = global.MessageChannel;
   3513 var Dispatch = global.Dispatch;
   3514 var counter = 0;
   3515 var queue = {};
   3516 var ONREADYSTATECHANGE = 'onreadystatechange';
   3517 var defer, channel, port;
   3518 
   3519 var run = function run() {
   3520  var id = +this;
   3521 
   3522  if (queue.hasOwnProperty(id)) {
   3523    var fn = queue[id];
   3524    delete queue[id];
   3525    fn();
   3526  }
   3527 };
   3528 
   3529 var listener = function listener(event) {
   3530  run.call(event.data);
   3531 };
   3532 
   3533 if (!setTask || !clearTask) {
   3534  setTask = function setImmediate(fn) {
   3535    var args = [];
   3536    var i = 1;
   3537 
   3538    while (arguments.length > i) {
   3539      args.push(arguments[i++]);
   3540    }
   3541 
   3542    queue[++counter] = function () {
   3543      invoke(typeof fn == 'function' ? fn : Function(fn), args);
   3544    };
   3545 
   3546    defer(counter);
   3547    return counter;
   3548  };
   3549 
   3550  clearTask = function clearImmediate(id) {
   3551    delete queue[id];
   3552  };
   3553 
   3554  if (__w_pdfjs_require__(32)(process) == 'process') {
   3555    defer = function defer(id) {
   3556      process.nextTick(ctx(run, id, 1));
   3557    };
   3558  } else if (Dispatch && Dispatch.now) {
   3559    defer = function defer(id) {
   3560      Dispatch.now(ctx(run, id, 1));
   3561    };
   3562  } else if (MessageChannel) {
   3563    channel = new MessageChannel();
   3564    port = channel.port2;
   3565    channel.port1.onmessage = listener;
   3566    defer = ctx(port.postMessage, port, 1);
   3567  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
   3568    defer = function defer(id) {
   3569      global.postMessage(id + '', '*');
   3570    };
   3571 
   3572    global.addEventListener('message', listener, false);
   3573  } else if (ONREADYSTATECHANGE in cel('script')) {
   3574    defer = function defer(id) {
   3575      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
   3576        html.removeChild(this);
   3577        run.call(id);
   3578      };
   3579    };
   3580  } else {
   3581    defer = function defer(id) {
   3582      setTimeout(ctx(run, id, 1), 0);
   3583    };
   3584  }
   3585 }
   3586 
   3587 module.exports = {
   3588  set: setTask,
   3589  clear: clearTask
   3590 };
   3591 
   3592 /***/ }),
   3593 /* 92 */
   3594 /***/ (function(module, exports, __w_pdfjs_require__) {
   3595 
   3596 "use strict";
   3597 
   3598 
   3599 module.exports = function (fn, args, that) {
   3600  var un = that === undefined;
   3601 
   3602  switch (args.length) {
   3603    case 0:
   3604      return un ? fn() : fn.call(that);
   3605 
   3606    case 1:
   3607      return un ? fn(args[0]) : fn.call(that, args[0]);
   3608 
   3609    case 2:
   3610      return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]);
   3611 
   3612    case 3:
   3613      return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]);
   3614 
   3615    case 4:
   3616      return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]);
   3617  }
   3618 
   3619  return fn.apply(that, args);
   3620 };
   3621 
   3622 /***/ }),
   3623 /* 93 */
   3624 /***/ (function(module, exports, __w_pdfjs_require__) {
   3625 
   3626 "use strict";
   3627 
   3628 
   3629 var global = __w_pdfjs_require__(8);
   3630 
   3631 var macrotask = __w_pdfjs_require__(91).set;
   3632 
   3633 var Observer = global.MutationObserver || global.WebKitMutationObserver;
   3634 var process = global.process;
   3635 var Promise = global.Promise;
   3636 var isNode = __w_pdfjs_require__(32)(process) == 'process';
   3637 
   3638 module.exports = function () {
   3639  var head, last, notify;
   3640 
   3641  var flush = function flush() {
   3642    var parent, fn;
   3643    if (isNode && (parent = process.domain)) parent.exit();
   3644 
   3645    while (head) {
   3646      fn = head.fn;
   3647      head = head.next;
   3648 
   3649      try {
   3650        fn();
   3651      } catch (e) {
   3652        if (head) notify();else last = undefined;
   3653        throw e;
   3654      }
   3655    }
   3656 
   3657    last = undefined;
   3658    if (parent) parent.enter();
   3659  };
   3660 
   3661  if (isNode) {
   3662    notify = function notify() {
   3663      process.nextTick(flush);
   3664    };
   3665  } else if (Observer && !(global.navigator && global.navigator.standalone)) {
   3666    var toggle = true;
   3667    var node = document.createTextNode('');
   3668    new Observer(flush).observe(node, {
   3669      characterData: true
   3670    });
   3671 
   3672    notify = function notify() {
   3673      node.data = toggle = !toggle;
   3674    };
   3675  } else if (Promise && Promise.resolve) {
   3676    var promise = Promise.resolve(undefined);
   3677 
   3678    notify = function notify() {
   3679      promise.then(flush);
   3680    };
   3681  } else {
   3682    notify = function notify() {
   3683      macrotask.call(global, flush);
   3684    };
   3685  }
   3686 
   3687  return function (fn) {
   3688    var task = {
   3689      fn: fn,
   3690      next: undefined
   3691    };
   3692    if (last) last.next = task;
   3693 
   3694    if (!head) {
   3695      head = task;
   3696      notify();
   3697    }
   3698 
   3699    last = task;
   3700  };
   3701 };
   3702 
   3703 /***/ }),
   3704 /* 94 */
   3705 /***/ (function(module, exports, __w_pdfjs_require__) {
   3706 
   3707 "use strict";
   3708 
   3709 
   3710 var aFunction = __w_pdfjs_require__(27);
   3711 
   3712 function PromiseCapability(C) {
   3713  var resolve, reject;
   3714  this.promise = new C(function ($$resolve, $$reject) {
   3715    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
   3716    resolve = $$resolve;
   3717    reject = $$reject;
   3718  });
   3719  this.resolve = aFunction(resolve);
   3720  this.reject = aFunction(reject);
   3721 }
   3722 
   3723 module.exports.f = function (C) {
   3724  return new PromiseCapability(C);
   3725 };
   3726 
   3727 /***/ }),
   3728 /* 95 */
   3729 /***/ (function(module, exports, __w_pdfjs_require__) {
   3730 
   3731 "use strict";
   3732 
   3733 
   3734 module.exports = function (exec) {
   3735  try {
   3736    return {
   3737      e: false,
   3738      v: exec()
   3739    };
   3740  } catch (e) {
   3741    return {
   3742      e: true,
   3743      v: e
   3744    };
   3745  }
   3746 };
   3747 
   3748 /***/ }),
   3749 /* 96 */
   3750 /***/ (function(module, exports, __w_pdfjs_require__) {
   3751 
   3752 "use strict";
   3753 
   3754 
   3755 var global = __w_pdfjs_require__(8);
   3756 
   3757 var navigator = global.navigator;
   3758 module.exports = navigator && navigator.userAgent || '';
   3759 
   3760 /***/ }),
   3761 /* 97 */
   3762 /***/ (function(module, exports, __w_pdfjs_require__) {
   3763 
   3764 "use strict";
   3765 
   3766 
   3767 var anObject = __w_pdfjs_require__(12);
   3768 
   3769 var isObject = __w_pdfjs_require__(13);
   3770 
   3771 var newPromiseCapability = __w_pdfjs_require__(94);
   3772 
   3773 module.exports = function (C, x) {
   3774  anObject(C);
   3775  if (isObject(x) && x.constructor === C) return x;
   3776  var promiseCapability = newPromiseCapability.f(C);
   3777  var resolve = promiseCapability.resolve;
   3778  resolve(x);
   3779  return promiseCapability.promise;
   3780 };
   3781 
   3782 /***/ }),
   3783 /* 98 */
   3784 /***/ (function(module, exports, __w_pdfjs_require__) {
   3785 
   3786 "use strict";
   3787 
   3788 
   3789 var redefine = __w_pdfjs_require__(20);
   3790 
   3791 module.exports = function (target, src, safe) {
   3792  for (var key in src) {
   3793    redefine(target, key, src[key], safe);
   3794  }
   3795 
   3796  return target;
   3797 };
   3798 
   3799 /***/ }),
   3800 /* 99 */
   3801 /***/ (function(module, exports, __w_pdfjs_require__) {
   3802 
   3803 "use strict";
   3804 
   3805 
   3806 var global = __w_pdfjs_require__(8);
   3807 
   3808 var dP = __w_pdfjs_require__(11);
   3809 
   3810 var DESCRIPTORS = __w_pdfjs_require__(15);
   3811 
   3812 var SPECIES = __w_pdfjs_require__(33)('species');
   3813 
   3814 module.exports = function (KEY) {
   3815  var C = global[KEY];
   3816  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
   3817    configurable: true,
   3818    get: function get() {
   3819      return this;
   3820    }
   3821  });
   3822 };
   3823 
   3824 /***/ }),
   3825 /* 100 */
   3826 /***/ (function(module, exports, __w_pdfjs_require__) {
   3827 
   3828 "use strict";
   3829 
   3830 
   3831 var $export = __w_pdfjs_require__(7);
   3832 
   3833 var core = __w_pdfjs_require__(9);
   3834 
   3835 var global = __w_pdfjs_require__(8);
   3836 
   3837 var speciesConstructor = __w_pdfjs_require__(90);
   3838 
   3839 var promiseResolve = __w_pdfjs_require__(97);
   3840 
   3841 $export($export.P + $export.R, 'Promise', {
   3842  'finally': function _finally(onFinally) {
   3843    var C = speciesConstructor(this, core.Promise || global.Promise);
   3844    var isFunction = typeof onFinally == 'function';
   3845    return this.then(isFunction ? function (x) {
   3846      return promiseResolve(C, onFinally()).then(function () {
   3847        return x;
   3848      });
   3849    } : onFinally, isFunction ? function (e) {
   3850      return promiseResolve(C, onFinally()).then(function () {
   3851        throw e;
   3852      });
   3853    } : onFinally);
   3854  }
   3855 });
   3856 
   3857 /***/ }),
   3858 /* 101 */
   3859 /***/ (function(module, exports, __w_pdfjs_require__) {
   3860 
   3861 "use strict";
   3862 
   3863 
   3864 var $export = __w_pdfjs_require__(7);
   3865 
   3866 var newPromiseCapability = __w_pdfjs_require__(94);
   3867 
   3868 var perform = __w_pdfjs_require__(95);
   3869 
   3870 $export($export.S, 'Promise', {
   3871  'try': function _try(callbackfn) {
   3872    var promiseCapability = newPromiseCapability.f(this);
   3873    var result = perform(callbackfn);
   3874    (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);
   3875    return promiseCapability.promise;
   3876  }
   3877 });
   3878 
   3879 /***/ }),
   3880 /* 102 */
   3881 /***/ (function(module, exports, __w_pdfjs_require__) {
   3882 
   3883 "use strict";
   3884 
   3885 
   3886 __w_pdfjs_require__(83);
   3887 
   3888 __w_pdfjs_require__(84);
   3889 
   3890 __w_pdfjs_require__(103);
   3891 
   3892 __w_pdfjs_require__(115);
   3893 
   3894 __w_pdfjs_require__(117);
   3895 
   3896 module.exports = __w_pdfjs_require__(9).WeakMap;
   3897 
   3898 /***/ }),
   3899 /* 103 */
   3900 /***/ (function(module, exports, __w_pdfjs_require__) {
   3901 
   3902 "use strict";
   3903 
   3904 
   3905 var global = __w_pdfjs_require__(8);
   3906 
   3907 var each = __w_pdfjs_require__(104)(0);
   3908 
   3909 var redefine = __w_pdfjs_require__(20);
   3910 
   3911 var meta = __w_pdfjs_require__(108);
   3912 
   3913 var assign = __w_pdfjs_require__(72);
   3914 
   3915 var weak = __w_pdfjs_require__(109);
   3916 
   3917 var isObject = __w_pdfjs_require__(13);
   3918 
   3919 var validate = __w_pdfjs_require__(110);
   3920 
   3921 var NATIVE_WEAK_MAP = __w_pdfjs_require__(110);
   3922 
   3923 var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
   3924 var WEAK_MAP = 'WeakMap';
   3925 var getWeak = meta.getWeak;
   3926 var isExtensible = Object.isExtensible;
   3927 var uncaughtFrozenStore = weak.ufstore;
   3928 var InternalMap;
   3929 
   3930 var wrapper = function wrapper(get) {
   3931  return function WeakMap() {
   3932    return get(this, arguments.length > 0 ? arguments[0] : undefined);
   3933  };
   3934 };
   3935 
   3936 var methods = {
   3937  get: function get(key) {
   3938    if (isObject(key)) {
   3939      var data = getWeak(key);
   3940      if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);
   3941      return data ? data[this._i] : undefined;
   3942    }
   3943  },
   3944  set: function set(key, value) {
   3945    return weak.def(validate(this, WEAK_MAP), key, value);
   3946  }
   3947 };
   3948 
   3949 var $WeakMap = module.exports = __w_pdfjs_require__(111)(WEAK_MAP, wrapper, methods, weak, true, true);
   3950 
   3951 if (NATIVE_WEAK_MAP && IS_IE11) {
   3952  InternalMap = weak.getConstructor(wrapper, WEAK_MAP);
   3953  assign(InternalMap.prototype, methods);
   3954  meta.NEED = true;
   3955  each(['delete', 'has', 'get', 'set'], function (key) {
   3956    var proto = $WeakMap.prototype;
   3957    var method = proto[key];
   3958    redefine(proto, key, function (a, b) {
   3959      if (isObject(a) && !isExtensible(a)) {
   3960        if (!this._f) this._f = new InternalMap();
   3961 
   3962        var result = this._f[key](a, b);
   3963 
   3964        return key == 'set' ? this : result;
   3965      }
   3966 
   3967      return method.call(this, a, b);
   3968    });
   3969  });
   3970 }
   3971 
   3972 /***/ }),
   3973 /* 104 */
   3974 /***/ (function(module, exports, __w_pdfjs_require__) {
   3975 
   3976 "use strict";
   3977 
   3978 
   3979 var ctx = __w_pdfjs_require__(26);
   3980 
   3981 var IObject = __w_pdfjs_require__(44);
   3982 
   3983 var toObject = __w_pdfjs_require__(62);
   3984 
   3985 var toLength = __w_pdfjs_require__(28);
   3986 
   3987 var asc = __w_pdfjs_require__(105);
   3988 
   3989 module.exports = function (TYPE, $create) {
   3990  var IS_MAP = TYPE == 1;
   3991  var IS_FILTER = TYPE == 2;
   3992  var IS_SOME = TYPE == 3;
   3993  var IS_EVERY = TYPE == 4;
   3994  var IS_FIND_INDEX = TYPE == 6;
   3995  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
   3996  var create = $create || asc;
   3997  return function ($this, callbackfn, that) {
   3998    var O = toObject($this);
   3999    var self = IObject(O);
   4000    var f = ctx(callbackfn, that, 3);
   4001    var length = toLength(self.length);
   4002    var index = 0;
   4003    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
   4004    var val, res;
   4005 
   4006    for (; length > index; index++) {
   4007      if (NO_HOLES || index in self) {
   4008        val = self[index];
   4009        res = f(val, index, O);
   4010 
   4011        if (TYPE) {
   4012          if (IS_MAP) result[index] = res;else if (res) switch (TYPE) {
   4013            case 3:
   4014              return true;
   4015 
   4016            case 5:
   4017              return val;
   4018 
   4019            case 6:
   4020              return index;
   4021 
   4022            case 2:
   4023              result.push(val);
   4024          } else if (IS_EVERY) return false;
   4025        }
   4026      }
   4027    }
   4028 
   4029    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
   4030  };
   4031 };
   4032 
   4033 /***/ }),
   4034 /* 105 */
   4035 /***/ (function(module, exports, __w_pdfjs_require__) {
   4036 
   4037 "use strict";
   4038 
   4039 
   4040 var speciesConstructor = __w_pdfjs_require__(106);
   4041 
   4042 module.exports = function (original, length) {
   4043  return new (speciesConstructor(original))(length);
   4044 };
   4045 
   4046 /***/ }),
   4047 /* 106 */
   4048 /***/ (function(module, exports, __w_pdfjs_require__) {
   4049 
   4050 "use strict";
   4051 
   4052 
   4053 var isObject = __w_pdfjs_require__(13);
   4054 
   4055 var isArray = __w_pdfjs_require__(107);
   4056 
   4057 var SPECIES = __w_pdfjs_require__(33)('species');
   4058 
   4059 module.exports = function (original) {
   4060  var C;
   4061 
   4062  if (isArray(original)) {
   4063    C = original.constructor;
   4064    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
   4065 
   4066    if (isObject(C)) {
   4067      C = C[SPECIES];
   4068      if (C === null) C = undefined;
   4069    }
   4070  }
   4071 
   4072  return C === undefined ? Array : C;
   4073 };
   4074 
   4075 /***/ }),
   4076 /* 107 */
   4077 /***/ (function(module, exports, __w_pdfjs_require__) {
   4078 
   4079 "use strict";
   4080 
   4081 
   4082 var cof = __w_pdfjs_require__(32);
   4083 
   4084 module.exports = Array.isArray || function isArray(arg) {
   4085  return cof(arg) == 'Array';
   4086 };
   4087 
   4088 /***/ }),
   4089 /* 108 */
   4090 /***/ (function(module, exports, __w_pdfjs_require__) {
   4091 
   4092 "use strict";
   4093 
   4094 
   4095 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
   4096 
   4097 var META = __w_pdfjs_require__(22)('meta');
   4098 
   4099 var isObject = __w_pdfjs_require__(13);
   4100 
   4101 var has = __w_pdfjs_require__(21);
   4102 
   4103 var setDesc = __w_pdfjs_require__(11).f;
   4104 
   4105 var id = 0;
   4106 
   4107 var isExtensible = Object.isExtensible || function () {
   4108  return true;
   4109 };
   4110 
   4111 var FREEZE = !__w_pdfjs_require__(16)(function () {
   4112  return isExtensible(Object.preventExtensions({}));
   4113 });
   4114 
   4115 var setMeta = function setMeta(it) {
   4116  setDesc(it, META, {
   4117    value: {
   4118      i: 'O' + ++id,
   4119      w: {}
   4120    }
   4121  });
   4122 };
   4123 
   4124 var fastKey = function fastKey(it, create) {
   4125  if (!isObject(it)) return _typeof(it) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
   4126 
   4127  if (!has(it, META)) {
   4128    if (!isExtensible(it)) return 'F';
   4129    if (!create) return 'E';
   4130    setMeta(it);
   4131  }
   4132 
   4133  return it[META].i;
   4134 };
   4135 
   4136 var getWeak = function getWeak(it, create) {
   4137  if (!has(it, META)) {
   4138    if (!isExtensible(it)) return true;
   4139    if (!create) return false;
   4140    setMeta(it);
   4141  }
   4142 
   4143  return it[META].w;
   4144 };
   4145 
   4146 var onFreeze = function onFreeze(it) {
   4147  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
   4148  return it;
   4149 };
   4150 
   4151 var meta = module.exports = {
   4152  KEY: META,
   4153  NEED: false,
   4154  fastKey: fastKey,
   4155  getWeak: getWeak,
   4156  onFreeze: onFreeze
   4157 };
   4158 
   4159 /***/ }),
   4160 /* 109 */
   4161 /***/ (function(module, exports, __w_pdfjs_require__) {
   4162 
   4163 "use strict";
   4164 
   4165 
   4166 var redefineAll = __w_pdfjs_require__(98);
   4167 
   4168 var getWeak = __w_pdfjs_require__(108).getWeak;
   4169 
   4170 var anObject = __w_pdfjs_require__(12);
   4171 
   4172 var isObject = __w_pdfjs_require__(13);
   4173 
   4174 var anInstance = __w_pdfjs_require__(88);
   4175 
   4176 var forOf = __w_pdfjs_require__(89);
   4177 
   4178 var createArrayMethod = __w_pdfjs_require__(104);
   4179 
   4180 var $has = __w_pdfjs_require__(21);
   4181 
   4182 var validate = __w_pdfjs_require__(110);
   4183 
   4184 var arrayFind = createArrayMethod(5);
   4185 var arrayFindIndex = createArrayMethod(6);
   4186 var id = 0;
   4187 
   4188 var uncaughtFrozenStore = function uncaughtFrozenStore(that) {
   4189  return that._l || (that._l = new UncaughtFrozenStore());
   4190 };
   4191 
   4192 var UncaughtFrozenStore = function UncaughtFrozenStore() {
   4193  this.a = [];
   4194 };
   4195 
   4196 var findUncaughtFrozen = function findUncaughtFrozen(store, key) {
   4197  return arrayFind(store.a, function (it) {
   4198    return it[0] === key;
   4199  });
   4200 };
   4201 
   4202 UncaughtFrozenStore.prototype = {
   4203  get: function get(key) {
   4204    var entry = findUncaughtFrozen(this, key);
   4205    if (entry) return entry[1];
   4206  },
   4207  has: function has(key) {
   4208    return !!findUncaughtFrozen(this, key);
   4209  },
   4210  set: function set(key, value) {
   4211    var entry = findUncaughtFrozen(this, key);
   4212    if (entry) entry[1] = value;else this.a.push([key, value]);
   4213  },
   4214  'delete': function _delete(key) {
   4215    var index = arrayFindIndex(this.a, function (it) {
   4216      return it[0] === key;
   4217    });
   4218    if (~index) this.a.splice(index, 1);
   4219    return !!~index;
   4220  }
   4221 };
   4222 module.exports = {
   4223  getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) {
   4224    var C = wrapper(function (that, iterable) {
   4225      anInstance(that, C, NAME, '_i');
   4226      that._t = NAME;
   4227      that._i = id++;
   4228      that._l = undefined;
   4229      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
   4230    });
   4231    redefineAll(C.prototype, {
   4232      'delete': function _delete(key) {
   4233        if (!isObject(key)) return false;
   4234        var data = getWeak(key);
   4235        if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);
   4236        return data && $has(data, this._i) && delete data[this._i];
   4237      },
   4238      has: function has(key) {
   4239        if (!isObject(key)) return false;
   4240        var data = getWeak(key);
   4241        if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);
   4242        return data && $has(data, this._i);
   4243      }
   4244    });
   4245    return C;
   4246  },
   4247  def: function def(that, key, value) {
   4248    var data = getWeak(anObject(key), true);
   4249    if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value;
   4250    return that;
   4251  },
   4252  ufstore: uncaughtFrozenStore
   4253 };
   4254 
   4255 /***/ }),
   4256 /* 110 */
   4257 /***/ (function(module, exports, __w_pdfjs_require__) {
   4258 
   4259 "use strict";
   4260 
   4261 
   4262 var isObject = __w_pdfjs_require__(13);
   4263 
   4264 module.exports = function (it, TYPE) {
   4265  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
   4266  return it;
   4267 };
   4268 
   4269 /***/ }),
   4270 /* 111 */
   4271 /***/ (function(module, exports, __w_pdfjs_require__) {
   4272 
   4273 "use strict";
   4274 
   4275 
   4276 var global = __w_pdfjs_require__(8);
   4277 
   4278 var $export = __w_pdfjs_require__(7);
   4279 
   4280 var redefine = __w_pdfjs_require__(20);
   4281 
   4282 var redefineAll = __w_pdfjs_require__(98);
   4283 
   4284 var meta = __w_pdfjs_require__(108);
   4285 
   4286 var forOf = __w_pdfjs_require__(89);
   4287 
   4288 var anInstance = __w_pdfjs_require__(88);
   4289 
   4290 var isObject = __w_pdfjs_require__(13);
   4291 
   4292 var fails = __w_pdfjs_require__(16);
   4293 
   4294 var $iterDetect = __w_pdfjs_require__(69);
   4295 
   4296 var setToStringTag = __w_pdfjs_require__(60);
   4297 
   4298 var inheritIfRequired = __w_pdfjs_require__(112);
   4299 
   4300 module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
   4301  var Base = global[NAME];
   4302  var C = Base;
   4303  var ADDER = IS_MAP ? 'set' : 'add';
   4304  var proto = C && C.prototype;
   4305  var O = {};
   4306 
   4307  var fixMethod = function fixMethod(KEY) {
   4308    var fn = proto[KEY];
   4309    redefine(proto, KEY, KEY == 'delete' ? function (a) {
   4310      return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
   4311    } : KEY == 'has' ? function has(a) {
   4312      return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
   4313    } : KEY == 'get' ? function get(a) {
   4314      return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
   4315    } : KEY == 'add' ? function add(a) {
   4316      fn.call(this, a === 0 ? 0 : a);
   4317      return this;
   4318    } : function set(a, b) {
   4319      fn.call(this, a === 0 ? 0 : a, b);
   4320      return this;
   4321    });
   4322  };
   4323 
   4324  if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
   4325    new C().entries().next();
   4326  }))) {
   4327    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
   4328    redefineAll(C.prototype, methods);
   4329    meta.NEED = true;
   4330  } else {
   4331    var instance = new C();
   4332    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
   4333    var THROWS_ON_PRIMITIVES = fails(function () {
   4334      instance.has(1);
   4335    });
   4336    var ACCEPT_ITERABLES = $iterDetect(function (iter) {
   4337      new C(iter);
   4338    });
   4339    var BUGGY_ZERO = !IS_WEAK && fails(function () {
   4340      var $instance = new C();
   4341      var index = 5;
   4342 
   4343      while (index--) {
   4344        $instance[ADDER](index, index);
   4345      }
   4346 
   4347      return !$instance.has(-0);
   4348    });
   4349 
   4350    if (!ACCEPT_ITERABLES) {
   4351      C = wrapper(function (target, iterable) {
   4352        anInstance(target, C, NAME);
   4353        var that = inheritIfRequired(new Base(), target, C);
   4354        if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
   4355        return that;
   4356      });
   4357      C.prototype = proto;
   4358      proto.constructor = C;
   4359    }
   4360 
   4361    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
   4362      fixMethod('delete');
   4363      fixMethod('has');
   4364      IS_MAP && fixMethod('get');
   4365    }
   4366 
   4367    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
   4368    if (IS_WEAK && proto.clear) delete proto.clear;
   4369  }
   4370 
   4371  setToStringTag(C, NAME);
   4372  O[NAME] = C;
   4373  $export($export.G + $export.W + $export.F * (C != Base), O);
   4374  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
   4375  return C;
   4376 };
   4377 
   4378 /***/ }),
   4379 /* 112 */
   4380 /***/ (function(module, exports, __w_pdfjs_require__) {
   4381 
   4382 "use strict";
   4383 
   4384 
   4385 var isObject = __w_pdfjs_require__(13);
   4386 
   4387 var setPrototypeOf = __w_pdfjs_require__(113).set;
   4388 
   4389 module.exports = function (that, target, C) {
   4390  var S = target.constructor;
   4391  var P;
   4392 
   4393  if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {
   4394    setPrototypeOf(that, P);
   4395  }
   4396 
   4397  return that;
   4398 };
   4399 
   4400 /***/ }),
   4401 /* 113 */
   4402 /***/ (function(module, exports, __w_pdfjs_require__) {
   4403 
   4404 "use strict";
   4405 
   4406 
   4407 var isObject = __w_pdfjs_require__(13);
   4408 
   4409 var anObject = __w_pdfjs_require__(12);
   4410 
   4411 var check = function check(O, proto) {
   4412  anObject(O);
   4413  if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
   4414 };
   4415 
   4416 module.exports = {
   4417  set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) {
   4418    try {
   4419      set = __w_pdfjs_require__(26)(Function.call, __w_pdfjs_require__(114).f(Object.prototype, '__proto__').set, 2);
   4420      set(test, []);
   4421      buggy = !(test instanceof Array);
   4422    } catch (e) {
   4423      buggy = true;
   4424    }
   4425 
   4426    return function setPrototypeOf(O, proto) {
   4427      check(O, proto);
   4428      if (buggy) O.__proto__ = proto;else set(O, proto);
   4429      return O;
   4430    };
   4431  }({}, false) : undefined),
   4432  check: check
   4433 };
   4434 
   4435 /***/ }),
   4436 /* 114 */
   4437 /***/ (function(module, exports, __w_pdfjs_require__) {
   4438 
   4439 "use strict";
   4440 
   4441 
   4442 var pIE = __w_pdfjs_require__(74);
   4443 
   4444 var createDesc = __w_pdfjs_require__(19);
   4445 
   4446 var toIObject = __w_pdfjs_require__(43);
   4447 
   4448 var toPrimitive = __w_pdfjs_require__(18);
   4449 
   4450 var has = __w_pdfjs_require__(21);
   4451 
   4452 var IE8_DOM_DEFINE = __w_pdfjs_require__(14);
   4453 
   4454 var gOPD = Object.getOwnPropertyDescriptor;
   4455 exports.f = __w_pdfjs_require__(15) ? gOPD : function getOwnPropertyDescriptor(O, P) {
   4456  O = toIObject(O);
   4457  P = toPrimitive(P, true);
   4458  if (IE8_DOM_DEFINE) try {
   4459    return gOPD(O, P);
   4460  } catch (e) {}
   4461  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
   4462 };
   4463 
   4464 /***/ }),
   4465 /* 115 */
   4466 /***/ (function(module, exports, __w_pdfjs_require__) {
   4467 
   4468 "use strict";
   4469 
   4470 
   4471 __w_pdfjs_require__(116)('WeakMap');
   4472 
   4473 /***/ }),
   4474 /* 116 */
   4475 /***/ (function(module, exports, __w_pdfjs_require__) {
   4476 
   4477 "use strict";
   4478 
   4479 
   4480 var $export = __w_pdfjs_require__(7);
   4481 
   4482 module.exports = function (COLLECTION) {
   4483  $export($export.S, COLLECTION, {
   4484    of: function of() {
   4485      var length = arguments.length;
   4486      var A = new Array(length);
   4487 
   4488      while (length--) {
   4489        A[length] = arguments[length];
   4490      }
   4491 
   4492      return new this(A);
   4493    }
   4494  });
   4495 };
   4496 
   4497 /***/ }),
   4498 /* 117 */
   4499 /***/ (function(module, exports, __w_pdfjs_require__) {
   4500 
   4501 "use strict";
   4502 
   4503 
   4504 __w_pdfjs_require__(118)('WeakMap');
   4505 
   4506 /***/ }),
   4507 /* 118 */
   4508 /***/ (function(module, exports, __w_pdfjs_require__) {
   4509 
   4510 "use strict";
   4511 
   4512 
   4513 var $export = __w_pdfjs_require__(7);
   4514 
   4515 var aFunction = __w_pdfjs_require__(27);
   4516 
   4517 var ctx = __w_pdfjs_require__(26);
   4518 
   4519 var forOf = __w_pdfjs_require__(89);
   4520 
   4521 module.exports = function (COLLECTION) {
   4522  $export($export.S, COLLECTION, {
   4523    from: function from(source) {
   4524      var mapFn = arguments[1];
   4525      var mapping, A, n, cb;
   4526      aFunction(this);
   4527      mapping = mapFn !== undefined;
   4528      if (mapping) aFunction(mapFn);
   4529      if (source == undefined) return new this();
   4530      A = [];
   4531 
   4532      if (mapping) {
   4533        n = 0;
   4534        cb = ctx(mapFn, arguments[2], 2);
   4535        forOf(source, false, function (nextItem) {
   4536          A.push(cb(nextItem, n++));
   4537        });
   4538      } else {
   4539        forOf(source, false, A.push, A);
   4540      }
   4541 
   4542      return new this(A);
   4543    }
   4544  });
   4545 };
   4546 
   4547 /***/ }),
   4548 /* 119 */
   4549 /***/ (function(module, exports, __w_pdfjs_require__) {
   4550 
   4551 "use strict";
   4552 
   4553 
   4554 __w_pdfjs_require__(83);
   4555 
   4556 __w_pdfjs_require__(84);
   4557 
   4558 __w_pdfjs_require__(120);
   4559 
   4560 __w_pdfjs_require__(121);
   4561 
   4562 __w_pdfjs_require__(122);
   4563 
   4564 module.exports = __w_pdfjs_require__(9).WeakSet;
   4565 
   4566 /***/ }),
   4567 /* 120 */
   4568 /***/ (function(module, exports, __w_pdfjs_require__) {
   4569 
   4570 "use strict";
   4571 
   4572 
   4573 var weak = __w_pdfjs_require__(109);
   4574 
   4575 var validate = __w_pdfjs_require__(110);
   4576 
   4577 var WEAK_SET = 'WeakSet';
   4578 
   4579 __w_pdfjs_require__(111)(WEAK_SET, function (get) {
   4580  return function WeakSet() {
   4581    return get(this, arguments.length > 0 ? arguments[0] : undefined);
   4582  };
   4583 }, {
   4584  add: function add(value) {
   4585    return weak.def(validate(this, WEAK_SET), value, true);
   4586  }
   4587 }, weak, false, true);
   4588 
   4589 /***/ }),
   4590 /* 121 */
   4591 /***/ (function(module, exports, __w_pdfjs_require__) {
   4592 
   4593 "use strict";
   4594 
   4595 
   4596 __w_pdfjs_require__(116)('WeakSet');
   4597 
   4598 /***/ }),
   4599 /* 122 */
   4600 /***/ (function(module, exports, __w_pdfjs_require__) {
   4601 
   4602 "use strict";
   4603 
   4604 
   4605 __w_pdfjs_require__(118)('WeakSet');
   4606 
   4607 /***/ }),
   4608 /* 123 */
   4609 /***/ (function(module, exports, __w_pdfjs_require__) {
   4610 
   4611 "use strict";
   4612 
   4613 
   4614 __w_pdfjs_require__(124);
   4615 
   4616 module.exports = __w_pdfjs_require__(9).String.codePointAt;
   4617 
   4618 /***/ }),
   4619 /* 124 */
   4620 /***/ (function(module, exports, __w_pdfjs_require__) {
   4621 
   4622 "use strict";
   4623 
   4624 
   4625 var $export = __w_pdfjs_require__(7);
   4626 
   4627 var $at = __w_pdfjs_require__(49)(false);
   4628 
   4629 $export($export.P, 'String', {
   4630  codePointAt: function codePointAt(pos) {
   4631    return $at(this, pos);
   4632  }
   4633 });
   4634 
   4635 /***/ }),
   4636 /* 125 */
   4637 /***/ (function(module, exports, __w_pdfjs_require__) {
   4638 
   4639 "use strict";
   4640 
   4641 
   4642 __w_pdfjs_require__(126);
   4643 
   4644 module.exports = __w_pdfjs_require__(9).String.fromCodePoint;
   4645 
   4646 /***/ }),
   4647 /* 126 */
   4648 /***/ (function(module, exports, __w_pdfjs_require__) {
   4649 
   4650 "use strict";
   4651 
   4652 
   4653 var $export = __w_pdfjs_require__(7);
   4654 
   4655 var toAbsoluteIndex = __w_pdfjs_require__(45);
   4656 
   4657 var fromCharCode = String.fromCharCode;
   4658 var $fromCodePoint = String.fromCodePoint;
   4659 $export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
   4660  fromCodePoint: function fromCodePoint(x) {
   4661    var res = [];
   4662    var aLen = arguments.length;
   4663    var i = 0;
   4664    var code;
   4665 
   4666    while (aLen > i) {
   4667      code = +arguments[i++];
   4668      if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');
   4669      res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00));
   4670    }
   4671 
   4672    return res.join('');
   4673  }
   4674 });
   4675 
   4676 /***/ }),
   4677 /* 127 */
   4678 /***/ (function(module, exports, __w_pdfjs_require__) {
   4679 
   4680 "use strict";
   4681 
   4682 
   4683 __w_pdfjs_require__(128);
   4684 
   4685 __w_pdfjs_require__(83);
   4686 
   4687 module.exports = __w_pdfjs_require__(9).Symbol;
   4688 
   4689 /***/ }),
   4690 /* 128 */
   4691 /***/ (function(module, exports, __w_pdfjs_require__) {
   4692 
   4693 "use strict";
   4694 
   4695 
   4696 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
   4697 
   4698 var global = __w_pdfjs_require__(8);
   4699 
   4700 var has = __w_pdfjs_require__(21);
   4701 
   4702 var DESCRIPTORS = __w_pdfjs_require__(15);
   4703 
   4704 var $export = __w_pdfjs_require__(7);
   4705 
   4706 var redefine = __w_pdfjs_require__(20);
   4707 
   4708 var META = __w_pdfjs_require__(108).KEY;
   4709 
   4710 var $fails = __w_pdfjs_require__(16);
   4711 
   4712 var shared = __w_pdfjs_require__(24);
   4713 
   4714 var setToStringTag = __w_pdfjs_require__(60);
   4715 
   4716 var uid = __w_pdfjs_require__(22);
   4717 
   4718 var wks = __w_pdfjs_require__(33);
   4719 
   4720 var wksExt = __w_pdfjs_require__(129);
   4721 
   4722 var wksDefine = __w_pdfjs_require__(130);
   4723 
   4724 var enumKeys = __w_pdfjs_require__(131);
   4725 
   4726 var isArray = __w_pdfjs_require__(107);
   4727 
   4728 var anObject = __w_pdfjs_require__(12);
   4729 
   4730 var isObject = __w_pdfjs_require__(13);
   4731 
   4732 var toObject = __w_pdfjs_require__(62);
   4733 
   4734 var toIObject = __w_pdfjs_require__(43);
   4735 
   4736 var toPrimitive = __w_pdfjs_require__(18);
   4737 
   4738 var createDesc = __w_pdfjs_require__(19);
   4739 
   4740 var _create = __w_pdfjs_require__(53);
   4741 
   4742 var gOPNExt = __w_pdfjs_require__(132);
   4743 
   4744 var $GOPD = __w_pdfjs_require__(114);
   4745 
   4746 var $GOPS = __w_pdfjs_require__(73);
   4747 
   4748 var $DP = __w_pdfjs_require__(11);
   4749 
   4750 var $keys = __w_pdfjs_require__(55);
   4751 
   4752 var gOPD = $GOPD.f;
   4753 var dP = $DP.f;
   4754 var gOPN = gOPNExt.f;
   4755 var $Symbol = global.Symbol;
   4756 var $JSON = global.JSON;
   4757 
   4758 var _stringify = $JSON && $JSON.stringify;
   4759 
   4760 var PROTOTYPE = 'prototype';
   4761 var HIDDEN = wks('_hidden');
   4762 var TO_PRIMITIVE = wks('toPrimitive');
   4763 var isEnum = {}.propertyIsEnumerable;
   4764 var SymbolRegistry = shared('symbol-registry');
   4765 var AllSymbols = shared('symbols');
   4766 var OPSymbols = shared('op-symbols');
   4767 var ObjectProto = Object[PROTOTYPE];
   4768 var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;
   4769 var QObject = global.QObject;
   4770 var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
   4771 var setSymbolDesc = DESCRIPTORS && $fails(function () {
   4772  return _create(dP({}, 'a', {
   4773    get: function get() {
   4774      return dP(this, 'a', {
   4775        value: 7
   4776      }).a;
   4777    }
   4778  })).a != 7;
   4779 }) ? function (it, key, D) {
   4780  var protoDesc = gOPD(ObjectProto, key);
   4781  if (protoDesc) delete ObjectProto[key];
   4782  dP(it, key, D);
   4783  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
   4784 } : dP;
   4785 
   4786 var wrap = function wrap(tag) {
   4787  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
   4788 
   4789  sym._k = tag;
   4790  return sym;
   4791 };
   4792 
   4793 var isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) {
   4794  return _typeof(it) == 'symbol';
   4795 } : function (it) {
   4796  return it instanceof $Symbol;
   4797 };
   4798 
   4799 var $defineProperty = function defineProperty(it, key, D) {
   4800  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
   4801  anObject(it);
   4802  key = toPrimitive(key, true);
   4803  anObject(D);
   4804 
   4805  if (has(AllSymbols, key)) {
   4806    if (!D.enumerable) {
   4807      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
   4808      it[HIDDEN][key] = true;
   4809    } else {
   4810      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
   4811      D = _create(D, {
   4812        enumerable: createDesc(0, false)
   4813      });
   4814    }
   4815 
   4816    return setSymbolDesc(it, key, D);
   4817  }
   4818 
   4819  return dP(it, key, D);
   4820 };
   4821 
   4822 var $defineProperties = function defineProperties(it, P) {
   4823  anObject(it);
   4824  var keys = enumKeys(P = toIObject(P));
   4825  var i = 0;
   4826  var l = keys.length;
   4827  var key;
   4828 
   4829  while (l > i) {
   4830    $defineProperty(it, key = keys[i++], P[key]);
   4831  }
   4832 
   4833  return it;
   4834 };
   4835 
   4836 var $create = function create(it, P) {
   4837  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
   4838 };
   4839 
   4840 var $propertyIsEnumerable = function propertyIsEnumerable(key) {
   4841  var E = isEnum.call(this, key = toPrimitive(key, true));
   4842  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
   4843  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
   4844 };
   4845 
   4846 var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
   4847  it = toIObject(it);
   4848  key = toPrimitive(key, true);
   4849  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
   4850  var D = gOPD(it, key);
   4851  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
   4852  return D;
   4853 };
   4854 
   4855 var $getOwnPropertyNames = function getOwnPropertyNames(it) {
   4856  var names = gOPN(toIObject(it));
   4857  var result = [];
   4858  var i = 0;
   4859  var key;
   4860 
   4861  while (names.length > i) {
   4862    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
   4863  }
   4864 
   4865  return result;
   4866 };
   4867 
   4868 var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
   4869  var IS_OP = it === ObjectProto;
   4870  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
   4871  var result = [];
   4872  var i = 0;
   4873  var key;
   4874 
   4875  while (names.length > i) {
   4876    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
   4877  }
   4878 
   4879  return result;
   4880 };
   4881 
   4882 if (!USE_NATIVE) {
   4883  $Symbol = function _Symbol() {
   4884    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
   4885    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
   4886 
   4887    var $set = function $set(value) {
   4888      if (this === ObjectProto) $set.call(OPSymbols, value);
   4889      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
   4890      setSymbolDesc(this, tag, createDesc(1, value));
   4891    };
   4892 
   4893    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, {
   4894      configurable: true,
   4895      set: $set
   4896    });
   4897    return wrap(tag);
   4898  };
   4899 
   4900  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
   4901    return this._k;
   4902  });
   4903  $GOPD.f = $getOwnPropertyDescriptor;
   4904  $DP.f = $defineProperty;
   4905  __w_pdfjs_require__(133).f = gOPNExt.f = $getOwnPropertyNames;
   4906  __w_pdfjs_require__(74).f = $propertyIsEnumerable;
   4907  $GOPS.f = $getOwnPropertySymbols;
   4908 
   4909  if (DESCRIPTORS && !__w_pdfjs_require__(25)) {
   4910    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
   4911  }
   4912 
   4913  wksExt.f = function (name) {
   4914    return wrap(wks(name));
   4915  };
   4916 }
   4917 
   4918 $export($export.G + $export.W + $export.F * !USE_NATIVE, {
   4919  Symbol: $Symbol
   4920 });
   4921 
   4922 for (var es6Symbols = 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) {
   4923  wks(es6Symbols[j++]);
   4924 }
   4925 
   4926 for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) {
   4927  wksDefine(wellKnownSymbols[k++]);
   4928 }
   4929 
   4930 $export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
   4931  'for': function _for(key) {
   4932    return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key);
   4933  },
   4934  keyFor: function keyFor(sym) {
   4935    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
   4936 
   4937    for (var key in SymbolRegistry) {
   4938      if (SymbolRegistry[key] === sym) return key;
   4939    }
   4940  },
   4941  useSetter: function useSetter() {
   4942    setter = true;
   4943  },
   4944  useSimple: function useSimple() {
   4945    setter = false;
   4946  }
   4947 });
   4948 $export($export.S + $export.F * !USE_NATIVE, 'Object', {
   4949  create: $create,
   4950  defineProperty: $defineProperty,
   4951  defineProperties: $defineProperties,
   4952  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
   4953  getOwnPropertyNames: $getOwnPropertyNames,
   4954  getOwnPropertySymbols: $getOwnPropertySymbols
   4955 });
   4956 var FAILS_ON_PRIMITIVES = $fails(function () {
   4957  $GOPS.f(1);
   4958 });
   4959 $export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
   4960  getOwnPropertySymbols: function getOwnPropertySymbols(it) {
   4961    return $GOPS.f(toObject(it));
   4962  }
   4963 });
   4964 $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
   4965  var S = $Symbol();
   4966  return _stringify([S]) != '[null]' || _stringify({
   4967    a: S
   4968  }) != '{}' || _stringify(Object(S)) != '{}';
   4969 })), 'JSON', {
   4970  stringify: function stringify(it) {
   4971    var args = [it];
   4972    var i = 1;
   4973    var replacer, $replacer;
   4974 
   4975    while (arguments.length > i) {
   4976      args.push(arguments[i++]);
   4977    }
   4978 
   4979    $replacer = replacer = args[1];
   4980    if (!isObject(replacer) && it === undefined || isSymbol(it)) return;
   4981    if (!isArray(replacer)) replacer = function replacer(key, value) {
   4982      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
   4983      if (!isSymbol(value)) return value;
   4984    };
   4985    args[1] = replacer;
   4986    return _stringify.apply($JSON, args);
   4987  }
   4988 });
   4989 $Symbol[PROTOTYPE][TO_PRIMITIVE] || __w_pdfjs_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
   4990 setToStringTag($Symbol, 'Symbol');
   4991 setToStringTag(Math, 'Math', true);
   4992 setToStringTag(global.JSON, 'JSON', true);
   4993 
   4994 /***/ }),
   4995 /* 129 */
   4996 /***/ (function(module, exports, __w_pdfjs_require__) {
   4997 
   4998 "use strict";
   4999 
   5000 
   5001 exports.f = __w_pdfjs_require__(33);
   5002 
   5003 /***/ }),
   5004 /* 130 */
   5005 /***/ (function(module, exports, __w_pdfjs_require__) {
   5006 
   5007 "use strict";
   5008 
   5009 
   5010 var global = __w_pdfjs_require__(8);
   5011 
   5012 var core = __w_pdfjs_require__(9);
   5013 
   5014 var LIBRARY = __w_pdfjs_require__(25);
   5015 
   5016 var wksExt = __w_pdfjs_require__(129);
   5017 
   5018 var defineProperty = __w_pdfjs_require__(11).f;
   5019 
   5020 module.exports = function (name) {
   5021  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
   5022  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, {
   5023    value: wksExt.f(name)
   5024  });
   5025 };
   5026 
   5027 /***/ }),
   5028 /* 131 */
   5029 /***/ (function(module, exports, __w_pdfjs_require__) {
   5030 
   5031 "use strict";
   5032 
   5033 
   5034 var getKeys = __w_pdfjs_require__(55);
   5035 
   5036 var gOPS = __w_pdfjs_require__(73);
   5037 
   5038 var pIE = __w_pdfjs_require__(74);
   5039 
   5040 module.exports = function (it) {
   5041  var result = getKeys(it);
   5042  var getSymbols = gOPS.f;
   5043 
   5044  if (getSymbols) {
   5045    var symbols = getSymbols(it);
   5046    var isEnum = pIE.f;
   5047    var i = 0;
   5048    var key;
   5049 
   5050    while (symbols.length > i) {
   5051      if (isEnum.call(it, key = symbols[i++])) result.push(key);
   5052    }
   5053  }
   5054 
   5055  return result;
   5056 };
   5057 
   5058 /***/ }),
   5059 /* 132 */
   5060 /***/ (function(module, exports, __w_pdfjs_require__) {
   5061 
   5062 "use strict";
   5063 
   5064 
   5065 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
   5066 
   5067 var toIObject = __w_pdfjs_require__(43);
   5068 
   5069 var gOPN = __w_pdfjs_require__(133).f;
   5070 
   5071 var toString = {}.toString;
   5072 var windowNames = (typeof window === "undefined" ? "undefined" : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
   5073 
   5074 var getWindowNames = function getWindowNames(it) {
   5075  try {
   5076    return gOPN(it);
   5077  } catch (e) {
   5078    return windowNames.slice();
   5079  }
   5080 };
   5081 
   5082 module.exports.f = function getOwnPropertyNames(it) {
   5083  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
   5084 };
   5085 
   5086 /***/ }),
   5087 /* 133 */
   5088 /***/ (function(module, exports, __w_pdfjs_require__) {
   5089 
   5090 "use strict";
   5091 
   5092 
   5093 var $keys = __w_pdfjs_require__(56);
   5094 
   5095 var hiddenKeys = __w_pdfjs_require__(58).concat('length', 'prototype');
   5096 
   5097 exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
   5098  return $keys(O, hiddenKeys);
   5099 };
   5100 
   5101 /***/ }),
   5102 /* 134 */
   5103 /***/ (function(module, exports, __w_pdfjs_require__) {
   5104 
   5105 "use strict";
   5106 
   5107 
   5108 __w_pdfjs_require__(135);
   5109 
   5110 module.exports = __w_pdfjs_require__(9).String.padStart;
   5111 
   5112 /***/ }),
   5113 /* 135 */
   5114 /***/ (function(module, exports, __w_pdfjs_require__) {
   5115 
   5116 "use strict";
   5117 
   5118 
   5119 var $export = __w_pdfjs_require__(7);
   5120 
   5121 var $pad = __w_pdfjs_require__(136);
   5122 
   5123 var userAgent = __w_pdfjs_require__(96);
   5124 
   5125 var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);
   5126 $export($export.P + $export.F * WEBKIT_BUG, 'String', {
   5127  padStart: function padStart(maxLength) {
   5128    return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
   5129  }
   5130 });
   5131 
   5132 /***/ }),
   5133 /* 136 */
   5134 /***/ (function(module, exports, __w_pdfjs_require__) {
   5135 
   5136 "use strict";
   5137 
   5138 
   5139 var toLength = __w_pdfjs_require__(28);
   5140 
   5141 var repeat = __w_pdfjs_require__(137);
   5142 
   5143 var defined = __w_pdfjs_require__(34);
   5144 
   5145 module.exports = function (that, maxLength, fillString, left) {
   5146  var S = String(defined(that));
   5147  var stringLength = S.length;
   5148  var fillStr = fillString === undefined ? ' ' : String(fillString);
   5149  var intMaxLength = toLength(maxLength);
   5150  if (intMaxLength <= stringLength || fillStr == '') return S;
   5151  var fillLen = intMaxLength - stringLength;
   5152  var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
   5153  if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);
   5154  return left ? stringFiller + S : S + stringFiller;
   5155 };
   5156 
   5157 /***/ }),
   5158 /* 137 */
   5159 /***/ (function(module, exports, __w_pdfjs_require__) {
   5160 
   5161 "use strict";
   5162 
   5163 
   5164 var toInteger = __w_pdfjs_require__(29);
   5165 
   5166 var defined = __w_pdfjs_require__(34);
   5167 
   5168 module.exports = function repeat(count) {
   5169  var str = String(defined(this));
   5170  var res = '';
   5171  var n = toInteger(count);
   5172  if (n < 0 || n == Infinity) throw RangeError("Count can't be negative");
   5173 
   5174  for (; n > 0; (n >>>= 1) && (str += str)) {
   5175    if (n & 1) res += str;
   5176  }
   5177 
   5178  return res;
   5179 };
   5180 
   5181 /***/ }),
   5182 /* 138 */
   5183 /***/ (function(module, exports, __w_pdfjs_require__) {
   5184 
   5185 "use strict";
   5186 
   5187 
   5188 __w_pdfjs_require__(139);
   5189 
   5190 module.exports = __w_pdfjs_require__(9).String.padEnd;
   5191 
   5192 /***/ }),
   5193 /* 139 */
   5194 /***/ (function(module, exports, __w_pdfjs_require__) {
   5195 
   5196 "use strict";
   5197 
   5198 
   5199 var $export = __w_pdfjs_require__(7);
   5200 
   5201 var $pad = __w_pdfjs_require__(136);
   5202 
   5203 var userAgent = __w_pdfjs_require__(96);
   5204 
   5205 var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);
   5206 $export($export.P + $export.F * WEBKIT_BUG, 'String', {
   5207  padEnd: function padEnd(maxLength) {
   5208    return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
   5209  }
   5210 });
   5211 
   5212 /***/ }),
   5213 /* 140 */
   5214 /***/ (function(module, exports, __w_pdfjs_require__) {
   5215 
   5216 "use strict";
   5217 
   5218 
   5219 __w_pdfjs_require__(141);
   5220 
   5221 module.exports = __w_pdfjs_require__(9).Object.values;
   5222 
   5223 /***/ }),
   5224 /* 141 */
   5225 /***/ (function(module, exports, __w_pdfjs_require__) {
   5226 
   5227 "use strict";
   5228 
   5229 
   5230 var $export = __w_pdfjs_require__(7);
   5231 
   5232 var $values = __w_pdfjs_require__(142)(false);
   5233 
   5234 $export($export.S, 'Object', {
   5235  values: function values(it) {
   5236    return $values(it);
   5237  }
   5238 });
   5239 
   5240 /***/ }),
   5241 /* 142 */
   5242 /***/ (function(module, exports, __w_pdfjs_require__) {
   5243 
   5244 "use strict";
   5245 
   5246 
   5247 var DESCRIPTORS = __w_pdfjs_require__(15);
   5248 
   5249 var getKeys = __w_pdfjs_require__(55);
   5250 
   5251 var toIObject = __w_pdfjs_require__(43);
   5252 
   5253 var isEnum = __w_pdfjs_require__(74).f;
   5254 
   5255 module.exports = function (isEntries) {
   5256  return function (it) {
   5257    var O = toIObject(it);
   5258    var keys = getKeys(O);
   5259    var length = keys.length;
   5260    var i = 0;
   5261    var result = [];
   5262    var key;
   5263 
   5264    while (length > i) {
   5265      key = keys[i++];
   5266 
   5267      if (!DESCRIPTORS || isEnum.call(O, key)) {
   5268        result.push(isEntries ? [key, O[key]] : O[key]);
   5269      }
   5270    }
   5271 
   5272    return result;
   5273  };
   5274 };
   5275 
   5276 /***/ }),
   5277 /* 143 */
   5278 /***/ (function(module, exports, __w_pdfjs_require__) {
   5279 
   5280 "use strict";
   5281 
   5282 
   5283 {
   5284  var isReadableStreamSupported = false;
   5285 
   5286  if (typeof ReadableStream !== 'undefined') {
   5287    try {
   5288      new ReadableStream({
   5289        start: function start(controller) {
   5290          controller.close();
   5291        }
   5292      });
   5293      isReadableStreamSupported = true;
   5294    } catch (e) {}
   5295  }
   5296 
   5297  if (isReadableStreamSupported) {
   5298    exports.ReadableStream = ReadableStream;
   5299  } else {
   5300    exports.ReadableStream = __w_pdfjs_require__(144).ReadableStream;
   5301  }
   5302 }
   5303 
   5304 /***/ }),
   5305 /* 144 */
   5306 /***/ (function(module, exports, __w_pdfjs_require__) {
   5307 
   5308 "use strict";
   5309 
   5310 
   5311 function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
   5312 
   5313 (function (e, a) {
   5314  for (var i in a) {
   5315    e[i] = a[i];
   5316  }
   5317 })(exports, function (modules) {
   5318  var installedModules = {};
   5319 
   5320  function __w_pdfjs_require__(moduleId) {
   5321    if (installedModules[moduleId]) return installedModules[moduleId].exports;
   5322    var module = installedModules[moduleId] = {
   5323      i: moduleId,
   5324      l: false,
   5325      exports: {}
   5326    };
   5327    modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);
   5328    module.l = true;
   5329    return module.exports;
   5330  }
   5331 
   5332  __w_pdfjs_require__.m = modules;
   5333  __w_pdfjs_require__.c = installedModules;
   5334 
   5335  __w_pdfjs_require__.i = function (value) {
   5336    return value;
   5337  };
   5338 
   5339  __w_pdfjs_require__.d = function (exports, name, getter) {
   5340    if (!__w_pdfjs_require__.o(exports, name)) {
   5341      Object.defineProperty(exports, name, {
   5342        configurable: false,
   5343        enumerable: true,
   5344        get: getter
   5345      });
   5346    }
   5347  };
   5348 
   5349  __w_pdfjs_require__.n = function (module) {
   5350    var getter = module && module.__esModule ? function getDefault() {
   5351      return module['default'];
   5352    } : function getModuleExports() {
   5353      return module;
   5354    };
   5355 
   5356    __w_pdfjs_require__.d(getter, 'a', getter);
   5357 
   5358    return getter;
   5359  };
   5360 
   5361  __w_pdfjs_require__.o = function (object, property) {
   5362    return Object.prototype.hasOwnProperty.call(object, property);
   5363  };
   5364 
   5365  __w_pdfjs_require__.p = "";
   5366  return __w_pdfjs_require__(__w_pdfjs_require__.s = 7);
   5367 }([function (module, exports, __w_pdfjs_require__) {
   5368  "use strict";
   5369 
   5370  var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) {
   5371    return _typeof2(obj);
   5372  } : function (obj) {
   5373    return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj);
   5374  };
   5375 
   5376  var _require = __w_pdfjs_require__(1),
   5377      assert = _require.assert;
   5378 
   5379  function IsPropertyKey(argument) {
   5380    return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol';
   5381  }
   5382 
   5383  exports.typeIsObject = function (x) {
   5384    return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function';
   5385  };
   5386 
   5387  exports.createDataProperty = function (o, p, v) {
   5388    assert(exports.typeIsObject(o));
   5389    Object.defineProperty(o, p, {
   5390      value: v,
   5391      writable: true,
   5392      enumerable: true,
   5393      configurable: true
   5394    });
   5395  };
   5396 
   5397  exports.createArrayFromList = function (elements) {
   5398    return elements.slice();
   5399  };
   5400 
   5401  exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) {
   5402    new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);
   5403  };
   5404 
   5405  exports.CreateIterResultObject = function (value, done) {
   5406    assert(typeof done === 'boolean');
   5407    var obj = {};
   5408    Object.defineProperty(obj, 'value', {
   5409      value: value,
   5410      enumerable: true,
   5411      writable: true,
   5412      configurable: true
   5413    });
   5414    Object.defineProperty(obj, 'done', {
   5415      value: done,
   5416      enumerable: true,
   5417      writable: true,
   5418      configurable: true
   5419    });
   5420    return obj;
   5421  };
   5422 
   5423  exports.IsFiniteNonNegativeNumber = function (v) {
   5424    if (Number.isNaN(v)) {
   5425      return false;
   5426    }
   5427 
   5428    if (v === Infinity) {
   5429      return false;
   5430    }
   5431 
   5432    if (v < 0) {
   5433      return false;
   5434    }
   5435 
   5436    return true;
   5437  };
   5438 
   5439  function Call(F, V, args) {
   5440    if (typeof F !== 'function') {
   5441      throw new TypeError('Argument is not a function');
   5442    }
   5443 
   5444    return Function.prototype.apply.call(F, V, args);
   5445  }
   5446 
   5447  exports.InvokeOrNoop = function (O, P, args) {
   5448    assert(O !== undefined);
   5449    assert(IsPropertyKey(P));
   5450    assert(Array.isArray(args));
   5451    var method = O[P];
   5452 
   5453    if (method === undefined) {
   5454      return undefined;
   5455    }
   5456 
   5457    return Call(method, O, args);
   5458  };
   5459 
   5460  exports.PromiseInvokeOrNoop = function (O, P, args) {
   5461    assert(O !== undefined);
   5462    assert(IsPropertyKey(P));
   5463    assert(Array.isArray(args));
   5464 
   5465    try {
   5466      return Promise.resolve(exports.InvokeOrNoop(O, P, args));
   5467    } catch (returnValueE) {
   5468      return Promise.reject(returnValueE);
   5469    }
   5470  };
   5471 
   5472  exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) {
   5473    assert(O !== undefined);
   5474    assert(IsPropertyKey(P));
   5475    assert(Array.isArray(args));
   5476    assert(Array.isArray(argsF));
   5477    var method = void 0;
   5478 
   5479    try {
   5480      method = O[P];
   5481    } catch (methodE) {
   5482      return Promise.reject(methodE);
   5483    }
   5484 
   5485    if (method === undefined) {
   5486      return F.apply(null, argsF);
   5487    }
   5488 
   5489    try {
   5490      return Promise.resolve(Call(method, O, args));
   5491    } catch (e) {
   5492      return Promise.reject(e);
   5493    }
   5494  };
   5495 
   5496  exports.TransferArrayBuffer = function (O) {
   5497    return O.slice();
   5498  };
   5499 
   5500  exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) {
   5501    highWaterMark = Number(highWaterMark);
   5502 
   5503    if (Number.isNaN(highWaterMark) || highWaterMark < 0) {
   5504      throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');
   5505    }
   5506 
   5507    return highWaterMark;
   5508  };
   5509 
   5510  exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) {
   5511    if (size !== undefined && typeof size !== 'function') {
   5512      throw new TypeError('size property of a queuing strategy must be a function');
   5513    }
   5514 
   5515    highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark);
   5516    return {
   5517      size: size,
   5518      highWaterMark: highWaterMark
   5519    };
   5520  };
   5521 }, function (module, exports, __w_pdfjs_require__) {
   5522  "use strict";
   5523 
   5524  function rethrowAssertionErrorRejection(e) {
   5525    if (e && e.constructor === AssertionError) {
   5526      setTimeout(function () {
   5527        throw e;
   5528      }, 0);
   5529    }
   5530  }
   5531 
   5532  function AssertionError(message) {
   5533    this.name = 'AssertionError';
   5534    this.message = message || '';
   5535    this.stack = new Error().stack;
   5536  }
   5537 
   5538  AssertionError.prototype = Object.create(Error.prototype);
   5539  AssertionError.prototype.constructor = AssertionError;
   5540 
   5541  function assert(value, message) {
   5542    if (!value) {
   5543      throw new AssertionError(message);
   5544    }
   5545  }
   5546 
   5547  module.exports = {
   5548    rethrowAssertionErrorRejection: rethrowAssertionErrorRejection,
   5549    AssertionError: AssertionError,
   5550    assert: assert
   5551  };
   5552 }, function (module, exports, __w_pdfjs_require__) {
   5553  "use strict";
   5554 
   5555  var _createClass = function () {
   5556    function defineProperties(target, props) {
   5557      for (var i = 0; i < props.length; i++) {
   5558        var descriptor = props[i];
   5559        descriptor.enumerable = descriptor.enumerable || false;
   5560        descriptor.configurable = true;
   5561        if ("value" in descriptor) descriptor.writable = true;
   5562        Object.defineProperty(target, descriptor.key, descriptor);
   5563      }
   5564    }
   5565 
   5566    return function (Constructor, protoProps, staticProps) {
   5567      if (protoProps) defineProperties(Constructor.prototype, protoProps);
   5568      if (staticProps) defineProperties(Constructor, staticProps);
   5569      return Constructor;
   5570    };
   5571  }();
   5572 
   5573  function _classCallCheck(instance, Constructor) {
   5574    if (!(instance instanceof Constructor)) {
   5575      throw new TypeError("Cannot call a class as a function");
   5576    }
   5577  }
   5578 
   5579  var _require = __w_pdfjs_require__(0),
   5580      InvokeOrNoop = _require.InvokeOrNoop,
   5581      PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,
   5582      ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,
   5583      typeIsObject = _require.typeIsObject;
   5584 
   5585  var _require2 = __w_pdfjs_require__(1),
   5586      assert = _require2.assert,
   5587      rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection;
   5588 
   5589  var _require3 = __w_pdfjs_require__(3),
   5590      DequeueValue = _require3.DequeueValue,
   5591      EnqueueValueWithSize = _require3.EnqueueValueWithSize,
   5592      PeekQueueValue = _require3.PeekQueueValue,
   5593      ResetQueue = _require3.ResetQueue;
   5594 
   5595  var WritableStream = function () {
   5596    function WritableStream() {
   5597      var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
   5598 
   5599      var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
   5600          size = _ref.size,
   5601          _ref$highWaterMark = _ref.highWaterMark,
   5602          highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark;
   5603 
   5604      _classCallCheck(this, WritableStream);
   5605 
   5606      this._state = 'writable';
   5607      this._storedError = undefined;
   5608      this._writer = undefined;
   5609      this._writableStreamController = undefined;
   5610      this._writeRequests = [];
   5611      this._inFlightWriteRequest = undefined;
   5612      this._closeRequest = undefined;
   5613      this._inFlightCloseRequest = undefined;
   5614      this._pendingAbortRequest = undefined;
   5615      this._backpressure = false;
   5616      var type = underlyingSink.type;
   5617 
   5618      if (type !== undefined) {
   5619        throw new RangeError('Invalid type is specified');
   5620      }
   5621 
   5622      this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark);
   5623 
   5624      this._writableStreamController.__startSteps();
   5625    }
   5626 
   5627    _createClass(WritableStream, [{
   5628      key: 'abort',
   5629      value: function abort(reason) {
   5630        if (IsWritableStream(this) === false) {
   5631          return Promise.reject(streamBrandCheckException('abort'));
   5632        }
   5633 
   5634        if (IsWritableStreamLocked(this) === true) {
   5635          return Promise.reject(new TypeError('Cannot abort a stream that already has a writer'));
   5636        }
   5637 
   5638        return WritableStreamAbort(this, reason);
   5639      }
   5640    }, {
   5641      key: 'getWriter',
   5642      value: function getWriter() {
   5643        if (IsWritableStream(this) === false) {
   5644          throw streamBrandCheckException('getWriter');
   5645        }
   5646 
   5647        return AcquireWritableStreamDefaultWriter(this);
   5648      }
   5649    }, {
   5650      key: 'locked',
   5651      get: function get() {
   5652        if (IsWritableStream(this) === false) {
   5653          throw streamBrandCheckException('locked');
   5654        }
   5655 
   5656        return IsWritableStreamLocked(this);
   5657      }
   5658    }]);
   5659 
   5660    return WritableStream;
   5661  }();
   5662 
   5663  module.exports = {
   5664    AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter,
   5665    IsWritableStream: IsWritableStream,
   5666    IsWritableStreamLocked: IsWritableStreamLocked,
   5667    WritableStream: WritableStream,
   5668    WritableStreamAbort: WritableStreamAbort,
   5669    WritableStreamDefaultControllerError: WritableStreamDefaultControllerError,
   5670    WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation,
   5671    WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease,
   5672    WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite,
   5673    WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight
   5674  };
   5675 
   5676  function AcquireWritableStreamDefaultWriter(stream) {
   5677    return new WritableStreamDefaultWriter(stream);
   5678  }
   5679 
   5680  function IsWritableStream(x) {
   5681    if (!typeIsObject(x)) {
   5682      return false;
   5683    }
   5684 
   5685    if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {
   5686      return false;
   5687    }
   5688 
   5689    return true;
   5690  }
   5691 
   5692  function IsWritableStreamLocked(stream) {
   5693    assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams');
   5694 
   5695    if (stream._writer === undefined) {
   5696      return false;
   5697    }
   5698 
   5699    return true;
   5700  }
   5701 
   5702  function WritableStreamAbort(stream, reason) {
   5703    var state = stream._state;
   5704 
   5705    if (state === 'closed') {
   5706      return Promise.resolve(undefined);
   5707    }
   5708 
   5709    if (state === 'errored') {
   5710      return Promise.reject(stream._storedError);
   5711    }
   5712 
   5713    var error = new TypeError('Requested to abort');
   5714 
   5715    if (stream._pendingAbortRequest !== undefined) {
   5716      return Promise.reject(error);
   5717    }
   5718 
   5719    assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring');
   5720    var wasAlreadyErroring = false;
   5721 
   5722    if (state === 'erroring') {
   5723      wasAlreadyErroring = true;
   5724      reason = undefined;
   5725    }
   5726 
   5727    var promise = new Promise(function (resolve, reject) {
   5728      stream._pendingAbortRequest = {
   5729        _resolve: resolve,
   5730        _reject: reject,
   5731        _reason: reason,
   5732        _wasAlreadyErroring: wasAlreadyErroring
   5733      };
   5734    });
   5735 
   5736    if (wasAlreadyErroring === false) {
   5737      WritableStreamStartErroring(stream, error);
   5738    }
   5739 
   5740    return promise;
   5741  }
   5742 
   5743  function WritableStreamAddWriteRequest(stream) {
   5744    assert(IsWritableStreamLocked(stream) === true);
   5745    assert(stream._state === 'writable');
   5746    var promise = new Promise(function (resolve, reject) {
   5747      var writeRequest = {
   5748        _resolve: resolve,
   5749        _reject: reject
   5750      };
   5751 
   5752      stream._writeRequests.push(writeRequest);
   5753    });
   5754    return promise;
   5755  }
   5756 
   5757  function WritableStreamDealWithRejection(stream, error) {
   5758    var state = stream._state;
   5759 
   5760    if (state === 'writable') {
   5761      WritableStreamStartErroring(stream, error);
   5762      return;
   5763    }
   5764 
   5765    assert(state === 'erroring');
   5766    WritableStreamFinishErroring(stream);
   5767  }
   5768 
   5769  function WritableStreamStartErroring(stream, reason) {
   5770    assert(stream._storedError === undefined, 'stream._storedError === undefined');
   5771    assert(stream._state === 'writable', 'state must be writable');
   5772    var controller = stream._writableStreamController;
   5773    assert(controller !== undefined, 'controller must not be undefined');
   5774    stream._state = 'erroring';
   5775    stream._storedError = reason;
   5776    var writer = stream._writer;
   5777 
   5778    if (writer !== undefined) {
   5779      WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);
   5780    }
   5781 
   5782    if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {
   5783      WritableStreamFinishErroring(stream);
   5784    }
   5785  }
   5786 
   5787  function WritableStreamFinishErroring(stream) {
   5788    assert(stream._state === 'erroring', 'stream._state === erroring');
   5789    assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false');
   5790    stream._state = 'errored';
   5791 
   5792    stream._writableStreamController.__errorSteps();
   5793 
   5794    var storedError = stream._storedError;
   5795 
   5796    for (var i = 0; i < stream._writeRequests.length; i++) {
   5797      var writeRequest = stream._writeRequests[i];
   5798 
   5799      writeRequest._reject(storedError);
   5800    }
   5801 
   5802    stream._writeRequests = [];
   5803 
   5804    if (stream._pendingAbortRequest === undefined) {
   5805      WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
   5806      return;
   5807    }
   5808 
   5809    var abortRequest = stream._pendingAbortRequest;
   5810    stream._pendingAbortRequest = undefined;
   5811 
   5812    if (abortRequest._wasAlreadyErroring === true) {
   5813      abortRequest._reject(storedError);
   5814 
   5815      WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
   5816      return;
   5817    }
   5818 
   5819    var promise = stream._writableStreamController.__abortSteps(abortRequest._reason);
   5820 
   5821    promise.then(function () {
   5822      abortRequest._resolve();
   5823 
   5824      WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
   5825    }, function (reason) {
   5826      abortRequest._reject(reason);
   5827 
   5828      WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
   5829    });
   5830  }
   5831 
   5832  function WritableStreamFinishInFlightWrite(stream) {
   5833    assert(stream._inFlightWriteRequest !== undefined);
   5834 
   5835    stream._inFlightWriteRequest._resolve(undefined);
   5836 
   5837    stream._inFlightWriteRequest = undefined;
   5838  }
   5839 
   5840  function WritableStreamFinishInFlightWriteWithError(stream, error) {
   5841    assert(stream._inFlightWriteRequest !== undefined);
   5842 
   5843    stream._inFlightWriteRequest._reject(error);
   5844 
   5845    stream._inFlightWriteRequest = undefined;
   5846    assert(stream._state === 'writable' || stream._state === 'erroring');
   5847    WritableStreamDealWithRejection(stream, error);
   5848  }
   5849 
   5850  function WritableStreamFinishInFlightClose(stream) {
   5851    assert(stream._inFlightCloseRequest !== undefined);
   5852 
   5853    stream._inFlightCloseRequest._resolve(undefined);
   5854 
   5855    stream._inFlightCloseRequest = undefined;
   5856    var state = stream._state;
   5857    assert(state === 'writable' || state === 'erroring');
   5858 
   5859    if (state === 'erroring') {
   5860      stream._storedError = undefined;
   5861 
   5862      if (stream._pendingAbortRequest !== undefined) {
   5863        stream._pendingAbortRequest._resolve();
   5864 
   5865        stream._pendingAbortRequest = undefined;
   5866      }
   5867    }
   5868 
   5869    stream._state = 'closed';
   5870    var writer = stream._writer;
   5871 
   5872    if (writer !== undefined) {
   5873      defaultWriterClosedPromiseResolve(writer);
   5874    }
   5875 
   5876    assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined');
   5877    assert(stream._storedError === undefined, 'stream._storedError === undefined');
   5878  }
   5879 
   5880  function WritableStreamFinishInFlightCloseWithError(stream, error) {
   5881    assert(stream._inFlightCloseRequest !== undefined);
   5882 
   5883    stream._inFlightCloseRequest._reject(error);
   5884 
   5885    stream._inFlightCloseRequest = undefined;
   5886    assert(stream._state === 'writable' || stream._state === 'erroring');
   5887 
   5888    if (stream._pendingAbortRequest !== undefined) {
   5889      stream._pendingAbortRequest._reject(error);
   5890 
   5891      stream._pendingAbortRequest = undefined;
   5892    }
   5893 
   5894    WritableStreamDealWithRejection(stream, error);
   5895  }
   5896 
   5897  function WritableStreamCloseQueuedOrInFlight(stream) {
   5898    if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {
   5899      return false;
   5900    }
   5901 
   5902    return true;
   5903  }
   5904 
   5905  function WritableStreamHasOperationMarkedInFlight(stream) {
   5906    if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {
   5907      return false;
   5908    }
   5909 
   5910    return true;
   5911  }
   5912 
   5913  function WritableStreamMarkCloseRequestInFlight(stream) {
   5914    assert(stream._inFlightCloseRequest === undefined);
   5915    assert(stream._closeRequest !== undefined);
   5916    stream._inFlightCloseRequest = stream._closeRequest;
   5917    stream._closeRequest = undefined;
   5918  }
   5919 
   5920  function WritableStreamMarkFirstWriteRequestInFlight(stream) {
   5921    assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request');
   5922    assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty');
   5923    stream._inFlightWriteRequest = stream._writeRequests.shift();
   5924  }
   5925 
   5926  function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {
   5927    assert(stream._state === 'errored', '_stream_.[[state]] is `"errored"`');
   5928 
   5929    if (stream._closeRequest !== undefined) {
   5930      assert(stream._inFlightCloseRequest === undefined);
   5931 
   5932      stream._closeRequest._reject(stream._storedError);
   5933 
   5934      stream._closeRequest = undefined;
   5935    }
   5936 
   5937    var writer = stream._writer;
   5938 
   5939    if (writer !== undefined) {
   5940      defaultWriterClosedPromiseReject(writer, stream._storedError);
   5941 
   5942      writer._closedPromise["catch"](function () {});
   5943    }
   5944  }
   5945 
   5946  function WritableStreamUpdateBackpressure(stream, backpressure) {
   5947    assert(stream._state === 'writable');
   5948    assert(WritableStreamCloseQueuedOrInFlight(stream) === false);
   5949    var writer = stream._writer;
   5950 
   5951    if (writer !== undefined && backpressure !== stream._backpressure) {
   5952      if (backpressure === true) {
   5953        defaultWriterReadyPromiseReset(writer);
   5954      } else {
   5955        assert(backpressure === false);
   5956        defaultWriterReadyPromiseResolve(writer);
   5957      }
   5958    }
   5959 
   5960    stream._backpressure = backpressure;
   5961  }
   5962 
   5963  var WritableStreamDefaultWriter = function () {
   5964    function WritableStreamDefaultWriter(stream) {
   5965      _classCallCheck(this, WritableStreamDefaultWriter);
   5966 
   5967      if (IsWritableStream(stream) === false) {
   5968        throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');
   5969      }
   5970 
   5971      if (IsWritableStreamLocked(stream) === true) {
   5972        throw new TypeError('This stream has already been locked for exclusive writing by another writer');
   5973      }
   5974 
   5975      this._ownerWritableStream = stream;
   5976      stream._writer = this;
   5977      var state = stream._state;
   5978 
   5979      if (state === 'writable') {
   5980        if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {
   5981          defaultWriterReadyPromiseInitialize(this);
   5982        } else {
   5983          defaultWriterReadyPromiseInitializeAsResolved(this);
   5984        }
   5985 
   5986        defaultWriterClosedPromiseInitialize(this);
   5987      } else if (state === 'erroring') {
   5988        defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);
   5989 
   5990        this._readyPromise["catch"](function () {});
   5991 
   5992        defaultWriterClosedPromiseInitialize(this);
   5993      } else if (state === 'closed') {
   5994        defaultWriterReadyPromiseInitializeAsResolved(this);
   5995        defaultWriterClosedPromiseInitializeAsResolved(this);
   5996      } else {
   5997        assert(state === 'errored', 'state must be errored');
   5998        var storedError = stream._storedError;
   5999        defaultWriterReadyPromiseInitializeAsRejected(this, storedError);
   6000 
   6001        this._readyPromise["catch"](function () {});
   6002 
   6003        defaultWriterClosedPromiseInitializeAsRejected(this, storedError);
   6004 
   6005        this._closedPromise["catch"](function () {});
   6006      }
   6007    }
   6008 
   6009    _createClass(WritableStreamDefaultWriter, [{
   6010      key: 'abort',
   6011      value: function abort(reason) {
   6012        if (IsWritableStreamDefaultWriter(this) === false) {
   6013          return Promise.reject(defaultWriterBrandCheckException('abort'));
   6014        }
   6015 
   6016        if (this._ownerWritableStream === undefined) {
   6017          return Promise.reject(defaultWriterLockException('abort'));
   6018        }
   6019 
   6020        return WritableStreamDefaultWriterAbort(this, reason);
   6021      }
   6022    }, {
   6023      key: 'close',
   6024      value: function close() {
   6025        if (IsWritableStreamDefaultWriter(this) === false) {
   6026          return Promise.reject(defaultWriterBrandCheckException('close'));
   6027        }
   6028 
   6029        var stream = this._ownerWritableStream;
   6030 
   6031        if (stream === undefined) {
   6032          return Promise.reject(defaultWriterLockException('close'));
   6033        }
   6034 
   6035        if (WritableStreamCloseQueuedOrInFlight(stream) === true) {
   6036          return Promise.reject(new TypeError('cannot close an already-closing stream'));
   6037        }
   6038 
   6039        return WritableStreamDefaultWriterClose(this);
   6040      }
   6041    }, {
   6042      key: 'releaseLock',
   6043      value: function releaseLock() {
   6044        if (IsWritableStreamDefaultWriter(this) === false) {
   6045          throw defaultWriterBrandCheckException('releaseLock');
   6046        }
   6047 
   6048        var stream = this._ownerWritableStream;
   6049 
   6050        if (stream === undefined) {
   6051          return;
   6052        }
   6053 
   6054        assert(stream._writer !== undefined);
   6055        WritableStreamDefaultWriterRelease(this);
   6056      }
   6057    }, {
   6058      key: 'write',
   6059      value: function write(chunk) {
   6060        if (IsWritableStreamDefaultWriter(this) === false) {
   6061          return Promise.reject(defaultWriterBrandCheckException('write'));
   6062        }
   6063 
   6064        if (this._ownerWritableStream === undefined) {
   6065          return Promise.reject(defaultWriterLockException('write to'));
   6066        }
   6067 
   6068        return WritableStreamDefaultWriterWrite(this, chunk);
   6069      }
   6070    }, {
   6071      key: 'closed',
   6072      get: function get() {
   6073        if (IsWritableStreamDefaultWriter(this) === false) {
   6074          return Promise.reject(defaultWriterBrandCheckException('closed'));
   6075        }
   6076 
   6077        return this._closedPromise;
   6078      }
   6079    }, {
   6080      key: 'desiredSize',
   6081      get: function get() {
   6082        if (IsWritableStreamDefaultWriter(this) === false) {
   6083          throw defaultWriterBrandCheckException('desiredSize');
   6084        }
   6085 
   6086        if (this._ownerWritableStream === undefined) {
   6087          throw defaultWriterLockException('desiredSize');
   6088        }
   6089 
   6090        return WritableStreamDefaultWriterGetDesiredSize(this);
   6091      }
   6092    }, {
   6093      key: 'ready',
   6094      get: function get() {
   6095        if (IsWritableStreamDefaultWriter(this) === false) {
   6096          return Promise.reject(defaultWriterBrandCheckException('ready'));
   6097        }
   6098 
   6099        return this._readyPromise;
   6100      }
   6101    }]);
   6102 
   6103    return WritableStreamDefaultWriter;
   6104  }();
   6105 
   6106  function IsWritableStreamDefaultWriter(x) {
   6107    if (!typeIsObject(x)) {
   6108      return false;
   6109    }
   6110 
   6111    if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {
   6112      return false;
   6113    }
   6114 
   6115    return true;
   6116  }
   6117 
   6118  function WritableStreamDefaultWriterAbort(writer, reason) {
   6119    var stream = writer._ownerWritableStream;
   6120    assert(stream !== undefined);
   6121    return WritableStreamAbort(stream, reason);
   6122  }
   6123 
   6124  function WritableStreamDefaultWriterClose(writer) {
   6125    var stream = writer._ownerWritableStream;
   6126    assert(stream !== undefined);
   6127    var state = stream._state;
   6128 
   6129    if (state === 'closed' || state === 'errored') {
   6130      return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed'));
   6131    }
   6132 
   6133    assert(state === 'writable' || state === 'erroring');
   6134    assert(WritableStreamCloseQueuedOrInFlight(stream) === false);
   6135    var promise = new Promise(function (resolve, reject) {
   6136      var closeRequest = {
   6137        _resolve: resolve,
   6138        _reject: reject
   6139      };
   6140      stream._closeRequest = closeRequest;
   6141    });
   6142 
   6143    if (stream._backpressure === true && state === 'writable') {
   6144      defaultWriterReadyPromiseResolve(writer);
   6145    }
   6146 
   6147    WritableStreamDefaultControllerClose(stream._writableStreamController);
   6148    return promise;
   6149  }
   6150 
   6151  function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {
   6152    var stream = writer._ownerWritableStream;
   6153    assert(stream !== undefined);
   6154    var state = stream._state;
   6155 
   6156    if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {
   6157      return Promise.resolve();
   6158    }
   6159 
   6160    if (state === 'errored') {
   6161      return Promise.reject(stream._storedError);
   6162    }
   6163 
   6164    assert(state === 'writable' || state === 'erroring');
   6165    return WritableStreamDefaultWriterClose(writer);
   6166  }
   6167 
   6168  function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {
   6169    if (writer._closedPromiseState === 'pending') {
   6170      defaultWriterClosedPromiseReject(writer, error);
   6171    } else {
   6172      defaultWriterClosedPromiseResetToRejected(writer, error);
   6173    }
   6174 
   6175    writer._closedPromise["catch"](function () {});
   6176  }
   6177 
   6178  function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {
   6179    if (writer._readyPromiseState === 'pending') {
   6180      defaultWriterReadyPromiseReject(writer, error);
   6181    } else {
   6182      defaultWriterReadyPromiseResetToRejected(writer, error);
   6183    }
   6184 
   6185    writer._readyPromise["catch"](function () {});
   6186  }
   6187 
   6188  function WritableStreamDefaultWriterGetDesiredSize(writer) {
   6189    var stream = writer._ownerWritableStream;
   6190    var state = stream._state;
   6191 
   6192    if (state === 'errored' || state === 'erroring') {
   6193      return null;
   6194    }
   6195 
   6196    if (state === 'closed') {
   6197      return 0;
   6198    }
   6199 
   6200    return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);
   6201  }
   6202 
   6203  function WritableStreamDefaultWriterRelease(writer) {
   6204    var stream = writer._ownerWritableStream;
   6205    assert(stream !== undefined);
   6206    assert(stream._writer === writer);
   6207    var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\'s closedness');
   6208    WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);
   6209    WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);
   6210    stream._writer = undefined;
   6211    writer._ownerWritableStream = undefined;
   6212  }
   6213 
   6214  function WritableStreamDefaultWriterWrite(writer, chunk) {
   6215    var stream = writer._ownerWritableStream;
   6216    assert(stream !== undefined);
   6217    var controller = stream._writableStreamController;
   6218    var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);
   6219 
   6220    if (stream !== writer._ownerWritableStream) {
   6221      return Promise.reject(defaultWriterLockException('write to'));
   6222    }
   6223 
   6224    var state = stream._state;
   6225 
   6226    if (state === 'errored') {
   6227      return Promise.reject(stream._storedError);
   6228    }
   6229 
   6230    if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {
   6231      return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to'));
   6232    }
   6233 
   6234    if (state === 'erroring') {
   6235      return Promise.reject(stream._storedError);
   6236    }
   6237 
   6238    assert(state === 'writable');
   6239    var promise = WritableStreamAddWriteRequest(stream);
   6240    WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);
   6241    return promise;
   6242  }
   6243 
   6244  var WritableStreamDefaultController = function () {
   6245    function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) {
   6246      _classCallCheck(this, WritableStreamDefaultController);
   6247 
   6248      if (IsWritableStream(stream) === false) {
   6249        throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance');
   6250      }
   6251 
   6252      if (stream._writableStreamController !== undefined) {
   6253        throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor');
   6254      }
   6255 
   6256      this._controlledWritableStream = stream;
   6257      this._underlyingSink = underlyingSink;
   6258      this._queue = undefined;
   6259      this._queueTotalSize = undefined;
   6260      ResetQueue(this);
   6261      this._started = false;
   6262      var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);
   6263      this._strategySize = normalizedStrategy.size;
   6264      this._strategyHWM = normalizedStrategy.highWaterMark;
   6265      var backpressure = WritableStreamDefaultControllerGetBackpressure(this);
   6266      WritableStreamUpdateBackpressure(stream, backpressure);
   6267    }
   6268 
   6269    _createClass(WritableStreamDefaultController, [{
   6270      key: 'error',
   6271      value: function error(e) {
   6272        if (IsWritableStreamDefaultController(this) === false) {
   6273          throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');
   6274        }
   6275 
   6276        var state = this._controlledWritableStream._state;
   6277 
   6278        if (state !== 'writable') {
   6279          return;
   6280        }
   6281 
   6282        WritableStreamDefaultControllerError(this, e);
   6283      }
   6284    }, {
   6285      key: '__abortSteps',
   6286      value: function __abortSteps(reason) {
   6287        return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]);
   6288      }
   6289    }, {
   6290      key: '__errorSteps',
   6291      value: function __errorSteps() {
   6292        ResetQueue(this);
   6293      }
   6294    }, {
   6295      key: '__startSteps',
   6296      value: function __startSteps() {
   6297        var _this = this;
   6298 
   6299        var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]);
   6300        var stream = this._controlledWritableStream;
   6301        Promise.resolve(startResult).then(function () {
   6302          assert(stream._state === 'writable' || stream._state === 'erroring');
   6303          _this._started = true;
   6304          WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this);
   6305        }, function (r) {
   6306          assert(stream._state === 'writable' || stream._state === 'erroring');
   6307          _this._started = true;
   6308          WritableStreamDealWithRejection(stream, r);
   6309        })["catch"](rethrowAssertionErrorRejection);
   6310      }
   6311    }]);
   6312 
   6313    return WritableStreamDefaultController;
   6314  }();
   6315 
   6316  function WritableStreamDefaultControllerClose(controller) {
   6317    EnqueueValueWithSize(controller, 'close', 0);
   6318    WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
   6319  }
   6320 
   6321  function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {
   6322    var strategySize = controller._strategySize;
   6323 
   6324    if (strategySize === undefined) {
   6325      return 1;
   6326    }
   6327 
   6328    try {
   6329      return strategySize(chunk);
   6330    } catch (chunkSizeE) {
   6331      WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);
   6332      return 1;
   6333    }
   6334  }
   6335 
   6336  function WritableStreamDefaultControllerGetDesiredSize(controller) {
   6337    return controller._strategyHWM - controller._queueTotalSize;
   6338  }
   6339 
   6340  function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {
   6341    var writeRecord = {
   6342      chunk: chunk
   6343    };
   6344 
   6345    try {
   6346      EnqueueValueWithSize(controller, writeRecord, chunkSize);
   6347    } catch (enqueueE) {
   6348      WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);
   6349      return;
   6350    }
   6351 
   6352    var stream = controller._controlledWritableStream;
   6353 
   6354    if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {
   6355      var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);
   6356      WritableStreamUpdateBackpressure(stream, backpressure);
   6357    }
   6358 
   6359    WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
   6360  }
   6361 
   6362  function IsWritableStreamDefaultController(x) {
   6363    if (!typeIsObject(x)) {
   6364      return false;
   6365    }
   6366 
   6367    if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) {
   6368      return false;
   6369    }
   6370 
   6371    return true;
   6372  }
   6373 
   6374  function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {
   6375    var stream = controller._controlledWritableStream;
   6376 
   6377    if (controller._started === false) {
   6378      return;
   6379    }
   6380 
   6381    if (stream._inFlightWriteRequest !== undefined) {
   6382      return;
   6383    }
   6384 
   6385    var state = stream._state;
   6386 
   6387    if (state === 'closed' || state === 'errored') {
   6388      return;
   6389    }
   6390 
   6391    if (state === 'erroring') {
   6392      WritableStreamFinishErroring(stream);
   6393      return;
   6394    }
   6395 
   6396    if (controller._queue.length === 0) {
   6397      return;
   6398    }
   6399 
   6400    var writeRecord = PeekQueueValue(controller);
   6401 
   6402    if (writeRecord === 'close') {
   6403      WritableStreamDefaultControllerProcessClose(controller);
   6404    } else {
   6405      WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);
   6406    }
   6407  }
   6408 
   6409  function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {
   6410    if (controller._controlledWritableStream._state === 'writable') {
   6411      WritableStreamDefaultControllerError(controller, error);
   6412    }
   6413  }
   6414 
   6415  function WritableStreamDefaultControllerProcessClose(controller) {
   6416    var stream = controller._controlledWritableStream;
   6417    WritableStreamMarkCloseRequestInFlight(stream);
   6418    DequeueValue(controller);
   6419    assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued');
   6420    var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []);
   6421    sinkClosePromise.then(function () {
   6422      WritableStreamFinishInFlightClose(stream);
   6423    }, function (reason) {
   6424      WritableStreamFinishInFlightCloseWithError(stream, reason);
   6425    })["catch"](rethrowAssertionErrorRejection);
   6426  }
   6427 
   6428  function WritableStreamDefaultControllerProcessWrite(controller, chunk) {
   6429    var stream = controller._controlledWritableStream;
   6430    WritableStreamMarkFirstWriteRequestInFlight(stream);
   6431    var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]);
   6432    sinkWritePromise.then(function () {
   6433      WritableStreamFinishInFlightWrite(stream);
   6434      var state = stream._state;
   6435      assert(state === 'writable' || state === 'erroring');
   6436      DequeueValue(controller);
   6437 
   6438      if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {
   6439        var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);
   6440        WritableStreamUpdateBackpressure(stream, backpressure);
   6441      }
   6442 
   6443      WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
   6444    }, function (reason) {
   6445      WritableStreamFinishInFlightWriteWithError(stream, reason);
   6446    })["catch"](rethrowAssertionErrorRejection);
   6447  }
   6448 
   6449  function WritableStreamDefaultControllerGetBackpressure(controller) {
   6450    var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);
   6451    return desiredSize <= 0;
   6452  }
   6453 
   6454  function WritableStreamDefaultControllerError(controller, error) {
   6455    var stream = controller._controlledWritableStream;
   6456    assert(stream._state === 'writable');
   6457    WritableStreamStartErroring(stream, error);
   6458  }
   6459 
   6460  function streamBrandCheckException(name) {
   6461    return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream');
   6462  }
   6463 
   6464  function defaultWriterBrandCheckException(name) {
   6465    return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter');
   6466  }
   6467 
   6468  function defaultWriterLockException(name) {
   6469    return new TypeError('Cannot ' + name + ' a stream using a released writer');
   6470  }
   6471 
   6472  function defaultWriterClosedPromiseInitialize(writer) {
   6473    writer._closedPromise = new Promise(function (resolve, reject) {
   6474      writer._closedPromise_resolve = resolve;
   6475      writer._closedPromise_reject = reject;
   6476      writer._closedPromiseState = 'pending';
   6477    });
   6478  }
   6479 
   6480  function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {
   6481    writer._closedPromise = Promise.reject(reason);
   6482    writer._closedPromise_resolve = undefined;
   6483    writer._closedPromise_reject = undefined;
   6484    writer._closedPromiseState = 'rejected';
   6485  }
   6486 
   6487  function defaultWriterClosedPromiseInitializeAsResolved(writer) {
   6488    writer._closedPromise = Promise.resolve(undefined);
   6489    writer._closedPromise_resolve = undefined;
   6490    writer._closedPromise_reject = undefined;
   6491    writer._closedPromiseState = 'resolved';
   6492  }
   6493 
   6494  function defaultWriterClosedPromiseReject(writer, reason) {
   6495    assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');
   6496    assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');
   6497    assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');
   6498 
   6499    writer._closedPromise_reject(reason);
   6500 
   6501    writer._closedPromise_resolve = undefined;
   6502    writer._closedPromise_reject = undefined;
   6503    writer._closedPromiseState = 'rejected';
   6504  }
   6505 
   6506  function defaultWriterClosedPromiseResetToRejected(writer, reason) {
   6507    assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined');
   6508    assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined');
   6509    assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending');
   6510    writer._closedPromise = Promise.reject(reason);
   6511    writer._closedPromiseState = 'rejected';
   6512  }
   6513 
   6514  function defaultWriterClosedPromiseResolve(writer) {
   6515    assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');
   6516    assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');
   6517    assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');
   6518 
   6519    writer._closedPromise_resolve(undefined);
   6520 
   6521    writer._closedPromise_resolve = undefined;
   6522    writer._closedPromise_reject = undefined;
   6523    writer._closedPromiseState = 'resolved';
   6524  }
   6525 
   6526  function defaultWriterReadyPromiseInitialize(writer) {
   6527    writer._readyPromise = new Promise(function (resolve, reject) {
   6528      writer._readyPromise_resolve = resolve;
   6529      writer._readyPromise_reject = reject;
   6530    });
   6531    writer._readyPromiseState = 'pending';
   6532  }
   6533 
   6534  function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {
   6535    writer._readyPromise = Promise.reject(reason);
   6536    writer._readyPromise_resolve = undefined;
   6537    writer._readyPromise_reject = undefined;
   6538    writer._readyPromiseState = 'rejected';
   6539  }
   6540 
   6541  function defaultWriterReadyPromiseInitializeAsResolved(writer) {
   6542    writer._readyPromise = Promise.resolve(undefined);
   6543    writer._readyPromise_resolve = undefined;
   6544    writer._readyPromise_reject = undefined;
   6545    writer._readyPromiseState = 'fulfilled';
   6546  }
   6547 
   6548  function defaultWriterReadyPromiseReject(writer, reason) {
   6549    assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');
   6550    assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');
   6551 
   6552    writer._readyPromise_reject(reason);
   6553 
   6554    writer._readyPromise_resolve = undefined;
   6555    writer._readyPromise_reject = undefined;
   6556    writer._readyPromiseState = 'rejected';
   6557  }
   6558 
   6559  function defaultWriterReadyPromiseReset(writer) {
   6560    assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');
   6561    assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');
   6562    writer._readyPromise = new Promise(function (resolve, reject) {
   6563      writer._readyPromise_resolve = resolve;
   6564      writer._readyPromise_reject = reject;
   6565    });
   6566    writer._readyPromiseState = 'pending';
   6567  }
   6568 
   6569  function defaultWriterReadyPromiseResetToRejected(writer, reason) {
   6570    assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');
   6571    assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');
   6572    writer._readyPromise = Promise.reject(reason);
   6573    writer._readyPromiseState = 'rejected';
   6574  }
   6575 
   6576  function defaultWriterReadyPromiseResolve(writer) {
   6577    assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');
   6578    assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');
   6579 
   6580    writer._readyPromise_resolve(undefined);
   6581 
   6582    writer._readyPromise_resolve = undefined;
   6583    writer._readyPromise_reject = undefined;
   6584    writer._readyPromiseState = 'fulfilled';
   6585  }
   6586 }, function (module, exports, __w_pdfjs_require__) {
   6587  "use strict";
   6588 
   6589  var _require = __w_pdfjs_require__(0),
   6590      IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber;
   6591 
   6592  var _require2 = __w_pdfjs_require__(1),
   6593      assert = _require2.assert;
   6594 
   6595  exports.DequeueValue = function (container) {
   6596    assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');
   6597    assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.');
   6598 
   6599    var pair = container._queue.shift();
   6600 
   6601    container._queueTotalSize -= pair.size;
   6602 
   6603    if (container._queueTotalSize < 0) {
   6604      container._queueTotalSize = 0;
   6605    }
   6606 
   6607    return pair.value;
   6608  };
   6609 
   6610  exports.EnqueueValueWithSize = function (container, value, size) {
   6611    assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].');
   6612    size = Number(size);
   6613 
   6614    if (!IsFiniteNonNegativeNumber(size)) {
   6615      throw new RangeError('Size must be a finite, non-NaN, non-negative number.');
   6616    }
   6617 
   6618    container._queue.push({
   6619      value: value,
   6620      size: size
   6621    });
   6622 
   6623    container._queueTotalSize += size;
   6624  };
   6625 
   6626  exports.PeekQueueValue = function (container) {
   6627    assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');
   6628    assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.');
   6629    var pair = container._queue[0];
   6630    return pair.value;
   6631  };
   6632 
   6633  exports.ResetQueue = function (container) {
   6634    assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].');
   6635    container._queue = [];
   6636    container._queueTotalSize = 0;
   6637  };
   6638 }, function (module, exports, __w_pdfjs_require__) {
   6639  "use strict";
   6640 
   6641  var _createClass = function () {
   6642    function defineProperties(target, props) {
   6643      for (var i = 0; i < props.length; i++) {
   6644        var descriptor = props[i];
   6645        descriptor.enumerable = descriptor.enumerable || false;
   6646        descriptor.configurable = true;
   6647        if ("value" in descriptor) descriptor.writable = true;
   6648        Object.defineProperty(target, descriptor.key, descriptor);
   6649      }
   6650    }
   6651 
   6652    return function (Constructor, protoProps, staticProps) {
   6653      if (protoProps) defineProperties(Constructor.prototype, protoProps);
   6654      if (staticProps) defineProperties(Constructor, staticProps);
   6655      return Constructor;
   6656    };
   6657  }();
   6658 
   6659  function _classCallCheck(instance, Constructor) {
   6660    if (!(instance instanceof Constructor)) {
   6661      throw new TypeError("Cannot call a class as a function");
   6662    }
   6663  }
   6664 
   6665  var _require = __w_pdfjs_require__(0),
   6666      ArrayBufferCopy = _require.ArrayBufferCopy,
   6667      CreateIterResultObject = _require.CreateIterResultObject,
   6668      IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber,
   6669      InvokeOrNoop = _require.InvokeOrNoop,
   6670      PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,
   6671      TransferArrayBuffer = _require.TransferArrayBuffer,
   6672      ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,
   6673      ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark;
   6674 
   6675  var _require2 = __w_pdfjs_require__(0),
   6676      createArrayFromList = _require2.createArrayFromList,
   6677      createDataProperty = _require2.createDataProperty,
   6678      typeIsObject = _require2.typeIsObject;
   6679 
   6680  var _require3 = __w_pdfjs_require__(1),
   6681      assert = _require3.assert,
   6682      rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection;
   6683 
   6684  var _require4 = __w_pdfjs_require__(3),
   6685      DequeueValue = _require4.DequeueValue,
   6686      EnqueueValueWithSize = _require4.EnqueueValueWithSize,
   6687      ResetQueue = _require4.ResetQueue;
   6688 
   6689  var _require5 = __w_pdfjs_require__(2),
   6690      AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter,
   6691      IsWritableStream = _require5.IsWritableStream,
   6692      IsWritableStreamLocked = _require5.IsWritableStreamLocked,
   6693      WritableStreamAbort = _require5.WritableStreamAbort,
   6694      WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation,
   6695      WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease,
   6696      WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite,
   6697      WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight;
   6698 
   6699  var ReadableStream = function () {
   6700    function ReadableStream() {
   6701      var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
   6702 
   6703      var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
   6704          size = _ref.size,
   6705          highWaterMark = _ref.highWaterMark;
   6706 
   6707      _classCallCheck(this, ReadableStream);
   6708 
   6709      this._state = 'readable';
   6710      this._reader = undefined;
   6711      this._storedError = undefined;
   6712      this._disturbed = false;
   6713      this._readableStreamController = undefined;
   6714      var type = underlyingSource.type;
   6715      var typeString = String(type);
   6716 
   6717      if (typeString === 'bytes') {
   6718        if (highWaterMark === undefined) {
   6719          highWaterMark = 0;
   6720        }
   6721 
   6722        this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark);
   6723      } else if (type === undefined) {
   6724        if (highWaterMark === undefined) {
   6725          highWaterMark = 1;
   6726        }
   6727 
   6728        this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark);
   6729      } else {
   6730        throw new RangeError('Invalid type is specified');
   6731      }
   6732    }
   6733 
   6734    _createClass(ReadableStream, [{
   6735      key: 'cancel',
   6736      value: function cancel(reason) {
   6737        if (IsReadableStream(this) === false) {
   6738          return Promise.reject(streamBrandCheckException('cancel'));
   6739        }
   6740 
   6741        if (IsReadableStreamLocked(this) === true) {
   6742          return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader'));
   6743        }
   6744 
   6745        return ReadableStreamCancel(this, reason);
   6746      }
   6747    }, {
   6748      key: 'getReader',
   6749      value: function getReader() {
   6750        var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
   6751            mode = _ref2.mode;
   6752 
   6753        if (IsReadableStream(this) === false) {
   6754          throw streamBrandCheckException('getReader');
   6755        }
   6756 
   6757        if (mode === undefined) {
   6758          return AcquireReadableStreamDefaultReader(this);
   6759        }
   6760 
   6761        mode = String(mode);
   6762 
   6763        if (mode === 'byob') {
   6764          return AcquireReadableStreamBYOBReader(this);
   6765        }
   6766 
   6767        throw new RangeError('Invalid mode is specified');
   6768      }
   6769    }, {
   6770      key: 'pipeThrough',
   6771      value: function pipeThrough(_ref3, options) {
   6772        var writable = _ref3.writable,
   6773            readable = _ref3.readable;
   6774        var promise = this.pipeTo(writable, options);
   6775        ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise);
   6776        return readable;
   6777      }
   6778    }, {
   6779      key: 'pipeTo',
   6780      value: function pipeTo(dest) {
   6781        var _this = this;
   6782 
   6783        var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
   6784            preventClose = _ref4.preventClose,
   6785            preventAbort = _ref4.preventAbort,
   6786            preventCancel = _ref4.preventCancel;
   6787 
   6788        if (IsReadableStream(this) === false) {
   6789          return Promise.reject(streamBrandCheckException('pipeTo'));
   6790        }
   6791 
   6792        if (IsWritableStream(dest) === false) {
   6793          return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\'s first argument must be a WritableStream'));
   6794        }
   6795 
   6796        preventClose = Boolean(preventClose);
   6797        preventAbort = Boolean(preventAbort);
   6798        preventCancel = Boolean(preventCancel);
   6799 
   6800        if (IsReadableStreamLocked(this) === true) {
   6801          return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));
   6802        }
   6803 
   6804        if (IsWritableStreamLocked(dest) === true) {
   6805          return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));
   6806        }
   6807 
   6808        var reader = AcquireReadableStreamDefaultReader(this);
   6809        var writer = AcquireWritableStreamDefaultWriter(dest);
   6810        var shuttingDown = false;
   6811        var currentWrite = Promise.resolve();
   6812        return new Promise(function (resolve, reject) {
   6813          function pipeLoop() {
   6814            currentWrite = Promise.resolve();
   6815 
   6816            if (shuttingDown === true) {
   6817              return Promise.resolve();
   6818            }
   6819 
   6820            return writer._readyPromise.then(function () {
   6821              return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) {
   6822                var value = _ref5.value,
   6823                    done = _ref5.done;
   6824 
   6825                if (done === true) {
   6826                  return;
   6827                }
   6828 
   6829                currentWrite = WritableStreamDefaultWriterWrite(writer, value)["catch"](function () {});
   6830              });
   6831            }).then(pipeLoop);
   6832          }
   6833 
   6834          isOrBecomesErrored(_this, reader._closedPromise, function (storedError) {
   6835            if (preventAbort === false) {
   6836              shutdownWithAction(function () {
   6837                return WritableStreamAbort(dest, storedError);
   6838              }, true, storedError);
   6839            } else {
   6840              shutdown(true, storedError);
   6841            }
   6842          });
   6843          isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {
   6844            if (preventCancel === false) {
   6845              shutdownWithAction(function () {
   6846                return ReadableStreamCancel(_this, storedError);
   6847              }, true, storedError);
   6848            } else {
   6849              shutdown(true, storedError);
   6850            }
   6851          });
   6852          isOrBecomesClosed(_this, reader._closedPromise, function () {
   6853            if (preventClose === false) {
   6854              shutdownWithAction(function () {
   6855                return WritableStreamDefaultWriterCloseWithErrorPropagation(writer);
   6856              });
   6857            } else {
   6858              shutdown();
   6859            }
   6860          });
   6861 
   6862          if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {
   6863            var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');
   6864 
   6865            if (preventCancel === false) {
   6866              shutdownWithAction(function () {
   6867                return ReadableStreamCancel(_this, destClosed);
   6868              }, true, destClosed);
   6869            } else {
   6870              shutdown(true, destClosed);
   6871            }
   6872          }
   6873 
   6874          pipeLoop()["catch"](function (err) {
   6875            currentWrite = Promise.resolve();
   6876            rethrowAssertionErrorRejection(err);
   6877          });
   6878 
   6879          function waitForWritesToFinish() {
   6880            var oldCurrentWrite = currentWrite;
   6881            return currentWrite.then(function () {
   6882              return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined;
   6883            });
   6884          }
   6885 
   6886          function isOrBecomesErrored(stream, promise, action) {
   6887            if (stream._state === 'errored') {
   6888              action(stream._storedError);
   6889            } else {
   6890              promise["catch"](action)["catch"](rethrowAssertionErrorRejection);
   6891            }
   6892          }
   6893 
   6894          function isOrBecomesClosed(stream, promise, action) {
   6895            if (stream._state === 'closed') {
   6896              action();
   6897            } else {
   6898              promise.then(action)["catch"](rethrowAssertionErrorRejection);
   6899            }
   6900          }
   6901 
   6902          function shutdownWithAction(action, originalIsError, originalError) {
   6903            if (shuttingDown === true) {
   6904              return;
   6905            }
   6906 
   6907            shuttingDown = true;
   6908 
   6909            if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {
   6910              waitForWritesToFinish().then(doTheRest);
   6911            } else {
   6912              doTheRest();
   6913            }
   6914 
   6915            function doTheRest() {
   6916              action().then(function () {
   6917                return finalize(originalIsError, originalError);
   6918              }, function (newError) {
   6919                return finalize(true, newError);
   6920              })["catch"](rethrowAssertionErrorRejection);
   6921            }
   6922          }
   6923 
   6924          function shutdown(isError, error) {
   6925            if (shuttingDown === true) {
   6926              return;
   6927            }
   6928 
   6929            shuttingDown = true;
   6930 
   6931            if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {
   6932              waitForWritesToFinish().then(function () {
   6933                return finalize(isError, error);
   6934              })["catch"](rethrowAssertionErrorRejection);
   6935            } else {
   6936              finalize(isError, error);
   6937            }
   6938          }
   6939 
   6940          function finalize(isError, error) {
   6941            WritableStreamDefaultWriterRelease(writer);
   6942            ReadableStreamReaderGenericRelease(reader);
   6943 
   6944            if (isError) {
   6945              reject(error);
   6946            } else {
   6947              resolve(undefined);
   6948            }
   6949          }
   6950        });
   6951      }
   6952    }, {
   6953      key: 'tee',
   6954      value: function tee() {
   6955        if (IsReadableStream(this) === false) {
   6956          throw streamBrandCheckException('tee');
   6957        }
   6958 
   6959        var branches = ReadableStreamTee(this, false);
   6960        return createArrayFromList(branches);
   6961      }
   6962    }, {
   6963      key: 'locked',
   6964      get: function get() {
   6965        if (IsReadableStream(this) === false) {
   6966          throw streamBrandCheckException('locked');
   6967        }
   6968 
   6969        return IsReadableStreamLocked(this);
   6970      }
   6971    }]);
   6972 
   6973    return ReadableStream;
   6974  }();
   6975 
   6976  module.exports = {
   6977    ReadableStream: ReadableStream,
   6978    IsReadableStreamDisturbed: IsReadableStreamDisturbed,
   6979    ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose,
   6980    ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue,
   6981    ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError,
   6982    ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize
   6983  };
   6984 
   6985  function AcquireReadableStreamBYOBReader(stream) {
   6986    return new ReadableStreamBYOBReader(stream);
   6987  }
   6988 
   6989  function AcquireReadableStreamDefaultReader(stream) {
   6990    return new ReadableStreamDefaultReader(stream);
   6991  }
   6992 
   6993  function IsReadableStream(x) {
   6994    if (!typeIsObject(x)) {
   6995      return false;
   6996    }
   6997 
   6998    if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {
   6999      return false;
   7000    }
   7001 
   7002    return true;
   7003  }
   7004 
   7005  function IsReadableStreamDisturbed(stream) {
   7006    assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams');
   7007    return stream._disturbed;
   7008  }
   7009 
   7010  function IsReadableStreamLocked(stream) {
   7011    assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams');
   7012 
   7013    if (stream._reader === undefined) {
   7014      return false;
   7015    }
   7016 
   7017    return true;
   7018  }
   7019 
   7020  function ReadableStreamTee(stream, cloneForBranch2) {
   7021    assert(IsReadableStream(stream) === true);
   7022    assert(typeof cloneForBranch2 === 'boolean');
   7023    var reader = AcquireReadableStreamDefaultReader(stream);
   7024    var teeState = {
   7025      closedOrErrored: false,
   7026      canceled1: false,
   7027      canceled2: false,
   7028      reason1: undefined,
   7029      reason2: undefined
   7030    };
   7031    teeState.promise = new Promise(function (resolve) {
   7032      teeState._resolve = resolve;
   7033    });
   7034    var pull = create_ReadableStreamTeePullFunction();
   7035    pull._reader = reader;
   7036    pull._teeState = teeState;
   7037    pull._cloneForBranch2 = cloneForBranch2;
   7038    var cancel1 = create_ReadableStreamTeeBranch1CancelFunction();
   7039    cancel1._stream = stream;
   7040    cancel1._teeState = teeState;
   7041    var cancel2 = create_ReadableStreamTeeBranch2CancelFunction();
   7042    cancel2._stream = stream;
   7043    cancel2._teeState = teeState;
   7044    var underlyingSource1 = Object.create(Object.prototype);
   7045    createDataProperty(underlyingSource1, 'pull', pull);
   7046    createDataProperty(underlyingSource1, 'cancel', cancel1);
   7047    var branch1Stream = new ReadableStream(underlyingSource1);
   7048    var underlyingSource2 = Object.create(Object.prototype);
   7049    createDataProperty(underlyingSource2, 'pull', pull);
   7050    createDataProperty(underlyingSource2, 'cancel', cancel2);
   7051    var branch2Stream = new ReadableStream(underlyingSource2);
   7052    pull._branch1 = branch1Stream._readableStreamController;
   7053    pull._branch2 = branch2Stream._readableStreamController;
   7054 
   7055    reader._closedPromise["catch"](function (r) {
   7056      if (teeState.closedOrErrored === true) {
   7057        return;
   7058      }
   7059 
   7060      ReadableStreamDefaultControllerError(pull._branch1, r);
   7061      ReadableStreamDefaultControllerError(pull._branch2, r);
   7062      teeState.closedOrErrored = true;
   7063    });
   7064 
   7065    return [branch1Stream, branch2Stream];
   7066  }
   7067 
   7068  function create_ReadableStreamTeePullFunction() {
   7069    function f() {
   7070      var reader = f._reader,
   7071          branch1 = f._branch1,
   7072          branch2 = f._branch2,
   7073          teeState = f._teeState;
   7074      return ReadableStreamDefaultReaderRead(reader).then(function (result) {
   7075        assert(typeIsObject(result));
   7076        var value = result.value;
   7077        var done = result.done;
   7078        assert(typeof done === 'boolean');
   7079 
   7080        if (done === true && teeState.closedOrErrored === false) {
   7081          if (teeState.canceled1 === false) {
   7082            ReadableStreamDefaultControllerClose(branch1);
   7083          }
   7084 
   7085          if (teeState.canceled2 === false) {
   7086            ReadableStreamDefaultControllerClose(branch2);
   7087          }
   7088 
   7089          teeState.closedOrErrored = true;
   7090        }
   7091 
   7092        if (teeState.closedOrErrored === true) {
   7093          return;
   7094        }
   7095 
   7096        var value1 = value;
   7097        var value2 = value;
   7098 
   7099        if (teeState.canceled1 === false) {
   7100          ReadableStreamDefaultControllerEnqueue(branch1, value1);
   7101        }
   7102 
   7103        if (teeState.canceled2 === false) {
   7104          ReadableStreamDefaultControllerEnqueue(branch2, value2);
   7105        }
   7106      });
   7107    }
   7108 
   7109    return f;
   7110  }
   7111 
   7112  function create_ReadableStreamTeeBranch1CancelFunction() {
   7113    function f(reason) {
   7114      var stream = f._stream,
   7115          teeState = f._teeState;
   7116      teeState.canceled1 = true;
   7117      teeState.reason1 = reason;
   7118 
   7119      if (teeState.canceled2 === true) {
   7120        var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);
   7121        var cancelResult = ReadableStreamCancel(stream, compositeReason);
   7122 
   7123        teeState._resolve(cancelResult);
   7124      }
   7125 
   7126      return teeState.promise;
   7127    }
   7128 
   7129    return f;
   7130  }
   7131 
   7132  function create_ReadableStreamTeeBranch2CancelFunction() {
   7133    function f(reason) {
   7134      var stream = f._stream,
   7135          teeState = f._teeState;
   7136      teeState.canceled2 = true;
   7137      teeState.reason2 = reason;
   7138 
   7139      if (teeState.canceled1 === true) {
   7140        var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);
   7141        var cancelResult = ReadableStreamCancel(stream, compositeReason);
   7142 
   7143        teeState._resolve(cancelResult);
   7144      }
   7145 
   7146      return teeState.promise;
   7147    }
   7148 
   7149    return f;
   7150  }
   7151 
   7152  function ReadableStreamAddReadIntoRequest(stream) {
   7153    assert(IsReadableStreamBYOBReader(stream._reader) === true);
   7154    assert(stream._state === 'readable' || stream._state === 'closed');
   7155    var promise = new Promise(function (resolve, reject) {
   7156      var readIntoRequest = {
   7157        _resolve: resolve,
   7158        _reject: reject
   7159      };
   7160 
   7161      stream._reader._readIntoRequests.push(readIntoRequest);
   7162    });
   7163    return promise;
   7164  }
   7165 
   7166  function ReadableStreamAddReadRequest(stream) {
   7167    assert(IsReadableStreamDefaultReader(stream._reader) === true);
   7168    assert(stream._state === 'readable');
   7169    var promise = new Promise(function (resolve, reject) {
   7170      var readRequest = {
   7171        _resolve: resolve,
   7172        _reject: reject
   7173      };
   7174 
   7175      stream._reader._readRequests.push(readRequest);
   7176    });
   7177    return promise;
   7178  }
   7179 
   7180  function ReadableStreamCancel(stream, reason) {
   7181    stream._disturbed = true;
   7182 
   7183    if (stream._state === 'closed') {
   7184      return Promise.resolve(undefined);
   7185    }
   7186 
   7187    if (stream._state === 'errored') {
   7188      return Promise.reject(stream._storedError);
   7189    }
   7190 
   7191    ReadableStreamClose(stream);
   7192 
   7193    var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason);
   7194 
   7195    return sourceCancelPromise.then(function () {
   7196      return undefined;
   7197    });
   7198  }
   7199 
   7200  function ReadableStreamClose(stream) {
   7201    assert(stream._state === 'readable');
   7202    stream._state = 'closed';
   7203    var reader = stream._reader;
   7204 
   7205    if (reader === undefined) {
   7206      return undefined;
   7207    }
   7208 
   7209    if (IsReadableStreamDefaultReader(reader) === true) {
   7210      for (var i = 0; i < reader._readRequests.length; i++) {
   7211        var _resolve = reader._readRequests[i]._resolve;
   7212 
   7213        _resolve(CreateIterResultObject(undefined, true));
   7214      }
   7215 
   7216      reader._readRequests = [];
   7217    }
   7218 
   7219    defaultReaderClosedPromiseResolve(reader);
   7220    return undefined;
   7221  }
   7222 
   7223  function ReadableStreamError(stream, e) {
   7224    assert(IsReadableStream(stream) === true, 'stream must be ReadableStream');
   7225    assert(stream._state === 'readable', 'state must be readable');
   7226    stream._state = 'errored';
   7227    stream._storedError = e;
   7228    var reader = stream._reader;
   7229 
   7230    if (reader === undefined) {
   7231      return undefined;
   7232    }
   7233 
   7234    if (IsReadableStreamDefaultReader(reader) === true) {
   7235      for (var i = 0; i < reader._readRequests.length; i++) {
   7236        var readRequest = reader._readRequests[i];
   7237 
   7238        readRequest._reject(e);
   7239      }
   7240 
   7241      reader._readRequests = [];
   7242    } else {
   7243      assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader');
   7244 
   7245      for (var _i = 0; _i < reader._readIntoRequests.length; _i++) {
   7246        var readIntoRequest = reader._readIntoRequests[_i];
   7247 
   7248        readIntoRequest._reject(e);
   7249      }
   7250 
   7251      reader._readIntoRequests = [];
   7252    }
   7253 
   7254    defaultReaderClosedPromiseReject(reader, e);
   7255 
   7256    reader._closedPromise["catch"](function () {});
   7257  }
   7258 
   7259  function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {
   7260    var reader = stream._reader;
   7261    assert(reader._readIntoRequests.length > 0);
   7262 
   7263    var readIntoRequest = reader._readIntoRequests.shift();
   7264 
   7265    readIntoRequest._resolve(CreateIterResultObject(chunk, done));
   7266  }
   7267 
   7268  function ReadableStreamFulfillReadRequest(stream, chunk, done) {
   7269    var reader = stream._reader;
   7270    assert(reader._readRequests.length > 0);
   7271 
   7272    var readRequest = reader._readRequests.shift();
   7273 
   7274    readRequest._resolve(CreateIterResultObject(chunk, done));
   7275  }
   7276 
   7277  function ReadableStreamGetNumReadIntoRequests(stream) {
   7278    return stream._reader._readIntoRequests.length;
   7279  }
   7280 
   7281  function ReadableStreamGetNumReadRequests(stream) {
   7282    return stream._reader._readRequests.length;
   7283  }
   7284 
   7285  function ReadableStreamHasBYOBReader(stream) {
   7286    var reader = stream._reader;
   7287 
   7288    if (reader === undefined) {
   7289      return false;
   7290    }
   7291 
   7292    if (IsReadableStreamBYOBReader(reader) === false) {
   7293      return false;
   7294    }
   7295 
   7296    return true;
   7297  }
   7298 
   7299  function ReadableStreamHasDefaultReader(stream) {
   7300    var reader = stream._reader;
   7301 
   7302    if (reader === undefined) {
   7303      return false;
   7304    }
   7305 
   7306    if (IsReadableStreamDefaultReader(reader) === false) {
   7307      return false;
   7308    }
   7309 
   7310    return true;
   7311  }
   7312 
   7313  var ReadableStreamDefaultReader = function () {
   7314    function ReadableStreamDefaultReader(stream) {
   7315      _classCallCheck(this, ReadableStreamDefaultReader);
   7316 
   7317      if (IsReadableStream(stream) === false) {
   7318        throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');
   7319      }
   7320 
   7321      if (IsReadableStreamLocked(stream) === true) {
   7322        throw new TypeError('This stream has already been locked for exclusive reading by another reader');
   7323      }
   7324 
   7325      ReadableStreamReaderGenericInitialize(this, stream);
   7326      this._readRequests = [];
   7327    }
   7328 
   7329    _createClass(ReadableStreamDefaultReader, [{
   7330      key: 'cancel',
   7331      value: function cancel(reason) {
   7332        if (IsReadableStreamDefaultReader(this) === false) {
   7333          return Promise.reject(defaultReaderBrandCheckException('cancel'));
   7334        }
   7335 
   7336        if (this._ownerReadableStream === undefined) {
   7337          return Promise.reject(readerLockException('cancel'));
   7338        }
   7339 
   7340        return ReadableStreamReaderGenericCancel(this, reason);
   7341      }
   7342    }, {
   7343      key: 'read',
   7344      value: function read() {
   7345        if (IsReadableStreamDefaultReader(this) === false) {
   7346          return Promise.reject(defaultReaderBrandCheckException('read'));
   7347        }
   7348 
   7349        if (this._ownerReadableStream === undefined) {
   7350          return Promise.reject(readerLockException('read from'));
   7351        }
   7352 
   7353        return ReadableStreamDefaultReaderRead(this);
   7354      }
   7355    }, {
   7356      key: 'releaseLock',
   7357      value: function releaseLock() {
   7358        if (IsReadableStreamDefaultReader(this) === false) {
   7359          throw defaultReaderBrandCheckException('releaseLock');
   7360        }
   7361 
   7362        if (this._ownerReadableStream === undefined) {
   7363          return;
   7364        }
   7365 
   7366        if (this._readRequests.length > 0) {
   7367          throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');
   7368        }
   7369 
   7370        ReadableStreamReaderGenericRelease(this);
   7371      }
   7372    }, {
   7373      key: 'closed',
   7374      get: function get() {
   7375        if (IsReadableStreamDefaultReader(this) === false) {
   7376          return Promise.reject(defaultReaderBrandCheckException('closed'));
   7377        }
   7378 
   7379        return this._closedPromise;
   7380      }
   7381    }]);
   7382 
   7383    return ReadableStreamDefaultReader;
   7384  }();
   7385 
   7386  var ReadableStreamBYOBReader = function () {
   7387    function ReadableStreamBYOBReader(stream) {
   7388      _classCallCheck(this, ReadableStreamBYOBReader);
   7389 
   7390      if (!IsReadableStream(stream)) {
   7391        throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source');
   7392      }
   7393 
   7394      if (IsReadableByteStreamController(stream._readableStreamController) === false) {
   7395        throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source');
   7396      }
   7397 
   7398      if (IsReadableStreamLocked(stream)) {
   7399        throw new TypeError('This stream has already been locked for exclusive reading by another reader');
   7400      }
   7401 
   7402      ReadableStreamReaderGenericInitialize(this, stream);
   7403      this._readIntoRequests = [];
   7404    }
   7405 
   7406    _createClass(ReadableStreamBYOBReader, [{
   7407      key: 'cancel',
   7408      value: function cancel(reason) {
   7409        if (!IsReadableStreamBYOBReader(this)) {
   7410          return Promise.reject(byobReaderBrandCheckException('cancel'));
   7411        }
   7412 
   7413        if (this._ownerReadableStream === undefined) {
   7414          return Promise.reject(readerLockException('cancel'));
   7415        }
   7416 
   7417        return ReadableStreamReaderGenericCancel(this, reason);
   7418      }
   7419    }, {
   7420      key: 'read',
   7421      value: function read(view) {
   7422        if (!IsReadableStreamBYOBReader(this)) {
   7423          return Promise.reject(byobReaderBrandCheckException('read'));
   7424        }
   7425 
   7426        if (this._ownerReadableStream === undefined) {
   7427          return Promise.reject(readerLockException('read from'));
   7428        }
   7429 
   7430        if (!ArrayBuffer.isView(view)) {
   7431          return Promise.reject(new TypeError('view must be an array buffer view'));
   7432        }
   7433 
   7434        if (view.byteLength === 0) {
   7435          return Promise.reject(new TypeError('view must have non-zero byteLength'));
   7436        }
   7437 
   7438        return ReadableStreamBYOBReaderRead(this, view);
   7439      }
   7440    }, {
   7441      key: 'releaseLock',
   7442      value: function releaseLock() {
   7443        if (!IsReadableStreamBYOBReader(this)) {
   7444          throw byobReaderBrandCheckException('releaseLock');
   7445        }
   7446 
   7447        if (this._ownerReadableStream === undefined) {
   7448          return;
   7449        }
   7450 
   7451        if (this._readIntoRequests.length > 0) {
   7452          throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');
   7453        }
   7454 
   7455        ReadableStreamReaderGenericRelease(this);
   7456      }
   7457    }, {
   7458      key: 'closed',
   7459      get: function get() {
   7460        if (!IsReadableStreamBYOBReader(this)) {
   7461          return Promise.reject(byobReaderBrandCheckException('closed'));
   7462        }
   7463 
   7464        return this._closedPromise;
   7465      }
   7466    }]);
   7467 
   7468    return ReadableStreamBYOBReader;
   7469  }();
   7470 
   7471  function IsReadableStreamBYOBReader(x) {
   7472    if (!typeIsObject(x)) {
   7473      return false;
   7474    }
   7475 
   7476    if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {
   7477      return false;
   7478    }
   7479 
   7480    return true;
   7481  }
   7482 
   7483  function IsReadableStreamDefaultReader(x) {
   7484    if (!typeIsObject(x)) {
   7485      return false;
   7486    }
   7487 
   7488    if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {
   7489      return false;
   7490    }
   7491 
   7492    return true;
   7493  }
   7494 
   7495  function ReadableStreamReaderGenericInitialize(reader, stream) {
   7496    reader._ownerReadableStream = stream;
   7497    stream._reader = reader;
   7498 
   7499    if (stream._state === 'readable') {
   7500      defaultReaderClosedPromiseInitialize(reader);
   7501    } else if (stream._state === 'closed') {
   7502      defaultReaderClosedPromiseInitializeAsResolved(reader);
   7503    } else {
   7504      assert(stream._state === 'errored', 'state must be errored');
   7505      defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);
   7506 
   7507      reader._closedPromise["catch"](function () {});
   7508    }
   7509  }
   7510 
   7511  function ReadableStreamReaderGenericCancel(reader, reason) {
   7512    var stream = reader._ownerReadableStream;
   7513    assert(stream !== undefined);
   7514    return ReadableStreamCancel(stream, reason);
   7515  }
   7516 
   7517  function ReadableStreamReaderGenericRelease(reader) {
   7518    assert(reader._ownerReadableStream !== undefined);
   7519    assert(reader._ownerReadableStream._reader === reader);
   7520 
   7521    if (reader._ownerReadableStream._state === 'readable') {
   7522      defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness'));
   7523    } else {
   7524      defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness'));
   7525    }
   7526 
   7527    reader._closedPromise["catch"](function () {});
   7528 
   7529    reader._ownerReadableStream._reader = undefined;
   7530    reader._ownerReadableStream = undefined;
   7531  }
   7532 
   7533  function ReadableStreamBYOBReaderRead(reader, view) {
   7534    var stream = reader._ownerReadableStream;
   7535    assert(stream !== undefined);
   7536    stream._disturbed = true;
   7537 
   7538    if (stream._state === 'errored') {
   7539      return Promise.reject(stream._storedError);
   7540    }
   7541 
   7542    return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);
   7543  }
   7544 
   7545  function ReadableStreamDefaultReaderRead(reader) {
   7546    var stream = reader._ownerReadableStream;
   7547    assert(stream !== undefined);
   7548    stream._disturbed = true;
   7549 
   7550    if (stream._state === 'closed') {
   7551      return Promise.resolve(CreateIterResultObject(undefined, true));
   7552    }
   7553 
   7554    if (stream._state === 'errored') {
   7555      return Promise.reject(stream._storedError);
   7556    }
   7557 
   7558    assert(stream._state === 'readable');
   7559    return stream._readableStreamController.__pullSteps();
   7560  }
   7561 
   7562  var ReadableStreamDefaultController = function () {
   7563    function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) {
   7564      _classCallCheck(this, ReadableStreamDefaultController);
   7565 
   7566      if (IsReadableStream(stream) === false) {
   7567        throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance');
   7568      }
   7569 
   7570      if (stream._readableStreamController !== undefined) {
   7571        throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor');
   7572      }
   7573 
   7574      this._controlledReadableStream = stream;
   7575      this._underlyingSource = underlyingSource;
   7576      this._queue = undefined;
   7577      this._queueTotalSize = undefined;
   7578      ResetQueue(this);
   7579      this._started = false;
   7580      this._closeRequested = false;
   7581      this._pullAgain = false;
   7582      this._pulling = false;
   7583      var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);
   7584      this._strategySize = normalizedStrategy.size;
   7585      this._strategyHWM = normalizedStrategy.highWaterMark;
   7586      var controller = this;
   7587      var startResult = InvokeOrNoop(underlyingSource, 'start', [this]);
   7588      Promise.resolve(startResult).then(function () {
   7589        controller._started = true;
   7590        assert(controller._pulling === false);
   7591        assert(controller._pullAgain === false);
   7592        ReadableStreamDefaultControllerCallPullIfNeeded(controller);
   7593      }, function (r) {
   7594        ReadableStreamDefaultControllerErrorIfNeeded(controller, r);
   7595      })["catch"](rethrowAssertionErrorRejection);
   7596    }
   7597 
   7598    _createClass(ReadableStreamDefaultController, [{
   7599      key: 'close',
   7600      value: function close() {
   7601        if (IsReadableStreamDefaultController(this) === false) {
   7602          throw defaultControllerBrandCheckException('close');
   7603        }
   7604 
   7605        if (this._closeRequested === true) {
   7606          throw new TypeError('The stream has already been closed; do not close it again!');
   7607        }
   7608 
   7609        var state = this._controlledReadableStream._state;
   7610 
   7611        if (state !== 'readable') {
   7612          throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');
   7613        }
   7614 
   7615        ReadableStreamDefaultControllerClose(this);
   7616      }
   7617    }, {
   7618      key: 'enqueue',
   7619      value: function enqueue(chunk) {
   7620        if (IsReadableStreamDefaultController(this) === false) {
   7621          throw defaultControllerBrandCheckException('enqueue');
   7622        }
   7623 
   7624        if (this._closeRequested === true) {
   7625          throw new TypeError('stream is closed or draining');
   7626        }
   7627 
   7628        var state = this._controlledReadableStream._state;
   7629 
   7630        if (state !== 'readable') {
   7631          throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');
   7632        }
   7633 
   7634        return ReadableStreamDefaultControllerEnqueue(this, chunk);
   7635      }
   7636    }, {
   7637      key: 'error',
   7638      value: function error(e) {
   7639        if (IsReadableStreamDefaultController(this) === false) {
   7640          throw defaultControllerBrandCheckException('error');
   7641        }
   7642 
   7643        var stream = this._controlledReadableStream;
   7644 
   7645        if (stream._state !== 'readable') {
   7646          throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');
   7647        }
   7648 
   7649        ReadableStreamDefaultControllerError(this, e);
   7650      }
   7651    }, {
   7652      key: '__cancelSteps',
   7653      value: function __cancelSteps(reason) {
   7654        ResetQueue(this);
   7655        return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]);
   7656      }
   7657    }, {
   7658      key: '__pullSteps',
   7659      value: function __pullSteps() {
   7660        var stream = this._controlledReadableStream;
   7661 
   7662        if (this._queue.length > 0) {
   7663          var chunk = DequeueValue(this);
   7664 
   7665          if (this._closeRequested === true && this._queue.length === 0) {
   7666            ReadableStreamClose(stream);
   7667          } else {
   7668            ReadableStreamDefaultControllerCallPullIfNeeded(this);
   7669          }
   7670 
   7671          return Promise.resolve(CreateIterResultObject(chunk, false));
   7672        }
   7673 
   7674        var pendingPromise = ReadableStreamAddReadRequest(stream);
   7675        ReadableStreamDefaultControllerCallPullIfNeeded(this);
   7676        return pendingPromise;
   7677      }
   7678    }, {
   7679      key: 'desiredSize',
   7680      get: function get() {
   7681        if (IsReadableStreamDefaultController(this) === false) {
   7682          throw defaultControllerBrandCheckException('desiredSize');
   7683        }
   7684 
   7685        return ReadableStreamDefaultControllerGetDesiredSize(this);
   7686      }
   7687    }]);
   7688 
   7689    return ReadableStreamDefaultController;
   7690  }();
   7691 
   7692  function IsReadableStreamDefaultController(x) {
   7693    if (!typeIsObject(x)) {
   7694      return false;
   7695    }
   7696 
   7697    if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) {
   7698      return false;
   7699    }
   7700 
   7701    return true;
   7702  }
   7703 
   7704  function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {
   7705    var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);
   7706 
   7707    if (shouldPull === false) {
   7708      return undefined;
   7709    }
   7710 
   7711    if (controller._pulling === true) {
   7712      controller._pullAgain = true;
   7713      return undefined;
   7714    }
   7715 
   7716    assert(controller._pullAgain === false);
   7717    controller._pulling = true;
   7718    var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]);
   7719    pullPromise.then(function () {
   7720      controller._pulling = false;
   7721 
   7722      if (controller._pullAgain === true) {
   7723        controller._pullAgain = false;
   7724        return ReadableStreamDefaultControllerCallPullIfNeeded(controller);
   7725      }
   7726 
   7727      return undefined;
   7728    }, function (e) {
   7729      ReadableStreamDefaultControllerErrorIfNeeded(controller, e);
   7730    })["catch"](rethrowAssertionErrorRejection);
   7731    return undefined;
   7732  }
   7733 
   7734  function ReadableStreamDefaultControllerShouldCallPull(controller) {
   7735    var stream = controller._controlledReadableStream;
   7736 
   7737    if (stream._state === 'closed' || stream._state === 'errored') {
   7738      return false;
   7739    }
   7740 
   7741    if (controller._closeRequested === true) {
   7742      return false;
   7743    }
   7744 
   7745    if (controller._started === false) {
   7746      return false;
   7747    }
   7748 
   7749    if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
   7750      return true;
   7751    }
   7752 
   7753    var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);
   7754 
   7755    if (desiredSize > 0) {
   7756      return true;
   7757    }
   7758 
   7759    return false;
   7760  }
   7761 
   7762  function ReadableStreamDefaultControllerClose(controller) {
   7763    var stream = controller._controlledReadableStream;
   7764    assert(controller._closeRequested === false);
   7765    assert(stream._state === 'readable');
   7766    controller._closeRequested = true;
   7767 
   7768    if (controller._queue.length === 0) {
   7769      ReadableStreamClose(stream);
   7770    }
   7771  }
   7772 
   7773  function ReadableStreamDefaultControllerEnqueue(controller, chunk) {
   7774    var stream = controller._controlledReadableStream;
   7775    assert(controller._closeRequested === false);
   7776    assert(stream._state === 'readable');
   7777 
   7778    if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
   7779      ReadableStreamFulfillReadRequest(stream, chunk, false);
   7780    } else {
   7781      var chunkSize = 1;
   7782 
   7783      if (controller._strategySize !== undefined) {
   7784        var strategySize = controller._strategySize;
   7785 
   7786        try {
   7787          chunkSize = strategySize(chunk);
   7788        } catch (chunkSizeE) {
   7789          ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);
   7790          throw chunkSizeE;
   7791        }
   7792      }
   7793 
   7794      try {
   7795        EnqueueValueWithSize(controller, chunk, chunkSize);
   7796      } catch (enqueueE) {
   7797        ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);
   7798        throw enqueueE;
   7799      }
   7800    }
   7801 
   7802    ReadableStreamDefaultControllerCallPullIfNeeded(controller);
   7803    return undefined;
   7804  }
   7805 
   7806  function ReadableStreamDefaultControllerError(controller, e) {
   7807    var stream = controller._controlledReadableStream;
   7808    assert(stream._state === 'readable');
   7809    ResetQueue(controller);
   7810    ReadableStreamError(stream, e);
   7811  }
   7812 
   7813  function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) {
   7814    if (controller._controlledReadableStream._state === 'readable') {
   7815      ReadableStreamDefaultControllerError(controller, e);
   7816    }
   7817  }
   7818 
   7819  function ReadableStreamDefaultControllerGetDesiredSize(controller) {
   7820    var stream = controller._controlledReadableStream;
   7821    var state = stream._state;
   7822 
   7823    if (state === 'errored') {
   7824      return null;
   7825    }
   7826 
   7827    if (state === 'closed') {
   7828      return 0;
   7829    }
   7830 
   7831    return controller._strategyHWM - controller._queueTotalSize;
   7832  }
   7833 
   7834  var ReadableStreamBYOBRequest = function () {
   7835    function ReadableStreamBYOBRequest(controller, view) {
   7836      _classCallCheck(this, ReadableStreamBYOBRequest);
   7837 
   7838      this._associatedReadableByteStreamController = controller;
   7839      this._view = view;
   7840    }
   7841 
   7842    _createClass(ReadableStreamBYOBRequest, [{
   7843      key: 'respond',
   7844      value: function respond(bytesWritten) {
   7845        if (IsReadableStreamBYOBRequest(this) === false) {
   7846          throw byobRequestBrandCheckException('respond');
   7847        }
   7848 
   7849        if (this._associatedReadableByteStreamController === undefined) {
   7850          throw new TypeError('This BYOB request has been invalidated');
   7851        }
   7852 
   7853        ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);
   7854      }
   7855    }, {
   7856      key: 'respondWithNewView',
   7857      value: function respondWithNewView(view) {
   7858        if (IsReadableStreamBYOBRequest(this) === false) {
   7859          throw byobRequestBrandCheckException('respond');
   7860        }
   7861 
   7862        if (this._associatedReadableByteStreamController === undefined) {
   7863          throw new TypeError('This BYOB request has been invalidated');
   7864        }
   7865 
   7866        if (!ArrayBuffer.isView(view)) {
   7867          throw new TypeError('You can only respond with array buffer views');
   7868        }
   7869 
   7870        ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);
   7871      }
   7872    }, {
   7873      key: 'view',
   7874      get: function get() {
   7875        return this._view;
   7876      }
   7877    }]);
   7878 
   7879    return ReadableStreamBYOBRequest;
   7880  }();
   7881 
   7882  var ReadableByteStreamController = function () {
   7883    function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) {
   7884      _classCallCheck(this, ReadableByteStreamController);
   7885 
   7886      if (IsReadableStream(stream) === false) {
   7887        throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source');
   7888      }
   7889 
   7890      if (stream._readableStreamController !== undefined) {
   7891        throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source');
   7892      }
   7893 
   7894      this._controlledReadableStream = stream;
   7895      this._underlyingByteSource = underlyingByteSource;
   7896      this._pullAgain = false;
   7897      this._pulling = false;
   7898      ReadableByteStreamControllerClearPendingPullIntos(this);
   7899      this._queue = this._queueTotalSize = undefined;
   7900      ResetQueue(this);
   7901      this._closeRequested = false;
   7902      this._started = false;
   7903      this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);
   7904      var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;
   7905 
   7906      if (autoAllocateChunkSize !== undefined) {
   7907        if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {
   7908          throw new RangeError('autoAllocateChunkSize must be a positive integer');
   7909        }
   7910      }
   7911 
   7912      this._autoAllocateChunkSize = autoAllocateChunkSize;
   7913      this._pendingPullIntos = [];
   7914      var controller = this;
   7915      var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]);
   7916      Promise.resolve(startResult).then(function () {
   7917        controller._started = true;
   7918        assert(controller._pulling === false);
   7919        assert(controller._pullAgain === false);
   7920        ReadableByteStreamControllerCallPullIfNeeded(controller);
   7921      }, function (r) {
   7922        if (stream._state === 'readable') {
   7923          ReadableByteStreamControllerError(controller, r);
   7924        }
   7925      })["catch"](rethrowAssertionErrorRejection);
   7926    }
   7927 
   7928    _createClass(ReadableByteStreamController, [{
   7929      key: 'close',
   7930      value: function close() {
   7931        if (IsReadableByteStreamController(this) === false) {
   7932          throw byteStreamControllerBrandCheckException('close');
   7933        }
   7934 
   7935        if (this._closeRequested === true) {
   7936          throw new TypeError('The stream has already been closed; do not close it again!');
   7937        }
   7938 
   7939        var state = this._controlledReadableStream._state;
   7940 
   7941        if (state !== 'readable') {
   7942          throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');
   7943        }
   7944 
   7945        ReadableByteStreamControllerClose(this);
   7946      }
   7947    }, {
   7948      key: 'enqueue',
   7949      value: function enqueue(chunk) {
   7950        if (IsReadableByteStreamController(this) === false) {
   7951          throw byteStreamControllerBrandCheckException('enqueue');
   7952        }
   7953 
   7954        if (this._closeRequested === true) {
   7955          throw new TypeError('stream is closed or draining');
   7956        }
   7957 
   7958        var state = this._controlledReadableStream._state;
   7959 
   7960        if (state !== 'readable') {
   7961          throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');
   7962        }
   7963 
   7964        if (!ArrayBuffer.isView(chunk)) {
   7965          throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');
   7966        }
   7967 
   7968        ReadableByteStreamControllerEnqueue(this, chunk);
   7969      }
   7970    }, {
   7971      key: 'error',
   7972      value: function error(e) {
   7973        if (IsReadableByteStreamController(this) === false) {
   7974          throw byteStreamControllerBrandCheckException('error');
   7975        }
   7976 
   7977        var stream = this._controlledReadableStream;
   7978 
   7979        if (stream._state !== 'readable') {
   7980          throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');
   7981        }
   7982 
   7983        ReadableByteStreamControllerError(this, e);
   7984      }
   7985    }, {
   7986      key: '__cancelSteps',
   7987      value: function __cancelSteps(reason) {
   7988        if (this._pendingPullIntos.length > 0) {
   7989          var firstDescriptor = this._pendingPullIntos[0];
   7990          firstDescriptor.bytesFilled = 0;
   7991        }
   7992 
   7993        ResetQueue(this);
   7994        return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]);
   7995      }
   7996    }, {
   7997      key: '__pullSteps',
   7998      value: function __pullSteps() {
   7999        var stream = this._controlledReadableStream;
   8000        assert(ReadableStreamHasDefaultReader(stream) === true);
   8001 
   8002        if (this._queueTotalSize > 0) {
   8003          assert(ReadableStreamGetNumReadRequests(stream) === 0);
   8004 
   8005          var entry = this._queue.shift();
   8006 
   8007          this._queueTotalSize -= entry.byteLength;
   8008          ReadableByteStreamControllerHandleQueueDrain(this);
   8009          var view = void 0;
   8010 
   8011          try {
   8012            view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);
   8013          } catch (viewE) {
   8014            return Promise.reject(viewE);
   8015          }
   8016 
   8017          return Promise.resolve(CreateIterResultObject(view, false));
   8018        }
   8019 
   8020        var autoAllocateChunkSize = this._autoAllocateChunkSize;
   8021 
   8022        if (autoAllocateChunkSize !== undefined) {
   8023          var buffer = void 0;
   8024 
   8025          try {
   8026            buffer = new ArrayBuffer(autoAllocateChunkSize);
   8027          } catch (bufferE) {
   8028            return Promise.reject(bufferE);
   8029          }
   8030 
   8031          var pullIntoDescriptor = {
   8032            buffer: buffer,
   8033            byteOffset: 0,
   8034            byteLength: autoAllocateChunkSize,
   8035            bytesFilled: 0,
   8036            elementSize: 1,
   8037            ctor: Uint8Array,
   8038            readerType: 'default'
   8039          };
   8040 
   8041          this._pendingPullIntos.push(pullIntoDescriptor);
   8042        }
   8043 
   8044        var promise = ReadableStreamAddReadRequest(stream);
   8045        ReadableByteStreamControllerCallPullIfNeeded(this);
   8046        return promise;
   8047      }
   8048    }, {
   8049      key: 'byobRequest',
   8050      get: function get() {
   8051        if (IsReadableByteStreamController(this) === false) {
   8052          throw byteStreamControllerBrandCheckException('byobRequest');
   8053        }
   8054 
   8055        if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {
   8056          var firstDescriptor = this._pendingPullIntos[0];
   8057          var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);
   8058          this._byobRequest = new ReadableStreamBYOBRequest(this, view);
   8059        }
   8060 
   8061        return this._byobRequest;
   8062      }
   8063    }, {
   8064      key: 'desiredSize',
   8065      get: function get() {
   8066        if (IsReadableByteStreamController(this) === false) {
   8067          throw byteStreamControllerBrandCheckException('desiredSize');
   8068        }
   8069 
   8070        return ReadableByteStreamControllerGetDesiredSize(this);
   8071      }
   8072    }]);
   8073 
   8074    return ReadableByteStreamController;
   8075  }();
   8076 
   8077  function IsReadableByteStreamController(x) {
   8078    if (!typeIsObject(x)) {
   8079      return false;
   8080    }
   8081 
   8082    if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) {
   8083      return false;
   8084    }
   8085 
   8086    return true;
   8087  }
   8088 
   8089  function IsReadableStreamBYOBRequest(x) {
   8090    if (!typeIsObject(x)) {
   8091      return false;
   8092    }
   8093 
   8094    if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {
   8095      return false;
   8096    }
   8097 
   8098    return true;
   8099  }
   8100 
   8101  function ReadableByteStreamControllerCallPullIfNeeded(controller) {
   8102    var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);
   8103 
   8104    if (shouldPull === false) {
   8105      return undefined;
   8106    }
   8107 
   8108    if (controller._pulling === true) {
   8109      controller._pullAgain = true;
   8110      return undefined;
   8111    }
   8112 
   8113    assert(controller._pullAgain === false);
   8114    controller._pulling = true;
   8115    var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]);
   8116    pullPromise.then(function () {
   8117      controller._pulling = false;
   8118 
   8119      if (controller._pullAgain === true) {
   8120        controller._pullAgain = false;
   8121        ReadableByteStreamControllerCallPullIfNeeded(controller);
   8122      }
   8123    }, function (e) {
   8124      if (controller._controlledReadableStream._state === 'readable') {
   8125        ReadableByteStreamControllerError(controller, e);
   8126      }
   8127    })["catch"](rethrowAssertionErrorRejection);
   8128    return undefined;
   8129  }
   8130 
   8131  function ReadableByteStreamControllerClearPendingPullIntos(controller) {
   8132    ReadableByteStreamControllerInvalidateBYOBRequest(controller);
   8133    controller._pendingPullIntos = [];
   8134  }
   8135 
   8136  function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {
   8137    assert(stream._state !== 'errored', 'state must not be errored');
   8138    var done = false;
   8139 
   8140    if (stream._state === 'closed') {
   8141      assert(pullIntoDescriptor.bytesFilled === 0);
   8142      done = true;
   8143    }
   8144 
   8145    var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);
   8146 
   8147    if (pullIntoDescriptor.readerType === 'default') {
   8148      ReadableStreamFulfillReadRequest(stream, filledView, done);
   8149    } else {
   8150      assert(pullIntoDescriptor.readerType === 'byob');
   8151      ReadableStreamFulfillReadIntoRequest(stream, filledView, done);
   8152    }
   8153  }
   8154 
   8155  function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {
   8156    var bytesFilled = pullIntoDescriptor.bytesFilled;
   8157    var elementSize = pullIntoDescriptor.elementSize;
   8158    assert(bytesFilled <= pullIntoDescriptor.byteLength);
   8159    assert(bytesFilled % elementSize === 0);
   8160    return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);
   8161  }
   8162 
   8163  function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {
   8164    controller._queue.push({
   8165      buffer: buffer,
   8166      byteOffset: byteOffset,
   8167      byteLength: byteLength
   8168    });
   8169 
   8170    controller._queueTotalSize += byteLength;
   8171  }
   8172 
   8173  function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {
   8174    var elementSize = pullIntoDescriptor.elementSize;
   8175    var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;
   8176    var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);
   8177    var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;
   8178    var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;
   8179    var totalBytesToCopyRemaining = maxBytesToCopy;
   8180    var ready = false;
   8181 
   8182    if (maxAlignedBytes > currentAlignedBytes) {
   8183      totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;
   8184      ready = true;
   8185    }
   8186 
   8187    var queue = controller._queue;
   8188 
   8189    while (totalBytesToCopyRemaining > 0) {
   8190      var headOfQueue = queue[0];
   8191      var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);
   8192      var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;
   8193      ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);
   8194 
   8195      if (headOfQueue.byteLength === bytesToCopy) {
   8196        queue.shift();
   8197      } else {
   8198        headOfQueue.byteOffset += bytesToCopy;
   8199        headOfQueue.byteLength -= bytesToCopy;
   8200      }
   8201 
   8202      controller._queueTotalSize -= bytesToCopy;
   8203      ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);
   8204      totalBytesToCopyRemaining -= bytesToCopy;
   8205    }
   8206 
   8207    if (ready === false) {
   8208      assert(controller._queueTotalSize === 0, 'queue must be empty');
   8209      assert(pullIntoDescriptor.bytesFilled > 0);
   8210      assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize);
   8211    }
   8212 
   8213    return ready;
   8214  }
   8215 
   8216  function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {
   8217    assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor);
   8218    ReadableByteStreamControllerInvalidateBYOBRequest(controller);
   8219    pullIntoDescriptor.bytesFilled += size;
   8220  }
   8221 
   8222  function ReadableByteStreamControllerHandleQueueDrain(controller) {
   8223    assert(controller._controlledReadableStream._state === 'readable');
   8224 
   8225    if (controller._queueTotalSize === 0 && controller._closeRequested === true) {
   8226      ReadableStreamClose(controller._controlledReadableStream);
   8227    } else {
   8228      ReadableByteStreamControllerCallPullIfNeeded(controller);
   8229    }
   8230  }
   8231 
   8232  function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {
   8233    if (controller._byobRequest === undefined) {
   8234      return;
   8235    }
   8236 
   8237    controller._byobRequest._associatedReadableByteStreamController = undefined;
   8238    controller._byobRequest._view = undefined;
   8239    controller._byobRequest = undefined;
   8240  }
   8241 
   8242  function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {
   8243    assert(controller._closeRequested === false);
   8244 
   8245    while (controller._pendingPullIntos.length > 0) {
   8246      if (controller._queueTotalSize === 0) {
   8247        return;
   8248      }
   8249 
   8250      var pullIntoDescriptor = controller._pendingPullIntos[0];
   8251 
   8252      if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {
   8253        ReadableByteStreamControllerShiftPendingPullInto(controller);
   8254        ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);
   8255      }
   8256    }
   8257  }
   8258 
   8259  function ReadableByteStreamControllerPullInto(controller, view) {
   8260    var stream = controller._controlledReadableStream;
   8261    var elementSize = 1;
   8262 
   8263    if (view.constructor !== DataView) {
   8264      elementSize = view.constructor.BYTES_PER_ELEMENT;
   8265    }
   8266 
   8267    var ctor = view.constructor;
   8268    var pullIntoDescriptor = {
   8269      buffer: view.buffer,
   8270      byteOffset: view.byteOffset,
   8271      byteLength: view.byteLength,
   8272      bytesFilled: 0,
   8273      elementSize: elementSize,
   8274      ctor: ctor,
   8275      readerType: 'byob'
   8276    };
   8277 
   8278    if (controller._pendingPullIntos.length > 0) {
   8279      pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);
   8280 
   8281      controller._pendingPullIntos.push(pullIntoDescriptor);
   8282 
   8283      return ReadableStreamAddReadIntoRequest(stream);
   8284    }
   8285 
   8286    if (stream._state === 'closed') {
   8287      var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);
   8288      return Promise.resolve(CreateIterResultObject(emptyView, true));
   8289    }
   8290 
   8291    if (controller._queueTotalSize > 0) {
   8292      if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {
   8293        var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);
   8294        ReadableByteStreamControllerHandleQueueDrain(controller);
   8295        return Promise.resolve(CreateIterResultObject(filledView, false));
   8296      }
   8297 
   8298      if (controller._closeRequested === true) {
   8299        var e = new TypeError('Insufficient bytes to fill elements in the given buffer');
   8300        ReadableByteStreamControllerError(controller, e);
   8301        return Promise.reject(e);
   8302      }
   8303    }
   8304 
   8305    pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);
   8306 
   8307    controller._pendingPullIntos.push(pullIntoDescriptor);
   8308 
   8309    var promise = ReadableStreamAddReadIntoRequest(stream);
   8310    ReadableByteStreamControllerCallPullIfNeeded(controller);
   8311    return promise;
   8312  }
   8313 
   8314  function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {
   8315    firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);
   8316    assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0');
   8317    var stream = controller._controlledReadableStream;
   8318 
   8319    if (ReadableStreamHasBYOBReader(stream) === true) {
   8320      while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {
   8321        var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);
   8322        ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);
   8323      }
   8324    }
   8325  }
   8326 
   8327  function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {
   8328    if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {
   8329      throw new RangeError('bytesWritten out of range');
   8330    }
   8331 
   8332    ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);
   8333 
   8334    if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {
   8335      return;
   8336    }
   8337 
   8338    ReadableByteStreamControllerShiftPendingPullInto(controller);
   8339    var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;
   8340 
   8341    if (remainderSize > 0) {
   8342      var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;
   8343      var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);
   8344      ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);
   8345    }
   8346 
   8347    pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);
   8348    pullIntoDescriptor.bytesFilled -= remainderSize;
   8349    ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);
   8350    ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);
   8351  }
   8352 
   8353  function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {
   8354    var firstDescriptor = controller._pendingPullIntos[0];
   8355    var stream = controller._controlledReadableStream;
   8356 
   8357    if (stream._state === 'closed') {
   8358      if (bytesWritten !== 0) {
   8359        throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');
   8360      }
   8361 
   8362      ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);
   8363    } else {
   8364      assert(stream._state === 'readable');
   8365      ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);
   8366    }
   8367  }
   8368 
   8369  function ReadableByteStreamControllerShiftPendingPullInto(controller) {
   8370    var descriptor = controller._pendingPullIntos.shift();
   8371 
   8372    ReadableByteStreamControllerInvalidateBYOBRequest(controller);
   8373    return descriptor;
   8374  }
   8375 
   8376  function ReadableByteStreamControllerShouldCallPull(controller) {
   8377    var stream = controller._controlledReadableStream;
   8378 
   8379    if (stream._state !== 'readable') {
   8380      return false;
   8381    }
   8382 
   8383    if (controller._closeRequested === true) {
   8384      return false;
   8385    }
   8386 
   8387    if (controller._started === false) {
   8388      return false;
   8389    }
   8390 
   8391    if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
   8392      return true;
   8393    }
   8394 
   8395    if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {
   8396      return true;
   8397    }
   8398 
   8399    if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) {
   8400      return true;
   8401    }
   8402 
   8403    return false;
   8404  }
   8405 
   8406  function ReadableByteStreamControllerClose(controller) {
   8407    var stream = controller._controlledReadableStream;
   8408    assert(controller._closeRequested === false);
   8409    assert(stream._state === 'readable');
   8410 
   8411    if (controller._queueTotalSize > 0) {
   8412      controller._closeRequested = true;
   8413      return;
   8414    }
   8415 
   8416    if (controller._pendingPullIntos.length > 0) {
   8417      var firstPendingPullInto = controller._pendingPullIntos[0];
   8418 
   8419      if (firstPendingPullInto.bytesFilled > 0) {
   8420        var e = new TypeError('Insufficient bytes to fill elements in the given buffer');
   8421        ReadableByteStreamControllerError(controller, e);
   8422        throw e;
   8423      }
   8424    }
   8425 
   8426    ReadableStreamClose(stream);
   8427  }
   8428 
   8429  function ReadableByteStreamControllerEnqueue(controller, chunk) {
   8430    var stream = controller._controlledReadableStream;
   8431    assert(controller._closeRequested === false);
   8432    assert(stream._state === 'readable');
   8433    var buffer = chunk.buffer;
   8434    var byteOffset = chunk.byteOffset;
   8435    var byteLength = chunk.byteLength;
   8436    var transferredBuffer = TransferArrayBuffer(buffer);
   8437 
   8438    if (ReadableStreamHasDefaultReader(stream) === true) {
   8439      if (ReadableStreamGetNumReadRequests(stream) === 0) {
   8440        ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
   8441      } else {
   8442        assert(controller._queue.length === 0);
   8443        var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);
   8444        ReadableStreamFulfillReadRequest(stream, transferredView, false);
   8445      }
   8446    } else if (ReadableStreamHasBYOBReader(stream) === true) {
   8447      ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
   8448      ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);
   8449    } else {
   8450      assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked');
   8451      ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
   8452    }
   8453  }
   8454 
   8455  function ReadableByteStreamControllerError(controller, e) {
   8456    var stream = controller._controlledReadableStream;
   8457    assert(stream._state === 'readable');
   8458    ReadableByteStreamControllerClearPendingPullIntos(controller);
   8459    ResetQueue(controller);
   8460    ReadableStreamError(stream, e);
   8461  }
   8462 
   8463  function ReadableByteStreamControllerGetDesiredSize(controller) {
   8464    var stream = controller._controlledReadableStream;
   8465    var state = stream._state;
   8466 
   8467    if (state === 'errored') {
   8468      return null;
   8469    }
   8470 
   8471    if (state === 'closed') {
   8472      return 0;
   8473    }
   8474 
   8475    return controller._strategyHWM - controller._queueTotalSize;
   8476  }
   8477 
   8478  function ReadableByteStreamControllerRespond(controller, bytesWritten) {
   8479    bytesWritten = Number(bytesWritten);
   8480 
   8481    if (IsFiniteNonNegativeNumber(bytesWritten) === false) {
   8482      throw new RangeError('bytesWritten must be a finite');
   8483    }
   8484 
   8485    assert(controller._pendingPullIntos.length > 0);
   8486    ReadableByteStreamControllerRespondInternal(controller, bytesWritten);
   8487  }
   8488 
   8489  function ReadableByteStreamControllerRespondWithNewView(controller, view) {
   8490    assert(controller._pendingPullIntos.length > 0);
   8491    var firstDescriptor = controller._pendingPullIntos[0];
   8492 
   8493    if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {
   8494      throw new RangeError('The region specified by view does not match byobRequest');
   8495    }
   8496 
   8497    if (firstDescriptor.byteLength !== view.byteLength) {
   8498      throw new RangeError('The buffer of view has different capacity than byobRequest');
   8499    }
   8500 
   8501    firstDescriptor.buffer = view.buffer;
   8502    ReadableByteStreamControllerRespondInternal(controller, view.byteLength);
   8503  }
   8504 
   8505  function streamBrandCheckException(name) {
   8506    return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream');
   8507  }
   8508 
   8509  function readerLockException(name) {
   8510    return new TypeError('Cannot ' + name + ' a stream using a released reader');
   8511  }
   8512 
   8513  function defaultReaderBrandCheckException(name) {
   8514    return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader');
   8515  }
   8516 
   8517  function defaultReaderClosedPromiseInitialize(reader) {
   8518    reader._closedPromise = new Promise(function (resolve, reject) {
   8519      reader._closedPromise_resolve = resolve;
   8520      reader._closedPromise_reject = reject;
   8521    });
   8522  }
   8523 
   8524  function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {
   8525    reader._closedPromise = Promise.reject(reason);
   8526    reader._closedPromise_resolve = undefined;
   8527    reader._closedPromise_reject = undefined;
   8528  }
   8529 
   8530  function defaultReaderClosedPromiseInitializeAsResolved(reader) {
   8531    reader._closedPromise = Promise.resolve(undefined);
   8532    reader._closedPromise_resolve = undefined;
   8533    reader._closedPromise_reject = undefined;
   8534  }
   8535 
   8536  function defaultReaderClosedPromiseReject(reader, reason) {
   8537    assert(reader._closedPromise_resolve !== undefined);
   8538    assert(reader._closedPromise_reject !== undefined);
   8539 
   8540    reader._closedPromise_reject(reason);
   8541 
   8542    reader._closedPromise_resolve = undefined;
   8543    reader._closedPromise_reject = undefined;
   8544  }
   8545 
   8546  function defaultReaderClosedPromiseResetToRejected(reader, reason) {
   8547    assert(reader._closedPromise_resolve === undefined);
   8548    assert(reader._closedPromise_reject === undefined);
   8549    reader._closedPromise = Promise.reject(reason);
   8550  }
   8551 
   8552  function defaultReaderClosedPromiseResolve(reader) {
   8553    assert(reader._closedPromise_resolve !== undefined);
   8554    assert(reader._closedPromise_reject !== undefined);
   8555 
   8556    reader._closedPromise_resolve(undefined);
   8557 
   8558    reader._closedPromise_resolve = undefined;
   8559    reader._closedPromise_reject = undefined;
   8560  }
   8561 
   8562  function byobReaderBrandCheckException(name) {
   8563    return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader');
   8564  }
   8565 
   8566  function defaultControllerBrandCheckException(name) {
   8567    return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController');
   8568  }
   8569 
   8570  function byobRequestBrandCheckException(name) {
   8571    return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest');
   8572  }
   8573 
   8574  function byteStreamControllerBrandCheckException(name) {
   8575    return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController');
   8576  }
   8577 
   8578  function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) {
   8579    try {
   8580      Promise.prototype.then.call(promise, undefined, function () {});
   8581    } catch (e) {}
   8582  }
   8583 }, function (module, exports, __w_pdfjs_require__) {
   8584  "use strict";
   8585 
   8586  var transformStream = __w_pdfjs_require__(6);
   8587 
   8588  var readableStream = __w_pdfjs_require__(4);
   8589 
   8590  var writableStream = __w_pdfjs_require__(2);
   8591 
   8592  exports.TransformStream = transformStream.TransformStream;
   8593  exports.ReadableStream = readableStream.ReadableStream;
   8594  exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed;
   8595  exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose;
   8596  exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue;
   8597  exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError;
   8598  exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize;
   8599  exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter;
   8600  exports.IsWritableStream = writableStream.IsWritableStream;
   8601  exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked;
   8602  exports.WritableStream = writableStream.WritableStream;
   8603  exports.WritableStreamAbort = writableStream.WritableStreamAbort;
   8604  exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError;
   8605  exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation;
   8606  exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease;
   8607  exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite;
   8608 }, function (module, exports, __w_pdfjs_require__) {
   8609  "use strict";
   8610 
   8611  var _createClass = function () {
   8612    function defineProperties(target, props) {
   8613      for (var i = 0; i < props.length; i++) {
   8614        var descriptor = props[i];
   8615        descriptor.enumerable = descriptor.enumerable || false;
   8616        descriptor.configurable = true;
   8617        if ("value" in descriptor) descriptor.writable = true;
   8618        Object.defineProperty(target, descriptor.key, descriptor);
   8619      }
   8620    }
   8621 
   8622    return function (Constructor, protoProps, staticProps) {
   8623      if (protoProps) defineProperties(Constructor.prototype, protoProps);
   8624      if (staticProps) defineProperties(Constructor, staticProps);
   8625      return Constructor;
   8626    };
   8627  }();
   8628 
   8629  function _classCallCheck(instance, Constructor) {
   8630    if (!(instance instanceof Constructor)) {
   8631      throw new TypeError("Cannot call a class as a function");
   8632    }
   8633  }
   8634 
   8635  var _require = __w_pdfjs_require__(1),
   8636      assert = _require.assert;
   8637 
   8638  var _require2 = __w_pdfjs_require__(0),
   8639      InvokeOrNoop = _require2.InvokeOrNoop,
   8640      PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback,
   8641      PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop,
   8642      typeIsObject = _require2.typeIsObject;
   8643 
   8644  var _require3 = __w_pdfjs_require__(4),
   8645      ReadableStream = _require3.ReadableStream,
   8646      ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose,
   8647      ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue,
   8648      ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError,
   8649      ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize;
   8650 
   8651  var _require4 = __w_pdfjs_require__(2),
   8652      WritableStream = _require4.WritableStream,
   8653      WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError;
   8654 
   8655  function TransformStreamCloseReadable(transformStream) {
   8656    if (transformStream._errored === true) {
   8657      throw new TypeError('TransformStream is already errored');
   8658    }
   8659 
   8660    if (transformStream._readableClosed === true) {
   8661      throw new TypeError('Readable side is already closed');
   8662    }
   8663 
   8664    TransformStreamCloseReadableInternal(transformStream);
   8665  }
   8666 
   8667  function TransformStreamEnqueueToReadable(transformStream, chunk) {
   8668    if (transformStream._errored === true) {
   8669      throw new TypeError('TransformStream is already errored');
   8670    }
   8671 
   8672    if (transformStream._readableClosed === true) {
   8673      throw new TypeError('Readable side is already closed');
   8674    }
   8675 
   8676    var controller = transformStream._readableController;
   8677 
   8678    try {
   8679      ReadableStreamDefaultControllerEnqueue(controller, chunk);
   8680    } catch (e) {
   8681      transformStream._readableClosed = true;
   8682      TransformStreamErrorIfNeeded(transformStream, e);
   8683      throw transformStream._storedError;
   8684    }
   8685 
   8686    var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);
   8687    var maybeBackpressure = desiredSize <= 0;
   8688 
   8689    if (maybeBackpressure === true && transformStream._backpressure === false) {
   8690      TransformStreamSetBackpressure(transformStream, true);
   8691    }
   8692  }
   8693 
   8694  function TransformStreamError(transformStream, e) {
   8695    if (transformStream._errored === true) {
   8696      throw new TypeError('TransformStream is already errored');
   8697    }
   8698 
   8699    TransformStreamErrorInternal(transformStream, e);
   8700  }
   8701 
   8702  function TransformStreamCloseReadableInternal(transformStream) {
   8703    assert(transformStream._errored === false);
   8704    assert(transformStream._readableClosed === false);
   8705 
   8706    try {
   8707      ReadableStreamDefaultControllerClose(transformStream._readableController);
   8708    } catch (e) {
   8709      assert(false);
   8710    }
   8711 
   8712    transformStream._readableClosed = true;
   8713  }
   8714 
   8715  function TransformStreamErrorIfNeeded(transformStream, e) {
   8716    if (transformStream._errored === false) {
   8717      TransformStreamErrorInternal(transformStream, e);
   8718    }
   8719  }
   8720 
   8721  function TransformStreamErrorInternal(transformStream, e) {
   8722    assert(transformStream._errored === false);
   8723    transformStream._errored = true;
   8724    transformStream._storedError = e;
   8725 
   8726    if (transformStream._writableDone === false) {
   8727      WritableStreamDefaultControllerError(transformStream._writableController, e);
   8728    }
   8729 
   8730    if (transformStream._readableClosed === false) {
   8731      ReadableStreamDefaultControllerError(transformStream._readableController, e);
   8732    }
   8733  }
   8734 
   8735  function TransformStreamReadableReadyPromise(transformStream) {
   8736    assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');
   8737 
   8738    if (transformStream._backpressure === false) {
   8739      return Promise.resolve();
   8740    }
   8741 
   8742    assert(transformStream._backpressure === true, '_backpressure should have been initialized');
   8743    return transformStream._backpressureChangePromise;
   8744  }
   8745 
   8746  function TransformStreamSetBackpressure(transformStream, backpressure) {
   8747    assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed');
   8748 
   8749    if (transformStream._backpressureChangePromise !== undefined) {
   8750      transformStream._backpressureChangePromise_resolve(backpressure);
   8751    }
   8752 
   8753    transformStream._backpressureChangePromise = new Promise(function (resolve) {
   8754      transformStream._backpressureChangePromise_resolve = resolve;
   8755    });
   8756 
   8757    transformStream._backpressureChangePromise.then(function (resolution) {
   8758      assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed');
   8759    });
   8760 
   8761    transformStream._backpressure = backpressure;
   8762  }
   8763 
   8764  function TransformStreamDefaultTransform(chunk, transformStreamController) {
   8765    var transformStream = transformStreamController._controlledTransformStream;
   8766    TransformStreamEnqueueToReadable(transformStream, chunk);
   8767    return Promise.resolve();
   8768  }
   8769 
   8770  function TransformStreamTransform(transformStream, chunk) {
   8771    assert(transformStream._errored === false);
   8772    assert(transformStream._transforming === false);
   8773    assert(transformStream._backpressure === false);
   8774    transformStream._transforming = true;
   8775    var transformer = transformStream._transformer;
   8776    var controller = transformStream._transformStreamController;
   8777    var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]);
   8778    return transformPromise.then(function () {
   8779      transformStream._transforming = false;
   8780      return TransformStreamReadableReadyPromise(transformStream);
   8781    }, function (e) {
   8782      TransformStreamErrorIfNeeded(transformStream, e);
   8783      return Promise.reject(e);
   8784    });
   8785  }
   8786 
   8787  function IsTransformStreamDefaultController(x) {
   8788    if (!typeIsObject(x)) {
   8789      return false;
   8790    }
   8791 
   8792    if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {
   8793      return false;
   8794    }
   8795 
   8796    return true;
   8797  }
   8798 
   8799  function IsTransformStream(x) {
   8800    if (!typeIsObject(x)) {
   8801      return false;
   8802    }
   8803 
   8804    if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {
   8805      return false;
   8806    }
   8807 
   8808    return true;
   8809  }
   8810 
   8811  var TransformStreamSink = function () {
   8812    function TransformStreamSink(transformStream, startPromise) {
   8813      _classCallCheck(this, TransformStreamSink);
   8814 
   8815      this._transformStream = transformStream;
   8816      this._startPromise = startPromise;
   8817    }
   8818 
   8819    _createClass(TransformStreamSink, [{
   8820      key: 'start',
   8821      value: function start(c) {
   8822        var transformStream = this._transformStream;
   8823        transformStream._writableController = c;
   8824        return this._startPromise.then(function () {
   8825          return TransformStreamReadableReadyPromise(transformStream);
   8826        });
   8827      }
   8828    }, {
   8829      key: 'write',
   8830      value: function write(chunk) {
   8831        var transformStream = this._transformStream;
   8832        return TransformStreamTransform(transformStream, chunk);
   8833      }
   8834    }, {
   8835      key: 'abort',
   8836      value: function abort() {
   8837        var transformStream = this._transformStream;
   8838        transformStream._writableDone = true;
   8839        TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted'));
   8840      }
   8841    }, {
   8842      key: 'close',
   8843      value: function close() {
   8844        var transformStream = this._transformStream;
   8845        assert(transformStream._transforming === false);
   8846        transformStream._writableDone = true;
   8847        var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]);
   8848        return flushPromise.then(function () {
   8849          if (transformStream._errored === true) {
   8850            return Promise.reject(transformStream._storedError);
   8851          }
   8852 
   8853          if (transformStream._readableClosed === false) {
   8854            TransformStreamCloseReadableInternal(transformStream);
   8855          }
   8856 
   8857          return Promise.resolve();
   8858        })["catch"](function (r) {
   8859          TransformStreamErrorIfNeeded(transformStream, r);
   8860          return Promise.reject(transformStream._storedError);
   8861        });
   8862      }
   8863    }]);
   8864 
   8865    return TransformStreamSink;
   8866  }();
   8867 
   8868  var TransformStreamSource = function () {
   8869    function TransformStreamSource(transformStream, startPromise) {
   8870      _classCallCheck(this, TransformStreamSource);
   8871 
   8872      this._transformStream = transformStream;
   8873      this._startPromise = startPromise;
   8874    }
   8875 
   8876    _createClass(TransformStreamSource, [{
   8877      key: 'start',
   8878      value: function start(c) {
   8879        var transformStream = this._transformStream;
   8880        transformStream._readableController = c;
   8881        return this._startPromise.then(function () {
   8882          assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');
   8883 
   8884          if (transformStream._backpressure === true) {
   8885            return Promise.resolve();
   8886          }
   8887 
   8888          assert(transformStream._backpressure === false, '_backpressure should have been initialized');
   8889          return transformStream._backpressureChangePromise;
   8890        });
   8891      }
   8892    }, {
   8893      key: 'pull',
   8894      value: function pull() {
   8895        var transformStream = this._transformStream;
   8896        assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false');
   8897        assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');
   8898        TransformStreamSetBackpressure(transformStream, false);
   8899        return transformStream._backpressureChangePromise;
   8900      }
   8901    }, {
   8902      key: 'cancel',
   8903      value: function cancel() {
   8904        var transformStream = this._transformStream;
   8905        transformStream._readableClosed = true;
   8906        TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled'));
   8907      }
   8908    }]);
   8909 
   8910    return TransformStreamSource;
   8911  }();
   8912 
   8913  var TransformStreamDefaultController = function () {
   8914    function TransformStreamDefaultController(transformStream) {
   8915      _classCallCheck(this, TransformStreamDefaultController);
   8916 
   8917      if (IsTransformStream(transformStream) === false) {
   8918        throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance');
   8919      }
   8920 
   8921      if (transformStream._transformStreamController !== undefined) {
   8922        throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor');
   8923      }
   8924 
   8925      this._controlledTransformStream = transformStream;
   8926    }
   8927 
   8928    _createClass(TransformStreamDefaultController, [{
   8929      key: 'enqueue',
   8930      value: function enqueue(chunk) {
   8931        if (IsTransformStreamDefaultController(this) === false) {
   8932          throw defaultControllerBrandCheckException('enqueue');
   8933        }
   8934 
   8935        TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk);
   8936      }
   8937    }, {
   8938      key: 'close',
   8939      value: function close() {
   8940        if (IsTransformStreamDefaultController(this) === false) {
   8941          throw defaultControllerBrandCheckException('close');
   8942        }
   8943 
   8944        TransformStreamCloseReadable(this._controlledTransformStream);
   8945      }
   8946    }, {
   8947      key: 'error',
   8948      value: function error(reason) {
   8949        if (IsTransformStreamDefaultController(this) === false) {
   8950          throw defaultControllerBrandCheckException('error');
   8951        }
   8952 
   8953        TransformStreamError(this._controlledTransformStream, reason);
   8954      }
   8955    }, {
   8956      key: 'desiredSize',
   8957      get: function get() {
   8958        if (IsTransformStreamDefaultController(this) === false) {
   8959          throw defaultControllerBrandCheckException('desiredSize');
   8960        }
   8961 
   8962        var transformStream = this._controlledTransformStream;
   8963        var readableController = transformStream._readableController;
   8964        return ReadableStreamDefaultControllerGetDesiredSize(readableController);
   8965      }
   8966    }]);
   8967 
   8968    return TransformStreamDefaultController;
   8969  }();
   8970 
   8971  var TransformStream = function () {
   8972    function TransformStream() {
   8973      var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
   8974 
   8975      _classCallCheck(this, TransformStream);
   8976 
   8977      this._transformer = transformer;
   8978      var readableStrategy = transformer.readableStrategy,
   8979          writableStrategy = transformer.writableStrategy;
   8980      this._transforming = false;
   8981      this._errored = false;
   8982      this._storedError = undefined;
   8983      this._writableController = undefined;
   8984      this._readableController = undefined;
   8985      this._transformStreamController = undefined;
   8986      this._writableDone = false;
   8987      this._readableClosed = false;
   8988      this._backpressure = undefined;
   8989      this._backpressureChangePromise = undefined;
   8990      this._backpressureChangePromise_resolve = undefined;
   8991      this._transformStreamController = new TransformStreamDefaultController(this);
   8992      var startPromise_resolve = void 0;
   8993      var startPromise = new Promise(function (resolve) {
   8994        startPromise_resolve = resolve;
   8995      });
   8996      var source = new TransformStreamSource(this, startPromise);
   8997      this._readable = new ReadableStream(source, readableStrategy);
   8998      var sink = new TransformStreamSink(this, startPromise);
   8999      this._writable = new WritableStream(sink, writableStrategy);
   9000      assert(this._writableController !== undefined);
   9001      assert(this._readableController !== undefined);
   9002      var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController);
   9003      TransformStreamSetBackpressure(this, desiredSize <= 0);
   9004      var transformStream = this;
   9005      var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]);
   9006      startPromise_resolve(startResult);
   9007      startPromise["catch"](function (e) {
   9008        if (transformStream._errored === false) {
   9009          transformStream._errored = true;
   9010          transformStream._storedError = e;
   9011        }
   9012      });
   9013    }
   9014 
   9015    _createClass(TransformStream, [{
   9016      key: 'readable',
   9017      get: function get() {
   9018        if (IsTransformStream(this) === false) {
   9019          throw streamBrandCheckException('readable');
   9020        }
   9021 
   9022        return this._readable;
   9023      }
   9024    }, {
   9025      key: 'writable',
   9026      get: function get() {
   9027        if (IsTransformStream(this) === false) {
   9028          throw streamBrandCheckException('writable');
   9029        }
   9030 
   9031        return this._writable;
   9032      }
   9033    }]);
   9034 
   9035    return TransformStream;
   9036  }();
   9037 
   9038  module.exports = {
   9039    TransformStream: TransformStream
   9040  };
   9041 
   9042  function defaultControllerBrandCheckException(name) {
   9043    return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController');
   9044  }
   9045 
   9046  function streamBrandCheckException(name) {
   9047    return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream');
   9048  }
   9049 }, function (module, exports, __w_pdfjs_require__) {
   9050  module.exports = __w_pdfjs_require__(5);
   9051 }]));
   9052 
   9053 /***/ }),
   9054 /* 145 */
   9055 /***/ (function(module, exports, __w_pdfjs_require__) {
   9056 
   9057 "use strict";
   9058 
   9059 
   9060 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
   9061 
   9062 {
   9063  var isURLSupported = false;
   9064 
   9065  try {
   9066    if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) {
   9067      var u = new URL('b', 'http://a');
   9068      u.pathname = 'c%20d';
   9069      isURLSupported = u.href === 'http://a/c%20d';
   9070    }
   9071  } catch (ex) {}
   9072 
   9073  if (isURLSupported) {
   9074    exports.URL = URL;
   9075  } else {
   9076    var PolyfillURL = __w_pdfjs_require__(146).URL;
   9077 
   9078    var OriginalURL = __w_pdfjs_require__(3).URL;
   9079 
   9080    if (OriginalURL) {
   9081      PolyfillURL.createObjectURL = function (blob) {
   9082        return OriginalURL.createObjectURL.apply(OriginalURL, arguments);
   9083      };
   9084 
   9085      PolyfillURL.revokeObjectURL = function (url) {
   9086        OriginalURL.revokeObjectURL(url);
   9087      };
   9088    }
   9089 
   9090    exports.URL = PolyfillURL;
   9091  }
   9092 }
   9093 
   9094 /***/ }),
   9095 /* 146 */
   9096 /***/ (function(module, exports, __w_pdfjs_require__) {
   9097 
   9098 "use strict";
   9099 
   9100 
   9101 (function URLConstructorClosure() {
   9102  'use strict';
   9103 
   9104  var relative = Object.create(null);
   9105  relative['ftp'] = 21;
   9106  relative['file'] = 0;
   9107  relative['gopher'] = 70;
   9108  relative['http'] = 80;
   9109  relative['https'] = 443;
   9110  relative['ws'] = 80;
   9111  relative['wss'] = 443;
   9112  var relativePathDotMapping = Object.create(null);
   9113  relativePathDotMapping['%2e'] = '.';
   9114  relativePathDotMapping['.%2e'] = '..';
   9115  relativePathDotMapping['%2e.'] = '..';
   9116  relativePathDotMapping['%2e%2e'] = '..';
   9117 
   9118  function isRelativeScheme(scheme) {
   9119    return relative[scheme] !== undefined;
   9120  }
   9121 
   9122  function invalid() {
   9123    clear.call(this);
   9124    this._isInvalid = true;
   9125  }
   9126 
   9127  function IDNAToASCII(h) {
   9128    if (h === '') {
   9129      invalid.call(this);
   9130    }
   9131 
   9132    return h.toLowerCase();
   9133  }
   9134 
   9135  function percentEscape(c) {
   9136    var unicode = c.charCodeAt(0);
   9137 
   9138    if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) {
   9139      return c;
   9140    }
   9141 
   9142    return encodeURIComponent(c);
   9143  }
   9144 
   9145  function percentEscapeQuery(c) {
   9146    var unicode = c.charCodeAt(0);
   9147 
   9148    if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) {
   9149      return c;
   9150    }
   9151 
   9152    return encodeURIComponent(c);
   9153  }
   9154 
   9155  var EOF,
   9156      ALPHA = /[a-zA-Z]/,
   9157      ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/;
   9158 
   9159  function parse(input, stateOverride, base) {
   9160    function err(message) {
   9161      errors.push(message);
   9162    }
   9163 
   9164    var state = stateOverride || 'scheme start',
   9165        cursor = 0,
   9166        buffer = '',
   9167        seenAt = false,
   9168        seenBracket = false,
   9169        errors = [];
   9170 
   9171    loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) {
   9172      var c = input[cursor];
   9173 
   9174      switch (state) {
   9175        case 'scheme start':
   9176          if (c && ALPHA.test(c)) {
   9177            buffer += c.toLowerCase();
   9178            state = 'scheme';
   9179          } else if (!stateOverride) {
   9180            buffer = '';
   9181            state = 'no scheme';
   9182            continue;
   9183          } else {
   9184            err('Invalid scheme.');
   9185            break loop;
   9186          }
   9187 
   9188          break;
   9189 
   9190        case 'scheme':
   9191          if (c && ALPHANUMERIC.test(c)) {
   9192            buffer += c.toLowerCase();
   9193          } else if (c === ':') {
   9194            this._scheme = buffer;
   9195            buffer = '';
   9196 
   9197            if (stateOverride) {
   9198              break loop;
   9199            }
   9200 
   9201            if (isRelativeScheme(this._scheme)) {
   9202              this._isRelative = true;
   9203            }
   9204 
   9205            if (this._scheme === 'file') {
   9206              state = 'relative';
   9207            } else if (this._isRelative && base && base._scheme === this._scheme) {
   9208              state = 'relative or authority';
   9209            } else if (this._isRelative) {
   9210              state = 'authority first slash';
   9211            } else {
   9212              state = 'scheme data';
   9213            }
   9214          } else if (!stateOverride) {
   9215            buffer = '';
   9216            cursor = 0;
   9217            state = 'no scheme';
   9218            continue;
   9219          } else if (c === EOF) {
   9220            break loop;
   9221          } else {
   9222            err('Code point not allowed in scheme: ' + c);
   9223            break loop;
   9224          }
   9225 
   9226          break;
   9227 
   9228        case 'scheme data':
   9229          if (c === '?') {
   9230            this._query = '?';
   9231            state = 'query';
   9232          } else if (c === '#') {
   9233            this._fragment = '#';
   9234            state = 'fragment';
   9235          } else {
   9236            if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') {
   9237              this._schemeData += percentEscape(c);
   9238            }
   9239          }
   9240 
   9241          break;
   9242 
   9243        case 'no scheme':
   9244          if (!base || !isRelativeScheme(base._scheme)) {
   9245            err('Missing scheme.');
   9246            invalid.call(this);
   9247          } else {
   9248            state = 'relative';
   9249            continue;
   9250          }
   9251 
   9252          break;
   9253 
   9254        case 'relative or authority':
   9255          if (c === '/' && input[cursor + 1] === '/') {
   9256            state = 'authority ignore slashes';
   9257          } else {
   9258            err('Expected /, got: ' + c);
   9259            state = 'relative';
   9260            continue;
   9261          }
   9262 
   9263          break;
   9264 
   9265        case 'relative':
   9266          this._isRelative = true;
   9267 
   9268          if (this._scheme !== 'file') {
   9269            this._scheme = base._scheme;
   9270          }
   9271 
   9272          if (c === EOF) {
   9273            this._host = base._host;
   9274            this._port = base._port;
   9275            this._path = base._path.slice();
   9276            this._query = base._query;
   9277            this._username = base._username;
   9278            this._password = base._password;
   9279            break loop;
   9280          } else if (c === '/' || c === '\\') {
   9281            if (c === '\\') {
   9282              err('\\ is an invalid code point.');
   9283            }
   9284 
   9285            state = 'relative slash';
   9286          } else if (c === '?') {
   9287            this._host = base._host;
   9288            this._port = base._port;
   9289            this._path = base._path.slice();
   9290            this._query = '?';
   9291            this._username = base._username;
   9292            this._password = base._password;
   9293            state = 'query';
   9294          } else if (c === '#') {
   9295            this._host = base._host;
   9296            this._port = base._port;
   9297            this._path = base._path.slice();
   9298            this._query = base._query;
   9299            this._fragment = '#';
   9300            this._username = base._username;
   9301            this._password = base._password;
   9302            state = 'fragment';
   9303          } else {
   9304            var nextC = input[cursor + 1];
   9305            var nextNextC = input[cursor + 2];
   9306 
   9307            if (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\' && nextNextC !== '?' && nextNextC !== '#') {
   9308              this._host = base._host;
   9309              this._port = base._port;
   9310              this._username = base._username;
   9311              this._password = base._password;
   9312              this._path = base._path.slice();
   9313 
   9314              this._path.pop();
   9315            }
   9316 
   9317            state = 'relative path';
   9318            continue;
   9319          }
   9320 
   9321          break;
   9322 
   9323        case 'relative slash':
   9324          if (c === '/' || c === '\\') {
   9325            if (c === '\\') {
   9326              err('\\ is an invalid code point.');
   9327            }
   9328 
   9329            if (this._scheme === 'file') {
   9330              state = 'file host';
   9331            } else {
   9332              state = 'authority ignore slashes';
   9333            }
   9334          } else {
   9335            if (this._scheme !== 'file') {
   9336              this._host = base._host;
   9337              this._port = base._port;
   9338              this._username = base._username;
   9339              this._password = base._password;
   9340            }
   9341 
   9342            state = 'relative path';
   9343            continue;
   9344          }
   9345 
   9346          break;
   9347 
   9348        case 'authority first slash':
   9349          if (c === '/') {
   9350            state = 'authority second slash';
   9351          } else {
   9352            err('Expected \'/\', got: ' + c);
   9353            state = 'authority ignore slashes';
   9354            continue;
   9355          }
   9356 
   9357          break;
   9358 
   9359        case 'authority second slash':
   9360          state = 'authority ignore slashes';
   9361 
   9362          if (c !== '/') {
   9363            err('Expected \'/\', got: ' + c);
   9364            continue;
   9365          }
   9366 
   9367          break;
   9368 
   9369        case 'authority ignore slashes':
   9370          if (c !== '/' && c !== '\\') {
   9371            state = 'authority';
   9372            continue;
   9373          } else {
   9374            err('Expected authority, got: ' + c);
   9375          }
   9376 
   9377          break;
   9378 
   9379        case 'authority':
   9380          if (c === '@') {
   9381            if (seenAt) {
   9382              err('@ already seen.');
   9383              buffer += '%40';
   9384            }
   9385 
   9386            seenAt = true;
   9387 
   9388            for (var i = 0; i < buffer.length; i++) {
   9389              var cp = buffer[i];
   9390 
   9391              if (cp === '\t' || cp === '\n' || cp === '\r') {
   9392                err('Invalid whitespace in authority.');
   9393                continue;
   9394              }
   9395 
   9396              if (cp === ':' && this._password === null) {
   9397                this._password = '';
   9398                continue;
   9399              }
   9400 
   9401              var tempC = percentEscape(cp);
   9402 
   9403              if (this._password !== null) {
   9404                this._password += tempC;
   9405              } else {
   9406                this._username += tempC;
   9407              }
   9408            }
   9409 
   9410            buffer = '';
   9411          } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') {
   9412            cursor -= buffer.length;
   9413            buffer = '';
   9414            state = 'host';
   9415            continue;
   9416          } else {
   9417            buffer += c;
   9418          }
   9419 
   9420          break;
   9421 
   9422        case 'file host':
   9423          if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') {
   9424            if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) {
   9425              state = 'relative path';
   9426            } else if (buffer.length === 0) {
   9427              state = 'relative path start';
   9428            } else {
   9429              this._host = IDNAToASCII.call(this, buffer);
   9430              buffer = '';
   9431              state = 'relative path start';
   9432            }
   9433 
   9434            continue;
   9435          } else if (c === '\t' || c === '\n' || c === '\r') {
   9436            err('Invalid whitespace in file host.');
   9437          } else {
   9438            buffer += c;
   9439          }
   9440 
   9441          break;
   9442 
   9443        case 'host':
   9444        case 'hostname':
   9445          if (c === ':' && !seenBracket) {
   9446            this._host = IDNAToASCII.call(this, buffer);
   9447            buffer = '';
   9448            state = 'port';
   9449 
   9450            if (stateOverride === 'hostname') {
   9451              break loop;
   9452            }
   9453          } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') {
   9454            this._host = IDNAToASCII.call(this, buffer);
   9455            buffer = '';
   9456            state = 'relative path start';
   9457 
   9458            if (stateOverride) {
   9459              break loop;
   9460            }
   9461 
   9462            continue;
   9463          } else if (c !== '\t' && c !== '\n' && c !== '\r') {
   9464            if (c === '[') {
   9465              seenBracket = true;
   9466            } else if (c === ']') {
   9467              seenBracket = false;
   9468            }
   9469 
   9470            buffer += c;
   9471          } else {
   9472            err('Invalid code point in host/hostname: ' + c);
   9473          }
   9474 
   9475          break;
   9476 
   9477        case 'port':
   9478          if (/[0-9]/.test(c)) {
   9479            buffer += c;
   9480          } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#' || stateOverride) {
   9481            if (buffer !== '') {
   9482              var temp = parseInt(buffer, 10);
   9483 
   9484              if (temp !== relative[this._scheme]) {
   9485                this._port = temp + '';
   9486              }
   9487 
   9488              buffer = '';
   9489            }
   9490 
   9491            if (stateOverride) {
   9492              break loop;
   9493            }
   9494 
   9495            state = 'relative path start';
   9496            continue;
   9497          } else if (c === '\t' || c === '\n' || c === '\r') {
   9498            err('Invalid code point in port: ' + c);
   9499          } else {
   9500            invalid.call(this);
   9501          }
   9502 
   9503          break;
   9504 
   9505        case 'relative path start':
   9506          if (c === '\\') {
   9507            err('\'\\\' not allowed in path.');
   9508          }
   9509 
   9510          state = 'relative path';
   9511 
   9512          if (c !== '/' && c !== '\\') {
   9513            continue;
   9514          }
   9515 
   9516          break;
   9517 
   9518        case 'relative path':
   9519          if (c === EOF || c === '/' || c === '\\' || !stateOverride && (c === '?' || c === '#')) {
   9520            if (c === '\\') {
   9521              err('\\ not allowed in relative path.');
   9522            }
   9523 
   9524            var tmp;
   9525 
   9526            if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {
   9527              buffer = tmp;
   9528            }
   9529 
   9530            if (buffer === '..') {
   9531              this._path.pop();
   9532 
   9533              if (c !== '/' && c !== '\\') {
   9534                this._path.push('');
   9535              }
   9536            } else if (buffer === '.' && c !== '/' && c !== '\\') {
   9537              this._path.push('');
   9538            } else if (buffer !== '.') {
   9539              if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') {
   9540                buffer = buffer[0] + ':';
   9541              }
   9542 
   9543              this._path.push(buffer);
   9544            }
   9545 
   9546            buffer = '';
   9547 
   9548            if (c === '?') {
   9549              this._query = '?';
   9550              state = 'query';
   9551            } else if (c === '#') {
   9552              this._fragment = '#';
   9553              state = 'fragment';
   9554            }
   9555          } else if (c !== '\t' && c !== '\n' && c !== '\r') {
   9556            buffer += percentEscape(c);
   9557          }
   9558 
   9559          break;
   9560 
   9561        case 'query':
   9562          if (!stateOverride && c === '#') {
   9563            this._fragment = '#';
   9564            state = 'fragment';
   9565          } else if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') {
   9566            this._query += percentEscapeQuery(c);
   9567          }
   9568 
   9569          break;
   9570 
   9571        case 'fragment':
   9572          if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') {
   9573            this._fragment += c;
   9574          }
   9575 
   9576          break;
   9577      }
   9578 
   9579      cursor++;
   9580    }
   9581  }
   9582 
   9583  function clear() {
   9584    this._scheme = '';
   9585    this._schemeData = '';
   9586    this._username = '';
   9587    this._password = null;
   9588    this._host = '';
   9589    this._port = '';
   9590    this._path = [];
   9591    this._query = '';
   9592    this._fragment = '';
   9593    this._isInvalid = false;
   9594    this._isRelative = false;
   9595  }
   9596 
   9597  function JURL(url, base) {
   9598    if (base !== undefined && !(base instanceof JURL)) {
   9599      base = new JURL(String(base));
   9600    }
   9601 
   9602    this._url = url;
   9603    clear.call(this);
   9604    var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, '');
   9605    parse.call(this, input, null, base);
   9606  }
   9607 
   9608  JURL.prototype = {
   9609    toString: function toString() {
   9610      return this.href;
   9611    },
   9612 
   9613    get href() {
   9614      if (this._isInvalid) {
   9615        return this._url;
   9616      }
   9617 
   9618      var authority = '';
   9619 
   9620      if (this._username !== '' || this._password !== null) {
   9621        authority = this._username + (this._password !== null ? ':' + this._password : '') + '@';
   9622      }
   9623 
   9624      return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment;
   9625    },
   9626 
   9627    set href(value) {
   9628      clear.call(this);
   9629      parse.call(this, value);
   9630    },
   9631 
   9632    get protocol() {
   9633      return this._scheme + ':';
   9634    },
   9635 
   9636    set protocol(value) {
   9637      if (this._isInvalid) {
   9638        return;
   9639      }
   9640 
   9641      parse.call(this, value + ':', 'scheme start');
   9642    },
   9643 
   9644    get host() {
   9645      return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host;
   9646    },
   9647 
   9648    set host(value) {
   9649      if (this._isInvalid || !this._isRelative) {
   9650        return;
   9651      }
   9652 
   9653      parse.call(this, value, 'host');
   9654    },
   9655 
   9656    get hostname() {
   9657      return this._host;
   9658    },
   9659 
   9660    set hostname(value) {
   9661      if (this._isInvalid || !this._isRelative) {
   9662        return;
   9663      }
   9664 
   9665      parse.call(this, value, 'hostname');
   9666    },
   9667 
   9668    get port() {
   9669      return this._port;
   9670    },
   9671 
   9672    set port(value) {
   9673      if (this._isInvalid || !this._isRelative) {
   9674        return;
   9675      }
   9676 
   9677      parse.call(this, value, 'port');
   9678    },
   9679 
   9680    get pathname() {
   9681      return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData;
   9682    },
   9683 
   9684    set pathname(value) {
   9685      if (this._isInvalid || !this._isRelative) {
   9686        return;
   9687      }
   9688 
   9689      this._path = [];
   9690      parse.call(this, value, 'relative path start');
   9691    },
   9692 
   9693    get search() {
   9694      return this._isInvalid || !this._query || this._query === '?' ? '' : this._query;
   9695    },
   9696 
   9697    set search(value) {
   9698      if (this._isInvalid || !this._isRelative) {
   9699        return;
   9700      }
   9701 
   9702      this._query = '?';
   9703 
   9704      if (value[0] === '?') {
   9705        value = value.slice(1);
   9706      }
   9707 
   9708      parse.call(this, value, 'query');
   9709    },
   9710 
   9711    get hash() {
   9712      return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment;
   9713    },
   9714 
   9715    set hash(value) {
   9716      if (this._isInvalid) {
   9717        return;
   9718      }
   9719 
   9720      this._fragment = '#';
   9721 
   9722      if (value[0] === '#') {
   9723        value = value.slice(1);
   9724      }
   9725 
   9726      parse.call(this, value, 'fragment');
   9727    },
   9728 
   9729    get origin() {
   9730      var host;
   9731 
   9732      if (this._isInvalid || !this._scheme) {
   9733        return '';
   9734      }
   9735 
   9736      switch (this._scheme) {
   9737        case 'data':
   9738        case 'file':
   9739        case 'javascript':
   9740        case 'mailto':
   9741          return 'null';
   9742 
   9743        case 'blob':
   9744          try {
   9745            return new JURL(this._schemeData).origin || 'null';
   9746          } catch (_) {}
   9747 
   9748          return 'null';
   9749      }
   9750 
   9751      host = this.host;
   9752 
   9753      if (!host) {
   9754        return '';
   9755      }
   9756 
   9757      return this._scheme + '://' + host;
   9758    }
   9759 
   9760  };
   9761  exports.URL = JURL;
   9762 })();
   9763 
   9764 /***/ }),
   9765 /* 147 */
   9766 /***/ (function(module, exports, __w_pdfjs_require__) {
   9767 
   9768 "use strict";
   9769 
   9770 
   9771 Object.defineProperty(exports, "__esModule", {
   9772  value: true
   9773 });
   9774 exports.getDocument = getDocument;
   9775 exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;
   9776 exports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0;
   9777 
   9778 var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148));
   9779 
   9780 var _util = __w_pdfjs_require__(1);
   9781 
   9782 var _display_utils = __w_pdfjs_require__(151);
   9783 
   9784 var _font_loader = __w_pdfjs_require__(152);
   9785 
   9786 var _api_compatibility = __w_pdfjs_require__(153);
   9787 
   9788 var _canvas = __w_pdfjs_require__(154);
   9789 
   9790 var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3));
   9791 
   9792 var _worker_options = __w_pdfjs_require__(156);
   9793 
   9794 var _message_handler = __w_pdfjs_require__(157);
   9795 
   9796 var _metadata = __w_pdfjs_require__(158);
   9797 
   9798 var _transport_stream = __w_pdfjs_require__(160);
   9799 
   9800 var _webgl = __w_pdfjs_require__(161);
   9801 
   9802 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
   9803 
   9804 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
   9805 
   9806 function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
   9807 
   9808 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
   9809 
   9810 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
   9811 
   9812 function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
   9813 
   9814 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
   9815 
   9816 function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
   9817 
   9818 function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
   9819 
   9820 function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
   9821 
   9822 function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
   9823 
   9824 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
   9825 
   9826 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
   9827 
   9828 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
   9829 
   9830 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
   9831 
   9832 var DEFAULT_RANGE_CHUNK_SIZE = 65536;
   9833 var isWorkerDisabled = false;
   9834 var fallbackWorkerSrc;
   9835 var fakeWorkerFilesLoader = null;
   9836 {
   9837  var useRequireEnsure = false;
   9838 
   9839  if (typeof window === 'undefined') {
   9840    isWorkerDisabled = true;
   9841 
   9842    if (typeof require.ensure === 'undefined') {
   9843      require.ensure = require('node-ensure');
   9844    }
   9845 
   9846    useRequireEnsure = true;
   9847  } else if (typeof require !== 'undefined' && typeof require.ensure === 'function') {
   9848    useRequireEnsure = true;
   9849  }
   9850 
   9851  if (typeof requirejs !== 'undefined' && requirejs.toUrl) {
   9852    fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js');
   9853  }
   9854 
   9855  var dynamicLoaderSupported = typeof requirejs !== 'undefined' && requirejs.load;
   9856  fakeWorkerFilesLoader = useRequireEnsure ? function () {
   9857    return new Promise(function (resolve, reject) {
   9858      require.ensure([], function () {
   9859        try {
   9860          var worker;
   9861          worker = require('./pdf.worker.js');
   9862          resolve(worker.WorkerMessageHandler);
   9863        } catch (ex) {
   9864          reject(ex);
   9865        }
   9866      }, reject, 'pdfjsWorker');
   9867    });
   9868  } : dynamicLoaderSupported ? function () {
   9869    return new Promise(function (resolve, reject) {
   9870      requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) {
   9871        try {
   9872          resolve(worker.WorkerMessageHandler);
   9873        } catch (ex) {
   9874          reject(ex);
   9875        }
   9876      }, reject);
   9877    });
   9878  } : null;
   9879 
   9880  if (!fallbackWorkerSrc && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object' && 'currentScript' in document) {
   9881    var pdfjsFilePath = document.currentScript && document.currentScript.src;
   9882 
   9883    if (pdfjsFilePath) {
   9884      fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, '.worker$1$2');
   9885    }
   9886  }
   9887 }
   9888 var createPDFNetworkStream;
   9889 
   9890 function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {
   9891  createPDFNetworkStream = pdfNetworkStreamFactory;
   9892 }
   9893 
   9894 function getDocument(src) {
   9895  var task = new PDFDocumentLoadingTask();
   9896  var source;
   9897 
   9898  if (typeof src === 'string') {
   9899    source = {
   9900      url: src
   9901    };
   9902  } else if ((0, _util.isArrayBuffer)(src)) {
   9903    source = {
   9904      data: src
   9905    };
   9906  } else if (src instanceof PDFDataRangeTransport) {
   9907    source = {
   9908      range: src
   9909    };
   9910  } else {
   9911    if (_typeof(src) !== 'object') {
   9912      throw new Error('Invalid parameter in getDocument, ' + 'need either Uint8Array, string or a parameter object');
   9913    }
   9914 
   9915    if (!src.url && !src.data && !src.range) {
   9916      throw new Error('Invalid parameter object: need either .data, .range or .url');
   9917    }
   9918 
   9919    source = src;
   9920  }
   9921 
   9922  var params = Object.create(null);
   9923  var rangeTransport = null,
   9924      worker = null;
   9925 
   9926  for (var key in source) {
   9927    if (key === 'url' && typeof window !== 'undefined') {
   9928      params[key] = new _util.URL(source[key], window.location).href;
   9929      continue;
   9930    } else if (key === 'range') {
   9931      rangeTransport = source[key];
   9932      continue;
   9933    } else if (key === 'worker') {
   9934      worker = source[key];
   9935      continue;
   9936    } else if (key === 'data' && !(source[key] instanceof Uint8Array)) {
   9937      var pdfBytes = source[key];
   9938 
   9939      if (typeof pdfBytes === 'string') {
   9940        params[key] = (0, _util.stringToBytes)(pdfBytes);
   9941      } else if (_typeof(pdfBytes) === 'object' && pdfBytes !== null && !isNaN(pdfBytes.length)) {
   9942        params[key] = new Uint8Array(pdfBytes);
   9943      } else if ((0, _util.isArrayBuffer)(pdfBytes)) {
   9944        params[key] = new Uint8Array(pdfBytes);
   9945      } else {
   9946        throw new Error('Invalid PDF binary data: either typed array, ' + 'string or array-like object is expected in the ' + 'data property.');
   9947      }
   9948 
   9949      continue;
   9950    }
   9951 
   9952    params[key] = source[key];
   9953  }
   9954 
   9955  params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;
   9956  params.CMapReaderFactory = params.CMapReaderFactory || _display_utils.DOMCMapReaderFactory;
   9957  params.ignoreErrors = params.stopAtErrors !== true;
   9958  params.pdfBug = params.pdfBug === true;
   9959  var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding);
   9960 
   9961  if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) {
   9962    params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE;
   9963  }
   9964 
   9965  if (!Number.isInteger(params.maxImageSize)) {
   9966    params.maxImageSize = -1;
   9967  }
   9968 
   9969  if (typeof params.isEvalSupported !== 'boolean') {
   9970    params.isEvalSupported = true;
   9971  }
   9972 
   9973  if (typeof params.disableFontFace !== 'boolean') {
   9974    params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;
   9975  }
   9976 
   9977  if (typeof params.disableRange !== 'boolean') {
   9978    params.disableRange = false;
   9979  }
   9980 
   9981  if (typeof params.disableStream !== 'boolean') {
   9982    params.disableStream = false;
   9983  }
   9984 
   9985  if (typeof params.disableAutoFetch !== 'boolean') {
   9986    params.disableAutoFetch = false;
   9987  }
   9988 
   9989  if (typeof params.disableCreateObjectURL !== 'boolean') {
   9990    params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false;
   9991  }
   9992 
   9993  (0, _util.setVerbosityLevel)(params.verbosity);
   9994 
   9995  if (!worker) {
   9996    var workerParams = {
   9997      postMessageTransfers: params.postMessageTransfers,
   9998      verbosity: params.verbosity,
   9999      port: _worker_options.GlobalWorkerOptions.workerPort
  10000    };
  10001    worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);
  10002    task._worker = worker;
  10003  }
  10004 
  10005  var docId = task.docId;
  10006  worker.promise.then(function () {
  10007    if (task.destroyed) {
  10008      throw new Error('Loading aborted');
  10009    }
  10010 
  10011    return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) {
  10012      if (task.destroyed) {
  10013        throw new Error('Loading aborted');
  10014      }
  10015 
  10016      var networkStream;
  10017 
  10018      if (rangeTransport) {
  10019        networkStream = new _transport_stream.PDFDataTransportStream({
  10020          length: params.length,
  10021          initialData: params.initialData,
  10022          progressiveDone: params.progressiveDone,
  10023          disableRange: params.disableRange,
  10024          disableStream: params.disableStream
  10025        }, rangeTransport);
  10026      } else if (!params.data) {
  10027        networkStream = createPDFNetworkStream({
  10028          url: params.url,
  10029          length: params.length,
  10030          httpHeaders: params.httpHeaders,
  10031          withCredentials: params.withCredentials,
  10032          rangeChunkSize: params.rangeChunkSize,
  10033          disableRange: params.disableRange,
  10034          disableStream: params.disableStream
  10035        });
  10036      }
  10037 
  10038      var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);
  10039      messageHandler.postMessageTransfers = worker.postMessageTransfers;
  10040      var transport = new WorkerTransport(messageHandler, task, networkStream, params);
  10041      task._transport = transport;
  10042      messageHandler.send('Ready', null);
  10043    });
  10044  })["catch"](task._capability.reject);
  10045  return task;
  10046 }
  10047 
  10048 function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
  10049  if (worker.destroyed) {
  10050    return Promise.reject(new Error('Worker was destroyed'));
  10051  }
  10052 
  10053  if (pdfDataRangeTransport) {
  10054    source.length = pdfDataRangeTransport.length;
  10055    source.initialData = pdfDataRangeTransport.initialData;
  10056    source.progressiveDone = pdfDataRangeTransport.progressiveDone;
  10057  }
  10058 
  10059  return worker.messageHandler.sendWithPromise('GetDocRequest', {
  10060    docId: docId,
  10061    apiVersion: '2.2.228',
  10062    source: {
  10063      data: source.data,
  10064      url: source.url,
  10065      password: source.password,
  10066      disableAutoFetch: source.disableAutoFetch,
  10067      rangeChunkSize: source.rangeChunkSize,
  10068      length: source.length
  10069    },
  10070    maxImageSize: source.maxImageSize,
  10071    disableFontFace: source.disableFontFace,
  10072    disableCreateObjectURL: source.disableCreateObjectURL,
  10073    postMessageTransfers: worker.postMessageTransfers,
  10074    docBaseUrl: source.docBaseUrl,
  10075    nativeImageDecoderSupport: source.nativeImageDecoderSupport,
  10076    ignoreErrors: source.ignoreErrors,
  10077    isEvalSupported: source.isEvalSupported
  10078  }).then(function (workerId) {
  10079    if (worker.destroyed) {
  10080      throw new Error('Worker was destroyed');
  10081    }
  10082 
  10083    return workerId;
  10084  });
  10085 }
  10086 
  10087 var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {
  10088  var nextDocumentId = 0;
  10089 
  10090  var PDFDocumentLoadingTask =
  10091  /*#__PURE__*/
  10092  function () {
  10093    function PDFDocumentLoadingTask() {
  10094      _classCallCheck(this, PDFDocumentLoadingTask);
  10095 
  10096      this._capability = (0, _util.createPromiseCapability)();
  10097      this._transport = null;
  10098      this._worker = null;
  10099      this.docId = 'd' + nextDocumentId++;
  10100      this.destroyed = false;
  10101      this.onPassword = null;
  10102      this.onProgress = null;
  10103      this.onUnsupportedFeature = null;
  10104    }
  10105 
  10106    _createClass(PDFDocumentLoadingTask, [{
  10107      key: "destroy",
  10108      value: function destroy() {
  10109        var _this = this;
  10110 
  10111        this.destroyed = true;
  10112        var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy();
  10113        return transportDestroyed.then(function () {
  10114          _this._transport = null;
  10115 
  10116          if (_this._worker) {
  10117            _this._worker.destroy();
  10118 
  10119            _this._worker = null;
  10120          }
  10121        });
  10122      }
  10123    }, {
  10124      key: "then",
  10125      value: function then(onFulfilled, onRejected) {
  10126        (0, _display_utils.deprecated)('PDFDocumentLoadingTask.then method, ' + 'use the `promise` getter instead.');
  10127        return this.promise.then.apply(this.promise, arguments);
  10128      }
  10129    }, {
  10130      key: "promise",
  10131      get: function get() {
  10132        return this._capability.promise;
  10133      }
  10134    }]);
  10135 
  10136    return PDFDocumentLoadingTask;
  10137  }();
  10138 
  10139  return PDFDocumentLoadingTask;
  10140 }();
  10141 
  10142 var PDFDataRangeTransport =
  10143 /*#__PURE__*/
  10144 function () {
  10145  function PDFDataRangeTransport(length, initialData) {
  10146    var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
  10147 
  10148    _classCallCheck(this, PDFDataRangeTransport);
  10149 
  10150    this.length = length;
  10151    this.initialData = initialData;
  10152    this.progressiveDone = progressiveDone;
  10153    this._rangeListeners = [];
  10154    this._progressListeners = [];
  10155    this._progressiveReadListeners = [];
  10156    this._progressiveDoneListeners = [];
  10157    this._readyCapability = (0, _util.createPromiseCapability)();
  10158  }
  10159 
  10160  _createClass(PDFDataRangeTransport, [{
  10161    key: "addRangeListener",
  10162    value: function addRangeListener(listener) {
  10163      this._rangeListeners.push(listener);
  10164    }
  10165  }, {
  10166    key: "addProgressListener",
  10167    value: function addProgressListener(listener) {
  10168      this._progressListeners.push(listener);
  10169    }
  10170  }, {
  10171    key: "addProgressiveReadListener",
  10172    value: function addProgressiveReadListener(listener) {
  10173      this._progressiveReadListeners.push(listener);
  10174    }
  10175  }, {
  10176    key: "addProgressiveDoneListener",
  10177    value: function addProgressiveDoneListener(listener) {
  10178      this._progressiveDoneListeners.push(listener);
  10179    }
  10180  }, {
  10181    key: "onDataRange",
  10182    value: function onDataRange(begin, chunk) {
  10183      var _iteratorNormalCompletion = true;
  10184      var _didIteratorError = false;
  10185      var _iteratorError = undefined;
  10186 
  10187      try {
  10188        for (var _iterator = this._rangeListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  10189          var listener = _step.value;
  10190          listener(begin, chunk);
  10191        }
  10192      } catch (err) {
  10193        _didIteratorError = true;
  10194        _iteratorError = err;
  10195      } finally {
  10196        try {
  10197          if (!_iteratorNormalCompletion && _iterator["return"] != null) {
  10198            _iterator["return"]();
  10199          }
  10200        } finally {
  10201          if (_didIteratorError) {
  10202            throw _iteratorError;
  10203          }
  10204        }
  10205      }
  10206    }
  10207  }, {
  10208    key: "onDataProgress",
  10209    value: function onDataProgress(loaded, total) {
  10210      var _this2 = this;
  10211 
  10212      this._readyCapability.promise.then(function () {
  10213        var _iteratorNormalCompletion2 = true;
  10214        var _didIteratorError2 = false;
  10215        var _iteratorError2 = undefined;
  10216 
  10217        try {
  10218          for (var _iterator2 = _this2._progressListeners[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
  10219            var listener = _step2.value;
  10220            listener(loaded, total);
  10221          }
  10222        } catch (err) {
  10223          _didIteratorError2 = true;
  10224          _iteratorError2 = err;
  10225        } finally {
  10226          try {
  10227            if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
  10228              _iterator2["return"]();
  10229            }
  10230          } finally {
  10231            if (_didIteratorError2) {
  10232              throw _iteratorError2;
  10233            }
  10234          }
  10235        }
  10236      });
  10237    }
  10238  }, {
  10239    key: "onDataProgressiveRead",
  10240    value: function onDataProgressiveRead(chunk) {
  10241      var _this3 = this;
  10242 
  10243      this._readyCapability.promise.then(function () {
  10244        var _iteratorNormalCompletion3 = true;
  10245        var _didIteratorError3 = false;
  10246        var _iteratorError3 = undefined;
  10247 
  10248        try {
  10249          for (var _iterator3 = _this3._progressiveReadListeners[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
  10250            var listener = _step3.value;
  10251            listener(chunk);
  10252          }
  10253        } catch (err) {
  10254          _didIteratorError3 = true;
  10255          _iteratorError3 = err;
  10256        } finally {
  10257          try {
  10258            if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
  10259              _iterator3["return"]();
  10260            }
  10261          } finally {
  10262            if (_didIteratorError3) {
  10263              throw _iteratorError3;
  10264            }
  10265          }
  10266        }
  10267      });
  10268    }
  10269  }, {
  10270    key: "onDataProgressiveDone",
  10271    value: function onDataProgressiveDone() {
  10272      var _this4 = this;
  10273 
  10274      this._readyCapability.promise.then(function () {
  10275        var _iteratorNormalCompletion4 = true;
  10276        var _didIteratorError4 = false;
  10277        var _iteratorError4 = undefined;
  10278 
  10279        try {
  10280          for (var _iterator4 = _this4._progressiveDoneListeners[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
  10281            var listener = _step4.value;
  10282            listener();
  10283          }
  10284        } catch (err) {
  10285          _didIteratorError4 = true;
  10286          _iteratorError4 = err;
  10287        } finally {
  10288          try {
  10289            if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) {
  10290              _iterator4["return"]();
  10291            }
  10292          } finally {
  10293            if (_didIteratorError4) {
  10294              throw _iteratorError4;
  10295            }
  10296          }
  10297        }
  10298      });
  10299    }
  10300  }, {
  10301    key: "transportReady",
  10302    value: function transportReady() {
  10303      this._readyCapability.resolve();
  10304    }
  10305  }, {
  10306    key: "requestDataRange",
  10307    value: function requestDataRange(begin, end) {
  10308      (0, _util.unreachable)('Abstract method PDFDataRangeTransport.requestDataRange');
  10309    }
  10310  }, {
  10311    key: "abort",
  10312    value: function abort() {}
  10313  }]);
  10314 
  10315  return PDFDataRangeTransport;
  10316 }();
  10317 
  10318 exports.PDFDataRangeTransport = PDFDataRangeTransport;
  10319 
  10320 var PDFDocumentProxy =
  10321 /*#__PURE__*/
  10322 function () {
  10323  function PDFDocumentProxy(pdfInfo, transport) {
  10324    _classCallCheck(this, PDFDocumentProxy);
  10325 
  10326    this._pdfInfo = pdfInfo;
  10327    this._transport = transport;
  10328  }
  10329 
  10330  _createClass(PDFDocumentProxy, [{
  10331    key: "getPage",
  10332    value: function getPage(pageNumber) {
  10333      return this._transport.getPage(pageNumber);
  10334    }
  10335  }, {
  10336    key: "getPageIndex",
  10337    value: function getPageIndex(ref) {
  10338      return this._transport.getPageIndex(ref);
  10339    }
  10340  }, {
  10341    key: "getDestinations",
  10342    value: function getDestinations() {
  10343      return this._transport.getDestinations();
  10344    }
  10345  }, {
  10346    key: "getDestination",
  10347    value: function getDestination(id) {
  10348      return this._transport.getDestination(id);
  10349    }
  10350  }, {
  10351    key: "getPageLabels",
  10352    value: function getPageLabels() {
  10353      return this._transport.getPageLabels();
  10354    }
  10355  }, {
  10356    key: "getPageLayout",
  10357    value: function getPageLayout() {
  10358      return this._transport.getPageLayout();
  10359    }
  10360  }, {
  10361    key: "getPageMode",
  10362    value: function getPageMode() {
  10363      return this._transport.getPageMode();
  10364    }
  10365  }, {
  10366    key: "getViewerPreferences",
  10367    value: function getViewerPreferences() {
  10368      return this._transport.getViewerPreferences();
  10369    }
  10370  }, {
  10371    key: "getOpenActionDestination",
  10372    value: function getOpenActionDestination() {
  10373      return this._transport.getOpenActionDestination();
  10374    }
  10375  }, {
  10376    key: "getAttachments",
  10377    value: function getAttachments() {
  10378      return this._transport.getAttachments();
  10379    }
  10380  }, {
  10381    key: "getJavaScript",
  10382    value: function getJavaScript() {
  10383      return this._transport.getJavaScript();
  10384    }
  10385  }, {
  10386    key: "getOutline",
  10387    value: function getOutline() {
  10388      return this._transport.getOutline();
  10389    }
  10390  }, {
  10391    key: "getPermissions",
  10392    value: function getPermissions() {
  10393      return this._transport.getPermissions();
  10394    }
  10395  }, {
  10396    key: "getMetadata",
  10397    value: function getMetadata() {
  10398      return this._transport.getMetadata();
  10399    }
  10400  }, {
  10401    key: "getData",
  10402    value: function getData() {
  10403      return this._transport.getData();
  10404    }
  10405  }, {
  10406    key: "getDownloadInfo",
  10407    value: function getDownloadInfo() {
  10408      return this._transport.downloadInfoCapability.promise;
  10409    }
  10410  }, {
  10411    key: "getStats",
  10412    value: function getStats() {
  10413      return this._transport.getStats();
  10414    }
  10415  }, {
  10416    key: "cleanup",
  10417    value: function cleanup() {
  10418      this._transport.startCleanup();
  10419    }
  10420  }, {
  10421    key: "destroy",
  10422    value: function destroy() {
  10423      return this.loadingTask.destroy();
  10424    }
  10425  }, {
  10426    key: "numPages",
  10427    get: function get() {
  10428      return this._pdfInfo.numPages;
  10429    }
  10430  }, {
  10431    key: "fingerprint",
  10432    get: function get() {
  10433      return this._pdfInfo.fingerprint;
  10434    }
  10435  }, {
  10436    key: "loadingParams",
  10437    get: function get() {
  10438      return this._transport.loadingParams;
  10439    }
  10440  }, {
  10441    key: "loadingTask",
  10442    get: function get() {
  10443      return this._transport.loadingTask;
  10444    }
  10445  }]);
  10446 
  10447  return PDFDocumentProxy;
  10448 }();
  10449 
  10450 exports.PDFDocumentProxy = PDFDocumentProxy;
  10451 
  10452 var PDFPageProxy =
  10453 /*#__PURE__*/
  10454 function () {
  10455  function PDFPageProxy(pageIndex, pageInfo, transport) {
  10456    var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
  10457 
  10458    _classCallCheck(this, PDFPageProxy);
  10459 
  10460    this.pageIndex = pageIndex;
  10461    this._pageInfo = pageInfo;
  10462    this._transport = transport;
  10463    this._stats = pdfBug ? new _display_utils.StatTimer() : _display_utils.DummyStatTimer;
  10464    this._pdfBug = pdfBug;
  10465    this.commonObjs = transport.commonObjs;
  10466    this.objs = new PDFObjects();
  10467    this.cleanupAfterRender = false;
  10468    this.pendingCleanup = false;
  10469    this.intentStates = Object.create(null);
  10470    this.destroyed = false;
  10471  }
  10472 
  10473  _createClass(PDFPageProxy, [{
  10474    key: "getViewport",
  10475    value: function getViewport() {
  10476      var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
  10477          scale = _ref.scale,
  10478          _ref$rotation = _ref.rotation,
  10479          rotation = _ref$rotation === void 0 ? this.rotate : _ref$rotation,
  10480          _ref$dontFlip = _ref.dontFlip,
  10481          dontFlip = _ref$dontFlip === void 0 ? false : _ref$dontFlip;
  10482 
  10483      if (arguments.length > 1 || typeof arguments[0] === 'number') {
  10484        (0, _display_utils.deprecated)('getViewport is called with obsolete arguments.');
  10485        scale = arguments[0];
  10486        rotation = typeof arguments[1] === 'number' ? arguments[1] : this.rotate;
  10487        dontFlip = typeof arguments[2] === 'boolean' ? arguments[2] : false;
  10488      }
  10489 
  10490      return new _display_utils.PageViewport({
  10491        viewBox: this.view,
  10492        scale: scale,
  10493        rotation: rotation,
  10494        dontFlip: dontFlip
  10495      });
  10496    }
  10497  }, {
  10498    key: "getAnnotations",
  10499    value: function getAnnotations() {
  10500      var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
  10501          _ref2$intent = _ref2.intent,
  10502          intent = _ref2$intent === void 0 ? null : _ref2$intent;
  10503 
  10504      if (!this.annotationsPromise || this.annotationsIntent !== intent) {
  10505        this.annotationsPromise = this._transport.getAnnotations(this.pageIndex, intent);
  10506        this.annotationsIntent = intent;
  10507      }
  10508 
  10509      return this.annotationsPromise;
  10510    }
  10511  }, {
  10512    key: "render",
  10513    value: function render(_ref3) {
  10514      var _this5 = this;
  10515 
  10516      var canvasContext = _ref3.canvasContext,
  10517          viewport = _ref3.viewport,
  10518          _ref3$intent = _ref3.intent,
  10519          intent = _ref3$intent === void 0 ? 'display' : _ref3$intent,
  10520          _ref3$enableWebGL = _ref3.enableWebGL,
  10521          enableWebGL = _ref3$enableWebGL === void 0 ? false : _ref3$enableWebGL,
  10522          _ref3$renderInteracti = _ref3.renderInteractiveForms,
  10523          renderInteractiveForms = _ref3$renderInteracti === void 0 ? false : _ref3$renderInteracti,
  10524          _ref3$transform = _ref3.transform,
  10525          transform = _ref3$transform === void 0 ? null : _ref3$transform,
  10526          _ref3$imageLayer = _ref3.imageLayer,
  10527          imageLayer = _ref3$imageLayer === void 0 ? null : _ref3$imageLayer,
  10528          _ref3$canvasFactory = _ref3.canvasFactory,
  10529          canvasFactory = _ref3$canvasFactory === void 0 ? null : _ref3$canvasFactory,
  10530          _ref3$background = _ref3.background,
  10531          background = _ref3$background === void 0 ? null : _ref3$background;
  10532      var stats = this._stats;
  10533      stats.time('Overall');
  10534      this.pendingCleanup = false;
  10535      var renderingIntent = intent === 'print' ? 'print' : 'display';
  10536      var canvasFactoryInstance = canvasFactory || new _display_utils.DOMCanvasFactory();
  10537      var webGLContext = new _webgl.WebGLContext({
  10538        enable: enableWebGL
  10539      });
  10540 
  10541      if (!this.intentStates[renderingIntent]) {
  10542        this.intentStates[renderingIntent] = Object.create(null);
  10543      }
  10544 
  10545      var intentState = this.intentStates[renderingIntent];
  10546 
  10547      if (!intentState.displayReadyCapability) {
  10548        intentState.receivingOperatorList = true;
  10549        intentState.displayReadyCapability = (0, _util.createPromiseCapability)();
  10550        intentState.operatorList = {
  10551          fnArray: [],
  10552          argsArray: [],
  10553          lastChunk: false
  10554        };
  10555        stats.time('Page Request');
  10556 
  10557        this._transport.messageHandler.send('RenderPageRequest', {
  10558          pageIndex: this.pageNumber - 1,
  10559          intent: renderingIntent,
  10560          renderInteractiveForms: renderInteractiveForms === true
  10561        });
  10562      }
  10563 
  10564      var complete = function complete(error) {
  10565        var i = intentState.renderTasks.indexOf(internalRenderTask);
  10566 
  10567        if (i >= 0) {
  10568          intentState.renderTasks.splice(i, 1);
  10569        }
  10570 
  10571        if (_this5.cleanupAfterRender || renderingIntent === 'print') {
  10572          _this5.pendingCleanup = true;
  10573        }
  10574 
  10575        _this5._tryCleanup();
  10576 
  10577        if (error) {
  10578          internalRenderTask.capability.reject(error);
  10579        } else {
  10580          internalRenderTask.capability.resolve();
  10581        }
  10582 
  10583        stats.timeEnd('Rendering');
  10584        stats.timeEnd('Overall');
  10585      };
  10586 
  10587      var internalRenderTask = new InternalRenderTask({
  10588        callback: complete,
  10589        params: {
  10590          canvasContext: canvasContext,
  10591          viewport: viewport,
  10592          transform: transform,
  10593          imageLayer: imageLayer,
  10594          background: background
  10595        },
  10596        objs: this.objs,
  10597        commonObjs: this.commonObjs,
  10598        operatorList: intentState.operatorList,
  10599        pageNumber: this.pageNumber,
  10600        canvasFactory: canvasFactoryInstance,
  10601        webGLContext: webGLContext,
  10602        useRequestAnimationFrame: renderingIntent !== 'print',
  10603        pdfBug: this._pdfBug
  10604      });
  10605 
  10606      if (!intentState.renderTasks) {
  10607        intentState.renderTasks = [];
  10608      }
  10609 
  10610      intentState.renderTasks.push(internalRenderTask);
  10611      var renderTask = internalRenderTask.task;
  10612      intentState.displayReadyCapability.promise.then(function (transparency) {
  10613        if (_this5.pendingCleanup) {
  10614          complete();
  10615          return;
  10616        }
  10617 
  10618        stats.time('Rendering');
  10619        internalRenderTask.initializeGraphics(transparency);
  10620        internalRenderTask.operatorListChanged();
  10621      })["catch"](complete);
  10622      return renderTask;
  10623    }
  10624  }, {
  10625    key: "getOperatorList",
  10626    value: function getOperatorList() {
  10627      function operatorListChanged() {
  10628        if (intentState.operatorList.lastChunk) {
  10629          intentState.opListReadCapability.resolve(intentState.operatorList);
  10630          var i = intentState.renderTasks.indexOf(opListTask);
  10631 
  10632          if (i >= 0) {
  10633            intentState.renderTasks.splice(i, 1);
  10634          }
  10635        }
  10636      }
  10637 
  10638      var renderingIntent = 'oplist';
  10639 
  10640      if (!this.intentStates[renderingIntent]) {
  10641        this.intentStates[renderingIntent] = Object.create(null);
  10642      }
  10643 
  10644      var intentState = this.intentStates[renderingIntent];
  10645      var opListTask;
  10646 
  10647      if (!intentState.opListReadCapability) {
  10648        opListTask = {};
  10649        opListTask.operatorListChanged = operatorListChanged;
  10650        intentState.receivingOperatorList = true;
  10651        intentState.opListReadCapability = (0, _util.createPromiseCapability)();
  10652        intentState.renderTasks = [];
  10653        intentState.renderTasks.push(opListTask);
  10654        intentState.operatorList = {
  10655          fnArray: [],
  10656          argsArray: [],
  10657          lastChunk: false
  10658        };
  10659 
  10660        this._stats.time('Page Request');
  10661 
  10662        this._transport.messageHandler.send('RenderPageRequest', {
  10663          pageIndex: this.pageIndex,
  10664          intent: renderingIntent
  10665        });
  10666      }
  10667 
  10668      return intentState.opListReadCapability.promise;
  10669    }
  10670  }, {
  10671    key: "streamTextContent",
  10672    value: function streamTextContent() {
  10673      var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
  10674          _ref4$normalizeWhites = _ref4.normalizeWhitespace,
  10675          normalizeWhitespace = _ref4$normalizeWhites === void 0 ? false : _ref4$normalizeWhites,
  10676          _ref4$disableCombineT = _ref4.disableCombineTextItems,
  10677          disableCombineTextItems = _ref4$disableCombineT === void 0 ? false : _ref4$disableCombineT;
  10678 
  10679      var TEXT_CONTENT_CHUNK_SIZE = 100;
  10680      return this._transport.messageHandler.sendWithStream('GetTextContent', {
  10681        pageIndex: this.pageNumber - 1,
  10682        normalizeWhitespace: normalizeWhitespace === true,
  10683        combineTextItems: disableCombineTextItems !== true
  10684      }, {
  10685        highWaterMark: TEXT_CONTENT_CHUNK_SIZE,
  10686        size: function size(textContent) {
  10687          return textContent.items.length;
  10688        }
  10689      });
  10690    }
  10691  }, {
  10692    key: "getTextContent",
  10693    value: function getTextContent() {
  10694      var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  10695      var readableStream = this.streamTextContent(params);
  10696      return new Promise(function (resolve, reject) {
  10697        function pump() {
  10698          reader.read().then(function (_ref5) {
  10699            var _textContent$items;
  10700 
  10701            var value = _ref5.value,
  10702                done = _ref5.done;
  10703 
  10704            if (done) {
  10705              resolve(textContent);
  10706              return;
  10707            }
  10708 
  10709            Object.assign(textContent.styles, value.styles);
  10710 
  10711            (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items));
  10712 
  10713            pump();
  10714          }, reject);
  10715        }
  10716 
  10717        var reader = readableStream.getReader();
  10718        var textContent = {
  10719          items: [],
  10720          styles: Object.create(null)
  10721        };
  10722        pump();
  10723      });
  10724    }
  10725  }, {
  10726    key: "_destroy",
  10727    value: function _destroy() {
  10728      this.destroyed = true;
  10729      this._transport.pageCache[this.pageIndex] = null;
  10730      var waitOn = [];
  10731      Object.keys(this.intentStates).forEach(function (intent) {
  10732        if (intent === 'oplist') {
  10733          return;
  10734        }
  10735 
  10736        var intentState = this.intentStates[intent];
  10737        intentState.renderTasks.forEach(function (renderTask) {
  10738          var renderCompleted = renderTask.capability.promise["catch"](function () {});
  10739          waitOn.push(renderCompleted);
  10740          renderTask.cancel();
  10741        });
  10742      }, this);
  10743      this.objs.clear();
  10744      this.annotationsPromise = null;
  10745      this.pendingCleanup = false;
  10746      return Promise.all(waitOn);
  10747    }
  10748  }, {
  10749    key: "cleanup",
  10750    value: function cleanup() {
  10751      var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
  10752      this.pendingCleanup = true;
  10753 
  10754      this._tryCleanup(resetStats);
  10755    }
  10756  }, {
  10757    key: "_tryCleanup",
  10758    value: function _tryCleanup() {
  10759      var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
  10760 
  10761      if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) {
  10762        var intentState = this.intentStates[intent];
  10763        return intentState.renderTasks.length !== 0 || intentState.receivingOperatorList;
  10764      }, this)) {
  10765        return;
  10766      }
  10767 
  10768      Object.keys(this.intentStates).forEach(function (intent) {
  10769        delete this.intentStates[intent];
  10770      }, this);
  10771      this.objs.clear();
  10772      this.annotationsPromise = null;
  10773 
  10774      if (resetStats && this._stats instanceof _display_utils.StatTimer) {
  10775        this._stats = new _display_utils.StatTimer();
  10776      }
  10777 
  10778      this.pendingCleanup = false;
  10779    }
  10780  }, {
  10781    key: "_startRenderPage",
  10782    value: function _startRenderPage(transparency, intent) {
  10783      var intentState = this.intentStates[intent];
  10784 
  10785      if (intentState.displayReadyCapability) {
  10786        intentState.displayReadyCapability.resolve(transparency);
  10787      }
  10788    }
  10789  }, {
  10790    key: "_renderPageChunk",
  10791    value: function _renderPageChunk(operatorListChunk, intent) {
  10792      var intentState = this.intentStates[intent];
  10793 
  10794      for (var i = 0, ii = operatorListChunk.length; i < ii; i++) {
  10795        intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);
  10796        intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);
  10797      }
  10798 
  10799      intentState.operatorList.lastChunk = operatorListChunk.lastChunk;
  10800 
  10801      for (var _i = 0; _i < intentState.renderTasks.length; _i++) {
  10802        intentState.renderTasks[_i].operatorListChanged();
  10803      }
  10804 
  10805      if (operatorListChunk.lastChunk) {
  10806        intentState.receivingOperatorList = false;
  10807 
  10808        this._tryCleanup();
  10809      }
  10810    }
  10811  }, {
  10812    key: "pageNumber",
  10813    get: function get() {
  10814      return this.pageIndex + 1;
  10815    }
  10816  }, {
  10817    key: "rotate",
  10818    get: function get() {
  10819      return this._pageInfo.rotate;
  10820    }
  10821  }, {
  10822    key: "ref",
  10823    get: function get() {
  10824      return this._pageInfo.ref;
  10825    }
  10826  }, {
  10827    key: "userUnit",
  10828    get: function get() {
  10829      return this._pageInfo.userUnit;
  10830    }
  10831  }, {
  10832    key: "view",
  10833    get: function get() {
  10834      return this._pageInfo.view;
  10835    }
  10836  }, {
  10837    key: "stats",
  10838    get: function get() {
  10839      return this._stats instanceof _display_utils.StatTimer ? this._stats : null;
  10840    }
  10841  }]);
  10842 
  10843  return PDFPageProxy;
  10844 }();
  10845 
  10846 exports.PDFPageProxy = PDFPageProxy;
  10847 
  10848 var LoopbackPort =
  10849 /*#__PURE__*/
  10850 function () {
  10851  function LoopbackPort() {
  10852    var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
  10853 
  10854    _classCallCheck(this, LoopbackPort);
  10855 
  10856    this._listeners = [];
  10857    this._defer = defer;
  10858    this._deferred = Promise.resolve(undefined);
  10859  }
  10860 
  10861  _createClass(LoopbackPort, [{
  10862    key: "postMessage",
  10863    value: function postMessage(obj, transfers) {
  10864      var _this6 = this;
  10865 
  10866      function cloneValue(value) {
  10867        if (_typeof(value) !== 'object' || value === null) {
  10868          return value;
  10869        }
  10870 
  10871        if (cloned.has(value)) {
  10872          return cloned.get(value);
  10873        }
  10874 
  10875        var buffer, result;
  10876 
  10877        if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {
  10878          var transferable = transfers && transfers.includes(buffer);
  10879 
  10880          if (value === buffer) {
  10881            result = value;
  10882          } else if (transferable) {
  10883            result = new value.constructor(buffer, value.byteOffset, value.byteLength);
  10884          } else {
  10885            result = new value.constructor(value);
  10886          }
  10887 
  10888          cloned.set(value, result);
  10889          return result;
  10890        }
  10891 
  10892        result = Array.isArray(value) ? [] : {};
  10893        cloned.set(value, result);
  10894 
  10895        for (var i in value) {
  10896          var desc = void 0,
  10897              p = value;
  10898 
  10899          while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {
  10900            p = Object.getPrototypeOf(p);
  10901          }
  10902 
  10903          if (typeof desc.value === 'undefined' || typeof desc.value === 'function') {
  10904            continue;
  10905          }
  10906 
  10907          result[i] = cloneValue(desc.value);
  10908        }
  10909 
  10910        return result;
  10911      }
  10912 
  10913      if (!this._defer) {
  10914        this._listeners.forEach(function (listener) {
  10915          listener.call(this, {
  10916            data: obj
  10917          });
  10918        }, this);
  10919 
  10920        return;
  10921      }
  10922 
  10923      var cloned = new WeakMap();
  10924      var e = {
  10925        data: cloneValue(obj)
  10926      };
  10927 
  10928      this._deferred.then(function () {
  10929        _this6._listeners.forEach(function (listener) {
  10930          listener.call(this, e);
  10931        }, _this6);
  10932      });
  10933    }
  10934  }, {
  10935    key: "addEventListener",
  10936    value: function addEventListener(name, listener) {
  10937      this._listeners.push(listener);
  10938    }
  10939  }, {
  10940    key: "removeEventListener",
  10941    value: function removeEventListener(name, listener) {
  10942      var i = this._listeners.indexOf(listener);
  10943 
  10944      this._listeners.splice(i, 1);
  10945    }
  10946  }, {
  10947    key: "terminate",
  10948    value: function terminate() {
  10949      this._listeners.length = 0;
  10950    }
  10951  }]);
  10952 
  10953  return LoopbackPort;
  10954 }();
  10955 
  10956 exports.LoopbackPort = LoopbackPort;
  10957 
  10958 var PDFWorker = function PDFWorkerClosure() {
  10959  var pdfWorkerPorts = new WeakMap();
  10960  var nextFakeWorkerId = 0;
  10961  var fakeWorkerFilesLoadedCapability;
  10962 
  10963  function _getWorkerSrc() {
  10964    if (_worker_options.GlobalWorkerOptions.workerSrc) {
  10965      return _worker_options.GlobalWorkerOptions.workerSrc;
  10966    }
  10967 
  10968    if (typeof fallbackWorkerSrc !== 'undefined') {
  10969      return fallbackWorkerSrc;
  10970    }
  10971 
  10972    throw new Error('No "GlobalWorkerOptions.workerSrc" specified.');
  10973  }
  10974 
  10975  function getMainThreadWorkerMessageHandler() {
  10976    try {
  10977      if (typeof window !== 'undefined') {
  10978        return window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler;
  10979      }
  10980    } catch (ex) {}
  10981 
  10982    return null;
  10983  }
  10984 
  10985  function setupFakeWorkerGlobal() {
  10986    if (fakeWorkerFilesLoadedCapability) {
  10987      return fakeWorkerFilesLoadedCapability.promise;
  10988    }
  10989 
  10990    fakeWorkerFilesLoadedCapability = (0, _util.createPromiseCapability)();
  10991    var mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();
  10992 
  10993    if (mainWorkerMessageHandler) {
  10994      fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler);
  10995      return fakeWorkerFilesLoadedCapability.promise;
  10996    }
  10997 
  10998    var loader = fakeWorkerFilesLoader || function () {
  10999      return (0, _display_utils.loadScript)(_getWorkerSrc()).then(function () {
  11000        return window.pdfjsWorker.WorkerMessageHandler;
  11001      });
  11002    };
  11003 
  11004    loader().then(fakeWorkerFilesLoadedCapability.resolve, fakeWorkerFilesLoadedCapability.reject);
  11005    return fakeWorkerFilesLoadedCapability.promise;
  11006  }
  11007 
  11008  function createCDNWrapper(url) {
  11009    var wrapper = 'importScripts(\'' + url + '\');';
  11010    return _util.URL.createObjectURL(new Blob([wrapper]));
  11011  }
  11012 
  11013  var PDFWorker =
  11014  /*#__PURE__*/
  11015  function () {
  11016    function PDFWorker() {
  11017      var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
  11018          _ref6$name = _ref6.name,
  11019          name = _ref6$name === void 0 ? null : _ref6$name,
  11020          _ref6$port = _ref6.port,
  11021          port = _ref6$port === void 0 ? null : _ref6$port,
  11022          _ref6$postMessageTran = _ref6.postMessageTransfers,
  11023          postMessageTransfers = _ref6$postMessageTran === void 0 ? true : _ref6$postMessageTran,
  11024          _ref6$verbosity = _ref6.verbosity,
  11025          verbosity = _ref6$verbosity === void 0 ? (0, _util.getVerbosityLevel)() : _ref6$verbosity;
  11026 
  11027      _classCallCheck(this, PDFWorker);
  11028 
  11029      if (port && pdfWorkerPorts.has(port)) {
  11030        throw new Error('Cannot use more than one PDFWorker per port');
  11031      }
  11032 
  11033      this.name = name;
  11034      this.destroyed = false;
  11035      this.postMessageTransfers = postMessageTransfers !== false;
  11036      this.verbosity = verbosity;
  11037      this._readyCapability = (0, _util.createPromiseCapability)();
  11038      this._port = null;
  11039      this._webWorker = null;
  11040      this._messageHandler = null;
  11041 
  11042      if (port) {
  11043        pdfWorkerPorts.set(port, this);
  11044 
  11045        this._initializeFromPort(port);
  11046 
  11047        return;
  11048      }
  11049 
  11050      this._initialize();
  11051    }
  11052 
  11053    _createClass(PDFWorker, [{
  11054      key: "_initializeFromPort",
  11055      value: function _initializeFromPort(port) {
  11056        this._port = port;
  11057        this._messageHandler = new _message_handler.MessageHandler('main', 'worker', port);
  11058 
  11059        this._messageHandler.on('ready', function () {});
  11060 
  11061        this._readyCapability.resolve();
  11062      }
  11063    }, {
  11064      key: "_initialize",
  11065      value: function _initialize() {
  11066        var _this7 = this;
  11067 
  11068        if (typeof Worker !== 'undefined' && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {
  11069          var workerSrc = _getWorkerSrc();
  11070 
  11071          try {
  11072            if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {
  11073              workerSrc = createCDNWrapper(new _util.URL(workerSrc, window.location).href);
  11074            }
  11075 
  11076            var worker = new Worker(workerSrc);
  11077            var messageHandler = new _message_handler.MessageHandler('main', 'worker', worker);
  11078 
  11079            var terminateEarly = function terminateEarly() {
  11080              worker.removeEventListener('error', onWorkerError);
  11081              messageHandler.destroy();
  11082              worker.terminate();
  11083 
  11084              if (_this7.destroyed) {
  11085                _this7._readyCapability.reject(new Error('Worker was destroyed'));
  11086              } else {
  11087                _this7._setupFakeWorker();
  11088              }
  11089            };
  11090 
  11091            var onWorkerError = function onWorkerError() {
  11092              if (!_this7._webWorker) {
  11093                terminateEarly();
  11094              }
  11095            };
  11096 
  11097            worker.addEventListener('error', onWorkerError);
  11098            messageHandler.on('test', function (data) {
  11099              worker.removeEventListener('error', onWorkerError);
  11100 
  11101              if (_this7.destroyed) {
  11102                terminateEarly();
  11103                return;
  11104              }
  11105 
  11106              if (data && data.supportTypedArray) {
  11107                _this7._messageHandler = messageHandler;
  11108                _this7._port = worker;
  11109                _this7._webWorker = worker;
  11110 
  11111                if (!data.supportTransfers) {
  11112                  _this7.postMessageTransfers = false;
  11113                }
  11114 
  11115                _this7._readyCapability.resolve();
  11116 
  11117                messageHandler.send('configure', {
  11118                  verbosity: _this7.verbosity
  11119                });
  11120              } else {
  11121                _this7._setupFakeWorker();
  11122 
  11123                messageHandler.destroy();
  11124                worker.terminate();
  11125              }
  11126            });
  11127            messageHandler.on('ready', function (data) {
  11128              worker.removeEventListener('error', onWorkerError);
  11129 
  11130              if (_this7.destroyed) {
  11131                terminateEarly();
  11132                return;
  11133              }
  11134 
  11135              try {
  11136                sendTest();
  11137              } catch (e) {
  11138                _this7._setupFakeWorker();
  11139              }
  11140            });
  11141 
  11142            var sendTest = function sendTest() {
  11143              var testObj = new Uint8Array([_this7.postMessageTransfers ? 255 : 0]);
  11144 
  11145              try {
  11146                messageHandler.send('test', testObj, [testObj.buffer]);
  11147              } catch (ex) {
  11148                (0, _util.info)('Cannot use postMessage transfers');
  11149                testObj[0] = 0;
  11150                messageHandler.send('test', testObj);
  11151              }
  11152            };
  11153 
  11154            sendTest();
  11155            return;
  11156          } catch (e) {
  11157            (0, _util.info)('The worker has been disabled.');
  11158          }
  11159        }
  11160 
  11161        this._setupFakeWorker();
  11162      }
  11163    }, {
  11164      key: "_setupFakeWorker",
  11165      value: function _setupFakeWorker() {
  11166        var _this8 = this;
  11167 
  11168        if (!isWorkerDisabled) {
  11169          (0, _util.warn)('Setting up fake worker.');
  11170          isWorkerDisabled = true;
  11171        }
  11172 
  11173        setupFakeWorkerGlobal().then(function (WorkerMessageHandler) {
  11174          if (_this8.destroyed) {
  11175            _this8._readyCapability.reject(new Error('Worker was destroyed'));
  11176 
  11177            return;
  11178          }
  11179 
  11180          var port = new LoopbackPort();
  11181          _this8._port = port;
  11182          var id = 'fake' + nextFakeWorkerId++;
  11183          var workerHandler = new _message_handler.MessageHandler(id + '_worker', id, port);
  11184          WorkerMessageHandler.setup(workerHandler, port);
  11185          var messageHandler = new _message_handler.MessageHandler(id, id + '_worker', port);
  11186          _this8._messageHandler = messageHandler;
  11187 
  11188          _this8._readyCapability.resolve();
  11189        })["catch"](function (reason) {
  11190          _this8._readyCapability.reject(new Error("Setting up fake worker failed: \"".concat(reason.message, "\".")));
  11191        });
  11192      }
  11193    }, {
  11194      key: "destroy",
  11195      value: function destroy() {
  11196        this.destroyed = true;
  11197 
  11198        if (this._webWorker) {
  11199          this._webWorker.terminate();
  11200 
  11201          this._webWorker = null;
  11202        }
  11203 
  11204        pdfWorkerPorts["delete"](this._port);
  11205        this._port = null;
  11206 
  11207        if (this._messageHandler) {
  11208          this._messageHandler.destroy();
  11209 
  11210          this._messageHandler = null;
  11211        }
  11212      }
  11213    }, {
  11214      key: "promise",
  11215      get: function get() {
  11216        return this._readyCapability.promise;
  11217      }
  11218    }, {
  11219      key: "port",
  11220      get: function get() {
  11221        return this._port;
  11222      }
  11223    }, {
  11224      key: "messageHandler",
  11225      get: function get() {
  11226        return this._messageHandler;
  11227      }
  11228    }], [{
  11229      key: "fromPort",
  11230      value: function fromPort(params) {
  11231        if (!params || !params.port) {
  11232          throw new Error('PDFWorker.fromPort - invalid method signature.');
  11233        }
  11234 
  11235        if (pdfWorkerPorts.has(params.port)) {
  11236          return pdfWorkerPorts.get(params.port);
  11237        }
  11238 
  11239        return new PDFWorker(params);
  11240      }
  11241    }, {
  11242      key: "getWorkerSrc",
  11243      value: function getWorkerSrc() {
  11244        return _getWorkerSrc();
  11245      }
  11246    }]);
  11247 
  11248    return PDFWorker;
  11249  }();
  11250 
  11251  return PDFWorker;
  11252 }();
  11253 
  11254 exports.PDFWorker = PDFWorker;
  11255 
  11256 var WorkerTransport =
  11257 /*#__PURE__*/
  11258 function () {
  11259  function WorkerTransport(messageHandler, loadingTask, networkStream, params) {
  11260    _classCallCheck(this, WorkerTransport);
  11261 
  11262    this.messageHandler = messageHandler;
  11263    this.loadingTask = loadingTask;
  11264    this.commonObjs = new PDFObjects();
  11265    this.fontLoader = new _font_loader.FontLoader({
  11266      docId: loadingTask.docId,
  11267      onUnsupportedFeature: this._onUnsupportedFeature.bind(this)
  11268    });
  11269    this._params = params;
  11270    this.CMapReaderFactory = new params.CMapReaderFactory({
  11271      baseUrl: params.cMapUrl,
  11272      isCompressed: params.cMapPacked
  11273    });
  11274    this.destroyed = false;
  11275    this.destroyCapability = null;
  11276    this._passwordCapability = null;
  11277    this._networkStream = networkStream;
  11278    this._fullReader = null;
  11279    this._lastProgress = null;
  11280    this.pageCache = [];
  11281    this.pagePromises = [];
  11282    this.downloadInfoCapability = (0, _util.createPromiseCapability)();
  11283    this.setupMessageHandler();
  11284  }
  11285 
  11286  _createClass(WorkerTransport, [{
  11287    key: "destroy",
  11288    value: function destroy() {
  11289      var _this9 = this;
  11290 
  11291      if (this.destroyCapability) {
  11292        return this.destroyCapability.promise;
  11293      }
  11294 
  11295      this.destroyed = true;
  11296      this.destroyCapability = (0, _util.createPromiseCapability)();
  11297 
  11298      if (this._passwordCapability) {
  11299        this._passwordCapability.reject(new Error('Worker was destroyed during onPassword callback'));
  11300      }
  11301 
  11302      var waitOn = [];
  11303      this.pageCache.forEach(function (page) {
  11304        if (page) {
  11305          waitOn.push(page._destroy());
  11306        }
  11307      });
  11308      this.pageCache.length = 0;
  11309      this.pagePromises.length = 0;
  11310      var terminated = this.messageHandler.sendWithPromise('Terminate', null);
  11311      waitOn.push(terminated);
  11312      Promise.all(waitOn).then(function () {
  11313        _this9.fontLoader.clear();
  11314 
  11315        if (_this9._networkStream) {
  11316          _this9._networkStream.cancelAllRequests();
  11317        }
  11318 
  11319        if (_this9.messageHandler) {
  11320          _this9.messageHandler.destroy();
  11321 
  11322          _this9.messageHandler = null;
  11323        }
  11324 
  11325        _this9.destroyCapability.resolve();
  11326      }, this.destroyCapability.reject);
  11327      return this.destroyCapability.promise;
  11328    }
  11329  }, {
  11330    key: "setupMessageHandler",
  11331    value: function setupMessageHandler() {
  11332      var messageHandler = this.messageHandler,
  11333          loadingTask = this.loadingTask;
  11334      messageHandler.on('GetReader', function (data, sink) {
  11335        var _this10 = this;
  11336 
  11337        (0, _util.assert)(this._networkStream);
  11338        this._fullReader = this._networkStream.getFullReader();
  11339 
  11340        this._fullReader.onProgress = function (evt) {
  11341          _this10._lastProgress = {
  11342            loaded: evt.loaded,
  11343            total: evt.total
  11344          };
  11345        };
  11346 
  11347        sink.onPull = function () {
  11348          _this10._fullReader.read().then(function (_ref7) {
  11349            var value = _ref7.value,
  11350                done = _ref7.done;
  11351 
  11352            if (done) {
  11353              sink.close();
  11354              return;
  11355            }
  11356 
  11357            (0, _util.assert)((0, _util.isArrayBuffer)(value));
  11358            sink.enqueue(new Uint8Array(value), 1, [value]);
  11359          })["catch"](function (reason) {
  11360            sink.error(reason);
  11361          });
  11362        };
  11363 
  11364        sink.onCancel = function (reason) {
  11365          _this10._fullReader.cancel(reason);
  11366        };
  11367      }, this);
  11368      messageHandler.on('ReaderHeadersReady', function (data) {
  11369        var _this11 = this;
  11370 
  11371        var headersCapability = (0, _util.createPromiseCapability)();
  11372        var fullReader = this._fullReader;
  11373        fullReader.headersReady.then(function () {
  11374          if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {
  11375            if (_this11._lastProgress && loadingTask.onProgress) {
  11376              loadingTask.onProgress(_this11._lastProgress);
  11377            }
  11378 
  11379            fullReader.onProgress = function (evt) {
  11380              if (loadingTask.onProgress) {
  11381                loadingTask.onProgress({
  11382                  loaded: evt.loaded,
  11383                  total: evt.total
  11384                });
  11385              }
  11386            };
  11387          }
  11388 
  11389          headersCapability.resolve({
  11390            isStreamingSupported: fullReader.isStreamingSupported,
  11391            isRangeSupported: fullReader.isRangeSupported,
  11392            contentLength: fullReader.contentLength
  11393          });
  11394        }, headersCapability.reject);
  11395        return headersCapability.promise;
  11396      }, this);
  11397      messageHandler.on('GetRangeReader', function (data, sink) {
  11398        (0, _util.assert)(this._networkStream);
  11399 
  11400        var rangeReader = this._networkStream.getRangeReader(data.begin, data.end);
  11401 
  11402        if (!rangeReader) {
  11403          sink.close();
  11404          return;
  11405        }
  11406 
  11407        sink.onPull = function () {
  11408          rangeReader.read().then(function (_ref8) {
  11409            var value = _ref8.value,
  11410                done = _ref8.done;
  11411 
  11412            if (done) {
  11413              sink.close();
  11414              return;
  11415            }
  11416 
  11417            (0, _util.assert)((0, _util.isArrayBuffer)(value));
  11418            sink.enqueue(new Uint8Array(value), 1, [value]);
  11419          })["catch"](function (reason) {
  11420            sink.error(reason);
  11421          });
  11422        };
  11423 
  11424        sink.onCancel = function (reason) {
  11425          rangeReader.cancel(reason);
  11426        };
  11427      }, this);
  11428      messageHandler.on('GetDoc', function (_ref9) {
  11429        var pdfInfo = _ref9.pdfInfo;
  11430        this._numPages = pdfInfo.numPages;
  11431 
  11432        loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));
  11433      }, this);
  11434      messageHandler.on('PasswordRequest', function (exception) {
  11435        var _this12 = this;
  11436 
  11437        this._passwordCapability = (0, _util.createPromiseCapability)();
  11438 
  11439        if (loadingTask.onPassword) {
  11440          var updatePassword = function updatePassword(password) {
  11441            _this12._passwordCapability.resolve({
  11442              password: password
  11443            });
  11444          };
  11445 
  11446          try {
  11447            loadingTask.onPassword(updatePassword, exception.code);
  11448          } catch (ex) {
  11449            this._passwordCapability.reject(ex);
  11450          }
  11451        } else {
  11452          this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));
  11453        }
  11454 
  11455        return this._passwordCapability.promise;
  11456      }, this);
  11457      messageHandler.on('PasswordException', function (exception) {
  11458        loadingTask._capability.reject(new _util.PasswordException(exception.message, exception.code));
  11459      }, this);
  11460      messageHandler.on('InvalidPDF', function (exception) {
  11461        loadingTask._capability.reject(new _util.InvalidPDFException(exception.message));
  11462      }, this);
  11463      messageHandler.on('MissingPDF', function (exception) {
  11464        loadingTask._capability.reject(new _util.MissingPDFException(exception.message));
  11465      }, this);
  11466      messageHandler.on('UnexpectedResponse', function (exception) {
  11467        loadingTask._capability.reject(new _util.UnexpectedResponseException(exception.message, exception.status));
  11468      }, this);
  11469      messageHandler.on('UnknownError', function (exception) {
  11470        loadingTask._capability.reject(new _util.UnknownErrorException(exception.message, exception.details));
  11471      }, this);
  11472      messageHandler.on('DataLoaded', function (data) {
  11473        if (loadingTask.onProgress) {
  11474          loadingTask.onProgress({
  11475            loaded: data.length,
  11476            total: data.length
  11477          });
  11478        }
  11479 
  11480        this.downloadInfoCapability.resolve(data);
  11481      }, this);
  11482      messageHandler.on('StartRenderPage', function (data) {
  11483        if (this.destroyed) {
  11484          return;
  11485        }
  11486 
  11487        var page = this.pageCache[data.pageIndex];
  11488 
  11489        page._stats.timeEnd('Page Request');
  11490 
  11491        page._startRenderPage(data.transparency, data.intent);
  11492      }, this);
  11493      messageHandler.on('RenderPageChunk', function (data) {
  11494        if (this.destroyed) {
  11495          return;
  11496        }
  11497 
  11498        var page = this.pageCache[data.pageIndex];
  11499 
  11500        page._renderPageChunk(data.operatorList, data.intent);
  11501      }, this);
  11502      messageHandler.on('commonobj', function (data) {
  11503        var _this13 = this;
  11504 
  11505        if (this.destroyed) {
  11506          return;
  11507        }
  11508 
  11509        var _data = _slicedToArray(data, 3),
  11510            id = _data[0],
  11511            type = _data[1],
  11512            exportedData = _data[2];
  11513 
  11514        if (this.commonObjs.has(id)) {
  11515          return;
  11516        }
  11517 
  11518        switch (type) {
  11519          case 'Font':
  11520            var params = this._params;
  11521 
  11522            if ('error' in exportedData) {
  11523              var exportedError = exportedData.error;
  11524              (0, _util.warn)("Error during font loading: ".concat(exportedError));
  11525              this.commonObjs.resolve(id, exportedError);
  11526              break;
  11527            }
  11528 
  11529            var fontRegistry = null;
  11530 
  11531            if (params.pdfBug && _global_scope["default"].FontInspector && _global_scope["default"].FontInspector.enabled) {
  11532              fontRegistry = {
  11533                registerFont: function registerFont(font, url) {
  11534                  _global_scope["default"]['FontInspector'].fontAdded(font, url);
  11535                }
  11536              };
  11537            }
  11538 
  11539            var font = new _font_loader.FontFaceObject(exportedData, {
  11540              isEvalSupported: params.isEvalSupported,
  11541              disableFontFace: params.disableFontFace,
  11542              ignoreErrors: params.ignoreErrors,
  11543              onUnsupportedFeature: this._onUnsupportedFeature.bind(this),
  11544              fontRegistry: fontRegistry
  11545            });
  11546            this.fontLoader.bind(font).then(function () {
  11547              _this13.commonObjs.resolve(id, font);
  11548            }, function (reason) {
  11549              messageHandler.sendWithPromise('FontFallback', {
  11550                id: id
  11551              })["finally"](function () {
  11552                _this13.commonObjs.resolve(id, font);
  11553              });
  11554            });
  11555            break;
  11556 
  11557          case 'FontPath':
  11558          case 'FontType3Res':
  11559            this.commonObjs.resolve(id, exportedData);
  11560            break;
  11561 
  11562          default:
  11563            throw new Error("Got unknown common object type ".concat(type));
  11564        }
  11565      }, this);
  11566      messageHandler.on('obj', function (data) {
  11567        if (this.destroyed) {
  11568          return undefined;
  11569        }
  11570 
  11571        var _data2 = _slicedToArray(data, 4),
  11572            id = _data2[0],
  11573            pageIndex = _data2[1],
  11574            type = _data2[2],
  11575            imageData = _data2[3];
  11576 
  11577        var pageProxy = this.pageCache[pageIndex];
  11578 
  11579        if (pageProxy.objs.has(id)) {
  11580          return undefined;
  11581        }
  11582 
  11583        switch (type) {
  11584          case 'JpegStream':
  11585            return new Promise(function (resolve, reject) {
  11586              var img = new Image();
  11587 
  11588              img.onload = function () {
  11589                resolve(img);
  11590              };
  11591 
  11592              img.onerror = function () {
  11593                reject(new Error('Error during JPEG image loading'));
  11594                (0, _display_utils.releaseImageResources)(img);
  11595              };
  11596 
  11597              img.src = imageData;
  11598            }).then(function (img) {
  11599              pageProxy.objs.resolve(id, img);
  11600            });
  11601 
  11602          case 'Image':
  11603            pageProxy.objs.resolve(id, imageData);
  11604            var MAX_IMAGE_SIZE_TO_STORE = 8000000;
  11605 
  11606            if (imageData && 'data' in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {
  11607              pageProxy.cleanupAfterRender = true;
  11608            }
  11609 
  11610            break;
  11611 
  11612          default:
  11613            throw new Error("Got unknown object type ".concat(type));
  11614        }
  11615 
  11616        return undefined;
  11617      }, this);
  11618      messageHandler.on('DocProgress', function (data) {
  11619        if (this.destroyed) {
  11620          return;
  11621        }
  11622 
  11623        if (loadingTask.onProgress) {
  11624          loadingTask.onProgress({
  11625            loaded: data.loaded,
  11626            total: data.total
  11627          });
  11628        }
  11629      }, this);
  11630      messageHandler.on('PageError', function (data) {
  11631        if (this.destroyed) {
  11632          return;
  11633        }
  11634 
  11635        var page = this.pageCache[data.pageIndex];
  11636        var intentState = page.intentStates[data.intent];
  11637 
  11638        if (intentState.displayReadyCapability) {
  11639          intentState.displayReadyCapability.reject(new Error(data.error));
  11640        } else {
  11641          throw new Error(data.error);
  11642        }
  11643 
  11644        if (intentState.operatorList) {
  11645          intentState.operatorList.lastChunk = true;
  11646 
  11647          for (var i = 0; i < intentState.renderTasks.length; i++) {
  11648            intentState.renderTasks[i].operatorListChanged();
  11649          }
  11650        }
  11651      }, this);
  11652      messageHandler.on('UnsupportedFeature', this._onUnsupportedFeature, this);
  11653      messageHandler.on('JpegDecode', function (data) {
  11654        if (this.destroyed) {
  11655          return Promise.reject(new Error('Worker was destroyed'));
  11656        }
  11657 
  11658        if (typeof document === 'undefined') {
  11659          return Promise.reject(new Error('"document" is not defined.'));
  11660        }
  11661 
  11662        var _data3 = _slicedToArray(data, 2),
  11663            imageUrl = _data3[0],
  11664            components = _data3[1];
  11665 
  11666        if (components !== 3 && components !== 1) {
  11667          return Promise.reject(new Error('Only 3 components or 1 component can be returned'));
  11668        }
  11669 
  11670        return new Promise(function (resolve, reject) {
  11671          var img = new Image();
  11672 
  11673          img.onload = function () {
  11674            var width = img.width,
  11675                height = img.height;
  11676            var size = width * height;
  11677            var rgbaLength = size * 4;
  11678            var buf = new Uint8ClampedArray(size * components);
  11679            var tmpCanvas = document.createElement('canvas');
  11680            tmpCanvas.width = width;
  11681            tmpCanvas.height = height;
  11682            var tmpCtx = tmpCanvas.getContext('2d');
  11683            tmpCtx.drawImage(img, 0, 0);
  11684            var data = tmpCtx.getImageData(0, 0, width, height).data;
  11685 
  11686            if (components === 3) {
  11687              for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {
  11688                buf[j] = data[i];
  11689                buf[j + 1] = data[i + 1];
  11690                buf[j + 2] = data[i + 2];
  11691              }
  11692            } else if (components === 1) {
  11693              for (var _i2 = 0, _j = 0; _i2 < rgbaLength; _i2 += 4, _j++) {
  11694                buf[_j] = data[_i2];
  11695              }
  11696            }
  11697 
  11698            resolve({
  11699              data: buf,
  11700              width: width,
  11701              height: height
  11702            });
  11703            (0, _display_utils.releaseImageResources)(img);
  11704            tmpCanvas.width = 0;
  11705            tmpCanvas.height = 0;
  11706            tmpCanvas = null;
  11707            tmpCtx = null;
  11708          };
  11709 
  11710          img.onerror = function () {
  11711            reject(new Error('JpegDecode failed to load image'));
  11712            (0, _display_utils.releaseImageResources)(img);
  11713          };
  11714 
  11715          img.src = imageUrl;
  11716        });
  11717      }, this);
  11718      messageHandler.on('FetchBuiltInCMap', function (data) {
  11719        if (this.destroyed) {
  11720          return Promise.reject(new Error('Worker was destroyed'));
  11721        }
  11722 
  11723        return this.CMapReaderFactory.fetch({
  11724          name: data.name
  11725        });
  11726      }, this);
  11727    }
  11728  }, {
  11729    key: "_onUnsupportedFeature",
  11730    value: function _onUnsupportedFeature(_ref10) {
  11731      var featureId = _ref10.featureId;
  11732 
  11733      if (this.destroyed) {
  11734        return;
  11735      }
  11736 
  11737      if (this.loadingTask.onUnsupportedFeature) {
  11738        this.loadingTask.onUnsupportedFeature(featureId);
  11739      }
  11740    }
  11741  }, {
  11742    key: "getData",
  11743    value: function getData() {
  11744      return this.messageHandler.sendWithPromise('GetData', null);
  11745    }
  11746  }, {
  11747    key: "getPage",
  11748    value: function getPage(pageNumber) {
  11749      var _this14 = this;
  11750 
  11751      if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {
  11752        return Promise.reject(new Error('Invalid page request'));
  11753      }
  11754 
  11755      var pageIndex = pageNumber - 1;
  11756 
  11757      if (pageIndex in this.pagePromises) {
  11758        return this.pagePromises[pageIndex];
  11759      }
  11760 
  11761      var promise = this.messageHandler.sendWithPromise('GetPage', {
  11762        pageIndex: pageIndex
  11763      }).then(function (pageInfo) {
  11764        if (_this14.destroyed) {
  11765          throw new Error('Transport destroyed');
  11766        }
  11767 
  11768        var page = new PDFPageProxy(pageIndex, pageInfo, _this14, _this14._params.pdfBug);
  11769        _this14.pageCache[pageIndex] = page;
  11770        return page;
  11771      });
  11772      this.pagePromises[pageIndex] = promise;
  11773      return promise;
  11774    }
  11775  }, {
  11776    key: "getPageIndex",
  11777    value: function getPageIndex(ref) {
  11778      return this.messageHandler.sendWithPromise('GetPageIndex', {
  11779        ref: ref
  11780      })["catch"](function (reason) {
  11781        return Promise.reject(new Error(reason));
  11782      });
  11783    }
  11784  }, {
  11785    key: "getAnnotations",
  11786    value: function getAnnotations(pageIndex, intent) {
  11787      return this.messageHandler.sendWithPromise('GetAnnotations', {
  11788        pageIndex: pageIndex,
  11789        intent: intent
  11790      });
  11791    }
  11792  }, {
  11793    key: "getDestinations",
  11794    value: function getDestinations() {
  11795      return this.messageHandler.sendWithPromise('GetDestinations', null);
  11796    }
  11797  }, {
  11798    key: "getDestination",
  11799    value: function getDestination(id) {
  11800      if (typeof id !== 'string') {
  11801        return Promise.reject(new Error('Invalid destination request.'));
  11802      }
  11803 
  11804      return this.messageHandler.sendWithPromise('GetDestination', {
  11805        id: id
  11806      });
  11807    }
  11808  }, {
  11809    key: "getPageLabels",
  11810    value: function getPageLabels() {
  11811      return this.messageHandler.sendWithPromise('GetPageLabels', null);
  11812    }
  11813  }, {
  11814    key: "getPageLayout",
  11815    value: function getPageLayout() {
  11816      return this.messageHandler.sendWithPromise('GetPageLayout', null);
  11817    }
  11818  }, {
  11819    key: "getPageMode",
  11820    value: function getPageMode() {
  11821      return this.messageHandler.sendWithPromise('GetPageMode', null);
  11822    }
  11823  }, {
  11824    key: "getViewerPreferences",
  11825    value: function getViewerPreferences() {
  11826      return this.messageHandler.sendWithPromise('GetViewerPreferences', null);
  11827    }
  11828  }, {
  11829    key: "getOpenActionDestination",
  11830    value: function getOpenActionDestination() {
  11831      return this.messageHandler.sendWithPromise('GetOpenActionDestination', null);
  11832    }
  11833  }, {
  11834    key: "getAttachments",
  11835    value: function getAttachments() {
  11836      return this.messageHandler.sendWithPromise('GetAttachments', null);
  11837    }
  11838  }, {
  11839    key: "getJavaScript",
  11840    value: function getJavaScript() {
  11841      return this.messageHandler.sendWithPromise('GetJavaScript', null);
  11842    }
  11843  }, {
  11844    key: "getOutline",
  11845    value: function getOutline() {
  11846      return this.messageHandler.sendWithPromise('GetOutline', null);
  11847    }
  11848  }, {
  11849    key: "getPermissions",
  11850    value: function getPermissions() {
  11851      return this.messageHandler.sendWithPromise('GetPermissions', null);
  11852    }
  11853  }, {
  11854    key: "getMetadata",
  11855    value: function getMetadata() {
  11856      var _this15 = this;
  11857 
  11858      return this.messageHandler.sendWithPromise('GetMetadata', null).then(function (results) {
  11859        return {
  11860          info: results[0],
  11861          metadata: results[1] ? new _metadata.Metadata(results[1]) : null,
  11862          contentDispositionFilename: _this15._fullReader ? _this15._fullReader.filename : null
  11863        };
  11864      });
  11865    }
  11866  }, {
  11867    key: "getStats",
  11868    value: function getStats() {
  11869      return this.messageHandler.sendWithPromise('GetStats', null);
  11870    }
  11871  }, {
  11872    key: "startCleanup",
  11873    value: function startCleanup() {
  11874      var _this16 = this;
  11875 
  11876      this.messageHandler.sendWithPromise('Cleanup', null).then(function () {
  11877        for (var i = 0, ii = _this16.pageCache.length; i < ii; i++) {
  11878          var page = _this16.pageCache[i];
  11879 
  11880          if (page) {
  11881            page.cleanup();
  11882          }
  11883        }
  11884 
  11885        _this16.commonObjs.clear();
  11886 
  11887        _this16.fontLoader.clear();
  11888      });
  11889    }
  11890  }, {
  11891    key: "loadingParams",
  11892    get: function get() {
  11893      var params = this._params;
  11894      return (0, _util.shadow)(this, 'loadingParams', {
  11895        disableAutoFetch: params.disableAutoFetch,
  11896        disableCreateObjectURL: params.disableCreateObjectURL,
  11897        disableFontFace: params.disableFontFace,
  11898        nativeImageDecoderSupport: params.nativeImageDecoderSupport
  11899      });
  11900    }
  11901  }]);
  11902 
  11903  return WorkerTransport;
  11904 }();
  11905 
  11906 var PDFObjects =
  11907 /*#__PURE__*/
  11908 function () {
  11909  function PDFObjects() {
  11910    _classCallCheck(this, PDFObjects);
  11911 
  11912    this._objs = Object.create(null);
  11913  }
  11914 
  11915  _createClass(PDFObjects, [{
  11916    key: "_ensureObj",
  11917    value: function _ensureObj(objId) {
  11918      if (this._objs[objId]) {
  11919        return this._objs[objId];
  11920      }
  11921 
  11922      return this._objs[objId] = {
  11923        capability: (0, _util.createPromiseCapability)(),
  11924        data: null,
  11925        resolved: false
  11926      };
  11927    }
  11928  }, {
  11929    key: "get",
  11930    value: function get(objId) {
  11931      var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
  11932 
  11933      if (callback) {
  11934        this._ensureObj(objId).capability.promise.then(callback);
  11935 
  11936        return null;
  11937      }
  11938 
  11939      var obj = this._objs[objId];
  11940 
  11941      if (!obj || !obj.resolved) {
  11942        throw new Error("Requesting object that isn't resolved yet ".concat(objId, "."));
  11943      }
  11944 
  11945      return obj.data;
  11946    }
  11947  }, {
  11948    key: "has",
  11949    value: function has(objId) {
  11950      var obj = this._objs[objId];
  11951      return obj ? obj.resolved : false;
  11952    }
  11953  }, {
  11954    key: "resolve",
  11955    value: function resolve(objId, data) {
  11956      var obj = this._ensureObj(objId);
  11957 
  11958      obj.resolved = true;
  11959      obj.data = data;
  11960      obj.capability.resolve(data);
  11961    }
  11962  }, {
  11963    key: "clear",
  11964    value: function clear() {
  11965      for (var objId in this._objs) {
  11966        var data = this._objs[objId].data;
  11967 
  11968        if (typeof Image !== 'undefined' && data instanceof Image) {
  11969          (0, _display_utils.releaseImageResources)(data);
  11970        }
  11971      }
  11972 
  11973      this._objs = Object.create(null);
  11974    }
  11975  }]);
  11976 
  11977  return PDFObjects;
  11978 }();
  11979 
  11980 var RenderTask =
  11981 /*#__PURE__*/
  11982 function () {
  11983  function RenderTask(internalRenderTask) {
  11984    _classCallCheck(this, RenderTask);
  11985 
  11986    this._internalRenderTask = internalRenderTask;
  11987    this.onContinue = null;
  11988  }
  11989 
  11990  _createClass(RenderTask, [{
  11991    key: "cancel",
  11992    value: function cancel() {
  11993      this._internalRenderTask.cancel();
  11994    }
  11995  }, {
  11996    key: "then",
  11997    value: function then(onFulfilled, onRejected) {
  11998      (0, _display_utils.deprecated)('RenderTask.then method, use the `promise` getter instead.');
  11999      return this.promise.then.apply(this.promise, arguments);
  12000    }
  12001  }, {
  12002    key: "promise",
  12003    get: function get() {
  12004      return this._internalRenderTask.capability.promise;
  12005    }
  12006  }]);
  12007 
  12008  return RenderTask;
  12009 }();
  12010 
  12011 var InternalRenderTask = function InternalRenderTaskClosure() {
  12012  var canvasInRendering = new WeakSet();
  12013 
  12014  var InternalRenderTask =
  12015  /*#__PURE__*/
  12016  function () {
  12017    function InternalRenderTask(_ref11) {
  12018      var callback = _ref11.callback,
  12019          params = _ref11.params,
  12020          objs = _ref11.objs,
  12021          commonObjs = _ref11.commonObjs,
  12022          operatorList = _ref11.operatorList,
  12023          pageNumber = _ref11.pageNumber,
  12024          canvasFactory = _ref11.canvasFactory,
  12025          webGLContext = _ref11.webGLContext,
  12026          _ref11$useRequestAnim = _ref11.useRequestAnimationFrame,
  12027          useRequestAnimationFrame = _ref11$useRequestAnim === void 0 ? false : _ref11$useRequestAnim,
  12028          _ref11$pdfBug = _ref11.pdfBug,
  12029          pdfBug = _ref11$pdfBug === void 0 ? false : _ref11$pdfBug;
  12030 
  12031      _classCallCheck(this, InternalRenderTask);
  12032 
  12033      this.callback = callback;
  12034      this.params = params;
  12035      this.objs = objs;
  12036      this.commonObjs = commonObjs;
  12037      this.operatorListIdx = null;
  12038      this.operatorList = operatorList;
  12039      this.pageNumber = pageNumber;
  12040      this.canvasFactory = canvasFactory;
  12041      this.webGLContext = webGLContext;
  12042      this._pdfBug = pdfBug;
  12043      this.running = false;
  12044      this.graphicsReadyCallback = null;
  12045      this.graphicsReady = false;
  12046      this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== 'undefined';
  12047      this.cancelled = false;
  12048      this.capability = (0, _util.createPromiseCapability)();
  12049      this.task = new RenderTask(this);
  12050      this._continueBound = this._continue.bind(this);
  12051      this._scheduleNextBound = this._scheduleNext.bind(this);
  12052      this._nextBound = this._next.bind(this);
  12053      this._canvas = params.canvasContext.canvas;
  12054    }
  12055 
  12056    _createClass(InternalRenderTask, [{
  12057      key: "initializeGraphics",
  12058      value: function initializeGraphics() {
  12059        var transparency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
  12060 
  12061        if (this.cancelled) {
  12062          return;
  12063        }
  12064 
  12065        if (this._canvas) {
  12066          if (canvasInRendering.has(this._canvas)) {
  12067            throw new Error('Cannot use the same canvas during multiple render() operations. ' + 'Use different canvas or ensure previous operations were ' + 'cancelled or completed.');
  12068          }
  12069 
  12070          canvasInRendering.add(this._canvas);
  12071        }
  12072 
  12073        if (this._pdfBug && _global_scope["default"].StepperManager && _global_scope["default"].StepperManager.enabled) {
  12074          this.stepper = _global_scope["default"].StepperManager.create(this.pageNumber - 1);
  12075          this.stepper.init(this.operatorList);
  12076          this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();
  12077        }
  12078 
  12079        var _this$params = this.params,
  12080            canvasContext = _this$params.canvasContext,
  12081            viewport = _this$params.viewport,
  12082            transform = _this$params.transform,
  12083            imageLayer = _this$params.imageLayer,
  12084            background = _this$params.background;
  12085        this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer);
  12086        this.gfx.beginDrawing({
  12087          transform: transform,
  12088          viewport: viewport,
  12089          transparency: transparency,
  12090          background: background
  12091        });
  12092        this.operatorListIdx = 0;
  12093        this.graphicsReady = true;
  12094 
  12095        if (this.graphicsReadyCallback) {
  12096          this.graphicsReadyCallback();
  12097        }
  12098      }
  12099    }, {
  12100      key: "cancel",
  12101      value: function cancel() {
  12102        var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
  12103        this.running = false;
  12104        this.cancelled = true;
  12105 
  12106        if (this.gfx) {
  12107          this.gfx.endDrawing();
  12108        }
  12109 
  12110        if (this._canvas) {
  12111          canvasInRendering["delete"](this._canvas);
  12112        }
  12113 
  12114        this.callback(error || new _display_utils.RenderingCancelledException("Rendering cancelled, page ".concat(this.pageNumber), 'canvas'));
  12115      }
  12116    }, {
  12117      key: "operatorListChanged",
  12118      value: function operatorListChanged() {
  12119        if (!this.graphicsReady) {
  12120          if (!this.graphicsReadyCallback) {
  12121            this.graphicsReadyCallback = this._continueBound;
  12122          }
  12123 
  12124          return;
  12125        }
  12126 
  12127        if (this.stepper) {
  12128          this.stepper.updateOperatorList(this.operatorList);
  12129        }
  12130 
  12131        if (this.running) {
  12132          return;
  12133        }
  12134 
  12135        this._continue();
  12136      }
  12137    }, {
  12138      key: "_continue",
  12139      value: function _continue() {
  12140        this.running = true;
  12141 
  12142        if (this.cancelled) {
  12143          return;
  12144        }
  12145 
  12146        if (this.task.onContinue) {
  12147          this.task.onContinue(this._scheduleNextBound);
  12148        } else {
  12149          this._scheduleNext();
  12150        }
  12151      }
  12152    }, {
  12153      key: "_scheduleNext",
  12154      value: function _scheduleNext() {
  12155        var _this17 = this;
  12156 
  12157        if (this._useRequestAnimationFrame) {
  12158          window.requestAnimationFrame(function () {
  12159            _this17._nextBound()["catch"](_this17.cancel.bind(_this17));
  12160          });
  12161        } else {
  12162          Promise.resolve().then(this._nextBound)["catch"](this.cancel.bind(this));
  12163        }
  12164      }
  12165    }, {
  12166      key: "_next",
  12167      value: function () {
  12168        var _next2 = _asyncToGenerator(
  12169        /*#__PURE__*/
  12170        _regenerator["default"].mark(function _callee() {
  12171          return _regenerator["default"].wrap(function _callee$(_context) {
  12172            while (1) {
  12173              switch (_context.prev = _context.next) {
  12174                case 0:
  12175                  if (!this.cancelled) {
  12176                    _context.next = 2;
  12177                    break;
  12178                  }
  12179 
  12180                  return _context.abrupt("return");
  12181 
  12182                case 2:
  12183                  this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);
  12184 
  12185                  if (this.operatorListIdx === this.operatorList.argsArray.length) {
  12186                    this.running = false;
  12187 
  12188                    if (this.operatorList.lastChunk) {
  12189                      this.gfx.endDrawing();
  12190 
  12191                      if (this._canvas) {
  12192                        canvasInRendering["delete"](this._canvas);
  12193                      }
  12194 
  12195                      this.callback();
  12196                    }
  12197                  }
  12198 
  12199                case 4:
  12200                case "end":
  12201                  return _context.stop();
  12202              }
  12203            }
  12204          }, _callee, this);
  12205        }));
  12206 
  12207        function _next() {
  12208          return _next2.apply(this, arguments);
  12209        }
  12210 
  12211        return _next;
  12212      }()
  12213    }]);
  12214 
  12215    return InternalRenderTask;
  12216  }();
  12217 
  12218  return InternalRenderTask;
  12219 }();
  12220 
  12221 var version = '2.2.228';
  12222 exports.version = version;
  12223 var build = 'd7afb74a';
  12224 exports.build = build;
  12225 
  12226 /***/ }),
  12227 /* 148 */
  12228 /***/ (function(module, exports, __w_pdfjs_require__) {
  12229 
  12230 "use strict";
  12231 
  12232 
  12233 module.exports = __w_pdfjs_require__(149);
  12234 
  12235 /***/ }),
  12236 /* 149 */
  12237 /***/ (function(module, exports, __w_pdfjs_require__) {
  12238 
  12239 "use strict";
  12240 /* WEBPACK VAR INJECTION */(function(module) {
  12241 
  12242 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
  12243 
  12244 var runtime = function (exports) {
  12245  "use strict";
  12246 
  12247  var Op = Object.prototype;
  12248  var hasOwn = Op.hasOwnProperty;
  12249  var undefined;
  12250  var $Symbol = typeof Symbol === "function" ? Symbol : {};
  12251  var iteratorSymbol = $Symbol.iterator || "@@iterator";
  12252  var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
  12253  var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
  12254 
  12255  function wrap(innerFn, outerFn, self, tryLocsList) {
  12256    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
  12257    var generator = Object.create(protoGenerator.prototype);
  12258    var context = new Context(tryLocsList || []);
  12259    generator._invoke = makeInvokeMethod(innerFn, self, context);
  12260    return generator;
  12261  }
  12262 
  12263  exports.wrap = wrap;
  12264 
  12265  function tryCatch(fn, obj, arg) {
  12266    try {
  12267      return {
  12268        type: "normal",
  12269        arg: fn.call(obj, arg)
  12270      };
  12271    } catch (err) {
  12272      return {
  12273        type: "throw",
  12274        arg: err
  12275      };
  12276    }
  12277  }
  12278 
  12279  var GenStateSuspendedStart = "suspendedStart";
  12280  var GenStateSuspendedYield = "suspendedYield";
  12281  var GenStateExecuting = "executing";
  12282  var GenStateCompleted = "completed";
  12283  var ContinueSentinel = {};
  12284 
  12285  function Generator() {}
  12286 
  12287  function GeneratorFunction() {}
  12288 
  12289  function GeneratorFunctionPrototype() {}
  12290 
  12291  var IteratorPrototype = {};
  12292 
  12293  IteratorPrototype[iteratorSymbol] = function () {
  12294    return this;
  12295  };
  12296 
  12297  var getProto = Object.getPrototypeOf;
  12298  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
  12299 
  12300  if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
  12301    IteratorPrototype = NativeIteratorPrototype;
  12302  }
  12303 
  12304  var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);
  12305  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
  12306  GeneratorFunctionPrototype.constructor = GeneratorFunction;
  12307  GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction";
  12308 
  12309  function defineIteratorMethods(prototype) {
  12310    ["next", "throw", "return"].forEach(function (method) {
  12311      prototype[method] = function (arg) {
  12312        return this._invoke(method, arg);
  12313      };
  12314    });
  12315  }
  12316 
  12317  exports.isGeneratorFunction = function (genFun) {
  12318    var ctor = typeof genFun === "function" && genFun.constructor;
  12319    return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false;
  12320  };
  12321 
  12322  exports.mark = function (genFun) {
  12323    if (Object.setPrototypeOf) {
  12324      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
  12325    } else {
  12326      genFun.__proto__ = GeneratorFunctionPrototype;
  12327 
  12328      if (!(toStringTagSymbol in genFun)) {
  12329        genFun[toStringTagSymbol] = "GeneratorFunction";
  12330      }
  12331    }
  12332 
  12333    genFun.prototype = Object.create(Gp);
  12334    return genFun;
  12335  };
  12336 
  12337  exports.awrap = function (arg) {
  12338    return {
  12339      __await: arg
  12340    };
  12341  };
  12342 
  12343  function AsyncIterator(generator) {
  12344    function invoke(method, arg, resolve, reject) {
  12345      var record = tryCatch(generator[method], generator, arg);
  12346 
  12347      if (record.type === "throw") {
  12348        reject(record.arg);
  12349      } else {
  12350        var result = record.arg;
  12351        var value = result.value;
  12352 
  12353        if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) {
  12354          return Promise.resolve(value.__await).then(function (value) {
  12355            invoke("next", value, resolve, reject);
  12356          }, function (err) {
  12357            invoke("throw", err, resolve, reject);
  12358          });
  12359        }
  12360 
  12361        return Promise.resolve(value).then(function (unwrapped) {
  12362          result.value = unwrapped;
  12363          resolve(result);
  12364        }, function (error) {
  12365          return invoke("throw", error, resolve, reject);
  12366        });
  12367      }
  12368    }
  12369 
  12370    var previousPromise;
  12371 
  12372    function enqueue(method, arg) {
  12373      function callInvokeWithMethodAndArg() {
  12374        return new Promise(function (resolve, reject) {
  12375          invoke(method, arg, resolve, reject);
  12376        });
  12377      }
  12378 
  12379      return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
  12380    }
  12381 
  12382    this._invoke = enqueue;
  12383  }
  12384 
  12385  defineIteratorMethods(AsyncIterator.prototype);
  12386 
  12387  AsyncIterator.prototype[asyncIteratorSymbol] = function () {
  12388    return this;
  12389  };
  12390 
  12391  exports.AsyncIterator = AsyncIterator;
  12392 
  12393  exports.async = function (innerFn, outerFn, self, tryLocsList) {
  12394    var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));
  12395    return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {
  12396      return result.done ? result.value : iter.next();
  12397    });
  12398  };
  12399 
  12400  function makeInvokeMethod(innerFn, self, context) {
  12401    var state = GenStateSuspendedStart;
  12402    return function invoke(method, arg) {
  12403      if (state === GenStateExecuting) {
  12404        throw new Error("Generator is already running");
  12405      }
  12406 
  12407      if (state === GenStateCompleted) {
  12408        if (method === "throw") {
  12409          throw arg;
  12410        }
  12411 
  12412        return doneResult();
  12413      }
  12414 
  12415      context.method = method;
  12416      context.arg = arg;
  12417 
  12418      while (true) {
  12419        var delegate = context.delegate;
  12420 
  12421        if (delegate) {
  12422          var delegateResult = maybeInvokeDelegate(delegate, context);
  12423 
  12424          if (delegateResult) {
  12425            if (delegateResult === ContinueSentinel) continue;
  12426            return delegateResult;
  12427          }
  12428        }
  12429 
  12430        if (context.method === "next") {
  12431          context.sent = context._sent = context.arg;
  12432        } else if (context.method === "throw") {
  12433          if (state === GenStateSuspendedStart) {
  12434            state = GenStateCompleted;
  12435            throw context.arg;
  12436          }
  12437 
  12438          context.dispatchException(context.arg);
  12439        } else if (context.method === "return") {
  12440          context.abrupt("return", context.arg);
  12441        }
  12442 
  12443        state = GenStateExecuting;
  12444        var record = tryCatch(innerFn, self, context);
  12445 
  12446        if (record.type === "normal") {
  12447          state = context.done ? GenStateCompleted : GenStateSuspendedYield;
  12448 
  12449          if (record.arg === ContinueSentinel) {
  12450            continue;
  12451          }
  12452 
  12453          return {
  12454            value: record.arg,
  12455            done: context.done
  12456          };
  12457        } else if (record.type === "throw") {
  12458          state = GenStateCompleted;
  12459          context.method = "throw";
  12460          context.arg = record.arg;
  12461        }
  12462      }
  12463    };
  12464  }
  12465 
  12466  function maybeInvokeDelegate(delegate, context) {
  12467    var method = delegate.iterator[context.method];
  12468 
  12469    if (method === undefined) {
  12470      context.delegate = null;
  12471 
  12472      if (context.method === "throw") {
  12473        if (delegate.iterator["return"]) {
  12474          context.method = "return";
  12475          context.arg = undefined;
  12476          maybeInvokeDelegate(delegate, context);
  12477 
  12478          if (context.method === "throw") {
  12479            return ContinueSentinel;
  12480          }
  12481        }
  12482 
  12483        context.method = "throw";
  12484        context.arg = new TypeError("The iterator does not provide a 'throw' method");
  12485      }
  12486 
  12487      return ContinueSentinel;
  12488    }
  12489 
  12490    var record = tryCatch(method, delegate.iterator, context.arg);
  12491 
  12492    if (record.type === "throw") {
  12493      context.method = "throw";
  12494      context.arg = record.arg;
  12495      context.delegate = null;
  12496      return ContinueSentinel;
  12497    }
  12498 
  12499    var info = record.arg;
  12500 
  12501    if (!info) {
  12502      context.method = "throw";
  12503      context.arg = new TypeError("iterator result is not an object");
  12504      context.delegate = null;
  12505      return ContinueSentinel;
  12506    }
  12507 
  12508    if (info.done) {
  12509      context[delegate.resultName] = info.value;
  12510      context.next = delegate.nextLoc;
  12511 
  12512      if (context.method !== "return") {
  12513        context.method = "next";
  12514        context.arg = undefined;
  12515      }
  12516    } else {
  12517      return info;
  12518    }
  12519 
  12520    context.delegate = null;
  12521    return ContinueSentinel;
  12522  }
  12523 
  12524  defineIteratorMethods(Gp);
  12525  Gp[toStringTagSymbol] = "Generator";
  12526 
  12527  Gp[iteratorSymbol] = function () {
  12528    return this;
  12529  };
  12530 
  12531  Gp.toString = function () {
  12532    return "[object Generator]";
  12533  };
  12534 
  12535  function pushTryEntry(locs) {
  12536    var entry = {
  12537      tryLoc: locs[0]
  12538    };
  12539 
  12540    if (1 in locs) {
  12541      entry.catchLoc = locs[1];
  12542    }
  12543 
  12544    if (2 in locs) {
  12545      entry.finallyLoc = locs[2];
  12546      entry.afterLoc = locs[3];
  12547    }
  12548 
  12549    this.tryEntries.push(entry);
  12550  }
  12551 
  12552  function resetTryEntry(entry) {
  12553    var record = entry.completion || {};
  12554    record.type = "normal";
  12555    delete record.arg;
  12556    entry.completion = record;
  12557  }
  12558 
  12559  function Context(tryLocsList) {
  12560    this.tryEntries = [{
  12561      tryLoc: "root"
  12562    }];
  12563    tryLocsList.forEach(pushTryEntry, this);
  12564    this.reset(true);
  12565  }
  12566 
  12567  exports.keys = function (object) {
  12568    var keys = [];
  12569 
  12570    for (var key in object) {
  12571      keys.push(key);
  12572    }
  12573 
  12574    keys.reverse();
  12575    return function next() {
  12576      while (keys.length) {
  12577        var key = keys.pop();
  12578 
  12579        if (key in object) {
  12580          next.value = key;
  12581          next.done = false;
  12582          return next;
  12583        }
  12584      }
  12585 
  12586      next.done = true;
  12587      return next;
  12588    };
  12589  };
  12590 
  12591  function values(iterable) {
  12592    if (iterable) {
  12593      var iteratorMethod = iterable[iteratorSymbol];
  12594 
  12595      if (iteratorMethod) {
  12596        return iteratorMethod.call(iterable);
  12597      }
  12598 
  12599      if (typeof iterable.next === "function") {
  12600        return iterable;
  12601      }
  12602 
  12603      if (!isNaN(iterable.length)) {
  12604        var i = -1,
  12605            next = function next() {
  12606          while (++i < iterable.length) {
  12607            if (hasOwn.call(iterable, i)) {
  12608              next.value = iterable[i];
  12609              next.done = false;
  12610              return next;
  12611            }
  12612          }
  12613 
  12614          next.value = undefined;
  12615          next.done = true;
  12616          return next;
  12617        };
  12618 
  12619        return next.next = next;
  12620      }
  12621    }
  12622 
  12623    return {
  12624      next: doneResult
  12625    };
  12626  }
  12627 
  12628  exports.values = values;
  12629 
  12630  function doneResult() {
  12631    return {
  12632      value: undefined,
  12633      done: true
  12634    };
  12635  }
  12636 
  12637  Context.prototype = {
  12638    constructor: Context,
  12639    reset: function reset(skipTempReset) {
  12640      this.prev = 0;
  12641      this.next = 0;
  12642      this.sent = this._sent = undefined;
  12643      this.done = false;
  12644      this.delegate = null;
  12645      this.method = "next";
  12646      this.arg = undefined;
  12647      this.tryEntries.forEach(resetTryEntry);
  12648 
  12649      if (!skipTempReset) {
  12650        for (var name in this) {
  12651          if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {
  12652            this[name] = undefined;
  12653          }
  12654        }
  12655      }
  12656    },
  12657    stop: function stop() {
  12658      this.done = true;
  12659      var rootEntry = this.tryEntries[0];
  12660      var rootRecord = rootEntry.completion;
  12661 
  12662      if (rootRecord.type === "throw") {
  12663        throw rootRecord.arg;
  12664      }
  12665 
  12666      return this.rval;
  12667    },
  12668    dispatchException: function dispatchException(exception) {
  12669      if (this.done) {
  12670        throw exception;
  12671      }
  12672 
  12673      var context = this;
  12674 
  12675      function handle(loc, caught) {
  12676        record.type = "throw";
  12677        record.arg = exception;
  12678        context.next = loc;
  12679 
  12680        if (caught) {
  12681          context.method = "next";
  12682          context.arg = undefined;
  12683        }
  12684 
  12685        return !!caught;
  12686      }
  12687 
  12688      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
  12689        var entry = this.tryEntries[i];
  12690        var record = entry.completion;
  12691 
  12692        if (entry.tryLoc === "root") {
  12693          return handle("end");
  12694        }
  12695 
  12696        if (entry.tryLoc <= this.prev) {
  12697          var hasCatch = hasOwn.call(entry, "catchLoc");
  12698          var hasFinally = hasOwn.call(entry, "finallyLoc");
  12699 
  12700          if (hasCatch && hasFinally) {
  12701            if (this.prev < entry.catchLoc) {
  12702              return handle(entry.catchLoc, true);
  12703            } else if (this.prev < entry.finallyLoc) {
  12704              return handle(entry.finallyLoc);
  12705            }
  12706          } else if (hasCatch) {
  12707            if (this.prev < entry.catchLoc) {
  12708              return handle(entry.catchLoc, true);
  12709            }
  12710          } else if (hasFinally) {
  12711            if (this.prev < entry.finallyLoc) {
  12712              return handle(entry.finallyLoc);
  12713            }
  12714          } else {
  12715            throw new Error("try statement without catch or finally");
  12716          }
  12717        }
  12718      }
  12719    },
  12720    abrupt: function abrupt(type, arg) {
  12721      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
  12722        var entry = this.tryEntries[i];
  12723 
  12724        if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) {
  12725          var finallyEntry = entry;
  12726          break;
  12727        }
  12728      }
  12729 
  12730      if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {
  12731        finallyEntry = null;
  12732      }
  12733 
  12734      var record = finallyEntry ? finallyEntry.completion : {};
  12735      record.type = type;
  12736      record.arg = arg;
  12737 
  12738      if (finallyEntry) {
  12739        this.method = "next";
  12740        this.next = finallyEntry.finallyLoc;
  12741        return ContinueSentinel;
  12742      }
  12743 
  12744      return this.complete(record);
  12745    },
  12746    complete: function complete(record, afterLoc) {
  12747      if (record.type === "throw") {
  12748        throw record.arg;
  12749      }
  12750 
  12751      if (record.type === "break" || record.type === "continue") {
  12752        this.next = record.arg;
  12753      } else if (record.type === "return") {
  12754        this.rval = this.arg = record.arg;
  12755        this.method = "return";
  12756        this.next = "end";
  12757      } else if (record.type === "normal" && afterLoc) {
  12758        this.next = afterLoc;
  12759      }
  12760 
  12761      return ContinueSentinel;
  12762    },
  12763    finish: function finish(finallyLoc) {
  12764      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
  12765        var entry = this.tryEntries[i];
  12766 
  12767        if (entry.finallyLoc === finallyLoc) {
  12768          this.complete(entry.completion, entry.afterLoc);
  12769          resetTryEntry(entry);
  12770          return ContinueSentinel;
  12771        }
  12772      }
  12773    },
  12774    "catch": function _catch(tryLoc) {
  12775      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
  12776        var entry = this.tryEntries[i];
  12777 
  12778        if (entry.tryLoc === tryLoc) {
  12779          var record = entry.completion;
  12780 
  12781          if (record.type === "throw") {
  12782            var thrown = record.arg;
  12783            resetTryEntry(entry);
  12784          }
  12785 
  12786          return thrown;
  12787        }
  12788      }
  12789 
  12790      throw new Error("illegal catch attempt");
  12791    },
  12792    delegateYield: function delegateYield(iterable, resultName, nextLoc) {
  12793      this.delegate = {
  12794        iterator: values(iterable),
  12795        resultName: resultName,
  12796        nextLoc: nextLoc
  12797      };
  12798 
  12799      if (this.method === "next") {
  12800        this.arg = undefined;
  12801      }
  12802 
  12803      return ContinueSentinel;
  12804    }
  12805  };
  12806  return exports;
  12807 }(( false ? undefined : _typeof(module)) === "object" ? module.exports : {});
  12808 
  12809 try {
  12810  regeneratorRuntime = runtime;
  12811 } catch (accidentalStrictMode) {
  12812  Function("r", "regeneratorRuntime = r")(runtime);
  12813 }
  12814 /* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(150)(module)))
  12815 
  12816 /***/ }),
  12817 /* 150 */
  12818 /***/ (function(module, exports, __w_pdfjs_require__) {
  12819 
  12820 "use strict";
  12821 
  12822 
  12823 module.exports = function (module) {
  12824  if (!module.webpackPolyfill) {
  12825    module.deprecate = function () {};
  12826 
  12827    module.paths = [];
  12828    if (!module.children) module.children = [];
  12829    Object.defineProperty(module, "loaded", {
  12830      enumerable: true,
  12831      get: function get() {
  12832        return module.l;
  12833      }
  12834    });
  12835    Object.defineProperty(module, "id", {
  12836      enumerable: true,
  12837      get: function get() {
  12838        return module.i;
  12839      }
  12840    });
  12841    module.webpackPolyfill = 1;
  12842  }
  12843 
  12844  return module;
  12845 };
  12846 
  12847 /***/ }),
  12848 /* 151 */
  12849 /***/ (function(module, exports, __w_pdfjs_require__) {
  12850 
  12851 "use strict";
  12852 
  12853 
  12854 Object.defineProperty(exports, "__esModule", {
  12855  value: true
  12856 });
  12857 exports.addLinkAttributes = addLinkAttributes;
  12858 exports.getFilenameFromUrl = getFilenameFromUrl;
  12859 exports.isFetchSupported = isFetchSupported;
  12860 exports.isValidFetchUrl = isValidFetchUrl;
  12861 exports.loadScript = loadScript;
  12862 exports.deprecated = deprecated;
  12863 exports.releaseImageResources = releaseImageResources;
  12864 exports.PDFDateString = exports.DummyStatTimer = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0;
  12865 
  12866 var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148));
  12867 
  12868 var _util = __w_pdfjs_require__(1);
  12869 
  12870 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  12871 
  12872 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
  12873 
  12874 function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
  12875 
  12876 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  12877 
  12878 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
  12879 
  12880 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
  12881 
  12882 var DEFAULT_LINK_REL = 'noopener noreferrer nofollow';
  12883 exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;
  12884 var SVG_NS = 'http://www.w3.org/2000/svg';
  12885 
  12886 var DOMCanvasFactory =
  12887 /*#__PURE__*/
  12888 function () {
  12889  function DOMCanvasFactory() {
  12890    _classCallCheck(this, DOMCanvasFactory);
  12891  }
  12892 
  12893  _createClass(DOMCanvasFactory, [{
  12894    key: "create",
  12895    value: function create(width, height) {
  12896      if (width <= 0 || height <= 0) {
  12897        throw new Error('Invalid canvas size');
  12898      }
  12899 
  12900      var canvas = document.createElement('canvas');
  12901      var context = canvas.getContext('2d');
  12902      canvas.width = width;
  12903      canvas.height = height;
  12904      return {
  12905        canvas: canvas,
  12906        context: context
  12907      };
  12908    }
  12909  }, {
  12910    key: "reset",
  12911    value: function reset(canvasAndContext, width, height) {
  12912      if (!canvasAndContext.canvas) {
  12913        throw new Error('Canvas is not specified');
  12914      }
  12915 
  12916      if (width <= 0 || height <= 0) {
  12917        throw new Error('Invalid canvas size');
  12918      }
  12919 
  12920      canvasAndContext.canvas.width = width;
  12921      canvasAndContext.canvas.height = height;
  12922    }
  12923  }, {
  12924    key: "destroy",
  12925    value: function destroy(canvasAndContext) {
  12926      if (!canvasAndContext.canvas) {
  12927        throw new Error('Canvas is not specified');
  12928      }
  12929 
  12930      canvasAndContext.canvas.width = 0;
  12931      canvasAndContext.canvas.height = 0;
  12932      canvasAndContext.canvas = null;
  12933      canvasAndContext.context = null;
  12934    }
  12935  }]);
  12936 
  12937  return DOMCanvasFactory;
  12938 }();
  12939 
  12940 exports.DOMCanvasFactory = DOMCanvasFactory;
  12941 
  12942 var DOMCMapReaderFactory =
  12943 /*#__PURE__*/
  12944 function () {
  12945  function DOMCMapReaderFactory(_ref) {
  12946    var _ref$baseUrl = _ref.baseUrl,
  12947        baseUrl = _ref$baseUrl === void 0 ? null : _ref$baseUrl,
  12948        _ref$isCompressed = _ref.isCompressed,
  12949        isCompressed = _ref$isCompressed === void 0 ? false : _ref$isCompressed;
  12950 
  12951    _classCallCheck(this, DOMCMapReaderFactory);
  12952 
  12953    this.baseUrl = baseUrl;
  12954    this.isCompressed = isCompressed;
  12955  }
  12956 
  12957  _createClass(DOMCMapReaderFactory, [{
  12958    key: "fetch",
  12959    value: function (_fetch) {
  12960      function fetch(_x) {
  12961        return _fetch.apply(this, arguments);
  12962      }
  12963 
  12964      fetch.toString = function () {
  12965        return _fetch.toString();
  12966      };
  12967 
  12968      return fetch;
  12969    }(
  12970    /*#__PURE__*/
  12971    function () {
  12972      var _ref3 = _asyncToGenerator(
  12973      /*#__PURE__*/
  12974      _regenerator["default"].mark(function _callee2(_ref2) {
  12975        var _this = this;
  12976 
  12977        var name, url, compressionType;
  12978        return _regenerator["default"].wrap(function _callee2$(_context2) {
  12979          while (1) {
  12980            switch (_context2.prev = _context2.next) {
  12981              case 0:
  12982                name = _ref2.name;
  12983 
  12984                if (this.baseUrl) {
  12985                  _context2.next = 3;
  12986                  break;
  12987                }
  12988 
  12989                throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.');
  12990 
  12991              case 3:
  12992                if (name) {
  12993                  _context2.next = 5;
  12994                  break;
  12995                }
  12996 
  12997                throw new Error('CMap name must be specified.');
  12998 
  12999              case 5:
  13000                url = this.baseUrl + name + (this.isCompressed ? '.bcmap' : '');
  13001                compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;
  13002 
  13003                if (!(isFetchSupported() && isValidFetchUrl(url, document.baseURI))) {
  13004                  _context2.next = 9;
  13005                  break;
  13006                }
  13007 
  13008                return _context2.abrupt("return", fetch(url).then(
  13009                /*#__PURE__*/
  13010                function () {
  13011                  var _ref4 = _asyncToGenerator(
  13012                  /*#__PURE__*/
  13013                  _regenerator["default"].mark(function _callee(response) {
  13014                    var cMapData;
  13015                    return _regenerator["default"].wrap(function _callee$(_context) {
  13016                      while (1) {
  13017                        switch (_context.prev = _context.next) {
  13018                          case 0:
  13019                            if (response.ok) {
  13020                              _context.next = 2;
  13021                              break;
  13022                            }
  13023 
  13024                            throw new Error(response.statusText);
  13025 
  13026                          case 2:
  13027                            if (!_this.isCompressed) {
  13028                              _context.next = 10;
  13029                              break;
  13030                            }
  13031 
  13032                            _context.t0 = Uint8Array;
  13033                            _context.next = 6;
  13034                            return response.arrayBuffer();
  13035 
  13036                          case 6:
  13037                            _context.t1 = _context.sent;
  13038                            cMapData = new _context.t0(_context.t1);
  13039                            _context.next = 15;
  13040                            break;
  13041 
  13042                          case 10:
  13043                            _context.t2 = _util.stringToBytes;
  13044                            _context.next = 13;
  13045                            return response.text();
  13046 
  13047                          case 13:
  13048                            _context.t3 = _context.sent;
  13049                            cMapData = (0, _context.t2)(_context.t3);
  13050 
  13051                          case 15:
  13052                            return _context.abrupt("return", {
  13053                              cMapData: cMapData,
  13054                              compressionType: compressionType
  13055                            });
  13056 
  13057                          case 16:
  13058                          case "end":
  13059                            return _context.stop();
  13060                        }
  13061                      }
  13062                    }, _callee);
  13063                  }));
  13064 
  13065                  return function (_x3) {
  13066                    return _ref4.apply(this, arguments);
  13067                  };
  13068                }())["catch"](function (reason) {
  13069                  throw new Error("Unable to load ".concat(_this.isCompressed ? 'binary ' : '') + "CMap at: ".concat(url));
  13070                }));
  13071 
  13072              case 9:
  13073                return _context2.abrupt("return", new Promise(function (resolve, reject) {
  13074                  var request = new XMLHttpRequest();
  13075                  request.open('GET', url, true);
  13076 
  13077                  if (_this.isCompressed) {
  13078                    request.responseType = 'arraybuffer';
  13079                  }
  13080 
  13081                  request.onreadystatechange = function () {
  13082                    if (request.readyState !== XMLHttpRequest.DONE) {
  13083                      return;
  13084                    }
  13085 
  13086                    if (request.status === 200 || request.status === 0) {
  13087                      var cMapData;
  13088 
  13089                      if (_this.isCompressed && request.response) {
  13090                        cMapData = new Uint8Array(request.response);
  13091                      } else if (!_this.isCompressed && request.responseText) {
  13092                        cMapData = (0, _util.stringToBytes)(request.responseText);
  13093                      }
  13094 
  13095                      if (cMapData) {
  13096                        resolve({
  13097                          cMapData: cMapData,
  13098                          compressionType: compressionType
  13099                        });
  13100                        return;
  13101                      }
  13102                    }
  13103 
  13104                    reject(new Error(request.statusText));
  13105                  };
  13106 
  13107                  request.send(null);
  13108                })["catch"](function (reason) {
  13109                  throw new Error("Unable to load ".concat(_this.isCompressed ? 'binary ' : '') + "CMap at: ".concat(url));
  13110                }));
  13111 
  13112              case 10:
  13113              case "end":
  13114                return _context2.stop();
  13115            }
  13116          }
  13117        }, _callee2, this);
  13118      }));
  13119 
  13120      return function (_x2) {
  13121        return _ref3.apply(this, arguments);
  13122      };
  13123    }())
  13124  }]);
  13125 
  13126  return DOMCMapReaderFactory;
  13127 }();
  13128 
  13129 exports.DOMCMapReaderFactory = DOMCMapReaderFactory;
  13130 
  13131 var DOMSVGFactory =
  13132 /*#__PURE__*/
  13133 function () {
  13134  function DOMSVGFactory() {
  13135    _classCallCheck(this, DOMSVGFactory);
  13136  }
  13137 
  13138  _createClass(DOMSVGFactory, [{
  13139    key: "create",
  13140    value: function create(width, height) {
  13141      (0, _util.assert)(width > 0 && height > 0, 'Invalid SVG dimensions');
  13142      var svg = document.createElementNS(SVG_NS, 'svg:svg');
  13143      svg.setAttribute('version', '1.1');
  13144      svg.setAttribute('width', width + 'px');
  13145      svg.setAttribute('height', height + 'px');
  13146      svg.setAttribute('preserveAspectRatio', 'none');
  13147      svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height);
  13148      return svg;
  13149    }
  13150  }, {
  13151    key: "createElement",
  13152    value: function createElement(type) {
  13153      (0, _util.assert)(typeof type === 'string', 'Invalid SVG element type');
  13154      return document.createElementNS(SVG_NS, type);
  13155    }
  13156  }]);
  13157 
  13158  return DOMSVGFactory;
  13159 }();
  13160 
  13161 exports.DOMSVGFactory = DOMSVGFactory;
  13162 
  13163 var PageViewport =
  13164 /*#__PURE__*/
  13165 function () {
  13166  function PageViewport(_ref5) {
  13167    var viewBox = _ref5.viewBox,
  13168        scale = _ref5.scale,
  13169        rotation = _ref5.rotation,
  13170        _ref5$offsetX = _ref5.offsetX,
  13171        offsetX = _ref5$offsetX === void 0 ? 0 : _ref5$offsetX,
  13172        _ref5$offsetY = _ref5.offsetY,
  13173        offsetY = _ref5$offsetY === void 0 ? 0 : _ref5$offsetY,
  13174        _ref5$dontFlip = _ref5.dontFlip,
  13175        dontFlip = _ref5$dontFlip === void 0 ? false : _ref5$dontFlip;
  13176 
  13177    _classCallCheck(this, PageViewport);
  13178 
  13179    this.viewBox = viewBox;
  13180    this.scale = scale;
  13181    this.rotation = rotation;
  13182    this.offsetX = offsetX;
  13183    this.offsetY = offsetY;
  13184    var centerX = (viewBox[2] + viewBox[0]) / 2;
  13185    var centerY = (viewBox[3] + viewBox[1]) / 2;
  13186    var rotateA, rotateB, rotateC, rotateD;
  13187    rotation = rotation % 360;
  13188    rotation = rotation < 0 ? rotation + 360 : rotation;
  13189 
  13190    switch (rotation) {
  13191      case 180:
  13192        rotateA = -1;
  13193        rotateB = 0;
  13194        rotateC = 0;
  13195        rotateD = 1;
  13196        break;
  13197 
  13198      case 90:
  13199        rotateA = 0;
  13200        rotateB = 1;
  13201        rotateC = 1;
  13202        rotateD = 0;
  13203        break;
  13204 
  13205      case 270:
  13206        rotateA = 0;
  13207        rotateB = -1;
  13208        rotateC = -1;
  13209        rotateD = 0;
  13210        break;
  13211 
  13212      default:
  13213        rotateA = 1;
  13214        rotateB = 0;
  13215        rotateC = 0;
  13216        rotateD = -1;
  13217        break;
  13218    }
  13219 
  13220    if (dontFlip) {
  13221      rotateC = -rotateC;
  13222      rotateD = -rotateD;
  13223    }
  13224 
  13225    var offsetCanvasX, offsetCanvasY;
  13226    var width, height;
  13227 
  13228    if (rotateA === 0) {
  13229      offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;
  13230      offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;
  13231      width = Math.abs(viewBox[3] - viewBox[1]) * scale;
  13232      height = Math.abs(viewBox[2] - viewBox[0]) * scale;
  13233    } else {
  13234      offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;
  13235      offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;
  13236      width = Math.abs(viewBox[2] - viewBox[0]) * scale;
  13237      height = Math.abs(viewBox[3] - viewBox[1]) * scale;
  13238    }
  13239 
  13240    this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];
  13241    this.width = width;
  13242    this.height = height;
  13243  }
  13244 
  13245  _createClass(PageViewport, [{
  13246    key: "clone",
  13247    value: function clone() {
  13248      var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
  13249          _ref6$scale = _ref6.scale,
  13250          scale = _ref6$scale === void 0 ? this.scale : _ref6$scale,
  13251          _ref6$rotation = _ref6.rotation,
  13252          rotation = _ref6$rotation === void 0 ? this.rotation : _ref6$rotation,
  13253          _ref6$dontFlip = _ref6.dontFlip,
  13254          dontFlip = _ref6$dontFlip === void 0 ? false : _ref6$dontFlip;
  13255 
  13256      return new PageViewport({
  13257        viewBox: this.viewBox.slice(),
  13258        scale: scale,
  13259        rotation: rotation,
  13260        offsetX: this.offsetX,
  13261        offsetY: this.offsetY,
  13262        dontFlip: dontFlip
  13263      });
  13264    }
  13265  }, {
  13266    key: "convertToViewportPoint",
  13267    value: function convertToViewportPoint(x, y) {
  13268      return _util.Util.applyTransform([x, y], this.transform);
  13269    }
  13270  }, {
  13271    key: "convertToViewportRectangle",
  13272    value: function convertToViewportRectangle(rect) {
  13273      var topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);
  13274 
  13275      var bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);
  13276 
  13277      return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];
  13278    }
  13279  }, {
  13280    key: "convertToPdfPoint",
  13281    value: function convertToPdfPoint(x, y) {
  13282      return _util.Util.applyInverseTransform([x, y], this.transform);
  13283    }
  13284  }]);
  13285 
  13286  return PageViewport;
  13287 }();
  13288 
  13289 exports.PageViewport = PageViewport;
  13290 
  13291 var RenderingCancelledException = function RenderingCancelledException() {
  13292  function RenderingCancelledException(msg, type) {
  13293    this.message = msg;
  13294    this.type = type;
  13295  }
  13296 
  13297  RenderingCancelledException.prototype = new Error();
  13298  RenderingCancelledException.prototype.name = 'RenderingCancelledException';
  13299  RenderingCancelledException.constructor = RenderingCancelledException;
  13300  return RenderingCancelledException;
  13301 }();
  13302 
  13303 exports.RenderingCancelledException = RenderingCancelledException;
  13304 var LinkTarget = {
  13305  NONE: 0,
  13306  SELF: 1,
  13307  BLANK: 2,
  13308  PARENT: 3,
  13309  TOP: 4
  13310 };
  13311 exports.LinkTarget = LinkTarget;
  13312 var LinkTargetStringMap = ['', '_self', '_blank', '_parent', '_top'];
  13313 
  13314 function addLinkAttributes(link) {
  13315  var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
  13316      url = _ref7.url,
  13317      target = _ref7.target,
  13318      rel = _ref7.rel;
  13319 
  13320  link.href = link.title = url ? (0, _util.removeNullCharacters)(url) : '';
  13321 
  13322  if (url) {
  13323    var LinkTargetValues = Object.values(LinkTarget);
  13324    var targetIndex = LinkTargetValues.includes(target) ? target : LinkTarget.NONE;
  13325    link.target = LinkTargetStringMap[targetIndex];
  13326    link.rel = typeof rel === 'string' ? rel : DEFAULT_LINK_REL;
  13327  }
  13328 }
  13329 
  13330 function getFilenameFromUrl(url) {
  13331  var anchor = url.indexOf('#');
  13332  var query = url.indexOf('?');
  13333  var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);
  13334  return url.substring(url.lastIndexOf('/', end) + 1, end);
  13335 }
  13336 
  13337 var StatTimer =
  13338 /*#__PURE__*/
  13339 function () {
  13340  function StatTimer() {
  13341    var enable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
  13342 
  13343    _classCallCheck(this, StatTimer);
  13344 
  13345    this.enabled = !!enable;
  13346    this.started = Object.create(null);
  13347    this.times = [];
  13348  }
  13349 
  13350  _createClass(StatTimer, [{
  13351    key: "time",
  13352    value: function time(name) {
  13353      if (!this.enabled) {
  13354        return;
  13355      }
  13356 
  13357      if (name in this.started) {
  13358        (0, _util.warn)('Timer is already running for ' + name);
  13359      }
  13360 
  13361      this.started[name] = Date.now();
  13362    }
  13363  }, {
  13364    key: "timeEnd",
  13365    value: function timeEnd(name) {
  13366      if (!this.enabled) {
  13367        return;
  13368      }
  13369 
  13370      if (!(name in this.started)) {
  13371        (0, _util.warn)('Timer has not been started for ' + name);
  13372      }
  13373 
  13374      this.times.push({
  13375        'name': name,
  13376        'start': this.started[name],
  13377        'end': Date.now()
  13378      });
  13379      delete this.started[name];
  13380    }
  13381  }, {
  13382    key: "toString",
  13383    value: function toString() {
  13384      var out = '',
  13385          longest = 0;
  13386      var _iteratorNormalCompletion = true;
  13387      var _didIteratorError = false;
  13388      var _iteratorError = undefined;
  13389 
  13390      try {
  13391        for (var _iterator = this.times[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  13392          var time = _step.value;
  13393          var name = time.name;
  13394 
  13395          if (name.length > longest) {
  13396            longest = name.length;
  13397          }
  13398        }
  13399      } catch (err) {
  13400        _didIteratorError = true;
  13401        _iteratorError = err;
  13402      } finally {
  13403        try {
  13404          if (!_iteratorNormalCompletion && _iterator["return"] != null) {
  13405            _iterator["return"]();
  13406          }
  13407        } finally {
  13408          if (_didIteratorError) {
  13409            throw _iteratorError;
  13410          }
  13411        }
  13412      }
  13413 
  13414      var _iteratorNormalCompletion2 = true;
  13415      var _didIteratorError2 = false;
  13416      var _iteratorError2 = undefined;
  13417 
  13418      try {
  13419        for (var _iterator2 = this.times[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
  13420          var _time = _step2.value;
  13421          var duration = _time.end - _time.start;
  13422          out += "".concat(_time.name.padEnd(longest), " ").concat(duration, "ms\n");
  13423        }
  13424      } catch (err) {
  13425        _didIteratorError2 = true;
  13426        _iteratorError2 = err;
  13427      } finally {
  13428        try {
  13429          if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
  13430            _iterator2["return"]();
  13431          }
  13432        } finally {
  13433          if (_didIteratorError2) {
  13434            throw _iteratorError2;
  13435          }
  13436        }
  13437      }
  13438 
  13439      return out;
  13440    }
  13441  }]);
  13442 
  13443  return StatTimer;
  13444 }();
  13445 
  13446 exports.StatTimer = StatTimer;
  13447 
  13448 var DummyStatTimer =
  13449 /*#__PURE__*/
  13450 function () {
  13451  function DummyStatTimer() {
  13452    _classCallCheck(this, DummyStatTimer);
  13453 
  13454    (0, _util.unreachable)('Cannot initialize DummyStatTimer.');
  13455  }
  13456 
  13457  _createClass(DummyStatTimer, null, [{
  13458    key: "time",
  13459    value: function time(name) {}
  13460  }, {
  13461    key: "timeEnd",
  13462    value: function timeEnd(name) {}
  13463  }, {
  13464    key: "toString",
  13465    value: function toString() {
  13466      return '';
  13467    }
  13468  }]);
  13469 
  13470  return DummyStatTimer;
  13471 }();
  13472 
  13473 exports.DummyStatTimer = DummyStatTimer;
  13474 
  13475 function isFetchSupported() {
  13476  return typeof fetch !== 'undefined' && typeof Response !== 'undefined' && 'body' in Response.prototype && typeof ReadableStream !== 'undefined';
  13477 }
  13478 
  13479 function isValidFetchUrl(url, baseUrl) {
  13480  try {
  13481    var _ref8 = baseUrl ? new _util.URL(url, baseUrl) : new _util.URL(url),
  13482        protocol = _ref8.protocol;
  13483 
  13484    return protocol === 'http:' || protocol === 'https:';
  13485  } catch (ex) {
  13486    return false;
  13487  }
  13488 }
  13489 
  13490 function loadScript(src) {
  13491  return new Promise(function (resolve, reject) {
  13492    var script = document.createElement('script');
  13493    script.src = src;
  13494    script.onload = resolve;
  13495 
  13496    script.onerror = function () {
  13497      reject(new Error("Cannot load script at: ".concat(script.src)));
  13498    };
  13499 
  13500    (document.head || document.documentElement).appendChild(script);
  13501  });
  13502 }
  13503 
  13504 function deprecated(details) {
  13505  console.log('Deprecated API usage: ' + details);
  13506 }
  13507 
  13508 function releaseImageResources(img) {
  13509  (0, _util.assert)(img instanceof Image, 'Invalid `img` parameter.');
  13510  var url = img.src;
  13511 
  13512  if (typeof url === 'string' && url.startsWith('blob:') && _util.URL.revokeObjectURL) {
  13513    _util.URL.revokeObjectURL(url);
  13514  }
  13515 
  13516  img.removeAttribute('src');
  13517 }
  13518 
  13519 var pdfDateStringRegex;
  13520 
  13521 var PDFDateString =
  13522 /*#__PURE__*/
  13523 function () {
  13524  function PDFDateString() {
  13525    _classCallCheck(this, PDFDateString);
  13526  }
  13527 
  13528  _createClass(PDFDateString, null, [{
  13529    key: "toDateObject",
  13530    value: function toDateObject(input) {
  13531      if (!input || !(0, _util.isString)(input)) {
  13532        return null;
  13533      }
  13534 
  13535      if (!pdfDateStringRegex) {
  13536        pdfDateStringRegex = new RegExp('^D:' + '(\\d{4})' + '(\\d{2})?' + '(\\d{2})?' + '(\\d{2})?' + '(\\d{2})?' + '(\\d{2})?' + '([Z|+|-])?' + '(\\d{2})?' + '\'?' + '(\\d{2})?' + '\'?');
  13537      }
  13538 
  13539      var matches = pdfDateStringRegex.exec(input);
  13540 
  13541      if (!matches) {
  13542        return null;
  13543      }
  13544 
  13545      var year = parseInt(matches[1], 10);
  13546      var month = parseInt(matches[2], 10);
  13547      month = month >= 1 && month <= 12 ? month - 1 : 0;
  13548      var day = parseInt(matches[3], 10);
  13549      day = day >= 1 && day <= 31 ? day : 1;
  13550      var hour = parseInt(matches[4], 10);
  13551      hour = hour >= 0 && hour <= 23 ? hour : 0;
  13552      var minute = parseInt(matches[5], 10);
  13553      minute = minute >= 0 && minute <= 59 ? minute : 0;
  13554      var second = parseInt(matches[6], 10);
  13555      second = second >= 0 && second <= 59 ? second : 0;
  13556      var universalTimeRelation = matches[7] || 'Z';
  13557      var offsetHour = parseInt(matches[8], 10);
  13558      offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;
  13559      var offsetMinute = parseInt(matches[9], 10) || 0;
  13560      offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;
  13561 
  13562      if (universalTimeRelation === '-') {
  13563        hour += offsetHour;
  13564        minute += offsetMinute;
  13565      } else if (universalTimeRelation === '+') {
  13566        hour -= offsetHour;
  13567        minute -= offsetMinute;
  13568      }
  13569 
  13570      return new Date(Date.UTC(year, month, day, hour, minute, second));
  13571    }
  13572  }]);
  13573 
  13574  return PDFDateString;
  13575 }();
  13576 
  13577 exports.PDFDateString = PDFDateString;
  13578 
  13579 /***/ }),
  13580 /* 152 */
  13581 /***/ (function(module, exports, __w_pdfjs_require__) {
  13582 
  13583 "use strict";
  13584 
  13585 
  13586 Object.defineProperty(exports, "__esModule", {
  13587  value: true
  13588 });
  13589 exports.FontLoader = exports.FontFaceObject = void 0;
  13590 
  13591 var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148));
  13592 
  13593 var _util = __w_pdfjs_require__(1);
  13594 
  13595 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
  13596 
  13597 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
  13598 
  13599 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
  13600 
  13601 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
  13602 
  13603 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
  13604 
  13605 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
  13606 
  13607 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
  13608 
  13609 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
  13610 
  13611 function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
  13612 
  13613 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  13614 
  13615 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
  13616 
  13617 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
  13618 
  13619 var BaseFontLoader =
  13620 /*#__PURE__*/
  13621 function () {
  13622  function BaseFontLoader(_ref) {
  13623    var docId = _ref.docId,
  13624        onUnsupportedFeature = _ref.onUnsupportedFeature;
  13625 
  13626    _classCallCheck(this, BaseFontLoader);
  13627 
  13628    if (this.constructor === BaseFontLoader) {
  13629      (0, _util.unreachable)('Cannot initialize BaseFontLoader.');
  13630    }
  13631 
  13632    this.docId = docId;
  13633    this._onUnsupportedFeature = onUnsupportedFeature;
  13634    this.nativeFontFaces = [];
  13635    this.styleElement = null;
  13636  }
  13637 
  13638  _createClass(BaseFontLoader, [{
  13639    key: "addNativeFontFace",
  13640    value: function addNativeFontFace(nativeFontFace) {
  13641      this.nativeFontFaces.push(nativeFontFace);
  13642      document.fonts.add(nativeFontFace);
  13643    }
  13644  }, {
  13645    key: "insertRule",
  13646    value: function insertRule(rule) {
  13647      var styleElement = this.styleElement;
  13648 
  13649      if (!styleElement) {
  13650        styleElement = this.styleElement = document.createElement('style');
  13651        styleElement.id = "PDFJS_FONT_STYLE_TAG_".concat(this.docId);
  13652        document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement);
  13653      }
  13654 
  13655      var styleSheet = styleElement.sheet;
  13656      styleSheet.insertRule(rule, styleSheet.cssRules.length);
  13657    }
  13658  }, {
  13659    key: "clear",
  13660    value: function clear() {
  13661      this.nativeFontFaces.forEach(function (nativeFontFace) {
  13662        document.fonts["delete"](nativeFontFace);
  13663      });
  13664      this.nativeFontFaces.length = 0;
  13665 
  13666      if (this.styleElement) {
  13667        this.styleElement.remove();
  13668        this.styleElement = null;
  13669      }
  13670    }
  13671  }, {
  13672    key: "bind",
  13673    value: function () {
  13674      var _bind = _asyncToGenerator(
  13675      /*#__PURE__*/
  13676      _regenerator["default"].mark(function _callee(font) {
  13677        var _this = this;
  13678 
  13679        var nativeFontFace, rule;
  13680        return _regenerator["default"].wrap(function _callee$(_context) {
  13681          while (1) {
  13682            switch (_context.prev = _context.next) {
  13683              case 0:
  13684                if (!(font.attached || font.missingFile)) {
  13685                  _context.next = 2;
  13686                  break;
  13687                }
  13688 
  13689                return _context.abrupt("return", undefined);
  13690 
  13691              case 2:
  13692                font.attached = true;
  13693 
  13694                if (!this.isFontLoadingAPISupported) {
  13695                  _context.next = 19;
  13696                  break;
  13697                }
  13698 
  13699                nativeFontFace = font.createNativeFontFace();
  13700 
  13701                if (!nativeFontFace) {
  13702                  _context.next = 18;
  13703                  break;
  13704                }
  13705 
  13706                this.addNativeFontFace(nativeFontFace);
  13707                _context.prev = 7;
  13708                _context.next = 10;
  13709                return nativeFontFace.loaded;
  13710 
  13711              case 10:
  13712                _context.next = 18;
  13713                break;
  13714 
  13715              case 12:
  13716                _context.prev = 12;
  13717                _context.t0 = _context["catch"](7);
  13718 
  13719                this._onUnsupportedFeature({
  13720                  featureId: _util.UNSUPPORTED_FEATURES.font
  13721                });
  13722 
  13723                (0, _util.warn)("Failed to load font '".concat(nativeFontFace.family, "': '").concat(_context.t0, "'."));
  13724                font.disableFontFace = true;
  13725                throw _context.t0;
  13726 
  13727              case 18:
  13728                return _context.abrupt("return", undefined);
  13729 
  13730              case 19:
  13731                rule = font.createFontFaceRule();
  13732 
  13733                if (!rule) {
  13734                  _context.next = 25;
  13735                  break;
  13736                }
  13737 
  13738                this.insertRule(rule);
  13739 
  13740                if (!this.isSyncFontLoadingSupported) {
  13741                  _context.next = 24;
  13742                  break;
  13743                }
  13744 
  13745                return _context.abrupt("return", undefined);
  13746 
  13747              case 24:
  13748                return _context.abrupt("return", new Promise(function (resolve) {
  13749                  var request = _this._queueLoadingCallback(resolve);
  13750 
  13751                  _this._prepareFontLoadEvent([rule], [font], request);
  13752                }));
  13753 
  13754              case 25:
  13755                return _context.abrupt("return", undefined);
  13756 
  13757              case 26:
  13758              case "end":
  13759                return _context.stop();
  13760            }
  13761          }
  13762        }, _callee, this, [[7, 12]]);
  13763      }));
  13764 
  13765      function bind(_x) {
  13766        return _bind.apply(this, arguments);
  13767      }
  13768 
  13769      return bind;
  13770    }()
  13771  }, {
  13772    key: "_queueLoadingCallback",
  13773    value: function _queueLoadingCallback(callback) {
  13774      (0, _util.unreachable)('Abstract method `_queueLoadingCallback`.');
  13775    }
  13776  }, {
  13777    key: "_prepareFontLoadEvent",
  13778    value: function _prepareFontLoadEvent(rules, fontsToLoad, request) {
  13779      (0, _util.unreachable)('Abstract method `_prepareFontLoadEvent`.');
  13780    }
  13781  }, {
  13782    key: "isFontLoadingAPISupported",
  13783    get: function get() {
  13784      (0, _util.unreachable)('Abstract method `isFontLoadingAPISupported`.');
  13785    }
  13786  }, {
  13787    key: "isSyncFontLoadingSupported",
  13788    get: function get() {
  13789      (0, _util.unreachable)('Abstract method `isSyncFontLoadingSupported`.');
  13790    }
  13791  }, {
  13792    key: "_loadTestFont",
  13793    get: function get() {
  13794      (0, _util.unreachable)('Abstract method `_loadTestFont`.');
  13795    }
  13796  }]);
  13797 
  13798  return BaseFontLoader;
  13799 }();
  13800 
  13801 var FontLoader;
  13802 exports.FontLoader = FontLoader;
  13803 {
  13804  exports.FontLoader = FontLoader =
  13805  /*#__PURE__*/
  13806  function (_BaseFontLoader) {
  13807    _inherits(GenericFontLoader, _BaseFontLoader);
  13808 
  13809    function GenericFontLoader(docId) {
  13810      var _this2;
  13811 
  13812      _classCallCheck(this, GenericFontLoader);
  13813 
  13814      _this2 = _possibleConstructorReturn(this, _getPrototypeOf(GenericFontLoader).call(this, docId));
  13815      _this2.loadingContext = {
  13816        requests: [],
  13817        nextRequestId: 0
  13818      };
  13819      _this2.loadTestFontId = 0;
  13820      return _this2;
  13821    }
  13822 
  13823    _createClass(GenericFontLoader, [{
  13824      key: "_queueLoadingCallback",
  13825      value: function _queueLoadingCallback(callback) {
  13826        function completeRequest() {
  13827          (0, _util.assert)(!request.done, 'completeRequest() cannot be called twice.');
  13828          request.done = true;
  13829 
  13830          while (context.requests.length > 0 && context.requests[0].done) {
  13831            var otherRequest = context.requests.shift();
  13832            setTimeout(otherRequest.callback, 0);
  13833          }
  13834        }
  13835 
  13836        var context = this.loadingContext;
  13837        var request = {
  13838          id: "pdfjs-font-loading-".concat(context.nextRequestId++),
  13839          done: false,
  13840          complete: completeRequest,
  13841          callback: callback
  13842        };
  13843        context.requests.push(request);
  13844        return request;
  13845      }
  13846    }, {
  13847      key: "_prepareFontLoadEvent",
  13848      value: function _prepareFontLoadEvent(rules, fonts, request) {
  13849        function int32(data, offset) {
  13850          return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;
  13851        }
  13852 
  13853        function spliceString(s, offset, remove, insert) {
  13854          var chunk1 = s.substring(0, offset);
  13855          var chunk2 = s.substring(offset + remove);
  13856          return chunk1 + insert + chunk2;
  13857        }
  13858 
  13859        var i, ii;
  13860        var canvas = document.createElement('canvas');
  13861        canvas.width = 1;
  13862        canvas.height = 1;
  13863        var ctx = canvas.getContext('2d');
  13864        var called = 0;
  13865 
  13866        function isFontReady(name, callback) {
  13867          called++;
  13868 
  13869          if (called > 30) {
  13870            (0, _util.warn)('Load test font never loaded.');
  13871            callback();
  13872            return;
  13873          }
  13874 
  13875          ctx.font = '30px ' + name;
  13876          ctx.fillText('.', 0, 20);
  13877          var imageData = ctx.getImageData(0, 0, 1, 1);
  13878 
  13879          if (imageData.data[3] > 0) {
  13880            callback();
  13881            return;
  13882          }
  13883 
  13884          setTimeout(isFontReady.bind(null, name, callback));
  13885        }
  13886 
  13887        var loadTestFontId = "lt".concat(Date.now()).concat(this.loadTestFontId++);
  13888        var data = this._loadTestFont;
  13889        var COMMENT_OFFSET = 976;
  13890        data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);
  13891        var CFF_CHECKSUM_OFFSET = 16;
  13892        var XXXX_VALUE = 0x58585858;
  13893        var checksum = int32(data, CFF_CHECKSUM_OFFSET);
  13894 
  13895        for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {
  13896          checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;
  13897        }
  13898 
  13899        if (i < loadTestFontId.length) {
  13900          checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0;
  13901        }
  13902 
  13903        data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));
  13904        var url = "url(data:font/opentype;base64,".concat(btoa(data), ");");
  13905        var rule = "@font-face {font-family:\"".concat(loadTestFontId, "\";src:").concat(url, "}");
  13906        this.insertRule(rule);
  13907        var names = [];
  13908 
  13909        for (i = 0, ii = fonts.length; i < ii; i++) {
  13910          names.push(fonts[i].loadedName);
  13911        }
  13912 
  13913        names.push(loadTestFontId);
  13914        var div = document.createElement('div');
  13915        div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;');
  13916 
  13917        for (i = 0, ii = names.length; i < ii; ++i) {
  13918          var span = document.createElement('span');
  13919          span.textContent = 'Hi';
  13920          span.style.fontFamily = names[i];
  13921          div.appendChild(span);
  13922        }
  13923 
  13924        document.body.appendChild(div);
  13925        isFontReady(loadTestFontId, function () {
  13926          document.body.removeChild(div);
  13927          request.complete();
  13928        });
  13929      }
  13930    }, {
  13931      key: "isFontLoadingAPISupported",
  13932      get: function get() {
  13933        var supported = typeof document !== 'undefined' && !!document.fonts;
  13934 
  13935        if (supported && typeof navigator !== 'undefined') {
  13936          var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);
  13937 
  13938          if (m && m[1] < 63) {
  13939            supported = false;
  13940          }
  13941        }
  13942 
  13943        return (0, _util.shadow)(this, 'isFontLoadingAPISupported', supported);
  13944      }
  13945    }, {
  13946      key: "isSyncFontLoadingSupported",
  13947      get: function get() {
  13948        var supported = false;
  13949 
  13950        if (typeof navigator === 'undefined') {
  13951          supported = true;
  13952        } else {
  13953          var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);
  13954 
  13955          if (m && m[1] >= 14) {
  13956            supported = true;
  13957          }
  13958        }
  13959 
  13960        return (0, _util.shadow)(this, 'isSyncFontLoadingSupported', supported);
  13961      }
  13962    }, {
  13963      key: "_loadTestFont",
  13964      get: function get() {
  13965        var getLoadTestFont = function getLoadTestFont() {
  13966          return atob('T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA' + 'FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA' + 'ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA' + 'AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1' + 'AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD' + '6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM' + 'AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D' + 'IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA' + 'AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA' + 'AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB' + 'AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY' + 'AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA' + 'AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA' + 'AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC' + 'AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3' + 'Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj' + 'FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==');
  13967        };
  13968 
  13969        return (0, _util.shadow)(this, '_loadTestFont', getLoadTestFont());
  13970      }
  13971    }]);
  13972 
  13973    return GenericFontLoader;
  13974  }(BaseFontLoader);
  13975 }
  13976 var IsEvalSupportedCached = {
  13977  get value() {
  13978    return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)());
  13979  }
  13980 
  13981 };
  13982 
  13983 var FontFaceObject =
  13984 /*#__PURE__*/
  13985 function () {
  13986  function FontFaceObject(translatedData, _ref2) {
  13987    var _ref2$isEvalSupported = _ref2.isEvalSupported,
  13988        isEvalSupported = _ref2$isEvalSupported === void 0 ? true : _ref2$isEvalSupported,
  13989        _ref2$disableFontFace = _ref2.disableFontFace,
  13990        disableFontFace = _ref2$disableFontFace === void 0 ? false : _ref2$disableFontFace,
  13991        _ref2$ignoreErrors = _ref2.ignoreErrors,
  13992        ignoreErrors = _ref2$ignoreErrors === void 0 ? false : _ref2$ignoreErrors,
  13993        _ref2$onUnsupportedFe = _ref2.onUnsupportedFeature,
  13994        onUnsupportedFeature = _ref2$onUnsupportedFe === void 0 ? null : _ref2$onUnsupportedFe,
  13995        _ref2$fontRegistry = _ref2.fontRegistry,
  13996        fontRegistry = _ref2$fontRegistry === void 0 ? null : _ref2$fontRegistry;
  13997 
  13998    _classCallCheck(this, FontFaceObject);
  13999 
  14000    this.compiledGlyphs = Object.create(null);
  14001 
  14002    for (var i in translatedData) {
  14003      this[i] = translatedData[i];
  14004    }
  14005 
  14006    this.isEvalSupported = isEvalSupported !== false;
  14007    this.disableFontFace = disableFontFace === true;
  14008    this.ignoreErrors = ignoreErrors === true;
  14009    this._onUnsupportedFeature = onUnsupportedFeature;
  14010    this.fontRegistry = fontRegistry;
  14011  }
  14012 
  14013  _createClass(FontFaceObject, [{
  14014    key: "createNativeFontFace",
  14015    value: function createNativeFontFace() {
  14016      if (!this.data || this.disableFontFace) {
  14017        return null;
  14018      }
  14019 
  14020      var nativeFontFace = new FontFace(this.loadedName, this.data, {});
  14021 
  14022      if (this.fontRegistry) {
  14023        this.fontRegistry.registerFont(this);
  14024      }
  14025 
  14026      return nativeFontFace;
  14027    }
  14028  }, {
  14029    key: "createFontFaceRule",
  14030    value: function createFontFaceRule() {
  14031      if (!this.data || this.disableFontFace) {
  14032        return null;
  14033      }
  14034 
  14035      var data = (0, _util.bytesToString)(new Uint8Array(this.data));
  14036      var url = "url(data:".concat(this.mimetype, ";base64,").concat(btoa(data), ");");
  14037      var rule = "@font-face {font-family:\"".concat(this.loadedName, "\";src:").concat(url, "}");
  14038 
  14039      if (this.fontRegistry) {
  14040        this.fontRegistry.registerFont(this, url);
  14041      }
  14042 
  14043      return rule;
  14044    }
  14045  }, {
  14046    key: "getPathGenerator",
  14047    value: function getPathGenerator(objs, character) {
  14048      if (this.compiledGlyphs[character] !== undefined) {
  14049        return this.compiledGlyphs[character];
  14050      }
  14051 
  14052      var cmds, current;
  14053 
  14054      try {
  14055        cmds = objs.get(this.loadedName + '_path_' + character);
  14056      } catch (ex) {
  14057        if (!this.ignoreErrors) {
  14058          throw ex;
  14059        }
  14060 
  14061        if (this._onUnsupportedFeature) {
  14062          this._onUnsupportedFeature({
  14063            featureId: _util.UNSUPPORTED_FEATURES.font
  14064          });
  14065        }
  14066 
  14067        (0, _util.warn)("getPathGenerator - ignoring character: \"".concat(ex, "\"."));
  14068        return this.compiledGlyphs[character] = function (c, size) {};
  14069      }
  14070 
  14071      if (this.isEvalSupported && IsEvalSupportedCached.value) {
  14072        var args,
  14073            js = '';
  14074 
  14075        for (var i = 0, ii = cmds.length; i < ii; i++) {
  14076          current = cmds[i];
  14077 
  14078          if (current.args !== undefined) {
  14079            args = current.args.join(',');
  14080          } else {
  14081            args = '';
  14082          }
  14083 
  14084          js += 'c.' + current.cmd + '(' + args + ');\n';
  14085        }
  14086 
  14087        return this.compiledGlyphs[character] = new Function('c', 'size', js);
  14088      }
  14089 
  14090      return this.compiledGlyphs[character] = function (c, size) {
  14091        for (var _i = 0, _ii = cmds.length; _i < _ii; _i++) {
  14092          current = cmds[_i];
  14093 
  14094          if (current.cmd === 'scale') {
  14095            current.args = [size, -size];
  14096          }
  14097 
  14098          c[current.cmd].apply(c, current.args);
  14099        }
  14100      };
  14101    }
  14102  }]);
  14103 
  14104  return FontFaceObject;
  14105 }();
  14106 
  14107 exports.FontFaceObject = FontFaceObject;
  14108 
  14109 /***/ }),
  14110 /* 153 */
  14111 /***/ (function(module, exports, __w_pdfjs_require__) {
  14112 
  14113 "use strict";
  14114 
  14115 
  14116 var compatibilityParams = Object.create(null);
  14117 {
  14118  var isNodeJS = __w_pdfjs_require__(4);
  14119 
  14120  var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || '';
  14121  var isIE = /Trident/.test(userAgent);
  14122  var isIOSChrome = /CriOS/.test(userAgent);
  14123 
  14124  (function checkOnBlobSupport() {
  14125    if (isIE || isIOSChrome) {
  14126      compatibilityParams.disableCreateObjectURL = true;
  14127    }
  14128  })();
  14129 
  14130  (function checkFontFaceAndImage() {
  14131    if (isNodeJS()) {
  14132      compatibilityParams.disableFontFace = true;
  14133      compatibilityParams.nativeImageDecoderSupport = 'none';
  14134    }
  14135  })();
  14136 }
  14137 exports.apiCompatibilityParams = Object.freeze(compatibilityParams);
  14138 
  14139 /***/ }),
  14140 /* 154 */
  14141 /***/ (function(module, exports, __w_pdfjs_require__) {
  14142 
  14143 "use strict";
  14144 
  14145 
  14146 Object.defineProperty(exports, "__esModule", {
  14147  value: true
  14148 });
  14149 exports.CanvasGraphics = void 0;
  14150 
  14151 var _util = __w_pdfjs_require__(1);
  14152 
  14153 var _pattern_helper = __w_pdfjs_require__(155);
  14154 
  14155 var MIN_FONT_SIZE = 16;
  14156 var MAX_FONT_SIZE = 100;
  14157 var MAX_GROUP_SIZE = 4096;
  14158 var MIN_WIDTH_FACTOR = 0.65;
  14159 var COMPILE_TYPE3_GLYPHS = true;
  14160 var MAX_SIZE_TO_COMPILE = 1000;
  14161 var FULL_CHUNK_HEIGHT = 16;
  14162 var IsLittleEndianCached = {
  14163  get value() {
  14164    return (0, _util.shadow)(IsLittleEndianCached, 'value', (0, _util.isLittleEndian)());
  14165  }
  14166 
  14167 };
  14168 
  14169 function addContextCurrentTransform(ctx) {
  14170  if (!ctx.mozCurrentTransform) {
  14171    ctx._originalSave = ctx.save;
  14172    ctx._originalRestore = ctx.restore;
  14173    ctx._originalRotate = ctx.rotate;
  14174    ctx._originalScale = ctx.scale;
  14175    ctx._originalTranslate = ctx.translate;
  14176    ctx._originalTransform = ctx.transform;
  14177    ctx._originalSetTransform = ctx.setTransform;
  14178    ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];
  14179    ctx._transformStack = [];
  14180    Object.defineProperty(ctx, 'mozCurrentTransform', {
  14181      get: function getCurrentTransform() {
  14182        return this._transformMatrix;
  14183      }
  14184    });
  14185    Object.defineProperty(ctx, 'mozCurrentTransformInverse', {
  14186      get: function getCurrentTransformInverse() {
  14187        var m = this._transformMatrix;
  14188        var a = m[0],
  14189            b = m[1],
  14190            c = m[2],
  14191            d = m[3],
  14192            e = m[4],
  14193            f = m[5];
  14194        var ad_bc = a * d - b * c;
  14195        var bc_ad = b * c - a * d;
  14196        return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc];
  14197      }
  14198    });
  14199 
  14200    ctx.save = function ctxSave() {
  14201      var old = this._transformMatrix;
  14202 
  14203      this._transformStack.push(old);
  14204 
  14205      this._transformMatrix = old.slice(0, 6);
  14206 
  14207      this._originalSave();
  14208    };
  14209 
  14210    ctx.restore = function ctxRestore() {
  14211      var prev = this._transformStack.pop();
  14212 
  14213      if (prev) {
  14214        this._transformMatrix = prev;
  14215 
  14216        this._originalRestore();
  14217      }
  14218    };
  14219 
  14220    ctx.translate = function ctxTranslate(x, y) {
  14221      var m = this._transformMatrix;
  14222      m[4] = m[0] * x + m[2] * y + m[4];
  14223      m[5] = m[1] * x + m[3] * y + m[5];
  14224 
  14225      this._originalTranslate(x, y);
  14226    };
  14227 
  14228    ctx.scale = function ctxScale(x, y) {
  14229      var m = this._transformMatrix;
  14230      m[0] = m[0] * x;
  14231      m[1] = m[1] * x;
  14232      m[2] = m[2] * y;
  14233      m[3] = m[3] * y;
  14234 
  14235      this._originalScale(x, y);
  14236    };
  14237 
  14238    ctx.transform = function ctxTransform(a, b, c, d, e, f) {
  14239      var m = this._transformMatrix;
  14240      this._transformMatrix = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]];
  14241 
  14242      ctx._originalTransform(a, b, c, d, e, f);
  14243    };
  14244 
  14245    ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {
  14246      this._transformMatrix = [a, b, c, d, e, f];
  14247 
  14248      ctx._originalSetTransform(a, b, c, d, e, f);
  14249    };
  14250 
  14251    ctx.rotate = function ctxRotate(angle) {
  14252      var cosValue = Math.cos(angle);
  14253      var sinValue = Math.sin(angle);
  14254      var m = this._transformMatrix;
  14255      this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]];
  14256 
  14257      this._originalRotate(angle);
  14258    };
  14259  }
  14260 }
  14261 
  14262 var CachedCanvases = function CachedCanvasesClosure() {
  14263  function CachedCanvases(canvasFactory) {
  14264    this.canvasFactory = canvasFactory;
  14265    this.cache = Object.create(null);
  14266  }
  14267 
  14268  CachedCanvases.prototype = {
  14269    getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) {
  14270      var canvasEntry;
  14271 
  14272      if (this.cache[id] !== undefined) {
  14273        canvasEntry = this.cache[id];
  14274        this.canvasFactory.reset(canvasEntry, width, height);
  14275        canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);
  14276      } else {
  14277        canvasEntry = this.canvasFactory.create(width, height);
  14278        this.cache[id] = canvasEntry;
  14279      }
  14280 
  14281      if (trackTransform) {
  14282        addContextCurrentTransform(canvasEntry.context);
  14283      }
  14284 
  14285      return canvasEntry;
  14286    },
  14287    clear: function clear() {
  14288      for (var id in this.cache) {
  14289        var canvasEntry = this.cache[id];
  14290        this.canvasFactory.destroy(canvasEntry);
  14291        delete this.cache[id];
  14292      }
  14293    }
  14294  };
  14295  return CachedCanvases;
  14296 }();
  14297 
  14298 function compileType3Glyph(imgData) {
  14299  var POINT_TO_PROCESS_LIMIT = 1000;
  14300  var width = imgData.width,
  14301      height = imgData.height;
  14302  var i,
  14303      j,
  14304      j0,
  14305      width1 = width + 1;
  14306  var points = new Uint8Array(width1 * (height + 1));
  14307  var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);
  14308  var lineSize = width + 7 & ~7,
  14309      data0 = imgData.data;
  14310  var data = new Uint8Array(lineSize * height),
  14311      pos = 0,
  14312      ii;
  14313 
  14314  for (i = 0, ii = data0.length; i < ii; i++) {
  14315    var mask = 128,
  14316        elem = data0[i];
  14317 
  14318    while (mask > 0) {
  14319      data[pos++] = elem & mask ? 0 : 255;
  14320      mask >>= 1;
  14321    }
  14322  }
  14323 
  14324  var count = 0;
  14325  pos = 0;
  14326 
  14327  if (data[pos] !== 0) {
  14328    points[0] = 1;
  14329    ++count;
  14330  }
  14331 
  14332  for (j = 1; j < width; j++) {
  14333    if (data[pos] !== data[pos + 1]) {
  14334      points[j] = data[pos] ? 2 : 1;
  14335      ++count;
  14336    }
  14337 
  14338    pos++;
  14339  }
  14340 
  14341  if (data[pos] !== 0) {
  14342    points[j] = 2;
  14343    ++count;
  14344  }
  14345 
  14346  for (i = 1; i < height; i++) {
  14347    pos = i * lineSize;
  14348    j0 = i * width1;
  14349 
  14350    if (data[pos - lineSize] !== data[pos]) {
  14351      points[j0] = data[pos] ? 1 : 8;
  14352      ++count;
  14353    }
  14354 
  14355    var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);
  14356 
  14357    for (j = 1; j < width; j++) {
  14358      sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);
  14359 
  14360      if (POINT_TYPES[sum]) {
  14361        points[j0 + j] = POINT_TYPES[sum];
  14362        ++count;
  14363      }
  14364 
  14365      pos++;
  14366    }
  14367 
  14368    if (data[pos - lineSize] !== data[pos]) {
  14369      points[j0 + j] = data[pos] ? 2 : 4;
  14370      ++count;
  14371    }
  14372 
  14373    if (count > POINT_TO_PROCESS_LIMIT) {
  14374      return null;
  14375    }
  14376  }
  14377 
  14378  pos = lineSize * (height - 1);
  14379  j0 = i * width1;
  14380 
  14381  if (data[pos] !== 0) {
  14382    points[j0] = 8;
  14383    ++count;
  14384  }
  14385 
  14386  for (j = 1; j < width; j++) {
  14387    if (data[pos] !== data[pos + 1]) {
  14388      points[j0 + j] = data[pos] ? 4 : 8;
  14389      ++count;
  14390    }
  14391 
  14392    pos++;
  14393  }
  14394 
  14395  if (data[pos] !== 0) {
  14396    points[j0 + j] = 4;
  14397    ++count;
  14398  }
  14399 
  14400  if (count > POINT_TO_PROCESS_LIMIT) {
  14401    return null;
  14402  }
  14403 
  14404  var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);
  14405  var outlines = [];
  14406 
  14407  for (i = 0; count && i <= height; i++) {
  14408    var p = i * width1;
  14409    var end = p + width;
  14410 
  14411    while (p < end && !points[p]) {
  14412      p++;
  14413    }
  14414 
  14415    if (p === end) {
  14416      continue;
  14417    }
  14418 
  14419    var coords = [p % width1, i];
  14420    var type = points[p],
  14421        p0 = p,
  14422        pp;
  14423 
  14424    do {
  14425      var step = steps[type];
  14426 
  14427      do {
  14428        p += step;
  14429      } while (!points[p]);
  14430 
  14431      pp = points[p];
  14432 
  14433      if (pp !== 5 && pp !== 10) {
  14434        type = pp;
  14435        points[p] = 0;
  14436      } else {
  14437        type = pp & 0x33 * type >> 4;
  14438        points[p] &= type >> 2 | type << 2;
  14439      }
  14440 
  14441      coords.push(p % width1);
  14442      coords.push(p / width1 | 0);
  14443 
  14444      if (!points[p]) {
  14445        --count;
  14446      }
  14447    } while (p0 !== p);
  14448 
  14449    outlines.push(coords);
  14450    --i;
  14451  }
  14452 
  14453  var drawOutline = function drawOutline(c) {
  14454    c.save();
  14455    c.scale(1 / width, -1 / height);
  14456    c.translate(0, -height);
  14457    c.beginPath();
  14458 
  14459    for (var i = 0, ii = outlines.length; i < ii; i++) {
  14460      var o = outlines[i];
  14461      c.moveTo(o[0], o[1]);
  14462 
  14463      for (var j = 2, jj = o.length; j < jj; j += 2) {
  14464        c.lineTo(o[j], o[j + 1]);
  14465      }
  14466    }
  14467 
  14468    c.fill();
  14469    c.beginPath();
  14470    c.restore();
  14471  };
  14472 
  14473  return drawOutline;
  14474 }
  14475 
  14476 var CanvasExtraState = function CanvasExtraStateClosure() {
  14477  function CanvasExtraState() {
  14478    this.alphaIsShape = false;
  14479    this.fontSize = 0;
  14480    this.fontSizeScale = 1;
  14481    this.textMatrix = _util.IDENTITY_MATRIX;
  14482    this.textMatrixScale = 1;
  14483    this.fontMatrix = _util.FONT_IDENTITY_MATRIX;
  14484    this.leading = 0;
  14485    this.x = 0;
  14486    this.y = 0;
  14487    this.lineX = 0;
  14488    this.lineY = 0;
  14489    this.charSpacing = 0;
  14490    this.wordSpacing = 0;
  14491    this.textHScale = 1;
  14492    this.textRenderingMode = _util.TextRenderingMode.FILL;
  14493    this.textRise = 0;
  14494    this.fillColor = '#000000';
  14495    this.strokeColor = '#000000';
  14496    this.patternFill = false;
  14497    this.fillAlpha = 1;
  14498    this.strokeAlpha = 1;
  14499    this.lineWidth = 1;
  14500    this.activeSMask = null;
  14501    this.resumeSMaskCtx = null;
  14502  }
  14503 
  14504  CanvasExtraState.prototype = {
  14505    clone: function CanvasExtraState_clone() {
  14506      return Object.create(this);
  14507    },
  14508    setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) {
  14509      this.x = x;
  14510      this.y = y;
  14511    }
  14512  };
  14513  return CanvasExtraState;
  14514 }();
  14515 
  14516 var CanvasGraphics = function CanvasGraphicsClosure() {
  14517  var EXECUTION_TIME = 15;
  14518  var EXECUTION_STEPS = 10;
  14519 
  14520  function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) {
  14521    this.ctx = canvasCtx;
  14522    this.current = new CanvasExtraState();
  14523    this.stateStack = [];
  14524    this.pendingClip = null;
  14525    this.pendingEOFill = false;
  14526    this.res = null;
  14527    this.xobjs = null;
  14528    this.commonObjs = commonObjs;
  14529    this.objs = objs;
  14530    this.canvasFactory = canvasFactory;
  14531    this.webGLContext = webGLContext;
  14532    this.imageLayer = imageLayer;
  14533    this.groupStack = [];
  14534    this.processingType3 = null;
  14535    this.baseTransform = null;
  14536    this.baseTransformStack = [];
  14537    this.groupLevel = 0;
  14538    this.smaskStack = [];
  14539    this.smaskCounter = 0;
  14540    this.tempSMask = null;
  14541    this.cachedCanvases = new CachedCanvases(this.canvasFactory);
  14542 
  14543    if (canvasCtx) {
  14544      addContextCurrentTransform(canvasCtx);
  14545    }
  14546 
  14547    this._cachedGetSinglePixelWidth = null;
  14548  }
  14549 
  14550  function putBinaryImageData(ctx, imgData) {
  14551    if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) {
  14552      ctx.putImageData(imgData, 0, 0);
  14553      return;
  14554    }
  14555 
  14556    var height = imgData.height,
  14557        width = imgData.width;
  14558    var partialChunkHeight = height % FULL_CHUNK_HEIGHT;
  14559    var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;
  14560    var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;
  14561    var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);
  14562    var srcPos = 0,
  14563        destPos;
  14564    var src = imgData.data;
  14565    var dest = chunkImgData.data;
  14566    var i, j, thisChunkHeight, elemsInThisChunk;
  14567 
  14568    if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {
  14569      var srcLength = src.byteLength;
  14570      var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);
  14571      var dest32DataLength = dest32.length;
  14572      var fullSrcDiff = width + 7 >> 3;
  14573      var white = 0xFFFFFFFF;
  14574      var black = IsLittleEndianCached.value ? 0xFF000000 : 0x000000FF;
  14575 
  14576      for (i = 0; i < totalChunks; i++) {
  14577        thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;
  14578        destPos = 0;
  14579 
  14580        for (j = 0; j < thisChunkHeight; j++) {
  14581          var srcDiff = srcLength - srcPos;
  14582          var k = 0;
  14583          var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;
  14584          var kEndUnrolled = kEnd & ~7;
  14585          var mask = 0;
  14586          var srcByte = 0;
  14587 
  14588          for (; k < kEndUnrolled; k += 8) {
  14589            srcByte = src[srcPos++];
  14590            dest32[destPos++] = srcByte & 128 ? white : black;
  14591            dest32[destPos++] = srcByte & 64 ? white : black;
  14592            dest32[destPos++] = srcByte & 32 ? white : black;
  14593            dest32[destPos++] = srcByte & 16 ? white : black;
  14594            dest32[destPos++] = srcByte & 8 ? white : black;
  14595            dest32[destPos++] = srcByte & 4 ? white : black;
  14596            dest32[destPos++] = srcByte & 2 ? white : black;
  14597            dest32[destPos++] = srcByte & 1 ? white : black;
  14598          }
  14599 
  14600          for (; k < kEnd; k++) {
  14601            if (mask === 0) {
  14602              srcByte = src[srcPos++];
  14603              mask = 128;
  14604            }
  14605 
  14606            dest32[destPos++] = srcByte & mask ? white : black;
  14607            mask >>= 1;
  14608          }
  14609        }
  14610 
  14611        while (destPos < dest32DataLength) {
  14612          dest32[destPos++] = 0;
  14613        }
  14614 
  14615        ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);
  14616      }
  14617    } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {
  14618      j = 0;
  14619      elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;
  14620 
  14621      for (i = 0; i < fullChunks; i++) {
  14622        dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));
  14623        srcPos += elemsInThisChunk;
  14624        ctx.putImageData(chunkImgData, 0, j);
  14625        j += FULL_CHUNK_HEIGHT;
  14626      }
  14627 
  14628      if (i < totalChunks) {
  14629        elemsInThisChunk = width * partialChunkHeight * 4;
  14630        dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));
  14631        ctx.putImageData(chunkImgData, 0, j);
  14632      }
  14633    } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {
  14634      thisChunkHeight = FULL_CHUNK_HEIGHT;
  14635      elemsInThisChunk = width * thisChunkHeight;
  14636 
  14637      for (i = 0; i < totalChunks; i++) {
  14638        if (i >= fullChunks) {
  14639          thisChunkHeight = partialChunkHeight;
  14640          elemsInThisChunk = width * thisChunkHeight;
  14641        }
  14642 
  14643        destPos = 0;
  14644 
  14645        for (j = elemsInThisChunk; j--;) {
  14646          dest[destPos++] = src[srcPos++];
  14647          dest[destPos++] = src[srcPos++];
  14648          dest[destPos++] = src[srcPos++];
  14649          dest[destPos++] = 255;
  14650        }
  14651 
  14652        ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);
  14653      }
  14654    } else {
  14655      throw new Error("bad image kind: ".concat(imgData.kind));
  14656    }
  14657  }
  14658 
  14659  function putBinaryImageMask(ctx, imgData) {
  14660    var height = imgData.height,
  14661        width = imgData.width;
  14662    var partialChunkHeight = height % FULL_CHUNK_HEIGHT;
  14663    var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;
  14664    var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;
  14665    var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);
  14666    var srcPos = 0;
  14667    var src = imgData.data;
  14668    var dest = chunkImgData.data;
  14669 
  14670    for (var i = 0; i < totalChunks; i++) {
  14671      var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;
  14672      var destPos = 3;
  14673 
  14674      for (var j = 0; j < thisChunkHeight; j++) {
  14675        var mask = 0;
  14676 
  14677        for (var k = 0; k < width; k++) {
  14678          if (!mask) {
  14679            var elem = src[srcPos++];
  14680            mask = 128;
  14681          }
  14682 
  14683          dest[destPos] = elem & mask ? 0 : 255;
  14684          destPos += 4;
  14685          mask >>= 1;
  14686        }
  14687      }
  14688 
  14689      ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);
  14690    }
  14691  }
  14692 
  14693  function copyCtxState(sourceCtx, destCtx) {
  14694    var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha', 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', 'globalCompositeOperation', 'font'];
  14695 
  14696    for (var i = 0, ii = properties.length; i < ii; i++) {
  14697      var property = properties[i];
  14698 
  14699      if (sourceCtx[property] !== undefined) {
  14700        destCtx[property] = sourceCtx[property];
  14701      }
  14702    }
  14703 
  14704    if (sourceCtx.setLineDash !== undefined) {
  14705      destCtx.setLineDash(sourceCtx.getLineDash());
  14706      destCtx.lineDashOffset = sourceCtx.lineDashOffset;
  14707    }
  14708  }
  14709 
  14710  function resetCtxToDefault(ctx) {
  14711    ctx.strokeStyle = '#000000';
  14712    ctx.fillStyle = '#000000';
  14713    ctx.fillRule = 'nonzero';
  14714    ctx.globalAlpha = 1;
  14715    ctx.lineWidth = 1;
  14716    ctx.lineCap = 'butt';
  14717    ctx.lineJoin = 'miter';
  14718    ctx.miterLimit = 10;
  14719    ctx.globalCompositeOperation = 'source-over';
  14720    ctx.font = '10px sans-serif';
  14721 
  14722    if (ctx.setLineDash !== undefined) {
  14723      ctx.setLineDash([]);
  14724      ctx.lineDashOffset = 0;
  14725    }
  14726  }
  14727 
  14728  function composeSMaskBackdrop(bytes, r0, g0, b0) {
  14729    var length = bytes.length;
  14730 
  14731    for (var i = 3; i < length; i += 4) {
  14732      var alpha = bytes[i];
  14733 
  14734      if (alpha === 0) {
  14735        bytes[i - 3] = r0;
  14736        bytes[i - 2] = g0;
  14737        bytes[i - 1] = b0;
  14738      } else if (alpha < 255) {
  14739        var alpha_ = 255 - alpha;
  14740        bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;
  14741        bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;
  14742        bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;
  14743      }
  14744    }
  14745  }
  14746 
  14747  function composeSMaskAlpha(maskData, layerData, transferMap) {
  14748    var length = maskData.length;
  14749    var scale = 1 / 255;
  14750 
  14751    for (var i = 3; i < length; i += 4) {
  14752      var alpha = transferMap ? transferMap[maskData[i]] : maskData[i];
  14753      layerData[i] = layerData[i] * alpha * scale | 0;
  14754    }
  14755  }
  14756 
  14757  function composeSMaskLuminosity(maskData, layerData, transferMap) {
  14758    var length = maskData.length;
  14759 
  14760    for (var i = 3; i < length; i += 4) {
  14761      var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;
  14762      layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;
  14763    }
  14764  }
  14765 
  14766  function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) {
  14767    var hasBackdrop = !!backdrop;
  14768    var r0 = hasBackdrop ? backdrop[0] : 0;
  14769    var g0 = hasBackdrop ? backdrop[1] : 0;
  14770    var b0 = hasBackdrop ? backdrop[2] : 0;
  14771    var composeFn;
  14772 
  14773    if (subtype === 'Luminosity') {
  14774      composeFn = composeSMaskLuminosity;
  14775    } else {
  14776      composeFn = composeSMaskAlpha;
  14777    }
  14778 
  14779    var PIXELS_TO_PROCESS = 1048576;
  14780    var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));
  14781 
  14782    for (var row = 0; row < height; row += chunkSize) {
  14783      var chunkHeight = Math.min(chunkSize, height - row);
  14784      var maskData = maskCtx.getImageData(0, row, width, chunkHeight);
  14785      var layerData = layerCtx.getImageData(0, row, width, chunkHeight);
  14786 
  14787      if (hasBackdrop) {
  14788        composeSMaskBackdrop(maskData.data, r0, g0, b0);
  14789      }
  14790 
  14791      composeFn(maskData.data, layerData.data, transferMap);
  14792      maskCtx.putImageData(layerData, 0, row);
  14793    }
  14794  }
  14795 
  14796  function composeSMask(ctx, smask, layerCtx, webGLContext) {
  14797    var mask = smask.canvas;
  14798    var maskCtx = smask.context;
  14799    ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY);
  14800    var backdrop = smask.backdrop || null;
  14801 
  14802    if (!smask.transferMap && webGLContext.isEnabled) {
  14803      var composed = webGLContext.composeSMask({
  14804        layer: layerCtx.canvas,
  14805        mask: mask,
  14806        properties: {
  14807          subtype: smask.subtype,
  14808          backdrop: backdrop
  14809        }
  14810      });
  14811      ctx.setTransform(1, 0, 0, 1, 0, 0);
  14812      ctx.drawImage(composed, smask.offsetX, smask.offsetY);
  14813      return;
  14814    }
  14815 
  14816    genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap);
  14817    ctx.drawImage(mask, 0, 0);
  14818  }
  14819 
  14820  var LINE_CAP_STYLES = ['butt', 'round', 'square'];
  14821  var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];
  14822  var NORMAL_CLIP = {};
  14823  var EO_CLIP = {};
  14824  CanvasGraphics.prototype = {
  14825    beginDrawing: function beginDrawing(_ref) {
  14826      var transform = _ref.transform,
  14827          viewport = _ref.viewport,
  14828          _ref$transparency = _ref.transparency,
  14829          transparency = _ref$transparency === void 0 ? false : _ref$transparency,
  14830          _ref$background = _ref.background,
  14831          background = _ref$background === void 0 ? null : _ref$background;
  14832      var width = this.ctx.canvas.width;
  14833      var height = this.ctx.canvas.height;
  14834      this.ctx.save();
  14835      this.ctx.fillStyle = background || 'rgb(255, 255, 255)';
  14836      this.ctx.fillRect(0, 0, width, height);
  14837      this.ctx.restore();
  14838 
  14839      if (transparency) {
  14840        var transparentCanvas = this.cachedCanvases.getCanvas('transparent', width, height, true);
  14841        this.compositeCtx = this.ctx;
  14842        this.transparentCanvas = transparentCanvas.canvas;
  14843        this.ctx = transparentCanvas.context;
  14844        this.ctx.save();
  14845        this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);
  14846      }
  14847 
  14848      this.ctx.save();
  14849      resetCtxToDefault(this.ctx);
  14850 
  14851      if (transform) {
  14852        this.ctx.transform.apply(this.ctx, transform);
  14853      }
  14854 
  14855      this.ctx.transform.apply(this.ctx, viewport.transform);
  14856      this.baseTransform = this.ctx.mozCurrentTransform.slice();
  14857 
  14858      if (this.imageLayer) {
  14859        this.imageLayer.beginLayout();
  14860      }
  14861    },
  14862    executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {
  14863      var argsArray = operatorList.argsArray;
  14864      var fnArray = operatorList.fnArray;
  14865      var i = executionStartIdx || 0;
  14866      var argsArrayLen = argsArray.length;
  14867 
  14868      if (argsArrayLen === i) {
  14869        return i;
  14870      }
  14871 
  14872      var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === 'function';
  14873      var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;
  14874      var steps = 0;
  14875      var commonObjs = this.commonObjs;
  14876      var objs = this.objs;
  14877      var fnId;
  14878 
  14879      while (true) {
  14880        if (stepper !== undefined && i === stepper.nextBreakPoint) {
  14881          stepper.breakIt(i, continueCallback);
  14882          return i;
  14883        }
  14884 
  14885        fnId = fnArray[i];
  14886 
  14887        if (fnId !== _util.OPS.dependency) {
  14888          this[fnId].apply(this, argsArray[i]);
  14889        } else {
  14890          var _iteratorNormalCompletion = true;
  14891          var _didIteratorError = false;
  14892          var _iteratorError = undefined;
  14893 
  14894          try {
  14895            for (var _iterator = argsArray[i][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  14896              var depObjId = _step.value;
  14897              var objsPool = depObjId.startsWith('g_') ? commonObjs : objs;
  14898 
  14899              if (!objsPool.has(depObjId)) {
  14900                objsPool.get(depObjId, continueCallback);
  14901                return i;
  14902              }
  14903            }
  14904          } catch (err) {
  14905            _didIteratorError = true;
  14906            _iteratorError = err;
  14907          } finally {
  14908            try {
  14909              if (!_iteratorNormalCompletion && _iterator["return"] != null) {
  14910                _iterator["return"]();
  14911              }
  14912            } finally {
  14913              if (_didIteratorError) {
  14914                throw _iteratorError;
  14915              }
  14916            }
  14917          }
  14918        }
  14919 
  14920        i++;
  14921 
  14922        if (i === argsArrayLen) {
  14923          return i;
  14924        }
  14925 
  14926        if (chunkOperations && ++steps > EXECUTION_STEPS) {
  14927          if (Date.now() > endTime) {
  14928            continueCallback();
  14929            return i;
  14930          }
  14931 
  14932          steps = 0;
  14933        }
  14934      }
  14935    },
  14936    endDrawing: function CanvasGraphics_endDrawing() {
  14937      if (this.current.activeSMask !== null) {
  14938        this.endSMaskGroup();
  14939      }
  14940 
  14941      this.ctx.restore();
  14942 
  14943      if (this.transparentCanvas) {
  14944        this.ctx = this.compositeCtx;
  14945        this.ctx.save();
  14946        this.ctx.setTransform(1, 0, 0, 1, 0, 0);
  14947        this.ctx.drawImage(this.transparentCanvas, 0, 0);
  14948        this.ctx.restore();
  14949        this.transparentCanvas = null;
  14950      }
  14951 
  14952      this.cachedCanvases.clear();
  14953      this.webGLContext.clear();
  14954 
  14955      if (this.imageLayer) {
  14956        this.imageLayer.endLayout();
  14957      }
  14958    },
  14959    setLineWidth: function CanvasGraphics_setLineWidth(width) {
  14960      this.current.lineWidth = width;
  14961      this.ctx.lineWidth = width;
  14962    },
  14963    setLineCap: function CanvasGraphics_setLineCap(style) {
  14964      this.ctx.lineCap = LINE_CAP_STYLES[style];
  14965    },
  14966    setLineJoin: function CanvasGraphics_setLineJoin(style) {
  14967      this.ctx.lineJoin = LINE_JOIN_STYLES[style];
  14968    },
  14969    setMiterLimit: function CanvasGraphics_setMiterLimit(limit) {
  14970      this.ctx.miterLimit = limit;
  14971    },
  14972    setDash: function CanvasGraphics_setDash(dashArray, dashPhase) {
  14973      var ctx = this.ctx;
  14974 
  14975      if (ctx.setLineDash !== undefined) {
  14976        ctx.setLineDash(dashArray);
  14977        ctx.lineDashOffset = dashPhase;
  14978      }
  14979    },
  14980    setRenderingIntent: function setRenderingIntent(intent) {},
  14981    setFlatness: function setFlatness(flatness) {},
  14982    setGState: function CanvasGraphics_setGState(states) {
  14983      for (var i = 0, ii = states.length; i < ii; i++) {
  14984        var state = states[i];
  14985        var key = state[0];
  14986        var value = state[1];
  14987 
  14988        switch (key) {
  14989          case 'LW':
  14990            this.setLineWidth(value);
  14991            break;
  14992 
  14993          case 'LC':
  14994            this.setLineCap(value);
  14995            break;
  14996 
  14997          case 'LJ':
  14998            this.setLineJoin(value);
  14999            break;
  15000 
  15001          case 'ML':
  15002            this.setMiterLimit(value);
  15003            break;
  15004 
  15005          case 'D':
  15006            this.setDash(value[0], value[1]);
  15007            break;
  15008 
  15009          case 'RI':
  15010            this.setRenderingIntent(value);
  15011            break;
  15012 
  15013          case 'FL':
  15014            this.setFlatness(value);
  15015            break;
  15016 
  15017          case 'Font':
  15018            this.setFont(value[0], value[1]);
  15019            break;
  15020 
  15021          case 'CA':
  15022            this.current.strokeAlpha = state[1];
  15023            break;
  15024 
  15025          case 'ca':
  15026            this.current.fillAlpha = state[1];
  15027            this.ctx.globalAlpha = state[1];
  15028            break;
  15029 
  15030          case 'BM':
  15031            this.ctx.globalCompositeOperation = value;
  15032            break;
  15033 
  15034          case 'SMask':
  15035            if (this.current.activeSMask) {
  15036              if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) {
  15037                this.suspendSMaskGroup();
  15038              } else {
  15039                this.endSMaskGroup();
  15040              }
  15041            }
  15042 
  15043            this.current.activeSMask = value ? this.tempSMask : null;
  15044 
  15045            if (this.current.activeSMask) {
  15046              this.beginSMaskGroup();
  15047            }
  15048 
  15049            this.tempSMask = null;
  15050            break;
  15051        }
  15052      }
  15053    },
  15054    beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {
  15055      var activeSMask = this.current.activeSMask;
  15056      var drawnWidth = activeSMask.canvas.width;
  15057      var drawnHeight = activeSMask.canvas.height;
  15058      var cacheId = 'smaskGroupAt' + this.groupLevel;
  15059      var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);
  15060      var currentCtx = this.ctx;
  15061      var currentTransform = currentCtx.mozCurrentTransform;
  15062      this.ctx.save();
  15063      var groupCtx = scratchCanvas.context;
  15064      groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY);
  15065      groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY);
  15066      groupCtx.transform.apply(groupCtx, currentTransform);
  15067      activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;
  15068      copyCtxState(currentCtx, groupCtx);
  15069      this.ctx = groupCtx;
  15070      this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]);
  15071      this.groupStack.push(currentCtx);
  15072      this.groupLevel++;
  15073    },
  15074    suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() {
  15075      var groupCtx = this.ctx;
  15076      this.groupLevel--;
  15077      this.ctx = this.groupStack.pop();
  15078      composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);
  15079      this.ctx.restore();
  15080      this.ctx.save();
  15081      copyCtxState(groupCtx, this.ctx);
  15082      this.current.resumeSMaskCtx = groupCtx;
  15083 
  15084      var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);
  15085 
  15086      this.ctx.transform.apply(this.ctx, deltaTransform);
  15087      groupCtx.save();
  15088      groupCtx.setTransform(1, 0, 0, 1, 0, 0);
  15089      groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height);
  15090      groupCtx.restore();
  15091    },
  15092    resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() {
  15093      var groupCtx = this.current.resumeSMaskCtx;
  15094      var currentCtx = this.ctx;
  15095      this.ctx = groupCtx;
  15096      this.groupStack.push(currentCtx);
  15097      this.groupLevel++;
  15098    },
  15099    endSMaskGroup: function CanvasGraphics_endSMaskGroup() {
  15100      var groupCtx = this.ctx;
  15101      this.groupLevel--;
  15102      this.ctx = this.groupStack.pop();
  15103      composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);
  15104      this.ctx.restore();
  15105      copyCtxState(groupCtx, this.ctx);
  15106 
  15107      var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);
  15108 
  15109      this.ctx.transform.apply(this.ctx, deltaTransform);
  15110    },
  15111    save: function CanvasGraphics_save() {
  15112      this.ctx.save();
  15113      var old = this.current;
  15114      this.stateStack.push(old);
  15115      this.current = old.clone();
  15116      this.current.resumeSMaskCtx = null;
  15117    },
  15118    restore: function CanvasGraphics_restore() {
  15119      if (this.current.resumeSMaskCtx) {
  15120        this.resumeSMaskGroup();
  15121      }
  15122 
  15123      if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) {
  15124        this.endSMaskGroup();
  15125      }
  15126 
  15127      if (this.stateStack.length !== 0) {
  15128        this.current = this.stateStack.pop();
  15129        this.ctx.restore();
  15130        this.pendingClip = null;
  15131        this._cachedGetSinglePixelWidth = null;
  15132      }
  15133    },
  15134    transform: function CanvasGraphics_transform(a, b, c, d, e, f) {
  15135      this.ctx.transform(a, b, c, d, e, f);
  15136      this._cachedGetSinglePixelWidth = null;
  15137    },
  15138    constructPath: function CanvasGraphics_constructPath(ops, args) {
  15139      var ctx = this.ctx;
  15140      var current = this.current;
  15141      var x = current.x,
  15142          y = current.y;
  15143 
  15144      for (var i = 0, j = 0, ii = ops.length; i < ii; i++) {
  15145        switch (ops[i] | 0) {
  15146          case _util.OPS.rectangle:
  15147            x = args[j++];
  15148            y = args[j++];
  15149            var width = args[j++];
  15150            var height = args[j++];
  15151 
  15152            if (width === 0) {
  15153              width = this.getSinglePixelWidth();
  15154            }
  15155 
  15156            if (height === 0) {
  15157              height = this.getSinglePixelWidth();
  15158            }
  15159 
  15160            var xw = x + width;
  15161            var yh = y + height;
  15162            this.ctx.moveTo(x, y);
  15163            this.ctx.lineTo(xw, y);
  15164            this.ctx.lineTo(xw, yh);
  15165            this.ctx.lineTo(x, yh);
  15166            this.ctx.lineTo(x, y);
  15167            this.ctx.closePath();
  15168            break;
  15169 
  15170          case _util.OPS.moveTo:
  15171            x = args[j++];
  15172            y = args[j++];
  15173            ctx.moveTo(x, y);
  15174            break;
  15175 
  15176          case _util.OPS.lineTo:
  15177            x = args[j++];
  15178            y = args[j++];
  15179            ctx.lineTo(x, y);
  15180            break;
  15181 
  15182          case _util.OPS.curveTo:
  15183            x = args[j + 4];
  15184            y = args[j + 5];
  15185            ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);
  15186            j += 6;
  15187            break;
  15188 
  15189          case _util.OPS.curveTo2:
  15190            ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);
  15191            x = args[j + 2];
  15192            y = args[j + 3];
  15193            j += 4;
  15194            break;
  15195 
  15196          case _util.OPS.curveTo3:
  15197            x = args[j + 2];
  15198            y = args[j + 3];
  15199            ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);
  15200            j += 4;
  15201            break;
  15202 
  15203          case _util.OPS.closePath:
  15204            ctx.closePath();
  15205            break;
  15206        }
  15207      }
  15208 
  15209      current.setCurrentPoint(x, y);
  15210    },
  15211    closePath: function CanvasGraphics_closePath() {
  15212      this.ctx.closePath();
  15213    },
  15214    stroke: function CanvasGraphics_stroke(consumePath) {
  15215      consumePath = typeof consumePath !== 'undefined' ? consumePath : true;
  15216      var ctx = this.ctx;
  15217      var strokeColor = this.current.strokeColor;
  15218      ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth);
  15219      ctx.globalAlpha = this.current.strokeAlpha;
  15220 
  15221      if (strokeColor && strokeColor.hasOwnProperty('type') && strokeColor.type === 'Pattern') {
  15222        ctx.save();
  15223        ctx.strokeStyle = strokeColor.getPattern(ctx, this);
  15224        ctx.stroke();
  15225        ctx.restore();
  15226      } else {
  15227        ctx.stroke();
  15228      }
  15229 
  15230      if (consumePath) {
  15231        this.consumePath();
  15232      }
  15233 
  15234      ctx.globalAlpha = this.current.fillAlpha;
  15235    },
  15236    closeStroke: function CanvasGraphics_closeStroke() {
  15237      this.closePath();
  15238      this.stroke();
  15239    },
  15240    fill: function CanvasGraphics_fill(consumePath) {
  15241      consumePath = typeof consumePath !== 'undefined' ? consumePath : true;
  15242      var ctx = this.ctx;
  15243      var fillColor = this.current.fillColor;
  15244      var isPatternFill = this.current.patternFill;
  15245      var needRestore = false;
  15246 
  15247      if (isPatternFill) {
  15248        ctx.save();
  15249 
  15250        if (this.baseTransform) {
  15251          ctx.setTransform.apply(ctx, this.baseTransform);
  15252        }
  15253 
  15254        ctx.fillStyle = fillColor.getPattern(ctx, this);
  15255        needRestore = true;
  15256      }
  15257 
  15258      if (this.pendingEOFill) {
  15259        ctx.fill('evenodd');
  15260        this.pendingEOFill = false;
  15261      } else {
  15262        ctx.fill();
  15263      }
  15264 
  15265      if (needRestore) {
  15266        ctx.restore();
  15267      }
  15268 
  15269      if (consumePath) {
  15270        this.consumePath();
  15271      }
  15272    },
  15273    eoFill: function CanvasGraphics_eoFill() {
  15274      this.pendingEOFill = true;
  15275      this.fill();
  15276    },
  15277    fillStroke: function CanvasGraphics_fillStroke() {
  15278      this.fill(false);
  15279      this.stroke(false);
  15280      this.consumePath();
  15281    },
  15282    eoFillStroke: function CanvasGraphics_eoFillStroke() {
  15283      this.pendingEOFill = true;
  15284      this.fillStroke();
  15285    },
  15286    closeFillStroke: function CanvasGraphics_closeFillStroke() {
  15287      this.closePath();
  15288      this.fillStroke();
  15289    },
  15290    closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() {
  15291      this.pendingEOFill = true;
  15292      this.closePath();
  15293      this.fillStroke();
  15294    },
  15295    endPath: function CanvasGraphics_endPath() {
  15296      this.consumePath();
  15297    },
  15298    clip: function CanvasGraphics_clip() {
  15299      this.pendingClip = NORMAL_CLIP;
  15300    },
  15301    eoClip: function CanvasGraphics_eoClip() {
  15302      this.pendingClip = EO_CLIP;
  15303    },
  15304    beginText: function CanvasGraphics_beginText() {
  15305      this.current.textMatrix = _util.IDENTITY_MATRIX;
  15306      this.current.textMatrixScale = 1;
  15307      this.current.x = this.current.lineX = 0;
  15308      this.current.y = this.current.lineY = 0;
  15309    },
  15310    endText: function CanvasGraphics_endText() {
  15311      var paths = this.pendingTextPaths;
  15312      var ctx = this.ctx;
  15313 
  15314      if (paths === undefined) {
  15315        ctx.beginPath();
  15316        return;
  15317      }
  15318 
  15319      ctx.save();
  15320      ctx.beginPath();
  15321 
  15322      for (var i = 0; i < paths.length; i++) {
  15323        var path = paths[i];
  15324        ctx.setTransform.apply(ctx, path.transform);
  15325        ctx.translate(path.x, path.y);
  15326        path.addToPath(ctx, path.fontSize);
  15327      }
  15328 
  15329      ctx.restore();
  15330      ctx.clip();
  15331      ctx.beginPath();
  15332      delete this.pendingTextPaths;
  15333    },
  15334    setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) {
  15335      this.current.charSpacing = spacing;
  15336    },
  15337    setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) {
  15338      this.current.wordSpacing = spacing;
  15339    },
  15340    setHScale: function CanvasGraphics_setHScale(scale) {
  15341      this.current.textHScale = scale / 100;
  15342    },
  15343    setLeading: function CanvasGraphics_setLeading(leading) {
  15344      this.current.leading = -leading;
  15345    },
  15346    setFont: function CanvasGraphics_setFont(fontRefName, size) {
  15347      var fontObj = this.commonObjs.get(fontRefName);
  15348      var current = this.current;
  15349 
  15350      if (!fontObj) {
  15351        throw new Error("Can't find font for ".concat(fontRefName));
  15352      }
  15353 
  15354      current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;
  15355 
  15356      if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {
  15357        (0, _util.warn)('Invalid font matrix for font ' + fontRefName);
  15358      }
  15359 
  15360      if (size < 0) {
  15361        size = -size;
  15362        current.fontDirection = -1;
  15363      } else {
  15364        current.fontDirection = 1;
  15365      }
  15366 
  15367      this.current.font = fontObj;
  15368      this.current.fontSize = size;
  15369 
  15370      if (fontObj.isType3Font) {
  15371        return;
  15372      }
  15373 
  15374      var name = fontObj.loadedName || 'sans-serif';
  15375      var bold = fontObj.black ? '900' : fontObj.bold ? 'bold' : 'normal';
  15376      var italic = fontObj.italic ? 'italic' : 'normal';
  15377      var typeface = "\"".concat(name, "\", ").concat(fontObj.fallbackName);
  15378      var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE : size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size;
  15379      this.current.fontSizeScale = size / browserFontSize;
  15380      this.ctx.font = "".concat(italic, " ").concat(bold, " ").concat(browserFontSize, "px ").concat(typeface);
  15381    },
  15382    setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) {
  15383      this.current.textRenderingMode = mode;
  15384    },
  15385    setTextRise: function CanvasGraphics_setTextRise(rise) {
  15386      this.current.textRise = rise;
  15387    },
  15388    moveText: function CanvasGraphics_moveText(x, y) {
  15389      this.current.x = this.current.lineX += x;
  15390      this.current.y = this.current.lineY += y;
  15391    },
  15392    setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) {
  15393      this.setLeading(-y);
  15394      this.moveText(x, y);
  15395    },
  15396    setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) {
  15397      this.current.textMatrix = [a, b, c, d, e, f];
  15398      this.current.textMatrixScale = Math.sqrt(a * a + b * b);
  15399      this.current.x = this.current.lineX = 0;
  15400      this.current.y = this.current.lineY = 0;
  15401    },
  15402    nextLine: function CanvasGraphics_nextLine() {
  15403      this.moveText(0, this.current.leading);
  15404    },
  15405    paintChar: function paintChar(character, x, y, patternTransform) {
  15406      var ctx = this.ctx;
  15407      var current = this.current;
  15408      var font = current.font;
  15409      var textRenderingMode = current.textRenderingMode;
  15410      var fontSize = current.fontSize / current.fontSizeScale;
  15411      var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;
  15412      var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);
  15413      var patternFill = current.patternFill && font.data;
  15414      var addToPath;
  15415 
  15416      if (font.disableFontFace || isAddToPathSet || patternFill) {
  15417        addToPath = font.getPathGenerator(this.commonObjs, character);
  15418      }
  15419 
  15420      if (font.disableFontFace || patternFill) {
  15421        ctx.save();
  15422        ctx.translate(x, y);
  15423        ctx.beginPath();
  15424        addToPath(ctx, fontSize);
  15425 
  15426        if (patternTransform) {
  15427          ctx.setTransform.apply(ctx, patternTransform);
  15428        }
  15429 
  15430        if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
  15431          ctx.fill();
  15432        }
  15433 
  15434        if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
  15435          ctx.stroke();
  15436        }
  15437 
  15438        ctx.restore();
  15439      } else {
  15440        if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
  15441          ctx.fillText(character, x, y);
  15442        }
  15443 
  15444        if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
  15445          ctx.strokeText(character, x, y);
  15446        }
  15447      }
  15448 
  15449      if (isAddToPathSet) {
  15450        var paths = this.pendingTextPaths || (this.pendingTextPaths = []);
  15451        paths.push({
  15452          transform: ctx.mozCurrentTransform,
  15453          x: x,
  15454          y: y,
  15455          fontSize: fontSize,
  15456          addToPath: addToPath
  15457        });
  15458      }
  15459    },
  15460 
  15461    get isFontSubpixelAAEnabled() {
  15462      var _this$cachedCanvases$ = this.cachedCanvases.getCanvas('isFontSubpixelAAEnabled', 10, 10),
  15463          ctx = _this$cachedCanvases$.context;
  15464 
  15465      ctx.scale(1.5, 1);
  15466      ctx.fillText('I', 0, 10);
  15467      var data = ctx.getImageData(0, 0, 10, 10).data;
  15468      var enabled = false;
  15469 
  15470      for (var i = 3; i < data.length; i += 4) {
  15471        if (data[i] > 0 && data[i] < 255) {
  15472          enabled = true;
  15473          break;
  15474        }
  15475      }
  15476 
  15477      return (0, _util.shadow)(this, 'isFontSubpixelAAEnabled', enabled);
  15478    },
  15479 
  15480    showText: function CanvasGraphics_showText(glyphs) {
  15481      var current = this.current;
  15482      var font = current.font;
  15483 
  15484      if (font.isType3Font) {
  15485        return this.showType3Text(glyphs);
  15486      }
  15487 
  15488      var fontSize = current.fontSize;
  15489 
  15490      if (fontSize === 0) {
  15491        return undefined;
  15492      }
  15493 
  15494      var ctx = this.ctx;
  15495      var fontSizeScale = current.fontSizeScale;
  15496      var charSpacing = current.charSpacing;
  15497      var wordSpacing = current.wordSpacing;
  15498      var fontDirection = current.fontDirection;
  15499      var textHScale = current.textHScale * fontDirection;
  15500      var glyphsLength = glyphs.length;
  15501      var vertical = font.vertical;
  15502      var spacingDir = vertical ? 1 : -1;
  15503      var defaultVMetrics = font.defaultVMetrics;
  15504      var widthAdvanceScale = fontSize * current.fontMatrix[0];
  15505      var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;
  15506      ctx.save();
  15507      var patternTransform;
  15508 
  15509      if (current.patternFill) {
  15510        ctx.save();
  15511        var pattern = current.fillColor.getPattern(ctx, this);
  15512        patternTransform = ctx.mozCurrentTransform;
  15513        ctx.restore();
  15514        ctx.fillStyle = pattern;
  15515      }
  15516 
  15517      ctx.transform.apply(ctx, current.textMatrix);
  15518      ctx.translate(current.x, current.y + current.textRise);
  15519 
  15520      if (fontDirection > 0) {
  15521        ctx.scale(textHScale, -1);
  15522      } else {
  15523        ctx.scale(textHScale, 1);
  15524      }
  15525 
  15526      var lineWidth = current.lineWidth;
  15527      var scale = current.textMatrixScale;
  15528 
  15529      if (scale === 0 || lineWidth === 0) {
  15530        var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;
  15531 
  15532        if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
  15533          this._cachedGetSinglePixelWidth = null;
  15534          lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR;
  15535        }
  15536      } else {
  15537        lineWidth /= scale;
  15538      }
  15539 
  15540      if (fontSizeScale !== 1.0) {
  15541        ctx.scale(fontSizeScale, fontSizeScale);
  15542        lineWidth /= fontSizeScale;
  15543      }
  15544 
  15545      ctx.lineWidth = lineWidth;
  15546      var x = 0,
  15547          i;
  15548 
  15549      for (i = 0; i < glyphsLength; ++i) {
  15550        var glyph = glyphs[i];
  15551 
  15552        if ((0, _util.isNum)(glyph)) {
  15553          x += spacingDir * glyph * fontSize / 1000;
  15554          continue;
  15555        }
  15556 
  15557        var restoreNeeded = false;
  15558        var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
  15559        var character = glyph.fontChar;
  15560        var accent = glyph.accent;
  15561        var scaledX, scaledY, scaledAccentX, scaledAccentY;
  15562        var width = glyph.width;
  15563 
  15564        if (vertical) {
  15565          var vmetric, vx, vy;
  15566          vmetric = glyph.vmetric || defaultVMetrics;
  15567          vx = glyph.vmetric ? vmetric[1] : width * 0.5;
  15568          vx = -vx * widthAdvanceScale;
  15569          vy = vmetric[2] * widthAdvanceScale;
  15570          width = vmetric ? -vmetric[0] : width;
  15571          scaledX = vx / fontSizeScale;
  15572          scaledY = (x + vy) / fontSizeScale;
  15573        } else {
  15574          scaledX = x / fontSizeScale;
  15575          scaledY = 0;
  15576        }
  15577 
  15578        if (font.remeasure && width > 0) {
  15579          var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;
  15580 
  15581          if (width < measuredWidth && this.isFontSubpixelAAEnabled) {
  15582            var characterScaleX = width / measuredWidth;
  15583            restoreNeeded = true;
  15584            ctx.save();
  15585            ctx.scale(characterScaleX, 1);
  15586            scaledX /= characterScaleX;
  15587          } else if (width !== measuredWidth) {
  15588            scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;
  15589          }
  15590        }
  15591 
  15592        if (glyph.isInFont || font.missingFile) {
  15593          if (simpleFillText && !accent) {
  15594            ctx.fillText(character, scaledX, scaledY);
  15595          } else {
  15596            this.paintChar(character, scaledX, scaledY, patternTransform);
  15597 
  15598            if (accent) {
  15599              scaledAccentX = scaledX + accent.offset.x / fontSizeScale;
  15600              scaledAccentY = scaledY - accent.offset.y / fontSizeScale;
  15601              this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);
  15602            }
  15603          }
  15604        }
  15605 
  15606        var charWidth = width * widthAdvanceScale + spacing * fontDirection;
  15607        x += charWidth;
  15608 
  15609        if (restoreNeeded) {
  15610          ctx.restore();
  15611        }
  15612      }
  15613 
  15614      if (vertical) {
  15615        current.y -= x * textHScale;
  15616      } else {
  15617        current.x += x * textHScale;
  15618      }
  15619 
  15620      ctx.restore();
  15621    },
  15622    showType3Text: function CanvasGraphics_showType3Text(glyphs) {
  15623      var ctx = this.ctx;
  15624      var current = this.current;
  15625      var font = current.font;
  15626      var fontSize = current.fontSize;
  15627      var fontDirection = current.fontDirection;
  15628      var spacingDir = font.vertical ? 1 : -1;
  15629      var charSpacing = current.charSpacing;
  15630      var wordSpacing = current.wordSpacing;
  15631      var textHScale = current.textHScale * fontDirection;
  15632      var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;
  15633      var glyphsLength = glyphs.length;
  15634      var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;
  15635      var i, glyph, width, spacingLength;
  15636 
  15637      if (isTextInvisible || fontSize === 0) {
  15638        return;
  15639      }
  15640 
  15641      this._cachedGetSinglePixelWidth = null;
  15642      ctx.save();
  15643      ctx.transform.apply(ctx, current.textMatrix);
  15644      ctx.translate(current.x, current.y);
  15645      ctx.scale(textHScale, fontDirection);
  15646 
  15647      for (i = 0; i < glyphsLength; ++i) {
  15648        glyph = glyphs[i];
  15649 
  15650        if ((0, _util.isNum)(glyph)) {
  15651          spacingLength = spacingDir * glyph * fontSize / 1000;
  15652          this.ctx.translate(spacingLength, 0);
  15653          current.x += spacingLength * textHScale;
  15654          continue;
  15655        }
  15656 
  15657        var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
  15658        var operatorList = font.charProcOperatorList[glyph.operatorListId];
  15659 
  15660        if (!operatorList) {
  15661          (0, _util.warn)("Type3 character \"".concat(glyph.operatorListId, "\" is not available."));
  15662          continue;
  15663        }
  15664 
  15665        this.processingType3 = glyph;
  15666        this.save();
  15667        ctx.scale(fontSize, fontSize);
  15668        ctx.transform.apply(ctx, fontMatrix);
  15669        this.executeOperatorList(operatorList);
  15670        this.restore();
  15671 
  15672        var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);
  15673 
  15674        width = transformed[0] * fontSize + spacing;
  15675        ctx.translate(width, 0);
  15676        current.x += width * textHScale;
  15677      }
  15678 
  15679      ctx.restore();
  15680      this.processingType3 = null;
  15681    },
  15682    setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {},
  15683    setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {
  15684      this.ctx.rect(llx, lly, urx - llx, ury - lly);
  15685      this.clip();
  15686      this.endPath();
  15687    },
  15688    getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) {
  15689      var _this = this;
  15690 
  15691      var pattern;
  15692 
  15693      if (IR[0] === 'TilingPattern') {
  15694        var color = IR[1];
  15695        var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice();
  15696        var canvasGraphicsFactory = {
  15697          createCanvasGraphics: function createCanvasGraphics(ctx) {
  15698            return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory, _this.webGLContext);
  15699          }
  15700        };
  15701        pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);
  15702      } else {
  15703        pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR);
  15704      }
  15705 
  15706      return pattern;
  15707    },
  15708    setStrokeColorN: function CanvasGraphics_setStrokeColorN() {
  15709      this.current.strokeColor = this.getColorN_Pattern(arguments);
  15710    },
  15711    setFillColorN: function CanvasGraphics_setFillColorN() {
  15712      this.current.fillColor = this.getColorN_Pattern(arguments);
  15713      this.current.patternFill = true;
  15714    },
  15715    setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) {
  15716      var color = _util.Util.makeCssRgb(r, g, b);
  15717 
  15718      this.ctx.strokeStyle = color;
  15719      this.current.strokeColor = color;
  15720    },
  15721    setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {
  15722      var color = _util.Util.makeCssRgb(r, g, b);
  15723 
  15724      this.ctx.fillStyle = color;
  15725      this.current.fillColor = color;
  15726      this.current.patternFill = false;
  15727    },
  15728    shadingFill: function CanvasGraphics_shadingFill(patternIR) {
  15729      var ctx = this.ctx;
  15730      this.save();
  15731      var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR);
  15732      ctx.fillStyle = pattern.getPattern(ctx, this, true);
  15733      var inv = ctx.mozCurrentTransformInverse;
  15734 
  15735      if (inv) {
  15736        var canvas = ctx.canvas;
  15737        var width = canvas.width;
  15738        var height = canvas.height;
  15739 
  15740        var bl = _util.Util.applyTransform([0, 0], inv);
  15741 
  15742        var br = _util.Util.applyTransform([0, height], inv);
  15743 
  15744        var ul = _util.Util.applyTransform([width, 0], inv);
  15745 
  15746        var ur = _util.Util.applyTransform([width, height], inv);
  15747 
  15748        var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);
  15749        var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);
  15750        var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);
  15751        var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);
  15752        this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);
  15753      } else {
  15754        this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);
  15755      }
  15756 
  15757      this.restore();
  15758    },
  15759    beginInlineImage: function CanvasGraphics_beginInlineImage() {
  15760      (0, _util.unreachable)('Should not call beginInlineImage');
  15761    },
  15762    beginImageData: function CanvasGraphics_beginImageData() {
  15763      (0, _util.unreachable)('Should not call beginImageData');
  15764    },
  15765    paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) {
  15766      this.save();
  15767      this.baseTransformStack.push(this.baseTransform);
  15768 
  15769      if (Array.isArray(matrix) && matrix.length === 6) {
  15770        this.transform.apply(this, matrix);
  15771      }
  15772 
  15773      this.baseTransform = this.ctx.mozCurrentTransform;
  15774 
  15775      if (bbox) {
  15776        var width = bbox[2] - bbox[0];
  15777        var height = bbox[3] - bbox[1];
  15778        this.ctx.rect(bbox[0], bbox[1], width, height);
  15779        this.clip();
  15780        this.endPath();
  15781      }
  15782    },
  15783    paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {
  15784      this.restore();
  15785      this.baseTransform = this.baseTransformStack.pop();
  15786    },
  15787    beginGroup: function CanvasGraphics_beginGroup(group) {
  15788      this.save();
  15789      var currentCtx = this.ctx;
  15790 
  15791      if (!group.isolated) {
  15792        (0, _util.info)('TODO: Support non-isolated groups.');
  15793      }
  15794 
  15795      if (group.knockout) {
  15796        (0, _util.warn)('Knockout groups not supported.');
  15797      }
  15798 
  15799      var currentTransform = currentCtx.mozCurrentTransform;
  15800 
  15801      if (group.matrix) {
  15802        currentCtx.transform.apply(currentCtx, group.matrix);
  15803      }
  15804 
  15805      if (!group.bbox) {
  15806        throw new Error('Bounding box is required.');
  15807      }
  15808 
  15809      var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform);
  15810 
  15811      var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];
  15812      bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];
  15813      var offsetX = Math.floor(bounds[0]);
  15814      var offsetY = Math.floor(bounds[1]);
  15815      var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);
  15816      var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);
  15817      var scaleX = 1,
  15818          scaleY = 1;
  15819 
  15820      if (drawnWidth > MAX_GROUP_SIZE) {
  15821        scaleX = drawnWidth / MAX_GROUP_SIZE;
  15822        drawnWidth = MAX_GROUP_SIZE;
  15823      }
  15824 
  15825      if (drawnHeight > MAX_GROUP_SIZE) {
  15826        scaleY = drawnHeight / MAX_GROUP_SIZE;
  15827        drawnHeight = MAX_GROUP_SIZE;
  15828      }
  15829 
  15830      var cacheId = 'groupAt' + this.groupLevel;
  15831 
  15832      if (group.smask) {
  15833        cacheId += '_smask_' + this.smaskCounter++ % 2;
  15834      }
  15835 
  15836      var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);
  15837      var groupCtx = scratchCanvas.context;
  15838      groupCtx.scale(1 / scaleX, 1 / scaleY);
  15839      groupCtx.translate(-offsetX, -offsetY);
  15840      groupCtx.transform.apply(groupCtx, currentTransform);
  15841 
  15842      if (group.smask) {
  15843        this.smaskStack.push({
  15844          canvas: scratchCanvas.canvas,
  15845          context: groupCtx,
  15846          offsetX: offsetX,
  15847          offsetY: offsetY,
  15848          scaleX: scaleX,
  15849          scaleY: scaleY,
  15850          subtype: group.smask.subtype,
  15851          backdrop: group.smask.backdrop,
  15852          transferMap: group.smask.transferMap || null,
  15853          startTransformInverse: null
  15854        });
  15855      } else {
  15856        currentCtx.setTransform(1, 0, 0, 1, 0, 0);
  15857        currentCtx.translate(offsetX, offsetY);
  15858        currentCtx.scale(scaleX, scaleY);
  15859      }
  15860 
  15861      copyCtxState(currentCtx, groupCtx);
  15862      this.ctx = groupCtx;
  15863      this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]);
  15864      this.groupStack.push(currentCtx);
  15865      this.groupLevel++;
  15866      this.current.activeSMask = null;
  15867    },
  15868    endGroup: function CanvasGraphics_endGroup(group) {
  15869      this.groupLevel--;
  15870      var groupCtx = this.ctx;
  15871      this.ctx = this.groupStack.pop();
  15872 
  15873      if (this.ctx.imageSmoothingEnabled !== undefined) {
  15874        this.ctx.imageSmoothingEnabled = false;
  15875      } else {
  15876        this.ctx.mozImageSmoothingEnabled = false;
  15877      }
  15878 
  15879      if (group.smask) {
  15880        this.tempSMask = this.smaskStack.pop();
  15881      } else {
  15882        this.ctx.drawImage(groupCtx.canvas, 0, 0);
  15883      }
  15884 
  15885      this.restore();
  15886    },
  15887    beginAnnotations: function CanvasGraphics_beginAnnotations() {
  15888      this.save();
  15889 
  15890      if (this.baseTransform) {
  15891        this.ctx.setTransform.apply(this.ctx, this.baseTransform);
  15892      }
  15893    },
  15894    endAnnotations: function CanvasGraphics_endAnnotations() {
  15895      this.restore();
  15896    },
  15897    beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) {
  15898      this.save();
  15899      resetCtxToDefault(this.ctx);
  15900      this.current = new CanvasExtraState();
  15901 
  15902      if (Array.isArray(rect) && rect.length === 4) {
  15903        var width = rect[2] - rect[0];
  15904        var height = rect[3] - rect[1];
  15905        this.ctx.rect(rect[0], rect[1], width, height);
  15906        this.clip();
  15907        this.endPath();
  15908      }
  15909 
  15910      this.transform.apply(this, transform);
  15911      this.transform.apply(this, matrix);
  15912    },
  15913    endAnnotation: function CanvasGraphics_endAnnotation() {
  15914      this.restore();
  15915    },
  15916    paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) {
  15917      var domImage = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId);
  15918 
  15919      if (!domImage) {
  15920        (0, _util.warn)('Dependent image isn\'t ready yet');
  15921        return;
  15922      }
  15923 
  15924      this.save();
  15925      var ctx = this.ctx;
  15926      ctx.scale(1 / w, -1 / h);
  15927      ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h);
  15928 
  15929      if (this.imageLayer) {
  15930        var currentTransform = ctx.mozCurrentTransformInverse;
  15931        var position = this.getCanvasPosition(0, 0);
  15932        this.imageLayer.appendImage({
  15933          objId: objId,
  15934          left: position[0],
  15935          top: position[1],
  15936          width: w / currentTransform[0],
  15937          height: h / currentTransform[3]
  15938        });
  15939      }
  15940 
  15941      this.restore();
  15942    },
  15943    paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {
  15944      var ctx = this.ctx;
  15945      var width = img.width,
  15946          height = img.height;
  15947      var fillColor = this.current.fillColor;
  15948      var isPatternFill = this.current.patternFill;
  15949      var glyph = this.processingType3;
  15950 
  15951      if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {
  15952        if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {
  15953          glyph.compiled = compileType3Glyph({
  15954            data: img.data,
  15955            width: width,
  15956            height: height
  15957          });
  15958        } else {
  15959          glyph.compiled = null;
  15960        }
  15961      }
  15962 
  15963      if (glyph && glyph.compiled) {
  15964        glyph.compiled(ctx);
  15965        return;
  15966      }
  15967 
  15968      var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height);
  15969      var maskCtx = maskCanvas.context;
  15970      maskCtx.save();
  15971      putBinaryImageMask(maskCtx, img);
  15972      maskCtx.globalCompositeOperation = 'source-in';
  15973      maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;
  15974      maskCtx.fillRect(0, 0, width, height);
  15975      maskCtx.restore();
  15976      this.paintInlineImageXObject(maskCanvas.canvas);
  15977    },
  15978    paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) {
  15979      var width = imgData.width;
  15980      var height = imgData.height;
  15981      var fillColor = this.current.fillColor;
  15982      var isPatternFill = this.current.patternFill;
  15983      var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height);
  15984      var maskCtx = maskCanvas.context;
  15985      maskCtx.save();
  15986      putBinaryImageMask(maskCtx, imgData);
  15987      maskCtx.globalCompositeOperation = 'source-in';
  15988      maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;
  15989      maskCtx.fillRect(0, 0, width, height);
  15990      maskCtx.restore();
  15991      var ctx = this.ctx;
  15992 
  15993      for (var i = 0, ii = positions.length; i < ii; i += 2) {
  15994        ctx.save();
  15995        ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]);
  15996        ctx.scale(1, -1);
  15997        ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);
  15998        ctx.restore();
  15999      }
  16000    },
  16001    paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) {
  16002      var ctx = this.ctx;
  16003      var fillColor = this.current.fillColor;
  16004      var isPatternFill = this.current.patternFill;
  16005 
  16006      for (var i = 0, ii = images.length; i < ii; i++) {
  16007        var image = images[i];
  16008        var width = image.width,
  16009            height = image.height;
  16010        var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height);
  16011        var maskCtx = maskCanvas.context;
  16012        maskCtx.save();
  16013        putBinaryImageMask(maskCtx, image);
  16014        maskCtx.globalCompositeOperation = 'source-in';
  16015        maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;
  16016        maskCtx.fillRect(0, 0, width, height);
  16017        maskCtx.restore();
  16018        ctx.save();
  16019        ctx.transform.apply(ctx, image.transform);
  16020        ctx.scale(1, -1);
  16021        ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);
  16022        ctx.restore();
  16023      }
  16024    },
  16025    paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {
  16026      var imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId);
  16027 
  16028      if (!imgData) {
  16029        (0, _util.warn)('Dependent image isn\'t ready yet');
  16030        return;
  16031      }
  16032 
  16033      this.paintInlineImageXObject(imgData);
  16034    },
  16035    paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {
  16036      var imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId);
  16037 
  16038      if (!imgData) {
  16039        (0, _util.warn)('Dependent image isn\'t ready yet');
  16040        return;
  16041      }
  16042 
  16043      var width = imgData.width;
  16044      var height = imgData.height;
  16045      var map = [];
  16046 
  16047      for (var i = 0, ii = positions.length; i < ii; i += 2) {
  16048        map.push({
  16049          transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],
  16050          x: 0,
  16051          y: 0,
  16052          w: width,
  16053          h: height
  16054        });
  16055      }
  16056 
  16057      this.paintInlineImageXObjectGroup(imgData, map);
  16058    },
  16059    paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) {
  16060      var width = imgData.width;
  16061      var height = imgData.height;
  16062      var ctx = this.ctx;
  16063      this.save();
  16064      ctx.scale(1 / width, -1 / height);
  16065      var currentTransform = ctx.mozCurrentTransformInverse;
  16066      var a = currentTransform[0],
  16067          b = currentTransform[1];
  16068      var widthScale = Math.max(Math.sqrt(a * a + b * b), 1);
  16069      var c = currentTransform[2],
  16070          d = currentTransform[3];
  16071      var heightScale = Math.max(Math.sqrt(c * c + d * d), 1);
  16072      var imgToPaint, tmpCanvas;
  16073 
  16074      if (typeof HTMLElement === 'function' && imgData instanceof HTMLElement || !imgData.data) {
  16075        imgToPaint = imgData;
  16076      } else {
  16077        tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', width, height);
  16078        var tmpCtx = tmpCanvas.context;
  16079        putBinaryImageData(tmpCtx, imgData);
  16080        imgToPaint = tmpCanvas.canvas;
  16081      }
  16082 
  16083      var paintWidth = width,
  16084          paintHeight = height;
  16085      var tmpCanvasId = 'prescale1';
  16086 
  16087      while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {
  16088        var newWidth = paintWidth,
  16089            newHeight = paintHeight;
  16090 
  16091        if (widthScale > 2 && paintWidth > 1) {
  16092          newWidth = Math.ceil(paintWidth / 2);
  16093          widthScale /= paintWidth / newWidth;
  16094        }
  16095 
  16096        if (heightScale > 2 && paintHeight > 1) {
  16097          newHeight = Math.ceil(paintHeight / 2);
  16098          heightScale /= paintHeight / newHeight;
  16099        }
  16100 
  16101        tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);
  16102        tmpCtx = tmpCanvas.context;
  16103        tmpCtx.clearRect(0, 0, newWidth, newHeight);
  16104        tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);
  16105        imgToPaint = tmpCanvas.canvas;
  16106        paintWidth = newWidth;
  16107        paintHeight = newHeight;
  16108        tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1';
  16109      }
  16110 
  16111      ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height);
  16112 
  16113      if (this.imageLayer) {
  16114        var position = this.getCanvasPosition(0, -height);
  16115        this.imageLayer.appendImage({
  16116          imgData: imgData,
  16117          left: position[0],
  16118          top: position[1],
  16119          width: width / currentTransform[0],
  16120          height: height / currentTransform[3]
  16121        });
  16122      }
  16123 
  16124      this.restore();
  16125    },
  16126    paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) {
  16127      var ctx = this.ctx;
  16128      var w = imgData.width;
  16129      var h = imgData.height;
  16130      var tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', w, h);
  16131      var tmpCtx = tmpCanvas.context;
  16132      putBinaryImageData(tmpCtx, imgData);
  16133 
  16134      for (var i = 0, ii = map.length; i < ii; i++) {
  16135        var entry = map[i];
  16136        ctx.save();
  16137        ctx.transform.apply(ctx, entry.transform);
  16138        ctx.scale(1, -1);
  16139        ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);
  16140 
  16141        if (this.imageLayer) {
  16142          var position = this.getCanvasPosition(entry.x, entry.y);
  16143          this.imageLayer.appendImage({
  16144            imgData: imgData,
  16145            left: position[0],
  16146            top: position[1],
  16147            width: w,
  16148            height: h
  16149          });
  16150        }
  16151 
  16152        ctx.restore();
  16153      }
  16154    },
  16155    paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() {
  16156      this.ctx.fillRect(0, 0, 1, 1);
  16157    },
  16158    paintXObject: function CanvasGraphics_paintXObject() {
  16159      (0, _util.warn)('Unsupported \'paintXObject\' command.');
  16160    },
  16161    markPoint: function CanvasGraphics_markPoint(tag) {},
  16162    markPointProps: function CanvasGraphics_markPointProps(tag, properties) {},
  16163    beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {},
  16164    beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {},
  16165    endMarkedContent: function CanvasGraphics_endMarkedContent() {},
  16166    beginCompat: function CanvasGraphics_beginCompat() {},
  16167    endCompat: function CanvasGraphics_endCompat() {},
  16168    consumePath: function CanvasGraphics_consumePath() {
  16169      var ctx = this.ctx;
  16170 
  16171      if (this.pendingClip) {
  16172        if (this.pendingClip === EO_CLIP) {
  16173          ctx.clip('evenodd');
  16174        } else {
  16175          ctx.clip();
  16176        }
  16177 
  16178        this.pendingClip = null;
  16179      }
  16180 
  16181      ctx.beginPath();
  16182    },
  16183    getSinglePixelWidth: function getSinglePixelWidth(scale) {
  16184      if (this._cachedGetSinglePixelWidth === null) {
  16185        var inverse = this.ctx.mozCurrentTransformInverse;
  16186        this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3]));
  16187      }
  16188 
  16189      return this._cachedGetSinglePixelWidth;
  16190    },
  16191    getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) {
  16192      var transform = this.ctx.mozCurrentTransform;
  16193      return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]];
  16194    }
  16195  };
  16196 
  16197  for (var op in _util.OPS) {
  16198    CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];
  16199  }
  16200 
  16201  return CanvasGraphics;
  16202 }();
  16203 
  16204 exports.CanvasGraphics = CanvasGraphics;
  16205 
  16206 /***/ }),
  16207 /* 155 */
  16208 /***/ (function(module, exports, __w_pdfjs_require__) {
  16209 
  16210 "use strict";
  16211 
  16212 
  16213 Object.defineProperty(exports, "__esModule", {
  16214  value: true
  16215 });
  16216 exports.getShadingPatternFromIR = getShadingPatternFromIR;
  16217 exports.TilingPattern = void 0;
  16218 
  16219 var _util = __w_pdfjs_require__(1);
  16220 
  16221 var ShadingIRs = {};
  16222 ShadingIRs.RadialAxial = {
  16223  fromIR: function RadialAxial_fromIR(raw) {
  16224    var type = raw[1];
  16225    var colorStops = raw[2];
  16226    var p0 = raw[3];
  16227    var p1 = raw[4];
  16228    var r0 = raw[5];
  16229    var r1 = raw[6];
  16230    return {
  16231      type: 'Pattern',
  16232      getPattern: function RadialAxial_getPattern(ctx) {
  16233        var grad;
  16234 
  16235        if (type === 'axial') {
  16236          grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);
  16237        } else if (type === 'radial') {
  16238          grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);
  16239        }
  16240 
  16241        for (var i = 0, ii = colorStops.length; i < ii; ++i) {
  16242          var c = colorStops[i];
  16243          grad.addColorStop(c[0], c[1]);
  16244        }
  16245 
  16246        return grad;
  16247      }
  16248    };
  16249  }
  16250 };
  16251 
  16252 var createMeshCanvas = function createMeshCanvasClosure() {
  16253  function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {
  16254    var coords = context.coords,
  16255        colors = context.colors;
  16256    var bytes = data.data,
  16257        rowSize = data.width * 4;
  16258    var tmp;
  16259 
  16260    if (coords[p1 + 1] > coords[p2 + 1]) {
  16261      tmp = p1;
  16262      p1 = p2;
  16263      p2 = tmp;
  16264      tmp = c1;
  16265      c1 = c2;
  16266      c2 = tmp;
  16267    }
  16268 
  16269    if (coords[p2 + 1] > coords[p3 + 1]) {
  16270      tmp = p2;
  16271      p2 = p3;
  16272      p3 = tmp;
  16273      tmp = c2;
  16274      c2 = c3;
  16275      c3 = tmp;
  16276    }
  16277 
  16278    if (coords[p1 + 1] > coords[p2 + 1]) {
  16279      tmp = p1;
  16280      p1 = p2;
  16281      p2 = tmp;
  16282      tmp = c1;
  16283      c1 = c2;
  16284      c2 = tmp;
  16285    }
  16286 
  16287    var x1 = (coords[p1] + context.offsetX) * context.scaleX;
  16288    var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;
  16289    var x2 = (coords[p2] + context.offsetX) * context.scaleX;
  16290    var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;
  16291    var x3 = (coords[p3] + context.offsetX) * context.scaleX;
  16292    var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;
  16293 
  16294    if (y1 >= y3) {
  16295      return;
  16296    }
  16297 
  16298    var c1r = colors[c1],
  16299        c1g = colors[c1 + 1],
  16300        c1b = colors[c1 + 2];
  16301    var c2r = colors[c2],
  16302        c2g = colors[c2 + 1],
  16303        c2b = colors[c2 + 2];
  16304    var c3r = colors[c3],
  16305        c3g = colors[c3 + 1],
  16306        c3b = colors[c3 + 2];
  16307    var minY = Math.round(y1),
  16308        maxY = Math.round(y3);
  16309    var xa, car, cag, cab;
  16310    var xb, cbr, cbg, cbb;
  16311    var k;
  16312 
  16313    for (var y = minY; y <= maxY; y++) {
  16314      if (y < y2) {
  16315        k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2);
  16316        xa = x1 - (x1 - x2) * k;
  16317        car = c1r - (c1r - c2r) * k;
  16318        cag = c1g - (c1g - c2g) * k;
  16319        cab = c1b - (c1b - c2b) * k;
  16320      } else {
  16321        k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3);
  16322        xa = x2 - (x2 - x3) * k;
  16323        car = c2r - (c2r - c3r) * k;
  16324        cag = c2g - (c2g - c3g) * k;
  16325        cab = c2b - (c2b - c3b) * k;
  16326      }
  16327 
  16328      k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3);
  16329      xb = x1 - (x1 - x3) * k;
  16330      cbr = c1r - (c1r - c3r) * k;
  16331      cbg = c1g - (c1g - c3g) * k;
  16332      cbb = c1b - (c1b - c3b) * k;
  16333      var x1_ = Math.round(Math.min(xa, xb));
  16334      var x2_ = Math.round(Math.max(xa, xb));
  16335      var j = rowSize * y + x1_ * 4;
  16336 
  16337      for (var x = x1_; x <= x2_; x++) {
  16338        k = (xa - x) / (xa - xb);
  16339        k = k < 0 ? 0 : k > 1 ? 1 : k;
  16340        bytes[j++] = car - (car - cbr) * k | 0;
  16341        bytes[j++] = cag - (cag - cbg) * k | 0;
  16342        bytes[j++] = cab - (cab - cbb) * k | 0;
  16343        bytes[j++] = 255;
  16344      }
  16345    }
  16346  }
  16347 
  16348  function drawFigure(data, figure, context) {
  16349    var ps = figure.coords;
  16350    var cs = figure.colors;
  16351    var i, ii;
  16352 
  16353    switch (figure.type) {
  16354      case 'lattice':
  16355        var verticesPerRow = figure.verticesPerRow;
  16356        var rows = Math.floor(ps.length / verticesPerRow) - 1;
  16357        var cols = verticesPerRow - 1;
  16358 
  16359        for (i = 0; i < rows; i++) {
  16360          var q = i * verticesPerRow;
  16361 
  16362          for (var j = 0; j < cols; j++, q++) {
  16363            drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);
  16364            drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);
  16365          }
  16366        }
  16367 
  16368        break;
  16369 
  16370      case 'triangles':
  16371        for (i = 0, ii = ps.length; i < ii; i += 3) {
  16372          drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);
  16373        }
  16374 
  16375        break;
  16376 
  16377      default:
  16378        throw new Error('illegal figure');
  16379    }
  16380  }
  16381 
  16382  function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) {
  16383    var EXPECTED_SCALE = 1.1;
  16384    var MAX_PATTERN_SIZE = 3000;
  16385    var BORDER_SIZE = 2;
  16386    var offsetX = Math.floor(bounds[0]);
  16387    var offsetY = Math.floor(bounds[1]);
  16388    var boundsWidth = Math.ceil(bounds[2]) - offsetX;
  16389    var boundsHeight = Math.ceil(bounds[3]) - offsetY;
  16390    var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);
  16391    var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);
  16392    var scaleX = boundsWidth / width;
  16393    var scaleY = boundsHeight / height;
  16394    var context = {
  16395      coords: coords,
  16396      colors: colors,
  16397      offsetX: -offsetX,
  16398      offsetY: -offsetY,
  16399      scaleX: 1 / scaleX,
  16400      scaleY: 1 / scaleY
  16401    };
  16402    var paddedWidth = width + BORDER_SIZE * 2;
  16403    var paddedHeight = height + BORDER_SIZE * 2;
  16404    var canvas, tmpCanvas, i, ii;
  16405 
  16406    if (webGLContext.isEnabled) {
  16407      canvas = webGLContext.drawFigures({
  16408        width: width,
  16409        height: height,
  16410        backgroundColor: backgroundColor,
  16411        figures: figures,
  16412        context: context
  16413      });
  16414      tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false);
  16415      tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE);
  16416      canvas = tmpCanvas.canvas;
  16417    } else {
  16418      tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false);
  16419      var tmpCtx = tmpCanvas.context;
  16420      var data = tmpCtx.createImageData(width, height);
  16421 
  16422      if (backgroundColor) {
  16423        var bytes = data.data;
  16424 
  16425        for (i = 0, ii = bytes.length; i < ii; i += 4) {
  16426          bytes[i] = backgroundColor[0];
  16427          bytes[i + 1] = backgroundColor[1];
  16428          bytes[i + 2] = backgroundColor[2];
  16429          bytes[i + 3] = 255;
  16430        }
  16431      }
  16432 
  16433      for (i = 0; i < figures.length; i++) {
  16434        drawFigure(data, figures[i], context);
  16435      }
  16436 
  16437      tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);
  16438      canvas = tmpCanvas.canvas;
  16439    }
  16440 
  16441    return {
  16442      canvas: canvas,
  16443      offsetX: offsetX - BORDER_SIZE * scaleX,
  16444      offsetY: offsetY - BORDER_SIZE * scaleY,
  16445      scaleX: scaleX,
  16446      scaleY: scaleY
  16447    };
  16448  }
  16449 
  16450  return createMeshCanvas;
  16451 }();
  16452 
  16453 ShadingIRs.Mesh = {
  16454  fromIR: function Mesh_fromIR(raw) {
  16455    var coords = raw[2];
  16456    var colors = raw[3];
  16457    var figures = raw[4];
  16458    var bounds = raw[5];
  16459    var matrix = raw[6];
  16460    var background = raw[8];
  16461    return {
  16462      type: 'Pattern',
  16463      getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {
  16464        var scale;
  16465 
  16466        if (shadingFill) {
  16467          scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);
  16468        } else {
  16469          scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);
  16470 
  16471          if (matrix) {
  16472            var matrixScale = _util.Util.singularValueDecompose2dScale(matrix);
  16473 
  16474            scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];
  16475          }
  16476        }
  16477 
  16478        var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext);
  16479 
  16480        if (!shadingFill) {
  16481          ctx.setTransform.apply(ctx, owner.baseTransform);
  16482 
  16483          if (matrix) {
  16484            ctx.transform.apply(ctx, matrix);
  16485          }
  16486        }
  16487 
  16488        ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);
  16489        ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);
  16490        return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat');
  16491      }
  16492    };
  16493  }
  16494 };
  16495 ShadingIRs.Dummy = {
  16496  fromIR: function Dummy_fromIR() {
  16497    return {
  16498      type: 'Pattern',
  16499      getPattern: function Dummy_fromIR_getPattern() {
  16500        return 'hotpink';
  16501      }
  16502    };
  16503  }
  16504 };
  16505 
  16506 function getShadingPatternFromIR(raw) {
  16507  var shadingIR = ShadingIRs[raw[0]];
  16508 
  16509  if (!shadingIR) {
  16510    throw new Error("Unknown IR type: ".concat(raw[0]));
  16511  }
  16512 
  16513  return shadingIR.fromIR(raw);
  16514 }
  16515 
  16516 var TilingPattern = function TilingPatternClosure() {
  16517  var PaintType = {
  16518    COLORED: 1,
  16519    UNCOLORED: 2
  16520  };
  16521  var MAX_PATTERN_SIZE = 3000;
  16522 
  16523  function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) {
  16524    this.operatorList = IR[2];
  16525    this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];
  16526    this.bbox = IR[4];
  16527    this.xstep = IR[5];
  16528    this.ystep = IR[6];
  16529    this.paintType = IR[7];
  16530    this.tilingType = IR[8];
  16531    this.color = color;
  16532    this.canvasGraphicsFactory = canvasGraphicsFactory;
  16533    this.baseTransform = baseTransform;
  16534    this.type = 'Pattern';
  16535    this.ctx = ctx;
  16536  }
  16537 
  16538  TilingPattern.prototype = {
  16539    createPatternCanvas: function TilinPattern_createPatternCanvas(owner) {
  16540      var operatorList = this.operatorList;
  16541      var bbox = this.bbox;
  16542      var xstep = this.xstep;
  16543      var ystep = this.ystep;
  16544      var paintType = this.paintType;
  16545      var tilingType = this.tilingType;
  16546      var color = this.color;
  16547      var canvasGraphicsFactory = this.canvasGraphicsFactory;
  16548      (0, _util.info)('TilingType: ' + tilingType);
  16549      var x0 = bbox[0],
  16550          y0 = bbox[1],
  16551          x1 = bbox[2],
  16552          y1 = bbox[3];
  16553 
  16554      var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);
  16555 
  16556      var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);
  16557 
  16558      var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];
  16559      var dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);
  16560      var dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);
  16561      var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', dimx.size, dimy.size, true);
  16562      var tmpCtx = tmpCanvas.context;
  16563      var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);
  16564      graphics.groupLevel = owner.groupLevel;
  16565      this.setFillAndStrokeStyleToContext(graphics, paintType, color);
  16566      graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);
  16567      graphics.transform(1, 0, 0, 1, -x0, -y0);
  16568      this.clipBbox(graphics, bbox, x0, y0, x1, y1);
  16569      graphics.executeOperatorList(operatorList);
  16570      this.ctx.transform(1, 0, 0, 1, x0, y0);
  16571      this.ctx.scale(1 / dimx.scale, 1 / dimy.scale);
  16572      return tmpCanvas.canvas;
  16573    },
  16574    getSizeAndScale: function TilingPattern_getSizeAndScale(step, realOutputSize, scale) {
  16575      step = Math.abs(step);
  16576      var maxSize = Math.max(MAX_PATTERN_SIZE, realOutputSize);
  16577      var size = Math.ceil(step * scale);
  16578 
  16579      if (size >= maxSize) {
  16580        size = maxSize;
  16581      } else {
  16582        scale = size / step;
  16583      }
  16584 
  16585      return {
  16586        scale: scale,
  16587        size: size
  16588      };
  16589    },
  16590    clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) {
  16591      if (Array.isArray(bbox) && bbox.length === 4) {
  16592        var bboxWidth = x1 - x0;
  16593        var bboxHeight = y1 - y0;
  16594        graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);
  16595        graphics.clip();
  16596        graphics.endPath();
  16597      }
  16598    },
  16599    setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) {
  16600      var context = graphics.ctx,
  16601          current = graphics.current;
  16602 
  16603      switch (paintType) {
  16604        case PaintType.COLORED:
  16605          var ctx = this.ctx;
  16606          context.fillStyle = ctx.fillStyle;
  16607          context.strokeStyle = ctx.strokeStyle;
  16608          current.fillColor = ctx.fillStyle;
  16609          current.strokeColor = ctx.strokeStyle;
  16610          break;
  16611 
  16612        case PaintType.UNCOLORED:
  16613          var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]);
  16614 
  16615          context.fillStyle = cssColor;
  16616          context.strokeStyle = cssColor;
  16617          current.fillColor = cssColor;
  16618          current.strokeColor = cssColor;
  16619          break;
  16620 
  16621        default:
  16622          throw new _util.FormatError("Unsupported paint type: ".concat(paintType));
  16623      }
  16624    },
  16625    getPattern: function TilingPattern_getPattern(ctx, owner) {
  16626      ctx = this.ctx;
  16627      ctx.setTransform.apply(ctx, this.baseTransform);
  16628      ctx.transform.apply(ctx, this.matrix);
  16629      var temporaryPatternCanvas = this.createPatternCanvas(owner);
  16630      return ctx.createPattern(temporaryPatternCanvas, 'repeat');
  16631    }
  16632  };
  16633  return TilingPattern;
  16634 }();
  16635 
  16636 exports.TilingPattern = TilingPattern;
  16637 
  16638 /***/ }),
  16639 /* 156 */
  16640 /***/ (function(module, exports, __w_pdfjs_require__) {
  16641 
  16642 "use strict";
  16643 
  16644 
  16645 Object.defineProperty(exports, "__esModule", {
  16646  value: true
  16647 });
  16648 exports.GlobalWorkerOptions = void 0;
  16649 var GlobalWorkerOptions = Object.create(null);
  16650 exports.GlobalWorkerOptions = GlobalWorkerOptions;
  16651 GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;
  16652 GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? '' : GlobalWorkerOptions.workerSrc;
  16653 
  16654 /***/ }),
  16655 /* 157 */
  16656 /***/ (function(module, exports, __w_pdfjs_require__) {
  16657 
  16658 "use strict";
  16659 
  16660 
  16661 Object.defineProperty(exports, "__esModule", {
  16662  value: true
  16663 });
  16664 exports.MessageHandler = MessageHandler;
  16665 
  16666 var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148));
  16667 
  16668 var _util = __w_pdfjs_require__(1);
  16669 
  16670 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
  16671 
  16672 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
  16673 
  16674 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
  16675 
  16676 function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
  16677 
  16678 function resolveCall(_x, _x2) {
  16679  return _resolveCall.apply(this, arguments);
  16680 }
  16681 
  16682 function _resolveCall() {
  16683  _resolveCall = _asyncToGenerator(
  16684  /*#__PURE__*/
  16685  _regenerator["default"].mark(function _callee(fn, args) {
  16686    var thisArg,
  16687        _args = arguments;
  16688    return _regenerator["default"].wrap(function _callee$(_context) {
  16689      while (1) {
  16690        switch (_context.prev = _context.next) {
  16691          case 0:
  16692            thisArg = _args.length > 2 && _args[2] !== undefined ? _args[2] : null;
  16693 
  16694            if (fn) {
  16695              _context.next = 3;
  16696              break;
  16697            }
  16698 
  16699            return _context.abrupt("return", undefined);
  16700 
  16701          case 3:
  16702            return _context.abrupt("return", fn.apply(thisArg, args));
  16703 
  16704          case 4:
  16705          case "end":
  16706            return _context.stop();
  16707        }
  16708      }
  16709    }, _callee);
  16710  }));
  16711  return _resolveCall.apply(this, arguments);
  16712 }
  16713 
  16714 function wrapReason(reason) {
  16715  if (_typeof(reason) !== 'object') {
  16716    return reason;
  16717  }
  16718 
  16719  switch (reason.name) {
  16720    case 'AbortException':
  16721      return new _util.AbortException(reason.message);
  16722 
  16723    case 'MissingPDFException':
  16724      return new _util.MissingPDFException(reason.message);
  16725 
  16726    case 'UnexpectedResponseException':
  16727      return new _util.UnexpectedResponseException(reason.message, reason.status);
  16728 
  16729    default:
  16730      return new _util.UnknownErrorException(reason.message, reason.details);
  16731  }
  16732 }
  16733 
  16734 function makeReasonSerializable(reason) {
  16735  if (!(reason instanceof Error) || reason instanceof _util.AbortException || reason instanceof _util.MissingPDFException || reason instanceof _util.UnexpectedResponseException || reason instanceof _util.UnknownErrorException) {
  16736    return reason;
  16737  }
  16738 
  16739  return new _util.UnknownErrorException(reason.message, reason.toString());
  16740 }
  16741 
  16742 function resolveOrReject(capability, success, reason) {
  16743  if (success) {
  16744    capability.resolve();
  16745  } else {
  16746    capability.reject(reason);
  16747  }
  16748 }
  16749 
  16750 function finalize(promise) {
  16751  return Promise.resolve(promise)["catch"](function () {});
  16752 }
  16753 
  16754 function MessageHandler(sourceName, targetName, comObj) {
  16755  var _this = this;
  16756 
  16757  this.sourceName = sourceName;
  16758  this.targetName = targetName;
  16759  this.comObj = comObj;
  16760  this.callbackId = 1;
  16761  this.streamId = 1;
  16762  this.postMessageTransfers = true;
  16763  this.streamSinks = Object.create(null);
  16764  this.streamControllers = Object.create(null);
  16765  var callbacksCapabilities = this.callbacksCapabilities = Object.create(null);
  16766  var ah = this.actionHandler = Object.create(null);
  16767 
  16768  this._onComObjOnMessage = function (event) {
  16769    var data = event.data;
  16770 
  16771    if (data.targetName !== _this.sourceName) {
  16772      return;
  16773    }
  16774 
  16775    if (data.stream) {
  16776      _this._processStreamMessage(data);
  16777    } else if (data.isReply) {
  16778      var callbackId = data.callbackId;
  16779 
  16780      if (data.callbackId in callbacksCapabilities) {
  16781        var callback = callbacksCapabilities[callbackId];
  16782        delete callbacksCapabilities[callbackId];
  16783 
  16784        if ('error' in data) {
  16785          callback.reject(wrapReason(data.error));
  16786        } else {
  16787          callback.resolve(data.data);
  16788        }
  16789      } else {
  16790        throw new Error("Cannot resolve callback ".concat(callbackId));
  16791      }
  16792    } else if (data.action in ah) {
  16793      var action = ah[data.action];
  16794 
  16795      if (data.callbackId) {
  16796        var _sourceName = _this.sourceName;
  16797        var _targetName = data.sourceName;
  16798        Promise.resolve().then(function () {
  16799          return action[0].call(action[1], data.data);
  16800        }).then(function (result) {
  16801          comObj.postMessage({
  16802            sourceName: _sourceName,
  16803            targetName: _targetName,
  16804            isReply: true,
  16805            callbackId: data.callbackId,
  16806            data: result
  16807          });
  16808        }, function (reason) {
  16809          comObj.postMessage({
  16810            sourceName: _sourceName,
  16811            targetName: _targetName,
  16812            isReply: true,
  16813            callbackId: data.callbackId,
  16814            error: makeReasonSerializable(reason)
  16815          });
  16816        });
  16817      } else if (data.streamId) {
  16818        _this._createStreamSink(data);
  16819      } else {
  16820        action[0].call(action[1], data.data);
  16821      }
  16822    } else {
  16823      throw new Error("Unknown action from worker: ".concat(data.action));
  16824    }
  16825  };
  16826 
  16827  comObj.addEventListener('message', this._onComObjOnMessage);
  16828 }
  16829 
  16830 MessageHandler.prototype = {
  16831  on: function on(actionName, handler, scope) {
  16832    var ah = this.actionHandler;
  16833 
  16834    if (ah[actionName]) {
  16835      throw new Error("There is already an actionName called \"".concat(actionName, "\""));
  16836    }
  16837 
  16838    ah[actionName] = [handler, scope];
  16839  },
  16840  send: function send(actionName, data, transfers) {
  16841    var message = {
  16842      sourceName: this.sourceName,
  16843      targetName: this.targetName,
  16844      action: actionName,
  16845      data: data
  16846    };
  16847    this.postMessage(message, transfers);
  16848  },
  16849  sendWithPromise: function sendWithPromise(actionName, data, transfers) {
  16850    var callbackId = this.callbackId++;
  16851    var message = {
  16852      sourceName: this.sourceName,
  16853      targetName: this.targetName,
  16854      action: actionName,
  16855      data: data,
  16856      callbackId: callbackId
  16857    };
  16858    var capability = (0, _util.createPromiseCapability)();
  16859    this.callbacksCapabilities[callbackId] = capability;
  16860 
  16861    try {
  16862      this.postMessage(message, transfers);
  16863    } catch (e) {
  16864      capability.reject(e);
  16865    }
  16866 
  16867    return capability.promise;
  16868  },
  16869  sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) {
  16870    var _this2 = this;
  16871 
  16872    var streamId = this.streamId++;
  16873    var sourceName = this.sourceName;
  16874    var targetName = this.targetName;
  16875    return new _util.ReadableStream({
  16876      start: function start(controller) {
  16877        var startCapability = (0, _util.createPromiseCapability)();
  16878        _this2.streamControllers[streamId] = {
  16879          controller: controller,
  16880          startCall: startCapability,
  16881          isClosed: false
  16882        };
  16883 
  16884        _this2.postMessage({
  16885          sourceName: sourceName,
  16886          targetName: targetName,
  16887          action: actionName,
  16888          streamId: streamId,
  16889          data: data,
  16890          desiredSize: controller.desiredSize
  16891        });
  16892 
  16893        return startCapability.promise;
  16894      },
  16895      pull: function pull(controller) {
  16896        var pullCapability = (0, _util.createPromiseCapability)();
  16897        _this2.streamControllers[streamId].pullCall = pullCapability;
  16898 
  16899        _this2.postMessage({
  16900          sourceName: sourceName,
  16901          targetName: targetName,
  16902          stream: 'pull',
  16903          streamId: streamId,
  16904          desiredSize: controller.desiredSize
  16905        });
  16906 
  16907        return pullCapability.promise;
  16908      },
  16909      cancel: function cancel(reason) {
  16910        var cancelCapability = (0, _util.createPromiseCapability)();
  16911        _this2.streamControllers[streamId].cancelCall = cancelCapability;
  16912        _this2.streamControllers[streamId].isClosed = true;
  16913 
  16914        _this2.postMessage({
  16915          sourceName: sourceName,
  16916          targetName: targetName,
  16917          stream: 'cancel',
  16918          reason: reason,
  16919          streamId: streamId
  16920        });
  16921 
  16922        return cancelCapability.promise;
  16923      }
  16924    }, queueingStrategy);
  16925  },
  16926  _createStreamSink: function _createStreamSink(data) {
  16927    var _this3 = this;
  16928 
  16929    var self = this;
  16930    var action = this.actionHandler[data.action];
  16931    var streamId = data.streamId;
  16932    var desiredSize = data.desiredSize;
  16933    var sourceName = this.sourceName;
  16934    var targetName = data.sourceName;
  16935    var capability = (0, _util.createPromiseCapability)();
  16936 
  16937    var sendStreamRequest = function sendStreamRequest(_ref) {
  16938      var stream = _ref.stream,
  16939          chunk = _ref.chunk,
  16940          transfers = _ref.transfers,
  16941          success = _ref.success,
  16942          reason = _ref.reason;
  16943 
  16944      _this3.postMessage({
  16945        sourceName: sourceName,
  16946        targetName: targetName,
  16947        stream: stream,
  16948        streamId: streamId,
  16949        chunk: chunk,
  16950        success: success,
  16951        reason: reason
  16952      }, transfers);
  16953    };
  16954 
  16955    var streamSink = {
  16956      enqueue: function enqueue(chunk) {
  16957        var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
  16958        var transfers = arguments.length > 2 ? arguments[2] : undefined;
  16959 
  16960        if (this.isCancelled) {
  16961          return;
  16962        }
  16963 
  16964        var lastDesiredSize = this.desiredSize;
  16965        this.desiredSize -= size;
  16966 
  16967        if (lastDesiredSize > 0 && this.desiredSize <= 0) {
  16968          this.sinkCapability = (0, _util.createPromiseCapability)();
  16969          this.ready = this.sinkCapability.promise;
  16970        }
  16971 
  16972        sendStreamRequest({
  16973          stream: 'enqueue',
  16974          chunk: chunk,
  16975          transfers: transfers
  16976        });
  16977      },
  16978      close: function close() {
  16979        if (this.isCancelled) {
  16980          return;
  16981        }
  16982 
  16983        this.isCancelled = true;
  16984        sendStreamRequest({
  16985          stream: 'close'
  16986        });
  16987        delete self.streamSinks[streamId];
  16988      },
  16989      error: function error(reason) {
  16990        if (this.isCancelled) {
  16991          return;
  16992        }
  16993 
  16994        this.isCancelled = true;
  16995        sendStreamRequest({
  16996          stream: 'error',
  16997          reason: reason
  16998        });
  16999      },
  17000      sinkCapability: capability,
  17001      onPull: null,
  17002      onCancel: null,
  17003      isCancelled: false,
  17004      desiredSize: desiredSize,
  17005      ready: null
  17006    };
  17007    streamSink.sinkCapability.resolve();
  17008    streamSink.ready = streamSink.sinkCapability.promise;
  17009    this.streamSinks[streamId] = streamSink;
  17010    resolveCall(action[0], [data.data, streamSink], action[1]).then(function () {
  17011      sendStreamRequest({
  17012        stream: 'start_complete',
  17013        success: true
  17014      });
  17015    }, function (reason) {
  17016      sendStreamRequest({
  17017        stream: 'start_complete',
  17018        success: false,
  17019        reason: reason
  17020      });
  17021    });
  17022  },
  17023  _processStreamMessage: function _processStreamMessage(data) {
  17024    var _this4 = this;
  17025 
  17026    var sourceName = this.sourceName;
  17027    var targetName = data.sourceName;
  17028    var streamId = data.streamId;
  17029 
  17030    var sendStreamResponse = function sendStreamResponse(_ref2) {
  17031      var stream = _ref2.stream,
  17032          success = _ref2.success,
  17033          reason = _ref2.reason;
  17034 
  17035      _this4.comObj.postMessage({
  17036        sourceName: sourceName,
  17037        targetName: targetName,
  17038        stream: stream,
  17039        success: success,
  17040        streamId: streamId,
  17041        reason: reason
  17042      });
  17043    };
  17044 
  17045    var deleteStreamController = function deleteStreamController() {
  17046      Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) {
  17047        return capability && finalize(capability.promise);
  17048      })).then(function () {
  17049        delete _this4.streamControllers[data.streamId];
  17050      });
  17051    };
  17052 
  17053    switch (data.stream) {
  17054      case 'start_complete':
  17055        resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason));
  17056        break;
  17057 
  17058      case 'pull_complete':
  17059        resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason));
  17060        break;
  17061 
  17062      case 'pull':
  17063        if (!this.streamSinks[data.streamId]) {
  17064          sendStreamResponse({
  17065            stream: 'pull_complete',
  17066            success: true
  17067          });
  17068          break;
  17069        }
  17070 
  17071        if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) {
  17072          this.streamSinks[data.streamId].sinkCapability.resolve();
  17073        }
  17074 
  17075        this.streamSinks[data.streamId].desiredSize = data.desiredSize;
  17076        resolveCall(this.streamSinks[data.streamId].onPull).then(function () {
  17077          sendStreamResponse({
  17078            stream: 'pull_complete',
  17079            success: true
  17080          });
  17081        }, function (reason) {
  17082          sendStreamResponse({
  17083            stream: 'pull_complete',
  17084            success: false,
  17085            reason: reason
  17086          });
  17087        });
  17088        break;
  17089 
  17090      case 'enqueue':
  17091        (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller');
  17092 
  17093        if (!this.streamControllers[data.streamId].isClosed) {
  17094          this.streamControllers[data.streamId].controller.enqueue(data.chunk);
  17095        }
  17096 
  17097        break;
  17098 
  17099      case 'close':
  17100        (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller');
  17101 
  17102        if (this.streamControllers[data.streamId].isClosed) {
  17103          break;
  17104        }
  17105 
  17106        this.streamControllers[data.streamId].isClosed = true;
  17107        this.streamControllers[data.streamId].controller.close();
  17108        deleteStreamController();
  17109        break;
  17110 
  17111      case 'error':
  17112        (0, _util.assert)(this.streamControllers[data.streamId], 'error should have stream controller');
  17113        this.streamControllers[data.streamId].controller.error(wrapReason(data.reason));
  17114        deleteStreamController();
  17115        break;
  17116 
  17117      case 'cancel_complete':
  17118        resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason));
  17119        deleteStreamController();
  17120        break;
  17121 
  17122      case 'cancel':
  17123        if (!this.streamSinks[data.streamId]) {
  17124          break;
  17125        }
  17126 
  17127        resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () {
  17128          sendStreamResponse({
  17129            stream: 'cancel_complete',
  17130            success: true
  17131          });
  17132        }, function (reason) {
  17133          sendStreamResponse({
  17134            stream: 'cancel_complete',
  17135            success: false,
  17136            reason: reason
  17137          });
  17138        });
  17139        this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason));
  17140        this.streamSinks[data.streamId].isCancelled = true;
  17141        delete this.streamSinks[data.streamId];
  17142        break;
  17143 
  17144      default:
  17145        throw new Error('Unexpected stream case');
  17146    }
  17147  },
  17148  postMessage: function postMessage(message, transfers) {
  17149    if (transfers && this.postMessageTransfers) {
  17150      this.comObj.postMessage(message, transfers);
  17151    } else {
  17152      this.comObj.postMessage(message);
  17153    }
  17154  },
  17155  destroy: function destroy() {
  17156    this.comObj.removeEventListener('message', this._onComObjOnMessage);
  17157  }
  17158 };
  17159 
  17160 /***/ }),
  17161 /* 158 */
  17162 /***/ (function(module, exports, __w_pdfjs_require__) {
  17163 
  17164 "use strict";
  17165 
  17166 
  17167 Object.defineProperty(exports, "__esModule", {
  17168  value: true
  17169 });
  17170 exports.Metadata = void 0;
  17171 
  17172 var _util = __w_pdfjs_require__(1);
  17173 
  17174 var _xml_parser = __w_pdfjs_require__(159);
  17175 
  17176 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  17177 
  17178 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
  17179 
  17180 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
  17181 
  17182 var Metadata =
  17183 /*#__PURE__*/
  17184 function () {
  17185  function Metadata(data) {
  17186    _classCallCheck(this, Metadata);
  17187 
  17188    (0, _util.assert)(typeof data === 'string', 'Metadata: input is not a string');
  17189    data = this._repair(data);
  17190    var parser = new _xml_parser.SimpleXMLParser();
  17191    var xmlDocument = parser.parseFromString(data);
  17192    this._metadata = Object.create(null);
  17193 
  17194    if (xmlDocument) {
  17195      this._parse(xmlDocument);
  17196    }
  17197  }
  17198 
  17199  _createClass(Metadata, [{
  17200    key: "_repair",
  17201    value: function _repair(data) {
  17202      return data.replace(/^([^<]+)/, '').replace(/>\\376\\377([^<]+)/g, function (all, codes) {
  17203        var bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {
  17204          return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);
  17205        }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {
  17206          switch (name) {
  17207            case 'amp':
  17208              return '&';
  17209 
  17210            case 'apos':
  17211              return '\'';
  17212 
  17213            case 'gt':
  17214              return '>';
  17215 
  17216            case 'lt':
  17217              return '<';
  17218 
  17219            case 'quot':
  17220              return '\"';
  17221          }
  17222 
  17223          throw new Error("_repair: ".concat(name, " isn't defined."));
  17224        });
  17225        var chars = '';
  17226 
  17227        for (var i = 0, ii = bytes.length; i < ii; i += 2) {
  17228          var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);
  17229 
  17230          if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) {
  17231            chars += String.fromCharCode(code);
  17232          } else {
  17233            chars += '&#x' + (0x10000 + code).toString(16).substring(1) + ';';
  17234          }
  17235        }
  17236 
  17237        return '>' + chars;
  17238      });
  17239    }
  17240  }, {
  17241    key: "_parse",
  17242    value: function _parse(xmlDocument) {
  17243      var rdf = xmlDocument.documentElement;
  17244 
  17245      if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') {
  17246        rdf = rdf.firstChild;
  17247 
  17248        while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') {
  17249          rdf = rdf.nextSibling;
  17250        }
  17251      }
  17252 
  17253      var nodeName = rdf ? rdf.nodeName.toLowerCase() : null;
  17254 
  17255      if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) {
  17256        return;
  17257      }
  17258 
  17259      var children = rdf.childNodes;
  17260 
  17261      for (var i = 0, ii = children.length; i < ii; i++) {
  17262        var desc = children[i];
  17263 
  17264        if (desc.nodeName.toLowerCase() !== 'rdf:description') {
  17265          continue;
  17266        }
  17267 
  17268        for (var j = 0, jj = desc.childNodes.length; j < jj; j++) {
  17269          if (desc.childNodes[j].nodeName.toLowerCase() !== '#text') {
  17270            var entry = desc.childNodes[j];
  17271            var name = entry.nodeName.toLowerCase();
  17272            this._metadata[name] = entry.textContent.trim();
  17273          }
  17274        }
  17275      }
  17276    }
  17277  }, {
  17278    key: "get",
  17279    value: function get(name) {
  17280      var data = this._metadata[name];
  17281      return typeof data !== 'undefined' ? data : null;
  17282    }
  17283  }, {
  17284    key: "getAll",
  17285    value: function getAll() {
  17286      return this._metadata;
  17287    }
  17288  }, {
  17289    key: "has",
  17290    value: function has(name) {
  17291      return typeof this._metadata[name] !== 'undefined';
  17292    }
  17293  }]);
  17294 
  17295  return Metadata;
  17296 }();
  17297 
  17298 exports.Metadata = Metadata;
  17299 
  17300 /***/ }),
  17301 /* 159 */
  17302 /***/ (function(module, exports, __w_pdfjs_require__) {
  17303 
  17304 "use strict";
  17305 
  17306 
  17307 Object.defineProperty(exports, "__esModule", {
  17308  value: true
  17309 });
  17310 exports.SimpleXMLParser = void 0;
  17311 
  17312 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
  17313 
  17314 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
  17315 
  17316 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
  17317 
  17318 function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
  17319 
  17320 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
  17321 
  17322 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
  17323 
  17324 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
  17325 
  17326 function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
  17327 
  17328 function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
  17329 
  17330 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
  17331 
  17332 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
  17333 
  17334 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
  17335 
  17336 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  17337 
  17338 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
  17339 
  17340 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
  17341 
  17342 var XMLParserErrorCode = {
  17343  NoError: 0,
  17344  EndOfDocument: -1,
  17345  UnterminatedCdat: -2,
  17346  UnterminatedXmlDeclaration: -3,
  17347  UnterminatedDoctypeDeclaration: -4,
  17348  UnterminatedComment: -5,
  17349  MalformedElement: -6,
  17350  OutOfMemory: -7,
  17351  UnterminatedAttributeValue: -8,
  17352  UnterminatedElement: -9,
  17353  ElementNeverBegun: -10
  17354 };
  17355 
  17356 function isWhitespace(s, index) {
  17357  var ch = s[index];
  17358  return ch === ' ' || ch === '\n' || ch === '\r' || ch === '\t';
  17359 }
  17360 
  17361 function isWhitespaceString(s) {
  17362  for (var i = 0, ii = s.length; i < ii; i++) {
  17363    if (!isWhitespace(s, i)) {
  17364      return false;
  17365    }
  17366  }
  17367 
  17368  return true;
  17369 }
  17370 
  17371 var XMLParserBase =
  17372 /*#__PURE__*/
  17373 function () {
  17374  function XMLParserBase() {
  17375    _classCallCheck(this, XMLParserBase);
  17376  }
  17377 
  17378  _createClass(XMLParserBase, [{
  17379    key: "_resolveEntities",
  17380    value: function _resolveEntities(s) {
  17381      var _this = this;
  17382 
  17383      return s.replace(/&([^;]+);/g, function (all, entity) {
  17384        if (entity.substring(0, 2) === '#x') {
  17385          return String.fromCharCode(parseInt(entity.substring(2), 16));
  17386        } else if (entity.substring(0, 1) === '#') {
  17387          return String.fromCharCode(parseInt(entity.substring(1), 10));
  17388        }
  17389 
  17390        switch (entity) {
  17391          case 'lt':
  17392            return '<';
  17393 
  17394          case 'gt':
  17395            return '>';
  17396 
  17397          case 'amp':
  17398            return '&';
  17399 
  17400          case 'quot':
  17401            return '\"';
  17402        }
  17403 
  17404        return _this.onResolveEntity(entity);
  17405      });
  17406    }
  17407  }, {
  17408    key: "_parseContent",
  17409    value: function _parseContent(s, start) {
  17410      var pos = start,
  17411          name,
  17412          attributes = [];
  17413 
  17414      function skipWs() {
  17415        while (pos < s.length && isWhitespace(s, pos)) {
  17416          ++pos;
  17417        }
  17418      }
  17419 
  17420      while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') {
  17421        ++pos;
  17422      }
  17423 
  17424      name = s.substring(start, pos);
  17425      skipWs();
  17426 
  17427      while (pos < s.length && s[pos] !== '>' && s[pos] !== '/' && s[pos] !== '?') {
  17428        skipWs();
  17429        var attrName = '',
  17430            attrValue = '';
  17431 
  17432        while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '=') {
  17433          attrName += s[pos];
  17434          ++pos;
  17435        }
  17436 
  17437        skipWs();
  17438 
  17439        if (s[pos] !== '=') {
  17440          return null;
  17441        }
  17442 
  17443        ++pos;
  17444        skipWs();
  17445        var attrEndChar = s[pos];
  17446 
  17447        if (attrEndChar !== '\"' && attrEndChar !== '\'') {
  17448          return null;
  17449        }
  17450 
  17451        var attrEndIndex = s.indexOf(attrEndChar, ++pos);
  17452 
  17453        if (attrEndIndex < 0) {
  17454          return null;
  17455        }
  17456 
  17457        attrValue = s.substring(pos, attrEndIndex);
  17458        attributes.push({
  17459          name: attrName,
  17460          value: this._resolveEntities(attrValue)
  17461        });
  17462        pos = attrEndIndex + 1;
  17463        skipWs();
  17464      }
  17465 
  17466      return {
  17467        name: name,
  17468        attributes: attributes,
  17469        parsed: pos - start
  17470      };
  17471    }
  17472  }, {
  17473    key: "_parseProcessingInstruction",
  17474    value: function _parseProcessingInstruction(s, start) {
  17475      var pos = start,
  17476          name,
  17477          value;
  17478 
  17479      function skipWs() {
  17480        while (pos < s.length && isWhitespace(s, pos)) {
  17481          ++pos;
  17482        }
  17483      }
  17484 
  17485      while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') {
  17486        ++pos;
  17487      }
  17488 
  17489      name = s.substring(start, pos);
  17490      skipWs();
  17491      var attrStart = pos;
  17492 
  17493      while (pos < s.length && (s[pos] !== '?' || s[pos + 1] !== '>')) {
  17494        ++pos;
  17495      }
  17496 
  17497      value = s.substring(attrStart, pos);
  17498      return {
  17499        name: name,
  17500        value: value,
  17501        parsed: pos - start
  17502      };
  17503    }
  17504  }, {
  17505    key: "parseXml",
  17506    value: function parseXml(s) {
  17507      var i = 0;
  17508 
  17509      while (i < s.length) {
  17510        var ch = s[i];
  17511        var j = i;
  17512 
  17513        if (ch === '<') {
  17514          ++j;
  17515          var ch2 = s[j];
  17516          var q = void 0;
  17517 
  17518          switch (ch2) {
  17519            case '/':
  17520              ++j;
  17521              q = s.indexOf('>', j);
  17522 
  17523              if (q < 0) {
  17524                this.onError(XMLParserErrorCode.UnterminatedElement);
  17525                return;
  17526              }
  17527 
  17528              this.onEndElement(s.substring(j, q));
  17529              j = q + 1;
  17530              break;
  17531 
  17532            case '?':
  17533              ++j;
  17534 
  17535              var pi = this._parseProcessingInstruction(s, j);
  17536 
  17537              if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== '?>') {
  17538                this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);
  17539                return;
  17540              }
  17541 
  17542              this.onPi(pi.name, pi.value);
  17543              j += pi.parsed + 2;
  17544              break;
  17545 
  17546            case '!':
  17547              if (s.substring(j + 1, j + 3) === '--') {
  17548                q = s.indexOf('-->', j + 3);
  17549 
  17550                if (q < 0) {
  17551                  this.onError(XMLParserErrorCode.UnterminatedComment);
  17552                  return;
  17553                }
  17554 
  17555                this.onComment(s.substring(j + 3, q));
  17556                j = q + 3;
  17557              } else if (s.substring(j + 1, j + 8) === '[CDATA[') {
  17558                q = s.indexOf(']]>', j + 8);
  17559 
  17560                if (q < 0) {
  17561                  this.onError(XMLParserErrorCode.UnterminatedCdat);
  17562                  return;
  17563                }
  17564 
  17565                this.onCdata(s.substring(j + 8, q));
  17566                j = q + 3;
  17567              } else if (s.substring(j + 1, j + 8) === 'DOCTYPE') {
  17568                var q2 = s.indexOf('[', j + 8);
  17569                var complexDoctype = false;
  17570                q = s.indexOf('>', j + 8);
  17571 
  17572                if (q < 0) {
  17573                  this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);
  17574                  return;
  17575                }
  17576 
  17577                if (q2 > 0 && q > q2) {
  17578                  q = s.indexOf(']>', j + 8);
  17579 
  17580                  if (q < 0) {
  17581                    this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);
  17582                    return;
  17583                  }
  17584 
  17585                  complexDoctype = true;
  17586                }
  17587 
  17588                var doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0));
  17589                this.onDoctype(doctypeContent);
  17590                j = q + (complexDoctype ? 2 : 1);
  17591              } else {
  17592                this.onError(XMLParserErrorCode.MalformedElement);
  17593                return;
  17594              }
  17595 
  17596              break;
  17597 
  17598            default:
  17599              var content = this._parseContent(s, j);
  17600 
  17601              if (content === null) {
  17602                this.onError(XMLParserErrorCode.MalformedElement);
  17603                return;
  17604              }
  17605 
  17606              var isClosed = false;
  17607 
  17608              if (s.substring(j + content.parsed, j + content.parsed + 2) === '/>') {
  17609                isClosed = true;
  17610              } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== '>') {
  17611                this.onError(XMLParserErrorCode.UnterminatedElement);
  17612                return;
  17613              }
  17614 
  17615              this.onBeginElement(content.name, content.attributes, isClosed);
  17616              j += content.parsed + (isClosed ? 2 : 1);
  17617              break;
  17618          }
  17619        } else {
  17620          while (j < s.length && s[j] !== '<') {
  17621            j++;
  17622          }
  17623 
  17624          var text = s.substring(i, j);
  17625          this.onText(this._resolveEntities(text));
  17626        }
  17627 
  17628        i = j;
  17629      }
  17630    }
  17631  }, {
  17632    key: "onResolveEntity",
  17633    value: function onResolveEntity(name) {
  17634      return "&".concat(name, ";");
  17635    }
  17636  }, {
  17637    key: "onPi",
  17638    value: function onPi(name, value) {}
  17639  }, {
  17640    key: "onComment",
  17641    value: function onComment(text) {}
  17642  }, {
  17643    key: "onCdata",
  17644    value: function onCdata(text) {}
  17645  }, {
  17646    key: "onDoctype",
  17647    value: function onDoctype(doctypeContent) {}
  17648  }, {
  17649    key: "onText",
  17650    value: function onText(text) {}
  17651  }, {
  17652    key: "onBeginElement",
  17653    value: function onBeginElement(name, attributes, isEmpty) {}
  17654  }, {
  17655    key: "onEndElement",
  17656    value: function onEndElement(name) {}
  17657  }, {
  17658    key: "onError",
  17659    value: function onError(code) {}
  17660  }]);
  17661 
  17662  return XMLParserBase;
  17663 }();
  17664 
  17665 var SimpleDOMNode =
  17666 /*#__PURE__*/
  17667 function () {
  17668  function SimpleDOMNode(nodeName, nodeValue) {
  17669    _classCallCheck(this, SimpleDOMNode);
  17670 
  17671    this.nodeName = nodeName;
  17672    this.nodeValue = nodeValue;
  17673    Object.defineProperty(this, 'parentNode', {
  17674      value: null,
  17675      writable: true
  17676    });
  17677  }
  17678 
  17679  _createClass(SimpleDOMNode, [{
  17680    key: "hasChildNodes",
  17681    value: function hasChildNodes() {
  17682      return this.childNodes && this.childNodes.length > 0;
  17683    }
  17684  }, {
  17685    key: "firstChild",
  17686    get: function get() {
  17687      return this.childNodes && this.childNodes[0];
  17688    }
  17689  }, {
  17690    key: "nextSibling",
  17691    get: function get() {
  17692      var childNodes = this.parentNode.childNodes;
  17693 
  17694      if (!childNodes) {
  17695        return undefined;
  17696      }
  17697 
  17698      var index = childNodes.indexOf(this);
  17699 
  17700      if (index === -1) {
  17701        return undefined;
  17702      }
  17703 
  17704      return childNodes[index + 1];
  17705    }
  17706  }, {
  17707    key: "textContent",
  17708    get: function get() {
  17709      if (!this.childNodes) {
  17710        return this.nodeValue || '';
  17711      }
  17712 
  17713      return this.childNodes.map(function (child) {
  17714        return child.textContent;
  17715      }).join('');
  17716    }
  17717  }]);
  17718 
  17719  return SimpleDOMNode;
  17720 }();
  17721 
  17722 var SimpleXMLParser =
  17723 /*#__PURE__*/
  17724 function (_XMLParserBase) {
  17725  _inherits(SimpleXMLParser, _XMLParserBase);
  17726 
  17727  function SimpleXMLParser() {
  17728    var _this2;
  17729 
  17730    _classCallCheck(this, SimpleXMLParser);
  17731 
  17732    _this2 = _possibleConstructorReturn(this, _getPrototypeOf(SimpleXMLParser).call(this));
  17733    _this2._currentFragment = null;
  17734    _this2._stack = null;
  17735    _this2._errorCode = XMLParserErrorCode.NoError;
  17736    return _this2;
  17737  }
  17738 
  17739  _createClass(SimpleXMLParser, [{
  17740    key: "parseFromString",
  17741    value: function parseFromString(data) {
  17742      this._currentFragment = [];
  17743      this._stack = [];
  17744      this._errorCode = XMLParserErrorCode.NoError;
  17745      this.parseXml(data);
  17746 
  17747      if (this._errorCode !== XMLParserErrorCode.NoError) {
  17748        return undefined;
  17749      }
  17750 
  17751      var _this$_currentFragmen = _slicedToArray(this._currentFragment, 1),
  17752          documentElement = _this$_currentFragmen[0];
  17753 
  17754      if (!documentElement) {
  17755        return undefined;
  17756      }
  17757 
  17758      return {
  17759        documentElement: documentElement
  17760      };
  17761    }
  17762  }, {
  17763    key: "onResolveEntity",
  17764    value: function onResolveEntity(name) {
  17765      switch (name) {
  17766        case 'apos':
  17767          return '\'';
  17768      }
  17769 
  17770      return _get(_getPrototypeOf(SimpleXMLParser.prototype), "onResolveEntity", this).call(this, name);
  17771    }
  17772  }, {
  17773    key: "onText",
  17774    value: function onText(text) {
  17775      if (isWhitespaceString(text)) {
  17776        return;
  17777      }
  17778 
  17779      var node = new SimpleDOMNode('#text', text);
  17780 
  17781      this._currentFragment.push(node);
  17782    }
  17783  }, {
  17784    key: "onCdata",
  17785    value: function onCdata(text) {
  17786      var node = new SimpleDOMNode('#text', text);
  17787 
  17788      this._currentFragment.push(node);
  17789    }
  17790  }, {
  17791    key: "onBeginElement",
  17792    value: function onBeginElement(name, attributes, isEmpty) {
  17793      var node = new SimpleDOMNode(name);
  17794      node.childNodes = [];
  17795 
  17796      this._currentFragment.push(node);
  17797 
  17798      if (isEmpty) {
  17799        return;
  17800      }
  17801 
  17802      this._stack.push(this._currentFragment);
  17803 
  17804      this._currentFragment = node.childNodes;
  17805    }
  17806  }, {
  17807    key: "onEndElement",
  17808    value: function onEndElement(name) {
  17809      this._currentFragment = this._stack.pop() || [];
  17810      var lastElement = this._currentFragment[this._currentFragment.length - 1];
  17811 
  17812      if (!lastElement) {
  17813        return;
  17814      }
  17815 
  17816      for (var i = 0, ii = lastElement.childNodes.length; i < ii; i++) {
  17817        lastElement.childNodes[i].parentNode = lastElement;
  17818      }
  17819    }
  17820  }, {
  17821    key: "onError",
  17822    value: function onError(code) {
  17823      this._errorCode = code;
  17824    }
  17825  }]);
  17826 
  17827  return SimpleXMLParser;
  17828 }(XMLParserBase);
  17829 
  17830 exports.SimpleXMLParser = SimpleXMLParser;
  17831 
  17832 /***/ }),
  17833 /* 160 */
  17834 /***/ (function(module, exports, __w_pdfjs_require__) {
  17835 
  17836 "use strict";
  17837 
  17838 
  17839 Object.defineProperty(exports, "__esModule", {
  17840  value: true
  17841 });
  17842 exports.PDFDataTransportStream = void 0;
  17843 
  17844 var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148));
  17845 
  17846 var _util = __w_pdfjs_require__(1);
  17847 
  17848 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  17849 
  17850 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
  17851 
  17852 function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
  17853 
  17854 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  17855 
  17856 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
  17857 
  17858 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
  17859 
  17860 var PDFDataTransportStream =
  17861 /*#__PURE__*/
  17862 function () {
  17863  function PDFDataTransportStream(params, pdfDataRangeTransport) {
  17864    var _this = this;
  17865 
  17866    _classCallCheck(this, PDFDataTransportStream);
  17867 
  17868    (0, _util.assert)(pdfDataRangeTransport);
  17869    this._queuedChunks = [];
  17870    this._progressiveDone = params.progressiveDone || false;
  17871    var initialData = params.initialData;
  17872 
  17873    if (initialData && initialData.length > 0) {
  17874      var buffer = new Uint8Array(initialData).buffer;
  17875 
  17876      this._queuedChunks.push(buffer);
  17877    }
  17878 
  17879    this._pdfDataRangeTransport = pdfDataRangeTransport;
  17880    this._isStreamingSupported = !params.disableStream;
  17881    this._isRangeSupported = !params.disableRange;
  17882    this._contentLength = params.length;
  17883    this._fullRequestReader = null;
  17884    this._rangeReaders = [];
  17885 
  17886    this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) {
  17887      _this._onReceiveData({
  17888        begin: begin,
  17889        chunk: chunk
  17890      });
  17891    });
  17892 
  17893    this._pdfDataRangeTransport.addProgressListener(function (loaded, total) {
  17894      _this._onProgress({
  17895        loaded: loaded,
  17896        total: total
  17897      });
  17898    });
  17899 
  17900    this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) {
  17901      _this._onReceiveData({
  17902        chunk: chunk
  17903      });
  17904    });
  17905 
  17906    this._pdfDataRangeTransport.addProgressiveDoneListener(function () {
  17907      _this._onProgressiveDone();
  17908    });
  17909 
  17910    this._pdfDataRangeTransport.transportReady();
  17911  }
  17912 
  17913  _createClass(PDFDataTransportStream, [{
  17914    key: "_onReceiveData",
  17915    value: function _onReceiveData(args) {
  17916      var buffer = new Uint8Array(args.chunk).buffer;
  17917 
  17918      if (args.begin === undefined) {
  17919        if (this._fullRequestReader) {
  17920          this._fullRequestReader._enqueue(buffer);
  17921        } else {
  17922          this._queuedChunks.push(buffer);
  17923        }
  17924      } else {
  17925        var found = this._rangeReaders.some(function (rangeReader) {
  17926          if (rangeReader._begin !== args.begin) {
  17927            return false;
  17928          }
  17929 
  17930          rangeReader._enqueue(buffer);
  17931 
  17932          return true;
  17933        });
  17934 
  17935        (0, _util.assert)(found);
  17936      }
  17937    }
  17938  }, {
  17939    key: "_onProgress",
  17940    value: function _onProgress(evt) {
  17941      if (evt.total === undefined) {
  17942        var firstReader = this._rangeReaders[0];
  17943 
  17944        if (firstReader && firstReader.onProgress) {
  17945          firstReader.onProgress({
  17946            loaded: evt.loaded
  17947          });
  17948        }
  17949      } else {
  17950        var fullReader = this._fullRequestReader;
  17951 
  17952        if (fullReader && fullReader.onProgress) {
  17953          fullReader.onProgress({
  17954            loaded: evt.loaded,
  17955            total: evt.total
  17956          });
  17957        }
  17958      }
  17959    }
  17960  }, {
  17961    key: "_onProgressiveDone",
  17962    value: function _onProgressiveDone() {
  17963      if (this._fullRequestReader) {
  17964        this._fullRequestReader.progressiveDone();
  17965      }
  17966 
  17967      this._progressiveDone = true;
  17968    }
  17969  }, {
  17970    key: "_removeRangeReader",
  17971    value: function _removeRangeReader(reader) {
  17972      var i = this._rangeReaders.indexOf(reader);
  17973 
  17974      if (i >= 0) {
  17975        this._rangeReaders.splice(i, 1);
  17976      }
  17977    }
  17978  }, {
  17979    key: "getFullReader",
  17980    value: function getFullReader() {
  17981      (0, _util.assert)(!this._fullRequestReader);
  17982      var queuedChunks = this._queuedChunks;
  17983      this._queuedChunks = null;
  17984      return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone);
  17985    }
  17986  }, {
  17987    key: "getRangeReader",
  17988    value: function getRangeReader(begin, end) {
  17989      if (end <= this._progressiveDataLength) {
  17990        return null;
  17991      }
  17992 
  17993      var reader = new PDFDataTransportStreamRangeReader(this, begin, end);
  17994 
  17995      this._pdfDataRangeTransport.requestDataRange(begin, end);
  17996 
  17997      this._rangeReaders.push(reader);
  17998 
  17999      return reader;
  18000    }
  18001  }, {
  18002    key: "cancelAllRequests",
  18003    value: function cancelAllRequests(reason) {
  18004      if (this._fullRequestReader) {
  18005        this._fullRequestReader.cancel(reason);
  18006      }
  18007 
  18008      var readers = this._rangeReaders.slice(0);
  18009 
  18010      readers.forEach(function (rangeReader) {
  18011        rangeReader.cancel(reason);
  18012      });
  18013 
  18014      this._pdfDataRangeTransport.abort();
  18015    }
  18016  }, {
  18017    key: "_progressiveDataLength",
  18018    get: function get() {
  18019      return this._fullRequestReader ? this._fullRequestReader._loaded : 0;
  18020    }
  18021  }]);
  18022 
  18023  return PDFDataTransportStream;
  18024 }();
  18025 
  18026 exports.PDFDataTransportStream = PDFDataTransportStream;
  18027 
  18028 var PDFDataTransportStreamReader =
  18029 /*#__PURE__*/
  18030 function () {
  18031  function PDFDataTransportStreamReader(stream, queuedChunks) {
  18032    var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
  18033 
  18034    _classCallCheck(this, PDFDataTransportStreamReader);
  18035 
  18036    this._stream = stream;
  18037    this._done = progressiveDone || false;
  18038    this._filename = null;
  18039    this._queuedChunks = queuedChunks || [];
  18040    this._loaded = 0;
  18041    var _iteratorNormalCompletion = true;
  18042    var _didIteratorError = false;
  18043    var _iteratorError = undefined;
  18044 
  18045    try {
  18046      for (var _iterator = this._queuedChunks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  18047        var chunk = _step.value;
  18048        this._loaded += chunk.byteLength;
  18049      }
  18050    } catch (err) {
  18051      _didIteratorError = true;
  18052      _iteratorError = err;
  18053    } finally {
  18054      try {
  18055        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
  18056          _iterator["return"]();
  18057        }
  18058      } finally {
  18059        if (_didIteratorError) {
  18060          throw _iteratorError;
  18061        }
  18062      }
  18063    }
  18064 
  18065    this._requests = [];
  18066    this._headersReady = Promise.resolve();
  18067    stream._fullRequestReader = this;
  18068    this.onProgress = null;
  18069  }
  18070 
  18071  _createClass(PDFDataTransportStreamReader, [{
  18072    key: "_enqueue",
  18073    value: function _enqueue(chunk) {
  18074      if (this._done) {
  18075        return;
  18076      }
  18077 
  18078      if (this._requests.length > 0) {
  18079        var requestCapability = this._requests.shift();
  18080 
  18081        requestCapability.resolve({
  18082          value: chunk,
  18083          done: false
  18084        });
  18085      } else {
  18086        this._queuedChunks.push(chunk);
  18087      }
  18088 
  18089      this._loaded += chunk.byteLength;
  18090    }
  18091  }, {
  18092    key: "read",
  18093    value: function () {
  18094      var _read = _asyncToGenerator(
  18095      /*#__PURE__*/
  18096      _regenerator["default"].mark(function _callee() {
  18097        var chunk, requestCapability;
  18098        return _regenerator["default"].wrap(function _callee$(_context) {
  18099          while (1) {
  18100            switch (_context.prev = _context.next) {
  18101              case 0:
  18102                if (!(this._queuedChunks.length > 0)) {
  18103                  _context.next = 3;
  18104                  break;
  18105                }
  18106 
  18107                chunk = this._queuedChunks.shift();
  18108                return _context.abrupt("return", {
  18109                  value: chunk,
  18110                  done: false
  18111                });
  18112 
  18113              case 3:
  18114                if (!this._done) {
  18115                  _context.next = 5;
  18116                  break;
  18117                }
  18118 
  18119                return _context.abrupt("return", {
  18120                  value: undefined,
  18121                  done: true
  18122                });
  18123 
  18124              case 5:
  18125                requestCapability = (0, _util.createPromiseCapability)();
  18126 
  18127                this._requests.push(requestCapability);
  18128 
  18129                return _context.abrupt("return", requestCapability.promise);
  18130 
  18131              case 8:
  18132              case "end":
  18133                return _context.stop();
  18134            }
  18135          }
  18136        }, _callee, this);
  18137      }));
  18138 
  18139      function read() {
  18140        return _read.apply(this, arguments);
  18141      }
  18142 
  18143      return read;
  18144    }()
  18145  }, {
  18146    key: "cancel",
  18147    value: function cancel(reason) {
  18148      this._done = true;
  18149 
  18150      this._requests.forEach(function (requestCapability) {
  18151        requestCapability.resolve({
  18152          value: undefined,
  18153          done: true
  18154        });
  18155      });
  18156 
  18157      this._requests = [];
  18158    }
  18159  }, {
  18160    key: "progressiveDone",
  18161    value: function progressiveDone() {
  18162      if (this._done) {
  18163        return;
  18164      }
  18165 
  18166      this._done = true;
  18167    }
  18168  }, {
  18169    key: "headersReady",
  18170    get: function get() {
  18171      return this._headersReady;
  18172    }
  18173  }, {
  18174    key: "filename",
  18175    get: function get() {
  18176      return this._filename;
  18177    }
  18178  }, {
  18179    key: "isRangeSupported",
  18180    get: function get() {
  18181      return this._stream._isRangeSupported;
  18182    }
  18183  }, {
  18184    key: "isStreamingSupported",
  18185    get: function get() {
  18186      return this._stream._isStreamingSupported;
  18187    }
  18188  }, {
  18189    key: "contentLength",
  18190    get: function get() {
  18191      return this._stream._contentLength;
  18192    }
  18193  }]);
  18194 
  18195  return PDFDataTransportStreamReader;
  18196 }();
  18197 
  18198 var PDFDataTransportStreamRangeReader =
  18199 /*#__PURE__*/
  18200 function () {
  18201  function PDFDataTransportStreamRangeReader(stream, begin, end) {
  18202    _classCallCheck(this, PDFDataTransportStreamRangeReader);
  18203 
  18204    this._stream = stream;
  18205    this._begin = begin;
  18206    this._end = end;
  18207    this._queuedChunk = null;
  18208    this._requests = [];
  18209    this._done = false;
  18210    this.onProgress = null;
  18211  }
  18212 
  18213  _createClass(PDFDataTransportStreamRangeReader, [{
  18214    key: "_enqueue",
  18215    value: function _enqueue(chunk) {
  18216      if (this._done) {
  18217        return;
  18218      }
  18219 
  18220      if (this._requests.length === 0) {
  18221        this._queuedChunk = chunk;
  18222      } else {
  18223        var requestsCapability = this._requests.shift();
  18224 
  18225        requestsCapability.resolve({
  18226          value: chunk,
  18227          done: false
  18228        });
  18229 
  18230        this._requests.forEach(function (requestCapability) {
  18231          requestCapability.resolve({
  18232            value: undefined,
  18233            done: true
  18234          });
  18235        });
  18236 
  18237        this._requests = [];
  18238      }
  18239 
  18240      this._done = true;
  18241 
  18242      this._stream._removeRangeReader(this);
  18243    }
  18244  }, {
  18245    key: "read",
  18246    value: function () {
  18247      var _read2 = _asyncToGenerator(
  18248      /*#__PURE__*/
  18249      _regenerator["default"].mark(function _callee2() {
  18250        var chunk, requestCapability;
  18251        return _regenerator["default"].wrap(function _callee2$(_context2) {
  18252          while (1) {
  18253            switch (_context2.prev = _context2.next) {
  18254              case 0:
  18255                if (!this._queuedChunk) {
  18256                  _context2.next = 4;
  18257                  break;
  18258                }
  18259 
  18260                chunk = this._queuedChunk;
  18261                this._queuedChunk = null;
  18262                return _context2.abrupt("return", {
  18263                  value: chunk,
  18264                  done: false
  18265                });
  18266 
  18267              case 4:
  18268                if (!this._done) {
  18269                  _context2.next = 6;
  18270                  break;
  18271                }
  18272 
  18273                return _context2.abrupt("return", {
  18274                  value: undefined,
  18275                  done: true
  18276                });
  18277 
  18278              case 6:
  18279                requestCapability = (0, _util.createPromiseCapability)();
  18280 
  18281                this._requests.push(requestCapability);
  18282 
  18283                return _context2.abrupt("return", requestCapability.promise);
  18284 
  18285              case 9:
  18286              case "end":
  18287                return _context2.stop();
  18288            }
  18289          }
  18290        }, _callee2, this);
  18291      }));
  18292 
  18293      function read() {
  18294        return _read2.apply(this, arguments);
  18295      }
  18296 
  18297      return read;
  18298    }()
  18299  }, {
  18300    key: "cancel",
  18301    value: function cancel(reason) {
  18302      this._done = true;
  18303 
  18304      this._requests.forEach(function (requestCapability) {
  18305        requestCapability.resolve({
  18306          value: undefined,
  18307          done: true
  18308        });
  18309      });
  18310 
  18311      this._requests = [];
  18312 
  18313      this._stream._removeRangeReader(this);
  18314    }
  18315  }, {
  18316    key: "isStreamingSupported",
  18317    get: function get() {
  18318      return false;
  18319    }
  18320  }]);
  18321 
  18322  return PDFDataTransportStreamRangeReader;
  18323 }();
  18324 
  18325 /***/ }),
  18326 /* 161 */
  18327 /***/ (function(module, exports, __w_pdfjs_require__) {
  18328 
  18329 "use strict";
  18330 
  18331 
  18332 Object.defineProperty(exports, "__esModule", {
  18333  value: true
  18334 });
  18335 exports.WebGLContext = void 0;
  18336 
  18337 var _util = __w_pdfjs_require__(1);
  18338 
  18339 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  18340 
  18341 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
  18342 
  18343 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
  18344 
  18345 var WebGLContext =
  18346 /*#__PURE__*/
  18347 function () {
  18348  function WebGLContext(_ref) {
  18349    var _ref$enable = _ref.enable,
  18350        enable = _ref$enable === void 0 ? false : _ref$enable;
  18351 
  18352    _classCallCheck(this, WebGLContext);
  18353 
  18354    this._enabled = enable === true;
  18355  }
  18356 
  18357  _createClass(WebGLContext, [{
  18358    key: "composeSMask",
  18359    value: function composeSMask(_ref2) {
  18360      var layer = _ref2.layer,
  18361          mask = _ref2.mask,
  18362          properties = _ref2.properties;
  18363      return WebGLUtils.composeSMask(layer, mask, properties);
  18364    }
  18365  }, {
  18366    key: "drawFigures",
  18367    value: function drawFigures(_ref3) {
  18368      var width = _ref3.width,
  18369          height = _ref3.height,
  18370          backgroundColor = _ref3.backgroundColor,
  18371          figures = _ref3.figures,
  18372          context = _ref3.context;
  18373      return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context);
  18374    }
  18375  }, {
  18376    key: "clear",
  18377    value: function clear() {
  18378      WebGLUtils.cleanup();
  18379    }
  18380  }, {
  18381    key: "isEnabled",
  18382    get: function get() {
  18383      var enabled = this._enabled;
  18384 
  18385      if (enabled) {
  18386        enabled = WebGLUtils.tryInitGL();
  18387      }
  18388 
  18389      return (0, _util.shadow)(this, 'isEnabled', enabled);
  18390    }
  18391  }]);
  18392 
  18393  return WebGLContext;
  18394 }();
  18395 
  18396 exports.WebGLContext = WebGLContext;
  18397 
  18398 var WebGLUtils = function WebGLUtilsClosure() {
  18399  function loadShader(gl, code, shaderType) {
  18400    var shader = gl.createShader(shaderType);
  18401    gl.shaderSource(shader, code);
  18402    gl.compileShader(shader);
  18403    var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
  18404 
  18405    if (!compiled) {
  18406      var errorMsg = gl.getShaderInfoLog(shader);
  18407      throw new Error('Error during shader compilation: ' + errorMsg);
  18408    }
  18409 
  18410    return shader;
  18411  }
  18412 
  18413  function createVertexShader(gl, code) {
  18414    return loadShader(gl, code, gl.VERTEX_SHADER);
  18415  }
  18416 
  18417  function createFragmentShader(gl, code) {
  18418    return loadShader(gl, code, gl.FRAGMENT_SHADER);
  18419  }
  18420 
  18421  function createProgram(gl, shaders) {
  18422    var program = gl.createProgram();
  18423 
  18424    for (var i = 0, ii = shaders.length; i < ii; ++i) {
  18425      gl.attachShader(program, shaders[i]);
  18426    }
  18427 
  18428    gl.linkProgram(program);
  18429    var linked = gl.getProgramParameter(program, gl.LINK_STATUS);
  18430 
  18431    if (!linked) {
  18432      var errorMsg = gl.getProgramInfoLog(program);
  18433      throw new Error('Error during program linking: ' + errorMsg);
  18434    }
  18435 
  18436    return program;
  18437  }
  18438 
  18439  function createTexture(gl, image, textureId) {
  18440    gl.activeTexture(textureId);
  18441    var texture = gl.createTexture();
  18442    gl.bindTexture(gl.TEXTURE_2D, texture);
  18443    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
  18444    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
  18445    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
  18446    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
  18447    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
  18448    return texture;
  18449  }
  18450 
  18451  var currentGL, currentCanvas;
  18452 
  18453  function generateGL() {
  18454    if (currentGL) {
  18455      return;
  18456    }
  18457 
  18458    currentCanvas = document.createElement('canvas');
  18459    currentGL = currentCanvas.getContext('webgl', {
  18460      premultipliedalpha: false
  18461    });
  18462  }
  18463 
  18464  var smaskVertexShaderCode = '\
  18465  attribute vec2 a_position;                                    \
  18466  attribute vec2 a_texCoord;                                    \
  18467                                                                \
  18468  uniform vec2 u_resolution;                                    \
  18469                                                                \
  18470  varying vec2 v_texCoord;                                      \
  18471                                                                \
  18472  void main() {                                                 \
  18473    vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0;   \
  18474    gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);          \
  18475                                                                \
  18476    v_texCoord = a_texCoord;                                    \
  18477  }                                                             ';
  18478  var smaskFragmentShaderCode = '\
  18479  precision mediump float;                                      \
  18480                                                                \
  18481  uniform vec4 u_backdrop;                                      \
  18482  uniform int u_subtype;                                        \
  18483  uniform sampler2D u_image;                                    \
  18484  uniform sampler2D u_mask;                                     \
  18485                                                                \
  18486  varying vec2 v_texCoord;                                      \
  18487                                                                \
  18488  void main() {                                                 \
  18489    vec4 imageColor = texture2D(u_image, v_texCoord);           \
  18490    vec4 maskColor = texture2D(u_mask, v_texCoord);             \
  18491    if (u_backdrop.a > 0.0) {                                   \
  18492      maskColor.rgb = maskColor.rgb * maskColor.a +             \
  18493                      u_backdrop.rgb * (1.0 - maskColor.a);     \
  18494    }                                                           \
  18495    float lum;                                                  \
  18496    if (u_subtype == 0) {                                       \
  18497      lum = maskColor.a;                                        \
  18498    } else {                                                    \
  18499      lum = maskColor.r * 0.3 + maskColor.g * 0.59 +            \
  18500            maskColor.b * 0.11;                                 \
  18501    }                                                           \
  18502    imageColor.a *= lum;                                        \
  18503    imageColor.rgb *= imageColor.a;                             \
  18504    gl_FragColor = imageColor;                                  \
  18505  }                                                             ';
  18506  var smaskCache = null;
  18507 
  18508  function initSmaskGL() {
  18509    var canvas, gl;
  18510    generateGL();
  18511    canvas = currentCanvas;
  18512    currentCanvas = null;
  18513    gl = currentGL;
  18514    currentGL = null;
  18515    var vertexShader = createVertexShader(gl, smaskVertexShaderCode);
  18516    var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode);
  18517    var program = createProgram(gl, [vertexShader, fragmentShader]);
  18518    gl.useProgram(program);
  18519    var cache = {};
  18520    cache.gl = gl;
  18521    cache.canvas = canvas;
  18522    cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution');
  18523    cache.positionLocation = gl.getAttribLocation(program, 'a_position');
  18524    cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop');
  18525    cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype');
  18526    var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord');
  18527    var texLayerLocation = gl.getUniformLocation(program, 'u_image');
  18528    var texMaskLocation = gl.getUniformLocation(program, 'u_mask');
  18529    var texCoordBuffer = gl.createBuffer();
  18530    gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);
  18531    gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0]), gl.STATIC_DRAW);
  18532    gl.enableVertexAttribArray(texCoordLocation);
  18533    gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);
  18534    gl.uniform1i(texLayerLocation, 0);
  18535    gl.uniform1i(texMaskLocation, 1);
  18536    smaskCache = cache;
  18537  }
  18538 
  18539  function composeSMask(layer, mask, properties) {
  18540    var width = layer.width,
  18541        height = layer.height;
  18542 
  18543    if (!smaskCache) {
  18544      initSmaskGL();
  18545    }
  18546 
  18547    var cache = smaskCache,
  18548        canvas = cache.canvas,
  18549        gl = cache.gl;
  18550    canvas.width = width;
  18551    canvas.height = height;
  18552    gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
  18553    gl.uniform2f(cache.resolutionLocation, width, height);
  18554 
  18555    if (properties.backdrop) {
  18556      gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1);
  18557    } else {
  18558      gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);
  18559    }
  18560 
  18561    gl.uniform1i(cache.subtypeLocation, properties.subtype === 'Luminosity' ? 1 : 0);
  18562    var texture = createTexture(gl, layer, gl.TEXTURE0);
  18563    var maskTexture = createTexture(gl, mask, gl.TEXTURE1);
  18564    var buffer = gl.createBuffer();
  18565    gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
  18566    gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW);
  18567    gl.enableVertexAttribArray(cache.positionLocation);
  18568    gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);
  18569    gl.clearColor(0, 0, 0, 0);
  18570    gl.enable(gl.BLEND);
  18571    gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
  18572    gl.clear(gl.COLOR_BUFFER_BIT);
  18573    gl.drawArrays(gl.TRIANGLES, 0, 6);
  18574    gl.flush();
  18575    gl.deleteTexture(texture);
  18576    gl.deleteTexture(maskTexture);
  18577    gl.deleteBuffer(buffer);
  18578    return canvas;
  18579  }
  18580 
  18581  var figuresVertexShaderCode = '\
  18582  attribute vec2 a_position;                                    \
  18583  attribute vec3 a_color;                                       \
  18584                                                                \
  18585  uniform vec2 u_resolution;                                    \
  18586  uniform vec2 u_scale;                                         \
  18587  uniform vec2 u_offset;                                        \
  18588                                                                \
  18589  varying vec4 v_color;                                         \
  18590                                                                \
  18591  void main() {                                                 \
  18592    vec2 position = (a_position + u_offset) * u_scale;          \
  18593    vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0;     \
  18594    gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);          \
  18595                                                                \
  18596    v_color = vec4(a_color / 255.0, 1.0);                       \
  18597  }                                                             ';
  18598  var figuresFragmentShaderCode = '\
  18599  precision mediump float;                                      \
  18600                                                                \
  18601  varying vec4 v_color;                                         \
  18602                                                                \
  18603  void main() {                                                 \
  18604    gl_FragColor = v_color;                                     \
  18605  }                                                             ';
  18606  var figuresCache = null;
  18607 
  18608  function initFiguresGL() {
  18609    var canvas, gl;
  18610    generateGL();
  18611    canvas = currentCanvas;
  18612    currentCanvas = null;
  18613    gl = currentGL;
  18614    currentGL = null;
  18615    var vertexShader = createVertexShader(gl, figuresVertexShaderCode);
  18616    var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode);
  18617    var program = createProgram(gl, [vertexShader, fragmentShader]);
  18618    gl.useProgram(program);
  18619    var cache = {};
  18620    cache.gl = gl;
  18621    cache.canvas = canvas;
  18622    cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution');
  18623    cache.scaleLocation = gl.getUniformLocation(program, 'u_scale');
  18624    cache.offsetLocation = gl.getUniformLocation(program, 'u_offset');
  18625    cache.positionLocation = gl.getAttribLocation(program, 'a_position');
  18626    cache.colorLocation = gl.getAttribLocation(program, 'a_color');
  18627    figuresCache = cache;
  18628  }
  18629 
  18630  function drawFigures(width, height, backgroundColor, figures, context) {
  18631    if (!figuresCache) {
  18632      initFiguresGL();
  18633    }
  18634 
  18635    var cache = figuresCache,
  18636        canvas = cache.canvas,
  18637        gl = cache.gl;
  18638    canvas.width = width;
  18639    canvas.height = height;
  18640    gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
  18641    gl.uniform2f(cache.resolutionLocation, width, height);
  18642    var count = 0;
  18643    var i, ii, rows;
  18644 
  18645    for (i = 0, ii = figures.length; i < ii; i++) {
  18646      switch (figures[i].type) {
  18647        case 'lattice':
  18648          rows = figures[i].coords.length / figures[i].verticesPerRow | 0;
  18649          count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6;
  18650          break;
  18651 
  18652        case 'triangles':
  18653          count += figures[i].coords.length;
  18654          break;
  18655      }
  18656    }
  18657 
  18658    var coords = new Float32Array(count * 2);
  18659    var colors = new Uint8Array(count * 3);
  18660    var coordsMap = context.coords,
  18661        colorsMap = context.colors;
  18662    var pIndex = 0,
  18663        cIndex = 0;
  18664 
  18665    for (i = 0, ii = figures.length; i < ii; i++) {
  18666      var figure = figures[i],
  18667          ps = figure.coords,
  18668          cs = figure.colors;
  18669 
  18670      switch (figure.type) {
  18671        case 'lattice':
  18672          var cols = figure.verticesPerRow;
  18673          rows = ps.length / cols | 0;
  18674 
  18675          for (var row = 1; row < rows; row++) {
  18676            var offset = row * cols + 1;
  18677 
  18678            for (var col = 1; col < cols; col++, offset++) {
  18679              coords[pIndex] = coordsMap[ps[offset - cols - 1]];
  18680              coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1];
  18681              coords[pIndex + 2] = coordsMap[ps[offset - cols]];
  18682              coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1];
  18683              coords[pIndex + 4] = coordsMap[ps[offset - 1]];
  18684              coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1];
  18685              colors[cIndex] = colorsMap[cs[offset - cols - 1]];
  18686              colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1];
  18687              colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2];
  18688              colors[cIndex + 3] = colorsMap[cs[offset - cols]];
  18689              colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1];
  18690              colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2];
  18691              colors[cIndex + 6] = colorsMap[cs[offset - 1]];
  18692              colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1];
  18693              colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2];
  18694              coords[pIndex + 6] = coords[pIndex + 2];
  18695              coords[pIndex + 7] = coords[pIndex + 3];
  18696              coords[pIndex + 8] = coords[pIndex + 4];
  18697              coords[pIndex + 9] = coords[pIndex + 5];
  18698              coords[pIndex + 10] = coordsMap[ps[offset]];
  18699              coords[pIndex + 11] = coordsMap[ps[offset] + 1];
  18700              colors[cIndex + 9] = colors[cIndex + 3];
  18701              colors[cIndex + 10] = colors[cIndex + 4];
  18702              colors[cIndex + 11] = colors[cIndex + 5];
  18703              colors[cIndex + 12] = colors[cIndex + 6];
  18704              colors[cIndex + 13] = colors[cIndex + 7];
  18705              colors[cIndex + 14] = colors[cIndex + 8];
  18706              colors[cIndex + 15] = colorsMap[cs[offset]];
  18707              colors[cIndex + 16] = colorsMap[cs[offset] + 1];
  18708              colors[cIndex + 17] = colorsMap[cs[offset] + 2];
  18709              pIndex += 12;
  18710              cIndex += 18;
  18711            }
  18712          }
  18713 
  18714          break;
  18715 
  18716        case 'triangles':
  18717          for (var j = 0, jj = ps.length; j < jj; j++) {
  18718            coords[pIndex] = coordsMap[ps[j]];
  18719            coords[pIndex + 1] = coordsMap[ps[j] + 1];
  18720            colors[cIndex] = colorsMap[cs[j]];
  18721            colors[cIndex + 1] = colorsMap[cs[j] + 1];
  18722            colors[cIndex + 2] = colorsMap[cs[j] + 2];
  18723            pIndex += 2;
  18724            cIndex += 3;
  18725          }
  18726 
  18727          break;
  18728      }
  18729    }
  18730 
  18731    if (backgroundColor) {
  18732      gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0);
  18733    } else {
  18734      gl.clearColor(0, 0, 0, 0);
  18735    }
  18736 
  18737    gl.clear(gl.COLOR_BUFFER_BIT);
  18738    var coordsBuffer = gl.createBuffer();
  18739    gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer);
  18740    gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW);
  18741    gl.enableVertexAttribArray(cache.positionLocation);
  18742    gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);
  18743    var colorsBuffer = gl.createBuffer();
  18744    gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer);
  18745    gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);
  18746    gl.enableVertexAttribArray(cache.colorLocation);
  18747    gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0);
  18748    gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);
  18749    gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);
  18750    gl.drawArrays(gl.TRIANGLES, 0, count);
  18751    gl.flush();
  18752    gl.deleteBuffer(coordsBuffer);
  18753    gl.deleteBuffer(colorsBuffer);
  18754    return canvas;
  18755  }
  18756 
  18757  return {
  18758    tryInitGL: function tryInitGL() {
  18759      try {
  18760        generateGL();
  18761        return !!currentGL;
  18762      } catch (ex) {}
  18763 
  18764      return false;
  18765    },
  18766    composeSMask: composeSMask,
  18767    drawFigures: drawFigures,
  18768    cleanup: function cleanup() {
  18769      if (smaskCache && smaskCache.canvas) {
  18770        smaskCache.canvas.width = 0;
  18771        smaskCache.canvas.height = 0;
  18772      }
  18773 
  18774      if (figuresCache && figuresCache.canvas) {
  18775        figuresCache.canvas.width = 0;
  18776        figuresCache.canvas.height = 0;
  18777      }
  18778 
  18779      smaskCache = null;
  18780      figuresCache = null;
  18781    }
  18782  };
  18783 }();
  18784 
  18785 /***/ }),
  18786 /* 162 */
  18787 /***/ (function(module, exports, __w_pdfjs_require__) {
  18788 
  18789 "use strict";
  18790 
  18791 
  18792 Object.defineProperty(exports, "__esModule", {
  18793  value: true
  18794 });
  18795 exports.renderTextLayer = void 0;
  18796 
  18797 var _util = __w_pdfjs_require__(1);
  18798 
  18799 var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3));
  18800 
  18801 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
  18802 
  18803 var renderTextLayer = function renderTextLayerClosure() {
  18804  var MAX_TEXT_DIVS_TO_RENDER = 100000;
  18805  var NonWhitespaceRegexp = /\S/;
  18806 
  18807  function isAllWhitespace(str) {
  18808    return !NonWhitespaceRegexp.test(str);
  18809  }
  18810 
  18811  var styleBuf = ['left: ', 0, 'px; top: ', 0, 'px; font-size: ', 0, 'px; font-family: ', '', ';'];
  18812 
  18813  function appendText(task, geom, styles) {
  18814    var textDiv = document.createElement('span');
  18815    var textDivProperties = {
  18816      style: null,
  18817      angle: 0,
  18818      canvasWidth: 0,
  18819      isWhitespace: false,
  18820      originalTransform: null,
  18821      paddingBottom: 0,
  18822      paddingLeft: 0,
  18823      paddingRight: 0,
  18824      paddingTop: 0,
  18825      scale: 1
  18826    };
  18827 
  18828    task._textDivs.push(textDiv);
  18829 
  18830    if (isAllWhitespace(geom.str)) {
  18831      textDivProperties.isWhitespace = true;
  18832 
  18833      task._textDivProperties.set(textDiv, textDivProperties);
  18834 
  18835      return;
  18836    }
  18837 
  18838    var tx = _util.Util.transform(task._viewport.transform, geom.transform);
  18839 
  18840    var angle = Math.atan2(tx[1], tx[0]);
  18841    var style = styles[geom.fontName];
  18842 
  18843    if (style.vertical) {
  18844      angle += Math.PI / 2;
  18845    }
  18846 
  18847    var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]);
  18848    var fontAscent = fontHeight;
  18849 
  18850    if (style.ascent) {
  18851      fontAscent = style.ascent * fontAscent;
  18852    } else if (style.descent) {
  18853      fontAscent = (1 + style.descent) * fontAscent;
  18854    }
  18855 
  18856    var left;
  18857    var top;
  18858 
  18859    if (angle === 0) {
  18860      left = tx[4];
  18861      top = tx[5] - fontAscent;
  18862    } else {
  18863      left = tx[4] + fontAscent * Math.sin(angle);
  18864      top = tx[5] - fontAscent * Math.cos(angle);
  18865    }
  18866 
  18867    styleBuf[1] = left;
  18868    styleBuf[3] = top;
  18869    styleBuf[5] = fontHeight;
  18870    styleBuf[7] = style.fontFamily;
  18871    textDivProperties.style = styleBuf.join('');
  18872    textDiv.setAttribute('style', textDivProperties.style);
  18873    textDiv.textContent = geom.str;
  18874 
  18875    if (task._fontInspectorEnabled) {
  18876      textDiv.dataset.fontName = geom.fontName;
  18877    }
  18878 
  18879    if (angle !== 0) {
  18880      textDivProperties.angle = angle * (180 / Math.PI);
  18881    }
  18882 
  18883    if (geom.str.length > 1) {
  18884      if (style.vertical) {
  18885        textDivProperties.canvasWidth = geom.height * task._viewport.scale;
  18886      } else {
  18887        textDivProperties.canvasWidth = geom.width * task._viewport.scale;
  18888      }
  18889    }
  18890 
  18891    task._textDivProperties.set(textDiv, textDivProperties);
  18892 
  18893    if (task._textContentStream) {
  18894      task._layoutText(textDiv);
  18895    }
  18896 
  18897    if (task._enhanceTextSelection) {
  18898      var angleCos = 1,
  18899          angleSin = 0;
  18900 
  18901      if (angle !== 0) {
  18902        angleCos = Math.cos(angle);
  18903        angleSin = Math.sin(angle);
  18904      }
  18905 
  18906      var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;
  18907      var divHeight = fontHeight;
  18908      var m, b;
  18909 
  18910      if (angle !== 0) {
  18911        m = [angleCos, angleSin, -angleSin, angleCos, left, top];
  18912        b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);
  18913      } else {
  18914        b = [left, top, left + divWidth, top + divHeight];
  18915      }
  18916 
  18917      task._bounds.push({
  18918        left: b[0],
  18919        top: b[1],
  18920        right: b[2],
  18921        bottom: b[3],
  18922        div: textDiv,
  18923        size: [divWidth, divHeight],
  18924        m: m
  18925      });
  18926    }
  18927  }
  18928 
  18929  function render(task) {
  18930    if (task._canceled) {
  18931      return;
  18932    }
  18933 
  18934    var textDivs = task._textDivs;
  18935    var capability = task._capability;
  18936    var textDivsLength = textDivs.length;
  18937 
  18938    if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {
  18939      task._renderingDone = true;
  18940      capability.resolve();
  18941      return;
  18942    }
  18943 
  18944    if (!task._textContentStream) {
  18945      for (var i = 0; i < textDivsLength; i++) {
  18946        task._layoutText(textDivs[i]);
  18947      }
  18948    }
  18949 
  18950    task._renderingDone = true;
  18951    capability.resolve();
  18952  }
  18953 
  18954  function expand(task) {
  18955    var bounds = task._bounds;
  18956    var viewport = task._viewport;
  18957    var expanded = expandBounds(viewport.width, viewport.height, bounds);
  18958 
  18959    for (var i = 0; i < expanded.length; i++) {
  18960      var div = bounds[i].div;
  18961 
  18962      var divProperties = task._textDivProperties.get(div);
  18963 
  18964      if (divProperties.angle === 0) {
  18965        divProperties.paddingLeft = bounds[i].left - expanded[i].left;
  18966        divProperties.paddingTop = bounds[i].top - expanded[i].top;
  18967        divProperties.paddingRight = expanded[i].right - bounds[i].right;
  18968        divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;
  18969 
  18970        task._textDivProperties.set(div, divProperties);
  18971 
  18972        continue;
  18973      }
  18974 
  18975      var e = expanded[i],
  18976          b = bounds[i];
  18977      var m = b.m,
  18978          c = m[0],
  18979          s = m[1];
  18980      var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];
  18981      var ts = new Float64Array(64);
  18982      points.forEach(function (p, i) {
  18983        var t = _util.Util.applyTransform(p, m);
  18984 
  18985        ts[i + 0] = c && (e.left - t[0]) / c;
  18986        ts[i + 4] = s && (e.top - t[1]) / s;
  18987        ts[i + 8] = c && (e.right - t[0]) / c;
  18988        ts[i + 12] = s && (e.bottom - t[1]) / s;
  18989        ts[i + 16] = s && (e.left - t[0]) / -s;
  18990        ts[i + 20] = c && (e.top - t[1]) / c;
  18991        ts[i + 24] = s && (e.right - t[0]) / -s;
  18992        ts[i + 28] = c && (e.bottom - t[1]) / c;
  18993        ts[i + 32] = c && (e.left - t[0]) / -c;
  18994        ts[i + 36] = s && (e.top - t[1]) / -s;
  18995        ts[i + 40] = c && (e.right - t[0]) / -c;
  18996        ts[i + 44] = s && (e.bottom - t[1]) / -s;
  18997        ts[i + 48] = s && (e.left - t[0]) / s;
  18998        ts[i + 52] = c && (e.top - t[1]) / -c;
  18999        ts[i + 56] = s && (e.right - t[0]) / s;
  19000        ts[i + 60] = c && (e.bottom - t[1]) / -c;
  19001      });
  19002 
  19003      var findPositiveMin = function findPositiveMin(ts, offset, count) {
  19004        var result = 0;
  19005 
  19006        for (var i = 0; i < count; i++) {
  19007          var t = ts[offset++];
  19008 
  19009          if (t > 0) {
  19010            result = result ? Math.min(t, result) : t;
  19011          }
  19012        }
  19013 
  19014        return result;
  19015      };
  19016 
  19017      var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));
  19018      divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;
  19019      divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;
  19020      divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;
  19021      divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;
  19022 
  19023      task._textDivProperties.set(div, divProperties);
  19024    }
  19025  }
  19026 
  19027  function expandBounds(width, height, boxes) {
  19028    var bounds = boxes.map(function (box, i) {
  19029      return {
  19030        x1: box.left,
  19031        y1: box.top,
  19032        x2: box.right,
  19033        y2: box.bottom,
  19034        index: i,
  19035        x1New: undefined,
  19036        x2New: undefined
  19037      };
  19038    });
  19039    expandBoundsLTR(width, bounds);
  19040    var expanded = new Array(boxes.length);
  19041    bounds.forEach(function (b) {
  19042      var i = b.index;
  19043      expanded[i] = {
  19044        left: b.x1New,
  19045        top: 0,
  19046        right: b.x2New,
  19047        bottom: 0
  19048      };
  19049    });
  19050    boxes.map(function (box, i) {
  19051      var e = expanded[i],
  19052          b = bounds[i];
  19053      b.x1 = box.top;
  19054      b.y1 = width - e.right;
  19055      b.x2 = box.bottom;
  19056      b.y2 = width - e.left;
  19057      b.index = i;
  19058      b.x1New = undefined;
  19059      b.x2New = undefined;
  19060    });
  19061    expandBoundsLTR(height, bounds);
  19062    bounds.forEach(function (b) {
  19063      var i = b.index;
  19064      expanded[i].top = b.x1New;
  19065      expanded[i].bottom = b.x2New;
  19066    });
  19067    return expanded;
  19068  }
  19069 
  19070  function expandBoundsLTR(width, bounds) {
  19071    bounds.sort(function (a, b) {
  19072      return a.x1 - b.x1 || a.index - b.index;
  19073    });
  19074    var fakeBoundary = {
  19075      x1: -Infinity,
  19076      y1: -Infinity,
  19077      x2: 0,
  19078      y2: Infinity,
  19079      index: -1,
  19080      x1New: 0,
  19081      x2New: 0
  19082    };
  19083    var horizon = [{
  19084      start: -Infinity,
  19085      end: Infinity,
  19086      boundary: fakeBoundary
  19087    }];
  19088    bounds.forEach(function (boundary) {
  19089      var i = 0;
  19090 
  19091      while (i < horizon.length && horizon[i].end <= boundary.y1) {
  19092        i++;
  19093      }
  19094 
  19095      var j = horizon.length - 1;
  19096 
  19097      while (j >= 0 && horizon[j].start >= boundary.y2) {
  19098        j--;
  19099      }
  19100 
  19101      var horizonPart, affectedBoundary;
  19102      var q,
  19103          k,
  19104          maxXNew = -Infinity;
  19105 
  19106      for (q = i; q <= j; q++) {
  19107        horizonPart = horizon[q];
  19108        affectedBoundary = horizonPart.boundary;
  19109        var xNew;
  19110 
  19111        if (affectedBoundary.x2 > boundary.x1) {
  19112          xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1;
  19113        } else if (affectedBoundary.x2New === undefined) {
  19114          xNew = (affectedBoundary.x2 + boundary.x1) / 2;
  19115        } else {
  19116          xNew = affectedBoundary.x2New;
  19117        }
  19118 
  19119        if (xNew > maxXNew) {
  19120          maxXNew = xNew;
  19121        }
  19122      }
  19123 
  19124      boundary.x1New = maxXNew;
  19125 
  19126      for (q = i; q <= j; q++) {
  19127        horizonPart = horizon[q];
  19128        affectedBoundary = horizonPart.boundary;
  19129 
  19130        if (affectedBoundary.x2New === undefined) {
  19131          if (affectedBoundary.x2 > boundary.x1) {
  19132            if (affectedBoundary.index > boundary.index) {
  19133              affectedBoundary.x2New = affectedBoundary.x2;
  19134            }
  19135          } else {
  19136            affectedBoundary.x2New = maxXNew;
  19137          }
  19138        } else if (affectedBoundary.x2New > maxXNew) {
  19139          affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);
  19140        }
  19141      }
  19142 
  19143      var changedHorizon = [],
  19144          lastBoundary = null;
  19145 
  19146      for (q = i; q <= j; q++) {
  19147        horizonPart = horizon[q];
  19148        affectedBoundary = horizonPart.boundary;
  19149        var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;
  19150 
  19151        if (lastBoundary === useBoundary) {
  19152          changedHorizon[changedHorizon.length - 1].end = horizonPart.end;
  19153        } else {
  19154          changedHorizon.push({
  19155            start: horizonPart.start,
  19156            end: horizonPart.end,
  19157            boundary: useBoundary
  19158          });
  19159          lastBoundary = useBoundary;
  19160        }
  19161      }
  19162 
  19163      if (horizon[i].start < boundary.y1) {
  19164        changedHorizon[0].start = boundary.y1;
  19165        changedHorizon.unshift({
  19166          start: horizon[i].start,
  19167          end: boundary.y1,
  19168          boundary: horizon[i].boundary
  19169        });
  19170      }
  19171 
  19172      if (boundary.y2 < horizon[j].end) {
  19173        changedHorizon[changedHorizon.length - 1].end = boundary.y2;
  19174        changedHorizon.push({
  19175          start: boundary.y2,
  19176          end: horizon[j].end,
  19177          boundary: horizon[j].boundary
  19178        });
  19179      }
  19180 
  19181      for (q = i; q <= j; q++) {
  19182        horizonPart = horizon[q];
  19183        affectedBoundary = horizonPart.boundary;
  19184 
  19185        if (affectedBoundary.x2New !== undefined) {
  19186          continue;
  19187        }
  19188 
  19189        var used = false;
  19190 
  19191        for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {
  19192          used = horizon[k].boundary === affectedBoundary;
  19193        }
  19194 
  19195        for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {
  19196          used = horizon[k].boundary === affectedBoundary;
  19197        }
  19198 
  19199        for (k = 0; !used && k < changedHorizon.length; k++) {
  19200          used = changedHorizon[k].boundary === affectedBoundary;
  19201        }
  19202 
  19203        if (!used) {
  19204          affectedBoundary.x2New = maxXNew;
  19205        }
  19206      }
  19207 
  19208      Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon));
  19209    });
  19210    horizon.forEach(function (horizonPart) {
  19211      var affectedBoundary = horizonPart.boundary;
  19212 
  19213      if (affectedBoundary.x2New === undefined) {
  19214        affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);
  19215      }
  19216    });
  19217  }
  19218 
  19219  function TextLayerRenderTask(_ref) {
  19220    var _this = this;
  19221 
  19222    var textContent = _ref.textContent,
  19223        textContentStream = _ref.textContentStream,
  19224        container = _ref.container,
  19225        viewport = _ref.viewport,
  19226        textDivs = _ref.textDivs,
  19227        textContentItemsStr = _ref.textContentItemsStr,
  19228        enhanceTextSelection = _ref.enhanceTextSelection;
  19229    this._textContent = textContent;
  19230    this._textContentStream = textContentStream;
  19231    this._container = container;
  19232    this._viewport = viewport;
  19233    this._textDivs = textDivs || [];
  19234    this._textContentItemsStr = textContentItemsStr || [];
  19235    this._enhanceTextSelection = !!enhanceTextSelection;
  19236    this._fontInspectorEnabled = !!(_global_scope["default"].FontInspector && _global_scope["default"].FontInspector.enabled);
  19237    this._reader = null;
  19238    this._layoutTextLastFontSize = null;
  19239    this._layoutTextLastFontFamily = null;
  19240    this._layoutTextCtx = null;
  19241    this._textDivProperties = new WeakMap();
  19242    this._renderingDone = false;
  19243    this._canceled = false;
  19244    this._capability = (0, _util.createPromiseCapability)();
  19245    this._renderTimer = null;
  19246    this._bounds = [];
  19247 
  19248    this._capability.promise["finally"](function () {
  19249      if (_this._layoutTextCtx) {
  19250        _this._layoutTextCtx.canvas.width = 0;
  19251        _this._layoutTextCtx.canvas.height = 0;
  19252        _this._layoutTextCtx = null;
  19253      }
  19254    });
  19255  }
  19256 
  19257  TextLayerRenderTask.prototype = {
  19258    get promise() {
  19259      return this._capability.promise;
  19260    },
  19261 
  19262    cancel: function TextLayer_cancel() {
  19263      this._canceled = true;
  19264 
  19265      if (this._reader) {
  19266        this._reader.cancel(new _util.AbortException('TextLayer task cancelled.'));
  19267 
  19268        this._reader = null;
  19269      }
  19270 
  19271      if (this._renderTimer !== null) {
  19272        clearTimeout(this._renderTimer);
  19273        this._renderTimer = null;
  19274      }
  19275 
  19276      this._capability.reject(new Error('TextLayer task cancelled.'));
  19277    },
  19278    _processItems: function _processItems(items, styleCache) {
  19279      for (var i = 0, len = items.length; i < len; i++) {
  19280        this._textContentItemsStr.push(items[i].str);
  19281 
  19282        appendText(this, items[i], styleCache);
  19283      }
  19284    },
  19285    _layoutText: function _layoutText(textDiv) {
  19286      var textLayerFrag = this._container;
  19287 
  19288      var textDivProperties = this._textDivProperties.get(textDiv);
  19289 
  19290      if (textDivProperties.isWhitespace) {
  19291        return;
  19292      }
  19293 
  19294      var fontSize = textDiv.style.fontSize;
  19295      var fontFamily = textDiv.style.fontFamily;
  19296 
  19297      if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {
  19298        this._layoutTextCtx.font = fontSize + ' ' + fontFamily;
  19299        this._layoutTextLastFontSize = fontSize;
  19300        this._layoutTextLastFontFamily = fontFamily;
  19301      }
  19302 
  19303      var width = this._layoutTextCtx.measureText(textDiv.textContent).width;
  19304 
  19305      var transform = '';
  19306 
  19307      if (textDivProperties.canvasWidth !== 0 && width > 0) {
  19308        textDivProperties.scale = textDivProperties.canvasWidth / width;
  19309        transform = "scaleX(".concat(textDivProperties.scale, ")");
  19310      }
  19311 
  19312      if (textDivProperties.angle !== 0) {
  19313        transform = "rotate(".concat(textDivProperties.angle, "deg) ").concat(transform);
  19314      }
  19315 
  19316      if (transform.length > 0) {
  19317        textDivProperties.originalTransform = transform;
  19318        textDiv.style.transform = transform;
  19319      }
  19320 
  19321      this._textDivProperties.set(textDiv, textDivProperties);
  19322 
  19323      textLayerFrag.appendChild(textDiv);
  19324    },
  19325    _render: function TextLayer_render(timeout) {
  19326      var _this2 = this;
  19327 
  19328      var capability = (0, _util.createPromiseCapability)();
  19329      var styleCache = Object.create(null);
  19330      var canvas = document.createElement('canvas');
  19331      canvas.mozOpaque = true;
  19332      this._layoutTextCtx = canvas.getContext('2d', {
  19333        alpha: false
  19334      });
  19335 
  19336      if (this._textContent) {
  19337        var textItems = this._textContent.items;
  19338        var textStyles = this._textContent.styles;
  19339 
  19340        this._processItems(textItems, textStyles);
  19341 
  19342        capability.resolve();
  19343      } else if (this._textContentStream) {
  19344        var pump = function pump() {
  19345          _this2._reader.read().then(function (_ref2) {
  19346            var value = _ref2.value,
  19347                done = _ref2.done;
  19348 
  19349            if (done) {
  19350              capability.resolve();
  19351              return;
  19352            }
  19353 
  19354            Object.assign(styleCache, value.styles);
  19355 
  19356            _this2._processItems(value.items, styleCache);
  19357 
  19358            pump();
  19359          }, capability.reject);
  19360        };
  19361 
  19362        this._reader = this._textContentStream.getReader();
  19363        pump();
  19364      } else {
  19365        throw new Error('Neither "textContent" nor "textContentStream"' + ' parameters specified.');
  19366      }
  19367 
  19368      capability.promise.then(function () {
  19369        styleCache = null;
  19370 
  19371        if (!timeout) {
  19372          render(_this2);
  19373        } else {
  19374          _this2._renderTimer = setTimeout(function () {
  19375            render(_this2);
  19376            _this2._renderTimer = null;
  19377          }, timeout);
  19378        }
  19379      }, this._capability.reject);
  19380    },
  19381    expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {
  19382      if (!this._enhanceTextSelection || !this._renderingDone) {
  19383        return;
  19384      }
  19385 
  19386      if (this._bounds !== null) {
  19387        expand(this);
  19388        this._bounds = null;
  19389      }
  19390 
  19391      for (var i = 0, ii = this._textDivs.length; i < ii; i++) {
  19392        var div = this._textDivs[i];
  19393 
  19394        var divProperties = this._textDivProperties.get(div);
  19395 
  19396        if (divProperties.isWhitespace) {
  19397          continue;
  19398        }
  19399 
  19400        if (expandDivs) {
  19401          var transform = '',
  19402              padding = '';
  19403 
  19404          if (divProperties.scale !== 1) {
  19405            transform = 'scaleX(' + divProperties.scale + ')';
  19406          }
  19407 
  19408          if (divProperties.angle !== 0) {
  19409            transform = 'rotate(' + divProperties.angle + 'deg) ' + transform;
  19410          }
  19411 
  19412          if (divProperties.paddingLeft !== 0) {
  19413            padding += ' padding-left: ' + divProperties.paddingLeft / divProperties.scale + 'px;';
  19414            transform += ' translateX(' + -divProperties.paddingLeft / divProperties.scale + 'px)';
  19415          }
  19416 
  19417          if (divProperties.paddingTop !== 0) {
  19418            padding += ' padding-top: ' + divProperties.paddingTop + 'px;';
  19419            transform += ' translateY(' + -divProperties.paddingTop + 'px)';
  19420          }
  19421 
  19422          if (divProperties.paddingRight !== 0) {
  19423            padding += ' padding-right: ' + divProperties.paddingRight / divProperties.scale + 'px;';
  19424          }
  19425 
  19426          if (divProperties.paddingBottom !== 0) {
  19427            padding += ' padding-bottom: ' + divProperties.paddingBottom + 'px;';
  19428          }
  19429 
  19430          if (padding !== '') {
  19431            div.setAttribute('style', divProperties.style + padding);
  19432          }
  19433 
  19434          if (transform !== '') {
  19435            div.style.transform = transform;
  19436          }
  19437        } else {
  19438          div.style.padding = 0;
  19439          div.style.transform = divProperties.originalTransform || '';
  19440        }
  19441      }
  19442    }
  19443  };
  19444 
  19445  function renderTextLayer(renderParameters) {
  19446    var task = new TextLayerRenderTask({
  19447      textContent: renderParameters.textContent,
  19448      textContentStream: renderParameters.textContentStream,
  19449      container: renderParameters.container,
  19450      viewport: renderParameters.viewport,
  19451      textDivs: renderParameters.textDivs,
  19452      textContentItemsStr: renderParameters.textContentItemsStr,
  19453      enhanceTextSelection: renderParameters.enhanceTextSelection
  19454    });
  19455 
  19456    task._render(renderParameters.timeout);
  19457 
  19458    return task;
  19459  }
  19460 
  19461  return renderTextLayer;
  19462 }();
  19463 
  19464 exports.renderTextLayer = renderTextLayer;
  19465 
  19466 /***/ }),
  19467 /* 163 */
  19468 /***/ (function(module, exports, __w_pdfjs_require__) {
  19469 
  19470 "use strict";
  19471 
  19472 
  19473 Object.defineProperty(exports, "__esModule", {
  19474  value: true
  19475 });
  19476 exports.AnnotationLayer = void 0;
  19477 
  19478 var _display_utils = __w_pdfjs_require__(151);
  19479 
  19480 var _util = __w_pdfjs_require__(1);
  19481 
  19482 function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
  19483 
  19484 function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
  19485 
  19486 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
  19487 
  19488 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
  19489 
  19490 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
  19491 
  19492 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
  19493 
  19494 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
  19495 
  19496 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
  19497 
  19498 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  19499 
  19500 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
  19501 
  19502 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
  19503 
  19504 var AnnotationElementFactory =
  19505 /*#__PURE__*/
  19506 function () {
  19507  function AnnotationElementFactory() {
  19508    _classCallCheck(this, AnnotationElementFactory);
  19509  }
  19510 
  19511  _createClass(AnnotationElementFactory, null, [{
  19512    key: "create",
  19513    value: function create(parameters) {
  19514      var subtype = parameters.data.annotationType;
  19515 
  19516      switch (subtype) {
  19517        case _util.AnnotationType.LINK:
  19518          return new LinkAnnotationElement(parameters);
  19519 
  19520        case _util.AnnotationType.TEXT:
  19521          return new TextAnnotationElement(parameters);
  19522 
  19523        case _util.AnnotationType.WIDGET:
  19524          var fieldType = parameters.data.fieldType;
  19525 
  19526          switch (fieldType) {
  19527            case 'Tx':
  19528              return new TextWidgetAnnotationElement(parameters);
  19529 
  19530            case 'Btn':
  19531              if (parameters.data.radioButton) {
  19532                return new RadioButtonWidgetAnnotationElement(parameters);
  19533              } else if (parameters.data.checkBox) {
  19534                return new CheckboxWidgetAnnotationElement(parameters);
  19535              }
  19536 
  19537              return new PushButtonWidgetAnnotationElement(parameters);
  19538 
  19539            case 'Ch':
  19540              return new ChoiceWidgetAnnotationElement(parameters);
  19541          }
  19542 
  19543          return new WidgetAnnotationElement(parameters);
  19544 
  19545        case _util.AnnotationType.POPUP:
  19546          return new PopupAnnotationElement(parameters);
  19547 
  19548        case _util.AnnotationType.FREETEXT:
  19549          return new FreeTextAnnotationElement(parameters);
  19550 
  19551        case _util.AnnotationType.LINE:
  19552          return new LineAnnotationElement(parameters);
  19553 
  19554        case _util.AnnotationType.SQUARE:
  19555          return new SquareAnnotationElement(parameters);
  19556 
  19557        case _util.AnnotationType.CIRCLE:
  19558          return new CircleAnnotationElement(parameters);
  19559 
  19560        case _util.AnnotationType.POLYLINE:
  19561          return new PolylineAnnotationElement(parameters);
  19562 
  19563        case _util.AnnotationType.CARET:
  19564          return new CaretAnnotationElement(parameters);
  19565 
  19566        case _util.AnnotationType.INK:
  19567          return new InkAnnotationElement(parameters);
  19568 
  19569        case _util.AnnotationType.POLYGON:
  19570          return new PolygonAnnotationElement(parameters);
  19571 
  19572        case _util.AnnotationType.HIGHLIGHT:
  19573          return new HighlightAnnotationElement(parameters);
  19574 
  19575        case _util.AnnotationType.UNDERLINE:
  19576          return new UnderlineAnnotationElement(parameters);
  19577 
  19578        case _util.AnnotationType.SQUIGGLY:
  19579          return new SquigglyAnnotationElement(parameters);
  19580 
  19581        case _util.AnnotationType.STRIKEOUT:
  19582          return new StrikeOutAnnotationElement(parameters);
  19583 
  19584        case _util.AnnotationType.STAMP:
  19585          return new StampAnnotationElement(parameters);
  19586 
  19587        case _util.AnnotationType.FILEATTACHMENT:
  19588          return new FileAttachmentAnnotationElement(parameters);
  19589 
  19590        default:
  19591          return new AnnotationElement(parameters);
  19592      }
  19593    }
  19594  }]);
  19595 
  19596  return AnnotationElementFactory;
  19597 }();
  19598 
  19599 var AnnotationElement =
  19600 /*#__PURE__*/
  19601 function () {
  19602  function AnnotationElement(parameters) {
  19603    var isRenderable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  19604    var ignoreBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
  19605 
  19606    _classCallCheck(this, AnnotationElement);
  19607 
  19608    this.isRenderable = isRenderable;
  19609    this.data = parameters.data;
  19610    this.layer = parameters.layer;
  19611    this.page = parameters.page;
  19612    this.viewport = parameters.viewport;
  19613    this.linkService = parameters.linkService;
  19614    this.downloadManager = parameters.downloadManager;
  19615    this.imageResourcesPath = parameters.imageResourcesPath;
  19616    this.renderInteractiveForms = parameters.renderInteractiveForms;
  19617    this.svgFactory = parameters.svgFactory;
  19618 
  19619    if (isRenderable) {
  19620      this.container = this._createContainer(ignoreBorder);
  19621    }
  19622  }
  19623 
  19624  _createClass(AnnotationElement, [{
  19625    key: "_createContainer",
  19626    value: function _createContainer() {
  19627      var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
  19628      var data = this.data,
  19629          page = this.page,
  19630          viewport = this.viewport;
  19631      var container = document.createElement('section');
  19632      var width = data.rect[2] - data.rect[0];
  19633      var height = data.rect[3] - data.rect[1];
  19634      container.setAttribute('data-annotation-id', data.id);
  19635 
  19636      var 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]]);
  19637 
  19638      container.style.transform = 'matrix(' + viewport.transform.join(',') + ')';
  19639      container.style.transformOrigin = -rect[0] + 'px ' + -rect[1] + 'px';
  19640 
  19641      if (!ignoreBorder && data.borderStyle.width > 0) {
  19642        container.style.borderWidth = data.borderStyle.width + 'px';
  19643 
  19644        if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) {
  19645          width = width - 2 * data.borderStyle.width;
  19646          height = height - 2 * data.borderStyle.width;
  19647        }
  19648 
  19649        var horizontalRadius = data.borderStyle.horizontalCornerRadius;
  19650        var verticalRadius = data.borderStyle.verticalCornerRadius;
  19651 
  19652        if (horizontalRadius > 0 || verticalRadius > 0) {
  19653          var radius = horizontalRadius + 'px / ' + verticalRadius + 'px';
  19654          container.style.borderRadius = radius;
  19655        }
  19656 
  19657        switch (data.borderStyle.style) {
  19658          case _util.AnnotationBorderStyleType.SOLID:
  19659            container.style.borderStyle = 'solid';
  19660            break;
  19661 
  19662          case _util.AnnotationBorderStyleType.DASHED:
  19663            container.style.borderStyle = 'dashed';
  19664            break;
  19665 
  19666          case _util.AnnotationBorderStyleType.BEVELED:
  19667            (0, _util.warn)('Unimplemented border style: beveled');
  19668            break;
  19669 
  19670          case _util.AnnotationBorderStyleType.INSET:
  19671            (0, _util.warn)('Unimplemented border style: inset');
  19672            break;
  19673 
  19674          case _util.AnnotationBorderStyleType.UNDERLINE:
  19675            container.style.borderBottomStyle = 'solid';
  19676            break;
  19677 
  19678          default:
  19679            break;
  19680        }
  19681 
  19682        if (data.color) {
  19683          container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0);
  19684        } else {
  19685          container.style.borderWidth = 0;
  19686        }
  19687      }
  19688 
  19689      container.style.left = rect[0] + 'px';
  19690      container.style.top = rect[1] + 'px';
  19691      container.style.width = width + 'px';
  19692      container.style.height = height + 'px';
  19693      return container;
  19694    }
  19695  }, {
  19696    key: "_createPopup",
  19697    value: function _createPopup(container, trigger, data) {
  19698      if (!trigger) {
  19699        trigger = document.createElement('div');
  19700        trigger.style.height = container.style.height;
  19701        trigger.style.width = container.style.width;
  19702        container.appendChild(trigger);
  19703      }
  19704 
  19705      var popupElement = new PopupElement({
  19706        container: container,
  19707        trigger: trigger,
  19708        color: data.color,
  19709        title: data.title,
  19710        modificationDate: data.modificationDate,
  19711        contents: data.contents,
  19712        hideWrapper: true
  19713      });
  19714      var popup = popupElement.render();
  19715      popup.style.left = container.style.width;
  19716      container.appendChild(popup);
  19717    }
  19718  }, {
  19719    key: "render",
  19720    value: function render() {
  19721      (0, _util.unreachable)('Abstract method `AnnotationElement.render` called');
  19722    }
  19723  }]);
  19724 
  19725  return AnnotationElement;
  19726 }();
  19727 
  19728 var LinkAnnotationElement =
  19729 /*#__PURE__*/
  19730 function (_AnnotationElement) {
  19731  _inherits(LinkAnnotationElement, _AnnotationElement);
  19732 
  19733  function LinkAnnotationElement(parameters) {
  19734    _classCallCheck(this, LinkAnnotationElement);
  19735 
  19736    var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action);
  19737    return _possibleConstructorReturn(this, _getPrototypeOf(LinkAnnotationElement).call(this, parameters, isRenderable));
  19738  }
  19739 
  19740  _createClass(LinkAnnotationElement, [{
  19741    key: "render",
  19742    value: function render() {
  19743      this.container.className = 'linkAnnotation';
  19744      var data = this.data,
  19745          linkService = this.linkService;
  19746      var link = document.createElement('a');
  19747      (0, _display_utils.addLinkAttributes)(link, {
  19748        url: data.url,
  19749        target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget,
  19750        rel: linkService.externalLinkRel
  19751      });
  19752 
  19753      if (!data.url) {
  19754        if (data.action) {
  19755          this._bindNamedAction(link, data.action);
  19756        } else {
  19757          this._bindLink(link, data.dest);
  19758        }
  19759      }
  19760 
  19761      this.container.appendChild(link);
  19762      return this.container;
  19763    }
  19764  }, {
  19765    key: "_bindLink",
  19766    value: function _bindLink(link, destination) {
  19767      var _this = this;
  19768 
  19769      link.href = this.linkService.getDestinationHash(destination);
  19770 
  19771      link.onclick = function () {
  19772        if (destination) {
  19773          _this.linkService.navigateTo(destination);
  19774        }
  19775 
  19776        return false;
  19777      };
  19778 
  19779      if (destination) {
  19780        link.className = 'internalLink';
  19781      }
  19782    }
  19783  }, {
  19784    key: "_bindNamedAction",
  19785    value: function _bindNamedAction(link, action) {
  19786      var _this2 = this;
  19787 
  19788      link.href = this.linkService.getAnchorUrl('');
  19789 
  19790      link.onclick = function () {
  19791        _this2.linkService.executeNamedAction(action);
  19792 
  19793        return false;
  19794      };
  19795 
  19796      link.className = 'internalLink';
  19797    }
  19798  }]);
  19799 
  19800  return LinkAnnotationElement;
  19801 }(AnnotationElement);
  19802 
  19803 var TextAnnotationElement =
  19804 /*#__PURE__*/
  19805 function (_AnnotationElement2) {
  19806  _inherits(TextAnnotationElement, _AnnotationElement2);
  19807 
  19808  function TextAnnotationElement(parameters) {
  19809    _classCallCheck(this, TextAnnotationElement);
  19810 
  19811    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
  19812    return _possibleConstructorReturn(this, _getPrototypeOf(TextAnnotationElement).call(this, parameters, isRenderable));
  19813  }
  19814 
  19815  _createClass(TextAnnotationElement, [{
  19816    key: "render",
  19817    value: function render() {
  19818      this.container.className = 'textAnnotation';
  19819      var image = document.createElement('img');
  19820      image.style.height = this.container.style.height;
  19821      image.style.width = this.container.style.width;
  19822      image.src = this.imageResourcesPath + 'annotation-' + this.data.name.toLowerCase() + '.svg';
  19823      image.alt = '[{{type}} Annotation]';
  19824      image.dataset.l10nId = 'text_annotation_type';
  19825      image.dataset.l10nArgs = JSON.stringify({
  19826        type: this.data.name
  19827      });
  19828 
  19829      if (!this.data.hasPopup) {
  19830        this._createPopup(this.container, image, this.data);
  19831      }
  19832 
  19833      this.container.appendChild(image);
  19834      return this.container;
  19835    }
  19836  }]);
  19837 
  19838  return TextAnnotationElement;
  19839 }(AnnotationElement);
  19840 
  19841 var WidgetAnnotationElement =
  19842 /*#__PURE__*/
  19843 function (_AnnotationElement3) {
  19844  _inherits(WidgetAnnotationElement, _AnnotationElement3);
  19845 
  19846  function WidgetAnnotationElement() {
  19847    _classCallCheck(this, WidgetAnnotationElement);
  19848 
  19849    return _possibleConstructorReturn(this, _getPrototypeOf(WidgetAnnotationElement).apply(this, arguments));
  19850  }
  19851 
  19852  _createClass(WidgetAnnotationElement, [{
  19853    key: "render",
  19854    value: function render() {
  19855      return this.container;
  19856    }
  19857  }]);
  19858 
  19859  return WidgetAnnotationElement;
  19860 }(AnnotationElement);
  19861 
  19862 var TextWidgetAnnotationElement =
  19863 /*#__PURE__*/
  19864 function (_WidgetAnnotationElem) {
  19865  _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem);
  19866 
  19867  function TextWidgetAnnotationElement(parameters) {
  19868    _classCallCheck(this, TextWidgetAnnotationElement);
  19869 
  19870    var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;
  19871    return _possibleConstructorReturn(this, _getPrototypeOf(TextWidgetAnnotationElement).call(this, parameters, isRenderable));
  19872  }
  19873 
  19874  _createClass(TextWidgetAnnotationElement, [{
  19875    key: "render",
  19876    value: function render() {
  19877      var TEXT_ALIGNMENT = ['left', 'center', 'right'];
  19878      this.container.className = 'textWidgetAnnotation';
  19879      var element = null;
  19880 
  19881      if (this.renderInteractiveForms) {
  19882        if (this.data.multiLine) {
  19883          element = document.createElement('textarea');
  19884          element.textContent = this.data.fieldValue;
  19885        } else {
  19886          element = document.createElement('input');
  19887          element.type = 'text';
  19888          element.setAttribute('value', this.data.fieldValue);
  19889        }
  19890 
  19891        element.disabled = this.data.readOnly;
  19892 
  19893        if (this.data.maxLen !== null) {
  19894          element.maxLength = this.data.maxLen;
  19895        }
  19896 
  19897        if (this.data.comb) {
  19898          var fieldWidth = this.data.rect[2] - this.data.rect[0];
  19899          var combWidth = fieldWidth / this.data.maxLen;
  19900          element.classList.add('comb');
  19901          element.style.letterSpacing = 'calc(' + combWidth + 'px - 1ch)';
  19902        }
  19903      } else {
  19904        element = document.createElement('div');
  19905        element.textContent = this.data.fieldValue;
  19906        element.style.verticalAlign = 'middle';
  19907        element.style.display = 'table-cell';
  19908        var font = null;
  19909 
  19910        if (this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName)) {
  19911          font = this.page.commonObjs.get(this.data.fontRefName);
  19912        }
  19913 
  19914        this._setTextStyle(element, font);
  19915      }
  19916 
  19917      if (this.data.textAlignment !== null) {
  19918        element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];
  19919      }
  19920 
  19921      this.container.appendChild(element);
  19922      return this.container;
  19923    }
  19924  }, {
  19925    key: "_setTextStyle",
  19926    value: function _setTextStyle(element, font) {
  19927      var style = element.style;
  19928      style.fontSize = this.data.fontSize + 'px';
  19929      style.direction = this.data.fontDirection < 0 ? 'rtl' : 'ltr';
  19930 
  19931      if (!font) {
  19932        return;
  19933      }
  19934 
  19935      style.fontWeight = font.black ? font.bold ? '900' : 'bold' : font.bold ? 'bold' : 'normal';
  19936      style.fontStyle = font.italic ? 'italic' : 'normal';
  19937      var fontFamily = font.loadedName ? '"' + font.loadedName + '", ' : '';
  19938      var fallbackName = font.fallbackName || 'Helvetica, sans-serif';
  19939      style.fontFamily = fontFamily + fallbackName;
  19940    }
  19941  }]);
  19942 
  19943  return TextWidgetAnnotationElement;
  19944 }(WidgetAnnotationElement);
  19945 
  19946 var CheckboxWidgetAnnotationElement =
  19947 /*#__PURE__*/
  19948 function (_WidgetAnnotationElem2) {
  19949  _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2);
  19950 
  19951  function CheckboxWidgetAnnotationElement(parameters) {
  19952    _classCallCheck(this, CheckboxWidgetAnnotationElement);
  19953 
  19954    return _possibleConstructorReturn(this, _getPrototypeOf(CheckboxWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms));
  19955  }
  19956 
  19957  _createClass(CheckboxWidgetAnnotationElement, [{
  19958    key: "render",
  19959    value: function render() {
  19960      this.container.className = 'buttonWidgetAnnotation checkBox';
  19961      var element = document.createElement('input');
  19962      element.disabled = this.data.readOnly;
  19963      element.type = 'checkbox';
  19964 
  19965      if (this.data.fieldValue && this.data.fieldValue !== 'Off') {
  19966        element.setAttribute('checked', true);
  19967      }
  19968 
  19969      this.container.appendChild(element);
  19970      return this.container;
  19971    }
  19972  }]);
  19973 
  19974  return CheckboxWidgetAnnotationElement;
  19975 }(WidgetAnnotationElement);
  19976 
  19977 var RadioButtonWidgetAnnotationElement =
  19978 /*#__PURE__*/
  19979 function (_WidgetAnnotationElem3) {
  19980  _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3);
  19981 
  19982  function RadioButtonWidgetAnnotationElement(parameters) {
  19983    _classCallCheck(this, RadioButtonWidgetAnnotationElement);
  19984 
  19985    return _possibleConstructorReturn(this, _getPrototypeOf(RadioButtonWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms));
  19986  }
  19987 
  19988  _createClass(RadioButtonWidgetAnnotationElement, [{
  19989    key: "render",
  19990    value: function render() {
  19991      this.container.className = 'buttonWidgetAnnotation radioButton';
  19992      var element = document.createElement('input');
  19993      element.disabled = this.data.readOnly;
  19994      element.type = 'radio';
  19995      element.name = this.data.fieldName;
  19996 
  19997      if (this.data.fieldValue === this.data.buttonValue) {
  19998        element.setAttribute('checked', true);
  19999      }
  20000 
  20001      this.container.appendChild(element);
  20002      return this.container;
  20003    }
  20004  }]);
  20005 
  20006  return RadioButtonWidgetAnnotationElement;
  20007 }(WidgetAnnotationElement);
  20008 
  20009 var PushButtonWidgetAnnotationElement =
  20010 /*#__PURE__*/
  20011 function (_LinkAnnotationElemen) {
  20012  _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen);
  20013 
  20014  function PushButtonWidgetAnnotationElement() {
  20015    _classCallCheck(this, PushButtonWidgetAnnotationElement);
  20016 
  20017    return _possibleConstructorReturn(this, _getPrototypeOf(PushButtonWidgetAnnotationElement).apply(this, arguments));
  20018  }
  20019 
  20020  _createClass(PushButtonWidgetAnnotationElement, [{
  20021    key: "render",
  20022    value: function render() {
  20023      var container = _get(_getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), "render", this).call(this);
  20024 
  20025      container.className = 'buttonWidgetAnnotation pushButton';
  20026      return container;
  20027    }
  20028  }]);
  20029 
  20030  return PushButtonWidgetAnnotationElement;
  20031 }(LinkAnnotationElement);
  20032 
  20033 var ChoiceWidgetAnnotationElement =
  20034 /*#__PURE__*/
  20035 function (_WidgetAnnotationElem4) {
  20036  _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4);
  20037 
  20038  function ChoiceWidgetAnnotationElement(parameters) {
  20039    _classCallCheck(this, ChoiceWidgetAnnotationElement);
  20040 
  20041    return _possibleConstructorReturn(this, _getPrototypeOf(ChoiceWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms));
  20042  }
  20043 
  20044  _createClass(ChoiceWidgetAnnotationElement, [{
  20045    key: "render",
  20046    value: function render() {
  20047      this.container.className = 'choiceWidgetAnnotation';
  20048      var selectElement = document.createElement('select');
  20049      selectElement.disabled = this.data.readOnly;
  20050 
  20051      if (!this.data.combo) {
  20052        selectElement.size = this.data.options.length;
  20053 
  20054        if (this.data.multiSelect) {
  20055          selectElement.multiple = true;
  20056        }
  20057      }
  20058 
  20059      for (var i = 0, ii = this.data.options.length; i < ii; i++) {
  20060        var option = this.data.options[i];
  20061        var optionElement = document.createElement('option');
  20062        optionElement.textContent = option.displayValue;
  20063        optionElement.value = option.exportValue;
  20064 
  20065        if (this.data.fieldValue.includes(option.displayValue)) {
  20066          optionElement.setAttribute('selected', true);
  20067        }
  20068 
  20069        selectElement.appendChild(optionElement);
  20070      }
  20071 
  20072      this.container.appendChild(selectElement);
  20073      return this.container;
  20074    }
  20075  }]);
  20076 
  20077  return ChoiceWidgetAnnotationElement;
  20078 }(WidgetAnnotationElement);
  20079 
  20080 var PopupAnnotationElement =
  20081 /*#__PURE__*/
  20082 function (_AnnotationElement4) {
  20083  _inherits(PopupAnnotationElement, _AnnotationElement4);
  20084 
  20085  function PopupAnnotationElement(parameters) {
  20086    _classCallCheck(this, PopupAnnotationElement);
  20087 
  20088    var isRenderable = !!(parameters.data.title || parameters.data.contents);
  20089    return _possibleConstructorReturn(this, _getPrototypeOf(PopupAnnotationElement).call(this, parameters, isRenderable));
  20090  }
  20091 
  20092  _createClass(PopupAnnotationElement, [{
  20093    key: "render",
  20094    value: function render() {
  20095      var IGNORE_TYPES = ['Line', 'Square', 'Circle', 'PolyLine', 'Polygon', 'Ink'];
  20096      this.container.className = 'popupAnnotation';
  20097 
  20098      if (IGNORE_TYPES.includes(this.data.parentType)) {
  20099        return this.container;
  20100      }
  20101 
  20102      var selector = '[data-annotation-id="' + this.data.parentId + '"]';
  20103      var parentElement = this.layer.querySelector(selector);
  20104 
  20105      if (!parentElement) {
  20106        return this.container;
  20107      }
  20108 
  20109      var popup = new PopupElement({
  20110        container: this.container,
  20111        trigger: parentElement,
  20112        color: this.data.color,
  20113        title: this.data.title,
  20114        modificationDate: this.data.modificationDate,
  20115        contents: this.data.contents
  20116      });
  20117      var parentLeft = parseFloat(parentElement.style.left);
  20118      var parentWidth = parseFloat(parentElement.style.width);
  20119      this.container.style.transformOrigin = -(parentLeft + parentWidth) + 'px -' + parentElement.style.top;
  20120      this.container.style.left = parentLeft + parentWidth + 'px';
  20121      this.container.appendChild(popup.render());
  20122      return this.container;
  20123    }
  20124  }]);
  20125 
  20126  return PopupAnnotationElement;
  20127 }(AnnotationElement);
  20128 
  20129 var PopupElement =
  20130 /*#__PURE__*/
  20131 function () {
  20132  function PopupElement(parameters) {
  20133    _classCallCheck(this, PopupElement);
  20134 
  20135    this.container = parameters.container;
  20136    this.trigger = parameters.trigger;
  20137    this.color = parameters.color;
  20138    this.title = parameters.title;
  20139    this.modificationDate = parameters.modificationDate;
  20140    this.contents = parameters.contents;
  20141    this.hideWrapper = parameters.hideWrapper || false;
  20142    this.pinned = false;
  20143  }
  20144 
  20145  _createClass(PopupElement, [{
  20146    key: "render",
  20147    value: function render() {
  20148      var BACKGROUND_ENLIGHT = 0.7;
  20149      var wrapper = document.createElement('div');
  20150      wrapper.className = 'popupWrapper';
  20151      this.hideElement = this.hideWrapper ? wrapper : this.container;
  20152      this.hideElement.setAttribute('hidden', true);
  20153      var popup = document.createElement('div');
  20154      popup.className = 'popup';
  20155      var color = this.color;
  20156 
  20157      if (color) {
  20158        var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];
  20159        var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];
  20160        var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];
  20161        popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0);
  20162      }
  20163 
  20164      var title = document.createElement('h1');
  20165      title.textContent = this.title;
  20166      popup.appendChild(title);
  20167 
  20168      var dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate);
  20169 
  20170      if (dateObject) {
  20171        var modificationDate = document.createElement('span');
  20172        modificationDate.textContent = '{{date}}, {{time}}';
  20173        modificationDate.dataset.l10nId = 'annotation_date_string';
  20174        modificationDate.dataset.l10nArgs = JSON.stringify({
  20175          date: dateObject.toLocaleDateString(),
  20176          time: dateObject.toLocaleTimeString()
  20177        });
  20178        popup.appendChild(modificationDate);
  20179      }
  20180 
  20181      var contents = this._formatContents(this.contents);
  20182 
  20183      popup.appendChild(contents);
  20184      this.trigger.addEventListener('click', this._toggle.bind(this));
  20185      this.trigger.addEventListener('mouseover', this._show.bind(this, false));
  20186      this.trigger.addEventListener('mouseout', this._hide.bind(this, false));
  20187      popup.addEventListener('click', this._hide.bind(this, true));
  20188      wrapper.appendChild(popup);
  20189      return wrapper;
  20190    }
  20191  }, {
  20192    key: "_formatContents",
  20193    value: function _formatContents(contents) {
  20194      var p = document.createElement('p');
  20195      var lines = contents.split(/(?:\r\n?|\n)/);
  20196 
  20197      for (var i = 0, ii = lines.length; i < ii; ++i) {
  20198        var line = lines[i];
  20199        p.appendChild(document.createTextNode(line));
  20200 
  20201        if (i < ii - 1) {
  20202          p.appendChild(document.createElement('br'));
  20203        }
  20204      }
  20205 
  20206      return p;
  20207    }
  20208  }, {
  20209    key: "_toggle",
  20210    value: function _toggle() {
  20211      if (this.pinned) {
  20212        this._hide(true);
  20213      } else {
  20214        this._show(true);
  20215      }
  20216    }
  20217  }, {
  20218    key: "_show",
  20219    value: function _show() {
  20220      var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
  20221 
  20222      if (pin) {
  20223        this.pinned = true;
  20224      }
  20225 
  20226      if (this.hideElement.hasAttribute('hidden')) {
  20227        this.hideElement.removeAttribute('hidden');
  20228        this.container.style.zIndex += 1;
  20229      }
  20230    }
  20231  }, {
  20232    key: "_hide",
  20233    value: function _hide() {
  20234      var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
  20235 
  20236      if (unpin) {
  20237        this.pinned = false;
  20238      }
  20239 
  20240      if (!this.hideElement.hasAttribute('hidden') && !this.pinned) {
  20241        this.hideElement.setAttribute('hidden', true);
  20242        this.container.style.zIndex -= 1;
  20243      }
  20244    }
  20245  }]);
  20246 
  20247  return PopupElement;
  20248 }();
  20249 
  20250 var FreeTextAnnotationElement =
  20251 /*#__PURE__*/
  20252 function (_AnnotationElement5) {
  20253  _inherits(FreeTextAnnotationElement, _AnnotationElement5);
  20254 
  20255  function FreeTextAnnotationElement(parameters) {
  20256    _classCallCheck(this, FreeTextAnnotationElement);
  20257 
  20258    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
  20259    return _possibleConstructorReturn(this, _getPrototypeOf(FreeTextAnnotationElement).call(this, parameters, isRenderable, true));
  20260  }
  20261 
  20262  _createClass(FreeTextAnnotationElement, [{
  20263    key: "render",
  20264    value: function render() {
  20265      this.container.className = 'freeTextAnnotation';
  20266 
  20267      if (!this.data.hasPopup) {
  20268        this._createPopup(this.container, null, this.data);
  20269      }
  20270 
  20271      return this.container;
  20272    }
  20273  }]);
  20274 
  20275  return FreeTextAnnotationElement;
  20276 }(AnnotationElement);
  20277 
  20278 var LineAnnotationElement =
  20279 /*#__PURE__*/
  20280 function (_AnnotationElement6) {
  20281  _inherits(LineAnnotationElement, _AnnotationElement6);
  20282 
  20283  function LineAnnotationElement(parameters) {
  20284    _classCallCheck(this, LineAnnotationElement);
  20285 
  20286    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
  20287    return _possibleConstructorReturn(this, _getPrototypeOf(LineAnnotationElement).call(this, parameters, isRenderable, true));
  20288  }
  20289 
  20290  _createClass(LineAnnotationElement, [{
  20291    key: "render",
  20292    value: function render() {
  20293      this.container.className = 'lineAnnotation';
  20294      var data = this.data;
  20295      var width = data.rect[2] - data.rect[0];
  20296      var height = data.rect[3] - data.rect[1];
  20297      var svg = this.svgFactory.create(width, height);
  20298      var line = this.svgFactory.createElement('svg:line');
  20299      line.setAttribute('x1', data.rect[2] - data.lineCoordinates[0]);
  20300      line.setAttribute('y1', data.rect[3] - data.lineCoordinates[1]);
  20301      line.setAttribute('x2', data.rect[2] - data.lineCoordinates[2]);
  20302      line.setAttribute('y2', data.rect[3] - data.lineCoordinates[3]);
  20303      line.setAttribute('stroke-width', data.borderStyle.width);
  20304      line.setAttribute('stroke', 'transparent');
  20305      svg.appendChild(line);
  20306      this.container.append(svg);
  20307 
  20308      this._createPopup(this.container, line, data);
  20309 
  20310      return this.container;
  20311    }
  20312  }]);
  20313 
  20314  return LineAnnotationElement;
  20315 }(AnnotationElement);
  20316 
  20317 var SquareAnnotationElement =
  20318 /*#__PURE__*/
  20319 function (_AnnotationElement7) {
  20320  _inherits(SquareAnnotationElement, _AnnotationElement7);
  20321 
  20322  function SquareAnnotationElement(parameters) {
  20323    _classCallCheck(this, SquareAnnotationElement);
  20324 
  20325    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
  20326    return _possibleConstructorReturn(this, _getPrototypeOf(SquareAnnotationElement).call(this, parameters, isRenderable, true));
  20327  }
  20328 
  20329  _createClass(SquareAnnotationElement, [{
  20330    key: "render",
  20331    value: function render() {
  20332      this.container.className = 'squareAnnotation';
  20333      var data = this.data;
  20334      var width = data.rect[2] - data.rect[0];
  20335      var height = data.rect[3] - data.rect[1];
  20336      var svg = this.svgFactory.create(width, height);
  20337      var borderWidth = data.borderStyle.width;
  20338      var square = this.svgFactory.createElement('svg:rect');
  20339      square.setAttribute('x', borderWidth / 2);
  20340      square.setAttribute('y', borderWidth / 2);
  20341      square.setAttribute('width', width - borderWidth);
  20342      square.setAttribute('height', height - borderWidth);
  20343      square.setAttribute('stroke-width', borderWidth);
  20344      square.setAttribute('stroke', 'transparent');
  20345      square.setAttribute('fill', 'none');
  20346      svg.appendChild(square);
  20347      this.container.append(svg);
  20348 
  20349      this._createPopup(this.container, square, data);
  20350 
  20351      return this.container;
  20352    }
  20353  }]);
  20354 
  20355  return SquareAnnotationElement;
  20356 }(AnnotationElement);
  20357 
  20358 var CircleAnnotationElement =
  20359 /*#__PURE__*/
  20360 function (_AnnotationElement8) {
  20361  _inherits(CircleAnnotationElement, _AnnotationElement8);
  20362 
  20363  function CircleAnnotationElement(parameters) {
  20364    _classCallCheck(this, CircleAnnotationElement);
  20365 
  20366    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
  20367    return _possibleConstructorReturn(this, _getPrototypeOf(CircleAnnotationElement).call(this, parameters, isRenderable, true));
  20368  }
  20369 
  20370  _createClass(CircleAnnotationElement, [{
  20371    key: "render",
  20372    value: function render() {
  20373      this.container.className = 'circleAnnotation';
  20374      var data = this.data;
  20375      var width = data.rect[2] - data.rect[0];
  20376      var height = data.rect[3] - data.rect[1];
  20377      var svg = this.svgFactory.create(width, height);
  20378      var borderWidth = data.borderStyle.width;
  20379      var circle = this.svgFactory.createElement('svg:ellipse');
  20380      circle.setAttribute('cx', width / 2);
  20381      circle.setAttribute('cy', height / 2);
  20382      circle.setAttribute('rx', width / 2 - borderWidth / 2);
  20383      circle.setAttribute('ry', height / 2 - borderWidth / 2);
  20384      circle.setAttribute('stroke-width', borderWidth);
  20385      circle.setAttribute('stroke', 'transparent');
  20386      circle.setAttribute('fill', 'none');
  20387      svg.appendChild(circle);
  20388      this.container.append(svg);
  20389 
  20390      this._createPopup(this.container, circle, data);
  20391 
  20392      return this.container;
  20393    }
  20394  }]);
  20395 
  20396  return CircleAnnotationElement;
  20397 }(AnnotationElement);
  20398 
  20399 var PolylineAnnotationElement =
  20400 /*#__PURE__*/
  20401 function (_AnnotationElement9) {
  20402  _inherits(PolylineAnnotationElement, _AnnotationElement9);
  20403 
  20404  function PolylineAnnotationElement(parameters) {
  20405    var _this3;
  20406 
  20407    _classCallCheck(this, PolylineAnnotationElement);
  20408 
  20409    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
  20410    _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PolylineAnnotationElement).call(this, parameters, isRenderable, true));
  20411    _this3.containerClassName = 'polylineAnnotation';
  20412    _this3.svgElementName = 'svg:polyline';
  20413    return _this3;
  20414  }
  20415 
  20416  _createClass(PolylineAnnotationElement, [{
  20417    key: "render",
  20418    value: function render() {
  20419      this.container.className = this.containerClassName;
  20420      var data = this.data;
  20421      var width = data.rect[2] - data.rect[0];
  20422      var height = data.rect[3] - data.rect[1];
  20423      var svg = this.svgFactory.create(width, height);
  20424      var vertices = data.vertices;
  20425      var points = [];
  20426 
  20427      for (var i = 0, ii = vertices.length; i < ii; i++) {
  20428        var x = vertices[i].x - data.rect[0];
  20429        var y = data.rect[3] - vertices[i].y;
  20430        points.push(x + ',' + y);
  20431      }
  20432 
  20433      points = points.join(' ');
  20434      var borderWidth = data.borderStyle.width;
  20435      var polyline = this.svgFactory.createElement(this.svgElementName);
  20436      polyline.setAttribute('points', points);
  20437      polyline.setAttribute('stroke-width', borderWidth);
  20438      polyline.setAttribute('stroke', 'transparent');
  20439      polyline.setAttribute('fill', 'none');
  20440      svg.appendChild(polyline);
  20441      this.container.append(svg);
  20442 
  20443      this._createPopup(this.container, polyline, data);
  20444 
  20445      return this.container;
  20446    }
  20447  }]);
  20448 
  20449  return PolylineAnnotationElement;
  20450 }(AnnotationElement);
  20451 
  20452 var PolygonAnnotationElement =
  20453 /*#__PURE__*/
  20454 function (_PolylineAnnotationEl) {
  20455  _inherits(PolygonAnnotationElement, _PolylineAnnotationEl);
  20456 
  20457  function PolygonAnnotationElement(parameters) {
  20458    var _this4;
  20459 
  20460    _classCallCheck(this, PolygonAnnotationElement);
  20461 
  20462    _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PolygonAnnotationElement).call(this, parameters));
  20463    _this4.containerClassName = 'polygonAnnotation';
  20464    _this4.svgElementName = 'svg:polygon';
  20465    return _this4;
  20466  }
  20467 
  20468  return PolygonAnnotationElement;
  20469 }(PolylineAnnotationElement);
  20470 
  20471 var CaretAnnotationElement =
  20472 /*#__PURE__*/
  20473 function (_AnnotationElement10) {
  20474  _inherits(CaretAnnotationElement, _AnnotationElement10);
  20475 
  20476  function CaretAnnotationElement(parameters) {
  20477    _classCallCheck(this, CaretAnnotationElement);
  20478 
  20479    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
  20480    return _possibleConstructorReturn(this, _getPrototypeOf(CaretAnnotationElement).call(this, parameters, isRenderable, true));
  20481  }
  20482 
  20483  _createClass(CaretAnnotationElement, [{
  20484    key: "render",
  20485    value: function render() {
  20486      this.container.className = 'caretAnnotation';
  20487 
  20488      if (!this.data.hasPopup) {
  20489        this._createPopup(this.container, null, this.data);
  20490      }
  20491 
  20492      return this.container;
  20493    }
  20494  }]);
  20495 
  20496  return CaretAnnotationElement;
  20497 }(AnnotationElement);
  20498 
  20499 var InkAnnotationElement =
  20500 /*#__PURE__*/
  20501 function (_AnnotationElement11) {
  20502  _inherits(InkAnnotationElement, _AnnotationElement11);
  20503 
  20504  function InkAnnotationElement(parameters) {
  20505    var _this5;
  20506 
  20507    _classCallCheck(this, InkAnnotationElement);
  20508 
  20509    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
  20510    _this5 = _possibleConstructorReturn(this, _getPrototypeOf(InkAnnotationElement).call(this, parameters, isRenderable, true));
  20511    _this5.containerClassName = 'inkAnnotation';
  20512    _this5.svgElementName = 'svg:polyline';
  20513    return _this5;
  20514  }
  20515 
  20516  _createClass(InkAnnotationElement, [{
  20517    key: "render",
  20518    value: function render() {
  20519      this.container.className = this.containerClassName;
  20520      var data = this.data;
  20521      var width = data.rect[2] - data.rect[0];
  20522      var height = data.rect[3] - data.rect[1];
  20523      var svg = this.svgFactory.create(width, height);
  20524      var inkLists = data.inkLists;
  20525 
  20526      for (var i = 0, ii = inkLists.length; i < ii; i++) {
  20527        var inkList = inkLists[i];
  20528        var points = [];
  20529 
  20530        for (var j = 0, jj = inkList.length; j < jj; j++) {
  20531          var x = inkList[j].x - data.rect[0];
  20532          var y = data.rect[3] - inkList[j].y;
  20533          points.push(x + ',' + y);
  20534        }
  20535 
  20536        points = points.join(' ');
  20537        var borderWidth = data.borderStyle.width;
  20538        var polyline = this.svgFactory.createElement(this.svgElementName);
  20539        polyline.setAttribute('points', points);
  20540        polyline.setAttribute('stroke-width', borderWidth);
  20541        polyline.setAttribute('stroke', 'transparent');
  20542        polyline.setAttribute('fill', 'none');
  20543 
  20544        this._createPopup(this.container, polyline, data);
  20545 
  20546        svg.appendChild(polyline);
  20547      }
  20548 
  20549      this.container.append(svg);
  20550      return this.container;
  20551    }
  20552  }]);
  20553 
  20554  return InkAnnotationElement;
  20555 }(AnnotationElement);
  20556 
  20557 var HighlightAnnotationElement =
  20558 /*#__PURE__*/
  20559 function (_AnnotationElement12) {
  20560  _inherits(HighlightAnnotationElement, _AnnotationElement12);
  20561 
  20562  function HighlightAnnotationElement(parameters) {
  20563    _classCallCheck(this, HighlightAnnotationElement);
  20564 
  20565    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
  20566    return _possibleConstructorReturn(this, _getPrototypeOf(HighlightAnnotationElement).call(this, parameters, isRenderable, true));
  20567  }
  20568 
  20569  _createClass(HighlightAnnotationElement, [{
  20570    key: "render",
  20571    value: function render() {
  20572      this.container.className = 'highlightAnnotation';
  20573 
  20574      if (!this.data.hasPopup) {
  20575        this._createPopup(this.container, null, this.data);
  20576      }
  20577 
  20578      return this.container;
  20579    }
  20580  }]);
  20581 
  20582  return HighlightAnnotationElement;
  20583 }(AnnotationElement);
  20584 
  20585 var UnderlineAnnotationElement =
  20586 /*#__PURE__*/
  20587 function (_AnnotationElement13) {
  20588  _inherits(UnderlineAnnotationElement, _AnnotationElement13);
  20589 
  20590  function UnderlineAnnotationElement(parameters) {
  20591    _classCallCheck(this, UnderlineAnnotationElement);
  20592 
  20593    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
  20594    return _possibleConstructorReturn(this, _getPrototypeOf(UnderlineAnnotationElement).call(this, parameters, isRenderable, true));
  20595  }
  20596 
  20597  _createClass(UnderlineAnnotationElement, [{
  20598    key: "render",
  20599    value: function render() {
  20600      this.container.className = 'underlineAnnotation';
  20601 
  20602      if (!this.data.hasPopup) {
  20603        this._createPopup(this.container, null, this.data);
  20604      }
  20605 
  20606      return this.container;
  20607    }
  20608  }]);
  20609 
  20610  return UnderlineAnnotationElement;
  20611 }(AnnotationElement);
  20612 
  20613 var SquigglyAnnotationElement =
  20614 /*#__PURE__*/
  20615 function (_AnnotationElement14) {
  20616  _inherits(SquigglyAnnotationElement, _AnnotationElement14);
  20617 
  20618  function SquigglyAnnotationElement(parameters) {
  20619    _classCallCheck(this, SquigglyAnnotationElement);
  20620 
  20621    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
  20622    return _possibleConstructorReturn(this, _getPrototypeOf(SquigglyAnnotationElement).call(this, parameters, isRenderable, true));
  20623  }
  20624 
  20625  _createClass(SquigglyAnnotationElement, [{
  20626    key: "render",
  20627    value: function render() {
  20628      this.container.className = 'squigglyAnnotation';
  20629 
  20630      if (!this.data.hasPopup) {
  20631        this._createPopup(this.container, null, this.data);
  20632      }
  20633 
  20634      return this.container;
  20635    }
  20636  }]);
  20637 
  20638  return SquigglyAnnotationElement;
  20639 }(AnnotationElement);
  20640 
  20641 var StrikeOutAnnotationElement =
  20642 /*#__PURE__*/
  20643 function (_AnnotationElement15) {
  20644  _inherits(StrikeOutAnnotationElement, _AnnotationElement15);
  20645 
  20646  function StrikeOutAnnotationElement(parameters) {
  20647    _classCallCheck(this, StrikeOutAnnotationElement);
  20648 
  20649    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
  20650    return _possibleConstructorReturn(this, _getPrototypeOf(StrikeOutAnnotationElement).call(this, parameters, isRenderable, true));
  20651  }
  20652 
  20653  _createClass(StrikeOutAnnotationElement, [{
  20654    key: "render",
  20655    value: function render() {
  20656      this.container.className = 'strikeoutAnnotation';
  20657 
  20658      if (!this.data.hasPopup) {
  20659        this._createPopup(this.container, null, this.data);
  20660      }
  20661 
  20662      return this.container;
  20663    }
  20664  }]);
  20665 
  20666  return StrikeOutAnnotationElement;
  20667 }(AnnotationElement);
  20668 
  20669 var StampAnnotationElement =
  20670 /*#__PURE__*/
  20671 function (_AnnotationElement16) {
  20672  _inherits(StampAnnotationElement, _AnnotationElement16);
  20673 
  20674  function StampAnnotationElement(parameters) {
  20675    _classCallCheck(this, StampAnnotationElement);
  20676 
  20677    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
  20678    return _possibleConstructorReturn(this, _getPrototypeOf(StampAnnotationElement).call(this, parameters, isRenderable, true));
  20679  }
  20680 
  20681  _createClass(StampAnnotationElement, [{
  20682    key: "render",
  20683    value: function render() {
  20684      this.container.className = 'stampAnnotation';
  20685 
  20686      if (!this.data.hasPopup) {
  20687        this._createPopup(this.container, null, this.data);
  20688      }
  20689 
  20690      return this.container;
  20691    }
  20692  }]);
  20693 
  20694  return StampAnnotationElement;
  20695 }(AnnotationElement);
  20696 
  20697 var FileAttachmentAnnotationElement =
  20698 /*#__PURE__*/
  20699 function (_AnnotationElement17) {
  20700  _inherits(FileAttachmentAnnotationElement, _AnnotationElement17);
  20701 
  20702  function FileAttachmentAnnotationElement(parameters) {
  20703    var _this6;
  20704 
  20705    _classCallCheck(this, FileAttachmentAnnotationElement);
  20706 
  20707    _this6 = _possibleConstructorReturn(this, _getPrototypeOf(FileAttachmentAnnotationElement).call(this, parameters, true));
  20708    var _this6$data$file = _this6.data.file,
  20709        filename = _this6$data$file.filename,
  20710        content = _this6$data$file.content;
  20711    _this6.filename = (0, _display_utils.getFilenameFromUrl)(filename);
  20712    _this6.content = content;
  20713 
  20714    if (_this6.linkService.eventBus) {
  20715      _this6.linkService.eventBus.dispatch('fileattachmentannotation', {
  20716        source: _assertThisInitialized(_this6),
  20717        id: (0, _util.stringToPDFString)(filename),
  20718        filename: filename,
  20719        content: content
  20720      });
  20721    }
  20722 
  20723    return _this6;
  20724  }
  20725 
  20726  _createClass(FileAttachmentAnnotationElement, [{
  20727    key: "render",
  20728    value: function render() {
  20729      this.container.className = 'fileAttachmentAnnotation';
  20730      var trigger = document.createElement('div');
  20731      trigger.style.height = this.container.style.height;
  20732      trigger.style.width = this.container.style.width;
  20733      trigger.addEventListener('dblclick', this._download.bind(this));
  20734 
  20735      if (!this.data.hasPopup && (this.data.title || this.data.contents)) {
  20736        this._createPopup(this.container, trigger, this.data);
  20737      }
  20738 
  20739      this.container.appendChild(trigger);
  20740      return this.container;
  20741    }
  20742  }, {
  20743    key: "_download",
  20744    value: function _download() {
  20745      if (!this.downloadManager) {
  20746        (0, _util.warn)('Download cannot be started due to unavailable download manager');
  20747        return;
  20748      }
  20749 
  20750      this.downloadManager.downloadData(this.content, this.filename, '');
  20751    }
  20752  }]);
  20753 
  20754  return FileAttachmentAnnotationElement;
  20755 }(AnnotationElement);
  20756 
  20757 var AnnotationLayer =
  20758 /*#__PURE__*/
  20759 function () {
  20760  function AnnotationLayer() {
  20761    _classCallCheck(this, AnnotationLayer);
  20762  }
  20763 
  20764  _createClass(AnnotationLayer, null, [{
  20765    key: "render",
  20766    value: function render(parameters) {
  20767      for (var i = 0, ii = parameters.annotations.length; i < ii; i++) {
  20768        var data = parameters.annotations[i];
  20769 
  20770        if (!data) {
  20771          continue;
  20772        }
  20773 
  20774        var element = AnnotationElementFactory.create({
  20775          data: data,
  20776          layer: parameters.div,
  20777          page: parameters.page,
  20778          viewport: parameters.viewport,
  20779          linkService: parameters.linkService,
  20780          downloadManager: parameters.downloadManager,
  20781          imageResourcesPath: parameters.imageResourcesPath || '',
  20782          renderInteractiveForms: parameters.renderInteractiveForms || false,
  20783          svgFactory: new _display_utils.DOMSVGFactory()
  20784        });
  20785 
  20786        if (element.isRenderable) {
  20787          parameters.div.appendChild(element.render());
  20788        }
  20789      }
  20790    }
  20791  }, {
  20792    key: "update",
  20793    value: function update(parameters) {
  20794      for (var i = 0, ii = parameters.annotations.length; i < ii; i++) {
  20795        var data = parameters.annotations[i];
  20796        var element = parameters.div.querySelector('[data-annotation-id="' + data.id + '"]');
  20797 
  20798        if (element) {
  20799          element.style.transform = 'matrix(' + parameters.viewport.transform.join(',') + ')';
  20800        }
  20801      }
  20802 
  20803      parameters.div.removeAttribute('hidden');
  20804    }
  20805  }]);
  20806 
  20807  return AnnotationLayer;
  20808 }();
  20809 
  20810 exports.AnnotationLayer = AnnotationLayer;
  20811 
  20812 /***/ }),
  20813 /* 164 */
  20814 /***/ (function(module, exports, __w_pdfjs_require__) {
  20815 
  20816 "use strict";
  20817 
  20818 
  20819 Object.defineProperty(exports, "__esModule", {
  20820  value: true
  20821 });
  20822 exports.SVGGraphics = void 0;
  20823 
  20824 var _util = __w_pdfjs_require__(1);
  20825 
  20826 var _display_utils = __w_pdfjs_require__(151);
  20827 
  20828 var _is_node = _interopRequireDefault(__w_pdfjs_require__(4));
  20829 
  20830 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
  20831 
  20832 function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
  20833 
  20834 function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
  20835 
  20836 function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
  20837 
  20838 function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
  20839 
  20840 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
  20841 
  20842 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
  20843 
  20844 function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
  20845 
  20846 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
  20847 
  20848 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  20849 
  20850 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
  20851 
  20852 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
  20853 
  20854 var SVGGraphics = function SVGGraphics() {
  20855  throw new Error('Not implemented: SVGGraphics');
  20856 };
  20857 
  20858 exports.SVGGraphics = SVGGraphics;
  20859 {
  20860  var opListToTree = function opListToTree(opList) {
  20861    var opTree = [];
  20862    var tmp = [];
  20863    var _iteratorNormalCompletion = true;
  20864    var _didIteratorError = false;
  20865    var _iteratorError = undefined;
  20866 
  20867    try {
  20868      for (var _iterator = opList[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  20869        var opListElement = _step.value;
  20870 
  20871        if (opListElement.fn === 'save') {
  20872          opTree.push({
  20873            'fnId': 92,
  20874            'fn': 'group',
  20875            'items': []
  20876          });
  20877          tmp.push(opTree);
  20878          opTree = opTree[opTree.length - 1].items;
  20879          continue;
  20880        }
  20881 
  20882        if (opListElement.fn === 'restore') {
  20883          opTree = tmp.pop();
  20884        } else {
  20885          opTree.push(opListElement);
  20886        }
  20887      }
  20888    } catch (err) {
  20889      _didIteratorError = true;
  20890      _iteratorError = err;
  20891    } finally {
  20892      try {
  20893        if (!_iteratorNormalCompletion && _iterator["return"] != null) {
  20894          _iterator["return"]();
  20895        }
  20896      } finally {
  20897        if (_didIteratorError) {
  20898          throw _iteratorError;
  20899        }
  20900      }
  20901    }
  20902 
  20903    return opTree;
  20904  };
  20905 
  20906  var pf = function pf(value) {
  20907    if (Number.isInteger(value)) {
  20908      return value.toString();
  20909    }
  20910 
  20911    var s = value.toFixed(10);
  20912    var i = s.length - 1;
  20913 
  20914    if (s[i] !== '0') {
  20915      return s;
  20916    }
  20917 
  20918    do {
  20919      i--;
  20920    } while (s[i] === '0');
  20921 
  20922    return s.substring(0, s[i] === '.' ? i : i + 1);
  20923  };
  20924 
  20925  var pm = function pm(m) {
  20926    if (m[4] === 0 && m[5] === 0) {
  20927      if (m[1] === 0 && m[2] === 0) {
  20928        if (m[0] === 1 && m[3] === 1) {
  20929          return '';
  20930        }
  20931 
  20932        return "scale(".concat(pf(m[0]), " ").concat(pf(m[3]), ")");
  20933      }
  20934 
  20935      if (m[0] === m[3] && m[1] === -m[2]) {
  20936        var a = Math.acos(m[0]) * 180 / Math.PI;
  20937        return "rotate(".concat(pf(a), ")");
  20938      }
  20939    } else {
  20940      if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {
  20941        return "translate(".concat(pf(m[4]), " ").concat(pf(m[5]), ")");
  20942      }
  20943    }
  20944 
  20945    return "matrix(".concat(pf(m[0]), " ").concat(pf(m[1]), " ").concat(pf(m[2]), " ").concat(pf(m[3]), " ").concat(pf(m[4]), " ") + "".concat(pf(m[5]), ")");
  20946  };
  20947 
  20948  var SVG_DEFAULTS = {
  20949    fontStyle: 'normal',
  20950    fontWeight: 'normal',
  20951    fillColor: '#000000'
  20952  };
  20953  var XML_NS = 'http://www.w3.org/XML/1998/namespace';
  20954  var XLINK_NS = 'http://www.w3.org/1999/xlink';
  20955  var LINE_CAP_STYLES = ['butt', 'round', 'square'];
  20956  var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];
  20957 
  20958  var convertImgDataToPng = function () {
  20959    var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);
  20960    var CHUNK_WRAPPER_SIZE = 12;
  20961    var crcTable = new Int32Array(256);
  20962 
  20963    for (var i = 0; i < 256; i++) {
  20964      var c = i;
  20965 
  20966      for (var h = 0; h < 8; h++) {
  20967        if (c & 1) {
  20968          c = 0xedB88320 ^ c >> 1 & 0x7fffffff;
  20969        } else {
  20970          c = c >> 1 & 0x7fffffff;
  20971        }
  20972      }
  20973 
  20974      crcTable[i] = c;
  20975    }
  20976 
  20977    function crc32(data, start, end) {
  20978      var crc = -1;
  20979 
  20980      for (var _i = start; _i < end; _i++) {
  20981        var a = (crc ^ data[_i]) & 0xff;
  20982        var b = crcTable[a];
  20983        crc = crc >>> 8 ^ b;
  20984      }
  20985 
  20986      return crc ^ -1;
  20987    }
  20988 
  20989    function writePngChunk(type, body, data, offset) {
  20990      var p = offset;
  20991      var len = body.length;
  20992      data[p] = len >> 24 & 0xff;
  20993      data[p + 1] = len >> 16 & 0xff;
  20994      data[p + 2] = len >> 8 & 0xff;
  20995      data[p + 3] = len & 0xff;
  20996      p += 4;
  20997      data[p] = type.charCodeAt(0) & 0xff;
  20998      data[p + 1] = type.charCodeAt(1) & 0xff;
  20999      data[p + 2] = type.charCodeAt(2) & 0xff;
  21000      data[p + 3] = type.charCodeAt(3) & 0xff;
  21001      p += 4;
  21002      data.set(body, p);
  21003      p += body.length;
  21004      var crc = crc32(data, offset + 4, p);
  21005      data[p] = crc >> 24 & 0xff;
  21006      data[p + 1] = crc >> 16 & 0xff;
  21007      data[p + 2] = crc >> 8 & 0xff;
  21008      data[p + 3] = crc & 0xff;
  21009    }
  21010 
  21011    function adler32(data, start, end) {
  21012      var a = 1;
  21013      var b = 0;
  21014 
  21015      for (var _i2 = start; _i2 < end; ++_i2) {
  21016        a = (a + (data[_i2] & 0xff)) % 65521;
  21017        b = (b + a) % 65521;
  21018      }
  21019 
  21020      return b << 16 | a;
  21021    }
  21022 
  21023    function deflateSync(literals) {
  21024      if (!(0, _is_node["default"])()) {
  21025        return deflateSyncUncompressed(literals);
  21026      }
  21027 
  21028      try {
  21029        var input;
  21030 
  21031        if (parseInt(process.versions.node) >= 8) {
  21032          input = literals;
  21033        } else {
  21034          input = new Buffer(literals);
  21035        }
  21036 
  21037        var output = require('zlib').deflateSync(input, {
  21038          level: 9
  21039        });
  21040 
  21041        return output instanceof Uint8Array ? output : new Uint8Array(output);
  21042      } catch (e) {
  21043        (0, _util.warn)('Not compressing PNG because zlib.deflateSync is unavailable: ' + e);
  21044      }
  21045 
  21046      return deflateSyncUncompressed(literals);
  21047    }
  21048 
  21049    function deflateSyncUncompressed(literals) {
  21050      var len = literals.length;
  21051      var maxBlockLength = 0xFFFF;
  21052      var deflateBlocks = Math.ceil(len / maxBlockLength);
  21053      var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);
  21054      var pi = 0;
  21055      idat[pi++] = 0x78;
  21056      idat[pi++] = 0x9c;
  21057      var pos = 0;
  21058 
  21059      while (len > maxBlockLength) {
  21060        idat[pi++] = 0x00;
  21061        idat[pi++] = 0xff;
  21062        idat[pi++] = 0xff;
  21063        idat[pi++] = 0x00;
  21064        idat[pi++] = 0x00;
  21065        idat.set(literals.subarray(pos, pos + maxBlockLength), pi);
  21066        pi += maxBlockLength;
  21067        pos += maxBlockLength;
  21068        len -= maxBlockLength;
  21069      }
  21070 
  21071      idat[pi++] = 0x01;
  21072      idat[pi++] = len & 0xff;
  21073      idat[pi++] = len >> 8 & 0xff;
  21074      idat[pi++] = ~len & 0xffff & 0xff;
  21075      idat[pi++] = (~len & 0xffff) >> 8 & 0xff;
  21076      idat.set(literals.subarray(pos), pi);
  21077      pi += literals.length - pos;
  21078      var adler = adler32(literals, 0, literals.length);
  21079      idat[pi++] = adler >> 24 & 0xff;
  21080      idat[pi++] = adler >> 16 & 0xff;
  21081      idat[pi++] = adler >> 8 & 0xff;
  21082      idat[pi++] = adler & 0xff;
  21083      return idat;
  21084    }
  21085 
  21086    function encode(imgData, kind, forceDataSchema, isMask) {
  21087      var width = imgData.width;
  21088      var height = imgData.height;
  21089      var bitDepth, colorType, lineSize;
  21090      var bytes = imgData.data;
  21091 
  21092      switch (kind) {
  21093        case _util.ImageKind.GRAYSCALE_1BPP:
  21094          colorType = 0;
  21095          bitDepth = 1;
  21096          lineSize = width + 7 >> 3;
  21097          break;
  21098 
  21099        case _util.ImageKind.RGB_24BPP:
  21100          colorType = 2;
  21101          bitDepth = 8;
  21102          lineSize = width * 3;
  21103          break;
  21104 
  21105        case _util.ImageKind.RGBA_32BPP:
  21106          colorType = 6;
  21107          bitDepth = 8;
  21108          lineSize = width * 4;
  21109          break;
  21110 
  21111        default:
  21112          throw new Error('invalid format');
  21113      }
  21114 
  21115      var literals = new Uint8Array((1 + lineSize) * height);
  21116      var offsetLiterals = 0,
  21117          offsetBytes = 0;
  21118 
  21119      for (var y = 0; y < height; ++y) {
  21120        literals[offsetLiterals++] = 0;
  21121        literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);
  21122        offsetBytes += lineSize;
  21123        offsetLiterals += lineSize;
  21124      }
  21125 
  21126      if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {
  21127        offsetLiterals = 0;
  21128 
  21129        for (var _y = 0; _y < height; _y++) {
  21130          offsetLiterals++;
  21131 
  21132          for (var _i3 = 0; _i3 < lineSize; _i3++) {
  21133            literals[offsetLiterals++] ^= 0xFF;
  21134          }
  21135        }
  21136      }
  21137 
  21138      var ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);
  21139      var idat = deflateSync(literals);
  21140      var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;
  21141      var data = new Uint8Array(pngLength);
  21142      var offset = 0;
  21143      data.set(PNG_HEADER, offset);
  21144      offset += PNG_HEADER.length;
  21145      writePngChunk('IHDR', ihdr, data, offset);
  21146      offset += CHUNK_WRAPPER_SIZE + ihdr.length;
  21147      writePngChunk('IDATA', idat, data, offset);
  21148      offset += CHUNK_WRAPPER_SIZE + idat.length;
  21149      writePngChunk('IEND', new Uint8Array(0), data, offset);
  21150      return (0, _util.createObjectURL)(data, 'image/png', forceDataSchema);
  21151    }
  21152 
  21153    return function convertImgDataToPng(imgData, forceDataSchema, isMask) {
  21154      var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;
  21155      return encode(imgData, kind, forceDataSchema, isMask);
  21156    };
  21157  }();
  21158 
  21159  var SVGExtraState =
  21160  /*#__PURE__*/
  21161  function () {
  21162    function SVGExtraState() {
  21163      _classCallCheck(this, SVGExtraState);
  21164 
  21165      this.fontSizeScale = 1;
  21166      this.fontWeight = SVG_DEFAULTS.fontWeight;
  21167      this.fontSize = 0;
  21168      this.textMatrix = _util.IDENTITY_MATRIX;
  21169      this.fontMatrix = _util.FONT_IDENTITY_MATRIX;
  21170      this.leading = 0;
  21171      this.textRenderingMode = _util.TextRenderingMode.FILL;
  21172      this.textMatrixScale = 1;
  21173      this.x = 0;
  21174      this.y = 0;
  21175      this.lineX = 0;
  21176      this.lineY = 0;
  21177      this.charSpacing = 0;
  21178      this.wordSpacing = 0;
  21179      this.textHScale = 1;
  21180      this.textRise = 0;
  21181      this.fillColor = SVG_DEFAULTS.fillColor;
  21182      this.strokeColor = '#000000';
  21183      this.fillAlpha = 1;
  21184      this.strokeAlpha = 1;
  21185      this.lineWidth = 1;
  21186      this.lineJoin = '';
  21187      this.lineCap = '';
  21188      this.miterLimit = 0;
  21189      this.dashArray = [];
  21190      this.dashPhase = 0;
  21191      this.dependencies = [];
  21192      this.activeClipUrl = null;
  21193      this.clipGroup = null;
  21194      this.maskId = '';
  21195    }
  21196 
  21197    _createClass(SVGExtraState, [{
  21198      key: "clone",
  21199      value: function clone() {
  21200        return Object.create(this);
  21201      }
  21202    }, {
  21203      key: "setCurrentPoint",
  21204      value: function setCurrentPoint(x, y) {
  21205        this.x = x;
  21206        this.y = y;
  21207      }
  21208    }]);
  21209 
  21210    return SVGExtraState;
  21211  }();
  21212 
  21213  var clipCount = 0;
  21214  var maskCount = 0;
  21215  var shadingCount = 0;
  21216 
  21217  exports.SVGGraphics = SVGGraphics =
  21218  /*#__PURE__*/
  21219  function () {
  21220    function SVGGraphics(commonObjs, objs, forceDataSchema) {
  21221      _classCallCheck(this, SVGGraphics);
  21222 
  21223      this.svgFactory = new _display_utils.DOMSVGFactory();
  21224      this.current = new SVGExtraState();
  21225      this.transformMatrix = _util.IDENTITY_MATRIX;
  21226      this.transformStack = [];
  21227      this.extraStack = [];
  21228      this.commonObjs = commonObjs;
  21229      this.objs = objs;
  21230      this.pendingClip = null;
  21231      this.pendingEOFill = false;
  21232      this.embedFonts = false;
  21233      this.embeddedFonts = Object.create(null);
  21234      this.cssStyle = null;
  21235      this.forceDataSchema = !!forceDataSchema;
  21236      this._operatorIdMapping = [];
  21237 
  21238      for (var op in _util.OPS) {
  21239        this._operatorIdMapping[_util.OPS[op]] = op;
  21240      }
  21241    }
  21242 
  21243    _createClass(SVGGraphics, [{
  21244      key: "save",
  21245      value: function save() {
  21246        this.transformStack.push(this.transformMatrix);
  21247        var old = this.current;
  21248        this.extraStack.push(old);
  21249        this.current = old.clone();
  21250      }
  21251    }, {
  21252      key: "restore",
  21253      value: function restore() {
  21254        this.transformMatrix = this.transformStack.pop();
  21255        this.current = this.extraStack.pop();
  21256        this.pendingClip = null;
  21257        this.tgrp = null;
  21258      }
  21259    }, {
  21260      key: "group",
  21261      value: function group(items) {
  21262        this.save();
  21263        this.executeOpTree(items);
  21264        this.restore();
  21265      }
  21266    }, {
  21267      key: "loadDependencies",
  21268      value: function loadDependencies(operatorList) {
  21269        var _this = this;
  21270 
  21271        var fnArray = operatorList.fnArray;
  21272        var argsArray = operatorList.argsArray;
  21273 
  21274        for (var i = 0, ii = fnArray.length; i < ii; i++) {
  21275          if (fnArray[i] !== _util.OPS.dependency) {
  21276            continue;
  21277          }
  21278 
  21279          var _iteratorNormalCompletion2 = true;
  21280          var _didIteratorError2 = false;
  21281          var _iteratorError2 = undefined;
  21282 
  21283          try {
  21284            var _loop = function _loop() {
  21285              var obj = _step2.value;
  21286              var objsPool = obj.startsWith('g_') ? _this.commonObjs : _this.objs;
  21287              var promise = new Promise(function (resolve) {
  21288                objsPool.get(obj, resolve);
  21289              });
  21290 
  21291              _this.current.dependencies.push(promise);
  21292            };
  21293 
  21294            for (var _iterator2 = argsArray[i][Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
  21295              _loop();
  21296            }
  21297          } catch (err) {
  21298            _didIteratorError2 = true;
  21299            _iteratorError2 = err;
  21300          } finally {
  21301            try {
  21302              if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
  21303                _iterator2["return"]();
  21304              }
  21305            } finally {
  21306              if (_didIteratorError2) {
  21307                throw _iteratorError2;
  21308              }
  21309            }
  21310          }
  21311        }
  21312 
  21313        return Promise.all(this.current.dependencies);
  21314      }
  21315    }, {
  21316      key: "transform",
  21317      value: function transform(a, b, c, d, e, f) {
  21318        var transformMatrix = [a, b, c, d, e, f];
  21319        this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);
  21320        this.tgrp = null;
  21321      }
  21322    }, {
  21323      key: "getSVG",
  21324      value: function getSVG(operatorList, viewport) {
  21325        var _this2 = this;
  21326 
  21327        this.viewport = viewport;
  21328 
  21329        var svgElement = this._initialize(viewport);
  21330 
  21331        return this.loadDependencies(operatorList).then(function () {
  21332          _this2.transformMatrix = _util.IDENTITY_MATRIX;
  21333 
  21334          _this2.executeOpTree(_this2.convertOpList(operatorList));
  21335 
  21336          return svgElement;
  21337        });
  21338      }
  21339    }, {
  21340      key: "convertOpList",
  21341      value: function convertOpList(operatorList) {
  21342        var operatorIdMapping = this._operatorIdMapping;
  21343        var argsArray = operatorList.argsArray;
  21344        var fnArray = operatorList.fnArray;
  21345        var opList = [];
  21346 
  21347        for (var i = 0, ii = fnArray.length; i < ii; i++) {
  21348          var fnId = fnArray[i];
  21349          opList.push({
  21350            'fnId': fnId,
  21351            'fn': operatorIdMapping[fnId],
  21352            'args': argsArray[i]
  21353          });
  21354        }
  21355 
  21356        return opListToTree(opList);
  21357      }
  21358    }, {
  21359      key: "executeOpTree",
  21360      value: function executeOpTree(opTree) {
  21361        var _iteratorNormalCompletion3 = true;
  21362        var _didIteratorError3 = false;
  21363        var _iteratorError3 = undefined;
  21364 
  21365        try {
  21366          for (var _iterator3 = opTree[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
  21367            var opTreeElement = _step3.value;
  21368            var fn = opTreeElement.fn;
  21369            var fnId = opTreeElement.fnId;
  21370            var args = opTreeElement.args;
  21371 
  21372            switch (fnId | 0) {
  21373              case _util.OPS.beginText:
  21374                this.beginText();
  21375                break;
  21376 
  21377              case _util.OPS.dependency:
  21378                break;
  21379 
  21380              case _util.OPS.setLeading:
  21381                this.setLeading(args);
  21382                break;
  21383 
  21384              case _util.OPS.setLeadingMoveText:
  21385                this.setLeadingMoveText(args[0], args[1]);
  21386                break;
  21387 
  21388              case _util.OPS.setFont:
  21389                this.setFont(args);
  21390                break;
  21391 
  21392              case _util.OPS.showText:
  21393                this.showText(args[0]);
  21394                break;
  21395 
  21396              case _util.OPS.showSpacedText:
  21397                this.showText(args[0]);
  21398                break;
  21399 
  21400              case _util.OPS.endText:
  21401                this.endText();
  21402                break;
  21403 
  21404              case _util.OPS.moveText:
  21405                this.moveText(args[0], args[1]);
  21406                break;
  21407 
  21408              case _util.OPS.setCharSpacing:
  21409                this.setCharSpacing(args[0]);
  21410                break;
  21411 
  21412              case _util.OPS.setWordSpacing:
  21413                this.setWordSpacing(args[0]);
  21414                break;
  21415 
  21416              case _util.OPS.setHScale:
  21417                this.setHScale(args[0]);
  21418                break;
  21419 
  21420              case _util.OPS.setTextMatrix:
  21421                this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);
  21422                break;
  21423 
  21424              case _util.OPS.setTextRise:
  21425                this.setTextRise(args[0]);
  21426                break;
  21427 
  21428              case _util.OPS.setTextRenderingMode:
  21429                this.setTextRenderingMode(args[0]);
  21430                break;
  21431 
  21432              case _util.OPS.setLineWidth:
  21433                this.setLineWidth(args[0]);
  21434                break;
  21435 
  21436              case _util.OPS.setLineJoin:
  21437                this.setLineJoin(args[0]);
  21438                break;
  21439 
  21440              case _util.OPS.setLineCap:
  21441                this.setLineCap(args[0]);
  21442                break;
  21443 
  21444              case _util.OPS.setMiterLimit:
  21445                this.setMiterLimit(args[0]);
  21446                break;
  21447 
  21448              case _util.OPS.setFillRGBColor:
  21449                this.setFillRGBColor(args[0], args[1], args[2]);
  21450                break;
  21451 
  21452              case _util.OPS.setStrokeRGBColor:
  21453                this.setStrokeRGBColor(args[0], args[1], args[2]);
  21454                break;
  21455 
  21456              case _util.OPS.setStrokeColorN:
  21457                this.setStrokeColorN(args);
  21458                break;
  21459 
  21460              case _util.OPS.setFillColorN:
  21461                this.setFillColorN(args);
  21462                break;
  21463 
  21464              case _util.OPS.shadingFill:
  21465                this.shadingFill(args[0]);
  21466                break;
  21467 
  21468              case _util.OPS.setDash:
  21469                this.setDash(args[0], args[1]);
  21470                break;
  21471 
  21472              case _util.OPS.setRenderingIntent:
  21473                this.setRenderingIntent(args[0]);
  21474                break;
  21475 
  21476              case _util.OPS.setFlatness:
  21477                this.setFlatness(args[0]);
  21478                break;
  21479 
  21480              case _util.OPS.setGState:
  21481                this.setGState(args[0]);
  21482                break;
  21483 
  21484              case _util.OPS.fill:
  21485                this.fill();
  21486                break;
  21487 
  21488              case _util.OPS.eoFill:
  21489                this.eoFill();
  21490                break;
  21491 
  21492              case _util.OPS.stroke:
  21493                this.stroke();
  21494                break;
  21495 
  21496              case _util.OPS.fillStroke:
  21497                this.fillStroke();
  21498                break;
  21499 
  21500              case _util.OPS.eoFillStroke:
  21501                this.eoFillStroke();
  21502                break;
  21503 
  21504              case _util.OPS.clip:
  21505                this.clip('nonzero');
  21506                break;
  21507 
  21508              case _util.OPS.eoClip:
  21509                this.clip('evenodd');
  21510                break;
  21511 
  21512              case _util.OPS.paintSolidColorImageMask:
  21513                this.paintSolidColorImageMask();
  21514                break;
  21515 
  21516              case _util.OPS.paintJpegXObject:
  21517                this.paintJpegXObject(args[0], args[1], args[2]);
  21518                break;
  21519 
  21520              case _util.OPS.paintImageXObject:
  21521                this.paintImageXObject(args[0]);
  21522                break;
  21523 
  21524              case _util.OPS.paintInlineImageXObject:
  21525                this.paintInlineImageXObject(args[0]);
  21526                break;
  21527 
  21528              case _util.OPS.paintImageMaskXObject:
  21529                this.paintImageMaskXObject(args[0]);
  21530                break;
  21531 
  21532              case _util.OPS.paintFormXObjectBegin:
  21533                this.paintFormXObjectBegin(args[0], args[1]);
  21534                break;
  21535 
  21536              case _util.OPS.paintFormXObjectEnd:
  21537                this.paintFormXObjectEnd();
  21538                break;
  21539 
  21540              case _util.OPS.closePath:
  21541                this.closePath();
  21542                break;
  21543 
  21544              case _util.OPS.closeStroke:
  21545                this.closeStroke();
  21546                break;
  21547 
  21548              case _util.OPS.closeFillStroke:
  21549                this.closeFillStroke();
  21550                break;
  21551 
  21552              case _util.OPS.closeEOFillStroke:
  21553                this.closeEOFillStroke();
  21554                break;
  21555 
  21556              case _util.OPS.nextLine:
  21557                this.nextLine();
  21558                break;
  21559 
  21560              case _util.OPS.transform:
  21561                this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);
  21562                break;
  21563 
  21564              case _util.OPS.constructPath:
  21565                this.constructPath(args[0], args[1]);
  21566                break;
  21567 
  21568              case _util.OPS.endPath:
  21569                this.endPath();
  21570                break;
  21571 
  21572              case 92:
  21573                this.group(opTreeElement.items);
  21574                break;
  21575 
  21576              default:
  21577                (0, _util.warn)("Unimplemented operator ".concat(fn));
  21578                break;
  21579            }
  21580          }
  21581        } catch (err) {
  21582          _didIteratorError3 = true;
  21583          _iteratorError3 = err;
  21584        } finally {
  21585          try {
  21586            if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
  21587              _iterator3["return"]();
  21588            }
  21589          } finally {
  21590            if (_didIteratorError3) {
  21591              throw _iteratorError3;
  21592            }
  21593          }
  21594        }
  21595      }
  21596    }, {
  21597      key: "setWordSpacing",
  21598      value: function setWordSpacing(wordSpacing) {
  21599        this.current.wordSpacing = wordSpacing;
  21600      }
  21601    }, {
  21602      key: "setCharSpacing",
  21603      value: function setCharSpacing(charSpacing) {
  21604        this.current.charSpacing = charSpacing;
  21605      }
  21606    }, {
  21607      key: "nextLine",
  21608      value: function nextLine() {
  21609        this.moveText(0, this.current.leading);
  21610      }
  21611    }, {
  21612      key: "setTextMatrix",
  21613      value: function setTextMatrix(a, b, c, d, e, f) {
  21614        var current = this.current;
  21615        current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];
  21616        current.textMatrixScale = Math.sqrt(a * a + b * b);
  21617        current.x = current.lineX = 0;
  21618        current.y = current.lineY = 0;
  21619        current.xcoords = [];
  21620        current.tspan = this.svgFactory.createElement('svg:tspan');
  21621        current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);
  21622        current.tspan.setAttributeNS(null, 'font-size', "".concat(pf(current.fontSize), "px"));
  21623        current.tspan.setAttributeNS(null, 'y', pf(-current.y));
  21624        current.txtElement = this.svgFactory.createElement('svg:text');
  21625        current.txtElement.appendChild(current.tspan);
  21626      }
  21627    }, {
  21628      key: "beginText",
  21629      value: function beginText() {
  21630        var current = this.current;
  21631        current.x = current.lineX = 0;
  21632        current.y = current.lineY = 0;
  21633        current.textMatrix = _util.IDENTITY_MATRIX;
  21634        current.lineMatrix = _util.IDENTITY_MATRIX;
  21635        current.textMatrixScale = 1;
  21636        current.tspan = this.svgFactory.createElement('svg:tspan');
  21637        current.txtElement = this.svgFactory.createElement('svg:text');
  21638        current.txtgrp = this.svgFactory.createElement('svg:g');
  21639        current.xcoords = [];
  21640      }
  21641    }, {
  21642      key: "moveText",
  21643      value: function moveText(x, y) {
  21644        var current = this.current;
  21645        current.x = current.lineX += x;
  21646        current.y = current.lineY += y;
  21647        current.xcoords = [];
  21648        current.tspan = this.svgFactory.createElement('svg:tspan');
  21649        current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);
  21650        current.tspan.setAttributeNS(null, 'font-size', "".concat(pf(current.fontSize), "px"));
  21651        current.tspan.setAttributeNS(null, 'y', pf(-current.y));
  21652      }
  21653    }, {
  21654      key: "showText",
  21655      value: function showText(glyphs) {
  21656        var current = this.current;
  21657        var font = current.font;
  21658        var fontSize = current.fontSize;
  21659 
  21660        if (fontSize === 0) {
  21661          return;
  21662        }
  21663 
  21664        var charSpacing = current.charSpacing;
  21665        var wordSpacing = current.wordSpacing;
  21666        var fontDirection = current.fontDirection;
  21667        var textHScale = current.textHScale * fontDirection;
  21668        var vertical = font.vertical;
  21669        var widthAdvanceScale = fontSize * current.fontMatrix[0];
  21670        var x = 0;
  21671        var _iteratorNormalCompletion4 = true;
  21672        var _didIteratorError4 = false;
  21673        var _iteratorError4 = undefined;
  21674 
  21675        try {
  21676          for (var _iterator4 = glyphs[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
  21677            var glyph = _step4.value;
  21678 
  21679            if (glyph === null) {
  21680              x += fontDirection * wordSpacing;
  21681              continue;
  21682            } else if ((0, _util.isNum)(glyph)) {
  21683              x += -glyph * fontSize * 0.001;
  21684              continue;
  21685            }
  21686 
  21687            var width = glyph.width;
  21688            var character = glyph.fontChar;
  21689            var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
  21690            var charWidth = width * widthAdvanceScale + spacing * fontDirection;
  21691 
  21692            if (!glyph.isInFont && !font.missingFile) {
  21693              x += charWidth;
  21694              continue;
  21695            }
  21696 
  21697            current.xcoords.push(current.x + x * textHScale);
  21698            current.tspan.textContent += character;
  21699            x += charWidth;
  21700          }
  21701        } catch (err) {
  21702          _didIteratorError4 = true;
  21703          _iteratorError4 = err;
  21704        } finally {
  21705          try {
  21706            if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) {
  21707              _iterator4["return"]();
  21708            }
  21709          } finally {
  21710            if (_didIteratorError4) {
  21711              throw _iteratorError4;
  21712            }
  21713          }
  21714        }
  21715 
  21716        if (vertical) {
  21717          current.y -= x * textHScale;
  21718        } else {
  21719          current.x += x * textHScale;
  21720        }
  21721 
  21722        current.tspan.setAttributeNS(null, 'x', current.xcoords.map(pf).join(' '));
  21723        current.tspan.setAttributeNS(null, 'y', pf(-current.y));
  21724        current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);
  21725        current.tspan.setAttributeNS(null, 'font-size', "".concat(pf(current.fontSize), "px"));
  21726 
  21727        if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {
  21728          current.tspan.setAttributeNS(null, 'font-style', current.fontStyle);
  21729        }
  21730 
  21731        if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {
  21732          current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight);
  21733        }
  21734 
  21735        var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;
  21736 
  21737        if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
  21738          if (current.fillColor !== SVG_DEFAULTS.fillColor) {
  21739            current.tspan.setAttributeNS(null, 'fill', current.fillColor);
  21740          }
  21741 
  21742          if (current.fillAlpha < 1) {
  21743            current.tspan.setAttributeNS(null, 'fill-opacity', current.fillAlpha);
  21744          }
  21745        } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {
  21746          current.tspan.setAttributeNS(null, 'fill', 'transparent');
  21747        } else {
  21748          current.tspan.setAttributeNS(null, 'fill', 'none');
  21749        }
  21750 
  21751        if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
  21752          var lineWidthScale = 1 / (current.textMatrixScale || 1);
  21753 
  21754          this._setStrokeAttributes(current.tspan, lineWidthScale);
  21755        }
  21756 
  21757        var textMatrix = current.textMatrix;
  21758 
  21759        if (current.textRise !== 0) {
  21760          textMatrix = textMatrix.slice();
  21761          textMatrix[5] += current.textRise;
  21762        }
  21763 
  21764        current.txtElement.setAttributeNS(null, 'transform', "".concat(pm(textMatrix), " scale(1, -1)"));
  21765        current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve');
  21766        current.txtElement.appendChild(current.tspan);
  21767        current.txtgrp.appendChild(current.txtElement);
  21768 
  21769        this._ensureTransformGroup().appendChild(current.txtElement);
  21770      }
  21771    }, {
  21772      key: "setLeadingMoveText",
  21773      value: function setLeadingMoveText(x, y) {
  21774        this.setLeading(-y);
  21775        this.moveText(x, y);
  21776      }
  21777    }, {
  21778      key: "addFontStyle",
  21779      value: function addFontStyle(fontObj) {
  21780        if (!this.cssStyle) {
  21781          this.cssStyle = this.svgFactory.createElement('svg:style');
  21782          this.cssStyle.setAttributeNS(null, 'type', 'text/css');
  21783          this.defs.appendChild(this.cssStyle);
  21784        }
  21785 
  21786        var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema);
  21787        this.cssStyle.textContent += "@font-face { font-family: \"".concat(fontObj.loadedName, "\";") + " src: url(".concat(url, "); }\n");
  21788      }
  21789    }, {
  21790      key: "setFont",
  21791      value: function setFont(details) {
  21792        var current = this.current;
  21793        var fontObj = this.commonObjs.get(details[0]);
  21794        var size = details[1];
  21795        current.font = fontObj;
  21796 
  21797        if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) {
  21798          this.addFontStyle(fontObj);
  21799          this.embeddedFonts[fontObj.loadedName] = fontObj;
  21800        }
  21801 
  21802        current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;
  21803        var bold = fontObj.black ? fontObj.bold ? 'bolder' : 'bold' : fontObj.bold ? 'bold' : 'normal';
  21804        var italic = fontObj.italic ? 'italic' : 'normal';
  21805 
  21806        if (size < 0) {
  21807          size = -size;
  21808          current.fontDirection = -1;
  21809        } else {
  21810          current.fontDirection = 1;
  21811        }
  21812 
  21813        current.fontSize = size;
  21814        current.fontFamily = fontObj.loadedName;
  21815        current.fontWeight = bold;
  21816        current.fontStyle = italic;
  21817        current.tspan = this.svgFactory.createElement('svg:tspan');
  21818        current.tspan.setAttributeNS(null, 'y', pf(-current.y));
  21819        current.xcoords = [];
  21820      }
  21821    }, {
  21822      key: "endText",
  21823      value: function endText() {
  21824        var current = this.current;
  21825 
  21826        if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) {
  21827          current.element = current.txtElement;
  21828          this.clip('nonzero');
  21829          this.endPath();
  21830        }
  21831      }
  21832    }, {
  21833      key: "setLineWidth",
  21834      value: function setLineWidth(width) {
  21835        if (width > 0) {
  21836          this.current.lineWidth = width;
  21837        }
  21838      }
  21839    }, {
  21840      key: "setLineCap",
  21841      value: function setLineCap(style) {
  21842        this.current.lineCap = LINE_CAP_STYLES[style];
  21843      }
  21844    }, {
  21845      key: "setLineJoin",
  21846      value: function setLineJoin(style) {
  21847        this.current.lineJoin = LINE_JOIN_STYLES[style];
  21848      }
  21849    }, {
  21850      key: "setMiterLimit",
  21851      value: function setMiterLimit(limit) {
  21852        this.current.miterLimit = limit;
  21853      }
  21854    }, {
  21855      key: "setStrokeAlpha",
  21856      value: function setStrokeAlpha(strokeAlpha) {
  21857        this.current.strokeAlpha = strokeAlpha;
  21858      }
  21859    }, {
  21860      key: "setStrokeRGBColor",
  21861      value: function setStrokeRGBColor(r, g, b) {
  21862        this.current.strokeColor = _util.Util.makeCssRgb(r, g, b);
  21863      }
  21864    }, {
  21865      key: "setFillAlpha",
  21866      value: function setFillAlpha(fillAlpha) {
  21867        this.current.fillAlpha = fillAlpha;
  21868      }
  21869    }, {
  21870      key: "setFillRGBColor",
  21871      value: function setFillRGBColor(r, g, b) {
  21872        this.current.fillColor = _util.Util.makeCssRgb(r, g, b);
  21873        this.current.tspan = this.svgFactory.createElement('svg:tspan');
  21874        this.current.xcoords = [];
  21875      }
  21876    }, {
  21877      key: "setStrokeColorN",
  21878      value: function setStrokeColorN(args) {
  21879        this.current.strokeColor = this._makeColorN_Pattern(args);
  21880      }
  21881    }, {
  21882      key: "setFillColorN",
  21883      value: function setFillColorN(args) {
  21884        this.current.fillColor = this._makeColorN_Pattern(args);
  21885      }
  21886    }, {
  21887      key: "shadingFill",
  21888      value: function shadingFill(args) {
  21889        var width = this.viewport.width;
  21890        var height = this.viewport.height;
  21891 
  21892        var inv = _util.Util.inverseTransform(this.transformMatrix);
  21893 
  21894        var bl = _util.Util.applyTransform([0, 0], inv);
  21895 
  21896        var br = _util.Util.applyTransform([0, height], inv);
  21897 
  21898        var ul = _util.Util.applyTransform([width, 0], inv);
  21899 
  21900        var ur = _util.Util.applyTransform([width, height], inv);
  21901 
  21902        var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);
  21903        var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);
  21904        var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);
  21905        var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);
  21906        var rect = this.svgFactory.createElement('svg:rect');
  21907        rect.setAttributeNS(null, 'x', x0);
  21908        rect.setAttributeNS(null, 'y', y0);
  21909        rect.setAttributeNS(null, 'width', x1 - x0);
  21910        rect.setAttributeNS(null, 'height', y1 - y0);
  21911        rect.setAttributeNS(null, 'fill', this._makeShadingPattern(args));
  21912 
  21913        this._ensureTransformGroup().appendChild(rect);
  21914      }
  21915    }, {
  21916      key: "_makeColorN_Pattern",
  21917      value: function _makeColorN_Pattern(args) {
  21918        if (args[0] === 'TilingPattern') {
  21919          return this._makeTilingPattern(args);
  21920        }
  21921 
  21922        return this._makeShadingPattern(args);
  21923      }
  21924    }, {
  21925      key: "_makeTilingPattern",
  21926      value: function _makeTilingPattern(args) {
  21927        var color = args[1];
  21928        var operatorList = args[2];
  21929        var matrix = args[3] || _util.IDENTITY_MATRIX;
  21930 
  21931        var _args$ = _slicedToArray(args[4], 4),
  21932            x0 = _args$[0],
  21933            y0 = _args$[1],
  21934            x1 = _args$[2],
  21935            y1 = _args$[3];
  21936 
  21937        var xstep = args[5];
  21938        var ystep = args[6];
  21939        var paintType = args[7];
  21940        var tilingId = "shading".concat(shadingCount++);
  21941 
  21942        var _Util$applyTransform = _util.Util.applyTransform([x0, y0], matrix),
  21943            _Util$applyTransform2 = _slicedToArray(_Util$applyTransform, 2),
  21944            tx0 = _Util$applyTransform2[0],
  21945            ty0 = _Util$applyTransform2[1];
  21946 
  21947        var _Util$applyTransform3 = _util.Util.applyTransform([x1, y1], matrix),
  21948            _Util$applyTransform4 = _slicedToArray(_Util$applyTransform3, 2),
  21949            tx1 = _Util$applyTransform4[0],
  21950            ty1 = _Util$applyTransform4[1];
  21951 
  21952        var _Util$singularValueDe = _util.Util.singularValueDecompose2dScale(matrix),
  21953            _Util$singularValueDe2 = _slicedToArray(_Util$singularValueDe, 2),
  21954            xscale = _Util$singularValueDe2[0],
  21955            yscale = _Util$singularValueDe2[1];
  21956 
  21957        var txstep = xstep * xscale;
  21958        var tystep = ystep * yscale;
  21959        var tiling = this.svgFactory.createElement('svg:pattern');
  21960        tiling.setAttributeNS(null, 'id', tilingId);
  21961        tiling.setAttributeNS(null, 'patternUnits', 'userSpaceOnUse');
  21962        tiling.setAttributeNS(null, 'width', txstep);
  21963        tiling.setAttributeNS(null, 'height', tystep);
  21964        tiling.setAttributeNS(null, 'x', "".concat(tx0));
  21965        tiling.setAttributeNS(null, 'y', "".concat(ty0));
  21966        var svg = this.svg;
  21967        var transformMatrix = this.transformMatrix;
  21968        var fillColor = this.current.fillColor;
  21969        var strokeColor = this.current.strokeColor;
  21970        var bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);
  21971        this.svg = bbox;
  21972        this.transformMatrix = matrix;
  21973 
  21974        if (paintType === 2) {
  21975          var cssColor = _util.Util.makeCssRgb.apply(_util.Util, _toConsumableArray(color));
  21976 
  21977          this.current.fillColor = cssColor;
  21978          this.current.strokeColor = cssColor;
  21979        }
  21980 
  21981        this.executeOpTree(this.convertOpList(operatorList));
  21982        this.svg = svg;
  21983        this.transformMatrix = transformMatrix;
  21984        this.current.fillColor = fillColor;
  21985        this.current.strokeColor = strokeColor;
  21986        tiling.appendChild(bbox.childNodes[0]);
  21987        this.defs.appendChild(tiling);
  21988        return "url(#".concat(tilingId, ")");
  21989      }
  21990    }, {
  21991      key: "_makeShadingPattern",
  21992      value: function _makeShadingPattern(args) {
  21993        switch (args[0]) {
  21994          case 'RadialAxial':
  21995            var shadingId = "shading".concat(shadingCount++);
  21996            var colorStops = args[2];
  21997            var gradient;
  21998 
  21999            switch (args[1]) {
  22000              case 'axial':
  22001                var point0 = args[3];
  22002                var point1 = args[4];
  22003                gradient = this.svgFactory.createElement('svg:linearGradient');
  22004                gradient.setAttributeNS(null, 'id', shadingId);
  22005                gradient.setAttributeNS(null, 'gradientUnits', 'userSpaceOnUse');
  22006                gradient.setAttributeNS(null, 'x1', point0[0]);
  22007                gradient.setAttributeNS(null, 'y1', point0[1]);
  22008                gradient.setAttributeNS(null, 'x2', point1[0]);
  22009                gradient.setAttributeNS(null, 'y2', point1[1]);
  22010                break;
  22011 
  22012              case 'radial':
  22013                var focalPoint = args[3];
  22014                var circlePoint = args[4];
  22015                var focalRadius = args[5];
  22016                var circleRadius = args[6];
  22017                gradient = this.svgFactory.createElement('svg:radialGradient');
  22018                gradient.setAttributeNS(null, 'id', shadingId);
  22019                gradient.setAttributeNS(null, 'gradientUnits', 'userSpaceOnUse');
  22020                gradient.setAttributeNS(null, 'cx', circlePoint[0]);
  22021                gradient.setAttributeNS(null, 'cy', circlePoint[1]);
  22022                gradient.setAttributeNS(null, 'r', circleRadius);
  22023                gradient.setAttributeNS(null, 'fx', focalPoint[0]);
  22024                gradient.setAttributeNS(null, 'fy', focalPoint[1]);
  22025                gradient.setAttributeNS(null, 'fr', focalRadius);
  22026                break;
  22027 
  22028              default:
  22029                throw new Error("Unknown RadialAxial type: ".concat(args[1]));
  22030            }
  22031 
  22032            var _iteratorNormalCompletion5 = true;
  22033            var _didIteratorError5 = false;
  22034            var _iteratorError5 = undefined;
  22035 
  22036            try {
  22037              for (var _iterator5 = colorStops[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
  22038                var colorStop = _step5.value;
  22039                var stop = this.svgFactory.createElement('svg:stop');
  22040                stop.setAttributeNS(null, 'offset', colorStop[0]);
  22041                stop.setAttributeNS(null, 'stop-color', colorStop[1]);
  22042                gradient.appendChild(stop);
  22043              }
  22044            } catch (err) {
  22045              _didIteratorError5 = true;
  22046              _iteratorError5 = err;
  22047            } finally {
  22048              try {
  22049                if (!_iteratorNormalCompletion5 && _iterator5["return"] != null) {
  22050                  _iterator5["return"]();
  22051                }
  22052              } finally {
  22053                if (_didIteratorError5) {
  22054                  throw _iteratorError5;
  22055                }
  22056              }
  22057            }
  22058 
  22059            this.defs.appendChild(gradient);
  22060            return "url(#".concat(shadingId, ")");
  22061 
  22062          case 'Mesh':
  22063            (0, _util.warn)('Unimplemented pattern Mesh');
  22064            return null;
  22065 
  22066          case 'Dummy':
  22067            return 'hotpink';
  22068 
  22069          default:
  22070            throw new Error("Unknown IR type: ".concat(args[0]));
  22071        }
  22072      }
  22073    }, {
  22074      key: "setDash",
  22075      value: function setDash(dashArray, dashPhase) {
  22076        this.current.dashArray = dashArray;
  22077        this.current.dashPhase = dashPhase;
  22078      }
  22079    }, {
  22080      key: "constructPath",
  22081      value: function constructPath(ops, args) {
  22082        var current = this.current;
  22083        var x = current.x,
  22084            y = current.y;
  22085        var d = [];
  22086        var j = 0;
  22087        var _iteratorNormalCompletion6 = true;
  22088        var _didIteratorError6 = false;
  22089        var _iteratorError6 = undefined;
  22090 
  22091        try {
  22092          for (var _iterator6 = ops[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
  22093            var op = _step6.value;
  22094 
  22095            switch (op | 0) {
  22096              case _util.OPS.rectangle:
  22097                x = args[j++];
  22098                y = args[j++];
  22099                var width = args[j++];
  22100                var height = args[j++];
  22101                var xw = x + width;
  22102                var yh = y + height;
  22103                d.push('M', pf(x), pf(y), 'L', pf(xw), pf(y), 'L', pf(xw), pf(yh), 'L', pf(x), pf(yh), 'Z');
  22104                break;
  22105 
  22106              case _util.OPS.moveTo:
  22107                x = args[j++];
  22108                y = args[j++];
  22109                d.push('M', pf(x), pf(y));
  22110                break;
  22111 
  22112              case _util.OPS.lineTo:
  22113                x = args[j++];
  22114                y = args[j++];
  22115                d.push('L', pf(x), pf(y));
  22116                break;
  22117 
  22118              case _util.OPS.curveTo:
  22119                x = args[j + 4];
  22120                y = args[j + 5];
  22121                d.push('C', pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));
  22122                j += 6;
  22123                break;
  22124 
  22125              case _util.OPS.curveTo2:
  22126                x = args[j + 2];
  22127                y = args[j + 3];
  22128                d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));
  22129                j += 4;
  22130                break;
  22131 
  22132              case _util.OPS.curveTo3:
  22133                x = args[j + 2];
  22134                y = args[j + 3];
  22135                d.push('C', pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));
  22136                j += 4;
  22137                break;
  22138 
  22139              case _util.OPS.closePath:
  22140                d.push('Z');
  22141                break;
  22142            }
  22143          }
  22144        } catch (err) {
  22145          _didIteratorError6 = true;
  22146          _iteratorError6 = err;
  22147        } finally {
  22148          try {
  22149            if (!_iteratorNormalCompletion6 && _iterator6["return"] != null) {
  22150              _iterator6["return"]();
  22151            }
  22152          } finally {
  22153            if (_didIteratorError6) {
  22154              throw _iteratorError6;
  22155            }
  22156          }
  22157        }
  22158 
  22159        d = d.join(' ');
  22160 
  22161        if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) {
  22162          d = current.path.getAttributeNS(null, 'd') + d;
  22163        } else {
  22164          current.path = this.svgFactory.createElement('svg:path');
  22165 
  22166          this._ensureTransformGroup().appendChild(current.path);
  22167        }
  22168 
  22169        current.path.setAttributeNS(null, 'd', d);
  22170        current.path.setAttributeNS(null, 'fill', 'none');
  22171        current.element = current.path;
  22172        current.setCurrentPoint(x, y);
  22173      }
  22174    }, {
  22175      key: "endPath",
  22176      value: function endPath() {
  22177        var current = this.current;
  22178        current.path = null;
  22179 
  22180        if (!this.pendingClip) {
  22181          return;
  22182        }
  22183 
  22184        if (!current.element) {
  22185          this.pendingClip = null;
  22186          return;
  22187        }
  22188 
  22189        var clipId = "clippath".concat(clipCount++);
  22190        var clipPath = this.svgFactory.createElement('svg:clipPath');
  22191        clipPath.setAttributeNS(null, 'id', clipId);
  22192        clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix));
  22193        var clipElement = current.element.cloneNode(true);
  22194 
  22195        if (this.pendingClip === 'evenodd') {
  22196          clipElement.setAttributeNS(null, 'clip-rule', 'evenodd');
  22197        } else {
  22198          clipElement.setAttributeNS(null, 'clip-rule', 'nonzero');
  22199        }
  22200 
  22201        this.pendingClip = null;
  22202        clipPath.appendChild(clipElement);
  22203        this.defs.appendChild(clipPath);
  22204 
  22205        if (current.activeClipUrl) {
  22206          current.clipGroup = null;
  22207          this.extraStack.forEach(function (prev) {
  22208            prev.clipGroup = null;
  22209          });
  22210          clipPath.setAttributeNS(null, 'clip-path', current.activeClipUrl);
  22211        }
  22212 
  22213        current.activeClipUrl = "url(#".concat(clipId, ")");
  22214        this.tgrp = null;
  22215      }
  22216    }, {
  22217      key: "clip",
  22218      value: function clip(type) {
  22219        this.pendingClip = type;
  22220      }
  22221    }, {
  22222      key: "closePath",
  22223      value: function closePath() {
  22224        var current = this.current;
  22225 
  22226        if (current.path) {
  22227          var d = "".concat(current.path.getAttributeNS(null, 'd'), "Z");
  22228          current.path.setAttributeNS(null, 'd', d);
  22229        }
  22230      }
  22231    }, {
  22232      key: "setLeading",
  22233      value: function setLeading(leading) {
  22234        this.current.leading = -leading;
  22235      }
  22236    }, {
  22237      key: "setTextRise",
  22238      value: function setTextRise(textRise) {
  22239        this.current.textRise = textRise;
  22240      }
  22241    }, {
  22242      key: "setTextRenderingMode",
  22243      value: function setTextRenderingMode(textRenderingMode) {
  22244        this.current.textRenderingMode = textRenderingMode;
  22245      }
  22246    }, {
  22247      key: "setHScale",
  22248      value: function setHScale(scale) {
  22249        this.current.textHScale = scale / 100;
  22250      }
  22251    }, {
  22252      key: "setRenderingIntent",
  22253      value: function setRenderingIntent(intent) {}
  22254    }, {
  22255      key: "setFlatness",
  22256      value: function setFlatness(flatness) {}
  22257    }, {
  22258      key: "setGState",
  22259      value: function setGState(states) {
  22260        var _iteratorNormalCompletion7 = true;
  22261        var _didIteratorError7 = false;
  22262        var _iteratorError7 = undefined;
  22263 
  22264        try {
  22265          for (var _iterator7 = states[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {
  22266            var _step7$value = _slicedToArray(_step7.value, 2),
  22267                key = _step7$value[0],
  22268                value = _step7$value[1];
  22269 
  22270            switch (key) {
  22271              case 'LW':
  22272                this.setLineWidth(value);
  22273                break;
  22274 
  22275              case 'LC':
  22276                this.setLineCap(value);
  22277                break;
  22278 
  22279              case 'LJ':
  22280                this.setLineJoin(value);
  22281                break;
  22282 
  22283              case 'ML':
  22284                this.setMiterLimit(value);
  22285                break;
  22286 
  22287              case 'D':
  22288                this.setDash(value[0], value[1]);
  22289                break;
  22290 
  22291              case 'RI':
  22292                this.setRenderingIntent(value);
  22293                break;
  22294 
  22295              case 'FL':
  22296                this.setFlatness(value);
  22297                break;
  22298 
  22299              case 'Font':
  22300                this.setFont(value);
  22301                break;
  22302 
  22303              case 'CA':
  22304                this.setStrokeAlpha(value);
  22305                break;
  22306 
  22307              case 'ca':
  22308                this.setFillAlpha(value);
  22309                break;
  22310 
  22311              default:
  22312                (0, _util.warn)("Unimplemented graphic state operator ".concat(key));
  22313                break;
  22314            }
  22315          }
  22316        } catch (err) {
  22317          _didIteratorError7 = true;
  22318          _iteratorError7 = err;
  22319        } finally {
  22320          try {
  22321            if (!_iteratorNormalCompletion7 && _iterator7["return"] != null) {
  22322              _iterator7["return"]();
  22323            }
  22324          } finally {
  22325            if (_didIteratorError7) {
  22326              throw _iteratorError7;
  22327            }
  22328          }
  22329        }
  22330      }
  22331    }, {
  22332      key: "fill",
  22333      value: function fill() {
  22334        var current = this.current;
  22335 
  22336        if (current.element) {
  22337          current.element.setAttributeNS(null, 'fill', current.fillColor);
  22338          current.element.setAttributeNS(null, 'fill-opacity', current.fillAlpha);
  22339          this.endPath();
  22340        }
  22341      }
  22342    }, {
  22343      key: "stroke",
  22344      value: function stroke() {
  22345        var current = this.current;
  22346 
  22347        if (current.element) {
  22348          this._setStrokeAttributes(current.element);
  22349 
  22350          current.element.setAttributeNS(null, 'fill', 'none');
  22351          this.endPath();
  22352        }
  22353      }
  22354    }, {
  22355      key: "_setStrokeAttributes",
  22356      value: function _setStrokeAttributes(element) {
  22357        var lineWidthScale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
  22358        var current = this.current;
  22359        var dashArray = current.dashArray;
  22360 
  22361        if (lineWidthScale !== 1 && dashArray.length > 0) {
  22362          dashArray = dashArray.map(function (value) {
  22363            return lineWidthScale * value;
  22364          });
  22365        }
  22366 
  22367        element.setAttributeNS(null, 'stroke', current.strokeColor);
  22368        element.setAttributeNS(null, 'stroke-opacity', current.strokeAlpha);
  22369        element.setAttributeNS(null, 'stroke-miterlimit', pf(current.miterLimit));
  22370        element.setAttributeNS(null, 'stroke-linecap', current.lineCap);
  22371        element.setAttributeNS(null, 'stroke-linejoin', current.lineJoin);
  22372        element.setAttributeNS(null, 'stroke-width', pf(lineWidthScale * current.lineWidth) + 'px');
  22373        element.setAttributeNS(null, 'stroke-dasharray', dashArray.map(pf).join(' '));
  22374        element.setAttributeNS(null, 'stroke-dashoffset', pf(lineWidthScale * current.dashPhase) + 'px');
  22375      }
  22376    }, {
  22377      key: "eoFill",
  22378      value: function eoFill() {
  22379        if (this.current.element) {
  22380          this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');
  22381        }
  22382 
  22383        this.fill();
  22384      }
  22385    }, {
  22386      key: "fillStroke",
  22387      value: function fillStroke() {
  22388        this.stroke();
  22389        this.fill();
  22390      }
  22391    }, {
  22392      key: "eoFillStroke",
  22393      value: function eoFillStroke() {
  22394        if (this.current.element) {
  22395          this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');
  22396        }
  22397 
  22398        this.fillStroke();
  22399      }
  22400    }, {
  22401      key: "closeStroke",
  22402      value: function closeStroke() {
  22403        this.closePath();
  22404        this.stroke();
  22405      }
  22406    }, {
  22407      key: "closeFillStroke",
  22408      value: function closeFillStroke() {
  22409        this.closePath();
  22410        this.fillStroke();
  22411      }
  22412    }, {
  22413      key: "closeEOFillStroke",
  22414      value: function closeEOFillStroke() {
  22415        this.closePath();
  22416        this.eoFillStroke();
  22417      }
  22418    }, {
  22419      key: "paintSolidColorImageMask",
  22420      value: function paintSolidColorImageMask() {
  22421        var rect = this.svgFactory.createElement('svg:rect');
  22422        rect.setAttributeNS(null, 'x', '0');
  22423        rect.setAttributeNS(null, 'y', '0');
  22424        rect.setAttributeNS(null, 'width', '1px');
  22425        rect.setAttributeNS(null, 'height', '1px');
  22426        rect.setAttributeNS(null, 'fill', this.current.fillColor);
  22427 
  22428        this._ensureTransformGroup().appendChild(rect);
  22429      }
  22430    }, {
  22431      key: "paintJpegXObject",
  22432      value: function paintJpegXObject(objId, w, h) {
  22433        var imgObj = this.objs.get(objId);
  22434        var imgEl = this.svgFactory.createElement('svg:image');
  22435        imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src);
  22436        imgEl.setAttributeNS(null, 'width', pf(w));
  22437        imgEl.setAttributeNS(null, 'height', pf(h));
  22438        imgEl.setAttributeNS(null, 'x', '0');
  22439        imgEl.setAttributeNS(null, 'y', pf(-h));
  22440        imgEl.setAttributeNS(null, 'transform', "scale(".concat(pf(1 / w), " ").concat(pf(-1 / h), ")"));
  22441 
  22442        this._ensureTransformGroup().appendChild(imgEl);
  22443      }
  22444    }, {
  22445      key: "paintImageXObject",
  22446      value: function paintImageXObject(objId) {
  22447        var imgData = this.objs.get(objId);
  22448 
  22449        if (!imgData) {
  22450          (0, _util.warn)("Dependent image with object ID ".concat(objId, " is not ready yet"));
  22451          return;
  22452        }
  22453 
  22454        this.paintInlineImageXObject(imgData);
  22455      }
  22456    }, {
  22457      key: "paintInlineImageXObject",
  22458      value: function paintInlineImageXObject(imgData, mask) {
  22459        var width = imgData.width;
  22460        var height = imgData.height;
  22461        var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);
  22462        var cliprect = this.svgFactory.createElement('svg:rect');
  22463        cliprect.setAttributeNS(null, 'x', '0');
  22464        cliprect.setAttributeNS(null, 'y', '0');
  22465        cliprect.setAttributeNS(null, 'width', pf(width));
  22466        cliprect.setAttributeNS(null, 'height', pf(height));
  22467        this.current.element = cliprect;
  22468        this.clip('nonzero');
  22469        var imgEl = this.svgFactory.createElement('svg:image');
  22470        imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgSrc);
  22471        imgEl.setAttributeNS(null, 'x', '0');
  22472        imgEl.setAttributeNS(null, 'y', pf(-height));
  22473        imgEl.setAttributeNS(null, 'width', pf(width) + 'px');
  22474        imgEl.setAttributeNS(null, 'height', pf(height) + 'px');
  22475        imgEl.setAttributeNS(null, 'transform', "scale(".concat(pf(1 / width), " ").concat(pf(-1 / height), ")"));
  22476 
  22477        if (mask) {
  22478          mask.appendChild(imgEl);
  22479        } else {
  22480          this._ensureTransformGroup().appendChild(imgEl);
  22481        }
  22482      }
  22483    }, {
  22484      key: "paintImageMaskXObject",
  22485      value: function paintImageMaskXObject(imgData) {
  22486        var current = this.current;
  22487        var width = imgData.width;
  22488        var height = imgData.height;
  22489        var fillColor = current.fillColor;
  22490        current.maskId = "mask".concat(maskCount++);
  22491        var mask = this.svgFactory.createElement('svg:mask');
  22492        mask.setAttributeNS(null, 'id', current.maskId);
  22493        var rect = this.svgFactory.createElement('svg:rect');
  22494        rect.setAttributeNS(null, 'x', '0');
  22495        rect.setAttributeNS(null, 'y', '0');
  22496        rect.setAttributeNS(null, 'width', pf(width));
  22497        rect.setAttributeNS(null, 'height', pf(height));
  22498        rect.setAttributeNS(null, 'fill', fillColor);
  22499        rect.setAttributeNS(null, 'mask', "url(#".concat(current.maskId, ")"));
  22500        this.defs.appendChild(mask);
  22501 
  22502        this._ensureTransformGroup().appendChild(rect);
  22503 
  22504        this.paintInlineImageXObject(imgData, mask);
  22505      }
  22506    }, {
  22507      key: "paintFormXObjectBegin",
  22508      value: function paintFormXObjectBegin(matrix, bbox) {
  22509        if (Array.isArray(matrix) && matrix.length === 6) {
  22510          this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);
  22511        }
  22512 
  22513        if (bbox) {
  22514          var width = bbox[2] - bbox[0];
  22515          var height = bbox[3] - bbox[1];
  22516          var cliprect = this.svgFactory.createElement('svg:rect');
  22517          cliprect.setAttributeNS(null, 'x', bbox[0]);
  22518          cliprect.setAttributeNS(null, 'y', bbox[1]);
  22519          cliprect.setAttributeNS(null, 'width', pf(width));
  22520          cliprect.setAttributeNS(null, 'height', pf(height));
  22521          this.current.element = cliprect;
  22522          this.clip('nonzero');
  22523          this.endPath();
  22524        }
  22525      }
  22526    }, {
  22527      key: "paintFormXObjectEnd",
  22528      value: function paintFormXObjectEnd() {}
  22529    }, {
  22530      key: "_initialize",
  22531      value: function _initialize(viewport) {
  22532        var svg = this.svgFactory.create(viewport.width, viewport.height);
  22533        var definitions = this.svgFactory.createElement('svg:defs');
  22534        svg.appendChild(definitions);
  22535        this.defs = definitions;
  22536        var rootGroup = this.svgFactory.createElement('svg:g');
  22537        rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform));
  22538        svg.appendChild(rootGroup);
  22539        this.svg = rootGroup;
  22540        return svg;
  22541      }
  22542    }, {
  22543      key: "_ensureClipGroup",
  22544      value: function _ensureClipGroup() {
  22545        if (!this.current.clipGroup) {
  22546          var clipGroup = this.svgFactory.createElement('svg:g');
  22547          clipGroup.setAttributeNS(null, 'clip-path', this.current.activeClipUrl);
  22548          this.svg.appendChild(clipGroup);
  22549          this.current.clipGroup = clipGroup;
  22550        }
  22551 
  22552        return this.current.clipGroup;
  22553      }
  22554    }, {
  22555      key: "_ensureTransformGroup",
  22556      value: function _ensureTransformGroup() {
  22557        if (!this.tgrp) {
  22558          this.tgrp = this.svgFactory.createElement('svg:g');
  22559          this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix));
  22560 
  22561          if (this.current.activeClipUrl) {
  22562            this._ensureClipGroup().appendChild(this.tgrp);
  22563          } else {
  22564            this.svg.appendChild(this.tgrp);
  22565          }
  22566        }
  22567 
  22568        return this.tgrp;
  22569      }
  22570    }]);
  22571 
  22572    return SVGGraphics;
  22573  }();
  22574 }
  22575 
  22576 /***/ }),
  22577 /* 165 */
  22578 /***/ (function(module, exports, __w_pdfjs_require__) {
  22579 
  22580 "use strict";
  22581 
  22582 
  22583 Object.defineProperty(exports, "__esModule", {
  22584  value: true
  22585 });
  22586 exports.PDFNodeStream = void 0;
  22587 
  22588 var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148));
  22589 
  22590 var _util = __w_pdfjs_require__(1);
  22591 
  22592 var _network_utils = __w_pdfjs_require__(166);
  22593 
  22594 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
  22595 
  22596 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
  22597 
  22598 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
  22599 
  22600 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
  22601 
  22602 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
  22603 
  22604 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
  22605 
  22606 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
  22607 
  22608 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
  22609 
  22610 function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
  22611 
  22612 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  22613 
  22614 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
  22615 
  22616 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
  22617 
  22618 var fs = require('fs');
  22619 
  22620 var http = require('http');
  22621 
  22622 var https = require('https');
  22623 
  22624 var url = require('url');
  22625 
  22626 var fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//;
  22627 
  22628 function parseUrl(sourceUrl) {
  22629  var parsedUrl = url.parse(sourceUrl);
  22630 
  22631  if (parsedUrl.protocol === 'file:' || parsedUrl.host) {
  22632    return parsedUrl;
  22633  }
  22634 
  22635  if (/^[a-z]:[/\\]/i.test(sourceUrl)) {
  22636    return url.parse("file:///".concat(sourceUrl));
  22637  }
  22638 
  22639  if (!parsedUrl.host) {
  22640    parsedUrl.protocol = 'file:';
  22641  }
  22642 
  22643  return parsedUrl;
  22644 }
  22645 
  22646 var PDFNodeStream =
  22647 /*#__PURE__*/
  22648 function () {
  22649  function PDFNodeStream(source) {
  22650    _classCallCheck(this, PDFNodeStream);
  22651 
  22652    this.source = source;
  22653    this.url = parseUrl(source.url);
  22654    this.isHttp = this.url.protocol === 'http:' || this.url.protocol === 'https:';
  22655    this.isFsUrl = this.url.protocol === 'file:';
  22656    this.httpHeaders = this.isHttp && source.httpHeaders || {};
  22657    this._fullRequestReader = null;
  22658    this._rangeRequestReaders = [];
  22659  }
  22660 
  22661  _createClass(PDFNodeStream, [{
  22662    key: "getFullReader",
  22663    value: function getFullReader() {
  22664      (0, _util.assert)(!this._fullRequestReader);
  22665      this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);
  22666      return this._fullRequestReader;
  22667    }
  22668  }, {
  22669    key: "getRangeReader",
  22670    value: function getRangeReader(start, end) {
  22671      if (end <= this._progressiveDataLength) {
  22672        return null;
  22673      }
  22674 
  22675      var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);
  22676 
  22677      this._rangeRequestReaders.push(rangeReader);
  22678 
  22679      return rangeReader;
  22680    }
  22681  }, {
  22682    key: "cancelAllRequests",
  22683    value: function cancelAllRequests(reason) {
  22684      if (this._fullRequestReader) {
  22685        this._fullRequestReader.cancel(reason);
  22686      }
  22687 
  22688      var readers = this._rangeRequestReaders.slice(0);
  22689 
  22690      readers.forEach(function (reader) {
  22691        reader.cancel(reason);
  22692      });
  22693    }
  22694  }, {
  22695    key: "_progressiveDataLength",
  22696    get: function get() {
  22697      return this._fullRequestReader ? this._fullRequestReader._loaded : 0;
  22698    }
  22699  }]);
  22700 
  22701  return PDFNodeStream;
  22702 }();
  22703 
  22704 exports.PDFNodeStream = PDFNodeStream;
  22705 
  22706 var BaseFullReader =
  22707 /*#__PURE__*/
  22708 function () {
  22709  function BaseFullReader(stream) {
  22710    _classCallCheck(this, BaseFullReader);
  22711 
  22712    this._url = stream.url;
  22713    this._done = false;
  22714    this._storedError = null;
  22715    this.onProgress = null;
  22716    var source = stream.source;
  22717    this._contentLength = source.length;
  22718    this._loaded = 0;
  22719    this._filename = null;
  22720    this._disableRange = source.disableRange || false;
  22721    this._rangeChunkSize = source.rangeChunkSize;
  22722 
  22723    if (!this._rangeChunkSize && !this._disableRange) {
  22724      this._disableRange = true;
  22725    }
  22726 
  22727    this._isStreamingSupported = !source.disableStream;
  22728    this._isRangeSupported = !source.disableRange;
  22729    this._readableStream = null;
  22730    this._readCapability = (0, _util.createPromiseCapability)();
  22731    this._headersCapability = (0, _util.createPromiseCapability)();
  22732  }
  22733 
  22734  _createClass(BaseFullReader, [{
  22735    key: "read",
  22736    value: function () {
  22737      var _read = _asyncToGenerator(
  22738      /*#__PURE__*/
  22739      _regenerator["default"].mark(function _callee() {
  22740        var chunk, buffer;
  22741        return _regenerator["default"].wrap(function _callee$(_context) {
  22742          while (1) {
  22743            switch (_context.prev = _context.next) {
  22744              case 0:
  22745                _context.next = 2;
  22746                return this._readCapability.promise;
  22747 
  22748              case 2:
  22749                if (!this._done) {
  22750                  _context.next = 4;
  22751                  break;
  22752                }
  22753 
  22754                return _context.abrupt("return", {
  22755                  value: undefined,
  22756                  done: true
  22757                });
  22758 
  22759              case 4:
  22760                if (!this._storedError) {
  22761                  _context.next = 6;
  22762                  break;
  22763                }
  22764 
  22765                throw this._storedError;
  22766 
  22767              case 6:
  22768                chunk = this._readableStream.read();
  22769 
  22770                if (!(chunk === null)) {
  22771                  _context.next = 10;
  22772                  break;
  22773                }
  22774 
  22775                this._readCapability = (0, _util.createPromiseCapability)();
  22776                return _context.abrupt("return", this.read());
  22777 
  22778              case 10:
  22779                this._loaded += chunk.length;
  22780 
  22781                if (this.onProgress) {
  22782                  this.onProgress({
  22783                    loaded: this._loaded,
  22784                    total: this._contentLength
  22785                  });
  22786                }
  22787 
  22788                buffer = new Uint8Array(chunk).buffer;
  22789                return _context.abrupt("return", {
  22790                  value: buffer,
  22791                  done: false
  22792                });
  22793 
  22794              case 14:
  22795              case "end":
  22796                return _context.stop();
  22797            }
  22798          }
  22799        }, _callee, this);
  22800      }));
  22801 
  22802      function read() {
  22803        return _read.apply(this, arguments);
  22804      }
  22805 
  22806      return read;
  22807    }()
  22808  }, {
  22809    key: "cancel",
  22810    value: function cancel(reason) {
  22811      if (!this._readableStream) {
  22812        this._error(reason);
  22813 
  22814        return;
  22815      }
  22816 
  22817      this._readableStream.destroy(reason);
  22818    }
  22819  }, {
  22820    key: "_error",
  22821    value: function _error(reason) {
  22822      this._storedError = reason;
  22823 
  22824      this._readCapability.resolve();
  22825    }
  22826  }, {
  22827    key: "_setReadableStream",
  22828    value: function _setReadableStream(readableStream) {
  22829      var _this = this;
  22830 
  22831      this._readableStream = readableStream;
  22832      readableStream.on('readable', function () {
  22833        _this._readCapability.resolve();
  22834      });
  22835      readableStream.on('end', function () {
  22836        readableStream.destroy();
  22837        _this._done = true;
  22838 
  22839        _this._readCapability.resolve();
  22840      });
  22841      readableStream.on('error', function (reason) {
  22842        _this._error(reason);
  22843      });
  22844 
  22845      if (!this._isStreamingSupported && this._isRangeSupported) {
  22846        this._error(new _util.AbortException('streaming is disabled'));
  22847      }
  22848 
  22849      if (this._storedError) {
  22850        this._readableStream.destroy(this._storedError);
  22851      }
  22852    }
  22853  }, {
  22854    key: "headersReady",
  22855    get: function get() {
  22856      return this._headersCapability.promise;
  22857    }
  22858  }, {
  22859    key: "filename",
  22860    get: function get() {
  22861      return this._filename;
  22862    }
  22863  }, {
  22864    key: "contentLength",
  22865    get: function get() {
  22866      return this._contentLength;
  22867    }
  22868  }, {
  22869    key: "isRangeSupported",
  22870    get: function get() {
  22871      return this._isRangeSupported;
  22872    }
  22873  }, {
  22874    key: "isStreamingSupported",
  22875    get: function get() {
  22876      return this._isStreamingSupported;
  22877    }
  22878  }]);
  22879 
  22880  return BaseFullReader;
  22881 }();
  22882 
  22883 var BaseRangeReader =
  22884 /*#__PURE__*/
  22885 function () {
  22886  function BaseRangeReader(stream) {
  22887    _classCallCheck(this, BaseRangeReader);
  22888 
  22889    this._url = stream.url;
  22890    this._done = false;
  22891    this._storedError = null;
  22892    this.onProgress = null;
  22893    this._loaded = 0;
  22894    this._readableStream = null;
  22895    this._readCapability = (0, _util.createPromiseCapability)();
  22896    var source = stream.source;
  22897    this._isStreamingSupported = !source.disableStream;
  22898  }
  22899 
  22900  _createClass(BaseRangeReader, [{
  22901    key: "read",
  22902    value: function () {
  22903      var _read2 = _asyncToGenerator(
  22904      /*#__PURE__*/
  22905      _regenerator["default"].mark(function _callee2() {
  22906        var chunk, buffer;
  22907        return _regenerator["default"].wrap(function _callee2$(_context2) {
  22908          while (1) {
  22909            switch (_context2.prev = _context2.next) {
  22910              case 0:
  22911                _context2.next = 2;
  22912                return this._readCapability.promise;
  22913 
  22914              case 2:
  22915                if (!this._done) {
  22916                  _context2.next = 4;
  22917                  break;
  22918                }
  22919 
  22920                return _context2.abrupt("return", {
  22921                  value: undefined,
  22922                  done: true
  22923                });
  22924 
  22925              case 4:
  22926                if (!this._storedError) {
  22927                  _context2.next = 6;
  22928                  break;
  22929                }
  22930 
  22931                throw this._storedError;
  22932 
  22933              case 6:
  22934                chunk = this._readableStream.read();
  22935 
  22936                if (!(chunk === null)) {
  22937                  _context2.next = 10;
  22938                  break;
  22939                }
  22940 
  22941                this._readCapability = (0, _util.createPromiseCapability)();
  22942                return _context2.abrupt("return", this.read());
  22943 
  22944              case 10:
  22945                this._loaded += chunk.length;
  22946 
  22947                if (this.onProgress) {
  22948                  this.onProgress({
  22949                    loaded: this._loaded
  22950                  });
  22951                }
  22952 
  22953                buffer = new Uint8Array(chunk).buffer;
  22954                return _context2.abrupt("return", {
  22955                  value: buffer,
  22956                  done: false
  22957                });
  22958 
  22959              case 14:
  22960              case "end":
  22961                return _context2.stop();
  22962            }
  22963          }
  22964        }, _callee2, this);
  22965      }));
  22966 
  22967      function read() {
  22968        return _read2.apply(this, arguments);
  22969      }
  22970 
  22971      return read;
  22972    }()
  22973  }, {
  22974    key: "cancel",
  22975    value: function cancel(reason) {
  22976      if (!this._readableStream) {
  22977        this._error(reason);
  22978 
  22979        return;
  22980      }
  22981 
  22982      this._readableStream.destroy(reason);
  22983    }
  22984  }, {
  22985    key: "_error",
  22986    value: function _error(reason) {
  22987      this._storedError = reason;
  22988 
  22989      this._readCapability.resolve();
  22990    }
  22991  }, {
  22992    key: "_setReadableStream",
  22993    value: function _setReadableStream(readableStream) {
  22994      var _this2 = this;
  22995 
  22996      this._readableStream = readableStream;
  22997      readableStream.on('readable', function () {
  22998        _this2._readCapability.resolve();
  22999      });
  23000      readableStream.on('end', function () {
  23001        readableStream.destroy();
  23002        _this2._done = true;
  23003 
  23004        _this2._readCapability.resolve();
  23005      });
  23006      readableStream.on('error', function (reason) {
  23007        _this2._error(reason);
  23008      });
  23009 
  23010      if (this._storedError) {
  23011        this._readableStream.destroy(this._storedError);
  23012      }
  23013    }
  23014  }, {
  23015    key: "isStreamingSupported",
  23016    get: function get() {
  23017      return this._isStreamingSupported;
  23018    }
  23019  }]);
  23020 
  23021  return BaseRangeReader;
  23022 }();
  23023 
  23024 function createRequestOptions(url, headers) {
  23025  return {
  23026    protocol: url.protocol,
  23027    auth: url.auth,
  23028    host: url.hostname,
  23029    port: url.port,
  23030    path: url.path,
  23031    method: 'GET',
  23032    headers: headers
  23033  };
  23034 }
  23035 
  23036 var PDFNodeStreamFullReader =
  23037 /*#__PURE__*/
  23038 function (_BaseFullReader) {
  23039  _inherits(PDFNodeStreamFullReader, _BaseFullReader);
  23040 
  23041  function PDFNodeStreamFullReader(stream) {
  23042    var _this3;
  23043 
  23044    _classCallCheck(this, PDFNodeStreamFullReader);
  23045 
  23046    _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFullReader).call(this, stream));
  23047 
  23048    var handleResponse = function handleResponse(response) {
  23049      if (response.statusCode === 404) {
  23050        var error = new _util.MissingPDFException("Missing PDF \"".concat(_this3._url, "\"."));
  23051        _this3._storedError = error;
  23052 
  23053        _this3._headersCapability.reject(error);
  23054 
  23055        return;
  23056      }
  23057 
  23058      _this3._headersCapability.resolve();
  23059 
  23060      _this3._setReadableStream(response);
  23061 
  23062      var getResponseHeader = function getResponseHeader(name) {
  23063        return _this3._readableStream.headers[name.toLowerCase()];
  23064      };
  23065 
  23066      var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({
  23067        getResponseHeader: getResponseHeader,
  23068        isHttp: stream.isHttp,
  23069        rangeChunkSize: _this3._rangeChunkSize,
  23070        disableRange: _this3._disableRange
  23071      }),
  23072          allowRangeRequests = _validateRangeRequest.allowRangeRequests,
  23073          suggestedLength = _validateRangeRequest.suggestedLength;
  23074 
  23075      _this3._isRangeSupported = allowRangeRequests;
  23076      _this3._contentLength = suggestedLength || _this3._contentLength;
  23077      _this3._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);
  23078    };
  23079 
  23080    _this3._request = null;
  23081 
  23082    if (_this3._url.protocol === 'http:') {
  23083      _this3._request = http.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse);
  23084    } else {
  23085      _this3._request = https.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse);
  23086    }
  23087 
  23088    _this3._request.on('error', function (reason) {
  23089      _this3._storedError = reason;
  23090 
  23091      _this3._headersCapability.reject(reason);
  23092    });
  23093 
  23094    _this3._request.end();
  23095 
  23096    return _this3;
  23097  }
  23098 
  23099  return PDFNodeStreamFullReader;
  23100 }(BaseFullReader);
  23101 
  23102 var PDFNodeStreamRangeReader =
  23103 /*#__PURE__*/
  23104 function (_BaseRangeReader) {
  23105  _inherits(PDFNodeStreamRangeReader, _BaseRangeReader);
  23106 
  23107  function PDFNodeStreamRangeReader(stream, start, end) {
  23108    var _this4;
  23109 
  23110    _classCallCheck(this, PDFNodeStreamRangeReader);
  23111 
  23112    _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamRangeReader).call(this, stream));
  23113    _this4._httpHeaders = {};
  23114 
  23115    for (var property in stream.httpHeaders) {
  23116      var value = stream.httpHeaders[property];
  23117 
  23118      if (typeof value === 'undefined') {
  23119        continue;
  23120      }
  23121 
  23122      _this4._httpHeaders[property] = value;
  23123    }
  23124 
  23125    _this4._httpHeaders['Range'] = "bytes=".concat(start, "-").concat(end - 1);
  23126 
  23127    var handleResponse = function handleResponse(response) {
  23128      if (response.statusCode === 404) {
  23129        var error = new _util.MissingPDFException("Missing PDF \"".concat(_this4._url, "\"."));
  23130        _this4._storedError = error;
  23131        return;
  23132      }
  23133 
  23134      _this4._setReadableStream(response);
  23135    };
  23136 
  23137    _this4._request = null;
  23138 
  23139    if (_this4._url.protocol === 'http:') {
  23140      _this4._request = http.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse);
  23141    } else {
  23142      _this4._request = https.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse);
  23143    }
  23144 
  23145    _this4._request.on('error', function (reason) {
  23146      _this4._storedError = reason;
  23147    });
  23148 
  23149    _this4._request.end();
  23150 
  23151    return _this4;
  23152  }
  23153 
  23154  return PDFNodeStreamRangeReader;
  23155 }(BaseRangeReader);
  23156 
  23157 var PDFNodeStreamFsFullReader =
  23158 /*#__PURE__*/
  23159 function (_BaseFullReader2) {
  23160  _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2);
  23161 
  23162  function PDFNodeStreamFsFullReader(stream) {
  23163    var _this5;
  23164 
  23165    _classCallCheck(this, PDFNodeStreamFsFullReader);
  23166 
  23167    _this5 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsFullReader).call(this, stream));
  23168    var path = decodeURIComponent(_this5._url.path);
  23169 
  23170    if (fileUriRegex.test(_this5._url.href)) {
  23171      path = path.replace(/^\//, '');
  23172    }
  23173 
  23174    fs.lstat(path, function (error, stat) {
  23175      if (error) {
  23176        if (error.code === 'ENOENT') {
  23177          error = new _util.MissingPDFException("Missing PDF \"".concat(path, "\"."));
  23178        }
  23179 
  23180        _this5._storedError = error;
  23181 
  23182        _this5._headersCapability.reject(error);
  23183 
  23184        return;
  23185      }
  23186 
  23187      _this5._contentLength = stat.size;
  23188 
  23189      _this5._setReadableStream(fs.createReadStream(path));
  23190 
  23191      _this5._headersCapability.resolve();
  23192    });
  23193    return _this5;
  23194  }
  23195 
  23196  return PDFNodeStreamFsFullReader;
  23197 }(BaseFullReader);
  23198 
  23199 var PDFNodeStreamFsRangeReader =
  23200 /*#__PURE__*/
  23201 function (_BaseRangeReader2) {
  23202  _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2);
  23203 
  23204  function PDFNodeStreamFsRangeReader(stream, start, end) {
  23205    var _this6;
  23206 
  23207    _classCallCheck(this, PDFNodeStreamFsRangeReader);
  23208 
  23209    _this6 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsRangeReader).call(this, stream));
  23210    var path = decodeURIComponent(_this6._url.path);
  23211 
  23212    if (fileUriRegex.test(_this6._url.href)) {
  23213      path = path.replace(/^\//, '');
  23214    }
  23215 
  23216    _this6._setReadableStream(fs.createReadStream(path, {
  23217      start: start,
  23218      end: end - 1
  23219    }));
  23220 
  23221    return _this6;
  23222  }
  23223 
  23224  return PDFNodeStreamFsRangeReader;
  23225 }(BaseRangeReader);
  23226 
  23227 /***/ }),
  23228 /* 166 */
  23229 /***/ (function(module, exports, __w_pdfjs_require__) {
  23230 
  23231 "use strict";
  23232 
  23233 
  23234 Object.defineProperty(exports, "__esModule", {
  23235  value: true
  23236 });
  23237 exports.createResponseStatusError = createResponseStatusError;
  23238 exports.extractFilenameFromHeader = extractFilenameFromHeader;
  23239 exports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;
  23240 exports.validateResponseStatus = validateResponseStatus;
  23241 
  23242 var _util = __w_pdfjs_require__(1);
  23243 
  23244 var _content_disposition = __w_pdfjs_require__(167);
  23245 
  23246 function validateRangeRequestCapabilities(_ref) {
  23247  var getResponseHeader = _ref.getResponseHeader,
  23248      isHttp = _ref.isHttp,
  23249      rangeChunkSize = _ref.rangeChunkSize,
  23250      disableRange = _ref.disableRange;
  23251  (0, _util.assert)(rangeChunkSize > 0, 'Range chunk size must be larger than zero');
  23252  var returnValues = {
  23253    allowRangeRequests: false,
  23254    suggestedLength: undefined
  23255  };
  23256  var length = parseInt(getResponseHeader('Content-Length'), 10);
  23257 
  23258  if (!Number.isInteger(length)) {
  23259    return returnValues;
  23260  }
  23261 
  23262  returnValues.suggestedLength = length;
  23263 
  23264  if (length <= 2 * rangeChunkSize) {
  23265    return returnValues;
  23266  }
  23267 
  23268  if (disableRange || !isHttp) {
  23269    return returnValues;
  23270  }
  23271 
  23272  if (getResponseHeader('Accept-Ranges') !== 'bytes') {
  23273    return returnValues;
  23274  }
  23275 
  23276  var contentEncoding = getResponseHeader('Content-Encoding') || 'identity';
  23277 
  23278  if (contentEncoding !== 'identity') {
  23279    return returnValues;
  23280  }
  23281 
  23282  returnValues.allowRangeRequests = true;
  23283  return returnValues;
  23284 }
  23285 
  23286 function extractFilenameFromHeader(getResponseHeader) {
  23287  var contentDisposition = getResponseHeader('Content-Disposition');
  23288 
  23289  if (contentDisposition) {
  23290    var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);
  23291 
  23292    if (/\.pdf$/i.test(filename)) {
  23293      return filename;
  23294    }
  23295  }
  23296 
  23297  return null;
  23298 }
  23299 
  23300 function createResponseStatusError(status, url) {
  23301  if (status === 404 || status === 0 && /^file:/.test(url)) {
  23302    return new _util.MissingPDFException('Missing PDF "' + url + '".');
  23303  }
  23304 
  23305  return new _util.UnexpectedResponseException('Unexpected server response (' + status + ') while retrieving PDF "' + url + '".', status);
  23306 }
  23307 
  23308 function validateResponseStatus(status) {
  23309  return status === 200 || status === 206;
  23310 }
  23311 
  23312 /***/ }),
  23313 /* 167 */
  23314 /***/ (function(module, exports, __w_pdfjs_require__) {
  23315 
  23316 "use strict";
  23317 
  23318 
  23319 Object.defineProperty(exports, "__esModule", {
  23320  value: true
  23321 });
  23322 exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;
  23323 
  23324 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
  23325 
  23326 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
  23327 
  23328 function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
  23329 
  23330 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
  23331 
  23332 function getFilenameFromContentDispositionHeader(contentDisposition) {
  23333  var needsEncodingFixup = true;
  23334  var tmp = toParamRegExp('filename\\*', 'i').exec(contentDisposition);
  23335 
  23336  if (tmp) {
  23337    tmp = tmp[1];
  23338    var filename = rfc2616unquote(tmp);
  23339    filename = unescape(filename);
  23340    filename = rfc5987decode(filename);
  23341    filename = rfc2047decode(filename);
  23342    return fixupEncoding(filename);
  23343  }
  23344 
  23345  tmp = rfc2231getparam(contentDisposition);
  23346 
  23347  if (tmp) {
  23348    var _filename = rfc2047decode(tmp);
  23349 
  23350    return fixupEncoding(_filename);
  23351  }
  23352 
  23353  tmp = toParamRegExp('filename', 'i').exec(contentDisposition);
  23354 
  23355  if (tmp) {
  23356    tmp = tmp[1];
  23357 
  23358    var _filename2 = rfc2616unquote(tmp);
  23359 
  23360    _filename2 = rfc2047decode(_filename2);
  23361    return fixupEncoding(_filename2);
  23362  }
  23363 
  23364  function toParamRegExp(attributePattern, flags) {
  23365    return new RegExp('(?:^|;)\\s*' + attributePattern + '\\s*=\\s*' + '(' + '[^";\\s][^;\\s]*' + '|' + '"(?:[^"\\\\]|\\\\"?)+"?' + ')', flags);
  23366  }
  23367 
  23368  function textdecode(encoding, value) {
  23369    if (encoding) {
  23370      if (!/^[\x00-\xFF]+$/.test(value)) {
  23371        return value;
  23372      }
  23373 
  23374      try {
  23375        var decoder = new TextDecoder(encoding, {
  23376          fatal: true
  23377        });
  23378        var bytes = Array.from(value, function (ch) {
  23379          return ch.charCodeAt(0) & 0xFF;
  23380        });
  23381        value = decoder.decode(new Uint8Array(bytes));
  23382        needsEncodingFixup = false;
  23383      } catch (e) {
  23384        if (/^utf-?8$/i.test(encoding)) {
  23385          try {
  23386            value = decodeURIComponent(escape(value));
  23387            needsEncodingFixup = false;
  23388          } catch (err) {}
  23389        }
  23390      }
  23391    }
  23392 
  23393    return value;
  23394  }
  23395 
  23396  function fixupEncoding(value) {
  23397    if (needsEncodingFixup && /[\x80-\xff]/.test(value)) {
  23398      value = textdecode('utf-8', value);
  23399 
  23400      if (needsEncodingFixup) {
  23401        value = textdecode('iso-8859-1', value);
  23402      }
  23403    }
  23404 
  23405    return value;
  23406  }
  23407 
  23408  function rfc2231getparam(contentDisposition) {
  23409    var matches = [],
  23410        match;
  23411    var iter = toParamRegExp('filename\\*((?!0\\d)\\d+)(\\*?)', 'ig');
  23412 
  23413    while ((match = iter.exec(contentDisposition)) !== null) {
  23414      var _match = match,
  23415          _match2 = _slicedToArray(_match, 4),
  23416          n = _match2[1],
  23417          quot = _match2[2],
  23418          part = _match2[3];
  23419 
  23420      n = parseInt(n, 10);
  23421 
  23422      if (n in matches) {
  23423        if (n === 0) {
  23424          break;
  23425        }
  23426 
  23427        continue;
  23428      }
  23429 
  23430      matches[n] = [quot, part];
  23431    }
  23432 
  23433    var parts = [];
  23434 
  23435    for (var n = 0; n < matches.length; ++n) {
  23436      if (!(n in matches)) {
  23437        break;
  23438      }
  23439 
  23440      var _matches$n = _slicedToArray(matches[n], 2),
  23441          quot = _matches$n[0],
  23442          part = _matches$n[1];
  23443 
  23444      part = rfc2616unquote(part);
  23445 
  23446      if (quot) {
  23447        part = unescape(part);
  23448 
  23449        if (n === 0) {
  23450          part = rfc5987decode(part);
  23451        }
  23452      }
  23453 
  23454      parts.push(part);
  23455    }
  23456 
  23457    return parts.join('');
  23458  }
  23459 
  23460  function rfc2616unquote(value) {
  23461    if (value.startsWith('"')) {
  23462      var parts = value.slice(1).split('\\"');
  23463 
  23464      for (var i = 0; i < parts.length; ++i) {
  23465        var quotindex = parts[i].indexOf('"');
  23466 
  23467        if (quotindex !== -1) {
  23468          parts[i] = parts[i].slice(0, quotindex);
  23469          parts.length = i + 1;
  23470        }
  23471 
  23472        parts[i] = parts[i].replace(/\\(.)/g, '$1');
  23473      }
  23474 
  23475      value = parts.join('"');
  23476    }
  23477 
  23478    return value;
  23479  }
  23480 
  23481  function rfc5987decode(extvalue) {
  23482    var encodingend = extvalue.indexOf('\'');
  23483 
  23484    if (encodingend === -1) {
  23485      return extvalue;
  23486    }
  23487 
  23488    var encoding = extvalue.slice(0, encodingend);
  23489    var langvalue = extvalue.slice(encodingend + 1);
  23490    var value = langvalue.replace(/^[^']*'/, '');
  23491    return textdecode(encoding, value);
  23492  }
  23493 
  23494  function rfc2047decode(value) {
  23495    if (!value.startsWith('=?') || /[\x00-\x19\x80-\xff]/.test(value)) {
  23496      return value;
  23497    }
  23498 
  23499    return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (_, charset, encoding, text) {
  23500      if (encoding === 'q' || encoding === 'Q') {
  23501        text = text.replace(/_/g, ' ');
  23502        text = text.replace(/=([0-9a-fA-F]{2})/g, function (_, hex) {
  23503          return String.fromCharCode(parseInt(hex, 16));
  23504        });
  23505        return textdecode(charset, text);
  23506      }
  23507 
  23508      try {
  23509        text = atob(text);
  23510      } catch (e) {}
  23511 
  23512      return textdecode(charset, text);
  23513    });
  23514  }
  23515 
  23516  return '';
  23517 }
  23518 
  23519 /***/ }),
  23520 /* 168 */
  23521 /***/ (function(module, exports, __w_pdfjs_require__) {
  23522 
  23523 "use strict";
  23524 
  23525 
  23526 Object.defineProperty(exports, "__esModule", {
  23527  value: true
  23528 });
  23529 exports.PDFNetworkStream = void 0;
  23530 
  23531 var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148));
  23532 
  23533 var _util = __w_pdfjs_require__(1);
  23534 
  23535 var _network_utils = __w_pdfjs_require__(166);
  23536 
  23537 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  23538 
  23539 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
  23540 
  23541 function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
  23542 
  23543 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  23544 
  23545 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
  23546 
  23547 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
  23548 
  23549 ;
  23550 var OK_RESPONSE = 200;
  23551 var PARTIAL_CONTENT_RESPONSE = 206;
  23552 
  23553 function getArrayBuffer(xhr) {
  23554  var data = xhr.response;
  23555 
  23556  if (typeof data !== 'string') {
  23557    return data;
  23558  }
  23559 
  23560  var array = (0, _util.stringToBytes)(data);
  23561  return array.buffer;
  23562 }
  23563 
  23564 var NetworkManager =
  23565 /*#__PURE__*/
  23566 function () {
  23567  function NetworkManager(url, args) {
  23568    _classCallCheck(this, NetworkManager);
  23569 
  23570    this.url = url;
  23571    args = args || {};
  23572    this.isHttp = /^https?:/i.test(url);
  23573    this.httpHeaders = this.isHttp && args.httpHeaders || {};
  23574    this.withCredentials = args.withCredentials || false;
  23575 
  23576    this.getXhr = args.getXhr || function NetworkManager_getXhr() {
  23577      return new XMLHttpRequest();
  23578    };
  23579 
  23580    this.currXhrId = 0;
  23581    this.pendingRequests = Object.create(null);
  23582  }
  23583 
  23584  _createClass(NetworkManager, [{
  23585    key: "requestRange",
  23586    value: function requestRange(begin, end, listeners) {
  23587      var args = {
  23588        begin: begin,
  23589        end: end
  23590      };
  23591 
  23592      for (var prop in listeners) {
  23593        args[prop] = listeners[prop];
  23594      }
  23595 
  23596      return this.request(args);
  23597    }
  23598  }, {
  23599    key: "requestFull",
  23600    value: function requestFull(listeners) {
  23601      return this.request(listeners);
  23602    }
  23603  }, {
  23604    key: "request",
  23605    value: function request(args) {
  23606      var xhr = this.getXhr();
  23607      var xhrId = this.currXhrId++;
  23608      var pendingRequest = this.pendingRequests[xhrId] = {
  23609        xhr: xhr
  23610      };
  23611      xhr.open('GET', this.url);
  23612      xhr.withCredentials = this.withCredentials;
  23613 
  23614      for (var property in this.httpHeaders) {
  23615        var value = this.httpHeaders[property];
  23616 
  23617        if (typeof value === 'undefined') {
  23618          continue;
  23619        }
  23620 
  23621        xhr.setRequestHeader(property, value);
  23622      }
  23623 
  23624      if (this.isHttp && 'begin' in args && 'end' in args) {
  23625        xhr.setRequestHeader('Range', "bytes=".concat(args.begin, "-").concat(args.end - 1));
  23626        pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;
  23627      } else {
  23628        pendingRequest.expectedStatus = OK_RESPONSE;
  23629      }
  23630 
  23631      xhr.responseType = 'arraybuffer';
  23632 
  23633      if (args.onError) {
  23634        xhr.onerror = function (evt) {
  23635          args.onError(xhr.status);
  23636        };
  23637      }
  23638 
  23639      xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);
  23640      xhr.onprogress = this.onProgress.bind(this, xhrId);
  23641      pendingRequest.onHeadersReceived = args.onHeadersReceived;
  23642      pendingRequest.onDone = args.onDone;
  23643      pendingRequest.onError = args.onError;
  23644      pendingRequest.onProgress = args.onProgress;
  23645      xhr.send(null);
  23646      return xhrId;
  23647    }
  23648  }, {
  23649    key: "onProgress",
  23650    value: function onProgress(xhrId, evt) {
  23651      var pendingRequest = this.pendingRequests[xhrId];
  23652 
  23653      if (!pendingRequest) {
  23654        return;
  23655      }
  23656 
  23657      if (pendingRequest.onProgress) {
  23658        pendingRequest.onProgress(evt);
  23659      }
  23660    }
  23661  }, {
  23662    key: "onStateChange",
  23663    value: function onStateChange(xhrId, evt) {
  23664      var pendingRequest = this.pendingRequests[xhrId];
  23665 
  23666      if (!pendingRequest) {
  23667        return;
  23668      }
  23669 
  23670      var xhr = pendingRequest.xhr;
  23671 
  23672      if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {
  23673        pendingRequest.onHeadersReceived();
  23674        delete pendingRequest.onHeadersReceived;
  23675      }
  23676 
  23677      if (xhr.readyState !== 4) {
  23678        return;
  23679      }
  23680 
  23681      if (!(xhrId in this.pendingRequests)) {
  23682        return;
  23683      }
  23684 
  23685      delete this.pendingRequests[xhrId];
  23686 
  23687      if (xhr.status === 0 && this.isHttp) {
  23688        if (pendingRequest.onError) {
  23689          pendingRequest.onError(xhr.status);
  23690        }
  23691 
  23692        return;
  23693      }
  23694 
  23695      var xhrStatus = xhr.status || OK_RESPONSE;
  23696      var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;
  23697 
  23698      if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {
  23699        if (pendingRequest.onError) {
  23700          pendingRequest.onError(xhr.status);
  23701        }
  23702 
  23703        return;
  23704      }
  23705 
  23706      var chunk = getArrayBuffer(xhr);
  23707 
  23708      if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {
  23709        var rangeHeader = xhr.getResponseHeader('Content-Range');
  23710        var matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader);
  23711        pendingRequest.onDone({
  23712          begin: parseInt(matches[1], 10),
  23713          chunk: chunk
  23714        });
  23715      } else if (chunk) {
  23716        pendingRequest.onDone({
  23717          begin: 0,
  23718          chunk: chunk
  23719        });
  23720      } else if (pendingRequest.onError) {
  23721        pendingRequest.onError(xhr.status);
  23722      }
  23723    }
  23724  }, {
  23725    key: "hasPendingRequests",
  23726    value: function hasPendingRequests() {
  23727      for (var xhrId in this.pendingRequests) {
  23728        return true;
  23729      }
  23730 
  23731      return false;
  23732    }
  23733  }, {
  23734    key: "getRequestXhr",
  23735    value: function getRequestXhr(xhrId) {
  23736      return this.pendingRequests[xhrId].xhr;
  23737    }
  23738  }, {
  23739    key: "isPendingRequest",
  23740    value: function isPendingRequest(xhrId) {
  23741      return xhrId in this.pendingRequests;
  23742    }
  23743  }, {
  23744    key: "abortAllRequests",
  23745    value: function abortAllRequests() {
  23746      for (var xhrId in this.pendingRequests) {
  23747        this.abortRequest(xhrId | 0);
  23748      }
  23749    }
  23750  }, {
  23751    key: "abortRequest",
  23752    value: function abortRequest(xhrId) {
  23753      var xhr = this.pendingRequests[xhrId].xhr;
  23754      delete this.pendingRequests[xhrId];
  23755      xhr.abort();
  23756    }
  23757  }]);
  23758 
  23759  return NetworkManager;
  23760 }();
  23761 
  23762 var PDFNetworkStream =
  23763 /*#__PURE__*/
  23764 function () {
  23765  function PDFNetworkStream(source) {
  23766    _classCallCheck(this, PDFNetworkStream);
  23767 
  23768    this._source = source;
  23769    this._manager = new NetworkManager(source.url, {
  23770      httpHeaders: source.httpHeaders,
  23771      withCredentials: source.withCredentials
  23772    });
  23773    this._rangeChunkSize = source.rangeChunkSize;
  23774    this._fullRequestReader = null;
  23775    this._rangeRequestReaders = [];
  23776  }
  23777 
  23778  _createClass(PDFNetworkStream, [{
  23779    key: "_onRangeRequestReaderClosed",
  23780    value: function _onRangeRequestReaderClosed(reader) {
  23781      var i = this._rangeRequestReaders.indexOf(reader);
  23782 
  23783      if (i >= 0) {
  23784        this._rangeRequestReaders.splice(i, 1);
  23785      }
  23786    }
  23787  }, {
  23788    key: "getFullReader",
  23789    value: function getFullReader() {
  23790      (0, _util.assert)(!this._fullRequestReader);
  23791      this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);
  23792      return this._fullRequestReader;
  23793    }
  23794  }, {
  23795    key: "getRangeReader",
  23796    value: function getRangeReader(begin, end) {
  23797      var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);
  23798      reader.onClosed = this._onRangeRequestReaderClosed.bind(this);
  23799 
  23800      this._rangeRequestReaders.push(reader);
  23801 
  23802      return reader;
  23803    }
  23804  }, {
  23805    key: "cancelAllRequests",
  23806    value: function cancelAllRequests(reason) {
  23807      if (this._fullRequestReader) {
  23808        this._fullRequestReader.cancel(reason);
  23809      }
  23810 
  23811      var readers = this._rangeRequestReaders.slice(0);
  23812 
  23813      readers.forEach(function (reader) {
  23814        reader.cancel(reason);
  23815      });
  23816    }
  23817  }]);
  23818 
  23819  return PDFNetworkStream;
  23820 }();
  23821 
  23822 exports.PDFNetworkStream = PDFNetworkStream;
  23823 
  23824 var PDFNetworkStreamFullRequestReader =
  23825 /*#__PURE__*/
  23826 function () {
  23827  function PDFNetworkStreamFullRequestReader(manager, source) {
  23828    _classCallCheck(this, PDFNetworkStreamFullRequestReader);
  23829 
  23830    this._manager = manager;
  23831    var args = {
  23832      onHeadersReceived: this._onHeadersReceived.bind(this),
  23833      onDone: this._onDone.bind(this),
  23834      onError: this._onError.bind(this),
  23835      onProgress: this._onProgress.bind(this)
  23836    };
  23837    this._url = source.url;
  23838    this._fullRequestId = manager.requestFull(args);
  23839    this._headersReceivedCapability = (0, _util.createPromiseCapability)();
  23840    this._disableRange = source.disableRange || false;
  23841    this._contentLength = source.length;
  23842    this._rangeChunkSize = source.rangeChunkSize;
  23843 
  23844    if (!this._rangeChunkSize && !this._disableRange) {
  23845      this._disableRange = true;
  23846    }
  23847 
  23848    this._isStreamingSupported = false;
  23849    this._isRangeSupported = false;
  23850    this._cachedChunks = [];
  23851    this._requests = [];
  23852    this._done = false;
  23853    this._storedError = undefined;
  23854    this._filename = null;
  23855    this.onProgress = null;
  23856  }
  23857 
  23858  _createClass(PDFNetworkStreamFullRequestReader, [{
  23859    key: "_onHeadersReceived",
  23860    value: function _onHeadersReceived() {
  23861      var fullRequestXhrId = this._fullRequestId;
  23862 
  23863      var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);
  23864 
  23865      var getResponseHeader = function getResponseHeader(name) {
  23866        return fullRequestXhr.getResponseHeader(name);
  23867      };
  23868 
  23869      var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({
  23870        getResponseHeader: getResponseHeader,
  23871        isHttp: this._manager.isHttp,
  23872        rangeChunkSize: this._rangeChunkSize,
  23873        disableRange: this._disableRange
  23874      }),
  23875          allowRangeRequests = _validateRangeRequest.allowRangeRequests,
  23876          suggestedLength = _validateRangeRequest.suggestedLength;
  23877 
  23878      if (allowRangeRequests) {
  23879        this._isRangeSupported = true;
  23880      }
  23881 
  23882      this._contentLength = suggestedLength || this._contentLength;
  23883      this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);
  23884 
  23885      if (this._isRangeSupported) {
  23886        this._manager.abortRequest(fullRequestXhrId);
  23887      }
  23888 
  23889      this._headersReceivedCapability.resolve();
  23890    }
  23891  }, {
  23892    key: "_onDone",
  23893    value: function _onDone(args) {
  23894      if (args) {
  23895        if (this._requests.length > 0) {
  23896          var requestCapability = this._requests.shift();
  23897 
  23898          requestCapability.resolve({
  23899            value: args.chunk,
  23900            done: false
  23901          });
  23902        } else {
  23903          this._cachedChunks.push(args.chunk);
  23904        }
  23905      }
  23906 
  23907      this._done = true;
  23908 
  23909      if (this._cachedChunks.length > 0) {
  23910        return;
  23911      }
  23912 
  23913      this._requests.forEach(function (requestCapability) {
  23914        requestCapability.resolve({
  23915          value: undefined,
  23916          done: true
  23917        });
  23918      });
  23919 
  23920      this._requests = [];
  23921    }
  23922  }, {
  23923    key: "_onError",
  23924    value: function _onError(status) {
  23925      var url = this._url;
  23926      var exception = (0, _network_utils.createResponseStatusError)(status, url);
  23927      this._storedError = exception;
  23928 
  23929      this._headersReceivedCapability.reject(exception);
  23930 
  23931      this._requests.forEach(function (requestCapability) {
  23932        requestCapability.reject(exception);
  23933      });
  23934 
  23935      this._requests = [];
  23936      this._cachedChunks = [];
  23937    }
  23938  }, {
  23939    key: "_onProgress",
  23940    value: function _onProgress(data) {
  23941      if (this.onProgress) {
  23942        this.onProgress({
  23943          loaded: data.loaded,
  23944          total: data.lengthComputable ? data.total : this._contentLength
  23945        });
  23946      }
  23947    }
  23948  }, {
  23949    key: "read",
  23950    value: function () {
  23951      var _read = _asyncToGenerator(
  23952      /*#__PURE__*/
  23953      _regenerator["default"].mark(function _callee() {
  23954        var chunk, requestCapability;
  23955        return _regenerator["default"].wrap(function _callee$(_context) {
  23956          while (1) {
  23957            switch (_context.prev = _context.next) {
  23958              case 0:
  23959                if (!this._storedError) {
  23960                  _context.next = 2;
  23961                  break;
  23962                }
  23963 
  23964                throw this._storedError;
  23965 
  23966              case 2:
  23967                if (!(this._cachedChunks.length > 0)) {
  23968                  _context.next = 5;
  23969                  break;
  23970                }
  23971 
  23972                chunk = this._cachedChunks.shift();
  23973                return _context.abrupt("return", {
  23974                  value: chunk,
  23975                  done: false
  23976                });
  23977 
  23978              case 5:
  23979                if (!this._done) {
  23980                  _context.next = 7;
  23981                  break;
  23982                }
  23983 
  23984                return _context.abrupt("return", {
  23985                  value: undefined,
  23986                  done: true
  23987                });
  23988 
  23989              case 7:
  23990                requestCapability = (0, _util.createPromiseCapability)();
  23991 
  23992                this._requests.push(requestCapability);
  23993 
  23994                return _context.abrupt("return", requestCapability.promise);
  23995 
  23996              case 10:
  23997              case "end":
  23998                return _context.stop();
  23999            }
  24000          }
  24001        }, _callee, this);
  24002      }));
  24003 
  24004      function read() {
  24005        return _read.apply(this, arguments);
  24006      }
  24007 
  24008      return read;
  24009    }()
  24010  }, {
  24011    key: "cancel",
  24012    value: function cancel(reason) {
  24013      this._done = true;
  24014 
  24015      this._headersReceivedCapability.reject(reason);
  24016 
  24017      this._requests.forEach(function (requestCapability) {
  24018        requestCapability.resolve({
  24019          value: undefined,
  24020          done: true
  24021        });
  24022      });
  24023 
  24024      this._requests = [];
  24025 
  24026      if (this._manager.isPendingRequest(this._fullRequestId)) {
  24027        this._manager.abortRequest(this._fullRequestId);
  24028      }
  24029 
  24030      this._fullRequestReader = null;
  24031    }
  24032  }, {
  24033    key: "filename",
  24034    get: function get() {
  24035      return this._filename;
  24036    }
  24037  }, {
  24038    key: "isRangeSupported",
  24039    get: function get() {
  24040      return this._isRangeSupported;
  24041    }
  24042  }, {
  24043    key: "isStreamingSupported",
  24044    get: function get() {
  24045      return this._isStreamingSupported;
  24046    }
  24047  }, {
  24048    key: "contentLength",
  24049    get: function get() {
  24050      return this._contentLength;
  24051    }
  24052  }, {
  24053    key: "headersReady",
  24054    get: function get() {
  24055      return this._headersReceivedCapability.promise;
  24056    }
  24057  }]);
  24058 
  24059  return PDFNetworkStreamFullRequestReader;
  24060 }();
  24061 
  24062 var PDFNetworkStreamRangeRequestReader =
  24063 /*#__PURE__*/
  24064 function () {
  24065  function PDFNetworkStreamRangeRequestReader(manager, begin, end) {
  24066    _classCallCheck(this, PDFNetworkStreamRangeRequestReader);
  24067 
  24068    this._manager = manager;
  24069    var args = {
  24070      onDone: this._onDone.bind(this),
  24071      onProgress: this._onProgress.bind(this)
  24072    };
  24073    this._requestId = manager.requestRange(begin, end, args);
  24074    this._requests = [];
  24075    this._queuedChunk = null;
  24076    this._done = false;
  24077    this.onProgress = null;
  24078    this.onClosed = null;
  24079  }
  24080 
  24081  _createClass(PDFNetworkStreamRangeRequestReader, [{
  24082    key: "_close",
  24083    value: function _close() {
  24084      if (this.onClosed) {
  24085        this.onClosed(this);
  24086      }
  24087    }
  24088  }, {
  24089    key: "_onDone",
  24090    value: function _onDone(data) {
  24091      var chunk = data.chunk;
  24092 
  24093      if (this._requests.length > 0) {
  24094        var requestCapability = this._requests.shift();
  24095 
  24096        requestCapability.resolve({
  24097          value: chunk,
  24098          done: false
  24099        });
  24100      } else {
  24101        this._queuedChunk = chunk;
  24102      }
  24103 
  24104      this._done = true;
  24105 
  24106      this._requests.forEach(function (requestCapability) {
  24107        requestCapability.resolve({
  24108          value: undefined,
  24109          done: true
  24110        });
  24111      });
  24112 
  24113      this._requests = [];
  24114 
  24115      this._close();
  24116    }
  24117  }, {
  24118    key: "_onProgress",
  24119    value: function _onProgress(evt) {
  24120      if (!this.isStreamingSupported && this.onProgress) {
  24121        this.onProgress({
  24122          loaded: evt.loaded
  24123        });
  24124      }
  24125    }
  24126  }, {
  24127    key: "read",
  24128    value: function () {
  24129      var _read2 = _asyncToGenerator(
  24130      /*#__PURE__*/
  24131      _regenerator["default"].mark(function _callee2() {
  24132        var chunk, requestCapability;
  24133        return _regenerator["default"].wrap(function _callee2$(_context2) {
  24134          while (1) {
  24135            switch (_context2.prev = _context2.next) {
  24136              case 0:
  24137                if (!(this._queuedChunk !== null)) {
  24138                  _context2.next = 4;
  24139                  break;
  24140                }
  24141 
  24142                chunk = this._queuedChunk;
  24143                this._queuedChunk = null;
  24144                return _context2.abrupt("return", {
  24145                  value: chunk,
  24146                  done: false
  24147                });
  24148 
  24149              case 4:
  24150                if (!this._done) {
  24151                  _context2.next = 6;
  24152                  break;
  24153                }
  24154 
  24155                return _context2.abrupt("return", {
  24156                  value: undefined,
  24157                  done: true
  24158                });
  24159 
  24160              case 6:
  24161                requestCapability = (0, _util.createPromiseCapability)();
  24162 
  24163                this._requests.push(requestCapability);
  24164 
  24165                return _context2.abrupt("return", requestCapability.promise);
  24166 
  24167              case 9:
  24168              case "end":
  24169                return _context2.stop();
  24170            }
  24171          }
  24172        }, _callee2, this);
  24173      }));
  24174 
  24175      function read() {
  24176        return _read2.apply(this, arguments);
  24177      }
  24178 
  24179      return read;
  24180    }()
  24181  }, {
  24182    key: "cancel",
  24183    value: function cancel(reason) {
  24184      this._done = true;
  24185 
  24186      this._requests.forEach(function (requestCapability) {
  24187        requestCapability.resolve({
  24188          value: undefined,
  24189          done: true
  24190        });
  24191      });
  24192 
  24193      this._requests = [];
  24194 
  24195      if (this._manager.isPendingRequest(this._requestId)) {
  24196        this._manager.abortRequest(this._requestId);
  24197      }
  24198 
  24199      this._close();
  24200    }
  24201  }, {
  24202    key: "isStreamingSupported",
  24203    get: function get() {
  24204      return false;
  24205    }
  24206  }]);
  24207 
  24208  return PDFNetworkStreamRangeRequestReader;
  24209 }();
  24210 
  24211 /***/ }),
  24212 /* 169 */
  24213 /***/ (function(module, exports, __w_pdfjs_require__) {
  24214 
  24215 "use strict";
  24216 
  24217 
  24218 Object.defineProperty(exports, "__esModule", {
  24219  value: true
  24220 });
  24221 exports.PDFFetchStream = void 0;
  24222 
  24223 var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148));
  24224 
  24225 var _util = __w_pdfjs_require__(1);
  24226 
  24227 var _network_utils = __w_pdfjs_require__(166);
  24228 
  24229 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  24230 
  24231 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
  24232 
  24233 function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
  24234 
  24235 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  24236 
  24237 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
  24238 
  24239 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
  24240 
  24241 function createFetchOptions(headers, withCredentials, abortController) {
  24242  return {
  24243    method: 'GET',
  24244    headers: headers,
  24245    signal: abortController && abortController.signal,
  24246    mode: 'cors',
  24247    credentials: withCredentials ? 'include' : 'same-origin',
  24248    redirect: 'follow'
  24249  };
  24250 }
  24251 
  24252 var PDFFetchStream =
  24253 /*#__PURE__*/
  24254 function () {
  24255  function PDFFetchStream(source) {
  24256    _classCallCheck(this, PDFFetchStream);
  24257 
  24258    this.source = source;
  24259    this.isHttp = /^https?:/i.test(source.url);
  24260    this.httpHeaders = this.isHttp && source.httpHeaders || {};
  24261    this._fullRequestReader = null;
  24262    this._rangeRequestReaders = [];
  24263  }
  24264 
  24265  _createClass(PDFFetchStream, [{
  24266    key: "getFullReader",
  24267    value: function getFullReader() {
  24268      (0, _util.assert)(!this._fullRequestReader);
  24269      this._fullRequestReader = new PDFFetchStreamReader(this);
  24270      return this._fullRequestReader;
  24271    }
  24272  }, {
  24273    key: "getRangeReader",
  24274    value: function getRangeReader(begin, end) {
  24275      if (end <= this._progressiveDataLength) {
  24276        return null;
  24277      }
  24278 
  24279      var reader = new PDFFetchStreamRangeReader(this, begin, end);
  24280 
  24281      this._rangeRequestReaders.push(reader);
  24282 
  24283      return reader;
  24284    }
  24285  }, {
  24286    key: "cancelAllRequests",
  24287    value: function cancelAllRequests(reason) {
  24288      if (this._fullRequestReader) {
  24289        this._fullRequestReader.cancel(reason);
  24290      }
  24291 
  24292      var readers = this._rangeRequestReaders.slice(0);
  24293 
  24294      readers.forEach(function (reader) {
  24295        reader.cancel(reason);
  24296      });
  24297    }
  24298  }, {
  24299    key: "_progressiveDataLength",
  24300    get: function get() {
  24301      return this._fullRequestReader ? this._fullRequestReader._loaded : 0;
  24302    }
  24303  }]);
  24304 
  24305  return PDFFetchStream;
  24306 }();
  24307 
  24308 exports.PDFFetchStream = PDFFetchStream;
  24309 
  24310 var PDFFetchStreamReader =
  24311 /*#__PURE__*/
  24312 function () {
  24313  function PDFFetchStreamReader(stream) {
  24314    var _this = this;
  24315 
  24316    _classCallCheck(this, PDFFetchStreamReader);
  24317 
  24318    this._stream = stream;
  24319    this._reader = null;
  24320    this._loaded = 0;
  24321    this._filename = null;
  24322    var source = stream.source;
  24323    this._withCredentials = source.withCredentials || false;
  24324    this._contentLength = source.length;
  24325    this._headersCapability = (0, _util.createPromiseCapability)();
  24326    this._disableRange = source.disableRange || false;
  24327    this._rangeChunkSize = source.rangeChunkSize;
  24328 
  24329    if (!this._rangeChunkSize && !this._disableRange) {
  24330      this._disableRange = true;
  24331    }
  24332 
  24333    if (typeof AbortController !== 'undefined') {
  24334      this._abortController = new AbortController();
  24335    }
  24336 
  24337    this._isStreamingSupported = !source.disableStream;
  24338    this._isRangeSupported = !source.disableRange;
  24339    this._headers = new Headers();
  24340 
  24341    for (var property in this._stream.httpHeaders) {
  24342      var value = this._stream.httpHeaders[property];
  24343 
  24344      if (typeof value === 'undefined') {
  24345        continue;
  24346      }
  24347 
  24348      this._headers.append(property, value);
  24349    }
  24350 
  24351    var url = source.url;
  24352    fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {
  24353      if (!(0, _network_utils.validateResponseStatus)(response.status)) {
  24354        throw (0, _network_utils.createResponseStatusError)(response.status, url);
  24355      }
  24356 
  24357      _this._reader = response.body.getReader();
  24358 
  24359      _this._headersCapability.resolve();
  24360 
  24361      var getResponseHeader = function getResponseHeader(name) {
  24362        return response.headers.get(name);
  24363      };
  24364 
  24365      var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({
  24366        getResponseHeader: getResponseHeader,
  24367        isHttp: _this._stream.isHttp,
  24368        rangeChunkSize: _this._rangeChunkSize,
  24369        disableRange: _this._disableRange
  24370      }),
  24371          allowRangeRequests = _validateRangeRequest.allowRangeRequests,
  24372          suggestedLength = _validateRangeRequest.suggestedLength;
  24373 
  24374      _this._isRangeSupported = allowRangeRequests;
  24375      _this._contentLength = suggestedLength || _this._contentLength;
  24376      _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);
  24377 
  24378      if (!_this._isStreamingSupported && _this._isRangeSupported) {
  24379        _this.cancel(new _util.AbortException('Streaming is disabled.'));
  24380      }
  24381    })["catch"](this._headersCapability.reject);
  24382    this.onProgress = null;
  24383  }
  24384 
  24385  _createClass(PDFFetchStreamReader, [{
  24386    key: "read",
  24387    value: function () {
  24388      var _read = _asyncToGenerator(
  24389      /*#__PURE__*/
  24390      _regenerator["default"].mark(function _callee() {
  24391        var _ref, value, done, buffer;
  24392 
  24393        return _regenerator["default"].wrap(function _callee$(_context) {
  24394          while (1) {
  24395            switch (_context.prev = _context.next) {
  24396              case 0:
  24397                _context.next = 2;
  24398                return this._headersCapability.promise;
  24399 
  24400              case 2:
  24401                _context.next = 4;
  24402                return this._reader.read();
  24403 
  24404              case 4:
  24405                _ref = _context.sent;
  24406                value = _ref.value;
  24407                done = _ref.done;
  24408 
  24409                if (!done) {
  24410                  _context.next = 9;
  24411                  break;
  24412                }
  24413 
  24414                return _context.abrupt("return", {
  24415                  value: value,
  24416                  done: done
  24417                });
  24418 
  24419              case 9:
  24420                this._loaded += value.byteLength;
  24421 
  24422                if (this.onProgress) {
  24423                  this.onProgress({
  24424                    loaded: this._loaded,
  24425                    total: this._contentLength
  24426                  });
  24427                }
  24428 
  24429                buffer = new Uint8Array(value).buffer;
  24430                return _context.abrupt("return", {
  24431                  value: buffer,
  24432                  done: false
  24433                });
  24434 
  24435              case 13:
  24436              case "end":
  24437                return _context.stop();
  24438            }
  24439          }
  24440        }, _callee, this);
  24441      }));
  24442 
  24443      function read() {
  24444        return _read.apply(this, arguments);
  24445      }
  24446 
  24447      return read;
  24448    }()
  24449  }, {
  24450    key: "cancel",
  24451    value: function cancel(reason) {
  24452      if (this._reader) {
  24453        this._reader.cancel(reason);
  24454      }
  24455 
  24456      if (this._abortController) {
  24457        this._abortController.abort();
  24458      }
  24459    }
  24460  }, {
  24461    key: "headersReady",
  24462    get: function get() {
  24463      return this._headersCapability.promise;
  24464    }
  24465  }, {
  24466    key: "filename",
  24467    get: function get() {
  24468      return this._filename;
  24469    }
  24470  }, {
  24471    key: "contentLength",
  24472    get: function get() {
  24473      return this._contentLength;
  24474    }
  24475  }, {
  24476    key: "isRangeSupported",
  24477    get: function get() {
  24478      return this._isRangeSupported;
  24479    }
  24480  }, {
  24481    key: "isStreamingSupported",
  24482    get: function get() {
  24483      return this._isStreamingSupported;
  24484    }
  24485  }]);
  24486 
  24487  return PDFFetchStreamReader;
  24488 }();
  24489 
  24490 var PDFFetchStreamRangeReader =
  24491 /*#__PURE__*/
  24492 function () {
  24493  function PDFFetchStreamRangeReader(stream, begin, end) {
  24494    var _this2 = this;
  24495 
  24496    _classCallCheck(this, PDFFetchStreamRangeReader);
  24497 
  24498    this._stream = stream;
  24499    this._reader = null;
  24500    this._loaded = 0;
  24501    var source = stream.source;
  24502    this._withCredentials = source.withCredentials || false;
  24503    this._readCapability = (0, _util.createPromiseCapability)();
  24504    this._isStreamingSupported = !source.disableStream;
  24505 
  24506    if (typeof AbortController !== 'undefined') {
  24507      this._abortController = new AbortController();
  24508    }
  24509 
  24510    this._headers = new Headers();
  24511 
  24512    for (var property in this._stream.httpHeaders) {
  24513      var value = this._stream.httpHeaders[property];
  24514 
  24515      if (typeof value === 'undefined') {
  24516        continue;
  24517      }
  24518 
  24519      this._headers.append(property, value);
  24520    }
  24521 
  24522    this._headers.append('Range', "bytes=".concat(begin, "-").concat(end - 1));
  24523 
  24524    var url = source.url;
  24525    fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {
  24526      if (!(0, _network_utils.validateResponseStatus)(response.status)) {
  24527        throw (0, _network_utils.createResponseStatusError)(response.status, url);
  24528      }
  24529 
  24530      _this2._readCapability.resolve();
  24531 
  24532      _this2._reader = response.body.getReader();
  24533    });
  24534    this.onProgress = null;
  24535  }
  24536 
  24537  _createClass(PDFFetchStreamRangeReader, [{
  24538    key: "read",
  24539    value: function () {
  24540      var _read2 = _asyncToGenerator(
  24541      /*#__PURE__*/
  24542      _regenerator["default"].mark(function _callee2() {
  24543        var _ref2, value, done, buffer;
  24544 
  24545        return _regenerator["default"].wrap(function _callee2$(_context2) {
  24546          while (1) {
  24547            switch (_context2.prev = _context2.next) {
  24548              case 0:
  24549                _context2.next = 2;
  24550                return this._readCapability.promise;
  24551 
  24552              case 2:
  24553                _context2.next = 4;
  24554                return this._reader.read();
  24555 
  24556              case 4:
  24557                _ref2 = _context2.sent;
  24558                value = _ref2.value;
  24559                done = _ref2.done;
  24560 
  24561                if (!done) {
  24562                  _context2.next = 9;
  24563                  break;
  24564                }
  24565 
  24566                return _context2.abrupt("return", {
  24567                  value: value,
  24568                  done: done
  24569                });
  24570 
  24571              case 9:
  24572                this._loaded += value.byteLength;
  24573 
  24574                if (this.onProgress) {
  24575                  this.onProgress({
  24576                    loaded: this._loaded
  24577                  });
  24578                }
  24579 
  24580                buffer = new Uint8Array(value).buffer;
  24581                return _context2.abrupt("return", {
  24582                  value: buffer,
  24583                  done: false
  24584                });
  24585 
  24586              case 13:
  24587              case "end":
  24588                return _context2.stop();
  24589            }
  24590          }
  24591        }, _callee2, this);
  24592      }));
  24593 
  24594      function read() {
  24595        return _read2.apply(this, arguments);
  24596      }
  24597 
  24598      return read;
  24599    }()
  24600  }, {
  24601    key: "cancel",
  24602    value: function cancel(reason) {
  24603      if (this._reader) {
  24604        this._reader.cancel(reason);
  24605      }
  24606 
  24607      if (this._abortController) {
  24608        this._abortController.abort();
  24609      }
  24610    }
  24611  }, {
  24612    key: "isStreamingSupported",
  24613    get: function get() {
  24614      return this._isStreamingSupported;
  24615    }
  24616  }]);
  24617 
  24618  return PDFFetchStreamRangeReader;
  24619 }();
  24620 
  24621 /***/ })
  24622 /******/ ]);
  24623 });
  24624 //# sourceMappingURL=pdf.js.map