UNPKG

@cocalc/cdn

Version:

Files that CoCalc uses that would be natural in various contexts to get from a CDN

1,674 lines (1,427 loc) 802 kB
/** * @licstart The following is the entire license notice for the * Javascript code in this page * * Copyright 2022 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * @licend The above is the entire license notice for the * Javascript code in this page */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define("pdfjs-dist/build/pdf", [], factory); else if(typeof exports === 'object') exports["pdfjs-dist/build/pdf"] = factory(); else root["pdfjs-dist/build/pdf"] = root.pdfjsLib = factory(); })(this, function() { return /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.UNSUPPORTED_FEATURES = exports.TextRenderingMode = exports.StreamType = exports.RenderingIntentFlag = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.IsLittleEndianCached = exports.IsEvalSupportedCached = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FontType = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMode = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0; exports.arrayByteLength = arrayByteLength; exports.arraysToBytes = arraysToBytes; exports.assert = assert; exports.bytesToString = bytesToString; exports.createPromiseCapability = createPromiseCapability; exports.createValidAbsoluteUrl = createValidAbsoluteUrl; exports.escapeString = escapeString; exports.getModificationDate = getModificationDate; exports.getVerbosityLevel = getVerbosityLevel; exports.info = info; exports.isArrayBuffer = isArrayBuffer; exports.isArrayEqual = isArrayEqual; exports.isAscii = isAscii; exports.isSameOrigin = isSameOrigin; exports.objectFromMap = objectFromMap; exports.objectSize = objectSize; exports.setVerbosityLevel = setVerbosityLevel; exports.shadow = shadow; exports.string32 = string32; exports.stringToBytes = stringToBytes; exports.stringToPDFString = stringToPDFString; exports.stringToUTF16BEString = stringToUTF16BEString; exports.stringToUTF8String = stringToUTF8String; exports.unreachable = unreachable; exports.utf8StringToString = utf8StringToString; exports.warn = warn; __w_pdfjs_require__(2); function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } 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 _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; exports.IDENTITY_MATRIX = IDENTITY_MATRIX; var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX; var RenderingIntentFlag = { ANY: 0x01, DISPLAY: 0x02, PRINT: 0x04, ANNOTATIONS_FORMS: 0x10, ANNOTATIONS_STORAGE: 0x20, ANNOTATIONS_DISABLE: 0x40, OPLIST: 0x100 }; exports.RenderingIntentFlag = RenderingIntentFlag; var AnnotationMode = { DISABLE: 0, ENABLE: 1, ENABLE_FORMS: 2, ENABLE_STORAGE: 3 }; exports.AnnotationMode = AnnotationMode; var PermissionFlag = { PRINT: 0x04, MODIFY_CONTENTS: 0x08, COPY: 0x10, MODIFY_ANNOTATIONS: 0x20, FILL_INTERACTIVE_FORMS: 0x100, COPY_FOR_ACCESSIBILITY: 0x200, ASSEMBLE: 0x400, PRINT_HIGH_QUALITY: 0x800 }; exports.PermissionFlag = PermissionFlag; var TextRenderingMode = { FILL: 0, STROKE: 1, FILL_STROKE: 2, INVISIBLE: 3, FILL_ADD_TO_PATH: 4, STROKE_ADD_TO_PATH: 5, FILL_STROKE_ADD_TO_PATH: 6, ADD_TO_PATH: 7, FILL_STROKE_MASK: 3, ADD_TO_PATH_FLAG: 4 }; exports.TextRenderingMode = TextRenderingMode; var ImageKind = { GRAYSCALE_1BPP: 1, RGB_24BPP: 2, RGBA_32BPP: 3 }; exports.ImageKind = ImageKind; var AnnotationType = { TEXT: 1, LINK: 2, FREETEXT: 3, LINE: 4, SQUARE: 5, CIRCLE: 6, POLYGON: 7, POLYLINE: 8, HIGHLIGHT: 9, UNDERLINE: 10, SQUIGGLY: 11, STRIKEOUT: 12, STAMP: 13, CARET: 14, INK: 15, POPUP: 16, FILEATTACHMENT: 17, SOUND: 18, MOVIE: 19, WIDGET: 20, SCREEN: 21, PRINTERMARK: 22, TRAPNET: 23, WATERMARK: 24, THREED: 25, REDACT: 26 }; exports.AnnotationType = AnnotationType; var AnnotationStateModelType = { MARKED: "Marked", REVIEW: "Review" }; exports.AnnotationStateModelType = AnnotationStateModelType; var AnnotationMarkedState = { MARKED: "Marked", UNMARKED: "Unmarked" }; exports.AnnotationMarkedState = AnnotationMarkedState; var AnnotationReviewState = { ACCEPTED: "Accepted", REJECTED: "Rejected", CANCELLED: "Cancelled", COMPLETED: "Completed", NONE: "None" }; exports.AnnotationReviewState = AnnotationReviewState; var AnnotationReplyType = { GROUP: "Group", REPLY: "R" }; exports.AnnotationReplyType = AnnotationReplyType; var AnnotationFlag = { INVISIBLE: 0x01, HIDDEN: 0x02, PRINT: 0x04, NOZOOM: 0x08, NOROTATE: 0x10, NOVIEW: 0x20, READONLY: 0x40, LOCKED: 0x80, TOGGLENOVIEW: 0x100, LOCKEDCONTENTS: 0x200 }; exports.AnnotationFlag = AnnotationFlag; var AnnotationFieldFlag = { READONLY: 0x0000001, REQUIRED: 0x0000002, NOEXPORT: 0x0000004, MULTILINE: 0x0001000, PASSWORD: 0x0002000, NOTOGGLETOOFF: 0x0004000, RADIO: 0x0008000, PUSHBUTTON: 0x0010000, COMBO: 0x0020000, EDIT: 0x0040000, SORT: 0x0080000, FILESELECT: 0x0100000, MULTISELECT: 0x0200000, DONOTSPELLCHECK: 0x0400000, DONOTSCROLL: 0x0800000, COMB: 0x1000000, RICHTEXT: 0x2000000, RADIOSINUNISON: 0x2000000, COMMITONSELCHANGE: 0x4000000 }; exports.AnnotationFieldFlag = AnnotationFieldFlag; var AnnotationBorderStyleType = { SOLID: 1, DASHED: 2, BEVELED: 3, INSET: 4, UNDERLINE: 5 }; exports.AnnotationBorderStyleType = AnnotationBorderStyleType; var AnnotationActionEventType = { E: "Mouse Enter", X: "Mouse Exit", D: "Mouse Down", U: "Mouse Up", Fo: "Focus", Bl: "Blur", PO: "PageOpen", PC: "PageClose", PV: "PageVisible", PI: "PageInvisible", K: "Keystroke", F: "Format", V: "Validate", C: "Calculate" }; exports.AnnotationActionEventType = AnnotationActionEventType; var DocumentActionEventType = { WC: "WillClose", WS: "WillSave", DS: "DidSave", WP: "WillPrint", DP: "DidPrint" }; exports.DocumentActionEventType = DocumentActionEventType; var PageActionEventType = { O: "PageOpen", C: "PageClose" }; exports.PageActionEventType = PageActionEventType; var StreamType = { UNKNOWN: "UNKNOWN", FLATE: "FLATE", LZW: "LZW", DCT: "DCT", JPX: "JPX", JBIG: "JBIG", A85: "A85", AHX: "AHX", CCF: "CCF", RLX: "RLX" }; exports.StreamType = StreamType; var FontType = { UNKNOWN: "UNKNOWN", TYPE1: "TYPE1", TYPE1STANDARD: "TYPE1STANDARD", TYPE1C: "TYPE1C", CIDFONTTYPE0: "CIDFONTTYPE0", CIDFONTTYPE0C: "CIDFONTTYPE0C", TRUETYPE: "TRUETYPE", CIDFONTTYPE2: "CIDFONTTYPE2", TYPE3: "TYPE3", OPENTYPE: "OPENTYPE", TYPE0: "TYPE0", MMTYPE1: "MMTYPE1" }; exports.FontType = FontType; var VerbosityLevel = { ERRORS: 0, WARNINGS: 1, INFOS: 5 }; exports.VerbosityLevel = VerbosityLevel; var CMapCompressionType = { NONE: 0, BINARY: 1, STREAM: 2 }; exports.CMapCompressionType = CMapCompressionType; var OPS = { dependency: 1, setLineWidth: 2, setLineCap: 3, setLineJoin: 4, setMiterLimit: 5, setDash: 6, setRenderingIntent: 7, setFlatness: 8, setGState: 9, save: 10, restore: 11, transform: 12, moveTo: 13, lineTo: 14, curveTo: 15, curveTo2: 16, curveTo3: 17, closePath: 18, rectangle: 19, stroke: 20, closeStroke: 21, fill: 22, eoFill: 23, fillStroke: 24, eoFillStroke: 25, closeFillStroke: 26, closeEOFillStroke: 27, endPath: 28, clip: 29, eoClip: 30, beginText: 31, endText: 32, setCharSpacing: 33, setWordSpacing: 34, setHScale: 35, setLeading: 36, setFont: 37, setTextRenderingMode: 38, setTextRise: 39, moveText: 40, setLeadingMoveText: 41, setTextMatrix: 42, nextLine: 43, showText: 44, showSpacedText: 45, nextLineShowText: 46, nextLineSetSpacingShowText: 47, setCharWidth: 48, setCharWidthAndBounds: 49, setStrokeColorSpace: 50, setFillColorSpace: 51, setStrokeColor: 52, setStrokeColorN: 53, setFillColor: 54, setFillColorN: 55, setStrokeGray: 56, setFillGray: 57, setStrokeRGBColor: 58, setFillRGBColor: 59, setStrokeCMYKColor: 60, setFillCMYKColor: 61, shadingFill: 62, beginInlineImage: 63, beginImageData: 64, endInlineImage: 65, paintXObject: 66, markPoint: 67, markPointProps: 68, beginMarkedContent: 69, beginMarkedContentProps: 70, endMarkedContent: 71, beginCompat: 72, endCompat: 73, paintFormXObjectBegin: 74, paintFormXObjectEnd: 75, beginGroup: 76, endGroup: 77, beginAnnotations: 78, endAnnotations: 79, beginAnnotation: 80, endAnnotation: 81, paintJpegXObject: 82, paintImageMaskXObject: 83, paintImageMaskXObjectGroup: 84, paintImageXObject: 85, paintInlineImageXObject: 86, paintInlineImageXObjectGroup: 87, paintImageXObjectRepeat: 88, paintImageMaskXObjectRepeat: 89, paintSolidColorImageMask: 90, constructPath: 91 }; exports.OPS = OPS; var UNSUPPORTED_FEATURES = { unknown: "unknown", forms: "forms", javaScript: "javaScript", signatures: "signatures", smask: "smask", shadingPattern: "shadingPattern", font: "font", errorTilingPattern: "errorTilingPattern", errorExtGState: "errorExtGState", errorXObject: "errorXObject", errorFontLoadType3: "errorFontLoadType3", errorFontState: "errorFontState", errorFontMissing: "errorFontMissing", errorFontTranslate: "errorFontTranslate", errorColorSpace: "errorColorSpace", errorOperatorList: "errorOperatorList", errorFontToUnicode: "errorFontToUnicode", errorFontLoadNative: "errorFontLoadNative", errorFontBuildPath: "errorFontBuildPath", errorFontGetPath: "errorFontGetPath", errorMarkedContent: "errorMarkedContent", errorContentSubStream: "errorContentSubStream" }; exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES; var PasswordResponses = { NEED_PASSWORD: 1, INCORRECT_PASSWORD: 2 }; exports.PasswordResponses = PasswordResponses; var verbosity = VerbosityLevel.WARNINGS; function setVerbosityLevel(level) { if (Number.isInteger(level)) { verbosity = level; } } function getVerbosityLevel() { return verbosity; } function info(msg) { if (verbosity >= VerbosityLevel.INFOS) { console.log("Info: ".concat(msg)); } } function warn(msg) { if (verbosity >= VerbosityLevel.WARNINGS) { console.log("Warning: ".concat(msg)); } } function unreachable(msg) { throw new Error(msg); } function assert(cond, msg) { if (!cond) { unreachable(msg); } } function isSameOrigin(baseUrl, otherUrl) { var base; try { base = new URL(baseUrl); if (!base.origin || base.origin === "null") { return false; } } catch (e) { return false; } var other = new URL(otherUrl, base); return base.origin === other.origin; } function _isValidProtocol(url) { if (!url) { return false; } switch (url.protocol) { case "http:": case "https:": case "ftp:": case "mailto:": case "tel:": return true; default: return false; } } function createValidAbsoluteUrl(url) { var baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; if (!url) { return null; } try { if (options && typeof url === "string") { if (options.addDefaultProtocol && url.startsWith("www.")) { var dots = url.match(/\./g); if (dots && dots.length >= 2) { url = "http://".concat(url); } } if (options.tryConvertEncoding) { try { url = stringToUTF8String(url); } catch (ex) {} } } var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url); if (_isValidProtocol(absoluteUrl)) { return absoluteUrl; } } catch (ex) {} return null; } function shadow(obj, prop, value) { Object.defineProperty(obj, prop, { value: value, enumerable: true, configurable: true, writable: false }); return value; } var BaseException = function BaseExceptionClosure() { function BaseException(message, name) { if (this.constructor === BaseException) { unreachable("Cannot initialize BaseException."); } this.message = message; this.name = name; } BaseException.prototype = new Error(); BaseException.constructor = BaseException; return BaseException; }(); exports.BaseException = BaseException; var PasswordException = /*#__PURE__*/function (_BaseException) { _inherits(PasswordException, _BaseException); var _super = _createSuper(PasswordException); function PasswordException(msg, code) { var _this; _classCallCheck(this, PasswordException); _this = _super.call(this, msg, "PasswordException"); _this.code = code; return _this; } return _createClass(PasswordException); }(BaseException); exports.PasswordException = PasswordException; var UnknownErrorException = /*#__PURE__*/function (_BaseException2) { _inherits(UnknownErrorException, _BaseException2); var _super2 = _createSuper(UnknownErrorException); function UnknownErrorException(msg, details) { var _this2; _classCallCheck(this, UnknownErrorException); _this2 = _super2.call(this, msg, "UnknownErrorException"); _this2.details = details; return _this2; } return _createClass(UnknownErrorException); }(BaseException); exports.UnknownErrorException = UnknownErrorException; var InvalidPDFException = /*#__PURE__*/function (_BaseException3) { _inherits(InvalidPDFException, _BaseException3); var _super3 = _createSuper(InvalidPDFException); function InvalidPDFException(msg) { _classCallCheck(this, InvalidPDFException); return _super3.call(this, msg, "InvalidPDFException"); } return _createClass(InvalidPDFException); }(BaseException); exports.InvalidPDFException = InvalidPDFException; var MissingPDFException = /*#__PURE__*/function (_BaseException4) { _inherits(MissingPDFException, _BaseException4); var _super4 = _createSuper(MissingPDFException); function MissingPDFException(msg) { _classCallCheck(this, MissingPDFException); return _super4.call(this, msg, "MissingPDFException"); } return _createClass(MissingPDFException); }(BaseException); exports.MissingPDFException = MissingPDFException; var UnexpectedResponseException = /*#__PURE__*/function (_BaseException5) { _inherits(UnexpectedResponseException, _BaseException5); var _super5 = _createSuper(UnexpectedResponseException); function UnexpectedResponseException(msg, status) { var _this3; _classCallCheck(this, UnexpectedResponseException); _this3 = _super5.call(this, msg, "UnexpectedResponseException"); _this3.status = status; return _this3; } return _createClass(UnexpectedResponseException); }(BaseException); exports.UnexpectedResponseException = UnexpectedResponseException; var FormatError = /*#__PURE__*/function (_BaseException6) { _inherits(FormatError, _BaseException6); var _super6 = _createSuper(FormatError); function FormatError(msg) { _classCallCheck(this, FormatError); return _super6.call(this, msg, "FormatError"); } return _createClass(FormatError); }(BaseException); exports.FormatError = FormatError; var AbortException = /*#__PURE__*/function (_BaseException7) { _inherits(AbortException, _BaseException7); var _super7 = _createSuper(AbortException); function AbortException(msg) { _classCallCheck(this, AbortException); return _super7.call(this, msg, "AbortException"); } return _createClass(AbortException); }(BaseException); exports.AbortException = AbortException; function bytesToString(bytes) { if (_typeof(bytes) !== "object" || bytes === null || bytes.length === undefined) { unreachable("Invalid argument for bytesToString"); } var length = bytes.length; var MAX_ARGUMENT_COUNT = 8192; if (length < MAX_ARGUMENT_COUNT) { return String.fromCharCode.apply(null, bytes); } var strBuf = []; for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) { var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); var chunk = bytes.subarray(i, chunkEnd); strBuf.push(String.fromCharCode.apply(null, chunk)); } return strBuf.join(""); } function stringToBytes(str) { if (typeof str !== "string") { unreachable("Invalid argument for stringToBytes"); } var length = str.length; var bytes = new Uint8Array(length); for (var i = 0; i < length; ++i) { bytes[i] = str.charCodeAt(i) & 0xff; } return bytes; } function arrayByteLength(arr) { if (arr.length !== undefined) { return arr.length; } if (arr.byteLength !== undefined) { return arr.byteLength; } unreachable("Invalid argument for arrayByteLength"); } function arraysToBytes(arr) { var length = arr.length; if (length === 1 && arr[0] instanceof Uint8Array) { return arr[0]; } var resultLength = 0; for (var i = 0; i < length; i++) { resultLength += arrayByteLength(arr[i]); } var pos = 0; var data = new Uint8Array(resultLength); for (var _i = 0; _i < length; _i++) { var item = arr[_i]; if (!(item instanceof Uint8Array)) { if (typeof item === "string") { item = stringToBytes(item); } else { item = new Uint8Array(item); } } var itemLength = item.byteLength; data.set(item, pos); pos += itemLength; } return data; } function string32(value) { return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); } function objectSize(obj) { return Object.keys(obj).length; } function objectFromMap(map) { var obj = Object.create(null); var _iterator = _createForOfIteratorHelper(map), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var _step$value = _slicedToArray(_step.value, 2), key = _step$value[0], value = _step$value[1]; obj[key] = value; } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } return obj; } function isLittleEndian() { var buffer8 = new Uint8Array(4); buffer8[0] = 1; var view32 = new Uint32Array(buffer8.buffer, 0, 1); return view32[0] === 1; } var IsLittleEndianCached = { get value() { return shadow(this, "value", isLittleEndian()); } }; exports.IsLittleEndianCached = IsLittleEndianCached; function isEvalSupported() { try { new Function(""); return true; } catch (e) { return false; } } var IsEvalSupportedCached = { get value() { return shadow(this, "value", isEvalSupported()); } }; exports.IsEvalSupportedCached = IsEvalSupportedCached; var hexNumbers = _toConsumableArray(Array(256).keys()).map(function (n) { return n.toString(16).padStart(2, "0"); }); var Util = /*#__PURE__*/function () { function Util() { _classCallCheck(this, Util); } _createClass(Util, null, [{ key: "makeHexColor", value: function makeHexColor(r, g, b) { return "#".concat(hexNumbers[r]).concat(hexNumbers[g]).concat(hexNumbers[b]); } }, { key: "transform", value: function transform(m1, m2) { return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]]; } }, { key: "applyTransform", value: function applyTransform(p, m) { var xt = p[0] * m[0] + p[1] * m[2] + m[4]; var yt = p[0] * m[1] + p[1] * m[3] + m[5]; return [xt, yt]; } }, { key: "applyInverseTransform", value: function applyInverseTransform(p, m) { var d = m[0] * m[3] - m[1] * m[2]; var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; return [xt, yt]; } }, { key: "getAxialAlignedBoundingBox", value: function getAxialAlignedBoundingBox(r, m) { var p1 = Util.applyTransform(r, m); var p2 = Util.applyTransform(r.slice(2, 4), m); var p3 = Util.applyTransform([r[0], r[3]], m); var p4 = Util.applyTransform([r[2], r[1]], m); return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])]; } }, { key: "inverseTransform", value: function inverseTransform(m) { var d = m[0] * m[3] - m[1] * m[2]; return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d]; } }, { key: "apply3dTransform", value: function apply3dTransform(m, v) { return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]]; } }, { key: "singularValueDecompose2dScale", value: function singularValueDecompose2dScale(m) { var transpose = [m[0], m[2], m[1], m[3]]; var a = m[0] * transpose[0] + m[1] * transpose[2]; var b = m[0] * transpose[1] + m[1] * transpose[3]; var c = m[2] * transpose[0] + m[3] * transpose[2]; var d = m[2] * transpose[1] + m[3] * transpose[3]; var first = (a + d) / 2; var second = Math.sqrt(Math.pow(a + d, 2) - 4 * (a * d - c * b)) / 2; var sx = first + second || 1; var sy = first - second || 1; return [Math.sqrt(sx), Math.sqrt(sy)]; } }, { key: "normalizeRect", value: function normalizeRect(rect) { var r = rect.slice(0); if (rect[0] > rect[2]) { r[0] = rect[2]; r[2] = rect[0]; } if (rect[1] > rect[3]) { r[1] = rect[3]; r[3] = rect[1]; } return r; } }, { key: "intersect", value: function intersect(rect1, rect2) { function compare(a, b) { return a - b; } var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare); var orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare); var result = []; rect1 = Util.normalizeRect(rect1); rect2 = Util.normalizeRect(rect2); if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) { result[0] = orderedX[1]; result[2] = orderedX[2]; } else { return null; } if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) { result[1] = orderedY[1]; result[3] = orderedY[2]; } else { return null; } return result; } }, { key: "bezierBoundingBox", value: function bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) { var tvalues = [], bounds = [[], []]; var a, b, c, t, t1, t2, b2ac, sqrtb2ac; for (var i = 0; i < 2; ++i) { if (i === 0) { b = 6 * x0 - 12 * x1 + 6 * x2; a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3; c = 3 * x1 - 3 * x0; } else { b = 6 * y0 - 12 * y1 + 6 * y2; a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3; c = 3 * y1 - 3 * y0; } if (Math.abs(a) < 1e-12) { if (Math.abs(b) < 1e-12) { continue; } t = -c / b; if (0 < t && t < 1) { tvalues.push(t); } continue; } b2ac = b * b - 4 * c * a; sqrtb2ac = Math.sqrt(b2ac); if (b2ac < 0) { continue; } t1 = (-b + sqrtb2ac) / (2 * a); if (0 < t1 && t1 < 1) { tvalues.push(t1); } t2 = (-b - sqrtb2ac) / (2 * a); if (0 < t2 && t2 < 1) { tvalues.push(t2); } } var j = tvalues.length, mt; var jlen = j; while (j--) { t = tvalues[j]; mt = 1 - t; bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3; bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3; } bounds[0][jlen] = x0; bounds[1][jlen] = y0; bounds[0][jlen + 1] = x3; bounds[1][jlen + 1] = y3; bounds[0].length = bounds[1].length = jlen + 2; return [Math.min.apply(Math, _toConsumableArray(bounds[0])), Math.min.apply(Math, _toConsumableArray(bounds[1])), Math.max.apply(Math, _toConsumableArray(bounds[0])), Math.max.apply(Math, _toConsumableArray(bounds[1]))]; } }]); return Util; }(); exports.Util = Util; var PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac]; function stringToPDFString(str) { if (str[0] >= "\xEF") { var encoding; if (str[0] === "\xFE" && str[1] === "\xFF") { encoding = "utf-16be"; } else if (str[0] === "\xFF" && str[1] === "\xFE") { encoding = "utf-16le"; } else if (str[0] === "\xEF" && str[1] === "\xBB" && str[2] === "\xBF") { encoding = "utf-8"; } if (encoding) { try { var decoder = new TextDecoder(encoding, { fatal: true }); var buffer = stringToBytes(str); return decoder.decode(buffer); } catch (ex) { warn("stringToPDFString: \"".concat(ex, "\".")); } } } var strBuf = []; for (var i = 0, ii = str.length; i < ii; i++) { var code = PDFStringTranslateTable[str.charCodeAt(i)]; strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); } return strBuf.join(""); } function escapeString(str) { return str.replace(/([()\\\n\r])/g, function (match) { if (match === "\n") { return "\\n"; } else if (match === "\r") { return "\\r"; } return "\\".concat(match); }); } function isAscii(str) { return /^[\x00-\x7F]*$/.test(str); } function stringToUTF16BEString(str) { var buf = ["\xFE\xFF"]; for (var i = 0, ii = str.length; i < ii; i++) { var _char = str.charCodeAt(i); buf.push(String.fromCharCode(_char >> 8 & 0xff), String.fromCharCode(_char & 0xff)); } return buf.join(""); } function stringToUTF8String(str) { return decodeURIComponent(escape(str)); } function utf8StringToString(str) { return unescape(encodeURIComponent(str)); } function isArrayBuffer(v) { return _typeof(v) === "object" && v !== null && v.byteLength !== undefined; } function isArrayEqual(arr1, arr2) { if (arr1.length !== arr2.length) { return false; } for (var i = 0, ii = arr1.length; i < ii; i++) { if (arr1[i] !== arr2[i]) { return false; } } return true; } function getModificationDate() { var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date(); var buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, "0"), date.getUTCDate().toString().padStart(2, "0"), date.getUTCHours().toString().padStart(2, "0"), date.getUTCMinutes().toString().padStart(2, "0"), date.getUTCSeconds().toString().padStart(2, "0")]; return buffer.join(""); } function createPromiseCapability() { var capability = Object.create(null); var isSettled = false; Object.defineProperty(capability, "settled", { get: function get() { return isSettled; } }); capability.promise = new Promise(function (resolve, reject) { capability.resolve = function (data) { isSettled = true; resolve(data); }; capability.reject = function (reason) { isSettled = true; reject(reason); }; }); return capability; } /***/ }), /* 2 */ /***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { "use strict"; var _is_node = __w_pdfjs_require__(3); if (!globalThis._pdfjsCompatibilityChecked) { globalThis._pdfjsCompatibilityChecked = true; (function checkNodeBtoa() { if (globalThis.btoa || !_is_node.isNodeJS) { return; } globalThis.btoa = function (chars) { return Buffer.from(chars, "binary").toString("base64"); }; })(); (function checkNodeAtob() { if (globalThis.atob || !_is_node.isNodeJS) { return; } globalThis.atob = function (input) { return Buffer.from(input, "base64").toString("binary"); }; })(); (function checkDOMMatrix() { if (globalThis.DOMMatrix || !_is_node.isNodeJS) { return; } globalThis.DOMMatrix = __w_pdfjs_require__(4); })(); (function checkPromise() { if (globalThis.Promise.allSettled) { return; } globalThis.Promise = __w_pdfjs_require__(5); })(); (function checkReadableStream() { if (globalThis.ReadableStream || !_is_node.isNodeJS) { return; } globalThis.ReadableStream = require("web-streams-polyfill/dist/ponyfill.js").ReadableStream; })(); (function checkStructuredClone() { if (globalThis.structuredClone) { return; } __w_pdfjs_require__(129); })(); } /***/ }), /* 3 */ /***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.isNodeJS = void 0; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } var isNodeJS = (typeof process === "undefined" ? "undefined" : _typeof(process)) === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser"); exports.isNodeJS = isNodeJS; /***/ }), /* 4 */ /***/ ((module, exports, __w_pdfjs_require__) => { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } (function (global, factory) { ( false ? 0 : _typeof(exports)) === 'object' && "object" !== 'undefined' ? module.exports = factory() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __w_pdfjs_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0); })(void 0, function () { 'use strict'; function fromArray(array) { var m = new CSSMatrix(); var a = Array.from(array); if (!a.every(function (n) { return !Number.isNaN(n); })) { throw TypeError("CSSMatrix: \"" + array + "\" must only have numbers."); } if (a.length === 16) { var m11 = a[0]; var m12 = a[1]; var m13 = a[2]; var m14 = a[3]; var m21 = a[4]; var m22 = a[5]; var m23 = a[6]; var m24 = a[7]; var m31 = a[8]; var m32 = a[9]; var m33 = a[10]; var m34 = a[11]; var m41 = a[12]; var m42 = a[13]; var m43 = a[14]; var m44 = a[15]; m.m11 = m11; m.a = m11; m.m21 = m21; m.c = m21; m.m31 = m31; m.m41 = m41; m.e = m41; m.m12 = m12; m.b = m12; m.m22 = m22; m.d = m22; m.m32 = m32; m.m42 = m42; m.f = m42; m.m13 = m13; m.m23 = m23; m.m33 = m33; m.m43 = m43; m.m14 = m14; m.m24 = m24; m.m34 = m34; m.m44 = m44; } else if (a.length === 6) { var M11 = a[0]; var M12 = a[1]; var M21 = a[2]; var M22 = a[3]; var M41 = a[4]; var M42 = a[5]; m.m11 = M11; m.a = M11; m.m12 = M12; m.b = M12; m.m21 = M21; m.c = M21; m.m22 = M22; m.d = M22; m.m41 = M41; m.e = M41; m.m42 = M42; m.f = M42; } else { throw new TypeError('CSSMatrix: expecting an Array of 6/16 values.'); } return m; } function fromMatrix(m) { var keys = Object.keys(new CSSMatrix()); if (_typeof(m) === 'object' && keys.every(function (k) { return k in m; })) { return fromArray([m.m11, m.m12, m.m13, m.m14, m.m21, m.m22, m.m23, m.m24, m.m31, m.m32, m.m33, m.m34, m.m41, m.m42, m.m43, m.m44]); } throw TypeError("CSSMatrix: \"" + m + "\" is not a DOMMatrix / CSSMatrix / JSON compatible object."); } function fromString(source) { if (typeof source !== 'string') { throw TypeError("CSSMatrix: \"" + source + "\" is not a string."); } var str = String(source).replace(/\s/g, ''); var m = new CSSMatrix(); var invalidStringError = "CSSMatrix: invalid transform string \"" + source + "\""; str.split(')').filter(function (f) { return f; }).forEach(function (tf) { var ref = tf.split('('); var prop = ref[0]; var value = ref[1]; if (!value) { throw TypeError(invalidStringError); } var components = value.split(',').map(function (n) { return n.includes('rad') ? parseFloat(n) * (180 / Math.PI) : parseFloat(n); }); var x = components[0]; var y = components[1]; var z = components[2]; var a = components[3]; var xyz = [x, y, z]; var xyza = [x, y, z, a]; if (prop === 'perspective' && x && [y, z].every(function (n) { return n === undefined; })) { m.m34 = -1 / x; } else if (prop.includes('matrix') && [6, 16].includes(components.length) && components.every(function (n) { return !Number.isNaN(+n); })) { var values = components.map(function (n) { return Math.abs(n) < 1e-6 ? 0 : n; }); m = m.multiply(fromArray(values)); } else if (prop === 'translate3d' && xyz.every(function (n) { return !Number.isNaN(+n); })) { m = m.translate(x, y, z); } else if (prop === 'translate' && x && z === undefined) { m = m.translate(x, y || 0, 0); } else if (prop === 'rotate3d' && xyza.every(function (n) { return !Number.isNaN(+n); }) && a) { m = m.rotateAxisAngle(x, y, z, a); } else if (prop === 'rotate' && x && [y, z].every(function (n) { return n === undefined; })) { m = m.rotate(0, 0, x); } else if (prop === 'scale3d' && xyz.every(function (n) { return !Number.isNaN(+n); }) && xyz.some(function (n) { return n !== 1; })) { m = m.scale(x, y, z); } else if (prop === 'scale' && !Number.isNaN(x) && x !== 1 && z === undefined) { var nosy = Number.isNaN(+y); var sy = nosy ? x : y; m = m.scale(x, sy, 1); } else if (prop === 'skew' && x && z === undefined) { m = m.skewX(x); m = y ? m.skewY(y) : m; } else if (/[XYZ]/.test(prop) && x && [y, z].every(function (n) { return n === undefined; }) && ['translate', 'rotate', 'scale', 'skew'].some(function (p) { return prop.includes(p); })) { if (['skewX', 'skewY'].includes(prop)) { m = m[prop](x); } else { var fn = prop.replace(/[XYZ]/, ''); var axis = prop.replace(fn, ''); var idx = ['X', 'Y', 'Z'].indexOf(axis); var axeValues = [idx === 0 ? x : 0, idx === 1 ? x : 0, idx === 2 ? x : 0]; m = m[fn].apply(m, axeValues); } } else { throw TypeError(invalidStringError); } }); return m; } function Translate(x, y, z) { var m = new CSSMatrix(); m.m41 = x; m.e = x; m.m42 = y; m.f = y; m.m43 = z; return m; } function Rotate(rx, ry, rz) { var m = new CSSMatrix(); var degToRad = Math.PI / 180; var radX = rx * degToRad; var radY = ry * degToRad; var radZ = rz * degToRad; var cosx = Math.cos(radX); var sinx = -Math.sin(radX); var cosy = Math.cos(radY); var siny = -Math.sin(radY); var cosz = Math.cos(radZ); var sinz = -Math.sin(radZ); var m11 = cosy * cosz; var m12 = -cosy * sinz; m.m11 = m11; m.a = m11; m.m12 = m12; m.b = m12; m.m13 = siny; var m21 = sinx * siny * cosz + cosx * sinz; m.m21 = m21; m.c = m21; var m22 = cosx * cosz - sinx * siny * sinz; m.m22 = m22; m.d = m22; m.m23 = -sinx * cosy; m.m31 = sinx * sinz - cosx * siny * cosz; m.m32 = sinx * cosz + cosx * siny * sinz; m.m33 = cosx * cosy; return m; } function RotateAxisAngle(x, y, z, alpha) { var m = new CSSMatrix(); var angle = alpha * (Math.PI / 360); var sinA = Math.sin(angle); var cosA = Math.cos(angle); var sinA2 = sinA * sinA; var length = Math.sqrt(x * x + y * y + z * z); var X = x; var Y = y; var Z = z; if (length === 0) { X = 0; Y = 0; Z = 1; } else { X /= length; Y /= length; Z /= length; } var x2 = X * X; var y2 = Y * Y; var z2 = Z * Z; var m11 = 1 - 2 * (y2 + z2) * sinA2; m.m11 = m11; m.a = m11; var m12 = 2 * (X * Y * sinA2 + Z * sinA * cosA); m.m12 = m12; m.b = m12; m.m13 = 2 * (X * Z * sinA2 - Y * sinA * cosA); var m21 = 2 * (Y * X * sinA2 - Z * sinA * cosA); m.m21 = m21; m.c = m21; var m22 = 1 - 2 * (z2 + x2) * sinA2; m.m22 = m22; m.d = m22; m.m23 = 2 * (Y * Z * sinA2 + X * sinA * cosA); m.m31 = 2 * (Z * X * sinA2 + Y * sinA * cosA); m.m32 = 2 * (Z * Y * sinA2 - X * sinA * cosA); m.m33 = 1 - 2 * (x2 + y2) * sinA2; return m; } function Scale(x, y, z) { var m = new CSSMatrix(); m.m11 = x; m.a = x; m.m22 = y; m.d = y; m.m33 = z; return m; } function SkewX(angle) { var m = new CSSMatrix(); var radA = angle * Math.PI / 180; var t = Math.tan(radA); m.m21 = t; m.c = t; return m; } function SkewY(angle) { var m = new CSSMatrix(); var radA = angle * Math.PI / 180; var t = Math.tan(radA); m.m12 = t; m.b = t; return m; } function Multiply(m1, m2) { var m11 = m2.m11 * m1.m11 + m2.m12 * m1.m21 + m2.m13 * m1.m31 + m2.m14 * m1.m41; var m12 = m2.m11 * m1.m12 + m2.m12 * m1.m22 + m2.m13 * m1.m32 + m2.m14 * m1.m42; var m13 = m2.m11 * m1.m13 + m2.m12 * m1.m23 + m2.m13 * m1.m33 + m2.m14 * m1.m43; var m14 = m2.m11 * m1.m14 + m2.m12 * m1.m24 + m2.m13 * m1.m34 + m2.m14 * m1.m44; var m21 = m2.m21 * m1.m11 + m2.m22 * m1.m21 + m2.m23 * m1.m31 + m2.m24 * m1.m41; var m22 = m2.m21 * m1.m12 + m2.m22 * m1.m22 + m2.m23 * m1.m32 + m2.m24 * m1.m42; var m23 = m2.m21 * m1.m13 + m2.m22 * m1.m23 + m2.m23 * m1.m33 + m2.m24 * m1.m43; var m24 = m2.m21 * m1.m14 + m2.m22 * m1.m24 + m2.m23 * m1.m34 + m2.m24 * m1.m44; var m31 = m2.m31 * m1.m11 + m2.m32 * m1.m21 + m2.m33 * m1.m31 + m2.m34 * m1.m41; var m32 = m2.m31 * m1.m12 + m2.m32 * m1.m22 + m2.m33 * m1.m32 + m2.m34 * m1.m42; var m33 = m2.m31 * m1.m13 + m2.m32 * m1.m23 + m2.m33 * m1.m33 + m2.m34 * m1.m43; var m34 = m2.m31 * m1.m14 + m2.m32 * m1.m24 + m2.m33 * m1.m34 + m2.m34 * m1.m44; var m41 = m2.m41 * m1.m11 + m2.m42 * m1.m21 + m2.m43 * m1.m31 + m2.m44 * m1.m41; var m42 = m2.m41 * m1.m12 + m2.m42 * m1.m22 + m2.m43 * m1.m32 + m2.m44 * m1.m42; var m43 = m2.m41 * m1.m13 + m2.m42 * m1.m23 + m2.m43 * m1.m33 + m2.m44 * m1.m43; var m44 = m2.m41 * m1.m14 + m2.m42 * m1.m24 + m2.m43 * m1.m34 + m2.m44 * m1.m44; return fromArray([m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44]); } var CSSMatrix = function CSSMatrix() { var args = [], len = arguments.length; while (len--) { args[len] = arguments[len]; } var m = this; m.a = 1; m.b = 0; m.c = 0; m.d = 1; m.e = 0; m.f = 0; m.m11 = 1; m.m12 = 0; m.m13 = 0; m.m14 = 0; m.m21 = 0; m.m22 = 1; m.m23 = 0; m.m24 = 0; m.m31 = 0; m.m32 = 0; m.m33 = 1; m.m34 = 0; m.m41 = 0; m.m42 = 0; m.m43 = 0; m.m44 = 1; if (args && args.length) { var ARGS = [16, 6].some(function (l) { return l === args.length; }) ? args : args[0]; return m.setMatrixValue(ARGS); } return m; }; var prototypeAccessors = { isIdentity: { configurable: true }, is2D: { configurable: true } }; prototypeAccessors.isIdentity.set = function (value) { this.isIdentity = value; }; prototypeAccessors.isIdentity.get = function () { var m = this; return m.m11 === 1 && m.m12 === 0 && m.m13 === 0 && m.m14 === 0 && m.m21 === 0 && m.m22 === 1 && m.m23 === 0 && m.m24 === 0 && m.m31 === 0 && m.m32 === 0 && m.m33 === 1 && m.m34 === 0 && m.m41 === 0 && m.m42 === 0 && m.m43 === 0 && m.m44 === 1; }; prototypeAccessors.is2D.get = function () { var m = this; return m.m31 === 0 && m.m32 === 0 && m.m33 === 1 && m.m34 === 0 && m.m43 === 0 && m.m44 === 1; }; prototypeAccessors.is2D.set = function (value) { this.is2D = value; }; CSSMatrix.prototype.setMatrixValue = function setMatrixValue(source) { var m = this; if ([Array, Float64Array, Float32Array].some(function (a) { return source instanceof a; })) { return fromArray(source); } if (typeof source === 'string' && source.length && source !== 'none') { return fromString(source); } if (_typeof(source) === 'object') { return fromMatrix(source); } return m; }; CSSMatrix.prototype.toArray = function toArray() { var m = this; var pow = Math.pow(10, 6); var result; if (m