diff --git a/bower.json b/bower.json index fcc1049d2..fcad3f6f1 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "pdfjs-dist", - "version": "2.0.402", + "version": "2.0.419", "main": [ "build/pdf.js", "build/pdf.worker.js" diff --git a/build/pdf.js b/build/pdf.js index 21cc91ef3..938ab7d0a 100644 --- a/build/pdf.js +++ b/build/pdf.js @@ -92,7 +92,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __w_pdfjs_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __w_pdfjs_require__(__w_pdfjs_require__.s = 64); +/******/ return __w_pdfjs_require__(__w_pdfjs_require__.s = 60); /******/ }) /************************************************************************/ /******/ ([ @@ -109,9 +109,9 @@ exports.unreachable = exports.warn = exports.utf8StringToString = exports.string var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; -__w_pdfjs_require__(65); +__w_pdfjs_require__(61); -var _streams_polyfill = __w_pdfjs_require__(119); +var _streams_polyfill = __w_pdfjs_require__(115); var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; var NativeImageDecoding = { @@ -1413,7 +1413,7 @@ exports.unreachable = unreachable; "use strict"; -var store = __w_pdfjs_require__(43)('wks'); +var store = __w_pdfjs_require__(42)('wks'); var uid = __w_pdfjs_require__(20); var _Symbol = __w_pdfjs_require__(4).Symbol; var USE_SYMBOL = typeof _Symbol == 'function'; @@ -1444,7 +1444,7 @@ module.exports = function (it) { var global = __w_pdfjs_require__(4); var core = __w_pdfjs_require__(5); -var hide = __w_pdfjs_require__(11); +var hide = __w_pdfjs_require__(10); var redefine = __w_pdfjs_require__(8); var ctx = __w_pdfjs_require__(9); var PROTOTYPE = 'prototype'; @@ -1532,7 +1532,7 @@ module.exports = function (it, key) { var global = __w_pdfjs_require__(4); -var hide = __w_pdfjs_require__(11); +var hide = __w_pdfjs_require__(10); var has = __w_pdfjs_require__(7); var SRC = __w_pdfjs_require__(20)('src'); var TO_STRING = 'toString'; @@ -1567,7 +1567,7 @@ __w_pdfjs_require__(5).inspectSource = function (it) { "use strict"; -var aFunction = __w_pdfjs_require__(17); +var aFunction = __w_pdfjs_require__(15); module.exports = function (fn, that, length) { aFunction(fn); if (that === undefined) return fn; @@ -1597,21 +1597,130 @@ module.exports = function (fn, that, length) { "use strict"; +var dP = __w_pdfjs_require__(14); +var createDesc = __w_pdfjs_require__(27); +module.exports = __w_pdfjs_require__(11) ? function (object, key, value) { + return dP.f(object, key, createDesc(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = !__w_pdfjs_require__(12)(function () { + return Object.defineProperty({}, 'a', { + get: function get() { + return 7; + } + }).a != 7; +}); + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (exec) { + try { + return !!exec(); + } catch (e) { + return true; + } +}; + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var toString = {}.toString; +module.exports = function (it) { + return toString.call(it).slice(8, -1); +}; + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var anObject = __w_pdfjs_require__(6); +var IE8_DOM_DEFINE = __w_pdfjs_require__(40); +var toPrimitive = __w_pdfjs_require__(41); +var dP = Object.defineProperty; +exports.f = __w_pdfjs_require__(11) ? Object.defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return dP(O, P, Attributes); + } catch (e) {} + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (it) { + if (typeof it != 'function') throw TypeError(it + ' is not a function!'); + return it; +}; + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var IObject = __w_pdfjs_require__(28); +var defined = __w_pdfjs_require__(21); +module.exports = function (it) { + return IObject(defined(it)); +}; + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = {}; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); -exports.DummyStatTimer = exports.StatTimer = exports.SimpleXMLParser = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.getDefaultSetting = exports.LinkTarget = exports.getFilenameFromUrl = exports.addLinkAttributes = exports.RenderingCancelledException = undefined; +exports.DummyStatTimer = exports.StatTimer = exports.SimpleXMLParser = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.getFilenameFromUrl = exports.addLinkAttributes = exports.RenderingCancelledException = undefined; var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _util = __w_pdfjs_require__(0); -var _global_scope = __w_pdfjs_require__(15); - -var _global_scope2 = _interopRequireDefault(_global_scope); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var DEFAULT_LINK_REL = 'noopener noreferrer nofollow'; @@ -1686,7 +1795,7 @@ var DOMCMapReaderFactory = function () { var name = _ref2.name; if (!this.baseUrl) { - return Promise.reject(new Error('CMap baseUrl must be specified, ' + 'see "PDFJS.cMapUrl" (and also "PDFJS.cMapPacked").')); + return Promise.reject(new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.')); } if (!name) { return Promise.reject(new Error('CMap name must be specified.')); @@ -1923,33 +2032,6 @@ function getFilenameFromUrl(url) { var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length); return url.substring(url.lastIndexOf('/', end) + 1, end); } -function getDefaultSetting(id) { - var globalSettings = _global_scope2.default.PDFJS; - switch (id) { - case 'pdfBug': - return globalSettings ? globalSettings.pdfBug : false; - case 'disableAutoFetch': - return globalSettings ? globalSettings.disableAutoFetch : false; - case 'disableStream': - return globalSettings ? globalSettings.disableStream : false; - case 'disableRange': - return globalSettings ? globalSettings.disableRange : false; - case 'disableFontFace': - return globalSettings ? globalSettings.disableFontFace : false; - case 'disableCreateObjectURL': - return globalSettings ? globalSettings.disableCreateObjectURL : false; - case 'cMapUrl': - return globalSettings ? globalSettings.cMapUrl : null; - case 'cMapPacked': - return globalSettings ? globalSettings.cMapPacked : false; - case 'maxImageSize': - return globalSettings ? globalSettings.maxImageSize : -1; - case 'isEvalSupported': - return globalSettings ? globalSettings.isEvalSupported : true; - default: - throw new Error('Unknown default setting: ' + id); - } -} var StatTimer = function () { function StatTimer() { @@ -2040,7 +2122,6 @@ exports.RenderingCancelledException = RenderingCancelledException; exports.addLinkAttributes = addLinkAttributes; exports.getFilenameFromUrl = getFilenameFromUrl; exports.LinkTarget = LinkTarget; -exports.getDefaultSetting = getDefaultSetting; exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL; exports.DOMCanvasFactory = DOMCanvasFactory; exports.DOMCMapReaderFactory = DOMCMapReaderFactory; @@ -2049,121 +2130,6 @@ exports.SimpleXMLParser = SimpleXMLParser; exports.StatTimer = StatTimer; exports.DummyStatTimer = DummyStatTimer; -/***/ }), -/* 11 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var dP = __w_pdfjs_require__(16); -var createDesc = __w_pdfjs_require__(27); -module.exports = __w_pdfjs_require__(12) ? function (object, key, value) { - return dP.f(object, key, createDesc(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - -/***/ }), -/* 12 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = !__w_pdfjs_require__(13)(function () { - return Object.defineProperty({}, 'a', { - get: function get() { - return 7; - } - }).a != 7; -}); - -/***/ }), -/* 13 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (exec) { - try { - return !!exec(); - } catch (e) { - return true; - } -}; - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toString = {}.toString; -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - -/***/ }), -/* 15 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {}; - -/***/ }), -/* 16 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var anObject = __w_pdfjs_require__(6); -var IE8_DOM_DEFINE = __w_pdfjs_require__(41); -var toPrimitive = __w_pdfjs_require__(42); -var dP = Object.defineProperty; -exports.f = __w_pdfjs_require__(12) ? Object.defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return dP(O, P, Attributes); - } catch (e) {} - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (it) { - if (typeof it != 'function') throw TypeError(it + ' is not a function!'); - return it; -}; - -/***/ }), -/* 18 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var IObject = __w_pdfjs_require__(28); -var defined = __w_pdfjs_require__(21); -module.exports = function (it) { - return IObject(defined(it)); -}; - /***/ }), /* 19 */ /***/ (function(module, exports, __w_pdfjs_require__) { @@ -2171,7 +2137,7 @@ module.exports = function (it) { "use strict"; -module.exports = {}; +module.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {}; /***/ }), /* 20 */ @@ -2205,8 +2171,8 @@ module.exports = function (it) { "use strict"; -var $keys = __w_pdfjs_require__(87); -var enumBugKeys = __w_pdfjs_require__(49); +var $keys = __w_pdfjs_require__(83); +var enumBugKeys = __w_pdfjs_require__(48); module.exports = Object.keys || function keys(O) { return $keys(O, enumBugKeys); }; @@ -2218,7 +2184,7 @@ module.exports = Object.keys || function keys(O) { "use strict"; -var def = __w_pdfjs_require__(16).f; +var def = __w_pdfjs_require__(14).f; var has = __w_pdfjs_require__(7); var TAG = __w_pdfjs_require__(1)('toStringTag'); module.exports = function (it, tag, stat) { @@ -2236,11 +2202,11 @@ module.exports = function (it, tag, stat) { var ctx = __w_pdfjs_require__(9); -var call = __w_pdfjs_require__(92); -var isArrayIter = __w_pdfjs_require__(93); +var call = __w_pdfjs_require__(88); +var isArrayIter = __w_pdfjs_require__(89); var anObject = __w_pdfjs_require__(6); var toLength = __w_pdfjs_require__(29); -var getIterFn = __w_pdfjs_require__(94); +var getIterFn = __w_pdfjs_require__(90); var BREAK = {}; var RETURN = {}; var _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { @@ -2312,7 +2278,7 @@ module.exports = function (bitmap, value) { "use strict"; -var cof = __w_pdfjs_require__(14); +var cof = __w_pdfjs_require__(13); module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { return cof(it) == 'String' ? it.split('') : Object(it); }; @@ -2350,7 +2316,7 @@ module.exports = function (it) { "use strict"; -var cof = __w_pdfjs_require__(14); +var cof = __w_pdfjs_require__(13); var TAG = __w_pdfjs_require__(1)('toStringTag'); var ARG = cof(function () { return arguments; @@ -2372,7 +2338,7 @@ module.exports = function (it) { "use strict"; -var shared = __w_pdfjs_require__(43)('keys'); +var shared = __w_pdfjs_require__(42)('keys'); var uid = __w_pdfjs_require__(20); module.exports = function (key) { return shared[key] || (shared[key] = uid(key)); @@ -2411,7 +2377,7 @@ module.exports = function (it, Constructor, name, forbiddenField) { "use strict"; -var aFunction = __w_pdfjs_require__(17); +var aFunction = __w_pdfjs_require__(15); function PromiseCapability(C) { var resolve, reject; this.promise = new C(function ($$resolve, $$reject) { @@ -2452,12 +2418,12 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol var META = __w_pdfjs_require__(20)('meta'); var isObject = __w_pdfjs_require__(2); var has = __w_pdfjs_require__(7); -var setDesc = __w_pdfjs_require__(16).f; +var setDesc = __w_pdfjs_require__(14).f; var id = 0; var isExtensible = Object.isExtensible || function () { return true; }; -var FREEZE = !__w_pdfjs_require__(13)(function () { +var FREEZE = !__w_pdfjs_require__(12)(function () { return isExtensible(Object.preventExtensions({})); }); var setMeta = function setMeta(it) { @@ -2513,21 +2479,6 @@ exports.f = {}.propertyIsEnumerable; "use strict"; -Object.defineProperty(exports, "__esModule", { - value: true -}); -var GlobalWorkerOptions = Object.create(null); -GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort; -GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? '' : GlobalWorkerOptions.workerSrc; -exports.GlobalWorkerOptions = GlobalWorkerOptions; - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - Object.defineProperty(exports, "__esModule", { value: true }); @@ -2594,13 +2545,13 @@ exports.validateRangeRequestCapabilities = validateRangeRequestCapabilities; exports.validateResponseStatus = validateResponseStatus; /***/ }), -/* 41 */ +/* 40 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; -module.exports = !__w_pdfjs_require__(12) && !__w_pdfjs_require__(13)(function () { +module.exports = !__w_pdfjs_require__(11) && !__w_pdfjs_require__(12)(function () { return Object.defineProperty(__w_pdfjs_require__(26)('div'), 'a', { get: function get() { return 7; @@ -2609,7 +2560,7 @@ module.exports = !__w_pdfjs_require__(12) && !__w_pdfjs_require__(13)(function ( }); /***/ }), -/* 42 */ +/* 41 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -2626,7 +2577,7 @@ module.exports = function (it, S) { }; /***/ }), -/* 43 */ +/* 42 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -2640,15 +2591,15 @@ module.exports = function (key) { }; /***/ }), -/* 44 */ +/* 43 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; -var toIObject = __w_pdfjs_require__(18); +var toIObject = __w_pdfjs_require__(16); var toLength = __w_pdfjs_require__(29); -var toAbsoluteIndex = __w_pdfjs_require__(73); +var toAbsoluteIndex = __w_pdfjs_require__(69); module.exports = function (IS_INCLUDES) { return function ($this, el, fromIndex) { var O = toIObject($this); @@ -2667,7 +2618,7 @@ module.exports = function (IS_INCLUDES) { }; /***/ }), -/* 45 */ +/* 44 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -2675,13 +2626,13 @@ module.exports = function (IS_INCLUDES) { var UNSCOPABLES = __w_pdfjs_require__(1)('unscopables'); var ArrayProto = Array.prototype; -if (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(11)(ArrayProto, UNSCOPABLES, {}); +if (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(10)(ArrayProto, UNSCOPABLES, {}); module.exports = function (key) { ArrayProto[UNSCOPABLES][key] = true; }; /***/ }), -/* 46 */ +/* 45 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -2697,21 +2648,21 @@ if (test + '' != '[object z]') { } /***/ }), -/* 47 */ +/* 46 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; -var LIBRARY = __w_pdfjs_require__(48); +var LIBRARY = __w_pdfjs_require__(47); var $export = __w_pdfjs_require__(3); var redefine = __w_pdfjs_require__(8); -var hide = __w_pdfjs_require__(11); +var hide = __w_pdfjs_require__(10); var has = __w_pdfjs_require__(7); -var Iterators = __w_pdfjs_require__(19); -var $iterCreate = __w_pdfjs_require__(84); +var Iterators = __w_pdfjs_require__(17); +var $iterCreate = __w_pdfjs_require__(80); var setToStringTag = __w_pdfjs_require__(23); -var getPrototypeOf = __w_pdfjs_require__(88); +var getPrototypeOf = __w_pdfjs_require__(84); var ITERATOR = __w_pdfjs_require__(1)('iterator'); var BUGGY = !([].keys && 'next' in [].keys()); var FF_ITERATOR = '@@iterator'; @@ -2779,7 +2730,7 @@ module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCE }; /***/ }), -/* 48 */ +/* 47 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -2788,7 +2739,7 @@ module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCE module.exports = false; /***/ }), -/* 49 */ +/* 48 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -2797,7 +2748,7 @@ module.exports = false; module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(','); /***/ }), -/* 50 */ +/* 49 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -2807,18 +2758,18 @@ var document = __w_pdfjs_require__(4).document; module.exports = document && document.documentElement; /***/ }), -/* 51 */ +/* 50 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; -var $iterators = __w_pdfjs_require__(89); +var $iterators = __w_pdfjs_require__(85); var getKeys = __w_pdfjs_require__(22); var redefine = __w_pdfjs_require__(8); var global = __w_pdfjs_require__(4); -var hide = __w_pdfjs_require__(11); -var Iterators = __w_pdfjs_require__(19); +var hide = __w_pdfjs_require__(10); +var Iterators = __w_pdfjs_require__(17); var wks = __w_pdfjs_require__(1); var ITERATOR = wks('iterator'); var TO_STRING_TAG = wks('toStringTag'); @@ -2873,14 +2824,14 @@ for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++ } /***/ }), -/* 52 */ +/* 51 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; var anObject = __w_pdfjs_require__(6); -var aFunction = __w_pdfjs_require__(17); +var aFunction = __w_pdfjs_require__(15); var SPECIES = __w_pdfjs_require__(1)('species'); module.exports = function (O, D) { var C = anObject(O).constructor; @@ -2889,15 +2840,15 @@ module.exports = function (O, D) { }; /***/ }), -/* 53 */ +/* 52 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; var ctx = __w_pdfjs_require__(9); -var invoke = __w_pdfjs_require__(95); -var html = __w_pdfjs_require__(50); +var invoke = __w_pdfjs_require__(91); +var html = __w_pdfjs_require__(49); var cel = __w_pdfjs_require__(26); var global = __w_pdfjs_require__(4); var process = global.process; @@ -2935,7 +2886,7 @@ if (!setTask || !clearTask) { clearTask = function clearImmediate(id) { delete queue[id]; }; - if (__w_pdfjs_require__(14)(process) == 'process') { + if (__w_pdfjs_require__(13)(process) == 'process') { defer = function defer(id) { process.nextTick(ctx(run, id, 1)); }; @@ -2972,7 +2923,7 @@ module.exports = { }; /***/ }), -/* 54 */ +/* 53 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -2993,7 +2944,7 @@ module.exports = function (exec) { }; /***/ }), -/* 55 */ +/* 54 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -3012,7 +2963,7 @@ module.exports = function (C, x) { }; /***/ }), -/* 56 */ +/* 55 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -3047,7 +2998,7 @@ module.exports = function (exec, skipClosing) { }; /***/ }), -/* 57 */ +/* 56 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -3057,7 +3008,7 @@ var ctx = __w_pdfjs_require__(9); var IObject = __w_pdfjs_require__(28); var toObject = __w_pdfjs_require__(33); var toLength = __w_pdfjs_require__(29); -var asc = __w_pdfjs_require__(102); +var asc = __w_pdfjs_require__(98); module.exports = function (TYPE, $create) { var IS_MAP = TYPE == 1; var IS_FILTER = TYPE == 2; @@ -3096,7 +3047,7 @@ module.exports = function (TYPE, $create) { }; /***/ }), -/* 58 */ +/* 57 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -3109,7 +3060,7 @@ module.exports = function (it, TYPE) { }; /***/ }), -/* 59 */ +/* 58 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -3118,4601 +3069,291 @@ module.exports = function (it, TYPE) { Object.defineProperty(exports, "__esModule", { value: true }); -exports.build = exports.version = exports.setPDFNetworkStreamFactory = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.getDocument = undefined; - -var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; +var compatibilityParams = Object.create(null); +{ + var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || ''; + var isIE = /Trident/.test(userAgent); + var isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent); + var isIOSChrome = /CriOS/.test(userAgent); + var isSafari = /Safari\//.test(userAgent) && !/(Chrome\/|Android\s)/.test(userAgent); + (function checkOnBlobSupport() { + if (isIE || isIOSChrome) { + compatibilityParams.disableCreateObjectURL = true; + } + })(); + (function checkRangeRequests() { + if (isSafari || isIOS) { + compatibilityParams.disableRange = true; + compatibilityParams.disableStream = true; + } + })(); +} +var apiCompatibilityParams = Object.freeze(compatibilityParams); +exports.apiCompatibilityParams = apiCompatibilityParams; -var _util = __w_pdfjs_require__(0); +/***/ }), +/* 59 */ +/***/ (function(module, exports, __w_pdfjs_require__) { -var _dom_utils = __w_pdfjs_require__(10); +"use strict"; -var _font_loader = __w_pdfjs_require__(122); -var _canvas = __w_pdfjs_require__(123); +Object.defineProperty(exports, "__esModule", { + value: true +}); +var GlobalWorkerOptions = Object.create(null); +GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort; +GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? '' : GlobalWorkerOptions.workerSrc; +exports.GlobalWorkerOptions = GlobalWorkerOptions; -var _global_scope = __w_pdfjs_require__(15); +/***/ }), +/* 60 */ +/***/ (function(module, exports, __w_pdfjs_require__) { -var _global_scope2 = _interopRequireDefault(_global_scope); +"use strict"; -var _worker_options = __w_pdfjs_require__(39); -var _metadata = __w_pdfjs_require__(60); +var pdfjsVersion = '2.0.419'; +var pdfjsBuild = 'c33bf800'; +var pdfjsSharedUtil = __w_pdfjs_require__(0); +var pdfjsDisplayAPI = __w_pdfjs_require__(117); +var pdfjsDisplayTextLayer = __w_pdfjs_require__(124); +var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(125); +var pdfjsDisplayDOMUtils = __w_pdfjs_require__(18); +var pdfjsDisplaySVG = __w_pdfjs_require__(126); +var pdfjsDisplayWorkerOptions = __w_pdfjs_require__(59); +var pdfjsDisplayAPICompatibility = __w_pdfjs_require__(58); +{ + var isNodeJS = __w_pdfjs_require__(25); + if (isNodeJS()) { + var PDFNodeStream = __w_pdfjs_require__(127).PDFNodeStream; + pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { + return new PDFNodeStream(params); + }); + } else if (typeof Response !== 'undefined' && 'body' in Response.prototype && typeof ReadableStream !== 'undefined') { + var PDFFetchStream = __w_pdfjs_require__(129).PDFFetchStream; + pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { + return new PDFFetchStream(params); + }); + } else { + var PDFNetworkStream = __w_pdfjs_require__(130).PDFNetworkStream; + pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { + return new PDFNetworkStream(params); + }); + } +} +exports.build = pdfjsDisplayAPI.build; +exports.version = pdfjsDisplayAPI.version; +exports.getDocument = pdfjsDisplayAPI.getDocument; +exports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort; +exports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport; +exports.PDFWorker = pdfjsDisplayAPI.PDFWorker; +exports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer; +exports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer; +exports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability; +exports.PasswordResponses = pdfjsSharedUtil.PasswordResponses; +exports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException; +exports.MissingPDFException = pdfjsSharedUtil.MissingPDFException; +exports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics; +exports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding; +exports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException; +exports.OPS = pdfjsSharedUtil.OPS; +exports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel; +exports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES; +exports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl; +exports.createObjectURL = pdfjsSharedUtil.createObjectURL; +exports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters; +exports.shadow = pdfjsSharedUtil.shadow; +exports.createBlob = pdfjsSharedUtil.createBlob; +exports.Util = pdfjsSharedUtil.Util; +exports.RenderingCancelledException = pdfjsDisplayDOMUtils.RenderingCancelledException; +exports.getFilenameFromUrl = pdfjsDisplayDOMUtils.getFilenameFromUrl; +exports.LinkTarget = pdfjsDisplayDOMUtils.LinkTarget; +exports.addLinkAttributes = pdfjsDisplayDOMUtils.addLinkAttributes; +exports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions; +exports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityParams; -var _transport_stream = __w_pdfjs_require__(125); +/***/ }), +/* 61 */ +/***/ (function(module, exports, __w_pdfjs_require__) { -var _webgl = __w_pdfjs_require__(126); +"use strict"; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; -var DEFAULT_RANGE_CHUNK_SIZE = 65536; -var isWorkerDisabled = false; -var workerSrc = void 0; -var pdfjsFilePath = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : null; -var fakeWorkerFilesLoader = null; -var useRequireEnsure = false; -{ - if (typeof window === 'undefined') { - isWorkerDisabled = true; - if (typeof require.ensure === 'undefined') { - require.ensure = require('node-ensure'); +var globalScope = __w_pdfjs_require__(19); +if (!globalScope._pdfjsCompatibilityChecked) { + globalScope._pdfjsCompatibilityChecked = true; + var isNodeJS = __w_pdfjs_require__(25); + var hasDOM = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' && (typeof document === 'undefined' ? 'undefined' : _typeof(document)) === 'object'; + (function checkNodeBtoa() { + if (globalScope.btoa || !isNodeJS()) { + return; } - useRequireEnsure = true; - } else if (typeof require !== 'undefined' && typeof require.ensure === 'function') { - useRequireEnsure = true; - } - if (typeof requirejs !== 'undefined' && requirejs.toUrl) { - workerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js'); - } - var dynamicLoaderSupported = typeof requirejs !== 'undefined' && requirejs.load; - fakeWorkerFilesLoader = useRequireEnsure ? function (callback) { - require.ensure([], function () { - var worker; - worker = require('./pdf.worker.js'); - callback(worker.WorkerMessageHandler); - }); - } : dynamicLoaderSupported ? function (callback) { - requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) { - callback(worker.WorkerMessageHandler); + globalScope.btoa = function (chars) { + return Buffer.from(chars, 'binary').toString('base64'); + }; + })(); + (function checkNodeAtob() { + if (globalScope.atob || !isNodeJS()) { + return; + } + globalScope.atob = function (input) { + return Buffer.from(input, 'base64').toString('binary'); + }; + })(); + (function checkCurrentScript() { + if (!hasDOM) { + return; + } + if ('currentScript' in document) { + return; + } + Object.defineProperty(document, 'currentScript', { + get: function get() { + var scripts = document.getElementsByTagName('script'); + return scripts[scripts.length - 1]; + }, + + enumerable: true, + configurable: true }); - } : null; -} -var createPDFNetworkStream; -function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) { - createPDFNetworkStream = pdfNetworkStreamFactory; -} -function getDocument(src) { - var task = new PDFDocumentLoadingTask(); - var source; - if (typeof src === 'string') { - source = { url: src }; - } else if ((0, _util.isArrayBuffer)(src)) { - source = { data: src }; - } else if (src instanceof PDFDataRangeTransport) { - source = { range: src }; - } else { - if ((typeof src === 'undefined' ? 'undefined' : _typeof(src)) !== 'object') { - throw new Error('Invalid parameter in getDocument, ' + 'need either Uint8Array, string or a parameter object'); + })(); + (function checkChildNodeRemove() { + if (!hasDOM) { + return; } - if (!src.url && !src.data && !src.range) { - throw new Error('Invalid parameter object: need either .data, .range or .url'); + if (typeof Element.prototype.remove !== 'undefined') { + return; } - source = src; - } - var params = {}; - var rangeTransport = null; - var worker = null; - var CMapReaderFactory = _dom_utils.DOMCMapReaderFactory; - for (var key in source) { - if (key === 'url' && typeof window !== 'undefined') { - params[key] = new URL(source[key], window.location).href; - continue; - } else if (key === 'range') { - rangeTransport = source[key]; - continue; - } else if (key === 'worker') { - worker = source[key]; - continue; - } else if (key === 'data' && !(source[key] instanceof Uint8Array)) { - var pdfBytes = source[key]; - if (typeof pdfBytes === 'string') { - params[key] = (0, _util.stringToBytes)(pdfBytes); - } else if ((typeof pdfBytes === 'undefined' ? 'undefined' : _typeof(pdfBytes)) === 'object' && pdfBytes !== null && !isNaN(pdfBytes.length)) { - params[key] = new Uint8Array(pdfBytes); - } else if ((0, _util.isArrayBuffer)(pdfBytes)) { - params[key] = new Uint8Array(pdfBytes); - } else { - throw new Error('Invalid PDF binary data: either typed array, ' + 'string or array-like object is expected in the ' + 'data property.'); + Element.prototype.remove = function () { + if (this.parentNode) { + this.parentNode.removeChild(this); } - continue; - } else if (key === 'CMapReaderFactory') { - CMapReaderFactory = source[key]; - continue; - } - params[key] = source[key]; - } - params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE; - params.ignoreErrors = params.stopAtErrors !== true; - var nativeImageDecoderValues = Object.values(_util.NativeImageDecoding); - if (params.nativeImageDecoderSupport === undefined || !nativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) { - params.nativeImageDecoderSupport = _util.NativeImageDecoding.DECODE; - } - (0, _util.setVerbosityLevel)(params.verbosity); - if (!worker) { - var workerParams = { - postMessageTransfers: params.postMessageTransfers, - verbosity: params.verbosity }; - var workerPort = _worker_options.GlobalWorkerOptions.workerPort; - if (workerPort) { - workerParams.port = workerPort; - worker = PDFWorker.fromPort(workerParams); - } else { - worker = new PDFWorker(workerParams); + })(); + (function checkStringIncludes() { + if (String.prototype.includes) { + return; } - task._worker = worker; - } - var docId = task.docId; - worker.promise.then(function () { - if (task.destroyed) { - throw new Error('Loading aborted'); + __w_pdfjs_require__(62); + })(); + (function checkArrayIncludes() { + if (Array.prototype.includes) { + return; } - return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) { - if (task.destroyed) { - throw new Error('Loading aborted'); + __w_pdfjs_require__(67); + })(); + (function checkMathLog2() { + if (Math.log2) { + return; + } + Math.log2 = __w_pdfjs_require__(70); + })(); + (function checkNumberIsNaN() { + if (Number.isNaN) { + return; + } + Number.isNaN = __w_pdfjs_require__(72); + })(); + (function checkNumberIsInteger() { + if (Number.isInteger) { + return; + } + Number.isInteger = __w_pdfjs_require__(74); + })(); + (function checkPromise() { + if (globalScope.Promise) { + return; + } + globalScope.Promise = __w_pdfjs_require__(77); + })(); + (function checkWeakMap() { + if (globalScope.WeakMap) { + return; + } + globalScope.WeakMap = __w_pdfjs_require__(96); + })(); + (function checkURLConstructor() { + var hasWorkingUrl = false; + try { + if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) { + var u = new URL('b', 'http://a'); + u.pathname = 'c%20d'; + hasWorkingUrl = u.href === 'http://a/c%20d'; } - var networkStream = void 0; - if (rangeTransport) { - networkStream = new _transport_stream.PDFDataTransportStream(params, rangeTransport); - } else if (!params.data) { - networkStream = createPDFNetworkStream(params); + } catch (e) {} + if (hasWorkingUrl) { + return; + } + var relative = Object.create(null); + relative['ftp'] = 21; + relative['file'] = 0; + relative['gopher'] = 70; + relative['http'] = 80; + relative['https'] = 443; + relative['ws'] = 80; + relative['wss'] = 443; + var relativePathDotMapping = Object.create(null); + relativePathDotMapping['%2e'] = '.'; + relativePathDotMapping['.%2e'] = '..'; + relativePathDotMapping['%2e.'] = '..'; + relativePathDotMapping['%2e%2e'] = '..'; + function isRelativeScheme(scheme) { + return relative[scheme] !== undefined; + } + function invalid() { + clear.call(this); + this._isInvalid = true; + } + function IDNAToASCII(h) { + if (h === '') { + invalid.call(this); } - var messageHandler = new _util.MessageHandler(docId, workerId, worker.port); - messageHandler.postMessageTransfers = worker.postMessageTransfers; - var transport = new WorkerTransport(messageHandler, task, networkStream, CMapReaderFactory); - task._transport = transport; - messageHandler.send('Ready', null); - }); - }).catch(task._capability.reject); - return task; -} -function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { - if (worker.destroyed) { - return Promise.reject(new Error('Worker was destroyed')); - } - var apiVersion = '2.0.402'; - source.disableRange = (0, _dom_utils.getDefaultSetting)('disableRange'); - source.disableAutoFetch = (0, _dom_utils.getDefaultSetting)('disableAutoFetch'); - source.disableStream = (0, _dom_utils.getDefaultSetting)('disableStream'); - if (pdfDataRangeTransport) { - source.length = pdfDataRangeTransport.length; - source.initialData = pdfDataRangeTransport.initialData; - } - return worker.messageHandler.sendWithPromise('GetDocRequest', { - docId: docId, - apiVersion: apiVersion, - source: { - data: source.data, - url: source.url, - password: source.password, - disableAutoFetch: source.disableAutoFetch, - rangeChunkSize: source.rangeChunkSize, - length: source.length - }, - maxImageSize: (0, _dom_utils.getDefaultSetting)('maxImageSize'), - disableFontFace: (0, _dom_utils.getDefaultSetting)('disableFontFace'), - disableCreateObjectURL: (0, _dom_utils.getDefaultSetting)('disableCreateObjectURL'), - postMessageTransfers: worker.postMessageTransfers, - docBaseUrl: source.docBaseUrl, - nativeImageDecoderSupport: source.nativeImageDecoderSupport, - ignoreErrors: source.ignoreErrors, - isEvalSupported: (0, _dom_utils.getDefaultSetting)('isEvalSupported') - }).then(function (workerId) { - if (worker.destroyed) { - throw new Error('Worker was destroyed'); + return h.toLowerCase(); } - return workerId; - }); -} -var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() { - var nextDocumentId = 0; - function PDFDocumentLoadingTask() { - this._capability = (0, _util.createPromiseCapability)(); - this._transport = null; - this._worker = null; - this.docId = 'd' + nextDocumentId++; - this.destroyed = false; - this.onPassword = null; - this.onProgress = null; - this.onUnsupportedFeature = null; - } - PDFDocumentLoadingTask.prototype = { - get promise() { - return this._capability.promise; - }, - destroy: function destroy() { - var _this = this; - - this.destroyed = true; - var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy(); - return transportDestroyed.then(function () { - _this._transport = null; - if (_this._worker) { - _this._worker.destroy(); - _this._worker = null; - } - }); - }, - - then: function PDFDocumentLoadingTask_then(onFulfilled, onRejected) { - return this.promise.then.apply(this.promise, arguments); + function percentEscape(c) { + var unicode = c.charCodeAt(0); + if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) { + return c; + } + return encodeURIComponent(c); } - }; - return PDFDocumentLoadingTask; -}(); -var PDFDataRangeTransport = function pdfDataRangeTransportClosure() { - function PDFDataRangeTransport(length, initialData) { - this.length = length; - this.initialData = initialData; - this._rangeListeners = []; - this._progressListeners = []; - this._progressiveReadListeners = []; - this._readyCapability = (0, _util.createPromiseCapability)(); - } - PDFDataRangeTransport.prototype = { - addRangeListener: function PDFDataRangeTransport_addRangeListener(listener) { - this._rangeListeners.push(listener); - }, - addProgressListener: function PDFDataRangeTransport_addProgressListener(listener) { - this._progressListeners.push(listener); - }, - addProgressiveReadListener: function PDFDataRangeTransport_addProgressiveReadListener(listener) { - this._progressiveReadListeners.push(listener); - }, - onDataRange: function PDFDataRangeTransport_onDataRange(begin, chunk) { - var listeners = this._rangeListeners; - for (var i = 0, n = listeners.length; i < n; ++i) { - listeners[i](begin, chunk); + function percentEscapeQuery(c) { + var unicode = c.charCodeAt(0); + if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) { + return c; } - }, - onDataProgress: function PDFDataRangeTransport_onDataProgress(loaded) { - var _this2 = this; - - this._readyCapability.promise.then(function () { - var listeners = _this2._progressListeners; - for (var i = 0, n = listeners.length; i < n; ++i) { - listeners[i](loaded); - } - }); - }, - onDataProgressiveRead: function PDFDataRangeTransport_onDataProgress(chunk) { - var _this3 = this; - - this._readyCapability.promise.then(function () { - var listeners = _this3._progressiveReadListeners; - for (var i = 0, n = listeners.length; i < n; ++i) { - listeners[i](chunk); - } - }); - }, - transportReady: function PDFDataRangeTransport_transportReady() { - this._readyCapability.resolve(); - }, - requestDataRange: function PDFDataRangeTransport_requestDataRange(begin, end) { - (0, _util.unreachable)('Abstract method PDFDataRangeTransport.requestDataRange'); - }, - abort: function PDFDataRangeTransport_abort() {} - }; - return PDFDataRangeTransport; -}(); -var PDFDocumentProxy = function PDFDocumentProxyClosure() { - function PDFDocumentProxy(pdfInfo, transport, loadingTask) { - this.pdfInfo = pdfInfo; - this.transport = transport; - this.loadingTask = loadingTask; - } - PDFDocumentProxy.prototype = { - get numPages() { - return this.pdfInfo.numPages; - }, - get fingerprint() { - return this.pdfInfo.fingerprint; - }, - getPage: function getPage(pageNumber) { - return this.transport.getPage(pageNumber); - }, - - getPageIndex: function PDFDocumentProxy_getPageIndex(ref) { - return this.transport.getPageIndex(ref); - }, - getDestinations: function PDFDocumentProxy_getDestinations() { - return this.transport.getDestinations(); - }, - getDestination: function PDFDocumentProxy_getDestination(id) { - return this.transport.getDestination(id); - }, - getPageLabels: function PDFDocumentProxy_getPageLabels() { - return this.transport.getPageLabels(); - }, - getPageMode: function getPageMode() { - return this.transport.getPageMode(); - }, - - getAttachments: function PDFDocumentProxy_getAttachments() { - return this.transport.getAttachments(); - }, - getJavaScript: function getJavaScript() { - return this.transport.getJavaScript(); - }, - - getOutline: function PDFDocumentProxy_getOutline() { - return this.transport.getOutline(); - }, - getMetadata: function PDFDocumentProxy_getMetadata() { - return this.transport.getMetadata(); - }, - getData: function PDFDocumentProxy_getData() { - return this.transport.getData(); - }, - getDownloadInfo: function PDFDocumentProxy_getDownloadInfo() { - return this.transport.downloadInfoCapability.promise; - }, - getStats: function PDFDocumentProxy_getStats() { - return this.transport.getStats(); - }, - cleanup: function PDFDocumentProxy_cleanup() { - this.transport.startCleanup(); - }, - destroy: function PDFDocumentProxy_destroy() { - return this.loadingTask.destroy(); + return encodeURIComponent(c); } - }; - return PDFDocumentProxy; -}(); -var PDFPageProxy = function PDFPageProxyClosure() { - function PDFPageProxy(pageIndex, pageInfo, transport) { - this.pageIndex = pageIndex; - this.pageInfo = pageInfo; - this.transport = transport; - this._stats = (0, _dom_utils.getDefaultSetting)('pdfBug') ? new _dom_utils.StatTimer() : _dom_utils.DummyStatTimer; - this.commonObjs = transport.commonObjs; - this.objs = new PDFObjects(); - this.cleanupAfterRender = false; - this.pendingCleanup = false; - this.intentStates = Object.create(null); - this.destroyed = false; - } - PDFPageProxy.prototype = { - get pageNumber() { - return this.pageIndex + 1; - }, - get rotate() { - return this.pageInfo.rotate; - }, - get ref() { - return this.pageInfo.ref; - }, - get userUnit() { - return this.pageInfo.userUnit; - }, - get view() { - return this.pageInfo.view; - }, - getViewport: function getViewport(scale) { - var rotate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.rotate; - var dontFlip = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - return new _util.PageViewport(this.view, scale, rotate, 0, 0, dontFlip); - }, - - getAnnotations: function PDFPageProxy_getAnnotations(params) { - var intent = params && params.intent || null; - if (!this.annotationsPromise || this.annotationsIntent !== intent) { - this.annotationsPromise = this.transport.getAnnotations(this.pageIndex, intent); - this.annotationsIntent = intent; - } - return this.annotationsPromise; - }, - render: function PDFPageProxy_render(params) { - var _this4 = this; - - var stats = this._stats; - stats.time('Overall'); - this.pendingCleanup = false; - var renderingIntent = params.intent === 'print' ? 'print' : 'display'; - var canvasFactory = params.canvasFactory || new _dom_utils.DOMCanvasFactory(); - var webGLContext = new _webgl.WebGLContext({ enable: params.enableWebGL }); - if (!this.intentStates[renderingIntent]) { - this.intentStates[renderingIntent] = Object.create(null); - } - var intentState = this.intentStates[renderingIntent]; - if (!intentState.displayReadyCapability) { - intentState.receivingOperatorList = true; - intentState.displayReadyCapability = (0, _util.createPromiseCapability)(); - intentState.operatorList = { - fnArray: [], - argsArray: [], - lastChunk: false - }; - stats.time('Page Request'); - this.transport.messageHandler.send('RenderPageRequest', { - pageIndex: this.pageNumber - 1, - intent: renderingIntent, - renderInteractiveForms: params.renderInteractiveForms === true - }); - } - var complete = function complete(error) { - var i = intentState.renderTasks.indexOf(internalRenderTask); - if (i >= 0) { - intentState.renderTasks.splice(i, 1); - } - if (_this4.cleanupAfterRender) { - _this4.pendingCleanup = true; - } - _this4._tryCleanup(); - if (error) { - internalRenderTask.capability.reject(error); - } else { - internalRenderTask.capability.resolve(); - } - stats.timeEnd('Rendering'); - stats.timeEnd('Overall'); - }; - var internalRenderTask = new InternalRenderTask(complete, params, this.objs, this.commonObjs, intentState.operatorList, this.pageNumber, canvasFactory, webGLContext); - internalRenderTask.useRequestAnimationFrame = renderingIntent !== 'print'; - if (!intentState.renderTasks) { - intentState.renderTasks = []; - } - intentState.renderTasks.push(internalRenderTask); - var renderTask = internalRenderTask.task; - intentState.displayReadyCapability.promise.then(function (transparency) { - if (_this4.pendingCleanup) { - complete(); - return; - } - stats.time('Rendering'); - internalRenderTask.initializeGraphics(transparency); - internalRenderTask.operatorListChanged(); - }).catch(complete); - return renderTask; - }, - getOperatorList: function PDFPageProxy_getOperatorList() { - function operatorListChanged() { - if (intentState.operatorList.lastChunk) { - intentState.opListReadCapability.resolve(intentState.operatorList); - var i = intentState.renderTasks.indexOf(opListTask); - if (i >= 0) { - intentState.renderTasks.splice(i, 1); - } - } - } - var renderingIntent = 'oplist'; - if (!this.intentStates[renderingIntent]) { - this.intentStates[renderingIntent] = Object.create(null); - } - var intentState = this.intentStates[renderingIntent]; - var opListTask; - if (!intentState.opListReadCapability) { - opListTask = {}; - opListTask.operatorListChanged = operatorListChanged; - intentState.receivingOperatorList = true; - intentState.opListReadCapability = (0, _util.createPromiseCapability)(); - intentState.renderTasks = []; - intentState.renderTasks.push(opListTask); - intentState.operatorList = { - fnArray: [], - argsArray: [], - lastChunk: false - }; - this.transport.messageHandler.send('RenderPageRequest', { - pageIndex: this.pageIndex, - intent: renderingIntent - }); + var EOF, + ALPHA = /[a-zA-Z]/, + ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/; + function parse(input, stateOverride, base) { + function err(message) { + errors.push(message); } - return intentState.opListReadCapability.promise; - }, - streamTextContent: function streamTextContent() { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - var TEXT_CONTENT_CHUNK_SIZE = 100; - return this.transport.messageHandler.sendWithStream('GetTextContent', { - pageIndex: this.pageNumber - 1, - normalizeWhitespace: params.normalizeWhitespace === true, - combineTextItems: params.disableCombineTextItems !== true - }, { - highWaterMark: TEXT_CONTENT_CHUNK_SIZE, - size: function size(textContent) { - return textContent.items.length; - } - }); - }, - - getTextContent: function PDFPageProxy_getTextContent(params) { - params = params || {}; - var readableStream = this.streamTextContent(params); - return new Promise(function (resolve, reject) { - function pump() { - reader.read().then(function (_ref) { - var value = _ref.value, - done = _ref.done; - - if (done) { - resolve(textContent); - return; - } - _util.Util.extendObj(textContent.styles, value.styles); - _util.Util.appendToArray(textContent.items, value.items); - pump(); - }, reject); - } - var reader = readableStream.getReader(); - var textContent = { - items: [], - styles: Object.create(null) - }; - pump(); - }); - }, - _destroy: function PDFPageProxy_destroy() { - this.destroyed = true; - this.transport.pageCache[this.pageIndex] = null; - var waitOn = []; - Object.keys(this.intentStates).forEach(function (intent) { - if (intent === 'oplist') { - return; - } - var intentState = this.intentStates[intent]; - intentState.renderTasks.forEach(function (renderTask) { - var renderCompleted = renderTask.capability.promise.catch(function () {}); - waitOn.push(renderCompleted); - renderTask.cancel(); - }); - }, this); - this.objs.clear(); - this.annotationsPromise = null; - this.pendingCleanup = false; - return Promise.all(waitOn); - }, - cleanup: function cleanup() { - var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - this.pendingCleanup = true; - this._tryCleanup(resetStats); - }, - _tryCleanup: function _tryCleanup() { - var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) { - var intentState = this.intentStates[intent]; - return intentState.renderTasks.length !== 0 || intentState.receivingOperatorList; - }, this)) { - return; - } - Object.keys(this.intentStates).forEach(function (intent) { - delete this.intentStates[intent]; - }, this); - this.objs.clear(); - this.annotationsPromise = null; - if (resetStats && this._stats instanceof _dom_utils.StatTimer) { - this._stats = new _dom_utils.StatTimer(); - } - this.pendingCleanup = false; - }, - - _startRenderPage: function PDFPageProxy_startRenderPage(transparency, intent) { - var intentState = this.intentStates[intent]; - if (intentState.displayReadyCapability) { - intentState.displayReadyCapability.resolve(transparency); - } - }, - _renderPageChunk: function PDFPageProxy_renderPageChunk(operatorListChunk, intent) { - var intentState = this.intentStates[intent]; - var i, ii; - for (i = 0, ii = operatorListChunk.length; i < ii; i++) { - intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]); - intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]); - } - intentState.operatorList.lastChunk = operatorListChunk.lastChunk; - for (i = 0; i < intentState.renderTasks.length; i++) { - intentState.renderTasks[i].operatorListChanged(); - } - if (operatorListChunk.lastChunk) { - intentState.receivingOperatorList = false; - this._tryCleanup(); - } - }, - get stats() { - return this._stats instanceof _dom_utils.StatTimer ? this._stats : null; - } - }; - return PDFPageProxy; -}(); - -var LoopbackPort = function () { - function LoopbackPort(defer) { - _classCallCheck(this, LoopbackPort); - - this._listeners = []; - this._defer = defer; - this._deferred = Promise.resolve(undefined); - } - - _createClass(LoopbackPort, [{ - key: 'postMessage', - value: function postMessage(obj, transfers) { - var _this5 = this; - - function cloneValue(value) { - if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object' || value === null) { - return value; - } - if (cloned.has(value)) { - return cloned.get(value); - } - var result; - var buffer; - if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) { - var transferable = transfers && transfers.includes(buffer); - if (value === buffer) { - result = value; - } else if (transferable) { - result = new value.constructor(buffer, value.byteOffset, value.byteLength); - } else { - result = new value.constructor(value); - } - cloned.set(value, result); - return result; - } - result = Array.isArray(value) ? [] : {}; - cloned.set(value, result); - for (var i in value) { - var desc, - p = value; - while (!(desc = Object.getOwnPropertyDescriptor(p, i))) { - p = Object.getPrototypeOf(p); - } - if (typeof desc.value === 'undefined' || typeof desc.value === 'function') { - continue; - } - result[i] = cloneValue(desc.value); - } - return result; - } - if (!this._defer) { - this._listeners.forEach(function (listener) { - listener.call(this, { data: obj }); - }, this); - return; - } - var cloned = new WeakMap(); - var e = { data: cloneValue(obj) }; - this._deferred.then(function () { - _this5._listeners.forEach(function (listener) { - listener.call(this, e); - }, _this5); - }); - } - }, { - key: 'addEventListener', - value: function addEventListener(name, listener) { - this._listeners.push(listener); - } - }, { - key: 'removeEventListener', - value: function removeEventListener(name, listener) { - var i = this._listeners.indexOf(listener); - this._listeners.splice(i, 1); - } - }, { - key: 'terminate', - value: function terminate() { - this._listeners = []; - } - }]); - - return LoopbackPort; -}(); - -var PDFWorker = function PDFWorkerClosure() { - var nextFakeWorkerId = 0; - function getWorkerSrc() { - if (_worker_options.GlobalWorkerOptions.workerSrc) { - return _worker_options.GlobalWorkerOptions.workerSrc; - } - if (typeof workerSrc !== 'undefined') { - return workerSrc; - } - if (pdfjsFilePath) { - return pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, '.worker$1$2'); - } - throw new Error('No "GlobalWorkerOptions.workerSrc" specified.'); - } - function getMainThreadWorkerMessageHandler() { - if (typeof window === 'undefined') { - return null; - } - return window.pdfjsDistBuildPdfWorker && window.pdfjsDistBuildPdfWorker.WorkerMessageHandler; - } - var fakeWorkerFilesLoadedCapability = void 0; - function setupFakeWorkerGlobal() { - if (fakeWorkerFilesLoadedCapability) { - return fakeWorkerFilesLoadedCapability.promise; - } - fakeWorkerFilesLoadedCapability = (0, _util.createPromiseCapability)(); - var mainWorkerMessageHandler = getMainThreadWorkerMessageHandler(); - if (mainWorkerMessageHandler) { - fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler); - return fakeWorkerFilesLoadedCapability.promise; - } - var loader = fakeWorkerFilesLoader || function (callback) { - _util.Util.loadScript(getWorkerSrc(), function () { - callback(window.pdfjsDistBuildPdfWorker.WorkerMessageHandler); - }); - }; - loader(fakeWorkerFilesLoadedCapability.resolve); - return fakeWorkerFilesLoadedCapability.promise; - } - function createCDNWrapper(url) { - var wrapper = 'importScripts(\'' + url + '\');'; - return URL.createObjectURL(new Blob([wrapper])); - } - var pdfWorkerPorts = new WeakMap(); - function PDFWorker() { - var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref2$name = _ref2.name, - name = _ref2$name === undefined ? null : _ref2$name, - _ref2$port = _ref2.port, - port = _ref2$port === undefined ? null : _ref2$port, - _ref2$postMessageTran = _ref2.postMessageTransfers, - postMessageTransfers = _ref2$postMessageTran === undefined ? true : _ref2$postMessageTran, - _ref2$verbosity = _ref2.verbosity, - verbosity = _ref2$verbosity === undefined ? null : _ref2$verbosity; - - if (port && pdfWorkerPorts.has(port)) { - throw new Error('Cannot use more than one PDFWorker per port'); - } - this.name = name; - this.destroyed = false; - this.postMessageTransfers = postMessageTransfers !== false; - this.verbosity = (0, _util.isNum)(verbosity) ? verbosity : (0, _util.getVerbosityLevel)(); - this._readyCapability = (0, _util.createPromiseCapability)(); - this._port = null; - this._webWorker = null; - this._messageHandler = null; - if (port) { - pdfWorkerPorts.set(port, this); - this._initializeFromPort(port); - return; - } - this._initialize(); - } - PDFWorker.prototype = { - get promise() { - return this._readyCapability.promise; - }, - get port() { - return this._port; - }, - get messageHandler() { - return this._messageHandler; - }, - _initializeFromPort: function PDFWorker_initializeFromPort(port) { - this._port = port; - this._messageHandler = new _util.MessageHandler('main', 'worker', port); - this._messageHandler.on('ready', function () {}); - this._readyCapability.resolve(); - }, - _initialize: function PDFWorker_initialize() { - var _this6 = this; - - if (typeof Worker !== 'undefined' && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) { - var workerSrc = getWorkerSrc(); - try { - if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) { - workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href); - } - var worker = new Worker(workerSrc); - var messageHandler = new _util.MessageHandler('main', 'worker', worker); - var terminateEarly = function terminateEarly() { - worker.removeEventListener('error', onWorkerError); - messageHandler.destroy(); - worker.terminate(); - if (_this6.destroyed) { - _this6._readyCapability.reject(new Error('Worker was destroyed')); - } else { - _this6._setupFakeWorker(); - } - }; - var onWorkerError = function onWorkerError() { - if (!_this6._webWorker) { - terminateEarly(); - } - }; - worker.addEventListener('error', onWorkerError); - messageHandler.on('test', function (data) { - worker.removeEventListener('error', onWorkerError); - if (_this6.destroyed) { - terminateEarly(); - return; - } - var supportTypedArray = data && data.supportTypedArray; - if (supportTypedArray) { - _this6._messageHandler = messageHandler; - _this6._port = worker; - _this6._webWorker = worker; - if (!data.supportTransfers) { - _this6.postMessageTransfers = false; - } - _this6._readyCapability.resolve(); - messageHandler.send('configure', { verbosity: _this6.verbosity }); - } else { - _this6._setupFakeWorker(); - messageHandler.destroy(); - worker.terminate(); - } - }); - messageHandler.on('ready', function (data) { - worker.removeEventListener('error', onWorkerError); - if (_this6.destroyed) { - terminateEarly(); - return; - } - try { - sendTest(); - } catch (e) { - _this6._setupFakeWorker(); - } - }); - var sendTest = function sendTest() { - var testObj = new Uint8Array([_this6.postMessageTransfers ? 255 : 0]); - try { - messageHandler.send('test', testObj, [testObj.buffer]); - } catch (ex) { - (0, _util.info)('Cannot use postMessage transfers'); - testObj[0] = 0; - messageHandler.send('test', testObj); - } - }; - sendTest(); - return; - } catch (e) { - (0, _util.info)('The worker has been disabled.'); - } - } - this._setupFakeWorker(); - }, - _setupFakeWorker: function PDFWorker_setupFakeWorker() { - var _this7 = this; - - if (!isWorkerDisabled) { - (0, _util.warn)('Setting up fake worker.'); - isWorkerDisabled = true; - } - setupFakeWorkerGlobal().then(function (WorkerMessageHandler) { - if (_this7.destroyed) { - _this7._readyCapability.reject(new Error('Worker was destroyed')); - return; - } - var isTypedArraysPresent = Uint8Array !== Float32Array; - var port = new LoopbackPort(isTypedArraysPresent); - _this7._port = port; - var id = 'fake' + nextFakeWorkerId++; - var workerHandler = new _util.MessageHandler(id + '_worker', id, port); - WorkerMessageHandler.setup(workerHandler, port); - var messageHandler = new _util.MessageHandler(id, id + '_worker', port); - _this7._messageHandler = messageHandler; - _this7._readyCapability.resolve(); - }); - }, - destroy: function PDFWorker_destroy() { - this.destroyed = true; - if (this._webWorker) { - this._webWorker.terminate(); - this._webWorker = null; - } - pdfWorkerPorts.delete(this._port); - this._port = null; - if (this._messageHandler) { - this._messageHandler.destroy(); - this._messageHandler = null; - } - } - }; - PDFWorker.fromPort = function (params) { - if (pdfWorkerPorts.has(params.port)) { - return pdfWorkerPorts.get(params.port); - } - return new PDFWorker(params); - }; - PDFWorker.getWorkerSrc = function () { - return getWorkerSrc(); - }; - return PDFWorker; -}(); -var WorkerTransport = function WorkerTransportClosure() { - function WorkerTransport(messageHandler, loadingTask, networkStream, CMapReaderFactory) { - this.messageHandler = messageHandler; - this.loadingTask = loadingTask; - this.commonObjs = new PDFObjects(); - this.fontLoader = new _font_loader.FontLoader(loadingTask.docId); - this.CMapReaderFactory = new CMapReaderFactory({ - baseUrl: (0, _dom_utils.getDefaultSetting)('cMapUrl'), - isCompressed: (0, _dom_utils.getDefaultSetting)('cMapPacked') - }); - this.destroyed = false; - this.destroyCapability = null; - this._passwordCapability = null; - this._networkStream = networkStream; - this._fullReader = null; - this._lastProgress = null; - this.pageCache = []; - this.pagePromises = []; - this.downloadInfoCapability = (0, _util.createPromiseCapability)(); - this.setupMessageHandler(); - } - WorkerTransport.prototype = { - destroy: function WorkerTransport_destroy() { - var _this8 = this; - - if (this.destroyCapability) { - return this.destroyCapability.promise; - } - this.destroyed = true; - this.destroyCapability = (0, _util.createPromiseCapability)(); - if (this._passwordCapability) { - this._passwordCapability.reject(new Error('Worker was destroyed during onPassword callback')); - } - var waitOn = []; - this.pageCache.forEach(function (page) { - if (page) { - waitOn.push(page._destroy()); - } - }); - this.pageCache = []; - this.pagePromises = []; - var terminated = this.messageHandler.sendWithPromise('Terminate', null); - waitOn.push(terminated); - Promise.all(waitOn).then(function () { - _this8.fontLoader.clear(); - if (_this8._networkStream) { - _this8._networkStream.cancelAllRequests(); - } - if (_this8.messageHandler) { - _this8.messageHandler.destroy(); - _this8.messageHandler = null; - } - _this8.destroyCapability.resolve(); - }, this.destroyCapability.reject); - return this.destroyCapability.promise; - }, - setupMessageHandler: function WorkerTransport_setupMessageHandler() { - var messageHandler = this.messageHandler; - var loadingTask = this.loadingTask; - messageHandler.on('GetReader', function (data, sink) { - var _this9 = this; - - (0, _util.assert)(this._networkStream); - this._fullReader = this._networkStream.getFullReader(); - this._fullReader.onProgress = function (evt) { - _this9._lastProgress = { - loaded: evt.loaded, - total: evt.total - }; - }; - sink.onPull = function () { - _this9._fullReader.read().then(function (_ref3) { - var value = _ref3.value, - done = _ref3.done; - - if (done) { - sink.close(); - return; - } - (0, _util.assert)((0, _util.isArrayBuffer)(value)); - sink.enqueue(new Uint8Array(value), 1, [value]); - }).catch(function (reason) { - sink.error(reason); - }); - }; - sink.onCancel = function (reason) { - _this9._fullReader.cancel(reason); - }; - }, this); - messageHandler.on('ReaderHeadersReady', function (data) { - var _this10 = this; - - var headersCapability = (0, _util.createPromiseCapability)(); - var fullReader = this._fullReader; - fullReader.headersReady.then(function () { - if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) { - if (_this10._lastProgress) { - var _loadingTask = _this10.loadingTask; - if (_loadingTask.onProgress) { - _loadingTask.onProgress(_this10._lastProgress); - } - } - fullReader.onProgress = function (evt) { - var loadingTask = _this10.loadingTask; - if (loadingTask.onProgress) { - loadingTask.onProgress({ - loaded: evt.loaded, - total: evt.total - }); - } - }; - } - headersCapability.resolve({ - isStreamingSupported: fullReader.isStreamingSupported, - isRangeSupported: fullReader.isRangeSupported, - contentLength: fullReader.contentLength - }); - }, headersCapability.reject); - return headersCapability.promise; - }, this); - messageHandler.on('GetRangeReader', function (data, sink) { - (0, _util.assert)(this._networkStream); - var _rangeReader = this._networkStream.getRangeReader(data.begin, data.end); - sink.onPull = function () { - _rangeReader.read().then(function (_ref4) { - var value = _ref4.value, - done = _ref4.done; - - if (done) { - sink.close(); - return; - } - (0, _util.assert)((0, _util.isArrayBuffer)(value)); - sink.enqueue(new Uint8Array(value), 1, [value]); - }).catch(function (reason) { - sink.error(reason); - }); - }; - sink.onCancel = function (reason) { - _rangeReader.cancel(reason); - }; - }, this); - messageHandler.on('GetDoc', function transportDoc(_ref5) { - var pdfInfo = _ref5.pdfInfo; - - this.numPages = pdfInfo.numPages; - var loadingTask = this.loadingTask; - var pdfDocument = new PDFDocumentProxy(pdfInfo, this, loadingTask); - this.pdfDocument = pdfDocument; - loadingTask._capability.resolve(pdfDocument); - }, this); - messageHandler.on('PasswordRequest', function transportPasswordRequest(exception) { - var _this11 = this; - - this._passwordCapability = (0, _util.createPromiseCapability)(); - if (loadingTask.onPassword) { - var updatePassword = function updatePassword(password) { - _this11._passwordCapability.resolve({ password: password }); - }; - loadingTask.onPassword(updatePassword, exception.code); - } else { - this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code)); - } - return this._passwordCapability.promise; - }, this); - messageHandler.on('PasswordException', function transportPasswordException(exception) { - loadingTask._capability.reject(new _util.PasswordException(exception.message, exception.code)); - }, this); - messageHandler.on('InvalidPDF', function transportInvalidPDF(exception) { - this.loadingTask._capability.reject(new _util.InvalidPDFException(exception.message)); - }, this); - messageHandler.on('MissingPDF', function transportMissingPDF(exception) { - this.loadingTask._capability.reject(new _util.MissingPDFException(exception.message)); - }, this); - messageHandler.on('UnexpectedResponse', function transportUnexpectedResponse(exception) { - this.loadingTask._capability.reject(new _util.UnexpectedResponseException(exception.message, exception.status)); - }, this); - messageHandler.on('UnknownError', function transportUnknownError(exception) { - this.loadingTask._capability.reject(new _util.UnknownErrorException(exception.message, exception.details)); - }, this); - messageHandler.on('DataLoaded', function transportPage(data) { - this.downloadInfoCapability.resolve(data); - }, this); - messageHandler.on('PDFManagerReady', function transportPage(data) {}, this); - messageHandler.on('StartRenderPage', function transportRender(data) { - if (this.destroyed) { - return; - } - var page = this.pageCache[data.pageIndex]; - page._stats.timeEnd('Page Request'); - page._startRenderPage(data.transparency, data.intent); - }, this); - messageHandler.on('RenderPageChunk', function transportRender(data) { - if (this.destroyed) { - return; - } - var page = this.pageCache[data.pageIndex]; - page._renderPageChunk(data.operatorList, data.intent); - }, this); - messageHandler.on('commonobj', function transportObj(data) { - var _this12 = this; - - if (this.destroyed) { - return; - } - var id = data[0]; - var type = data[1]; - if (this.commonObjs.hasData(id)) { - return; - } - switch (type) { - case 'Font': - var exportedData = data[2]; - if ('error' in exportedData) { - var exportedError = exportedData.error; - (0, _util.warn)('Error during font loading: ' + exportedError); - this.commonObjs.resolve(id, exportedError); - break; - } - var fontRegistry = null; - if ((0, _dom_utils.getDefaultSetting)('pdfBug') && _global_scope2.default.FontInspector && _global_scope2.default['FontInspector'].enabled) { - fontRegistry = { - registerFont: function registerFont(font, url) { - _global_scope2.default['FontInspector'].fontAdded(font, url); - } - }; - } - var font = new _font_loader.FontFaceObject(exportedData, { - isEvalSupported: (0, _dom_utils.getDefaultSetting)('isEvalSupported'), - disableFontFace: (0, _dom_utils.getDefaultSetting)('disableFontFace'), - fontRegistry: fontRegistry - }); - var fontReady = function fontReady(fontObjs) { - _this12.commonObjs.resolve(id, font); - }; - this.fontLoader.bind([font], fontReady); - break; - case 'FontPath': - this.commonObjs.resolve(id, data[2]); - break; - default: - throw new Error('Got unknown common object type ' + type); - } - }, this); - messageHandler.on('obj', function transportObj(data) { - if (this.destroyed) { - return; - } - var id = data[0]; - var pageIndex = data[1]; - var type = data[2]; - var pageProxy = this.pageCache[pageIndex]; - var imageData; - if (pageProxy.objs.hasData(id)) { - return; - } - switch (type) { - case 'JpegStream': - imageData = data[3]; - return new Promise(function (resolve, reject) { - var img = new Image(); - img.onload = function () { - resolve(img); - }; - img.onerror = function () { - reject(new Error('Error during JPEG image loading')); - }; - img.src = imageData; - }).then(function (img) { - pageProxy.objs.resolve(id, img); - }); - case 'Image': - imageData = data[3]; - pageProxy.objs.resolve(id, imageData); - var MAX_IMAGE_SIZE_TO_STORE = 8000000; - if (imageData && 'data' in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) { - pageProxy.cleanupAfterRender = true; - } - break; - default: - throw new Error('Got unknown object type ' + type); - } - }, this); - messageHandler.on('DocProgress', function transportDocProgress(data) { - if (this.destroyed) { - return; - } - var loadingTask = this.loadingTask; - if (loadingTask.onProgress) { - loadingTask.onProgress({ - loaded: data.loaded, - total: data.total - }); - } - }, this); - messageHandler.on('PageError', function transportError(data) { - if (this.destroyed) { - return; - } - var page = this.pageCache[data.pageNum - 1]; - var intentState = page.intentStates[data.intent]; - if (intentState.displayReadyCapability) { - intentState.displayReadyCapability.reject(data.error); - } else { - throw new Error(data.error); - } - if (intentState.operatorList) { - intentState.operatorList.lastChunk = true; - for (var i = 0; i < intentState.renderTasks.length; i++) { - intentState.renderTasks[i].operatorListChanged(); - } - } - }, this); - messageHandler.on('UnsupportedFeature', function (data) { - if (this.destroyed) { - return; - } - var loadingTask = this.loadingTask; - if (loadingTask.onUnsupportedFeature) { - loadingTask.onUnsupportedFeature(data.featureId); - } - }, this); - messageHandler.on('JpegDecode', function (data) { - if (this.destroyed) { - return Promise.reject(new Error('Worker was destroyed')); - } - if (typeof document === 'undefined') { - return Promise.reject(new Error('"document" is not defined.')); - } - var imageUrl = data[0]; - var components = data[1]; - if (components !== 3 && components !== 1) { - return Promise.reject(new Error('Only 3 components or 1 component can be returned')); - } - return new Promise(function (resolve, reject) { - var img = new Image(); - img.onload = function () { - var width = img.width; - var height = img.height; - var size = width * height; - var rgbaLength = size * 4; - var buf = new Uint8Array(size * components); - var tmpCanvas = document.createElement('canvas'); - tmpCanvas.width = width; - tmpCanvas.height = height; - var tmpCtx = tmpCanvas.getContext('2d'); - tmpCtx.drawImage(img, 0, 0); - var data = tmpCtx.getImageData(0, 0, width, height).data; - var i, j; - if (components === 3) { - for (i = 0, j = 0; i < rgbaLength; i += 4, j += 3) { - buf[j] = data[i]; - buf[j + 1] = data[i + 1]; - buf[j + 2] = data[i + 2]; - } - } else if (components === 1) { - for (i = 0, j = 0; i < rgbaLength; i += 4, j++) { - buf[j] = data[i]; - } - } - resolve({ - data: buf, - width: width, - height: height - }); - }; - img.onerror = function () { - reject(new Error('JpegDecode failed to load image')); - }; - img.src = imageUrl; - }); - }, this); - messageHandler.on('FetchBuiltInCMap', function (data) { - if (this.destroyed) { - return Promise.reject(new Error('Worker was destroyed')); - } - return this.CMapReaderFactory.fetch({ name: data.name }); - }, this); - }, - getData: function WorkerTransport_getData() { - return this.messageHandler.sendWithPromise('GetData', null); - }, - getPage: function getPage(pageNumber) { - var _this13 = this; - - if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this.numPages) { - return Promise.reject(new Error('Invalid page request')); - } - var pageIndex = pageNumber - 1; - if (pageIndex in this.pagePromises) { - return this.pagePromises[pageIndex]; - } - var promise = this.messageHandler.sendWithPromise('GetPage', { pageIndex: pageIndex }).then(function (pageInfo) { - if (_this13.destroyed) { - throw new Error('Transport destroyed'); - } - var page = new PDFPageProxy(pageIndex, pageInfo, _this13); - _this13.pageCache[pageIndex] = page; - return page; - }); - this.pagePromises[pageIndex] = promise; - return promise; - }, - - getPageIndex: function WorkerTransport_getPageIndexByRef(ref) { - return this.messageHandler.sendWithPromise('GetPageIndex', { ref: ref }).catch(function (reason) { - return Promise.reject(new Error(reason)); - }); - }, - getAnnotations: function WorkerTransport_getAnnotations(pageIndex, intent) { - return this.messageHandler.sendWithPromise('GetAnnotations', { - pageIndex: pageIndex, - intent: intent - }); - }, - getDestinations: function WorkerTransport_getDestinations() { - return this.messageHandler.sendWithPromise('GetDestinations', null); - }, - getDestination: function WorkerTransport_getDestination(id) { - return this.messageHandler.sendWithPromise('GetDestination', { id: id }); - }, - getPageLabels: function WorkerTransport_getPageLabels() { - return this.messageHandler.sendWithPromise('GetPageLabels', null); - }, - getPageMode: function getPageMode() { - return this.messageHandler.sendWithPromise('GetPageMode', null); - }, - - getAttachments: function WorkerTransport_getAttachments() { - return this.messageHandler.sendWithPromise('GetAttachments', null); - }, - getJavaScript: function WorkerTransport_getJavaScript() { - return this.messageHandler.sendWithPromise('GetJavaScript', null); - }, - getOutline: function WorkerTransport_getOutline() { - return this.messageHandler.sendWithPromise('GetOutline', null); - }, - getMetadata: function WorkerTransport_getMetadata() { - var _this14 = this; - - return this.messageHandler.sendWithPromise('GetMetadata', null).then(function (results) { - return { - info: results[0], - metadata: results[1] ? new _metadata.Metadata(results[1]) : null, - contentDispositionFilename: _this14._fullReader ? _this14._fullReader.filename : null - }; - }); - }, - getStats: function WorkerTransport_getStats() { - return this.messageHandler.sendWithPromise('GetStats', null); - }, - startCleanup: function WorkerTransport_startCleanup() { - var _this15 = this; - - this.messageHandler.sendWithPromise('Cleanup', null).then(function () { - for (var i = 0, ii = _this15.pageCache.length; i < ii; i++) { - var page = _this15.pageCache[i]; - if (page) { - page.cleanup(); - } - } - _this15.commonObjs.clear(); - _this15.fontLoader.clear(); - }); - } - }; - return WorkerTransport; -}(); -var PDFObjects = function PDFObjectsClosure() { - function PDFObjects() { - this.objs = Object.create(null); - } - PDFObjects.prototype = { - ensureObj: function PDFObjects_ensureObj(objId) { - if (this.objs[objId]) { - return this.objs[objId]; - } - var obj = { - capability: (0, _util.createPromiseCapability)(), - data: null, - resolved: false - }; - this.objs[objId] = obj; - return obj; - }, - get: function PDFObjects_get(objId, callback) { - if (callback) { - this.ensureObj(objId).capability.promise.then(callback); - return null; - } - var obj = this.objs[objId]; - if (!obj || !obj.resolved) { - throw new Error('Requesting object that isn\'t resolved yet ' + objId); - } - return obj.data; - }, - resolve: function PDFObjects_resolve(objId, data) { - var obj = this.ensureObj(objId); - obj.resolved = true; - obj.data = data; - obj.capability.resolve(data); - }, - isResolved: function PDFObjects_isResolved(objId) { - var objs = this.objs; - if (!objs[objId]) { - return false; - } - return objs[objId].resolved; - }, - hasData: function PDFObjects_hasData(objId) { - return this.isResolved(objId); - }, - getData: function PDFObjects_getData(objId) { - var objs = this.objs; - if (!objs[objId] || !objs[objId].resolved) { - return null; - } - return objs[objId].data; - }, - clear: function PDFObjects_clear() { - this.objs = Object.create(null); - } - }; - return PDFObjects; -}(); -var RenderTask = function RenderTaskClosure() { - function RenderTask(internalRenderTask) { - this._internalRenderTask = internalRenderTask; - this.onContinue = null; - } - RenderTask.prototype = { - get promise() { - return this._internalRenderTask.capability.promise; - }, - cancel: function RenderTask_cancel() { - this._internalRenderTask.cancel(); - }, - then: function RenderTask_then(onFulfilled, onRejected) { - return this.promise.then.apply(this.promise, arguments); - } - }; - return RenderTask; -}(); -var InternalRenderTask = function InternalRenderTaskClosure() { - var canvasInRendering = new WeakMap(); - function InternalRenderTask(callback, params, objs, commonObjs, operatorList, pageNumber, canvasFactory, webGLContext) { - this.callback = callback; - this.params = params; - this.objs = objs; - this.commonObjs = commonObjs; - this.operatorListIdx = null; - this.operatorList = operatorList; - this.pageNumber = pageNumber; - this.canvasFactory = canvasFactory; - this.webGLContext = webGLContext; - this.running = false; - this.graphicsReadyCallback = null; - this.graphicsReady = false; - this.useRequestAnimationFrame = false; - this.cancelled = false; - this.capability = (0, _util.createPromiseCapability)(); - this.task = new RenderTask(this); - this._continueBound = this._continue.bind(this); - this._scheduleNextBound = this._scheduleNext.bind(this); - this._nextBound = this._next.bind(this); - this._canvas = params.canvasContext.canvas; - } - InternalRenderTask.prototype = { - initializeGraphics: function InternalRenderTask_initializeGraphics(transparency) { - if (this._canvas) { - if (canvasInRendering.has(this._canvas)) { - throw new Error('Cannot use the same canvas during multiple render() operations. ' + 'Use different canvas or ensure previous operations were ' + 'cancelled or completed.'); - } - canvasInRendering.set(this._canvas, this); - } - if (this.cancelled) { - return; - } - if ((0, _dom_utils.getDefaultSetting)('pdfBug') && _global_scope2.default.StepperManager && _global_scope2.default.StepperManager.enabled) { - this.stepper = _global_scope2.default.StepperManager.create(this.pageNumber - 1); - this.stepper.init(this.operatorList); - this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); - } - var params = this.params; - this.gfx = new _canvas.CanvasGraphics(params.canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, params.imageLayer); - this.gfx.beginDrawing({ - transform: params.transform, - viewport: params.viewport, - transparency: transparency, - background: params.background - }); - this.operatorListIdx = 0; - this.graphicsReady = true; - if (this.graphicsReadyCallback) { - this.graphicsReadyCallback(); - } - }, - cancel: function InternalRenderTask_cancel() { - this.running = false; - this.cancelled = true; - if (this._canvas) { - canvasInRendering.delete(this._canvas); - } - this.callback(new _dom_utils.RenderingCancelledException('Rendering cancelled, page ' + this.pageNumber, 'canvas')); - }, - operatorListChanged: function InternalRenderTask_operatorListChanged() { - if (!this.graphicsReady) { - if (!this.graphicsReadyCallback) { - this.graphicsReadyCallback = this._continueBound; - } - return; - } - if (this.stepper) { - this.stepper.updateOperatorList(this.operatorList); - } - if (this.running) { - return; - } - this._continue(); - }, - _continue: function InternalRenderTask__continue() { - this.running = true; - if (this.cancelled) { - return; - } - if (this.task.onContinue) { - this.task.onContinue(this._scheduleNextBound); - } else { - this._scheduleNext(); - } - }, - _scheduleNext: function InternalRenderTask__scheduleNext() { - if (this.useRequestAnimationFrame && typeof window !== 'undefined') { - window.requestAnimationFrame(this._nextBound); - } else { - Promise.resolve(undefined).then(this._nextBound); - } - }, - _next: function InternalRenderTask__next() { - if (this.cancelled) { - return; - } - this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper); - if (this.operatorListIdx === this.operatorList.argsArray.length) { - this.running = false; - if (this.operatorList.lastChunk) { - this.gfx.endDrawing(); - if (this._canvas) { - canvasInRendering.delete(this._canvas); - } - this.callback(); - } - } - } - }; - return InternalRenderTask; -}(); -var version, build; -{ - exports.version = version = '2.0.402'; - exports.build = build = '401f3a9d'; -} -exports.getDocument = getDocument; -exports.LoopbackPort = LoopbackPort; -exports.PDFDataRangeTransport = PDFDataRangeTransport; -exports.PDFWorker = PDFWorker; -exports.PDFDocumentProxy = PDFDocumentProxy; -exports.PDFPageProxy = PDFPageProxy; -exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory; -exports.version = version; -exports.build = build; - -/***/ }), -/* 60 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.Metadata = undefined; - -var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _util = __w_pdfjs_require__(0); - -var _dom_utils = __w_pdfjs_require__(10); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Metadata = function () { - function Metadata(data) { - _classCallCheck(this, Metadata); - - (0, _util.assert)(typeof data === 'string', 'Metadata: input is not a string'); - data = this._repair(data); - var parser = new _dom_utils.SimpleXMLParser(); - data = parser.parseFromString(data); - this._metadata = Object.create(null); - this._parse(data); - } - - _createClass(Metadata, [{ - key: '_repair', - value: function _repair(data) { - return data.replace(/>\\376\\377([^<]+)/g, function (all, codes) { - var bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) { - return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1); - }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) { - switch (name) { - case 'amp': - return '&'; - case 'apos': - return '\''; - case 'gt': - return '>'; - case 'lt': - return '<'; - case 'quot': - return '\"'; - } - throw new Error('_repair: ' + name + ' isn\'t defined.'); - }); - var chars = ''; - for (var i = 0, ii = bytes.length; i < ii; i += 2) { - var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1); - if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) { - chars += String.fromCharCode(code); - } else { - chars += '&#x' + (0x10000 + code).toString(16).substring(1) + ';'; - } - } - return '>' + chars; - }); - } - }, { - key: '_parse', - value: function _parse(domDocument) { - var rdf = domDocument.documentElement; - if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') { - rdf = rdf.firstChild; - while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') { - rdf = rdf.nextSibling; - } - } - var nodeName = rdf ? rdf.nodeName.toLowerCase() : null; - if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) { - return; - } - var children = rdf.childNodes; - for (var i = 0, ii = children.length; i < ii; i++) { - var desc = children[i]; - if (desc.nodeName.toLowerCase() !== 'rdf:description') { - continue; - } - for (var j = 0, jj = desc.childNodes.length; j < jj; j++) { - if (desc.childNodes[j].nodeName.toLowerCase() !== '#text') { - var entry = desc.childNodes[j]; - var name = entry.nodeName.toLowerCase(); - this._metadata[name] = entry.textContent.trim(); - } - } - } - } - }, { - key: 'get', - value: function get(name) { - return this._metadata[name] || null; - } - }, { - key: 'getAll', - value: function getAll() { - return this._metadata; - } - }, { - key: 'has', - value: function has(name) { - return typeof this._metadata[name] !== 'undefined'; - } - }]); - - return Metadata; -}(); - -exports.Metadata = Metadata; - -/***/ }), -/* 61 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.AnnotationLayer = undefined; - -var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - -var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _dom_utils = __w_pdfjs_require__(10); - -var _util = __w_pdfjs_require__(0); - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var AnnotationElementFactory = function () { - function AnnotationElementFactory() { - _classCallCheck(this, AnnotationElementFactory); - } - - _createClass(AnnotationElementFactory, null, [{ - key: 'create', - value: function create(parameters) { - var subtype = parameters.data.annotationType; - switch (subtype) { - case _util.AnnotationType.LINK: - return new LinkAnnotationElement(parameters); - case _util.AnnotationType.TEXT: - return new TextAnnotationElement(parameters); - case _util.AnnotationType.WIDGET: - var fieldType = parameters.data.fieldType; - switch (fieldType) { - case 'Tx': - return new TextWidgetAnnotationElement(parameters); - case 'Btn': - if (parameters.data.radioButton) { - return new RadioButtonWidgetAnnotationElement(parameters); - } else if (parameters.data.checkBox) { - return new CheckboxWidgetAnnotationElement(parameters); - } - return new PushButtonWidgetAnnotationElement(parameters); - case 'Ch': - return new ChoiceWidgetAnnotationElement(parameters); - } - return new WidgetAnnotationElement(parameters); - case _util.AnnotationType.POPUP: - return new PopupAnnotationElement(parameters); - case _util.AnnotationType.LINE: - return new LineAnnotationElement(parameters); - case _util.AnnotationType.SQUARE: - return new SquareAnnotationElement(parameters); - case _util.AnnotationType.CIRCLE: - return new CircleAnnotationElement(parameters); - case _util.AnnotationType.POLYLINE: - return new PolylineAnnotationElement(parameters); - case _util.AnnotationType.POLYGON: - return new PolygonAnnotationElement(parameters); - case _util.AnnotationType.HIGHLIGHT: - return new HighlightAnnotationElement(parameters); - case _util.AnnotationType.UNDERLINE: - return new UnderlineAnnotationElement(parameters); - case _util.AnnotationType.SQUIGGLY: - return new SquigglyAnnotationElement(parameters); - case _util.AnnotationType.STRIKEOUT: - return new StrikeOutAnnotationElement(parameters); - case _util.AnnotationType.STAMP: - return new StampAnnotationElement(parameters); - case _util.AnnotationType.FILEATTACHMENT: - return new FileAttachmentAnnotationElement(parameters); - default: - return new AnnotationElement(parameters); - } - } - }]); - - return AnnotationElementFactory; -}(); - -var AnnotationElement = function () { - function AnnotationElement(parameters) { - var isRenderable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var ignoreBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - _classCallCheck(this, AnnotationElement); - - this.isRenderable = isRenderable; - this.data = parameters.data; - this.layer = parameters.layer; - this.page = parameters.page; - this.viewport = parameters.viewport; - this.linkService = parameters.linkService; - this.downloadManager = parameters.downloadManager; - this.imageResourcesPath = parameters.imageResourcesPath; - this.renderInteractiveForms = parameters.renderInteractiveForms; - this.svgFactory = parameters.svgFactory; - if (isRenderable) { - this.container = this._createContainer(ignoreBorder); - } - } - - _createClass(AnnotationElement, [{ - key: '_createContainer', - value: function _createContainer() { - var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - var data = this.data, - page = this.page, - viewport = this.viewport; - var container = document.createElement('section'); - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - container.setAttribute('data-annotation-id', data.id); - 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]]); - container.style.transform = 'matrix(' + viewport.transform.join(',') + ')'; - container.style.transformOrigin = -rect[0] + 'px ' + -rect[1] + 'px'; - if (!ignoreBorder && data.borderStyle.width > 0) { - container.style.borderWidth = data.borderStyle.width + 'px'; - if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) { - width = width - 2 * data.borderStyle.width; - height = height - 2 * data.borderStyle.width; - } - var horizontalRadius = data.borderStyle.horizontalCornerRadius; - var verticalRadius = data.borderStyle.verticalCornerRadius; - if (horizontalRadius > 0 || verticalRadius > 0) { - var radius = horizontalRadius + 'px / ' + verticalRadius + 'px'; - container.style.borderRadius = radius; - } - switch (data.borderStyle.style) { - case _util.AnnotationBorderStyleType.SOLID: - container.style.borderStyle = 'solid'; - break; - case _util.AnnotationBorderStyleType.DASHED: - container.style.borderStyle = 'dashed'; - break; - case _util.AnnotationBorderStyleType.BEVELED: - (0, _util.warn)('Unimplemented border style: beveled'); - break; - case _util.AnnotationBorderStyleType.INSET: - (0, _util.warn)('Unimplemented border style: inset'); - break; - case _util.AnnotationBorderStyleType.UNDERLINE: - container.style.borderBottomStyle = 'solid'; - break; - default: - break; - } - if (data.color) { - container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0); - } else { - container.style.borderWidth = 0; - } - } - container.style.left = rect[0] + 'px'; - container.style.top = rect[1] + 'px'; - container.style.width = width + 'px'; - container.style.height = height + 'px'; - return container; - } - }, { - key: '_createPopup', - value: function _createPopup(container, trigger, data) { - if (!trigger) { - trigger = document.createElement('div'); - trigger.style.height = container.style.height; - trigger.style.width = container.style.width; - container.appendChild(trigger); - } - var popupElement = new PopupElement({ - container: container, - trigger: trigger, - color: data.color, - title: data.title, - contents: data.contents, - hideWrapper: true - }); - var popup = popupElement.render(); - popup.style.left = container.style.width; - container.appendChild(popup); - } - }, { - key: 'render', - value: function render() { - (0, _util.unreachable)('Abstract method `AnnotationElement.render` called'); - } - }]); - - return AnnotationElement; -}(); - -var LinkAnnotationElement = function (_AnnotationElement) { - _inherits(LinkAnnotationElement, _AnnotationElement); - - function LinkAnnotationElement(parameters) { - _classCallCheck(this, LinkAnnotationElement); - - var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action); - return _possibleConstructorReturn(this, (LinkAnnotationElement.__proto__ || Object.getPrototypeOf(LinkAnnotationElement)).call(this, parameters, isRenderable)); - } - - _createClass(LinkAnnotationElement, [{ - key: 'render', - value: function render() { - this.container.className = 'linkAnnotation'; - var data = this.data, - linkService = this.linkService; - - var link = document.createElement('a'); - (0, _dom_utils.addLinkAttributes)(link, { - url: data.url, - target: data.newWindow ? _dom_utils.LinkTarget.BLANK : linkService.externalLinkTarget, - rel: linkService.externalLinkRel - }); - if (!data.url) { - if (data.action) { - this._bindNamedAction(link, data.action); - } else { - this._bindLink(link, data.dest); - } - } - this.container.appendChild(link); - return this.container; - } - }, { - key: '_bindLink', - value: function _bindLink(link, destination) { - var _this2 = this; - - link.href = this.linkService.getDestinationHash(destination); - link.onclick = function () { - if (destination) { - _this2.linkService.navigateTo(destination); - } - return false; - }; - if (destination) { - link.className = 'internalLink'; - } - } - }, { - key: '_bindNamedAction', - value: function _bindNamedAction(link, action) { - var _this3 = this; - - link.href = this.linkService.getAnchorUrl(''); - link.onclick = function () { - _this3.linkService.executeNamedAction(action); - return false; - }; - link.className = 'internalLink'; - } - }]); - - return LinkAnnotationElement; -}(AnnotationElement); - -var TextAnnotationElement = function (_AnnotationElement2) { - _inherits(TextAnnotationElement, _AnnotationElement2); - - function TextAnnotationElement(parameters) { - _classCallCheck(this, TextAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, (TextAnnotationElement.__proto__ || Object.getPrototypeOf(TextAnnotationElement)).call(this, parameters, isRenderable)); - } - - _createClass(TextAnnotationElement, [{ - key: 'render', - value: function render() { - this.container.className = 'textAnnotation'; - var image = document.createElement('img'); - image.style.height = this.container.style.height; - image.style.width = this.container.style.width; - image.src = this.imageResourcesPath + 'annotation-' + this.data.name.toLowerCase() + '.svg'; - image.alt = '[{{type}} Annotation]'; - image.dataset.l10nId = 'text_annotation_type'; - image.dataset.l10nArgs = JSON.stringify({ type: this.data.name }); - if (!this.data.hasPopup) { - this._createPopup(this.container, image, this.data); - } - this.container.appendChild(image); - return this.container; - } - }]); - - return TextAnnotationElement; -}(AnnotationElement); - -var WidgetAnnotationElement = function (_AnnotationElement3) { - _inherits(WidgetAnnotationElement, _AnnotationElement3); - - function WidgetAnnotationElement() { - _classCallCheck(this, WidgetAnnotationElement); - - return _possibleConstructorReturn(this, (WidgetAnnotationElement.__proto__ || Object.getPrototypeOf(WidgetAnnotationElement)).apply(this, arguments)); - } - - _createClass(WidgetAnnotationElement, [{ - key: 'render', - value: function render() { - return this.container; - } - }]); - - return WidgetAnnotationElement; -}(AnnotationElement); - -var TextWidgetAnnotationElement = function (_WidgetAnnotationElem) { - _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem); - - function TextWidgetAnnotationElement(parameters) { - _classCallCheck(this, TextWidgetAnnotationElement); - - var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue; - return _possibleConstructorReturn(this, (TextWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(TextWidgetAnnotationElement)).call(this, parameters, isRenderable)); - } - - _createClass(TextWidgetAnnotationElement, [{ - key: 'render', - value: function render() { - var TEXT_ALIGNMENT = ['left', 'center', 'right']; - this.container.className = 'textWidgetAnnotation'; - var element = null; - if (this.renderInteractiveForms) { - if (this.data.multiLine) { - element = document.createElement('textarea'); - element.textContent = this.data.fieldValue; - } else { - element = document.createElement('input'); - element.type = 'text'; - element.setAttribute('value', this.data.fieldValue); - } - element.disabled = this.data.readOnly; - if (this.data.maxLen !== null) { - element.maxLength = this.data.maxLen; - } - if (this.data.comb) { - var fieldWidth = this.data.rect[2] - this.data.rect[0]; - var combWidth = fieldWidth / this.data.maxLen; - element.classList.add('comb'); - element.style.letterSpacing = 'calc(' + combWidth + 'px - 1ch)'; - } - } else { - element = document.createElement('div'); - element.textContent = this.data.fieldValue; - element.style.verticalAlign = 'middle'; - element.style.display = 'table-cell'; - var font = null; - if (this.data.fontRefName) { - font = this.page.commonObjs.getData(this.data.fontRefName); - } - this._setTextStyle(element, font); - } - if (this.data.textAlignment !== null) { - element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment]; - } - this.container.appendChild(element); - return this.container; - } - }, { - key: '_setTextStyle', - value: function _setTextStyle(element, font) { - var style = element.style; - style.fontSize = this.data.fontSize + 'px'; - style.direction = this.data.fontDirection < 0 ? 'rtl' : 'ltr'; - if (!font) { - return; - } - style.fontWeight = font.black ? font.bold ? '900' : 'bold' : font.bold ? 'bold' : 'normal'; - style.fontStyle = font.italic ? 'italic' : 'normal'; - var fontFamily = font.loadedName ? '"' + font.loadedName + '", ' : ''; - var fallbackName = font.fallbackName || 'Helvetica, sans-serif'; - style.fontFamily = fontFamily + fallbackName; - } - }]); - - return TextWidgetAnnotationElement; -}(WidgetAnnotationElement); - -var CheckboxWidgetAnnotationElement = function (_WidgetAnnotationElem2) { - _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2); - - function CheckboxWidgetAnnotationElement(parameters) { - _classCallCheck(this, CheckboxWidgetAnnotationElement); - - return _possibleConstructorReturn(this, (CheckboxWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(CheckboxWidgetAnnotationElement)).call(this, parameters, parameters.renderInteractiveForms)); - } - - _createClass(CheckboxWidgetAnnotationElement, [{ - key: 'render', - value: function render() { - this.container.className = 'buttonWidgetAnnotation checkBox'; - var element = document.createElement('input'); - element.disabled = this.data.readOnly; - element.type = 'checkbox'; - if (this.data.fieldValue && this.data.fieldValue !== 'Off') { - element.setAttribute('checked', true); - } - this.container.appendChild(element); - return this.container; - } - }]); - - return CheckboxWidgetAnnotationElement; -}(WidgetAnnotationElement); - -var RadioButtonWidgetAnnotationElement = function (_WidgetAnnotationElem3) { - _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3); - - function RadioButtonWidgetAnnotationElement(parameters) { - _classCallCheck(this, RadioButtonWidgetAnnotationElement); - - return _possibleConstructorReturn(this, (RadioButtonWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(RadioButtonWidgetAnnotationElement)).call(this, parameters, parameters.renderInteractiveForms)); - } - - _createClass(RadioButtonWidgetAnnotationElement, [{ - key: 'render', - value: function render() { - this.container.className = 'buttonWidgetAnnotation radioButton'; - var element = document.createElement('input'); - element.disabled = this.data.readOnly; - element.type = 'radio'; - element.name = this.data.fieldName; - if (this.data.fieldValue === this.data.buttonValue) { - element.setAttribute('checked', true); - } - this.container.appendChild(element); - return this.container; - } - }]); - - return RadioButtonWidgetAnnotationElement; -}(WidgetAnnotationElement); - -var PushButtonWidgetAnnotationElement = function (_LinkAnnotationElemen) { - _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen); - - function PushButtonWidgetAnnotationElement() { - _classCallCheck(this, PushButtonWidgetAnnotationElement); - - return _possibleConstructorReturn(this, (PushButtonWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(PushButtonWidgetAnnotationElement)).apply(this, arguments)); - } - - _createClass(PushButtonWidgetAnnotationElement, [{ - key: 'render', - value: function render() { - var container = _get(PushButtonWidgetAnnotationElement.prototype.__proto__ || Object.getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), 'render', this).call(this); - container.className = 'buttonWidgetAnnotation pushButton'; - return container; - } - }]); - - return PushButtonWidgetAnnotationElement; -}(LinkAnnotationElement); - -var ChoiceWidgetAnnotationElement = function (_WidgetAnnotationElem4) { - _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4); - - function ChoiceWidgetAnnotationElement(parameters) { - _classCallCheck(this, ChoiceWidgetAnnotationElement); - - return _possibleConstructorReturn(this, (ChoiceWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(ChoiceWidgetAnnotationElement)).call(this, parameters, parameters.renderInteractiveForms)); - } - - _createClass(ChoiceWidgetAnnotationElement, [{ - key: 'render', - value: function render() { - this.container.className = 'choiceWidgetAnnotation'; - var selectElement = document.createElement('select'); - selectElement.disabled = this.data.readOnly; - if (!this.data.combo) { - selectElement.size = this.data.options.length; - if (this.data.multiSelect) { - selectElement.multiple = true; - } - } - for (var i = 0, ii = this.data.options.length; i < ii; i++) { - var option = this.data.options[i]; - var optionElement = document.createElement('option'); - optionElement.textContent = option.displayValue; - optionElement.value = option.exportValue; - if (this.data.fieldValue.includes(option.displayValue)) { - optionElement.setAttribute('selected', true); - } - selectElement.appendChild(optionElement); - } - this.container.appendChild(selectElement); - return this.container; - } - }]); - - return ChoiceWidgetAnnotationElement; -}(WidgetAnnotationElement); - -var PopupAnnotationElement = function (_AnnotationElement4) { - _inherits(PopupAnnotationElement, _AnnotationElement4); - - function PopupAnnotationElement(parameters) { - _classCallCheck(this, PopupAnnotationElement); - - var isRenderable = !!(parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, (PopupAnnotationElement.__proto__ || Object.getPrototypeOf(PopupAnnotationElement)).call(this, parameters, isRenderable)); - } - - _createClass(PopupAnnotationElement, [{ - key: 'render', - value: function render() { - var IGNORE_TYPES = ['Line', 'Square', 'Circle', 'PolyLine', 'Polygon']; - this.container.className = 'popupAnnotation'; - if (IGNORE_TYPES.includes(this.data.parentType)) { - return this.container; - } - var selector = '[data-annotation-id="' + this.data.parentId + '"]'; - var parentElement = this.layer.querySelector(selector); - if (!parentElement) { - return this.container; - } - var popup = new PopupElement({ - container: this.container, - trigger: parentElement, - color: this.data.color, - title: this.data.title, - contents: this.data.contents - }); - var parentLeft = parseFloat(parentElement.style.left); - var parentWidth = parseFloat(parentElement.style.width); - this.container.style.transformOrigin = -(parentLeft + parentWidth) + 'px -' + parentElement.style.top; - this.container.style.left = parentLeft + parentWidth + 'px'; - this.container.appendChild(popup.render()); - return this.container; - } - }]); - - return PopupAnnotationElement; -}(AnnotationElement); - -var PopupElement = function () { - function PopupElement(parameters) { - _classCallCheck(this, PopupElement); - - this.container = parameters.container; - this.trigger = parameters.trigger; - this.color = parameters.color; - this.title = parameters.title; - this.contents = parameters.contents; - this.hideWrapper = parameters.hideWrapper || false; - this.pinned = false; - } - - _createClass(PopupElement, [{ - key: 'render', - value: function render() { - var BACKGROUND_ENLIGHT = 0.7; - var wrapper = document.createElement('div'); - wrapper.className = 'popupWrapper'; - this.hideElement = this.hideWrapper ? wrapper : this.container; - this.hideElement.setAttribute('hidden', true); - var popup = document.createElement('div'); - popup.className = 'popup'; - var color = this.color; - if (color) { - var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0]; - var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1]; - var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2]; - popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0); - } - var contents = this._formatContents(this.contents); - var title = document.createElement('h1'); - title.textContent = this.title; - this.trigger.addEventListener('click', this._toggle.bind(this)); - this.trigger.addEventListener('mouseover', this._show.bind(this, false)); - this.trigger.addEventListener('mouseout', this._hide.bind(this, false)); - popup.addEventListener('click', this._hide.bind(this, true)); - popup.appendChild(title); - popup.appendChild(contents); - wrapper.appendChild(popup); - return wrapper; - } - }, { - key: '_formatContents', - value: function _formatContents(contents) { - var p = document.createElement('p'); - var lines = contents.split(/(?:\r\n?|\n)/); - for (var i = 0, ii = lines.length; i < ii; ++i) { - var line = lines[i]; - p.appendChild(document.createTextNode(line)); - if (i < ii - 1) { - p.appendChild(document.createElement('br')); - } - } - return p; - } - }, { - key: '_toggle', - value: function _toggle() { - if (this.pinned) { - this._hide(true); - } else { - this._show(true); - } - } - }, { - key: '_show', - value: function _show() { - var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (pin) { - this.pinned = true; - } - if (this.hideElement.hasAttribute('hidden')) { - this.hideElement.removeAttribute('hidden'); - this.container.style.zIndex += 1; - } - } - }, { - key: '_hide', - value: function _hide() { - var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; - - if (unpin) { - this.pinned = false; - } - if (!this.hideElement.hasAttribute('hidden') && !this.pinned) { - this.hideElement.setAttribute('hidden', true); - this.container.style.zIndex -= 1; - } - } - }]); - - return PopupElement; -}(); - -var LineAnnotationElement = function (_AnnotationElement5) { - _inherits(LineAnnotationElement, _AnnotationElement5); - - function LineAnnotationElement(parameters) { - _classCallCheck(this, LineAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, (LineAnnotationElement.__proto__ || Object.getPrototypeOf(LineAnnotationElement)).call(this, parameters, isRenderable, true)); - } - - _createClass(LineAnnotationElement, [{ - key: 'render', - value: function render() { - this.container.className = 'lineAnnotation'; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var line = this.svgFactory.createElement('svg:line'); - line.setAttribute('x1', data.rect[2] - data.lineCoordinates[0]); - line.setAttribute('y1', data.rect[3] - data.lineCoordinates[1]); - line.setAttribute('x2', data.rect[2] - data.lineCoordinates[2]); - line.setAttribute('y2', data.rect[3] - data.lineCoordinates[3]); - line.setAttribute('stroke-width', data.borderStyle.width); - line.setAttribute('stroke', 'transparent'); - svg.appendChild(line); - this.container.append(svg); - this._createPopup(this.container, line, data); - return this.container; - } - }]); - - return LineAnnotationElement; -}(AnnotationElement); - -var SquareAnnotationElement = function (_AnnotationElement6) { - _inherits(SquareAnnotationElement, _AnnotationElement6); - - function SquareAnnotationElement(parameters) { - _classCallCheck(this, SquareAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, (SquareAnnotationElement.__proto__ || Object.getPrototypeOf(SquareAnnotationElement)).call(this, parameters, isRenderable, true)); - } - - _createClass(SquareAnnotationElement, [{ - key: 'render', - value: function render() { - this.container.className = 'squareAnnotation'; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var borderWidth = data.borderStyle.width; - var square = this.svgFactory.createElement('svg:rect'); - square.setAttribute('x', borderWidth / 2); - square.setAttribute('y', borderWidth / 2); - square.setAttribute('width', width - borderWidth); - square.setAttribute('height', height - borderWidth); - square.setAttribute('stroke-width', borderWidth); - square.setAttribute('stroke', 'transparent'); - square.setAttribute('fill', 'none'); - svg.appendChild(square); - this.container.append(svg); - this._createPopup(this.container, square, data); - return this.container; - } - }]); - - return SquareAnnotationElement; -}(AnnotationElement); - -var CircleAnnotationElement = function (_AnnotationElement7) { - _inherits(CircleAnnotationElement, _AnnotationElement7); - - function CircleAnnotationElement(parameters) { - _classCallCheck(this, CircleAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, (CircleAnnotationElement.__proto__ || Object.getPrototypeOf(CircleAnnotationElement)).call(this, parameters, isRenderable, true)); - } - - _createClass(CircleAnnotationElement, [{ - key: 'render', - value: function render() { - this.container.className = 'circleAnnotation'; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var borderWidth = data.borderStyle.width; - var circle = this.svgFactory.createElement('svg:ellipse'); - circle.setAttribute('cx', width / 2); - circle.setAttribute('cy', height / 2); - circle.setAttribute('rx', width / 2 - borderWidth / 2); - circle.setAttribute('ry', height / 2 - borderWidth / 2); - circle.setAttribute('stroke-width', borderWidth); - circle.setAttribute('stroke', 'transparent'); - circle.setAttribute('fill', 'none'); - svg.appendChild(circle); - this.container.append(svg); - this._createPopup(this.container, circle, data); - return this.container; - } - }]); - - return CircleAnnotationElement; -}(AnnotationElement); - -var PolylineAnnotationElement = function (_AnnotationElement8) { - _inherits(PolylineAnnotationElement, _AnnotationElement8); - - function PolylineAnnotationElement(parameters) { - _classCallCheck(this, PolylineAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - - var _this15 = _possibleConstructorReturn(this, (PolylineAnnotationElement.__proto__ || Object.getPrototypeOf(PolylineAnnotationElement)).call(this, parameters, isRenderable, true)); - - _this15.containerClassName = 'polylineAnnotation'; - _this15.svgElementName = 'svg:polyline'; - return _this15; - } - - _createClass(PolylineAnnotationElement, [{ - key: 'render', - value: function render() { - this.container.className = this.containerClassName; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var vertices = data.vertices; - var points = []; - for (var i = 0, ii = vertices.length; i < ii; i++) { - var x = vertices[i].x - data.rect[0]; - var y = data.rect[3] - vertices[i].y; - points.push(x + ',' + y); - } - points = points.join(' '); - var borderWidth = data.borderStyle.width; - var polyline = this.svgFactory.createElement(this.svgElementName); - polyline.setAttribute('points', points); - polyline.setAttribute('stroke-width', borderWidth); - polyline.setAttribute('stroke', 'transparent'); - polyline.setAttribute('fill', 'none'); - svg.appendChild(polyline); - this.container.append(svg); - this._createPopup(this.container, polyline, data); - return this.container; - } - }]); - - return PolylineAnnotationElement; -}(AnnotationElement); - -var PolygonAnnotationElement = function (_PolylineAnnotationEl) { - _inherits(PolygonAnnotationElement, _PolylineAnnotationEl); - - function PolygonAnnotationElement(parameters) { - _classCallCheck(this, PolygonAnnotationElement); - - var _this16 = _possibleConstructorReturn(this, (PolygonAnnotationElement.__proto__ || Object.getPrototypeOf(PolygonAnnotationElement)).call(this, parameters)); - - _this16.containerClassName = 'polygonAnnotation'; - _this16.svgElementName = 'svg:polygon'; - return _this16; - } - - return PolygonAnnotationElement; -}(PolylineAnnotationElement); - -var HighlightAnnotationElement = function (_AnnotationElement9) { - _inherits(HighlightAnnotationElement, _AnnotationElement9); - - function HighlightAnnotationElement(parameters) { - _classCallCheck(this, HighlightAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, (HighlightAnnotationElement.__proto__ || Object.getPrototypeOf(HighlightAnnotationElement)).call(this, parameters, isRenderable, true)); - } - - _createClass(HighlightAnnotationElement, [{ - key: 'render', - value: function render() { - this.container.className = 'highlightAnnotation'; - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - return this.container; - } - }]); - - return HighlightAnnotationElement; -}(AnnotationElement); - -var UnderlineAnnotationElement = function (_AnnotationElement10) { - _inherits(UnderlineAnnotationElement, _AnnotationElement10); - - function UnderlineAnnotationElement(parameters) { - _classCallCheck(this, UnderlineAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, (UnderlineAnnotationElement.__proto__ || Object.getPrototypeOf(UnderlineAnnotationElement)).call(this, parameters, isRenderable, true)); - } - - _createClass(UnderlineAnnotationElement, [{ - key: 'render', - value: function render() { - this.container.className = 'underlineAnnotation'; - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - return this.container; - } - }]); - - return UnderlineAnnotationElement; -}(AnnotationElement); - -var SquigglyAnnotationElement = function (_AnnotationElement11) { - _inherits(SquigglyAnnotationElement, _AnnotationElement11); - - function SquigglyAnnotationElement(parameters) { - _classCallCheck(this, SquigglyAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, (SquigglyAnnotationElement.__proto__ || Object.getPrototypeOf(SquigglyAnnotationElement)).call(this, parameters, isRenderable, true)); - } - - _createClass(SquigglyAnnotationElement, [{ - key: 'render', - value: function render() { - this.container.className = 'squigglyAnnotation'; - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - return this.container; - } - }]); - - return SquigglyAnnotationElement; -}(AnnotationElement); - -var StrikeOutAnnotationElement = function (_AnnotationElement12) { - _inherits(StrikeOutAnnotationElement, _AnnotationElement12); - - function StrikeOutAnnotationElement(parameters) { - _classCallCheck(this, StrikeOutAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, (StrikeOutAnnotationElement.__proto__ || Object.getPrototypeOf(StrikeOutAnnotationElement)).call(this, parameters, isRenderable, true)); - } - - _createClass(StrikeOutAnnotationElement, [{ - key: 'render', - value: function render() { - this.container.className = 'strikeoutAnnotation'; - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - return this.container; - } - }]); - - return StrikeOutAnnotationElement; -}(AnnotationElement); - -var StampAnnotationElement = function (_AnnotationElement13) { - _inherits(StampAnnotationElement, _AnnotationElement13); - - function StampAnnotationElement(parameters) { - _classCallCheck(this, StampAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, (StampAnnotationElement.__proto__ || Object.getPrototypeOf(StampAnnotationElement)).call(this, parameters, isRenderable, true)); - } - - _createClass(StampAnnotationElement, [{ - key: 'render', - value: function render() { - this.container.className = 'stampAnnotation'; - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - return this.container; - } - }]); - - return StampAnnotationElement; -}(AnnotationElement); - -var FileAttachmentAnnotationElement = function (_AnnotationElement14) { - _inherits(FileAttachmentAnnotationElement, _AnnotationElement14); - - function FileAttachmentAnnotationElement(parameters) { - _classCallCheck(this, FileAttachmentAnnotationElement); - - var _this22 = _possibleConstructorReturn(this, (FileAttachmentAnnotationElement.__proto__ || Object.getPrototypeOf(FileAttachmentAnnotationElement)).call(this, parameters, true)); - - var file = _this22.data.file; - _this22.filename = (0, _dom_utils.getFilenameFromUrl)(file.filename); - _this22.content = file.content; - _this22.linkService.onFileAttachmentAnnotation({ - id: (0, _util.stringToPDFString)(file.filename), - filename: file.filename, - content: file.content - }); - return _this22; - } - - _createClass(FileAttachmentAnnotationElement, [{ - key: 'render', - value: function render() { - this.container.className = 'fileAttachmentAnnotation'; - var trigger = document.createElement('div'); - trigger.style.height = this.container.style.height; - trigger.style.width = this.container.style.width; - trigger.addEventListener('dblclick', this._download.bind(this)); - if (!this.data.hasPopup && (this.data.title || this.data.contents)) { - this._createPopup(this.container, trigger, this.data); - } - this.container.appendChild(trigger); - return this.container; - } - }, { - key: '_download', - value: function _download() { - if (!this.downloadManager) { - (0, _util.warn)('Download cannot be started due to unavailable download manager'); - return; - } - this.downloadManager.downloadData(this.content, this.filename, ''); - } - }]); - - return FileAttachmentAnnotationElement; -}(AnnotationElement); - -var AnnotationLayer = function () { - function AnnotationLayer() { - _classCallCheck(this, AnnotationLayer); - } - - _createClass(AnnotationLayer, null, [{ - key: 'render', - value: function render(parameters) { - for (var i = 0, ii = parameters.annotations.length; i < ii; i++) { - var data = parameters.annotations[i]; - if (!data) { - continue; - } - var element = AnnotationElementFactory.create({ - data: data, - layer: parameters.div, - page: parameters.page, - viewport: parameters.viewport, - linkService: parameters.linkService, - downloadManager: parameters.downloadManager, - imageResourcesPath: parameters.imageResourcesPath || '', - renderInteractiveForms: parameters.renderInteractiveForms || false, - svgFactory: new _dom_utils.DOMSVGFactory() - }); - if (element.isRenderable) { - parameters.div.appendChild(element.render()); - } - } - } - }, { - key: 'update', - value: function update(parameters) { - for (var i = 0, ii = parameters.annotations.length; i < ii; i++) { - var data = parameters.annotations[i]; - var element = parameters.div.querySelector('[data-annotation-id="' + data.id + '"]'); - if (element) { - element.style.transform = 'matrix(' + parameters.viewport.transform.join(',') + ')'; - } - } - parameters.div.removeAttribute('hidden'); - } - }]); - - return AnnotationLayer; -}(); - -exports.AnnotationLayer = AnnotationLayer; - -/***/ }), -/* 62 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.renderTextLayer = undefined; - -var _util = __w_pdfjs_require__(0); - -var _dom_utils = __w_pdfjs_require__(10); - -var renderTextLayer = function renderTextLayerClosure() { - var MAX_TEXT_DIVS_TO_RENDER = 100000; - var NonWhitespaceRegexp = /\S/; - function isAllWhitespace(str) { - return !NonWhitespaceRegexp.test(str); - } - var styleBuf = ['left: ', 0, 'px; top: ', 0, 'px; font-size: ', 0, 'px; font-family: ', '', ';']; - function appendText(task, geom, styles) { - var textDiv = document.createElement('div'); - var textDivProperties = { - style: null, - angle: 0, - canvasWidth: 0, - isWhitespace: false, - originalTransform: null, - paddingBottom: 0, - paddingLeft: 0, - paddingRight: 0, - paddingTop: 0, - scale: 1 - }; - task._textDivs.push(textDiv); - if (isAllWhitespace(geom.str)) { - textDivProperties.isWhitespace = true; - task._textDivProperties.set(textDiv, textDivProperties); - return; - } - var tx = _util.Util.transform(task._viewport.transform, geom.transform); - var angle = Math.atan2(tx[1], tx[0]); - var style = styles[geom.fontName]; - if (style.vertical) { - angle += Math.PI / 2; - } - var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]); - var fontAscent = fontHeight; - if (style.ascent) { - fontAscent = style.ascent * fontAscent; - } else if (style.descent) { - fontAscent = (1 + style.descent) * fontAscent; - } - var left; - var top; - if (angle === 0) { - left = tx[4]; - top = tx[5] - fontAscent; - } else { - left = tx[4] + fontAscent * Math.sin(angle); - top = tx[5] - fontAscent * Math.cos(angle); - } - styleBuf[1] = left; - styleBuf[3] = top; - styleBuf[5] = fontHeight; - styleBuf[7] = style.fontFamily; - textDivProperties.style = styleBuf.join(''); - textDiv.setAttribute('style', textDivProperties.style); - textDiv.textContent = geom.str; - if ((0, _dom_utils.getDefaultSetting)('pdfBug')) { - textDiv.dataset.fontName = geom.fontName; - } - if (angle !== 0) { - textDivProperties.angle = angle * (180 / Math.PI); - } - if (geom.str.length > 1) { - if (style.vertical) { - textDivProperties.canvasWidth = geom.height * task._viewport.scale; - } else { - textDivProperties.canvasWidth = geom.width * task._viewport.scale; - } - } - task._textDivProperties.set(textDiv, textDivProperties); - if (task._textContentStream) { - task._layoutText(textDiv); - } - if (task._enhanceTextSelection) { - var angleCos = 1, - angleSin = 0; - if (angle !== 0) { - angleCos = Math.cos(angle); - angleSin = Math.sin(angle); - } - var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale; - var divHeight = fontHeight; - var m, b; - if (angle !== 0) { - m = [angleCos, angleSin, -angleSin, angleCos, left, top]; - b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m); - } else { - b = [left, top, left + divWidth, top + divHeight]; - } - task._bounds.push({ - left: b[0], - top: b[1], - right: b[2], - bottom: b[3], - div: textDiv, - size: [divWidth, divHeight], - m: m - }); - } - } - function render(task) { - if (task._canceled) { - return; - } - var textDivs = task._textDivs; - var capability = task._capability; - var textDivsLength = textDivs.length; - if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) { - task._renderingDone = true; - capability.resolve(); - return; - } - if (!task._textContentStream) { - for (var i = 0; i < textDivsLength; i++) { - task._layoutText(textDivs[i]); - } - } - task._renderingDone = true; - capability.resolve(); - } - function expand(task) { - var bounds = task._bounds; - var viewport = task._viewport; - var expanded = expandBounds(viewport.width, viewport.height, bounds); - for (var i = 0; i < expanded.length; i++) { - var div = bounds[i].div; - var divProperties = task._textDivProperties.get(div); - if (divProperties.angle === 0) { - divProperties.paddingLeft = bounds[i].left - expanded[i].left; - divProperties.paddingTop = bounds[i].top - expanded[i].top; - divProperties.paddingRight = expanded[i].right - bounds[i].right; - divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom; - task._textDivProperties.set(div, divProperties); - continue; - } - var e = expanded[i], - b = bounds[i]; - var m = b.m, - c = m[0], - s = m[1]; - var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size]; - var ts = new Float64Array(64); - points.forEach(function (p, i) { - var t = _util.Util.applyTransform(p, m); - ts[i + 0] = c && (e.left - t[0]) / c; - ts[i + 4] = s && (e.top - t[1]) / s; - ts[i + 8] = c && (e.right - t[0]) / c; - ts[i + 12] = s && (e.bottom - t[1]) / s; - ts[i + 16] = s && (e.left - t[0]) / -s; - ts[i + 20] = c && (e.top - t[1]) / c; - ts[i + 24] = s && (e.right - t[0]) / -s; - ts[i + 28] = c && (e.bottom - t[1]) / c; - ts[i + 32] = c && (e.left - t[0]) / -c; - ts[i + 36] = s && (e.top - t[1]) / -s; - ts[i + 40] = c && (e.right - t[0]) / -c; - ts[i + 44] = s && (e.bottom - t[1]) / -s; - ts[i + 48] = s && (e.left - t[0]) / s; - ts[i + 52] = c && (e.top - t[1]) / -c; - ts[i + 56] = s && (e.right - t[0]) / s; - ts[i + 60] = c && (e.bottom - t[1]) / -c; - }); - var findPositiveMin = function findPositiveMin(ts, offset, count) { - var result = 0; - for (var i = 0; i < count; i++) { - var t = ts[offset++]; - if (t > 0) { - result = result ? Math.min(t, result) : t; - } - } - return result; - }; - var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s)); - divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale; - divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale; - divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale; - divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale; - task._textDivProperties.set(div, divProperties); - } - } - function expandBounds(width, height, boxes) { - var bounds = boxes.map(function (box, i) { - return { - x1: box.left, - y1: box.top, - x2: box.right, - y2: box.bottom, - index: i, - x1New: undefined, - x2New: undefined - }; - }); - expandBoundsLTR(width, bounds); - var expanded = new Array(boxes.length); - bounds.forEach(function (b) { - var i = b.index; - expanded[i] = { - left: b.x1New, - top: 0, - right: b.x2New, - bottom: 0 - }; - }); - boxes.map(function (box, i) { - var e = expanded[i], - b = bounds[i]; - b.x1 = box.top; - b.y1 = width - e.right; - b.x2 = box.bottom; - b.y2 = width - e.left; - b.index = i; - b.x1New = undefined; - b.x2New = undefined; - }); - expandBoundsLTR(height, bounds); - bounds.forEach(function (b) { - var i = b.index; - expanded[i].top = b.x1New; - expanded[i].bottom = b.x2New; - }); - return expanded; - } - function expandBoundsLTR(width, bounds) { - bounds.sort(function (a, b) { - return a.x1 - b.x1 || a.index - b.index; - }); - var fakeBoundary = { - x1: -Infinity, - y1: -Infinity, - x2: 0, - y2: Infinity, - index: -1, - x1New: 0, - x2New: 0 - }; - var horizon = [{ - start: -Infinity, - end: Infinity, - boundary: fakeBoundary - }]; - bounds.forEach(function (boundary) { - var i = 0; - while (i < horizon.length && horizon[i].end <= boundary.y1) { - i++; - } - var j = horizon.length - 1; - while (j >= 0 && horizon[j].start >= boundary.y2) { - j--; - } - var horizonPart, affectedBoundary; - var q, - k, - maxXNew = -Infinity; - for (q = i; q <= j; q++) { - horizonPart = horizon[q]; - affectedBoundary = horizonPart.boundary; - var xNew; - if (affectedBoundary.x2 > boundary.x1) { - xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1; - } else if (affectedBoundary.x2New === undefined) { - xNew = (affectedBoundary.x2 + boundary.x1) / 2; - } else { - xNew = affectedBoundary.x2New; - } - if (xNew > maxXNew) { - maxXNew = xNew; - } - } - boundary.x1New = maxXNew; - for (q = i; q <= j; q++) { - horizonPart = horizon[q]; - affectedBoundary = horizonPart.boundary; - if (affectedBoundary.x2New === undefined) { - if (affectedBoundary.x2 > boundary.x1) { - if (affectedBoundary.index > boundary.index) { - affectedBoundary.x2New = affectedBoundary.x2; - } - } else { - affectedBoundary.x2New = maxXNew; - } - } else if (affectedBoundary.x2New > maxXNew) { - affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2); - } - } - var changedHorizon = [], - lastBoundary = null; - for (q = i; q <= j; q++) { - horizonPart = horizon[q]; - affectedBoundary = horizonPart.boundary; - var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary; - if (lastBoundary === useBoundary) { - changedHorizon[changedHorizon.length - 1].end = horizonPart.end; - } else { - changedHorizon.push({ - start: horizonPart.start, - end: horizonPart.end, - boundary: useBoundary - }); - lastBoundary = useBoundary; - } - } - if (horizon[i].start < boundary.y1) { - changedHorizon[0].start = boundary.y1; - changedHorizon.unshift({ - start: horizon[i].start, - end: boundary.y1, - boundary: horizon[i].boundary - }); - } - if (boundary.y2 < horizon[j].end) { - changedHorizon[changedHorizon.length - 1].end = boundary.y2; - changedHorizon.push({ - start: boundary.y2, - end: horizon[j].end, - boundary: horizon[j].boundary - }); - } - for (q = i; q <= j; q++) { - horizonPart = horizon[q]; - affectedBoundary = horizonPart.boundary; - if (affectedBoundary.x2New !== undefined) { - continue; - } - var used = false; - for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) { - used = horizon[k].boundary === affectedBoundary; - } - for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) { - used = horizon[k].boundary === affectedBoundary; - } - for (k = 0; !used && k < changedHorizon.length; k++) { - used = changedHorizon[k].boundary === affectedBoundary; - } - if (!used) { - affectedBoundary.x2New = maxXNew; - } - } - Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon)); - }); - horizon.forEach(function (horizonPart) { - var affectedBoundary = horizonPart.boundary; - if (affectedBoundary.x2New === undefined) { - affectedBoundary.x2New = Math.max(width, affectedBoundary.x2); - } - }); - } - function TextLayerRenderTask(_ref) { - var textContent = _ref.textContent, - textContentStream = _ref.textContentStream, - container = _ref.container, - viewport = _ref.viewport, - textDivs = _ref.textDivs, - textContentItemsStr = _ref.textContentItemsStr, - enhanceTextSelection = _ref.enhanceTextSelection; - - this._textContent = textContent; - this._textContentStream = textContentStream; - this._container = container; - this._viewport = viewport; - this._textDivs = textDivs || []; - this._textContentItemsStr = textContentItemsStr || []; - this._enhanceTextSelection = !!enhanceTextSelection; - this._reader = null; - this._layoutTextLastFontSize = null; - this._layoutTextLastFontFamily = null; - this._layoutTextCtx = null; - this._textDivProperties = new WeakMap(); - this._renderingDone = false; - this._canceled = false; - this._capability = (0, _util.createPromiseCapability)(); - this._renderTimer = null; - this._bounds = []; - } - TextLayerRenderTask.prototype = { - get promise() { - return this._capability.promise; - }, - cancel: function TextLayer_cancel() { - if (this._reader) { - this._reader.cancel(new _util.AbortException('text layer task cancelled')); - this._reader = null; - } - this._canceled = true; - if (this._renderTimer !== null) { - clearTimeout(this._renderTimer); - this._renderTimer = null; - } - this._capability.reject('canceled'); - }, - _processItems: function _processItems(items, styleCache) { - for (var i = 0, len = items.length; i < len; i++) { - this._textContentItemsStr.push(items[i].str); - appendText(this, items[i], styleCache); - } - }, - _layoutText: function _layoutText(textDiv) { - var textLayerFrag = this._container; - var textDivProperties = this._textDivProperties.get(textDiv); - if (textDivProperties.isWhitespace) { - return; - } - var fontSize = textDiv.style.fontSize; - var fontFamily = textDiv.style.fontFamily; - if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) { - this._layoutTextCtx.font = fontSize + ' ' + fontFamily; - this._lastFontSize = fontSize; - this._lastFontFamily = fontFamily; - } - var width = this._layoutTextCtx.measureText(textDiv.textContent).width; - var transform = ''; - if (textDivProperties.canvasWidth !== 0 && width > 0) { - textDivProperties.scale = textDivProperties.canvasWidth / width; - transform = 'scaleX(' + textDivProperties.scale + ')'; - } - if (textDivProperties.angle !== 0) { - transform = 'rotate(' + textDivProperties.angle + 'deg) ' + transform; - } - if (transform !== '') { - textDivProperties.originalTransform = transform; - textDiv.style.transform = transform; - } - this._textDivProperties.set(textDiv, textDivProperties); - textLayerFrag.appendChild(textDiv); - }, - - _render: function TextLayer_render(timeout) { - var _this = this; - - var capability = (0, _util.createPromiseCapability)(); - var styleCache = Object.create(null); - var canvas = document.createElement('canvas'); - canvas.mozOpaque = true; - this._layoutTextCtx = canvas.getContext('2d', { alpha: false }); - if (this._textContent) { - var textItems = this._textContent.items; - var textStyles = this._textContent.styles; - this._processItems(textItems, textStyles); - capability.resolve(); - } else if (this._textContentStream) { - var pump = function pump() { - _this._reader.read().then(function (_ref2) { - var value = _ref2.value, - done = _ref2.done; - - if (done) { - capability.resolve(); - return; - } - _util.Util.extendObj(styleCache, value.styles); - _this._processItems(value.items, styleCache); - pump(); - }, capability.reject); - }; - this._reader = this._textContentStream.getReader(); - pump(); - } else { - throw new Error('Neither "textContent" nor "textContentStream"' + ' parameters specified.'); - } - capability.promise.then(function () { - styleCache = null; - if (!timeout) { - render(_this); - } else { - _this._renderTimer = setTimeout(function () { - render(_this); - _this._renderTimer = null; - }, timeout); - } - }, this._capability.reject); - }, - expandTextDivs: function TextLayer_expandTextDivs(expandDivs) { - if (!this._enhanceTextSelection || !this._renderingDone) { - return; - } - if (this._bounds !== null) { - expand(this); - this._bounds = null; - } - for (var i = 0, ii = this._textDivs.length; i < ii; i++) { - var div = this._textDivs[i]; - var divProperties = this._textDivProperties.get(div); - if (divProperties.isWhitespace) { - continue; - } - if (expandDivs) { - var transform = '', - padding = ''; - if (divProperties.scale !== 1) { - transform = 'scaleX(' + divProperties.scale + ')'; - } - if (divProperties.angle !== 0) { - transform = 'rotate(' + divProperties.angle + 'deg) ' + transform; - } - if (divProperties.paddingLeft !== 0) { - padding += ' padding-left: ' + divProperties.paddingLeft / divProperties.scale + 'px;'; - transform += ' translateX(' + -divProperties.paddingLeft / divProperties.scale + 'px)'; - } - if (divProperties.paddingTop !== 0) { - padding += ' padding-top: ' + divProperties.paddingTop + 'px;'; - transform += ' translateY(' + -divProperties.paddingTop + 'px)'; - } - if (divProperties.paddingRight !== 0) { - padding += ' padding-right: ' + divProperties.paddingRight / divProperties.scale + 'px;'; - } - if (divProperties.paddingBottom !== 0) { - padding += ' padding-bottom: ' + divProperties.paddingBottom + 'px;'; - } - if (padding !== '') { - div.setAttribute('style', divProperties.style + padding); - } - if (transform !== '') { - div.style.transform = transform; - } - } else { - div.style.padding = 0; - div.style.transform = divProperties.originalTransform || ''; - } - } - } - }; - function renderTextLayer(renderParameters) { - var task = new TextLayerRenderTask({ - textContent: renderParameters.textContent, - textContentStream: renderParameters.textContentStream, - container: renderParameters.container, - viewport: renderParameters.viewport, - textDivs: renderParameters.textDivs, - textContentItemsStr: renderParameters.textContentItemsStr, - enhanceTextSelection: renderParameters.enhanceTextSelection - }); - task._render(renderParameters.timeout); - return task; - } - return renderTextLayer; -}(); -exports.renderTextLayer = renderTextLayer; - -/***/ }), -/* 63 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.SVGGraphics = undefined; - -var _util = __w_pdfjs_require__(0); - -var _dom_utils = __w_pdfjs_require__(10); - -var _is_node = __w_pdfjs_require__(25); - -var _is_node2 = _interopRequireDefault(_is_node); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var SVGGraphics = function SVGGraphics() { - throw new Error('Not implemented: SVGGraphics'); -}; -{ - var SVG_DEFAULTS = { - fontStyle: 'normal', - fontWeight: 'normal', - fillColor: '#000000' - }; - var convertImgDataToPng = function convertImgDataToPngClosure() { - var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); - var CHUNK_WRAPPER_SIZE = 12; - var crcTable = new Int32Array(256); - for (var i = 0; i < 256; i++) { - var c = i; - for (var h = 0; h < 8; h++) { - if (c & 1) { - c = 0xedB88320 ^ c >> 1 & 0x7fffffff; - } else { - c = c >> 1 & 0x7fffffff; - } - } - crcTable[i] = c; - } - function crc32(data, start, end) { - var crc = -1; - for (var i = start; i < end; i++) { - var a = (crc ^ data[i]) & 0xff; - var b = crcTable[a]; - crc = crc >>> 8 ^ b; - } - return crc ^ -1; - } - function writePngChunk(type, body, data, offset) { - var p = offset; - var len = body.length; - data[p] = len >> 24 & 0xff; - data[p + 1] = len >> 16 & 0xff; - data[p + 2] = len >> 8 & 0xff; - data[p + 3] = len & 0xff; - p += 4; - data[p] = type.charCodeAt(0) & 0xff; - data[p + 1] = type.charCodeAt(1) & 0xff; - data[p + 2] = type.charCodeAt(2) & 0xff; - data[p + 3] = type.charCodeAt(3) & 0xff; - p += 4; - data.set(body, p); - p += body.length; - var crc = crc32(data, offset + 4, p); - data[p] = crc >> 24 & 0xff; - data[p + 1] = crc >> 16 & 0xff; - data[p + 2] = crc >> 8 & 0xff; - data[p + 3] = crc & 0xff; - } - function adler32(data, start, end) { - var a = 1; - var b = 0; - for (var i = start; i < end; ++i) { - a = (a + (data[i] & 0xff)) % 65521; - b = (b + a) % 65521; - } - return b << 16 | a; - } - function deflateSync(literals) { - if (!(0, _is_node2.default)()) { - return deflateSyncUncompressed(literals); - } - try { - var input; - if (parseInt(process.versions.node) >= 8) { - input = literals; - } else { - input = new Buffer(literals); - } - var output = require('zlib').deflateSync(input, { level: 9 }); - return output instanceof Uint8Array ? output : new Uint8Array(output); - } catch (e) { - (0, _util.warn)('Not compressing PNG because zlib.deflateSync is unavailable: ' + e); - } - return deflateSyncUncompressed(literals); - } - function deflateSyncUncompressed(literals) { - var len = literals.length; - var maxBlockLength = 0xFFFF; - var deflateBlocks = Math.ceil(len / maxBlockLength); - var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4); - var pi = 0; - idat[pi++] = 0x78; - idat[pi++] = 0x9c; - var pos = 0; - while (len > maxBlockLength) { - idat[pi++] = 0x00; - idat[pi++] = 0xff; - idat[pi++] = 0xff; - idat[pi++] = 0x00; - idat[pi++] = 0x00; - idat.set(literals.subarray(pos, pos + maxBlockLength), pi); - pi += maxBlockLength; - pos += maxBlockLength; - len -= maxBlockLength; - } - idat[pi++] = 0x01; - idat[pi++] = len & 0xff; - idat[pi++] = len >> 8 & 0xff; - idat[pi++] = ~len & 0xffff & 0xff; - idat[pi++] = (~len & 0xffff) >> 8 & 0xff; - idat.set(literals.subarray(pos), pi); - pi += literals.length - pos; - var adler = adler32(literals, 0, literals.length); - idat[pi++] = adler >> 24 & 0xff; - idat[pi++] = adler >> 16 & 0xff; - idat[pi++] = adler >> 8 & 0xff; - idat[pi++] = adler & 0xff; - return idat; - } - function encode(imgData, kind, forceDataSchema, isMask) { - var width = imgData.width; - var height = imgData.height; - var bitDepth, colorType, lineSize; - var bytes = imgData.data; - switch (kind) { - case _util.ImageKind.GRAYSCALE_1BPP: - colorType = 0; - bitDepth = 1; - lineSize = width + 7 >> 3; - break; - case _util.ImageKind.RGB_24BPP: - colorType = 2; - bitDepth = 8; - lineSize = width * 3; - break; - case _util.ImageKind.RGBA_32BPP: - colorType = 6; - bitDepth = 8; - lineSize = width * 4; - break; - default: - throw new Error('invalid format'); - } - var literals = new Uint8Array((1 + lineSize) * height); - var offsetLiterals = 0, - offsetBytes = 0; - var y, i; - for (y = 0; y < height; ++y) { - literals[offsetLiterals++] = 0; - literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals); - offsetBytes += lineSize; - offsetLiterals += lineSize; - } - if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) { - offsetLiterals = 0; - for (y = 0; y < height; y++) { - offsetLiterals++; - for (i = 0; i < lineSize; i++) { - literals[offsetLiterals++] ^= 0xFF; - } - } - } - 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]); - var idat = deflateSync(literals); - var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length; - var data = new Uint8Array(pngLength); - var offset = 0; - data.set(PNG_HEADER, offset); - offset += PNG_HEADER.length; - writePngChunk('IHDR', ihdr, data, offset); - offset += CHUNK_WRAPPER_SIZE + ihdr.length; - writePngChunk('IDATA', idat, data, offset); - offset += CHUNK_WRAPPER_SIZE + idat.length; - writePngChunk('IEND', new Uint8Array(0), data, offset); - return (0, _util.createObjectURL)(data, 'image/png', forceDataSchema); - } - return function convertImgDataToPng(imgData, forceDataSchema, isMask) { - var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind; - return encode(imgData, kind, forceDataSchema, isMask); - }; - }(); - var SVGExtraState = function SVGExtraStateClosure() { - function SVGExtraState() { - this.fontSizeScale = 1; - this.fontWeight = SVG_DEFAULTS.fontWeight; - this.fontSize = 0; - this.textMatrix = _util.IDENTITY_MATRIX; - this.fontMatrix = _util.FONT_IDENTITY_MATRIX; - this.leading = 0; - this.x = 0; - this.y = 0; - this.lineX = 0; - this.lineY = 0; - this.charSpacing = 0; - this.wordSpacing = 0; - this.textHScale = 1; - this.textRise = 0; - this.fillColor = SVG_DEFAULTS.fillColor; - this.strokeColor = '#000000'; - this.fillAlpha = 1; - this.strokeAlpha = 1; - this.lineWidth = 1; - this.lineJoin = ''; - this.lineCap = ''; - this.miterLimit = 0; - this.dashArray = []; - this.dashPhase = 0; - this.dependencies = []; - this.activeClipUrl = null; - this.clipGroup = null; - this.maskId = ''; - } - SVGExtraState.prototype = { - clone: function SVGExtraState_clone() { - return Object.create(this); - }, - setCurrentPoint: function SVGExtraState_setCurrentPoint(x, y) { - this.x = x; - this.y = y; - } - }; - return SVGExtraState; - }(); - exports.SVGGraphics = SVGGraphics = function SVGGraphicsClosure() { - function opListToTree(opList) { - var opTree = []; - var tmp = []; - var opListLen = opList.length; - for (var x = 0; x < opListLen; x++) { - if (opList[x].fn === 'save') { - opTree.push({ - 'fnId': 92, - 'fn': 'group', - 'items': [] - }); - tmp.push(opTree); - opTree = opTree[opTree.length - 1].items; - continue; - } - if (opList[x].fn === 'restore') { - opTree = tmp.pop(); - } else { - opTree.push(opList[x]); - } - } - return opTree; - } - function pf(value) { - if (Number.isInteger(value)) { - return value.toString(); - } - var s = value.toFixed(10); - var i = s.length - 1; - if (s[i] !== '0') { - return s; - } - do { - i--; - } while (s[i] === '0'); - return s.substr(0, s[i] === '.' ? i : i + 1); - } - function pm(m) { - if (m[4] === 0 && m[5] === 0) { - if (m[1] === 0 && m[2] === 0) { - if (m[0] === 1 && m[3] === 1) { - return ''; - } - return 'scale(' + pf(m[0]) + ' ' + pf(m[3]) + ')'; - } - if (m[0] === m[3] && m[1] === -m[2]) { - var a = Math.acos(m[0]) * 180 / Math.PI; - return 'rotate(' + pf(a) + ')'; - } - } else { - if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) { - return 'translate(' + pf(m[4]) + ' ' + pf(m[5]) + ')'; - } - } - return 'matrix(' + pf(m[0]) + ' ' + pf(m[1]) + ' ' + pf(m[2]) + ' ' + pf(m[3]) + ' ' + pf(m[4]) + ' ' + pf(m[5]) + ')'; - } - function SVGGraphics(commonObjs, objs, forceDataSchema) { - this.svgFactory = new _dom_utils.DOMSVGFactory(); - this.current = new SVGExtraState(); - this.transformMatrix = _util.IDENTITY_MATRIX; - this.transformStack = []; - this.extraStack = []; - this.commonObjs = commonObjs; - this.objs = objs; - this.pendingClip = null; - this.pendingEOFill = false; - this.embedFonts = false; - this.embeddedFonts = Object.create(null); - this.cssStyle = null; - this.forceDataSchema = !!forceDataSchema; - } - var XML_NS = 'http://www.w3.org/XML/1998/namespace'; - var XLINK_NS = 'http://www.w3.org/1999/xlink'; - var LINE_CAP_STYLES = ['butt', 'round', 'square']; - var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; - var clipCount = 0; - var maskCount = 0; - SVGGraphics.prototype = { - save: function SVGGraphics_save() { - this.transformStack.push(this.transformMatrix); - var old = this.current; - this.extraStack.push(old); - this.current = old.clone(); - }, - restore: function SVGGraphics_restore() { - this.transformMatrix = this.transformStack.pop(); - this.current = this.extraStack.pop(); - this.pendingClip = null; - this.tgrp = null; - }, - group: function SVGGraphics_group(items) { - this.save(); - this.executeOpTree(items); - this.restore(); - }, - loadDependencies: function SVGGraphics_loadDependencies(operatorList) { - var _this = this; - - var fnArray = operatorList.fnArray; - var fnArrayLen = fnArray.length; - var argsArray = operatorList.argsArray; - for (var i = 0; i < fnArrayLen; i++) { - if (_util.OPS.dependency === fnArray[i]) { - var deps = argsArray[i]; - for (var n = 0, nn = deps.length; n < nn; n++) { - var obj = deps[n]; - var common = obj.substring(0, 2) === 'g_'; - var promise; - if (common) { - promise = new Promise(function (resolve) { - _this.commonObjs.get(obj, resolve); - }); - } else { - promise = new Promise(function (resolve) { - _this.objs.get(obj, resolve); - }); - } - this.current.dependencies.push(promise); - } - } - } - return Promise.all(this.current.dependencies); - }, - transform: function SVGGraphics_transform(a, b, c, d, e, f) { - var transformMatrix = [a, b, c, d, e, f]; - this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix); - this.tgrp = null; - }, - getSVG: function SVGGraphics_getSVG(operatorList, viewport) { - var _this2 = this; - - this.viewport = viewport; - var svgElement = this._initialize(viewport); - return this.loadDependencies(operatorList).then(function () { - _this2.transformMatrix = _util.IDENTITY_MATRIX; - var opTree = _this2.convertOpList(operatorList); - _this2.executeOpTree(opTree); - return svgElement; - }); - }, - convertOpList: function SVGGraphics_convertOpList(operatorList) { - var argsArray = operatorList.argsArray; - var fnArray = operatorList.fnArray; - var fnArrayLen = fnArray.length; - var REVOPS = []; - var opList = []; - for (var op in _util.OPS) { - REVOPS[_util.OPS[op]] = op; - } - for (var x = 0; x < fnArrayLen; x++) { - var fnId = fnArray[x]; - opList.push({ - 'fnId': fnId, - 'fn': REVOPS[fnId], - 'args': argsArray[x] - }); - } - return opListToTree(opList); - }, - executeOpTree: function SVGGraphics_executeOpTree(opTree) { - var opTreeLen = opTree.length; - for (var x = 0; x < opTreeLen; x++) { - var fn = opTree[x].fn; - var fnId = opTree[x].fnId; - var args = opTree[x].args; - switch (fnId | 0) { - case _util.OPS.beginText: - this.beginText(); - break; - case _util.OPS.setLeading: - this.setLeading(args); - break; - case _util.OPS.setLeadingMoveText: - this.setLeadingMoveText(args[0], args[1]); - break; - case _util.OPS.setFont: - this.setFont(args); - break; - case _util.OPS.showText: - this.showText(args[0]); - break; - case _util.OPS.showSpacedText: - this.showText(args[0]); - break; - case _util.OPS.endText: - this.endText(); - break; - case _util.OPS.moveText: - this.moveText(args[0], args[1]); - break; - case _util.OPS.setCharSpacing: - this.setCharSpacing(args[0]); - break; - case _util.OPS.setWordSpacing: - this.setWordSpacing(args[0]); - break; - case _util.OPS.setHScale: - this.setHScale(args[0]); - break; - case _util.OPS.setTextMatrix: - this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); - break; - case _util.OPS.setTextRise: - this.setTextRise(args[0]); - break; - case _util.OPS.setLineWidth: - this.setLineWidth(args[0]); - break; - case _util.OPS.setLineJoin: - this.setLineJoin(args[0]); - break; - case _util.OPS.setLineCap: - this.setLineCap(args[0]); - break; - case _util.OPS.setMiterLimit: - this.setMiterLimit(args[0]); - break; - case _util.OPS.setFillRGBColor: - this.setFillRGBColor(args[0], args[1], args[2]); - break; - case _util.OPS.setStrokeRGBColor: - this.setStrokeRGBColor(args[0], args[1], args[2]); - break; - case _util.OPS.setDash: - this.setDash(args[0], args[1]); - break; - case _util.OPS.setGState: - this.setGState(args[0]); - break; - case _util.OPS.fill: - this.fill(); - break; - case _util.OPS.eoFill: - this.eoFill(); - break; - case _util.OPS.stroke: - this.stroke(); - break; - case _util.OPS.fillStroke: - this.fillStroke(); - break; - case _util.OPS.eoFillStroke: - this.eoFillStroke(); - break; - case _util.OPS.clip: - this.clip('nonzero'); - break; - case _util.OPS.eoClip: - this.clip('evenodd'); - break; - case _util.OPS.paintSolidColorImageMask: - this.paintSolidColorImageMask(); - break; - case _util.OPS.paintJpegXObject: - this.paintJpegXObject(args[0], args[1], args[2]); - break; - case _util.OPS.paintImageXObject: - this.paintImageXObject(args[0]); - break; - case _util.OPS.paintInlineImageXObject: - this.paintInlineImageXObject(args[0]); - break; - case _util.OPS.paintImageMaskXObject: - this.paintImageMaskXObject(args[0]); - break; - case _util.OPS.paintFormXObjectBegin: - this.paintFormXObjectBegin(args[0], args[1]); - break; - case _util.OPS.paintFormXObjectEnd: - this.paintFormXObjectEnd(); - break; - case _util.OPS.closePath: - this.closePath(); - break; - case _util.OPS.closeStroke: - this.closeStroke(); - break; - case _util.OPS.closeFillStroke: - this.closeFillStroke(); - break; - case _util.OPS.closeEOFillStroke: - this.closeEOFillStroke(); - break; - case _util.OPS.nextLine: - this.nextLine(); - break; - case _util.OPS.transform: - this.transform(args[0], args[1], args[2], args[3], args[4], args[5]); - break; - case _util.OPS.constructPath: - this.constructPath(args[0], args[1]); - break; - case _util.OPS.endPath: - this.endPath(); - break; - case 92: - this.group(opTree[x].items); - break; - default: - (0, _util.warn)('Unimplemented operator ' + fn); - break; - } - } - }, - setWordSpacing: function SVGGraphics_setWordSpacing(wordSpacing) { - this.current.wordSpacing = wordSpacing; - }, - setCharSpacing: function SVGGraphics_setCharSpacing(charSpacing) { - this.current.charSpacing = charSpacing; - }, - nextLine: function SVGGraphics_nextLine() { - this.moveText(0, this.current.leading); - }, - setTextMatrix: function SVGGraphics_setTextMatrix(a, b, c, d, e, f) { - var current = this.current; - this.current.textMatrix = this.current.lineMatrix = [a, b, c, d, e, f]; - this.current.x = this.current.lineX = 0; - this.current.y = this.current.lineY = 0; - current.xcoords = []; - current.tspan = this.svgFactory.createElement('svg:tspan'); - current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); - current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px'); - current.tspan.setAttributeNS(null, 'y', pf(-current.y)); - current.txtElement = this.svgFactory.createElement('svg:text'); - current.txtElement.appendChild(current.tspan); - }, - beginText: function SVGGraphics_beginText() { - this.current.x = this.current.lineX = 0; - this.current.y = this.current.lineY = 0; - this.current.textMatrix = _util.IDENTITY_MATRIX; - this.current.lineMatrix = _util.IDENTITY_MATRIX; - this.current.tspan = this.svgFactory.createElement('svg:tspan'); - this.current.txtElement = this.svgFactory.createElement('svg:text'); - this.current.txtgrp = this.svgFactory.createElement('svg:g'); - this.current.xcoords = []; - }, - moveText: function SVGGraphics_moveText(x, y) { - var current = this.current; - this.current.x = this.current.lineX += x; - this.current.y = this.current.lineY += y; - current.xcoords = []; - current.tspan = this.svgFactory.createElement('svg:tspan'); - current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); - current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px'); - current.tspan.setAttributeNS(null, 'y', pf(-current.y)); - }, - showText: function SVGGraphics_showText(glyphs) { - var current = this.current; - var font = current.font; - var fontSize = current.fontSize; - if (fontSize === 0) { - return; - } - var charSpacing = current.charSpacing; - var wordSpacing = current.wordSpacing; - var fontDirection = current.fontDirection; - var textHScale = current.textHScale * fontDirection; - var glyphsLength = glyphs.length; - var vertical = font.vertical; - var widthAdvanceScale = fontSize * current.fontMatrix[0]; - var x = 0, - i; - for (i = 0; i < glyphsLength; ++i) { - var glyph = glyphs[i]; - if (glyph === null) { - x += fontDirection * wordSpacing; - continue; - } else if ((0, _util.isNum)(glyph)) { - x += -glyph * fontSize * 0.001; - continue; - } - var width = glyph.width; - var character = glyph.fontChar; - var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; - var charWidth = width * widthAdvanceScale + spacing * fontDirection; - if (!glyph.isInFont && !font.missingFile) { - x += charWidth; - continue; - } - current.xcoords.push(current.x + x * textHScale); - current.tspan.textContent += character; - x += charWidth; - } - if (vertical) { - current.y -= x * textHScale; - } else { - current.x += x * textHScale; - } - current.tspan.setAttributeNS(null, 'x', current.xcoords.map(pf).join(' ')); - current.tspan.setAttributeNS(null, 'y', pf(-current.y)); - current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); - current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px'); - if (current.fontStyle !== SVG_DEFAULTS.fontStyle) { - current.tspan.setAttributeNS(null, 'font-style', current.fontStyle); - } - if (current.fontWeight !== SVG_DEFAULTS.fontWeight) { - current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight); - } - if (current.fillColor !== SVG_DEFAULTS.fillColor) { - current.tspan.setAttributeNS(null, 'fill', current.fillColor); - } - var textMatrix = current.textMatrix; - if (current.textRise !== 0) { - textMatrix = textMatrix.slice(); - textMatrix[5] += current.textRise; - } - current.txtElement.setAttributeNS(null, 'transform', pm(textMatrix) + ' scale(1, -1)'); - current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve'); - current.txtElement.appendChild(current.tspan); - current.txtgrp.appendChild(current.txtElement); - this._ensureTransformGroup().appendChild(current.txtElement); - }, - setLeadingMoveText: function SVGGraphics_setLeadingMoveText(x, y) { - this.setLeading(-y); - this.moveText(x, y); - }, - addFontStyle: function SVGGraphics_addFontStyle(fontObj) { - if (!this.cssStyle) { - this.cssStyle = this.svgFactory.createElement('svg:style'); - this.cssStyle.setAttributeNS(null, 'type', 'text/css'); - this.defs.appendChild(this.cssStyle); - } - var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema); - this.cssStyle.textContent += '@font-face { font-family: "' + fontObj.loadedName + '";' + ' src: url(' + url + '); }\n'; - }, - setFont: function SVGGraphics_setFont(details) { - var current = this.current; - var fontObj = this.commonObjs.get(details[0]); - var size = details[1]; - this.current.font = fontObj; - if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) { - this.addFontStyle(fontObj); - this.embeddedFonts[fontObj.loadedName] = fontObj; - } - current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; - var bold = fontObj.black ? fontObj.bold ? 'bolder' : 'bold' : fontObj.bold ? 'bold' : 'normal'; - var italic = fontObj.italic ? 'italic' : 'normal'; - if (size < 0) { - size = -size; - current.fontDirection = -1; - } else { - current.fontDirection = 1; - } - current.fontSize = size; - current.fontFamily = fontObj.loadedName; - current.fontWeight = bold; - current.fontStyle = italic; - current.tspan = this.svgFactory.createElement('svg:tspan'); - current.tspan.setAttributeNS(null, 'y', pf(-current.y)); - current.xcoords = []; - }, - endText: function SVGGraphics_endText() {}, - setLineWidth: function SVGGraphics_setLineWidth(width) { - this.current.lineWidth = width; - }, - setLineCap: function SVGGraphics_setLineCap(style) { - this.current.lineCap = LINE_CAP_STYLES[style]; - }, - setLineJoin: function SVGGraphics_setLineJoin(style) { - this.current.lineJoin = LINE_JOIN_STYLES[style]; - }, - setMiterLimit: function SVGGraphics_setMiterLimit(limit) { - this.current.miterLimit = limit; - }, - setStrokeAlpha: function SVGGraphics_setStrokeAlpha(strokeAlpha) { - this.current.strokeAlpha = strokeAlpha; - }, - setStrokeRGBColor: function SVGGraphics_setStrokeRGBColor(r, g, b) { - var color = _util.Util.makeCssRgb(r, g, b); - this.current.strokeColor = color; - }, - setFillAlpha: function SVGGraphics_setFillAlpha(fillAlpha) { - this.current.fillAlpha = fillAlpha; - }, - setFillRGBColor: function SVGGraphics_setFillRGBColor(r, g, b) { - var color = _util.Util.makeCssRgb(r, g, b); - this.current.fillColor = color; - this.current.tspan = this.svgFactory.createElement('svg:tspan'); - this.current.xcoords = []; - }, - setDash: function SVGGraphics_setDash(dashArray, dashPhase) { - this.current.dashArray = dashArray; - this.current.dashPhase = dashPhase; - }, - constructPath: function SVGGraphics_constructPath(ops, args) { - var current = this.current; - var x = current.x, - y = current.y; - current.path = this.svgFactory.createElement('svg:path'); - var d = []; - var opLength = ops.length; - for (var i = 0, j = 0; i < opLength; i++) { - switch (ops[i] | 0) { - case _util.OPS.rectangle: - x = args[j++]; - y = args[j++]; - var width = args[j++]; - var height = args[j++]; - var xw = x + width; - var yh = y + height; - d.push('M', pf(x), pf(y), 'L', pf(xw), pf(y), 'L', pf(xw), pf(yh), 'L', pf(x), pf(yh), 'Z'); - break; - case _util.OPS.moveTo: - x = args[j++]; - y = args[j++]; - d.push('M', pf(x), pf(y)); - break; - case _util.OPS.lineTo: - x = args[j++]; - y = args[j++]; - d.push('L', pf(x), pf(y)); - break; - case _util.OPS.curveTo: - x = args[j + 4]; - y = args[j + 5]; - d.push('C', pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y)); - j += 6; - break; - case _util.OPS.curveTo2: - x = args[j + 2]; - y = args[j + 3]; - d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3])); - j += 4; - break; - case _util.OPS.curveTo3: - x = args[j + 2]; - y = args[j + 3]; - d.push('C', pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y)); - j += 4; - break; - case _util.OPS.closePath: - d.push('Z'); - break; - } - } - current.path.setAttributeNS(null, 'd', d.join(' ')); - current.path.setAttributeNS(null, 'fill', 'none'); - this._ensureTransformGroup().appendChild(current.path); - current.element = current.path; - current.setCurrentPoint(x, y); - }, - endPath: function SVGGraphics_endPath() { - if (!this.pendingClip) { - return; - } - var current = this.current; - var clipId = 'clippath' + clipCount; - clipCount++; - var clipPath = this.svgFactory.createElement('svg:clipPath'); - clipPath.setAttributeNS(null, 'id', clipId); - clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix)); - var clipElement = current.element.cloneNode(); - if (this.pendingClip === 'evenodd') { - clipElement.setAttributeNS(null, 'clip-rule', 'evenodd'); - } else { - clipElement.setAttributeNS(null, 'clip-rule', 'nonzero'); - } - this.pendingClip = null; - clipPath.appendChild(clipElement); - this.defs.appendChild(clipPath); - if (current.activeClipUrl) { - current.clipGroup = null; - this.extraStack.forEach(function (prev) { - prev.clipGroup = null; - }); - } - current.activeClipUrl = 'url(#' + clipId + ')'; - this.tgrp = null; - }, - clip: function SVGGraphics_clip(type) { - this.pendingClip = type; - }, - closePath: function SVGGraphics_closePath() { - var current = this.current; - if (current.path) { - var d = current.path.getAttributeNS(null, 'd'); - d += 'Z'; - current.path.setAttributeNS(null, 'd', d); - } - }, - setLeading: function SVGGraphics_setLeading(leading) { - this.current.leading = -leading; - }, - setTextRise: function SVGGraphics_setTextRise(textRise) { - this.current.textRise = textRise; - }, - setHScale: function SVGGraphics_setHScale(scale) { - this.current.textHScale = scale / 100; - }, - setGState: function SVGGraphics_setGState(states) { - for (var i = 0, ii = states.length; i < ii; i++) { - var state = states[i]; - var key = state[0]; - var value = state[1]; - switch (key) { - case 'LW': - this.setLineWidth(value); - break; - case 'LC': - this.setLineCap(value); - break; - case 'LJ': - this.setLineJoin(value); - break; - case 'ML': - this.setMiterLimit(value); - break; - case 'D': - this.setDash(value[0], value[1]); - break; - case 'Font': - this.setFont(value); - break; - case 'CA': - this.setStrokeAlpha(value); - break; - case 'ca': - this.setFillAlpha(value); - break; - default: - (0, _util.warn)('Unimplemented graphic state ' + key); - break; - } - } - }, - fill: function SVGGraphics_fill() { - var current = this.current; - if (current.element) { - current.element.setAttributeNS(null, 'fill', current.fillColor); - current.element.setAttributeNS(null, 'fill-opacity', current.fillAlpha); - } - }, - stroke: function SVGGraphics_stroke() { - var current = this.current; - if (current.element) { - current.element.setAttributeNS(null, 'stroke', current.strokeColor); - current.element.setAttributeNS(null, 'stroke-opacity', current.strokeAlpha); - current.element.setAttributeNS(null, 'stroke-miterlimit', pf(current.miterLimit)); - current.element.setAttributeNS(null, 'stroke-linecap', current.lineCap); - current.element.setAttributeNS(null, 'stroke-linejoin', current.lineJoin); - current.element.setAttributeNS(null, 'stroke-width', pf(current.lineWidth) + 'px'); - current.element.setAttributeNS(null, 'stroke-dasharray', current.dashArray.map(pf).join(' ')); - current.element.setAttributeNS(null, 'stroke-dashoffset', pf(current.dashPhase) + 'px'); - current.element.setAttributeNS(null, 'fill', 'none'); - } - }, - eoFill: function SVGGraphics_eoFill() { - if (this.current.element) { - this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); - } - this.fill(); - }, - fillStroke: function SVGGraphics_fillStroke() { - this.stroke(); - this.fill(); - }, - eoFillStroke: function SVGGraphics_eoFillStroke() { - if (this.current.element) { - this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); - } - this.fillStroke(); - }, - closeStroke: function SVGGraphics_closeStroke() { - this.closePath(); - this.stroke(); - }, - closeFillStroke: function SVGGraphics_closeFillStroke() { - this.closePath(); - this.fillStroke(); - }, - closeEOFillStroke: function closeEOFillStroke() { - this.closePath(); - this.eoFillStroke(); - }, - - paintSolidColorImageMask: function SVGGraphics_paintSolidColorImageMask() { - var current = this.current; - var rect = this.svgFactory.createElement('svg:rect'); - rect.setAttributeNS(null, 'x', '0'); - rect.setAttributeNS(null, 'y', '0'); - rect.setAttributeNS(null, 'width', '1px'); - rect.setAttributeNS(null, 'height', '1px'); - rect.setAttributeNS(null, 'fill', current.fillColor); - this._ensureTransformGroup().appendChild(rect); - }, - paintJpegXObject: function SVGGraphics_paintJpegXObject(objId, w, h) { - var imgObj = this.objs.get(objId); - var imgEl = this.svgFactory.createElement('svg:image'); - imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src); - imgEl.setAttributeNS(null, 'width', pf(w)); - imgEl.setAttributeNS(null, 'height', pf(h)); - imgEl.setAttributeNS(null, 'x', '0'); - imgEl.setAttributeNS(null, 'y', pf(-h)); - imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / w) + ' ' + pf(-1 / h) + ')'); - this._ensureTransformGroup().appendChild(imgEl); - }, - paintImageXObject: function SVGGraphics_paintImageXObject(objId) { - var imgData = this.objs.get(objId); - if (!imgData) { - (0, _util.warn)('Dependent image isn\'t ready yet'); - return; - } - this.paintInlineImageXObject(imgData); - }, - paintInlineImageXObject: function SVGGraphics_paintInlineImageXObject(imgData, mask) { - var width = imgData.width; - var height = imgData.height; - var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask); - var cliprect = this.svgFactory.createElement('svg:rect'); - cliprect.setAttributeNS(null, 'x', '0'); - cliprect.setAttributeNS(null, 'y', '0'); - cliprect.setAttributeNS(null, 'width', pf(width)); - cliprect.setAttributeNS(null, 'height', pf(height)); - this.current.element = cliprect; - this.clip('nonzero'); - var imgEl = this.svgFactory.createElement('svg:image'); - imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgSrc); - imgEl.setAttributeNS(null, 'x', '0'); - imgEl.setAttributeNS(null, 'y', pf(-height)); - imgEl.setAttributeNS(null, 'width', pf(width) + 'px'); - imgEl.setAttributeNS(null, 'height', pf(height) + 'px'); - imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / width) + ' ' + pf(-1 / height) + ')'); - if (mask) { - mask.appendChild(imgEl); - } else { - this._ensureTransformGroup().appendChild(imgEl); - } - }, - paintImageMaskXObject: function SVGGraphics_paintImageMaskXObject(imgData) { - var current = this.current; - var width = imgData.width; - var height = imgData.height; - var fillColor = current.fillColor; - current.maskId = 'mask' + maskCount++; - var mask = this.svgFactory.createElement('svg:mask'); - mask.setAttributeNS(null, 'id', current.maskId); - var rect = this.svgFactory.createElement('svg:rect'); - rect.setAttributeNS(null, 'x', '0'); - rect.setAttributeNS(null, 'y', '0'); - rect.setAttributeNS(null, 'width', pf(width)); - rect.setAttributeNS(null, 'height', pf(height)); - rect.setAttributeNS(null, 'fill', fillColor); - rect.setAttributeNS(null, 'mask', 'url(#' + current.maskId + ')'); - this.defs.appendChild(mask); - this._ensureTransformGroup().appendChild(rect); - this.paintInlineImageXObject(imgData, mask); - }, - paintFormXObjectBegin: function SVGGraphics_paintFormXObjectBegin(matrix, bbox) { - if (Array.isArray(matrix) && matrix.length === 6) { - this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]); - } - if (Array.isArray(bbox) && bbox.length === 4) { - var width = bbox[2] - bbox[0]; - var height = bbox[3] - bbox[1]; - var cliprect = this.svgFactory.createElement('svg:rect'); - cliprect.setAttributeNS(null, 'x', bbox[0]); - cliprect.setAttributeNS(null, 'y', bbox[1]); - cliprect.setAttributeNS(null, 'width', pf(width)); - cliprect.setAttributeNS(null, 'height', pf(height)); - this.current.element = cliprect; - this.clip('nonzero'); - this.endPath(); - } - }, - paintFormXObjectEnd: function SVGGraphics_paintFormXObjectEnd() {}, - _initialize: function _initialize(viewport) { - var svg = this.svgFactory.create(viewport.width, viewport.height); - var definitions = this.svgFactory.createElement('svg:defs'); - svg.appendChild(definitions); - this.defs = definitions; - var rootGroup = this.svgFactory.createElement('svg:g'); - rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform)); - svg.appendChild(rootGroup); - this.svg = rootGroup; - return svg; - }, - - _ensureClipGroup: function SVGGraphics_ensureClipGroup() { - if (!this.current.clipGroup) { - var clipGroup = this.svgFactory.createElement('svg:g'); - clipGroup.setAttributeNS(null, 'clip-path', this.current.activeClipUrl); - this.svg.appendChild(clipGroup); - this.current.clipGroup = clipGroup; - } - return this.current.clipGroup; - }, - _ensureTransformGroup: function SVGGraphics_ensureTransformGroup() { - if (!this.tgrp) { - this.tgrp = this.svgFactory.createElement('svg:g'); - this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix)); - if (this.current.activeClipUrl) { - this._ensureClipGroup().appendChild(this.tgrp); - } else { - this.svg.appendChild(this.tgrp); - } - } - return this.tgrp; - } - }; - return SVGGraphics; - }(); -} -exports.SVGGraphics = SVGGraphics; - -/***/ }), -/* 64 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var pdfjsVersion = '2.0.402'; -var pdfjsBuild = '401f3a9d'; -var pdfjsSharedUtil = __w_pdfjs_require__(0); -var pdfjsDisplayGlobal = __w_pdfjs_require__(121); -var pdfjsDisplayAPI = __w_pdfjs_require__(59); -var pdfjsDisplayTextLayer = __w_pdfjs_require__(62); -var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(61); -var pdfjsDisplayDOMUtils = __w_pdfjs_require__(10); -var pdfjsDisplaySVG = __w_pdfjs_require__(63); -var pdfjsDisplayWorkerOptions = __w_pdfjs_require__(39); -{ - var isNodeJS = __w_pdfjs_require__(25); - if (isNodeJS()) { - var PDFNodeStream = __w_pdfjs_require__(127).PDFNodeStream; - pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { - return new PDFNodeStream(params); - }); - } else if (typeof Response !== 'undefined' && 'body' in Response.prototype && typeof ReadableStream !== 'undefined') { - var PDFFetchStream = __w_pdfjs_require__(129).PDFFetchStream; - pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { - return new PDFFetchStream(params); - }); - } else { - var PDFNetworkStream = __w_pdfjs_require__(130).PDFNetworkStream; - pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { - return new PDFNetworkStream(params); - }); - } -} -exports.PDFJS = pdfjsDisplayGlobal.PDFJS; -exports.build = pdfjsDisplayAPI.build; -exports.version = pdfjsDisplayAPI.version; -exports.getDocument = pdfjsDisplayAPI.getDocument; -exports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort; -exports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport; -exports.PDFWorker = pdfjsDisplayAPI.PDFWorker; -exports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer; -exports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer; -exports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability; -exports.PasswordResponses = pdfjsSharedUtil.PasswordResponses; -exports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException; -exports.MissingPDFException = pdfjsSharedUtil.MissingPDFException; -exports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics; -exports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding; -exports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException; -exports.OPS = pdfjsSharedUtil.OPS; -exports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel; -exports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES; -exports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl; -exports.createObjectURL = pdfjsSharedUtil.createObjectURL; -exports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters; -exports.shadow = pdfjsSharedUtil.shadow; -exports.createBlob = pdfjsSharedUtil.createBlob; -exports.RenderingCancelledException = pdfjsDisplayDOMUtils.RenderingCancelledException; -exports.getFilenameFromUrl = pdfjsDisplayDOMUtils.getFilenameFromUrl; -exports.LinkTarget = pdfjsDisplayDOMUtils.LinkTarget; -exports.addLinkAttributes = pdfjsDisplayDOMUtils.addLinkAttributes; -exports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions; - -/***/ }), -/* 65 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -if (typeof PDFJS === 'undefined' || !PDFJS.compatibilityChecked) { - var globalScope = __w_pdfjs_require__(15); - var isNodeJS = __w_pdfjs_require__(25); - var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || ''; - var isIOSChrome = userAgent.indexOf('CriOS') >= 0; - var isIE = userAgent.indexOf('Trident') >= 0; - var isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent); - var isSafari = /Safari\//.test(userAgent) && !/(Chrome\/|Android\s)/.test(userAgent); - var hasDOM = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' && (typeof document === 'undefined' ? 'undefined' : _typeof(document)) === 'object'; - if (typeof PDFJS === 'undefined') { - globalScope.PDFJS = {}; - } - PDFJS.compatibilityChecked = true; - (function checkNodeBtoa() { - if (globalScope.btoa || !isNodeJS()) { - return; - } - globalScope.btoa = function (chars) { - return Buffer.from(chars, 'binary').toString('base64'); - }; - })(); - (function checkNodeAtob() { - if (globalScope.atob || !isNodeJS()) { - return; - } - globalScope.atob = function (input) { - return Buffer.from(input, 'base64').toString('binary'); - }; - })(); - (function checkOnBlobSupport() { - if (isIE || isIOSChrome) { - PDFJS.disableCreateObjectURL = true; - } - })(); - (function checkRangeRequests() { - if (isSafari || isIOS) { - PDFJS.disableRange = true; - PDFJS.disableStream = true; - } - })(); - (function checkCurrentScript() { - if (!hasDOM) { - return; - } - if ('currentScript' in document) { - return; - } - Object.defineProperty(document, 'currentScript', { - get: function get() { - var scripts = document.getElementsByTagName('script'); - return scripts[scripts.length - 1]; - }, - - enumerable: true, - configurable: true - }); - })(); - (function checkChildNodeRemove() { - if (!hasDOM) { - return; - } - if (typeof Element.prototype.remove !== 'undefined') { - return; - } - Element.prototype.remove = function () { - if (this.parentNode) { - this.parentNode.removeChild(this); - } - }; - })(); - (function checkStringIncludes() { - if (String.prototype.includes) { - return; - } - __w_pdfjs_require__(66); - })(); - (function checkArrayIncludes() { - if (Array.prototype.includes) { - return; - } - __w_pdfjs_require__(71); - })(); - (function checkMathLog2() { - if (Math.log2) { - return; - } - Math.log2 = __w_pdfjs_require__(74); - })(); - (function checkNumberIsNaN() { - if (Number.isNaN) { - return; - } - Number.isNaN = __w_pdfjs_require__(76); - })(); - (function checkNumberIsInteger() { - if (Number.isInteger) { - return; - } - Number.isInteger = __w_pdfjs_require__(78); - })(); - (function checkPromise() { - if (globalScope.Promise) { - return; - } - globalScope.Promise = __w_pdfjs_require__(81); - })(); - (function checkWeakMap() { - if (globalScope.WeakMap) { - return; - } - globalScope.WeakMap = __w_pdfjs_require__(100); - })(); - (function checkURLConstructor() { - var hasWorkingUrl = false; - try { - if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) { - var u = new URL('b', 'http://a'); - u.pathname = 'c%20d'; - hasWorkingUrl = u.href === 'http://a/c%20d'; - } - } catch (e) {} - if (hasWorkingUrl) { - return; - } - var relative = Object.create(null); - relative['ftp'] = 21; - relative['file'] = 0; - relative['gopher'] = 70; - relative['http'] = 80; - relative['https'] = 443; - relative['ws'] = 80; - relative['wss'] = 443; - var relativePathDotMapping = Object.create(null); - relativePathDotMapping['%2e'] = '.'; - relativePathDotMapping['.%2e'] = '..'; - relativePathDotMapping['%2e.'] = '..'; - relativePathDotMapping['%2e%2e'] = '..'; - function isRelativeScheme(scheme) { - return relative[scheme] !== undefined; - } - function invalid() { - clear.call(this); - this._isInvalid = true; - } - function IDNAToASCII(h) { - if (h === '') { - invalid.call(this); - } - return h.toLowerCase(); - } - function percentEscape(c) { - var unicode = c.charCodeAt(0); - if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) { - return c; - } - return encodeURIComponent(c); - } - function percentEscapeQuery(c) { - var unicode = c.charCodeAt(0); - if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) { - return c; - } - return encodeURIComponent(c); - } - var EOF, - ALPHA = /[a-zA-Z]/, - ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/; - function parse(input, stateOverride, base) { - function err(message) { - errors.push(message); - } - var state = stateOverride || 'scheme start', - cursor = 0, - buffer = '', - seenAt = false, - seenBracket = false, - errors = []; - loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) { - var c = input[cursor]; - switch (state) { - case 'scheme start': - if (c && ALPHA.test(c)) { - buffer += c.toLowerCase(); - state = 'scheme'; - } else if (!stateOverride) { - buffer = ''; - state = 'no scheme'; - continue; - } else { - err('Invalid scheme.'); - break loop; + var state = stateOverride || 'scheme start', + cursor = 0, + buffer = '', + seenAt = false, + seenBracket = false, + errors = []; + loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) { + var c = input[cursor]; + switch (state) { + case 'scheme start': + if (c && ALPHA.test(c)) { + buffer += c.toLowerCase(); + state = 'scheme'; + } else if (!stateOverride) { + buffer = ''; + state = 'no scheme'; + continue; + } else { + err('Invalid scheme.'); + break loop; } break; case 'scheme': @@ -8033,7415 +3674,11094 @@ if (typeof PDFJS === 'undefined' || !PDFJS.compatibilityChecked) { } break; } - cursor++; + cursor++; + } + } + function clear() { + this._scheme = ''; + this._schemeData = ''; + this._username = ''; + this._password = null; + this._host = ''; + this._port = ''; + this._path = []; + this._query = ''; + this._fragment = ''; + this._isInvalid = false; + this._isRelative = false; + } + function JURL(url, base) { + if (base !== undefined && !(base instanceof JURL)) { + base = new JURL(String(base)); + } + this._url = url; + clear.call(this); + var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, ''); + parse.call(this, input, null, base); + } + JURL.prototype = { + toString: function toString() { + return this.href; + }, + + get href() { + if (this._isInvalid) { + return this._url; + } + var authority = ''; + if (this._username !== '' || this._password !== null) { + authority = this._username + (this._password !== null ? ':' + this._password : '') + '@'; + } + return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment; + }, + set href(value) { + clear.call(this); + parse.call(this, value); + }, + get protocol() { + return this._scheme + ':'; + }, + set protocol(value) { + if (this._isInvalid) { + return; + } + parse.call(this, value + ':', 'scheme start'); + }, + get host() { + return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host; + }, + set host(value) { + if (this._isInvalid || !this._isRelative) { + return; + } + parse.call(this, value, 'host'); + }, + get hostname() { + return this._host; + }, + set hostname(value) { + if (this._isInvalid || !this._isRelative) { + return; + } + parse.call(this, value, 'hostname'); + }, + get port() { + return this._port; + }, + set port(value) { + if (this._isInvalid || !this._isRelative) { + return; + } + parse.call(this, value, 'port'); + }, + get pathname() { + return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData; + }, + set pathname(value) { + if (this._isInvalid || !this._isRelative) { + return; + } + this._path = []; + parse.call(this, value, 'relative path start'); + }, + get search() { + return this._isInvalid || !this._query || this._query === '?' ? '' : this._query; + }, + set search(value) { + if (this._isInvalid || !this._isRelative) { + return; + } + this._query = '?'; + if (value[0] === '?') { + value = value.slice(1); + } + parse.call(this, value, 'query'); + }, + get hash() { + return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment; + }, + set hash(value) { + if (this._isInvalid) { + return; + } + this._fragment = '#'; + if (value[0] === '#') { + value = value.slice(1); + } + parse.call(this, value, 'fragment'); + }, + get origin() { + var host; + if (this._isInvalid || !this._scheme) { + return ''; + } + switch (this._scheme) { + case 'data': + case 'file': + case 'javascript': + case 'mailto': + return 'null'; + case 'blob': + try { + return new JURL(this._schemeData).origin || 'null'; + } catch (_) {} + return 'null'; + } + host = this.host; + if (!host) { + return ''; + } + return this._scheme + '://' + host; + } + }; + var OriginalURL = globalScope.URL; + if (OriginalURL) { + JURL.createObjectURL = function (blob) { + return OriginalURL.createObjectURL.apply(OriginalURL, arguments); + }; + JURL.revokeObjectURL = function (url) { + OriginalURL.revokeObjectURL(url); + }; + } + globalScope.URL = JURL; + })(); + (function checkObjectValues() { + if (Object.values) { + return; + } + Object.values = __w_pdfjs_require__(112); + })(); +} + +/***/ }), +/* 62 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(63); +module.exports = __w_pdfjs_require__(5).String.includes; + +/***/ }), +/* 63 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(3); +var context = __w_pdfjs_require__(64); +var INCLUDES = 'includes'; +$export($export.P + $export.F * __w_pdfjs_require__(66)(INCLUDES), 'String', { + includes: function includes(searchString) { + return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +/***/ }), +/* 64 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isRegExp = __w_pdfjs_require__(65); +var defined = __w_pdfjs_require__(21); +module.exports = function (that, searchString, NAME) { + if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); + return String(defined(that)); +}; + +/***/ }), +/* 65 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(2); +var cof = __w_pdfjs_require__(13); +var MATCH = __w_pdfjs_require__(1)('match'); +module.exports = function (it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); +}; + +/***/ }), +/* 66 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var MATCH = __w_pdfjs_require__(1)('match'); +module.exports = function (KEY) { + var re = /./; + try { + '/./'[KEY](re); + } catch (e) { + try { + re[MATCH] = false; + return !'/./'[KEY](re); + } catch (f) {} + } + return true; +}; + +/***/ }), +/* 67 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(68); +module.exports = __w_pdfjs_require__(5).Array.includes; + +/***/ }), +/* 68 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(3); +var $includes = __w_pdfjs_require__(43)(true); +$export($export.P, 'Array', { + includes: function includes(el) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } +}); +__w_pdfjs_require__(44)('includes'); + +/***/ }), +/* 69 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var toInteger = __w_pdfjs_require__(30); +var max = Math.max; +var min = Math.min; +module.exports = function (index, length) { + index = toInteger(index); + return index < 0 ? max(index + length, 0) : min(index, length); +}; + +/***/ }), +/* 70 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(71); +module.exports = __w_pdfjs_require__(5).Math.log2; + +/***/ }), +/* 71 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(3); +$export($export.S, 'Math', { + log2: function log2(x) { + return Math.log(x) / Math.LN2; + } +}); + +/***/ }), +/* 72 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(73); +module.exports = __w_pdfjs_require__(5).Number.isNaN; + +/***/ }), +/* 73 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(3); +$export($export.S, 'Number', { + isNaN: function isNaN(number) { + return number != number; + } +}); + +/***/ }), +/* 74 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(75); +module.exports = __w_pdfjs_require__(5).Number.isInteger; + +/***/ }), +/* 75 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(3); +$export($export.S, 'Number', { isInteger: __w_pdfjs_require__(76) }); + +/***/ }), +/* 76 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(2); +var floor = Math.floor; +module.exports = function isInteger(it) { + return !isObject(it) && isFinite(it) && floor(it) === it; +}; + +/***/ }), +/* 77 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(45); +__w_pdfjs_require__(78); +__w_pdfjs_require__(50); +__w_pdfjs_require__(87); +__w_pdfjs_require__(94); +__w_pdfjs_require__(95); +module.exports = __w_pdfjs_require__(5).Promise; + +/***/ }), +/* 78 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $at = __w_pdfjs_require__(79)(true); +__w_pdfjs_require__(46)(String, 'String', function (iterated) { + this._t = String(iterated); + this._i = 0; +}, function () { + var O = this._t; + var index = this._i; + var point; + if (index >= O.length) return { + value: undefined, + done: true + }; + point = $at(O, index); + this._i += point.length; + return { + value: point, + done: false + }; +}); + +/***/ }), +/* 79 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var toInteger = __w_pdfjs_require__(30); +var defined = __w_pdfjs_require__(21); +module.exports = function (TO_STRING) { + return function (that, pos) { + var s = String(defined(that)); + var i = toInteger(pos); + var l = s.length; + var a, b; + if (i < 0 || i >= l) return TO_STRING ? '' : undefined; + a = s.charCodeAt(i); + 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; + }; +}; + +/***/ }), +/* 80 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var create = __w_pdfjs_require__(81); +var descriptor = __w_pdfjs_require__(27); +var setToStringTag = __w_pdfjs_require__(23); +var IteratorPrototype = {}; +__w_pdfjs_require__(10)(IteratorPrototype, __w_pdfjs_require__(1)('iterator'), function () { + return this; +}); +module.exports = function (Constructor, NAME, next) { + Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); + setToStringTag(Constructor, NAME + ' Iterator'); +}; + +/***/ }), +/* 81 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var anObject = __w_pdfjs_require__(6); +var dPs = __w_pdfjs_require__(82); +var enumBugKeys = __w_pdfjs_require__(48); +var IE_PROTO = __w_pdfjs_require__(32)('IE_PROTO'); +var Empty = function Empty() {}; +var PROTOTYPE = 'prototype'; +var _createDict = function createDict() { + var iframe = __w_pdfjs_require__(26)('iframe'); + var i = enumBugKeys.length; + var lt = '<'; + var gt = '>'; + var iframeDocument; + iframe.style.display = 'none'; + __w_pdfjs_require__(49).appendChild(iframe); + iframe.src = 'javascript:'; + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); + iframeDocument.close(); + _createDict = iframeDocument.F; + while (i--) { + delete _createDict[PROTOTYPE][enumBugKeys[i]]; + }return _createDict(); +}; +module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + Empty[PROTOTYPE] = anObject(O); + result = new Empty(); + Empty[PROTOTYPE] = null; + result[IE_PROTO] = O; + } else result = _createDict(); + return Properties === undefined ? result : dPs(result, Properties); +}; + +/***/ }), +/* 82 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var dP = __w_pdfjs_require__(14); +var anObject = __w_pdfjs_require__(6); +var getKeys = __w_pdfjs_require__(22); +module.exports = __w_pdfjs_require__(11) ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var keys = getKeys(Properties); + var length = keys.length; + var i = 0; + var P; + while (length > i) { + dP.f(O, P = keys[i++], Properties[P]); + }return O; +}; + +/***/ }), +/* 83 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var has = __w_pdfjs_require__(7); +var toIObject = __w_pdfjs_require__(16); +var arrayIndexOf = __w_pdfjs_require__(43)(false); +var IE_PROTO = __w_pdfjs_require__(32)('IE_PROTO'); +module.exports = function (object, names) { + var O = toIObject(object); + var i = 0; + var result = []; + var key; + for (key in O) { + if (key != IE_PROTO) has(O, key) && result.push(key); + }while (names.length > i) { + if (has(O, key = names[i++])) { + ~arrayIndexOf(result, key) || result.push(key); + } + }return result; +}; + +/***/ }), +/* 84 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var has = __w_pdfjs_require__(7); +var toObject = __w_pdfjs_require__(33); +var IE_PROTO = __w_pdfjs_require__(32)('IE_PROTO'); +var ObjectProto = Object.prototype; +module.exports = Object.getPrototypeOf || function (O) { + O = toObject(O); + if (has(O, IE_PROTO)) return O[IE_PROTO]; + if (typeof O.constructor == 'function' && O instanceof O.constructor) { + return O.constructor.prototype; + } + return O instanceof Object ? ObjectProto : null; +}; + +/***/ }), +/* 85 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var addToUnscopables = __w_pdfjs_require__(44); +var step = __w_pdfjs_require__(86); +var Iterators = __w_pdfjs_require__(17); +var toIObject = __w_pdfjs_require__(16); +module.exports = __w_pdfjs_require__(46)(Array, 'Array', function (iterated, kind) { + this._t = toIObject(iterated); + this._i = 0; + this._k = kind; +}, function () { + var O = this._t; + var kind = this._k; + var index = this._i++; + if (!O || index >= O.length) { + this._t = undefined; + return step(1); + } + if (kind == 'keys') return step(0, index); + if (kind == 'values') return step(0, O[index]); + return step(0, [index, O[index]]); +}, 'values'); +Iterators.Arguments = Iterators.Array; +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); + +/***/ }), +/* 86 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (done, value) { + return { + value: value, + done: !!done + }; +}; + +/***/ }), +/* 87 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var LIBRARY = __w_pdfjs_require__(47); +var global = __w_pdfjs_require__(4); +var ctx = __w_pdfjs_require__(9); +var classof = __w_pdfjs_require__(31); +var $export = __w_pdfjs_require__(3); +var isObject = __w_pdfjs_require__(2); +var aFunction = __w_pdfjs_require__(15); +var anInstance = __w_pdfjs_require__(34); +var forOf = __w_pdfjs_require__(24); +var speciesConstructor = __w_pdfjs_require__(51); +var task = __w_pdfjs_require__(52).set; +var microtask = __w_pdfjs_require__(92)(); +var newPromiseCapabilityModule = __w_pdfjs_require__(35); +var perform = __w_pdfjs_require__(53); +var promiseResolve = __w_pdfjs_require__(54); +var PROMISE = 'Promise'; +var TypeError = global.TypeError; +var process = global.process; +var $Promise = global[PROMISE]; +var isNode = classof(process) == 'process'; +var empty = function empty() {}; +var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; +var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; +var USE_NATIVE = !!function () { + try { + var promise = $Promise.resolve(1); + var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(1)('species')] = function (exec) { + exec(empty, empty); + }; + return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise; + } catch (e) {} +}(); +var isThenable = function isThenable(it) { + var then; + return isObject(it) && typeof (then = it.then) == 'function' ? then : false; +}; +var notify = function notify(promise, isReject) { + if (promise._n) return; + promise._n = true; + var chain = promise._c; + microtask(function () { + var value = promise._v; + var ok = promise._s == 1; + var i = 0; + var run = function run(reaction) { + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then; + try { + if (handler) { + if (!ok) { + if (promise._h == 2) onHandleUnhandled(promise); + promise._h = 1; + } + if (handler === true) result = value;else { + if (domain) domain.enter(); + result = handler(value); + if (domain) domain.exit(); + } + if (result === reaction.promise) { + reject(TypeError('Promise-chain cycle')); + } else if (then = isThenable(result)) { + then.call(result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (e) { + reject(e); + } + }; + while (chain.length > i) { + run(chain[i++]); + }promise._c = []; + promise._n = false; + if (isReject && !promise._h) onUnhandled(promise); + }); +}; +var onUnhandled = function onUnhandled(promise) { + task.call(global, function () { + var value = promise._v; + var unhandled = isUnhandled(promise); + var result, handler, console; + if (unhandled) { + result = perform(function () { + if (isNode) { + process.emit('unhandledRejection', value, promise); + } else if (handler = global.onunhandledrejection) { + handler({ + promise: promise, + reason: value + }); + } else if ((console = global.console) && console.error) { + console.error('Unhandled promise rejection', value); + } + }); + promise._h = isNode || isUnhandled(promise) ? 2 : 1; + } + promise._a = undefined; + if (unhandled && result.e) throw result.v; + }); +}; +var isUnhandled = function isUnhandled(promise) { + return promise._h !== 1 && (promise._a || promise._c).length === 0; +}; +var onHandleUnhandled = function onHandleUnhandled(promise) { + task.call(global, function () { + var handler; + if (isNode) { + process.emit('rejectionHandled', promise); + } else if (handler = global.onrejectionhandled) { + handler({ + promise: promise, + reason: promise._v + }); + } + }); +}; +var $reject = function $reject(value) { + var promise = this; + if (promise._d) return; + promise._d = true; + promise = promise._w || promise; + promise._v = value; + promise._s = 2; + if (!promise._a) promise._a = promise._c.slice(); + notify(promise, true); +}; +var $resolve = function $resolve(value) { + var promise = this; + var then; + if (promise._d) return; + promise._d = true; + promise = promise._w || promise; + try { + if (promise === value) throw TypeError("Promise can't be resolved itself"); + if (then = isThenable(value)) { + microtask(function () { + var wrapper = { + _w: promise, + _d: false + }; + try { + then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); + } catch (e) { + $reject.call(wrapper, e); + } + }); + } else { + promise._v = value; + promise._s = 1; + notify(promise, false); + } + } catch (e) { + $reject.call({ + _w: promise, + _d: false + }, e); + } +}; +if (!USE_NATIVE) { + $Promise = function Promise(executor) { + anInstance(this, $Promise, PROMISE, '_h'); + aFunction(executor); + Internal.call(this); + try { + executor(ctx($resolve, this, 1), ctx($reject, this, 1)); + } catch (err) { + $reject.call(this, err); + } + }; + Internal = function Promise(executor) { + this._c = []; + this._a = undefined; + this._s = 0; + this._d = false; + this._v = undefined; + this._h = 0; + this._n = false; + }; + Internal.prototype = __w_pdfjs_require__(36)($Promise.prototype, { + then: function then(onFulfilled, onRejected) { + var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); + reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; + reaction.fail = typeof onRejected == 'function' && onRejected; + reaction.domain = isNode ? process.domain : undefined; + this._c.push(reaction); + if (this._a) this._a.push(reaction); + if (this._s) notify(this, false); + return reaction.promise; + }, + 'catch': function _catch(onRejected) { + return this.then(undefined, onRejected); + } + }); + OwnPromiseCapability = function OwnPromiseCapability() { + var promise = new Internal(); + this.promise = promise; + this.resolve = ctx($resolve, promise, 1); + this.reject = ctx($reject, promise, 1); + }; + newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) { + return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); + }; +} +$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise }); +__w_pdfjs_require__(23)($Promise, PROMISE); +__w_pdfjs_require__(93)(PROMISE); +Wrapper = __w_pdfjs_require__(5)[PROMISE]; +$export($export.S + $export.F * !USE_NATIVE, PROMISE, { + reject: function reject(r) { + var capability = newPromiseCapability(this); + var $$reject = capability.reject; + $$reject(r); + return capability.promise; + } +}); +$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { + resolve: function resolve(x) { + return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); + } +}); +$export($export.S + $export.F * !(USE_NATIVE && __w_pdfjs_require__(55)(function (iter) { + $Promise.all(iter)['catch'](empty); +})), PROMISE, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapability(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var values = []; + var index = 0; + var remaining = 1; + forOf(iterable, false, function (promise) { + var $index = index++; + var alreadyCalled = false; + values.push(undefined); + remaining++; + C.resolve(promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[$index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.e) reject(result.v); + return capability.promise; + }, + race: function race(iterable) { + var C = this; + var capability = newPromiseCapability(C); + var reject = capability.reject; + var result = perform(function () { + forOf(iterable, false, function (promise) { + C.resolve(promise).then(capability.resolve, reject); + }); + }); + if (result.e) reject(result.v); + return capability.promise; + } +}); + +/***/ }), +/* 88 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var anObject = __w_pdfjs_require__(6); +module.exports = function (iterator, fn, value, entries) { + try { + return entries ? fn(anObject(value)[0], value[1]) : fn(value); + } catch (e) { + var ret = iterator['return']; + if (ret !== undefined) anObject(ret.call(iterator)); + throw e; + } +}; + +/***/ }), +/* 89 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var Iterators = __w_pdfjs_require__(17); +var ITERATOR = __w_pdfjs_require__(1)('iterator'); +var ArrayProto = Array.prototype; +module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); +}; + +/***/ }), +/* 90 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var classof = __w_pdfjs_require__(31); +var ITERATOR = __w_pdfjs_require__(1)('iterator'); +var Iterators = __w_pdfjs_require__(17); +module.exports = __w_pdfjs_require__(5).getIteratorMethod = function (it) { + if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; +}; + +/***/ }), +/* 91 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (fn, args, that) { + var un = that === undefined; + switch (args.length) { + case 0: + return un ? fn() : fn.call(that); + case 1: + return un ? fn(args[0]) : fn.call(that, args[0]); + case 2: + return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]); + case 3: + return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]); + case 4: + return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]); + } + return fn.apply(that, args); +}; + +/***/ }), +/* 92 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = __w_pdfjs_require__(4); +var macrotask = __w_pdfjs_require__(52).set; +var Observer = global.MutationObserver || global.WebKitMutationObserver; +var process = global.process; +var Promise = global.Promise; +var isNode = __w_pdfjs_require__(13)(process) == 'process'; +module.exports = function () { + var head, last, notify; + var flush = function flush() { + var parent, fn; + if (isNode && (parent = process.domain)) parent.exit(); + while (head) { + fn = head.fn; + head = head.next; + try { + fn(); + } catch (e) { + if (head) notify();else last = undefined; + throw e; + } + } + last = undefined; + if (parent) parent.enter(); + }; + if (isNode) { + notify = function notify() { + process.nextTick(flush); + }; + } else if (Observer && !(global.navigator && global.navigator.standalone)) { + var toggle = true; + var node = document.createTextNode(''); + new Observer(flush).observe(node, { characterData: true }); + notify = function notify() { + node.data = toggle = !toggle; + }; + } else if (Promise && Promise.resolve) { + var promise = Promise.resolve(); + notify = function notify() { + promise.then(flush); + }; + } else { + notify = function notify() { + macrotask.call(global, flush); + }; + } + return function (fn) { + var task = { + fn: fn, + next: undefined + }; + if (last) last.next = task; + if (!head) { + head = task; + notify(); + } + last = task; + }; +}; + +/***/ }), +/* 93 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = __w_pdfjs_require__(4); +var dP = __w_pdfjs_require__(14); +var DESCRIPTORS = __w_pdfjs_require__(11); +var SPECIES = __w_pdfjs_require__(1)('species'); +module.exports = function (KEY) { + var C = global[KEY]; + if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { + configurable: true, + get: function get() { + return this; + } + }); +}; + +/***/ }), +/* 94 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(3); +var core = __w_pdfjs_require__(5); +var global = __w_pdfjs_require__(4); +var speciesConstructor = __w_pdfjs_require__(51); +var promiseResolve = __w_pdfjs_require__(54); +$export($export.P + $export.R, 'Promise', { + 'finally': function _finally(onFinally) { + var C = speciesConstructor(this, core.Promise || global.Promise); + var isFunction = typeof onFinally == 'function'; + return this.then(isFunction ? function (x) { + return promiseResolve(C, onFinally()).then(function () { + return x; + }); + } : onFinally, isFunction ? function (e) { + return promiseResolve(C, onFinally()).then(function () { + throw e; + }); + } : onFinally); + } +}); + +/***/ }), +/* 95 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(3); +var newPromiseCapability = __w_pdfjs_require__(35); +var perform = __w_pdfjs_require__(53); +$export($export.S, 'Promise', { + 'try': function _try(callbackfn) { + var promiseCapability = newPromiseCapability.f(this); + var result = perform(callbackfn); + (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); + return promiseCapability.promise; + } +}); + +/***/ }), +/* 96 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(45); +__w_pdfjs_require__(50); +__w_pdfjs_require__(97); +__w_pdfjs_require__(108); +__w_pdfjs_require__(110); +module.exports = __w_pdfjs_require__(5).WeakMap; + +/***/ }), +/* 97 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var each = __w_pdfjs_require__(56)(0); +var redefine = __w_pdfjs_require__(8); +var meta = __w_pdfjs_require__(37); +var assign = __w_pdfjs_require__(101); +var weak = __w_pdfjs_require__(103); +var isObject = __w_pdfjs_require__(2); +var fails = __w_pdfjs_require__(12); +var validate = __w_pdfjs_require__(57); +var WEAK_MAP = 'WeakMap'; +var getWeak = meta.getWeak; +var isExtensible = Object.isExtensible; +var uncaughtFrozenStore = weak.ufstore; +var tmp = {}; +var InternalMap; +var wrapper = function wrapper(get) { + return function WeakMap() { + return get(this, arguments.length > 0 ? arguments[0] : undefined); + }; +}; +var methods = { + get: function get(key) { + if (isObject(key)) { + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); + return data ? data[this._i] : undefined; + } + }, + set: function set(key, value) { + return weak.def(validate(this, WEAK_MAP), key, value); + } +}; +var $WeakMap = module.exports = __w_pdfjs_require__(104)(WEAK_MAP, wrapper, methods, weak, true, true); +if (fails(function () { + return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; +})) { + InternalMap = weak.getConstructor(wrapper, WEAK_MAP); + assign(InternalMap.prototype, methods); + meta.NEED = true; + each(['delete', 'has', 'get', 'set'], function (key) { + var proto = $WeakMap.prototype; + var method = proto[key]; + redefine(proto, key, function (a, b) { + if (isObject(a) && !isExtensible(a)) { + if (!this._f) this._f = new InternalMap(); + var result = this._f[key](a, b); + return key == 'set' ? this : result; + } + return method.call(this, a, b); + }); + }); +} + +/***/ }), +/* 98 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var speciesConstructor = __w_pdfjs_require__(99); +module.exports = function (original, length) { + return new (speciesConstructor(original))(length); +}; + +/***/ }), +/* 99 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(2); +var isArray = __w_pdfjs_require__(100); +var SPECIES = __w_pdfjs_require__(1)('species'); +module.exports = function (original) { + var C; + if (isArray(original)) { + C = original.constructor; + if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; + if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } + return C === undefined ? Array : C; +}; + +/***/ }), +/* 100 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var cof = __w_pdfjs_require__(13); +module.exports = Array.isArray || function isArray(arg) { + return cof(arg) == 'Array'; +}; + +/***/ }), +/* 101 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var getKeys = __w_pdfjs_require__(22); +var gOPS = __w_pdfjs_require__(102); +var pIE = __w_pdfjs_require__(38); +var toObject = __w_pdfjs_require__(33); +var IObject = __w_pdfjs_require__(28); +var $assign = Object.assign; +module.exports = !$assign || __w_pdfjs_require__(12)(function () { + var A = {}; + var B = {}; + var S = Symbol(); + var K = 'abcdefghijklmnopqrst'; + A[S] = 7; + K.split('').forEach(function (k) { + B[k] = k; + }); + return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; +}) ? function assign(target, source) { + var T = toObject(target); + var aLen = arguments.length; + var index = 1; + var getSymbols = gOPS.f; + var isEnum = pIE.f; + while (aLen > index) { + var S = IObject(arguments[index++]); + var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; + } + } + return T; +} : $assign; + +/***/ }), +/* 102 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +exports.f = Object.getOwnPropertySymbols; + +/***/ }), +/* 103 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var redefineAll = __w_pdfjs_require__(36); +var getWeak = __w_pdfjs_require__(37).getWeak; +var anObject = __w_pdfjs_require__(6); +var isObject = __w_pdfjs_require__(2); +var anInstance = __w_pdfjs_require__(34); +var forOf = __w_pdfjs_require__(24); +var createArrayMethod = __w_pdfjs_require__(56); +var $has = __w_pdfjs_require__(7); +var validate = __w_pdfjs_require__(57); +var arrayFind = createArrayMethod(5); +var arrayFindIndex = createArrayMethod(6); +var id = 0; +var uncaughtFrozenStore = function uncaughtFrozenStore(that) { + return that._l || (that._l = new UncaughtFrozenStore()); +}; +var UncaughtFrozenStore = function UncaughtFrozenStore() { + this.a = []; +}; +var findUncaughtFrozen = function findUncaughtFrozen(store, key) { + return arrayFind(store.a, function (it) { + return it[0] === key; + }); +}; +UncaughtFrozenStore.prototype = { + get: function get(key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function has(key) { + return !!findUncaughtFrozen(this, key); + }, + set: function set(key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value;else this.a.push([key, value]); + }, + 'delete': function _delete(key) { + var index = arrayFindIndex(this.a, function (it) { + return it[0] === key; + }); + if (~index) this.a.splice(index, 1); + return !!~index; + } +}; +module.exports = { + getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) { + var C = wrapper(function (that, iterable) { + anInstance(that, C, NAME, '_i'); + that._t = NAME; + that._i = id++; + that._l = undefined; + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + }); + redefineAll(C.prototype, { + 'delete': function _delete(key) { + if (!isObject(key)) return false; + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); + return data && $has(data, this._i) && delete data[this._i]; + }, + has: function has(key) { + if (!isObject(key)) return false; + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); + return data && $has(data, this._i); + } + }); + return C; + }, + def: function def(that, key, value) { + var data = getWeak(anObject(key), true); + if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value; + return that; + }, + ufstore: uncaughtFrozenStore +}; + +/***/ }), +/* 104 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = __w_pdfjs_require__(4); +var $export = __w_pdfjs_require__(3); +var redefine = __w_pdfjs_require__(8); +var redefineAll = __w_pdfjs_require__(36); +var meta = __w_pdfjs_require__(37); +var forOf = __w_pdfjs_require__(24); +var anInstance = __w_pdfjs_require__(34); +var isObject = __w_pdfjs_require__(2); +var fails = __w_pdfjs_require__(12); +var $iterDetect = __w_pdfjs_require__(55); +var setToStringTag = __w_pdfjs_require__(23); +var inheritIfRequired = __w_pdfjs_require__(105); +module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { + var Base = global[NAME]; + var C = Base; + var ADDER = IS_MAP ? 'set' : 'add'; + var proto = C && C.prototype; + var O = {}; + var fixMethod = function fixMethod(KEY) { + var fn = proto[KEY]; + redefine(proto, KEY, KEY == 'delete' ? function (a) { + return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'has' ? function has(a) { + return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'get' ? function get(a) { + return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'add' ? function add(a) { + fn.call(this, a === 0 ? 0 : a); + return this; + } : function set(a, b) { + fn.call(this, a === 0 ? 0 : a, b); + return this; + }); + }; + if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { + new C().entries().next(); + }))) { + C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); + redefineAll(C.prototype, methods); + meta.NEED = true; + } else { + var instance = new C(); + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; + var THROWS_ON_PRIMITIVES = fails(function () { + instance.has(1); + }); + var ACCEPT_ITERABLES = $iterDetect(function (iter) { + new C(iter); + }); + var BUGGY_ZERO = !IS_WEAK && fails(function () { + var $instance = new C(); + var index = 5; + while (index--) { + $instance[ADDER](index, index); + }return !$instance.has(-0); + }); + if (!ACCEPT_ITERABLES) { + C = wrapper(function (target, iterable) { + anInstance(target, C, NAME); + var that = inheritIfRequired(new Base(), target, C); + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + return that; + }); + C.prototype = proto; + proto.constructor = C; + } + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + if (IS_WEAK && proto.clear) delete proto.clear; + } + setToStringTag(C, NAME); + O[NAME] = C; + $export($export.G + $export.W + $export.F * (C != Base), O); + if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); + return C; +}; + +/***/ }), +/* 105 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(2); +var setPrototypeOf = __w_pdfjs_require__(106).set; +module.exports = function (that, target, C) { + var S = target.constructor; + var P; + if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { + setPrototypeOf(that, P); + } + return that; +}; + +/***/ }), +/* 106 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(2); +var anObject = __w_pdfjs_require__(6); +var check = function check(O, proto) { + anObject(O); + if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); +}; +module.exports = { + set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) { + try { + set = __w_pdfjs_require__(9)(Function.call, __w_pdfjs_require__(107).f(Object.prototype, '__proto__').set, 2); + set(test, []); + buggy = !(test instanceof Array); + } catch (e) { + buggy = true; + } + return function setPrototypeOf(O, proto) { + check(O, proto); + if (buggy) O.__proto__ = proto;else set(O, proto); + return O; + }; + }({}, false) : undefined), + check: check +}; + +/***/ }), +/* 107 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var pIE = __w_pdfjs_require__(38); +var createDesc = __w_pdfjs_require__(27); +var toIObject = __w_pdfjs_require__(16); +var toPrimitive = __w_pdfjs_require__(41); +var has = __w_pdfjs_require__(7); +var IE8_DOM_DEFINE = __w_pdfjs_require__(40); +var gOPD = Object.getOwnPropertyDescriptor; +exports.f = __w_pdfjs_require__(11) ? gOPD : function getOwnPropertyDescriptor(O, P) { + O = toIObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) try { + return gOPD(O, P); + } catch (e) {} + if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); +}; + +/***/ }), +/* 108 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(109)('WeakMap'); + +/***/ }), +/* 109 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(3); +module.exports = function (COLLECTION) { + $export($export.S, COLLECTION, { + of: function of() { + var length = arguments.length; + var A = new Array(length); + while (length--) { + A[length] = arguments[length]; + }return new this(A); + } + }); +}; + +/***/ }), +/* 110 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(111)('WeakMap'); + +/***/ }), +/* 111 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(3); +var aFunction = __w_pdfjs_require__(15); +var ctx = __w_pdfjs_require__(9); +var forOf = __w_pdfjs_require__(24); +module.exports = function (COLLECTION) { + $export($export.S, COLLECTION, { + from: function from(source) { + var mapFn = arguments[1]; + var mapping, A, n, cb; + aFunction(this); + mapping = mapFn !== undefined; + if (mapping) aFunction(mapFn); + if (source == undefined) return new this(); + A = []; + if (mapping) { + n = 0; + cb = ctx(mapFn, arguments[2], 2); + forOf(source, false, function (nextItem) { + A.push(cb(nextItem, n++)); + }); + } else { + forOf(source, false, A.push, A); + } + return new this(A); + } + }); +}; + +/***/ }), +/* 112 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(113); +module.exports = __w_pdfjs_require__(5).Object.values; + +/***/ }), +/* 113 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(3); +var $values = __w_pdfjs_require__(114)(false); +$export($export.S, 'Object', { + values: function values(it) { + return $values(it); + } +}); + +/***/ }), +/* 114 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var getKeys = __w_pdfjs_require__(22); +var toIObject = __w_pdfjs_require__(16); +var isEnum = __w_pdfjs_require__(38).f; +module.exports = function (isEntries) { + return function (it) { + var O = toIObject(it); + var keys = getKeys(O); + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) { + if (isEnum.call(O, key = keys[i++])) { + result.push(isEntries ? [key, O[key]] : O[key]); + } + }return result; + }; +}; + +/***/ }), +/* 115 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isReadableStreamSupported = false; +if (typeof ReadableStream !== 'undefined') { + try { + new ReadableStream({ + start: function start(controller) { + controller.close(); + } + }); + isReadableStreamSupported = true; + } catch (e) {} +} +if (isReadableStreamSupported) { + exports.ReadableStream = ReadableStream; +} else { + exports.ReadableStream = __w_pdfjs_require__(116).ReadableStream; +} + +/***/ }), +/* 116 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +(function (e, a) { + for (var i in a) { + e[i] = a[i]; + } +})(exports, function (modules) { + var installedModules = {}; + function __w_pdfjs_require__(moduleId) { + if (installedModules[moduleId]) return installedModules[moduleId].exports; + var module = installedModules[moduleId] = { + i: moduleId, + l: false, + exports: {} + }; + modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); + module.l = true; + return module.exports; + } + __w_pdfjs_require__.m = modules; + __w_pdfjs_require__.c = installedModules; + __w_pdfjs_require__.i = function (value) { + return value; + }; + __w_pdfjs_require__.d = function (exports, name, getter) { + if (!__w_pdfjs_require__.o(exports, name)) { + Object.defineProperty(exports, name, { + configurable: false, + enumerable: true, + get: getter + }); + } + }; + __w_pdfjs_require__.n = function (module) { + var getter = module && module.__esModule ? function getDefault() { + return module['default']; + } : function getModuleExports() { + return module; + }; + __w_pdfjs_require__.d(getter, 'a', getter); + return getter; + }; + __w_pdfjs_require__.o = function (object, property) { + return Object.prototype.hasOwnProperty.call(object, property); + }; + __w_pdfjs_require__.p = ""; + return __w_pdfjs_require__(__w_pdfjs_require__.s = 7); +}([function (module, exports, __w_pdfjs_require__) { + "use strict"; + + var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { + return typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); + } : function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); + }; + var _require = __w_pdfjs_require__(1), + assert = _require.assert; + function IsPropertyKey(argument) { + return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol'; + } + exports.typeIsObject = function (x) { + return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function'; + }; + exports.createDataProperty = function (o, p, v) { + assert(exports.typeIsObject(o)); + Object.defineProperty(o, p, { + value: v, + writable: true, + enumerable: true, + configurable: true + }); + }; + exports.createArrayFromList = function (elements) { + return elements.slice(); + }; + exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) { + new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset); + }; + exports.CreateIterResultObject = function (value, done) { + assert(typeof done === 'boolean'); + var obj = {}; + Object.defineProperty(obj, 'value', { + value: value, + enumerable: true, + writable: true, + configurable: true + }); + Object.defineProperty(obj, 'done', { + value: done, + enumerable: true, + writable: true, + configurable: true + }); + return obj; + }; + exports.IsFiniteNonNegativeNumber = function (v) { + if (Number.isNaN(v)) { + return false; + } + if (v === Infinity) { + return false; + } + if (v < 0) { + return false; + } + return true; + }; + function Call(F, V, args) { + if (typeof F !== 'function') { + throw new TypeError('Argument is not a function'); + } + return Function.prototype.apply.call(F, V, args); + } + exports.InvokeOrNoop = function (O, P, args) { + assert(O !== undefined); + assert(IsPropertyKey(P)); + assert(Array.isArray(args)); + var method = O[P]; + if (method === undefined) { + return undefined; + } + return Call(method, O, args); + }; + exports.PromiseInvokeOrNoop = function (O, P, args) { + assert(O !== undefined); + assert(IsPropertyKey(P)); + assert(Array.isArray(args)); + try { + return Promise.resolve(exports.InvokeOrNoop(O, P, args)); + } catch (returnValueE) { + return Promise.reject(returnValueE); + } + }; + exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) { + assert(O !== undefined); + assert(IsPropertyKey(P)); + assert(Array.isArray(args)); + assert(Array.isArray(argsF)); + var method = void 0; + try { + method = O[P]; + } catch (methodE) { + return Promise.reject(methodE); + } + if (method === undefined) { + return F.apply(null, argsF); + } + try { + return Promise.resolve(Call(method, O, args)); + } catch (e) { + return Promise.reject(e); + } + }; + exports.TransferArrayBuffer = function (O) { + return O.slice(); + }; + exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) { + highWaterMark = Number(highWaterMark); + if (Number.isNaN(highWaterMark) || highWaterMark < 0) { + throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN'); + } + return highWaterMark; + }; + exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) { + if (size !== undefined && typeof size !== 'function') { + throw new TypeError('size property of a queuing strategy must be a function'); + } + highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark); + return { + size: size, + highWaterMark: highWaterMark + }; + }; +}, function (module, exports, __w_pdfjs_require__) { + "use strict"; + + function rethrowAssertionErrorRejection(e) { + if (e && e.constructor === AssertionError) { + setTimeout(function () { + throw e; + }, 0); + } + } + function AssertionError(message) { + this.name = 'AssertionError'; + this.message = message || ''; + this.stack = new Error().stack; + } + AssertionError.prototype = Object.create(Error.prototype); + AssertionError.prototype.constructor = AssertionError; + function assert(value, message) { + if (!value) { + throw new AssertionError(message); + } + } + module.exports = { + rethrowAssertionErrorRejection: rethrowAssertionErrorRejection, + AssertionError: AssertionError, + assert: assert + }; +}, function (module, exports, __w_pdfjs_require__) { + "use strict"; + + var _createClass = function () { + 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); + } + } + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var _require = __w_pdfjs_require__(0), + InvokeOrNoop = _require.InvokeOrNoop, + PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, + ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, + typeIsObject = _require.typeIsObject; + var _require2 = __w_pdfjs_require__(1), + assert = _require2.assert, + rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection; + var _require3 = __w_pdfjs_require__(3), + DequeueValue = _require3.DequeueValue, + EnqueueValueWithSize = _require3.EnqueueValueWithSize, + PeekQueueValue = _require3.PeekQueueValue, + ResetQueue = _require3.ResetQueue; + var WritableStream = function () { + function WritableStream() { + var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + size = _ref.size, + _ref$highWaterMark = _ref.highWaterMark, + highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark; + _classCallCheck(this, WritableStream); + this._state = 'writable'; + this._storedError = undefined; + this._writer = undefined; + this._writableStreamController = undefined; + this._writeRequests = []; + this._inFlightWriteRequest = undefined; + this._closeRequest = undefined; + this._inFlightCloseRequest = undefined; + this._pendingAbortRequest = undefined; + this._backpressure = false; + var type = underlyingSink.type; + if (type !== undefined) { + throw new RangeError('Invalid type is specified'); + } + this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark); + this._writableStreamController.__startSteps(); + } + _createClass(WritableStream, [{ + key: 'abort', + value: function abort(reason) { + if (IsWritableStream(this) === false) { + return Promise.reject(streamBrandCheckException('abort')); + } + if (IsWritableStreamLocked(this) === true) { + return Promise.reject(new TypeError('Cannot abort a stream that already has a writer')); + } + return WritableStreamAbort(this, reason); + } + }, { + key: 'getWriter', + value: function getWriter() { + if (IsWritableStream(this) === false) { + throw streamBrandCheckException('getWriter'); + } + return AcquireWritableStreamDefaultWriter(this); + } + }, { + key: 'locked', + get: function get() { + if (IsWritableStream(this) === false) { + throw streamBrandCheckException('locked'); + } + return IsWritableStreamLocked(this); } + }]); + return WritableStream; + }(); + module.exports = { + AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter, + IsWritableStream: IsWritableStream, + IsWritableStreamLocked: IsWritableStreamLocked, + WritableStream: WritableStream, + WritableStreamAbort: WritableStreamAbort, + WritableStreamDefaultControllerError: WritableStreamDefaultControllerError, + WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation, + WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease, + WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite, + WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight + }; + function AcquireWritableStreamDefaultWriter(stream) { + return new WritableStreamDefaultWriter(stream); + } + function IsWritableStream(x) { + if (!typeIsObject(x)) { + return false; } - function clear() { - this._scheme = ''; - this._schemeData = ''; - this._username = ''; - this._password = null; - this._host = ''; - this._port = ''; - this._path = []; - this._query = ''; - this._fragment = ''; - this._isInvalid = false; - this._isRelative = false; + if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) { + return false; + } + return true; + } + function IsWritableStreamLocked(stream) { + assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams'); + if (stream._writer === undefined) { + return false; + } + return true; + } + function WritableStreamAbort(stream, reason) { + var state = stream._state; + if (state === 'closed') { + return Promise.resolve(undefined); + } + if (state === 'errored') { + return Promise.reject(stream._storedError); + } + var error = new TypeError('Requested to abort'); + if (stream._pendingAbortRequest !== undefined) { + return Promise.reject(error); + } + assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring'); + var wasAlreadyErroring = false; + if (state === 'erroring') { + wasAlreadyErroring = true; + reason = undefined; + } + var promise = new Promise(function (resolve, reject) { + stream._pendingAbortRequest = { + _resolve: resolve, + _reject: reject, + _reason: reason, + _wasAlreadyErroring: wasAlreadyErroring + }; + }); + if (wasAlreadyErroring === false) { + WritableStreamStartErroring(stream, error); + } + return promise; + } + function WritableStreamAddWriteRequest(stream) { + assert(IsWritableStreamLocked(stream) === true); + assert(stream._state === 'writable'); + var promise = new Promise(function (resolve, reject) { + var writeRequest = { + _resolve: resolve, + _reject: reject + }; + stream._writeRequests.push(writeRequest); + }); + return promise; + } + function WritableStreamDealWithRejection(stream, error) { + var state = stream._state; + if (state === 'writable') { + WritableStreamStartErroring(stream, error); + return; + } + assert(state === 'erroring'); + WritableStreamFinishErroring(stream); + } + function WritableStreamStartErroring(stream, reason) { + assert(stream._storedError === undefined, 'stream._storedError === undefined'); + assert(stream._state === 'writable', 'state must be writable'); + var controller = stream._writableStreamController; + assert(controller !== undefined, 'controller must not be undefined'); + stream._state = 'erroring'; + stream._storedError = reason; + var writer = stream._writer; + if (writer !== undefined) { + WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason); + } + if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) { + WritableStreamFinishErroring(stream); + } + } + function WritableStreamFinishErroring(stream) { + assert(stream._state === 'erroring', 'stream._state === erroring'); + assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false'); + stream._state = 'errored'; + stream._writableStreamController.__errorSteps(); + var storedError = stream._storedError; + for (var i = 0; i < stream._writeRequests.length; i++) { + var writeRequest = stream._writeRequests[i]; + writeRequest._reject(storedError); + } + stream._writeRequests = []; + if (stream._pendingAbortRequest === undefined) { + WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + return; + } + var abortRequest = stream._pendingAbortRequest; + stream._pendingAbortRequest = undefined; + if (abortRequest._wasAlreadyErroring === true) { + abortRequest._reject(storedError); + WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + return; + } + var promise = stream._writableStreamController.__abortSteps(abortRequest._reason); + promise.then(function () { + abortRequest._resolve(); + WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + }, function (reason) { + abortRequest._reject(reason); + WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + }); + } + function WritableStreamFinishInFlightWrite(stream) { + assert(stream._inFlightWriteRequest !== undefined); + stream._inFlightWriteRequest._resolve(undefined); + stream._inFlightWriteRequest = undefined; + } + function WritableStreamFinishInFlightWriteWithError(stream, error) { + assert(stream._inFlightWriteRequest !== undefined); + stream._inFlightWriteRequest._reject(error); + stream._inFlightWriteRequest = undefined; + assert(stream._state === 'writable' || stream._state === 'erroring'); + WritableStreamDealWithRejection(stream, error); + } + function WritableStreamFinishInFlightClose(stream) { + assert(stream._inFlightCloseRequest !== undefined); + stream._inFlightCloseRequest._resolve(undefined); + stream._inFlightCloseRequest = undefined; + var state = stream._state; + assert(state === 'writable' || state === 'erroring'); + if (state === 'erroring') { + stream._storedError = undefined; + if (stream._pendingAbortRequest !== undefined) { + stream._pendingAbortRequest._resolve(); + stream._pendingAbortRequest = undefined; + } + } + stream._state = 'closed'; + var writer = stream._writer; + if (writer !== undefined) { + defaultWriterClosedPromiseResolve(writer); + } + assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined'); + assert(stream._storedError === undefined, 'stream._storedError === undefined'); + } + function WritableStreamFinishInFlightCloseWithError(stream, error) { + assert(stream._inFlightCloseRequest !== undefined); + stream._inFlightCloseRequest._reject(error); + stream._inFlightCloseRequest = undefined; + assert(stream._state === 'writable' || stream._state === 'erroring'); + if (stream._pendingAbortRequest !== undefined) { + stream._pendingAbortRequest._reject(error); + stream._pendingAbortRequest = undefined; + } + WritableStreamDealWithRejection(stream, error); + } + function WritableStreamCloseQueuedOrInFlight(stream) { + if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) { + return false; + } + return true; + } + function WritableStreamHasOperationMarkedInFlight(stream) { + if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) { + return false; + } + return true; + } + function WritableStreamMarkCloseRequestInFlight(stream) { + assert(stream._inFlightCloseRequest === undefined); + assert(stream._closeRequest !== undefined); + stream._inFlightCloseRequest = stream._closeRequest; + stream._closeRequest = undefined; + } + function WritableStreamMarkFirstWriteRequestInFlight(stream) { + assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request'); + assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty'); + stream._inFlightWriteRequest = stream._writeRequests.shift(); + } + function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) { + assert(stream._state === 'errored', '_stream_.[[state]] is `"errored"`'); + if (stream._closeRequest !== undefined) { + assert(stream._inFlightCloseRequest === undefined); + stream._closeRequest._reject(stream._storedError); + stream._closeRequest = undefined; } - function JURL(url, base) { - if (base !== undefined && !(base instanceof JURL)) { - base = new JURL(String(base)); + var writer = stream._writer; + if (writer !== undefined) { + defaultWriterClosedPromiseReject(writer, stream._storedError); + writer._closedPromise.catch(function () {}); + } + } + function WritableStreamUpdateBackpressure(stream, backpressure) { + assert(stream._state === 'writable'); + assert(WritableStreamCloseQueuedOrInFlight(stream) === false); + var writer = stream._writer; + if (writer !== undefined && backpressure !== stream._backpressure) { + if (backpressure === true) { + defaultWriterReadyPromiseReset(writer); + } else { + assert(backpressure === false); + defaultWriterReadyPromiseResolve(writer); } - this._url = url; - clear.call(this); - var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, ''); - parse.call(this, input, null, base); } - JURL.prototype = { - toString: function toString() { - return this.href; - }, - - get href() { - if (this._isInvalid) { - return this._url; + stream._backpressure = backpressure; + } + var WritableStreamDefaultWriter = function () { + function WritableStreamDefaultWriter(stream) { + _classCallCheck(this, WritableStreamDefaultWriter); + if (IsWritableStream(stream) === false) { + throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance'); + } + if (IsWritableStreamLocked(stream) === true) { + throw new TypeError('This stream has already been locked for exclusive writing by another writer'); + } + this._ownerWritableStream = stream; + stream._writer = this; + var state = stream._state; + if (state === 'writable') { + if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) { + defaultWriterReadyPromiseInitialize(this); + } else { + defaultWriterReadyPromiseInitializeAsResolved(this); } - var authority = ''; - if (this._username !== '' || this._password !== null) { - authority = this._username + (this._password !== null ? ':' + this._password : '') + '@'; + defaultWriterClosedPromiseInitialize(this); + } else if (state === 'erroring') { + defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError); + this._readyPromise.catch(function () {}); + defaultWriterClosedPromiseInitialize(this); + } else if (state === 'closed') { + defaultWriterReadyPromiseInitializeAsResolved(this); + defaultWriterClosedPromiseInitializeAsResolved(this); + } else { + assert(state === 'errored', 'state must be errored'); + var storedError = stream._storedError; + defaultWriterReadyPromiseInitializeAsRejected(this, storedError); + this._readyPromise.catch(function () {}); + defaultWriterClosedPromiseInitializeAsRejected(this, storedError); + this._closedPromise.catch(function () {}); + } + } + _createClass(WritableStreamDefaultWriter, [{ + key: 'abort', + value: function abort(reason) { + if (IsWritableStreamDefaultWriter(this) === false) { + return Promise.reject(defaultWriterBrandCheckException('abort')); } - return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment; - }, - set href(value) { - clear.call(this); - parse.call(this, value); - }, - get protocol() { - return this._scheme + ':'; - }, - set protocol(value) { - if (this._isInvalid) { - return; + if (this._ownerWritableStream === undefined) { + return Promise.reject(defaultWriterLockException('abort')); } - parse.call(this, value + ':', 'scheme start'); - }, - get host() { - return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host; - }, - set host(value) { - if (this._isInvalid || !this._isRelative) { - return; + return WritableStreamDefaultWriterAbort(this, reason); + } + }, { + key: 'close', + value: function close() { + if (IsWritableStreamDefaultWriter(this) === false) { + return Promise.reject(defaultWriterBrandCheckException('close')); } - parse.call(this, value, 'host'); - }, - get hostname() { - return this._host; - }, - set hostname(value) { - if (this._isInvalid || !this._isRelative) { - return; + var stream = this._ownerWritableStream; + if (stream === undefined) { + return Promise.reject(defaultWriterLockException('close')); } - parse.call(this, value, 'hostname'); - }, - get port() { - return this._port; - }, - set port(value) { - if (this._isInvalid || !this._isRelative) { - return; + if (WritableStreamCloseQueuedOrInFlight(stream) === true) { + return Promise.reject(new TypeError('cannot close an already-closing stream')); } - parse.call(this, value, 'port'); - }, - get pathname() { - return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData; - }, - set pathname(value) { - if (this._isInvalid || !this._isRelative) { - return; + return WritableStreamDefaultWriterClose(this); + } + }, { + key: 'releaseLock', + value: function releaseLock() { + if (IsWritableStreamDefaultWriter(this) === false) { + throw defaultWriterBrandCheckException('releaseLock'); } - this._path = []; - parse.call(this, value, 'relative path start'); - }, - get search() { - return this._isInvalid || !this._query || this._query === '?' ? '' : this._query; - }, - set search(value) { - if (this._isInvalid || !this._isRelative) { + var stream = this._ownerWritableStream; + if (stream === undefined) { return; } - this._query = '?'; - if (value[0] === '?') { - value = value.slice(1); + assert(stream._writer !== undefined); + WritableStreamDefaultWriterRelease(this); + } + }, { + key: 'write', + value: function write(chunk) { + if (IsWritableStreamDefaultWriter(this) === false) { + return Promise.reject(defaultWriterBrandCheckException('write')); } - parse.call(this, value, 'query'); - }, - get hash() { - return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment; - }, - set hash(value) { - if (this._isInvalid) { - return; + if (this._ownerWritableStream === undefined) { + return Promise.reject(defaultWriterLockException('write to')); } - this._fragment = '#'; - if (value[0] === '#') { - value = value.slice(1); + return WritableStreamDefaultWriterWrite(this, chunk); + } + }, { + key: 'closed', + get: function get() { + if (IsWritableStreamDefaultWriter(this) === false) { + return Promise.reject(defaultWriterBrandCheckException('closed')); } - parse.call(this, value, 'fragment'); - }, - get origin() { - var host; - if (this._isInvalid || !this._scheme) { - return ''; + return this._closedPromise; + } + }, { + key: 'desiredSize', + get: function get() { + if (IsWritableStreamDefaultWriter(this) === false) { + throw defaultWriterBrandCheckException('desiredSize'); } - switch (this._scheme) { - case 'data': - case 'file': - case 'javascript': - case 'mailto': - return 'null'; - case 'blob': - try { - return new JURL(this._schemeData).origin || 'null'; - } catch (_) {} - return 'null'; + if (this._ownerWritableStream === undefined) { + throw defaultWriterLockException('desiredSize'); } - host = this.host; - if (!host) { - return ''; + return WritableStreamDefaultWriterGetDesiredSize(this); + } + }, { + key: 'ready', + get: function get() { + if (IsWritableStreamDefaultWriter(this) === false) { + return Promise.reject(defaultWriterBrandCheckException('ready')); } - return this._scheme + '://' + host; + return this._readyPromise; } - }; - var OriginalURL = globalScope.URL; - if (OriginalURL) { - JURL.createObjectURL = function (blob) { - return OriginalURL.createObjectURL.apply(OriginalURL, arguments); - }; - JURL.revokeObjectURL = function (url) { - OriginalURL.revokeObjectURL(url); + }]); + return WritableStreamDefaultWriter; + }(); + function IsWritableStreamDefaultWriter(x) { + if (!typeIsObject(x)) { + return false; + } + if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) { + return false; + } + return true; + } + function WritableStreamDefaultWriterAbort(writer, reason) { + var stream = writer._ownerWritableStream; + assert(stream !== undefined); + return WritableStreamAbort(stream, reason); + } + function WritableStreamDefaultWriterClose(writer) { + var stream = writer._ownerWritableStream; + assert(stream !== undefined); + var state = stream._state; + if (state === 'closed' || state === 'errored') { + return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed')); + } + assert(state === 'writable' || state === 'erroring'); + assert(WritableStreamCloseQueuedOrInFlight(stream) === false); + var promise = new Promise(function (resolve, reject) { + var closeRequest = { + _resolve: resolve, + _reject: reject }; + stream._closeRequest = closeRequest; + }); + if (stream._backpressure === true && state === 'writable') { + defaultWriterReadyPromiseResolve(writer); } - globalScope.URL = JURL; - })(); - (function checkObjectValues() { - if (Object.values) { - return; + WritableStreamDefaultControllerClose(stream._writableStreamController); + return promise; + } + function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) { + var stream = writer._ownerWritableStream; + assert(stream !== undefined); + var state = stream._state; + if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { + return Promise.resolve(); } - Object.values = __w_pdfjs_require__(116); - })(); -} - -/***/ }), -/* 66 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(67); -module.exports = __w_pdfjs_require__(5).String.includes; - -/***/ }), -/* 67 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(3); -var context = __w_pdfjs_require__(68); -var INCLUDES = 'includes'; -$export($export.P + $export.F * __w_pdfjs_require__(70)(INCLUDES), 'String', { - includes: function includes(searchString) { - return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); + if (state === 'errored') { + return Promise.reject(stream._storedError); + } + assert(state === 'writable' || state === 'erroring'); + return WritableStreamDefaultWriterClose(writer); } -}); - -/***/ }), -/* 68 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isRegExp = __w_pdfjs_require__(69); -var defined = __w_pdfjs_require__(21); -module.exports = function (that, searchString, NAME) { - if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); - return String(defined(that)); -}; - -/***/ }), -/* 69 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(2); -var cof = __w_pdfjs_require__(14); -var MATCH = __w_pdfjs_require__(1)('match'); -module.exports = function (it) { - var isRegExp; - return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); -}; - -/***/ }), -/* 70 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var MATCH = __w_pdfjs_require__(1)('match'); -module.exports = function (KEY) { - var re = /./; - try { - '/./'[KEY](re); - } catch (e) { - try { - re[MATCH] = false; - return !'/./'[KEY](re); - } catch (f) {} + function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) { + if (writer._closedPromiseState === 'pending') { + defaultWriterClosedPromiseReject(writer, error); + } else { + defaultWriterClosedPromiseResetToRejected(writer, error); + } + writer._closedPromise.catch(function () {}); } - return true; -}; - -/***/ }), -/* 71 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(72); -module.exports = __w_pdfjs_require__(5).Array.includes; - -/***/ }), -/* 72 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(3); -var $includes = __w_pdfjs_require__(44)(true); -$export($export.P, 'Array', { - includes: function includes(el) { - return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) { + if (writer._readyPromiseState === 'pending') { + defaultWriterReadyPromiseReject(writer, error); + } else { + defaultWriterReadyPromiseResetToRejected(writer, error); + } + writer._readyPromise.catch(function () {}); } -}); -__w_pdfjs_require__(45)('includes'); - -/***/ }), -/* 73 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toInteger = __w_pdfjs_require__(30); -var max = Math.max; -var min = Math.min; -module.exports = function (index, length) { - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); -}; - -/***/ }), -/* 74 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(75); -module.exports = __w_pdfjs_require__(5).Math.log2; - -/***/ }), -/* 75 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(3); -$export($export.S, 'Math', { - log2: function log2(x) { - return Math.log(x) / Math.LN2; + function WritableStreamDefaultWriterGetDesiredSize(writer) { + var stream = writer._ownerWritableStream; + var state = stream._state; + if (state === 'errored' || state === 'erroring') { + return null; + } + if (state === 'closed') { + return 0; + } + return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController); + } + function WritableStreamDefaultWriterRelease(writer) { + var stream = writer._ownerWritableStream; + assert(stream !== undefined); + assert(stream._writer === writer); + var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\'s closedness'); + WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError); + WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError); + stream._writer = undefined; + writer._ownerWritableStream = undefined; + } + function WritableStreamDefaultWriterWrite(writer, chunk) { + var stream = writer._ownerWritableStream; + assert(stream !== undefined); + var controller = stream._writableStreamController; + var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk); + if (stream !== writer._ownerWritableStream) { + return Promise.reject(defaultWriterLockException('write to')); + } + var state = stream._state; + if (state === 'errored') { + return Promise.reject(stream._storedError); + } + if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { + return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to')); + } + if (state === 'erroring') { + return Promise.reject(stream._storedError); + } + assert(state === 'writable'); + var promise = WritableStreamAddWriteRequest(stream); + WritableStreamDefaultControllerWrite(controller, chunk, chunkSize); + return promise; + } + var WritableStreamDefaultController = function () { + function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) { + _classCallCheck(this, WritableStreamDefaultController); + if (IsWritableStream(stream) === false) { + throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance'); + } + if (stream._writableStreamController !== undefined) { + throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor'); + } + this._controlledWritableStream = stream; + this._underlyingSink = underlyingSink; + this._queue = undefined; + this._queueTotalSize = undefined; + ResetQueue(this); + this._started = false; + var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); + this._strategySize = normalizedStrategy.size; + this._strategyHWM = normalizedStrategy.highWaterMark; + var backpressure = WritableStreamDefaultControllerGetBackpressure(this); + WritableStreamUpdateBackpressure(stream, backpressure); + } + _createClass(WritableStreamDefaultController, [{ + key: 'error', + value: function error(e) { + if (IsWritableStreamDefaultController(this) === false) { + throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController'); + } + var state = this._controlledWritableStream._state; + if (state !== 'writable') { + return; + } + WritableStreamDefaultControllerError(this, e); + } + }, { + key: '__abortSteps', + value: function __abortSteps(reason) { + return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]); + } + }, { + key: '__errorSteps', + value: function __errorSteps() { + ResetQueue(this); + } + }, { + key: '__startSteps', + value: function __startSteps() { + var _this = this; + var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]); + var stream = this._controlledWritableStream; + Promise.resolve(startResult).then(function () { + assert(stream._state === 'writable' || stream._state === 'erroring'); + _this._started = true; + WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this); + }, function (r) { + assert(stream._state === 'writable' || stream._state === 'erroring'); + _this._started = true; + WritableStreamDealWithRejection(stream, r); + }).catch(rethrowAssertionErrorRejection); + } + }]); + return WritableStreamDefaultController; + }(); + function WritableStreamDefaultControllerClose(controller) { + EnqueueValueWithSize(controller, 'close', 0); + WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); } -}); - -/***/ }), -/* 76 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(77); -module.exports = __w_pdfjs_require__(5).Number.isNaN; - -/***/ }), -/* 77 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(3); -$export($export.S, 'Number', { - isNaN: function isNaN(number) { - return number != number; + function WritableStreamDefaultControllerGetChunkSize(controller, chunk) { + var strategySize = controller._strategySize; + if (strategySize === undefined) { + return 1; + } + try { + return strategySize(chunk); + } catch (chunkSizeE) { + WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); + return 1; + } } -}); - -/***/ }), -/* 78 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(79); -module.exports = __w_pdfjs_require__(5).Number.isInteger; - -/***/ }), -/* 79 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(3); -$export($export.S, 'Number', { isInteger: __w_pdfjs_require__(80) }); - -/***/ }), -/* 80 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(2); -var floor = Math.floor; -module.exports = function isInteger(it) { - return !isObject(it) && isFinite(it) && floor(it) === it; -}; - -/***/ }), -/* 81 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(46); -__w_pdfjs_require__(82); -__w_pdfjs_require__(51); -__w_pdfjs_require__(91); -__w_pdfjs_require__(98); -__w_pdfjs_require__(99); -module.exports = __w_pdfjs_require__(5).Promise; - -/***/ }), -/* 82 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $at = __w_pdfjs_require__(83)(true); -__w_pdfjs_require__(47)(String, 'String', function (iterated) { - this._t = String(iterated); - this._i = 0; -}, function () { - var O = this._t; - var index = this._i; - var point; - if (index >= O.length) return { - value: undefined, - done: true - }; - point = $at(O, index); - this._i += point.length; - return { - value: point, - done: false - }; -}); - -/***/ }), -/* 83 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toInteger = __w_pdfjs_require__(30); -var defined = __w_pdfjs_require__(21); -module.exports = function (TO_STRING) { - return function (that, pos) { - var s = String(defined(that)); - var i = toInteger(pos); - var l = s.length; - var a, b; - if (i < 0 || i >= l) return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - 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; - }; -}; - -/***/ }), -/* 84 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var create = __w_pdfjs_require__(85); -var descriptor = __w_pdfjs_require__(27); -var setToStringTag = __w_pdfjs_require__(23); -var IteratorPrototype = {}; -__w_pdfjs_require__(11)(IteratorPrototype, __w_pdfjs_require__(1)('iterator'), function () { - return this; -}); -module.exports = function (Constructor, NAME, next) { - Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); - setToStringTag(Constructor, NAME + ' Iterator'); -}; - -/***/ }), -/* 85 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var anObject = __w_pdfjs_require__(6); -var dPs = __w_pdfjs_require__(86); -var enumBugKeys = __w_pdfjs_require__(49); -var IE_PROTO = __w_pdfjs_require__(32)('IE_PROTO'); -var Empty = function Empty() {}; -var PROTOTYPE = 'prototype'; -var _createDict = function createDict() { - var iframe = __w_pdfjs_require__(26)('iframe'); - var i = enumBugKeys.length; - var lt = '<'; - var gt = '>'; - var iframeDocument; - iframe.style.display = 'none'; - __w_pdfjs_require__(50).appendChild(iframe); - iframe.src = 'javascript:'; - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - _createDict = iframeDocument.F; - while (i--) { - delete _createDict[PROTOTYPE][enumBugKeys[i]]; - }return _createDict(); -}; -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - Empty[PROTOTYPE] = anObject(O); - result = new Empty(); - Empty[PROTOTYPE] = null; - result[IE_PROTO] = O; - } else result = _createDict(); - return Properties === undefined ? result : dPs(result, Properties); -}; - -/***/ }), -/* 86 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var dP = __w_pdfjs_require__(16); -var anObject = __w_pdfjs_require__(6); -var getKeys = __w_pdfjs_require__(22); -module.exports = __w_pdfjs_require__(12) ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = getKeys(Properties); - var length = keys.length; - var i = 0; - var P; - while (length > i) { - dP.f(O, P = keys[i++], Properties[P]); - }return O; -}; - -/***/ }), -/* 87 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var has = __w_pdfjs_require__(7); -var toIObject = __w_pdfjs_require__(18); -var arrayIndexOf = __w_pdfjs_require__(44)(false); -var IE_PROTO = __w_pdfjs_require__(32)('IE_PROTO'); -module.exports = function (object, names) { - var O = toIObject(object); - var i = 0; - var result = []; - var key; - for (key in O) { - if (key != IE_PROTO) has(O, key) && result.push(key); - }while (names.length > i) { - if (has(O, key = names[i++])) { - ~arrayIndexOf(result, key) || result.push(key); + function WritableStreamDefaultControllerGetDesiredSize(controller) { + return controller._strategyHWM - controller._queueTotalSize; + } + function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) { + var writeRecord = { chunk: chunk }; + try { + EnqueueValueWithSize(controller, writeRecord, chunkSize); + } catch (enqueueE) { + WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); + return; + } + var stream = controller._controlledWritableStream; + if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') { + var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); + WritableStreamUpdateBackpressure(stream, backpressure); } - }return result; -}; - -/***/ }), -/* 88 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var has = __w_pdfjs_require__(7); -var toObject = __w_pdfjs_require__(33); -var IE_PROTO = __w_pdfjs_require__(32)('IE_PROTO'); -var ObjectProto = Object.prototype; -module.exports = Object.getPrototypeOf || function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; + WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); } - return O instanceof Object ? ObjectProto : null; -}; - -/***/ }), -/* 89 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var addToUnscopables = __w_pdfjs_require__(45); -var step = __w_pdfjs_require__(90); -var Iterators = __w_pdfjs_require__(19); -var toIObject = __w_pdfjs_require__(18); -module.exports = __w_pdfjs_require__(47)(Array, 'Array', function (iterated, kind) { - this._t = toIObject(iterated); - this._i = 0; - this._k = kind; -}, function () { - var O = this._t; - var kind = this._k; - var index = this._i++; - if (!O || index >= O.length) { - this._t = undefined; - return step(1); + function IsWritableStreamDefaultController(x) { + if (!typeIsObject(x)) { + return false; + } + if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) { + return false; + } + return true; } - if (kind == 'keys') return step(0, index); - if (kind == 'values') return step(0, O[index]); - return step(0, [index, O[index]]); -}, 'values'); -Iterators.Arguments = Iterators.Array; -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - -/***/ }), -/* 90 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - + function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) { + var stream = controller._controlledWritableStream; + if (controller._started === false) { + return; + } + if (stream._inFlightWriteRequest !== undefined) { + return; + } + var state = stream._state; + if (state === 'closed' || state === 'errored') { + return; + } + if (state === 'erroring') { + WritableStreamFinishErroring(stream); + return; + } + if (controller._queue.length === 0) { + return; + } + var writeRecord = PeekQueueValue(controller); + if (writeRecord === 'close') { + WritableStreamDefaultControllerProcessClose(controller); + } else { + WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk); + } + } + function WritableStreamDefaultControllerErrorIfNeeded(controller, error) { + if (controller._controlledWritableStream._state === 'writable') { + WritableStreamDefaultControllerError(controller, error); + } + } + function WritableStreamDefaultControllerProcessClose(controller) { + var stream = controller._controlledWritableStream; + WritableStreamMarkCloseRequestInFlight(stream); + DequeueValue(controller); + assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued'); + var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []); + sinkClosePromise.then(function () { + WritableStreamFinishInFlightClose(stream); + }, function (reason) { + WritableStreamFinishInFlightCloseWithError(stream, reason); + }).catch(rethrowAssertionErrorRejection); + } + function WritableStreamDefaultControllerProcessWrite(controller, chunk) { + var stream = controller._controlledWritableStream; + WritableStreamMarkFirstWriteRequestInFlight(stream); + var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]); + sinkWritePromise.then(function () { + WritableStreamFinishInFlightWrite(stream); + var state = stream._state; + assert(state === 'writable' || state === 'erroring'); + DequeueValue(controller); + if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') { + var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); + WritableStreamUpdateBackpressure(stream, backpressure); + } + WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); + }, function (reason) { + WritableStreamFinishInFlightWriteWithError(stream, reason); + }).catch(rethrowAssertionErrorRejection); + } + function WritableStreamDefaultControllerGetBackpressure(controller) { + var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller); + return desiredSize <= 0; + } + function WritableStreamDefaultControllerError(controller, error) { + var stream = controller._controlledWritableStream; + assert(stream._state === 'writable'); + WritableStreamStartErroring(stream, error); + } + function streamBrandCheckException(name) { + return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream'); + } + function defaultWriterBrandCheckException(name) { + return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter'); + } + function defaultWriterLockException(name) { + return new TypeError('Cannot ' + name + ' a stream using a released writer'); + } + function defaultWriterClosedPromiseInitialize(writer) { + writer._closedPromise = new Promise(function (resolve, reject) { + writer._closedPromise_resolve = resolve; + writer._closedPromise_reject = reject; + writer._closedPromiseState = 'pending'; + }); + } + function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) { + writer._closedPromise = Promise.reject(reason); + writer._closedPromise_resolve = undefined; + writer._closedPromise_reject = undefined; + writer._closedPromiseState = 'rejected'; + } + function defaultWriterClosedPromiseInitializeAsResolved(writer) { + writer._closedPromise = Promise.resolve(undefined); + writer._closedPromise_resolve = undefined; + writer._closedPromise_reject = undefined; + writer._closedPromiseState = 'resolved'; + } + function defaultWriterClosedPromiseReject(writer, reason) { + assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); + assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); + assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); + writer._closedPromise_reject(reason); + writer._closedPromise_resolve = undefined; + writer._closedPromise_reject = undefined; + writer._closedPromiseState = 'rejected'; + } + function defaultWriterClosedPromiseResetToRejected(writer, reason) { + assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined'); + assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined'); + assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending'); + writer._closedPromise = Promise.reject(reason); + writer._closedPromiseState = 'rejected'; + } + function defaultWriterClosedPromiseResolve(writer) { + assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); + assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); + assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); + writer._closedPromise_resolve(undefined); + writer._closedPromise_resolve = undefined; + writer._closedPromise_reject = undefined; + writer._closedPromiseState = 'resolved'; + } + function defaultWriterReadyPromiseInitialize(writer) { + writer._readyPromise = new Promise(function (resolve, reject) { + writer._readyPromise_resolve = resolve; + writer._readyPromise_reject = reject; + }); + writer._readyPromiseState = 'pending'; + } + function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) { + writer._readyPromise = Promise.reject(reason); + writer._readyPromise_resolve = undefined; + writer._readyPromise_reject = undefined; + writer._readyPromiseState = 'rejected'; + } + function defaultWriterReadyPromiseInitializeAsResolved(writer) { + writer._readyPromise = Promise.resolve(undefined); + writer._readyPromise_resolve = undefined; + writer._readyPromise_reject = undefined; + writer._readyPromiseState = 'fulfilled'; + } + function defaultWriterReadyPromiseReject(writer, reason) { + assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); + assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); + writer._readyPromise_reject(reason); + writer._readyPromise_resolve = undefined; + writer._readyPromise_reject = undefined; + writer._readyPromiseState = 'rejected'; + } + function defaultWriterReadyPromiseReset(writer) { + assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); + assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); + writer._readyPromise = new Promise(function (resolve, reject) { + writer._readyPromise_resolve = resolve; + writer._readyPromise_reject = reject; + }); + writer._readyPromiseState = 'pending'; + } + function defaultWriterReadyPromiseResetToRejected(writer, reason) { + assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); + assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); + writer._readyPromise = Promise.reject(reason); + writer._readyPromiseState = 'rejected'; + } + function defaultWriterReadyPromiseResolve(writer) { + assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); + assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); + writer._readyPromise_resolve(undefined); + writer._readyPromise_resolve = undefined; + writer._readyPromise_reject = undefined; + writer._readyPromiseState = 'fulfilled'; + } +}, function (module, exports, __w_pdfjs_require__) { + "use strict"; -module.exports = function (done, value) { - return { - value: value, - done: !!done + var _require = __w_pdfjs_require__(0), + IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber; + var _require2 = __w_pdfjs_require__(1), + assert = _require2.assert; + exports.DequeueValue = function (container) { + assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); + assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.'); + var pair = container._queue.shift(); + container._queueTotalSize -= pair.size; + if (container._queueTotalSize < 0) { + container._queueTotalSize = 0; + } + return pair.value; }; -}; - -/***/ }), -/* 91 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - + exports.EnqueueValueWithSize = function (container, value, size) { + assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].'); + size = Number(size); + if (!IsFiniteNonNegativeNumber(size)) { + throw new RangeError('Size must be a finite, non-NaN, non-negative number.'); + } + container._queue.push({ + value: value, + size: size + }); + container._queueTotalSize += size; + }; + exports.PeekQueueValue = function (container) { + assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); + assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.'); + var pair = container._queue[0]; + return pair.value; + }; + exports.ResetQueue = function (container) { + assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].'); + container._queue = []; + container._queueTotalSize = 0; + }; +}, function (module, exports, __w_pdfjs_require__) { + "use strict"; -var LIBRARY = __w_pdfjs_require__(48); -var global = __w_pdfjs_require__(4); -var ctx = __w_pdfjs_require__(9); -var classof = __w_pdfjs_require__(31); -var $export = __w_pdfjs_require__(3); -var isObject = __w_pdfjs_require__(2); -var aFunction = __w_pdfjs_require__(17); -var anInstance = __w_pdfjs_require__(34); -var forOf = __w_pdfjs_require__(24); -var speciesConstructor = __w_pdfjs_require__(52); -var task = __w_pdfjs_require__(53).set; -var microtask = __w_pdfjs_require__(96)(); -var newPromiseCapabilityModule = __w_pdfjs_require__(35); -var perform = __w_pdfjs_require__(54); -var promiseResolve = __w_pdfjs_require__(55); -var PROMISE = 'Promise'; -var TypeError = global.TypeError; -var process = global.process; -var $Promise = global[PROMISE]; -var isNode = classof(process) == 'process'; -var empty = function empty() {}; -var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; -var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; -var USE_NATIVE = !!function () { - try { - var promise = $Promise.resolve(1); - var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(1)('species')] = function (exec) { - exec(empty, empty); + var _createClass = function () { + 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); + } + } + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; }; - return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise; - } catch (e) {} -}(); -var isThenable = function isThenable(it) { - var then; - return isObject(it) && typeof (then = it.then) == 'function' ? then : false; -}; -var notify = function notify(promise, isReject) { - if (promise._n) return; - promise._n = true; - var chain = promise._c; - microtask(function () { - var value = promise._v; - var ok = promise._s == 1; - var i = 0; - var run = function run(reaction) { - var handler = ok ? reaction.ok : reaction.fail; - var resolve = reaction.resolve; - var reject = reaction.reject; - var domain = reaction.domain; - var result, then; - try { - if (handler) { - if (!ok) { - if (promise._h == 2) onHandleUnhandled(promise); - promise._h = 1; + }(); + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var _require = __w_pdfjs_require__(0), + ArrayBufferCopy = _require.ArrayBufferCopy, + CreateIterResultObject = _require.CreateIterResultObject, + IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber, + InvokeOrNoop = _require.InvokeOrNoop, + PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, + TransferArrayBuffer = _require.TransferArrayBuffer, + ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, + ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark; + var _require2 = __w_pdfjs_require__(0), + createArrayFromList = _require2.createArrayFromList, + createDataProperty = _require2.createDataProperty, + typeIsObject = _require2.typeIsObject; + var _require3 = __w_pdfjs_require__(1), + assert = _require3.assert, + rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection; + var _require4 = __w_pdfjs_require__(3), + DequeueValue = _require4.DequeueValue, + EnqueueValueWithSize = _require4.EnqueueValueWithSize, + ResetQueue = _require4.ResetQueue; + var _require5 = __w_pdfjs_require__(2), + AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter, + IsWritableStream = _require5.IsWritableStream, + IsWritableStreamLocked = _require5.IsWritableStreamLocked, + WritableStreamAbort = _require5.WritableStreamAbort, + WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation, + WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease, + WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite, + WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight; + var ReadableStream = function () { + function ReadableStream() { + var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + size = _ref.size, + highWaterMark = _ref.highWaterMark; + _classCallCheck(this, ReadableStream); + this._state = 'readable'; + this._reader = undefined; + this._storedError = undefined; + this._disturbed = false; + this._readableStreamController = undefined; + var type = underlyingSource.type; + var typeString = String(type); + if (typeString === 'bytes') { + if (highWaterMark === undefined) { + highWaterMark = 0; + } + this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark); + } else if (type === undefined) { + if (highWaterMark === undefined) { + highWaterMark = 1; + } + this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark); + } else { + throw new RangeError('Invalid type is specified'); + } + } + _createClass(ReadableStream, [{ + key: 'cancel', + value: function cancel(reason) { + if (IsReadableStream(this) === false) { + return Promise.reject(streamBrandCheckException('cancel')); + } + if (IsReadableStreamLocked(this) === true) { + return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader')); + } + return ReadableStreamCancel(this, reason); + } + }, { + key: 'getReader', + value: function getReader() { + var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + mode = _ref2.mode; + if (IsReadableStream(this) === false) { + throw streamBrandCheckException('getReader'); + } + if (mode === undefined) { + return AcquireReadableStreamDefaultReader(this); + } + mode = String(mode); + if (mode === 'byob') { + return AcquireReadableStreamBYOBReader(this); + } + throw new RangeError('Invalid mode is specified'); + } + }, { + key: 'pipeThrough', + value: function pipeThrough(_ref3, options) { + var writable = _ref3.writable, + readable = _ref3.readable; + var promise = this.pipeTo(writable, options); + ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise); + return readable; + } + }, { + key: 'pipeTo', + value: function pipeTo(dest) { + var _this = this; + var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + preventClose = _ref4.preventClose, + preventAbort = _ref4.preventAbort, + preventCancel = _ref4.preventCancel; + if (IsReadableStream(this) === false) { + return Promise.reject(streamBrandCheckException('pipeTo')); + } + if (IsWritableStream(dest) === false) { + return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\'s first argument must be a WritableStream')); + } + preventClose = Boolean(preventClose); + preventAbort = Boolean(preventAbort); + preventCancel = Boolean(preventCancel); + if (IsReadableStreamLocked(this) === true) { + return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream')); + } + if (IsWritableStreamLocked(dest) === true) { + return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream')); + } + var reader = AcquireReadableStreamDefaultReader(this); + var writer = AcquireWritableStreamDefaultWriter(dest); + var shuttingDown = false; + var currentWrite = Promise.resolve(); + return new Promise(function (resolve, reject) { + function pipeLoop() { + currentWrite = Promise.resolve(); + if (shuttingDown === true) { + return Promise.resolve(); + } + return writer._readyPromise.then(function () { + return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) { + var value = _ref5.value, + done = _ref5.done; + if (done === true) { + return; + } + currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(function () {}); + }); + }).then(pipeLoop); + } + isOrBecomesErrored(_this, reader._closedPromise, function (storedError) { + if (preventAbort === false) { + shutdownWithAction(function () { + return WritableStreamAbort(dest, storedError); + }, true, storedError); + } else { + shutdown(true, storedError); + } + }); + isOrBecomesErrored(dest, writer._closedPromise, function (storedError) { + if (preventCancel === false) { + shutdownWithAction(function () { + return ReadableStreamCancel(_this, storedError); + }, true, storedError); + } else { + shutdown(true, storedError); + } + }); + isOrBecomesClosed(_this, reader._closedPromise, function () { + if (preventClose === false) { + shutdownWithAction(function () { + return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); + }); + } else { + shutdown(); + } + }); + if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') { + var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it'); + if (preventCancel === false) { + shutdownWithAction(function () { + return ReadableStreamCancel(_this, destClosed); + }, true, destClosed); + } else { + shutdown(true, destClosed); + } } - if (handler === true) result = value;else { - if (domain) domain.enter(); - result = handler(value); - if (domain) domain.exit(); + pipeLoop().catch(function (err) { + currentWrite = Promise.resolve(); + rethrowAssertionErrorRejection(err); + }); + function waitForWritesToFinish() { + var oldCurrentWrite = currentWrite; + return currentWrite.then(function () { + return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; + }); } - if (result === reaction.promise) { - reject(TypeError('Promise-chain cycle')); - } else if (then = isThenable(result)) { - then.call(result, resolve, reject); - } else resolve(result); - } else reject(value); - } catch (e) { - reject(e); + function isOrBecomesErrored(stream, promise, action) { + if (stream._state === 'errored') { + action(stream._storedError); + } else { + promise.catch(action).catch(rethrowAssertionErrorRejection); + } + } + function isOrBecomesClosed(stream, promise, action) { + if (stream._state === 'closed') { + action(); + } else { + promise.then(action).catch(rethrowAssertionErrorRejection); + } + } + function shutdownWithAction(action, originalIsError, originalError) { + if (shuttingDown === true) { + return; + } + shuttingDown = true; + if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { + waitForWritesToFinish().then(doTheRest); + } else { + doTheRest(); + } + function doTheRest() { + action().then(function () { + return finalize(originalIsError, originalError); + }, function (newError) { + return finalize(true, newError); + }).catch(rethrowAssertionErrorRejection); + } + } + function shutdown(isError, error) { + if (shuttingDown === true) { + return; + } + shuttingDown = true; + if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { + waitForWritesToFinish().then(function () { + return finalize(isError, error); + }).catch(rethrowAssertionErrorRejection); + } else { + finalize(isError, error); + } + } + function finalize(isError, error) { + WritableStreamDefaultWriterRelease(writer); + ReadableStreamReaderGenericRelease(reader); + if (isError) { + reject(error); + } else { + resolve(undefined); + } + } + }); } - }; - while (chain.length > i) { - run(chain[i++]); - }promise._c = []; - promise._n = false; - if (isReject && !promise._h) onUnhandled(promise); - }); -}; -var onUnhandled = function onUnhandled(promise) { - task.call(global, function () { - var value = promise._v; - var unhandled = isUnhandled(promise); - var result, handler, console; - if (unhandled) { - result = perform(function () { - if (isNode) { - process.emit('unhandledRejection', value, promise); - } else if (handler = global.onunhandledrejection) { - handler({ - promise: promise, - reason: value - }); - } else if ((console = global.console) && console.error) { - console.error('Unhandled promise rejection', value); + }, { + key: 'tee', + value: function tee() { + if (IsReadableStream(this) === false) { + throw streamBrandCheckException('tee'); } - }); - promise._h = isNode || isUnhandled(promise) ? 2 : 1; + var branches = ReadableStreamTee(this, false); + return createArrayFromList(branches); + } + }, { + key: 'locked', + get: function get() { + if (IsReadableStream(this) === false) { + throw streamBrandCheckException('locked'); + } + return IsReadableStreamLocked(this); + } + }]); + return ReadableStream; + }(); + module.exports = { + ReadableStream: ReadableStream, + IsReadableStreamDisturbed: IsReadableStreamDisturbed, + ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose, + ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue, + ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError, + ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize + }; + function AcquireReadableStreamBYOBReader(stream) { + return new ReadableStreamBYOBReader(stream); + } + function AcquireReadableStreamDefaultReader(stream) { + return new ReadableStreamDefaultReader(stream); + } + function IsReadableStream(x) { + if (!typeIsObject(x)) { + return false; } - promise._a = undefined; - if (unhandled && result.e) throw result.v; - }); -}; -var isUnhandled = function isUnhandled(promise) { - return promise._h !== 1 && (promise._a || promise._c).length === 0; -}; -var onHandleUnhandled = function onHandleUnhandled(promise) { - task.call(global, function () { - var handler; - if (isNode) { - process.emit('rejectionHandled', promise); - } else if (handler = global.onrejectionhandled) { - handler({ - promise: promise, - reason: promise._v - }); + if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) { + return false; } - }); -}; -var $reject = function $reject(value) { - var promise = this; - if (promise._d) return; - promise._d = true; - promise = promise._w || promise; - promise._v = value; - promise._s = 2; - if (!promise._a) promise._a = promise._c.slice(); - notify(promise, true); -}; -var $resolve = function $resolve(value) { - var promise = this; - var then; - if (promise._d) return; - promise._d = true; - promise = promise._w || promise; - try { - if (promise === value) throw TypeError("Promise can't be resolved itself"); - if (then = isThenable(value)) { - microtask(function () { - var wrapper = { - _w: promise, - _d: false - }; - try { - then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); - } catch (e) { - $reject.call(wrapper, e); + return true; + } + function IsReadableStreamDisturbed(stream) { + assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams'); + return stream._disturbed; + } + function IsReadableStreamLocked(stream) { + assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams'); + if (stream._reader === undefined) { + return false; + } + return true; + } + function ReadableStreamTee(stream, cloneForBranch2) { + assert(IsReadableStream(stream) === true); + assert(typeof cloneForBranch2 === 'boolean'); + var reader = AcquireReadableStreamDefaultReader(stream); + var teeState = { + closedOrErrored: false, + canceled1: false, + canceled2: false, + reason1: undefined, + reason2: undefined + }; + teeState.promise = new Promise(function (resolve) { + teeState._resolve = resolve; + }); + var pull = create_ReadableStreamTeePullFunction(); + pull._reader = reader; + pull._teeState = teeState; + pull._cloneForBranch2 = cloneForBranch2; + var cancel1 = create_ReadableStreamTeeBranch1CancelFunction(); + cancel1._stream = stream; + cancel1._teeState = teeState; + var cancel2 = create_ReadableStreamTeeBranch2CancelFunction(); + cancel2._stream = stream; + cancel2._teeState = teeState; + var underlyingSource1 = Object.create(Object.prototype); + createDataProperty(underlyingSource1, 'pull', pull); + createDataProperty(underlyingSource1, 'cancel', cancel1); + var branch1Stream = new ReadableStream(underlyingSource1); + var underlyingSource2 = Object.create(Object.prototype); + createDataProperty(underlyingSource2, 'pull', pull); + createDataProperty(underlyingSource2, 'cancel', cancel2); + var branch2Stream = new ReadableStream(underlyingSource2); + pull._branch1 = branch1Stream._readableStreamController; + pull._branch2 = branch2Stream._readableStreamController; + reader._closedPromise.catch(function (r) { + if (teeState.closedOrErrored === true) { + return; + } + ReadableStreamDefaultControllerError(pull._branch1, r); + ReadableStreamDefaultControllerError(pull._branch2, r); + teeState.closedOrErrored = true; + }); + return [branch1Stream, branch2Stream]; + } + function create_ReadableStreamTeePullFunction() { + function f() { + var reader = f._reader, + branch1 = f._branch1, + branch2 = f._branch2, + teeState = f._teeState; + return ReadableStreamDefaultReaderRead(reader).then(function (result) { + assert(typeIsObject(result)); + var value = result.value; + var done = result.done; + assert(typeof done === 'boolean'); + if (done === true && teeState.closedOrErrored === false) { + if (teeState.canceled1 === false) { + ReadableStreamDefaultControllerClose(branch1); + } + if (teeState.canceled2 === false) { + ReadableStreamDefaultControllerClose(branch2); + } + teeState.closedOrErrored = true; + } + if (teeState.closedOrErrored === true) { + return; + } + var value1 = value; + var value2 = value; + if (teeState.canceled1 === false) { + ReadableStreamDefaultControllerEnqueue(branch1, value1); + } + if (teeState.canceled2 === false) { + ReadableStreamDefaultControllerEnqueue(branch2, value2); } }); - } else { - promise._v = value; - promise._s = 1; - notify(promise, false); } - } catch (e) { - $reject.call({ - _w: promise, - _d: false - }, e); + return f; } -}; -if (!USE_NATIVE) { - $Promise = function Promise(executor) { - anInstance(this, $Promise, PROMISE, '_h'); - aFunction(executor); - Internal.call(this); - try { - executor(ctx($resolve, this, 1), ctx($reject, this, 1)); - } catch (err) { - $reject.call(this, err); + function create_ReadableStreamTeeBranch1CancelFunction() { + function f(reason) { + var stream = f._stream, + teeState = f._teeState; + teeState.canceled1 = true; + teeState.reason1 = reason; + if (teeState.canceled2 === true) { + var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); + var cancelResult = ReadableStreamCancel(stream, compositeReason); + teeState._resolve(cancelResult); + } + return teeState.promise; } - }; - Internal = function Promise(executor) { - this._c = []; - this._a = undefined; - this._s = 0; - this._d = false; - this._v = undefined; - this._h = 0; - this._n = false; - }; - Internal.prototype = __w_pdfjs_require__(36)($Promise.prototype, { - then: function then(onFulfilled, onRejected) { - var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); - reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; - reaction.fail = typeof onRejected == 'function' && onRejected; - reaction.domain = isNode ? process.domain : undefined; - this._c.push(reaction); - if (this._a) this._a.push(reaction); - if (this._s) notify(this, false); - return reaction.promise; - }, - 'catch': function _catch(onRejected) { - return this.then(undefined, onRejected); + return f; + } + function create_ReadableStreamTeeBranch2CancelFunction() { + function f(reason) { + var stream = f._stream, + teeState = f._teeState; + teeState.canceled2 = true; + teeState.reason2 = reason; + if (teeState.canceled1 === true) { + var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); + var cancelResult = ReadableStreamCancel(stream, compositeReason); + teeState._resolve(cancelResult); + } + return teeState.promise; } - }); - OwnPromiseCapability = function OwnPromiseCapability() { - var promise = new Internal(); - this.promise = promise; - this.resolve = ctx($resolve, promise, 1); - this.reject = ctx($reject, promise, 1); - }; - newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) { - return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); - }; -} -$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise }); -__w_pdfjs_require__(23)($Promise, PROMISE); -__w_pdfjs_require__(97)(PROMISE); -Wrapper = __w_pdfjs_require__(5)[PROMISE]; -$export($export.S + $export.F * !USE_NATIVE, PROMISE, { - reject: function reject(r) { - var capability = newPromiseCapability(this); - var $$reject = capability.reject; - $$reject(r); - return capability.promise; + return f; } -}); -$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { - resolve: function resolve(x) { - return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); + function ReadableStreamAddReadIntoRequest(stream) { + assert(IsReadableStreamBYOBReader(stream._reader) === true); + assert(stream._state === 'readable' || stream._state === 'closed'); + var promise = new Promise(function (resolve, reject) { + var readIntoRequest = { + _resolve: resolve, + _reject: reject + }; + stream._reader._readIntoRequests.push(readIntoRequest); + }); + return promise; } -}); -$export($export.S + $export.F * !(USE_NATIVE && __w_pdfjs_require__(56)(function (iter) { - $Promise.all(iter)['catch'](empty); -})), PROMISE, { - all: function all(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform(function () { - var values = []; - var index = 0; - var remaining = 1; - forOf(iterable, false, function (promise) { - var $index = index++; - var alreadyCalled = false; - values.push(undefined); - remaining++; - C.resolve(promise).then(function (value) { - if (alreadyCalled) return; - alreadyCalled = true; - values[$index] = value; - --remaining || resolve(values); - }, reject); - }); - --remaining || resolve(values); + function ReadableStreamAddReadRequest(stream) { + assert(IsReadableStreamDefaultReader(stream._reader) === true); + assert(stream._state === 'readable'); + var promise = new Promise(function (resolve, reject) { + var readRequest = { + _resolve: resolve, + _reject: reject + }; + stream._reader._readRequests.push(readRequest); }); - if (result.e) reject(result.v); - return capability.promise; - }, - race: function race(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var reject = capability.reject; - var result = perform(function () { - forOf(iterable, false, function (promise) { - C.resolve(promise).then(capability.resolve, reject); - }); + return promise; + } + function ReadableStreamCancel(stream, reason) { + stream._disturbed = true; + if (stream._state === 'closed') { + return Promise.resolve(undefined); + } + if (stream._state === 'errored') { + return Promise.reject(stream._storedError); + } + ReadableStreamClose(stream); + var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason); + return sourceCancelPromise.then(function () { + return undefined; }); - if (result.e) reject(result.v); - return capability.promise; } -}); - -/***/ }), -/* 92 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var anObject = __w_pdfjs_require__(6); -module.exports = function (iterator, fn, value, entries) { - try { - return entries ? fn(anObject(value)[0], value[1]) : fn(value); - } catch (e) { - var ret = iterator['return']; - if (ret !== undefined) anObject(ret.call(iterator)); - throw e; + function ReadableStreamClose(stream) { + assert(stream._state === 'readable'); + stream._state = 'closed'; + var reader = stream._reader; + if (reader === undefined) { + return undefined; + } + if (IsReadableStreamDefaultReader(reader) === true) { + for (var i = 0; i < reader._readRequests.length; i++) { + var _resolve = reader._readRequests[i]._resolve; + _resolve(CreateIterResultObject(undefined, true)); + } + reader._readRequests = []; + } + defaultReaderClosedPromiseResolve(reader); + return undefined; + } + function ReadableStreamError(stream, e) { + assert(IsReadableStream(stream) === true, 'stream must be ReadableStream'); + assert(stream._state === 'readable', 'state must be readable'); + stream._state = 'errored'; + stream._storedError = e; + var reader = stream._reader; + if (reader === undefined) { + return undefined; + } + if (IsReadableStreamDefaultReader(reader) === true) { + for (var i = 0; i < reader._readRequests.length; i++) { + var readRequest = reader._readRequests[i]; + readRequest._reject(e); + } + reader._readRequests = []; + } else { + assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader'); + for (var _i = 0; _i < reader._readIntoRequests.length; _i++) { + var readIntoRequest = reader._readIntoRequests[_i]; + readIntoRequest._reject(e); + } + reader._readIntoRequests = []; + } + defaultReaderClosedPromiseReject(reader, e); + reader._closedPromise.catch(function () {}); + } + function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) { + var reader = stream._reader; + assert(reader._readIntoRequests.length > 0); + var readIntoRequest = reader._readIntoRequests.shift(); + readIntoRequest._resolve(CreateIterResultObject(chunk, done)); + } + function ReadableStreamFulfillReadRequest(stream, chunk, done) { + var reader = stream._reader; + assert(reader._readRequests.length > 0); + var readRequest = reader._readRequests.shift(); + readRequest._resolve(CreateIterResultObject(chunk, done)); + } + function ReadableStreamGetNumReadIntoRequests(stream) { + return stream._reader._readIntoRequests.length; } -}; - -/***/ }), -/* 93 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var Iterators = __w_pdfjs_require__(19); -var ITERATOR = __w_pdfjs_require__(1)('iterator'); -var ArrayProto = Array.prototype; -module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); -}; - -/***/ }), -/* 94 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var classof = __w_pdfjs_require__(31); -var ITERATOR = __w_pdfjs_require__(1)('iterator'); -var Iterators = __w_pdfjs_require__(19); -module.exports = __w_pdfjs_require__(5).getIteratorMethod = function (it) { - if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; -}; - -/***/ }), -/* 95 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (fn, args, that) { - var un = that === undefined; - switch (args.length) { - case 0: - return un ? fn() : fn.call(that); - case 1: - return un ? fn(args[0]) : fn.call(that, args[0]); - case 2: - return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]); - case 3: - return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]); - case 4: - return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]); + function ReadableStreamGetNumReadRequests(stream) { + return stream._reader._readRequests.length; } - return fn.apply(that, args); -}; - -/***/ }), -/* 96 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(4); -var macrotask = __w_pdfjs_require__(53).set; -var Observer = global.MutationObserver || global.WebKitMutationObserver; -var process = global.process; -var Promise = global.Promise; -var isNode = __w_pdfjs_require__(14)(process) == 'process'; -module.exports = function () { - var head, last, notify; - var flush = function flush() { - var parent, fn; - if (isNode && (parent = process.domain)) parent.exit(); - while (head) { - fn = head.fn; - head = head.next; - try { - fn(); - } catch (e) { - if (head) notify();else last = undefined; - throw e; - } + function ReadableStreamHasBYOBReader(stream) { + var reader = stream._reader; + if (reader === undefined) { + return false; } - last = undefined; - if (parent) parent.enter(); - }; - if (isNode) { - notify = function notify() { - process.nextTick(flush); - }; - } else if (Observer && !(global.navigator && global.navigator.standalone)) { - var toggle = true; - var node = document.createTextNode(''); - new Observer(flush).observe(node, { characterData: true }); - notify = function notify() { - node.data = toggle = !toggle; - }; - } else if (Promise && Promise.resolve) { - var promise = Promise.resolve(); - notify = function notify() { - promise.then(flush); - }; - } else { - notify = function notify() { - macrotask.call(global, flush); - }; + if (IsReadableStreamBYOBReader(reader) === false) { + return false; + } + return true; } - return function (fn) { - var task = { - fn: fn, - next: undefined - }; - if (last) last.next = task; - if (!head) { - head = task; - notify(); + function ReadableStreamHasDefaultReader(stream) { + var reader = stream._reader; + if (reader === undefined) { + return false; + } + if (IsReadableStreamDefaultReader(reader) === false) { + return false; + } + return true; + } + var ReadableStreamDefaultReader = function () { + function ReadableStreamDefaultReader(stream) { + _classCallCheck(this, ReadableStreamDefaultReader); + if (IsReadableStream(stream) === false) { + throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance'); + } + if (IsReadableStreamLocked(stream) === true) { + throw new TypeError('This stream has already been locked for exclusive reading by another reader'); + } + ReadableStreamReaderGenericInitialize(this, stream); + this._readRequests = []; + } + _createClass(ReadableStreamDefaultReader, [{ + key: 'cancel', + value: function cancel(reason) { + if (IsReadableStreamDefaultReader(this) === false) { + return Promise.reject(defaultReaderBrandCheckException('cancel')); + } + if (this._ownerReadableStream === undefined) { + return Promise.reject(readerLockException('cancel')); + } + return ReadableStreamReaderGenericCancel(this, reason); + } + }, { + key: 'read', + value: function read() { + if (IsReadableStreamDefaultReader(this) === false) { + return Promise.reject(defaultReaderBrandCheckException('read')); + } + if (this._ownerReadableStream === undefined) { + return Promise.reject(readerLockException('read from')); + } + return ReadableStreamDefaultReaderRead(this); + } + }, { + key: 'releaseLock', + value: function releaseLock() { + if (IsReadableStreamDefaultReader(this) === false) { + throw defaultReaderBrandCheckException('releaseLock'); + } + if (this._ownerReadableStream === undefined) { + return; + } + if (this._readRequests.length > 0) { + throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); + } + ReadableStreamReaderGenericRelease(this); + } + }, { + key: 'closed', + get: function get() { + if (IsReadableStreamDefaultReader(this) === false) { + return Promise.reject(defaultReaderBrandCheckException('closed')); + } + return this._closedPromise; + } + }]); + return ReadableStreamDefaultReader; + }(); + var ReadableStreamBYOBReader = function () { + function ReadableStreamBYOBReader(stream) { + _classCallCheck(this, ReadableStreamBYOBReader); + if (!IsReadableStream(stream)) { + throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source'); + } + if (IsReadableByteStreamController(stream._readableStreamController) === false) { + throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source'); + } + if (IsReadableStreamLocked(stream)) { + throw new TypeError('This stream has already been locked for exclusive reading by another reader'); + } + ReadableStreamReaderGenericInitialize(this, stream); + this._readIntoRequests = []; + } + _createClass(ReadableStreamBYOBReader, [{ + key: 'cancel', + value: function cancel(reason) { + if (!IsReadableStreamBYOBReader(this)) { + return Promise.reject(byobReaderBrandCheckException('cancel')); + } + if (this._ownerReadableStream === undefined) { + return Promise.reject(readerLockException('cancel')); + } + return ReadableStreamReaderGenericCancel(this, reason); + } + }, { + key: 'read', + value: function read(view) { + if (!IsReadableStreamBYOBReader(this)) { + return Promise.reject(byobReaderBrandCheckException('read')); + } + if (this._ownerReadableStream === undefined) { + return Promise.reject(readerLockException('read from')); + } + if (!ArrayBuffer.isView(view)) { + return Promise.reject(new TypeError('view must be an array buffer view')); + } + if (view.byteLength === 0) { + return Promise.reject(new TypeError('view must have non-zero byteLength')); + } + return ReadableStreamBYOBReaderRead(this, view); + } + }, { + key: 'releaseLock', + value: function releaseLock() { + if (!IsReadableStreamBYOBReader(this)) { + throw byobReaderBrandCheckException('releaseLock'); + } + if (this._ownerReadableStream === undefined) { + return; + } + if (this._readIntoRequests.length > 0) { + throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); + } + ReadableStreamReaderGenericRelease(this); + } + }, { + key: 'closed', + get: function get() { + if (!IsReadableStreamBYOBReader(this)) { + return Promise.reject(byobReaderBrandCheckException('closed')); + } + return this._closedPromise; + } + }]); + return ReadableStreamBYOBReader; + }(); + function IsReadableStreamBYOBReader(x) { + if (!typeIsObject(x)) { + return false; } - last = task; - }; -}; - -/***/ }), -/* 97 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(4); -var dP = __w_pdfjs_require__(16); -var DESCRIPTORS = __w_pdfjs_require__(12); -var SPECIES = __w_pdfjs_require__(1)('species'); -module.exports = function (KEY) { - var C = global[KEY]; - if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { - configurable: true, - get: function get() { - return this; + if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) { + return false; } - }); -}; - -/***/ }), -/* 98 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(3); -var core = __w_pdfjs_require__(5); -var global = __w_pdfjs_require__(4); -var speciesConstructor = __w_pdfjs_require__(52); -var promiseResolve = __w_pdfjs_require__(55); -$export($export.P + $export.R, 'Promise', { - 'finally': function _finally(onFinally) { - var C = speciesConstructor(this, core.Promise || global.Promise); - var isFunction = typeof onFinally == 'function'; - return this.then(isFunction ? function (x) { - return promiseResolve(C, onFinally()).then(function () { - return x; - }); - } : onFinally, isFunction ? function (e) { - return promiseResolve(C, onFinally()).then(function () { - throw e; - }); - } : onFinally); - } -}); - -/***/ }), -/* 99 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(3); -var newPromiseCapability = __w_pdfjs_require__(35); -var perform = __w_pdfjs_require__(54); -$export($export.S, 'Promise', { - 'try': function _try(callbackfn) { - var promiseCapability = newPromiseCapability.f(this); - var result = perform(callbackfn); - (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); - return promiseCapability.promise; + return true; } -}); - -/***/ }), -/* 100 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(46); -__w_pdfjs_require__(51); -__w_pdfjs_require__(101); -__w_pdfjs_require__(112); -__w_pdfjs_require__(114); -module.exports = __w_pdfjs_require__(5).WeakMap; - -/***/ }), -/* 101 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var each = __w_pdfjs_require__(57)(0); -var redefine = __w_pdfjs_require__(8); -var meta = __w_pdfjs_require__(37); -var assign = __w_pdfjs_require__(105); -var weak = __w_pdfjs_require__(107); -var isObject = __w_pdfjs_require__(2); -var fails = __w_pdfjs_require__(13); -var validate = __w_pdfjs_require__(58); -var WEAK_MAP = 'WeakMap'; -var getWeak = meta.getWeak; -var isExtensible = Object.isExtensible; -var uncaughtFrozenStore = weak.ufstore; -var tmp = {}; -var InternalMap; -var wrapper = function wrapper(get) { - return function WeakMap() { - return get(this, arguments.length > 0 ? arguments[0] : undefined); - }; -}; -var methods = { - get: function get(key) { - if (isObject(key)) { - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); - return data ? data[this._i] : undefined; + function IsReadableStreamDefaultReader(x) { + if (!typeIsObject(x)) { + return false; } - }, - set: function set(key, value) { - return weak.def(validate(this, WEAK_MAP), key, value); + if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) { + return false; + } + return true; } -}; -var $WeakMap = module.exports = __w_pdfjs_require__(108)(WEAK_MAP, wrapper, methods, weak, true, true); -if (fails(function () { - return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; -})) { - InternalMap = weak.getConstructor(wrapper, WEAK_MAP); - assign(InternalMap.prototype, methods); - meta.NEED = true; - each(['delete', 'has', 'get', 'set'], function (key) { - var proto = $WeakMap.prototype; - var method = proto[key]; - redefine(proto, key, function (a, b) { - if (isObject(a) && !isExtensible(a)) { - if (!this._f) this._f = new InternalMap(); - var result = this._f[key](a, b); - return key == 'set' ? this : result; - } - return method.call(this, a, b); - }); - }); -} - -/***/ }), -/* 102 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var speciesConstructor = __w_pdfjs_require__(103); -module.exports = function (original, length) { - return new (speciesConstructor(original))(length); -}; - -/***/ }), -/* 103 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(2); -var isArray = __w_pdfjs_require__(104); -var SPECIES = __w_pdfjs_require__(1)('species'); -module.exports = function (original) { - var C; - if (isArray(original)) { - C = original.constructor; - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; - if (isObject(C)) { - C = C[SPECIES]; - if (C === null) C = undefined; + function ReadableStreamReaderGenericInitialize(reader, stream) { + reader._ownerReadableStream = stream; + stream._reader = reader; + if (stream._state === 'readable') { + defaultReaderClosedPromiseInitialize(reader); + } else if (stream._state === 'closed') { + defaultReaderClosedPromiseInitializeAsResolved(reader); + } else { + assert(stream._state === 'errored', 'state must be errored'); + defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError); + reader._closedPromise.catch(function () {}); } } - return C === undefined ? Array : C; -}; - -/***/ }), -/* 104 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var cof = __w_pdfjs_require__(14); -module.exports = Array.isArray || function isArray(arg) { - return cof(arg) == 'Array'; -}; - -/***/ }), -/* 105 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var getKeys = __w_pdfjs_require__(22); -var gOPS = __w_pdfjs_require__(106); -var pIE = __w_pdfjs_require__(38); -var toObject = __w_pdfjs_require__(33); -var IObject = __w_pdfjs_require__(28); -var $assign = Object.assign; -module.exports = !$assign || __w_pdfjs_require__(13)(function () { - var A = {}; - var B = {}; - var S = Symbol(); - var K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function (k) { - B[k] = k; - }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; -}) ? function assign(target, source) { - var T = toObject(target); - var aLen = arguments.length; - var index = 1; - var getSymbols = gOPS.f; - var isEnum = pIE.f; - while (aLen > index) { - var S = IObject(arguments[index++]); - var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); - var length = keys.length; - var j = 0; - var key; - while (length > j) { - if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; + function ReadableStreamReaderGenericCancel(reader, reason) { + var stream = reader._ownerReadableStream; + assert(stream !== undefined); + return ReadableStreamCancel(stream, reason); + } + function ReadableStreamReaderGenericRelease(reader) { + assert(reader._ownerReadableStream !== undefined); + assert(reader._ownerReadableStream._reader === reader); + if (reader._ownerReadableStream._state === 'readable') { + defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); + } else { + defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); } + reader._closedPromise.catch(function () {}); + reader._ownerReadableStream._reader = undefined; + reader._ownerReadableStream = undefined; } - return T; -} : $assign; - -/***/ }), -/* 106 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -exports.f = Object.getOwnPropertySymbols; - -/***/ }), -/* 107 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var redefineAll = __w_pdfjs_require__(36); -var getWeak = __w_pdfjs_require__(37).getWeak; -var anObject = __w_pdfjs_require__(6); -var isObject = __w_pdfjs_require__(2); -var anInstance = __w_pdfjs_require__(34); -var forOf = __w_pdfjs_require__(24); -var createArrayMethod = __w_pdfjs_require__(57); -var $has = __w_pdfjs_require__(7); -var validate = __w_pdfjs_require__(58); -var arrayFind = createArrayMethod(5); -var arrayFindIndex = createArrayMethod(6); -var id = 0; -var uncaughtFrozenStore = function uncaughtFrozenStore(that) { - return that._l || (that._l = new UncaughtFrozenStore()); -}; -var UncaughtFrozenStore = function UncaughtFrozenStore() { - this.a = []; -}; -var findUncaughtFrozen = function findUncaughtFrozen(store, key) { - return arrayFind(store.a, function (it) { - return it[0] === key; - }); -}; -UncaughtFrozenStore.prototype = { - get: function get(key) { - var entry = findUncaughtFrozen(this, key); - if (entry) return entry[1]; - }, - has: function has(key) { - return !!findUncaughtFrozen(this, key); - }, - set: function set(key, value) { - var entry = findUncaughtFrozen(this, key); - if (entry) entry[1] = value;else this.a.push([key, value]); - }, - 'delete': function _delete(key) { - var index = arrayFindIndex(this.a, function (it) { - return it[0] === key; - }); - if (~index) this.a.splice(index, 1); - return !!~index; + function ReadableStreamBYOBReaderRead(reader, view) { + var stream = reader._ownerReadableStream; + assert(stream !== undefined); + stream._disturbed = true; + if (stream._state === 'errored') { + return Promise.reject(stream._storedError); + } + return ReadableByteStreamControllerPullInto(stream._readableStreamController, view); } -}; -module.exports = { - getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, NAME, '_i'); - that._t = NAME; - that._i = id++; - that._l = undefined; - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - }); - redefineAll(C.prototype, { - 'delete': function _delete(key) { - if (!isObject(key)) return false; - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); - return data && $has(data, this._i) && delete data[this._i]; - }, - has: function has(key) { - if (!isObject(key)) return false; - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); - return data && $has(data, this._i); + function ReadableStreamDefaultReaderRead(reader) { + var stream = reader._ownerReadableStream; + assert(stream !== undefined); + stream._disturbed = true; + if (stream._state === 'closed') { + return Promise.resolve(CreateIterResultObject(undefined, true)); + } + if (stream._state === 'errored') { + return Promise.reject(stream._storedError); + } + assert(stream._state === 'readable'); + return stream._readableStreamController.__pullSteps(); + } + var ReadableStreamDefaultController = function () { + function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) { + _classCallCheck(this, ReadableStreamDefaultController); + if (IsReadableStream(stream) === false) { + throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance'); } - }); - return C; - }, - def: function def(that, key, value) { - var data = getWeak(anObject(key), true); - if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value; - return that; - }, - ufstore: uncaughtFrozenStore -}; - -/***/ }), -/* 108 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(4); -var $export = __w_pdfjs_require__(3); -var redefine = __w_pdfjs_require__(8); -var redefineAll = __w_pdfjs_require__(36); -var meta = __w_pdfjs_require__(37); -var forOf = __w_pdfjs_require__(24); -var anInstance = __w_pdfjs_require__(34); -var isObject = __w_pdfjs_require__(2); -var fails = __w_pdfjs_require__(13); -var $iterDetect = __w_pdfjs_require__(56); -var setToStringTag = __w_pdfjs_require__(23); -var inheritIfRequired = __w_pdfjs_require__(109); -module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { - var Base = global[NAME]; - var C = Base; - var ADDER = IS_MAP ? 'set' : 'add'; - var proto = C && C.prototype; - var O = {}; - var fixMethod = function fixMethod(KEY) { - var fn = proto[KEY]; - redefine(proto, KEY, KEY == 'delete' ? function (a) { - return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'has' ? function has(a) { - return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'get' ? function get(a) { - return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'add' ? function add(a) { - fn.call(this, a === 0 ? 0 : a); - return this; - } : function set(a, b) { - fn.call(this, a === 0 ? 0 : a, b); - return this; - }); - }; - if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { - new C().entries().next(); - }))) { - C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); - redefineAll(C.prototype, methods); - meta.NEED = true; - } else { - var instance = new C(); - var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; - var THROWS_ON_PRIMITIVES = fails(function () { - instance.has(1); - }); - var ACCEPT_ITERABLES = $iterDetect(function (iter) { - new C(iter); - }); - var BUGGY_ZERO = !IS_WEAK && fails(function () { - var $instance = new C(); - var index = 5; - while (index--) { - $instance[ADDER](index, index); - }return !$instance.has(-0); - }); - if (!ACCEPT_ITERABLES) { - C = wrapper(function (target, iterable) { - anInstance(target, C, NAME); - var that = inheritIfRequired(new Base(), target, C); - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - return that; - }); - C.prototype = proto; - proto.constructor = C; + if (stream._readableStreamController !== undefined) { + throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor'); + } + this._controlledReadableStream = stream; + this._underlyingSource = underlyingSource; + this._queue = undefined; + this._queueTotalSize = undefined; + ResetQueue(this); + this._started = false; + this._closeRequested = false; + this._pullAgain = false; + this._pulling = false; + var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); + this._strategySize = normalizedStrategy.size; + this._strategyHWM = normalizedStrategy.highWaterMark; + var controller = this; + var startResult = InvokeOrNoop(underlyingSource, 'start', [this]); + Promise.resolve(startResult).then(function () { + controller._started = true; + assert(controller._pulling === false); + assert(controller._pullAgain === false); + ReadableStreamDefaultControllerCallPullIfNeeded(controller); + }, function (r) { + ReadableStreamDefaultControllerErrorIfNeeded(controller, r); + }).catch(rethrowAssertionErrorRejection); + } + _createClass(ReadableStreamDefaultController, [{ + key: 'close', + value: function close() { + if (IsReadableStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('close'); + } + if (this._closeRequested === true) { + throw new TypeError('The stream has already been closed; do not close it again!'); + } + var state = this._controlledReadableStream._state; + if (state !== 'readable') { + throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); + } + ReadableStreamDefaultControllerClose(this); + } + }, { + key: 'enqueue', + value: function enqueue(chunk) { + if (IsReadableStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('enqueue'); + } + if (this._closeRequested === true) { + throw new TypeError('stream is closed or draining'); + } + var state = this._controlledReadableStream._state; + if (state !== 'readable') { + throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); + } + return ReadableStreamDefaultControllerEnqueue(this, chunk); + } + }, { + key: 'error', + value: function error(e) { + if (IsReadableStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('error'); + } + var stream = this._controlledReadableStream; + if (stream._state !== 'readable') { + throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); + } + ReadableStreamDefaultControllerError(this, e); + } + }, { + key: '__cancelSteps', + value: function __cancelSteps(reason) { + ResetQueue(this); + return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]); + } + }, { + key: '__pullSteps', + value: function __pullSteps() { + var stream = this._controlledReadableStream; + if (this._queue.length > 0) { + var chunk = DequeueValue(this); + if (this._closeRequested === true && this._queue.length === 0) { + ReadableStreamClose(stream); + } else { + ReadableStreamDefaultControllerCallPullIfNeeded(this); + } + return Promise.resolve(CreateIterResultObject(chunk, false)); + } + var pendingPromise = ReadableStreamAddReadRequest(stream); + ReadableStreamDefaultControllerCallPullIfNeeded(this); + return pendingPromise; + } + }, { + key: 'desiredSize', + get: function get() { + if (IsReadableStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('desiredSize'); + } + return ReadableStreamDefaultControllerGetDesiredSize(this); + } + }]); + return ReadableStreamDefaultController; + }(); + function IsReadableStreamDefaultController(x) { + if (!typeIsObject(x)) { + return false; } - if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { - fixMethod('delete'); - fixMethod('has'); - IS_MAP && fixMethod('get'); + if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) { + return false; } - if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); - if (IS_WEAK && proto.clear) delete proto.clear; + return true; } - setToStringTag(C, NAME); - O[NAME] = C; - $export($export.G + $export.W + $export.F * (C != Base), O); - if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); - return C; -}; - -/***/ }), -/* 109 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(2); -var setPrototypeOf = __w_pdfjs_require__(110).set; -module.exports = function (that, target, C) { - var S = target.constructor; - var P; - if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { - setPrototypeOf(that, P); + function ReadableStreamDefaultControllerCallPullIfNeeded(controller) { + var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller); + if (shouldPull === false) { + return undefined; + } + if (controller._pulling === true) { + controller._pullAgain = true; + return undefined; + } + assert(controller._pullAgain === false); + controller._pulling = true; + var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]); + pullPromise.then(function () { + controller._pulling = false; + if (controller._pullAgain === true) { + controller._pullAgain = false; + return ReadableStreamDefaultControllerCallPullIfNeeded(controller); + } + return undefined; + }, function (e) { + ReadableStreamDefaultControllerErrorIfNeeded(controller, e); + }).catch(rethrowAssertionErrorRejection); + return undefined; } - return that; -}; - -/***/ }), -/* 110 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(2); -var anObject = __w_pdfjs_require__(6); -var check = function check(O, proto) { - anObject(O); - if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); -}; -module.exports = { - set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) { - try { - set = __w_pdfjs_require__(9)(Function.call, __w_pdfjs_require__(111).f(Object.prototype, '__proto__').set, 2); - set(test, []); - buggy = !(test instanceof Array); - } catch (e) { - buggy = true; + function ReadableStreamDefaultControllerShouldCallPull(controller) { + var stream = controller._controlledReadableStream; + if (stream._state === 'closed' || stream._state === 'errored') { + return false; } - return function setPrototypeOf(O, proto) { - check(O, proto); - if (buggy) O.__proto__ = proto;else set(O, proto); - return O; - }; - }({}, false) : undefined), - check: check -}; - -/***/ }), -/* 111 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var pIE = __w_pdfjs_require__(38); -var createDesc = __w_pdfjs_require__(27); -var toIObject = __w_pdfjs_require__(18); -var toPrimitive = __w_pdfjs_require__(42); -var has = __w_pdfjs_require__(7); -var IE8_DOM_DEFINE = __w_pdfjs_require__(41); -var gOPD = Object.getOwnPropertyDescriptor; -exports.f = __w_pdfjs_require__(12) ? gOPD : function getOwnPropertyDescriptor(O, P) { - O = toIObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return gOPD(O, P); - } catch (e) {} - if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); -}; - -/***/ }), -/* 112 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(113)('WeakMap'); - -/***/ }), -/* 113 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(3); -module.exports = function (COLLECTION) { - $export($export.S, COLLECTION, { - of: function of() { - var length = arguments.length; - var A = new Array(length); - while (length--) { - A[length] = arguments[length]; - }return new this(A); + if (controller._closeRequested === true) { + return false; } - }); -}; - -/***/ }), -/* 114 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(115)('WeakMap'); - -/***/ }), -/* 115 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(3); -var aFunction = __w_pdfjs_require__(17); -var ctx = __w_pdfjs_require__(9); -var forOf = __w_pdfjs_require__(24); -module.exports = function (COLLECTION) { - $export($export.S, COLLECTION, { - from: function from(source) { - var mapFn = arguments[1]; - var mapping, A, n, cb; - aFunction(this); - mapping = mapFn !== undefined; - if (mapping) aFunction(mapFn); - if (source == undefined) return new this(); - A = []; - if (mapping) { - n = 0; - cb = ctx(mapFn, arguments[2], 2); - forOf(source, false, function (nextItem) { - A.push(cb(nextItem, n++)); - }); - } else { - forOf(source, false, A.push, A); + if (controller._started === false) { + return false; + } + if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { + return true; + } + var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); + if (desiredSize > 0) { + return true; + } + return false; + } + function ReadableStreamDefaultControllerClose(controller) { + var stream = controller._controlledReadableStream; + assert(controller._closeRequested === false); + assert(stream._state === 'readable'); + controller._closeRequested = true; + if (controller._queue.length === 0) { + ReadableStreamClose(stream); + } + } + function ReadableStreamDefaultControllerEnqueue(controller, chunk) { + var stream = controller._controlledReadableStream; + assert(controller._closeRequested === false); + assert(stream._state === 'readable'); + if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { + ReadableStreamFulfillReadRequest(stream, chunk, false); + } else { + var chunkSize = 1; + if (controller._strategySize !== undefined) { + var strategySize = controller._strategySize; + try { + chunkSize = strategySize(chunk); + } catch (chunkSizeE) { + ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); + throw chunkSizeE; + } + } + try { + EnqueueValueWithSize(controller, chunk, chunkSize); + } catch (enqueueE) { + ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); + throw enqueueE; } - return new this(A); } - }); -}; - -/***/ }), -/* 116 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(117); -module.exports = __w_pdfjs_require__(5).Object.values; - -/***/ }), -/* 117 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(3); -var $values = __w_pdfjs_require__(118)(false); -$export($export.S, 'Object', { - values: function values(it) { - return $values(it); + ReadableStreamDefaultControllerCallPullIfNeeded(controller); + return undefined; } -}); - -/***/ }), -/* 118 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var getKeys = __w_pdfjs_require__(22); -var toIObject = __w_pdfjs_require__(18); -var isEnum = __w_pdfjs_require__(38).f; -module.exports = function (isEntries) { - return function (it) { - var O = toIObject(it); - var keys = getKeys(O); - var length = keys.length; - var i = 0; - var result = []; - var key; - while (length > i) { - if (isEnum.call(O, key = keys[i++])) { - result.push(isEntries ? [key, O[key]] : O[key]); + function ReadableStreamDefaultControllerError(controller, e) { + var stream = controller._controlledReadableStream; + assert(stream._state === 'readable'); + ResetQueue(controller); + ReadableStreamError(stream, e); + } + function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) { + if (controller._controlledReadableStream._state === 'readable') { + ReadableStreamDefaultControllerError(controller, e); + } + } + function ReadableStreamDefaultControllerGetDesiredSize(controller) { + var stream = controller._controlledReadableStream; + var state = stream._state; + if (state === 'errored') { + return null; + } + if (state === 'closed') { + return 0; + } + return controller._strategyHWM - controller._queueTotalSize; + } + var ReadableStreamBYOBRequest = function () { + function ReadableStreamBYOBRequest(controller, view) { + _classCallCheck(this, ReadableStreamBYOBRequest); + this._associatedReadableByteStreamController = controller; + this._view = view; + } + _createClass(ReadableStreamBYOBRequest, [{ + key: 'respond', + value: function respond(bytesWritten) { + if (IsReadableStreamBYOBRequest(this) === false) { + throw byobRequestBrandCheckException('respond'); + } + if (this._associatedReadableByteStreamController === undefined) { + throw new TypeError('This BYOB request has been invalidated'); + } + ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten); + } + }, { + key: 'respondWithNewView', + value: function respondWithNewView(view) { + if (IsReadableStreamBYOBRequest(this) === false) { + throw byobRequestBrandCheckException('respond'); + } + if (this._associatedReadableByteStreamController === undefined) { + throw new TypeError('This BYOB request has been invalidated'); + } + if (!ArrayBuffer.isView(view)) { + throw new TypeError('You can only respond with array buffer views'); + } + ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view); + } + }, { + key: 'view', + get: function get() { + return this._view; + } + }]); + return ReadableStreamBYOBRequest; + }(); + var ReadableByteStreamController = function () { + function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) { + _classCallCheck(this, ReadableByteStreamController); + if (IsReadableStream(stream) === false) { + throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source'); + } + if (stream._readableStreamController !== undefined) { + throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source'); + } + this._controlledReadableStream = stream; + this._underlyingByteSource = underlyingByteSource; + this._pullAgain = false; + this._pulling = false; + ReadableByteStreamControllerClearPendingPullIntos(this); + this._queue = this._queueTotalSize = undefined; + ResetQueue(this); + this._closeRequested = false; + this._started = false; + this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark); + var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize; + if (autoAllocateChunkSize !== undefined) { + if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) { + throw new RangeError('autoAllocateChunkSize must be a positive integer'); + } + } + this._autoAllocateChunkSize = autoAllocateChunkSize; + this._pendingPullIntos = []; + var controller = this; + var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]); + Promise.resolve(startResult).then(function () { + controller._started = true; + assert(controller._pulling === false); + assert(controller._pullAgain === false); + ReadableByteStreamControllerCallPullIfNeeded(controller); + }, function (r) { + if (stream._state === 'readable') { + ReadableByteStreamControllerError(controller, r); + } + }).catch(rethrowAssertionErrorRejection); + } + _createClass(ReadableByteStreamController, [{ + key: 'close', + value: function close() { + if (IsReadableByteStreamController(this) === false) { + throw byteStreamControllerBrandCheckException('close'); + } + if (this._closeRequested === true) { + throw new TypeError('The stream has already been closed; do not close it again!'); + } + var state = this._controlledReadableStream._state; + if (state !== 'readable') { + throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); + } + ReadableByteStreamControllerClose(this); + } + }, { + key: 'enqueue', + value: function enqueue(chunk) { + if (IsReadableByteStreamController(this) === false) { + throw byteStreamControllerBrandCheckException('enqueue'); + } + if (this._closeRequested === true) { + throw new TypeError('stream is closed or draining'); + } + var state = this._controlledReadableStream._state; + if (state !== 'readable') { + throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); + } + if (!ArrayBuffer.isView(chunk)) { + throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController'); + } + ReadableByteStreamControllerEnqueue(this, chunk); + } + }, { + key: 'error', + value: function error(e) { + if (IsReadableByteStreamController(this) === false) { + throw byteStreamControllerBrandCheckException('error'); + } + var stream = this._controlledReadableStream; + if (stream._state !== 'readable') { + throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); + } + ReadableByteStreamControllerError(this, e); + } + }, { + key: '__cancelSteps', + value: function __cancelSteps(reason) { + if (this._pendingPullIntos.length > 0) { + var firstDescriptor = this._pendingPullIntos[0]; + firstDescriptor.bytesFilled = 0; + } + ResetQueue(this); + return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]); + } + }, { + key: '__pullSteps', + value: function __pullSteps() { + var stream = this._controlledReadableStream; + assert(ReadableStreamHasDefaultReader(stream) === true); + if (this._queueTotalSize > 0) { + assert(ReadableStreamGetNumReadRequests(stream) === 0); + var entry = this._queue.shift(); + this._queueTotalSize -= entry.byteLength; + ReadableByteStreamControllerHandleQueueDrain(this); + var view = void 0; + try { + view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength); + } catch (viewE) { + return Promise.reject(viewE); + } + return Promise.resolve(CreateIterResultObject(view, false)); + } + var autoAllocateChunkSize = this._autoAllocateChunkSize; + if (autoAllocateChunkSize !== undefined) { + var buffer = void 0; + try { + buffer = new ArrayBuffer(autoAllocateChunkSize); + } catch (bufferE) { + return Promise.reject(bufferE); + } + var pullIntoDescriptor = { + buffer: buffer, + byteOffset: 0, + byteLength: autoAllocateChunkSize, + bytesFilled: 0, + elementSize: 1, + ctor: Uint8Array, + readerType: 'default' + }; + this._pendingPullIntos.push(pullIntoDescriptor); + } + var promise = ReadableStreamAddReadRequest(stream); + ReadableByteStreamControllerCallPullIfNeeded(this); + return promise; + } + }, { + key: 'byobRequest', + get: function get() { + if (IsReadableByteStreamController(this) === false) { + throw byteStreamControllerBrandCheckException('byobRequest'); + } + if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) { + var firstDescriptor = this._pendingPullIntos[0]; + var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled); + this._byobRequest = new ReadableStreamBYOBRequest(this, view); + } + return this._byobRequest; } - }return result; - }; -}; - -/***/ }), -/* 119 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isReadableStreamSupported = false; -if (typeof ReadableStream !== 'undefined') { - try { - new ReadableStream({ - start: function start(controller) { - controller.close(); + }, { + key: 'desiredSize', + get: function get() { + if (IsReadableByteStreamController(this) === false) { + throw byteStreamControllerBrandCheckException('desiredSize'); + } + return ReadableByteStreamControllerGetDesiredSize(this); } - }); - isReadableStreamSupported = true; - } catch (e) {} -} -if (isReadableStreamSupported) { - exports.ReadableStream = ReadableStream; -} else { - exports.ReadableStream = __w_pdfjs_require__(120).ReadableStream; -} - -/***/ }), -/* 120 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -(function (e, a) { - for (var i in a) { - e[i] = a[i]; - } -})(exports, function (modules) { - var installedModules = {}; - function __w_pdfjs_require__(moduleId) { - if (installedModules[moduleId]) return installedModules[moduleId].exports; - var module = installedModules[moduleId] = { - i: moduleId, - l: false, - exports: {} - }; - modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); - module.l = true; - return module.exports; - } - __w_pdfjs_require__.m = modules; - __w_pdfjs_require__.c = installedModules; - __w_pdfjs_require__.i = function (value) { - return value; - }; - __w_pdfjs_require__.d = function (exports, name, getter) { - if (!__w_pdfjs_require__.o(exports, name)) { - Object.defineProperty(exports, name, { - configurable: false, - enumerable: true, - get: getter - }); + }]); + return ReadableByteStreamController; + }(); + function IsReadableByteStreamController(x) { + if (!typeIsObject(x)) { + return false; } - }; - __w_pdfjs_require__.n = function (module) { - var getter = module && module.__esModule ? function getDefault() { - return module['default']; - } : function getModuleExports() { - return module; - }; - __w_pdfjs_require__.d(getter, 'a', getter); - return getter; - }; - __w_pdfjs_require__.o = function (object, property) { - return Object.prototype.hasOwnProperty.call(object, property); - }; - __w_pdfjs_require__.p = ""; - return __w_pdfjs_require__(__w_pdfjs_require__.s = 7); -}([function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { - return typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); - } : function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); - }; - var _require = __w_pdfjs_require__(1), - assert = _require.assert; - function IsPropertyKey(argument) { - return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol'; - } - exports.typeIsObject = function (x) { - return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function'; - }; - exports.createDataProperty = function (o, p, v) { - assert(exports.typeIsObject(o)); - Object.defineProperty(o, p, { - value: v, - writable: true, - enumerable: true, - configurable: true - }); - }; - exports.createArrayFromList = function (elements) { - return elements.slice(); - }; - exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) { - new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset); - }; - exports.CreateIterResultObject = function (value, done) { - assert(typeof done === 'boolean'); - var obj = {}; - Object.defineProperty(obj, 'value', { - value: value, - enumerable: true, - writable: true, - configurable: true - }); - Object.defineProperty(obj, 'done', { - value: done, - enumerable: true, - writable: true, - configurable: true - }); - return obj; - }; - exports.IsFiniteNonNegativeNumber = function (v) { - if (Number.isNaN(v)) { + if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) { return false; } - if (v === Infinity) { + return true; + } + function IsReadableStreamBYOBRequest(x) { + if (!typeIsObject(x)) { return false; } - if (v < 0) { + if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) { return false; } return true; - }; - function Call(F, V, args) { - if (typeof F !== 'function') { - throw new TypeError('Argument is not a function'); - } - return Function.prototype.apply.call(F, V, args); } - exports.InvokeOrNoop = function (O, P, args) { - assert(O !== undefined); - assert(IsPropertyKey(P)); - assert(Array.isArray(args)); - var method = O[P]; - if (method === undefined) { + function ReadableByteStreamControllerCallPullIfNeeded(controller) { + var shouldPull = ReadableByteStreamControllerShouldCallPull(controller); + if (shouldPull === false) { return undefined; } - return Call(method, O, args); - }; - exports.PromiseInvokeOrNoop = function (O, P, args) { - assert(O !== undefined); - assert(IsPropertyKey(P)); - assert(Array.isArray(args)); - try { - return Promise.resolve(exports.InvokeOrNoop(O, P, args)); - } catch (returnValueE) { - return Promise.reject(returnValueE); - } - }; - exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) { - assert(O !== undefined); - assert(IsPropertyKey(P)); - assert(Array.isArray(args)); - assert(Array.isArray(argsF)); - var method = void 0; - try { - method = O[P]; - } catch (methodE) { - return Promise.reject(methodE); + if (controller._pulling === true) { + controller._pullAgain = true; + return undefined; } - if (method === undefined) { - return F.apply(null, argsF); + assert(controller._pullAgain === false); + controller._pulling = true; + var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]); + pullPromise.then(function () { + controller._pulling = false; + if (controller._pullAgain === true) { + controller._pullAgain = false; + ReadableByteStreamControllerCallPullIfNeeded(controller); + } + }, function (e) { + if (controller._controlledReadableStream._state === 'readable') { + ReadableByteStreamControllerError(controller, e); + } + }).catch(rethrowAssertionErrorRejection); + return undefined; + } + function ReadableByteStreamControllerClearPendingPullIntos(controller) { + ReadableByteStreamControllerInvalidateBYOBRequest(controller); + controller._pendingPullIntos = []; + } + function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) { + assert(stream._state !== 'errored', 'state must not be errored'); + var done = false; + if (stream._state === 'closed') { + assert(pullIntoDescriptor.bytesFilled === 0); + done = true; } - try { - return Promise.resolve(Call(method, O, args)); - } catch (e) { - return Promise.reject(e); + var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); + if (pullIntoDescriptor.readerType === 'default') { + ReadableStreamFulfillReadRequest(stream, filledView, done); + } else { + assert(pullIntoDescriptor.readerType === 'byob'); + ReadableStreamFulfillReadIntoRequest(stream, filledView, done); } - }; - exports.TransferArrayBuffer = function (O) { - return O.slice(); - }; - exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) { - highWaterMark = Number(highWaterMark); - if (Number.isNaN(highWaterMark) || highWaterMark < 0) { - throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN'); + } + function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) { + var bytesFilled = pullIntoDescriptor.bytesFilled; + var elementSize = pullIntoDescriptor.elementSize; + assert(bytesFilled <= pullIntoDescriptor.byteLength); + assert(bytesFilled % elementSize === 0); + return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize); + } + function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) { + controller._queue.push({ + buffer: buffer, + byteOffset: byteOffset, + byteLength: byteLength + }); + controller._queueTotalSize += byteLength; + } + function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) { + var elementSize = pullIntoDescriptor.elementSize; + var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize; + var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled); + var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy; + var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize; + var totalBytesToCopyRemaining = maxBytesToCopy; + var ready = false; + if (maxAlignedBytes > currentAlignedBytes) { + totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled; + ready = true; } - return highWaterMark; - }; - exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) { - if (size !== undefined && typeof size !== 'function') { - throw new TypeError('size property of a queuing strategy must be a function'); + var queue = controller._queue; + while (totalBytesToCopyRemaining > 0) { + var headOfQueue = queue[0]; + var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength); + var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; + ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy); + if (headOfQueue.byteLength === bytesToCopy) { + queue.shift(); + } else { + headOfQueue.byteOffset += bytesToCopy; + headOfQueue.byteLength -= bytesToCopy; + } + controller._queueTotalSize -= bytesToCopy; + ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor); + totalBytesToCopyRemaining -= bytesToCopy; } - highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark); - return { - size: size, - highWaterMark: highWaterMark - }; - }; -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - function rethrowAssertionErrorRejection(e) { - if (e && e.constructor === AssertionError) { - setTimeout(function () { - throw e; - }, 0); + if (ready === false) { + assert(controller._queueTotalSize === 0, 'queue must be empty'); + assert(pullIntoDescriptor.bytesFilled > 0); + assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize); } + return ready; } - function AssertionError(message) { - this.name = 'AssertionError'; - this.message = message || ''; - this.stack = new Error().stack; + function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) { + assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor); + ReadableByteStreamControllerInvalidateBYOBRequest(controller); + pullIntoDescriptor.bytesFilled += size; } - AssertionError.prototype = Object.create(Error.prototype); - AssertionError.prototype.constructor = AssertionError; - function assert(value, message) { - if (!value) { - throw new AssertionError(message); + function ReadableByteStreamControllerHandleQueueDrain(controller) { + assert(controller._controlledReadableStream._state === 'readable'); + if (controller._queueTotalSize === 0 && controller._closeRequested === true) { + ReadableStreamClose(controller._controlledReadableStream); + } else { + ReadableByteStreamControllerCallPullIfNeeded(controller); } } - module.exports = { - rethrowAssertionErrorRejection: rethrowAssertionErrorRejection, - AssertionError: AssertionError, - assert: assert - }; -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _createClass = function () { - 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); + function ReadableByteStreamControllerInvalidateBYOBRequest(controller) { + if (controller._byobRequest === undefined) { + return; + } + controller._byobRequest._associatedReadableByteStreamController = undefined; + controller._byobRequest._view = undefined; + controller._byobRequest = undefined; + } + function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) { + assert(controller._closeRequested === false); + while (controller._pendingPullIntos.length > 0) { + if (controller._queueTotalSize === 0) { + return; + } + var pullIntoDescriptor = controller._pendingPullIntos[0]; + if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { + ReadableByteStreamControllerShiftPendingPullInto(controller); + ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); } } - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; + } + function ReadableByteStreamControllerPullInto(controller, view) { + var stream = controller._controlledReadableStream; + var elementSize = 1; + if (view.constructor !== DataView) { + elementSize = view.constructor.BYTES_PER_ELEMENT; + } + var ctor = view.constructor; + var pullIntoDescriptor = { + buffer: view.buffer, + byteOffset: view.byteOffset, + byteLength: view.byteLength, + bytesFilled: 0, + elementSize: elementSize, + ctor: ctor, + readerType: 'byob' }; - }(); - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); + if (controller._pendingPullIntos.length > 0) { + pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); + controller._pendingPullIntos.push(pullIntoDescriptor); + return ReadableStreamAddReadIntoRequest(stream); } - } - var _require = __w_pdfjs_require__(0), - InvokeOrNoop = _require.InvokeOrNoop, - PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, - ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, - typeIsObject = _require.typeIsObject; - var _require2 = __w_pdfjs_require__(1), - assert = _require2.assert, - rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection; - var _require3 = __w_pdfjs_require__(3), - DequeueValue = _require3.DequeueValue, - EnqueueValueWithSize = _require3.EnqueueValueWithSize, - PeekQueueValue = _require3.PeekQueueValue, - ResetQueue = _require3.ResetQueue; - var WritableStream = function () { - function WritableStream() { - var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - size = _ref.size, - _ref$highWaterMark = _ref.highWaterMark, - highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark; - _classCallCheck(this, WritableStream); - this._state = 'writable'; - this._storedError = undefined; - this._writer = undefined; - this._writableStreamController = undefined; - this._writeRequests = []; - this._inFlightWriteRequest = undefined; - this._closeRequest = undefined; - this._inFlightCloseRequest = undefined; - this._pendingAbortRequest = undefined; - this._backpressure = false; - var type = underlyingSink.type; - if (type !== undefined) { - throw new RangeError('Invalid type is specified'); - } - this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark); - this._writableStreamController.__startSteps(); + if (stream._state === 'closed') { + var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0); + return Promise.resolve(CreateIterResultObject(emptyView, true)); } - _createClass(WritableStream, [{ - key: 'abort', - value: function abort(reason) { - if (IsWritableStream(this) === false) { - return Promise.reject(streamBrandCheckException('abort')); - } - if (IsWritableStreamLocked(this) === true) { - return Promise.reject(new TypeError('Cannot abort a stream that already has a writer')); - } - return WritableStreamAbort(this, reason); + if (controller._queueTotalSize > 0) { + if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { + var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); + ReadableByteStreamControllerHandleQueueDrain(controller); + return Promise.resolve(CreateIterResultObject(filledView, false)); } - }, { - key: 'getWriter', - value: function getWriter() { - if (IsWritableStream(this) === false) { - throw streamBrandCheckException('getWriter'); - } - return AcquireWritableStreamDefaultWriter(this); + if (controller._closeRequested === true) { + var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); + ReadableByteStreamControllerError(controller, e); + return Promise.reject(e); } - }, { - key: 'locked', - get: function get() { - if (IsWritableStream(this) === false) { - throw streamBrandCheckException('locked'); - } - return IsWritableStreamLocked(this); + } + pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); + controller._pendingPullIntos.push(pullIntoDescriptor); + var promise = ReadableStreamAddReadIntoRequest(stream); + ReadableByteStreamControllerCallPullIfNeeded(controller); + return promise; + } + function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) { + firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer); + assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0'); + var stream = controller._controlledReadableStream; + if (ReadableStreamHasBYOBReader(stream) === true) { + while (ReadableStreamGetNumReadIntoRequests(stream) > 0) { + var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller); + ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor); } - }]); - return WritableStream; - }(); - module.exports = { - AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter, - IsWritableStream: IsWritableStream, - IsWritableStreamLocked: IsWritableStreamLocked, - WritableStream: WritableStream, - WritableStreamAbort: WritableStreamAbort, - WritableStreamDefaultControllerError: WritableStreamDefaultControllerError, - WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation, - WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease, - WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite, - WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight - }; - function AcquireWritableStreamDefaultWriter(stream) { - return new WritableStreamDefaultWriter(stream); + } + } + function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) { + if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) { + throw new RangeError('bytesWritten out of range'); + } + ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor); + if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) { + return; + } + ReadableByteStreamControllerShiftPendingPullInto(controller); + var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize; + if (remainderSize > 0) { + var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; + var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end); + ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength); + } + pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); + pullIntoDescriptor.bytesFilled -= remainderSize; + ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); + ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); } - function IsWritableStream(x) { - if (!typeIsObject(x)) { + function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) { + var firstDescriptor = controller._pendingPullIntos[0]; + var stream = controller._controlledReadableStream; + if (stream._state === 'closed') { + if (bytesWritten !== 0) { + throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream'); + } + ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor); + } else { + assert(stream._state === 'readable'); + ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor); + } + } + function ReadableByteStreamControllerShiftPendingPullInto(controller) { + var descriptor = controller._pendingPullIntos.shift(); + ReadableByteStreamControllerInvalidateBYOBRequest(controller); + return descriptor; + } + function ReadableByteStreamControllerShouldCallPull(controller) { + var stream = controller._controlledReadableStream; + if (stream._state !== 'readable') { return false; } - if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) { + if (controller._closeRequested === true) { return false; } - return true; - } - function IsWritableStreamLocked(stream) { - assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams'); - if (stream._writer === undefined) { + if (controller._started === false) { return false; } - return true; - } - function WritableStreamAbort(stream, reason) { - var state = stream._state; - if (state === 'closed') { - return Promise.resolve(undefined); + if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { + return true; } - if (state === 'errored') { - return Promise.reject(stream._storedError); + if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) { + return true; } - var error = new TypeError('Requested to abort'); - if (stream._pendingAbortRequest !== undefined) { - return Promise.reject(error); + if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) { + return true; } - assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring'); - var wasAlreadyErroring = false; - if (state === 'erroring') { - wasAlreadyErroring = true; - reason = undefined; + return false; + } + function ReadableByteStreamControllerClose(controller) { + var stream = controller._controlledReadableStream; + assert(controller._closeRequested === false); + assert(stream._state === 'readable'); + if (controller._queueTotalSize > 0) { + controller._closeRequested = true; + return; } - var promise = new Promise(function (resolve, reject) { - stream._pendingAbortRequest = { - _resolve: resolve, - _reject: reject, - _reason: reason, - _wasAlreadyErroring: wasAlreadyErroring - }; - }); - if (wasAlreadyErroring === false) { - WritableStreamStartErroring(stream, error); + if (controller._pendingPullIntos.length > 0) { + var firstPendingPullInto = controller._pendingPullIntos[0]; + if (firstPendingPullInto.bytesFilled > 0) { + var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); + ReadableByteStreamControllerError(controller, e); + throw e; + } } - return promise; - } - function WritableStreamAddWriteRequest(stream) { - assert(IsWritableStreamLocked(stream) === true); - assert(stream._state === 'writable'); - var promise = new Promise(function (resolve, reject) { - var writeRequest = { - _resolve: resolve, - _reject: reject - }; - stream._writeRequests.push(writeRequest); - }); - return promise; + ReadableStreamClose(stream); } - function WritableStreamDealWithRejection(stream, error) { - var state = stream._state; - if (state === 'writable') { - WritableStreamStartErroring(stream, error); - return; + function ReadableByteStreamControllerEnqueue(controller, chunk) { + var stream = controller._controlledReadableStream; + assert(controller._closeRequested === false); + assert(stream._state === 'readable'); + var buffer = chunk.buffer; + var byteOffset = chunk.byteOffset; + var byteLength = chunk.byteLength; + var transferredBuffer = TransferArrayBuffer(buffer); + if (ReadableStreamHasDefaultReader(stream) === true) { + if (ReadableStreamGetNumReadRequests(stream) === 0) { + ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); + } else { + assert(controller._queue.length === 0); + var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength); + ReadableStreamFulfillReadRequest(stream, transferredView, false); + } + } else if (ReadableStreamHasBYOBReader(stream) === true) { + ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); + ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); + } else { + assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked'); + ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); } - assert(state === 'erroring'); - WritableStreamFinishErroring(stream); } - function WritableStreamStartErroring(stream, reason) { - assert(stream._storedError === undefined, 'stream._storedError === undefined'); - assert(stream._state === 'writable', 'state must be writable'); - var controller = stream._writableStreamController; - assert(controller !== undefined, 'controller must not be undefined'); - stream._state = 'erroring'; - stream._storedError = reason; - var writer = stream._writer; - if (writer !== undefined) { - WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason); + function ReadableByteStreamControllerError(controller, e) { + var stream = controller._controlledReadableStream; + assert(stream._state === 'readable'); + ReadableByteStreamControllerClearPendingPullIntos(controller); + ResetQueue(controller); + ReadableStreamError(stream, e); + } + function ReadableByteStreamControllerGetDesiredSize(controller) { + var stream = controller._controlledReadableStream; + var state = stream._state; + if (state === 'errored') { + return null; } - if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) { - WritableStreamFinishErroring(stream); + if (state === 'closed') { + return 0; } + return controller._strategyHWM - controller._queueTotalSize; } - function WritableStreamFinishErroring(stream) { - assert(stream._state === 'erroring', 'stream._state === erroring'); - assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false'); - stream._state = 'errored'; - stream._writableStreamController.__errorSteps(); - var storedError = stream._storedError; - for (var i = 0; i < stream._writeRequests.length; i++) { - var writeRequest = stream._writeRequests[i]; - writeRequest._reject(storedError); + function ReadableByteStreamControllerRespond(controller, bytesWritten) { + bytesWritten = Number(bytesWritten); + if (IsFiniteNonNegativeNumber(bytesWritten) === false) { + throw new RangeError('bytesWritten must be a finite'); } - stream._writeRequests = []; - if (stream._pendingAbortRequest === undefined) { - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - return; + assert(controller._pendingPullIntos.length > 0); + ReadableByteStreamControllerRespondInternal(controller, bytesWritten); + } + function ReadableByteStreamControllerRespondWithNewView(controller, view) { + assert(controller._pendingPullIntos.length > 0); + var firstDescriptor = controller._pendingPullIntos[0]; + if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) { + throw new RangeError('The region specified by view does not match byobRequest'); } - var abortRequest = stream._pendingAbortRequest; - stream._pendingAbortRequest = undefined; - if (abortRequest._wasAlreadyErroring === true) { - abortRequest._reject(storedError); - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - return; + if (firstDescriptor.byteLength !== view.byteLength) { + throw new RangeError('The buffer of view has different capacity than byobRequest'); } - var promise = stream._writableStreamController.__abortSteps(abortRequest._reason); - promise.then(function () { - abortRequest._resolve(); - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - }, function (reason) { - abortRequest._reject(reason); - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + firstDescriptor.buffer = view.buffer; + ReadableByteStreamControllerRespondInternal(controller, view.byteLength); + } + function streamBrandCheckException(name) { + return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream'); + } + function readerLockException(name) { + return new TypeError('Cannot ' + name + ' a stream using a released reader'); + } + function defaultReaderBrandCheckException(name) { + return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader'); + } + function defaultReaderClosedPromiseInitialize(reader) { + reader._closedPromise = new Promise(function (resolve, reject) { + reader._closedPromise_resolve = resolve; + reader._closedPromise_reject = reject; }); } - function WritableStreamFinishInFlightWrite(stream) { - assert(stream._inFlightWriteRequest !== undefined); - stream._inFlightWriteRequest._resolve(undefined); - stream._inFlightWriteRequest = undefined; + function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) { + reader._closedPromise = Promise.reject(reason); + reader._closedPromise_resolve = undefined; + reader._closedPromise_reject = undefined; } - function WritableStreamFinishInFlightWriteWithError(stream, error) { - assert(stream._inFlightWriteRequest !== undefined); - stream._inFlightWriteRequest._reject(error); - stream._inFlightWriteRequest = undefined; - assert(stream._state === 'writable' || stream._state === 'erroring'); - WritableStreamDealWithRejection(stream, error); + function defaultReaderClosedPromiseInitializeAsResolved(reader) { + reader._closedPromise = Promise.resolve(undefined); + reader._closedPromise_resolve = undefined; + reader._closedPromise_reject = undefined; } - function WritableStreamFinishInFlightClose(stream) { - assert(stream._inFlightCloseRequest !== undefined); - stream._inFlightCloseRequest._resolve(undefined); - stream._inFlightCloseRequest = undefined; - var state = stream._state; - assert(state === 'writable' || state === 'erroring'); - if (state === 'erroring') { - stream._storedError = undefined; - if (stream._pendingAbortRequest !== undefined) { - stream._pendingAbortRequest._resolve(); - stream._pendingAbortRequest = undefined; - } - } - stream._state = 'closed'; - var writer = stream._writer; - if (writer !== undefined) { - defaultWriterClosedPromiseResolve(writer); - } - assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined'); - assert(stream._storedError === undefined, 'stream._storedError === undefined'); + function defaultReaderClosedPromiseReject(reader, reason) { + assert(reader._closedPromise_resolve !== undefined); + assert(reader._closedPromise_reject !== undefined); + reader._closedPromise_reject(reason); + reader._closedPromise_resolve = undefined; + reader._closedPromise_reject = undefined; + } + function defaultReaderClosedPromiseResetToRejected(reader, reason) { + assert(reader._closedPromise_resolve === undefined); + assert(reader._closedPromise_reject === undefined); + reader._closedPromise = Promise.reject(reason); + } + function defaultReaderClosedPromiseResolve(reader) { + assert(reader._closedPromise_resolve !== undefined); + assert(reader._closedPromise_reject !== undefined); + reader._closedPromise_resolve(undefined); + reader._closedPromise_resolve = undefined; + reader._closedPromise_reject = undefined; } - function WritableStreamFinishInFlightCloseWithError(stream, error) { - assert(stream._inFlightCloseRequest !== undefined); - stream._inFlightCloseRequest._reject(error); - stream._inFlightCloseRequest = undefined; - assert(stream._state === 'writable' || stream._state === 'erroring'); - if (stream._pendingAbortRequest !== undefined) { - stream._pendingAbortRequest._reject(error); - stream._pendingAbortRequest = undefined; - } - WritableStreamDealWithRejection(stream, error); + function byobReaderBrandCheckException(name) { + return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader'); } - function WritableStreamCloseQueuedOrInFlight(stream) { - if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) { - return false; - } - return true; + function defaultControllerBrandCheckException(name) { + return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController'); } - function WritableStreamHasOperationMarkedInFlight(stream) { - if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) { - return false; - } - return true; + function byobRequestBrandCheckException(name) { + return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest'); } - function WritableStreamMarkCloseRequestInFlight(stream) { - assert(stream._inFlightCloseRequest === undefined); - assert(stream._closeRequest !== undefined); - stream._inFlightCloseRequest = stream._closeRequest; - stream._closeRequest = undefined; + function byteStreamControllerBrandCheckException(name) { + return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController'); } - function WritableStreamMarkFirstWriteRequestInFlight(stream) { - assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request'); - assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty'); - stream._inFlightWriteRequest = stream._writeRequests.shift(); + function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) { + try { + Promise.prototype.then.call(promise, undefined, function () {}); + } catch (e) {} } - function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) { - assert(stream._state === 'errored', '_stream_.[[state]] is `"errored"`'); - if (stream._closeRequest !== undefined) { - assert(stream._inFlightCloseRequest === undefined); - stream._closeRequest._reject(stream._storedError); - stream._closeRequest = undefined; +}, function (module, exports, __w_pdfjs_require__) { + "use strict"; + + var transformStream = __w_pdfjs_require__(6); + var readableStream = __w_pdfjs_require__(4); + var writableStream = __w_pdfjs_require__(2); + exports.TransformStream = transformStream.TransformStream; + exports.ReadableStream = readableStream.ReadableStream; + exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed; + exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose; + exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue; + exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError; + exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize; + exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter; + exports.IsWritableStream = writableStream.IsWritableStream; + exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked; + exports.WritableStream = writableStream.WritableStream; + exports.WritableStreamAbort = writableStream.WritableStreamAbort; + exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError; + exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation; + exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease; + exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite; +}, function (module, exports, __w_pdfjs_require__) { + "use strict"; + + var _createClass = function () { + 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); + } } - var writer = stream._writer; - if (writer !== undefined) { - defaultWriterClosedPromiseReject(writer, stream._storedError); - writer._closedPromise.catch(function () {}); + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); } } - function WritableStreamUpdateBackpressure(stream, backpressure) { - assert(stream._state === 'writable'); - assert(WritableStreamCloseQueuedOrInFlight(stream) === false); - var writer = stream._writer; - if (writer !== undefined && backpressure !== stream._backpressure) { - if (backpressure === true) { - defaultWriterReadyPromiseReset(writer); - } else { - assert(backpressure === false); - defaultWriterReadyPromiseResolve(writer); - } + var _require = __w_pdfjs_require__(1), + assert = _require.assert; + var _require2 = __w_pdfjs_require__(0), + InvokeOrNoop = _require2.InvokeOrNoop, + PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback, + PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop, + typeIsObject = _require2.typeIsObject; + var _require3 = __w_pdfjs_require__(4), + ReadableStream = _require3.ReadableStream, + ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose, + ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue, + ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError, + ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize; + var _require4 = __w_pdfjs_require__(2), + WritableStream = _require4.WritableStream, + WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError; + function TransformStreamCloseReadable(transformStream) { + if (transformStream._errored === true) { + throw new TypeError('TransformStream is already errored'); } - stream._backpressure = backpressure; + if (transformStream._readableClosed === true) { + throw new TypeError('Readable side is already closed'); + } + TransformStreamCloseReadableInternal(transformStream); } - var WritableStreamDefaultWriter = function () { - function WritableStreamDefaultWriter(stream) { - _classCallCheck(this, WritableStreamDefaultWriter); - if (IsWritableStream(stream) === false) { - throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance'); - } - if (IsWritableStreamLocked(stream) === true) { - throw new TypeError('This stream has already been locked for exclusive writing by another writer'); - } - this._ownerWritableStream = stream; - stream._writer = this; - var state = stream._state; - if (state === 'writable') { - if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) { - defaultWriterReadyPromiseInitialize(this); - } else { - defaultWriterReadyPromiseInitializeAsResolved(this); - } - defaultWriterClosedPromiseInitialize(this); - } else if (state === 'erroring') { - defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError); - this._readyPromise.catch(function () {}); - defaultWriterClosedPromiseInitialize(this); - } else if (state === 'closed') { - defaultWriterReadyPromiseInitializeAsResolved(this); - defaultWriterClosedPromiseInitializeAsResolved(this); - } else { - assert(state === 'errored', 'state must be errored'); - var storedError = stream._storedError; - defaultWriterReadyPromiseInitializeAsRejected(this, storedError); - this._readyPromise.catch(function () {}); - defaultWriterClosedPromiseInitializeAsRejected(this, storedError); - this._closedPromise.catch(function () {}); - } + function TransformStreamEnqueueToReadable(transformStream, chunk) { + if (transformStream._errored === true) { + throw new TypeError('TransformStream is already errored'); } - _createClass(WritableStreamDefaultWriter, [{ - key: 'abort', - value: function abort(reason) { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('abort')); - } - if (this._ownerWritableStream === undefined) { - return Promise.reject(defaultWriterLockException('abort')); - } - return WritableStreamDefaultWriterAbort(this, reason); - } - }, { - key: 'close', - value: function close() { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('close')); - } - var stream = this._ownerWritableStream; - if (stream === undefined) { - return Promise.reject(defaultWriterLockException('close')); - } - if (WritableStreamCloseQueuedOrInFlight(stream) === true) { - return Promise.reject(new TypeError('cannot close an already-closing stream')); - } - return WritableStreamDefaultWriterClose(this); - } - }, { - key: 'releaseLock', - value: function releaseLock() { - if (IsWritableStreamDefaultWriter(this) === false) { - throw defaultWriterBrandCheckException('releaseLock'); - } - var stream = this._ownerWritableStream; - if (stream === undefined) { - return; - } - assert(stream._writer !== undefined); - WritableStreamDefaultWriterRelease(this); - } - }, { - key: 'write', - value: function write(chunk) { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('write')); - } - if (this._ownerWritableStream === undefined) { - return Promise.reject(defaultWriterLockException('write to')); - } - return WritableStreamDefaultWriterWrite(this, chunk); - } - }, { - key: 'closed', - get: function get() { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('closed')); - } - return this._closedPromise; - } - }, { - key: 'desiredSize', - get: function get() { - if (IsWritableStreamDefaultWriter(this) === false) { - throw defaultWriterBrandCheckException('desiredSize'); - } - if (this._ownerWritableStream === undefined) { - throw defaultWriterLockException('desiredSize'); - } - return WritableStreamDefaultWriterGetDesiredSize(this); - } - }, { - key: 'ready', - get: function get() { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('ready')); - } - return this._readyPromise; - } - }]); - return WritableStreamDefaultWriter; - }(); - function IsWritableStreamDefaultWriter(x) { - if (!typeIsObject(x)) { - return false; + if (transformStream._readableClosed === true) { + throw new TypeError('Readable side is already closed'); } - if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) { - return false; + var controller = transformStream._readableController; + try { + ReadableStreamDefaultControllerEnqueue(controller, chunk); + } catch (e) { + transformStream._readableClosed = true; + TransformStreamErrorIfNeeded(transformStream, e); + throw transformStream._storedError; + } + var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); + var maybeBackpressure = desiredSize <= 0; + if (maybeBackpressure === true && transformStream._backpressure === false) { + TransformStreamSetBackpressure(transformStream, true); } - return true; } - function WritableStreamDefaultWriterAbort(writer, reason) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - return WritableStreamAbort(stream, reason); + function TransformStreamError(transformStream, e) { + if (transformStream._errored === true) { + throw new TypeError('TransformStream is already errored'); + } + TransformStreamErrorInternal(transformStream, e); } - function WritableStreamDefaultWriterClose(writer) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - var state = stream._state; - if (state === 'closed' || state === 'errored') { - return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed')); + function TransformStreamCloseReadableInternal(transformStream) { + assert(transformStream._errored === false); + assert(transformStream._readableClosed === false); + try { + ReadableStreamDefaultControllerClose(transformStream._readableController); + } catch (e) { + assert(false); } - assert(state === 'writable' || state === 'erroring'); - assert(WritableStreamCloseQueuedOrInFlight(stream) === false); - var promise = new Promise(function (resolve, reject) { - var closeRequest = { - _resolve: resolve, - _reject: reject - }; - stream._closeRequest = closeRequest; - }); - if (stream._backpressure === true && state === 'writable') { - defaultWriterReadyPromiseResolve(writer); + transformStream._readableClosed = true; + } + function TransformStreamErrorIfNeeded(transformStream, e) { + if (transformStream._errored === false) { + TransformStreamErrorInternal(transformStream, e); } - WritableStreamDefaultControllerClose(stream._writableStreamController); - return promise; } - function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - var state = stream._state; - if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { - return Promise.resolve(); + function TransformStreamErrorInternal(transformStream, e) { + assert(transformStream._errored === false); + transformStream._errored = true; + transformStream._storedError = e; + if (transformStream._writableDone === false) { + WritableStreamDefaultControllerError(transformStream._writableController, e); } - if (state === 'errored') { - return Promise.reject(stream._storedError); + if (transformStream._readableClosed === false) { + ReadableStreamDefaultControllerError(transformStream._readableController, e); } - assert(state === 'writable' || state === 'erroring'); - return WritableStreamDefaultWriterClose(writer); } - function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) { - if (writer._closedPromiseState === 'pending') { - defaultWriterClosedPromiseReject(writer, error); - } else { - defaultWriterClosedPromiseResetToRejected(writer, error); + function TransformStreamReadableReadyPromise(transformStream) { + assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); + if (transformStream._backpressure === false) { + return Promise.resolve(); } - writer._closedPromise.catch(function () {}); + assert(transformStream._backpressure === true, '_backpressure should have been initialized'); + return transformStream._backpressureChangePromise; } - function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) { - if (writer._readyPromiseState === 'pending') { - defaultWriterReadyPromiseReject(writer, error); - } else { - defaultWriterReadyPromiseResetToRejected(writer, error); + function TransformStreamSetBackpressure(transformStream, backpressure) { + assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed'); + if (transformStream._backpressureChangePromise !== undefined) { + transformStream._backpressureChangePromise_resolve(backpressure); } - writer._readyPromise.catch(function () {}); + transformStream._backpressureChangePromise = new Promise(function (resolve) { + transformStream._backpressureChangePromise_resolve = resolve; + }); + transformStream._backpressureChangePromise.then(function (resolution) { + assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed'); + }); + transformStream._backpressure = backpressure; } - function WritableStreamDefaultWriterGetDesiredSize(writer) { - var stream = writer._ownerWritableStream; - var state = stream._state; - if (state === 'errored' || state === 'erroring') { - return null; - } - if (state === 'closed') { - return 0; - } - return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController); + function TransformStreamDefaultTransform(chunk, transformStreamController) { + var transformStream = transformStreamController._controlledTransformStream; + TransformStreamEnqueueToReadable(transformStream, chunk); + return Promise.resolve(); } - function WritableStreamDefaultWriterRelease(writer) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - assert(stream._writer === writer); - var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\'s closedness'); - WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError); - WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError); - stream._writer = undefined; - writer._ownerWritableStream = undefined; + function TransformStreamTransform(transformStream, chunk) { + assert(transformStream._errored === false); + assert(transformStream._transforming === false); + assert(transformStream._backpressure === false); + transformStream._transforming = true; + var transformer = transformStream._transformer; + var controller = transformStream._transformStreamController; + var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]); + return transformPromise.then(function () { + transformStream._transforming = false; + return TransformStreamReadableReadyPromise(transformStream); + }, function (e) { + TransformStreamErrorIfNeeded(transformStream, e); + return Promise.reject(e); + }); } - function WritableStreamDefaultWriterWrite(writer, chunk) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - var controller = stream._writableStreamController; - var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk); - if (stream !== writer._ownerWritableStream) { - return Promise.reject(defaultWriterLockException('write to')); + function IsTransformStreamDefaultController(x) { + if (!typeIsObject(x)) { + return false; } - var state = stream._state; - if (state === 'errored') { - return Promise.reject(stream._storedError); + if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) { + return false; } - if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { - return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to')); + return true; + } + function IsTransformStream(x) { + if (!typeIsObject(x)) { + return false; } - if (state === 'erroring') { - return Promise.reject(stream._storedError); + if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) { + return false; } - assert(state === 'writable'); - var promise = WritableStreamAddWriteRequest(stream); - WritableStreamDefaultControllerWrite(controller, chunk, chunkSize); - return promise; + return true; } - var WritableStreamDefaultController = function () { - function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) { - _classCallCheck(this, WritableStreamDefaultController); - if (IsWritableStream(stream) === false) { - throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance'); + var TransformStreamSink = function () { + function TransformStreamSink(transformStream, startPromise) { + _classCallCheck(this, TransformStreamSink); + this._transformStream = transformStream; + this._startPromise = startPromise; + } + _createClass(TransformStreamSink, [{ + key: 'start', + value: function start(c) { + var transformStream = this._transformStream; + transformStream._writableController = c; + return this._startPromise.then(function () { + return TransformStreamReadableReadyPromise(transformStream); + }); + } + }, { + key: 'write', + value: function write(chunk) { + var transformStream = this._transformStream; + return TransformStreamTransform(transformStream, chunk); + } + }, { + key: 'abort', + value: function abort() { + var transformStream = this._transformStream; + transformStream._writableDone = true; + TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted')); + } + }, { + key: 'close', + value: function close() { + var transformStream = this._transformStream; + assert(transformStream._transforming === false); + transformStream._writableDone = true; + var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]); + return flushPromise.then(function () { + if (transformStream._errored === true) { + return Promise.reject(transformStream._storedError); + } + if (transformStream._readableClosed === false) { + TransformStreamCloseReadableInternal(transformStream); + } + return Promise.resolve(); + }).catch(function (r) { + TransformStreamErrorIfNeeded(transformStream, r); + return Promise.reject(transformStream._storedError); + }); + } + }]); + return TransformStreamSink; + }(); + var TransformStreamSource = function () { + function TransformStreamSource(transformStream, startPromise) { + _classCallCheck(this, TransformStreamSource); + this._transformStream = transformStream; + this._startPromise = startPromise; + } + _createClass(TransformStreamSource, [{ + key: 'start', + value: function start(c) { + var transformStream = this._transformStream; + transformStream._readableController = c; + return this._startPromise.then(function () { + assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); + if (transformStream._backpressure === true) { + return Promise.resolve(); + } + assert(transformStream._backpressure === false, '_backpressure should have been initialized'); + return transformStream._backpressureChangePromise; + }); + } + }, { + key: 'pull', + value: function pull() { + var transformStream = this._transformStream; + assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false'); + assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); + TransformStreamSetBackpressure(transformStream, false); + return transformStream._backpressureChangePromise; + } + }, { + key: 'cancel', + value: function cancel() { + var transformStream = this._transformStream; + transformStream._readableClosed = true; + TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled')); } - if (stream._writableStreamController !== undefined) { - throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor'); + }]); + return TransformStreamSource; + }(); + var TransformStreamDefaultController = function () { + function TransformStreamDefaultController(transformStream) { + _classCallCheck(this, TransformStreamDefaultController); + if (IsTransformStream(transformStream) === false) { + throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance'); } - this._controlledWritableStream = stream; - this._underlyingSink = underlyingSink; - this._queue = undefined; - this._queueTotalSize = undefined; - ResetQueue(this); - this._started = false; - var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); - this._strategySize = normalizedStrategy.size; - this._strategyHWM = normalizedStrategy.highWaterMark; - var backpressure = WritableStreamDefaultControllerGetBackpressure(this); - WritableStreamUpdateBackpressure(stream, backpressure); + if (transformStream._transformStreamController !== undefined) { + throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor'); + } + this._controlledTransformStream = transformStream; } - _createClass(WritableStreamDefaultController, [{ - key: 'error', - value: function error(e) { - if (IsWritableStreamDefaultController(this) === false) { - throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController'); - } - var state = this._controlledWritableStream._state; - if (state !== 'writable') { - return; + _createClass(TransformStreamDefaultController, [{ + key: 'enqueue', + value: function enqueue(chunk) { + if (IsTransformStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('enqueue'); } - WritableStreamDefaultControllerError(this, e); + TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk); } }, { - key: '__abortSteps', - value: function __abortSteps(reason) { - return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]); + key: 'close', + value: function close() { + if (IsTransformStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('close'); + } + TransformStreamCloseReadable(this._controlledTransformStream); } }, { - key: '__errorSteps', - value: function __errorSteps() { - ResetQueue(this); + key: 'error', + value: function error(reason) { + if (IsTransformStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('error'); + } + TransformStreamError(this._controlledTransformStream, reason); } }, { - key: '__startSteps', - value: function __startSteps() { - var _this = this; - var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]); - var stream = this._controlledWritableStream; - Promise.resolve(startResult).then(function () { - assert(stream._state === 'writable' || stream._state === 'erroring'); - _this._started = true; - WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this); - }, function (r) { - assert(stream._state === 'writable' || stream._state === 'erroring'); - _this._started = true; - WritableStreamDealWithRejection(stream, r); - }).catch(rethrowAssertionErrorRejection); + key: 'desiredSize', + get: function get() { + if (IsTransformStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('desiredSize'); + } + var transformStream = this._controlledTransformStream; + var readableController = transformStream._readableController; + return ReadableStreamDefaultControllerGetDesiredSize(readableController); } }]); - return WritableStreamDefaultController; + return TransformStreamDefaultController; }(); - function WritableStreamDefaultControllerClose(controller) { - EnqueueValueWithSize(controller, 'close', 0); - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - } - function WritableStreamDefaultControllerGetChunkSize(controller, chunk) { - var strategySize = controller._strategySize; - if (strategySize === undefined) { - return 1; - } - try { - return strategySize(chunk); - } catch (chunkSizeE) { - WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); - return 1; - } - } - function WritableStreamDefaultControllerGetDesiredSize(controller) { - return controller._strategyHWM - controller._queueTotalSize; - } - function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) { - var writeRecord = { chunk: chunk }; - try { - EnqueueValueWithSize(controller, writeRecord, chunkSize); - } catch (enqueueE) { - WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); - return; - } - var stream = controller._controlledWritableStream; - if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') { - var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); - WritableStreamUpdateBackpressure(stream, backpressure); - } - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - } - function IsWritableStreamDefaultController(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) { - return false; - } - return true; - } - function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) { - var stream = controller._controlledWritableStream; - if (controller._started === false) { - return; - } - if (stream._inFlightWriteRequest !== undefined) { - return; - } - var state = stream._state; - if (state === 'closed' || state === 'errored') { - return; - } - if (state === 'erroring') { - WritableStreamFinishErroring(stream); - return; - } - if (controller._queue.length === 0) { - return; - } - var writeRecord = PeekQueueValue(controller); - if (writeRecord === 'close') { - WritableStreamDefaultControllerProcessClose(controller); - } else { - WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk); - } - } - function WritableStreamDefaultControllerErrorIfNeeded(controller, error) { - if (controller._controlledWritableStream._state === 'writable') { - WritableStreamDefaultControllerError(controller, error); + var TransformStream = function () { + function TransformStream() { + var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + _classCallCheck(this, TransformStream); + this._transformer = transformer; + var readableStrategy = transformer.readableStrategy, + writableStrategy = transformer.writableStrategy; + this._transforming = false; + this._errored = false; + this._storedError = undefined; + this._writableController = undefined; + this._readableController = undefined; + this._transformStreamController = undefined; + this._writableDone = false; + this._readableClosed = false; + this._backpressure = undefined; + this._backpressureChangePromise = undefined; + this._backpressureChangePromise_resolve = undefined; + this._transformStreamController = new TransformStreamDefaultController(this); + var startPromise_resolve = void 0; + var startPromise = new Promise(function (resolve) { + startPromise_resolve = resolve; + }); + var source = new TransformStreamSource(this, startPromise); + this._readable = new ReadableStream(source, readableStrategy); + var sink = new TransformStreamSink(this, startPromise); + this._writable = new WritableStream(sink, writableStrategy); + assert(this._writableController !== undefined); + assert(this._readableController !== undefined); + var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController); + TransformStreamSetBackpressure(this, desiredSize <= 0); + var transformStream = this; + var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]); + startPromise_resolve(startResult); + startPromise.catch(function (e) { + if (transformStream._errored === false) { + transformStream._errored = true; + transformStream._storedError = e; + } + }); } - } - function WritableStreamDefaultControllerProcessClose(controller) { - var stream = controller._controlledWritableStream; - WritableStreamMarkCloseRequestInFlight(stream); - DequeueValue(controller); - assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued'); - var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []); - sinkClosePromise.then(function () { - WritableStreamFinishInFlightClose(stream); - }, function (reason) { - WritableStreamFinishInFlightCloseWithError(stream, reason); - }).catch(rethrowAssertionErrorRejection); - } - function WritableStreamDefaultControllerProcessWrite(controller, chunk) { - var stream = controller._controlledWritableStream; - WritableStreamMarkFirstWriteRequestInFlight(stream); - var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]); - sinkWritePromise.then(function () { - WritableStreamFinishInFlightWrite(stream); - var state = stream._state; - assert(state === 'writable' || state === 'erroring'); - DequeueValue(controller); - if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') { - var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); - WritableStreamUpdateBackpressure(stream, backpressure); + _createClass(TransformStream, [{ + key: 'readable', + get: function get() { + if (IsTransformStream(this) === false) { + throw streamBrandCheckException('readable'); + } + return this._readable; } - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - }, function (reason) { - WritableStreamFinishInFlightWriteWithError(stream, reason); - }).catch(rethrowAssertionErrorRejection); - } - function WritableStreamDefaultControllerGetBackpressure(controller) { - var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller); - return desiredSize <= 0; - } - function WritableStreamDefaultControllerError(controller, error) { - var stream = controller._controlledWritableStream; - assert(stream._state === 'writable'); - WritableStreamStartErroring(stream, error); + }, { + key: 'writable', + get: function get() { + if (IsTransformStream(this) === false) { + throw streamBrandCheckException('writable'); + } + return this._writable; + } + }]); + return TransformStream; + }(); + module.exports = { TransformStream: TransformStream }; + function defaultControllerBrandCheckException(name) { + return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController'); } function streamBrandCheckException(name) { - return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream'); - } - function defaultWriterBrandCheckException(name) { - return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter'); - } - function defaultWriterLockException(name) { - return new TypeError('Cannot ' + name + ' a stream using a released writer'); - } - function defaultWriterClosedPromiseInitialize(writer) { - writer._closedPromise = new Promise(function (resolve, reject) { - writer._closedPromise_resolve = resolve; - writer._closedPromise_reject = reject; - writer._closedPromiseState = 'pending'; - }); - } - function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) { - writer._closedPromise = Promise.reject(reason); - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'rejected'; - } - function defaultWriterClosedPromiseInitializeAsResolved(writer) { - writer._closedPromise = Promise.resolve(undefined); - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'resolved'; - } - function defaultWriterClosedPromiseReject(writer, reason) { - assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); - assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); - assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); - writer._closedPromise_reject(reason); - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'rejected'; + return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream'); } - function defaultWriterClosedPromiseResetToRejected(writer, reason) { - assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined'); - assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined'); - assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending'); - writer._closedPromise = Promise.reject(reason); - writer._closedPromiseState = 'rejected'; +}, function (module, exports, __w_pdfjs_require__) { + module.exports = __w_pdfjs_require__(5); +}])); + +/***/ }), +/* 117 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.build = exports.version = exports.setPDFNetworkStreamFactory = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.getDocument = undefined; + +var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _util = __w_pdfjs_require__(0); + +var _dom_utils = __w_pdfjs_require__(18); + +var _font_loader = __w_pdfjs_require__(118); + +var _api_compatibility = __w_pdfjs_require__(58); + +var _canvas = __w_pdfjs_require__(119); + +var _global_scope = __w_pdfjs_require__(19); + +var _global_scope2 = _interopRequireDefault(_global_scope); + +var _worker_options = __w_pdfjs_require__(59); + +var _metadata = __w_pdfjs_require__(121); + +var _transport_stream = __w_pdfjs_require__(122); + +var _webgl = __w_pdfjs_require__(123); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var DEFAULT_RANGE_CHUNK_SIZE = 65536; +var isWorkerDisabled = false; +var workerSrc = void 0; +var pdfjsFilePath = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : null; +var fakeWorkerFilesLoader = null; +var useRequireEnsure = false; +{ + if (typeof window === 'undefined') { + isWorkerDisabled = true; + if (typeof require.ensure === 'undefined') { + require.ensure = require('node-ensure'); + } + useRequireEnsure = true; + } else if (typeof require !== 'undefined' && typeof require.ensure === 'function') { + useRequireEnsure = true; } - function defaultWriterClosedPromiseResolve(writer) { - assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); - assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); - assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); - writer._closedPromise_resolve(undefined); - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'resolved'; + if (typeof requirejs !== 'undefined' && requirejs.toUrl) { + workerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js'); } - function defaultWriterReadyPromiseInitialize(writer) { - writer._readyPromise = new Promise(function (resolve, reject) { - writer._readyPromise_resolve = resolve; - writer._readyPromise_reject = reject; + var dynamicLoaderSupported = typeof requirejs !== 'undefined' && requirejs.load; + fakeWorkerFilesLoader = useRequireEnsure ? function (callback) { + require.ensure([], function () { + var worker; + worker = require('./pdf.worker.js'); + callback(worker.WorkerMessageHandler); }); - writer._readyPromiseState = 'pending'; - } - function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) { - writer._readyPromise = Promise.reject(reason); - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'rejected'; - } - function defaultWriterReadyPromiseInitializeAsResolved(writer) { - writer._readyPromise = Promise.resolve(undefined); - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'fulfilled'; - } - function defaultWriterReadyPromiseReject(writer, reason) { - assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); - assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); - writer._readyPromise_reject(reason); - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'rejected'; - } - function defaultWriterReadyPromiseReset(writer) { - assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); - assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); - writer._readyPromise = new Promise(function (resolve, reject) { - writer._readyPromise_resolve = resolve; - writer._readyPromise_reject = reject; + } : dynamicLoaderSupported ? function (callback) { + requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) { + callback(worker.WorkerMessageHandler); }); - writer._readyPromiseState = 'pending'; - } - function defaultWriterReadyPromiseResetToRejected(writer, reason) { - assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); - assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); - writer._readyPromise = Promise.reject(reason); - writer._readyPromiseState = 'rejected'; - } - function defaultWriterReadyPromiseResolve(writer) { - assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); - assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); - writer._readyPromise_resolve(undefined); - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'fulfilled'; - } -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _require = __w_pdfjs_require__(0), - IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber; - var _require2 = __w_pdfjs_require__(1), - assert = _require2.assert; - exports.DequeueValue = function (container) { - assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); - assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.'); - var pair = container._queue.shift(); - container._queueTotalSize -= pair.size; - if (container._queueTotalSize < 0) { - container._queueTotalSize = 0; + } : null; +} +var createPDFNetworkStream; +function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) { + createPDFNetworkStream = pdfNetworkStreamFactory; +} +function getDocument(src) { + var task = new PDFDocumentLoadingTask(); + var source; + if (typeof src === 'string') { + source = { url: src }; + } else if ((0, _util.isArrayBuffer)(src)) { + source = { data: src }; + } else if (src instanceof PDFDataRangeTransport) { + source = { range: src }; + } else { + if ((typeof src === 'undefined' ? 'undefined' : _typeof(src)) !== 'object') { + throw new Error('Invalid parameter in getDocument, ' + 'need either Uint8Array, string or a parameter object'); } - return pair.value; - }; - exports.EnqueueValueWithSize = function (container, value, size) { - assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].'); - size = Number(size); - if (!IsFiniteNonNegativeNumber(size)) { - throw new RangeError('Size must be a finite, non-NaN, non-negative number.'); + if (!src.url && !src.data && !src.range) { + throw new Error('Invalid parameter object: need either .data, .range or .url'); } - container._queue.push({ - value: value, - size: size - }); - container._queueTotalSize += size; - }; - exports.PeekQueueValue = function (container) { - assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); - assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.'); - var pair = container._queue[0]; - return pair.value; - }; - exports.ResetQueue = function (container) { - assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].'); - container._queue = []; - container._queueTotalSize = 0; - }; -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _createClass = function () { - 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); + source = src; + } + var params = Object.create(null); + var rangeTransport = null; + var worker = null; + var CMapReaderFactory = _dom_utils.DOMCMapReaderFactory; + for (var key in source) { + if (key === 'url' && typeof window !== 'undefined') { + params[key] = new URL(source[key], window.location).href; + continue; + } else if (key === 'range') { + rangeTransport = source[key]; + continue; + } else if (key === 'worker') { + worker = source[key]; + continue; + } else if (key === 'data' && !(source[key] instanceof Uint8Array)) { + var pdfBytes = source[key]; + if (typeof pdfBytes === 'string') { + params[key] = (0, _util.stringToBytes)(pdfBytes); + } else if ((typeof pdfBytes === 'undefined' ? 'undefined' : _typeof(pdfBytes)) === 'object' && pdfBytes !== null && !isNaN(pdfBytes.length)) { + params[key] = new Uint8Array(pdfBytes); + } else if ((0, _util.isArrayBuffer)(pdfBytes)) { + params[key] = new Uint8Array(pdfBytes); + } else { + throw new Error('Invalid PDF binary data: either typed array, ' + 'string or array-like object is expected in the ' + 'data property.'); } + continue; + } else if (key === 'CMapReaderFactory') { + CMapReaderFactory = source[key]; + continue; } - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; + params[key] = source[key]; + } + params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE; + params.ignoreErrors = params.stopAtErrors !== true; + params.pdfBug = params.pdfBug === true; + var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding); + if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) { + params.nativeImageDecoderSupport = _util.NativeImageDecoding.DECODE; + } + if (!Number.isInteger(params.maxImageSize)) { + params.maxImageSize = -1; + } + if (typeof params.isEvalSupported !== 'boolean') { + params.isEvalSupported = true; + } + if (typeof params.disableFontFace !== 'boolean') { + params.disableFontFace = false; + } + if (typeof params.disableRange !== 'boolean') { + params.disableRange = _api_compatibility.apiCompatibilityParams.disableRange || false; + } + if (typeof params.disableStream !== 'boolean') { + params.disableStream = _api_compatibility.apiCompatibilityParams.disableStream || false; + } + if (typeof params.disableAutoFetch !== 'boolean') { + params.disableAutoFetch = false; + } + if (typeof params.disableCreateObjectURL !== 'boolean') { + params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false; + } + (0, _util.setVerbosityLevel)(params.verbosity); + if (!worker) { + var workerParams = { + postMessageTransfers: params.postMessageTransfers, + verbosity: params.verbosity }; - }(); - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); + var workerPort = _worker_options.GlobalWorkerOptions.workerPort; + if (workerPort) { + workerParams.port = workerPort; + worker = PDFWorker.fromPort(workerParams); + } else { + worker = new PDFWorker(workerParams); } + task._worker = worker; } - var _require = __w_pdfjs_require__(0), - ArrayBufferCopy = _require.ArrayBufferCopy, - CreateIterResultObject = _require.CreateIterResultObject, - IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber, - InvokeOrNoop = _require.InvokeOrNoop, - PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, - TransferArrayBuffer = _require.TransferArrayBuffer, - ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, - ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark; - var _require2 = __w_pdfjs_require__(0), - createArrayFromList = _require2.createArrayFromList, - createDataProperty = _require2.createDataProperty, - typeIsObject = _require2.typeIsObject; - var _require3 = __w_pdfjs_require__(1), - assert = _require3.assert, - rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection; - var _require4 = __w_pdfjs_require__(3), - DequeueValue = _require4.DequeueValue, - EnqueueValueWithSize = _require4.EnqueueValueWithSize, - ResetQueue = _require4.ResetQueue; - var _require5 = __w_pdfjs_require__(2), - AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter, - IsWritableStream = _require5.IsWritableStream, - IsWritableStreamLocked = _require5.IsWritableStreamLocked, - WritableStreamAbort = _require5.WritableStreamAbort, - WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation, - WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease, - WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite, - WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight; - var ReadableStream = function () { - function ReadableStream() { - var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - size = _ref.size, - highWaterMark = _ref.highWaterMark; - _classCallCheck(this, ReadableStream); - this._state = 'readable'; - this._reader = undefined; - this._storedError = undefined; - this._disturbed = false; - this._readableStreamController = undefined; - var type = underlyingSource.type; - var typeString = String(type); - if (typeString === 'bytes') { - if (highWaterMark === undefined) { - highWaterMark = 0; - } - this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark); - } else if (type === undefined) { - if (highWaterMark === undefined) { - highWaterMark = 1; - } - this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark); - } else { - throw new RangeError('Invalid type is specified'); - } + var docId = task.docId; + worker.promise.then(function () { + if (task.destroyed) { + throw new Error('Loading aborted'); } - _createClass(ReadableStream, [{ - key: 'cancel', - value: function cancel(reason) { - if (IsReadableStream(this) === false) { - return Promise.reject(streamBrandCheckException('cancel')); - } - if (IsReadableStreamLocked(this) === true) { - return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader')); - } - return ReadableStreamCancel(this, reason); - } - }, { - key: 'getReader', - value: function getReader() { - var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - mode = _ref2.mode; - if (IsReadableStream(this) === false) { - throw streamBrandCheckException('getReader'); - } - if (mode === undefined) { - return AcquireReadableStreamDefaultReader(this); - } - mode = String(mode); - if (mode === 'byob') { - return AcquireReadableStreamBYOBReader(this); - } - throw new RangeError('Invalid mode is specified'); + return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) { + if (task.destroyed) { + throw new Error('Loading aborted'); } - }, { - key: 'pipeThrough', - value: function pipeThrough(_ref3, options) { - var writable = _ref3.writable, - readable = _ref3.readable; - var promise = this.pipeTo(writable, options); - ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise); - return readable; + var networkStream = void 0; + if (rangeTransport) { + networkStream = new _transport_stream.PDFDataTransportStream({ + length: params.length, + initialData: params.initialData, + disableRange: params.disableRange, + disableStream: params.disableStream + }, rangeTransport); + } else if (!params.data) { + networkStream = createPDFNetworkStream({ + url: params.url, + length: params.length, + httpHeaders: params.httpHeaders, + withCredentials: params.withCredentials, + rangeChunkSize: params.rangeChunkSize, + disableRange: params.disableRange, + disableStream: params.disableStream + }); } - }, { - key: 'pipeTo', - value: function pipeTo(dest) { - var _this = this; - var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - preventClose = _ref4.preventClose, - preventAbort = _ref4.preventAbort, - preventCancel = _ref4.preventCancel; - if (IsReadableStream(this) === false) { - return Promise.reject(streamBrandCheckException('pipeTo')); - } - if (IsWritableStream(dest) === false) { - return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\'s first argument must be a WritableStream')); + var messageHandler = new _util.MessageHandler(docId, workerId, worker.port); + messageHandler.postMessageTransfers = worker.postMessageTransfers; + var transport = new WorkerTransport(messageHandler, task, networkStream, params, CMapReaderFactory); + task._transport = transport; + messageHandler.send('Ready', null); + }); + }).catch(task._capability.reject); + return task; +} +function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { + if (worker.destroyed) { + return Promise.reject(new Error('Worker was destroyed')); + } + if (pdfDataRangeTransport) { + source.length = pdfDataRangeTransport.length; + source.initialData = pdfDataRangeTransport.initialData; + } + return worker.messageHandler.sendWithPromise('GetDocRequest', { + docId: docId, + apiVersion: '2.0.419', + source: { + data: source.data, + url: source.url, + password: source.password, + disableAutoFetch: source.disableAutoFetch, + rangeChunkSize: source.rangeChunkSize, + length: source.length + }, + maxImageSize: source.maxImageSize, + disableFontFace: source.disableFontFace, + disableCreateObjectURL: source.disableCreateObjectURL, + postMessageTransfers: worker.postMessageTransfers, + docBaseUrl: source.docBaseUrl, + nativeImageDecoderSupport: source.nativeImageDecoderSupport, + ignoreErrors: source.ignoreErrors, + isEvalSupported: source.isEvalSupported + }).then(function (workerId) { + if (worker.destroyed) { + throw new Error('Worker was destroyed'); + } + return workerId; + }); +} +var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() { + var nextDocumentId = 0; + function PDFDocumentLoadingTask() { + this._capability = (0, _util.createPromiseCapability)(); + this._transport = null; + this._worker = null; + this.docId = 'd' + nextDocumentId++; + this.destroyed = false; + this.onPassword = null; + this.onProgress = null; + this.onUnsupportedFeature = null; + } + PDFDocumentLoadingTask.prototype = { + get promise() { + return this._capability.promise; + }, + destroy: function destroy() { + var _this = this; + + this.destroyed = true; + var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy(); + return transportDestroyed.then(function () { + _this._transport = null; + if (_this._worker) { + _this._worker.destroy(); + _this._worker = null; } - preventClose = Boolean(preventClose); - preventAbort = Boolean(preventAbort); - preventCancel = Boolean(preventCancel); - if (IsReadableStreamLocked(this) === true) { - return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream')); + }); + }, + + then: function PDFDocumentLoadingTask_then(onFulfilled, onRejected) { + return this.promise.then.apply(this.promise, arguments); + } + }; + return PDFDocumentLoadingTask; +}(); +var PDFDataRangeTransport = function pdfDataRangeTransportClosure() { + function PDFDataRangeTransport(length, initialData) { + this.length = length; + this.initialData = initialData; + this._rangeListeners = []; + this._progressListeners = []; + this._progressiveReadListeners = []; + this._readyCapability = (0, _util.createPromiseCapability)(); + } + PDFDataRangeTransport.prototype = { + addRangeListener: function PDFDataRangeTransport_addRangeListener(listener) { + this._rangeListeners.push(listener); + }, + addProgressListener: function PDFDataRangeTransport_addProgressListener(listener) { + this._progressListeners.push(listener); + }, + addProgressiveReadListener: function PDFDataRangeTransport_addProgressiveReadListener(listener) { + this._progressiveReadListeners.push(listener); + }, + onDataRange: function PDFDataRangeTransport_onDataRange(begin, chunk) { + var listeners = this._rangeListeners; + for (var i = 0, n = listeners.length; i < n; ++i) { + listeners[i](begin, chunk); + } + }, + onDataProgress: function PDFDataRangeTransport_onDataProgress(loaded) { + var _this2 = this; + + this._readyCapability.promise.then(function () { + var listeners = _this2._progressListeners; + for (var i = 0, n = listeners.length; i < n; ++i) { + listeners[i](loaded); } - if (IsWritableStreamLocked(dest) === true) { - return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream')); + }); + }, + onDataProgressiveRead: function PDFDataRangeTransport_onDataProgress(chunk) { + var _this3 = this; + + this._readyCapability.promise.then(function () { + var listeners = _this3._progressiveReadListeners; + for (var i = 0, n = listeners.length; i < n; ++i) { + listeners[i](chunk); } - var reader = AcquireReadableStreamDefaultReader(this); - var writer = AcquireWritableStreamDefaultWriter(dest); - var shuttingDown = false; - var currentWrite = Promise.resolve(); - return new Promise(function (resolve, reject) { - function pipeLoop() { - currentWrite = Promise.resolve(); - if (shuttingDown === true) { - return Promise.resolve(); - } - return writer._readyPromise.then(function () { - return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) { - var value = _ref5.value, - done = _ref5.done; - if (done === true) { - return; - } - currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(function () {}); - }); - }).then(pipeLoop); - } - isOrBecomesErrored(_this, reader._closedPromise, function (storedError) { - if (preventAbort === false) { - shutdownWithAction(function () { - return WritableStreamAbort(dest, storedError); - }, true, storedError); - } else { - shutdown(true, storedError); - } - }); - isOrBecomesErrored(dest, writer._closedPromise, function (storedError) { - if (preventCancel === false) { - shutdownWithAction(function () { - return ReadableStreamCancel(_this, storedError); - }, true, storedError); - } else { - shutdown(true, storedError); - } - }); - isOrBecomesClosed(_this, reader._closedPromise, function () { - if (preventClose === false) { - shutdownWithAction(function () { - return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); - }); - } else { - shutdown(); - } - }); - if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') { - var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it'); - if (preventCancel === false) { - shutdownWithAction(function () { - return ReadableStreamCancel(_this, destClosed); - }, true, destClosed); - } else { - shutdown(true, destClosed); - } - } - pipeLoop().catch(function (err) { - currentWrite = Promise.resolve(); - rethrowAssertionErrorRejection(err); - }); - function waitForWritesToFinish() { - var oldCurrentWrite = currentWrite; - return currentWrite.then(function () { - return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; - }); - } - function isOrBecomesErrored(stream, promise, action) { - if (stream._state === 'errored') { - action(stream._storedError); - } else { - promise.catch(action).catch(rethrowAssertionErrorRejection); - } - } - function isOrBecomesClosed(stream, promise, action) { - if (stream._state === 'closed') { - action(); - } else { - promise.then(action).catch(rethrowAssertionErrorRejection); - } - } - function shutdownWithAction(action, originalIsError, originalError) { - if (shuttingDown === true) { - return; - } - shuttingDown = true; - if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { - waitForWritesToFinish().then(doTheRest); - } else { - doTheRest(); - } - function doTheRest() { - action().then(function () { - return finalize(originalIsError, originalError); - }, function (newError) { - return finalize(true, newError); - }).catch(rethrowAssertionErrorRejection); - } - } - function shutdown(isError, error) { - if (shuttingDown === true) { - return; - } - shuttingDown = true; - if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { - waitForWritesToFinish().then(function () { - return finalize(isError, error); - }).catch(rethrowAssertionErrorRejection); - } else { - finalize(isError, error); - } - } - function finalize(isError, error) { - WritableStreamDefaultWriterRelease(writer); - ReadableStreamReaderGenericRelease(reader); - if (isError) { - reject(error); - } else { - resolve(undefined); - } - } + }); + }, + transportReady: function PDFDataRangeTransport_transportReady() { + this._readyCapability.resolve(); + }, + requestDataRange: function PDFDataRangeTransport_requestDataRange(begin, end) { + (0, _util.unreachable)('Abstract method PDFDataRangeTransport.requestDataRange'); + }, + abort: function PDFDataRangeTransport_abort() {} + }; + return PDFDataRangeTransport; +}(); +var PDFDocumentProxy = function PDFDocumentProxyClosure() { + function PDFDocumentProxy(pdfInfo, transport, loadingTask) { + this.pdfInfo = pdfInfo; + this.transport = transport; + this.loadingTask = loadingTask; + } + PDFDocumentProxy.prototype = { + get numPages() { + return this.pdfInfo.numPages; + }, + get fingerprint() { + return this.pdfInfo.fingerprint; + }, + getPage: function getPage(pageNumber) { + return this.transport.getPage(pageNumber); + }, + + getPageIndex: function PDFDocumentProxy_getPageIndex(ref) { + return this.transport.getPageIndex(ref); + }, + getDestinations: function PDFDocumentProxy_getDestinations() { + return this.transport.getDestinations(); + }, + getDestination: function PDFDocumentProxy_getDestination(id) { + return this.transport.getDestination(id); + }, + getPageLabels: function PDFDocumentProxy_getPageLabels() { + return this.transport.getPageLabels(); + }, + getPageMode: function getPageMode() { + return this.transport.getPageMode(); + }, + + getAttachments: function PDFDocumentProxy_getAttachments() { + return this.transport.getAttachments(); + }, + getJavaScript: function getJavaScript() { + return this.transport.getJavaScript(); + }, + + getOutline: function PDFDocumentProxy_getOutline() { + return this.transport.getOutline(); + }, + getMetadata: function PDFDocumentProxy_getMetadata() { + return this.transport.getMetadata(); + }, + getData: function PDFDocumentProxy_getData() { + return this.transport.getData(); + }, + getDownloadInfo: function PDFDocumentProxy_getDownloadInfo() { + return this.transport.downloadInfoCapability.promise; + }, + getStats: function PDFDocumentProxy_getStats() { + return this.transport.getStats(); + }, + cleanup: function PDFDocumentProxy_cleanup() { + this.transport.startCleanup(); + }, + destroy: function PDFDocumentProxy_destroy() { + return this.loadingTask.destroy(); + }, + get loadingParams() { + return this.transport.loadingParams; + } + }; + return PDFDocumentProxy; +}(); +var PDFPageProxy = function PDFPageProxyClosure() { + function PDFPageProxy(pageIndex, pageInfo, transport) { + var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + + this.pageIndex = pageIndex; + this.pageInfo = pageInfo; + this.transport = transport; + this._stats = pdfBug ? new _dom_utils.StatTimer() : _dom_utils.DummyStatTimer; + this._pdfBug = pdfBug; + this.commonObjs = transport.commonObjs; + this.objs = new PDFObjects(); + this.cleanupAfterRender = false; + this.pendingCleanup = false; + this.intentStates = Object.create(null); + this.destroyed = false; + } + PDFPageProxy.prototype = { + get pageNumber() { + return this.pageIndex + 1; + }, + get rotate() { + return this.pageInfo.rotate; + }, + get ref() { + return this.pageInfo.ref; + }, + get userUnit() { + return this.pageInfo.userUnit; + }, + get view() { + return this.pageInfo.view; + }, + getViewport: function getViewport(scale) { + var rotate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.rotate; + var dontFlip = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + return new _util.PageViewport(this.view, scale, rotate, 0, 0, dontFlip); + }, + + getAnnotations: function PDFPageProxy_getAnnotations(params) { + var intent = params && params.intent || null; + if (!this.annotationsPromise || this.annotationsIntent !== intent) { + this.annotationsPromise = this.transport.getAnnotations(this.pageIndex, intent); + this.annotationsIntent = intent; + } + return this.annotationsPromise; + }, + render: function PDFPageProxy_render(params) { + var _this4 = this; + + var stats = this._stats; + stats.time('Overall'); + this.pendingCleanup = false; + var renderingIntent = params.intent === 'print' ? 'print' : 'display'; + var canvasFactory = params.canvasFactory || new _dom_utils.DOMCanvasFactory(); + var webGLContext = new _webgl.WebGLContext({ enable: params.enableWebGL }); + if (!this.intentStates[renderingIntent]) { + this.intentStates[renderingIntent] = Object.create(null); + } + var intentState = this.intentStates[renderingIntent]; + if (!intentState.displayReadyCapability) { + intentState.receivingOperatorList = true; + intentState.displayReadyCapability = (0, _util.createPromiseCapability)(); + intentState.operatorList = { + fnArray: [], + argsArray: [], + lastChunk: false + }; + stats.time('Page Request'); + this.transport.messageHandler.send('RenderPageRequest', { + pageIndex: this.pageNumber - 1, + intent: renderingIntent, + renderInteractiveForms: params.renderInteractiveForms === true }); } - }, { - key: 'tee', - value: function tee() { - if (IsReadableStream(this) === false) { - throw streamBrandCheckException('tee'); + var complete = function complete(error) { + var i = intentState.renderTasks.indexOf(internalRenderTask); + if (i >= 0) { + intentState.renderTasks.splice(i, 1); } - var branches = ReadableStreamTee(this, false); - return createArrayFromList(branches); + if (_this4.cleanupAfterRender) { + _this4.pendingCleanup = true; + } + _this4._tryCleanup(); + if (error) { + internalRenderTask.capability.reject(error); + } else { + internalRenderTask.capability.resolve(); + } + stats.timeEnd('Rendering'); + stats.timeEnd('Overall'); + }; + var internalRenderTask = new InternalRenderTask(complete, params, this.objs, this.commonObjs, intentState.operatorList, this.pageNumber, canvasFactory, webGLContext, this._pdfBug); + internalRenderTask.useRequestAnimationFrame = renderingIntent !== 'print'; + if (!intentState.renderTasks) { + intentState.renderTasks = []; } - }, { - key: 'locked', - get: function get() { - if (IsReadableStream(this) === false) { - throw streamBrandCheckException('locked'); + intentState.renderTasks.push(internalRenderTask); + var renderTask = internalRenderTask.task; + intentState.displayReadyCapability.promise.then(function (transparency) { + if (_this4.pendingCleanup) { + complete(); + return; + } + stats.time('Rendering'); + internalRenderTask.initializeGraphics(transparency); + internalRenderTask.operatorListChanged(); + }).catch(complete); + return renderTask; + }, + getOperatorList: function PDFPageProxy_getOperatorList() { + function operatorListChanged() { + if (intentState.operatorList.lastChunk) { + intentState.opListReadCapability.resolve(intentState.operatorList); + var i = intentState.renderTasks.indexOf(opListTask); + if (i >= 0) { + intentState.renderTasks.splice(i, 1); + } } - return IsReadableStreamLocked(this); } - }]); - return ReadableStream; - }(); - module.exports = { - ReadableStream: ReadableStream, - IsReadableStreamDisturbed: IsReadableStreamDisturbed, - ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose, - ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue, - ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError, - ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize - }; - function AcquireReadableStreamBYOBReader(stream) { - return new ReadableStreamBYOBReader(stream); - } - function AcquireReadableStreamDefaultReader(stream) { - return new ReadableStreamDefaultReader(stream); - } - function IsReadableStream(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) { - return false; - } - return true; - } - function IsReadableStreamDisturbed(stream) { - assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams'); - return stream._disturbed; - } - function IsReadableStreamLocked(stream) { - assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams'); - if (stream._reader === undefined) { - return false; - } - return true; - } - function ReadableStreamTee(stream, cloneForBranch2) { - assert(IsReadableStream(stream) === true); - assert(typeof cloneForBranch2 === 'boolean'); - var reader = AcquireReadableStreamDefaultReader(stream); - var teeState = { - closedOrErrored: false, - canceled1: false, - canceled2: false, - reason1: undefined, - reason2: undefined - }; - teeState.promise = new Promise(function (resolve) { - teeState._resolve = resolve; - }); - var pull = create_ReadableStreamTeePullFunction(); - pull._reader = reader; - pull._teeState = teeState; - pull._cloneForBranch2 = cloneForBranch2; - var cancel1 = create_ReadableStreamTeeBranch1CancelFunction(); - cancel1._stream = stream; - cancel1._teeState = teeState; - var cancel2 = create_ReadableStreamTeeBranch2CancelFunction(); - cancel2._stream = stream; - cancel2._teeState = teeState; - var underlyingSource1 = Object.create(Object.prototype); - createDataProperty(underlyingSource1, 'pull', pull); - createDataProperty(underlyingSource1, 'cancel', cancel1); - var branch1Stream = new ReadableStream(underlyingSource1); - var underlyingSource2 = Object.create(Object.prototype); - createDataProperty(underlyingSource2, 'pull', pull); - createDataProperty(underlyingSource2, 'cancel', cancel2); - var branch2Stream = new ReadableStream(underlyingSource2); - pull._branch1 = branch1Stream._readableStreamController; - pull._branch2 = branch2Stream._readableStreamController; - reader._closedPromise.catch(function (r) { - if (teeState.closedOrErrored === true) { + var renderingIntent = 'oplist'; + if (!this.intentStates[renderingIntent]) { + this.intentStates[renderingIntent] = Object.create(null); + } + var intentState = this.intentStates[renderingIntent]; + var opListTask; + if (!intentState.opListReadCapability) { + opListTask = {}; + opListTask.operatorListChanged = operatorListChanged; + intentState.receivingOperatorList = true; + intentState.opListReadCapability = (0, _util.createPromiseCapability)(); + intentState.renderTasks = []; + intentState.renderTasks.push(opListTask); + intentState.operatorList = { + fnArray: [], + argsArray: [], + lastChunk: false + }; + this.transport.messageHandler.send('RenderPageRequest', { + pageIndex: this.pageIndex, + intent: renderingIntent + }); + } + return intentState.opListReadCapability.promise; + }, + streamTextContent: function streamTextContent() { + var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + var TEXT_CONTENT_CHUNK_SIZE = 100; + return this.transport.messageHandler.sendWithStream('GetTextContent', { + pageIndex: this.pageNumber - 1, + normalizeWhitespace: params.normalizeWhitespace === true, + combineTextItems: params.disableCombineTextItems !== true + }, { + highWaterMark: TEXT_CONTENT_CHUNK_SIZE, + size: function size(textContent) { + return textContent.items.length; + } + }); + }, + + getTextContent: function PDFPageProxy_getTextContent(params) { + params = params || {}; + var readableStream = this.streamTextContent(params); + return new Promise(function (resolve, reject) { + function pump() { + reader.read().then(function (_ref) { + var value = _ref.value, + done = _ref.done; + + if (done) { + resolve(textContent); + return; + } + _util.Util.extendObj(textContent.styles, value.styles); + _util.Util.appendToArray(textContent.items, value.items); + pump(); + }, reject); + } + var reader = readableStream.getReader(); + var textContent = { + items: [], + styles: Object.create(null) + }; + pump(); + }); + }, + _destroy: function PDFPageProxy_destroy() { + this.destroyed = true; + this.transport.pageCache[this.pageIndex] = null; + var waitOn = []; + Object.keys(this.intentStates).forEach(function (intent) { + if (intent === 'oplist') { + return; + } + var intentState = this.intentStates[intent]; + intentState.renderTasks.forEach(function (renderTask) { + var renderCompleted = renderTask.capability.promise.catch(function () {}); + waitOn.push(renderCompleted); + renderTask.cancel(); + }); + }, this); + this.objs.clear(); + this.annotationsPromise = null; + this.pendingCleanup = false; + return Promise.all(waitOn); + }, + cleanup: function cleanup() { + var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + this.pendingCleanup = true; + this._tryCleanup(resetStats); + }, + _tryCleanup: function _tryCleanup() { + var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) { + var intentState = this.intentStates[intent]; + return intentState.renderTasks.length !== 0 || intentState.receivingOperatorList; + }, this)) { return; } - ReadableStreamDefaultControllerError(pull._branch1, r); - ReadableStreamDefaultControllerError(pull._branch2, r); - teeState.closedOrErrored = true; - }); - return [branch1Stream, branch2Stream]; + Object.keys(this.intentStates).forEach(function (intent) { + delete this.intentStates[intent]; + }, this); + this.objs.clear(); + this.annotationsPromise = null; + if (resetStats && this._stats instanceof _dom_utils.StatTimer) { + this._stats = new _dom_utils.StatTimer(); + } + this.pendingCleanup = false; + }, + + _startRenderPage: function PDFPageProxy_startRenderPage(transparency, intent) { + var intentState = this.intentStates[intent]; + if (intentState.displayReadyCapability) { + intentState.displayReadyCapability.resolve(transparency); + } + }, + _renderPageChunk: function PDFPageProxy_renderPageChunk(operatorListChunk, intent) { + var intentState = this.intentStates[intent]; + var i, ii; + for (i = 0, ii = operatorListChunk.length; i < ii; i++) { + intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]); + intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]); + } + intentState.operatorList.lastChunk = operatorListChunk.lastChunk; + for (i = 0; i < intentState.renderTasks.length; i++) { + intentState.renderTasks[i].operatorListChanged(); + } + if (operatorListChunk.lastChunk) { + intentState.receivingOperatorList = false; + this._tryCleanup(); + } + }, + get stats() { + return this._stats instanceof _dom_utils.StatTimer ? this._stats : null; + } + }; + return PDFPageProxy; +}(); + +var LoopbackPort = function () { + function LoopbackPort(defer) { + _classCallCheck(this, LoopbackPort); + + this._listeners = []; + this._defer = defer; + this._deferred = Promise.resolve(undefined); } - function create_ReadableStreamTeePullFunction() { - function f() { - var reader = f._reader, - branch1 = f._branch1, - branch2 = f._branch2, - teeState = f._teeState; - return ReadableStreamDefaultReaderRead(reader).then(function (result) { - assert(typeIsObject(result)); - var value = result.value; - var done = result.done; - assert(typeof done === 'boolean'); - if (done === true && teeState.closedOrErrored === false) { - if (teeState.canceled1 === false) { - ReadableStreamDefaultControllerClose(branch1); - } - if (teeState.canceled2 === false) { - ReadableStreamDefaultControllerClose(branch2); - } - teeState.closedOrErrored = true; + + _createClass(LoopbackPort, [{ + key: 'postMessage', + value: function postMessage(obj, transfers) { + var _this5 = this; + + function cloneValue(value) { + if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object' || value === null) { + return value; } - if (teeState.closedOrErrored === true) { - return; + if (cloned.has(value)) { + return cloned.get(value); } - var value1 = value; - var value2 = value; - if (teeState.canceled1 === false) { - ReadableStreamDefaultControllerEnqueue(branch1, value1); + var result; + var buffer; + if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) { + var transferable = transfers && transfers.includes(buffer); + if (value === buffer) { + result = value; + } else if (transferable) { + result = new value.constructor(buffer, value.byteOffset, value.byteLength); + } else { + result = new value.constructor(value); + } + cloned.set(value, result); + return result; } - if (teeState.canceled2 === false) { - ReadableStreamDefaultControllerEnqueue(branch2, value2); + result = Array.isArray(value) ? [] : {}; + cloned.set(value, result); + for (var i in value) { + var desc, + p = value; + while (!(desc = Object.getOwnPropertyDescriptor(p, i))) { + p = Object.getPrototypeOf(p); + } + if (typeof desc.value === 'undefined' || typeof desc.value === 'function') { + continue; + } + result[i] = cloneValue(desc.value); } - }); - } - return f; - } - function create_ReadableStreamTeeBranch1CancelFunction() { - function f(reason) { - var stream = f._stream, - teeState = f._teeState; - teeState.canceled1 = true; - teeState.reason1 = reason; - if (teeState.canceled2 === true) { - var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); - var cancelResult = ReadableStreamCancel(stream, compositeReason); - teeState._resolve(cancelResult); + return result; } - return teeState.promise; - } - return f; - } - function create_ReadableStreamTeeBranch2CancelFunction() { - function f(reason) { - var stream = f._stream, - teeState = f._teeState; - teeState.canceled2 = true; - teeState.reason2 = reason; - if (teeState.canceled1 === true) { - var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); - var cancelResult = ReadableStreamCancel(stream, compositeReason); - teeState._resolve(cancelResult); + if (!this._defer) { + this._listeners.forEach(function (listener) { + listener.call(this, { data: obj }); + }, this); + return; } - return teeState.promise; - } - return f; - } - function ReadableStreamAddReadIntoRequest(stream) { - assert(IsReadableStreamBYOBReader(stream._reader) === true); - assert(stream._state === 'readable' || stream._state === 'closed'); - var promise = new Promise(function (resolve, reject) { - var readIntoRequest = { - _resolve: resolve, - _reject: reject - }; - stream._reader._readIntoRequests.push(readIntoRequest); - }); - return promise; - } - function ReadableStreamAddReadRequest(stream) { - assert(IsReadableStreamDefaultReader(stream._reader) === true); - assert(stream._state === 'readable'); - var promise = new Promise(function (resolve, reject) { - var readRequest = { - _resolve: resolve, - _reject: reject - }; - stream._reader._readRequests.push(readRequest); - }); - return promise; - } - function ReadableStreamCancel(stream, reason) { - stream._disturbed = true; - if (stream._state === 'closed') { - return Promise.resolve(undefined); - } - if (stream._state === 'errored') { - return Promise.reject(stream._storedError); + var cloned = new WeakMap(); + var e = { data: cloneValue(obj) }; + this._deferred.then(function () { + _this5._listeners.forEach(function (listener) { + listener.call(this, e); + }, _this5); + }); } - ReadableStreamClose(stream); - var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason); - return sourceCancelPromise.then(function () { - return undefined; - }); - } - function ReadableStreamClose(stream) { - assert(stream._state === 'readable'); - stream._state = 'closed'; - var reader = stream._reader; - if (reader === undefined) { - return undefined; + }, { + key: 'addEventListener', + value: function addEventListener(name, listener) { + this._listeners.push(listener); } - if (IsReadableStreamDefaultReader(reader) === true) { - for (var i = 0; i < reader._readRequests.length; i++) { - var _resolve = reader._readRequests[i]._resolve; - _resolve(CreateIterResultObject(undefined, true)); - } - reader._readRequests = []; + }, { + key: 'removeEventListener', + value: function removeEventListener(name, listener) { + var i = this._listeners.indexOf(listener); + this._listeners.splice(i, 1); } - defaultReaderClosedPromiseResolve(reader); - return undefined; - } - function ReadableStreamError(stream, e) { - assert(IsReadableStream(stream) === true, 'stream must be ReadableStream'); - assert(stream._state === 'readable', 'state must be readable'); - stream._state = 'errored'; - stream._storedError = e; - var reader = stream._reader; - if (reader === undefined) { - return undefined; + }, { + key: 'terminate', + value: function terminate() { + this._listeners = []; } - if (IsReadableStreamDefaultReader(reader) === true) { - for (var i = 0; i < reader._readRequests.length; i++) { - var readRequest = reader._readRequests[i]; - readRequest._reject(e); - } - reader._readRequests = []; - } else { - assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader'); - for (var _i = 0; _i < reader._readIntoRequests.length; _i++) { - var readIntoRequest = reader._readIntoRequests[_i]; - readIntoRequest._reject(e); - } - reader._readIntoRequests = []; + }]); + + return LoopbackPort; +}(); + +var PDFWorker = function PDFWorkerClosure() { + var nextFakeWorkerId = 0; + function getWorkerSrc() { + if (_worker_options.GlobalWorkerOptions.workerSrc) { + return _worker_options.GlobalWorkerOptions.workerSrc; } - defaultReaderClosedPromiseReject(reader, e); - reader._closedPromise.catch(function () {}); - } - function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) { - var reader = stream._reader; - assert(reader._readIntoRequests.length > 0); - var readIntoRequest = reader._readIntoRequests.shift(); - readIntoRequest._resolve(CreateIterResultObject(chunk, done)); + if (typeof workerSrc !== 'undefined') { + return workerSrc; + } + if (pdfjsFilePath) { + return pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, '.worker$1$2'); + } + throw new Error('No "GlobalWorkerOptions.workerSrc" specified.'); } - function ReadableStreamFulfillReadRequest(stream, chunk, done) { - var reader = stream._reader; - assert(reader._readRequests.length > 0); - var readRequest = reader._readRequests.shift(); - readRequest._resolve(CreateIterResultObject(chunk, done)); + function getMainThreadWorkerMessageHandler() { + if (typeof window === 'undefined') { + return null; + } + return window.pdfjsDistBuildPdfWorker && window.pdfjsDistBuildPdfWorker.WorkerMessageHandler; } - function ReadableStreamGetNumReadIntoRequests(stream) { - return stream._reader._readIntoRequests.length; + var fakeWorkerFilesLoadedCapability = void 0; + function setupFakeWorkerGlobal() { + if (fakeWorkerFilesLoadedCapability) { + return fakeWorkerFilesLoadedCapability.promise; + } + fakeWorkerFilesLoadedCapability = (0, _util.createPromiseCapability)(); + var mainWorkerMessageHandler = getMainThreadWorkerMessageHandler(); + if (mainWorkerMessageHandler) { + fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler); + return fakeWorkerFilesLoadedCapability.promise; + } + var loader = fakeWorkerFilesLoader || function (callback) { + _util.Util.loadScript(getWorkerSrc(), function () { + callback(window.pdfjsDistBuildPdfWorker.WorkerMessageHandler); + }); + }; + loader(fakeWorkerFilesLoadedCapability.resolve); + return fakeWorkerFilesLoadedCapability.promise; } - function ReadableStreamGetNumReadRequests(stream) { - return stream._reader._readRequests.length; + function createCDNWrapper(url) { + var wrapper = 'importScripts(\'' + url + '\');'; + return URL.createObjectURL(new Blob([wrapper])); } - function ReadableStreamHasBYOBReader(stream) { - var reader = stream._reader; - if (reader === undefined) { - return false; + var pdfWorkerPorts = new WeakMap(); + function PDFWorker() { + var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref2$name = _ref2.name, + name = _ref2$name === undefined ? null : _ref2$name, + _ref2$port = _ref2.port, + port = _ref2$port === undefined ? null : _ref2$port, + _ref2$postMessageTran = _ref2.postMessageTransfers, + postMessageTransfers = _ref2$postMessageTran === undefined ? true : _ref2$postMessageTran, + _ref2$verbosity = _ref2.verbosity, + verbosity = _ref2$verbosity === undefined ? null : _ref2$verbosity; + + if (port && pdfWorkerPorts.has(port)) { + throw new Error('Cannot use more than one PDFWorker per port'); } - if (IsReadableStreamBYOBReader(reader) === false) { - return false; + this.name = name; + this.destroyed = false; + this.postMessageTransfers = postMessageTransfers !== false; + this.verbosity = (0, _util.isNum)(verbosity) ? verbosity : (0, _util.getVerbosityLevel)(); + this._readyCapability = (0, _util.createPromiseCapability)(); + this._port = null; + this._webWorker = null; + this._messageHandler = null; + if (port) { + pdfWorkerPorts.set(port, this); + this._initializeFromPort(port); + return; } - return true; + this._initialize(); } - function ReadableStreamHasDefaultReader(stream) { - var reader = stream._reader; - if (reader === undefined) { - return false; + PDFWorker.prototype = { + get promise() { + return this._readyCapability.promise; + }, + get port() { + return this._port; + }, + get messageHandler() { + return this._messageHandler; + }, + _initializeFromPort: function PDFWorker_initializeFromPort(port) { + this._port = port; + this._messageHandler = new _util.MessageHandler('main', 'worker', port); + this._messageHandler.on('ready', function () {}); + this._readyCapability.resolve(); + }, + _initialize: function PDFWorker_initialize() { + var _this6 = this; + + if (typeof Worker !== 'undefined' && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) { + var workerSrc = getWorkerSrc(); + try { + if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) { + workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href); + } + var worker = new Worker(workerSrc); + var messageHandler = new _util.MessageHandler('main', 'worker', worker); + var terminateEarly = function terminateEarly() { + worker.removeEventListener('error', onWorkerError); + messageHandler.destroy(); + worker.terminate(); + if (_this6.destroyed) { + _this6._readyCapability.reject(new Error('Worker was destroyed')); + } else { + _this6._setupFakeWorker(); + } + }; + var onWorkerError = function onWorkerError() { + if (!_this6._webWorker) { + terminateEarly(); + } + }; + worker.addEventListener('error', onWorkerError); + messageHandler.on('test', function (data) { + worker.removeEventListener('error', onWorkerError); + if (_this6.destroyed) { + terminateEarly(); + return; + } + var supportTypedArray = data && data.supportTypedArray; + if (supportTypedArray) { + _this6._messageHandler = messageHandler; + _this6._port = worker; + _this6._webWorker = worker; + if (!data.supportTransfers) { + _this6.postMessageTransfers = false; + } + _this6._readyCapability.resolve(); + messageHandler.send('configure', { verbosity: _this6.verbosity }); + } else { + _this6._setupFakeWorker(); + messageHandler.destroy(); + worker.terminate(); + } + }); + messageHandler.on('ready', function (data) { + worker.removeEventListener('error', onWorkerError); + if (_this6.destroyed) { + terminateEarly(); + return; + } + try { + sendTest(); + } catch (e) { + _this6._setupFakeWorker(); + } + }); + var sendTest = function sendTest() { + var testObj = new Uint8Array([_this6.postMessageTransfers ? 255 : 0]); + try { + messageHandler.send('test', testObj, [testObj.buffer]); + } catch (ex) { + (0, _util.info)('Cannot use postMessage transfers'); + testObj[0] = 0; + messageHandler.send('test', testObj); + } + }; + sendTest(); + return; + } catch (e) { + (0, _util.info)('The worker has been disabled.'); + } + } + this._setupFakeWorker(); + }, + _setupFakeWorker: function PDFWorker_setupFakeWorker() { + var _this7 = this; + + if (!isWorkerDisabled) { + (0, _util.warn)('Setting up fake worker.'); + isWorkerDisabled = true; + } + setupFakeWorkerGlobal().then(function (WorkerMessageHandler) { + if (_this7.destroyed) { + _this7._readyCapability.reject(new Error('Worker was destroyed')); + return; + } + var isTypedArraysPresent = Uint8Array !== Float32Array; + var port = new LoopbackPort(isTypedArraysPresent); + _this7._port = port; + var id = 'fake' + nextFakeWorkerId++; + var workerHandler = new _util.MessageHandler(id + '_worker', id, port); + WorkerMessageHandler.setup(workerHandler, port); + var messageHandler = new _util.MessageHandler(id, id + '_worker', port); + _this7._messageHandler = messageHandler; + _this7._readyCapability.resolve(); + }); + }, + destroy: function PDFWorker_destroy() { + this.destroyed = true; + if (this._webWorker) { + this._webWorker.terminate(); + this._webWorker = null; + } + pdfWorkerPorts.delete(this._port); + this._port = null; + if (this._messageHandler) { + this._messageHandler.destroy(); + this._messageHandler = null; + } } - if (IsReadableStreamDefaultReader(reader) === false) { - return false; + }; + PDFWorker.fromPort = function (params) { + if (pdfWorkerPorts.has(params.port)) { + return pdfWorkerPorts.get(params.port); } - return true; - } - var ReadableStreamDefaultReader = function () { - function ReadableStreamDefaultReader(stream) { - _classCallCheck(this, ReadableStreamDefaultReader); - if (IsReadableStream(stream) === false) { - throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance'); + return new PDFWorker(params); + }; + PDFWorker.getWorkerSrc = function () { + return getWorkerSrc(); + }; + return PDFWorker; +}(); +var WorkerTransport = function WorkerTransportClosure() { + function WorkerTransport(messageHandler, loadingTask, networkStream, params, CMapReaderFactory) { + this.messageHandler = messageHandler; + this.loadingTask = loadingTask; + this.commonObjs = new PDFObjects(); + this.fontLoader = new _font_loader.FontLoader(loadingTask.docId); + this._params = params; + this.CMapReaderFactory = new CMapReaderFactory({ + baseUrl: params.cMapUrl, + isCompressed: params.cMapPacked + }); + this.destroyed = false; + this.destroyCapability = null; + this._passwordCapability = null; + this._networkStream = networkStream; + this._fullReader = null; + this._lastProgress = null; + this.pageCache = []; + this.pagePromises = []; + this.downloadInfoCapability = (0, _util.createPromiseCapability)(); + this.setupMessageHandler(); + } + WorkerTransport.prototype = { + destroy: function WorkerTransport_destroy() { + var _this8 = this; + + if (this.destroyCapability) { + return this.destroyCapability.promise; } - if (IsReadableStreamLocked(stream) === true) { - throw new TypeError('This stream has already been locked for exclusive reading by another reader'); + this.destroyed = true; + this.destroyCapability = (0, _util.createPromiseCapability)(); + if (this._passwordCapability) { + this._passwordCapability.reject(new Error('Worker was destroyed during onPassword callback')); } - ReadableStreamReaderGenericInitialize(this, stream); - this._readRequests = []; - } - _createClass(ReadableStreamDefaultReader, [{ - key: 'cancel', - value: function cancel(reason) { - if (IsReadableStreamDefaultReader(this) === false) { - return Promise.reject(defaultReaderBrandCheckException('cancel')); - } - if (this._ownerReadableStream === undefined) { - return Promise.reject(readerLockException('cancel')); + var waitOn = []; + this.pageCache.forEach(function (page) { + if (page) { + waitOn.push(page._destroy()); } - return ReadableStreamReaderGenericCancel(this, reason); - } - }, { - key: 'read', - value: function read() { - if (IsReadableStreamDefaultReader(this) === false) { - return Promise.reject(defaultReaderBrandCheckException('read')); + }); + this.pageCache = []; + this.pagePromises = []; + var terminated = this.messageHandler.sendWithPromise('Terminate', null); + waitOn.push(terminated); + Promise.all(waitOn).then(function () { + _this8.fontLoader.clear(); + if (_this8._networkStream) { + _this8._networkStream.cancelAllRequests(); } - if (this._ownerReadableStream === undefined) { - return Promise.reject(readerLockException('read from')); + if (_this8.messageHandler) { + _this8.messageHandler.destroy(); + _this8.messageHandler = null; } - return ReadableStreamDefaultReaderRead(this); - } - }, { - key: 'releaseLock', - value: function releaseLock() { - if (IsReadableStreamDefaultReader(this) === false) { - throw defaultReaderBrandCheckException('releaseLock'); + _this8.destroyCapability.resolve(); + }, this.destroyCapability.reject); + return this.destroyCapability.promise; + }, + setupMessageHandler: function WorkerTransport_setupMessageHandler() { + var messageHandler = this.messageHandler; + var loadingTask = this.loadingTask; + messageHandler.on('GetReader', function (data, sink) { + var _this9 = this; + + (0, _util.assert)(this._networkStream); + this._fullReader = this._networkStream.getFullReader(); + this._fullReader.onProgress = function (evt) { + _this9._lastProgress = { + loaded: evt.loaded, + total: evt.total + }; + }; + sink.onPull = function () { + _this9._fullReader.read().then(function (_ref3) { + var value = _ref3.value, + done = _ref3.done; + + if (done) { + sink.close(); + return; + } + (0, _util.assert)((0, _util.isArrayBuffer)(value)); + sink.enqueue(new Uint8Array(value), 1, [value]); + }).catch(function (reason) { + sink.error(reason); + }); + }; + sink.onCancel = function (reason) { + _this9._fullReader.cancel(reason); + }; + }, this); + messageHandler.on('ReaderHeadersReady', function (data) { + var _this10 = this; + + var headersCapability = (0, _util.createPromiseCapability)(); + var fullReader = this._fullReader; + fullReader.headersReady.then(function () { + if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) { + if (_this10._lastProgress) { + var _loadingTask = _this10.loadingTask; + if (_loadingTask.onProgress) { + _loadingTask.onProgress(_this10._lastProgress); + } + } + fullReader.onProgress = function (evt) { + var loadingTask = _this10.loadingTask; + if (loadingTask.onProgress) { + loadingTask.onProgress({ + loaded: evt.loaded, + total: evt.total + }); + } + }; + } + headersCapability.resolve({ + isStreamingSupported: fullReader.isStreamingSupported, + isRangeSupported: fullReader.isRangeSupported, + contentLength: fullReader.contentLength + }); + }, headersCapability.reject); + return headersCapability.promise; + }, this); + messageHandler.on('GetRangeReader', function (data, sink) { + (0, _util.assert)(this._networkStream); + var _rangeReader = this._networkStream.getRangeReader(data.begin, data.end); + sink.onPull = function () { + _rangeReader.read().then(function (_ref4) { + var value = _ref4.value, + done = _ref4.done; + + if (done) { + sink.close(); + return; + } + (0, _util.assert)((0, _util.isArrayBuffer)(value)); + sink.enqueue(new Uint8Array(value), 1, [value]); + }).catch(function (reason) { + sink.error(reason); + }); + }; + sink.onCancel = function (reason) { + _rangeReader.cancel(reason); + }; + }, this); + messageHandler.on('GetDoc', function transportDoc(_ref5) { + var pdfInfo = _ref5.pdfInfo; + + this.numPages = pdfInfo.numPages; + var loadingTask = this.loadingTask; + var pdfDocument = new PDFDocumentProxy(pdfInfo, this, loadingTask); + this.pdfDocument = pdfDocument; + loadingTask._capability.resolve(pdfDocument); + }, this); + messageHandler.on('PasswordRequest', function transportPasswordRequest(exception) { + var _this11 = this; + + this._passwordCapability = (0, _util.createPromiseCapability)(); + if (loadingTask.onPassword) { + var updatePassword = function updatePassword(password) { + _this11._passwordCapability.resolve({ password: password }); + }; + loadingTask.onPassword(updatePassword, exception.code); + } else { + this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code)); } - if (this._ownerReadableStream === undefined) { + return this._passwordCapability.promise; + }, this); + messageHandler.on('PasswordException', function transportPasswordException(exception) { + loadingTask._capability.reject(new _util.PasswordException(exception.message, exception.code)); + }, this); + messageHandler.on('InvalidPDF', function transportInvalidPDF(exception) { + this.loadingTask._capability.reject(new _util.InvalidPDFException(exception.message)); + }, this); + messageHandler.on('MissingPDF', function transportMissingPDF(exception) { + this.loadingTask._capability.reject(new _util.MissingPDFException(exception.message)); + }, this); + messageHandler.on('UnexpectedResponse', function transportUnexpectedResponse(exception) { + this.loadingTask._capability.reject(new _util.UnexpectedResponseException(exception.message, exception.status)); + }, this); + messageHandler.on('UnknownError', function transportUnknownError(exception) { + this.loadingTask._capability.reject(new _util.UnknownErrorException(exception.message, exception.details)); + }, this); + messageHandler.on('DataLoaded', function transportPage(data) { + this.downloadInfoCapability.resolve(data); + }, this); + messageHandler.on('PDFManagerReady', function transportPage(data) {}, this); + messageHandler.on('StartRenderPage', function transportRender(data) { + if (this.destroyed) { return; } - if (this._readRequests.length > 0) { - throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); - } - ReadableStreamReaderGenericRelease(this); - } - }, { - key: 'closed', - get: function get() { - if (IsReadableStreamDefaultReader(this) === false) { - return Promise.reject(defaultReaderBrandCheckException('closed')); - } - return this._closedPromise; - } - }]); - return ReadableStreamDefaultReader; - }(); - var ReadableStreamBYOBReader = function () { - function ReadableStreamBYOBReader(stream) { - _classCallCheck(this, ReadableStreamBYOBReader); - if (!IsReadableStream(stream)) { - throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source'); - } - if (IsReadableByteStreamController(stream._readableStreamController) === false) { - throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source'); - } - if (IsReadableStreamLocked(stream)) { - throw new TypeError('This stream has already been locked for exclusive reading by another reader'); - } - ReadableStreamReaderGenericInitialize(this, stream); - this._readIntoRequests = []; - } - _createClass(ReadableStreamBYOBReader, [{ - key: 'cancel', - value: function cancel(reason) { - if (!IsReadableStreamBYOBReader(this)) { - return Promise.reject(byobReaderBrandCheckException('cancel')); - } - if (this._ownerReadableStream === undefined) { - return Promise.reject(readerLockException('cancel')); - } - return ReadableStreamReaderGenericCancel(this, reason); - } - }, { - key: 'read', - value: function read(view) { - if (!IsReadableStreamBYOBReader(this)) { - return Promise.reject(byobReaderBrandCheckException('read')); - } - if (this._ownerReadableStream === undefined) { - return Promise.reject(readerLockException('read from')); + var page = this.pageCache[data.pageIndex]; + page._stats.timeEnd('Page Request'); + page._startRenderPage(data.transparency, data.intent); + }, this); + messageHandler.on('RenderPageChunk', function transportRender(data) { + if (this.destroyed) { + return; } - if (!ArrayBuffer.isView(view)) { - return Promise.reject(new TypeError('view must be an array buffer view')); + var page = this.pageCache[data.pageIndex]; + page._renderPageChunk(data.operatorList, data.intent); + }, this); + messageHandler.on('commonobj', function transportObj(data) { + var _this12 = this; + + if (this.destroyed) { + return; } - if (view.byteLength === 0) { - return Promise.reject(new TypeError('view must have non-zero byteLength')); + var id = data[0]; + var type = data[1]; + if (this.commonObjs.hasData(id)) { + return; } - return ReadableStreamBYOBReaderRead(this, view); - } - }, { - key: 'releaseLock', - value: function releaseLock() { - if (!IsReadableStreamBYOBReader(this)) { - throw byobReaderBrandCheckException('releaseLock'); + switch (type) { + case 'Font': + var exportedData = data[2]; + var params = this._params; + if ('error' in exportedData) { + var exportedError = exportedData.error; + (0, _util.warn)('Error during font loading: ' + exportedError); + this.commonObjs.resolve(id, exportedError); + break; + } + var fontRegistry = null; + if (params.pdfBug && _global_scope2.default.FontInspector && _global_scope2.default.FontInspector.enabled) { + fontRegistry = { + registerFont: function registerFont(font, url) { + _global_scope2.default['FontInspector'].fontAdded(font, url); + } + }; + } + var font = new _font_loader.FontFaceObject(exportedData, { + isEvalSupported: params.isEvalSupported, + disableFontFace: params.disableFontFace, + fontRegistry: fontRegistry + }); + var fontReady = function fontReady(fontObjs) { + _this12.commonObjs.resolve(id, font); + }; + this.fontLoader.bind([font], fontReady); + break; + case 'FontPath': + this.commonObjs.resolve(id, data[2]); + break; + default: + throw new Error('Got unknown common object type ' + type); } - if (this._ownerReadableStream === undefined) { + }, this); + messageHandler.on('obj', function transportObj(data) { + if (this.destroyed) { return; } - if (this._readIntoRequests.length > 0) { - throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); + var id = data[0]; + var pageIndex = data[1]; + var type = data[2]; + var pageProxy = this.pageCache[pageIndex]; + var imageData; + if (pageProxy.objs.hasData(id)) { + return; } - ReadableStreamReaderGenericRelease(this); - } - }, { - key: 'closed', - get: function get() { - if (!IsReadableStreamBYOBReader(this)) { - return Promise.reject(byobReaderBrandCheckException('closed')); + switch (type) { + case 'JpegStream': + imageData = data[3]; + return new Promise(function (resolve, reject) { + var img = new Image(); + img.onload = function () { + resolve(img); + }; + img.onerror = function () { + reject(new Error('Error during JPEG image loading')); + }; + img.src = imageData; + }).then(function (img) { + pageProxy.objs.resolve(id, img); + }); + case 'Image': + imageData = data[3]; + pageProxy.objs.resolve(id, imageData); + var MAX_IMAGE_SIZE_TO_STORE = 8000000; + if (imageData && 'data' in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) { + pageProxy.cleanupAfterRender = true; + } + break; + default: + throw new Error('Got unknown object type ' + type); } - return this._closedPromise; - } - }]); - return ReadableStreamBYOBReader; - }(); - function IsReadableStreamBYOBReader(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) { - return false; - } - return true; - } - function IsReadableStreamDefaultReader(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) { - return false; - } - return true; - } - function ReadableStreamReaderGenericInitialize(reader, stream) { - reader._ownerReadableStream = stream; - stream._reader = reader; - if (stream._state === 'readable') { - defaultReaderClosedPromiseInitialize(reader); - } else if (stream._state === 'closed') { - defaultReaderClosedPromiseInitializeAsResolved(reader); - } else { - assert(stream._state === 'errored', 'state must be errored'); - defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError); - reader._closedPromise.catch(function () {}); - } - } - function ReadableStreamReaderGenericCancel(reader, reason) { - var stream = reader._ownerReadableStream; - assert(stream !== undefined); - return ReadableStreamCancel(stream, reason); - } - function ReadableStreamReaderGenericRelease(reader) { - assert(reader._ownerReadableStream !== undefined); - assert(reader._ownerReadableStream._reader === reader); - if (reader._ownerReadableStream._state === 'readable') { - defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); - } else { - defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); - } - reader._closedPromise.catch(function () {}); - reader._ownerReadableStream._reader = undefined; - reader._ownerReadableStream = undefined; - } - function ReadableStreamBYOBReaderRead(reader, view) { - var stream = reader._ownerReadableStream; - assert(stream !== undefined); - stream._disturbed = true; - if (stream._state === 'errored') { - return Promise.reject(stream._storedError); - } - return ReadableByteStreamControllerPullInto(stream._readableStreamController, view); - } - function ReadableStreamDefaultReaderRead(reader) { - var stream = reader._ownerReadableStream; - assert(stream !== undefined); - stream._disturbed = true; - if (stream._state === 'closed') { - return Promise.resolve(CreateIterResultObject(undefined, true)); - } - if (stream._state === 'errored') { - return Promise.reject(stream._storedError); - } - assert(stream._state === 'readable'); - return stream._readableStreamController.__pullSteps(); - } - var ReadableStreamDefaultController = function () { - function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) { - _classCallCheck(this, ReadableStreamDefaultController); - if (IsReadableStream(stream) === false) { - throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance'); - } - if (stream._readableStreamController !== undefined) { - throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor'); - } - this._controlledReadableStream = stream; - this._underlyingSource = underlyingSource; - this._queue = undefined; - this._queueTotalSize = undefined; - ResetQueue(this); - this._started = false; - this._closeRequested = false; - this._pullAgain = false; - this._pulling = false; - var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); - this._strategySize = normalizedStrategy.size; - this._strategyHWM = normalizedStrategy.highWaterMark; - var controller = this; - var startResult = InvokeOrNoop(underlyingSource, 'start', [this]); - Promise.resolve(startResult).then(function () { - controller._started = true; - assert(controller._pulling === false); - assert(controller._pullAgain === false); - ReadableStreamDefaultControllerCallPullIfNeeded(controller); - }, function (r) { - ReadableStreamDefaultControllerErrorIfNeeded(controller, r); - }).catch(rethrowAssertionErrorRejection); - } - _createClass(ReadableStreamDefaultController, [{ - key: 'close', - value: function close() { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('close'); + }, this); + messageHandler.on('DocProgress', function transportDocProgress(data) { + if (this.destroyed) { + return; } - if (this._closeRequested === true) { - throw new TypeError('The stream has already been closed; do not close it again!'); + var loadingTask = this.loadingTask; + if (loadingTask.onProgress) { + loadingTask.onProgress({ + loaded: data.loaded, + total: data.total + }); } - var state = this._controlledReadableStream._state; - if (state !== 'readable') { - throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); + }, this); + messageHandler.on('PageError', function transportError(data) { + if (this.destroyed) { + return; } - ReadableStreamDefaultControllerClose(this); - } - }, { - key: 'enqueue', - value: function enqueue(chunk) { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('enqueue'); + var page = this.pageCache[data.pageNum - 1]; + var intentState = page.intentStates[data.intent]; + if (intentState.displayReadyCapability) { + intentState.displayReadyCapability.reject(data.error); + } else { + throw new Error(data.error); } - if (this._closeRequested === true) { - throw new TypeError('stream is closed or draining'); + if (intentState.operatorList) { + intentState.operatorList.lastChunk = true; + for (var i = 0; i < intentState.renderTasks.length; i++) { + intentState.renderTasks[i].operatorListChanged(); + } } - var state = this._controlledReadableStream._state; - if (state !== 'readable') { - throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); + }, this); + messageHandler.on('UnsupportedFeature', function (data) { + if (this.destroyed) { + return; } - return ReadableStreamDefaultControllerEnqueue(this, chunk); - } - }, { - key: 'error', - value: function error(e) { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('error'); + var loadingTask = this.loadingTask; + if (loadingTask.onUnsupportedFeature) { + loadingTask.onUnsupportedFeature(data.featureId); } - var stream = this._controlledReadableStream; - if (stream._state !== 'readable') { - throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); + }, this); + messageHandler.on('JpegDecode', function (data) { + if (this.destroyed) { + return Promise.reject(new Error('Worker was destroyed')); } - ReadableStreamDefaultControllerError(this, e); - } - }, { - key: '__cancelSteps', - value: function __cancelSteps(reason) { - ResetQueue(this); - return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]); - } - }, { - key: '__pullSteps', - value: function __pullSteps() { - var stream = this._controlledReadableStream; - if (this._queue.length > 0) { - var chunk = DequeueValue(this); - if (this._closeRequested === true && this._queue.length === 0) { - ReadableStreamClose(stream); - } else { - ReadableStreamDefaultControllerCallPullIfNeeded(this); - } - return Promise.resolve(CreateIterResultObject(chunk, false)); + if (typeof document === 'undefined') { + return Promise.reject(new Error('"document" is not defined.')); } - var pendingPromise = ReadableStreamAddReadRequest(stream); - ReadableStreamDefaultControllerCallPullIfNeeded(this); - return pendingPromise; - } - }, { - key: 'desiredSize', - get: function get() { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('desiredSize'); + var imageUrl = data[0]; + var components = data[1]; + if (components !== 3 && components !== 1) { + return Promise.reject(new Error('Only 3 components or 1 component can be returned')); } - return ReadableStreamDefaultControllerGetDesiredSize(this); - } - }]); - return ReadableStreamDefaultController; - }(); - function IsReadableStreamDefaultController(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) { - return false; - } - return true; - } - function ReadableStreamDefaultControllerCallPullIfNeeded(controller) { - var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller); - if (shouldPull === false) { - return undefined; - } - if (controller._pulling === true) { - controller._pullAgain = true; - return undefined; - } - assert(controller._pullAgain === false); - controller._pulling = true; - var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]); - pullPromise.then(function () { - controller._pulling = false; - if (controller._pullAgain === true) { - controller._pullAgain = false; - return ReadableStreamDefaultControllerCallPullIfNeeded(controller); - } - return undefined; - }, function (e) { - ReadableStreamDefaultControllerErrorIfNeeded(controller, e); - }).catch(rethrowAssertionErrorRejection); - return undefined; - } - function ReadableStreamDefaultControllerShouldCallPull(controller) { - var stream = controller._controlledReadableStream; - if (stream._state === 'closed' || stream._state === 'errored') { - return false; - } - if (controller._closeRequested === true) { - return false; - } - if (controller._started === false) { - return false; - } - if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { - return true; - } - var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); - if (desiredSize > 0) { - return true; - } - return false; - } - function ReadableStreamDefaultControllerClose(controller) { - var stream = controller._controlledReadableStream; - assert(controller._closeRequested === false); - assert(stream._state === 'readable'); - controller._closeRequested = true; - if (controller._queue.length === 0) { - ReadableStreamClose(stream); - } - } - function ReadableStreamDefaultControllerEnqueue(controller, chunk) { - var stream = controller._controlledReadableStream; - assert(controller._closeRequested === false); - assert(stream._state === 'readable'); - if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { - ReadableStreamFulfillReadRequest(stream, chunk, false); - } else { - var chunkSize = 1; - if (controller._strategySize !== undefined) { - var strategySize = controller._strategySize; - try { - chunkSize = strategySize(chunk); - } catch (chunkSizeE) { - ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); - throw chunkSizeE; + return new Promise(function (resolve, reject) { + var img = new Image(); + img.onload = function () { + var width = img.width; + var height = img.height; + var size = width * height; + var rgbaLength = size * 4; + var buf = new Uint8Array(size * components); + var tmpCanvas = document.createElement('canvas'); + tmpCanvas.width = width; + tmpCanvas.height = height; + var tmpCtx = tmpCanvas.getContext('2d'); + tmpCtx.drawImage(img, 0, 0); + var data = tmpCtx.getImageData(0, 0, width, height).data; + var i, j; + if (components === 3) { + for (i = 0, j = 0; i < rgbaLength; i += 4, j += 3) { + buf[j] = data[i]; + buf[j + 1] = data[i + 1]; + buf[j + 2] = data[i + 2]; + } + } else if (components === 1) { + for (i = 0, j = 0; i < rgbaLength; i += 4, j++) { + buf[j] = data[i]; + } + } + resolve({ + data: buf, + width: width, + height: height + }); + }; + img.onerror = function () { + reject(new Error('JpegDecode failed to load image')); + }; + img.src = imageUrl; + }); + }, this); + messageHandler.on('FetchBuiltInCMap', function (data) { + if (this.destroyed) { + return Promise.reject(new Error('Worker was destroyed')); } + return this.CMapReaderFactory.fetch({ name: data.name }); + }, this); + }, + getData: function WorkerTransport_getData() { + return this.messageHandler.sendWithPromise('GetData', null); + }, + getPage: function getPage(pageNumber) { + var _this13 = this; + + if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this.numPages) { + return Promise.reject(new Error('Invalid page request')); } - try { - EnqueueValueWithSize(controller, chunk, chunkSize); - } catch (enqueueE) { - ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); - throw enqueueE; + var pageIndex = pageNumber - 1; + if (pageIndex in this.pagePromises) { + return this.pagePromises[pageIndex]; } + var promise = this.messageHandler.sendWithPromise('GetPage', { pageIndex: pageIndex }).then(function (pageInfo) { + if (_this13.destroyed) { + throw new Error('Transport destroyed'); + } + var page = new PDFPageProxy(pageIndex, pageInfo, _this13, _this13._params.pdfBug); + _this13.pageCache[pageIndex] = page; + return page; + }); + this.pagePromises[pageIndex] = promise; + return promise; + }, + + getPageIndex: function WorkerTransport_getPageIndexByRef(ref) { + return this.messageHandler.sendWithPromise('GetPageIndex', { ref: ref }).catch(function (reason) { + return Promise.reject(new Error(reason)); + }); + }, + getAnnotations: function WorkerTransport_getAnnotations(pageIndex, intent) { + return this.messageHandler.sendWithPromise('GetAnnotations', { + pageIndex: pageIndex, + intent: intent + }); + }, + getDestinations: function WorkerTransport_getDestinations() { + return this.messageHandler.sendWithPromise('GetDestinations', null); + }, + getDestination: function WorkerTransport_getDestination(id) { + return this.messageHandler.sendWithPromise('GetDestination', { id: id }); + }, + getPageLabels: function WorkerTransport_getPageLabels() { + return this.messageHandler.sendWithPromise('GetPageLabels', null); + }, + getPageMode: function getPageMode() { + return this.messageHandler.sendWithPromise('GetPageMode', null); + }, + + getAttachments: function WorkerTransport_getAttachments() { + return this.messageHandler.sendWithPromise('GetAttachments', null); + }, + getJavaScript: function WorkerTransport_getJavaScript() { + return this.messageHandler.sendWithPromise('GetJavaScript', null); + }, + getOutline: function WorkerTransport_getOutline() { + return this.messageHandler.sendWithPromise('GetOutline', null); + }, + getMetadata: function WorkerTransport_getMetadata() { + var _this14 = this; + + return this.messageHandler.sendWithPromise('GetMetadata', null).then(function (results) { + return { + info: results[0], + metadata: results[1] ? new _metadata.Metadata(results[1]) : null, + contentDispositionFilename: _this14._fullReader ? _this14._fullReader.filename : null + }; + }); + }, + getStats: function WorkerTransport_getStats() { + return this.messageHandler.sendWithPromise('GetStats', null); + }, + startCleanup: function WorkerTransport_startCleanup() { + var _this15 = this; + + this.messageHandler.sendWithPromise('Cleanup', null).then(function () { + for (var i = 0, ii = _this15.pageCache.length; i < ii; i++) { + var page = _this15.pageCache[i]; + if (page) { + page.cleanup(); + } + } + _this15.commonObjs.clear(); + _this15.fontLoader.clear(); + }); + }, + get loadingParams() { + var params = this._params; + return (0, _util.shadow)(this, 'loadingParams', { + disableRange: params.disableRange, + disableStream: params.disableStream, + disableAutoFetch: params.disableAutoFetch, + disableCreateObjectURL: params.disableCreateObjectURL + }); } - ReadableStreamDefaultControllerCallPullIfNeeded(controller); - return undefined; - } - function ReadableStreamDefaultControllerError(controller, e) { - var stream = controller._controlledReadableStream; - assert(stream._state === 'readable'); - ResetQueue(controller); - ReadableStreamError(stream, e); + }; + return WorkerTransport; +}(); +var PDFObjects = function PDFObjectsClosure() { + function PDFObjects() { + this.objs = Object.create(null); } - function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) { - if (controller._controlledReadableStream._state === 'readable') { - ReadableStreamDefaultControllerError(controller, e); + PDFObjects.prototype = { + ensureObj: function PDFObjects_ensureObj(objId) { + if (this.objs[objId]) { + return this.objs[objId]; + } + var obj = { + capability: (0, _util.createPromiseCapability)(), + data: null, + resolved: false + }; + this.objs[objId] = obj; + return obj; + }, + get: function PDFObjects_get(objId, callback) { + if (callback) { + this.ensureObj(objId).capability.promise.then(callback); + return null; + } + var obj = this.objs[objId]; + if (!obj || !obj.resolved) { + throw new Error('Requesting object that isn\'t resolved yet ' + objId); + } + return obj.data; + }, + resolve: function PDFObjects_resolve(objId, data) { + var obj = this.ensureObj(objId); + obj.resolved = true; + obj.data = data; + obj.capability.resolve(data); + }, + isResolved: function PDFObjects_isResolved(objId) { + var objs = this.objs; + if (!objs[objId]) { + return false; + } + return objs[objId].resolved; + }, + hasData: function PDFObjects_hasData(objId) { + return this.isResolved(objId); + }, + getData: function PDFObjects_getData(objId) { + var objs = this.objs; + if (!objs[objId] || !objs[objId].resolved) { + return null; + } + return objs[objId].data; + }, + clear: function PDFObjects_clear() { + this.objs = Object.create(null); } + }; + return PDFObjects; +}(); +var RenderTask = function RenderTaskClosure() { + function RenderTask(internalRenderTask) { + this._internalRenderTask = internalRenderTask; + this.onContinue = null; } - function ReadableStreamDefaultControllerGetDesiredSize(controller) { - var stream = controller._controlledReadableStream; - var state = stream._state; - if (state === 'errored') { - return null; - } - if (state === 'closed') { - return 0; + RenderTask.prototype = { + get promise() { + return this._internalRenderTask.capability.promise; + }, + cancel: function RenderTask_cancel() { + this._internalRenderTask.cancel(); + }, + then: function RenderTask_then(onFulfilled, onRejected) { + return this.promise.then.apply(this.promise, arguments); } - return controller._strategyHWM - controller._queueTotalSize; + }; + return RenderTask; +}(); +var InternalRenderTask = function InternalRenderTaskClosure() { + var canvasInRendering = new WeakMap(); + function InternalRenderTask(callback, params, objs, commonObjs, operatorList, pageNumber, canvasFactory, webGLContext) { + var pdfBug = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false; + + this.callback = callback; + this.params = params; + this.objs = objs; + this.commonObjs = commonObjs; + this.operatorListIdx = null; + this.operatorList = operatorList; + this.pageNumber = pageNumber; + this.canvasFactory = canvasFactory; + this.webGLContext = webGLContext; + this._pdfBug = pdfBug; + this.running = false; + this.graphicsReadyCallback = null; + this.graphicsReady = false; + this.useRequestAnimationFrame = false; + this.cancelled = false; + this.capability = (0, _util.createPromiseCapability)(); + this.task = new RenderTask(this); + this._continueBound = this._continue.bind(this); + this._scheduleNextBound = this._scheduleNext.bind(this); + this._nextBound = this._next.bind(this); + this._canvas = params.canvasContext.canvas; } - var ReadableStreamBYOBRequest = function () { - function ReadableStreamBYOBRequest(controller, view) { - _classCallCheck(this, ReadableStreamBYOBRequest); - this._associatedReadableByteStreamController = controller; - this._view = view; - } - _createClass(ReadableStreamBYOBRequest, [{ - key: 'respond', - value: function respond(bytesWritten) { - if (IsReadableStreamBYOBRequest(this) === false) { - throw byobRequestBrandCheckException('respond'); - } - if (this._associatedReadableByteStreamController === undefined) { - throw new TypeError('This BYOB request has been invalidated'); - } - ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten); - } - }, { - key: 'respondWithNewView', - value: function respondWithNewView(view) { - if (IsReadableStreamBYOBRequest(this) === false) { - throw byobRequestBrandCheckException('respond'); - } - if (this._associatedReadableByteStreamController === undefined) { - throw new TypeError('This BYOB request has been invalidated'); - } - if (!ArrayBuffer.isView(view)) { - throw new TypeError('You can only respond with array buffer views'); + InternalRenderTask.prototype = { + initializeGraphics: function InternalRenderTask_initializeGraphics(transparency) { + if (this._canvas) { + if (canvasInRendering.has(this._canvas)) { + throw new Error('Cannot use the same canvas during multiple render() operations. ' + 'Use different canvas or ensure previous operations were ' + 'cancelled or completed.'); } - ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view); - } - }, { - key: 'view', - get: function get() { - return this._view; + canvasInRendering.set(this._canvas, this); } - }]); - return ReadableStreamBYOBRequest; - }(); - var ReadableByteStreamController = function () { - function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) { - _classCallCheck(this, ReadableByteStreamController); - if (IsReadableStream(stream) === false) { - throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source'); + if (this.cancelled) { + return; } - if (stream._readableStreamController !== undefined) { - throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source'); + if (this._pdfBug && _global_scope2.default.StepperManager && _global_scope2.default.StepperManager.enabled) { + this.stepper = _global_scope2.default.StepperManager.create(this.pageNumber - 1); + this.stepper.init(this.operatorList); + this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); } - this._controlledReadableStream = stream; - this._underlyingByteSource = underlyingByteSource; - this._pullAgain = false; - this._pulling = false; - ReadableByteStreamControllerClearPendingPullIntos(this); - this._queue = this._queueTotalSize = undefined; - ResetQueue(this); - this._closeRequested = false; - this._started = false; - this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark); - var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize; - if (autoAllocateChunkSize !== undefined) { - if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) { - throw new RangeError('autoAllocateChunkSize must be a positive integer'); - } + var params = this.params; + this.gfx = new _canvas.CanvasGraphics(params.canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, params.imageLayer); + this.gfx.beginDrawing({ + transform: params.transform, + viewport: params.viewport, + transparency: transparency, + background: params.background + }); + this.operatorListIdx = 0; + this.graphicsReady = true; + if (this.graphicsReadyCallback) { + this.graphicsReadyCallback(); } - this._autoAllocateChunkSize = autoAllocateChunkSize; - this._pendingPullIntos = []; - var controller = this; - var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]); - Promise.resolve(startResult).then(function () { - controller._started = true; - assert(controller._pulling === false); - assert(controller._pullAgain === false); - ReadableByteStreamControllerCallPullIfNeeded(controller); - }, function (r) { - if (stream._state === 'readable') { - ReadableByteStreamControllerError(controller, r); - } - }).catch(rethrowAssertionErrorRejection); - } - _createClass(ReadableByteStreamController, [{ - key: 'close', - value: function close() { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('close'); - } - if (this._closeRequested === true) { - throw new TypeError('The stream has already been closed; do not close it again!'); - } - var state = this._controlledReadableStream._state; - if (state !== 'readable') { - throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); - } - ReadableByteStreamControllerClose(this); + }, + cancel: function InternalRenderTask_cancel() { + this.running = false; + this.cancelled = true; + if (this._canvas) { + canvasInRendering.delete(this._canvas); } - }, { - key: 'enqueue', - value: function enqueue(chunk) { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('enqueue'); - } - if (this._closeRequested === true) { - throw new TypeError('stream is closed or draining'); - } - var state = this._controlledReadableStream._state; - if (state !== 'readable') { - throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); - } - if (!ArrayBuffer.isView(chunk)) { - throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController'); + this.callback(new _dom_utils.RenderingCancelledException('Rendering cancelled, page ' + this.pageNumber, 'canvas')); + }, + operatorListChanged: function InternalRenderTask_operatorListChanged() { + if (!this.graphicsReady) { + if (!this.graphicsReadyCallback) { + this.graphicsReadyCallback = this._continueBound; } - ReadableByteStreamControllerEnqueue(this, chunk); + return; } - }, { - key: 'error', - value: function error(e) { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('error'); - } - var stream = this._controlledReadableStream; - if (stream._state !== 'readable') { - throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); - } - ReadableByteStreamControllerError(this, e); + if (this.stepper) { + this.stepper.updateOperatorList(this.operatorList); } - }, { - key: '__cancelSteps', - value: function __cancelSteps(reason) { - if (this._pendingPullIntos.length > 0) { - var firstDescriptor = this._pendingPullIntos[0]; - firstDescriptor.bytesFilled = 0; - } - ResetQueue(this); - return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]); + if (this.running) { + return; } - }, { - key: '__pullSteps', - value: function __pullSteps() { - var stream = this._controlledReadableStream; - assert(ReadableStreamHasDefaultReader(stream) === true); - if (this._queueTotalSize > 0) { - assert(ReadableStreamGetNumReadRequests(stream) === 0); - var entry = this._queue.shift(); - this._queueTotalSize -= entry.byteLength; - ReadableByteStreamControllerHandleQueueDrain(this); - var view = void 0; - try { - view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength); - } catch (viewE) { - return Promise.reject(viewE); - } - return Promise.resolve(CreateIterResultObject(view, false)); - } - var autoAllocateChunkSize = this._autoAllocateChunkSize; - if (autoAllocateChunkSize !== undefined) { - var buffer = void 0; - try { - buffer = new ArrayBuffer(autoAllocateChunkSize); - } catch (bufferE) { - return Promise.reject(bufferE); + this._continue(); + }, + _continue: function InternalRenderTask__continue() { + this.running = true; + if (this.cancelled) { + return; + } + if (this.task.onContinue) { + this.task.onContinue(this._scheduleNextBound); + } else { + this._scheduleNext(); + } + }, + _scheduleNext: function InternalRenderTask__scheduleNext() { + if (this.useRequestAnimationFrame && typeof window !== 'undefined') { + window.requestAnimationFrame(this._nextBound); + } else { + Promise.resolve(undefined).then(this._nextBound); + } + }, + _next: function InternalRenderTask__next() { + if (this.cancelled) { + return; + } + this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper); + if (this.operatorListIdx === this.operatorList.argsArray.length) { + this.running = false; + if (this.operatorList.lastChunk) { + this.gfx.endDrawing(); + if (this._canvas) { + canvasInRendering.delete(this._canvas); } - var pullIntoDescriptor = { - buffer: buffer, - byteOffset: 0, - byteLength: autoAllocateChunkSize, - bytesFilled: 0, - elementSize: 1, - ctor: Uint8Array, - readerType: 'default' - }; - this._pendingPullIntos.push(pullIntoDescriptor); + this.callback(); } - var promise = ReadableStreamAddReadRequest(stream); - ReadableByteStreamControllerCallPullIfNeeded(this); - return promise; } - }, { - key: 'byobRequest', - get: function get() { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('byobRequest'); + } + }; + return InternalRenderTask; +}(); +var version, build; +{ + exports.version = version = '2.0.419'; + exports.build = build = 'c33bf800'; +} +exports.getDocument = getDocument; +exports.LoopbackPort = LoopbackPort; +exports.PDFDataRangeTransport = PDFDataRangeTransport; +exports.PDFWorker = PDFWorker; +exports.PDFDocumentProxy = PDFDocumentProxy; +exports.PDFPageProxy = PDFPageProxy; +exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory; +exports.version = version; +exports.build = build; + +/***/ }), +/* 118 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.FontLoader = exports.FontFaceObject = undefined; + +var _util = __w_pdfjs_require__(0); + +function FontLoader(docId) { + this.docId = docId; + this.styleElement = null; + this.nativeFontFaces = []; + this.loadTestFontId = 0; + this.loadingContext = { + requests: [], + nextRequestId: 0 + }; +} +FontLoader.prototype = { + insertRule: function fontLoaderInsertRule(rule) { + var styleElement = this.styleElement; + if (!styleElement) { + styleElement = this.styleElement = document.createElement('style'); + styleElement.id = 'PDFJS_FONT_STYLE_TAG_' + this.docId; + document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement); + } + var styleSheet = styleElement.sheet; + styleSheet.insertRule(rule, styleSheet.cssRules.length); + }, + clear: function fontLoaderClear() { + if (this.styleElement) { + this.styleElement.remove(); + this.styleElement = null; + } + this.nativeFontFaces.forEach(function (nativeFontFace) { + document.fonts.delete(nativeFontFace); + }); + this.nativeFontFaces.length = 0; + } +}; +{ + var getLoadTestFont = function getLoadTestFont() { + return atob('T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQ' + 'AABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwA' + 'AAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbm' + 'FtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAA' + 'AADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6A' + 'ABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAA' + 'MQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAA' + 'AAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAA' + 'AAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQ' + 'AAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMA' + 'AQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAA' + 'EAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAA' + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAA' + 'AAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgc' + 'A/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF' + 'hYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQA' + 'AAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAg' + 'ABAAAAAAAAAAAD6AAAAAAAAA=='); + }; + Object.defineProperty(FontLoader.prototype, 'loadTestFont', { + get: function get() { + return (0, _util.shadow)(this, 'loadTestFont', getLoadTestFont()); + }, + + configurable: true + }); + FontLoader.prototype.addNativeFontFace = function fontLoader_addNativeFontFace(nativeFontFace) { + this.nativeFontFaces.push(nativeFontFace); + document.fonts.add(nativeFontFace); + }; + FontLoader.prototype.bind = function fontLoaderBind(fonts, callback) { + var rules = []; + var fontsToLoad = []; + var fontLoadPromises = []; + var getNativeFontPromise = function getNativeFontPromise(nativeFontFace) { + return nativeFontFace.loaded.catch(function (e) { + (0, _util.warn)('Failed to load font "' + nativeFontFace.family + '": ' + e); + }); + }; + var isFontLoadingAPISupported = FontLoader.isFontLoadingAPISupported && !FontLoader.isSyncFontLoadingSupported; + for (var i = 0, ii = fonts.length; i < ii; i++) { + var font = fonts[i]; + if (font.attached || font.loading === false) { + continue; + } + font.attached = true; + if (isFontLoadingAPISupported) { + var nativeFontFace = font.createNativeFontFace(); + if (nativeFontFace) { + this.addNativeFontFace(nativeFontFace); + fontLoadPromises.push(getNativeFontPromise(nativeFontFace)); } - if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) { - var firstDescriptor = this._pendingPullIntos[0]; - var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled); - this._byobRequest = new ReadableStreamBYOBRequest(this, view); + } else { + var rule = font.createFontFaceRule(); + if (rule) { + this.insertRule(rule); + rules.push(rule); + fontsToLoad.push(font); } - return this._byobRequest; } - }, { - key: 'desiredSize', - get: function get() { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('desiredSize'); - } - return ReadableByteStreamControllerGetDesiredSize(this); + } + var request = this.queueLoadingCallback(callback); + if (isFontLoadingAPISupported) { + Promise.all(fontLoadPromises).then(function () { + request.complete(); + }); + } else if (rules.length > 0 && !FontLoader.isSyncFontLoadingSupported) { + this.prepareFontLoadEvent(rules, fontsToLoad, request); + } else { + request.complete(); + } + }; + FontLoader.prototype.queueLoadingCallback = function FontLoader_queueLoadingCallback(callback) { + function LoadLoader_completeRequest() { + (0, _util.assert)(!request.end, 'completeRequest() cannot be called twice'); + request.end = Date.now(); + while (context.requests.length > 0 && context.requests[0].end) { + var otherRequest = context.requests.shift(); + setTimeout(otherRequest.callback, 0); + } + } + var context = this.loadingContext; + var requestId = 'pdfjs-font-loading-' + context.nextRequestId++; + var request = { + id: requestId, + complete: LoadLoader_completeRequest, + callback: callback, + started: Date.now() + }; + context.requests.push(request); + return request; + }; + FontLoader.prototype.prepareFontLoadEvent = function fontLoaderPrepareFontLoadEvent(rules, fonts, request) { + function int32(data, offset) { + return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff; + } + function spliceString(s, offset, remove, insert) { + var chunk1 = s.substr(0, offset); + var chunk2 = s.substr(offset + remove); + return chunk1 + insert + chunk2; + } + var i, ii; + var canvas = document.createElement('canvas'); + canvas.width = 1; + canvas.height = 1; + var ctx = canvas.getContext('2d'); + var called = 0; + function isFontReady(name, callback) { + called++; + if (called > 30) { + (0, _util.warn)('Load test font never loaded.'); + callback(); + return; + } + ctx.font = '30px ' + name; + ctx.fillText('.', 0, 20); + var imageData = ctx.getImageData(0, 0, 1, 1); + if (imageData.data[3] > 0) { + callback(); + return; } - }]); - return ReadableByteStreamController; - }(); - function IsReadableByteStreamController(x) { - if (!typeIsObject(x)) { - return false; + setTimeout(isFontReady.bind(null, name, callback)); } - if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) { - return false; + var loadTestFontId = 'lt' + Date.now() + this.loadTestFontId++; + var data = this.loadTestFont; + var COMMENT_OFFSET = 976; + data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId); + var CFF_CHECKSUM_OFFSET = 16; + var XXXX_VALUE = 0x58585858; + var checksum = int32(data, CFF_CHECKSUM_OFFSET); + for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) { + checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0; } - return true; - } - function IsReadableStreamBYOBRequest(x) { - if (!typeIsObject(x)) { - return false; + if (i < loadTestFontId.length) { + checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0; } - if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) { - return false; + data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum)); + var url = 'url(data:font/opentype;base64,' + btoa(data) + ');'; + var rule = '@font-face { font-family:"' + loadTestFontId + '";src:' + url + '}'; + this.insertRule(rule); + var names = []; + for (i = 0, ii = fonts.length; i < ii; i++) { + names.push(fonts[i].loadedName); } - return true; - } - function ReadableByteStreamControllerCallPullIfNeeded(controller) { - var shouldPull = ReadableByteStreamControllerShouldCallPull(controller); - if (shouldPull === false) { - return undefined; + names.push(loadTestFontId); + var div = document.createElement('div'); + div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;'); + for (i = 0, ii = names.length; i < ii; ++i) { + var span = document.createElement('span'); + span.textContent = 'Hi'; + span.style.fontFamily = names[i]; + div.appendChild(span); } - if (controller._pulling === true) { - controller._pullAgain = true; - return undefined; + document.body.appendChild(div); + isFontReady(loadTestFontId, function () { + document.body.removeChild(div); + request.complete(); + }); + }; +} +{ + FontLoader.isFontLoadingAPISupported = typeof document !== 'undefined' && !!document.fonts; +} +{ + var isSyncFontLoadingSupported = function isSyncFontLoadingSupported() { + if (typeof navigator === 'undefined') { + return true; } - assert(controller._pullAgain === false); - controller._pulling = true; - var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]); - pullPromise.then(function () { - controller._pulling = false; - if (controller._pullAgain === true) { - controller._pullAgain = false; - ReadableByteStreamControllerCallPullIfNeeded(controller); - } - }, function (e) { - if (controller._controlledReadableStream._state === 'readable') { - ReadableByteStreamControllerError(controller, e); - } - }).catch(rethrowAssertionErrorRejection); - return undefined; - } - function ReadableByteStreamControllerClearPendingPullIntos(controller) { - ReadableByteStreamControllerInvalidateBYOBRequest(controller); - controller._pendingPullIntos = []; - } - function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) { - assert(stream._state !== 'errored', 'state must not be errored'); - var done = false; - if (stream._state === 'closed') { - assert(pullIntoDescriptor.bytesFilled === 0); - done = true; + var supported = false; + var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); + if (m && m[1] >= 14) { + supported = true; } - var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); - if (pullIntoDescriptor.readerType === 'default') { - ReadableStreamFulfillReadRequest(stream, filledView, done); - } else { - assert(pullIntoDescriptor.readerType === 'byob'); - ReadableStreamFulfillReadIntoRequest(stream, filledView, done); + return supported; + }; + Object.defineProperty(FontLoader, 'isSyncFontLoadingSupported', { + get: function get() { + return (0, _util.shadow)(FontLoader, 'isSyncFontLoadingSupported', isSyncFontLoadingSupported()); + }, + + enumerable: true, + configurable: true + }); +} +var IsEvalSupportedCached = { + get value() { + return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)()); + } +}; +var FontFaceObject = function FontFaceObjectClosure() { + function FontFaceObject(translatedData, _ref) { + var _ref$isEvalSupported = _ref.isEvalSupported, + isEvalSupported = _ref$isEvalSupported === undefined ? true : _ref$isEvalSupported, + _ref$disableFontFace = _ref.disableFontFace, + disableFontFace = _ref$disableFontFace === undefined ? false : _ref$disableFontFace, + _ref$fontRegistry = _ref.fontRegistry, + fontRegistry = _ref$fontRegistry === undefined ? null : _ref$fontRegistry; + + this.compiledGlyphs = Object.create(null); + for (var i in translatedData) { + this[i] = translatedData[i]; } + this.isEvalSupported = isEvalSupported !== false; + this.disableFontFace = disableFontFace === true; + this.fontRegistry = fontRegistry; } - function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) { - var bytesFilled = pullIntoDescriptor.bytesFilled; - var elementSize = pullIntoDescriptor.elementSize; - assert(bytesFilled <= pullIntoDescriptor.byteLength); - assert(bytesFilled % elementSize === 0); - return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize); + FontFaceObject.prototype = { + createNativeFontFace: function FontFaceObject_createNativeFontFace() { + if (!this.data || this.disableFontFace) { + return null; + } + var nativeFontFace = new FontFace(this.loadedName, this.data, {}); + if (this.fontRegistry) { + this.fontRegistry.registerFont(this); + } + return nativeFontFace; + }, + createFontFaceRule: function FontFaceObject_createFontFaceRule() { + if (!this.data || this.disableFontFace) { + return null; + } + var data = (0, _util.bytesToString)(new Uint8Array(this.data)); + var fontName = this.loadedName; + var url = 'url(data:' + this.mimetype + ';base64,' + btoa(data) + ');'; + var rule = '@font-face { font-family:"' + fontName + '";src:' + url + '}'; + if (this.fontRegistry) { + this.fontRegistry.registerFont(this, url); + } + return rule; + }, + getPathGenerator: function FontFaceObject_getPathGenerator(objs, character) { + if (!(character in this.compiledGlyphs)) { + var cmds = objs.get(this.loadedName + '_path_' + character); + var current, i, len; + if (this.isEvalSupported && IsEvalSupportedCached.value) { + var args, + js = ''; + for (i = 0, len = cmds.length; i < len; i++) { + current = cmds[i]; + if (current.args !== undefined) { + args = current.args.join(','); + } else { + args = ''; + } + js += 'c.' + current.cmd + '(' + args + ');\n'; + } + this.compiledGlyphs[character] = new Function('c', 'size', js); + } else { + this.compiledGlyphs[character] = function (c, size) { + for (i = 0, len = cmds.length; i < len; i++) { + current = cmds[i]; + if (current.cmd === 'scale') { + current.args = [size, -size]; + } + c[current.cmd].apply(c, current.args); + } + }; + } + } + return this.compiledGlyphs[character]; + } + }; + return FontFaceObject; +}(); +exports.FontFaceObject = FontFaceObject; +exports.FontLoader = FontLoader; + +/***/ }), +/* 119 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CanvasGraphics = undefined; + +var _util = __w_pdfjs_require__(0); + +var _pattern_helper = __w_pdfjs_require__(120); + +var MIN_FONT_SIZE = 16; +var MAX_FONT_SIZE = 100; +var MAX_GROUP_SIZE = 4096; +var MIN_WIDTH_FACTOR = 0.65; +var COMPILE_TYPE3_GLYPHS = true; +var MAX_SIZE_TO_COMPILE = 1000; +var FULL_CHUNK_HEIGHT = 16; +var IsLittleEndianCached = { + get value() { + return (0, _util.shadow)(IsLittleEndianCached, 'value', (0, _util.isLittleEndian)()); } - function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) { - controller._queue.push({ - buffer: buffer, - byteOffset: byteOffset, - byteLength: byteLength +}; +function addContextCurrentTransform(ctx) { + if (!ctx.mozCurrentTransform) { + ctx._originalSave = ctx.save; + ctx._originalRestore = ctx.restore; + ctx._originalRotate = ctx.rotate; + ctx._originalScale = ctx.scale; + ctx._originalTranslate = ctx.translate; + ctx._originalTransform = ctx.transform; + ctx._originalSetTransform = ctx.setTransform; + ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0]; + ctx._transformStack = []; + Object.defineProperty(ctx, 'mozCurrentTransform', { + get: function getCurrentTransform() { + return this._transformMatrix; + } + }); + Object.defineProperty(ctx, 'mozCurrentTransformInverse', { + get: function getCurrentTransformInverse() { + var m = this._transformMatrix; + var a = m[0], + b = m[1], + c = m[2], + d = m[3], + e = m[4], + f = m[5]; + var ad_bc = a * d - b * c; + var bc_ad = b * c - a * d; + 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]; + } }); - controller._queueTotalSize += byteLength; + ctx.save = function ctxSave() { + var old = this._transformMatrix; + this._transformStack.push(old); + this._transformMatrix = old.slice(0, 6); + this._originalSave(); + }; + ctx.restore = function ctxRestore() { + var prev = this._transformStack.pop(); + if (prev) { + this._transformMatrix = prev; + this._originalRestore(); + } + }; + ctx.translate = function ctxTranslate(x, y) { + var m = this._transformMatrix; + m[4] = m[0] * x + m[2] * y + m[4]; + m[5] = m[1] * x + m[3] * y + m[5]; + this._originalTranslate(x, y); + }; + ctx.scale = function ctxScale(x, y) { + var m = this._transformMatrix; + m[0] = m[0] * x; + m[1] = m[1] * x; + m[2] = m[2] * y; + m[3] = m[3] * y; + this._originalScale(x, y); + }; + ctx.transform = function ctxTransform(a, b, c, d, e, f) { + var m = this._transformMatrix; + 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]]; + ctx._originalTransform(a, b, c, d, e, f); + }; + ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { + this._transformMatrix = [a, b, c, d, e, f]; + ctx._originalSetTransform(a, b, c, d, e, f); + }; + ctx.rotate = function ctxRotate(angle) { + var cosValue = Math.cos(angle); + var sinValue = Math.sin(angle); + var m = this._transformMatrix; + 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]]; + this._originalRotate(angle); + }; } - function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) { - var elementSize = pullIntoDescriptor.elementSize; - var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize; - var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled); - var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy; - var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize; - var totalBytesToCopyRemaining = maxBytesToCopy; - var ready = false; - if (maxAlignedBytes > currentAlignedBytes) { - totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled; - ready = true; - } - var queue = controller._queue; - while (totalBytesToCopyRemaining > 0) { - var headOfQueue = queue[0]; - var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength); - var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; - ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy); - if (headOfQueue.byteLength === bytesToCopy) { - queue.shift(); +} +var CachedCanvases = function CachedCanvasesClosure() { + function CachedCanvases(canvasFactory) { + this.canvasFactory = canvasFactory; + this.cache = Object.create(null); + } + CachedCanvases.prototype = { + getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) { + var canvasEntry; + if (this.cache[id] !== undefined) { + canvasEntry = this.cache[id]; + this.canvasFactory.reset(canvasEntry, width, height); + canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0); } else { - headOfQueue.byteOffset += bytesToCopy; - headOfQueue.byteLength -= bytesToCopy; + canvasEntry = this.canvasFactory.create(width, height); + this.cache[id] = canvasEntry; + } + if (trackTransform) { + addContextCurrentTransform(canvasEntry.context); + } + return canvasEntry; + }, + clear: function clear() { + for (var id in this.cache) { + var canvasEntry = this.cache[id]; + this.canvasFactory.destroy(canvasEntry); + delete this.cache[id]; } - controller._queueTotalSize -= bytesToCopy; - ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor); - totalBytesToCopyRemaining -= bytesToCopy; } - if (ready === false) { - assert(controller._queueTotalSize === 0, 'queue must be empty'); - assert(pullIntoDescriptor.bytesFilled > 0); - assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize); + }; + return CachedCanvases; +}(); +function compileType3Glyph(imgData) { + var POINT_TO_PROCESS_LIMIT = 1000; + var width = imgData.width, + height = imgData.height; + var i, + j, + j0, + width1 = width + 1; + var points = new Uint8Array(width1 * (height + 1)); + var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]); + var lineSize = width + 7 & ~7, + data0 = imgData.data; + var data = new Uint8Array(lineSize * height), + pos = 0, + ii; + for (i = 0, ii = data0.length; i < ii; i++) { + var mask = 128, + elem = data0[i]; + while (mask > 0) { + data[pos++] = elem & mask ? 0 : 255; + mask >>= 1; } - return ready; - } - function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) { - assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor); - ReadableByteStreamControllerInvalidateBYOBRequest(controller); - pullIntoDescriptor.bytesFilled += size; } - function ReadableByteStreamControllerHandleQueueDrain(controller) { - assert(controller._controlledReadableStream._state === 'readable'); - if (controller._queueTotalSize === 0 && controller._closeRequested === true) { - ReadableStreamClose(controller._controlledReadableStream); - } else { - ReadableByteStreamControllerCallPullIfNeeded(controller); - } + var count = 0; + pos = 0; + if (data[pos] !== 0) { + points[0] = 1; + ++count; } - function ReadableByteStreamControllerInvalidateBYOBRequest(controller) { - if (controller._byobRequest === undefined) { - return; + for (j = 1; j < width; j++) { + if (data[pos] !== data[pos + 1]) { + points[j] = data[pos] ? 2 : 1; + ++count; } - controller._byobRequest._associatedReadableByteStreamController = undefined; - controller._byobRequest._view = undefined; - controller._byobRequest = undefined; + pos++; } - function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) { - assert(controller._closeRequested === false); - while (controller._pendingPullIntos.length > 0) { - if (controller._queueTotalSize === 0) { - return; - } - var pullIntoDescriptor = controller._pendingPullIntos[0]; - if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { - ReadableByteStreamControllerShiftPendingPullInto(controller); - ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); - } - } + if (data[pos] !== 0) { + points[j] = 2; + ++count; } - function ReadableByteStreamControllerPullInto(controller, view) { - var stream = controller._controlledReadableStream; - var elementSize = 1; - if (view.constructor !== DataView) { - elementSize = view.constructor.BYTES_PER_ELEMENT; + for (i = 1; i < height; i++) { + pos = i * lineSize; + j0 = i * width1; + if (data[pos - lineSize] !== data[pos]) { + points[j0] = data[pos] ? 1 : 8; + ++count; } - var ctor = view.constructor; - var pullIntoDescriptor = { - buffer: view.buffer, - byteOffset: view.byteOffset, - byteLength: view.byteLength, - bytesFilled: 0, - elementSize: elementSize, - ctor: ctor, - readerType: 'byob' - }; - if (controller._pendingPullIntos.length > 0) { - pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); - controller._pendingPullIntos.push(pullIntoDescriptor); - return ReadableStreamAddReadIntoRequest(stream); + var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0); + for (j = 1; j < width; j++) { + sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0); + if (POINT_TYPES[sum]) { + points[j0 + j] = POINT_TYPES[sum]; + ++count; + } + pos++; } - if (stream._state === 'closed') { - var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0); - return Promise.resolve(CreateIterResultObject(emptyView, true)); + if (data[pos - lineSize] !== data[pos]) { + points[j0 + j] = data[pos] ? 2 : 4; + ++count; } - if (controller._queueTotalSize > 0) { - if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { - var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); - ReadableByteStreamControllerHandleQueueDrain(controller); - return Promise.resolve(CreateIterResultObject(filledView, false)); - } - if (controller._closeRequested === true) { - var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); - ReadableByteStreamControllerError(controller, e); - return Promise.reject(e); - } + if (count > POINT_TO_PROCESS_LIMIT) { + return null; } - pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); - controller._pendingPullIntos.push(pullIntoDescriptor); - var promise = ReadableStreamAddReadIntoRequest(stream); - ReadableByteStreamControllerCallPullIfNeeded(controller); - return promise; } - function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) { - firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer); - assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0'); - var stream = controller._controlledReadableStream; - if (ReadableStreamHasBYOBReader(stream) === true) { - while (ReadableStreamGetNumReadIntoRequests(stream) > 0) { - var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller); - ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor); - } - } + pos = lineSize * (height - 1); + j0 = i * width1; + if (data[pos] !== 0) { + points[j0] = 8; + ++count; } - function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) { - if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) { - throw new RangeError('bytesWritten out of range'); + for (j = 1; j < width; j++) { + if (data[pos] !== data[pos + 1]) { + points[j0 + j] = data[pos] ? 4 : 8; + ++count; } - ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor); - if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) { - return; + pos++; + } + if (data[pos] !== 0) { + points[j0 + j] = 4; + ++count; + } + if (count > POINT_TO_PROCESS_LIMIT) { + return null; + } + var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); + var outlines = []; + for (i = 0; count && i <= height; i++) { + var p = i * width1; + var end = p + width; + while (p < end && !points[p]) { + p++; } - ReadableByteStreamControllerShiftPendingPullInto(controller); - var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize; - if (remainderSize > 0) { - var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; - var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end); - ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength); + if (p === end) { + continue; } - pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); - pullIntoDescriptor.bytesFilled -= remainderSize; - ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); - ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); + var coords = [p % width1, i]; + var type = points[p], + p0 = p, + pp; + do { + var step = steps[type]; + do { + p += step; + } while (!points[p]); + pp = points[p]; + if (pp !== 5 && pp !== 10) { + type = pp; + points[p] = 0; + } else { + type = pp & 0x33 * type >> 4; + points[p] &= type >> 2 | type << 2; + } + coords.push(p % width1); + coords.push(p / width1 | 0); + --count; + } while (p0 !== p); + outlines.push(coords); + --i; } - function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) { - var firstDescriptor = controller._pendingPullIntos[0]; - var stream = controller._controlledReadableStream; - if (stream._state === 'closed') { - if (bytesWritten !== 0) { - throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream'); + var drawOutline = function drawOutline(c) { + c.save(); + c.scale(1 / width, -1 / height); + c.translate(0, -height); + c.beginPath(); + for (var i = 0, ii = outlines.length; i < ii; i++) { + var o = outlines[i]; + c.moveTo(o[0], o[1]); + for (var j = 2, jj = o.length; j < jj; j += 2) { + c.lineTo(o[j], o[j + 1]); } - ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor); - } else { - assert(stream._state === 'readable'); - ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor); } + c.fill(); + c.beginPath(); + c.restore(); + }; + return drawOutline; +} +var CanvasExtraState = function CanvasExtraStateClosure() { + function CanvasExtraState() { + this.alphaIsShape = false; + this.fontSize = 0; + this.fontSizeScale = 1; + this.textMatrix = _util.IDENTITY_MATRIX; + this.textMatrixScale = 1; + this.fontMatrix = _util.FONT_IDENTITY_MATRIX; + this.leading = 0; + this.x = 0; + this.y = 0; + this.lineX = 0; + this.lineY = 0; + this.charSpacing = 0; + this.wordSpacing = 0; + this.textHScale = 1; + this.textRenderingMode = _util.TextRenderingMode.FILL; + this.textRise = 0; + this.fillColor = '#000000'; + this.strokeColor = '#000000'; + this.patternFill = false; + this.fillAlpha = 1; + this.strokeAlpha = 1; + this.lineWidth = 1; + this.activeSMask = null; + this.resumeSMaskCtx = null; } - function ReadableByteStreamControllerShiftPendingPullInto(controller) { - var descriptor = controller._pendingPullIntos.shift(); - ReadableByteStreamControllerInvalidateBYOBRequest(controller); - return descriptor; - } - function ReadableByteStreamControllerShouldCallPull(controller) { - var stream = controller._controlledReadableStream; - if (stream._state !== 'readable') { - return false; - } - if (controller._closeRequested === true) { - return false; - } - if (controller._started === false) { - return false; + CanvasExtraState.prototype = { + clone: function CanvasExtraState_clone() { + return Object.create(this); + }, + setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) { + this.x = x; + this.y = y; } - if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { - return true; + }; + return CanvasExtraState; +}(); +var CanvasGraphics = function CanvasGraphicsClosure() { + var EXECUTION_TIME = 15; + var EXECUTION_STEPS = 10; + function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) { + this.ctx = canvasCtx; + this.current = new CanvasExtraState(); + this.stateStack = []; + this.pendingClip = null; + this.pendingEOFill = false; + this.res = null; + this.xobjs = null; + this.commonObjs = commonObjs; + this.objs = objs; + this.canvasFactory = canvasFactory; + this.webGLContext = webGLContext; + this.imageLayer = imageLayer; + this.groupStack = []; + this.processingType3 = null; + this.baseTransform = null; + this.baseTransformStack = []; + this.groupLevel = 0; + this.smaskStack = []; + this.smaskCounter = 0; + this.tempSMask = null; + this.cachedCanvases = new CachedCanvases(this.canvasFactory); + if (canvasCtx) { + addContextCurrentTransform(canvasCtx); } - if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) { - return true; + this.cachedGetSinglePixelWidth = null; + } + function putBinaryImageData(ctx, imgData) { + if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) { + ctx.putImageData(imgData, 0, 0); + return; } - if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) { - return true; + var height = imgData.height, + width = imgData.width; + var partialChunkHeight = height % FULL_CHUNK_HEIGHT; + var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; + var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; + var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); + var srcPos = 0, + destPos; + var src = imgData.data; + var dest = chunkImgData.data; + var i, j, thisChunkHeight, elemsInThisChunk; + if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) { + var srcLength = src.byteLength; + var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2); + var dest32DataLength = dest32.length; + var fullSrcDiff = width + 7 >> 3; + var white = 0xFFFFFFFF; + var black = IsLittleEndianCached.value ? 0xFF000000 : 0x000000FF; + for (i = 0; i < totalChunks; i++) { + thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; + destPos = 0; + for (j = 0; j < thisChunkHeight; j++) { + var srcDiff = srcLength - srcPos; + var k = 0; + var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7; + var kEndUnrolled = kEnd & ~7; + var mask = 0; + var srcByte = 0; + for (; k < kEndUnrolled; k += 8) { + srcByte = src[srcPos++]; + dest32[destPos++] = srcByte & 128 ? white : black; + dest32[destPos++] = srcByte & 64 ? white : black; + dest32[destPos++] = srcByte & 32 ? white : black; + dest32[destPos++] = srcByte & 16 ? white : black; + dest32[destPos++] = srcByte & 8 ? white : black; + dest32[destPos++] = srcByte & 4 ? white : black; + dest32[destPos++] = srcByte & 2 ? white : black; + dest32[destPos++] = srcByte & 1 ? white : black; + } + for (; k < kEnd; k++) { + if (mask === 0) { + srcByte = src[srcPos++]; + mask = 128; + } + dest32[destPos++] = srcByte & mask ? white : black; + mask >>= 1; + } + } + while (destPos < dest32DataLength) { + dest32[destPos++] = 0; + } + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + } + } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) { + j = 0; + elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4; + for (i = 0; i < fullChunks; i++) { + dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); + srcPos += elemsInThisChunk; + ctx.putImageData(chunkImgData, 0, j); + j += FULL_CHUNK_HEIGHT; + } + if (i < totalChunks) { + elemsInThisChunk = width * partialChunkHeight * 4; + dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); + ctx.putImageData(chunkImgData, 0, j); + } + } else if (imgData.kind === _util.ImageKind.RGB_24BPP) { + thisChunkHeight = FULL_CHUNK_HEIGHT; + elemsInThisChunk = width * thisChunkHeight; + for (i = 0; i < totalChunks; i++) { + if (i >= fullChunks) { + thisChunkHeight = partialChunkHeight; + elemsInThisChunk = width * thisChunkHeight; + } + destPos = 0; + for (j = elemsInThisChunk; j--;) { + dest[destPos++] = src[srcPos++]; + dest[destPos++] = src[srcPos++]; + dest[destPos++] = src[srcPos++]; + dest[destPos++] = 255; + } + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + } + } else { + throw new Error('bad image kind: ' + imgData.kind); } - return false; } - function ReadableByteStreamControllerClose(controller) { - var stream = controller._controlledReadableStream; - assert(controller._closeRequested === false); - assert(stream._state === 'readable'); - if (controller._queueTotalSize > 0) { - controller._closeRequested = true; - return; - } - if (controller._pendingPullIntos.length > 0) { - var firstPendingPullInto = controller._pendingPullIntos[0]; - if (firstPendingPullInto.bytesFilled > 0) { - var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); - ReadableByteStreamControllerError(controller, e); - throw e; + function putBinaryImageMask(ctx, imgData) { + var height = imgData.height, + width = imgData.width; + var partialChunkHeight = height % FULL_CHUNK_HEIGHT; + var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; + var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; + var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); + var srcPos = 0; + var src = imgData.data; + var dest = chunkImgData.data; + for (var i = 0; i < totalChunks; i++) { + var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; + var destPos = 3; + for (var j = 0; j < thisChunkHeight; j++) { + var mask = 0; + for (var k = 0; k < width; k++) { + if (!mask) { + var elem = src[srcPos++]; + mask = 128; + } + dest[destPos] = elem & mask ? 0 : 255; + destPos += 4; + mask >>= 1; + } } + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); } - ReadableStreamClose(stream); } - function ReadableByteStreamControllerEnqueue(controller, chunk) { - var stream = controller._controlledReadableStream; - assert(controller._closeRequested === false); - assert(stream._state === 'readable'); - var buffer = chunk.buffer; - var byteOffset = chunk.byteOffset; - var byteLength = chunk.byteLength; - var transferredBuffer = TransferArrayBuffer(buffer); - if (ReadableStreamHasDefaultReader(stream) === true) { - if (ReadableStreamGetNumReadRequests(stream) === 0) { - ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); - } else { - assert(controller._queue.length === 0); - var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength); - ReadableStreamFulfillReadRequest(stream, transferredView, false); + function copyCtxState(sourceCtx, destCtx) { + var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha', 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', 'globalCompositeOperation', 'font']; + for (var i = 0, ii = properties.length; i < ii; i++) { + var property = properties[i]; + if (sourceCtx[property] !== undefined) { + destCtx[property] = sourceCtx[property]; } - } else if (ReadableStreamHasBYOBReader(stream) === true) { - ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); - ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); - } else { - assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked'); - ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); + } + if (sourceCtx.setLineDash !== undefined) { + destCtx.setLineDash(sourceCtx.getLineDash()); + destCtx.lineDashOffset = sourceCtx.lineDashOffset; } } - function ReadableByteStreamControllerError(controller, e) { - var stream = controller._controlledReadableStream; - assert(stream._state === 'readable'); - ReadableByteStreamControllerClearPendingPullIntos(controller); - ResetQueue(controller); - ReadableStreamError(stream, e); + function resetCtxToDefault(ctx) { + ctx.strokeStyle = '#000000'; + ctx.fillStyle = '#000000'; + ctx.fillRule = 'nonzero'; + ctx.globalAlpha = 1; + ctx.lineWidth = 1; + ctx.lineCap = 'butt'; + ctx.lineJoin = 'miter'; + ctx.miterLimit = 10; + ctx.globalCompositeOperation = 'source-over'; + ctx.font = '10px sans-serif'; + if (ctx.setLineDash !== undefined) { + ctx.setLineDash([]); + ctx.lineDashOffset = 0; + } } - function ReadableByteStreamControllerGetDesiredSize(controller) { - var stream = controller._controlledReadableStream; - var state = stream._state; - if (state === 'errored') { - return null; + function composeSMaskBackdrop(bytes, r0, g0, b0) { + var length = bytes.length; + for (var i = 3; i < length; i += 4) { + var alpha = bytes[i]; + if (alpha === 0) { + bytes[i - 3] = r0; + bytes[i - 2] = g0; + bytes[i - 1] = b0; + } else if (alpha < 255) { + var alpha_ = 255 - alpha; + bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8; + bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8; + bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8; + } } - if (state === 'closed') { - return 0; + } + function composeSMaskAlpha(maskData, layerData, transferMap) { + var length = maskData.length; + var scale = 1 / 255; + for (var i = 3; i < length; i += 4) { + var alpha = transferMap ? transferMap[maskData[i]] : maskData[i]; + layerData[i] = layerData[i] * alpha * scale | 0; } - return controller._strategyHWM - controller._queueTotalSize; } - function ReadableByteStreamControllerRespond(controller, bytesWritten) { - bytesWritten = Number(bytesWritten); - if (IsFiniteNonNegativeNumber(bytesWritten) === false) { - throw new RangeError('bytesWritten must be a finite'); + function composeSMaskLuminosity(maskData, layerData, transferMap) { + var length = maskData.length; + for (var i = 3; i < length; i += 4) { + var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28; + layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16; } - assert(controller._pendingPullIntos.length > 0); - ReadableByteStreamControllerRespondInternal(controller, bytesWritten); } - function ReadableByteStreamControllerRespondWithNewView(controller, view) { - assert(controller._pendingPullIntos.length > 0); - var firstDescriptor = controller._pendingPullIntos[0]; - if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) { - throw new RangeError('The region specified by view does not match byobRequest'); + function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) { + var hasBackdrop = !!backdrop; + var r0 = hasBackdrop ? backdrop[0] : 0; + var g0 = hasBackdrop ? backdrop[1] : 0; + var b0 = hasBackdrop ? backdrop[2] : 0; + var composeFn; + if (subtype === 'Luminosity') { + composeFn = composeSMaskLuminosity; + } else { + composeFn = composeSMaskAlpha; } - if (firstDescriptor.byteLength !== view.byteLength) { - throw new RangeError('The buffer of view has different capacity than byobRequest'); + var PIXELS_TO_PROCESS = 1048576; + var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width)); + for (var row = 0; row < height; row += chunkSize) { + var chunkHeight = Math.min(chunkSize, height - row); + var maskData = maskCtx.getImageData(0, row, width, chunkHeight); + var layerData = layerCtx.getImageData(0, row, width, chunkHeight); + if (hasBackdrop) { + composeSMaskBackdrop(maskData.data, r0, g0, b0); + } + composeFn(maskData.data, layerData.data, transferMap); + maskCtx.putImageData(layerData, 0, row); } - firstDescriptor.buffer = view.buffer; - ReadableByteStreamControllerRespondInternal(controller, view.byteLength); - } - function streamBrandCheckException(name) { - return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream'); - } - function readerLockException(name) { - return new TypeError('Cannot ' + name + ' a stream using a released reader'); - } - function defaultReaderBrandCheckException(name) { - return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader'); - } - function defaultReaderClosedPromiseInitialize(reader) { - reader._closedPromise = new Promise(function (resolve, reject) { - reader._closedPromise_resolve = resolve; - reader._closedPromise_reject = reject; - }); - } - function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) { - reader._closedPromise = Promise.reject(reason); - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - function defaultReaderClosedPromiseInitializeAsResolved(reader) { - reader._closedPromise = Promise.resolve(undefined); - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - function defaultReaderClosedPromiseReject(reader, reason) { - assert(reader._closedPromise_resolve !== undefined); - assert(reader._closedPromise_reject !== undefined); - reader._closedPromise_reject(reason); - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - function defaultReaderClosedPromiseResetToRejected(reader, reason) { - assert(reader._closedPromise_resolve === undefined); - assert(reader._closedPromise_reject === undefined); - reader._closedPromise = Promise.reject(reason); - } - function defaultReaderClosedPromiseResolve(reader) { - assert(reader._closedPromise_resolve !== undefined); - assert(reader._closedPromise_reject !== undefined); - reader._closedPromise_resolve(undefined); - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - function byobReaderBrandCheckException(name) { - return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader'); - } - function defaultControllerBrandCheckException(name) { - return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController'); - } - function byobRequestBrandCheckException(name) { - return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest'); } - function byteStreamControllerBrandCheckException(name) { - return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController'); - } - function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) { - try { - Promise.prototype.then.call(promise, undefined, function () {}); - } catch (e) {} + function composeSMask(ctx, smask, layerCtx, webGLContext) { + var mask = smask.canvas; + var maskCtx = smask.context; + ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY); + var backdrop = smask.backdrop || null; + if (!smask.transferMap && webGLContext.isEnabled) { + var composed = webGLContext.composeSMask({ + layer: layerCtx.canvas, + mask: mask, + properties: { + subtype: smask.subtype, + backdrop: backdrop + } + }); + ctx.setTransform(1, 0, 0, 1, 0, 0); + ctx.drawImage(composed, smask.offsetX, smask.offsetY); + return; + } + genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap); + ctx.drawImage(mask, 0, 0); } -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; + var LINE_CAP_STYLES = ['butt', 'round', 'square']; + var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; + var NORMAL_CLIP = {}; + var EO_CLIP = {}; + CanvasGraphics.prototype = { + beginDrawing: function beginDrawing(_ref) { + var transform = _ref.transform, + viewport = _ref.viewport, + transparency = _ref.transparency, + _ref$background = _ref.background, + background = _ref$background === undefined ? null : _ref$background; - var transformStream = __w_pdfjs_require__(6); - var readableStream = __w_pdfjs_require__(4); - var writableStream = __w_pdfjs_require__(2); - exports.TransformStream = transformStream.TransformStream; - exports.ReadableStream = readableStream.ReadableStream; - exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed; - exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose; - exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue; - exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError; - exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize; - exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter; - exports.IsWritableStream = writableStream.IsWritableStream; - exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked; - exports.WritableStream = writableStream.WritableStream; - exports.WritableStreamAbort = writableStream.WritableStreamAbort; - exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError; - exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation; - exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease; - exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite; -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; + var width = this.ctx.canvas.width; + var height = this.ctx.canvas.height; + this.ctx.save(); + this.ctx.fillStyle = background || 'rgb(255, 255, 255)'; + this.ctx.fillRect(0, 0, width, height); + this.ctx.restore(); + if (transparency) { + var transparentCanvas = this.cachedCanvases.getCanvas('transparent', width, height, true); + this.compositeCtx = this.ctx; + this.transparentCanvas = transparentCanvas.canvas; + this.ctx = transparentCanvas.context; + this.ctx.save(); + this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform); + } + this.ctx.save(); + resetCtxToDefault(this.ctx); + if (transform) { + this.ctx.transform.apply(this.ctx, transform); + } + this.ctx.transform.apply(this.ctx, viewport.transform); + this.baseTransform = this.ctx.mozCurrentTransform.slice(); + if (this.imageLayer) { + this.imageLayer.beginLayout(); + } + }, - var _createClass = function () { - 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); + executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) { + var argsArray = operatorList.argsArray; + var fnArray = operatorList.fnArray; + var i = executionStartIdx || 0; + var argsArrayLen = argsArray.length; + if (argsArrayLen === i) { + return i; + } + var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === 'function'; + var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0; + var steps = 0; + var commonObjs = this.commonObjs; + var objs = this.objs; + var fnId; + while (true) { + if (stepper !== undefined && i === stepper.nextBreakPoint) { + stepper.breakIt(i, continueCallback); + return i; + } + fnId = fnArray[i]; + if (fnId !== _util.OPS.dependency) { + this[fnId].apply(this, argsArray[i]); + } else { + var deps = argsArray[i]; + for (var n = 0, nn = deps.length; n < nn; n++) { + var depObjId = deps[n]; + var common = depObjId[0] === 'g' && depObjId[1] === '_'; + var objsPool = common ? commonObjs : objs; + if (!objsPool.isResolved(depObjId)) { + objsPool.get(depObjId, continueCallback); + return i; + } + } + } + i++; + if (i === argsArrayLen) { + return i; + } + if (chunkOperations && ++steps > EXECUTION_STEPS) { + if (Date.now() > endTime) { + continueCallback(); + return i; + } + steps = 0; + } + } + }, + endDrawing: function CanvasGraphics_endDrawing() { + if (this.current.activeSMask !== null) { + this.endSMaskGroup(); + } + this.ctx.restore(); + if (this.transparentCanvas) { + this.ctx = this.compositeCtx; + this.ctx.save(); + this.ctx.setTransform(1, 0, 0, 1, 0, 0); + this.ctx.drawImage(this.transparentCanvas, 0, 0); + this.ctx.restore(); + this.transparentCanvas = null; + } + this.cachedCanvases.clear(); + this.webGLContext.clear(); + if (this.imageLayer) { + this.imageLayer.endLayout(); + } + }, + setLineWidth: function CanvasGraphics_setLineWidth(width) { + this.current.lineWidth = width; + this.ctx.lineWidth = width; + }, + setLineCap: function CanvasGraphics_setLineCap(style) { + this.ctx.lineCap = LINE_CAP_STYLES[style]; + }, + setLineJoin: function CanvasGraphics_setLineJoin(style) { + this.ctx.lineJoin = LINE_JOIN_STYLES[style]; + }, + setMiterLimit: function CanvasGraphics_setMiterLimit(limit) { + this.ctx.miterLimit = limit; + }, + setDash: function CanvasGraphics_setDash(dashArray, dashPhase) { + var ctx = this.ctx; + if (ctx.setLineDash !== undefined) { + ctx.setLineDash(dashArray); + ctx.lineDashOffset = dashPhase; + } + }, + setRenderingIntent: function CanvasGraphics_setRenderingIntent(intent) {}, + setFlatness: function CanvasGraphics_setFlatness(flatness) {}, + setGState: function CanvasGraphics_setGState(states) { + for (var i = 0, ii = states.length; i < ii; i++) { + var state = states[i]; + var key = state[0]; + var value = state[1]; + switch (key) { + case 'LW': + this.setLineWidth(value); + break; + case 'LC': + this.setLineCap(value); + break; + case 'LJ': + this.setLineJoin(value); + break; + case 'ML': + this.setMiterLimit(value); + break; + case 'D': + this.setDash(value[0], value[1]); + break; + case 'RI': + this.setRenderingIntent(value); + break; + case 'FL': + this.setFlatness(value); + break; + case 'Font': + this.setFont(value[0], value[1]); + break; + case 'CA': + this.current.strokeAlpha = state[1]; + break; + case 'ca': + this.current.fillAlpha = state[1]; + this.ctx.globalAlpha = state[1]; + break; + case 'BM': + this.ctx.globalCompositeOperation = value; + break; + case 'SMask': + if (this.current.activeSMask) { + if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) { + this.suspendSMaskGroup(); + } else { + this.endSMaskGroup(); + } + } + this.current.activeSMask = value ? this.tempSMask : null; + if (this.current.activeSMask) { + this.beginSMaskGroup(); + } + this.tempSMask = null; + break; + } + } + }, + beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() { + var activeSMask = this.current.activeSMask; + var drawnWidth = activeSMask.canvas.width; + var drawnHeight = activeSMask.canvas.height; + var cacheId = 'smaskGroupAt' + this.groupLevel; + var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); + var currentCtx = this.ctx; + var currentTransform = currentCtx.mozCurrentTransform; + this.ctx.save(); + var groupCtx = scratchCanvas.context; + groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY); + groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY); + groupCtx.transform.apply(groupCtx, currentTransform); + activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse; + copyCtxState(currentCtx, groupCtx); + this.ctx = groupCtx; + this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]); + this.groupStack.push(currentCtx); + this.groupLevel++; + }, + suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() { + var groupCtx = this.ctx; + this.groupLevel--; + this.ctx = this.groupStack.pop(); + composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext); + this.ctx.restore(); + this.ctx.save(); + copyCtxState(groupCtx, this.ctx); + this.current.resumeSMaskCtx = groupCtx; + var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); + this.ctx.transform.apply(this.ctx, deltaTransform); + groupCtx.save(); + groupCtx.setTransform(1, 0, 0, 1, 0, 0); + groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height); + groupCtx.restore(); + }, + resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() { + var groupCtx = this.current.resumeSMaskCtx; + var currentCtx = this.ctx; + this.ctx = groupCtx; + this.groupStack.push(currentCtx); + this.groupLevel++; + }, + endSMaskGroup: function CanvasGraphics_endSMaskGroup() { + var groupCtx = this.ctx; + this.groupLevel--; + this.ctx = this.groupStack.pop(); + composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext); + this.ctx.restore(); + copyCtxState(groupCtx, this.ctx); + var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); + this.ctx.transform.apply(this.ctx, deltaTransform); + }, + save: function CanvasGraphics_save() { + this.ctx.save(); + var old = this.current; + this.stateStack.push(old); + this.current = old.clone(); + this.current.resumeSMaskCtx = null; + }, + restore: function CanvasGraphics_restore() { + if (this.current.resumeSMaskCtx) { + this.resumeSMaskGroup(); } - } - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - var _require = __w_pdfjs_require__(1), - assert = _require.assert; - var _require2 = __w_pdfjs_require__(0), - InvokeOrNoop = _require2.InvokeOrNoop, - PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback, - PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop, - typeIsObject = _require2.typeIsObject; - var _require3 = __w_pdfjs_require__(4), - ReadableStream = _require3.ReadableStream, - ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose, - ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue, - ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError, - ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize; - var _require4 = __w_pdfjs_require__(2), - WritableStream = _require4.WritableStream, - WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError; - function TransformStreamCloseReadable(transformStream) { - if (transformStream._errored === true) { - throw new TypeError('TransformStream is already errored'); - } - if (transformStream._readableClosed === true) { - throw new TypeError('Readable side is already closed'); - } - TransformStreamCloseReadableInternal(transformStream); - } - function TransformStreamEnqueueToReadable(transformStream, chunk) { - if (transformStream._errored === true) { - throw new TypeError('TransformStream is already errored'); - } - if (transformStream._readableClosed === true) { - throw new TypeError('Readable side is already closed'); - } - var controller = transformStream._readableController; - try { - ReadableStreamDefaultControllerEnqueue(controller, chunk); - } catch (e) { - transformStream._readableClosed = true; - TransformStreamErrorIfNeeded(transformStream, e); - throw transformStream._storedError; - } - var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); - var maybeBackpressure = desiredSize <= 0; - if (maybeBackpressure === true && transformStream._backpressure === false) { - TransformStreamSetBackpressure(transformStream, true); - } - } - function TransformStreamError(transformStream, e) { - if (transformStream._errored === true) { - throw new TypeError('TransformStream is already errored'); - } - TransformStreamErrorInternal(transformStream, e); - } - function TransformStreamCloseReadableInternal(transformStream) { - assert(transformStream._errored === false); - assert(transformStream._readableClosed === false); - try { - ReadableStreamDefaultControllerClose(transformStream._readableController); - } catch (e) { - assert(false); - } - transformStream._readableClosed = true; - } - function TransformStreamErrorIfNeeded(transformStream, e) { - if (transformStream._errored === false) { - TransformStreamErrorInternal(transformStream, e); - } - } - function TransformStreamErrorInternal(transformStream, e) { - assert(transformStream._errored === false); - transformStream._errored = true; - transformStream._storedError = e; - if (transformStream._writableDone === false) { - WritableStreamDefaultControllerError(transformStream._writableController, e); - } - if (transformStream._readableClosed === false) { - ReadableStreamDefaultControllerError(transformStream._readableController, e); - } - } - function TransformStreamReadableReadyPromise(transformStream) { - assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); - if (transformStream._backpressure === false) { - return Promise.resolve(); - } - assert(transformStream._backpressure === true, '_backpressure should have been initialized'); - return transformStream._backpressureChangePromise; - } - function TransformStreamSetBackpressure(transformStream, backpressure) { - assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed'); - if (transformStream._backpressureChangePromise !== undefined) { - transformStream._backpressureChangePromise_resolve(backpressure); - } - transformStream._backpressureChangePromise = new Promise(function (resolve) { - transformStream._backpressureChangePromise_resolve = resolve; - }); - transformStream._backpressureChangePromise.then(function (resolution) { - assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed'); - }); - transformStream._backpressure = backpressure; - } - function TransformStreamDefaultTransform(chunk, transformStreamController) { - var transformStream = transformStreamController._controlledTransformStream; - TransformStreamEnqueueToReadable(transformStream, chunk); - return Promise.resolve(); - } - function TransformStreamTransform(transformStream, chunk) { - assert(transformStream._errored === false); - assert(transformStream._transforming === false); - assert(transformStream._backpressure === false); - transformStream._transforming = true; - var transformer = transformStream._transformer; - var controller = transformStream._transformStreamController; - var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]); - return transformPromise.then(function () { - transformStream._transforming = false; - return TransformStreamReadableReadyPromise(transformStream); - }, function (e) { - TransformStreamErrorIfNeeded(transformStream, e); - return Promise.reject(e); - }); - } - function IsTransformStreamDefaultController(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) { - return false; - } - return true; - } - function IsTransformStream(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) { - return false; - } - return true; - } - var TransformStreamSink = function () { - function TransformStreamSink(transformStream, startPromise) { - _classCallCheck(this, TransformStreamSink); - this._transformStream = transformStream; - this._startPromise = startPromise; - } - _createClass(TransformStreamSink, [{ - key: 'start', - value: function start(c) { - var transformStream = this._transformStream; - transformStream._writableController = c; - return this._startPromise.then(function () { - return TransformStreamReadableReadyPromise(transformStream); - }); + if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) { + this.endSMaskGroup(); + } + if (this.stateStack.length !== 0) { + this.current = this.stateStack.pop(); + this.ctx.restore(); + this.pendingClip = null; + this.cachedGetSinglePixelWidth = null; + } + }, + transform: function CanvasGraphics_transform(a, b, c, d, e, f) { + this.ctx.transform(a, b, c, d, e, f); + this.cachedGetSinglePixelWidth = null; + }, + constructPath: function CanvasGraphics_constructPath(ops, args) { + var ctx = this.ctx; + var current = this.current; + var x = current.x, + y = current.y; + for (var i = 0, j = 0, ii = ops.length; i < ii; i++) { + switch (ops[i] | 0) { + case _util.OPS.rectangle: + x = args[j++]; + y = args[j++]; + var width = args[j++]; + var height = args[j++]; + if (width === 0) { + width = this.getSinglePixelWidth(); + } + if (height === 0) { + height = this.getSinglePixelWidth(); + } + var xw = x + width; + var yh = y + height; + this.ctx.moveTo(x, y); + this.ctx.lineTo(xw, y); + this.ctx.lineTo(xw, yh); + this.ctx.lineTo(x, yh); + this.ctx.lineTo(x, y); + this.ctx.closePath(); + break; + case _util.OPS.moveTo: + x = args[j++]; + y = args[j++]; + ctx.moveTo(x, y); + break; + case _util.OPS.lineTo: + x = args[j++]; + y = args[j++]; + ctx.lineTo(x, y); + break; + case _util.OPS.curveTo: + x = args[j + 4]; + y = args[j + 5]; + ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y); + j += 6; + break; + case _util.OPS.curveTo2: + ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]); + x = args[j + 2]; + y = args[j + 3]; + j += 4; + break; + case _util.OPS.curveTo3: + x = args[j + 2]; + y = args[j + 3]; + ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y); + j += 4; + break; + case _util.OPS.closePath: + ctx.closePath(); + break; + } + } + current.setCurrentPoint(x, y); + }, + closePath: function CanvasGraphics_closePath() { + this.ctx.closePath(); + }, + stroke: function CanvasGraphics_stroke(consumePath) { + consumePath = typeof consumePath !== 'undefined' ? consumePath : true; + var ctx = this.ctx; + var strokeColor = this.current.strokeColor; + ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth); + ctx.globalAlpha = this.current.strokeAlpha; + if (strokeColor && strokeColor.hasOwnProperty('type') && strokeColor.type === 'Pattern') { + ctx.save(); + ctx.strokeStyle = strokeColor.getPattern(ctx, this); + ctx.stroke(); + ctx.restore(); + } else { + ctx.stroke(); } - }, { - key: 'write', - value: function write(chunk) { - var transformStream = this._transformStream; - return TransformStreamTransform(transformStream, chunk); + if (consumePath) { + this.consumePath(); } - }, { - key: 'abort', - value: function abort() { - var transformStream = this._transformStream; - transformStream._writableDone = true; - TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted')); + ctx.globalAlpha = this.current.fillAlpha; + }, + closeStroke: function CanvasGraphics_closeStroke() { + this.closePath(); + this.stroke(); + }, + fill: function CanvasGraphics_fill(consumePath) { + consumePath = typeof consumePath !== 'undefined' ? consumePath : true; + var ctx = this.ctx; + var fillColor = this.current.fillColor; + var isPatternFill = this.current.patternFill; + var needRestore = false; + if (isPatternFill) { + ctx.save(); + if (this.baseTransform) { + ctx.setTransform.apply(ctx, this.baseTransform); + } + ctx.fillStyle = fillColor.getPattern(ctx, this); + needRestore = true; } - }, { - key: 'close', - value: function close() { - var transformStream = this._transformStream; - assert(transformStream._transforming === false); - transformStream._writableDone = true; - var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]); - return flushPromise.then(function () { - if (transformStream._errored === true) { - return Promise.reject(transformStream._storedError); - } - if (transformStream._readableClosed === false) { - TransformStreamCloseReadableInternal(transformStream); - } - return Promise.resolve(); - }).catch(function (r) { - TransformStreamErrorIfNeeded(transformStream, r); - return Promise.reject(transformStream._storedError); - }); + if (this.pendingEOFill) { + ctx.fill('evenodd'); + this.pendingEOFill = false; + } else { + ctx.fill(); } - }]); - return TransformStreamSink; - }(); - var TransformStreamSource = function () { - function TransformStreamSource(transformStream, startPromise) { - _classCallCheck(this, TransformStreamSource); - this._transformStream = transformStream; - this._startPromise = startPromise; - } - _createClass(TransformStreamSource, [{ - key: 'start', - value: function start(c) { - var transformStream = this._transformStream; - transformStream._readableController = c; - return this._startPromise.then(function () { - assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); - if (transformStream._backpressure === true) { - return Promise.resolve(); - } - assert(transformStream._backpressure === false, '_backpressure should have been initialized'); - return transformStream._backpressureChangePromise; - }); + if (needRestore) { + ctx.restore(); } - }, { - key: 'pull', - value: function pull() { - var transformStream = this._transformStream; - assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false'); - assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); - TransformStreamSetBackpressure(transformStream, false); - return transformStream._backpressureChangePromise; + if (consumePath) { + this.consumePath(); } - }, { - key: 'cancel', - value: function cancel() { - var transformStream = this._transformStream; - transformStream._readableClosed = true; - TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled')); + }, + eoFill: function CanvasGraphics_eoFill() { + this.pendingEOFill = true; + this.fill(); + }, + fillStroke: function CanvasGraphics_fillStroke() { + this.fill(false); + this.stroke(false); + this.consumePath(); + }, + eoFillStroke: function CanvasGraphics_eoFillStroke() { + this.pendingEOFill = true; + this.fillStroke(); + }, + closeFillStroke: function CanvasGraphics_closeFillStroke() { + this.closePath(); + this.fillStroke(); + }, + closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() { + this.pendingEOFill = true; + this.closePath(); + this.fillStroke(); + }, + endPath: function CanvasGraphics_endPath() { + this.consumePath(); + }, + clip: function CanvasGraphics_clip() { + this.pendingClip = NORMAL_CLIP; + }, + eoClip: function CanvasGraphics_eoClip() { + this.pendingClip = EO_CLIP; + }, + beginText: function CanvasGraphics_beginText() { + this.current.textMatrix = _util.IDENTITY_MATRIX; + this.current.textMatrixScale = 1; + this.current.x = this.current.lineX = 0; + this.current.y = this.current.lineY = 0; + }, + endText: function CanvasGraphics_endText() { + var paths = this.pendingTextPaths; + var ctx = this.ctx; + if (paths === undefined) { + ctx.beginPath(); + return; } - }]); - return TransformStreamSource; - }(); - var TransformStreamDefaultController = function () { - function TransformStreamDefaultController(transformStream) { - _classCallCheck(this, TransformStreamDefaultController); - if (IsTransformStream(transformStream) === false) { - throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance'); + ctx.save(); + ctx.beginPath(); + for (var i = 0; i < paths.length; i++) { + var path = paths[i]; + ctx.setTransform.apply(ctx, path.transform); + ctx.translate(path.x, path.y); + path.addToPath(ctx, path.fontSize); } - if (transformStream._transformStreamController !== undefined) { - throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor'); + ctx.restore(); + ctx.clip(); + ctx.beginPath(); + delete this.pendingTextPaths; + }, + setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) { + this.current.charSpacing = spacing; + }, + setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) { + this.current.wordSpacing = spacing; + }, + setHScale: function CanvasGraphics_setHScale(scale) { + this.current.textHScale = scale / 100; + }, + setLeading: function CanvasGraphics_setLeading(leading) { + this.current.leading = -leading; + }, + setFont: function CanvasGraphics_setFont(fontRefName, size) { + var fontObj = this.commonObjs.get(fontRefName); + var current = this.current; + if (!fontObj) { + throw new Error('Can\'t find font for ' + fontRefName); } - this._controlledTransformStream = transformStream; - } - _createClass(TransformStreamDefaultController, [{ - key: 'enqueue', - value: function enqueue(chunk) { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('enqueue'); - } - TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk); + current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; + if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) { + (0, _util.warn)('Invalid font matrix for font ' + fontRefName); } - }, { - key: 'close', - value: function close() { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('close'); - } - TransformStreamCloseReadable(this._controlledTransformStream); + if (size < 0) { + size = -size; + current.fontDirection = -1; + } else { + current.fontDirection = 1; + } + this.current.font = fontObj; + this.current.fontSize = size; + if (fontObj.isType3Font) { + return; + } + var name = fontObj.loadedName || 'sans-serif'; + var bold = fontObj.black ? '900' : fontObj.bold ? 'bold' : 'normal'; + var italic = fontObj.italic ? 'italic' : 'normal'; + var typeface = '"' + name + '", ' + fontObj.fallbackName; + var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE : size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size; + this.current.fontSizeScale = size / browserFontSize; + var rule = italic + ' ' + bold + ' ' + browserFontSize + 'px ' + typeface; + this.ctx.font = rule; + }, + setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) { + this.current.textRenderingMode = mode; + }, + setTextRise: function CanvasGraphics_setTextRise(rise) { + this.current.textRise = rise; + }, + moveText: function CanvasGraphics_moveText(x, y) { + this.current.x = this.current.lineX += x; + this.current.y = this.current.lineY += y; + }, + setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) { + this.setLeading(-y); + this.moveText(x, y); + }, + setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) { + this.current.textMatrix = [a, b, c, d, e, f]; + this.current.textMatrixScale = Math.sqrt(a * a + b * b); + this.current.x = this.current.lineX = 0; + this.current.y = this.current.lineY = 0; + }, + nextLine: function CanvasGraphics_nextLine() { + this.moveText(0, this.current.leading); + }, + paintChar: function paintChar(character, x, y, patternTransform) { + var ctx = this.ctx; + var current = this.current; + var font = current.font; + var textRenderingMode = current.textRenderingMode; + var fontSize = current.fontSize / current.fontSizeScale; + var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG); + var patternFill = current.patternFill && font.data; + var addToPath; + if (font.disableFontFace || isAddToPathSet || patternFill) { + addToPath = font.getPathGenerator(this.commonObjs, character); } - }, { - key: 'error', - value: function error(reason) { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('error'); + if (font.disableFontFace || patternFill) { + ctx.save(); + ctx.translate(x, y); + ctx.beginPath(); + addToPath(ctx, fontSize); + if (patternTransform) { + ctx.setTransform.apply(ctx, patternTransform); } - TransformStreamError(this._controlledTransformStream, reason); - } - }, { - key: 'desiredSize', - get: function get() { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('desiredSize'); + if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.fill(); } - var transformStream = this._controlledTransformStream; - var readableController = transformStream._readableController; - return ReadableStreamDefaultControllerGetDesiredSize(readableController); - } - }]); - return TransformStreamDefaultController; - }(); - var TransformStream = function () { - function TransformStream() { - var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - _classCallCheck(this, TransformStream); - this._transformer = transformer; - var readableStrategy = transformer.readableStrategy, - writableStrategy = transformer.writableStrategy; - this._transforming = false; - this._errored = false; - this._storedError = undefined; - this._writableController = undefined; - this._readableController = undefined; - this._transformStreamController = undefined; - this._writableDone = false; - this._readableClosed = false; - this._backpressure = undefined; - this._backpressureChangePromise = undefined; - this._backpressureChangePromise_resolve = undefined; - this._transformStreamController = new TransformStreamDefaultController(this); - var startPromise_resolve = void 0; - var startPromise = new Promise(function (resolve) { - startPromise_resolve = resolve; - }); - var source = new TransformStreamSource(this, startPromise); - this._readable = new ReadableStream(source, readableStrategy); - var sink = new TransformStreamSink(this, startPromise); - this._writable = new WritableStream(sink, writableStrategy); - assert(this._writableController !== undefined); - assert(this._readableController !== undefined); - var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController); - TransformStreamSetBackpressure(this, desiredSize <= 0); - var transformStream = this; - var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]); - startPromise_resolve(startResult); - startPromise.catch(function (e) { - if (transformStream._errored === false) { - transformStream._errored = true; - transformStream._storedError = e; + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.stroke(); } - }); - } - _createClass(TransformStream, [{ - key: 'readable', - get: function get() { - if (IsTransformStream(this) === false) { - throw streamBrandCheckException('readable'); + ctx.restore(); + } else { + if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.fillText(character, x, y); } - return this._readable; - } - }, { - key: 'writable', - get: function get() { - if (IsTransformStream(this) === false) { - throw streamBrandCheckException('writable'); + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.strokeText(character, x, y); } - return this._writable; } - }]); - return TransformStream; - }(); - module.exports = { TransformStream: TransformStream }; - function defaultControllerBrandCheckException(name) { - return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController'); - } - function streamBrandCheckException(name) { - return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream'); - } -}, function (module, exports, __w_pdfjs_require__) { - module.exports = __w_pdfjs_require__(5); -}])); - -/***/ }), -/* 121 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.PDFJS = exports.globalScope = undefined; - -var _util = __w_pdfjs_require__(0); - -var _dom_utils = __w_pdfjs_require__(10); - -var _api = __w_pdfjs_require__(59); - -var _annotation_layer = __w_pdfjs_require__(61); - -var _global_scope = __w_pdfjs_require__(15); - -var _global_scope2 = _interopRequireDefault(_global_scope); - -var _worker_options = __w_pdfjs_require__(39); - -var _metadata = __w_pdfjs_require__(60); - -var _text_layer = __w_pdfjs_require__(62); - -var _svg = __w_pdfjs_require__(63); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -if (!_global_scope2.default.PDFJS) { - _global_scope2.default.PDFJS = {}; -} -var PDFJS = _global_scope2.default.PDFJS; -PDFJS.pdfBug = false; -PDFJS.OPS = _util.OPS; -PDFJS.UNSUPPORTED_FEATURES = _util.UNSUPPORTED_FEATURES; -PDFJS.shadow = _util.shadow; -PDFJS.createBlob = _util.createBlob; -PDFJS.createObjectURL = function PDFJS_createObjectURL(data, contentType) { - return (0, _util.createObjectURL)(data, contentType, PDFJS.disableCreateObjectURL); -}; -Object.defineProperty(PDFJS, 'isLittleEndian', { - configurable: true, - get: function PDFJS_isLittleEndian() { - return (0, _util.shadow)(PDFJS, 'isLittleEndian', (0, _util.isLittleEndian)()); - } -}); -PDFJS.removeNullCharacters = _util.removeNullCharacters; -PDFJS.PasswordResponses = _util.PasswordResponses; -PDFJS.PasswordException = _util.PasswordException; -PDFJS.UnknownErrorException = _util.UnknownErrorException; -PDFJS.InvalidPDFException = _util.InvalidPDFException; -PDFJS.MissingPDFException = _util.MissingPDFException; -PDFJS.UnexpectedResponseException = _util.UnexpectedResponseException; -PDFJS.Util = _util.Util; -PDFJS.PageViewport = _util.PageViewport; -PDFJS.createPromiseCapability = _util.createPromiseCapability; -PDFJS.maxImageSize = PDFJS.maxImageSize === undefined ? -1 : PDFJS.maxImageSize; -PDFJS.cMapUrl = PDFJS.cMapUrl === undefined ? null : PDFJS.cMapUrl; -PDFJS.cMapPacked = PDFJS.cMapPacked === undefined ? false : PDFJS.cMapPacked; -PDFJS.disableFontFace = PDFJS.disableFontFace === undefined ? false : PDFJS.disableFontFace; -PDFJS.disableRange = PDFJS.disableRange === undefined ? false : PDFJS.disableRange; -PDFJS.disableStream = PDFJS.disableStream === undefined ? false : PDFJS.disableStream; -PDFJS.disableAutoFetch = PDFJS.disableAutoFetch === undefined ? false : PDFJS.disableAutoFetch; -PDFJS.pdfBug = PDFJS.pdfBug === undefined ? false : PDFJS.pdfBug; -PDFJS.disableCreateObjectURL = PDFJS.disableCreateObjectURL === undefined ? false : PDFJS.disableCreateObjectURL; -PDFJS.externalLinkTarget = PDFJS.externalLinkTarget === undefined ? _dom_utils.LinkTarget.NONE : PDFJS.externalLinkTarget; -PDFJS.externalLinkRel = PDFJS.externalLinkRel === undefined ? _dom_utils.DEFAULT_LINK_REL : PDFJS.externalLinkRel; -PDFJS.isEvalSupported = PDFJS.isEvalSupported === undefined ? true : PDFJS.isEvalSupported; -PDFJS.getDocument = _api.getDocument; -PDFJS.LoopbackPort = _api.LoopbackPort; -PDFJS.PDFDataRangeTransport = _api.PDFDataRangeTransport; -PDFJS.PDFWorker = _api.PDFWorker; -PDFJS.GlobalWorkerOptions = _worker_options.GlobalWorkerOptions; -PDFJS.getFilenameFromUrl = _dom_utils.getFilenameFromUrl; -PDFJS.AnnotationLayer = _annotation_layer.AnnotationLayer; -PDFJS.renderTextLayer = _text_layer.renderTextLayer; -PDFJS.Metadata = _metadata.Metadata; -PDFJS.SVGGraphics = _svg.SVGGraphics; -exports.globalScope = _global_scope2.default; -exports.PDFJS = PDFJS; - -/***/ }), -/* 122 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.FontLoader = exports.FontFaceObject = undefined; - -var _util = __w_pdfjs_require__(0); - -function FontLoader(docId) { - this.docId = docId; - this.styleElement = null; - this.nativeFontFaces = []; - this.loadTestFontId = 0; - this.loadingContext = { - requests: [], - nextRequestId: 0 - }; -} -FontLoader.prototype = { - insertRule: function fontLoaderInsertRule(rule) { - var styleElement = this.styleElement; - if (!styleElement) { - styleElement = this.styleElement = document.createElement('style'); - styleElement.id = 'PDFJS_FONT_STYLE_TAG_' + this.docId; - document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement); - } - var styleSheet = styleElement.sheet; - styleSheet.insertRule(rule, styleSheet.cssRules.length); - }, - clear: function fontLoaderClear() { - if (this.styleElement) { - this.styleElement.remove(); - this.styleElement = null; - } - this.nativeFontFaces.forEach(function (nativeFontFace) { - document.fonts.delete(nativeFontFace); - }); - this.nativeFontFaces.length = 0; - } -}; -{ - var getLoadTestFont = function getLoadTestFont() { - return atob('T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQ' + 'AABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwA' + 'AAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbm' + 'FtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAA' + 'AADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6A' + 'ABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAA' + 'MQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAA' + 'AAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAA' + 'AAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQ' + 'AAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMA' + 'AQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAA' + 'EAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAA' + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAA' + 'AAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgc' + 'A/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF' + 'hYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQA' + 'AAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAg' + 'ABAAAAAAAAAAAD6AAAAAAAAA=='); - }; - Object.defineProperty(FontLoader.prototype, 'loadTestFont', { - get: function get() { - return (0, _util.shadow)(this, 'loadTestFont', getLoadTestFont()); + if (isAddToPathSet) { + var paths = this.pendingTextPaths || (this.pendingTextPaths = []); + paths.push({ + transform: ctx.mozCurrentTransform, + x: x, + y: y, + fontSize: fontSize, + addToPath: addToPath + }); + } }, - configurable: true - }); - FontLoader.prototype.addNativeFontFace = function fontLoader_addNativeFontFace(nativeFontFace) { - this.nativeFontFaces.push(nativeFontFace); - document.fonts.add(nativeFontFace); - }; - FontLoader.prototype.bind = function fontLoaderBind(fonts, callback) { - var rules = []; - var fontsToLoad = []; - var fontLoadPromises = []; - var getNativeFontPromise = function getNativeFontPromise(nativeFontFace) { - return nativeFontFace.loaded.catch(function (e) { - (0, _util.warn)('Failed to load font "' + nativeFontFace.family + '": ' + e); - }); - }; - var isFontLoadingAPISupported = FontLoader.isFontLoadingAPISupported && !FontLoader.isSyncFontLoadingSupported; - for (var i = 0, ii = fonts.length; i < ii; i++) { - var font = fonts[i]; - if (font.attached || font.loading === false) { - continue; + get isFontSubpixelAAEnabled() { + var ctx = this.canvasFactory.create(10, 10).context; + ctx.scale(1.5, 1); + ctx.fillText('I', 0, 10); + var data = ctx.getImageData(0, 0, 10, 10).data; + var enabled = false; + for (var i = 3; i < data.length; i += 4) { + if (data[i] > 0 && data[i] < 255) { + enabled = true; + break; + } + } + return (0, _util.shadow)(this, 'isFontSubpixelAAEnabled', enabled); + }, + showText: function CanvasGraphics_showText(glyphs) { + var current = this.current; + var font = current.font; + if (font.isType3Font) { + return this.showType3Text(glyphs); + } + var fontSize = current.fontSize; + if (fontSize === 0) { + return; + } + var ctx = this.ctx; + var fontSizeScale = current.fontSizeScale; + var charSpacing = current.charSpacing; + var wordSpacing = current.wordSpacing; + var fontDirection = current.fontDirection; + var textHScale = current.textHScale * fontDirection; + var glyphsLength = glyphs.length; + var vertical = font.vertical; + var spacingDir = vertical ? 1 : -1; + var defaultVMetrics = font.defaultVMetrics; + var widthAdvanceScale = fontSize * current.fontMatrix[0]; + var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill; + ctx.save(); + var patternTransform = void 0; + if (current.patternFill) { + ctx.save(); + var pattern = current.fillColor.getPattern(ctx, this); + patternTransform = ctx.mozCurrentTransform; + ctx.restore(); + ctx.fillStyle = pattern; } - font.attached = true; - if (isFontLoadingAPISupported) { - var nativeFontFace = font.createNativeFontFace(); - if (nativeFontFace) { - this.addNativeFontFace(nativeFontFace); - fontLoadPromises.push(getNativeFontPromise(nativeFontFace)); - } + ctx.transform.apply(ctx, current.textMatrix); + ctx.translate(current.x, current.y + current.textRise); + if (fontDirection > 0) { + ctx.scale(textHScale, -1); } else { - var rule = font.createFontFaceRule(); - if (rule) { - this.insertRule(rule); - rules.push(rule); - fontsToLoad.push(font); + ctx.scale(textHScale, 1); + } + var lineWidth = current.lineWidth; + var scale = current.textMatrixScale; + if (scale === 0 || lineWidth === 0) { + var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + this.cachedGetSinglePixelWidth = null; + lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR; } + } else { + lineWidth /= scale; } - } - var request = this.queueLoadingCallback(callback); - if (isFontLoadingAPISupported) { - Promise.all(fontLoadPromises).then(function () { - request.complete(); - }); - } else if (rules.length > 0 && !FontLoader.isSyncFontLoadingSupported) { - this.prepareFontLoadEvent(rules, fontsToLoad, request); - } else { - request.complete(); - } - }; - FontLoader.prototype.queueLoadingCallback = function FontLoader_queueLoadingCallback(callback) { - function LoadLoader_completeRequest() { - (0, _util.assert)(!request.end, 'completeRequest() cannot be called twice'); - request.end = Date.now(); - while (context.requests.length > 0 && context.requests[0].end) { - var otherRequest = context.requests.shift(); - setTimeout(otherRequest.callback, 0); + if (fontSizeScale !== 1.0) { + ctx.scale(fontSizeScale, fontSizeScale); + lineWidth /= fontSizeScale; } - } - var context = this.loadingContext; - var requestId = 'pdfjs-font-loading-' + context.nextRequestId++; - var request = { - id: requestId, - complete: LoadLoader_completeRequest, - callback: callback, - started: Date.now() - }; - context.requests.push(request); - return request; - }; - FontLoader.prototype.prepareFontLoadEvent = function fontLoaderPrepareFontLoadEvent(rules, fonts, request) { - function int32(data, offset) { - return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff; - } - function spliceString(s, offset, remove, insert) { - var chunk1 = s.substr(0, offset); - var chunk2 = s.substr(offset + remove); - return chunk1 + insert + chunk2; - } - var i, ii; - var canvas = document.createElement('canvas'); - canvas.width = 1; - canvas.height = 1; - var ctx = canvas.getContext('2d'); - var called = 0; - function isFontReady(name, callback) { - called++; - if (called > 30) { - (0, _util.warn)('Load test font never loaded.'); - callback(); - return; + ctx.lineWidth = lineWidth; + var x = 0, + i; + for (i = 0; i < glyphsLength; ++i) { + var glyph = glyphs[i]; + if ((0, _util.isNum)(glyph)) { + x += spacingDir * glyph * fontSize / 1000; + continue; + } + var restoreNeeded = false; + var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + var character = glyph.fontChar; + var accent = glyph.accent; + var scaledX, scaledY, scaledAccentX, scaledAccentY; + var width = glyph.width; + if (vertical) { + var vmetric, vx, vy; + vmetric = glyph.vmetric || defaultVMetrics; + vx = glyph.vmetric ? vmetric[1] : width * 0.5; + vx = -vx * widthAdvanceScale; + vy = vmetric[2] * widthAdvanceScale; + width = vmetric ? -vmetric[0] : width; + scaledX = vx / fontSizeScale; + scaledY = (x + vy) / fontSizeScale; + } else { + scaledX = x / fontSizeScale; + scaledY = 0; + } + if (font.remeasure && width > 0) { + var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale; + if (width < measuredWidth && this.isFontSubpixelAAEnabled) { + var characterScaleX = width / measuredWidth; + restoreNeeded = true; + ctx.save(); + ctx.scale(characterScaleX, 1); + scaledX /= characterScaleX; + } else if (width !== measuredWidth) { + scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale; + } + } + if (glyph.isInFont || font.missingFile) { + if (simpleFillText && !accent) { + ctx.fillText(character, scaledX, scaledY); + } else { + this.paintChar(character, scaledX, scaledY, patternTransform); + if (accent) { + scaledAccentX = scaledX + accent.offset.x / fontSizeScale; + scaledAccentY = scaledY - accent.offset.y / fontSizeScale; + this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform); + } + } + } + var charWidth = width * widthAdvanceScale + spacing * fontDirection; + x += charWidth; + if (restoreNeeded) { + ctx.restore(); + } } - ctx.font = '30px ' + name; - ctx.fillText('.', 0, 20); - var imageData = ctx.getImageData(0, 0, 1, 1); - if (imageData.data[3] > 0) { - callback(); + if (vertical) { + current.y -= x * textHScale; + } else { + current.x += x * textHScale; + } + ctx.restore(); + }, + showType3Text: function CanvasGraphics_showType3Text(glyphs) { + var ctx = this.ctx; + var current = this.current; + var font = current.font; + var fontSize = current.fontSize; + var fontDirection = current.fontDirection; + var spacingDir = font.vertical ? 1 : -1; + var charSpacing = current.charSpacing; + var wordSpacing = current.wordSpacing; + var textHScale = current.textHScale * fontDirection; + var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX; + var glyphsLength = glyphs.length; + var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE; + var i, glyph, width, spacingLength; + if (isTextInvisible || fontSize === 0) { return; } - setTimeout(isFontReady.bind(null, name, callback)); - } - var loadTestFontId = 'lt' + Date.now() + this.loadTestFontId++; - var data = this.loadTestFont; - var COMMENT_OFFSET = 976; - data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId); - var CFF_CHECKSUM_OFFSET = 16; - var XXXX_VALUE = 0x58585858; - var checksum = int32(data, CFF_CHECKSUM_OFFSET); - for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) { - checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0; - } - if (i < loadTestFontId.length) { - checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0; - } - data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum)); - var url = 'url(data:font/opentype;base64,' + btoa(data) + ');'; - var rule = '@font-face { font-family:"' + loadTestFontId + '";src:' + url + '}'; - this.insertRule(rule); - var names = []; - for (i = 0, ii = fonts.length; i < ii; i++) { - names.push(fonts[i].loadedName); - } - names.push(loadTestFontId); - var div = document.createElement('div'); - div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;'); - for (i = 0, ii = names.length; i < ii; ++i) { - var span = document.createElement('span'); - span.textContent = 'Hi'; - span.style.fontFamily = names[i]; - div.appendChild(span); - } - document.body.appendChild(div); - isFontReady(loadTestFontId, function () { - document.body.removeChild(div); - request.complete(); - }); - }; -} -{ - FontLoader.isFontLoadingAPISupported = typeof document !== 'undefined' && !!document.fonts; -} -{ - var isSyncFontLoadingSupported = function isSyncFontLoadingSupported() { - if (typeof navigator === 'undefined') { - return true; - } - var supported = false; - var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); - if (m && m[1] >= 14) { - supported = true; - } - return supported; - }; - Object.defineProperty(FontLoader, 'isSyncFontLoadingSupported', { - get: function get() { - return (0, _util.shadow)(FontLoader, 'isSyncFontLoadingSupported', isSyncFontLoadingSupported()); + this.cachedGetSinglePixelWidth = null; + ctx.save(); + ctx.transform.apply(ctx, current.textMatrix); + ctx.translate(current.x, current.y); + ctx.scale(textHScale, fontDirection); + for (i = 0; i < glyphsLength; ++i) { + glyph = glyphs[i]; + if ((0, _util.isNum)(glyph)) { + spacingLength = spacingDir * glyph * fontSize / 1000; + this.ctx.translate(spacingLength, 0); + current.x += spacingLength * textHScale; + continue; + } + var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + var operatorList = font.charProcOperatorList[glyph.operatorListId]; + if (!operatorList) { + (0, _util.warn)('Type3 character "' + glyph.operatorListId + '" is not available.'); + continue; + } + this.processingType3 = glyph; + this.save(); + ctx.scale(fontSize, fontSize); + ctx.transform.apply(ctx, fontMatrix); + this.executeOperatorList(operatorList); + this.restore(); + var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix); + width = transformed[0] * fontSize + spacing; + ctx.translate(width, 0); + current.x += width * textHScale; + } + ctx.restore(); + this.processingType3 = null; + }, + setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {}, + setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) { + this.ctx.rect(llx, lly, urx - llx, ury - lly); + this.clip(); + this.endPath(); }, + getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) { + var _this = this; - enumerable: true, - configurable: true - }); -} -var IsEvalSupportedCached = { - get value() { - return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)()); - } -}; -var FontFaceObject = function FontFaceObjectClosure() { - function FontFaceObject(translatedData, options) { - this.compiledGlyphs = Object.create(null); - for (var i in translatedData) { - this[i] = translatedData[i]; - } - this.options = options; - } - FontFaceObject.prototype = { - createNativeFontFace: function FontFaceObject_createNativeFontFace() { - if (!this.data) { - return null; + var pattern; + if (IR[0] === 'TilingPattern') { + var color = IR[1]; + var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice(); + var canvasGraphicsFactory = { + createCanvasGraphics: function createCanvasGraphics(ctx) { + return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory, _this.webGLContext); + } + }; + pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform); + } else { + pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR); } - if (this.options.disableFontFace) { - this.disableFontFace = true; - return null; + return pattern; + }, + setStrokeColorN: function CanvasGraphics_setStrokeColorN() { + this.current.strokeColor = this.getColorN_Pattern(arguments); + }, + setFillColorN: function CanvasGraphics_setFillColorN() { + this.current.fillColor = this.getColorN_Pattern(arguments); + this.current.patternFill = true; + }, + setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) { + var color = _util.Util.makeCssRgb(r, g, b); + this.ctx.strokeStyle = color; + this.current.strokeColor = color; + }, + setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) { + var color = _util.Util.makeCssRgb(r, g, b); + this.ctx.fillStyle = color; + this.current.fillColor = color; + this.current.patternFill = false; + }, + shadingFill: function CanvasGraphics_shadingFill(patternIR) { + var ctx = this.ctx; + this.save(); + var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR); + ctx.fillStyle = pattern.getPattern(ctx, this, true); + var inv = ctx.mozCurrentTransformInverse; + if (inv) { + var canvas = ctx.canvas; + var width = canvas.width; + var height = canvas.height; + var bl = _util.Util.applyTransform([0, 0], inv); + var br = _util.Util.applyTransform([0, height], inv); + var ul = _util.Util.applyTransform([width, 0], inv); + var ur = _util.Util.applyTransform([width, height], inv); + var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); + var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); + var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); + var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); + this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); + } else { + this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); } - var nativeFontFace = new FontFace(this.loadedName, this.data, {}); - if (this.options.fontRegistry) { - this.options.fontRegistry.registerFont(this); + this.restore(); + }, + beginInlineImage: function CanvasGraphics_beginInlineImage() { + (0, _util.unreachable)('Should not call beginInlineImage'); + }, + beginImageData: function CanvasGraphics_beginImageData() { + (0, _util.unreachable)('Should not call beginImageData'); + }, + paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) { + this.save(); + this.baseTransformStack.push(this.baseTransform); + if (Array.isArray(matrix) && matrix.length === 6) { + this.transform.apply(this, matrix); + } + this.baseTransform = this.ctx.mozCurrentTransform; + if (Array.isArray(bbox) && bbox.length === 4) { + var width = bbox[2] - bbox[0]; + var height = bbox[3] - bbox[1]; + this.ctx.rect(bbox[0], bbox[1], width, height); + this.clip(); + this.endPath(); } - return nativeFontFace; }, - createFontFaceRule: function FontFaceObject_createFontFaceRule() { - if (!this.data) { - return null; + paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() { + this.restore(); + this.baseTransform = this.baseTransformStack.pop(); + }, + beginGroup: function CanvasGraphics_beginGroup(group) { + this.save(); + var currentCtx = this.ctx; + if (!group.isolated) { + (0, _util.info)('TODO: Support non-isolated groups.'); } - if (this.options.disableFontFace) { - this.disableFontFace = true; - return null; + if (group.knockout) { + (0, _util.warn)('Knockout groups not supported.'); } - var data = (0, _util.bytesToString)(new Uint8Array(this.data)); - var fontName = this.loadedName; - var url = 'url(data:' + this.mimetype + ';base64,' + btoa(data) + ');'; - var rule = '@font-face { font-family:"' + fontName + '";src:' + url + '}'; - if (this.options.fontRegistry) { - this.options.fontRegistry.registerFont(this, url); + var currentTransform = currentCtx.mozCurrentTransform; + if (group.matrix) { + currentCtx.transform.apply(currentCtx, group.matrix); } - return rule; - }, - getPathGenerator: function FontFaceObject_getPathGenerator(objs, character) { - if (!(character in this.compiledGlyphs)) { - var cmds = objs.get(this.loadedName + '_path_' + character); - var current, i, len; - if (this.options.isEvalSupported && IsEvalSupportedCached.value) { - var args, - js = ''; - for (i = 0, len = cmds.length; i < len; i++) { - current = cmds[i]; - if (current.args !== undefined) { - args = current.args.join(','); - } else { - args = ''; - } - js += 'c.' + current.cmd + '(' + args + ');\n'; - } - this.compiledGlyphs[character] = new Function('c', 'size', js); - } else { - this.compiledGlyphs[character] = function (c, size) { - for (i = 0, len = cmds.length; i < len; i++) { - current = cmds[i]; - if (current.cmd === 'scale') { - current.args = [size, -size]; - } - c[current.cmd].apply(c, current.args); - } - }; - } + if (!group.bbox) { + throw new Error('Bounding box is required.'); } - return this.compiledGlyphs[character]; - } - }; - return FontFaceObject; -}(); -exports.FontFaceObject = FontFaceObject; -exports.FontLoader = FontLoader; - -/***/ }), -/* 123 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.CanvasGraphics = undefined; - -var _util = __w_pdfjs_require__(0); - -var _pattern_helper = __w_pdfjs_require__(124); - -var MIN_FONT_SIZE = 16; -var MAX_FONT_SIZE = 100; -var MAX_GROUP_SIZE = 4096; -var MIN_WIDTH_FACTOR = 0.65; -var COMPILE_TYPE3_GLYPHS = true; -var MAX_SIZE_TO_COMPILE = 1000; -var FULL_CHUNK_HEIGHT = 16; -var IsLittleEndianCached = { - get value() { - return (0, _util.shadow)(IsLittleEndianCached, 'value', (0, _util.isLittleEndian)()); - } -}; -function addContextCurrentTransform(ctx) { - if (!ctx.mozCurrentTransform) { - ctx._originalSave = ctx.save; - ctx._originalRestore = ctx.restore; - ctx._originalRotate = ctx.rotate; - ctx._originalScale = ctx.scale; - ctx._originalTranslate = ctx.translate; - ctx._originalTransform = ctx.transform; - ctx._originalSetTransform = ctx.setTransform; - ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0]; - ctx._transformStack = []; - Object.defineProperty(ctx, 'mozCurrentTransform', { - get: function getCurrentTransform() { - return this._transformMatrix; + var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform); + var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height]; + bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0]; + var offsetX = Math.floor(bounds[0]); + var offsetY = Math.floor(bounds[1]); + var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1); + var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1); + var scaleX = 1, + scaleY = 1; + if (drawnWidth > MAX_GROUP_SIZE) { + scaleX = drawnWidth / MAX_GROUP_SIZE; + drawnWidth = MAX_GROUP_SIZE; } - }); - Object.defineProperty(ctx, 'mozCurrentTransformInverse', { - get: function getCurrentTransformInverse() { - var m = this._transformMatrix; - var a = m[0], - b = m[1], - c = m[2], - d = m[3], - e = m[4], - f = m[5]; - var ad_bc = a * d - b * c; - var bc_ad = b * c - a * d; - 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]; + if (drawnHeight > MAX_GROUP_SIZE) { + scaleY = drawnHeight / MAX_GROUP_SIZE; + drawnHeight = MAX_GROUP_SIZE; + } + var cacheId = 'groupAt' + this.groupLevel; + if (group.smask) { + cacheId += '_smask_' + this.smaskCounter++ % 2; + } + var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); + var groupCtx = scratchCanvas.context; + groupCtx.scale(1 / scaleX, 1 / scaleY); + groupCtx.translate(-offsetX, -offsetY); + groupCtx.transform.apply(groupCtx, currentTransform); + if (group.smask) { + this.smaskStack.push({ + canvas: scratchCanvas.canvas, + context: groupCtx, + offsetX: offsetX, + offsetY: offsetY, + scaleX: scaleX, + scaleY: scaleY, + subtype: group.smask.subtype, + backdrop: group.smask.backdrop, + transferMap: group.smask.transferMap || null, + startTransformInverse: null + }); + } else { + currentCtx.setTransform(1, 0, 0, 1, 0, 0); + currentCtx.translate(offsetX, offsetY); + currentCtx.scale(scaleX, scaleY); } - }); - ctx.save = function ctxSave() { - var old = this._transformMatrix; - this._transformStack.push(old); - this._transformMatrix = old.slice(0, 6); - this._originalSave(); - }; - ctx.restore = function ctxRestore() { - var prev = this._transformStack.pop(); - if (prev) { - this._transformMatrix = prev; - this._originalRestore(); + copyCtxState(currentCtx, groupCtx); + this.ctx = groupCtx; + this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]); + this.groupStack.push(currentCtx); + this.groupLevel++; + this.current.activeSMask = null; + }, + endGroup: function CanvasGraphics_endGroup(group) { + this.groupLevel--; + var groupCtx = this.ctx; + this.ctx = this.groupStack.pop(); + if (this.ctx.imageSmoothingEnabled !== undefined) { + this.ctx.imageSmoothingEnabled = false; + } else { + this.ctx.mozImageSmoothingEnabled = false; } - }; - ctx.translate = function ctxTranslate(x, y) { - var m = this._transformMatrix; - m[4] = m[0] * x + m[2] * y + m[4]; - m[5] = m[1] * x + m[3] * y + m[5]; - this._originalTranslate(x, y); - }; - ctx.scale = function ctxScale(x, y) { - var m = this._transformMatrix; - m[0] = m[0] * x; - m[1] = m[1] * x; - m[2] = m[2] * y; - m[3] = m[3] * y; - this._originalScale(x, y); - }; - ctx.transform = function ctxTransform(a, b, c, d, e, f) { - var m = this._transformMatrix; - 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]]; - ctx._originalTransform(a, b, c, d, e, f); - }; - ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { - this._transformMatrix = [a, b, c, d, e, f]; - ctx._originalSetTransform(a, b, c, d, e, f); - }; - ctx.rotate = function ctxRotate(angle) { - var cosValue = Math.cos(angle); - var sinValue = Math.sin(angle); - var m = this._transformMatrix; - 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]]; - this._originalRotate(angle); - }; - } -} -var CachedCanvases = function CachedCanvasesClosure() { - function CachedCanvases(canvasFactory) { - this.canvasFactory = canvasFactory; - this.cache = Object.create(null); - } - CachedCanvases.prototype = { - getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) { - var canvasEntry; - if (this.cache[id] !== undefined) { - canvasEntry = this.cache[id]; - this.canvasFactory.reset(canvasEntry, width, height); - canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0); + if (group.smask) { + this.tempSMask = this.smaskStack.pop(); } else { - canvasEntry = this.canvasFactory.create(width, height); - this.cache[id] = canvasEntry; + this.ctx.drawImage(groupCtx.canvas, 0, 0); } - if (trackTransform) { - addContextCurrentTransform(canvasEntry.context); + this.restore(); + }, + beginAnnotations: function CanvasGraphics_beginAnnotations() { + this.save(); + if (this.baseTransform) { + this.ctx.setTransform.apply(this.ctx, this.baseTransform); } - return canvasEntry; }, - clear: function clear() { - for (var id in this.cache) { - var canvasEntry = this.cache[id]; - this.canvasFactory.destroy(canvasEntry); - delete this.cache[id]; + endAnnotations: function CanvasGraphics_endAnnotations() { + this.restore(); + }, + beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) { + this.save(); + resetCtxToDefault(this.ctx); + this.current = new CanvasExtraState(); + if (Array.isArray(rect) && rect.length === 4) { + var width = rect[2] - rect[0]; + var height = rect[3] - rect[1]; + this.ctx.rect(rect[0], rect[1], width, height); + this.clip(); + this.endPath(); } - } - }; - return CachedCanvases; -}(); -function compileType3Glyph(imgData) { - var POINT_TO_PROCESS_LIMIT = 1000; - var width = imgData.width, - height = imgData.height; - var i, - j, - j0, - width1 = width + 1; - var points = new Uint8Array(width1 * (height + 1)); - var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]); - var lineSize = width + 7 & ~7, - data0 = imgData.data; - var data = new Uint8Array(lineSize * height), - pos = 0, - ii; - for (i = 0, ii = data0.length; i < ii; i++) { - var mask = 128, - elem = data0[i]; - while (mask > 0) { - data[pos++] = elem & mask ? 0 : 255; - mask >>= 1; - } - } - var count = 0; - pos = 0; - if (data[pos] !== 0) { - points[0] = 1; - ++count; - } - for (j = 1; j < width; j++) { - if (data[pos] !== data[pos + 1]) { - points[j] = data[pos] ? 2 : 1; - ++count; - } - pos++; - } - if (data[pos] !== 0) { - points[j] = 2; - ++count; - } - for (i = 1; i < height; i++) { - pos = i * lineSize; - j0 = i * width1; - if (data[pos - lineSize] !== data[pos]) { - points[j0] = data[pos] ? 1 : 8; - ++count; - } - var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0); - for (j = 1; j < width; j++) { - sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0); - if (POINT_TYPES[sum]) { - points[j0 + j] = POINT_TYPES[sum]; - ++count; + this.transform.apply(this, transform); + this.transform.apply(this, matrix); + }, + endAnnotation: function CanvasGraphics_endAnnotation() { + this.restore(); + }, + paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) { + var domImage = this.objs.get(objId); + if (!domImage) { + (0, _util.warn)('Dependent image isn\'t ready yet'); + return; + } + this.save(); + var ctx = this.ctx; + ctx.scale(1 / w, -1 / h); + ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h); + if (this.imageLayer) { + var currentTransform = ctx.mozCurrentTransformInverse; + var position = this.getCanvasPosition(0, 0); + this.imageLayer.appendImage({ + objId: objId, + left: position[0], + top: position[1], + width: w / currentTransform[0], + height: h / currentTransform[3] + }); + } + this.restore(); + }, + paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) { + var ctx = this.ctx; + var width = img.width, + height = img.height; + var fillColor = this.current.fillColor; + var isPatternFill = this.current.patternFill; + var glyph = this.processingType3; + if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) { + if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) { + glyph.compiled = compileType3Glyph({ + data: img.data, + width: width, + height: height + }); + } else { + glyph.compiled = null; + } + } + if (glyph && glyph.compiled) { + glyph.compiled(ctx); + return; + } + var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); + var maskCtx = maskCanvas.context; + maskCtx.save(); + putBinaryImageMask(maskCtx, img); + maskCtx.globalCompositeOperation = 'source-in'; + maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; + maskCtx.fillRect(0, 0, width, height); + maskCtx.restore(); + this.paintInlineImageXObject(maskCanvas.canvas); + }, + paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) { + var width = imgData.width; + var height = imgData.height; + var fillColor = this.current.fillColor; + var isPatternFill = this.current.patternFill; + var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); + var maskCtx = maskCanvas.context; + maskCtx.save(); + putBinaryImageMask(maskCtx, imgData); + maskCtx.globalCompositeOperation = 'source-in'; + maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; + maskCtx.fillRect(0, 0, width, height); + maskCtx.restore(); + var ctx = this.ctx; + for (var i = 0, ii = positions.length; i < ii; i += 2) { + ctx.save(); + ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]); + ctx.scale(1, -1); + ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); + ctx.restore(); + } + }, + paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) { + var ctx = this.ctx; + var fillColor = this.current.fillColor; + var isPatternFill = this.current.patternFill; + for (var i = 0, ii = images.length; i < ii; i++) { + var image = images[i]; + var width = image.width, + height = image.height; + var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); + var maskCtx = maskCanvas.context; + maskCtx.save(); + putBinaryImageMask(maskCtx, image); + maskCtx.globalCompositeOperation = 'source-in'; + maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; + maskCtx.fillRect(0, 0, width, height); + maskCtx.restore(); + ctx.save(); + ctx.transform.apply(ctx, image.transform); + ctx.scale(1, -1); + ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); + ctx.restore(); } - pos++; - } - if (data[pos - lineSize] !== data[pos]) { - points[j0 + j] = data[pos] ? 2 : 4; - ++count; - } - if (count > POINT_TO_PROCESS_LIMIT) { - return null; - } - } - pos = lineSize * (height - 1); - j0 = i * width1; - if (data[pos] !== 0) { - points[j0] = 8; - ++count; - } - for (j = 1; j < width; j++) { - if (data[pos] !== data[pos + 1]) { - points[j0 + j] = data[pos] ? 4 : 8; - ++count; - } - pos++; - } - if (data[pos] !== 0) { - points[j0 + j] = 4; - ++count; - } - if (count > POINT_TO_PROCESS_LIMIT) { - return null; - } - var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); - var outlines = []; - for (i = 0; count && i <= height; i++) { - var p = i * width1; - var end = p + width; - while (p < end && !points[p]) { - p++; - } - if (p === end) { - continue; - } - var coords = [p % width1, i]; - var type = points[p], - p0 = p, - pp; - do { - var step = steps[type]; - do { - p += step; - } while (!points[p]); - pp = points[p]; - if (pp !== 5 && pp !== 10) { - type = pp; - points[p] = 0; - } else { - type = pp & 0x33 * type >> 4; - points[p] &= type >> 2 | type << 2; + }, + paintImageXObject: function CanvasGraphics_paintImageXObject(objId) { + var imgData = this.objs.get(objId); + if (!imgData) { + (0, _util.warn)('Dependent image isn\'t ready yet'); + return; } - coords.push(p % width1); - coords.push(p / width1 | 0); - --count; - } while (p0 !== p); - outlines.push(coords); - --i; - } - var drawOutline = function drawOutline(c) { - c.save(); - c.scale(1 / width, -1 / height); - c.translate(0, -height); - c.beginPath(); - for (var i = 0, ii = outlines.length; i < ii; i++) { - var o = outlines[i]; - c.moveTo(o[0], o[1]); - for (var j = 2, jj = o.length; j < jj; j += 2) { - c.lineTo(o[j], o[j + 1]); + this.paintInlineImageXObject(imgData); + }, + paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) { + var imgData = this.objs.get(objId); + if (!imgData) { + (0, _util.warn)('Dependent image isn\'t ready yet'); + return; } - } - c.fill(); - c.beginPath(); - c.restore(); - }; - return drawOutline; -} -var CanvasExtraState = function CanvasExtraStateClosure() { - function CanvasExtraState() { - this.alphaIsShape = false; - this.fontSize = 0; - this.fontSizeScale = 1; - this.textMatrix = _util.IDENTITY_MATRIX; - this.textMatrixScale = 1; - this.fontMatrix = _util.FONT_IDENTITY_MATRIX; - this.leading = 0; - this.x = 0; - this.y = 0; - this.lineX = 0; - this.lineY = 0; - this.charSpacing = 0; - this.wordSpacing = 0; - this.textHScale = 1; - this.textRenderingMode = _util.TextRenderingMode.FILL; - this.textRise = 0; - this.fillColor = '#000000'; - this.strokeColor = '#000000'; - this.patternFill = false; - this.fillAlpha = 1; - this.strokeAlpha = 1; - this.lineWidth = 1; - this.activeSMask = null; - this.resumeSMaskCtx = null; - } - CanvasExtraState.prototype = { - clone: function CanvasExtraState_clone() { - return Object.create(this); + var width = imgData.width; + var height = imgData.height; + var map = []; + for (var i = 0, ii = positions.length; i < ii; i += 2) { + map.push({ + transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]], + x: 0, + y: 0, + w: width, + h: height + }); + } + this.paintInlineImageXObjectGroup(imgData, map); }, - setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) { - this.x = x; - this.y = y; - } - }; - return CanvasExtraState; -}(); -var CanvasGraphics = function CanvasGraphicsClosure() { - var EXECUTION_TIME = 15; - var EXECUTION_STEPS = 10; - function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) { - this.ctx = canvasCtx; - this.current = new CanvasExtraState(); - this.stateStack = []; - this.pendingClip = null; - this.pendingEOFill = false; - this.res = null; - this.xobjs = null; - this.commonObjs = commonObjs; - this.objs = objs; - this.canvasFactory = canvasFactory; - this.webGLContext = webGLContext; - this.imageLayer = imageLayer; - this.groupStack = []; - this.processingType3 = null; - this.baseTransform = null; - this.baseTransformStack = []; - this.groupLevel = 0; - this.smaskStack = []; - this.smaskCounter = 0; - this.tempSMask = null; - this.cachedCanvases = new CachedCanvases(this.canvasFactory); - if (canvasCtx) { - addContextCurrentTransform(canvasCtx); - } - this.cachedGetSinglePixelWidth = null; - } - function putBinaryImageData(ctx, imgData) { - if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) { - ctx.putImageData(imgData, 0, 0); - return; - } - var height = imgData.height, - width = imgData.width; - var partialChunkHeight = height % FULL_CHUNK_HEIGHT; - var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; - var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; - var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); - var srcPos = 0, - destPos; - var src = imgData.data; - var dest = chunkImgData.data; - var i, j, thisChunkHeight, elemsInThisChunk; - if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) { - var srcLength = src.byteLength; - var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2); - var dest32DataLength = dest32.length; - var fullSrcDiff = width + 7 >> 3; - var white = 0xFFFFFFFF; - var black = IsLittleEndianCached.value ? 0xFF000000 : 0x000000FF; - for (i = 0; i < totalChunks; i++) { - thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; - destPos = 0; - for (j = 0; j < thisChunkHeight; j++) { - var srcDiff = srcLength - srcPos; - var k = 0; - var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7; - var kEndUnrolled = kEnd & ~7; - var mask = 0; - var srcByte = 0; - for (; k < kEndUnrolled; k += 8) { - srcByte = src[srcPos++]; - dest32[destPos++] = srcByte & 128 ? white : black; - dest32[destPos++] = srcByte & 64 ? white : black; - dest32[destPos++] = srcByte & 32 ? white : black; - dest32[destPos++] = srcByte & 16 ? white : black; - dest32[destPos++] = srcByte & 8 ? white : black; - dest32[destPos++] = srcByte & 4 ? white : black; - dest32[destPos++] = srcByte & 2 ? white : black; - dest32[destPos++] = srcByte & 1 ? white : black; - } - for (; k < kEnd; k++) { - if (mask === 0) { - srcByte = src[srcPos++]; - mask = 128; - } - dest32[destPos++] = srcByte & mask ? white : black; - mask >>= 1; - } + paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) { + var width = imgData.width; + var height = imgData.height; + var ctx = this.ctx; + this.save(); + ctx.scale(1 / width, -1 / height); + var currentTransform = ctx.mozCurrentTransformInverse; + var a = currentTransform[0], + b = currentTransform[1]; + var widthScale = Math.max(Math.sqrt(a * a + b * b), 1); + var c = currentTransform[2], + d = currentTransform[3]; + var heightScale = Math.max(Math.sqrt(c * c + d * d), 1); + var imgToPaint, tmpCanvas; + if (imgData instanceof HTMLElement || !imgData.data) { + imgToPaint = imgData; + } else { + tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', width, height); + var tmpCtx = tmpCanvas.context; + putBinaryImageData(tmpCtx, imgData); + imgToPaint = tmpCanvas.canvas; + } + var paintWidth = width, + paintHeight = height; + var tmpCanvasId = 'prescale1'; + while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) { + var newWidth = paintWidth, + newHeight = paintHeight; + if (widthScale > 2 && paintWidth > 1) { + newWidth = Math.ceil(paintWidth / 2); + widthScale /= paintWidth / newWidth; } - while (destPos < dest32DataLength) { - dest32[destPos++] = 0; + if (heightScale > 2 && paintHeight > 1) { + newHeight = Math.ceil(paintHeight / 2); + heightScale /= paintHeight / newHeight; } - ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); - } - } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) { - j = 0; - elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4; - for (i = 0; i < fullChunks; i++) { - dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); - srcPos += elemsInThisChunk; - ctx.putImageData(chunkImgData, 0, j); - j += FULL_CHUNK_HEIGHT; + tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight); + tmpCtx = tmpCanvas.context; + tmpCtx.clearRect(0, 0, newWidth, newHeight); + tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight); + imgToPaint = tmpCanvas.canvas; + paintWidth = newWidth; + paintHeight = newHeight; + tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1'; } - if (i < totalChunks) { - elemsInThisChunk = width * partialChunkHeight * 4; - dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); - ctx.putImageData(chunkImgData, 0, j); + ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height); + if (this.imageLayer) { + var position = this.getCanvasPosition(0, -height); + this.imageLayer.appendImage({ + imgData: imgData, + left: position[0], + top: position[1], + width: width / currentTransform[0], + height: height / currentTransform[3] + }); } - } else if (imgData.kind === _util.ImageKind.RGB_24BPP) { - thisChunkHeight = FULL_CHUNK_HEIGHT; - elemsInThisChunk = width * thisChunkHeight; - for (i = 0; i < totalChunks; i++) { - if (i >= fullChunks) { - thisChunkHeight = partialChunkHeight; - elemsInThisChunk = width * thisChunkHeight; - } - destPos = 0; - for (j = elemsInThisChunk; j--;) { - dest[destPos++] = src[srcPos++]; - dest[destPos++] = src[srcPos++]; - dest[destPos++] = src[srcPos++]; - dest[destPos++] = 255; + this.restore(); + }, + paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) { + var ctx = this.ctx; + var w = imgData.width; + var h = imgData.height; + var tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', w, h); + var tmpCtx = tmpCanvas.context; + putBinaryImageData(tmpCtx, imgData); + for (var i = 0, ii = map.length; i < ii; i++) { + var entry = map[i]; + ctx.save(); + ctx.transform.apply(ctx, entry.transform); + ctx.scale(1, -1); + ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1); + if (this.imageLayer) { + var position = this.getCanvasPosition(entry.x, entry.y); + this.imageLayer.appendImage({ + imgData: imgData, + left: position[0], + top: position[1], + width: w, + height: h + }); } - ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + ctx.restore(); } - } else { - throw new Error('bad image kind: ' + imgData.kind); - } - } - function putBinaryImageMask(ctx, imgData) { - var height = imgData.height, - width = imgData.width; - var partialChunkHeight = height % FULL_CHUNK_HEIGHT; - var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; - var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; - var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); - var srcPos = 0; - var src = imgData.data; - var dest = chunkImgData.data; - for (var i = 0; i < totalChunks; i++) { - var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; - var destPos = 3; - for (var j = 0; j < thisChunkHeight; j++) { - var mask = 0; - for (var k = 0; k < width; k++) { - if (!mask) { - var elem = src[srcPos++]; - mask = 128; - } - dest[destPos] = elem & mask ? 0 : 255; - destPos += 4; - mask >>= 1; + }, + paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() { + this.ctx.fillRect(0, 0, 1, 1); + }, + paintXObject: function CanvasGraphics_paintXObject() { + (0, _util.warn)('Unsupported \'paintXObject\' command.'); + }, + markPoint: function CanvasGraphics_markPoint(tag) {}, + markPointProps: function CanvasGraphics_markPointProps(tag, properties) {}, + beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {}, + beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {}, + endMarkedContent: function CanvasGraphics_endMarkedContent() {}, + beginCompat: function CanvasGraphics_beginCompat() {}, + endCompat: function CanvasGraphics_endCompat() {}, + consumePath: function CanvasGraphics_consumePath() { + var ctx = this.ctx; + if (this.pendingClip) { + if (this.pendingClip === EO_CLIP) { + ctx.clip('evenodd'); + } else { + ctx.clip(); } + this.pendingClip = null; } - ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); - } - } - function copyCtxState(sourceCtx, destCtx) { - var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha', 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', 'globalCompositeOperation', 'font']; - for (var i = 0, ii = properties.length; i < ii; i++) { - var property = properties[i]; - if (sourceCtx[property] !== undefined) { - destCtx[property] = sourceCtx[property]; + ctx.beginPath(); + }, + getSinglePixelWidth: function CanvasGraphics_getSinglePixelWidth(scale) { + if (this.cachedGetSinglePixelWidth === null) { + this.ctx.save(); + var inverse = this.ctx.mozCurrentTransformInverse; + this.ctx.restore(); + this.cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3])); } + return this.cachedGetSinglePixelWidth; + }, + getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) { + var transform = this.ctx.mozCurrentTransform; + return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]]; } - if (sourceCtx.setLineDash !== undefined) { - destCtx.setLineDash(sourceCtx.getLineDash()); - destCtx.lineDashOffset = sourceCtx.lineDashOffset; - } - } - function resetCtxToDefault(ctx) { - ctx.strokeStyle = '#000000'; - ctx.fillStyle = '#000000'; - ctx.fillRule = 'nonzero'; - ctx.globalAlpha = 1; - ctx.lineWidth = 1; - ctx.lineCap = 'butt'; - ctx.lineJoin = 'miter'; - ctx.miterLimit = 10; - ctx.globalCompositeOperation = 'source-over'; - ctx.font = '10px sans-serif'; - if (ctx.setLineDash !== undefined) { - ctx.setLineDash([]); - ctx.lineDashOffset = 0; - } + }; + for (var op in _util.OPS) { + CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op]; } - function composeSMaskBackdrop(bytes, r0, g0, b0) { - var length = bytes.length; - for (var i = 3; i < length; i += 4) { - var alpha = bytes[i]; - if (alpha === 0) { - bytes[i - 3] = r0; - bytes[i - 2] = g0; - bytes[i - 1] = b0; - } else if (alpha < 255) { - var alpha_ = 255 - alpha; - bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8; - bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8; - bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8; + return CanvasGraphics; +}(); +exports.CanvasGraphics = CanvasGraphics; + +/***/ }), +/* 120 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.TilingPattern = exports.getShadingPatternFromIR = undefined; + +var _util = __w_pdfjs_require__(0); + +var ShadingIRs = {}; +ShadingIRs.RadialAxial = { + fromIR: function RadialAxial_fromIR(raw) { + var type = raw[1]; + var colorStops = raw[2]; + var p0 = raw[3]; + var p1 = raw[4]; + var r0 = raw[5]; + var r1 = raw[6]; + return { + type: 'Pattern', + getPattern: function RadialAxial_getPattern(ctx) { + var grad; + if (type === 'axial') { + grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]); + } else if (type === 'radial') { + grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1); + } + for (var i = 0, ii = colorStops.length; i < ii; ++i) { + var c = colorStops[i]; + grad.addColorStop(c[0], c[1]); + } + return grad; } + }; + } +}; +var createMeshCanvas = function createMeshCanvasClosure() { + function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { + var coords = context.coords, + colors = context.colors; + var bytes = data.data, + rowSize = data.width * 4; + var tmp; + if (coords[p1 + 1] > coords[p2 + 1]) { + tmp = p1; + p1 = p2; + p2 = tmp; + tmp = c1; + c1 = c2; + c2 = tmp; } - } - function composeSMaskAlpha(maskData, layerData, transferMap) { - var length = maskData.length; - var scale = 1 / 255; - for (var i = 3; i < length; i += 4) { - var alpha = transferMap ? transferMap[maskData[i]] : maskData[i]; - layerData[i] = layerData[i] * alpha * scale | 0; + if (coords[p2 + 1] > coords[p3 + 1]) { + tmp = p2; + p2 = p3; + p3 = tmp; + tmp = c2; + c2 = c3; + c3 = tmp; } - } - function composeSMaskLuminosity(maskData, layerData, transferMap) { - var length = maskData.length; - for (var i = 3; i < length; i += 4) { - var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28; - layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16; + if (coords[p1 + 1] > coords[p2 + 1]) { + tmp = p1; + p1 = p2; + p2 = tmp; + tmp = c1; + c1 = c2; + c2 = tmp; } - } - function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) { - var hasBackdrop = !!backdrop; - var r0 = hasBackdrop ? backdrop[0] : 0; - var g0 = hasBackdrop ? backdrop[1] : 0; - var b0 = hasBackdrop ? backdrop[2] : 0; - var composeFn; - if (subtype === 'Luminosity') { - composeFn = composeSMaskLuminosity; - } else { - composeFn = composeSMaskAlpha; + var x1 = (coords[p1] + context.offsetX) * context.scaleX; + var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY; + var x2 = (coords[p2] + context.offsetX) * context.scaleX; + var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY; + var x3 = (coords[p3] + context.offsetX) * context.scaleX; + var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY; + if (y1 >= y3) { + return; } - var PIXELS_TO_PROCESS = 1048576; - var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width)); - for (var row = 0; row < height; row += chunkSize) { - var chunkHeight = Math.min(chunkSize, height - row); - var maskData = maskCtx.getImageData(0, row, width, chunkHeight); - var layerData = layerCtx.getImageData(0, row, width, chunkHeight); - if (hasBackdrop) { - composeSMaskBackdrop(maskData.data, r0, g0, b0); + var c1r = colors[c1], + c1g = colors[c1 + 1], + c1b = colors[c1 + 2]; + var c2r = colors[c2], + c2g = colors[c2 + 1], + c2b = colors[c2 + 2]; + var c3r = colors[c3], + c3g = colors[c3 + 1], + c3b = colors[c3 + 2]; + var minY = Math.round(y1), + maxY = Math.round(y3); + var xa, car, cag, cab; + var xb, cbr, cbg, cbb; + var k; + for (var y = minY; y <= maxY; y++) { + if (y < y2) { + k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2); + xa = x1 - (x1 - x2) * k; + car = c1r - (c1r - c2r) * k; + cag = c1g - (c1g - c2g) * k; + cab = c1b - (c1b - c2b) * k; + } else { + k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3); + xa = x2 - (x2 - x3) * k; + car = c2r - (c2r - c3r) * k; + cag = c2g - (c2g - c3g) * k; + cab = c2b - (c2b - c3b) * k; + } + k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3); + xb = x1 - (x1 - x3) * k; + cbr = c1r - (c1r - c3r) * k; + cbg = c1g - (c1g - c3g) * k; + cbb = c1b - (c1b - c3b) * k; + var x1_ = Math.round(Math.min(xa, xb)); + var x2_ = Math.round(Math.max(xa, xb)); + var j = rowSize * y + x1_ * 4; + for (var x = x1_; x <= x2_; x++) { + k = (xa - x) / (xa - xb); + k = k < 0 ? 0 : k > 1 ? 1 : k; + bytes[j++] = car - (car - cbr) * k | 0; + bytes[j++] = cag - (cag - cbg) * k | 0; + bytes[j++] = cab - (cab - cbb) * k | 0; + bytes[j++] = 255; } - composeFn(maskData.data, layerData.data, transferMap); - maskCtx.putImageData(layerData, 0, row); } } - function composeSMask(ctx, smask, layerCtx, webGLContext) { - var mask = smask.canvas; - var maskCtx = smask.context; - ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY); - var backdrop = smask.backdrop || null; - if (!smask.transferMap && webGLContext.isEnabled) { - var composed = webGLContext.composeSMask({ - layer: layerCtx.canvas, - mask: mask, - properties: { - subtype: smask.subtype, - backdrop: backdrop + function drawFigure(data, figure, context) { + var ps = figure.coords; + var cs = figure.colors; + var i, ii; + switch (figure.type) { + case 'lattice': + var verticesPerRow = figure.verticesPerRow; + var rows = Math.floor(ps.length / verticesPerRow) - 1; + var cols = verticesPerRow - 1; + for (i = 0; i < rows; i++) { + var q = i * verticesPerRow; + for (var j = 0; j < cols; j++, q++) { + drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]); + drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]); + } } - }); - ctx.setTransform(1, 0, 0, 1, 0, 0); - ctx.drawImage(composed, smask.offsetX, smask.offsetY); - return; + break; + case 'triangles': + for (i = 0, ii = ps.length; i < ii; i += 3) { + drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]); + } + break; + default: + throw new Error('illegal figure'); } - genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap); - ctx.drawImage(mask, 0, 0); } - var LINE_CAP_STYLES = ['butt', 'round', 'square']; - var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; - var NORMAL_CLIP = {}; - var EO_CLIP = {}; - CanvasGraphics.prototype = { - beginDrawing: function beginDrawing(_ref) { - var transform = _ref.transform, - viewport = _ref.viewport, - transparency = _ref.transparency, - _ref$background = _ref.background, - background = _ref$background === undefined ? null : _ref$background; - - var width = this.ctx.canvas.width; - var height = this.ctx.canvas.height; - this.ctx.save(); - this.ctx.fillStyle = background || 'rgb(255, 255, 255)'; - this.ctx.fillRect(0, 0, width, height); - this.ctx.restore(); - if (transparency) { - var transparentCanvas = this.cachedCanvases.getCanvas('transparent', width, height, true); - this.compositeCtx = this.ctx; - this.transparentCanvas = transparentCanvas.canvas; - this.ctx = transparentCanvas.context; - this.ctx.save(); - this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform); - } - this.ctx.save(); - resetCtxToDefault(this.ctx); - if (transform) { - this.ctx.transform.apply(this.ctx, transform); - } - this.ctx.transform.apply(this.ctx, viewport.transform); - this.baseTransform = this.ctx.mozCurrentTransform.slice(); - if (this.imageLayer) { - this.imageLayer.beginLayout(); + function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) { + var EXPECTED_SCALE = 1.1; + var MAX_PATTERN_SIZE = 3000; + var BORDER_SIZE = 2; + var offsetX = Math.floor(bounds[0]); + var offsetY = Math.floor(bounds[1]); + var boundsWidth = Math.ceil(bounds[2]) - offsetX; + var boundsHeight = Math.ceil(bounds[3]) - offsetY; + var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); + var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); + var scaleX = boundsWidth / width; + var scaleY = boundsHeight / height; + var context = { + coords: coords, + colors: colors, + offsetX: -offsetX, + offsetY: -offsetY, + scaleX: 1 / scaleX, + scaleY: 1 / scaleY + }; + var paddedWidth = width + BORDER_SIZE * 2; + var paddedHeight = height + BORDER_SIZE * 2; + var canvas, tmpCanvas, i, ii; + if (webGLContext.isEnabled) { + canvas = webGLContext.drawFigures({ + width: width, + height: height, + backgroundColor: backgroundColor, + figures: figures, + context: context + }); + tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); + tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE); + canvas = tmpCanvas.canvas; + } else { + tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); + var tmpCtx = tmpCanvas.context; + var data = tmpCtx.createImageData(width, height); + if (backgroundColor) { + var bytes = data.data; + for (i = 0, ii = bytes.length; i < ii; i += 4) { + bytes[i] = backgroundColor[0]; + bytes[i + 1] = backgroundColor[1]; + bytes[i + 2] = backgroundColor[2]; + bytes[i + 3] = 255; + } } - }, - - executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) { - var argsArray = operatorList.argsArray; - var fnArray = operatorList.fnArray; - var i = executionStartIdx || 0; - var argsArrayLen = argsArray.length; - if (argsArrayLen === i) { - return i; + for (i = 0; i < figures.length; i++) { + drawFigure(data, figures[i], context); } - var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === 'function'; - var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0; - var steps = 0; - var commonObjs = this.commonObjs; - var objs = this.objs; - var fnId; - while (true) { - if (stepper !== undefined && i === stepper.nextBreakPoint) { - stepper.breakIt(i, continueCallback); - return i; - } - fnId = fnArray[i]; - if (fnId !== _util.OPS.dependency) { - this[fnId].apply(this, argsArray[i]); + tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE); + canvas = tmpCanvas.canvas; + } + return { + canvas: canvas, + offsetX: offsetX - BORDER_SIZE * scaleX, + offsetY: offsetY - BORDER_SIZE * scaleY, + scaleX: scaleX, + scaleY: scaleY + }; + } + return createMeshCanvas; +}(); +ShadingIRs.Mesh = { + fromIR: function Mesh_fromIR(raw) { + var coords = raw[2]; + var colors = raw[3]; + var figures = raw[4]; + var bounds = raw[5]; + var matrix = raw[6]; + var background = raw[8]; + return { + type: 'Pattern', + getPattern: function Mesh_getPattern(ctx, owner, shadingFill) { + var scale; + if (shadingFill) { + scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform); } else { - var deps = argsArray[i]; - for (var n = 0, nn = deps.length; n < nn; n++) { - var depObjId = deps[n]; - var common = depObjId[0] === 'g' && depObjId[1] === '_'; - var objsPool = common ? commonObjs : objs; - if (!objsPool.isResolved(depObjId)) { - objsPool.get(depObjId, continueCallback); - return i; - } + scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform); + if (matrix) { + var matrixScale = _util.Util.singularValueDecompose2dScale(matrix); + scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]]; } } - i++; - if (i === argsArrayLen) { - return i; - } - if (chunkOperations && ++steps > EXECUTION_STEPS) { - if (Date.now() > endTime) { - continueCallback(); - return i; + var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext); + if (!shadingFill) { + ctx.setTransform.apply(ctx, owner.baseTransform); + if (matrix) { + ctx.transform.apply(ctx, matrix); } - steps = 0; } + ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); + ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY); + return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat'); } - }, - endDrawing: function CanvasGraphics_endDrawing() { - if (this.current.activeSMask !== null) { - this.endSMaskGroup(); - } - this.ctx.restore(); - if (this.transparentCanvas) { - this.ctx = this.compositeCtx; - this.ctx.save(); - this.ctx.setTransform(1, 0, 0, 1, 0, 0); - this.ctx.drawImage(this.transparentCanvas, 0, 0); - this.ctx.restore(); - this.transparentCanvas = null; - } - this.cachedCanvases.clear(); - this.webGLContext.clear(); - if (this.imageLayer) { - this.imageLayer.endLayout(); - } - }, - setLineWidth: function CanvasGraphics_setLineWidth(width) { - this.current.lineWidth = width; - this.ctx.lineWidth = width; - }, - setLineCap: function CanvasGraphics_setLineCap(style) { - this.ctx.lineCap = LINE_CAP_STYLES[style]; - }, - setLineJoin: function CanvasGraphics_setLineJoin(style) { - this.ctx.lineJoin = LINE_JOIN_STYLES[style]; - }, - setMiterLimit: function CanvasGraphics_setMiterLimit(limit) { - this.ctx.miterLimit = limit; - }, - setDash: function CanvasGraphics_setDash(dashArray, dashPhase) { - var ctx = this.ctx; - if (ctx.setLineDash !== undefined) { - ctx.setLineDash(dashArray); - ctx.lineDashOffset = dashPhase; - } - }, - setRenderingIntent: function CanvasGraphics_setRenderingIntent(intent) {}, - setFlatness: function CanvasGraphics_setFlatness(flatness) {}, - setGState: function CanvasGraphics_setGState(states) { - for (var i = 0, ii = states.length; i < ii; i++) { - var state = states[i]; - var key = state[0]; - var value = state[1]; - switch (key) { - case 'LW': - this.setLineWidth(value); - break; - case 'LC': - this.setLineCap(value); - break; - case 'LJ': - this.setLineJoin(value); - break; - case 'ML': - this.setMiterLimit(value); - break; - case 'D': - this.setDash(value[0], value[1]); - break; - case 'RI': - this.setRenderingIntent(value); - break; - case 'FL': - this.setFlatness(value); - break; - case 'Font': - this.setFont(value[0], value[1]); - break; - case 'CA': - this.current.strokeAlpha = state[1]; - break; - case 'ca': - this.current.fillAlpha = state[1]; - this.ctx.globalAlpha = state[1]; - break; - case 'BM': - this.ctx.globalCompositeOperation = value; - break; - case 'SMask': - if (this.current.activeSMask) { - if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) { - this.suspendSMaskGroup(); - } else { - this.endSMaskGroup(); - } - } - this.current.activeSMask = value ? this.tempSMask : null; - if (this.current.activeSMask) { - this.beginSMaskGroup(); - } - this.tempSMask = null; - break; - } + }; + } +}; +ShadingIRs.Dummy = { + fromIR: function Dummy_fromIR() { + return { + type: 'Pattern', + getPattern: function Dummy_fromIR_getPattern() { + return 'hotpink'; } + }; + } +}; +function getShadingPatternFromIR(raw) { + var shadingIR = ShadingIRs[raw[0]]; + if (!shadingIR) { + throw new Error('Unknown IR type: ' + raw[0]); + } + return shadingIR.fromIR(raw); +} +var TilingPattern = function TilingPatternClosure() { + var PaintType = { + COLORED: 1, + UNCOLORED: 2 + }; + var MAX_PATTERN_SIZE = 3000; + function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) { + this.operatorList = IR[2]; + this.matrix = IR[3] || [1, 0, 0, 1, 0, 0]; + this.bbox = IR[4]; + this.xstep = IR[5]; + this.ystep = IR[6]; + this.paintType = IR[7]; + this.tilingType = IR[8]; + this.color = color; + this.canvasGraphicsFactory = canvasGraphicsFactory; + this.baseTransform = baseTransform; + this.type = 'Pattern'; + this.ctx = ctx; + } + TilingPattern.prototype = { + createPatternCanvas: function TilinPattern_createPatternCanvas(owner) { + var operatorList = this.operatorList; + var bbox = this.bbox; + var xstep = this.xstep; + var ystep = this.ystep; + var paintType = this.paintType; + var tilingType = this.tilingType; + var color = this.color; + var canvasGraphicsFactory = this.canvasGraphicsFactory; + (0, _util.info)('TilingType: ' + tilingType); + var x0 = bbox[0], + y0 = bbox[1], + x1 = bbox[2], + y1 = bbox[3]; + var topLeft = [x0, y0]; + var botRight = [x0 + xstep, y0 + ystep]; + var width = botRight[0] - topLeft[0]; + var height = botRight[1] - topLeft[1]; + var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix); + var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform); + var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]]; + width = Math.min(Math.ceil(Math.abs(width * combinedScale[0])), MAX_PATTERN_SIZE); + height = Math.min(Math.ceil(Math.abs(height * combinedScale[1])), MAX_PATTERN_SIZE); + var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', width, height, true); + var tmpCtx = tmpCanvas.context; + var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx); + graphics.groupLevel = owner.groupLevel; + this.setFillAndStrokeStyleToContext(graphics, paintType, color); + this.setScale(width, height, xstep, ystep); + this.transformToScale(graphics); + var tmpTranslate = [1, 0, 0, 1, -topLeft[0], -topLeft[1]]; + graphics.transform.apply(graphics, tmpTranslate); + this.clipBbox(graphics, bbox, x0, y0, x1, y1); + graphics.executeOperatorList(operatorList); + return tmpCanvas.canvas; }, - beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() { - var activeSMask = this.current.activeSMask; - var drawnWidth = activeSMask.canvas.width; - var drawnHeight = activeSMask.canvas.height; - var cacheId = 'smaskGroupAt' + this.groupLevel; - var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); - var currentCtx = this.ctx; - var currentTransform = currentCtx.mozCurrentTransform; - this.ctx.save(); - var groupCtx = scratchCanvas.context; - groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY); - groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY); - groupCtx.transform.apply(groupCtx, currentTransform); - activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse; - copyCtxState(currentCtx, groupCtx); - this.ctx = groupCtx; - this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]); - this.groupStack.push(currentCtx); - this.groupLevel++; - }, - suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() { - var groupCtx = this.ctx; - this.groupLevel--; - this.ctx = this.groupStack.pop(); - composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext); - this.ctx.restore(); - this.ctx.save(); - copyCtxState(groupCtx, this.ctx); - this.current.resumeSMaskCtx = groupCtx; - var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); - this.ctx.transform.apply(this.ctx, deltaTransform); - groupCtx.save(); - groupCtx.setTransform(1, 0, 0, 1, 0, 0); - groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height); - groupCtx.restore(); - }, - resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() { - var groupCtx = this.current.resumeSMaskCtx; - var currentCtx = this.ctx; - this.ctx = groupCtx; - this.groupStack.push(currentCtx); - this.groupLevel++; - }, - endSMaskGroup: function CanvasGraphics_endSMaskGroup() { - var groupCtx = this.ctx; - this.groupLevel--; - this.ctx = this.groupStack.pop(); - composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext); - this.ctx.restore(); - copyCtxState(groupCtx, this.ctx); - var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); - this.ctx.transform.apply(this.ctx, deltaTransform); - }, - save: function CanvasGraphics_save() { - this.ctx.save(); - var old = this.current; - this.stateStack.push(old); - this.current = old.clone(); - this.current.resumeSMaskCtx = null; + setScale: function TilingPattern_setScale(width, height, xstep, ystep) { + this.scale = [width / xstep, height / ystep]; }, - restore: function CanvasGraphics_restore() { - if (this.current.resumeSMaskCtx) { - this.resumeSMaskGroup(); - } - if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) { - this.endSMaskGroup(); - } - if (this.stateStack.length !== 0) { - this.current = this.stateStack.pop(); - this.ctx.restore(); - this.pendingClip = null; - this.cachedGetSinglePixelWidth = null; - } + transformToScale: function TilingPattern_transformToScale(graphics) { + var scale = this.scale; + var tmpScale = [scale[0], 0, 0, scale[1], 0, 0]; + graphics.transform.apply(graphics, tmpScale); }, - transform: function CanvasGraphics_transform(a, b, c, d, e, f) { - this.ctx.transform(a, b, c, d, e, f); - this.cachedGetSinglePixelWidth = null; + scaleToContext: function TilingPattern_scaleToContext() { + var scale = this.scale; + this.ctx.scale(1 / scale[0], 1 / scale[1]); }, - constructPath: function CanvasGraphics_constructPath(ops, args) { - var ctx = this.ctx; - var current = this.current; - var x = current.x, - y = current.y; - for (var i = 0, j = 0, ii = ops.length; i < ii; i++) { - switch (ops[i] | 0) { - case _util.OPS.rectangle: - x = args[j++]; - y = args[j++]; - var width = args[j++]; - var height = args[j++]; - if (width === 0) { - width = this.getSinglePixelWidth(); - } - if (height === 0) { - height = this.getSinglePixelWidth(); - } - var xw = x + width; - var yh = y + height; - this.ctx.moveTo(x, y); - this.ctx.lineTo(xw, y); - this.ctx.lineTo(xw, yh); - this.ctx.lineTo(x, yh); - this.ctx.lineTo(x, y); - this.ctx.closePath(); - break; - case _util.OPS.moveTo: - x = args[j++]; - y = args[j++]; - ctx.moveTo(x, y); - break; - case _util.OPS.lineTo: - x = args[j++]; - y = args[j++]; - ctx.lineTo(x, y); - break; - case _util.OPS.curveTo: - x = args[j + 4]; - y = args[j + 5]; - ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y); - j += 6; - break; - case _util.OPS.curveTo2: - ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]); - x = args[j + 2]; - y = args[j + 3]; - j += 4; - break; - case _util.OPS.curveTo3: - x = args[j + 2]; - y = args[j + 3]; - ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y); - j += 4; - break; - case _util.OPS.closePath: - ctx.closePath(); - break; - } + clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) { + if (Array.isArray(bbox) && bbox.length === 4) { + var bboxWidth = x1 - x0; + var bboxHeight = y1 - y0; + graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight); + graphics.clip(); + graphics.endPath(); } - current.setCurrentPoint(x, y); - }, - closePath: function CanvasGraphics_closePath() { - this.ctx.closePath(); }, - stroke: function CanvasGraphics_stroke(consumePath) { - consumePath = typeof consumePath !== 'undefined' ? consumePath : true; - var ctx = this.ctx; - var strokeColor = this.current.strokeColor; - ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth); - ctx.globalAlpha = this.current.strokeAlpha; - if (strokeColor && strokeColor.hasOwnProperty('type') && strokeColor.type === 'Pattern') { - ctx.save(); - ctx.strokeStyle = strokeColor.getPattern(ctx, this); - ctx.stroke(); - ctx.restore(); - } else { - ctx.stroke(); - } - if (consumePath) { - this.consumePath(); + setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) { + var context = graphics.ctx, + current = graphics.current; + switch (paintType) { + case PaintType.COLORED: + var ctx = this.ctx; + context.fillStyle = ctx.fillStyle; + context.strokeStyle = ctx.strokeStyle; + current.fillColor = ctx.fillStyle; + current.strokeColor = ctx.strokeStyle; + break; + case PaintType.UNCOLORED: + var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]); + context.fillStyle = cssColor; + context.strokeStyle = cssColor; + current.fillColor = cssColor; + current.strokeColor = cssColor; + break; + default: + throw new _util.FormatError('Unsupported paint type: ' + paintType); } - ctx.globalAlpha = this.current.fillAlpha; - }, - closeStroke: function CanvasGraphics_closeStroke() { - this.closePath(); - this.stroke(); }, - fill: function CanvasGraphics_fill(consumePath) { - consumePath = typeof consumePath !== 'undefined' ? consumePath : true; - var ctx = this.ctx; - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; - var needRestore = false; - if (isPatternFill) { - ctx.save(); - if (this.baseTransform) { - ctx.setTransform.apply(ctx, this.baseTransform); + getPattern: function TilingPattern_getPattern(ctx, owner) { + var temporaryPatternCanvas = this.createPatternCanvas(owner); + ctx = this.ctx; + ctx.setTransform.apply(ctx, this.baseTransform); + ctx.transform.apply(ctx, this.matrix); + this.scaleToContext(); + return ctx.createPattern(temporaryPatternCanvas, 'repeat'); + } + }; + return TilingPattern; +}(); +exports.getShadingPatternFromIR = getShadingPatternFromIR; +exports.TilingPattern = TilingPattern; + +/***/ }), +/* 121 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Metadata = undefined; + +var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _util = __w_pdfjs_require__(0); + +var _dom_utils = __w_pdfjs_require__(18); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Metadata = function () { + function Metadata(data) { + _classCallCheck(this, Metadata); + + (0, _util.assert)(typeof data === 'string', 'Metadata: input is not a string'); + data = this._repair(data); + var parser = new _dom_utils.SimpleXMLParser(); + data = parser.parseFromString(data); + this._metadata = Object.create(null); + this._parse(data); + } + + _createClass(Metadata, [{ + key: '_repair', + value: function _repair(data) { + return data.replace(/>\\376\\377([^<]+)/g, function (all, codes) { + var bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) { + return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1); + }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) { + switch (name) { + case 'amp': + return '&'; + case 'apos': + return '\''; + case 'gt': + return '>'; + case 'lt': + return '<'; + case 'quot': + return '\"'; + } + throw new Error('_repair: ' + name + ' isn\'t defined.'); + }); + var chars = ''; + for (var i = 0, ii = bytes.length; i < ii; i += 2) { + var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1); + if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) { + chars += String.fromCharCode(code); + } else { + chars += '&#x' + (0x10000 + code).toString(16).substring(1) + ';'; + } + } + return '>' + chars; + }); + } + }, { + key: '_parse', + value: function _parse(domDocument) { + var rdf = domDocument.documentElement; + if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') { + rdf = rdf.firstChild; + while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') { + rdf = rdf.nextSibling; } - ctx.fillStyle = fillColor.getPattern(ctx, this); - needRestore = true; } - if (this.pendingEOFill) { - ctx.fill('evenodd'); - this.pendingEOFill = false; - } else { - ctx.fill(); + var nodeName = rdf ? rdf.nodeName.toLowerCase() : null; + if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) { + return; } - if (needRestore) { - ctx.restore(); + var children = rdf.childNodes; + for (var i = 0, ii = children.length; i < ii; i++) { + var desc = children[i]; + if (desc.nodeName.toLowerCase() !== 'rdf:description') { + continue; + } + for (var j = 0, jj = desc.childNodes.length; j < jj; j++) { + if (desc.childNodes[j].nodeName.toLowerCase() !== '#text') { + var entry = desc.childNodes[j]; + var name = entry.nodeName.toLowerCase(); + this._metadata[name] = entry.textContent.trim(); + } + } } - if (consumePath) { - this.consumePath(); + } + }, { + key: 'get', + value: function get(name) { + return this._metadata[name] || null; + } + }, { + key: 'getAll', + value: function getAll() { + return this._metadata; + } + }, { + key: 'has', + value: function has(name) { + return typeof this._metadata[name] !== 'undefined'; + } + }]); + + return Metadata; +}(); + +exports.Metadata = Metadata; + +/***/ }), +/* 122 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFDataTransportStream = undefined; + +var _util = __w_pdfjs_require__(0); + +var PDFDataTransportStream = function PDFDataTransportStreamClosure() { + function PDFDataTransportStream(params, pdfDataRangeTransport) { + var _this = this; + + (0, _util.assert)(pdfDataRangeTransport); + this._queuedChunks = []; + var initialData = params.initialData; + if (initialData && initialData.length > 0) { + var buffer = new Uint8Array(initialData).buffer; + this._queuedChunks.push(buffer); + } + this._pdfDataRangeTransport = pdfDataRangeTransport; + this._isStreamingSupported = !params.disableStream; + this._isRangeSupported = !params.disableRange; + this._contentLength = params.length; + this._fullRequestReader = null; + this._rangeReaders = []; + this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) { + _this._onReceiveData({ + begin: begin, + chunk: chunk + }); + }); + this._pdfDataRangeTransport.addProgressListener(function (loaded) { + _this._onProgress({ loaded: loaded }); + }); + this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) { + _this._onReceiveData({ chunk: chunk }); + }); + this._pdfDataRangeTransport.transportReady(); + } + PDFDataTransportStream.prototype = { + _onReceiveData: function PDFDataTransportStream_onReceiveData(args) { + var buffer = new Uint8Array(args.chunk).buffer; + if (args.begin === undefined) { + if (this._fullRequestReader) { + this._fullRequestReader._enqueue(buffer); + } else { + this._queuedChunks.push(buffer); + } + } else { + var found = this._rangeReaders.some(function (rangeReader) { + if (rangeReader._begin !== args.begin) { + return false; + } + rangeReader._enqueue(buffer); + return true; + }); + (0, _util.assert)(found); } }, - eoFill: function CanvasGraphics_eoFill() { - this.pendingEOFill = true; - this.fill(); - }, - fillStroke: function CanvasGraphics_fillStroke() { - this.fill(false); - this.stroke(false); - this.consumePath(); - }, - eoFillStroke: function CanvasGraphics_eoFillStroke() { - this.pendingEOFill = true; - this.fillStroke(); - }, - closeFillStroke: function CanvasGraphics_closeFillStroke() { - this.closePath(); - this.fillStroke(); - }, - closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() { - this.pendingEOFill = true; - this.closePath(); - this.fillStroke(); - }, - endPath: function CanvasGraphics_endPath() { - this.consumePath(); - }, - clip: function CanvasGraphics_clip() { - this.pendingClip = NORMAL_CLIP; - }, - eoClip: function CanvasGraphics_eoClip() { - this.pendingClip = EO_CLIP; - }, - beginText: function CanvasGraphics_beginText() { - this.current.textMatrix = _util.IDENTITY_MATRIX; - this.current.textMatrixScale = 1; - this.current.x = this.current.lineX = 0; - this.current.y = this.current.lineY = 0; - }, - endText: function CanvasGraphics_endText() { - var paths = this.pendingTextPaths; - var ctx = this.ctx; - if (paths === undefined) { - ctx.beginPath(); - return; - } - ctx.save(); - ctx.beginPath(); - for (var i = 0; i < paths.length; i++) { - var path = paths[i]; - ctx.setTransform.apply(ctx, path.transform); - ctx.translate(path.x, path.y); - path.addToPath(ctx, path.fontSize); + _onProgress: function PDFDataTransportStream_onDataProgress(evt) { + if (this._rangeReaders.length > 0) { + var firstReader = this._rangeReaders[0]; + if (firstReader.onProgress) { + firstReader.onProgress({ loaded: evt.loaded }); + } } - ctx.restore(); - ctx.clip(); - ctx.beginPath(); - delete this.pendingTextPaths; - }, - setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) { - this.current.charSpacing = spacing; }, - setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) { - this.current.wordSpacing = spacing; + _removeRangeReader: function PDFDataTransportStream_removeRangeReader(reader) { + var i = this._rangeReaders.indexOf(reader); + if (i >= 0) { + this._rangeReaders.splice(i, 1); + } }, - setHScale: function CanvasGraphics_setHScale(scale) { - this.current.textHScale = scale / 100; + getFullReader: function PDFDataTransportStream_getFullReader() { + (0, _util.assert)(!this._fullRequestReader); + var queuedChunks = this._queuedChunks; + this._queuedChunks = null; + return new PDFDataTransportStreamReader(this, queuedChunks); }, - setLeading: function CanvasGraphics_setLeading(leading) { - this.current.leading = -leading; + getRangeReader: function PDFDataTransportStream_getRangeReader(begin, end) { + var reader = new PDFDataTransportStreamRangeReader(this, begin, end); + this._pdfDataRangeTransport.requestDataRange(begin, end); + this._rangeReaders.push(reader); + return reader; }, - setFont: function CanvasGraphics_setFont(fontRefName, size) { - var fontObj = this.commonObjs.get(fontRefName); - var current = this.current; - if (!fontObj) { - throw new Error('Can\'t find font for ' + fontRefName); - } - current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; - if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) { - (0, _util.warn)('Invalid font matrix for font ' + fontRefName); + cancelAllRequests: function PDFDataTransportStream_cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); } - if (size < 0) { - size = -size; - current.fontDirection = -1; - } else { - current.fontDirection = 1; + var readers = this._rangeReaders.slice(0); + readers.forEach(function (rangeReader) { + rangeReader.cancel(reason); + }); + this._pdfDataRangeTransport.abort(); + } + }; + function PDFDataTransportStreamReader(stream, queuedChunks) { + this._stream = stream; + this._done = false; + this._filename = null; + this._queuedChunks = queuedChunks || []; + this._requests = []; + this._headersReady = Promise.resolve(); + stream._fullRequestReader = this; + this.onProgress = null; + } + PDFDataTransportStreamReader.prototype = { + _enqueue: function PDFDataTransportStreamReader_enqueue(chunk) { + if (this._done) { + return; } - this.current.font = fontObj; - this.current.fontSize = size; - if (fontObj.isType3Font) { + if (this._requests.length > 0) { + var requestCapability = this._requests.shift(); + requestCapability.resolve({ + value: chunk, + done: false + }); return; } - var name = fontObj.loadedName || 'sans-serif'; - var bold = fontObj.black ? '900' : fontObj.bold ? 'bold' : 'normal'; - var italic = fontObj.italic ? 'italic' : 'normal'; - var typeface = '"' + name + '", ' + fontObj.fallbackName; - var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE : size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size; - this.current.fontSizeScale = size / browserFontSize; - var rule = italic + ' ' + bold + ' ' + browserFontSize + 'px ' + typeface; - this.ctx.font = rule; + this._queuedChunks.push(chunk); }, - setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) { - this.current.textRenderingMode = mode; + get headersReady() { + return this._headersReady; }, - setTextRise: function CanvasGraphics_setTextRise(rise) { - this.current.textRise = rise; + get filename() { + return this._filename; }, - moveText: function CanvasGraphics_moveText(x, y) { - this.current.x = this.current.lineX += x; - this.current.y = this.current.lineY += y; + get isRangeSupported() { + return this._stream._isRangeSupported; }, - setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) { - this.setLeading(-y); - this.moveText(x, y); + get isStreamingSupported() { + return this._stream._isStreamingSupported; }, - setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) { - this.current.textMatrix = [a, b, c, d, e, f]; - this.current.textMatrixScale = Math.sqrt(a * a + b * b); - this.current.x = this.current.lineX = 0; - this.current.y = this.current.lineY = 0; + get contentLength() { + return this._stream._contentLength; }, - nextLine: function CanvasGraphics_nextLine() { - this.moveText(0, this.current.leading); + read: function PDFDataTransportStreamReader_read() { + if (this._queuedChunks.length > 0) { + var chunk = this._queuedChunks.shift(); + return Promise.resolve({ + value: chunk, + done: false + }); + } + if (this._done) { + return Promise.resolve({ + value: undefined, + done: true + }); + } + var requestCapability = (0, _util.createPromiseCapability)(); + this._requests.push(requestCapability); + return requestCapability.promise; }, - paintChar: function paintChar(character, x, y, patternTransform) { - var ctx = this.ctx; - var current = this.current; - var font = current.font; - var textRenderingMode = current.textRenderingMode; - var fontSize = current.fontSize / current.fontSizeScale; - var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; - var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG); - var patternFill = current.patternFill && font.data; - var addToPath; - if (font.disableFontFace || isAddToPathSet || patternFill) { - addToPath = font.getPathGenerator(this.commonObjs, character); + cancel: function PDFDataTransportStreamReader_cancel(reason) { + this._done = true; + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); + }); + this._requests = []; + } + }; + function PDFDataTransportStreamRangeReader(stream, begin, end) { + this._stream = stream; + this._begin = begin; + this._end = end; + this._queuedChunk = null; + this._requests = []; + this._done = false; + this.onProgress = null; + } + PDFDataTransportStreamRangeReader.prototype = { + _enqueue: function PDFDataTransportStreamRangeReader_enqueue(chunk) { + if (this._done) { + return; } - if (font.disableFontFace || patternFill) { - ctx.save(); - ctx.translate(x, y); - ctx.beginPath(); - addToPath(ctx, fontSize); - if (patternTransform) { - ctx.setTransform.apply(ctx, patternTransform); - } - if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - ctx.fill(); - } - if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - ctx.stroke(); - } - ctx.restore(); + if (this._requests.length === 0) { + this._queuedChunk = chunk; } else { - if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - ctx.fillText(character, x, y); - } - if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - ctx.strokeText(character, x, y); - } - } - if (isAddToPathSet) { - var paths = this.pendingTextPaths || (this.pendingTextPaths = []); - paths.push({ - transform: ctx.mozCurrentTransform, - x: x, - y: y, - fontSize: fontSize, - addToPath: addToPath + var requestsCapability = this._requests.shift(); + requestsCapability.resolve({ + value: chunk, + done: false + }); + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); }); + this._requests = []; } + this._done = true; + this._stream._removeRangeReader(this); }, - - get isFontSubpixelAAEnabled() { - var ctx = this.canvasFactory.create(10, 10).context; - ctx.scale(1.5, 1); - ctx.fillText('I', 0, 10); - var data = ctx.getImageData(0, 0, 10, 10).data; - var enabled = false; - for (var i = 3; i < data.length; i += 4) { - if (data[i] > 0 && data[i] < 255) { - enabled = true; - break; - } - } - return (0, _util.shadow)(this, 'isFontSubpixelAAEnabled', enabled); + get isStreamingSupported() { + return false; }, - showText: function CanvasGraphics_showText(glyphs) { - var current = this.current; - var font = current.font; - if (font.isType3Font) { - return this.showType3Text(glyphs); - } - var fontSize = current.fontSize; - if (fontSize === 0) { - return; - } - var ctx = this.ctx; - var fontSizeScale = current.fontSizeScale; - var charSpacing = current.charSpacing; - var wordSpacing = current.wordSpacing; - var fontDirection = current.fontDirection; - var textHScale = current.textHScale * fontDirection; - var glyphsLength = glyphs.length; - var vertical = font.vertical; - var spacingDir = vertical ? 1 : -1; - var defaultVMetrics = font.defaultVMetrics; - var widthAdvanceScale = fontSize * current.fontMatrix[0]; - var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill; - ctx.save(); - var patternTransform = void 0; - if (current.patternFill) { - ctx.save(); - var pattern = current.fillColor.getPattern(ctx, this); - patternTransform = ctx.mozCurrentTransform; - ctx.restore(); - ctx.fillStyle = pattern; + read: function PDFDataTransportStreamRangeReader_read() { + if (this._queuedChunk) { + var chunk = this._queuedChunk; + this._queuedChunk = null; + return Promise.resolve({ + value: chunk, + done: false + }); } - ctx.transform.apply(ctx, current.textMatrix); - ctx.translate(current.x, current.y + current.textRise); - if (fontDirection > 0) { - ctx.scale(textHScale, -1); - } else { - ctx.scale(textHScale, 1); + if (this._done) { + return Promise.resolve({ + value: undefined, + done: true + }); } - var lineWidth = current.lineWidth; - var scale = current.textMatrixScale; - if (scale === 0 || lineWidth === 0) { - var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; - if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - this.cachedGetSinglePixelWidth = null; - lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR; - } - } else { - lineWidth /= scale; + var requestCapability = (0, _util.createPromiseCapability)(); + this._requests.push(requestCapability); + return requestCapability.promise; + }, + cancel: function PDFDataTransportStreamRangeReader_cancel(reason) { + this._done = true; + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); + }); + this._requests = []; + this._stream._removeRangeReader(this); + } + }; + return PDFDataTransportStream; +}(); +exports.PDFDataTransportStream = PDFDataTransportStream; + +/***/ }), +/* 123 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.WebGLContext = undefined; + +var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _util = __w_pdfjs_require__(0); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var WebGLContext = function () { + function WebGLContext(_ref) { + var _ref$enable = _ref.enable, + enable = _ref$enable === undefined ? false : _ref$enable; + + _classCallCheck(this, WebGLContext); + + this._enabled = enable === true; + } + + _createClass(WebGLContext, [{ + key: 'composeSMask', + value: function composeSMask(_ref2) { + var layer = _ref2.layer, + mask = _ref2.mask, + properties = _ref2.properties; + + return WebGLUtils.composeSMask(layer, mask, properties); + } + }, { + key: 'drawFigures', + value: function drawFigures(_ref3) { + var width = _ref3.width, + height = _ref3.height, + backgroundColor = _ref3.backgroundColor, + figures = _ref3.figures, + context = _ref3.context; + + return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context); + } + }, { + key: 'clear', + value: function clear() { + WebGLUtils.cleanup(); + } + }, { + key: 'isEnabled', + get: function get() { + var enabled = this._enabled; + if (enabled) { + enabled = WebGLUtils.tryInitGL(); } - if (fontSizeScale !== 1.0) { - ctx.scale(fontSizeScale, fontSizeScale); - lineWidth /= fontSizeScale; + return (0, _util.shadow)(this, 'isEnabled', enabled); + } + }]); + + return WebGLContext; +}(); + +var WebGLUtils = function WebGLUtilsClosure() { + function loadShader(gl, code, shaderType) { + var shader = gl.createShader(shaderType); + gl.shaderSource(shader, code); + gl.compileShader(shader); + var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS); + if (!compiled) { + var errorMsg = gl.getShaderInfoLog(shader); + throw new Error('Error during shader compilation: ' + errorMsg); + } + return shader; + } + function createVertexShader(gl, code) { + return loadShader(gl, code, gl.VERTEX_SHADER); + } + function createFragmentShader(gl, code) { + return loadShader(gl, code, gl.FRAGMENT_SHADER); + } + function createProgram(gl, shaders) { + var program = gl.createProgram(); + for (var i = 0, ii = shaders.length; i < ii; ++i) { + gl.attachShader(program, shaders[i]); + } + gl.linkProgram(program); + var linked = gl.getProgramParameter(program, gl.LINK_STATUS); + if (!linked) { + var errorMsg = gl.getProgramInfoLog(program); + throw new Error('Error during program linking: ' + errorMsg); + } + return program; + } + function createTexture(gl, image, textureId) { + gl.activeTexture(textureId); + var texture = gl.createTexture(); + gl.bindTexture(gl.TEXTURE_2D, texture); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); + gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image); + return texture; + } + var currentGL, currentCanvas; + function generateGL() { + if (currentGL) { + return; + } + currentCanvas = document.createElement('canvas'); + currentGL = currentCanvas.getContext('webgl', { premultipliedalpha: false }); + } + var smaskVertexShaderCode = '\ + attribute vec2 a_position; \ + attribute vec2 a_texCoord; \ + \ + uniform vec2 u_resolution; \ + \ + varying vec2 v_texCoord; \ + \ + void main() { \ + vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \ + gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ + \ + v_texCoord = a_texCoord; \ + } '; + var smaskFragmentShaderCode = '\ + precision mediump float; \ + \ + uniform vec4 u_backdrop; \ + uniform int u_subtype; \ + uniform sampler2D u_image; \ + uniform sampler2D u_mask; \ + \ + varying vec2 v_texCoord; \ + \ + void main() { \ + vec4 imageColor = texture2D(u_image, v_texCoord); \ + vec4 maskColor = texture2D(u_mask, v_texCoord); \ + if (u_backdrop.a > 0.0) { \ + maskColor.rgb = maskColor.rgb * maskColor.a + \ + u_backdrop.rgb * (1.0 - maskColor.a); \ + } \ + float lum; \ + if (u_subtype == 0) { \ + lum = maskColor.a; \ + } else { \ + lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \ + maskColor.b * 0.11; \ + } \ + imageColor.a *= lum; \ + imageColor.rgb *= imageColor.a; \ + gl_FragColor = imageColor; \ + } '; + var smaskCache = null; + function initSmaskGL() { + var canvas, gl; + generateGL(); + canvas = currentCanvas; + currentCanvas = null; + gl = currentGL; + currentGL = null; + var vertexShader = createVertexShader(gl, smaskVertexShaderCode); + var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode); + var program = createProgram(gl, [vertexShader, fragmentShader]); + gl.useProgram(program); + var cache = {}; + cache.gl = gl; + cache.canvas = canvas; + cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); + cache.positionLocation = gl.getAttribLocation(program, 'a_position'); + cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop'); + cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype'); + var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord'); + var texLayerLocation = gl.getUniformLocation(program, 'u_image'); + var texMaskLocation = gl.getUniformLocation(program, 'u_mask'); + var texCoordBuffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer); + 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); + gl.enableVertexAttribArray(texCoordLocation); + gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0); + gl.uniform1i(texLayerLocation, 0); + gl.uniform1i(texMaskLocation, 1); + smaskCache = cache; + } + function composeSMask(layer, mask, properties) { + var width = layer.width, + height = layer.height; + if (!smaskCache) { + initSmaskGL(); + } + var cache = smaskCache, + canvas = cache.canvas, + gl = cache.gl; + canvas.width = width; + canvas.height = height; + gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); + gl.uniform2f(cache.resolutionLocation, width, height); + if (properties.backdrop) { + gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1); + } else { + gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0); + } + gl.uniform1i(cache.subtypeLocation, properties.subtype === 'Luminosity' ? 1 : 0); + var texture = createTexture(gl, layer, gl.TEXTURE0); + var maskTexture = createTexture(gl, mask, gl.TEXTURE1); + var buffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, buffer); + gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW); + gl.enableVertexAttribArray(cache.positionLocation); + gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); + gl.clearColor(0, 0, 0, 0); + gl.enable(gl.BLEND); + gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); + gl.clear(gl.COLOR_BUFFER_BIT); + gl.drawArrays(gl.TRIANGLES, 0, 6); + gl.flush(); + gl.deleteTexture(texture); + gl.deleteTexture(maskTexture); + gl.deleteBuffer(buffer); + return canvas; + } + var figuresVertexShaderCode = '\ + attribute vec2 a_position; \ + attribute vec3 a_color; \ + \ + uniform vec2 u_resolution; \ + uniform vec2 u_scale; \ + uniform vec2 u_offset; \ + \ + varying vec4 v_color; \ + \ + void main() { \ + vec2 position = (a_position + u_offset) * u_scale; \ + vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \ + gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ + \ + v_color = vec4(a_color / 255.0, 1.0); \ + } '; + var figuresFragmentShaderCode = '\ + precision mediump float; \ + \ + varying vec4 v_color; \ + \ + void main() { \ + gl_FragColor = v_color; \ + } '; + var figuresCache = null; + function initFiguresGL() { + var canvas, gl; + generateGL(); + canvas = currentCanvas; + currentCanvas = null; + gl = currentGL; + currentGL = null; + var vertexShader = createVertexShader(gl, figuresVertexShaderCode); + var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode); + var program = createProgram(gl, [vertexShader, fragmentShader]); + gl.useProgram(program); + var cache = {}; + cache.gl = gl; + cache.canvas = canvas; + cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); + cache.scaleLocation = gl.getUniformLocation(program, 'u_scale'); + cache.offsetLocation = gl.getUniformLocation(program, 'u_offset'); + cache.positionLocation = gl.getAttribLocation(program, 'a_position'); + cache.colorLocation = gl.getAttribLocation(program, 'a_color'); + figuresCache = cache; + } + function drawFigures(width, height, backgroundColor, figures, context) { + if (!figuresCache) { + initFiguresGL(); + } + var cache = figuresCache, + canvas = cache.canvas, + gl = cache.gl; + canvas.width = width; + canvas.height = height; + gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); + gl.uniform2f(cache.resolutionLocation, width, height); + var count = 0; + var i, ii, rows; + for (i = 0, ii = figures.length; i < ii; i++) { + switch (figures[i].type) { + case 'lattice': + rows = figures[i].coords.length / figures[i].verticesPerRow | 0; + count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6; + break; + case 'triangles': + count += figures[i].coords.length; + break; } - ctx.lineWidth = lineWidth; - var x = 0, - i; - for (i = 0; i < glyphsLength; ++i) { - var glyph = glyphs[i]; - if ((0, _util.isNum)(glyph)) { - x += spacingDir * glyph * fontSize / 1000; - continue; - } - var restoreNeeded = false; - var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; - var character = glyph.fontChar; - var accent = glyph.accent; - var scaledX, scaledY, scaledAccentX, scaledAccentY; - var width = glyph.width; - if (vertical) { - var vmetric, vx, vy; - vmetric = glyph.vmetric || defaultVMetrics; - vx = glyph.vmetric ? vmetric[1] : width * 0.5; - vx = -vx * widthAdvanceScale; - vy = vmetric[2] * widthAdvanceScale; - width = vmetric ? -vmetric[0] : width; - scaledX = vx / fontSizeScale; - scaledY = (x + vy) / fontSizeScale; - } else { - scaledX = x / fontSizeScale; - scaledY = 0; - } - if (font.remeasure && width > 0) { - var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale; - if (width < measuredWidth && this.isFontSubpixelAAEnabled) { - var characterScaleX = width / measuredWidth; - restoreNeeded = true; - ctx.save(); - ctx.scale(characterScaleX, 1); - scaledX /= characterScaleX; - } else if (width !== measuredWidth) { - scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale; - } - } - if (glyph.isInFont || font.missingFile) { - if (simpleFillText && !accent) { - ctx.fillText(character, scaledX, scaledY); - } else { - this.paintChar(character, scaledX, scaledY, patternTransform); - if (accent) { - scaledAccentX = scaledX + accent.offset.x / fontSizeScale; - scaledAccentY = scaledY - accent.offset.y / fontSizeScale; - this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform); + } + var coords = new Float32Array(count * 2); + var colors = new Uint8Array(count * 3); + var coordsMap = context.coords, + colorsMap = context.colors; + var pIndex = 0, + cIndex = 0; + for (i = 0, ii = figures.length; i < ii; i++) { + var figure = figures[i], + ps = figure.coords, + cs = figure.colors; + switch (figure.type) { + case 'lattice': + var cols = figure.verticesPerRow; + rows = ps.length / cols | 0; + for (var row = 1; row < rows; row++) { + var offset = row * cols + 1; + for (var col = 1; col < cols; col++, offset++) { + coords[pIndex] = coordsMap[ps[offset - cols - 1]]; + coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1]; + coords[pIndex + 2] = coordsMap[ps[offset - cols]]; + coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1]; + coords[pIndex + 4] = coordsMap[ps[offset - 1]]; + coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1]; + colors[cIndex] = colorsMap[cs[offset - cols - 1]]; + colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1]; + colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2]; + colors[cIndex + 3] = colorsMap[cs[offset - cols]]; + colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1]; + colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2]; + colors[cIndex + 6] = colorsMap[cs[offset - 1]]; + colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1]; + colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2]; + coords[pIndex + 6] = coords[pIndex + 2]; + coords[pIndex + 7] = coords[pIndex + 3]; + coords[pIndex + 8] = coords[pIndex + 4]; + coords[pIndex + 9] = coords[pIndex + 5]; + coords[pIndex + 10] = coordsMap[ps[offset]]; + coords[pIndex + 11] = coordsMap[ps[offset] + 1]; + colors[cIndex + 9] = colors[cIndex + 3]; + colors[cIndex + 10] = colors[cIndex + 4]; + colors[cIndex + 11] = colors[cIndex + 5]; + colors[cIndex + 12] = colors[cIndex + 6]; + colors[cIndex + 13] = colors[cIndex + 7]; + colors[cIndex + 14] = colors[cIndex + 8]; + colors[cIndex + 15] = colorsMap[cs[offset]]; + colors[cIndex + 16] = colorsMap[cs[offset] + 1]; + colors[cIndex + 17] = colorsMap[cs[offset] + 2]; + pIndex += 12; + cIndex += 18; } } - } - var charWidth = width * widthAdvanceScale + spacing * fontDirection; - x += charWidth; - if (restoreNeeded) { - ctx.restore(); - } - } - if (vertical) { - current.y -= x * textHScale; - } else { - current.x += x * textHScale; + break; + case 'triangles': + for (var j = 0, jj = ps.length; j < jj; j++) { + coords[pIndex] = coordsMap[ps[j]]; + coords[pIndex + 1] = coordsMap[ps[j] + 1]; + colors[cIndex] = colorsMap[cs[j]]; + colors[cIndex + 1] = colorsMap[cs[j] + 1]; + colors[cIndex + 2] = colorsMap[cs[j] + 2]; + pIndex += 2; + cIndex += 3; + } + break; } - ctx.restore(); + } + if (backgroundColor) { + gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0); + } else { + gl.clearColor(0, 0, 0, 0); + } + gl.clear(gl.COLOR_BUFFER_BIT); + var coordsBuffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer); + gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW); + gl.enableVertexAttribArray(cache.positionLocation); + gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); + var colorsBuffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer); + gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW); + gl.enableVertexAttribArray(cache.colorLocation); + gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0); + gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY); + gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY); + gl.drawArrays(gl.TRIANGLES, 0, count); + gl.flush(); + gl.deleteBuffer(coordsBuffer); + gl.deleteBuffer(colorsBuffer); + return canvas; + } + return { + tryInitGL: function tryInitGL() { + try { + generateGL(); + return !!currentGL; + } catch (ex) {} + return false; }, - showType3Text: function CanvasGraphics_showType3Text(glyphs) { - var ctx = this.ctx; - var current = this.current; - var font = current.font; - var fontSize = current.fontSize; - var fontDirection = current.fontDirection; - var spacingDir = font.vertical ? 1 : -1; - var charSpacing = current.charSpacing; - var wordSpacing = current.wordSpacing; - var textHScale = current.textHScale * fontDirection; - var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX; - var glyphsLength = glyphs.length; - var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE; - var i, glyph, width, spacingLength; - if (isTextInvisible || fontSize === 0) { - return; + + composeSMask: composeSMask, + drawFigures: drawFigures, + cleanup: function cleanup() { + if (smaskCache && smaskCache.canvas) { + smaskCache.canvas.width = 0; + smaskCache.canvas.height = 0; } - this.cachedGetSinglePixelWidth = null; - ctx.save(); - ctx.transform.apply(ctx, current.textMatrix); - ctx.translate(current.x, current.y); - ctx.scale(textHScale, fontDirection); - for (i = 0; i < glyphsLength; ++i) { - glyph = glyphs[i]; - if ((0, _util.isNum)(glyph)) { - spacingLength = spacingDir * glyph * fontSize / 1000; - this.ctx.translate(spacingLength, 0); - current.x += spacingLength * textHScale; - continue; - } - var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; - var operatorList = font.charProcOperatorList[glyph.operatorListId]; - if (!operatorList) { - (0, _util.warn)('Type3 character "' + glyph.operatorListId + '" is not available.'); - continue; - } - this.processingType3 = glyph; - this.save(); - ctx.scale(fontSize, fontSize); - ctx.transform.apply(ctx, fontMatrix); - this.executeOperatorList(operatorList); - this.restore(); - var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix); - width = transformed[0] * fontSize + spacing; - ctx.translate(width, 0); - current.x += width * textHScale; + if (figuresCache && figuresCache.canvas) { + figuresCache.canvas.width = 0; + figuresCache.canvas.height = 0; } - ctx.restore(); - this.processingType3 = null; - }, - setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {}, - setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) { - this.ctx.rect(llx, lly, urx - llx, ury - lly); - this.clip(); - this.endPath(); - }, - getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) { - var _this = this; + smaskCache = null; + figuresCache = null; + } + }; +}(); +exports.WebGLContext = WebGLContext; - var pattern; - if (IR[0] === 'TilingPattern') { - var color = IR[1]; - var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice(); - var canvasGraphicsFactory = { - createCanvasGraphics: function createCanvasGraphics(ctx) { - return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory, _this.webGLContext); - } - }; - pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform); +/***/ }), +/* 124 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.renderTextLayer = undefined; + +var _util = __w_pdfjs_require__(0); + +var _global_scope = __w_pdfjs_require__(19); + +var _global_scope2 = _interopRequireDefault(_global_scope); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var renderTextLayer = function renderTextLayerClosure() { + var MAX_TEXT_DIVS_TO_RENDER = 100000; + var NonWhitespaceRegexp = /\S/; + function isAllWhitespace(str) { + return !NonWhitespaceRegexp.test(str); + } + var styleBuf = ['left: ', 0, 'px; top: ', 0, 'px; font-size: ', 0, 'px; font-family: ', '', ';']; + function appendText(task, geom, styles) { + var textDiv = document.createElement('div'); + var textDivProperties = { + style: null, + angle: 0, + canvasWidth: 0, + isWhitespace: false, + originalTransform: null, + paddingBottom: 0, + paddingLeft: 0, + paddingRight: 0, + paddingTop: 0, + scale: 1 + }; + task._textDivs.push(textDiv); + if (isAllWhitespace(geom.str)) { + textDivProperties.isWhitespace = true; + task._textDivProperties.set(textDiv, textDivProperties); + return; + } + var tx = _util.Util.transform(task._viewport.transform, geom.transform); + var angle = Math.atan2(tx[1], tx[0]); + var style = styles[geom.fontName]; + if (style.vertical) { + angle += Math.PI / 2; + } + var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]); + var fontAscent = fontHeight; + if (style.ascent) { + fontAscent = style.ascent * fontAscent; + } else if (style.descent) { + fontAscent = (1 + style.descent) * fontAscent; + } + var left; + var top; + if (angle === 0) { + left = tx[4]; + top = tx[5] - fontAscent; + } else { + left = tx[4] + fontAscent * Math.sin(angle); + top = tx[5] - fontAscent * Math.cos(angle); + } + styleBuf[1] = left; + styleBuf[3] = top; + styleBuf[5] = fontHeight; + styleBuf[7] = style.fontFamily; + textDivProperties.style = styleBuf.join(''); + textDiv.setAttribute('style', textDivProperties.style); + textDiv.textContent = geom.str; + if (task._fontInspectorEnabled) { + textDiv.dataset.fontName = geom.fontName; + } + if (angle !== 0) { + textDivProperties.angle = angle * (180 / Math.PI); + } + if (geom.str.length > 1) { + if (style.vertical) { + textDivProperties.canvasWidth = geom.height * task._viewport.scale; } else { - pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR); + textDivProperties.canvasWidth = geom.width * task._viewport.scale; } - return pattern; - }, - setStrokeColorN: function CanvasGraphics_setStrokeColorN() { - this.current.strokeColor = this.getColorN_Pattern(arguments); - }, - setFillColorN: function CanvasGraphics_setFillColorN() { - this.current.fillColor = this.getColorN_Pattern(arguments); - this.current.patternFill = true; - }, - setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) { - var color = _util.Util.makeCssRgb(r, g, b); - this.ctx.strokeStyle = color; - this.current.strokeColor = color; - }, - setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) { - var color = _util.Util.makeCssRgb(r, g, b); - this.ctx.fillStyle = color; - this.current.fillColor = color; - this.current.patternFill = false; - }, - shadingFill: function CanvasGraphics_shadingFill(patternIR) { - var ctx = this.ctx; - this.save(); - var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR); - ctx.fillStyle = pattern.getPattern(ctx, this, true); - var inv = ctx.mozCurrentTransformInverse; - if (inv) { - var canvas = ctx.canvas; - var width = canvas.width; - var height = canvas.height; - var bl = _util.Util.applyTransform([0, 0], inv); - var br = _util.Util.applyTransform([0, height], inv); - var ul = _util.Util.applyTransform([width, 0], inv); - var ur = _util.Util.applyTransform([width, height], inv); - var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); - var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); - var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); - var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); - this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); - } else { - this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); + } + task._textDivProperties.set(textDiv, textDivProperties); + if (task._textContentStream) { + task._layoutText(textDiv); + } + if (task._enhanceTextSelection) { + var angleCos = 1, + angleSin = 0; + if (angle !== 0) { + angleCos = Math.cos(angle); + angleSin = Math.sin(angle); } - this.restore(); - }, - beginInlineImage: function CanvasGraphics_beginInlineImage() { - (0, _util.unreachable)('Should not call beginInlineImage'); - }, - beginImageData: function CanvasGraphics_beginImageData() { - (0, _util.unreachable)('Should not call beginImageData'); - }, - paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) { - this.save(); - this.baseTransformStack.push(this.baseTransform); - if (Array.isArray(matrix) && matrix.length === 6) { - this.transform.apply(this, matrix); + var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale; + var divHeight = fontHeight; + var m, b; + if (angle !== 0) { + m = [angleCos, angleSin, -angleSin, angleCos, left, top]; + b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m); + } else { + b = [left, top, left + divWidth, top + divHeight]; } - this.baseTransform = this.ctx.mozCurrentTransform; - if (Array.isArray(bbox) && bbox.length === 4) { - var width = bbox[2] - bbox[0]; - var height = bbox[3] - bbox[1]; - this.ctx.rect(bbox[0], bbox[1], width, height); - this.clip(); - this.endPath(); + task._bounds.push({ + left: b[0], + top: b[1], + right: b[2], + bottom: b[3], + div: textDiv, + size: [divWidth, divHeight], + m: m + }); + } + } + function render(task) { + if (task._canceled) { + return; + } + var textDivs = task._textDivs; + var capability = task._capability; + var textDivsLength = textDivs.length; + if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) { + task._renderingDone = true; + capability.resolve(); + return; + } + if (!task._textContentStream) { + for (var i = 0; i < textDivsLength; i++) { + task._layoutText(textDivs[i]); } - }, - paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() { - this.restore(); - this.baseTransform = this.baseTransformStack.pop(); - }, - beginGroup: function CanvasGraphics_beginGroup(group) { - this.save(); - var currentCtx = this.ctx; - if (!group.isolated) { - (0, _util.info)('TODO: Support non-isolated groups.'); + } + task._renderingDone = true; + capability.resolve(); + } + function expand(task) { + var bounds = task._bounds; + var viewport = task._viewport; + var expanded = expandBounds(viewport.width, viewport.height, bounds); + for (var i = 0; i < expanded.length; i++) { + var div = bounds[i].div; + var divProperties = task._textDivProperties.get(div); + if (divProperties.angle === 0) { + divProperties.paddingLeft = bounds[i].left - expanded[i].left; + divProperties.paddingTop = bounds[i].top - expanded[i].top; + divProperties.paddingRight = expanded[i].right - bounds[i].right; + divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom; + task._textDivProperties.set(div, divProperties); + continue; } - if (group.knockout) { - (0, _util.warn)('Knockout groups not supported.'); + var e = expanded[i], + b = bounds[i]; + var m = b.m, + c = m[0], + s = m[1]; + var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size]; + var ts = new Float64Array(64); + points.forEach(function (p, i) { + var t = _util.Util.applyTransform(p, m); + ts[i + 0] = c && (e.left - t[0]) / c; + ts[i + 4] = s && (e.top - t[1]) / s; + ts[i + 8] = c && (e.right - t[0]) / c; + ts[i + 12] = s && (e.bottom - t[1]) / s; + ts[i + 16] = s && (e.left - t[0]) / -s; + ts[i + 20] = c && (e.top - t[1]) / c; + ts[i + 24] = s && (e.right - t[0]) / -s; + ts[i + 28] = c && (e.bottom - t[1]) / c; + ts[i + 32] = c && (e.left - t[0]) / -c; + ts[i + 36] = s && (e.top - t[1]) / -s; + ts[i + 40] = c && (e.right - t[0]) / -c; + ts[i + 44] = s && (e.bottom - t[1]) / -s; + ts[i + 48] = s && (e.left - t[0]) / s; + ts[i + 52] = c && (e.top - t[1]) / -c; + ts[i + 56] = s && (e.right - t[0]) / s; + ts[i + 60] = c && (e.bottom - t[1]) / -c; + }); + var findPositiveMin = function findPositiveMin(ts, offset, count) { + var result = 0; + for (var i = 0; i < count; i++) { + var t = ts[offset++]; + if (t > 0) { + result = result ? Math.min(t, result) : t; + } + } + return result; + }; + var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s)); + divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale; + divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale; + divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale; + divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale; + task._textDivProperties.set(div, divProperties); + } + } + function expandBounds(width, height, boxes) { + var bounds = boxes.map(function (box, i) { + return { + x1: box.left, + y1: box.top, + x2: box.right, + y2: box.bottom, + index: i, + x1New: undefined, + x2New: undefined + }; + }); + expandBoundsLTR(width, bounds); + var expanded = new Array(boxes.length); + bounds.forEach(function (b) { + var i = b.index; + expanded[i] = { + left: b.x1New, + top: 0, + right: b.x2New, + bottom: 0 + }; + }); + boxes.map(function (box, i) { + var e = expanded[i], + b = bounds[i]; + b.x1 = box.top; + b.y1 = width - e.right; + b.x2 = box.bottom; + b.y2 = width - e.left; + b.index = i; + b.x1New = undefined; + b.x2New = undefined; + }); + expandBoundsLTR(height, bounds); + bounds.forEach(function (b) { + var i = b.index; + expanded[i].top = b.x1New; + expanded[i].bottom = b.x2New; + }); + return expanded; + } + function expandBoundsLTR(width, bounds) { + bounds.sort(function (a, b) { + return a.x1 - b.x1 || a.index - b.index; + }); + var fakeBoundary = { + x1: -Infinity, + y1: -Infinity, + x2: 0, + y2: Infinity, + index: -1, + x1New: 0, + x2New: 0 + }; + var horizon = [{ + start: -Infinity, + end: Infinity, + boundary: fakeBoundary + }]; + bounds.forEach(function (boundary) { + var i = 0; + while (i < horizon.length && horizon[i].end <= boundary.y1) { + i++; } - var currentTransform = currentCtx.mozCurrentTransform; - if (group.matrix) { - currentCtx.transform.apply(currentCtx, group.matrix); + var j = horizon.length - 1; + while (j >= 0 && horizon[j].start >= boundary.y2) { + j--; } - if (!group.bbox) { - throw new Error('Bounding box is required.'); + var horizonPart, affectedBoundary; + var q, + k, + maxXNew = -Infinity; + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; + var xNew; + if (affectedBoundary.x2 > boundary.x1) { + xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1; + } else if (affectedBoundary.x2New === undefined) { + xNew = (affectedBoundary.x2 + boundary.x1) / 2; + } else { + xNew = affectedBoundary.x2New; + } + if (xNew > maxXNew) { + maxXNew = xNew; + } } - var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform); - var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height]; - bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0]; - var offsetX = Math.floor(bounds[0]); - var offsetY = Math.floor(bounds[1]); - var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1); - var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1); - var scaleX = 1, - scaleY = 1; - if (drawnWidth > MAX_GROUP_SIZE) { - scaleX = drawnWidth / MAX_GROUP_SIZE; - drawnWidth = MAX_GROUP_SIZE; + boundary.x1New = maxXNew; + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; + if (affectedBoundary.x2New === undefined) { + if (affectedBoundary.x2 > boundary.x1) { + if (affectedBoundary.index > boundary.index) { + affectedBoundary.x2New = affectedBoundary.x2; + } + } else { + affectedBoundary.x2New = maxXNew; + } + } else if (affectedBoundary.x2New > maxXNew) { + affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2); + } } - if (drawnHeight > MAX_GROUP_SIZE) { - scaleY = drawnHeight / MAX_GROUP_SIZE; - drawnHeight = MAX_GROUP_SIZE; + var changedHorizon = [], + lastBoundary = null; + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; + var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary; + if (lastBoundary === useBoundary) { + changedHorizon[changedHorizon.length - 1].end = horizonPart.end; + } else { + changedHorizon.push({ + start: horizonPart.start, + end: horizonPart.end, + boundary: useBoundary + }); + lastBoundary = useBoundary; + } } - var cacheId = 'groupAt' + this.groupLevel; - if (group.smask) { - cacheId += '_smask_' + this.smaskCounter++ % 2; + if (horizon[i].start < boundary.y1) { + changedHorizon[0].start = boundary.y1; + changedHorizon.unshift({ + start: horizon[i].start, + end: boundary.y1, + boundary: horizon[i].boundary + }); } - var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); - var groupCtx = scratchCanvas.context; - groupCtx.scale(1 / scaleX, 1 / scaleY); - groupCtx.translate(-offsetX, -offsetY); - groupCtx.transform.apply(groupCtx, currentTransform); - if (group.smask) { - this.smaskStack.push({ - canvas: scratchCanvas.canvas, - context: groupCtx, - offsetX: offsetX, - offsetY: offsetY, - scaleX: scaleX, - scaleY: scaleY, - subtype: group.smask.subtype, - backdrop: group.smask.backdrop, - transferMap: group.smask.transferMap || null, - startTransformInverse: null + if (boundary.y2 < horizon[j].end) { + changedHorizon[changedHorizon.length - 1].end = boundary.y2; + changedHorizon.push({ + start: boundary.y2, + end: horizon[j].end, + boundary: horizon[j].boundary }); - } else { - currentCtx.setTransform(1, 0, 0, 1, 0, 0); - currentCtx.translate(offsetX, offsetY); - currentCtx.scale(scaleX, scaleY); } - copyCtxState(currentCtx, groupCtx); - this.ctx = groupCtx; - this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]); - this.groupStack.push(currentCtx); - this.groupLevel++; - this.current.activeSMask = null; - }, - endGroup: function CanvasGraphics_endGroup(group) { - this.groupLevel--; - var groupCtx = this.ctx; - this.ctx = this.groupStack.pop(); - if (this.ctx.imageSmoothingEnabled !== undefined) { - this.ctx.imageSmoothingEnabled = false; - } else { - this.ctx.mozImageSmoothingEnabled = false; + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; + if (affectedBoundary.x2New !== undefined) { + continue; + } + var used = false; + for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) { + used = horizon[k].boundary === affectedBoundary; + } + for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) { + used = horizon[k].boundary === affectedBoundary; + } + for (k = 0; !used && k < changedHorizon.length; k++) { + used = changedHorizon[k].boundary === affectedBoundary; + } + if (!used) { + affectedBoundary.x2New = maxXNew; + } } - if (group.smask) { - this.tempSMask = this.smaskStack.pop(); - } else { - this.ctx.drawImage(groupCtx.canvas, 0, 0); + Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon)); + }); + horizon.forEach(function (horizonPart) { + var affectedBoundary = horizonPart.boundary; + if (affectedBoundary.x2New === undefined) { + affectedBoundary.x2New = Math.max(width, affectedBoundary.x2); } - this.restore(); + }); + } + function TextLayerRenderTask(_ref) { + var textContent = _ref.textContent, + textContentStream = _ref.textContentStream, + container = _ref.container, + viewport = _ref.viewport, + textDivs = _ref.textDivs, + textContentItemsStr = _ref.textContentItemsStr, + enhanceTextSelection = _ref.enhanceTextSelection; + + this._textContent = textContent; + this._textContentStream = textContentStream; + this._container = container; + this._viewport = viewport; + this._textDivs = textDivs || []; + this._textContentItemsStr = textContentItemsStr || []; + this._enhanceTextSelection = !!enhanceTextSelection; + this._fontInspectorEnabled = !!(_global_scope2.default.FontInspector && _global_scope2.default.FontInspector.enabled); + this._reader = null; + this._layoutTextLastFontSize = null; + this._layoutTextLastFontFamily = null; + this._layoutTextCtx = null; + this._textDivProperties = new WeakMap(); + this._renderingDone = false; + this._canceled = false; + this._capability = (0, _util.createPromiseCapability)(); + this._renderTimer = null; + this._bounds = []; + } + TextLayerRenderTask.prototype = { + get promise() { + return this._capability.promise; }, - beginAnnotations: function CanvasGraphics_beginAnnotations() { - this.save(); - if (this.baseTransform) { - this.ctx.setTransform.apply(this.ctx, this.baseTransform); + cancel: function TextLayer_cancel() { + if (this._reader) { + this._reader.cancel(new _util.AbortException('text layer task cancelled')); + this._reader = null; + } + this._canceled = true; + if (this._renderTimer !== null) { + clearTimeout(this._renderTimer); + this._renderTimer = null; } + this._capability.reject('canceled'); }, - endAnnotations: function CanvasGraphics_endAnnotations() { - this.restore(); + _processItems: function _processItems(items, styleCache) { + for (var i = 0, len = items.length; i < len; i++) { + this._textContentItemsStr.push(items[i].str); + appendText(this, items[i], styleCache); + } }, - beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) { - this.save(); - resetCtxToDefault(this.ctx); - this.current = new CanvasExtraState(); - if (Array.isArray(rect) && rect.length === 4) { - var width = rect[2] - rect[0]; - var height = rect[3] - rect[1]; - this.ctx.rect(rect[0], rect[1], width, height); - this.clip(); - this.endPath(); + _layoutText: function _layoutText(textDiv) { + var textLayerFrag = this._container; + var textDivProperties = this._textDivProperties.get(textDiv); + if (textDivProperties.isWhitespace) { + return; } - this.transform.apply(this, transform); - this.transform.apply(this, matrix); + var fontSize = textDiv.style.fontSize; + var fontFamily = textDiv.style.fontFamily; + if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) { + this._layoutTextCtx.font = fontSize + ' ' + fontFamily; + this._lastFontSize = fontSize; + this._lastFontFamily = fontFamily; + } + var width = this._layoutTextCtx.measureText(textDiv.textContent).width; + var transform = ''; + if (textDivProperties.canvasWidth !== 0 && width > 0) { + textDivProperties.scale = textDivProperties.canvasWidth / width; + transform = 'scaleX(' + textDivProperties.scale + ')'; + } + if (textDivProperties.angle !== 0) { + transform = 'rotate(' + textDivProperties.angle + 'deg) ' + transform; + } + if (transform !== '') { + textDivProperties.originalTransform = transform; + textDiv.style.transform = transform; + } + this._textDivProperties.set(textDiv, textDivProperties); + textLayerFrag.appendChild(textDiv); }, - endAnnotation: function CanvasGraphics_endAnnotation() { - this.restore(); + + _render: function TextLayer_render(timeout) { + var _this = this; + + var capability = (0, _util.createPromiseCapability)(); + var styleCache = Object.create(null); + var canvas = document.createElement('canvas'); + canvas.mozOpaque = true; + this._layoutTextCtx = canvas.getContext('2d', { alpha: false }); + if (this._textContent) { + var textItems = this._textContent.items; + var textStyles = this._textContent.styles; + this._processItems(textItems, textStyles); + capability.resolve(); + } else if (this._textContentStream) { + var pump = function pump() { + _this._reader.read().then(function (_ref2) { + var value = _ref2.value, + done = _ref2.done; + + if (done) { + capability.resolve(); + return; + } + _util.Util.extendObj(styleCache, value.styles); + _this._processItems(value.items, styleCache); + pump(); + }, capability.reject); + }; + this._reader = this._textContentStream.getReader(); + pump(); + } else { + throw new Error('Neither "textContent" nor "textContentStream"' + ' parameters specified.'); + } + capability.promise.then(function () { + styleCache = null; + if (!timeout) { + render(_this); + } else { + _this._renderTimer = setTimeout(function () { + render(_this); + _this._renderTimer = null; + }, timeout); + } + }, this._capability.reject); }, - paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) { - var domImage = this.objs.get(objId); - if (!domImage) { - (0, _util.warn)('Dependent image isn\'t ready yet'); + expandTextDivs: function TextLayer_expandTextDivs(expandDivs) { + if (!this._enhanceTextSelection || !this._renderingDone) { return; } - this.save(); - var ctx = this.ctx; - ctx.scale(1 / w, -1 / h); - ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h); - if (this.imageLayer) { - var currentTransform = ctx.mozCurrentTransformInverse; - var position = this.getCanvasPosition(0, 0); - this.imageLayer.appendImage({ - objId: objId, - left: position[0], - top: position[1], - width: w / currentTransform[0], - height: h / currentTransform[3] - }); + if (this._bounds !== null) { + expand(this); + this._bounds = null; + } + for (var i = 0, ii = this._textDivs.length; i < ii; i++) { + var div = this._textDivs[i]; + var divProperties = this._textDivProperties.get(div); + if (divProperties.isWhitespace) { + continue; + } + if (expandDivs) { + var transform = '', + padding = ''; + if (divProperties.scale !== 1) { + transform = 'scaleX(' + divProperties.scale + ')'; + } + if (divProperties.angle !== 0) { + transform = 'rotate(' + divProperties.angle + 'deg) ' + transform; + } + if (divProperties.paddingLeft !== 0) { + padding += ' padding-left: ' + divProperties.paddingLeft / divProperties.scale + 'px;'; + transform += ' translateX(' + -divProperties.paddingLeft / divProperties.scale + 'px)'; + } + if (divProperties.paddingTop !== 0) { + padding += ' padding-top: ' + divProperties.paddingTop + 'px;'; + transform += ' translateY(' + -divProperties.paddingTop + 'px)'; + } + if (divProperties.paddingRight !== 0) { + padding += ' padding-right: ' + divProperties.paddingRight / divProperties.scale + 'px;'; + } + if (divProperties.paddingBottom !== 0) { + padding += ' padding-bottom: ' + divProperties.paddingBottom + 'px;'; + } + if (padding !== '') { + div.setAttribute('style', divProperties.style + padding); + } + if (transform !== '') { + div.style.transform = transform; + } + } else { + div.style.padding = 0; + div.style.transform = divProperties.originalTransform || ''; + } + } + } + }; + function renderTextLayer(renderParameters) { + var task = new TextLayerRenderTask({ + textContent: renderParameters.textContent, + textContentStream: renderParameters.textContentStream, + container: renderParameters.container, + viewport: renderParameters.viewport, + textDivs: renderParameters.textDivs, + textContentItemsStr: renderParameters.textContentItemsStr, + enhanceTextSelection: renderParameters.enhanceTextSelection + }); + task._render(renderParameters.timeout); + return task; + } + return renderTextLayer; +}(); +exports.renderTextLayer = renderTextLayer; + +/***/ }), +/* 125 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.AnnotationLayer = undefined; + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _dom_utils = __w_pdfjs_require__(18); + +var _util = __w_pdfjs_require__(0); + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var AnnotationElementFactory = function () { + function AnnotationElementFactory() { + _classCallCheck(this, AnnotationElementFactory); + } + + _createClass(AnnotationElementFactory, null, [{ + key: 'create', + value: function create(parameters) { + var subtype = parameters.data.annotationType; + switch (subtype) { + case _util.AnnotationType.LINK: + return new LinkAnnotationElement(parameters); + case _util.AnnotationType.TEXT: + return new TextAnnotationElement(parameters); + case _util.AnnotationType.WIDGET: + var fieldType = parameters.data.fieldType; + switch (fieldType) { + case 'Tx': + return new TextWidgetAnnotationElement(parameters); + case 'Btn': + if (parameters.data.radioButton) { + return new RadioButtonWidgetAnnotationElement(parameters); + } else if (parameters.data.checkBox) { + return new CheckboxWidgetAnnotationElement(parameters); + } + return new PushButtonWidgetAnnotationElement(parameters); + case 'Ch': + return new ChoiceWidgetAnnotationElement(parameters); + } + return new WidgetAnnotationElement(parameters); + case _util.AnnotationType.POPUP: + return new PopupAnnotationElement(parameters); + case _util.AnnotationType.LINE: + return new LineAnnotationElement(parameters); + case _util.AnnotationType.SQUARE: + return new SquareAnnotationElement(parameters); + case _util.AnnotationType.CIRCLE: + return new CircleAnnotationElement(parameters); + case _util.AnnotationType.POLYLINE: + return new PolylineAnnotationElement(parameters); + case _util.AnnotationType.POLYGON: + return new PolygonAnnotationElement(parameters); + case _util.AnnotationType.HIGHLIGHT: + return new HighlightAnnotationElement(parameters); + case _util.AnnotationType.UNDERLINE: + return new UnderlineAnnotationElement(parameters); + case _util.AnnotationType.SQUIGGLY: + return new SquigglyAnnotationElement(parameters); + case _util.AnnotationType.STRIKEOUT: + return new StrikeOutAnnotationElement(parameters); + case _util.AnnotationType.STAMP: + return new StampAnnotationElement(parameters); + case _util.AnnotationType.FILEATTACHMENT: + return new FileAttachmentAnnotationElement(parameters); + default: + return new AnnotationElement(parameters); } - this.restore(); - }, - paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) { - var ctx = this.ctx; - var width = img.width, - height = img.height; - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; - var glyph = this.processingType3; - if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) { - if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) { - glyph.compiled = compileType3Glyph({ - data: img.data, - width: width, - height: height - }); + } + }]); + + return AnnotationElementFactory; +}(); + +var AnnotationElement = function () { + function AnnotationElement(parameters) { + var isRenderable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var ignoreBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + _classCallCheck(this, AnnotationElement); + + this.isRenderable = isRenderable; + this.data = parameters.data; + this.layer = parameters.layer; + this.page = parameters.page; + this.viewport = parameters.viewport; + this.linkService = parameters.linkService; + this.downloadManager = parameters.downloadManager; + this.imageResourcesPath = parameters.imageResourcesPath; + this.renderInteractiveForms = parameters.renderInteractiveForms; + this.svgFactory = parameters.svgFactory; + if (isRenderable) { + this.container = this._createContainer(ignoreBorder); + } + } + + _createClass(AnnotationElement, [{ + key: '_createContainer', + value: function _createContainer() { + var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + var data = this.data, + page = this.page, + viewport = this.viewport; + var container = document.createElement('section'); + var width = data.rect[2] - data.rect[0]; + var height = data.rect[3] - data.rect[1]; + container.setAttribute('data-annotation-id', data.id); + 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]]); + container.style.transform = 'matrix(' + viewport.transform.join(',') + ')'; + container.style.transformOrigin = -rect[0] + 'px ' + -rect[1] + 'px'; + if (!ignoreBorder && data.borderStyle.width > 0) { + container.style.borderWidth = data.borderStyle.width + 'px'; + if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) { + width = width - 2 * data.borderStyle.width; + height = height - 2 * data.borderStyle.width; + } + var horizontalRadius = data.borderStyle.horizontalCornerRadius; + var verticalRadius = data.borderStyle.verticalCornerRadius; + if (horizontalRadius > 0 || verticalRadius > 0) { + var radius = horizontalRadius + 'px / ' + verticalRadius + 'px'; + container.style.borderRadius = radius; + } + switch (data.borderStyle.style) { + case _util.AnnotationBorderStyleType.SOLID: + container.style.borderStyle = 'solid'; + break; + case _util.AnnotationBorderStyleType.DASHED: + container.style.borderStyle = 'dashed'; + break; + case _util.AnnotationBorderStyleType.BEVELED: + (0, _util.warn)('Unimplemented border style: beveled'); + break; + case _util.AnnotationBorderStyleType.INSET: + (0, _util.warn)('Unimplemented border style: inset'); + break; + case _util.AnnotationBorderStyleType.UNDERLINE: + container.style.borderBottomStyle = 'solid'; + break; + default: + break; + } + if (data.color) { + container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0); } else { - glyph.compiled = null; + container.style.borderWidth = 0; } } - if (glyph && glyph.compiled) { - glyph.compiled(ctx); - return; - } - var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); - var maskCtx = maskCanvas.context; - maskCtx.save(); - putBinaryImageMask(maskCtx, img); - maskCtx.globalCompositeOperation = 'source-in'; - maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; - maskCtx.fillRect(0, 0, width, height); - maskCtx.restore(); - this.paintInlineImageXObject(maskCanvas.canvas); - }, - paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) { - var width = imgData.width; - var height = imgData.height; - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; - var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); - var maskCtx = maskCanvas.context; - maskCtx.save(); - putBinaryImageMask(maskCtx, imgData); - maskCtx.globalCompositeOperation = 'source-in'; - maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; - maskCtx.fillRect(0, 0, width, height); - maskCtx.restore(); - var ctx = this.ctx; - for (var i = 0, ii = positions.length; i < ii; i += 2) { - ctx.save(); - ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]); - ctx.scale(1, -1); - ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); - ctx.restore(); - } - }, - paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) { - var ctx = this.ctx; - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; - for (var i = 0, ii = images.length; i < ii; i++) { - var image = images[i]; - var width = image.width, - height = image.height; - var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); - var maskCtx = maskCanvas.context; - maskCtx.save(); - putBinaryImageMask(maskCtx, image); - maskCtx.globalCompositeOperation = 'source-in'; - maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; - maskCtx.fillRect(0, 0, width, height); - maskCtx.restore(); - ctx.save(); - ctx.transform.apply(ctx, image.transform); - ctx.scale(1, -1); - ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); - ctx.restore(); - } - }, - paintImageXObject: function CanvasGraphics_paintImageXObject(objId) { - var imgData = this.objs.get(objId); - if (!imgData) { - (0, _util.warn)('Dependent image isn\'t ready yet'); - return; + container.style.left = rect[0] + 'px'; + container.style.top = rect[1] + 'px'; + container.style.width = width + 'px'; + container.style.height = height + 'px'; + return container; + } + }, { + key: '_createPopup', + value: function _createPopup(container, trigger, data) { + if (!trigger) { + trigger = document.createElement('div'); + trigger.style.height = container.style.height; + trigger.style.width = container.style.width; + container.appendChild(trigger); } - this.paintInlineImageXObject(imgData); - }, - paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) { - var imgData = this.objs.get(objId); - if (!imgData) { - (0, _util.warn)('Dependent image isn\'t ready yet'); - return; + var popupElement = new PopupElement({ + container: container, + trigger: trigger, + color: data.color, + title: data.title, + contents: data.contents, + hideWrapper: true + }); + var popup = popupElement.render(); + popup.style.left = container.style.width; + container.appendChild(popup); + } + }, { + key: 'render', + value: function render() { + (0, _util.unreachable)('Abstract method `AnnotationElement.render` called'); + } + }]); + + return AnnotationElement; +}(); + +var LinkAnnotationElement = function (_AnnotationElement) { + _inherits(LinkAnnotationElement, _AnnotationElement); + + function LinkAnnotationElement(parameters) { + _classCallCheck(this, LinkAnnotationElement); + + var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action); + return _possibleConstructorReturn(this, (LinkAnnotationElement.__proto__ || Object.getPrototypeOf(LinkAnnotationElement)).call(this, parameters, isRenderable)); + } + + _createClass(LinkAnnotationElement, [{ + key: 'render', + value: function render() { + this.container.className = 'linkAnnotation'; + var data = this.data, + linkService = this.linkService; + + var link = document.createElement('a'); + (0, _dom_utils.addLinkAttributes)(link, { + url: data.url, + target: data.newWindow ? _dom_utils.LinkTarget.BLANK : linkService.externalLinkTarget, + rel: linkService.externalLinkRel + }); + if (!data.url) { + if (data.action) { + this._bindNamedAction(link, data.action); + } else { + this._bindLink(link, data.dest); + } } - var width = imgData.width; - var height = imgData.height; - var map = []; - for (var i = 0, ii = positions.length; i < ii; i += 2) { - map.push({ - transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]], - x: 0, - y: 0, - w: width, - h: height - }); + this.container.appendChild(link); + return this.container; + } + }, { + key: '_bindLink', + value: function _bindLink(link, destination) { + var _this2 = this; + + link.href = this.linkService.getDestinationHash(destination); + link.onclick = function () { + if (destination) { + _this2.linkService.navigateTo(destination); + } + return false; + }; + if (destination) { + link.className = 'internalLink'; } - this.paintInlineImageXObjectGroup(imgData, map); - }, - paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) { - var width = imgData.width; - var height = imgData.height; - var ctx = this.ctx; - this.save(); - ctx.scale(1 / width, -1 / height); - var currentTransform = ctx.mozCurrentTransformInverse; - var a = currentTransform[0], - b = currentTransform[1]; - var widthScale = Math.max(Math.sqrt(a * a + b * b), 1); - var c = currentTransform[2], - d = currentTransform[3]; - var heightScale = Math.max(Math.sqrt(c * c + d * d), 1); - var imgToPaint, tmpCanvas; - if (imgData instanceof HTMLElement || !imgData.data) { - imgToPaint = imgData; - } else { - tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', width, height); - var tmpCtx = tmpCanvas.context; - putBinaryImageData(tmpCtx, imgData); - imgToPaint = tmpCanvas.canvas; + } + }, { + key: '_bindNamedAction', + value: function _bindNamedAction(link, action) { + var _this3 = this; + + link.href = this.linkService.getAnchorUrl(''); + link.onclick = function () { + _this3.linkService.executeNamedAction(action); + return false; + }; + link.className = 'internalLink'; + } + }]); + + return LinkAnnotationElement; +}(AnnotationElement); + +var TextAnnotationElement = function (_AnnotationElement2) { + _inherits(TextAnnotationElement, _AnnotationElement2); + + function TextAnnotationElement(parameters) { + _classCallCheck(this, TextAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, (TextAnnotationElement.__proto__ || Object.getPrototypeOf(TextAnnotationElement)).call(this, parameters, isRenderable)); + } + + _createClass(TextAnnotationElement, [{ + key: 'render', + value: function render() { + this.container.className = 'textAnnotation'; + var image = document.createElement('img'); + image.style.height = this.container.style.height; + image.style.width = this.container.style.width; + image.src = this.imageResourcesPath + 'annotation-' + this.data.name.toLowerCase() + '.svg'; + image.alt = '[{{type}} Annotation]'; + image.dataset.l10nId = 'text_annotation_type'; + image.dataset.l10nArgs = JSON.stringify({ type: this.data.name }); + if (!this.data.hasPopup) { + this._createPopup(this.container, image, this.data); } - var paintWidth = width, - paintHeight = height; - var tmpCanvasId = 'prescale1'; - while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) { - var newWidth = paintWidth, - newHeight = paintHeight; - if (widthScale > 2 && paintWidth > 1) { - newWidth = Math.ceil(paintWidth / 2); - widthScale /= paintWidth / newWidth; + this.container.appendChild(image); + return this.container; + } + }]); + + return TextAnnotationElement; +}(AnnotationElement); + +var WidgetAnnotationElement = function (_AnnotationElement3) { + _inherits(WidgetAnnotationElement, _AnnotationElement3); + + function WidgetAnnotationElement() { + _classCallCheck(this, WidgetAnnotationElement); + + return _possibleConstructorReturn(this, (WidgetAnnotationElement.__proto__ || Object.getPrototypeOf(WidgetAnnotationElement)).apply(this, arguments)); + } + + _createClass(WidgetAnnotationElement, [{ + key: 'render', + value: function render() { + return this.container; + } + }]); + + return WidgetAnnotationElement; +}(AnnotationElement); + +var TextWidgetAnnotationElement = function (_WidgetAnnotationElem) { + _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem); + + function TextWidgetAnnotationElement(parameters) { + _classCallCheck(this, TextWidgetAnnotationElement); + + var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue; + return _possibleConstructorReturn(this, (TextWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(TextWidgetAnnotationElement)).call(this, parameters, isRenderable)); + } + + _createClass(TextWidgetAnnotationElement, [{ + key: 'render', + value: function render() { + var TEXT_ALIGNMENT = ['left', 'center', 'right']; + this.container.className = 'textWidgetAnnotation'; + var element = null; + if (this.renderInteractiveForms) { + if (this.data.multiLine) { + element = document.createElement('textarea'); + element.textContent = this.data.fieldValue; + } else { + element = document.createElement('input'); + element.type = 'text'; + element.setAttribute('value', this.data.fieldValue); } - if (heightScale > 2 && paintHeight > 1) { - newHeight = Math.ceil(paintHeight / 2); - heightScale /= paintHeight / newHeight; + element.disabled = this.data.readOnly; + if (this.data.maxLen !== null) { + element.maxLength = this.data.maxLen; } - tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight); - tmpCtx = tmpCanvas.context; - tmpCtx.clearRect(0, 0, newWidth, newHeight); - tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight); - imgToPaint = tmpCanvas.canvas; - paintWidth = newWidth; - paintHeight = newHeight; - tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1'; + if (this.data.comb) { + var fieldWidth = this.data.rect[2] - this.data.rect[0]; + var combWidth = fieldWidth / this.data.maxLen; + element.classList.add('comb'); + element.style.letterSpacing = 'calc(' + combWidth + 'px - 1ch)'; + } + } else { + element = document.createElement('div'); + element.textContent = this.data.fieldValue; + element.style.verticalAlign = 'middle'; + element.style.display = 'table-cell'; + var font = null; + if (this.data.fontRefName) { + font = this.page.commonObjs.getData(this.data.fontRefName); + } + this._setTextStyle(element, font); } - ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height); - if (this.imageLayer) { - var position = this.getCanvasPosition(0, -height); - this.imageLayer.appendImage({ - imgData: imgData, - left: position[0], - top: position[1], - width: width / currentTransform[0], - height: height / currentTransform[3] - }); + if (this.data.textAlignment !== null) { + element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment]; } - this.restore(); - }, - paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) { - var ctx = this.ctx; - var w = imgData.width; - var h = imgData.height; - var tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', w, h); - var tmpCtx = tmpCanvas.context; - putBinaryImageData(tmpCtx, imgData); - for (var i = 0, ii = map.length; i < ii; i++) { - var entry = map[i]; - ctx.save(); - ctx.transform.apply(ctx, entry.transform); - ctx.scale(1, -1); - ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1); - if (this.imageLayer) { - var position = this.getCanvasPosition(entry.x, entry.y); - this.imageLayer.appendImage({ - imgData: imgData, - left: position[0], - top: position[1], - width: w, - height: h - }); - } - ctx.restore(); + this.container.appendChild(element); + return this.container; + } + }, { + key: '_setTextStyle', + value: function _setTextStyle(element, font) { + var style = element.style; + style.fontSize = this.data.fontSize + 'px'; + style.direction = this.data.fontDirection < 0 ? 'rtl' : 'ltr'; + if (!font) { + return; } - }, - paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() { - this.ctx.fillRect(0, 0, 1, 1); - }, - paintXObject: function CanvasGraphics_paintXObject() { - (0, _util.warn)('Unsupported \'paintXObject\' command.'); - }, - markPoint: function CanvasGraphics_markPoint(tag) {}, - markPointProps: function CanvasGraphics_markPointProps(tag, properties) {}, - beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {}, - beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {}, - endMarkedContent: function CanvasGraphics_endMarkedContent() {}, - beginCompat: function CanvasGraphics_beginCompat() {}, - endCompat: function CanvasGraphics_endCompat() {}, - consumePath: function CanvasGraphics_consumePath() { - var ctx = this.ctx; - if (this.pendingClip) { - if (this.pendingClip === EO_CLIP) { - ctx.clip('evenodd'); - } else { - ctx.clip(); - } - this.pendingClip = null; + style.fontWeight = font.black ? font.bold ? '900' : 'bold' : font.bold ? 'bold' : 'normal'; + style.fontStyle = font.italic ? 'italic' : 'normal'; + var fontFamily = font.loadedName ? '"' + font.loadedName + '", ' : ''; + var fallbackName = font.fallbackName || 'Helvetica, sans-serif'; + style.fontFamily = fontFamily + fallbackName; + } + }]); + + return TextWidgetAnnotationElement; +}(WidgetAnnotationElement); + +var CheckboxWidgetAnnotationElement = function (_WidgetAnnotationElem2) { + _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2); + + function CheckboxWidgetAnnotationElement(parameters) { + _classCallCheck(this, CheckboxWidgetAnnotationElement); + + return _possibleConstructorReturn(this, (CheckboxWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(CheckboxWidgetAnnotationElement)).call(this, parameters, parameters.renderInteractiveForms)); + } + + _createClass(CheckboxWidgetAnnotationElement, [{ + key: 'render', + value: function render() { + this.container.className = 'buttonWidgetAnnotation checkBox'; + var element = document.createElement('input'); + element.disabled = this.data.readOnly; + element.type = 'checkbox'; + if (this.data.fieldValue && this.data.fieldValue !== 'Off') { + element.setAttribute('checked', true); } - ctx.beginPath(); - }, - getSinglePixelWidth: function CanvasGraphics_getSinglePixelWidth(scale) { - if (this.cachedGetSinglePixelWidth === null) { - this.ctx.save(); - var inverse = this.ctx.mozCurrentTransformInverse; - this.ctx.restore(); - this.cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3])); + this.container.appendChild(element); + return this.container; + } + }]); + + return CheckboxWidgetAnnotationElement; +}(WidgetAnnotationElement); + +var RadioButtonWidgetAnnotationElement = function (_WidgetAnnotationElem3) { + _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3); + + function RadioButtonWidgetAnnotationElement(parameters) { + _classCallCheck(this, RadioButtonWidgetAnnotationElement); + + return _possibleConstructorReturn(this, (RadioButtonWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(RadioButtonWidgetAnnotationElement)).call(this, parameters, parameters.renderInteractiveForms)); + } + + _createClass(RadioButtonWidgetAnnotationElement, [{ + key: 'render', + value: function render() { + this.container.className = 'buttonWidgetAnnotation radioButton'; + var element = document.createElement('input'); + element.disabled = this.data.readOnly; + element.type = 'radio'; + element.name = this.data.fieldName; + if (this.data.fieldValue === this.data.buttonValue) { + element.setAttribute('checked', true); } - return this.cachedGetSinglePixelWidth; - }, - getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) { - var transform = this.ctx.mozCurrentTransform; - return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]]; + this.container.appendChild(element); + return this.container; } - }; - for (var op in _util.OPS) { - CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op]; + }]); + + return RadioButtonWidgetAnnotationElement; +}(WidgetAnnotationElement); + +var PushButtonWidgetAnnotationElement = function (_LinkAnnotationElemen) { + _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen); + + function PushButtonWidgetAnnotationElement() { + _classCallCheck(this, PushButtonWidgetAnnotationElement); + + return _possibleConstructorReturn(this, (PushButtonWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(PushButtonWidgetAnnotationElement)).apply(this, arguments)); } - return CanvasGraphics; -}(); -exports.CanvasGraphics = CanvasGraphics; -/***/ }), -/* 124 */ -/***/ (function(module, exports, __w_pdfjs_require__) { + _createClass(PushButtonWidgetAnnotationElement, [{ + key: 'render', + value: function render() { + var container = _get(PushButtonWidgetAnnotationElement.prototype.__proto__ || Object.getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), 'render', this).call(this); + container.className = 'buttonWidgetAnnotation pushButton'; + return container; + } + }]); -"use strict"; + return PushButtonWidgetAnnotationElement; +}(LinkAnnotationElement); +var ChoiceWidgetAnnotationElement = function (_WidgetAnnotationElem4) { + _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4); -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.TilingPattern = exports.getShadingPatternFromIR = undefined; + function ChoiceWidgetAnnotationElement(parameters) { + _classCallCheck(this, ChoiceWidgetAnnotationElement); -var _util = __w_pdfjs_require__(0); + return _possibleConstructorReturn(this, (ChoiceWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(ChoiceWidgetAnnotationElement)).call(this, parameters, parameters.renderInteractiveForms)); + } -var ShadingIRs = {}; -ShadingIRs.RadialAxial = { - fromIR: function RadialAxial_fromIR(raw) { - var type = raw[1]; - var colorStops = raw[2]; - var p0 = raw[3]; - var p1 = raw[4]; - var r0 = raw[5]; - var r1 = raw[6]; - return { - type: 'Pattern', - getPattern: function RadialAxial_getPattern(ctx) { - var grad; - if (type === 'axial') { - grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]); - } else if (type === 'radial') { - grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1); + _createClass(ChoiceWidgetAnnotationElement, [{ + key: 'render', + value: function render() { + this.container.className = 'choiceWidgetAnnotation'; + var selectElement = document.createElement('select'); + selectElement.disabled = this.data.readOnly; + if (!this.data.combo) { + selectElement.size = this.data.options.length; + if (this.data.multiSelect) { + selectElement.multiple = true; } - for (var i = 0, ii = colorStops.length; i < ii; ++i) { - var c = colorStops[i]; - grad.addColorStop(c[0], c[1]); + } + for (var i = 0, ii = this.data.options.length; i < ii; i++) { + var option = this.data.options[i]; + var optionElement = document.createElement('option'); + optionElement.textContent = option.displayValue; + optionElement.value = option.exportValue; + if (this.data.fieldValue.includes(option.displayValue)) { + optionElement.setAttribute('selected', true); } - return grad; + selectElement.appendChild(optionElement); } - }; + this.container.appendChild(selectElement); + return this.container; + } + }]); + + return ChoiceWidgetAnnotationElement; +}(WidgetAnnotationElement); + +var PopupAnnotationElement = function (_AnnotationElement4) { + _inherits(PopupAnnotationElement, _AnnotationElement4); + + function PopupAnnotationElement(parameters) { + _classCallCheck(this, PopupAnnotationElement); + + var isRenderable = !!(parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, (PopupAnnotationElement.__proto__ || Object.getPrototypeOf(PopupAnnotationElement)).call(this, parameters, isRenderable)); } -}; -var createMeshCanvas = function createMeshCanvasClosure() { - function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { - var coords = context.coords, - colors = context.colors; - var bytes = data.data, - rowSize = data.width * 4; - var tmp; - if (coords[p1 + 1] > coords[p2 + 1]) { - tmp = p1; - p1 = p2; - p2 = tmp; - tmp = c1; - c1 = c2; - c2 = tmp; + + _createClass(PopupAnnotationElement, [{ + key: 'render', + value: function render() { + var IGNORE_TYPES = ['Line', 'Square', 'Circle', 'PolyLine', 'Polygon']; + this.container.className = 'popupAnnotation'; + if (IGNORE_TYPES.includes(this.data.parentType)) { + return this.container; + } + var selector = '[data-annotation-id="' + this.data.parentId + '"]'; + var parentElement = this.layer.querySelector(selector); + if (!parentElement) { + return this.container; + } + var popup = new PopupElement({ + container: this.container, + trigger: parentElement, + color: this.data.color, + title: this.data.title, + contents: this.data.contents + }); + var parentLeft = parseFloat(parentElement.style.left); + var parentWidth = parseFloat(parentElement.style.width); + this.container.style.transformOrigin = -(parentLeft + parentWidth) + 'px -' + parentElement.style.top; + this.container.style.left = parentLeft + parentWidth + 'px'; + this.container.appendChild(popup.render()); + return this.container; } - if (coords[p2 + 1] > coords[p3 + 1]) { - tmp = p2; - p2 = p3; - p3 = tmp; - tmp = c2; - c2 = c3; - c3 = tmp; + }]); + + return PopupAnnotationElement; +}(AnnotationElement); + +var PopupElement = function () { + function PopupElement(parameters) { + _classCallCheck(this, PopupElement); + + this.container = parameters.container; + this.trigger = parameters.trigger; + this.color = parameters.color; + this.title = parameters.title; + this.contents = parameters.contents; + this.hideWrapper = parameters.hideWrapper || false; + this.pinned = false; + } + + _createClass(PopupElement, [{ + key: 'render', + value: function render() { + var BACKGROUND_ENLIGHT = 0.7; + var wrapper = document.createElement('div'); + wrapper.className = 'popupWrapper'; + this.hideElement = this.hideWrapper ? wrapper : this.container; + this.hideElement.setAttribute('hidden', true); + var popup = document.createElement('div'); + popup.className = 'popup'; + var color = this.color; + if (color) { + var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0]; + var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1]; + var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2]; + popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0); + } + var contents = this._formatContents(this.contents); + var title = document.createElement('h1'); + title.textContent = this.title; + this.trigger.addEventListener('click', this._toggle.bind(this)); + this.trigger.addEventListener('mouseover', this._show.bind(this, false)); + this.trigger.addEventListener('mouseout', this._hide.bind(this, false)); + popup.addEventListener('click', this._hide.bind(this, true)); + popup.appendChild(title); + popup.appendChild(contents); + wrapper.appendChild(popup); + return wrapper; + } + }, { + key: '_formatContents', + value: function _formatContents(contents) { + var p = document.createElement('p'); + var lines = contents.split(/(?:\r\n?|\n)/); + for (var i = 0, ii = lines.length; i < ii; ++i) { + var line = lines[i]; + p.appendChild(document.createTextNode(line)); + if (i < ii - 1) { + p.appendChild(document.createElement('br')); + } + } + return p; } - if (coords[p1 + 1] > coords[p2 + 1]) { - tmp = p1; - p1 = p2; - p2 = tmp; - tmp = c1; - c1 = c2; - c2 = tmp; + }, { + key: '_toggle', + value: function _toggle() { + if (this.pinned) { + this._hide(true); + } else { + this._show(true); + } } - var x1 = (coords[p1] + context.offsetX) * context.scaleX; - var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY; - var x2 = (coords[p2] + context.offsetX) * context.scaleX; - var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY; - var x3 = (coords[p3] + context.offsetX) * context.scaleX; - var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY; - if (y1 >= y3) { - return; + }, { + key: '_show', + value: function _show() { + var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + if (pin) { + this.pinned = true; + } + if (this.hideElement.hasAttribute('hidden')) { + this.hideElement.removeAttribute('hidden'); + this.container.style.zIndex += 1; + } } - var c1r = colors[c1], - c1g = colors[c1 + 1], - c1b = colors[c1 + 2]; - var c2r = colors[c2], - c2g = colors[c2 + 1], - c2b = colors[c2 + 2]; - var c3r = colors[c3], - c3g = colors[c3 + 1], - c3b = colors[c3 + 2]; - var minY = Math.round(y1), - maxY = Math.round(y3); - var xa, car, cag, cab; - var xb, cbr, cbg, cbb; - var k; - for (var y = minY; y <= maxY; y++) { - if (y < y2) { - k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2); - xa = x1 - (x1 - x2) * k; - car = c1r - (c1r - c2r) * k; - cag = c1g - (c1g - c2g) * k; - cab = c1b - (c1b - c2b) * k; - } else { - k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3); - xa = x2 - (x2 - x3) * k; - car = c2r - (c2r - c3r) * k; - cag = c2g - (c2g - c3g) * k; - cab = c2b - (c2b - c3b) * k; + }, { + key: '_hide', + value: function _hide() { + var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + + if (unpin) { + this.pinned = false; } - k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3); - xb = x1 - (x1 - x3) * k; - cbr = c1r - (c1r - c3r) * k; - cbg = c1g - (c1g - c3g) * k; - cbb = c1b - (c1b - c3b) * k; - var x1_ = Math.round(Math.min(xa, xb)); - var x2_ = Math.round(Math.max(xa, xb)); - var j = rowSize * y + x1_ * 4; - for (var x = x1_; x <= x2_; x++) { - k = (xa - x) / (xa - xb); - k = k < 0 ? 0 : k > 1 ? 1 : k; - bytes[j++] = car - (car - cbr) * k | 0; - bytes[j++] = cag - (cag - cbg) * k | 0; - bytes[j++] = cab - (cab - cbb) * k | 0; - bytes[j++] = 255; + if (!this.hideElement.hasAttribute('hidden') && !this.pinned) { + this.hideElement.setAttribute('hidden', true); + this.container.style.zIndex -= 1; } } + }]); + + return PopupElement; +}(); + +var LineAnnotationElement = function (_AnnotationElement5) { + _inherits(LineAnnotationElement, _AnnotationElement5); + + function LineAnnotationElement(parameters) { + _classCallCheck(this, LineAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, (LineAnnotationElement.__proto__ || Object.getPrototypeOf(LineAnnotationElement)).call(this, parameters, isRenderable, true)); } - function drawFigure(data, figure, context) { - var ps = figure.coords; - var cs = figure.colors; - var i, ii; - switch (figure.type) { - case 'lattice': - var verticesPerRow = figure.verticesPerRow; - var rows = Math.floor(ps.length / verticesPerRow) - 1; - var cols = verticesPerRow - 1; - for (i = 0; i < rows; i++) { - var q = i * verticesPerRow; - for (var j = 0; j < cols; j++, q++) { - drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]); - drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]); - } - } - break; - case 'triangles': - for (i = 0, ii = ps.length; i < ii; i += 3) { - drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]); - } - break; - default: - throw new Error('illegal figure'); + + _createClass(LineAnnotationElement, [{ + key: 'render', + value: function render() { + this.container.className = 'lineAnnotation'; + var data = this.data; + var width = data.rect[2] - data.rect[0]; + var height = data.rect[3] - data.rect[1]; + var svg = this.svgFactory.create(width, height); + var line = this.svgFactory.createElement('svg:line'); + line.setAttribute('x1', data.rect[2] - data.lineCoordinates[0]); + line.setAttribute('y1', data.rect[3] - data.lineCoordinates[1]); + line.setAttribute('x2', data.rect[2] - data.lineCoordinates[2]); + line.setAttribute('y2', data.rect[3] - data.lineCoordinates[3]); + line.setAttribute('stroke-width', data.borderStyle.width); + line.setAttribute('stroke', 'transparent'); + svg.appendChild(line); + this.container.append(svg); + this._createPopup(this.container, line, data); + return this.container; } + }]); + + return LineAnnotationElement; +}(AnnotationElement); + +var SquareAnnotationElement = function (_AnnotationElement6) { + _inherits(SquareAnnotationElement, _AnnotationElement6); + + function SquareAnnotationElement(parameters) { + _classCallCheck(this, SquareAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, (SquareAnnotationElement.__proto__ || Object.getPrototypeOf(SquareAnnotationElement)).call(this, parameters, isRenderable, true)); } - function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) { - var EXPECTED_SCALE = 1.1; - var MAX_PATTERN_SIZE = 3000; - var BORDER_SIZE = 2; - var offsetX = Math.floor(bounds[0]); - var offsetY = Math.floor(bounds[1]); - var boundsWidth = Math.ceil(bounds[2]) - offsetX; - var boundsHeight = Math.ceil(bounds[3]) - offsetY; - var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); - var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); - var scaleX = boundsWidth / width; - var scaleY = boundsHeight / height; - var context = { - coords: coords, - colors: colors, - offsetX: -offsetX, - offsetY: -offsetY, - scaleX: 1 / scaleX, - scaleY: 1 / scaleY - }; - var paddedWidth = width + BORDER_SIZE * 2; - var paddedHeight = height + BORDER_SIZE * 2; - var canvas, tmpCanvas, i, ii; - if (webGLContext.isEnabled) { - canvas = webGLContext.drawFigures({ - width: width, - height: height, - backgroundColor: backgroundColor, - figures: figures, - context: context - }); - tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); - tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE); - canvas = tmpCanvas.canvas; - } else { - tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); - var tmpCtx = tmpCanvas.context; - var data = tmpCtx.createImageData(width, height); - if (backgroundColor) { - var bytes = data.data; - for (i = 0, ii = bytes.length; i < ii; i += 4) { - bytes[i] = backgroundColor[0]; - bytes[i + 1] = backgroundColor[1]; - bytes[i + 2] = backgroundColor[2]; - bytes[i + 3] = 255; - } - } - for (i = 0; i < figures.length; i++) { - drawFigure(data, figures[i], context); - } - tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE); - canvas = tmpCanvas.canvas; + + _createClass(SquareAnnotationElement, [{ + key: 'render', + value: function render() { + this.container.className = 'squareAnnotation'; + var data = this.data; + var width = data.rect[2] - data.rect[0]; + var height = data.rect[3] - data.rect[1]; + var svg = this.svgFactory.create(width, height); + var borderWidth = data.borderStyle.width; + var square = this.svgFactory.createElement('svg:rect'); + square.setAttribute('x', borderWidth / 2); + square.setAttribute('y', borderWidth / 2); + square.setAttribute('width', width - borderWidth); + square.setAttribute('height', height - borderWidth); + square.setAttribute('stroke-width', borderWidth); + square.setAttribute('stroke', 'transparent'); + square.setAttribute('fill', 'none'); + svg.appendChild(square); + this.container.append(svg); + this._createPopup(this.container, square, data); + return this.container; + } + }]); + + return SquareAnnotationElement; +}(AnnotationElement); + +var CircleAnnotationElement = function (_AnnotationElement7) { + _inherits(CircleAnnotationElement, _AnnotationElement7); + + function CircleAnnotationElement(parameters) { + _classCallCheck(this, CircleAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, (CircleAnnotationElement.__proto__ || Object.getPrototypeOf(CircleAnnotationElement)).call(this, parameters, isRenderable, true)); + } + + _createClass(CircleAnnotationElement, [{ + key: 'render', + value: function render() { + this.container.className = 'circleAnnotation'; + var data = this.data; + var width = data.rect[2] - data.rect[0]; + var height = data.rect[3] - data.rect[1]; + var svg = this.svgFactory.create(width, height); + var borderWidth = data.borderStyle.width; + var circle = this.svgFactory.createElement('svg:ellipse'); + circle.setAttribute('cx', width / 2); + circle.setAttribute('cy', height / 2); + circle.setAttribute('rx', width / 2 - borderWidth / 2); + circle.setAttribute('ry', height / 2 - borderWidth / 2); + circle.setAttribute('stroke-width', borderWidth); + circle.setAttribute('stroke', 'transparent'); + circle.setAttribute('fill', 'none'); + svg.appendChild(circle); + this.container.append(svg); + this._createPopup(this.container, circle, data); + return this.container; } - return { - canvas: canvas, - offsetX: offsetX - BORDER_SIZE * scaleX, - offsetY: offsetY - BORDER_SIZE * scaleY, - scaleX: scaleX, - scaleY: scaleY - }; - } - return createMeshCanvas; -}(); -ShadingIRs.Mesh = { - fromIR: function Mesh_fromIR(raw) { - var coords = raw[2]; - var colors = raw[3]; - var figures = raw[4]; - var bounds = raw[5]; - var matrix = raw[6]; - var background = raw[8]; - return { - type: 'Pattern', - getPattern: function Mesh_getPattern(ctx, owner, shadingFill) { - var scale; - if (shadingFill) { - scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform); - } else { - scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform); - if (matrix) { - var matrixScale = _util.Util.singularValueDecompose2dScale(matrix); - scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]]; - } - } - var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext); - if (!shadingFill) { - ctx.setTransform.apply(ctx, owner.baseTransform); - if (matrix) { - ctx.transform.apply(ctx, matrix); - } - } - ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); - ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY); - return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat'); - } - }; + }]); + + return CircleAnnotationElement; +}(AnnotationElement); + +var PolylineAnnotationElement = function (_AnnotationElement8) { + _inherits(PolylineAnnotationElement, _AnnotationElement8); + + function PolylineAnnotationElement(parameters) { + _classCallCheck(this, PolylineAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + + var _this15 = _possibleConstructorReturn(this, (PolylineAnnotationElement.__proto__ || Object.getPrototypeOf(PolylineAnnotationElement)).call(this, parameters, isRenderable, true)); + + _this15.containerClassName = 'polylineAnnotation'; + _this15.svgElementName = 'svg:polyline'; + return _this15; } -}; -ShadingIRs.Dummy = { - fromIR: function Dummy_fromIR() { - return { - type: 'Pattern', - getPattern: function Dummy_fromIR_getPattern() { - return 'hotpink'; + + _createClass(PolylineAnnotationElement, [{ + key: 'render', + value: function render() { + this.container.className = this.containerClassName; + var data = this.data; + var width = data.rect[2] - data.rect[0]; + var height = data.rect[3] - data.rect[1]; + var svg = this.svgFactory.create(width, height); + var vertices = data.vertices; + var points = []; + for (var i = 0, ii = vertices.length; i < ii; i++) { + var x = vertices[i].x - data.rect[0]; + var y = data.rect[3] - vertices[i].y; + points.push(x + ',' + y); } - }; - } -}; -function getShadingPatternFromIR(raw) { - var shadingIR = ShadingIRs[raw[0]]; - if (!shadingIR) { - throw new Error('Unknown IR type: ' + raw[0]); + points = points.join(' '); + var borderWidth = data.borderStyle.width; + var polyline = this.svgFactory.createElement(this.svgElementName); + polyline.setAttribute('points', points); + polyline.setAttribute('stroke-width', borderWidth); + polyline.setAttribute('stroke', 'transparent'); + polyline.setAttribute('fill', 'none'); + svg.appendChild(polyline); + this.container.append(svg); + this._createPopup(this.container, polyline, data); + return this.container; + } + }]); + + return PolylineAnnotationElement; +}(AnnotationElement); + +var PolygonAnnotationElement = function (_PolylineAnnotationEl) { + _inherits(PolygonAnnotationElement, _PolylineAnnotationEl); + + function PolygonAnnotationElement(parameters) { + _classCallCheck(this, PolygonAnnotationElement); + + var _this16 = _possibleConstructorReturn(this, (PolygonAnnotationElement.__proto__ || Object.getPrototypeOf(PolygonAnnotationElement)).call(this, parameters)); + + _this16.containerClassName = 'polygonAnnotation'; + _this16.svgElementName = 'svg:polygon'; + return _this16; } - return shadingIR.fromIR(raw); -} -var TilingPattern = function TilingPatternClosure() { - var PaintType = { - COLORED: 1, - UNCOLORED: 2 - }; - var MAX_PATTERN_SIZE = 3000; - function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) { - this.operatorList = IR[2]; - this.matrix = IR[3] || [1, 0, 0, 1, 0, 0]; - this.bbox = IR[4]; - this.xstep = IR[5]; - this.ystep = IR[6]; - this.paintType = IR[7]; - this.tilingType = IR[8]; - this.color = color; - this.canvasGraphicsFactory = canvasGraphicsFactory; - this.baseTransform = baseTransform; - this.type = 'Pattern'; - this.ctx = ctx; + + return PolygonAnnotationElement; +}(PolylineAnnotationElement); + +var HighlightAnnotationElement = function (_AnnotationElement9) { + _inherits(HighlightAnnotationElement, _AnnotationElement9); + + function HighlightAnnotationElement(parameters) { + _classCallCheck(this, HighlightAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, (HighlightAnnotationElement.__proto__ || Object.getPrototypeOf(HighlightAnnotationElement)).call(this, parameters, isRenderable, true)); } - TilingPattern.prototype = { - createPatternCanvas: function TilinPattern_createPatternCanvas(owner) { - var operatorList = this.operatorList; - var bbox = this.bbox; - var xstep = this.xstep; - var ystep = this.ystep; - var paintType = this.paintType; - var tilingType = this.tilingType; - var color = this.color; - var canvasGraphicsFactory = this.canvasGraphicsFactory; - (0, _util.info)('TilingType: ' + tilingType); - var x0 = bbox[0], - y0 = bbox[1], - x1 = bbox[2], - y1 = bbox[3]; - var topLeft = [x0, y0]; - var botRight = [x0 + xstep, y0 + ystep]; - var width = botRight[0] - topLeft[0]; - var height = botRight[1] - topLeft[1]; - var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix); - var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform); - var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]]; - width = Math.min(Math.ceil(Math.abs(width * combinedScale[0])), MAX_PATTERN_SIZE); - height = Math.min(Math.ceil(Math.abs(height * combinedScale[1])), MAX_PATTERN_SIZE); - var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', width, height, true); - var tmpCtx = tmpCanvas.context; - var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx); - graphics.groupLevel = owner.groupLevel; - this.setFillAndStrokeStyleToContext(graphics, paintType, color); - this.setScale(width, height, xstep, ystep); - this.transformToScale(graphics); - var tmpTranslate = [1, 0, 0, 1, -topLeft[0], -topLeft[1]]; - graphics.transform.apply(graphics, tmpTranslate); - this.clipBbox(graphics, bbox, x0, y0, x1, y1); - graphics.executeOperatorList(operatorList); - return tmpCanvas.canvas; - }, - setScale: function TilingPattern_setScale(width, height, xstep, ystep) { - this.scale = [width / xstep, height / ystep]; - }, - transformToScale: function TilingPattern_transformToScale(graphics) { - var scale = this.scale; - var tmpScale = [scale[0], 0, 0, scale[1], 0, 0]; - graphics.transform.apply(graphics, tmpScale); - }, - scaleToContext: function TilingPattern_scaleToContext() { - var scale = this.scale; - this.ctx.scale(1 / scale[0], 1 / scale[1]); - }, - clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) { - if (Array.isArray(bbox) && bbox.length === 4) { - var bboxWidth = x1 - x0; - var bboxHeight = y1 - y0; - graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight); - graphics.clip(); - graphics.endPath(); - } - }, - setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) { - var context = graphics.ctx, - current = graphics.current; - switch (paintType) { - case PaintType.COLORED: - var ctx = this.ctx; - context.fillStyle = ctx.fillStyle; - context.strokeStyle = ctx.strokeStyle; - current.fillColor = ctx.fillStyle; - current.strokeColor = ctx.strokeStyle; - break; - case PaintType.UNCOLORED: - var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]); - context.fillStyle = cssColor; - context.strokeStyle = cssColor; - current.fillColor = cssColor; - current.strokeColor = cssColor; - break; - default: - throw new _util.FormatError('Unsupported paint type: ' + paintType); - } - }, - getPattern: function TilingPattern_getPattern(ctx, owner) { - var temporaryPatternCanvas = this.createPatternCanvas(owner); - ctx = this.ctx; - ctx.setTransform.apply(ctx, this.baseTransform); - ctx.transform.apply(ctx, this.matrix); - this.scaleToContext(); - return ctx.createPattern(temporaryPatternCanvas, 'repeat'); + + _createClass(HighlightAnnotationElement, [{ + key: 'render', + value: function render() { + this.container.className = 'highlightAnnotation'; + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + return this.container; } - }; - return TilingPattern; -}(); -exports.getShadingPatternFromIR = getShadingPatternFromIR; -exports.TilingPattern = TilingPattern; + }]); -/***/ }), -/* 125 */ -/***/ (function(module, exports, __w_pdfjs_require__) { + return HighlightAnnotationElement; +}(AnnotationElement); -"use strict"; +var UnderlineAnnotationElement = function (_AnnotationElement10) { + _inherits(UnderlineAnnotationElement, _AnnotationElement10); + function UnderlineAnnotationElement(parameters) { + _classCallCheck(this, UnderlineAnnotationElement); -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.PDFDataTransportStream = undefined; + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, (UnderlineAnnotationElement.__proto__ || Object.getPrototypeOf(UnderlineAnnotationElement)).call(this, parameters, isRenderable, true)); + } -var _util = __w_pdfjs_require__(0); + _createClass(UnderlineAnnotationElement, [{ + key: 'render', + value: function render() { + this.container.className = 'underlineAnnotation'; + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + return this.container; + } + }]); -var PDFDataTransportStream = function PDFDataTransportStreamClosure() { - function PDFDataTransportStream(params, pdfDataRangeTransport) { - var _this = this; + return UnderlineAnnotationElement; +}(AnnotationElement); - (0, _util.assert)(pdfDataRangeTransport); - this._queuedChunks = []; - var initialData = params.initialData; - if (initialData && initialData.length > 0) { - var buffer = new Uint8Array(initialData).buffer; - this._queuedChunks.push(buffer); - } - this._pdfDataRangeTransport = pdfDataRangeTransport; - this._isStreamingSupported = !params.disableStream; - this._isRangeSupported = !params.disableRange; - this._contentLength = params.length; - this._fullRequestReader = null; - this._rangeReaders = []; - this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) { - _this._onReceiveData({ - begin: begin, - chunk: chunk - }); - }); - this._pdfDataRangeTransport.addProgressListener(function (loaded) { - _this._onProgress({ loaded: loaded }); - }); - this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) { - _this._onReceiveData({ chunk: chunk }); - }); - this._pdfDataRangeTransport.transportReady(); +var SquigglyAnnotationElement = function (_AnnotationElement11) { + _inherits(SquigglyAnnotationElement, _AnnotationElement11); + + function SquigglyAnnotationElement(parameters) { + _classCallCheck(this, SquigglyAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, (SquigglyAnnotationElement.__proto__ || Object.getPrototypeOf(SquigglyAnnotationElement)).call(this, parameters, isRenderable, true)); } - PDFDataTransportStream.prototype = { - _onReceiveData: function PDFDataTransportStream_onReceiveData(args) { - var buffer = new Uint8Array(args.chunk).buffer; - if (args.begin === undefined) { - if (this._fullRequestReader) { - this._fullRequestReader._enqueue(buffer); - } else { - this._queuedChunks.push(buffer); - } - } else { - var found = this._rangeReaders.some(function (rangeReader) { - if (rangeReader._begin !== args.begin) { - return false; - } - rangeReader._enqueue(buffer); - return true; - }); - (0, _util.assert)(found); - } - }, - _onProgress: function PDFDataTransportStream_onDataProgress(evt) { - if (this._rangeReaders.length > 0) { - var firstReader = this._rangeReaders[0]; - if (firstReader.onProgress) { - firstReader.onProgress({ loaded: evt.loaded }); - } - } - }, - _removeRangeReader: function PDFDataTransportStream_removeRangeReader(reader) { - var i = this._rangeReaders.indexOf(reader); - if (i >= 0) { - this._rangeReaders.splice(i, 1); - } - }, - getFullReader: function PDFDataTransportStream_getFullReader() { - (0, _util.assert)(!this._fullRequestReader); - var queuedChunks = this._queuedChunks; - this._queuedChunks = null; - return new PDFDataTransportStreamReader(this, queuedChunks); - }, - getRangeReader: function PDFDataTransportStream_getRangeReader(begin, end) { - var reader = new PDFDataTransportStreamRangeReader(this, begin, end); - this._pdfDataRangeTransport.requestDataRange(begin, end); - this._rangeReaders.push(reader); - return reader; - }, - cancelAllRequests: function PDFDataTransportStream_cancelAllRequests(reason) { - if (this._fullRequestReader) { - this._fullRequestReader.cancel(reason); + + _createClass(SquigglyAnnotationElement, [{ + key: 'render', + value: function render() { + this.container.className = 'squigglyAnnotation'; + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); } - var readers = this._rangeReaders.slice(0); - readers.forEach(function (rangeReader) { - rangeReader.cancel(reason); - }); - this._pdfDataRangeTransport.abort(); + return this.container; } - }; - function PDFDataTransportStreamReader(stream, queuedChunks) { - this._stream = stream; - this._done = false; - this._filename = null; - this._queuedChunks = queuedChunks || []; - this._requests = []; - this._headersReady = Promise.resolve(); - stream._fullRequestReader = this; - this.onProgress = null; + }]); + + return SquigglyAnnotationElement; +}(AnnotationElement); + +var StrikeOutAnnotationElement = function (_AnnotationElement12) { + _inherits(StrikeOutAnnotationElement, _AnnotationElement12); + + function StrikeOutAnnotationElement(parameters) { + _classCallCheck(this, StrikeOutAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, (StrikeOutAnnotationElement.__proto__ || Object.getPrototypeOf(StrikeOutAnnotationElement)).call(this, parameters, isRenderable, true)); } - PDFDataTransportStreamReader.prototype = { - _enqueue: function PDFDataTransportStreamReader_enqueue(chunk) { - if (this._done) { - return; - } - if (this._requests.length > 0) { - var requestCapability = this._requests.shift(); - requestCapability.resolve({ - value: chunk, - done: false - }); - return; + + _createClass(StrikeOutAnnotationElement, [{ + key: 'render', + value: function render() { + this.container.className = 'strikeoutAnnotation'; + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); } - this._queuedChunks.push(chunk); - }, - get headersReady() { - return this._headersReady; - }, - get filename() { - return this._filename; - }, - get isRangeSupported() { - return this._stream._isRangeSupported; - }, - get isStreamingSupported() { - return this._stream._isStreamingSupported; - }, - get contentLength() { - return this._stream._contentLength; - }, - read: function PDFDataTransportStreamReader_read() { - if (this._queuedChunks.length > 0) { - var chunk = this._queuedChunks.shift(); - return Promise.resolve({ - value: chunk, - done: false - }); + return this.container; + } + }]); + + return StrikeOutAnnotationElement; +}(AnnotationElement); + +var StampAnnotationElement = function (_AnnotationElement13) { + _inherits(StampAnnotationElement, _AnnotationElement13); + + function StampAnnotationElement(parameters) { + _classCallCheck(this, StampAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, (StampAnnotationElement.__proto__ || Object.getPrototypeOf(StampAnnotationElement)).call(this, parameters, isRenderable, true)); + } + + _createClass(StampAnnotationElement, [{ + key: 'render', + value: function render() { + this.container.className = 'stampAnnotation'; + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); } - if (this._done) { - return Promise.resolve({ - value: undefined, - done: true - }); + return this.container; + } + }]); + + return StampAnnotationElement; +}(AnnotationElement); + +var FileAttachmentAnnotationElement = function (_AnnotationElement14) { + _inherits(FileAttachmentAnnotationElement, _AnnotationElement14); + + function FileAttachmentAnnotationElement(parameters) { + _classCallCheck(this, FileAttachmentAnnotationElement); + + var _this22 = _possibleConstructorReturn(this, (FileAttachmentAnnotationElement.__proto__ || Object.getPrototypeOf(FileAttachmentAnnotationElement)).call(this, parameters, true)); + + var file = _this22.data.file; + _this22.filename = (0, _dom_utils.getFilenameFromUrl)(file.filename); + _this22.content = file.content; + _this22.linkService.onFileAttachmentAnnotation({ + id: (0, _util.stringToPDFString)(file.filename), + filename: file.filename, + content: file.content + }); + return _this22; + } + + _createClass(FileAttachmentAnnotationElement, [{ + key: 'render', + value: function render() { + this.container.className = 'fileAttachmentAnnotation'; + var trigger = document.createElement('div'); + trigger.style.height = this.container.style.height; + trigger.style.width = this.container.style.width; + trigger.addEventListener('dblclick', this._download.bind(this)); + if (!this.data.hasPopup && (this.data.title || this.data.contents)) { + this._createPopup(this.container, trigger, this.data); } - var requestCapability = (0, _util.createPromiseCapability)(); - this._requests.push(requestCapability); - return requestCapability.promise; - }, - cancel: function PDFDataTransportStreamReader_cancel(reason) { - this._done = true; - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); - }); - this._requests = []; + this.container.appendChild(trigger); + return this.container; } - }; - function PDFDataTransportStreamRangeReader(stream, begin, end) { - this._stream = stream; - this._begin = begin; - this._end = end; - this._queuedChunk = null; - this._requests = []; - this._done = false; - this.onProgress = null; - } - PDFDataTransportStreamRangeReader.prototype = { - _enqueue: function PDFDataTransportStreamRangeReader_enqueue(chunk) { - if (this._done) { + }, { + key: '_download', + value: function _download() { + if (!this.downloadManager) { + (0, _util.warn)('Download cannot be started due to unavailable download manager'); return; } - if (this._requests.length === 0) { - this._queuedChunk = chunk; - } else { - var requestsCapability = this._requests.shift(); - requestsCapability.resolve({ - value: chunk, - done: false - }); - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); - }); - this._requests = []; - } - this._done = true; - this._stream._removeRangeReader(this); - }, - get isStreamingSupported() { - return false; - }, - read: function PDFDataTransportStreamRangeReader_read() { - if (this._queuedChunk) { - var chunk = this._queuedChunk; - this._queuedChunk = null; - return Promise.resolve({ - value: chunk, - done: false + this.downloadManager.downloadData(this.content, this.filename, ''); + } + }]); + + return FileAttachmentAnnotationElement; +}(AnnotationElement); + +var AnnotationLayer = function () { + function AnnotationLayer() { + _classCallCheck(this, AnnotationLayer); + } + + _createClass(AnnotationLayer, null, [{ + key: 'render', + value: function render(parameters) { + for (var i = 0, ii = parameters.annotations.length; i < ii; i++) { + var data = parameters.annotations[i]; + if (!data) { + continue; + } + var element = AnnotationElementFactory.create({ + data: data, + layer: parameters.div, + page: parameters.page, + viewport: parameters.viewport, + linkService: parameters.linkService, + downloadManager: parameters.downloadManager, + imageResourcesPath: parameters.imageResourcesPath || '', + renderInteractiveForms: parameters.renderInteractiveForms || false, + svgFactory: new _dom_utils.DOMSVGFactory() }); + if (element.isRenderable) { + parameters.div.appendChild(element.render()); + } } - if (this._done) { - return Promise.resolve({ - value: undefined, - done: true - }); + } + }, { + key: 'update', + value: function update(parameters) { + for (var i = 0, ii = parameters.annotations.length; i < ii; i++) { + var data = parameters.annotations[i]; + var element = parameters.div.querySelector('[data-annotation-id="' + data.id + '"]'); + if (element) { + element.style.transform = 'matrix(' + parameters.viewport.transform.join(',') + ')'; + } } - var requestCapability = (0, _util.createPromiseCapability)(); - this._requests.push(requestCapability); - return requestCapability.promise; - }, - cancel: function PDFDataTransportStreamRangeReader_cancel(reason) { - this._done = true; - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); - }); - this._requests = []; - this._stream._removeRangeReader(this); + parameters.div.removeAttribute('hidden'); } - }; - return PDFDataTransportStream; + }]); + + return AnnotationLayer; }(); -exports.PDFDataTransportStream = PDFDataTransportStream; + +exports.AnnotationLayer = AnnotationLayer; /***/ }), /* 126 */ @@ -15453,409 +14773,1041 @@ exports.PDFDataTransportStream = PDFDataTransportStream; Object.defineProperty(exports, "__esModule", { value: true }); -exports.WebGLContext = undefined; - -var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); +exports.SVGGraphics = undefined; var _util = __w_pdfjs_require__(0); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var WebGLContext = function () { - function WebGLContext(_ref) { - var _ref$enable = _ref.enable, - enable = _ref$enable === undefined ? false : _ref$enable; - - _classCallCheck(this, WebGLContext); +var _dom_utils = __w_pdfjs_require__(18); - this._enabled = enable === true; - } +var _is_node = __w_pdfjs_require__(25); - _createClass(WebGLContext, [{ - key: 'composeSMask', - value: function composeSMask(_ref2) { - var layer = _ref2.layer, - mask = _ref2.mask, - properties = _ref2.properties; +var _is_node2 = _interopRequireDefault(_is_node); - return WebGLUtils.composeSMask(layer, mask, properties); - } - }, { - key: 'drawFigures', - value: function drawFigures(_ref3) { - var width = _ref3.width, - height = _ref3.height, - backgroundColor = _ref3.backgroundColor, - figures = _ref3.figures, - context = _ref3.context; +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context); - } - }, { - key: 'clear', - value: function clear() { - WebGLUtils.cleanup(); +var SVGGraphics = function SVGGraphics() { + throw new Error('Not implemented: SVGGraphics'); +}; +{ + var SVG_DEFAULTS = { + fontStyle: 'normal', + fontWeight: 'normal', + fillColor: '#000000' + }; + var convertImgDataToPng = function convertImgDataToPngClosure() { + var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); + var CHUNK_WRAPPER_SIZE = 12; + var crcTable = new Int32Array(256); + for (var i = 0; i < 256; i++) { + var c = i; + for (var h = 0; h < 8; h++) { + if (c & 1) { + c = 0xedB88320 ^ c >> 1 & 0x7fffffff; + } else { + c = c >> 1 & 0x7fffffff; + } + } + crcTable[i] = c; } - }, { - key: 'isEnabled', - get: function get() { - var enabled = this._enabled; - if (enabled) { - enabled = WebGLUtils.tryInitGL(); + function crc32(data, start, end) { + var crc = -1; + for (var i = start; i < end; i++) { + var a = (crc ^ data[i]) & 0xff; + var b = crcTable[a]; + crc = crc >>> 8 ^ b; } - return (0, _util.shadow)(this, 'isEnabled', enabled); + return crc ^ -1; } - }]); - - return WebGLContext; -}(); - -var WebGLUtils = function WebGLUtilsClosure() { - function loadShader(gl, code, shaderType) { - var shader = gl.createShader(shaderType); - gl.shaderSource(shader, code); - gl.compileShader(shader); - var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS); - if (!compiled) { - var errorMsg = gl.getShaderInfoLog(shader); - throw new Error('Error during shader compilation: ' + errorMsg); + function writePngChunk(type, body, data, offset) { + var p = offset; + var len = body.length; + data[p] = len >> 24 & 0xff; + data[p + 1] = len >> 16 & 0xff; + data[p + 2] = len >> 8 & 0xff; + data[p + 3] = len & 0xff; + p += 4; + data[p] = type.charCodeAt(0) & 0xff; + data[p + 1] = type.charCodeAt(1) & 0xff; + data[p + 2] = type.charCodeAt(2) & 0xff; + data[p + 3] = type.charCodeAt(3) & 0xff; + p += 4; + data.set(body, p); + p += body.length; + var crc = crc32(data, offset + 4, p); + data[p] = crc >> 24 & 0xff; + data[p + 1] = crc >> 16 & 0xff; + data[p + 2] = crc >> 8 & 0xff; + data[p + 3] = crc & 0xff; } - return shader; - } - function createVertexShader(gl, code) { - return loadShader(gl, code, gl.VERTEX_SHADER); - } - function createFragmentShader(gl, code) { - return loadShader(gl, code, gl.FRAGMENT_SHADER); - } - function createProgram(gl, shaders) { - var program = gl.createProgram(); - for (var i = 0, ii = shaders.length; i < ii; ++i) { - gl.attachShader(program, shaders[i]); + function adler32(data, start, end) { + var a = 1; + var b = 0; + for (var i = start; i < end; ++i) { + a = (a + (data[i] & 0xff)) % 65521; + b = (b + a) % 65521; + } + return b << 16 | a; } - gl.linkProgram(program); - var linked = gl.getProgramParameter(program, gl.LINK_STATUS); - if (!linked) { - var errorMsg = gl.getProgramInfoLog(program); - throw new Error('Error during program linking: ' + errorMsg); + function deflateSync(literals) { + if (!(0, _is_node2.default)()) { + return deflateSyncUncompressed(literals); + } + try { + var input; + if (parseInt(process.versions.node) >= 8) { + input = literals; + } else { + input = new Buffer(literals); + } + var output = require('zlib').deflateSync(input, { level: 9 }); + return output instanceof Uint8Array ? output : new Uint8Array(output); + } catch (e) { + (0, _util.warn)('Not compressing PNG because zlib.deflateSync is unavailable: ' + e); + } + return deflateSyncUncompressed(literals); } - return program; - } - function createTexture(gl, image, textureId) { - gl.activeTexture(textureId); - var texture = gl.createTexture(); - gl.bindTexture(gl.TEXTURE_2D, texture); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); - gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image); - return texture; - } - var currentGL, currentCanvas; - function generateGL() { - if (currentGL) { - return; + function deflateSyncUncompressed(literals) { + var len = literals.length; + var maxBlockLength = 0xFFFF; + var deflateBlocks = Math.ceil(len / maxBlockLength); + var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4); + var pi = 0; + idat[pi++] = 0x78; + idat[pi++] = 0x9c; + var pos = 0; + while (len > maxBlockLength) { + idat[pi++] = 0x00; + idat[pi++] = 0xff; + idat[pi++] = 0xff; + idat[pi++] = 0x00; + idat[pi++] = 0x00; + idat.set(literals.subarray(pos, pos + maxBlockLength), pi); + pi += maxBlockLength; + pos += maxBlockLength; + len -= maxBlockLength; + } + idat[pi++] = 0x01; + idat[pi++] = len & 0xff; + idat[pi++] = len >> 8 & 0xff; + idat[pi++] = ~len & 0xffff & 0xff; + idat[pi++] = (~len & 0xffff) >> 8 & 0xff; + idat.set(literals.subarray(pos), pi); + pi += literals.length - pos; + var adler = adler32(literals, 0, literals.length); + idat[pi++] = adler >> 24 & 0xff; + idat[pi++] = adler >> 16 & 0xff; + idat[pi++] = adler >> 8 & 0xff; + idat[pi++] = adler & 0xff; + return idat; } - currentCanvas = document.createElement('canvas'); - currentGL = currentCanvas.getContext('webgl', { premultipliedalpha: false }); - } - var smaskVertexShaderCode = '\ - attribute vec2 a_position; \ - attribute vec2 a_texCoord; \ - \ - uniform vec2 u_resolution; \ - \ - varying vec2 v_texCoord; \ - \ - void main() { \ - vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \ - gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ - \ - v_texCoord = a_texCoord; \ - } '; - var smaskFragmentShaderCode = '\ - precision mediump float; \ - \ - uniform vec4 u_backdrop; \ - uniform int u_subtype; \ - uniform sampler2D u_image; \ - uniform sampler2D u_mask; \ - \ - varying vec2 v_texCoord; \ - \ - void main() { \ - vec4 imageColor = texture2D(u_image, v_texCoord); \ - vec4 maskColor = texture2D(u_mask, v_texCoord); \ - if (u_backdrop.a > 0.0) { \ - maskColor.rgb = maskColor.rgb * maskColor.a + \ - u_backdrop.rgb * (1.0 - maskColor.a); \ - } \ - float lum; \ - if (u_subtype == 0) { \ - lum = maskColor.a; \ - } else { \ - lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \ - maskColor.b * 0.11; \ - } \ - imageColor.a *= lum; \ - imageColor.rgb *= imageColor.a; \ - gl_FragColor = imageColor; \ - } '; - var smaskCache = null; - function initSmaskGL() { - var canvas, gl; - generateGL(); - canvas = currentCanvas; - currentCanvas = null; - gl = currentGL; - currentGL = null; - var vertexShader = createVertexShader(gl, smaskVertexShaderCode); - var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode); - var program = createProgram(gl, [vertexShader, fragmentShader]); - gl.useProgram(program); - var cache = {}; - cache.gl = gl; - cache.canvas = canvas; - cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); - cache.positionLocation = gl.getAttribLocation(program, 'a_position'); - cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop'); - cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype'); - var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord'); - var texLayerLocation = gl.getUniformLocation(program, 'u_image'); - var texMaskLocation = gl.getUniformLocation(program, 'u_mask'); - var texCoordBuffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer); - 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); - gl.enableVertexAttribArray(texCoordLocation); - gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0); - gl.uniform1i(texLayerLocation, 0); - gl.uniform1i(texMaskLocation, 1); - smaskCache = cache; - } - function composeSMask(layer, mask, properties) { - var width = layer.width, - height = layer.height; - if (!smaskCache) { - initSmaskGL(); + function encode(imgData, kind, forceDataSchema, isMask) { + var width = imgData.width; + var height = imgData.height; + var bitDepth, colorType, lineSize; + var bytes = imgData.data; + switch (kind) { + case _util.ImageKind.GRAYSCALE_1BPP: + colorType = 0; + bitDepth = 1; + lineSize = width + 7 >> 3; + break; + case _util.ImageKind.RGB_24BPP: + colorType = 2; + bitDepth = 8; + lineSize = width * 3; + break; + case _util.ImageKind.RGBA_32BPP: + colorType = 6; + bitDepth = 8; + lineSize = width * 4; + break; + default: + throw new Error('invalid format'); + } + var literals = new Uint8Array((1 + lineSize) * height); + var offsetLiterals = 0, + offsetBytes = 0; + var y, i; + for (y = 0; y < height; ++y) { + literals[offsetLiterals++] = 0; + literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals); + offsetBytes += lineSize; + offsetLiterals += lineSize; + } + if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) { + offsetLiterals = 0; + for (y = 0; y < height; y++) { + offsetLiterals++; + for (i = 0; i < lineSize; i++) { + literals[offsetLiterals++] ^= 0xFF; + } + } + } + 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]); + var idat = deflateSync(literals); + var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length; + var data = new Uint8Array(pngLength); + var offset = 0; + data.set(PNG_HEADER, offset); + offset += PNG_HEADER.length; + writePngChunk('IHDR', ihdr, data, offset); + offset += CHUNK_WRAPPER_SIZE + ihdr.length; + writePngChunk('IDATA', idat, data, offset); + offset += CHUNK_WRAPPER_SIZE + idat.length; + writePngChunk('IEND', new Uint8Array(0), data, offset); + return (0, _util.createObjectURL)(data, 'image/png', forceDataSchema); + } + return function convertImgDataToPng(imgData, forceDataSchema, isMask) { + var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind; + return encode(imgData, kind, forceDataSchema, isMask); + }; + }(); + var SVGExtraState = function SVGExtraStateClosure() { + function SVGExtraState() { + this.fontSizeScale = 1; + this.fontWeight = SVG_DEFAULTS.fontWeight; + this.fontSize = 0; + this.textMatrix = _util.IDENTITY_MATRIX; + this.fontMatrix = _util.FONT_IDENTITY_MATRIX; + this.leading = 0; + this.x = 0; + this.y = 0; + this.lineX = 0; + this.lineY = 0; + this.charSpacing = 0; + this.wordSpacing = 0; + this.textHScale = 1; + this.textRise = 0; + this.fillColor = SVG_DEFAULTS.fillColor; + this.strokeColor = '#000000'; + this.fillAlpha = 1; + this.strokeAlpha = 1; + this.lineWidth = 1; + this.lineJoin = ''; + this.lineCap = ''; + this.miterLimit = 0; + this.dashArray = []; + this.dashPhase = 0; + this.dependencies = []; + this.activeClipUrl = null; + this.clipGroup = null; + this.maskId = ''; } - var cache = smaskCache, - canvas = cache.canvas, - gl = cache.gl; - canvas.width = width; - canvas.height = height; - gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); - gl.uniform2f(cache.resolutionLocation, width, height); - if (properties.backdrop) { - gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1); - } else { - gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0); + SVGExtraState.prototype = { + clone: function SVGExtraState_clone() { + return Object.create(this); + }, + setCurrentPoint: function SVGExtraState_setCurrentPoint(x, y) { + this.x = x; + this.y = y; + } + }; + return SVGExtraState; + }(); + exports.SVGGraphics = SVGGraphics = function SVGGraphicsClosure() { + function opListToTree(opList) { + var opTree = []; + var tmp = []; + var opListLen = opList.length; + for (var x = 0; x < opListLen; x++) { + if (opList[x].fn === 'save') { + opTree.push({ + 'fnId': 92, + 'fn': 'group', + 'items': [] + }); + tmp.push(opTree); + opTree = opTree[opTree.length - 1].items; + continue; + } + if (opList[x].fn === 'restore') { + opTree = tmp.pop(); + } else { + opTree.push(opList[x]); + } + } + return opTree; } - gl.uniform1i(cache.subtypeLocation, properties.subtype === 'Luminosity' ? 1 : 0); - var texture = createTexture(gl, layer, gl.TEXTURE0); - var maskTexture = createTexture(gl, mask, gl.TEXTURE1); - var buffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, buffer); - gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW); - gl.enableVertexAttribArray(cache.positionLocation); - gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); - gl.clearColor(0, 0, 0, 0); - gl.enable(gl.BLEND); - gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); - gl.clear(gl.COLOR_BUFFER_BIT); - gl.drawArrays(gl.TRIANGLES, 0, 6); - gl.flush(); - gl.deleteTexture(texture); - gl.deleteTexture(maskTexture); - gl.deleteBuffer(buffer); - return canvas; - } - var figuresVertexShaderCode = '\ - attribute vec2 a_position; \ - attribute vec3 a_color; \ - \ - uniform vec2 u_resolution; \ - uniform vec2 u_scale; \ - uniform vec2 u_offset; \ - \ - varying vec4 v_color; \ - \ - void main() { \ - vec2 position = (a_position + u_offset) * u_scale; \ - vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \ - gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ - \ - v_color = vec4(a_color / 255.0, 1.0); \ - } '; - var figuresFragmentShaderCode = '\ - precision mediump float; \ - \ - varying vec4 v_color; \ - \ - void main() { \ - gl_FragColor = v_color; \ - } '; - var figuresCache = null; - function initFiguresGL() { - var canvas, gl; - generateGL(); - canvas = currentCanvas; - currentCanvas = null; - gl = currentGL; - currentGL = null; - var vertexShader = createVertexShader(gl, figuresVertexShaderCode); - var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode); - var program = createProgram(gl, [vertexShader, fragmentShader]); - gl.useProgram(program); - var cache = {}; - cache.gl = gl; - cache.canvas = canvas; - cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); - cache.scaleLocation = gl.getUniformLocation(program, 'u_scale'); - cache.offsetLocation = gl.getUniformLocation(program, 'u_offset'); - cache.positionLocation = gl.getAttribLocation(program, 'a_position'); - cache.colorLocation = gl.getAttribLocation(program, 'a_color'); - figuresCache = cache; - } - function drawFigures(width, height, backgroundColor, figures, context) { - if (!figuresCache) { - initFiguresGL(); + function pf(value) { + if (Number.isInteger(value)) { + return value.toString(); + } + var s = value.toFixed(10); + var i = s.length - 1; + if (s[i] !== '0') { + return s; + } + do { + i--; + } while (s[i] === '0'); + return s.substr(0, s[i] === '.' ? i : i + 1); } - var cache = figuresCache, - canvas = cache.canvas, - gl = cache.gl; - canvas.width = width; - canvas.height = height; - gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); - gl.uniform2f(cache.resolutionLocation, width, height); - var count = 0; - var i, ii, rows; - for (i = 0, ii = figures.length; i < ii; i++) { - switch (figures[i].type) { - case 'lattice': - rows = figures[i].coords.length / figures[i].verticesPerRow | 0; - count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6; - break; - case 'triangles': - count += figures[i].coords.length; - break; + function pm(m) { + if (m[4] === 0 && m[5] === 0) { + if (m[1] === 0 && m[2] === 0) { + if (m[0] === 1 && m[3] === 1) { + return ''; + } + return 'scale(' + pf(m[0]) + ' ' + pf(m[3]) + ')'; + } + if (m[0] === m[3] && m[1] === -m[2]) { + var a = Math.acos(m[0]) * 180 / Math.PI; + return 'rotate(' + pf(a) + ')'; + } + } else { + if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) { + return 'translate(' + pf(m[4]) + ' ' + pf(m[5]) + ')'; + } } + return 'matrix(' + pf(m[0]) + ' ' + pf(m[1]) + ' ' + pf(m[2]) + ' ' + pf(m[3]) + ' ' + pf(m[4]) + ' ' + pf(m[5]) + ')'; } - var coords = new Float32Array(count * 2); - var colors = new Uint8Array(count * 3); - var coordsMap = context.coords, - colorsMap = context.colors; - var pIndex = 0, - cIndex = 0; - for (i = 0, ii = figures.length; i < ii; i++) { - var figure = figures[i], - ps = figure.coords, - cs = figure.colors; - switch (figure.type) { - case 'lattice': - var cols = figure.verticesPerRow; - rows = ps.length / cols | 0; - for (var row = 1; row < rows; row++) { - var offset = row * cols + 1; - for (var col = 1; col < cols; col++, offset++) { - coords[pIndex] = coordsMap[ps[offset - cols - 1]]; - coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1]; - coords[pIndex + 2] = coordsMap[ps[offset - cols]]; - coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1]; - coords[pIndex + 4] = coordsMap[ps[offset - 1]]; - coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1]; - colors[cIndex] = colorsMap[cs[offset - cols - 1]]; - colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1]; - colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2]; - colors[cIndex + 3] = colorsMap[cs[offset - cols]]; - colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1]; - colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2]; - colors[cIndex + 6] = colorsMap[cs[offset - 1]]; - colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1]; - colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2]; - coords[pIndex + 6] = coords[pIndex + 2]; - coords[pIndex + 7] = coords[pIndex + 3]; - coords[pIndex + 8] = coords[pIndex + 4]; - coords[pIndex + 9] = coords[pIndex + 5]; - coords[pIndex + 10] = coordsMap[ps[offset]]; - coords[pIndex + 11] = coordsMap[ps[offset] + 1]; - colors[cIndex + 9] = colors[cIndex + 3]; - colors[cIndex + 10] = colors[cIndex + 4]; - colors[cIndex + 11] = colors[cIndex + 5]; - colors[cIndex + 12] = colors[cIndex + 6]; - colors[cIndex + 13] = colors[cIndex + 7]; - colors[cIndex + 14] = colors[cIndex + 8]; - colors[cIndex + 15] = colorsMap[cs[offset]]; - colors[cIndex + 16] = colorsMap[cs[offset] + 1]; - colors[cIndex + 17] = colorsMap[cs[offset] + 2]; - pIndex += 12; - cIndex += 18; + function SVGGraphics(commonObjs, objs, forceDataSchema) { + this.svgFactory = new _dom_utils.DOMSVGFactory(); + this.current = new SVGExtraState(); + this.transformMatrix = _util.IDENTITY_MATRIX; + this.transformStack = []; + this.extraStack = []; + this.commonObjs = commonObjs; + this.objs = objs; + this.pendingClip = null; + this.pendingEOFill = false; + this.embedFonts = false; + this.embeddedFonts = Object.create(null); + this.cssStyle = null; + this.forceDataSchema = !!forceDataSchema; + } + var XML_NS = 'http://www.w3.org/XML/1998/namespace'; + var XLINK_NS = 'http://www.w3.org/1999/xlink'; + var LINE_CAP_STYLES = ['butt', 'round', 'square']; + var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; + var clipCount = 0; + var maskCount = 0; + SVGGraphics.prototype = { + save: function SVGGraphics_save() { + this.transformStack.push(this.transformMatrix); + var old = this.current; + this.extraStack.push(old); + this.current = old.clone(); + }, + restore: function SVGGraphics_restore() { + this.transformMatrix = this.transformStack.pop(); + this.current = this.extraStack.pop(); + this.pendingClip = null; + this.tgrp = null; + }, + group: function SVGGraphics_group(items) { + this.save(); + this.executeOpTree(items); + this.restore(); + }, + loadDependencies: function SVGGraphics_loadDependencies(operatorList) { + var _this = this; + + var fnArray = operatorList.fnArray; + var fnArrayLen = fnArray.length; + var argsArray = operatorList.argsArray; + for (var i = 0; i < fnArrayLen; i++) { + if (_util.OPS.dependency === fnArray[i]) { + var deps = argsArray[i]; + for (var n = 0, nn = deps.length; n < nn; n++) { + var obj = deps[n]; + var common = obj.substring(0, 2) === 'g_'; + var promise; + if (common) { + promise = new Promise(function (resolve) { + _this.commonObjs.get(obj, resolve); + }); + } else { + promise = new Promise(function (resolve) { + _this.objs.get(obj, resolve); + }); + } + this.current.dependencies.push(promise); } } - break; - case 'triangles': - for (var j = 0, jj = ps.length; j < jj; j++) { - coords[pIndex] = coordsMap[ps[j]]; - coords[pIndex + 1] = coordsMap[ps[j] + 1]; - colors[cIndex] = colorsMap[cs[j]]; - colors[cIndex + 1] = colorsMap[cs[j] + 1]; - colors[cIndex + 2] = colorsMap[cs[j] + 2]; - pIndex += 2; - cIndex += 3; + } + return Promise.all(this.current.dependencies); + }, + transform: function SVGGraphics_transform(a, b, c, d, e, f) { + var transformMatrix = [a, b, c, d, e, f]; + this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix); + this.tgrp = null; + }, + getSVG: function SVGGraphics_getSVG(operatorList, viewport) { + var _this2 = this; + + this.viewport = viewport; + var svgElement = this._initialize(viewport); + return this.loadDependencies(operatorList).then(function () { + _this2.transformMatrix = _util.IDENTITY_MATRIX; + var opTree = _this2.convertOpList(operatorList); + _this2.executeOpTree(opTree); + return svgElement; + }); + }, + convertOpList: function SVGGraphics_convertOpList(operatorList) { + var argsArray = operatorList.argsArray; + var fnArray = operatorList.fnArray; + var fnArrayLen = fnArray.length; + var REVOPS = []; + var opList = []; + for (var op in _util.OPS) { + REVOPS[_util.OPS[op]] = op; + } + for (var x = 0; x < fnArrayLen; x++) { + var fnId = fnArray[x]; + opList.push({ + 'fnId': fnId, + 'fn': REVOPS[fnId], + 'args': argsArray[x] + }); + } + return opListToTree(opList); + }, + executeOpTree: function SVGGraphics_executeOpTree(opTree) { + var opTreeLen = opTree.length; + for (var x = 0; x < opTreeLen; x++) { + var fn = opTree[x].fn; + var fnId = opTree[x].fnId; + var args = opTree[x].args; + switch (fnId | 0) { + case _util.OPS.beginText: + this.beginText(); + break; + case _util.OPS.setLeading: + this.setLeading(args); + break; + case _util.OPS.setLeadingMoveText: + this.setLeadingMoveText(args[0], args[1]); + break; + case _util.OPS.setFont: + this.setFont(args); + break; + case _util.OPS.showText: + this.showText(args[0]); + break; + case _util.OPS.showSpacedText: + this.showText(args[0]); + break; + case _util.OPS.endText: + this.endText(); + break; + case _util.OPS.moveText: + this.moveText(args[0], args[1]); + break; + case _util.OPS.setCharSpacing: + this.setCharSpacing(args[0]); + break; + case _util.OPS.setWordSpacing: + this.setWordSpacing(args[0]); + break; + case _util.OPS.setHScale: + this.setHScale(args[0]); + break; + case _util.OPS.setTextMatrix: + this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); + break; + case _util.OPS.setTextRise: + this.setTextRise(args[0]); + break; + case _util.OPS.setLineWidth: + this.setLineWidth(args[0]); + break; + case _util.OPS.setLineJoin: + this.setLineJoin(args[0]); + break; + case _util.OPS.setLineCap: + this.setLineCap(args[0]); + break; + case _util.OPS.setMiterLimit: + this.setMiterLimit(args[0]); + break; + case _util.OPS.setFillRGBColor: + this.setFillRGBColor(args[0], args[1], args[2]); + break; + case _util.OPS.setStrokeRGBColor: + this.setStrokeRGBColor(args[0], args[1], args[2]); + break; + case _util.OPS.setDash: + this.setDash(args[0], args[1]); + break; + case _util.OPS.setGState: + this.setGState(args[0]); + break; + case _util.OPS.fill: + this.fill(); + break; + case _util.OPS.eoFill: + this.eoFill(); + break; + case _util.OPS.stroke: + this.stroke(); + break; + case _util.OPS.fillStroke: + this.fillStroke(); + break; + case _util.OPS.eoFillStroke: + this.eoFillStroke(); + break; + case _util.OPS.clip: + this.clip('nonzero'); + break; + case _util.OPS.eoClip: + this.clip('evenodd'); + break; + case _util.OPS.paintSolidColorImageMask: + this.paintSolidColorImageMask(); + break; + case _util.OPS.paintJpegXObject: + this.paintJpegXObject(args[0], args[1], args[2]); + break; + case _util.OPS.paintImageXObject: + this.paintImageXObject(args[0]); + break; + case _util.OPS.paintInlineImageXObject: + this.paintInlineImageXObject(args[0]); + break; + case _util.OPS.paintImageMaskXObject: + this.paintImageMaskXObject(args[0]); + break; + case _util.OPS.paintFormXObjectBegin: + this.paintFormXObjectBegin(args[0], args[1]); + break; + case _util.OPS.paintFormXObjectEnd: + this.paintFormXObjectEnd(); + break; + case _util.OPS.closePath: + this.closePath(); + break; + case _util.OPS.closeStroke: + this.closeStroke(); + break; + case _util.OPS.closeFillStroke: + this.closeFillStroke(); + break; + case _util.OPS.closeEOFillStroke: + this.closeEOFillStroke(); + break; + case _util.OPS.nextLine: + this.nextLine(); + break; + case _util.OPS.transform: + this.transform(args[0], args[1], args[2], args[3], args[4], args[5]); + break; + case _util.OPS.constructPath: + this.constructPath(args[0], args[1]); + break; + case _util.OPS.endPath: + this.endPath(); + break; + case 92: + this.group(opTree[x].items); + break; + default: + (0, _util.warn)('Unimplemented operator ' + fn); + break; + } + } + }, + setWordSpacing: function SVGGraphics_setWordSpacing(wordSpacing) { + this.current.wordSpacing = wordSpacing; + }, + setCharSpacing: function SVGGraphics_setCharSpacing(charSpacing) { + this.current.charSpacing = charSpacing; + }, + nextLine: function SVGGraphics_nextLine() { + this.moveText(0, this.current.leading); + }, + setTextMatrix: function SVGGraphics_setTextMatrix(a, b, c, d, e, f) { + var current = this.current; + this.current.textMatrix = this.current.lineMatrix = [a, b, c, d, e, f]; + this.current.x = this.current.lineX = 0; + this.current.y = this.current.lineY = 0; + current.xcoords = []; + current.tspan = this.svgFactory.createElement('svg:tspan'); + current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); + current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px'); + current.tspan.setAttributeNS(null, 'y', pf(-current.y)); + current.txtElement = this.svgFactory.createElement('svg:text'); + current.txtElement.appendChild(current.tspan); + }, + beginText: function SVGGraphics_beginText() { + this.current.x = this.current.lineX = 0; + this.current.y = this.current.lineY = 0; + this.current.textMatrix = _util.IDENTITY_MATRIX; + this.current.lineMatrix = _util.IDENTITY_MATRIX; + this.current.tspan = this.svgFactory.createElement('svg:tspan'); + this.current.txtElement = this.svgFactory.createElement('svg:text'); + this.current.txtgrp = this.svgFactory.createElement('svg:g'); + this.current.xcoords = []; + }, + moveText: function SVGGraphics_moveText(x, y) { + var current = this.current; + this.current.x = this.current.lineX += x; + this.current.y = this.current.lineY += y; + current.xcoords = []; + current.tspan = this.svgFactory.createElement('svg:tspan'); + current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); + current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px'); + current.tspan.setAttributeNS(null, 'y', pf(-current.y)); + }, + showText: function SVGGraphics_showText(glyphs) { + var current = this.current; + var font = current.font; + var fontSize = current.fontSize; + if (fontSize === 0) { + return; + } + var charSpacing = current.charSpacing; + var wordSpacing = current.wordSpacing; + var fontDirection = current.fontDirection; + var textHScale = current.textHScale * fontDirection; + var glyphsLength = glyphs.length; + var vertical = font.vertical; + var widthAdvanceScale = fontSize * current.fontMatrix[0]; + var x = 0, + i; + for (i = 0; i < glyphsLength; ++i) { + var glyph = glyphs[i]; + if (glyph === null) { + x += fontDirection * wordSpacing; + continue; + } else if ((0, _util.isNum)(glyph)) { + x += -glyph * fontSize * 0.001; + continue; + } + var width = glyph.width; + var character = glyph.fontChar; + var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + var charWidth = width * widthAdvanceScale + spacing * fontDirection; + if (!glyph.isInFont && !font.missingFile) { + x += charWidth; + continue; + } + current.xcoords.push(current.x + x * textHScale); + current.tspan.textContent += character; + x += charWidth; + } + if (vertical) { + current.y -= x * textHScale; + } else { + current.x += x * textHScale; + } + current.tspan.setAttributeNS(null, 'x', current.xcoords.map(pf).join(' ')); + current.tspan.setAttributeNS(null, 'y', pf(-current.y)); + current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); + current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px'); + if (current.fontStyle !== SVG_DEFAULTS.fontStyle) { + current.tspan.setAttributeNS(null, 'font-style', current.fontStyle); + } + if (current.fontWeight !== SVG_DEFAULTS.fontWeight) { + current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight); + } + if (current.fillColor !== SVG_DEFAULTS.fillColor) { + current.tspan.setAttributeNS(null, 'fill', current.fillColor); + } + var textMatrix = current.textMatrix; + if (current.textRise !== 0) { + textMatrix = textMatrix.slice(); + textMatrix[5] += current.textRise; + } + current.txtElement.setAttributeNS(null, 'transform', pm(textMatrix) + ' scale(1, -1)'); + current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve'); + current.txtElement.appendChild(current.tspan); + current.txtgrp.appendChild(current.txtElement); + this._ensureTransformGroup().appendChild(current.txtElement); + }, + setLeadingMoveText: function SVGGraphics_setLeadingMoveText(x, y) { + this.setLeading(-y); + this.moveText(x, y); + }, + addFontStyle: function SVGGraphics_addFontStyle(fontObj) { + if (!this.cssStyle) { + this.cssStyle = this.svgFactory.createElement('svg:style'); + this.cssStyle.setAttributeNS(null, 'type', 'text/css'); + this.defs.appendChild(this.cssStyle); + } + var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema); + this.cssStyle.textContent += '@font-face { font-family: "' + fontObj.loadedName + '";' + ' src: url(' + url + '); }\n'; + }, + setFont: function SVGGraphics_setFont(details) { + var current = this.current; + var fontObj = this.commonObjs.get(details[0]); + var size = details[1]; + this.current.font = fontObj; + if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) { + this.addFontStyle(fontObj); + this.embeddedFonts[fontObj.loadedName] = fontObj; + } + current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; + var bold = fontObj.black ? fontObj.bold ? 'bolder' : 'bold' : fontObj.bold ? 'bold' : 'normal'; + var italic = fontObj.italic ? 'italic' : 'normal'; + if (size < 0) { + size = -size; + current.fontDirection = -1; + } else { + current.fontDirection = 1; + } + current.fontSize = size; + current.fontFamily = fontObj.loadedName; + current.fontWeight = bold; + current.fontStyle = italic; + current.tspan = this.svgFactory.createElement('svg:tspan'); + current.tspan.setAttributeNS(null, 'y', pf(-current.y)); + current.xcoords = []; + }, + endText: function SVGGraphics_endText() {}, + setLineWidth: function SVGGraphics_setLineWidth(width) { + this.current.lineWidth = width; + }, + setLineCap: function SVGGraphics_setLineCap(style) { + this.current.lineCap = LINE_CAP_STYLES[style]; + }, + setLineJoin: function SVGGraphics_setLineJoin(style) { + this.current.lineJoin = LINE_JOIN_STYLES[style]; + }, + setMiterLimit: function SVGGraphics_setMiterLimit(limit) { + this.current.miterLimit = limit; + }, + setStrokeAlpha: function SVGGraphics_setStrokeAlpha(strokeAlpha) { + this.current.strokeAlpha = strokeAlpha; + }, + setStrokeRGBColor: function SVGGraphics_setStrokeRGBColor(r, g, b) { + var color = _util.Util.makeCssRgb(r, g, b); + this.current.strokeColor = color; + }, + setFillAlpha: function SVGGraphics_setFillAlpha(fillAlpha) { + this.current.fillAlpha = fillAlpha; + }, + setFillRGBColor: function SVGGraphics_setFillRGBColor(r, g, b) { + var color = _util.Util.makeCssRgb(r, g, b); + this.current.fillColor = color; + this.current.tspan = this.svgFactory.createElement('svg:tspan'); + this.current.xcoords = []; + }, + setDash: function SVGGraphics_setDash(dashArray, dashPhase) { + this.current.dashArray = dashArray; + this.current.dashPhase = dashPhase; + }, + constructPath: function SVGGraphics_constructPath(ops, args) { + var current = this.current; + var x = current.x, + y = current.y; + current.path = this.svgFactory.createElement('svg:path'); + var d = []; + var opLength = ops.length; + for (var i = 0, j = 0; i < opLength; i++) { + switch (ops[i] | 0) { + case _util.OPS.rectangle: + x = args[j++]; + y = args[j++]; + var width = args[j++]; + var height = args[j++]; + var xw = x + width; + var yh = y + height; + d.push('M', pf(x), pf(y), 'L', pf(xw), pf(y), 'L', pf(xw), pf(yh), 'L', pf(x), pf(yh), 'Z'); + break; + case _util.OPS.moveTo: + x = args[j++]; + y = args[j++]; + d.push('M', pf(x), pf(y)); + break; + case _util.OPS.lineTo: + x = args[j++]; + y = args[j++]; + d.push('L', pf(x), pf(y)); + break; + case _util.OPS.curveTo: + x = args[j + 4]; + y = args[j + 5]; + d.push('C', pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y)); + j += 6; + break; + case _util.OPS.curveTo2: + x = args[j + 2]; + y = args[j + 3]; + d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3])); + j += 4; + break; + case _util.OPS.curveTo3: + x = args[j + 2]; + y = args[j + 3]; + d.push('C', pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y)); + j += 4; + break; + case _util.OPS.closePath: + d.push('Z'); + break; + } + } + current.path.setAttributeNS(null, 'd', d.join(' ')); + current.path.setAttributeNS(null, 'fill', 'none'); + this._ensureTransformGroup().appendChild(current.path); + current.element = current.path; + current.setCurrentPoint(x, y); + }, + endPath: function SVGGraphics_endPath() { + if (!this.pendingClip) { + return; + } + var current = this.current; + var clipId = 'clippath' + clipCount; + clipCount++; + var clipPath = this.svgFactory.createElement('svg:clipPath'); + clipPath.setAttributeNS(null, 'id', clipId); + clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix)); + var clipElement = current.element.cloneNode(); + if (this.pendingClip === 'evenodd') { + clipElement.setAttributeNS(null, 'clip-rule', 'evenodd'); + } else { + clipElement.setAttributeNS(null, 'clip-rule', 'nonzero'); + } + this.pendingClip = null; + clipPath.appendChild(clipElement); + this.defs.appendChild(clipPath); + if (current.activeClipUrl) { + current.clipGroup = null; + this.extraStack.forEach(function (prev) { + prev.clipGroup = null; + }); + } + current.activeClipUrl = 'url(#' + clipId + ')'; + this.tgrp = null; + }, + clip: function SVGGraphics_clip(type) { + this.pendingClip = type; + }, + closePath: function SVGGraphics_closePath() { + var current = this.current; + if (current.path) { + var d = current.path.getAttributeNS(null, 'd'); + d += 'Z'; + current.path.setAttributeNS(null, 'd', d); + } + }, + setLeading: function SVGGraphics_setLeading(leading) { + this.current.leading = -leading; + }, + setTextRise: function SVGGraphics_setTextRise(textRise) { + this.current.textRise = textRise; + }, + setHScale: function SVGGraphics_setHScale(scale) { + this.current.textHScale = scale / 100; + }, + setGState: function SVGGraphics_setGState(states) { + for (var i = 0, ii = states.length; i < ii; i++) { + var state = states[i]; + var key = state[0]; + var value = state[1]; + switch (key) { + case 'LW': + this.setLineWidth(value); + break; + case 'LC': + this.setLineCap(value); + break; + case 'LJ': + this.setLineJoin(value); + break; + case 'ML': + this.setMiterLimit(value); + break; + case 'D': + this.setDash(value[0], value[1]); + break; + case 'Font': + this.setFont(value); + break; + case 'CA': + this.setStrokeAlpha(value); + break; + case 'ca': + this.setFillAlpha(value); + break; + default: + (0, _util.warn)('Unimplemented graphic state ' + key); + break; } - break; - } - } - if (backgroundColor) { - gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0); - } else { - gl.clearColor(0, 0, 0, 0); - } - gl.clear(gl.COLOR_BUFFER_BIT); - var coordsBuffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer); - gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW); - gl.enableVertexAttribArray(cache.positionLocation); - gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); - var colorsBuffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer); - gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW); - gl.enableVertexAttribArray(cache.colorLocation); - gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0); - gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY); - gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY); - gl.drawArrays(gl.TRIANGLES, 0, count); - gl.flush(); - gl.deleteBuffer(coordsBuffer); - gl.deleteBuffer(colorsBuffer); - return canvas; - } - return { - tryInitGL: function tryInitGL() { - try { - generateGL(); - return !!currentGL; - } catch (ex) {} - return false; - }, + } + }, + fill: function SVGGraphics_fill() { + var current = this.current; + if (current.element) { + current.element.setAttributeNS(null, 'fill', current.fillColor); + current.element.setAttributeNS(null, 'fill-opacity', current.fillAlpha); + } + }, + stroke: function SVGGraphics_stroke() { + var current = this.current; + if (current.element) { + current.element.setAttributeNS(null, 'stroke', current.strokeColor); + current.element.setAttributeNS(null, 'stroke-opacity', current.strokeAlpha); + current.element.setAttributeNS(null, 'stroke-miterlimit', pf(current.miterLimit)); + current.element.setAttributeNS(null, 'stroke-linecap', current.lineCap); + current.element.setAttributeNS(null, 'stroke-linejoin', current.lineJoin); + current.element.setAttributeNS(null, 'stroke-width', pf(current.lineWidth) + 'px'); + current.element.setAttributeNS(null, 'stroke-dasharray', current.dashArray.map(pf).join(' ')); + current.element.setAttributeNS(null, 'stroke-dashoffset', pf(current.dashPhase) + 'px'); + current.element.setAttributeNS(null, 'fill', 'none'); + } + }, + eoFill: function SVGGraphics_eoFill() { + if (this.current.element) { + this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); + } + this.fill(); + }, + fillStroke: function SVGGraphics_fillStroke() { + this.stroke(); + this.fill(); + }, + eoFillStroke: function SVGGraphics_eoFillStroke() { + if (this.current.element) { + this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); + } + this.fillStroke(); + }, + closeStroke: function SVGGraphics_closeStroke() { + this.closePath(); + this.stroke(); + }, + closeFillStroke: function SVGGraphics_closeFillStroke() { + this.closePath(); + this.fillStroke(); + }, + closeEOFillStroke: function closeEOFillStroke() { + this.closePath(); + this.eoFillStroke(); + }, - composeSMask: composeSMask, - drawFigures: drawFigures, - cleanup: function cleanup() { - if (smaskCache && smaskCache.canvas) { - smaskCache.canvas.width = 0; - smaskCache.canvas.height = 0; - } - if (figuresCache && figuresCache.canvas) { - figuresCache.canvas.width = 0; - figuresCache.canvas.height = 0; + paintSolidColorImageMask: function SVGGraphics_paintSolidColorImageMask() { + var current = this.current; + var rect = this.svgFactory.createElement('svg:rect'); + rect.setAttributeNS(null, 'x', '0'); + rect.setAttributeNS(null, 'y', '0'); + rect.setAttributeNS(null, 'width', '1px'); + rect.setAttributeNS(null, 'height', '1px'); + rect.setAttributeNS(null, 'fill', current.fillColor); + this._ensureTransformGroup().appendChild(rect); + }, + paintJpegXObject: function SVGGraphics_paintJpegXObject(objId, w, h) { + var imgObj = this.objs.get(objId); + var imgEl = this.svgFactory.createElement('svg:image'); + imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src); + imgEl.setAttributeNS(null, 'width', pf(w)); + imgEl.setAttributeNS(null, 'height', pf(h)); + imgEl.setAttributeNS(null, 'x', '0'); + imgEl.setAttributeNS(null, 'y', pf(-h)); + imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / w) + ' ' + pf(-1 / h) + ')'); + this._ensureTransformGroup().appendChild(imgEl); + }, + paintImageXObject: function SVGGraphics_paintImageXObject(objId) { + var imgData = this.objs.get(objId); + if (!imgData) { + (0, _util.warn)('Dependent image isn\'t ready yet'); + return; + } + this.paintInlineImageXObject(imgData); + }, + paintInlineImageXObject: function SVGGraphics_paintInlineImageXObject(imgData, mask) { + var width = imgData.width; + var height = imgData.height; + var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask); + var cliprect = this.svgFactory.createElement('svg:rect'); + cliprect.setAttributeNS(null, 'x', '0'); + cliprect.setAttributeNS(null, 'y', '0'); + cliprect.setAttributeNS(null, 'width', pf(width)); + cliprect.setAttributeNS(null, 'height', pf(height)); + this.current.element = cliprect; + this.clip('nonzero'); + var imgEl = this.svgFactory.createElement('svg:image'); + imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgSrc); + imgEl.setAttributeNS(null, 'x', '0'); + imgEl.setAttributeNS(null, 'y', pf(-height)); + imgEl.setAttributeNS(null, 'width', pf(width) + 'px'); + imgEl.setAttributeNS(null, 'height', pf(height) + 'px'); + imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / width) + ' ' + pf(-1 / height) + ')'); + if (mask) { + mask.appendChild(imgEl); + } else { + this._ensureTransformGroup().appendChild(imgEl); + } + }, + paintImageMaskXObject: function SVGGraphics_paintImageMaskXObject(imgData) { + var current = this.current; + var width = imgData.width; + var height = imgData.height; + var fillColor = current.fillColor; + current.maskId = 'mask' + maskCount++; + var mask = this.svgFactory.createElement('svg:mask'); + mask.setAttributeNS(null, 'id', current.maskId); + var rect = this.svgFactory.createElement('svg:rect'); + rect.setAttributeNS(null, 'x', '0'); + rect.setAttributeNS(null, 'y', '0'); + rect.setAttributeNS(null, 'width', pf(width)); + rect.setAttributeNS(null, 'height', pf(height)); + rect.setAttributeNS(null, 'fill', fillColor); + rect.setAttributeNS(null, 'mask', 'url(#' + current.maskId + ')'); + this.defs.appendChild(mask); + this._ensureTransformGroup().appendChild(rect); + this.paintInlineImageXObject(imgData, mask); + }, + paintFormXObjectBegin: function SVGGraphics_paintFormXObjectBegin(matrix, bbox) { + if (Array.isArray(matrix) && matrix.length === 6) { + this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]); + } + if (Array.isArray(bbox) && bbox.length === 4) { + var width = bbox[2] - bbox[0]; + var height = bbox[3] - bbox[1]; + var cliprect = this.svgFactory.createElement('svg:rect'); + cliprect.setAttributeNS(null, 'x', bbox[0]); + cliprect.setAttributeNS(null, 'y', bbox[1]); + cliprect.setAttributeNS(null, 'width', pf(width)); + cliprect.setAttributeNS(null, 'height', pf(height)); + this.current.element = cliprect; + this.clip('nonzero'); + this.endPath(); + } + }, + paintFormXObjectEnd: function SVGGraphics_paintFormXObjectEnd() {}, + _initialize: function _initialize(viewport) { + var svg = this.svgFactory.create(viewport.width, viewport.height); + var definitions = this.svgFactory.createElement('svg:defs'); + svg.appendChild(definitions); + this.defs = definitions; + var rootGroup = this.svgFactory.createElement('svg:g'); + rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform)); + svg.appendChild(rootGroup); + this.svg = rootGroup; + return svg; + }, + + _ensureClipGroup: function SVGGraphics_ensureClipGroup() { + if (!this.current.clipGroup) { + var clipGroup = this.svgFactory.createElement('svg:g'); + clipGroup.setAttributeNS(null, 'clip-path', this.current.activeClipUrl); + this.svg.appendChild(clipGroup); + this.current.clipGroup = clipGroup; + } + return this.current.clipGroup; + }, + _ensureTransformGroup: function SVGGraphics_ensureTransformGroup() { + if (!this.tgrp) { + this.tgrp = this.svgFactory.createElement('svg:g'); + this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix)); + if (this.current.activeClipUrl) { + this._ensureClipGroup().appendChild(this.tgrp); + } else { + this.svg.appendChild(this.tgrp); + } + } + return this.tgrp; } - smaskCache = null; - figuresCache = null; - } - }; -}(); -exports.WebGLContext = WebGLContext; + }; + return SVGGraphics; + }(); +} +exports.SVGGraphics = SVGGraphics; /***/ }), /* 127 */ @@ -15873,7 +15825,7 @@ var _createClass = function () { function defineProperties(target, props) { for var _util = __w_pdfjs_require__(0); -var _network_utils = __w_pdfjs_require__(40); +var _network_utils = __w_pdfjs_require__(39); function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } @@ -16488,7 +16440,7 @@ var _createClass = function () { function defineProperties(target, props) { for var _util = __w_pdfjs_require__(0); -var _network_utils = __w_pdfjs_require__(40); +var _network_utils = __w_pdfjs_require__(39); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -16765,9 +16717,9 @@ exports.NetworkManager = exports.PDFNetworkStream = undefined; var _util = __w_pdfjs_require__(0); -var _network_utils = __w_pdfjs_require__(40); +var _network_utils = __w_pdfjs_require__(39); -var _global_scope = __w_pdfjs_require__(15); +var _global_scope = __w_pdfjs_require__(19); var _global_scope2 = _interopRequireDefault(_global_scope); diff --git a/build/pdf.js.map b/build/pdf.js.map index e2b48bc72..dfc0b28af 100644 --- a/build/pdf.js.map +++ b/build/pdf.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 3242075084fdb042a887","webpack:///src/shared/util.js","webpack:///node_modules/core-js/modules/_wks.js","webpack:///node_modules/core-js/modules/_is-object.js","webpack:///node_modules/core-js/modules/_export.js","webpack:///node_modules/core-js/modules/_global.js","webpack:///node_modules/core-js/modules/_core.js","webpack:///node_modules/core-js/modules/_an-object.js","webpack:///node_modules/core-js/modules/_has.js","webpack:///node_modules/core-js/modules/_redefine.js","webpack:///node_modules/core-js/modules/_ctx.js","webpack:///src/display/dom_utils.js","webpack:///node_modules/core-js/modules/_hide.js","webpack:///node_modules/core-js/modules/_descriptors.js","webpack:///node_modules/core-js/modules/_fails.js","webpack:///node_modules/core-js/modules/_cof.js","webpack:///src/shared/global_scope.js","webpack:///node_modules/core-js/modules/_object-dp.js","webpack:///node_modules/core-js/modules/_a-function.js","webpack:///node_modules/core-js/modules/_to-iobject.js","webpack:///node_modules/core-js/modules/_iterators.js","webpack:///node_modules/core-js/modules/_uid.js","webpack:///node_modules/core-js/modules/_defined.js","webpack:///node_modules/core-js/modules/_object-keys.js","webpack:///node_modules/core-js/modules/_set-to-string-tag.js","webpack:///node_modules/core-js/modules/_for-of.js","webpack:///src/shared/is_node.js","webpack:///node_modules/core-js/modules/_dom-create.js","webpack:///node_modules/core-js/modules/_property-desc.js","webpack:///node_modules/core-js/modules/_iobject.js","webpack:///node_modules/core-js/modules/_to-length.js","webpack:///node_modules/core-js/modules/_to-integer.js","webpack:///node_modules/core-js/modules/_classof.js","webpack:///node_modules/core-js/modules/_shared-key.js","webpack:///node_modules/core-js/modules/_to-object.js","webpack:///node_modules/core-js/modules/_an-instance.js","webpack:///node_modules/core-js/modules/_new-promise-capability.js","webpack:///node_modules/core-js/modules/_redefine-all.js","webpack:///node_modules/core-js/modules/_meta.js","webpack:///node_modules/core-js/modules/_object-pie.js","webpack:///src/display/worker_options.js","webpack:///src/display/network_utils.js","webpack:///node_modules/core-js/modules/_ie8-dom-define.js","webpack:///node_modules/core-js/modules/_to-primitive.js","webpack:///node_modules/core-js/modules/_shared.js","webpack:///node_modules/core-js/modules/_array-includes.js","webpack:///node_modules/core-js/modules/_add-to-unscopables.js","webpack:///node_modules/core-js/modules/es6.object.to-string.js","webpack:///node_modules/core-js/modules/_iter-define.js","webpack:///node_modules/core-js/modules/_library.js","webpack:///node_modules/core-js/modules/_enum-bug-keys.js","webpack:///node_modules/core-js/modules/_html.js","webpack:///node_modules/core-js/modules/web.dom.iterable.js","webpack:///node_modules/core-js/modules/_species-constructor.js","webpack:///node_modules/core-js/modules/_task.js","webpack:///node_modules/core-js/modules/_perform.js","webpack:///node_modules/core-js/modules/_promise-resolve.js","webpack:///node_modules/core-js/modules/_iter-detect.js","webpack:///node_modules/core-js/modules/_array-methods.js","webpack:///node_modules/core-js/modules/_validate-collection.js","webpack:///src/display/api.js","webpack:///src/display/metadata.js","webpack:///src/display/annotation_layer.js","webpack:///src/display/text_layer.js","webpack:///src/display/svg.js","webpack:///src/pdf.js","webpack:///src/shared/compatibility.js","webpack:///node_modules/core-js/fn/string/includes.js","webpack:///node_modules/core-js/modules/es6.string.includes.js","webpack:///node_modules/core-js/modules/_string-context.js","webpack:///node_modules/core-js/modules/_is-regexp.js","webpack:///node_modules/core-js/modules/_fails-is-regexp.js","webpack:///node_modules/core-js/fn/array/includes.js","webpack:///node_modules/core-js/modules/es7.array.includes.js","webpack:///node_modules/core-js/modules/_to-absolute-index.js","webpack:///node_modules/core-js/fn/math/log2.js","webpack:///node_modules/core-js/modules/es6.math.log2.js","webpack:///node_modules/core-js/fn/number/is-nan.js","webpack:///node_modules/core-js/modules/es6.number.is-nan.js","webpack:///node_modules/core-js/fn/number/is-integer.js","webpack:///node_modules/core-js/modules/es6.number.is-integer.js","webpack:///node_modules/core-js/modules/_is-integer.js","webpack:///node_modules/core-js/fn/promise.js","webpack:///node_modules/core-js/modules/es6.string.iterator.js","webpack:///node_modules/core-js/modules/_string-at.js","webpack:///node_modules/core-js/modules/_iter-create.js","webpack:///node_modules/core-js/modules/_object-create.js","webpack:///node_modules/core-js/modules/_object-dps.js","webpack:///node_modules/core-js/modules/_object-keys-internal.js","webpack:///node_modules/core-js/modules/_object-gpo.js","webpack:///node_modules/core-js/modules/es6.array.iterator.js","webpack:///node_modules/core-js/modules/_iter-step.js","webpack:///node_modules/core-js/modules/es6.promise.js","webpack:///node_modules/core-js/modules/_iter-call.js","webpack:///node_modules/core-js/modules/_is-array-iter.js","webpack:///node_modules/core-js/modules/core.get-iterator-method.js","webpack:///node_modules/core-js/modules/_invoke.js","webpack:///node_modules/core-js/modules/_microtask.js","webpack:///node_modules/core-js/modules/_set-species.js","webpack:///node_modules/core-js/modules/es7.promise.finally.js","webpack:///node_modules/core-js/modules/es7.promise.try.js","webpack:///node_modules/core-js/fn/weak-map.js","webpack:///node_modules/core-js/modules/es6.weak-map.js","webpack:///node_modules/core-js/modules/_array-species-create.js","webpack:///node_modules/core-js/modules/_array-species-constructor.js","webpack:///node_modules/core-js/modules/_is-array.js","webpack:///node_modules/core-js/modules/_object-assign.js","webpack:///node_modules/core-js/modules/_object-gops.js","webpack:///node_modules/core-js/modules/_collection-weak.js","webpack:///node_modules/core-js/modules/_collection.js","webpack:///node_modules/core-js/modules/_inherit-if-required.js","webpack:///node_modules/core-js/modules/_set-proto.js","webpack:///node_modules/core-js/modules/_object-gopd.js","webpack:///node_modules/core-js/modules/es7.weak-map.of.js","webpack:///node_modules/core-js/modules/_set-collection-of.js","webpack:///node_modules/core-js/modules/es7.weak-map.from.js","webpack:///node_modules/core-js/modules/_set-collection-from.js","webpack:///node_modules/core-js/fn/object/values.js","webpack:///node_modules/core-js/modules/es7.object.values.js","webpack:///node_modules/core-js/modules/_object-to-array.js","webpack:///src/shared/streams_polyfill.js","webpack:///external/streams/streams-lib.js","webpack:///src/display/global.js","webpack:///src/display/font_loader.js","webpack:///src/display/canvas.js","webpack:///src/display/pattern_helper.js","webpack:///src/display/transport_stream.js","webpack:///src/display/webgl.js","webpack:///src/display/node_stream.js","webpack:///src/display/content_disposition.js","webpack:///src/display/fetch_stream.js","webpack:///src/display/network.js"],"names":[],"mappings":"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","file":"pdf.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __w_pdfjs_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__w_pdfjs_require__.m = modules;\n\n \t// expose the module cache\n \t__w_pdfjs_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__w_pdfjs_require__.d = function(exports, name, getter) {\n \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__w_pdfjs_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__w_pdfjs_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 64);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 3242075084fdb042a887","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport './compatibility';\nimport { ReadableStream } from './streams_polyfill';\n\nvar FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\nconst NativeImageDecoding = {\n NONE: 'none',\n DECODE: 'decode',\n DISPLAY: 'display',\n};\n\nvar TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4,\n};\n\nvar ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\nvar AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26,\n};\n\nvar AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200,\n};\n\nvar AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000,\n};\n\nvar AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\nvar StreamType = {\n UNKNOWN: 0,\n FLATE: 1,\n LZW: 2,\n DCT: 3,\n JPX: 4,\n JBIG: 5,\n A85: 6,\n AHX: 7,\n CCF: 8,\n RL: 9,\n};\n\nvar FontType = {\n UNKNOWN: 0,\n TYPE1: 1,\n TYPE1C: 2,\n CIDFONTTYPE0: 3,\n CIDFONTTYPE0C: 4,\n TRUETYPE: 5,\n CIDFONTTYPE2: 6,\n TYPE3: 7,\n OPENTYPE: 8,\n TYPE0: 9,\n MMTYPE1: 10,\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nvar CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2,\n};\n\n// All the possible operations for an operator list.\nvar OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log('Info: ' + msg);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log('Warning: ' + msg);\n }\n}\n\n// Deprecated API function -- display regardless of the `verbosity` setting.\nfunction deprecated(details) {\n console.log('Deprecated API usage: ' + details);\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\nvar UNSUPPORTED_FEATURES = {\n unknown: 'unknown',\n forms: 'forms',\n javaScript: 'javaScript',\n smask: 'smask',\n shadingPattern: 'shadingPattern',\n font: 'font',\n};\n\n// Checks if URLs have the same origin. For non-HTTP based URLs, returns false.\nfunction isSameOrigin(baseUrl, otherUrl) {\n try {\n var base = new URL(baseUrl);\n if (!base.origin || base.origin === 'null') {\n return false; // non-HTTP url\n }\n } catch (e) {\n return false;\n }\n\n var other = new URL(otherUrl, base);\n return base.origin === other.origin;\n}\n\n// Checks if URLs use one of the whitelisted protocols, e.g. to avoid XSS.\nfunction isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case 'http:':\n case 'https:':\n case 'ftp:':\n case 'mailto:':\n case 'tel:':\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL (utilizing `isValidProtocol`).\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} baseUrl - An absolute URL.\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n try {\n var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) { /* `new URL()` will throw on incorrect data. */ }\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, { value,\n enumerable: true,\n configurable: true,\n writable: false, });\n return value;\n}\n\nfunction getLookupTableFactory(initializer) {\n var lookup;\n return function () {\n if (initializer) {\n lookup = Object.create(null);\n initializer(lookup);\n initializer = null;\n }\n return lookup;\n };\n}\n\nvar PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\nvar PasswordException = (function PasswordExceptionClosure() {\n function PasswordException(msg, code) {\n this.name = 'PasswordException';\n this.message = msg;\n this.code = code;\n }\n\n PasswordException.prototype = new Error();\n PasswordException.constructor = PasswordException;\n\n return PasswordException;\n})();\n\nvar UnknownErrorException = (function UnknownErrorExceptionClosure() {\n function UnknownErrorException(msg, details) {\n this.name = 'UnknownErrorException';\n this.message = msg;\n this.details = details;\n }\n\n UnknownErrorException.prototype = new Error();\n UnknownErrorException.constructor = UnknownErrorException;\n\n return UnknownErrorException;\n})();\n\nvar InvalidPDFException = (function InvalidPDFExceptionClosure() {\n function InvalidPDFException(msg) {\n this.name = 'InvalidPDFException';\n this.message = msg;\n }\n\n InvalidPDFException.prototype = new Error();\n InvalidPDFException.constructor = InvalidPDFException;\n\n return InvalidPDFException;\n})();\n\nvar MissingPDFException = (function MissingPDFExceptionClosure() {\n function MissingPDFException(msg) {\n this.name = 'MissingPDFException';\n this.message = msg;\n }\n\n MissingPDFException.prototype = new Error();\n MissingPDFException.constructor = MissingPDFException;\n\n return MissingPDFException;\n})();\n\nvar UnexpectedResponseException =\n (function UnexpectedResponseExceptionClosure() {\n function UnexpectedResponseException(msg, status) {\n this.name = 'UnexpectedResponseException';\n this.message = msg;\n this.status = status;\n }\n\n UnexpectedResponseException.prototype = new Error();\n UnexpectedResponseException.constructor = UnexpectedResponseException;\n\n return UnexpectedResponseException;\n})();\n\nvar NotImplementedException = (function NotImplementedExceptionClosure() {\n function NotImplementedException(msg) {\n this.message = msg;\n }\n\n NotImplementedException.prototype = new Error();\n NotImplementedException.prototype.name = 'NotImplementedException';\n NotImplementedException.constructor = NotImplementedException;\n\n return NotImplementedException;\n})();\n\nvar MissingDataException = (function MissingDataExceptionClosure() {\n function MissingDataException(begin, end) {\n this.begin = begin;\n this.end = end;\n this.message = 'Missing data [' + begin + ', ' + end + ')';\n }\n\n MissingDataException.prototype = new Error();\n MissingDataException.prototype.name = 'MissingDataException';\n MissingDataException.constructor = MissingDataException;\n\n return MissingDataException;\n})();\n\nvar XRefParseException = (function XRefParseExceptionClosure() {\n function XRefParseException(msg) {\n this.message = msg;\n }\n\n XRefParseException.prototype = new Error();\n XRefParseException.prototype.name = 'XRefParseException';\n XRefParseException.constructor = XRefParseException;\n\n return XRefParseException;\n})();\n\n/**\n * Error caused during parsing PDF data.\n */\nlet FormatError = (function FormatErrorClosure() {\n function FormatError(msg) {\n this.message = msg;\n }\n\n FormatError.prototype = new Error();\n FormatError.prototype.name = 'FormatError';\n FormatError.constructor = FormatError;\n\n return FormatError;\n})();\n\n/**\n * Error used to indicate task cancellation.\n */\nlet AbortException = (function AbortExceptionClosure() {\n function AbortException(msg) {\n this.name = 'AbortException';\n this.message = msg;\n }\n\n AbortException.prototype = new Error();\n AbortException.constructor = AbortException;\n\n return AbortException;\n})();\n\nvar NullCharactersRegExp = /\\x00/g;\n\nfunction removeNullCharacters(str) {\n if (typeof str !== 'string') {\n warn('The argument for removeNullCharacters must be a string.');\n return str;\n }\n return str.replace(NullCharactersRegExp, '');\n}\n\nfunction bytesToString(bytes) {\n assert(bytes !== null && typeof bytes === 'object' &&\n bytes.length !== undefined, 'Invalid argument for bytesToString');\n var length = bytes.length;\n var MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n var strBuf = [];\n for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n var chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join('');\n}\n\nfunction stringToBytes(str) {\n assert(typeof str === 'string', 'Invalid argument for stringToBytes');\n var length = str.length;\n var bytes = new Uint8Array(length);\n for (var i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xFF;\n }\n return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array|Uint8Array|string} arr\n * @returns {number}\n */\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n assert(arr.byteLength !== undefined);\n return arr.byteLength;\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array} arr - the array of the arrays (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n // Shortcut: if first and only item is Uint8Array, return it.\n if (arr.length === 1 && (arr[0] instanceof Uint8Array)) {\n return arr[0];\n }\n var resultLength = 0;\n var i, ii = arr.length;\n var item, itemLength;\n for (i = 0; i < ii; i++) {\n item = arr[i];\n itemLength = arrayByteLength(item);\n resultLength += itemLength;\n }\n var pos = 0;\n var data = new Uint8Array(resultLength);\n for (i = 0; i < ii; i++) {\n item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === 'string') {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n}\n\nfunction string32(value) {\n return String.fromCharCode((value >> 24) & 0xff, (value >> 16) & 0xff,\n (value >> 8) & 0xff, value & 0xff);\n}\n\n// Calculate the base 2 logarithm of the number `x`. This differs from the\n// native function in the sense that it returns the ceiling value and that it\n// returns 0 instead of `Infinity`/`NaN` for `x` values smaller than/equal to 0.\nfunction log2(x) {\n if (x <= 0) {\n return 0;\n }\n return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, start) {\n return (data[start] << 24) >> 24;\n}\n\nfunction readUint16(data, offset) {\n return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n return ((data[offset] << 24) | (data[offset + 1] << 16) |\n (data[offset + 2] << 8) | data[offset + 3]) >>> 0;\n}\n\n// Lazy test the endianness of the platform\n// NOTE: This will be 'true' for simulated TypedArrays\nfunction isLittleEndian() {\n var buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n var view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return (view32[0] === 1);\n}\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n try {\n new Function(''); // eslint-disable-line no-new, no-new-func\n return true;\n } catch (e) {\n return false;\n }\n}\n\nvar IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\n\nvar Util = (function UtilClosure() {\n function Util() {}\n\n var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];\n\n // makeCssRgb() can be called thousands of times. Using |rgbBuf| avoids\n // creating many intermediate strings.\n Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {\n rgbBuf[1] = r;\n rgbBuf[3] = g;\n rgbBuf[5] = b;\n return rgbBuf.join('');\n };\n\n // Concatenates two transformation matrices together and returns the result.\n Util.transform = function Util_transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5]\n ];\n };\n\n // For 2d affine transforms\n Util.applyTransform = function Util_applyTransform(p, m) {\n var xt = p[0] * m[0] + p[1] * m[2] + m[4];\n var yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n };\n\n Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {\n var d = m[0] * m[3] - m[1] * m[2];\n var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n };\n\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n Util.getAxialAlignedBoundingBox =\n function Util_getAxialAlignedBoundingBox(r, m) {\n\n var p1 = Util.applyTransform(r, m);\n var p2 = Util.applyTransform(r.slice(2, 4), m);\n var p3 = Util.applyTransform([r[0], r[3]], m);\n var p4 = Util.applyTransform([r[2], r[1]], m);\n return [\n Math.min(p1[0], p2[0], p3[0], p4[0]),\n Math.min(p1[1], p2[1], p3[1], p4[1]),\n Math.max(p1[0], p2[0], p3[0], p4[0]),\n Math.max(p1[1], p2[1], p3[1], p4[1])\n ];\n };\n\n Util.inverseTransform = function Util_inverseTransform(m) {\n var d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n };\n\n // Apply a generic 3d matrix M on a 3-vector v:\n // | a b c | | X |\n // | d e f | x | Y |\n // | g h i | | Z |\n // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n // with v as [X,Y,Z]\n Util.apply3dTransform = function Util_apply3dTransform(m, v) {\n return [\n m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n m[6] * v[0] + m[7] * v[1] + m[8] * v[2]\n ];\n };\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n Util.singularValueDecompose2dScale =\n function Util_singularValueDecompose2dScale(m) {\n\n var transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\n var a = m[0] * transpose[0] + m[1] * transpose[2];\n var b = m[0] * transpose[1] + m[1] * transpose[3];\n var c = m[2] * transpose[0] + m[3] * transpose[2];\n var d = m[2] * transpose[1] + m[3] * transpose[3];\n\n // Solve the second degree polynomial to get roots.\n var first = (a + d) / 2;\n var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;\n var sx = first + second || 1;\n var sy = first - second || 1;\n\n // Scale values are the square roots of the eigenvalues.\n return [Math.sqrt(sx), Math.sqrt(sy)];\n };\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n Util.normalizeRect = function Util_normalizeRect(rect) {\n var r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n };\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'false'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n Util.intersect = function Util_intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\n // Order points along the axes\n var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),\n orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),\n result = [];\n\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n // X: first and second points belong to different rectangles?\n if ((orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) ||\n (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])) {\n // Intersection must be between second and third points\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return false;\n }\n\n // Y: first and second points belong to different rectangles?\n if ((orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) ||\n (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])) {\n // Intersection must be between second and third points\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return false;\n }\n\n return result;\n };\n\n var ROMAN_NUMBER_MAP = [\n '', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM',\n '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC',\n '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'\n ];\n /**\n * Converts positive integers to (upper case) Roman numerals.\n * @param {integer} number - The number that should be converted.\n * @param {boolean} lowerCase - Indicates if the result should be converted\n * to lower case letters. The default is false.\n * @return {string} The resulting Roman number.\n */\n Util.toRoman = function Util_toRoman(number, lowerCase) {\n assert(Number.isInteger(number) && number > 0,\n 'The number should be a positive integer.');\n var pos, romanBuf = [];\n // Thousands\n while (number >= 1000) {\n number -= 1000;\n romanBuf.push('M');\n }\n // Hundreds\n pos = (number / 100) | 0;\n number %= 100;\n romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n // Tens\n pos = (number / 10) | 0;\n number %= 10;\n romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n // Ones\n romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);\n\n var romanStr = romanBuf.join('');\n return (lowerCase ? romanStr.toLowerCase() : romanStr);\n };\n\n Util.appendToArray = function Util_appendToArray(arr1, arr2) {\n Array.prototype.push.apply(arr1, arr2);\n };\n\n Util.prependToArray = function Util_prependToArray(arr1, arr2) {\n Array.prototype.unshift.apply(arr1, arr2);\n };\n\n Util.extendObj = function extendObj(obj1, obj2) {\n for (var key in obj2) {\n obj1[key] = obj2[key];\n }\n };\n\n Util.getInheritableProperty =\n function Util_getInheritableProperty(dict, name, getArray) {\n while (dict && !dict.has(name)) {\n dict = dict.get('Parent');\n }\n if (!dict) {\n return null;\n }\n return getArray ? dict.getArray(name) : dict.get(name);\n };\n\n Util.inherit = function Util_inherit(sub, base, prototype) {\n sub.prototype = Object.create(base.prototype);\n sub.prototype.constructor = sub;\n for (var prop in prototype) {\n sub.prototype[prop] = prototype[prop];\n }\n };\n\n Util.loadScript = function Util_loadScript(src, callback) {\n var script = document.createElement('script');\n var loaded = false;\n script.setAttribute('src', src);\n if (callback) {\n script.onload = function() {\n if (!loaded) {\n callback();\n }\n loaded = true;\n };\n }\n document.getElementsByTagName('head')[0].appendChild(script);\n };\n\n return Util;\n})();\n\n/**\n * PDF page viewport created based on scale, rotation and offset.\n * @class\n * @alias PageViewport\n */\nvar PageViewport = (function PageViewportClosure() {\n /**\n * @constructor\n * @private\n * @param viewBox {Array} xMin, yMin, xMax and yMax coordinates.\n * @param scale {number} scale of the viewport.\n * @param rotation {number} rotations of the viewport in degrees.\n * @param offsetX {number} offset X\n * @param offsetY {number} offset Y\n * @param dontFlip {boolean} if true, axis Y will not be flipped.\n */\n function PageViewport(viewBox, scale, rotation, offsetX, offsetY, dontFlip) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n\n // creating transform to convert pdf coordinate system to the normal\n // canvas like coordinates taking in account scale and rotation\n var centerX = (viewBox[2] + viewBox[0]) / 2;\n var centerY = (viewBox[3] + viewBox[1]) / 2;\n var rotateA, rotateB, rotateC, rotateD;\n rotation = rotation % 360;\n rotation = rotation < 0 ? rotation + 360 : rotation;\n switch (rotation) {\n case 180:\n rotateA = -1; rotateB = 0; rotateC = 0; rotateD = 1;\n break;\n case 90:\n rotateA = 0; rotateB = 1; rotateC = 1; rotateD = 0;\n break;\n case 270:\n rotateA = 0; rotateB = -1; rotateC = -1; rotateD = 0;\n break;\n // case 0:\n default:\n rotateA = 1; rotateB = 0; rotateC = 0; rotateD = -1;\n break;\n }\n\n if (dontFlip) {\n rotateC = -rotateC; rotateD = -rotateD;\n }\n\n var offsetCanvasX, offsetCanvasY;\n var width, height;\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n }\n // creating transform for the following operations:\n // translate(-centerX, -centerY), rotate and flip vertically,\n // scale, and translate(offsetCanvasX, offsetCanvasY)\n this.transform = [\n rotateA * scale,\n rotateB * scale,\n rotateC * scale,\n rotateD * scale,\n offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY,\n offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY\n ];\n\n this.width = width;\n this.height = height;\n this.fontScale = scale;\n }\n PageViewport.prototype = /** @lends PageViewport.prototype */ {\n /**\n * Clones viewport with additional properties.\n * @param args {Object} (optional) If specified, may contain the 'scale' or\n * 'rotation' properties to override the corresponding properties in\n * the cloned viewport.\n * @returns {PageViewport} Cloned viewport.\n */\n clone: function PageViewPort_clone(args) {\n args = args || {};\n var scale = 'scale' in args ? args.scale : this.scale;\n var rotation = 'rotation' in args ? args.rotation : this.rotation;\n return new PageViewport(this.viewBox.slice(), scale, rotation,\n this.offsetX, this.offsetY, args.dontFlip);\n },\n /**\n * Converts PDF point to the viewport coordinates. For examples, useful for\n * converting PDF location into canvas pixel coordinates.\n * @param x {number} X coordinate.\n * @param y {number} Y coordinate.\n * @returns {Object} Object that contains 'x' and 'y' properties of the\n * point in the viewport coordinate space.\n * @see {@link convertToPdfPoint}\n * @see {@link convertToViewportRectangle}\n */\n convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) {\n return Util.applyTransform([x, y], this.transform);\n },\n /**\n * Converts PDF rectangle to the viewport coordinates.\n * @param rect {Array} xMin, yMin, xMax and yMax coordinates.\n * @returns {Array} Contains corresponding coordinates of the rectangle\n * in the viewport coordinate space.\n * @see {@link convertToViewportPoint}\n */\n convertToViewportRectangle:\n function PageViewport_convertToViewportRectangle(rect) {\n var tl = Util.applyTransform([rect[0], rect[1]], this.transform);\n var br = Util.applyTransform([rect[2], rect[3]], this.transform);\n return [tl[0], tl[1], br[0], br[1]];\n },\n /**\n * Converts viewport coordinates to the PDF location. For examples, useful\n * for converting canvas pixel location into PDF one.\n * @param x {number} X coordinate.\n * @param y {number} Y coordinate.\n * @returns {Object} Object that contains 'x' and 'y' properties of the\n * point in the PDF coordinate space.\n * @see {@link convertToViewportPoint}\n */\n convertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) {\n return Util.applyInverseTransform([x, y], this.transform);\n },\n };\n return PageViewport;\n})();\n\nvar PDFStringTranslateTable = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014,\n 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C,\n 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160,\n 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC\n];\n\nfunction stringToPDFString(str) {\n var i, n = str.length, strBuf = [];\n if (str[0] === '\\xFE' && str[1] === '\\xFF') {\n // UTF16BE BOM\n for (i = 2; i < n; i += 2) {\n strBuf.push(String.fromCharCode(\n (str.charCodeAt(i) << 8) | str.charCodeAt(i + 1)));\n }\n } else {\n for (i = 0; i < n; ++i) {\n var code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n }\n return strBuf.join('');\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isEmptyObj(obj) {\n for (var key in obj) {\n return false;\n }\n return true;\n}\n\nfunction isBool(v) {\n return typeof v === 'boolean';\n}\n\nfunction isNum(v) {\n return typeof v === 'number';\n}\n\nfunction isString(v) {\n return typeof v === 'string';\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === 'object' && v !== null && v.byteLength !== undefined;\n}\n\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isSpace(ch) {\n return (ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A);\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise} promise - A promise object.\n * @property {function} resolve - Fulfills the promise.\n * @property {function} reject - Rejects the promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @return {PromiseCapability} A capability object contains:\n * - a Promise, resolve and reject methods.\n */\nfunction createPromiseCapability() {\n var capability = {};\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = resolve;\n capability.reject = reject;\n });\n return capability;\n}\n\nvar createBlob = function createBlob(data, contentType) {\n if (typeof Blob !== 'undefined') {\n return new Blob([data], { type: contentType, });\n }\n throw new Error('The \"Blob\" constructor is not supported.');\n};\n\nvar createObjectURL = (function createObjectURLClosure() {\n // Blob/createObjectURL is not available, falling back to data schema.\n var digits =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n return function createObjectURL(data, contentType, forceDataSchema = false) {\n if (!forceDataSchema && URL.createObjectURL) {\n var blob = createBlob(data, contentType);\n return URL.createObjectURL(blob);\n }\n\n var buffer = 'data:' + contentType + ';base64,';\n for (var i = 0, ii = data.length; i < ii; i += 3) {\n var b1 = data[i] & 0xFF;\n var b2 = data[i + 1] & 0xFF;\n var b3 = data[i + 2] & 0xFF;\n var d1 = b1 >> 2, d2 = ((b1 & 3) << 4) | (b2 >> 4);\n var d3 = i + 1 < ii ? ((b2 & 0xF) << 2) | (b3 >> 6) : 64;\n var d4 = i + 2 < ii ? (b3 & 0x3F) : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n return buffer;\n };\n})();\n\nfunction resolveCall(fn, args, thisArg = null) {\n if (!fn) {\n return Promise.resolve(undefined);\n }\n return new Promise((resolve, reject) => {\n resolve(fn.apply(thisArg, args));\n });\n}\n\nfunction wrapReason(reason) {\n if (typeof reason !== 'object') {\n return reason;\n }\n switch (reason.name) {\n case 'AbortException':\n return new AbortException(reason.message);\n case 'MissingPDFException':\n return new MissingPDFException(reason.message);\n case 'UnexpectedResponseException':\n return new UnexpectedResponseException(reason.message, reason.status);\n default:\n return new UnknownErrorException(reason.message, reason.details);\n }\n}\n\nfunction makeReasonSerializable(reason) {\n if (!(reason instanceof Error) ||\n reason instanceof AbortException ||\n reason instanceof MissingPDFException ||\n reason instanceof UnexpectedResponseException ||\n reason instanceof UnknownErrorException) {\n return reason;\n }\n return new UnknownErrorException(reason.message, reason.toString());\n}\n\nfunction resolveOrReject(capability, success, reason) {\n if (success) {\n capability.resolve();\n } else {\n capability.reject(reason);\n }\n}\n\nfunction finalize(promise) {\n return Promise.resolve(promise).catch(() => {});\n}\n\nfunction MessageHandler(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.postMessageTransfers = true;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n let callbacksCapabilities = this.callbacksCapabilities = Object.create(null);\n let ah = this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = (event) => {\n let data = event.data;\n if (data.targetName !== this.sourceName) {\n return;\n }\n if (data.stream) {\n this._processStreamMessage(data);\n } else if (data.isReply) {\n let callbackId = data.callbackId;\n if (data.callbackId in callbacksCapabilities) {\n let callback = callbacksCapabilities[callbackId];\n delete callbacksCapabilities[callbackId];\n if ('error' in data) {\n callback.reject(wrapReason(data.error));\n } else {\n callback.resolve(data.data);\n }\n } else {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n } else if (data.action in ah) {\n let action = ah[data.action];\n if (data.callbackId) {\n let sourceName = this.sourceName;\n let targetName = data.sourceName;\n Promise.resolve().then(function () {\n return action[0].call(action[1], data.data);\n }).then((result) => {\n comObj.postMessage({\n sourceName,\n targetName,\n isReply: true,\n callbackId: data.callbackId,\n data: result,\n });\n }, (reason) => {\n comObj.postMessage({\n sourceName,\n targetName,\n isReply: true,\n callbackId: data.callbackId,\n error: makeReasonSerializable(reason),\n });\n });\n } else if (data.streamId) {\n this._createStreamSink(data);\n } else {\n action[0].call(action[1], data.data);\n }\n } else {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n };\n comObj.addEventListener('message', this._onComObjOnMessage);\n}\n\nMessageHandler.prototype = {\n on(actionName, handler, scope) {\n var ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n ah[actionName] = [handler, scope];\n },\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * @param {String} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - Optional list of transfers/ArrayBuffers\n */\n send(actionName, data, transfers) {\n var message = {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data,\n };\n this.postMessage(message, transfers);\n },\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expects that the other side will callback with the response.\n * @param {String} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - Optional list of transfers/ArrayBuffers.\n * @returns {Promise} Promise to be resolved with response data.\n */\n sendWithPromise(actionName, data, transfers) {\n var callbackId = this.callbackId++;\n var message = {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data,\n callbackId,\n };\n var capability = createPromiseCapability();\n this.callbacksCapabilities[callbackId] = capability;\n try {\n this.postMessage(message, transfers);\n } catch (e) {\n capability.reject(e);\n }\n return capability.promise;\n },\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expect that the other side will callback to signal 'start_complete'.\n * @param {String} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Object} queueingStrategy - strategy to signal backpressure based on\n * internal queue.\n * @param {Array} [transfers] - Optional list of transfers/ArrayBuffers.\n * @return {ReadableStream} ReadableStream to read data in chunks.\n */\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n let streamId = this.streamId++;\n let sourceName = this.sourceName;\n let targetName = this.targetName;\n\n return new ReadableStream({\n start: (controller) => {\n let startCapability = createPromiseCapability();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n isClosed: false,\n };\n this.postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize,\n });\n // Return Promise for Async process, to signal success/failure.\n return startCapability.promise;\n },\n\n pull: (controller) => {\n let pullCapability = createPromiseCapability();\n this.streamControllers[streamId].pullCall = pullCapability;\n this.postMessage({\n sourceName,\n targetName,\n stream: 'pull',\n streamId,\n desiredSize: controller.desiredSize,\n });\n // Returning Promise will not call \"pull\"\n // again until current pull is resolved.\n return pullCapability.promise;\n },\n\n cancel: (reason) => {\n let cancelCapability = createPromiseCapability();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n this.postMessage({\n sourceName,\n targetName,\n stream: 'cancel',\n reason,\n streamId,\n });\n // Return Promise to signal success or failure.\n return cancelCapability.promise;\n },\n }, queueingStrategy);\n },\n\n _createStreamSink(data) {\n let self = this;\n let action = this.actionHandler[data.action];\n let streamId = data.streamId;\n let desiredSize = data.desiredSize;\n let sourceName = this.sourceName;\n let targetName = data.sourceName;\n let capability = createPromiseCapability();\n\n let sendStreamRequest = ({ stream, chunk, transfers,\n success, reason, }) => {\n this.postMessage({ sourceName, targetName, stream, streamId,\n chunk, success, reason, }, transfers);\n };\n\n let streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n let lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n // Enqueue decreases the desiredSize property of sink,\n // so when it changes from positive to negative,\n // set ready as unresolved promise.\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = createPromiseCapability();\n this.ready = this.sinkCapability.promise;\n }\n sendStreamRequest({ stream: 'enqueue', chunk, transfers, });\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n sendStreamRequest({ stream: 'close', });\n delete self.streamSinks[streamId];\n },\n\n error(reason) {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n sendStreamRequest({ stream: 'error', reason, });\n },\n\n sinkCapability: capability,\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize,\n ready: null,\n };\n\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n resolveCall(action[0], [data.data, streamSink], action[1]).then(() => {\n sendStreamRequest({ stream: 'start_complete', success: true, });\n }, (reason) => {\n sendStreamRequest({ stream: 'start_complete', success: false, reason, });\n });\n },\n\n _processStreamMessage(data) {\n let sourceName = this.sourceName;\n let targetName = data.sourceName;\n let streamId = data.streamId;\n\n let sendStreamResponse = ({ stream, success, reason, }) => {\n this.comObj.postMessage({ sourceName, targetName, stream,\n success, streamId, reason, });\n };\n\n let deleteStreamController = () => {\n // Delete streamController only when start, pull and\n // cancel callbacks are resolved, to avoid \"TypeError\".\n Promise.all([\n this.streamControllers[data.streamId].startCall,\n this.streamControllers[data.streamId].pullCall,\n this.streamControllers[data.streamId].cancelCall\n ].map(function(capability) {\n return capability && finalize(capability.promise);\n })).then(() => {\n delete this.streamControllers[data.streamId];\n });\n };\n\n switch (data.stream) {\n case 'start_complete':\n resolveOrReject(this.streamControllers[data.streamId].startCall,\n data.success, wrapReason(data.reason));\n break;\n case 'pull_complete':\n resolveOrReject(this.streamControllers[data.streamId].pullCall,\n data.success, wrapReason(data.reason));\n break;\n case 'pull':\n // Ignore any pull after close is called.\n if (!this.streamSinks[data.streamId]) {\n sendStreamResponse({ stream: 'pull_complete', success: true, });\n break;\n }\n // Pull increases the desiredSize property of sink,\n // so when it changes from negative to positive,\n // set ready property as resolved promise.\n if (this.streamSinks[data.streamId].desiredSize <= 0 &&\n data.desiredSize > 0) {\n this.streamSinks[data.streamId].sinkCapability.resolve();\n }\n // Reset desiredSize property of sink on every pull.\n this.streamSinks[data.streamId].desiredSize = data.desiredSize;\n resolveCall(this.streamSinks[data.streamId].onPull).then(() => {\n sendStreamResponse({ stream: 'pull_complete', success: true, });\n }, (reason) => {\n sendStreamResponse({ stream: 'pull_complete',\n success: false, reason, });\n });\n break;\n case 'enqueue':\n assert(this.streamControllers[data.streamId],\n 'enqueue should have stream controller');\n if (!this.streamControllers[data.streamId].isClosed) {\n this.streamControllers[data.streamId].controller.enqueue(data.chunk);\n }\n break;\n case 'close':\n assert(this.streamControllers[data.streamId],\n 'close should have stream controller');\n if (this.streamControllers[data.streamId].isClosed) {\n break;\n }\n this.streamControllers[data.streamId].isClosed = true;\n this.streamControllers[data.streamId].controller.close();\n deleteStreamController();\n break;\n case 'error':\n assert(this.streamControllers[data.streamId],\n 'error should have stream controller');\n this.streamControllers[data.streamId].controller.\n error(wrapReason(data.reason));\n deleteStreamController();\n break;\n case 'cancel_complete':\n resolveOrReject(this.streamControllers[data.streamId].cancelCall,\n data.success, wrapReason(data.reason));\n deleteStreamController();\n break;\n case 'cancel':\n if (!this.streamSinks[data.streamId]) {\n break;\n }\n resolveCall(this.streamSinks[data.streamId].onCancel,\n [wrapReason(data.reason)]).then(() => {\n sendStreamResponse({ stream: 'cancel_complete', success: true, });\n }, (reason) => {\n sendStreamResponse({ stream: 'cancel_complete',\n success: false, reason, });\n });\n this.streamSinks[data.streamId].sinkCapability.\n reject(wrapReason(data.reason));\n this.streamSinks[data.streamId].isCancelled = true;\n delete this.streamSinks[data.streamId];\n break;\n default:\n throw new Error('Unexpected stream case');\n }\n },\n\n /**\n * Sends raw message to the comObj.\n * @private\n * @param {Object} message - Raw message.\n * @param transfers List of transfers/ArrayBuffers, or undefined.\n */\n postMessage(message, transfers) {\n if (transfers && this.postMessageTransfers) {\n this.comObj.postMessage(message, transfers);\n } else {\n this.comObj.postMessage(message);\n }\n },\n\n destroy() {\n this.comObj.removeEventListener('message', this._onComObjOnMessage);\n },\n};\n\nexport {\n FONT_IDENTITY_MATRIX,\n IDENTITY_MATRIX,\n OPS,\n VerbosityLevel,\n UNSUPPORTED_FEATURES,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationType,\n FontType,\n ImageKind,\n CMapCompressionType,\n AbortException,\n InvalidPDFException,\n MessageHandler,\n MissingDataException,\n MissingPDFException,\n NativeImageDecoding,\n NotImplementedException,\n PageViewport,\n PasswordException,\n PasswordResponses,\n StreamType,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n Util,\n XRefParseException,\n FormatError,\n arrayByteLength,\n arraysToBytes,\n assert,\n bytesToString,\n createBlob,\n createPromiseCapability,\n createObjectURL,\n deprecated,\n getLookupTableFactory,\n getVerbosityLevel,\n info,\n isArrayBuffer,\n isBool,\n isEmptyObj,\n isNum,\n isString,\n isSpace,\n isSameOrigin,\n createValidAbsoluteUrl,\n isLittleEndian,\n isEvalSupported,\n log2,\n readInt8,\n readUint16,\n readUint32,\n removeNullCharacters,\n ReadableStream,\n setVerbosityLevel,\n shadow,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF8String,\n utf8StringToString,\n warn,\n unreachable,\n};\n\n\n\n// WEBPACK FOOTER //\n// src/shared/util.js","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_wks.js","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_is-object.js","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_export.js","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_global.js","var core = module.exports = { version: '2.5.3' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_core.js","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_an-object.js","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_has.js","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_redefine.js","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_ctx.js","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert, CMapCompressionType, removeNullCharacters, stringToBytes,\n unreachable, warn\n} from '../shared/util';\nimport globalScope from '../shared/global_scope';\n\nconst DEFAULT_LINK_REL = 'noopener noreferrer nofollow';\nconst SVG_NS = 'http://www.w3.org/2000/svg';\n\nclass DOMCanvasFactory {\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error('invalid canvas size');\n }\n let canvas = document.createElement('canvas');\n let context = canvas.getContext('2d');\n canvas.width = width;\n canvas.height = height;\n return {\n canvas,\n context,\n };\n }\n\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error('canvas is not specified');\n }\n if (width <= 0 || height <= 0) {\n throw new Error('invalid canvas size');\n }\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error('canvas is not specified');\n }\n // Zeroing the width and height cause Firefox to release graphics\n // resources immediately, which can greatly reduce memory consumption.\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n}\n\nclass DOMCMapReaderFactory {\n constructor({ baseUrl = null, isCompressed = false, }) {\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n\n fetch({ name, }) {\n if (!this.baseUrl) {\n return Promise.reject(new Error('CMap baseUrl must be specified, ' +\n 'see \"PDFJS.cMapUrl\" (and also \"PDFJS.cMapPacked\").'));\n }\n if (!name) {\n return Promise.reject(new Error('CMap name must be specified.'));\n }\n return new Promise((resolve, reject) => {\n let url = this.baseUrl + name + (this.isCompressed ? '.bcmap' : '');\n\n let request = new XMLHttpRequest();\n request.open('GET', url, true);\n\n if (this.isCompressed) {\n request.responseType = 'arraybuffer';\n }\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n if (request.status === 200 || request.status === 0) {\n let data;\n if (this.isCompressed && request.response) {\n data = new Uint8Array(request.response);\n } else if (!this.isCompressed && request.responseText) {\n data = stringToBytes(request.responseText);\n }\n if (data) {\n resolve({\n cMapData: data,\n compressionType: this.isCompressed ?\n CMapCompressionType.BINARY : CMapCompressionType.NONE,\n });\n return;\n }\n }\n reject(new Error('Unable to load ' +\n (this.isCompressed ? 'binary ' : '') +\n 'CMap at: ' + url));\n };\n\n request.send(null);\n });\n }\n}\n\nclass DOMSVGFactory {\n create(width, height) {\n assert(width > 0 && height > 0, 'Invalid SVG dimensions');\n\n let svg = document.createElementNS(SVG_NS, 'svg:svg');\n svg.setAttribute('version', '1.1');\n svg.setAttribute('width', width + 'px');\n svg.setAttribute('height', height + 'px');\n svg.setAttribute('preserveAspectRatio', 'none');\n svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height);\n\n return svg;\n }\n\n createElement(type) {\n assert(typeof type === 'string', 'Invalid SVG element type');\n\n return document.createElementNS(SVG_NS, type);\n }\n}\n\nclass SimpleDOMNode {\n constructor(nodeName, nodeValue) {\n this.nodeName = nodeName;\n this.nodeValue = nodeValue;\n\n Object.defineProperty(this, 'parentNode', { value: null, writable: true, });\n }\n\n get firstChild() {\n return this.childNodes[0];\n }\n\n get nextSibling() {\n let index = this.parentNode.childNodes.indexOf(this);\n return this.parentNode.childNodes[index + 1];\n }\n\n get textContent() {\n if (!this.childNodes) {\n return this.nodeValue || '';\n }\n return this.childNodes.map(function(child) {\n return child.textContent;\n }).join('');\n }\n\n hasChildNodes() {\n return this.childNodes && this.childNodes.length > 0;\n }\n}\n\nclass SimpleXMLParser {\n parseFromString(data) {\n let nodes = [];\n\n // Remove all comments and processing instructions.\n data = data.replace(/<\\?[\\s\\S]*?\\?>|/g, '').trim();\n data = data.replace(/\\[]+(\\[[^\\]]+)?[^>]+>/g, '').trim();\n\n // Extract all text nodes and replace them with a numeric index in\n // the nodes.\n data = data.replace(/>([^<][\\s\\S]*?) {\n let length = nodes.length;\n let node = new SimpleDOMNode('#text', this._decodeXML(text));\n nodes.push(node);\n if (node.textContent.trim().length === 0) {\n return '><'; // Ignore whitespace.\n }\n return '>' + length + ',<';\n });\n\n // Extract all CDATA nodes.\n data = data.replace(//g,\n function(all, text) {\n let length = nodes.length;\n let node = new SimpleDOMNode('#text', text);\n nodes.push(node);\n return length + ',';\n });\n\n // Until nodes without '<' and '>' content are present, replace them\n // with a numeric index in the nodes.\n let regex =\n /<([\\w\\:]+)((?:[\\s\\w:=]|'[^']*'|\"[^\"]*\")*)(?:\\/>|>([\\d,]*)<\\/[^>]+>)/g;\n let lastLength;\n do {\n lastLength = nodes.length;\n data = data.replace(regex, function(all, name, attrs, data) {\n let length = nodes.length;\n let node = new SimpleDOMNode(name);\n let children = [];\n if (data) {\n data = data.split(',');\n data.pop();\n data.forEach(function(child) {\n let childNode = nodes[+child];\n childNode.parentNode = node;\n children.push(childNode);\n });\n }\n\n node.childNodes = children;\n nodes.push(node);\n return length + ',';\n });\n } while (lastLength < nodes.length);\n\n // We should only have one root index left, which will be last in the nodes.\n return {\n documentElement: nodes.pop(),\n };\n }\n\n _decodeXML(text) {\n if (!text.includes('&')) {\n return text;\n }\n\n return text.replace(/&(#(x[0-9a-f]+|\\d+)|\\w+);/gi,\n function(all, entityName, number) {\n if (number) {\n if (number[0] === 'x') {\n number = parseInt(number.substring(1), 16);\n } else {\n number = +number;\n }\n return String.fromCharCode(number);\n }\n\n switch (entityName) {\n case 'amp':\n return '&';\n case 'lt':\n return '<';\n case 'gt':\n return '>';\n case 'quot':\n return '\\\"';\n case 'apos':\n return '\\'';\n }\n return '&' + entityName + ';';\n });\n }\n}\n\nvar RenderingCancelledException = (function RenderingCancelledException() {\n function RenderingCancelledException(msg, type) {\n this.message = msg;\n this.type = type;\n }\n\n RenderingCancelledException.prototype = new Error();\n RenderingCancelledException.prototype.name = 'RenderingCancelledException';\n RenderingCancelledException.constructor = RenderingCancelledException;\n\n return RenderingCancelledException;\n})();\n\nconst LinkTarget = {\n NONE: 0, // Default value.\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4,\n};\n\nconst LinkTargetStringMap = [\n '',\n '_self',\n '_blank',\n '_parent',\n '_top'\n];\n\n/**\n * @typedef ExternalLinkParameters\n * @typedef {Object} ExternalLinkParameters\n * @property {string} url - An absolute URL.\n * @property {LinkTarget} target - (optional) The link target.\n * The default value is `LinkTarget.NONE`.\n * @property {string} rel - (optional) The link relationship.\n * The default value is `DEFAULT_LINK_REL`.\n */\n\n/**\n * Adds various attributes (href, title, target, rel) to hyperlinks.\n * @param {HTMLLinkElement} link - The link element.\n * @param {ExternalLinkParameters} params\n */\nfunction addLinkAttributes(link, { url, target, rel, } = {}) {\n link.href = link.title = (url ? removeNullCharacters(url) : '');\n\n if (url) {\n const LinkTargetValues = Object.values(LinkTarget);\n let targetIndex =\n LinkTargetValues.includes(target) ? target : LinkTarget.NONE;\n link.target = LinkTargetStringMap[targetIndex];\n\n link.rel = (typeof rel === 'string' ? rel : DEFAULT_LINK_REL);\n }\n}\n\n// Gets the file name from a given URL.\nfunction getFilenameFromUrl(url) {\n var anchor = url.indexOf('#');\n var query = url.indexOf('?');\n var end = Math.min(\n anchor > 0 ? anchor : url.length,\n query > 0 ? query : url.length);\n return url.substring(url.lastIndexOf('/', end) + 1, end);\n}\n\nfunction getDefaultSetting(id) {\n // The list of the settings and their default is maintained for backward\n // compatibility and shall not be extended or modified. See also global.js.\n var globalSettings = globalScope.PDFJS;\n switch (id) {\n case 'pdfBug':\n return globalSettings ? globalSettings.pdfBug : false;\n case 'disableAutoFetch':\n return globalSettings ? globalSettings.disableAutoFetch : false;\n case 'disableStream':\n return globalSettings ? globalSettings.disableStream : false;\n case 'disableRange':\n return globalSettings ? globalSettings.disableRange : false;\n case 'disableFontFace':\n return globalSettings ? globalSettings.disableFontFace : false;\n case 'disableCreateObjectURL':\n return globalSettings ? globalSettings.disableCreateObjectURL : false;\n case 'cMapUrl':\n return globalSettings ? globalSettings.cMapUrl : null;\n case 'cMapPacked':\n return globalSettings ? globalSettings.cMapPacked : false;\n case 'maxImageSize':\n return globalSettings ? globalSettings.maxImageSize : -1;\n case 'isEvalSupported':\n return globalSettings ? globalSettings.isEvalSupported : true;\n default:\n throw new Error('Unknown default setting: ' + id);\n }\n}\n\nclass StatTimer {\n constructor(enable = true) {\n this.enabled = !!enable;\n this.started = Object.create(null);\n this.times = [];\n }\n\n time(name) {\n if (!this.enabled) {\n return;\n }\n if (name in this.started) {\n warn('Timer is already running for ' + name);\n }\n this.started[name] = Date.now();\n }\n\n timeEnd(name) {\n if (!this.enabled) {\n return;\n }\n if (!(name in this.started)) {\n warn('Timer has not been started for ' + name);\n }\n this.times.push({\n 'name': name,\n 'start': this.started[name],\n 'end': Date.now(),\n });\n // Remove timer from started so it can be called again.\n delete this.started[name];\n }\n\n toString() {\n let times = this.times;\n // Find the longest name for padding purposes.\n let out = '', longest = 0;\n for (let i = 0, ii = times.length; i < ii; ++i) {\n let name = times[i]['name'];\n if (name.length > longest) {\n longest = name.length;\n }\n }\n for (let i = 0, ii = times.length; i < ii; ++i) {\n let span = times[i];\n let duration = span.end - span.start;\n out += `${span['name'].padEnd(longest)} ${duration}ms\\n`;\n }\n return out;\n }\n}\n\n/**\n * Helps avoid having to initialize {StatTimer} instances, e.g. one for every\n * page, in cases where the collected stats are not actually being used.\n * This (dummy) class can thus, since all its methods are `static`, be directly\n * shared between multiple call-sites without the need to be initialized first.\n *\n * NOTE: This must implement the same interface as {StatTimer}.\n */\nclass DummyStatTimer {\n constructor() {\n unreachable('Cannot initialize DummyStatTimer.');\n }\n\n static time(name) {}\n\n static timeEnd(name) {}\n\n static toString() {\n return '';\n }\n}\n\nexport {\n RenderingCancelledException,\n addLinkAttributes,\n getFilenameFromUrl,\n LinkTarget,\n getDefaultSetting,\n DEFAULT_LINK_REL,\n DOMCanvasFactory,\n DOMCMapReaderFactory,\n DOMSVGFactory,\n SimpleXMLParser,\n StatTimer,\n DummyStatTimer,\n};\n\n\n\n// WEBPACK FOOTER //\n// src/display/dom_utils.js","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_hide.js","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_descriptors.js","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_fails.js","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_cof.js","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals module */\n\nmodule.exports =\n (typeof window !== 'undefined' && window.Math === Math) ? window :\n // eslint-disable-next-line no-undef\n (typeof global !== 'undefined' && global.Math === Math) ? global :\n (typeof self !== 'undefined' && self.Math === Math) ? self : {};\n\n\n\n// WEBPACK FOOTER //\n// src/shared/global_scope.js","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_object-dp.js","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_a-function.js","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_to-iobject.js","module.exports = {};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_iterators.js","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_uid.js","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_defined.js","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_object-keys.js","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_set-to-string-tag.js","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_for-of.js","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals module, process */\n\nmodule.exports = function isNodeJS() {\n return typeof process === 'object' && process + '' === '[object process]';\n};\n\n\n\n// WEBPACK FOOTER //\n// src/shared/is_node.js","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_dom-create.js","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_property-desc.js","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_iobject.js","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_to-length.js","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_to-integer.js","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_classof.js","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_shared-key.js","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_to-object.js","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_an-instance.js","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_new-promise-capability.js","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_redefine-all.js","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_meta.js","exports.f = {}.propertyIsEnumerable;\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_object-pie.js","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst GlobalWorkerOptions = Object.create(null);\n\n/**\n * Defines global port for worker process. Overrides the `workerSrc` option.\n * @var {Object}\n */\nGlobalWorkerOptions.workerPort = (GlobalWorkerOptions.workerPort === undefined ?\n null : GlobalWorkerOptions.workerPort);\n\n/**\n * Path and filename of the worker file. Required when workers are enabled in\n * development mode. If unspecified in production builds, the worker will be\n * loaded based on the location of the `pdf.js` file.\n *\n * NOTE: The `workerSrc` should always be set in custom applications, in order\n * to prevent issues caused by third-party frameworks and libraries.\n * @var {string}\n */\nGlobalWorkerOptions.workerSrc = (GlobalWorkerOptions.workerSrc === undefined ?\n '' : GlobalWorkerOptions.workerSrc);\n\nexport {\n GlobalWorkerOptions,\n};\n\n\n\n// WEBPACK FOOTER //\n// src/display/worker_options.js","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert, MissingPDFException, UnexpectedResponseException\n} from '../shared/util';\nimport {\n getFilenameFromContentDispositionHeader\n} from './content_disposition';\n\nfunction validateRangeRequestCapabilities({ getResponseHeader, isHttp,\n rangeChunkSize, disableRange, }) {\n assert(rangeChunkSize > 0, 'Range chunk size must be larger than zero');\n let returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined,\n };\n if (disableRange || !isHttp) {\n return returnValues;\n }\n if (getResponseHeader('Accept-Ranges') !== 'bytes') {\n return returnValues;\n }\n\n let contentEncoding = getResponseHeader('Content-Encoding') || 'identity';\n if (contentEncoding !== 'identity') {\n return returnValues;\n }\n\n let length = parseInt(getResponseHeader('Content-Length'), 10);\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n\n returnValues.suggestedLength = length;\n if (length <= 2 * rangeChunkSize) {\n // The file size is smaller than the size of two chunks, so it does not\n // make any sense to abort the request and retry with a range request.\n return returnValues;\n }\n\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\n\nfunction extractFilenameFromHeader(getResponseHeader) {\n const contentDisposition = getResponseHeader('Content-Disposition');\n if (contentDisposition) {\n let filename = getFilenameFromContentDispositionHeader(contentDisposition);\n if (/\\.pdf$/i.test(filename)) {\n return filename;\n }\n }\n return null;\n}\n\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && /^file:/.test(url)) {\n return new MissingPDFException('Missing PDF \"' + url + '\".');\n }\n return new UnexpectedResponseException(\n 'Unexpected server response (' + status +\n ') while retrieving PDF \"' + url + '\".', status);\n}\n\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\nexport {\n createResponseStatusError,\n extractFilenameFromHeader,\n validateRangeRequestCapabilities,\n validateResponseStatus,\n};\n\n\n\n// WEBPACK FOOTER //\n// src/display/network_utils.js","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_ie8-dom-define.js","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_to-primitive.js","var global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n return store[key] || (store[key] = {});\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_shared.js","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_array-includes.js","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_add-to-unscopables.js","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/es6.object.to-string.js","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = (!BUGGY && $native) || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_iter-define.js","module.exports = false;\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_library.js","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_enum-bug-keys.js","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_html.js","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/web.dom.iterable.js","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_species-constructor.js","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_task.js","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_perform.js","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_promise-resolve.js","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_iter-detect.js","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_array-methods.js","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/core-js/modules/_validate-collection.js","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals requirejs, __non_webpack_require__ */\n\nimport {\n assert, createPromiseCapability, getVerbosityLevel, info, InvalidPDFException,\n isArrayBuffer, isNum, isSameOrigin, MessageHandler, MissingPDFException,\n NativeImageDecoding, PageViewport, PasswordException, setVerbosityLevel,\n stringToBytes, UnexpectedResponseException, UnknownErrorException,\n unreachable, Util, warn\n} from '../shared/util';\nimport {\n DOMCanvasFactory, DOMCMapReaderFactory, DummyStatTimer, getDefaultSetting,\n RenderingCancelledException, StatTimer\n} from './dom_utils';\nimport { FontFaceObject, FontLoader } from './font_loader';\nimport { CanvasGraphics } from './canvas';\nimport globalScope from '../shared/global_scope';\nimport { GlobalWorkerOptions } from './worker_options';\nimport { Metadata } from './metadata';\nimport { PDFDataTransportStream } from './transport_stream';\nimport { WebGLContext } from './webgl';\n\nvar DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536\n\nlet isWorkerDisabled = false;\nlet workerSrc;\n\nconst pdfjsFilePath =\n typeof PDFJSDev !== 'undefined' &&\n PDFJSDev.test('PRODUCTION && !(MOZCENTRAL || FIREFOX)') &&\n typeof document !== 'undefined' && document.currentScript ?\n document.currentScript.src : null;\n\nvar fakeWorkerFilesLoader = null;\nvar useRequireEnsure = false;\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC')) {\n // For GENERIC build we need to add support for different fake file loaders\n // for different frameworks.\n if (typeof window === 'undefined') {\n // node.js - disable worker and set require.ensure.\n isWorkerDisabled = true;\n if (typeof __non_webpack_require__.ensure === 'undefined') {\n __non_webpack_require__.ensure = __non_webpack_require__('node-ensure');\n }\n useRequireEnsure = true;\n } else if (typeof __non_webpack_require__ !== 'undefined' &&\n typeof __non_webpack_require__.ensure === 'function') {\n useRequireEnsure = true;\n }\n if (typeof requirejs !== 'undefined' && requirejs.toUrl) {\n workerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js');\n }\n var dynamicLoaderSupported =\n typeof requirejs !== 'undefined' && requirejs.load;\n fakeWorkerFilesLoader = useRequireEnsure ? (function (callback) {\n __non_webpack_require__.ensure([], function () {\n var worker;\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('LIB')) {\n worker = __non_webpack_require__('../pdf.worker.js');\n } else {\n worker = __non_webpack_require__('./pdf.worker.js');\n }\n callback(worker.WorkerMessageHandler);\n });\n }) : dynamicLoaderSupported ? (function (callback) {\n requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) {\n callback(worker.WorkerMessageHandler);\n });\n }) : null;\n}\n\n/**\n * @typedef {function} IPDFStreamFactory\n * @param {DocumentInitParameters} params The document initialization\n * parameters. The \"url\" key is always present.\n * @return {IPDFStream}\n */\n\n/** @type IPDFStreamFactory */\nvar createPDFNetworkStream;\n\n/**\n * Sets the function that instantiates a IPDFStream as an alternative PDF data\n * transport.\n * @param {IPDFStreamFactory} pdfNetworkStreamFactory - the factory function\n * that takes document initialization parameters (including a \"url\") and returns\n * an instance of IPDFStream.\n */\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\n/**\n * Document initialization / loading parameters object.\n *\n * @typedef {Object} DocumentInitParameters\n * @property {string} url - The URL of the PDF.\n * @property {TypedArray|Array|string} data - Binary PDF data. Use typed arrays\n * (Uint8Array) to improve the memory usage. If PDF data is BASE64-encoded,\n * use atob() to convert it to a binary string first.\n * @property {Object} httpHeaders - Basic authentication headers.\n * @property {boolean} withCredentials - Indicates whether or not cross-site\n * Access-Control requests should be made using credentials such as cookies\n * or authorization headers. The default is false.\n * @property {string} password - For decrypting password-protected PDFs.\n * @property {TypedArray} initialData - A typed array with the first portion or\n * all of the pdf data. Used by the extension since some data is already\n * loaded before the switch to range requests.\n * @property {number} length - The PDF file length. It's used for progress\n * reports and range requests operations.\n * @property {PDFDataRangeTransport} range\n * @property {number} rangeChunkSize - Optional parameter to specify\n * maximum number of bytes fetched per range request. The default value is\n * 2^16 = 65536.\n * @property {PDFWorker} worker - (optional) The worker that will be used for\n * the loading and parsing of the PDF data.\n * @property {boolean} postMessageTransfers - (optional) Enables transfer usage\n * in postMessage for ArrayBuffers. The default value is `true`.\n * @property {number} verbosity - (optional) Controls the logging level; the\n * constants from {VerbosityLevel} should be used.\n * @property {string} docBaseUrl - (optional) The base URL of the document,\n * used when attempting to recover valid absolute URLs for annotations, and\n * outline items, that (incorrectly) only specify relative URLs.\n * @property {string} nativeImageDecoderSupport - (optional) Strategy for\n * decoding certain (simple) JPEG images in the browser. This is useful for\n * environments without DOM image and canvas support, such as e.g. Node.js.\n * Valid values are 'decode', 'display' or 'none'; where 'decode' is intended\n * for browsers with full image/canvas support, 'display' for environments\n * with limited image support through stubs (useful for SVG conversion),\n * and 'none' where JPEG images will be decoded entirely by PDF.js.\n * The default value is 'decode'.\n * @property {Object} CMapReaderFactory - (optional) The factory that will be\n * used when reading built-in CMap files. Providing a custom factory is useful\n * for environments without `XMLHttpRequest` support, such as e.g. Node.js.\n * The default value is {DOMCMapReaderFactory}.\n * @property {boolean} stopAtErrors - (optional) Reject certain promises, e.g.\n * `getOperatorList`, `getTextContent`, and `RenderTask`, when the associated\n * PDF data cannot be successfully parsed, instead of attempting to recover\n * whatever possible of the data. The default value is `false`.\n */\n\n/**\n * @typedef {Object} PDFDocumentStats\n * @property {Array} streamTypes - Used stream types in the document (an item\n * is set to true if specific stream ID was used in the document).\n * @property {Array} fontTypes - Used font type in the document (an item is set\n * to true if specific font ID was used in the document).\n */\n\n/**\n * This is the main entry point for loading a PDF and interacting with it.\n * NOTE: If a URL is used to fetch the PDF data a standard XMLHttpRequest(XHR)\n * is used, which means it must follow the same origin rules that any XHR does\n * e.g. No cross domain requests without CORS.\n *\n * @param {string|TypedArray|DocumentInitParameters|PDFDataRangeTransport} src\n * Can be a url to where a PDF is located, a typed array (Uint8Array)\n * already populated with data or parameter object.\n *\n * @return {PDFDocumentLoadingTask}\n */\nfunction getDocument(src) {\n var task = new PDFDocumentLoadingTask();\n\n var source;\n if (typeof src === 'string') {\n source = { url: src, };\n } else if (isArrayBuffer(src)) {\n source = { data: src, };\n } else if (src instanceof PDFDataRangeTransport) {\n source = { range: src, };\n } else {\n if (typeof src !== 'object') {\n throw new Error('Invalid parameter in getDocument, ' +\n 'need either Uint8Array, string or a parameter object');\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error(\n 'Invalid parameter object: need either .data, .range or .url');\n }\n\n source = src;\n }\n\n var params = {};\n var rangeTransport = null;\n let worker = null;\n var CMapReaderFactory = DOMCMapReaderFactory;\n\n for (var key in source) {\n if (key === 'url' && typeof window !== 'undefined') {\n // The full path is required in the 'url' field.\n params[key] = new URL(source[key], window.location).href;\n continue;\n } else if (key === 'range') {\n rangeTransport = source[key];\n continue;\n } else if (key === 'worker') {\n worker = source[key];\n continue;\n } else if (key === 'data' && !(source[key] instanceof Uint8Array)) {\n // Converting string or array-like data to Uint8Array.\n var pdfBytes = source[key];\n if (typeof pdfBytes === 'string') {\n params[key] = stringToBytes(pdfBytes);\n } else if (typeof pdfBytes === 'object' && pdfBytes !== null &&\n !isNaN(pdfBytes.length)) {\n params[key] = new Uint8Array(pdfBytes);\n } else if (isArrayBuffer(pdfBytes)) {\n params[key] = new Uint8Array(pdfBytes);\n } else {\n throw new Error('Invalid PDF binary data: either typed array, ' +\n 'string or array-like object is expected in the ' +\n 'data property.');\n }\n continue;\n } else if (key === 'CMapReaderFactory') {\n CMapReaderFactory = source[key];\n continue;\n }\n params[key] = source[key];\n }\n\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.ignoreErrors = params.stopAtErrors !== true;\n\n const nativeImageDecoderValues = Object.values(NativeImageDecoding);\n if (params.nativeImageDecoderSupport === undefined ||\n !nativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) {\n params.nativeImageDecoderSupport = NativeImageDecoding.DECODE;\n }\n\n // Set the main-thread verbosity level.\n setVerbosityLevel(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n postMessageTransfers: params.postMessageTransfers,\n verbosity: params.verbosity,\n };\n // Worker was not provided -- creating and owning our own. If message port\n // is specified in global worker options, using it.\n let workerPort = GlobalWorkerOptions.workerPort;\n if (workerPort) {\n workerParams.port = workerPort;\n worker = PDFWorker.fromPort(workerParams);\n } else {\n worker = new PDFWorker(workerParams);\n }\n task._worker = worker;\n }\n var docId = task.docId;\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error('Loading aborted');\n }\n return _fetchDocument(worker, params, rangeTransport, docId).then(\n function (workerId) {\n if (task.destroyed) {\n throw new Error('Loading aborted');\n }\n\n let networkStream;\n if (rangeTransport) {\n networkStream = new PDFDataTransportStream(params, rangeTransport);\n } else if (!params.data) {\n networkStream = createPDFNetworkStream(params);\n }\n\n var messageHandler = new MessageHandler(docId, workerId, worker.port);\n messageHandler.postMessageTransfers = worker.postMessageTransfers;\n var transport = new WorkerTransport(messageHandler, task, networkStream,\n CMapReaderFactory);\n task._transport = transport;\n messageHandler.send('Ready', null);\n });\n }).catch(task._capability.reject);\n\n return task;\n}\n\n/**\n * Starts fetching of specified PDF document/data.\n * @param {PDFWorker} worker\n * @param {Object} source\n * @param {PDFDataRangeTransport} pdfDataRangeTransport\n * @param {string} docId Unique document id, used as MessageHandler id.\n * @returns {Promise} The promise, which is resolved when worker id of\n * MessageHandler is known.\n * @private\n */\nfunction _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n return Promise.reject(new Error('Worker was destroyed'));\n }\n let apiVersion =\n typeof PDFJSDev !== 'undefined' ? PDFJSDev.eval('BUNDLE_VERSION') : null;\n\n source.disableRange = getDefaultSetting('disableRange');\n source.disableAutoFetch = getDefaultSetting('disableAutoFetch');\n source.disableStream = getDefaultSetting('disableStream');\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n }\n return worker.messageHandler.sendWithPromise('GetDocRequest', {\n docId,\n apiVersion,\n source: {\n data: source.data,\n url: source.url,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length,\n },\n maxImageSize: getDefaultSetting('maxImageSize'),\n disableFontFace: getDefaultSetting('disableFontFace'),\n disableCreateObjectURL: getDefaultSetting('disableCreateObjectURL'),\n postMessageTransfers: worker.postMessageTransfers,\n docBaseUrl: source.docBaseUrl,\n nativeImageDecoderSupport: source.nativeImageDecoderSupport,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: getDefaultSetting('isEvalSupported'),\n }).then(function (workerId) {\n if (worker.destroyed) {\n throw new Error('Worker was destroyed');\n }\n return workerId;\n });\n}\n\n/**\n * PDF document loading operation.\n * @class\n * @alias PDFDocumentLoadingTask\n */\nvar PDFDocumentLoadingTask = (function PDFDocumentLoadingTaskClosure() {\n var nextDocumentId = 0;\n\n /** @constructs PDFDocumentLoadingTask */\n function PDFDocumentLoadingTask() {\n this._capability = createPromiseCapability();\n this._transport = null;\n this._worker = null;\n\n /**\n * Unique document loading task id -- used in MessageHandlers.\n * @type {string}\n */\n this.docId = 'd' + (nextDocumentId++);\n\n /**\n * Shows if loading task is destroyed.\n * @type {boolean}\n */\n this.destroyed = false;\n\n /**\n * Callback to request a password if wrong or no password was provided.\n * The callback receives two parameters: function that needs to be called\n * with new password and reason (see {PasswordResponses}).\n */\n this.onPassword = null;\n\n /**\n * Callback to be able to monitor the loading progress of the PDF file\n * (necessary to implement e.g. a loading bar). The callback receives\n * an {Object} with the properties: {number} loaded and {number} total.\n */\n this.onProgress = null;\n\n /**\n * Callback to when unsupported feature is used. The callback receives\n * an {UNSUPPORTED_FEATURES} argument.\n */\n this.onUnsupportedFeature = null;\n }\n\n PDFDocumentLoadingTask.prototype =\n /** @lends PDFDocumentLoadingTask.prototype */ {\n /**\n * @return {Promise}\n */\n get promise() {\n return this._capability.promise;\n },\n\n /**\n * Aborts all network requests and destroys worker.\n * @return {Promise} A promise that is resolved after destruction activity\n * is completed.\n */\n destroy() {\n this.destroyed = true;\n\n var transportDestroyed = !this._transport ? Promise.resolve() :\n this._transport.destroy();\n return transportDestroyed.then(() => {\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n });\n },\n\n /**\n * Registers callbacks to indicate the document loading completion.\n *\n * @param {function} onFulfilled The callback for the loading completion.\n * @param {function} onRejected The callback for the loading failure.\n * @return {Promise} A promise that is resolved after the onFulfilled or\n * onRejected callback.\n */\n then: function PDFDocumentLoadingTask_then(onFulfilled, onRejected) {\n return this.promise.then.apply(this.promise, arguments);\n },\n };\n\n return PDFDocumentLoadingTask;\n})();\n\n/**\n * Abstract class to support range requests file loading.\n * @class\n * @alias PDFDataRangeTransport\n * @param {number} length\n * @param {Uint8Array} initialData\n */\nvar PDFDataRangeTransport = (function pdfDataRangeTransportClosure() {\n function PDFDataRangeTransport(length, initialData) {\n this.length = length;\n this.initialData = initialData;\n\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._readyCapability = createPromiseCapability();\n }\n PDFDataRangeTransport.prototype =\n /** @lends PDFDataRangeTransport.prototype */ {\n addRangeListener:\n function PDFDataRangeTransport_addRangeListener(listener) {\n this._rangeListeners.push(listener);\n },\n\n addProgressListener:\n function PDFDataRangeTransport_addProgressListener(listener) {\n this._progressListeners.push(listener);\n },\n\n addProgressiveReadListener:\n function PDFDataRangeTransport_addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n },\n\n onDataRange: function PDFDataRangeTransport_onDataRange(begin, chunk) {\n var listeners = this._rangeListeners;\n for (var i = 0, n = listeners.length; i < n; ++i) {\n listeners[i](begin, chunk);\n }\n },\n\n onDataProgress: function PDFDataRangeTransport_onDataProgress(loaded) {\n this._readyCapability.promise.then(() => {\n var listeners = this._progressListeners;\n for (var i = 0, n = listeners.length; i < n; ++i) {\n listeners[i](loaded);\n }\n });\n },\n\n onDataProgressiveRead:\n function PDFDataRangeTransport_onDataProgress(chunk) {\n this._readyCapability.promise.then(() => {\n var listeners = this._progressiveReadListeners;\n for (var i = 0, n = listeners.length; i < n; ++i) {\n listeners[i](chunk);\n }\n });\n },\n\n transportReady: function PDFDataRangeTransport_transportReady() {\n this._readyCapability.resolve();\n },\n\n requestDataRange:\n function PDFDataRangeTransport_requestDataRange(begin, end) {\n unreachable('Abstract method PDFDataRangeTransport.requestDataRange');\n },\n\n abort: function PDFDataRangeTransport_abort() {\n },\n };\n return PDFDataRangeTransport;\n})();\n\n/**\n * Proxy to a PDFDocument in the worker thread. Also, contains commonly used\n * properties that can be read synchronously.\n * @class\n * @alias PDFDocumentProxy\n */\nvar PDFDocumentProxy = (function PDFDocumentProxyClosure() {\n function PDFDocumentProxy(pdfInfo, transport, loadingTask) {\n this.pdfInfo = pdfInfo;\n this.transport = transport;\n this.loadingTask = loadingTask;\n }\n PDFDocumentProxy.prototype = /** @lends PDFDocumentProxy.prototype */ {\n /**\n * @return {number} Total number of pages the PDF contains.\n */\n get numPages() {\n return this.pdfInfo.numPages;\n },\n /**\n * @return {string} A unique ID to identify a PDF. Not guaranteed to be\n * unique.\n */\n get fingerprint() {\n return this.pdfInfo.fingerprint;\n },\n /**\n * @param {number} pageNumber The page number to get. The first page is 1.\n * @return {Promise} A promise that is resolved with a {@link PDFPageProxy}\n * object.\n */\n getPage(pageNumber) {\n return this.transport.getPage(pageNumber);\n },\n /**\n * @param {{num: number, gen: number}} ref The page reference. Must have\n * the 'num' and 'gen' properties.\n * @return {Promise} A promise that is resolved with the page index that is\n * associated with the reference.\n */\n getPageIndex: function PDFDocumentProxy_getPageIndex(ref) {\n return this.transport.getPageIndex(ref);\n },\n /**\n * @return {Promise} A promise that is resolved with a lookup table for\n * mapping named destinations to reference numbers.\n *\n * This can be slow for large documents: use getDestination instead\n */\n getDestinations: function PDFDocumentProxy_getDestinations() {\n return this.transport.getDestinations();\n },\n /**\n * @param {string} id The named destination to get.\n * @return {Promise} A promise that is resolved with all information\n * of the given named destination.\n */\n getDestination: function PDFDocumentProxy_getDestination(id) {\n return this.transport.getDestination(id);\n },\n /**\n * @return {Promise} A promise that is resolved with:\n * an Array containing the pageLabels that correspond to the pageIndexes,\n * or `null` when no pageLabels are present in the PDF file.\n */\n getPageLabels: function PDFDocumentProxy_getPageLabels() {\n return this.transport.getPageLabels();\n },\n /**\n * @return {Promise} A promise that is resolved with a {string} containing\n * the PageMode name.\n */\n getPageMode() {\n return this.transport.getPageMode();\n },\n /**\n * @return {Promise} A promise that is resolved with a lookup table for\n * mapping named attachments to their content.\n */\n getAttachments: function PDFDocumentProxy_getAttachments() {\n return this.transport.getAttachments();\n },\n /**\n * @return {Promise} A promise that is resolved with an {Array} of all the\n * JavaScript strings in the name tree, or `null` if no JavaScript exists.\n */\n getJavaScript() {\n return this.transport.getJavaScript();\n },\n /**\n * @return {Promise} A promise that is resolved with an {Array} that is a\n * tree outline (if it has one) of the PDF. The tree is in the format of:\n * [\n * {\n * title: string,\n * bold: boolean,\n * italic: boolean,\n * color: rgb Uint8Array,\n * dest: dest obj,\n * url: string,\n * items: array of more items like this\n * },\n * ...\n * ].\n */\n getOutline: function PDFDocumentProxy_getOutline() {\n return this.transport.getOutline();\n },\n /**\n * @return {Promise} A promise that is resolved with an {Object} that has\n * info and metadata properties. Info is an {Object} filled with anything\n * available in the information dictionary and similarly metadata is a\n * {Metadata} object with information from the metadata section of the PDF.\n */\n getMetadata: function PDFDocumentProxy_getMetadata() {\n return this.transport.getMetadata();\n },\n /**\n * @return {Promise} A promise that is resolved with a TypedArray that has\n * the raw data from the PDF.\n */\n getData: function PDFDocumentProxy_getData() {\n return this.transport.getData();\n },\n /**\n * @return {Promise} A promise that is resolved when the document's data\n * is loaded. It is resolved with an {Object} that contains the length\n * property that indicates size of the PDF data in bytes.\n */\n getDownloadInfo: function PDFDocumentProxy_getDownloadInfo() {\n return this.transport.downloadInfoCapability.promise;\n },\n /**\n * @return {Promise} A promise this is resolved with current stats about\n * document structures (see {@link PDFDocumentStats}).\n */\n getStats: function PDFDocumentProxy_getStats() {\n return this.transport.getStats();\n },\n /**\n * Cleans up resources allocated by the document, e.g. created @font-face.\n */\n cleanup: function PDFDocumentProxy_cleanup() {\n this.transport.startCleanup();\n },\n /**\n * Destroys current document instance and terminates worker.\n */\n destroy: function PDFDocumentProxy_destroy() {\n return this.loadingTask.destroy();\n },\n };\n return PDFDocumentProxy;\n})();\n\n/**\n * Page getTextContent parameters.\n *\n * @typedef {Object} getTextContentParameters\n * @property {boolean} normalizeWhitespace - replaces all occurrences of\n * whitespace with standard spaces (0x20). The default value is `false`.\n * @property {boolean} disableCombineTextItems - do not attempt to combine\n * same line {@link TextItem}'s. The default value is `false`.\n */\n\n/**\n * Page text content.\n *\n * @typedef {Object} TextContent\n * @property {array} items - array of {@link TextItem}\n * @property {Object} styles - {@link TextStyles} objects, indexed by font name.\n */\n\n/**\n * Page text content part.\n *\n * @typedef {Object} TextItem\n * @property {string} str - text content.\n * @property {string} dir - text direction: 'ttb', 'ltr' or 'rtl'.\n * @property {array} transform - transformation matrix.\n * @property {number} width - width in device space.\n * @property {number} height - height in device space.\n * @property {string} fontName - font name used by pdf.js for converted font.\n */\n\n/**\n * Text style.\n *\n * @typedef {Object} TextStyle\n * @property {number} ascent - font ascent.\n * @property {number} descent - font descent.\n * @property {boolean} vertical - text is in vertical mode.\n * @property {string} fontFamily - possible font family\n */\n\n/**\n * Page annotation parameters.\n *\n * @typedef {Object} GetAnnotationsParameters\n * @property {string} intent - Determines the annotations that will be fetched,\n * can be either 'display' (viewable annotations) or 'print'\n * (printable annotations).\n * If the parameter is omitted, all annotations are fetched.\n */\n\n/**\n * Page render parameters.\n *\n * @typedef {Object} RenderParameters\n * @property {Object} canvasContext - A 2D context of a DOM Canvas object.\n * @property {PageViewport} viewport - Rendering viewport obtained by\n * calling of PDFPage.getViewport method.\n * @property {string} intent - Rendering intent, can be 'display' or 'print'\n * (default value is 'display').\n * @property {boolean} enableWebGL - (optional) Enables WebGL accelerated\n * rendering for some operations. The default value is `false`.\n * @property {boolean} renderInteractiveForms - (optional) Whether or not\n * interactive form elements are rendered in the display\n * layer. If so, we do not render them on canvas as well.\n * @property {Array} transform - (optional) Additional transform, applied\n * just before viewport transform.\n * @property {Object} imageLayer - (optional) An object that has beginLayout,\n * endLayout and appendImage functions.\n * @property {Object} canvasFactory - (optional) The factory that will be used\n * when creating canvases. The default value is\n * {DOMCanvasFactory}.\n * @property {Object} background - (optional) Background to use for the canvas.\n * Can use any valid canvas.fillStyle: A DOMString parsed as\n * CSS value, a CanvasGradient object (a linear or\n * radial gradient) or a CanvasPattern object (a repetitive\n * image). The default value is 'rgb(255,255,255)'.\n */\n\n/**\n * PDF page operator list.\n *\n * @typedef {Object} PDFOperatorList\n * @property {Array} fnArray - Array containing the operator functions.\n * @property {Array} argsArray - Array containing the arguments of the\n * functions.\n */\n\n/**\n * Proxy to a PDFPage in the worker thread.\n * @class\n * @alias PDFPageProxy\n */\nvar PDFPageProxy = (function PDFPageProxyClosure() {\n function PDFPageProxy(pageIndex, pageInfo, transport) {\n this.pageIndex = pageIndex;\n this.pageInfo = pageInfo;\n this.transport = transport;\n this._stats = (getDefaultSetting('pdfBug') ?\n new StatTimer() : DummyStatTimer);\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this.intentStates = Object.create(null);\n this.destroyed = false;\n }\n PDFPageProxy.prototype = /** @lends PDFPageProxy.prototype */ {\n /**\n * @return {number} Page number of the page. First page is 1.\n */\n get pageNumber() {\n return this.pageIndex + 1;\n },\n /**\n * @return {number} The number of degrees the page is rotated clockwise.\n */\n get rotate() {\n return this.pageInfo.rotate;\n },\n /**\n * @return {Object} The reference that points to this page. It has 'num' and\n * 'gen' properties.\n */\n get ref() {\n return this.pageInfo.ref;\n },\n /**\n * @return {number} The default size of units in 1/72nds of an inch.\n */\n get userUnit() {\n return this.pageInfo.userUnit;\n },\n /**\n * @return {Array} An array of the visible portion of the PDF page in the\n * user space units - [x1, y1, x2, y2].\n */\n get view() {\n return this.pageInfo.view;\n },\n /**\n * @param {number} scale The desired scale of the viewport.\n * @param {number} rotate Degrees to rotate the viewport. If omitted this\n * defaults to the page rotation.\n * @param {boolean} dontFlip (optional) If true, axis Y will not be flipped.\n * @return {PageViewport} Contains 'width' and 'height' properties\n * along with transforms required for rendering.\n */\n getViewport(scale, rotate = this.rotate, dontFlip = false) {\n return new PageViewport(this.view, scale, rotate, 0, 0, dontFlip);\n },\n /**\n * @param {GetAnnotationsParameters} params - Annotation parameters.\n * @return {Promise} A promise that is resolved with an {Array} of the\n * annotation objects.\n */\n getAnnotations: function PDFPageProxy_getAnnotations(params) {\n var intent = (params && params.intent) || null;\n\n if (!this.annotationsPromise || this.annotationsIntent !== intent) {\n this.annotationsPromise = this.transport.getAnnotations(this.pageIndex,\n intent);\n this.annotationsIntent = intent;\n }\n return this.annotationsPromise;\n },\n /**\n * Begins the process of rendering a page to the desired context.\n * @param {RenderParameters} params Page render parameters.\n * @return {RenderTask} An object that contains the promise, which\n * is resolved when the page finishes rendering.\n */\n render: function PDFPageProxy_render(params) {\n let stats = this._stats;\n stats.time('Overall');\n\n // If there was a pending destroy cancel it so no cleanup happens during\n // this call to render.\n this.pendingCleanup = false;\n\n var renderingIntent = (params.intent === 'print' ? 'print' : 'display');\n var canvasFactory = params.canvasFactory || new DOMCanvasFactory();\n let webGLContext = new WebGLContext({\n enable: params.enableWebGL,\n });\n\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n var intentState = this.intentStates[renderingIntent];\n\n // If there's no displayReadyCapability yet, then the operatorList\n // was never requested before. Make the request and create the promise.\n if (!intentState.displayReadyCapability) {\n intentState.receivingOperatorList = true;\n intentState.displayReadyCapability = createPromiseCapability();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n };\n\n stats.time('Page Request');\n this.transport.messageHandler.send('RenderPageRequest', {\n pageIndex: this.pageNumber - 1,\n intent: renderingIntent,\n renderInteractiveForms: (params.renderInteractiveForms === true),\n });\n }\n\n var complete = (error) => {\n var i = intentState.renderTasks.indexOf(internalRenderTask);\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n\n if (this.cleanupAfterRender) {\n this.pendingCleanup = true;\n }\n this._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n } else {\n internalRenderTask.capability.resolve();\n }\n stats.timeEnd('Rendering');\n stats.timeEnd('Overall');\n };\n\n var internalRenderTask = new InternalRenderTask(complete, params,\n this.objs,\n this.commonObjs,\n intentState.operatorList,\n this.pageNumber,\n canvasFactory,\n webGLContext);\n internalRenderTask.useRequestAnimationFrame = renderingIntent !== 'print';\n if (!intentState.renderTasks) {\n intentState.renderTasks = [];\n }\n intentState.renderTasks.push(internalRenderTask);\n var renderTask = internalRenderTask.task;\n\n intentState.displayReadyCapability.promise.then((transparency) => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n stats.time('Rendering');\n internalRenderTask.initializeGraphics(transparency);\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n\n return renderTask;\n },\n\n /**\n * @return {Promise} A promise resolved with an {@link PDFOperatorList}\n * object that represents page's operator list.\n */\n getOperatorList: function PDFPageProxy_getOperatorList() {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n\n var i = intentState.renderTasks.indexOf(opListTask);\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n }\n }\n\n var renderingIntent = 'oplist';\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n var intentState = this.intentStates[renderingIntent];\n var opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = {};\n opListTask.operatorListChanged = operatorListChanged;\n intentState.receivingOperatorList = true;\n intentState.opListReadCapability = createPromiseCapability();\n intentState.renderTasks = [];\n intentState.renderTasks.push(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n };\n\n this.transport.messageHandler.send('RenderPageRequest', {\n pageIndex: this.pageIndex,\n intent: renderingIntent,\n });\n }\n return intentState.opListReadCapability.promise;\n },\n\n /**\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @return {ReadableStream} ReadableStream to read textContent chunks.\n */\n streamTextContent(params = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n return this.transport.messageHandler.sendWithStream('GetTextContent', {\n pageIndex: this.pageNumber - 1,\n normalizeWhitespace: (params.normalizeWhitespace === true),\n combineTextItems: (params.disableCombineTextItems !== true),\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n },\n });\n },\n\n /**\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @return {Promise} That is resolved a {@link TextContent}\n * object that represent the page text content.\n */\n getTextContent: function PDFPageProxy_getTextContent(params) {\n params = params || {};\n let readableStream = this.streamTextContent(params);\n\n return new Promise(function(resolve, reject) {\n function pump() {\n reader.read().then(function({ value, done, }) {\n if (done) {\n resolve(textContent);\n return;\n }\n Util.extendObj(textContent.styles, value.styles);\n Util.appendToArray(textContent.items, value.items);\n pump();\n }, reject);\n }\n\n let reader = readableStream.getReader();\n let textContent = {\n items: [],\n styles: Object.create(null),\n };\n\n pump();\n });\n },\n\n /**\n * Destroys page object.\n */\n _destroy: function PDFPageProxy_destroy() {\n this.destroyed = true;\n this.transport.pageCache[this.pageIndex] = null;\n\n var waitOn = [];\n Object.keys(this.intentStates).forEach(function(intent) {\n if (intent === 'oplist') {\n // Avoid errors below, since the renderTasks are just stubs.\n return;\n }\n var intentState = this.intentStates[intent];\n intentState.renderTasks.forEach(function(renderTask) {\n var renderCompleted = renderTask.capability.promise.\n catch(function () {}); // ignoring failures\n waitOn.push(renderCompleted);\n renderTask.cancel();\n });\n }, this);\n this.objs.clear();\n this.annotationsPromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n },\n\n /**\n * Cleans up resources allocated by the page.\n * @param {boolean} resetStats - (optional) Reset page stats, if enabled.\n * The default value is `false`.\n */\n cleanup(resetStats = false) {\n this.pendingCleanup = true;\n this._tryCleanup(resetStats);\n },\n /**\n * For internal use only. Attempts to clean up if rendering is in a state\n * where that's possible.\n * @ignore\n */\n _tryCleanup(resetStats = false) {\n if (!this.pendingCleanup ||\n Object.keys(this.intentStates).some(function(intent) {\n var intentState = this.intentStates[intent];\n return (intentState.renderTasks.length !== 0 ||\n intentState.receivingOperatorList);\n }, this)) {\n return;\n }\n\n Object.keys(this.intentStates).forEach(function(intent) {\n delete this.intentStates[intent];\n }, this);\n this.objs.clear();\n this.annotationsPromise = null;\n if (resetStats && this._stats instanceof StatTimer) {\n this._stats = new StatTimer();\n }\n this.pendingCleanup = false;\n },\n /**\n * For internal use only.\n * @ignore\n */\n _startRenderPage: function PDFPageProxy_startRenderPage(transparency,\n intent) {\n var intentState = this.intentStates[intent];\n // TODO Refactor RenderPageRequest to separate rendering\n // and operator list logic\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n },\n /**\n * For internal use only.\n * @ignore\n */\n _renderPageChunk: function PDFPageProxy_renderPageChunk(operatorListChunk,\n intent) {\n var intentState = this.intentStates[intent];\n var i, ii;\n // Add the new chunk to the current operator list.\n for (i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(\n operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n // Notify all the rendering tasks there are more operators to be consumed.\n for (i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n intentState.receivingOperatorList = false;\n this._tryCleanup();\n }\n },\n\n /**\n * @return {Object} Returns page stats, if enabled.\n */\n get stats() {\n return (this._stats instanceof StatTimer ? this._stats : null);\n },\n };\n return PDFPageProxy;\n})();\n\nclass LoopbackPort {\n constructor(defer) {\n this._listeners = [];\n this._defer = defer;\n this._deferred = Promise.resolve(undefined);\n }\n\n postMessage(obj, transfers) {\n function cloneValue(value) {\n // Trying to perform a structured clone close to the spec, including\n // transfers.\n if (typeof value !== 'object' || value === null) {\n return value;\n }\n if (cloned.has(value)) { // already cloned the object\n return cloned.get(value);\n }\n var result;\n var buffer;\n if ((buffer = value.buffer) && isArrayBuffer(buffer)) {\n // We found object with ArrayBuffer (typed array).\n var transferable = transfers && transfers.includes(buffer);\n if (value === buffer) {\n // Special case when we are faking typed arrays in compatibility.js.\n result = value;\n } else if (transferable) {\n result = new value.constructor(buffer, value.byteOffset,\n value.byteLength);\n } else {\n result = new value.constructor(value);\n }\n cloned.set(value, result);\n return result;\n }\n result = Array.isArray(value) ? [] : {};\n cloned.set(value, result); // adding to cache now for cyclic references\n // Cloning all value and object properties, however ignoring properties\n // defined via getter.\n for (var i in value) {\n var desc, p = value;\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n if (typeof desc.value === 'undefined' ||\n typeof desc.value === 'function') {\n continue;\n }\n result[i] = cloneValue(desc.value);\n }\n return result;\n }\n\n if (!this._defer) {\n this._listeners.forEach(function (listener) {\n listener.call(this, { data: obj, });\n }, this);\n return;\n }\n\n var cloned = new WeakMap();\n var e = { data: cloneValue(obj), };\n this._deferred.then(() => {\n this._listeners.forEach(function (listener) {\n listener.call(this, e);\n }, this);\n });\n }\n\n addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n\n removeEventListener(name, listener) {\n var i = this._listeners.indexOf(listener);\n this._listeners.splice(i, 1);\n }\n\n terminate() {\n this._listeners = [];\n }\n}\n\n/**\n * @typedef {Object} PDFWorkerParameters\n * @property {string} name - (optional) The name of the worker.\n * @property {Object} port - (optional) The `workerPort`.\n * @property {boolean} postMessageTransfers - (optional) Enables transfer usage\n * in postMessage for ArrayBuffers. The default value is `true`.\n * @property {number} verbosity - (optional) Controls the logging level; the\n * constants from {VerbosityLevel} should be used.\n */\n\n/**\n * PDF.js web worker abstraction, it controls instantiation of PDF documents and\n * WorkerTransport for them. If creation of a web worker is not possible,\n * a \"fake\" worker will be used instead.\n * @class\n */\nvar PDFWorker = (function PDFWorkerClosure() {\n let nextFakeWorkerId = 0;\n\n function getWorkerSrc() {\n if (GlobalWorkerOptions.workerSrc) {\n return GlobalWorkerOptions.workerSrc;\n }\n if (typeof workerSrc !== 'undefined') {\n return workerSrc;\n }\n if (typeof PDFJSDev !== 'undefined' &&\n PDFJSDev.test('PRODUCTION && !(MOZCENTRAL || FIREFOX)') &&\n pdfjsFilePath) {\n return pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, '.worker$1$2');\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n function getMainThreadWorkerMessageHandler() {\n if (typeof window === 'undefined') {\n return null;\n }\n if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('PRODUCTION')) {\n return (window.pdfjsNonProductionPdfWorker &&\n window.pdfjsNonProductionPdfWorker.WorkerMessageHandler);\n }\n // PRODUCTION\n return (window.pdfjsDistBuildPdfWorker &&\n window.pdfjsDistBuildPdfWorker.WorkerMessageHandler);\n }\n\n let fakeWorkerFilesLoadedCapability;\n\n // Loads worker code into main thread.\n function setupFakeWorkerGlobal() {\n if (fakeWorkerFilesLoadedCapability) {\n return fakeWorkerFilesLoadedCapability.promise;\n }\n fakeWorkerFilesLoadedCapability = createPromiseCapability();\n\n let mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\n if (mainWorkerMessageHandler) {\n // The worker was already loaded using a `